@beinformed/ui 1.56.0 → 1.57.0-contextpath.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/esm/constants/Settings.js +4 -1
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/hooks/useForm.js +3 -1
  5. package/esm/hooks/useForm.js.map +1 -1
  6. package/esm/hooks/useModularUI.js +5 -0
  7. package/esm/hooks/useModularUI.js.map +1 -1
  8. package/esm/hooks/useModularUIBasic.js +11 -1
  9. package/esm/hooks/useModularUIBasic.js.map +1 -1
  10. package/esm/hooks/useModularUIModel.js +36 -25
  11. package/esm/hooks/useModularUIModel.js.map +1 -1
  12. package/esm/models/actions/ActionCollection.js +2 -2
  13. package/esm/models/actions/ActionCollection.js.map +1 -1
  14. package/esm/models/actions/ActionModel.js +27 -8
  15. package/esm/models/actions/ActionModel.js.map +1 -1
  16. package/esm/models/application/ApplicationModel.js +1 -1
  17. package/esm/models/application/ApplicationModel.js.map +1 -1
  18. package/esm/models/base/ResourceModel.js +25 -3
  19. package/esm/models/base/ResourceModel.js.map +1 -1
  20. package/esm/models/caseview/CaseViewModel.js +2 -2
  21. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  22. package/esm/models/concepts/ConceptLinkModel.js +1 -0
  23. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  24. package/esm/models/concepts/SourceReferenceModel.js +2 -1
  25. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  26. package/esm/models/content/ContentIndexModel.js +2 -2
  27. package/esm/models/content/ContentIndexModel.js.map +1 -1
  28. package/esm/models/content/ContentLinkModel.js +2 -0
  29. package/esm/models/content/ContentLinkModel.js.map +1 -1
  30. package/esm/models/content/SectionModel.js +1 -0
  31. package/esm/models/content/SectionModel.js.map +1 -1
  32. package/esm/models/detail/DetailModel.js +1 -1
  33. package/esm/models/detail/DetailModel.js.map +1 -1
  34. package/esm/models/error/ErrorResponse.js +2 -0
  35. package/esm/models/error/ErrorResponse.js.map +1 -1
  36. package/esm/models/form/FormModel.js +1 -1
  37. package/esm/models/form/FormModel.js.map +1 -1
  38. package/esm/models/href/Href.js +71 -7
  39. package/esm/models/href/Href.js.map +1 -1
  40. package/esm/models/href/ListHref.js +1 -1
  41. package/esm/models/href/ListHref.js.map +1 -1
  42. package/esm/models/links/LinkCollection.js +3 -1
  43. package/esm/models/links/LinkCollection.js.map +1 -1
  44. package/esm/models/links/LinkModel.js +10 -9
  45. package/esm/models/links/LinkModel.js.map +1 -1
  46. package/esm/models/list/ListItemCollection.js +1 -1
  47. package/esm/models/list/ListItemCollection.js.map +1 -1
  48. package/esm/models/list/ListItemModel.js +3 -1
  49. package/esm/models/list/ListItemModel.js.map +1 -1
  50. package/esm/models/list/ListModel.js +1 -1
  51. package/esm/models/list/ListModel.js.map +1 -1
  52. package/esm/models/panels/GroupingPanelModel.js +1 -1
  53. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  54. package/esm/models/tab/TabModel.js +2 -2
  55. package/esm/models/tab/TabModel.js.map +1 -1
  56. package/esm/models/taskgroup/TaskGroupModel.js +4 -2
  57. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  58. package/esm/modularui/Authenticate.js +2 -1
  59. package/esm/modularui/Authenticate.js.map +1 -1
  60. package/esm/modularui/ModularUIRequest.js +43 -7
  61. package/esm/modularui/ModularUIRequest.js.map +1 -1
  62. package/esm/modularui/ModularUIResponse.js +31 -0
  63. package/esm/modularui/ModularUIResponse.js.map +1 -1
  64. package/esm/redux/_modularui/ModularUIActions.js +3 -1
  65. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  66. package/esm/redux/_modularui/ModularUIMiddleware.js +6 -0
  67. package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  68. package/esm/redux/_modularui/types.js.map +1 -1
  69. package/esm/redux/actions/Application.js +11 -4
  70. package/esm/redux/actions/Application.js.map +1 -1
  71. package/esm/redux/connectors/PanelRenderer.js +2 -0
  72. package/esm/redux/connectors/PanelRenderer.js.map +1 -1
  73. package/esm/utils/fetch/types.js.map +1 -1
  74. package/lib/constants/Settings.js +4 -1
  75. package/lib/constants/Settings.js.flow +2 -2
  76. package/lib/constants/Settings.js.map +1 -1
  77. package/lib/hooks/useForm.js +3 -1
  78. package/lib/hooks/useForm.js.flow +2 -0
  79. package/lib/hooks/useForm.js.map +1 -1
  80. package/lib/hooks/useModularUI.js +5 -0
  81. package/lib/hooks/useModularUI.js.flow +6 -1
  82. package/lib/hooks/useModularUI.js.map +1 -1
  83. package/lib/hooks/useModularUIBasic.js +11 -1
  84. package/lib/hooks/useModularUIBasic.js.flow +14 -0
  85. package/lib/hooks/useModularUIBasic.js.map +1 -1
  86. package/lib/hooks/useModularUIModel.js +36 -24
  87. package/lib/hooks/useModularUIModel.js.flow +58 -11
  88. package/lib/hooks/useModularUIModel.js.map +1 -1
  89. package/lib/models/actions/ActionCollection.js +2 -2
  90. package/lib/models/actions/ActionCollection.js.flow +14 -2
  91. package/lib/models/actions/ActionCollection.js.map +1 -1
  92. package/lib/models/actions/ActionModel.js +31 -12
  93. package/lib/models/actions/ActionModel.js.flow +38 -16
  94. package/lib/models/actions/ActionModel.js.map +1 -1
  95. package/lib/models/application/ApplicationModel.js +1 -1
  96. package/lib/models/application/ApplicationModel.js.flow +7 -1
  97. package/lib/models/application/ApplicationModel.js.map +1 -1
  98. package/lib/models/base/ResourceModel.js +24 -3
  99. package/lib/models/base/ResourceModel.js.flow +35 -10
  100. package/lib/models/base/ResourceModel.js.map +1 -1
  101. package/lib/models/caseview/CaseViewModel.js +2 -2
  102. package/lib/models/caseview/CaseViewModel.js.flow +3 -1
  103. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  104. package/lib/models/concepts/ConceptLinkModel.js +1 -0
  105. package/lib/models/concepts/ConceptLinkModel.js.flow +1 -0
  106. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  107. package/lib/models/concepts/SourceReferenceModel.js +2 -1
  108. package/lib/models/concepts/SourceReferenceModel.js.flow +2 -1
  109. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  110. package/lib/models/content/ContentIndexModel.js +2 -2
  111. package/lib/models/content/ContentIndexModel.js.flow +2 -2
  112. package/lib/models/content/ContentIndexModel.js.map +1 -1
  113. package/lib/models/content/ContentLinkModel.js +2 -0
  114. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  115. package/lib/models/content/ContentLinkModel.js.map +1 -1
  116. package/lib/models/content/SectionModel.js +1 -0
  117. package/lib/models/content/SectionModel.js.flow +1 -0
  118. package/lib/models/content/SectionModel.js.map +1 -1
  119. package/lib/models/detail/DetailModel.js +1 -1
  120. package/lib/models/detail/DetailModel.js.flow +2 -0
  121. package/lib/models/detail/DetailModel.js.map +1 -1
  122. package/lib/models/error/ErrorResponse.js +2 -0
  123. package/lib/models/error/ErrorResponse.js.flow +2 -0
  124. package/lib/models/error/ErrorResponse.js.map +1 -1
  125. package/lib/models/form/FormModel.js +1 -1
  126. package/lib/models/form/FormModel.js.flow +1 -1
  127. package/lib/models/form/FormModel.js.map +1 -1
  128. package/lib/models/href/Href.js +71 -7
  129. package/lib/models/href/Href.js.flow +79 -7
  130. package/lib/models/href/Href.js.map +1 -1
  131. package/lib/models/href/ListHref.js +1 -1
  132. package/lib/models/href/ListHref.js.flow +1 -1
  133. package/lib/models/href/ListHref.js.map +1 -1
  134. package/lib/models/href/__tests__/Href.spec.js.flow +9 -3
  135. package/lib/models/links/LinkCollection.js +3 -1
  136. package/lib/models/links/LinkCollection.js.flow +8 -2
  137. package/lib/models/links/LinkCollection.js.map +1 -1
  138. package/lib/models/links/LinkModel.js +10 -9
  139. package/lib/models/links/LinkModel.js.flow +24 -16
  140. package/lib/models/links/LinkModel.js.map +1 -1
  141. package/lib/models/list/ListItemCollection.js +1 -1
  142. package/lib/models/list/ListItemCollection.js.flow +2 -0
  143. package/lib/models/list/ListItemCollection.js.map +1 -1
  144. package/lib/models/list/ListItemModel.js +3 -1
  145. package/lib/models/list/ListItemModel.js.flow +4 -0
  146. package/lib/models/list/ListItemModel.js.map +1 -1
  147. package/lib/models/list/ListModel.js +1 -1
  148. package/lib/models/list/ListModel.js.flow +6 -1
  149. package/lib/models/list/ListModel.js.map +1 -1
  150. package/lib/models/panels/GroupingPanelModel.js +1 -1
  151. package/lib/models/panels/GroupingPanelModel.js.flow +2 -0
  152. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  153. package/lib/models/tab/TabModel.js +2 -2
  154. package/lib/models/tab/TabModel.js.flow +4 -0
  155. package/lib/models/tab/TabModel.js.map +1 -1
  156. package/lib/models/taskgroup/TaskGroupModel.js +4 -2
  157. package/lib/models/taskgroup/TaskGroupModel.js.flow +6 -0
  158. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  159. package/lib/modularui/Authenticate.js +2 -1
  160. package/lib/modularui/Authenticate.js.flow +2 -1
  161. package/lib/modularui/Authenticate.js.map +1 -1
  162. package/lib/modularui/ModularUIRequest.js +43 -7
  163. package/lib/modularui/ModularUIRequest.js.flow +49 -8
  164. package/lib/modularui/ModularUIRequest.js.map +1 -1
  165. package/lib/modularui/ModularUIResponse.js +31 -0
  166. package/lib/modularui/ModularUIResponse.js.flow +35 -0
  167. package/lib/modularui/ModularUIResponse.js.map +1 -1
  168. package/lib/modularui/__tests__/CustomContextPath.spec.js.flow +61 -0
  169. package/lib/redux/_modularui/ModularUIActions.js +3 -1
  170. package/lib/redux/_modularui/ModularUIActions.js.flow +6 -1
  171. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  172. package/lib/redux/_modularui/ModularUIMiddleware.js +6 -0
  173. package/lib/redux/_modularui/ModularUIMiddleware.js.flow +10 -0
  174. package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  175. package/lib/redux/_modularui/types.js.flow +2 -0
  176. package/lib/redux/_modularui/types.js.map +1 -1
  177. package/lib/redux/actions/Application.js +10 -3
  178. package/lib/redux/actions/Application.js.flow +16 -4
  179. package/lib/redux/actions/Application.js.map +1 -1
  180. package/lib/redux/connectors/PanelRenderer.js +2 -0
  181. package/lib/redux/connectors/PanelRenderer.js.flow +1 -0
  182. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  183. package/lib/utils/fetch/types.js.flow +2 -0
  184. package/lib/utils/fetch/types.js.map +1 -1
  185. package/package.json +1 -1
  186. package/src/constants/Settings.js +2 -2
  187. package/src/hooks/useForm.js +2 -0
  188. package/src/hooks/useModularUI.js +6 -1
  189. package/src/hooks/useModularUIBasic.js +14 -0
  190. package/src/hooks/useModularUIModel.js +58 -11
  191. package/src/models/actions/ActionCollection.js +14 -2
  192. package/src/models/actions/ActionModel.js +38 -16
  193. package/src/models/application/ApplicationModel.js +7 -1
  194. package/src/models/base/ResourceModel.js +35 -10
  195. package/src/models/caseview/CaseViewModel.js +3 -1
  196. package/src/models/concepts/ConceptLinkModel.js +1 -0
  197. package/src/models/concepts/SourceReferenceModel.js +2 -1
  198. package/src/models/content/ContentIndexModel.js +2 -2
  199. package/src/models/content/ContentLinkModel.js +2 -0
  200. package/src/models/content/SectionModel.js +1 -0
  201. package/src/models/detail/DetailModel.js +2 -0
  202. package/src/models/error/ErrorResponse.js +2 -0
  203. package/src/models/form/FormModel.js +1 -1
  204. package/src/models/href/Href.js +79 -7
  205. package/src/models/href/ListHref.js +1 -1
  206. package/src/models/href/__tests__/Href.spec.js +9 -3
  207. package/src/models/links/LinkCollection.js +8 -2
  208. package/src/models/links/LinkModel.js +24 -16
  209. package/src/models/list/ListItemCollection.js +2 -0
  210. package/src/models/list/ListItemModel.js +4 -0
  211. package/src/models/list/ListModel.js +6 -1
  212. package/src/models/panels/GroupingPanelModel.js +2 -0
  213. package/src/models/tab/TabModel.js +4 -0
  214. package/src/models/taskgroup/TaskGroupModel.js +6 -0
  215. package/src/modularui/Authenticate.js +2 -1
  216. package/src/modularui/ModularUIRequest.js +49 -8
  217. package/src/modularui/ModularUIResponse.js +35 -0
  218. package/src/modularui/__tests__/CustomContextPath.spec.js +61 -0
  219. package/src/modularui/__tests__/contributions.json +312 -0
  220. package/src/modularui/__tests__/data.json +263 -0
  221. package/src/redux/_modularui/ModularUIActions.js +6 -1
  222. package/src/redux/_modularui/ModularUIMiddleware.js +10 -0
  223. package/src/redux/_modularui/types.js +2 -0
  224. package/src/redux/actions/Application.js +16 -4
  225. package/src/redux/connectors/PanelRenderer.js +1 -0
  226. package/src/utils/fetch/types.js +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIResponse.js","names":["has","ModularUIResponse","constructor","_defineProperty","create","input","response","dataKey","_Object$keys","data","contributionsKey","contributions","key","locale","_locale","_key","_data","_contributions","parameters","_parameters","rehydrate","modelData"],"sources":["../../src/modularui/ModularUIResponse.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\n\nimport type Parameter from \"../models/parameter/Parameter\";\n\n/**\n */\nclass ModularUIResponse {\n _key: string = \"unknown\";\n _data: Object;\n _contributions: Object;\n _locale: string = \"en\";\n _parameters: Array<Parameter> = [];\n\n /**\n */\n static create(input: {\n key: string,\n data: Object,\n contributions: Object,\n }): ModularUIResponse {\n const response = new ModularUIResponse();\n\n if (has(input, \"data\") && has(input, \"contributions\")) {\n const [dataKey] = Object.keys(input.data);\n const [contributionsKey] = Object.keys(input.contributions);\n\n response.key = input.key ?? contributionsKey;\n response.data = input.data?.[dataKey];\n response.contributions = input.contributions?.[contributionsKey];\n }\n\n return response;\n }\n\n /**\n */\n set locale(locale: string) {\n this._locale = locale;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n */\n set key(key: string) {\n this._key = key;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n set data(data: Object) {\n this._data = data;\n }\n\n /**\n */\n get data(): Object {\n return this._data;\n }\n\n /**\n */\n set contributions(contributions: Object) {\n this._contributions = contributions;\n }\n\n /**\n */\n get contributions(): Object {\n return this._contributions;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n static rehydrate(data: {\n key: string,\n locale: string,\n data: Object,\n contributions: Object,\n }): ModularUIResponse {\n const modelData = new ModularUIResponse();\n\n modelData.locale = data.locale;\n modelData.key = data.key;\n modelData.data = data.data;\n modelData.contributions = data.contributions;\n\n return modelData;\n }\n}\n\nexport default ModularUIResponse;\n"],"mappings":";;AACA,SAASA,GAAG,QAAQ,0BAA0B;AAI9C;AACA;AACA,MAAMC,iBAAiB,CAAC;EAAAC,YAAA;IAAAC,eAAA,eACP,SAAS;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBAGN,IAAI;IAAAA,eAAA,sBACU,EAAE;EAAA;EAElC;AACF;EACE,OAAOC,MAAMA,CAACC,KAIb,EAAqB;IACpB,MAAMC,QAAQ,GAAG,IAAIL,iBAAiB,CAAC,CAAC;IAExC,IAAID,GAAG,CAACK,KAAK,EAAE,MAAM,CAAC,IAAIL,GAAG,CAACK,KAAK,EAAE,eAAe,CAAC,EAAE;MACrD,MAAM,CAACE,OAAO,CAAC,GAAGC,YAAA,CAAYH,KAAK,CAACI,IAAI,CAAC;MACzC,MAAM,CAACC,gBAAgB,CAAC,GAAGF,YAAA,CAAYH,KAAK,CAACM,aAAa,CAAC;MAE3DL,QAAQ,CAACM,GAAG,GAAGP,KAAK,CAACO,GAAG,IAAIF,gBAAgB;MAC5CJ,QAAQ,CAACG,IAAI,GAAGJ,KAAK,CAACI,IAAI,GAAGF,OAAO,CAAC;MACrCD,QAAQ,CAACK,aAAa,GAAGN,KAAK,CAACM,aAAa,GAAGD,gBAAgB,CAAC;IAClE;IAEA,OAAOJ,QAAQ;EACjB;;EAEA;AACF;EACE,IAAIO,MAAMA,CAACA,MAAc,EAAE;IACzB,IAAI,CAACC,OAAO,GAAGD,MAAM;EACvB;;EAEA;AACF;EACE,IAAIA,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACC,OAAO;EACrB;;EAEA;AACF;EACE,IAAIF,GAAGA,CAACA,GAAW,EAAE;IACnB,IAAI,CAACG,IAAI,GAAGH,GAAG;EACjB;;EAEA;AACF;EACE,IAAIA,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACG,IAAI;EAClB;;EAEA;AACF;EACE,IAAIN,IAAIA,CAACA,IAAY,EAAE;IACrB,IAAI,CAACO,KAAK,GAAGP,IAAI;EACnB;;EAEA;AACF;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACO,KAAK;EACnB;;EAEA;AACF;EACE,IAAIL,aAAaA,CAACA,aAAqB,EAAE;IACvC,IAAI,CAACM,cAAc,GAAGN,aAAa;EACrC;;EAEA;AACF;EACE,IAAIA,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACM,cAAc;EAC5B;;EAEA;AACF;EACE,IAAIC,UAAUA,CAACA,UAA4B,EAAE;IAC3C,IAAI,CAACC,WAAW,GAAGD,UAAU;EAC/B;;EAEA;AACF;EACE,IAAIA,UAAUA,CAAA,EAAqB;IACjC,OAAO,IAAI,CAACC,WAAW;EACzB;;EAEA;AACF;EACE,OAAOC,SAASA,CAACX,IAKhB,EAAqB;IACpB,MAAMY,SAAS,GAAG,IAAIpB,iBAAiB,CAAC,CAAC;IAEzCoB,SAAS,CAACR,MAAM,GAAGJ,IAAI,CAACI,MAAM;IAC9BQ,SAAS,CAACT,GAAG,GAAGH,IAAI,CAACG,GAAG;IACxBS,SAAS,CAACZ,IAAI,GAAGA,IAAI,CAACA,IAAI;IAC1BY,SAAS,CAACV,aAAa,GAAGF,IAAI,CAACE,aAAa;IAE5C,OAAOU,SAAS;EAClB;AACF;AAEA,eAAepB,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIResponse.js","names":["has","getBasePath","ModularUIResponse","constructor","_defineProperty","create","input","response","dataKey","_Object$keys","data","contributionsKey","contributions","key","origin","contextPath","_origin","_contextPath","locale","_locale","_key","_data","_contributions","parameters","_parameters","rehydrate","modelData"],"sources":["../../src/modularui/ModularUIResponse.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\nimport { getBasePath } from \"../constants\";\n\nimport type Parameter from \"../models/parameter/Parameter\";\n\n/**\n */\nclass ModularUIResponse {\n _key: string = \"unknown\";\n _data: Object;\n _contributions: Object;\n _locale: string = \"en\";\n _parameters: Array<Parameter> = [];\n _contextPath: string = getBasePath();\n _origin: string = \"\";\n\n /**\n */\n static create(input: {\n key: string,\n data: Object,\n contributions: Object,\n origin?: string,\n contextPath?: string,\n }): ModularUIResponse {\n const response = new ModularUIResponse();\n\n if (has(input, \"data\") && has(input, \"contributions\")) {\n const [dataKey] = Object.keys(input.data);\n const [contributionsKey] = Object.keys(input.contributions);\n\n response.key = input.key ?? contributionsKey;\n response.data = input.data?.[dataKey];\n response.contributions = input.contributions?.[contributionsKey];\n response.origin = input.origin;\n response.contextPath = input.contextPath;\n }\n\n return response;\n }\n\n /**\n */\n set origin(origin: ?string) {\n this._origin = origin ?? \"\";\n }\n\n /**\n */\n get origin(): string {\n return this._origin;\n }\n\n /**\n */\n set contextPath(contextPath: ?string) {\n this._contextPath = contextPath ?? getBasePath();\n }\n\n /**\n */\n get contextPath(): string {\n return this._contextPath;\n }\n\n /**\n */\n set locale(locale: string) {\n this._locale = locale;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n */\n set key(key: string) {\n this._key = key;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n set data(data: Object) {\n this._data = data;\n }\n\n /**\n */\n get data(): Object {\n return this._data;\n }\n\n /**\n */\n set contributions(contributions: Object) {\n this._contributions = contributions;\n }\n\n /**\n */\n get contributions(): Object {\n return this._contributions;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n static rehydrate(data: {\n key: string,\n locale: string,\n data: Object,\n contributions: Object,\n origin?: string,\n contextPath?: string,\n }): ModularUIResponse {\n const modelData = new ModularUIResponse();\n\n modelData.origin = data.origin;\n modelData.contextPath = data.contextPath;\n modelData.locale = data.locale;\n modelData.key = data.key;\n modelData.data = data.data;\n modelData.contributions = data.contributions;\n\n return modelData;\n }\n}\n\nexport default ModularUIResponse;\n"],"mappings":"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","ignoreList":[]}
@@ -78,7 +78,9 @@ const loadModelSuccessAction = (key, model, updateHandler) => {
78
78
  export const loadModel = (key, href, options) => ({
79
79
  type: "MODULARUI/FETCH",
80
80
  payload: {
81
- href: href instanceof Href ? href : new Href(href),
81
+ origin: options?.origin,
82
+ contextPath: options?.contextPath,
83
+ href: href instanceof Href ? href : new Href(href, "", options?.origin, options?.contextPath),
82
84
  method: options?.method ?? HTTP_METHODS.GET,
83
85
  data: options?.data,
84
86
  locale: options?.locale ?? "en",
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","method","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","LOADING","loadModelPromise","_Promise","resolve","then","response","FINISHED","catch","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n href: href instanceof Href ? href : new Href(href),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key);\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then((response) => {\n if (response?.type === \"FINISH_PROGRESS\") {\n dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));\n }\n\n return dispatch(finishProgress());\n })\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","origin","contextPath","method","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","LOADING","loadModelPromise","_Promise","resolve","then","response","FINISHED","catch","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", options?.origin, options?.contextPath),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key);\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then((response) => {\n if (response?.type === \"FINISH_PROGRESS\") {\n dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));\n }\n\n return dispatch(finishProgress());\n })\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,12 @@ const createRequest = modularui => {
15
15
  isReload: modularui.isReload,
16
16
  cache: modularui.cache
17
17
  });
18
+ if (modularui.origin) {
19
+ request.origin = modularui.origin;
20
+ }
21
+ if (modularui.contextPath) {
22
+ request.contextPath = modularui.contextPath;
23
+ }
18
24
  if (modularui.targetModel) {
19
25
  request.targetModel = modularui.targetModel;
20
26
  request.forceTargetModel = modularui.forceTargetModel ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIMiddleware.js","names":["ModularUIRequest","HTTP_METHODS","startProgress","finishProgress","handleError","createRequest","modularui","request","href","method","GET","data","locale","childmodels","isReload","cache","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_Promise","then","result","catch","error","Error","errorHandler","errorAction","err","errorResult","handleFetch","action","requestOptions","payload","modularuiRequest","fetch","modularUIMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport { handleError } from \"../actions/Error\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n data?: any,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n });\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIMiddleware.js","names":["ModularUIRequest","HTTP_METHODS","startProgress","finishProgress","handleError","createRequest","modularui","request","href","method","GET","data","locale","childmodels","isReload","cache","origin","contextPath","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_Promise","then","result","catch","error","Error","errorHandler","errorAction","err","errorResult","handleFetch","action","requestOptions","payload","modularuiRequest","fetch","modularUIMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport { handleError } from \"../actions/Error\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n data?: any,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n });\n\n if (modularui.origin) {\n request.origin = modularui.origin;\n }\n\n if (modularui.contextPath) {\n request.contextPath = modularui.contextPath;\n }\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n data?: any,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n data?: any,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
@@ -1,16 +1,23 @@
1
1
  import { loadModularUI, removeModelByKey } from "../_modularui/ModularUIActions";
2
- import { allKeysByHref } from "../_modularui/ModularUISelectors";
2
+ import { allKeysByHref, getApplication } from "../_modularui/ModularUISelectors";
3
3
  import { ApplicationModel, Href } from "../../models";
4
4
  import { getLocale } from "../selectors/i18n";
5
5
  /**
6
6
  */
7
7
  export const reloadApplication = () => (dispatch, getState) => {
8
- const allKeys = allKeysByHref(getState(), "/");
8
+ const state = getState();
9
+ let applicationHref = new Href("/", "Application");
10
+ const application = getApplication(state);
11
+ if (application) {
12
+ applicationHref.contextPath = application.contextPath;
13
+ applicationHref.origin = application.origin;
14
+ }
15
+ const allKeys = allKeysByHref(state, applicationHref);
9
16
  for (const key of allKeys) {
10
17
  dispatch(removeModelByKey(key));
11
18
  }
12
- const modelKey = `application(/)(${getLocale(getState())})`;
13
- return dispatch(loadModularUI(modelKey, new Href("/", "Application"), {
19
+ const modelKey = `application(/)(${getLocale(state)})`;
20
+ return dispatch(loadModularUI(modelKey, applicationHref, {
14
21
  targetModel: ApplicationModel
15
22
  }));
16
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","names":["loadModularUI","removeModelByKey","allKeysByHref","ApplicationModel","Href","getLocale","reloadApplication","dispatch","getState","allKeys","key","modelKey","targetModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../_modularui/ModularUIActions\";\nimport { allKeysByHref } from \"../_modularui/ModularUISelectors\";\nimport { ApplicationModel, Href } from \"../../models\";\nimport { getLocale } from \"../selectors/i18n\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n const allKeys = allKeysByHref(getState(), \"/\");\n for (const key of allKeys) {\n dispatch(removeModelByKey(key));\n }\n\n const modelKey = `application(/)(${getLocale(getState())})`;\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n }),\n );\n };\n"],"mappings":"AACA,SACEA,aAAa,EACbC,gBAAgB,QACX,gCAAgC;AACvC,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,SAAS,QAAQ,mBAAmB;AAI7C;AACA;AACA,OAAO,MAAMC,iBAAiB,GAC5BA,CAAA,KAAmB,CAACC,QAAkB,EAAEC,QAAkB,KAAK;EAC7D,MAAMC,OAAO,GAAGP,aAAa,CAACM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC9C,KAAK,MAAME,GAAG,IAAID,OAAO,EAAE;IACzBF,QAAQ,CAACN,gBAAgB,CAACS,GAAG,CAAC,CAAC;EACjC;EAEA,MAAMC,QAAQ,GAAG,kBAAkBN,SAAS,CAACG,QAAQ,CAAC,CAAC,CAAC,GAAG;EAC3D,OAAOD,QAAQ,CACbP,aAAa,CAACW,QAAQ,EAAE,IAAIP,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE;IACpDQ,WAAW,EAAET;EACf,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Application.js","names":["loadModularUI","removeModelByKey","allKeysByHref","getApplication","ApplicationModel","Href","getLocale","reloadApplication","dispatch","getState","state","applicationHref","application","contextPath","origin","allKeys","key","modelKey","targetModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../_modularui/ModularUIActions\";\nimport {\n allKeysByHref,\n getApplication,\n} from \"../_modularui/ModularUISelectors\";\nimport { ApplicationModel, Href } from \"../../models\";\nimport { getLocale } from \"../selectors/i18n\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n const state = getState();\n\n let applicationHref = new Href(\"/\", \"Application\");\n const application = getApplication(state);\n if (application) {\n applicationHref.contextPath = application.contextPath;\n applicationHref.origin = application.origin;\n }\n\n const allKeys = allKeysByHref(state, applicationHref);\n for (const key of allKeys) {\n dispatch(removeModelByKey(key));\n }\n\n const modelKey = `application(/)(${getLocale(state)})`;\n return dispatch(\n loadModularUI(modelKey, applicationHref, {\n targetModel: ApplicationModel,\n }),\n );\n };\n"],"mappings":"AACA,SACEA,aAAa,EACbC,gBAAgB,QACX,gCAAgC;AACvC,SACEC,aAAa,EACbC,cAAc,QACT,kCAAkC;AACzC,SAASC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,SAAS,QAAQ,mBAAmB;AAI7C;AACA;AACA,OAAO,MAAMC,iBAAiB,GAC5BA,CAAA,KAAmB,CAACC,QAAkB,EAAEC,QAAkB,KAAK;EAC7D,MAAMC,KAAK,GAAGD,QAAQ,CAAC,CAAC;EAExB,IAAIE,eAAe,GAAG,IAAIN,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;EAClD,MAAMO,WAAW,GAAGT,cAAc,CAACO,KAAK,CAAC;EACzC,IAAIE,WAAW,EAAE;IACfD,eAAe,CAACE,WAAW,GAAGD,WAAW,CAACC,WAAW;IACrDF,eAAe,CAACG,MAAM,GAAGF,WAAW,CAACE,MAAM;EAC7C;EAEA,MAAMC,OAAO,GAAGb,aAAa,CAACQ,KAAK,EAAEC,eAAe,CAAC;EACrD,KAAK,MAAMK,GAAG,IAAID,OAAO,EAAE;IACzBP,QAAQ,CAACP,gBAAgB,CAACe,GAAG,CAAC,CAAC;EACjC;EAEA,MAAMC,QAAQ,GAAG,kBAAkBX,SAAS,CAACI,KAAK,CAAC,GAAG;EACtD,OAAOF,QAAQ,CACbR,aAAa,CAACiB,QAAQ,EAAEN,eAAe,EAAE;IACvCO,WAAW,EAAEd;EACf,CAAC,CACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -11,6 +11,8 @@ export const connectPanel = modularui("PanelRenderer", _ref => {
11
11
  if (!href && !match) {
12
12
  throw new Error("Cannot determine panel url because of missing href and match");
13
13
  }
14
+
15
+ // TODO SBO: origin and context?
14
16
  const panelHref = href ? new Href(href) : new Href(match.url);
15
17
  if (match && match.isExact) {
16
18
  panelHref.addParametersFromString(querystring);
@@ -1 +1 @@
1
- {"version":3,"file":"PanelRenderer.js","names":["modularui","Href","connectPanel","_ref","href","match","querystring","Error","panelHref","url","isExact","addParametersFromString","propName"],"sources":["../../../src/redux/connectors/PanelRenderer.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\nimport Href from \"../../models/href/Href\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectPanel: ModularUIConnector = modularui(\n \"PanelRenderer\",\n ({ href, match, querystring = \"\" }) => {\n if (!href && !match) {\n throw new Error(\n \"Cannot determine panel url because of missing href and match\",\n );\n }\n\n const panelHref = href ? new Href(href) : new Href(match.url);\n\n if (match && match.isExact) {\n panelHref.addParametersFromString(querystring);\n }\n\n return panelHref;\n },\n {\n propName: \"panel\",\n },\n);\n"],"mappings":"AACA,OAAOA,SAAS,MAAM,kCAAkC;AACxD,OAAOC,IAAI,MAAM,wBAAwB;AAIzC;AACA;AACA,OAAO,MAAMC,YAAgC,GAAGF,SAAS,CACvD,eAAe,EACfG,IAAA,IAAuC;EAAA,IAAtC;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAAH,IAAA;EAChC,IAAI,CAACC,IAAI,IAAI,CAACC,KAAK,EAAE;IACnB,MAAM,IAAIE,KAAK,CACb,8DACF,CAAC;EACH;EAEA,MAAMC,SAAS,GAAGJ,IAAI,GAAG,IAAIH,IAAI,CAACG,IAAI,CAAC,GAAG,IAAIH,IAAI,CAACI,KAAK,CAACI,GAAG,CAAC;EAE7D,IAAIJ,KAAK,IAAIA,KAAK,CAACK,OAAO,EAAE;IAC1BF,SAAS,CAACG,uBAAuB,CAACL,WAAW,CAAC;EAChD;EAEA,OAAOE,SAAS;AAClB,CAAC,EACD;EACEI,QAAQ,EAAE;AACZ,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"PanelRenderer.js","names":["modularui","Href","connectPanel","_ref","href","match","querystring","Error","panelHref","url","isExact","addParametersFromString","propName"],"sources":["../../../src/redux/connectors/PanelRenderer.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\nimport Href from \"../../models/href/Href\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectPanel: ModularUIConnector = modularui(\n \"PanelRenderer\",\n ({ href, match, querystring = \"\" }) => {\n if (!href && !match) {\n throw new Error(\n \"Cannot determine panel url because of missing href and match\",\n );\n }\n\n // TODO SBO: origin and context?\n const panelHref = href ? new Href(href) : new Href(match.url);\n\n if (match && match.isExact) {\n panelHref.addParametersFromString(querystring);\n }\n\n return panelHref;\n },\n {\n propName: \"panel\",\n },\n);\n"],"mappings":"AACA,OAAOA,SAAS,MAAM,kCAAkC;AACxD,OAAOC,IAAI,MAAM,wBAAwB;AAIzC;AACA;AACA,OAAO,MAAMC,YAAgC,GAAGF,SAAS,CACvD,eAAe,EACfG,IAAA,IAAuC;EAAA,IAAtC;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAAH,IAAA;EAChC,IAAI,CAACC,IAAI,IAAI,CAACC,KAAK,EAAE;IACnB,MAAM,IAAIE,KAAK,CACb,8DACF,CAAC;EACH;;EAEA;EACA,MAAMC,SAAS,GAAGJ,IAAI,GAAG,IAAIH,IAAI,CAACG,IAAI,CAAC,GAAG,IAAIH,IAAI,CAACI,KAAK,CAACI,GAAG,CAAC;EAE7D,IAAIJ,KAAK,IAAIA,KAAK,CAACK,OAAO,EAAE;IAC1BF,SAAS,CAACG,uBAAuB,CAACL,WAAW,CAAC;EAChD;EAEA,OAAOE,SAAS;AAClB,CAAC,EACD;EACEI,QAAQ,EAAE;AACZ,CACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n origin?: string,\n contextPath?: string,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
@@ -148,7 +148,10 @@ const loginType = () => getSetting(_Constants.LOGIN_TYPE, _Constants.INTERNAL_LO
148
148
  /**
149
149
  */
150
150
  exports.loginType = loginType;
151
- const loginPath = () => getSetting(_Constants.LOGIN_PATH_SETTING, "/callback?client_name=FormClient");
151
+ const loginPath = function () {
152
+ let clientName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "FormClient";
153
+ return getSetting(_Constants.LOGIN_PATH_SETTING, `/callback?client_name=${clientName}`);
154
+ };
152
155
  /**
153
156
  */
154
157
  exports.loginPath = loginPath;
@@ -194,8 +194,8 @@ export const loginType = (): string =>
194
194
 
195
195
  /**
196
196
  */
197
- export const loginPath = (): string =>
198
- getSetting(LOGIN_PATH_SETTING, "/callback?client_name=FormClient");
197
+ export const loginPath = (clientName: string = "FormClient"): string =>
198
+ getSetting(LOGIN_PATH_SETTING, `/callback?client_name=${clientName}`);
199
199
  /**
200
200
  */
201
201
  export const loginUsernameField = (): string =>
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, \"/callback?client_name=FormClient\");\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","clientName","arguments","length","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (clientName: string = \"FormClient\"): string =>\n getSetting(LOGIN_PATH_SETTING, `/callback?client_name=${clientName}`);\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,9 @@ const useForm = (href, data) => {
24
24
  method: _constants.HTTP_METHODS.POST,
25
25
  targetModel: _FormModel.default,
26
26
  removeOnUnmount: true,
27
- data
27
+ data,
28
+ origin: formHref.origin,
29
+ contextPath: formHref.contextPath
28
30
  });
29
31
  if (form?.model) {
30
32
  return form.model;
@@ -62,6 +62,8 @@ export const useForm = (href: string | Href, data?: Object): ?FormModel => {
62
62
  targetModel: FormModel,
63
63
  removeOnUnmount: true,
64
64
  data,
65
+ origin: formHref.origin,
66
+ contextPath: formHref.contextPath,
65
67
  });
66
68
 
67
69
  if (form?.model) {
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","names":["_reactRedux","require","_Href","_interopRequireDefault","_constants","_modularui","_useModularUI","_actions","_FormModel","useForm","href","data","formHref","Href","getSetting","addParameter","form","useModularUI","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","model","exports","useFormNavigation","dispatch","useDispatch","previous","previousObject","cancel","cancelForm","submit","loadModularUI","connectKey","selfhref","formdata","updateHandler","newModel","clonedModel","clone","update","remove","removeModelByKey","showFormNotificationAction","showFormNotification","useAttributeUpdate","object","attribute","value","options","updateFormAttribute","useAttributeSet","save","addRepeatableAttributeSet","cancelRepeatableAttributeSet","removeRepeatableAttributeSet"],"sources":["../../src/hooks/useForm.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport type {\n RemoveModelByKeyAction,\n UpdateFormAction,\n} from \"../redux/_modularui\";\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { AttributeType, FormObjectModel, ModularUIModel } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateFormAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateFormAction,\n cancel: (object: FormObjectModel) => UpdateFormAction,\n remove: (object: FormObjectModel) => UpdateFormAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href, data?: Object): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n data,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateHandler: (newModel: ModularUIModel): ModularUIModel => {\n if (newModel instanceof FormModel) {\n const clonedModel: FormModel = form.clone();\n clonedModel.update(newModel);\n return clonedModel;\n }\n return newModel;\n },\n targetModel: FormModel,\n }),\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Hook that returns a function to update attributes of a form object.\n * <br >\n * The returned function accepts the following options:\n *\n * - autosubmit: Automatically submit the form after a change\n * - autosav: Automatically save the form (in the background) after a change\n * - autoupdate: Automatically update the current form object after a change\n * - forceUpdate: Force the update even if conditions are not met.\n * - validate: Activate/deactivate the form object validation by an update.\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel,\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useForm.js","names":["_reactRedux","require","_Href","_interopRequireDefault","_constants","_modularui","_useModularUI","_actions","_FormModel","useForm","href","data","formHref","Href","getSetting","addParameter","form","useModularUI","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","origin","contextPath","model","exports","useFormNavigation","dispatch","useDispatch","previous","previousObject","cancel","cancelForm","submit","loadModularUI","connectKey","selfhref","formdata","updateHandler","newModel","clonedModel","clone","update","remove","removeModelByKey","showFormNotificationAction","showFormNotification","useAttributeUpdate","object","attribute","value","options","updateFormAttribute","useAttributeSet","save","addRepeatableAttributeSet","cancelRepeatableAttributeSet","removeRepeatableAttributeSet"],"sources":["../../src/hooks/useForm.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport type {\n RemoveModelByKeyAction,\n UpdateFormAction,\n} from \"../redux/_modularui\";\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { AttributeType, FormObjectModel, ModularUIModel } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateFormAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateFormAction,\n cancel: (object: FormObjectModel) => UpdateFormAction,\n remove: (object: FormObjectModel) => UpdateFormAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href, data?: Object): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n data,\n origin: formHref.origin,\n contextPath: formHref.contextPath,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateHandler: (newModel: ModularUIModel): ModularUIModel => {\n if (newModel instanceof FormModel) {\n const clonedModel: FormModel = form.clone();\n clonedModel.update(newModel);\n return clonedModel;\n }\n return newModel;\n },\n targetModel: FormModel,\n }),\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Hook that returns a function to update attributes of a form object.\n * <br >\n * The returned function accepts the following options:\n *\n * - autosubmit: Automatically submit the form after a change\n * - autosav: Automatically save the form (in the background) after a change\n * - autoupdate: Automatically update the current form object after a change\n * - forceUpdate: Force the update even if conditions are not met.\n * - validate: Activate/deactivate the form object validation by an update.\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel,\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ var _constants = require("../constants");
11
11
  var _ModularUIActions = require("../redux/_modularui/ModularUIActions");
12
12
  var _useDeepCompareEffect = _interopRequireDefault(require("./useDeepCompareEffect"));
13
13
  var _useI18n = require("./useI18n");
14
+ var _Href = _interopRequireDefault(require("../models/href/Href"));
14
15
  /**
15
16
  */
16
17
  const useKeyForHook = (modelKey, url) => {
@@ -29,6 +30,10 @@ const useModularUI = function (modelKey, url) {
29
30
  const dispatch = (0, _reactRedux.useDispatch)();
30
31
  const href = url?.toString() || "";
31
32
  const key = useKeyForHook(modelKey, href);
33
+ if (url instanceof _Href.default) {
34
+ options.origin = options.origin ?? url.origin;
35
+ options.contextPath = options.contextPath ?? url.contextPath;
36
+ }
32
37
  const prevOptions = (0, _react.useRef)(options);
33
38
  const prevHref = (0, _react.useRef)(href);
34
39
 
@@ -11,8 +11,8 @@ import {
11
11
  import useDeepCompareEffect from "./useDeepCompareEffect";
12
12
 
13
13
  import { useLocale } from "./useI18n";
14
+ import Href from "../models/href/Href";
14
15
 
15
- import type Href from "../models/href/Href";
16
16
  import type { RequestModularUIOptions } from "../utils";
17
17
 
18
18
  /**
@@ -37,6 +37,11 @@ export const useModularUI = (
37
37
  const href = url?.toString() || "";
38
38
  const key = useKeyForHook(modelKey, href);
39
39
 
40
+ if (url instanceof Href) {
41
+ options.origin = options.origin ?? url.origin;
42
+ options.contextPath = options.contextPath ?? url.contextPath;
43
+ }
44
+
40
45
  const prevOptions = useRef(options);
41
46
  const prevHref = useRef(href);
42
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","useKeyForHook","modelKey","url","locale","useLocale","split","useModularUI","options","arguments","length","undefined","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","useDispatch","href","toString","key","prevOptions","useRef","prevHref","useDeepCompareEffect","isOldReload","current","isReload","loadModularUI","useEffect","removeModelByKey","useSelector","state","modularui","exports"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url?.toString() || \"\";\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (href !== \"\" && !isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAKA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AAKA;AACA;AACA,MAAMO,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAG,IAAAC,kBAAS,EAAC,CAAC;EAC1B,OAAO,GAAGH,QAAQ,IAAIC,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKF,MAAM,GAAG;AACvD,CAAC;;AAED;AACA;AACA;AACO,MAAMG,YAAY,GAAG,SAAAA,CAC1BL,QAAgB,EAChBC,GAAkB,EAKV;EAAA,IAJRK,OAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACjCG,MAAM,EAAEC,uBAAY,CAACC,GAAG;IACxBC,eAAe,EAAE;EACnB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,IAAI,GAAGf,GAAG,EAAEgB,QAAQ,CAAC,CAAC,IAAI,EAAE;EAClC,MAAMC,GAAG,GAAGnB,aAAa,CAACC,QAAQ,EAAEgB,IAAI,CAAC;EAEzC,MAAMG,WAAW,GAAG,IAAAC,aAAM,EAACd,OAAO,CAAC;EACnC,MAAMe,QAAQ,GAAG,IAAAD,aAAM,EAACJ,IAAI,CAAC;;EAE7B;EACA,IAAAM,6BAAoB,EAAC,MAAM;IACzB;IACA,MAAMC,WAAW,GACfF,QAAQ,CAACG,OAAO,KAAKR,IAAI,IACzBG,WAAW,CAACK,OAAO,CAACC,QAAQ,IAC5B,CAACnB,OAAO,CAACmB,QAAQ;IAEnB,IAAIT,IAAI,KAAK,EAAE,IAAI,CAACO,WAAW,EAAE;MAC/BT,QAAQ,CAAC,IAAAY,+BAAa,EAACR,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;IAC7C;IAEAa,WAAW,CAACK,OAAO,GAAGlB,OAAO;IAC7Be,QAAQ,CAACG,OAAO,GAAGR,IAAI;EACzB,CAAC,EAAE,CAACE,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;EAExB,MAAM;IAAEO,eAAe,GAAG;EAAM,CAAC,GAAGP,OAAO;EAC3C,IAAAqB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAId,eAAe,EAAE;QACnBC,QAAQ,CAAC,IAAAc,kCAAgB,EAACV,GAAG,CAAC,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACJ,QAAQ,EAAEI,GAAG,EAAEL,eAAe,CAAC,CAAC;;EAEpC;EACA,OAAO,IAAAgB,uBAAW,EAAEC,KAAK,IAAK;IAC5B,OAAOA,KAAK,CAACC,SAAS,CAACb,GAAG,CAAC;EAC7B,CAAC,CAAC;AACJ,CAAC;AAACc,OAAA,CAAA3B,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","_Href","useKeyForHook","modelKey","url","locale","useLocale","split","useModularUI","options","arguments","length","undefined","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","useDispatch","href","toString","key","Href","origin","contextPath","prevOptions","useRef","prevHref","useDeepCompareEffect","isOldReload","current","isReload","loadModularUI","useEffect","removeModelByKey","useSelector","state","modularui","exports"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\nimport Href from \"../models/href/Href\";\n\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url?.toString() || \"\";\n const key = useKeyForHook(modelKey, href);\n\n if (url instanceof Href) {\n options.origin = options.origin ?? url.origin;\n options.contextPath = options.contextPath ?? url.contextPath;\n }\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (href !== \"\" && !isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAKA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAF,sBAAA,CAAAL,OAAA;AAIA;AACA;AACA,MAAMQ,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAG,IAAAC,kBAAS,EAAC,CAAC;EAC1B,OAAO,GAAGH,QAAQ,IAAIC,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKF,MAAM,GAAG;AACvD,CAAC;;AAED;AACA;AACA;AACO,MAAMG,YAAY,GAAG,SAAAA,CAC1BL,QAAgB,EAChBC,GAAkB,EAKV;EAAA,IAJRK,OAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACjCG,MAAM,EAAEC,uBAAY,CAACC,GAAG;IACxBC,eAAe,EAAE;EACnB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,IAAI,GAAGf,GAAG,EAAEgB,QAAQ,CAAC,CAAC,IAAI,EAAE;EAClC,MAAMC,GAAG,GAAGnB,aAAa,CAACC,QAAQ,EAAEgB,IAAI,CAAC;EAEzC,IAAIf,GAAG,YAAYkB,aAAI,EAAE;IACvBb,OAAO,CAACc,MAAM,GAAGd,OAAO,CAACc,MAAM,IAAInB,GAAG,CAACmB,MAAM;IAC7Cd,OAAO,CAACe,WAAW,GAAGf,OAAO,CAACe,WAAW,IAAIpB,GAAG,CAACoB,WAAW;EAC9D;EAEA,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACjB,OAAO,CAAC;EACnC,MAAMkB,QAAQ,GAAG,IAAAD,aAAM,EAACP,IAAI,CAAC;;EAE7B;EACA,IAAAS,6BAAoB,EAAC,MAAM;IACzB;IACA,MAAMC,WAAW,GACfF,QAAQ,CAACG,OAAO,KAAKX,IAAI,IACzBM,WAAW,CAACK,OAAO,CAACC,QAAQ,IAC5B,CAACtB,OAAO,CAACsB,QAAQ;IAEnB,IAAIZ,IAAI,KAAK,EAAE,IAAI,CAACU,WAAW,EAAE;MAC/BZ,QAAQ,CAAC,IAAAe,+BAAa,EAACX,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;IAC7C;IAEAgB,WAAW,CAACK,OAAO,GAAGrB,OAAO;IAC7BkB,QAAQ,CAACG,OAAO,GAAGX,IAAI;EACzB,CAAC,EAAE,CAACE,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;EAExB,MAAM;IAAEO,eAAe,GAAG;EAAM,CAAC,GAAGP,OAAO;EAC3C,IAAAwB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIjB,eAAe,EAAE;QACnBC,QAAQ,CAAC,IAAAiB,kCAAgB,EAACb,GAAG,CAAC,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACJ,QAAQ,EAAEI,GAAG,EAAEL,eAAe,CAAC,CAAC;;EAEpC;EACA,OAAO,IAAAmB,uBAAW,EAAEC,KAAK,IAAK;IAC5B,OAAOA,KAAK,CAACC,SAAS,CAAChB,GAAG,CAAC;EAC7B,CAAC,CAAC;AACJ,CAAC;AAACiB,OAAA,CAAA9B,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -16,13 +16,17 @@ const useModularUIBasic = function (key, href) {
16
16
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
17
17
  expectedModels: [],
18
18
  targetModel: undefined,
19
- forceTargetModel: false
19
+ forceTargetModel: false,
20
+ origin: undefined,
21
+ contextPath: undefined
20
22
  };
21
23
  const location = (0, _useRouter.useLocation)();
22
24
  const useModularUIOptions = {
23
25
  targetModel: undefined,
24
26
  forceTargetModel: undefined,
25
27
  isReload: false,
28
+ origin: undefined,
29
+ contextPath: undefined,
26
30
  cache: false
27
31
  };
28
32
  if (options.targetModel) {
@@ -37,6 +41,12 @@ const useModularUIBasic = function (key, href) {
37
41
  if (location.state?.reload && (0, _startsWith.default)(_context = location.pathname).call(_context, href.toString())) {
38
42
  useModularUIOptions.isReload = true;
39
43
  }
44
+ if (options.origin) {
45
+ useModularUIOptions.origin = options.origin;
46
+ }
47
+ if (options.contextPath) {
48
+ useModularUIOptions.contextPath = options.contextPath;
49
+ }
40
50
 
41
51
  // $FlowFixMe[incompatible-call]
42
52
  const modularUI = (0, _useModularUI.useModularUI)(key, href, useModularUIOptions);
@@ -11,6 +11,8 @@ export type UseModularUIBasicOptions<T: ModularUIModel> = {
11
11
  expectedModels?: Array<string>,
12
12
  targetModel?: Class<T> | Array<Class<T>>,
13
13
  forceTargetModel?: boolean,
14
+ origin?: string,
15
+ contextPath?: string,
14
16
  cache?: boolean,
15
17
  };
16
18
 
@@ -23,6 +25,8 @@ export const useModularUIBasic = <T: ModularUIModel>(
23
25
  expectedModels: [],
24
26
  targetModel: undefined,
25
27
  forceTargetModel: false,
28
+ origin: undefined,
29
+ contextPath: undefined,
26
30
  },
27
31
  ): T | null => {
28
32
  const location = useLocation();
@@ -31,6 +35,8 @@ export const useModularUIBasic = <T: ModularUIModel>(
31
35
  targetModel: undefined,
32
36
  forceTargetModel: undefined,
33
37
  isReload: false,
38
+ origin: undefined,
39
+ contextPath: undefined,
34
40
  cache: false,
35
41
  };
36
42
  if (options.targetModel) {
@@ -47,6 +53,14 @@ export const useModularUIBasic = <T: ModularUIModel>(
47
53
  useModularUIOptions.isReload = true;
48
54
  }
49
55
 
56
+ if (options.origin) {
57
+ useModularUIOptions.origin = options.origin;
58
+ }
59
+
60
+ if (options.contextPath) {
61
+ useModularUIOptions.contextPath = options.contextPath;
62
+ }
63
+
50
64
  // $FlowFixMe[incompatible-call]
51
65
  const modularUI = useModularUI(key, href, useModularUIOptions);
52
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUIBasic.js","names":["_useModularUI","require","_useRouter","_exceptions","useModularUIBasic","key","href","_context","options","arguments","length","undefined","expectedModels","targetModel","forceTargetModel","location","useLocation","useModularUIOptions","isReload","cache","state","reload","_startsWith","default","pathname","call","toString","modularUI","useModularUI","model","isCorrectModel","some","expectedModel","type","console","error","IllegalStateException","exports"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useModularUI } from \"./useModularUI\";\n\nimport { useLocation } from \"./useRouter\";\n\nimport { IllegalStateException } from \"../exceptions\";\n\nimport type { ModularUIModel, Href } from \"../models\";\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n cache?: boolean,\n};\n\n/**\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n key: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {\n expectedModels: [],\n targetModel: undefined,\n forceTargetModel: false,\n },\n): T | null => {\n const location = useLocation();\n\n const useModularUIOptions = {\n targetModel: undefined,\n forceTargetModel: undefined,\n isReload: false,\n cache: false,\n };\n if (options.targetModel) {\n useModularUIOptions.targetModel = options.targetModel;\n useModularUIOptions.forceTargetModel = options.forceTargetModel;\n }\n\n if (options.cache) {\n useModularUIOptions.cache = options.cache;\n }\n\n // reload when the modular service starts with the current location\n if (location.state?.reload && location.pathname.startsWith(href.toString())) {\n useModularUIOptions.isReload = true;\n }\n\n // $FlowFixMe[incompatible-call]\n const modularUI = useModularUI(key, href, useModularUIOptions);\n\n if (modularUI?.model) {\n const { model } = modularUI;\n\n const expectedModels = options.expectedModels ?? [];\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.some((expectedModel) => {\n return model.type === expectedModel;\n });\n\n if (!isCorrectModel) {\n console.error(modularUI, \"is not of instance\", expectedModels);\n throw new IllegalStateException(\"Resolved model has incorrect type\");\n }\n }\n\n return model;\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAWA;AACA;AACO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAW,EACXC,IAAmB,EAMN;EAAA,IAAAC,QAAA;EAAA,IALbC,OAAoC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACrCG,cAAc,EAAE,EAAE;IAClBC,WAAW,EAAEF,SAAS;IACtBG,gBAAgB,EAAE;EACpB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,sBAAW,EAAC,CAAC;EAE9B,MAAMC,mBAAmB,GAAG;IAC1BJ,WAAW,EAAEF,SAAS;IACtBG,gBAAgB,EAAEH,SAAS;IAC3BO,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAE;EACT,CAAC;EACD,IAAIX,OAAO,CAACK,WAAW,EAAE;IACvBI,mBAAmB,CAACJ,WAAW,GAAGL,OAAO,CAACK,WAAW;IACrDI,mBAAmB,CAACH,gBAAgB,GAAGN,OAAO,CAACM,gBAAgB;EACjE;EAEA,IAAIN,OAAO,CAACW,KAAK,EAAE;IACjBF,mBAAmB,CAACE,KAAK,GAAGX,OAAO,CAACW,KAAK;EAC3C;;EAEA;EACA,IAAIJ,QAAQ,CAACK,KAAK,EAAEC,MAAM,IAAI,IAAAC,WAAA,CAAAC,OAAA,EAAAhB,QAAA,GAAAQ,QAAQ,CAACS,QAAQ,EAAAC,IAAA,CAAAlB,QAAA,EAAYD,IAAI,CAACoB,QAAQ,CAAC,CAAC,CAAC,EAAE;IAC3ET,mBAAmB,CAACC,QAAQ,GAAG,IAAI;EACrC;;EAEA;EACA,MAAMS,SAAS,GAAG,IAAAC,0BAAY,EAACvB,GAAG,EAAEC,IAAI,EAAEW,mBAAmB,CAAC;EAE9D,IAAIU,SAAS,EAAEE,KAAK,EAAE;IACpB,MAAM;MAAEA;IAAM,CAAC,GAAGF,SAAS;IAE3B,MAAMf,cAAc,GAAGJ,OAAO,CAACI,cAAc,IAAI,EAAE;IACnD,IAAIA,cAAc,CAACF,MAAM,GAAG,CAAC,EAAE;MAC7B,MAAMoB,cAAc,GAAGlB,cAAc,CAACmB,IAAI,CAAEC,aAAa,IAAK;QAC5D,OAAOH,KAAK,CAACI,IAAI,KAAKD,aAAa;MACrC,CAAC,CAAC;MAEF,IAAI,CAACF,cAAc,EAAE;QACnBI,OAAO,CAACC,KAAK,CAACR,SAAS,EAAE,oBAAoB,EAAEf,cAAc,CAAC;QAC9D,MAAM,IAAIwB,iCAAqB,CAAC,mCAAmC,CAAC;MACtE;IACF;IAEA,OAAOP,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAACQ,OAAA,CAAAjC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"useModularUIBasic.js","names":["_useModularUI","require","_useRouter","_exceptions","useModularUIBasic","key","href","_context","options","arguments","length","undefined","expectedModels","targetModel","forceTargetModel","origin","contextPath","location","useLocation","useModularUIOptions","isReload","cache","state","reload","_startsWith","default","pathname","call","toString","modularUI","useModularUI","model","isCorrectModel","some","expectedModel","type","console","error","IllegalStateException","exports"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useModularUI } from \"./useModularUI\";\n\nimport { useLocation } from \"./useRouter\";\n\nimport { IllegalStateException } from \"../exceptions\";\n\nimport type { ModularUIModel, Href } from \"../models\";\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n};\n\n/**\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n key: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {\n expectedModels: [],\n targetModel: undefined,\n forceTargetModel: false,\n origin: undefined,\n contextPath: undefined,\n },\n): T | null => {\n const location = useLocation();\n\n const useModularUIOptions = {\n targetModel: undefined,\n forceTargetModel: undefined,\n isReload: false,\n origin: undefined,\n contextPath: undefined,\n cache: false,\n };\n if (options.targetModel) {\n useModularUIOptions.targetModel = options.targetModel;\n useModularUIOptions.forceTargetModel = options.forceTargetModel;\n }\n\n if (options.cache) {\n useModularUIOptions.cache = options.cache;\n }\n\n // reload when the modular service starts with the current location\n if (location.state?.reload && location.pathname.startsWith(href.toString())) {\n useModularUIOptions.isReload = true;\n }\n\n if (options.origin) {\n useModularUIOptions.origin = options.origin;\n }\n\n if (options.contextPath) {\n useModularUIOptions.contextPath = options.contextPath;\n }\n\n // $FlowFixMe[incompatible-call]\n const modularUI = useModularUI(key, href, useModularUIOptions);\n\n if (modularUI?.model) {\n const { model } = modularUI;\n\n const expectedModels = options.expectedModels ?? [];\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.some((expectedModel) => {\n return model.type === expectedModel;\n });\n\n if (!isCorrectModel) {\n console.error(modularUI, \"is not of instance\", expectedModels);\n throw new IllegalStateException(\"Resolved model has incorrect type\");\n }\n }\n\n return model;\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAaA;AACA;AACO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAW,EACXC,IAAmB,EAQN;EAAA,IAAAC,QAAA;EAAA,IAPbC,OAAoC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACrCG,cAAc,EAAE,EAAE;IAClBC,WAAW,EAAEF,SAAS;IACtBG,gBAAgB,EAAE,KAAK;IACvBC,MAAM,EAAEJ,SAAS;IACjBK,WAAW,EAAEL;EACf,CAAC;EAED,MAAMM,QAAQ,GAAG,IAAAC,sBAAW,EAAC,CAAC;EAE9B,MAAMC,mBAAmB,GAAG;IAC1BN,WAAW,EAAEF,SAAS;IACtBG,gBAAgB,EAAEH,SAAS;IAC3BS,QAAQ,EAAE,KAAK;IACfL,MAAM,EAAEJ,SAAS;IACjBK,WAAW,EAAEL,SAAS;IACtBU,KAAK,EAAE;EACT,CAAC;EACD,IAAIb,OAAO,CAACK,WAAW,EAAE;IACvBM,mBAAmB,CAACN,WAAW,GAAGL,OAAO,CAACK,WAAW;IACrDM,mBAAmB,CAACL,gBAAgB,GAAGN,OAAO,CAACM,gBAAgB;EACjE;EAEA,IAAIN,OAAO,CAACa,KAAK,EAAE;IACjBF,mBAAmB,CAACE,KAAK,GAAGb,OAAO,CAACa,KAAK;EAC3C;;EAEA;EACA,IAAIJ,QAAQ,CAACK,KAAK,EAAEC,MAAM,IAAI,IAAAC,WAAA,CAAAC,OAAA,EAAAlB,QAAA,GAAAU,QAAQ,CAACS,QAAQ,EAAAC,IAAA,CAAApB,QAAA,EAAYD,IAAI,CAACsB,QAAQ,CAAC,CAAC,CAAC,EAAE;IAC3ET,mBAAmB,CAACC,QAAQ,GAAG,IAAI;EACrC;EAEA,IAAIZ,OAAO,CAACO,MAAM,EAAE;IAClBI,mBAAmB,CAACJ,MAAM,GAAGP,OAAO,CAACO,MAAM;EAC7C;EAEA,IAAIP,OAAO,CAACQ,WAAW,EAAE;IACvBG,mBAAmB,CAACH,WAAW,GAAGR,OAAO,CAACQ,WAAW;EACvD;;EAEA;EACA,MAAMa,SAAS,GAAG,IAAAC,0BAAY,EAACzB,GAAG,EAAEC,IAAI,EAAEa,mBAAmB,CAAC;EAE9D,IAAIU,SAAS,EAAEE,KAAK,EAAE;IACpB,MAAM;MAAEA;IAAM,CAAC,GAAGF,SAAS;IAE3B,MAAMjB,cAAc,GAAGJ,OAAO,CAACI,cAAc,IAAI,EAAE;IACnD,IAAIA,cAAc,CAACF,MAAM,GAAG,CAAC,EAAE;MAC7B,MAAMsB,cAAc,GAAGpB,cAAc,CAACqB,IAAI,CAAEC,aAAa,IAAK;QAC5D,OAAOH,KAAK,CAACI,IAAI,KAAKD,aAAa;MACrC,CAAC,CAAC;MAEF,IAAI,CAACF,cAAc,EAAE;QACnBI,OAAO,CAACC,KAAK,CAACR,SAAS,EAAE,oBAAoB,EAAEjB,cAAc,CAAC;QAC9D,MAAM,IAAI0B,iCAAqB,CAAC,mCAAmC,CAAC;MACtE;IACF;IAEA,OAAOP,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAACQ,OAAA,CAAAnC,iBAAA,GAAAA,iBAAA","ignoreList":[]}