@beinformed/ui 1.13.2 → 1.13.6

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 (160) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/esm/constants/LayoutHintConfig.js +9 -0
  3. package/esm/constants/LayoutHintConfig.js.map +1 -1
  4. package/esm/constants/LayoutHints.js +5 -0
  5. package/esm/constants/LayoutHints.js.map +1 -1
  6. package/esm/models/attributes/AttributeContent.js +3 -3
  7. package/esm/models/attributes/AttributeContent.js.map +1 -1
  8. package/esm/models/attributes/AttributeModel.js.map +1 -1
  9. package/esm/models/attributes/BooleanAttributeModel.js +1 -0
  10. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  11. package/esm/models/attributes/ChoiceAttributeModel.js +1 -0
  12. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  13. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  14. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  15. package/esm/models/attributes/CompositeAttributeChildCollection.js +1 -1
  16. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  17. package/esm/models/attributes/CompositeAttributeModel.js +2 -1
  18. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  19. package/esm/models/attributes/DatetimeAttributeModel.js +8 -3
  20. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  21. package/esm/models/base/BaseCollection.js.map +1 -1
  22. package/esm/models/base/ResourceCollection.js +4 -2
  23. package/esm/models/base/ResourceCollection.js.map +1 -1
  24. package/esm/models/base/ResourceModel.js +1 -0
  25. package/esm/models/base/ResourceModel.js.map +1 -1
  26. package/esm/models/concepts/BusinessScenarioModel.js +2 -1
  27. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  28. package/esm/models/concepts/ConceptDetailModel.js +2 -1
  29. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  30. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  31. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  32. package/esm/models/content/ContentLinkModel.js +2 -0
  33. package/esm/models/content/ContentLinkModel.js.map +1 -1
  34. package/esm/models/href/Href.js +1 -1
  35. package/esm/models/href/Href.js.map +1 -1
  36. package/esm/react-server/renderSSRComplete.js +2 -1
  37. package/esm/react-server/renderSSRComplete.js.map +1 -1
  38. package/esm/react-server/serverNoSSR.js +1 -1
  39. package/esm/react-server/serverNoSSR.js.map +1 -1
  40. package/esm/redux/_modularui/actions.js +16 -17
  41. package/esm/redux/_modularui/actions.js.map +1 -1
  42. package/esm/redux/_modularui/reducer.js +1 -2
  43. package/esm/redux/_modularui/reducer.js.map +1 -1
  44. package/esm/redux/actions/SignIn.js +5 -9
  45. package/esm/redux/actions/SignIn.js.map +1 -1
  46. package/esm/utils/helpers/objects.js +2 -1
  47. package/esm/utils/helpers/objects.js.map +1 -1
  48. package/lib/constants/LayoutHintConfig.js +9 -0
  49. package/lib/constants/LayoutHintConfig.js.flow +9 -0
  50. package/lib/constants/LayoutHintConfig.js.map +1 -1
  51. package/lib/constants/LayoutHints.js +8 -2
  52. package/lib/constants/LayoutHints.js.flow +4 -0
  53. package/lib/constants/LayoutHints.js.map +1 -1
  54. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
  55. package/lib/models/attributes/AttributeContent.js +3 -3
  56. package/lib/models/attributes/AttributeContent.js.flow +3 -3
  57. package/lib/models/attributes/AttributeContent.js.map +1 -1
  58. package/lib/models/attributes/AttributeModel.js.flow +10 -2
  59. package/lib/models/attributes/AttributeModel.js.map +1 -1
  60. package/lib/models/attributes/BooleanAttributeModel.js +1 -0
  61. package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
  62. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  63. package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
  64. package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
  65. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  66. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
  67. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  68. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
  69. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  70. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
  71. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
  72. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  73. package/lib/models/attributes/CompositeAttributeModel.js +2 -1
  74. package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
  75. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  76. package/lib/models/attributes/DatetimeAttributeModel.js +9 -3
  77. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -4
  78. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  79. package/lib/models/base/BaseCollection.js.flow +2 -2
  80. package/lib/models/base/BaseCollection.js.map +1 -1
  81. package/lib/models/base/ResourceCollection.js +4 -2
  82. package/lib/models/base/ResourceCollection.js.flow +4 -6
  83. package/lib/models/base/ResourceCollection.js.map +1 -1
  84. package/lib/models/base/ResourceModel.js +1 -0
  85. package/lib/models/base/ResourceModel.js.flow +3 -2
  86. package/lib/models/base/ResourceModel.js.map +1 -1
  87. package/lib/models/concepts/BusinessScenarioModel.js +3 -1
  88. package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
  89. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  90. package/lib/models/concepts/ConceptDetailModel.js +3 -1
  91. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  92. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  93. package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
  94. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  95. package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
  96. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  97. package/lib/models/content/ContentLinkModel.js +2 -0
  98. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  99. package/lib/models/content/ContentLinkModel.js.map +1 -1
  100. package/lib/models/href/Href.js +1 -1
  101. package/lib/models/href/Href.js.flow +2 -1
  102. package/lib/models/href/Href.js.map +1 -1
  103. package/lib/models/types.js.flow +2 -2
  104. package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
  105. package/lib/react-server/renderSSRComplete.js +2 -1
  106. package/lib/react-server/renderSSRComplete.js.flow +4 -1
  107. package/lib/react-server/renderSSRComplete.js.map +1 -1
  108. package/lib/react-server/serverNoSSR.js +1 -1
  109. package/lib/react-server/serverNoSSR.js.flow +1 -1
  110. package/lib/react-server/serverNoSSR.js.map +1 -1
  111. package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
  112. package/lib/redux/_modularui/actions.js +12 -12
  113. package/lib/redux/_modularui/actions.js.flow +12 -12
  114. package/lib/redux/_modularui/actions.js.map +1 -1
  115. package/lib/redux/_modularui/reducer.js +1 -2
  116. package/lib/redux/_modularui/reducer.js.flow +0 -1
  117. package/lib/redux/_modularui/reducer.js.map +1 -1
  118. package/lib/redux/actions/SignIn.js +6 -9
  119. package/lib/redux/actions/SignIn.js.flow +5 -11
  120. package/lib/redux/actions/SignIn.js.map +1 -1
  121. package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
  122. package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
  123. package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
  124. package/lib/utils/helpers/objects.js +3 -1
  125. package/lib/utils/helpers/objects.js.flow +2 -2
  126. package/lib/utils/helpers/objects.js.map +1 -1
  127. package/package.json +15 -15
  128. package/src/constants/LayoutHintConfig.js +9 -0
  129. package/src/constants/LayoutHints.js +4 -0
  130. package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
  131. package/src/models/attributes/AttributeContent.js +3 -3
  132. package/src/models/attributes/AttributeModel.js +10 -2
  133. package/src/models/attributes/BooleanAttributeModel.js +4 -1
  134. package/src/models/attributes/ChoiceAttributeModel.js +4 -1
  135. package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
  136. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
  137. package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
  138. package/src/models/attributes/CompositeAttributeModel.js +1 -0
  139. package/src/models/attributes/DatetimeAttributeModel.js +7 -4
  140. package/src/models/base/BaseCollection.js +2 -2
  141. package/src/models/base/ResourceCollection.js +4 -6
  142. package/src/models/base/ResourceModel.js +3 -2
  143. package/src/models/concepts/BusinessScenarioModel.js +2 -1
  144. package/src/models/concepts/ConceptDetailModel.js +2 -2
  145. package/src/models/concepts/ConceptLinkModel.js +5 -2
  146. package/src/models/concepts/ConceptRelationModel.js +6 -2
  147. package/src/models/content/ContentLinkModel.js +2 -0
  148. package/src/models/href/Href.js +2 -1
  149. package/src/models/types.js +2 -2
  150. package/src/react-server/__tests__/serverUtil.spec.js +15 -14
  151. package/src/react-server/renderSSRComplete.js +4 -1
  152. package/src/react-server/serverNoSSR.js +1 -1
  153. package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
  154. package/src/redux/_modularui/actions.js +12 -12
  155. package/src/redux/_modularui/reducer.js +0 -1
  156. package/src/redux/actions/SignIn.js +5 -11
  157. package/src/redux/actions/__tests__/Application.spec.js +1 -0
  158. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
  159. package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
  160. package/src/utils/helpers/objects.js +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":"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","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: any\n ): Array<U> {\n return this.collection.map<U>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":"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","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
@@ -50,7 +50,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
50
50
  function getInitialChildModelLinks() {
51
51
  var initialChildModelLinks = [];
52
52
  this.collection.forEach(function (item) {
53
- if (item && item.getInitialChildModelLinks && typeof item.getInitialChildModelLinks === "function") {
53
+ // $FlowFixMe[method-unbinding]
54
+ if (typeof (item === null || item === void 0 ? void 0 : item.getInitialChildModelLinks) === "function") {
54
55
  initialChildModelLinks.push.apply(initialChildModelLinks, (0, _toConsumableArray2.default)(item.getInitialChildModelLinks()));
55
56
  }
56
57
  });
@@ -64,7 +65,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
64
65
  key: "setChildModels",
65
66
  value: function setChildModels(models) {
66
67
  this.collection.forEach(function (item) {
67
- if (typeof item.setChildModels === "function") {
68
+ // $FlowFixMe[prop-missing]
69
+ if (typeof item["setChildModels"] === "function") {
68
70
  item.setChildModels(models);
69
71
  }
70
72
  });
@@ -16,11 +16,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
16
16
  const initialChildModelLinks = [];
17
17
 
18
18
  this.collection.forEach((item: T) => {
19
- if (
20
- item &&
21
- item.getInitialChildModelLinks &&
22
- typeof item.getInitialChildModelLinks === "function"
23
- ) {
19
+ // $FlowFixMe[method-unbinding]
20
+ if (typeof item?.getInitialChildModelLinks === "function") {
24
21
  initialChildModelLinks.push(...item.getInitialChildModelLinks());
25
22
  }
26
23
  });
@@ -33,7 +30,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
33
30
  */
34
31
  setChildModels(models: Array<ModularUIModel>) {
35
32
  this.collection.forEach((item) => {
36
- if (typeof item.setChildModels === "function") {
33
+ // $FlowFixMe[prop-missing]
34
+ if (typeof item["setChildModels"] === "function") {
37
35
  item.setChildModels(models);
38
36
  }
39
37
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC,YACEA,IAAI,IACJA,IAAI,CAACC,yBADL,IAEA,OAAOD,IAAI,CAACC,yBAAZ,KAA0C,UAH5C,EAIE;AACAJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OARD;AAUA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC,YAAI,OAAOA,IAAI,CAACI,cAAZ,KAA+B,UAAnC,EAA+C;AAC7CJ,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OAJD;AAKD;;;EA7BwDE,wB;;eAgC5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n if (\n item &&\n item.getInitialChildModelLinks &&\n typeof item.getInitialChildModelLinks === \"function\"\n ) {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n if (typeof item.setChildModels === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC;AACA,YAAI,QAAOA,IAAP,aAAOA,IAAP,uBAAOA,IAAI,CAAEC,yBAAb,MAA2C,UAA/C,EAA2D;AACzDJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OALD;AAOA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC;AACA,YAAI,OAAOA,IAAI,CAAC,gBAAD,CAAX,KAAkC,UAAtC,EAAkD;AAChDA,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OALD;AAMD;;;EA3BwDE,wB;;eA8B5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n // $FlowFixMe[method-unbinding]\n if (typeof item?.getInitialChildModelLinks === \"function\") {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n // $FlowFixMe[prop-missing]\n if (typeof item[\"setChildModels\"] === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
@@ -258,6 +258,7 @@ var ResourceModel = /*#__PURE__*/function (_BaseModel) {
258
258
  return _objectSpread(_objectSpread({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ResourceModel.prototype), "dehydrate", this).call(this)), {}, {
259
259
  key: this._key,
260
260
  locale: this._locale,
261
+ // $FlowFixMe[missing-type-arg]
261
262
  childModels: (0, _map.default)(_context = this._childModels).call(_context, function (childModel) {
262
263
  return childModel.dehydrate();
263
264
  })
@@ -200,8 +200,9 @@ class ResourceModel extends BaseModel implements IModelWithChildModels {
200
200
  ...super.dehydrate(),
201
201
  key: this._key,
202
202
  locale: this._locale,
203
- childModels: this._childModels.map<ModularUIModel>((childModel) =>
204
- childModel.dehydrate()
203
+ // $FlowFixMe[missing-type-arg]
204
+ childModels: this._childModels.map<ModularUIModel>(
205
+ (childModel: ModularUIModel) => childModel.dehydrate()
205
206
  ),
206
207
  };
207
208
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":"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","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\";\n\n/**\n * Base model\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(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\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 this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\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(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\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(models: Array<ModularUIModel>) {\n if (!models) {\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 childModels: this._childModels.map<ModularUIModel>((childModel) =>\n childModel.dehydrate()\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"file":"ResourceModel.js"}
1
+ {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":"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","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\";\n\n/**\n * Base model\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(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\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 this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\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(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\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(models: Array<ModularUIModel>) {\n if (!models) {\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"],"file":"ResourceModel.js"}
@@ -35,6 +35,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
35
35
 
36
36
  var _ConceptDetailModel2 = _interopRequireDefault(require("./ConceptDetailModel"));
37
37
 
38
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
39
+
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
41
 
40
42
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -110,7 +112,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
110
112
  value: function setChildModels(models) {
111
113
  // $FlowExpectedError[incompatible-type]
112
114
  this.conceptType = (0, _find.default)(models).call(models, function (model) {
113
- return model.type === "ConceptTypeDetail";
115
+ return model instanceof _ConceptTypeDetailModel.default;
114
116
  });
115
117
  var scenarioSteps = [];
116
118
  var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
@@ -1,5 +1,6 @@
1
1
  // @flow
2
2
  import ConceptDetailModel from "./ConceptDetailModel";
3
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
3
4
 
4
5
  import type { ModularUIResponse } from "../../modularui";
5
6
  import type { ModularUIModel } from "../types";
@@ -58,7 +59,7 @@ class BusinessScenarioModel extends ConceptDetailModel {
58
59
  setChildModels(models: Array<ModularUIModel>) {
59
60
  // $FlowExpectedError[incompatible-type]
60
61
  this.conceptType = models.find(
61
- (model) => model.type === "ConceptTypeDetail"
62
+ (model) => model instanceof ConceptTypeDetailModel
62
63
  );
63
64
 
64
65
  const scenarioSteps = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","type","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model.type === \"ConceptTypeDetail\"\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","ConceptTypeDetailModel","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
@@ -53,6 +53,8 @@ var _ConceptRelationCollection = _interopRequireDefault(require("./ConceptRelati
53
53
 
54
54
  var _SourceReferenceCollection = _interopRequireDefault(require("./SourceReferenceCollection"));
55
55
 
56
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
57
+
56
58
  var _Constants = require("../../constants/Constants");
57
59
 
58
60
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -122,7 +124,7 @@ var ConceptDetailModel = /*#__PURE__*/function (_ResourceModel) {
122
124
  value: function setChildModels(models) {
123
125
  // $FlowExpectedError[incompatible-type]
124
126
  var conceptTypeModel = (0, _find.default)(models).call(models, function (model) {
125
- return model.type === "ConceptTypeDetail";
127
+ return model instanceof _ConceptTypeDetailModel.default;
126
128
  });
127
129
 
128
130
  if (conceptTypeModel) {
@@ -2,6 +2,7 @@
2
2
  import ResourceModel from "../base/ResourceModel";
3
3
  import ConceptRelationCollection from "./ConceptRelationCollection";
4
4
  import SourceReferenceCollection from "./SourceReferenceCollection";
5
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
5
6
 
6
7
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
7
8
 
@@ -14,7 +15,6 @@ import type {
14
15
  import type { ModularUIResponse } from "../../modularui";
15
16
  import type Href from "../href/Href";
16
17
  import type LinkModel from "../links/LinkModel";
17
- import type ConceptTypeDetailModel from "./ConceptTypeDetailModel";
18
18
 
19
19
  /**
20
20
  * Model for concept details, available through modelcatalog
@@ -70,7 +70,7 @@ export default class ConceptDetailModel extends ResourceModel {
70
70
  setChildModels(models: Array<ModularUIModel>) {
71
71
  // $FlowExpectedError[incompatible-type]
72
72
  const conceptTypeModel: ?ConceptTypeDetailModel = models.find(
73
- (model) => model.type === "ConceptTypeDetail"
73
+ (model) => model instanceof ConceptTypeDetailModel
74
74
  );
75
75
 
76
76
  if (conceptTypeModel) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"names":["ConceptDetailModel","modularuiResponse","_relations","ConceptRelationCollection","data","relations","entryDate","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","getInitialChildModelLinks","isCacheable","models","conceptTypeModel","model","type","conceptType","setChildModels","getData","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","_conceptType","conceptLabel","formula","labelTypes","labelType","setting","labels","label","_id","ids","propertyTypes","propertyType","properties","property","conceptProperties","textFragments","textFragment","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","keys","textfragments","availableLocales","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","availableLanguages","split","value","contributions","resourcetype","ResourceModel"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\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 ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\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 );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\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>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model.type === \"ConceptTypeDetail\"\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models);\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 * 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 taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id)\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = []\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate\n );\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 entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"file":"ConceptDetailModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"names":["ConceptDetailModel","modularuiResponse","_relations","ConceptRelationCollection","data","relations","entryDate","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","getInitialChildModelLinks","isCacheable","models","conceptTypeModel","model","ConceptTypeDetailModel","conceptType","setChildModels","getData","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","_conceptType","conceptLabel","formula","labelTypes","labelType","setting","labels","label","type","_id","ids","propertyTypes","propertyType","properties","property","conceptProperties","textFragments","textFragment","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","keys","textfragments","availableLocales","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","availableLanguages","split","value","contributions","resourcetype","ResourceModel"],"mappings":"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","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\";\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 );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\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>) {\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);\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 * 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 taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id)\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = []\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate\n );\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 entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"file":"ConceptDetailModel.js"}
@@ -5,12 +5,15 @@ import LinkCollection from "../links/LinkCollection";
5
5
  import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
6
6
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
7
7
 
8
- import type { ModularUIModel } from "../types";
8
+ import type { IModelWithChildModels, ModularUIModel } from "../types";
9
9
  import type Href from "../href/Href";
10
10
  /**
11
11
  * Link to a concept
12
12
  */
13
- export default class ConceptLinkModel extends BaseModel {
13
+ export default class ConceptLinkModel
14
+ extends BaseModel
15
+ implements IModelWithChildModels
16
+ {
14
17
  _links: ?LinkCollection;
15
18
  _entryDate: ?ISO_DATE;
16
19
  _conceptType: ?ConceptTypeDetailModel;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"names":["ConceptLinkModel","data","entryDate","_entryDate","conceptTypeLink","isCacheable","models","href","conceptTypeModel","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","ConceptTypeDetailModel","_id","label","getData","_links","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","addParameter","TIMEVERSION_FILTER_NAME","link","LinkModel","create","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel extends BaseModel {\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._links;\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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"file":"ConceptLinkModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"names":["ConceptLinkModel","data","entryDate","_entryDate","conceptTypeLink","isCacheable","models","href","conceptTypeModel","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","ConceptTypeDetailModel","_id","label","getData","_links","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","addParameter","TIMEVERSION_FILTER_NAME","link","LinkModel","create","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._links;\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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"file":"ConceptLinkModel.js"}
@@ -2,12 +2,16 @@
2
2
  import ConceptLinkModel from "./ConceptLinkModel";
3
3
  import LinkModel from "../links/LinkModel";
4
4
 
5
- import type { ModularUIModel, textfragmentJSON } from "../types";
5
+ import type {
6
+ IModelWithChildModels,
7
+ ModularUIModel,
8
+ textfragmentJSON,
9
+ } from "../types";
6
10
 
7
11
  /**
8
12
  * Concept relation model
9
13
  */
10
- export default class ConceptRelationModel {
14
+ export default class ConceptRelationModel implements IModelWithChildModels {
11
15
  _relation: Object;
12
16
  _concept: ConceptLinkModel;
13
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptRelationModel.js"],"names":["ConceptRelationModel","relation","entryDate","_relation","concept","_concept","ConceptLinkModel","getInitialChildModelLinks","models","setChildModels","relationType","textFragments","relationLabel","relationDirection"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AAIA;AACA;AACA;IACqBA,oB;AAInB;AACF;AACE,gCAAYC,QAAZ,EAA2D;AAAA,QAA7BC,SAA6B,uEAAN,IAAM;AAAA;AAAA;AAAA;AACzD,SAAKC,SAAL,GAAiBF,QAAjB;;AAEA,QAAIA,QAAQ,IAAIA,QAAQ,CAACG,OAAzB,EAAkC;AAChC,WAAKC,QAAL,GAAgB,IAAIC,yBAAJ,CAAqBL,QAAQ,CAACG,OAA9B,EAAuCF,SAAvC,CAAhB;AACD;AACF;AAED;AACF;;;;;WACE,qCAA8C;AAC5C,aAAO,KAAKE,OAAL,CAAaG,yBAAb,EAAP;AACD;AAED;AACF;;;;WACE,wBAAeC,MAAf,EAA8C;AAC5C,WAAKJ,OAAL,CAAaK,cAAb,CAA4BD,MAA5B;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKL,SAAL,CAAeO,YAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAA6C;AAC3C,aAAO,KAAKP,SAAL,CAAeQ,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKR,SAAL,CAAeS,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKT,SAAL,CAAeU,iBAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAgC;AAC9B,aAAO,KAAKR,QAAZ;AACD;AAED;AACF;AACA;;SACE,aAAYD,OAAZ,EAAuC;AACrC,WAAKC,QAAL,GAAgBD,OAAhB;AACD","sourcesContent":["// @flow\nimport ConceptLinkModel from \"./ConceptLinkModel\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type { ModularUIModel, textfragmentJSON } from \"../types\";\n\n/**\n * Concept relation model\n */\nexport default class ConceptRelationModel {\n _relation: Object;\n _concept: ConceptLinkModel;\n\n /**\n */\n constructor(relation: Object, entryDate: ?ISO_DATE = null) {\n this._relation = relation;\n\n if (relation && relation.concept) {\n this._concept = new ConceptLinkModel(relation.concept, entryDate);\n }\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.concept.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.concept.setChildModels(models);\n }\n\n /**\n * Get key of relation\n */\n get key(): string {\n return this._relation.relationType;\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n return this._relation.textFragments;\n }\n\n /**\n * Get Label of relation\n */\n get label(): string {\n return this._relation.relationLabel;\n }\n\n /**\n * Get direction of relation\n */\n get direction(): string {\n return this._relation.relationDirection;\n }\n\n /**\n * Get other concept\n */\n get concept(): ConceptLinkModel {\n return this._concept;\n }\n\n /**\n * Set concept information\n */\n set concept(concept: ConceptLinkModel) {\n this._concept = concept;\n }\n}\n"],"file":"ConceptRelationModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptRelationModel.js"],"names":["ConceptRelationModel","relation","entryDate","_relation","concept","_concept","ConceptLinkModel","getInitialChildModelLinks","models","setChildModels","relationType","textFragments","relationLabel","relationDirection"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AAQA;AACA;AACA;IACqBA,oB;AAInB;AACF;AACE,gCAAYC,QAAZ,EAA2D;AAAA,QAA7BC,SAA6B,uEAAN,IAAM;AAAA;AAAA;AAAA;AACzD,SAAKC,SAAL,GAAiBF,QAAjB;;AAEA,QAAIA,QAAQ,IAAIA,QAAQ,CAACG,OAAzB,EAAkC;AAChC,WAAKC,QAAL,GAAgB,IAAIC,yBAAJ,CAAqBL,QAAQ,CAACG,OAA9B,EAAuCF,SAAvC,CAAhB;AACD;AACF;AAED;AACF;;;;;WACE,qCAA8C;AAC5C,aAAO,KAAKE,OAAL,CAAaG,yBAAb,EAAP;AACD;AAED;AACF;;;;WACE,wBAAeC,MAAf,EAA8C;AAC5C,WAAKJ,OAAL,CAAaK,cAAb,CAA4BD,MAA5B;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKL,SAAL,CAAeO,YAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAA6C;AAC3C,aAAO,KAAKP,SAAL,CAAeQ,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKR,SAAL,CAAeS,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKT,SAAL,CAAeU,iBAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAgC;AAC9B,aAAO,KAAKR,QAAZ;AACD;AAED;AACF;AACA;;SACE,aAAYD,OAAZ,EAAuC;AACrC,WAAKC,QAAL,GAAgBD,OAAhB;AACD","sourcesContent":["// @flow\nimport ConceptLinkModel from \"./ConceptLinkModel\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type {\n IModelWithChildModels,\n ModularUIModel,\n textfragmentJSON,\n} from \"../types\";\n\n/**\n * Concept relation model\n */\nexport default class ConceptRelationModel implements IModelWithChildModels {\n _relation: Object;\n _concept: ConceptLinkModel;\n\n /**\n */\n constructor(relation: Object, entryDate: ?ISO_DATE = null) {\n this._relation = relation;\n\n if (relation && relation.concept) {\n this._concept = new ConceptLinkModel(relation.concept, entryDate);\n }\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.concept.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.concept.setChildModels(models);\n }\n\n /**\n * Get key of relation\n */\n get key(): string {\n return this._relation.relationType;\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n return this._relation.textFragments;\n }\n\n /**\n * Get Label of relation\n */\n get label(): string {\n return this._relation.relationLabel;\n }\n\n /**\n * Get direction of relation\n */\n get direction(): string {\n return this._relation.relationDirection;\n }\n\n /**\n * Get other concept\n */\n get concept(): ConceptLinkModel {\n return this._concept;\n }\n\n /**\n * Set concept information\n */\n set concept(concept: ConceptLinkModel) {\n this._concept = concept;\n }\n}\n"],"file":"ConceptRelationModel.js"}
@@ -70,6 +70,7 @@ var ContentLinkModel = /*#__PURE__*/function (_BaseModel) {
70
70
  }
71
71
  /**
72
72
  */
73
+ // $FlowFixMe[method-unbinding]
73
74
 
74
75
 
75
76
  (0, _createClass2.default)(ContentLinkModel, [{
@@ -84,6 +85,7 @@ var ContentLinkModel = /*#__PURE__*/function (_BaseModel) {
84
85
  }
85
86
  /**
86
87
  */
88
+ // $FlowFixMe[method-unbinding]
87
89
 
88
90
  }, {
89
91
  key: "setChildModels",
@@ -33,6 +33,7 @@ export default class ContentLinkModel
33
33
 
34
34
  /**
35
35
  */
36
+ // $FlowFixMe[method-unbinding]
36
37
  getInitialChildModelLinks(): Array<LinkModel> {
37
38
  if (this.contentTypeLink) {
38
39
  this.contentTypeLink.isCacheable = true;
@@ -44,6 +45,7 @@ export default class ContentLinkModel
44
45
 
45
46
  /**
46
47
  */
48
+ // $FlowFixMe[method-unbinding]
47
49
  setChildModels(models: Array<ModularUIModel>) {
48
50
  if (this.contentTypeLink) {
49
51
  const href = this.contentTypeLink.href;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/content/ContentLinkModel.js"],"names":["ContentLinkModel","data","entryDate","_entryDate","contentTypeLink","isCacheable","models","href","contentTypeModel","model","selfhref","equalsWithParameters","type","contentType","_contentType","ContentTypeModel","getData","startURI","_links","self","Href","encodeURIComponent","substring","length","indexOf","section","substr","addParameter","TIMEVERSION_FILTER_NAME","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","hash","_items","items","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class ContentLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _contentType: ContentTypeModel | null = null;\n _items: Array<ContentLinkModel>;\n\n /**\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.contentTypeLink) {\n this.contentTypeLink.isCacheable = true;\n return [this.contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.contentTypeLink) {\n const href = this.contentTypeLink.href;\n const contentTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (contentTypeModel?.type === \"ContentType\") {\n this.contentType = contentTypeModel;\n }\n }\n }\n\n /**\n * Retrieve content type\n */\n get contentType(): ?ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n * Set concept type\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n */\n set entryDate(entryDate: ISO_DATE) {\n this._entryDate = entryDate;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.getData(\"_id\", \"\");\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve the label of the source a link to a section belongs to\n */\n get sourceLabel(): string | null {\n return this.getData(\"sourceLabel\");\n }\n\n /**\n * Encode the content-identifier of the path to the content resource.\n * This makes it a single uri part, which can be used on routes to make nested routes\n */\n get encodedHref(): Href {\n const startURI = \"/content/\";\n\n const selfhref = this.data._links.self.href;\n const href = has(this.data, \"section\")\n ? new Href(\n `${startURI}${encodeURIComponent(\n selfhref.substring(\n startURI.length,\n selfhref.indexOf(this.data.section) - 1\n )\n )}/${this.getData(\"section\")}`\n )\n : new Href(\n `${startURI}${encodeURIComponent(\n this.data._links.self.href.substr(startURI.length)\n )}`\n );\n\n if (this._entryDate !== null) {\n return href.addParameter(TIMEVERSION_FILTER_NAME, this._entryDate);\n }\n\n return href;\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._links;\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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get subSectionID(): string {\n return this.selfhref.hash;\n }\n\n /**\n */\n get contentTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"contenttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get contentTypeHref(): Href | null {\n if (this.contentTypeLink) {\n return this.contentTypeLink.href;\n }\n\n return null;\n }\n\n /**\n * Children of link model in TOC\n */\n set items(items: Array<ContentLinkModel>) {\n this._items = items;\n }\n\n /**\n */\n get items(): Array<ContentLinkModel> {\n return this._items;\n }\n}\n"],"file":"ContentLinkModel.js"}
1
+ {"version":3,"sources":["../../../src/models/content/ContentLinkModel.js"],"names":["ContentLinkModel","data","entryDate","_entryDate","contentTypeLink","isCacheable","models","href","contentTypeModel","model","selfhref","equalsWithParameters","type","contentType","_contentType","ContentTypeModel","getData","startURI","_links","self","Href","encodeURIComponent","substring","length","indexOf","section","substr","addParameter","TIMEVERSION_FILTER_NAME","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","hash","_items","items","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class ContentLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _contentType: ContentTypeModel | null = null;\n _items: Array<ContentLinkModel>;\n\n /**\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.contentTypeLink) {\n this.contentTypeLink.isCacheable = true;\n return [this.contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n // $FlowFixMe[method-unbinding]\n setChildModels(models: Array<ModularUIModel>) {\n if (this.contentTypeLink) {\n const href = this.contentTypeLink.href;\n const contentTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (contentTypeModel?.type === \"ContentType\") {\n this.contentType = contentTypeModel;\n }\n }\n }\n\n /**\n * Retrieve content type\n */\n get contentType(): ?ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n * Set concept type\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n */\n set entryDate(entryDate: ISO_DATE) {\n this._entryDate = entryDate;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.getData(\"_id\", \"\");\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve the label of the source a link to a section belongs to\n */\n get sourceLabel(): string | null {\n return this.getData(\"sourceLabel\");\n }\n\n /**\n * Encode the content-identifier of the path to the content resource.\n * This makes it a single uri part, which can be used on routes to make nested routes\n */\n get encodedHref(): Href {\n const startURI = \"/content/\";\n\n const selfhref = this.data._links.self.href;\n const href = has(this.data, \"section\")\n ? new Href(\n `${startURI}${encodeURIComponent(\n selfhref.substring(\n startURI.length,\n selfhref.indexOf(this.data.section) - 1\n )\n )}/${this.getData(\"section\")}`\n )\n : new Href(\n `${startURI}${encodeURIComponent(\n this.data._links.self.href.substr(startURI.length)\n )}`\n );\n\n if (this._entryDate !== null) {\n return href.addParameter(TIMEVERSION_FILTER_NAME, this._entryDate);\n }\n\n return href;\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._links;\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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get subSectionID(): string {\n return this.selfhref.hash;\n }\n\n /**\n */\n get contentTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"contenttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get contentTypeHref(): Href | null {\n if (this.contentTypeLink) {\n return this.contentTypeLink.href;\n }\n\n return null;\n }\n\n /**\n * Children of link model in TOC\n */\n set items(items: Array<ContentLinkModel>) {\n this._items = items;\n }\n\n /**\n */\n get items(): Array<ContentLinkModel> {\n return this._items;\n }\n}\n"],"file":"ContentLinkModel.js"}
@@ -82,7 +82,7 @@ var Href = /*#__PURE__*/function () {
82
82
  value: function setFromLocationOrObject(href) {
83
83
  var _this = this;
84
84
 
85
- if (href.pathname) {
85
+ if (typeof href["pathname"] === "string") {
86
86
  this.path = href.pathname;
87
87
  } else if (typeof href._path === "string") {
88
88
  this.path = href._path;
@@ -13,6 +13,7 @@ type HrefObject = {
13
13
  _resourcetype: string,
14
14
  _method: $Keys<typeof HTTP_METHODS>,
15
15
  _state: ?{ [key: string]: any },
16
+ pathname: ?string,
16
17
  };
17
18
 
18
19
  export type HrefInput = Href | HrefObject | LocationShape | string;
@@ -61,7 +62,7 @@ class Href {
61
62
  /**
62
63
  */
63
64
  setFromLocationOrObject(href: LocationShape | HrefObject) {
64
- if (href.pathname) {
65
+ if (typeof href["pathname"] === "string") {
65
66
  this.path = href.pathname;
66
67
  } else if (typeof href._path === "string") {
67
68
  this.path = href._path;