@beinformed/ui 1.18.4 → 1.18.5

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 (214) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/esm/hooks/useAuthentication.js +7 -50
  3. package/esm/hooks/useAuthentication.js.map +1 -1
  4. package/esm/i18n/Locales.js.map +1 -1
  5. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  6. package/esm/models/form/FormModel.js.map +1 -1
  7. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  8. package/esm/models/tab/TabModel.js.map +1 -1
  9. package/esm/modularui/Authenticate.js +2 -1
  10. package/esm/modularui/Authenticate.js.map +1 -1
  11. package/esm/redux/actions/SignOut.js +6 -2
  12. package/esm/redux/actions/SignOut.js.map +1 -1
  13. package/esm/redux/connectors/SignIn.js +3 -2
  14. package/esm/redux/connectors/SignIn.js.map +1 -1
  15. package/esm/redux/connectors/SignOut.js +4 -1
  16. package/esm/redux/connectors/SignOut.js.map +1 -1
  17. package/esm/redux/reducers/AuthReducer.js +0 -10
  18. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  19. package/esm/redux/types.js.map +1 -1
  20. package/esm/utils/helpers/checkResource.js +2 -0
  21. package/esm/utils/helpers/checkResource.js.map +1 -1
  22. package/lib/constants/LayoutHints.js.map +1 -1
  23. package/lib/constants/Settings.js.map +1 -1
  24. package/lib/exceptions/FetchException.js.map +1 -1
  25. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +15 -1
  26. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  27. package/lib/hooks/useAuthentication.js +7 -55
  28. package/lib/hooks/useAuthentication.js.flow +4 -37
  29. package/lib/hooks/useAuthentication.js.map +1 -1
  30. package/lib/hooks/useContent.js.map +1 -1
  31. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  32. package/lib/hooks/useForm.js.map +1 -1
  33. package/lib/hooks/useI18n.js.map +1 -1
  34. package/lib/hooks/useModal.js.map +1 -1
  35. package/lib/hooks/useModelCatalog.js.map +1 -1
  36. package/lib/hooks/useModels.js.map +1 -1
  37. package/lib/hooks/useModularUI.js.map +1 -1
  38. package/lib/hooks/useModularUIBasic.js.map +1 -1
  39. package/lib/hooks/useModularUIModel.js.map +1 -1
  40. package/lib/hooks/useModularUIRequest.js.map +1 -1
  41. package/lib/hooks/useNotification.js.map +1 -1
  42. package/lib/hooks/usePreference.js.map +1 -1
  43. package/lib/hooks/useProgressIndicator.js.map +1 -1
  44. package/lib/hooks/useRouter.js.map +1 -1
  45. package/lib/i18n/Locale.js.map +1 -1
  46. package/lib/i18n/Locales.js.map +1 -1
  47. package/lib/i18n/Message.js.map +1 -1
  48. package/lib/i18n/withMessage.js.map +1 -1
  49. package/lib/models/actions/ActionModel.js.map +1 -1
  50. package/lib/models/application/ApplicationModel.js.map +1 -1
  51. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  52. package/lib/models/attributes/AttributeContent.js.map +1 -1
  53. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  54. package/lib/models/attributes/AttributeModel.js.map +1 -1
  55. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  56. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  57. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  58. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  59. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  60. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  61. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  62. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  63. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  64. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  65. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  66. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  67. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  68. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  69. package/lib/models/attributes/_createAttribute.js.map +1 -1
  70. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  71. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  72. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  73. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  74. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  75. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  76. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  77. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  78. package/lib/models/base/BaseCollection.js.map +1 -1
  79. package/lib/models/base/BaseModel.js.map +1 -1
  80. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  81. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  82. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  83. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  84. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  85. package/lib/models/content/ContentLinkModel.js.map +1 -1
  86. package/lib/models/content/ContentTOCModel.js.map +1 -1
  87. package/lib/models/content/SectionModel.js.map +1 -1
  88. package/lib/models/content/SubSectionModel.js.map +1 -1
  89. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  90. package/lib/models/detail/DetailModel.js.map +1 -1
  91. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  92. package/lib/models/form/FormModel.js.map +1 -1
  93. package/lib/models/form/FormObjectModel.js.map +1 -1
  94. package/lib/models/href/Href.js.map +1 -1
  95. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  96. package/lib/models/links/LinkCollection.js.map +1 -1
  97. package/lib/models/links/LinkModel.js.map +1 -1
  98. package/lib/models/list/ListDetailModel.js.map +1 -1
  99. package/lib/models/list/ListHeaderModel.js.map +1 -1
  100. package/lib/models/list/ListItemCollection.js.map +1 -1
  101. package/lib/models/list/ListModel.js.map +1 -1
  102. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  103. package/lib/models/paging/PagingModel.js.map +1 -1
  104. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  105. package/lib/models/parameter/Parameter.js.map +1 -1
  106. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  107. package/lib/models/resolveModel.js.map +1 -1
  108. package/lib/models/sorting/SortingModel.js.map +1 -1
  109. package/lib/models/tab/TabModel.js.map +1 -1
  110. package/lib/models/user/UserProfileModel.js.map +1 -1
  111. package/lib/models/user/UserServicesModel.js.map +1 -1
  112. package/lib/modularui/Authenticate.js +3 -1
  113. package/lib/modularui/Authenticate.js.flow +3 -2
  114. package/lib/modularui/Authenticate.js.map +1 -1
  115. package/lib/modularui/ModularUIRequest.js.map +1 -1
  116. package/lib/modularui/ModularUIResponse.js.map +1 -1
  117. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  118. package/lib/react-client/client.js.map +1 -1
  119. package/lib/react-client/rehydrate.js.map +1 -1
  120. package/lib/react-server/createSSRComplete.js.map +1 -1
  121. package/lib/react-server/renderSSRComplete.js.map +1 -1
  122. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  123. package/lib/react-server/serverNoSSR.js.map +1 -1
  124. package/lib/react-server/serverSSR.js.map +1 -1
  125. package/lib/react-server/serverUtil.js.map +1 -1
  126. package/lib/react-theme/ThemeProvider.js.map +1 -1
  127. package/lib/react-theme/createTheme.js.map +1 -1
  128. package/lib/react-theme/useTheme.js.map +1 -1
  129. package/lib/react-theme/utils/background.js.map +1 -1
  130. package/lib/react-theme/utils/colors.js.map +1 -1
  131. package/lib/react-theme/utils/contrast.js.map +1 -1
  132. package/lib/react-theme/utils/corners.js.map +1 -1
  133. package/lib/react-theme/utils/spacers.js.map +1 -1
  134. package/lib/react-theme/utils/themeProps.js.map +1 -1
  135. package/lib/redux/_i18n/actions.js.map +1 -1
  136. package/lib/redux/_i18n/reducer.js.map +1 -1
  137. package/lib/redux/_modularui/actions.js.map +1 -1
  138. package/lib/redux/_modularui/connector.js.map +1 -1
  139. package/lib/redux/_modularui/middleware.js.map +1 -1
  140. package/lib/redux/_modularui/modularuiUtils.js.map +1 -1
  141. package/lib/redux/_modularui/reducer.js.map +1 -1
  142. package/lib/redux/_modularui/selectors.js.map +1 -1
  143. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  144. package/lib/redux/_router/connectors.js.map +1 -1
  145. package/lib/redux/actions/Application.js.map +1 -1
  146. package/lib/redux/actions/Authorization.js.map +1 -1
  147. package/lib/redux/actions/Error.js.map +1 -1
  148. package/lib/redux/actions/Form.js.map +1 -1
  149. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  150. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  151. package/lib/redux/actions/FormAutosave.js.map +1 -1
  152. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  153. package/lib/redux/actions/FormValidations.js.map +1 -1
  154. package/lib/redux/actions/Notification.js.map +1 -1
  155. package/lib/redux/actions/Preferences.js.map +1 -1
  156. package/lib/redux/actions/SignIn.js.map +1 -1
  157. package/lib/redux/actions/SignOut.js +6 -1
  158. package/lib/redux/actions/SignOut.js.flow +9 -5
  159. package/lib/redux/actions/SignOut.js.map +1 -1
  160. package/lib/redux/connectors/Application.js.map +1 -1
  161. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  162. package/lib/redux/connectors/CaseView.js.map +1 -1
  163. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  164. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  165. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  166. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  167. package/lib/redux/connectors/Form.js.map +1 -1
  168. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  169. package/lib/redux/connectors/ListDetail.js.map +1 -1
  170. package/lib/redux/connectors/Modal.js.map +1 -1
  171. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  172. package/lib/redux/connectors/Notification.js.map +1 -1
  173. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  174. package/lib/redux/connectors/Preferences.js.map +1 -1
  175. package/lib/redux/connectors/Progress.js.map +1 -1
  176. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  177. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  178. package/lib/redux/connectors/SignIn.js +3 -5
  179. package/lib/redux/connectors/SignIn.js.flow +1 -6
  180. package/lib/redux/connectors/SignIn.js.map +1 -1
  181. package/lib/redux/connectors/SignOut.js +5 -1
  182. package/lib/redux/connectors/SignOut.js.flow +2 -1
  183. package/lib/redux/connectors/SignOut.js.map +1 -1
  184. package/lib/redux/connectors/Tab.js.map +1 -1
  185. package/lib/redux/reducers/AuthReducer.js +0 -11
  186. package/lib/redux/reducers/AuthReducer.js.flow +0 -11
  187. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  188. package/lib/redux/reducers/__tests__/AuthReducer.spec.js.flow +0 -9
  189. package/lib/redux/store/configureStore.js.map +1 -1
  190. package/lib/redux/types.js.flow +0 -1
  191. package/lib/redux/types.js.map +1 -1
  192. package/lib/utils/browser/Cookies.js.map +1 -1
  193. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  194. package/lib/utils/fetch/universalFetch.js.map +1 -1
  195. package/lib/utils/fetch/xhr.js.map +1 -1
  196. package/lib/utils/helpers/checkResource.js +2 -0
  197. package/lib/utils/helpers/checkResource.js.flow +3 -0
  198. package/lib/utils/helpers/checkResource.js.map +1 -1
  199. package/lib/utils/helpers/objects.js.map +1 -1
  200. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  201. package/lib/utils/helpers/text.js.map +1 -1
  202. package/lib/utils/number/formatValue.js.map +1 -1
  203. package/lib/utils/number/parseNumbers.js.map +1 -1
  204. package/package.json +17 -17
  205. package/src/hooks/__tests__/useAuthentication.spec.js +15 -1
  206. package/src/hooks/useAuthentication.js +4 -37
  207. package/src/modularui/Authenticate.js +3 -2
  208. package/src/redux/actions/SignOut.js +9 -5
  209. package/src/redux/connectors/SignIn.js +1 -6
  210. package/src/redux/connectors/SignOut.js +2 -1
  211. package/src/redux/reducers/AuthReducer.js +0 -11
  212. package/src/redux/reducers/__tests__/AuthReducer.spec.js +0 -9
  213. package/src/redux/types.js +0 -1
  214. package/src/utils/helpers/checkResource.js +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","names":["darkenColor","amount","path","defaultValue","theme","lightenColor","changeHSL","color","saturation","lightness","hueAdjustment","hue"],"sources":["../../../src/react-theme/utils/colors.js"],"sourcesContent":["// @flow\nimport { darken, hsl, lighten, parseToHsl } from \"polished\";\nimport { getThemeProp } from \"./themeProps\";\n\nimport type { UtilThemeProps } from \"../types\";\n\n/*\n * Themed color x amount darkened\n */\n/**\n */\nconst darkenColor =\n (\n amount: number | string,\n path: string,\n defaultValue?: string\n ): ((UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n darken(amount, getThemeProp(theme, path, defaultValue));\n\n/*\n * Themed color x amount lightened\n */\n/**\n */\nconst lightenColor =\n (\n amount: number | string,\n path: string,\n defaultValue?: string\n ): ((UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n lighten(amount, getThemeProp(theme, path, defaultValue));\n\n/*\n * Make a color lighter or darker in the same color family\n */\n/**\n */\nconst changeHSL = (\n color: string,\n saturation?: number,\n lightness?: number,\n hueAdjustment: number = 0\n): string => hsl(parseToHsl(color).hue + hueAdjustment, saturation, lightness);\n\nexport { darkenColor, lightenColor, changeHSL };\n"],"mappings":";;;;;;;AACA;;AACA;;AAIA;AACA;AACA;;AACA;AACA;AACA,IAAMA,WAAW,GACf,SADIA,WACJ,CACEC,MADF,EAEEC,IAFF,EAGEC,YAHF;EAAA,OAKA;IAAA,IAAGC,KAAH,QAAGA,KAAH;IAAA,OACE,sBAAOH,MAAP,EAAe,8BAAaG,KAAb,EAAoBF,IAApB,EAA0BC,YAA1B,CAAf,CADF;EAAA,CALA;AAAA,CADF;AASA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAME,YAAY,GAChB,SADIA,YACJ,CACEJ,MADF,EAEEC,IAFF,EAGEC,YAHF;EAAA,OAKA;IAAA,IAAGC,KAAH,SAAGA,KAAH;IAAA,OACE,uBAAQH,MAAR,EAAgB,8BAAaG,KAAb,EAAoBF,IAApB,EAA0BC,YAA1B,CAAhB,CADF;EAAA,CALA;AAAA,CADF;AASA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAChBC,KADgB,EAEhBC,UAFgB,EAGhBC,SAHgB;EAAA,IAIhBC,aAJgB,uEAIQ,CAJR;EAAA,OAKL,mBAAI,0BAAWH,KAAX,EAAkBI,GAAlB,GAAwBD,aAA5B,EAA2CF,UAA3C,EAAuDC,SAAvD,CALK;AAAA,CAAlB"}
1
+ {"version":3,"file":"colors.js","names":["darkenColor","amount","path","defaultValue","theme","darken","getThemeProp","lightenColor","lighten","changeHSL","color","saturation","lightness","hueAdjustment","hsl","parseToHsl","hue"],"sources":["../../../src/react-theme/utils/colors.js"],"sourcesContent":["// @flow\nimport { darken, hsl, lighten, parseToHsl } from \"polished\";\nimport { getThemeProp } from \"./themeProps\";\n\nimport type { UtilThemeProps } from \"../types\";\n\n/*\n * Themed color x amount darkened\n */\n/**\n */\nconst darkenColor =\n (\n amount: number | string,\n path: string,\n defaultValue?: string\n ): ((UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n darken(amount, getThemeProp(theme, path, defaultValue));\n\n/*\n * Themed color x amount lightened\n */\n/**\n */\nconst lightenColor =\n (\n amount: number | string,\n path: string,\n defaultValue?: string\n ): ((UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n lighten(amount, getThemeProp(theme, path, defaultValue));\n\n/*\n * Make a color lighter or darker in the same color family\n */\n/**\n */\nconst changeHSL = (\n color: string,\n saturation?: number,\n lightness?: number,\n hueAdjustment: number = 0\n): string => hsl(parseToHsl(color).hue + hueAdjustment, saturation, lightness);\n\nexport { darkenColor, lightenColor, changeHSL };\n"],"mappings":";;;;;;;AACA;;AACA;;AAIA;AACA;AACA;;AACA;AACA;AACA,IAAMA,WAAW,GACf,SADIA,WACJ,CACEC,MADF,EAEEC,IAFF,EAGEC,YAHF;EAAA,OAKA;IAAA,IAAGC,KAAH,QAAGA,KAAH;IAAA,OACE,IAAAC,gBAAA,EAAOJ,MAAP,EAAe,IAAAK,wBAAA,EAAaF,KAAb,EAAoBF,IAApB,EAA0BC,YAA1B,CAAf,CADF;EAAA,CALA;AAAA,CADF;AASA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMI,YAAY,GAChB,SADIA,YACJ,CACEN,MADF,EAEEC,IAFF,EAGEC,YAHF;EAAA,OAKA;IAAA,IAAGC,KAAH,SAAGA,KAAH;IAAA,OACE,IAAAI,iBAAA,EAAQP,MAAR,EAAgB,IAAAK,wBAAA,EAAaF,KAAb,EAAoBF,IAApB,EAA0BC,YAA1B,CAAhB,CADF;EAAA,CALA;AAAA,CADF;AASA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMM,SAAS,GAAG,SAAZA,SAAY,CAChBC,KADgB,EAEhBC,UAFgB,EAGhBC,SAHgB;EAAA,IAIhBC,aAJgB,uEAIQ,CAJR;EAAA,OAKL,IAAAC,aAAA,EAAI,IAAAC,oBAAA,EAAWL,KAAX,EAAkBM,GAAlB,GAAwBH,aAA5B,EAA2CF,UAA3C,EAAuDC,SAAvD,CALK;AAAA,CAAlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"contrast.js","names":["getColorContrast","color1","color2","luminance1","luminance2","parseFloat","toFixed","getYIQ","color","rgb","red","green","blue","getContrastYIQ","dark","light","preferredColor","yiqColor","darkColor","lightColor","getBackgroundColor","theme","bgColorProperty","defaultValue","bgColor","backgroundColor","ThemePropertyException","renderContrastColor","preferredColorProperty","standardDarkProperty","standardLightProperty"],"sources":["../../../src/react-theme/utils/contrast.js"],"sourcesContent":["// @flow\nimport { getLuminance, parseToRgb } from \"polished\";\n\nimport { getThemeStringProp, getProp } from \"./themeProps\";\n\nimport { ThemePropertyException } from \"../../exceptions\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\n\n/**\n * calculate the contrast ratio of two colors\n */\nconst getColorContrast = (color1: string, color2: string): number => {\n const luminance1 = getLuminance(color1);\n const luminance2 = getLuminance(color2);\n return parseFloat(\n (luminance1 > luminance2\n ? (luminance1 + 0.05) / (luminance2 + 0.05)\n : (luminance2 + 0.05) / (luminance1 + 0.05)\n ).toFixed(2)\n );\n};\n\n/*\n * The YIQ equation converts the RGB color (0 to 255) into a YIQ color space.\n * YIQ is the standard formula for calculating the perceived brightness of a color,\n * and is recommended by the World Wide Web Consortium (W3C).\n */\n/**\n */\nconst getYIQ = (color: string): number => {\n const rgb = parseToRgb(color);\n\n return (rgb.red * 299 + rgb.green * 587 + rgb.blue * 114) / 1000;\n};\n\n/**\n * Get dark or light color, depending on the given color\n * When the contrast between the color and the light or dark color is too low,\n * the preferred color is returned\n */\nconst getContrastYIQ = (\n color: string,\n dark: string = \"#212529\",\n light: string = \"#fff\",\n preferredColor?: string\n): string => {\n const yiqColor = getYIQ(color);\n\n if (preferredColor && getColorContrast(color, preferredColor) >= 4.5) {\n return preferredColor;\n }\n\n const darkColor = getYIQ(dark) < 127.5 ? dark : \"#212529\";\n const lightColor = getYIQ(light) > 127.5 ? light : \"#fff\";\n\n if (yiqColor > 127.5) {\n if (getColorContrast(color, darkColor) < 3) {\n return \"#212529\";\n }\n\n return darkColor;\n }\n\n if (getColorContrast(color, lightColor) < 3) {\n return \"#fff\";\n }\n return lightColor;\n};\n\n/**\n */\nconst getBackgroundColor = (\n theme: Theme,\n bgColorProperty: string,\n defaultValue: string\n) => {\n let bgColor = getProp(theme, bgColorProperty, defaultValue);\n\n if (typeof bgColor === \"object\") {\n bgColor = bgColor?.backgroundColor ?? defaultValue;\n }\n\n if (typeof bgColor === \"string\") {\n return bgColor;\n }\n\n throw new ThemePropertyException(\n `${bgColorProperty} is not a string, but: ${typeof bgColor}`\n );\n};\n\n/**\n * Retrieve the contrast color for the given background property,\n * based on theme properties\n */\nconst renderContrastColor =\n (\n bgColorProperty: string,\n preferredColorProperty?: string,\n standardDarkProperty: string = \"YIQ_DARK_COLOR\",\n standardLightProperty: string = \"YIQ_LIGHT_COLOR\"\n ): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) => {\n const bgColor = getBackgroundColor(theme, bgColorProperty, \"#ffffff\");\n const preferredColor = getThemeStringProp(theme, preferredColorProperty);\n const darkColor = getThemeStringProp(\n theme,\n standardDarkProperty,\n \"#212529\"\n );\n const lightColor = getThemeStringProp(theme, standardLightProperty, \"#fff\");\n\n return getContrastYIQ(bgColor, darkColor, lightColor, preferredColor);\n };\n\nexport { getColorContrast, getYIQ, getContrastYIQ, renderContrastColor };\n"],"mappings":"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"}
1
+ {"version":3,"file":"contrast.js","names":["getColorContrast","color1","color2","luminance1","getLuminance","luminance2","parseFloat","toFixed","getYIQ","color","rgb","parseToRgb","red","green","blue","getContrastYIQ","dark","light","preferredColor","yiqColor","darkColor","lightColor","getBackgroundColor","theme","bgColorProperty","defaultValue","bgColor","getProp","backgroundColor","ThemePropertyException","renderContrastColor","preferredColorProperty","standardDarkProperty","standardLightProperty","getThemeStringProp"],"sources":["../../../src/react-theme/utils/contrast.js"],"sourcesContent":["// @flow\nimport { getLuminance, parseToRgb } from \"polished\";\n\nimport { getThemeStringProp, getProp } from \"./themeProps\";\n\nimport { ThemePropertyException } from \"../../exceptions\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\n\n/**\n * calculate the contrast ratio of two colors\n */\nconst getColorContrast = (color1: string, color2: string): number => {\n const luminance1 = getLuminance(color1);\n const luminance2 = getLuminance(color2);\n return parseFloat(\n (luminance1 > luminance2\n ? (luminance1 + 0.05) / (luminance2 + 0.05)\n : (luminance2 + 0.05) / (luminance1 + 0.05)\n ).toFixed(2)\n );\n};\n\n/*\n * The YIQ equation converts the RGB color (0 to 255) into a YIQ color space.\n * YIQ is the standard formula for calculating the perceived brightness of a color,\n * and is recommended by the World Wide Web Consortium (W3C).\n */\n/**\n */\nconst getYIQ = (color: string): number => {\n const rgb = parseToRgb(color);\n\n return (rgb.red * 299 + rgb.green * 587 + rgb.blue * 114) / 1000;\n};\n\n/**\n * Get dark or light color, depending on the given color\n * When the contrast between the color and the light or dark color is too low,\n * the preferred color is returned\n */\nconst getContrastYIQ = (\n color: string,\n dark: string = \"#212529\",\n light: string = \"#fff\",\n preferredColor?: string\n): string => {\n const yiqColor = getYIQ(color);\n\n if (preferredColor && getColorContrast(color, preferredColor) >= 4.5) {\n return preferredColor;\n }\n\n const darkColor = getYIQ(dark) < 127.5 ? dark : \"#212529\";\n const lightColor = getYIQ(light) > 127.5 ? light : \"#fff\";\n\n if (yiqColor > 127.5) {\n if (getColorContrast(color, darkColor) < 3) {\n return \"#212529\";\n }\n\n return darkColor;\n }\n\n if (getColorContrast(color, lightColor) < 3) {\n return \"#fff\";\n }\n return lightColor;\n};\n\n/**\n */\nconst getBackgroundColor = (\n theme: Theme,\n bgColorProperty: string,\n defaultValue: string\n) => {\n let bgColor = getProp(theme, bgColorProperty, defaultValue);\n\n if (typeof bgColor === \"object\") {\n bgColor = bgColor?.backgroundColor ?? defaultValue;\n }\n\n if (typeof bgColor === \"string\") {\n return bgColor;\n }\n\n throw new ThemePropertyException(\n `${bgColorProperty} is not a string, but: ${typeof bgColor}`\n );\n};\n\n/**\n * Retrieve the contrast color for the given background property,\n * based on theme properties\n */\nconst renderContrastColor =\n (\n bgColorProperty: string,\n preferredColorProperty?: string,\n standardDarkProperty: string = \"YIQ_DARK_COLOR\",\n standardLightProperty: string = \"YIQ_LIGHT_COLOR\"\n ): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) => {\n const bgColor = getBackgroundColor(theme, bgColorProperty, \"#ffffff\");\n const preferredColor = getThemeStringProp(theme, preferredColorProperty);\n const darkColor = getThemeStringProp(\n theme,\n standardDarkProperty,\n \"#212529\"\n );\n const lightColor = getThemeStringProp(theme, standardLightProperty, \"#fff\");\n\n return getContrastYIQ(bgColor, darkColor, lightColor, preferredColor);\n };\n\nexport { getColorContrast, getYIQ, getContrastYIQ, renderContrastColor };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"corners.js","names":["DEFAULT_CORNER_PROPERTY","roundedCorners","property","path","defaultValue","theme","ROUNDED_CORNERS","propertyName"],"sources":["../../../src/react-theme/utils/corners.js"],"sourcesContent":["// @flow\nimport { getThemeStringProp } from \"./themeProps\";\n\nimport type { UtilThemeProps } from \"../types\";\n\nconst DEFAULT_CORNER_PROPERTY = \"border-radius\";\n\n/*\n * Border radius based on the theme setting for rounded corners\n * When ROUNDED_CORNERS is not true in the theme, no rounded corners are returned\n */\n/**\n */\nconst roundedCorners =\n (\n property: string = DEFAULT_CORNER_PROPERTY,\n path: string = \"BORDER_RADIUS\",\n defaultValue: string = \"0.25rem\"\n ): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) => {\n if (theme.ROUNDED_CORNERS) {\n const propertyName =\n property && property !== DEFAULT_CORNER_PROPERTY\n ? `border-${property}-radius`\n : DEFAULT_CORNER_PROPERTY;\n\n return `${propertyName}: ${getThemeStringProp(\n theme,\n path,\n defaultValue\n )}`;\n }\n\n return \"\";\n };\n\nexport { roundedCorners };\n"],"mappings":";;;;;;;;;;;AACA;;AAIA,IAAMA,uBAAuB,GAAG,eAAhC;AAEA;AACA;AACA;AACA;;AACA;AACA;;AACA,IAAMC,cAAc,GAClB,SADIA,cACJ;EAAA,IACEC,QADF,uEACqBF,uBADrB;EAAA,IAEEG,IAFF,uEAEiB,eAFjB;EAAA,IAGEC,YAHF,uEAGyB,SAHzB;EAAA,OAKA,gBAAoC;IAAA,sBAAjCC,KAAiC;IAAA,IAAjCA,KAAiC,2BAAzB,EAAyB;;IAClC,IAAIA,KAAK,CAACC,eAAV,EAA2B;MAAA;;MACzB,IAAMC,YAAY,GAChBL,QAAQ,IAAIA,QAAQ,KAAKF,uBAAzB,oBACcE,QADd,eAEIF,uBAHN;MAKA,iDAAUO,YAAV,wBAA2B,oCACzBF,KADyB,EAEzBF,IAFyB,EAGzBC,YAHyB,CAA3B;IAKD;;IAED,OAAO,EAAP;EACD,CApBD;AAAA,CADF"}
1
+ {"version":3,"file":"corners.js","names":["DEFAULT_CORNER_PROPERTY","roundedCorners","property","path","defaultValue","theme","ROUNDED_CORNERS","propertyName","getThemeStringProp"],"sources":["../../../src/react-theme/utils/corners.js"],"sourcesContent":["// @flow\nimport { getThemeStringProp } from \"./themeProps\";\n\nimport type { UtilThemeProps } from \"../types\";\n\nconst DEFAULT_CORNER_PROPERTY = \"border-radius\";\n\n/*\n * Border radius based on the theme setting for rounded corners\n * When ROUNDED_CORNERS is not true in the theme, no rounded corners are returned\n */\n/**\n */\nconst roundedCorners =\n (\n property: string = DEFAULT_CORNER_PROPERTY,\n path: string = \"BORDER_RADIUS\",\n defaultValue: string = \"0.25rem\"\n ): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) => {\n if (theme.ROUNDED_CORNERS) {\n const propertyName =\n property && property !== DEFAULT_CORNER_PROPERTY\n ? `border-${property}-radius`\n : DEFAULT_CORNER_PROPERTY;\n\n return `${propertyName}: ${getThemeStringProp(\n theme,\n path,\n defaultValue\n )}`;\n }\n\n return \"\";\n };\n\nexport { roundedCorners };\n"],"mappings":";;;;;;;;;;;AACA;;AAIA,IAAMA,uBAAuB,GAAG,eAAhC;AAEA;AACA;AACA;AACA;;AACA;AACA;;AACA,IAAMC,cAAc,GAClB,SADIA,cACJ;EAAA,IACEC,QADF,uEACqBF,uBADrB;EAAA,IAEEG,IAFF,uEAEiB,eAFjB;EAAA,IAGEC,YAHF,uEAGyB,SAHzB;EAAA,OAKA,gBAAoC;IAAA,sBAAjCC,KAAiC;IAAA,IAAjCA,KAAiC,2BAAzB,EAAyB;;IAClC,IAAIA,KAAK,CAACC,eAAV,EAA2B;MAAA;;MACzB,IAAMC,YAAY,GAChBL,QAAQ,IAAIA,QAAQ,KAAKF,uBAAzB,oBACcE,QADd,eAEIF,uBAHN;MAKA,iDAAUO,YAAV,wBAA2B,IAAAC,8BAAA,EACzBH,KADyB,EAEzBF,IAFyB,EAGzBC,YAHyB,CAA3B;IAKD;;IAED,OAAO,EAAP;EACD,CApBD;AAAA,CADF"}
@@ -1 +1 @@
1
- {"version":3,"file":"spacers.js","names":["getSize","theme","ratio","path","unit","size","times","IllegalStateException","IllegalArgumentException","spacer","spacers","ratios","join","gutter"],"sources":["../../../src/react-theme/utils/spacers.js"],"sourcesContent":["// @flow\nimport Big from \"big.js\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\nimport IllegalArgumentException from \"../../exceptions/IllegalArgumentException\";\nimport IllegalStateException from \"../../exceptions/IllegalStateException\";\n\n/**\n */\nconst getSize = (\n theme: Theme,\n ratio: number | string = 1,\n path: string = \"SPACER\",\n unit: string = \"rem\"\n) => {\n if (typeof ratio === \"string\") {\n return ratio;\n }\n\n if (typeof ratio === \"number\") {\n if (typeof theme[path] === \"number\") {\n const size = Big(ratio).times(theme[path]);\n return `${size}${unit}`;\n }\n throw new IllegalStateException(`Size ${path} must be a number`);\n }\n\n throw new IllegalArgumentException(\n `Ratio ${JSON.stringify(ratio)} must be a string or number`\n );\n};\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n */\n/**\n */\nconst spacer =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio);\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n * Ratio's can be given clockwise with shorthand,\n * spacers(0.5, 1) with a spacer of 0.8 will give \"0.4rem 1rem\";\n */\n/**\n */\nconst spacers =\n (...ratios: Array<number | \"auto\">): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n ratios.map((ratio) => getSize(theme, ratio)).join(\" \");\n\n/*\n * Render a gutter based on GUTTER property\n */\n/**\n */\nconst gutter =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio, \"GRID_GUTTER\", \"px\");\n\nexport { spacer, spacers, gutter };\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AAEA;AACA;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CACdC,KADc,EAKX;EAAA,IAHHC,KAGG,uEAHsB,CAGtB;EAAA,IAFHC,IAEG,uEAFY,QAEZ;EAAA,IADHC,IACG,uEADY,KACZ;;EACH,IAAI,OAAOF,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD;;EAED,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7B,IAAI,OAAOD,KAAK,CAACE,IAAD,CAAZ,KAAuB,QAA3B,EAAqC;MAAA;;MACnC,IAAME,IAAI,GAAG,kBAAIH,KAAJ,EAAWI,KAAX,CAAiBL,KAAK,CAACE,IAAD,CAAtB,CAAb;MACA,iDAAUE,IAAV,kBAAiBD,IAAjB;IACD;;IACD,MAAM,IAAIG,8BAAJ,gBAAkCJ,IAAlC,uBAAN;EACD;;EAED,MAAM,IAAIK,iCAAJ,iBACK,wBAAeN,KAAf,CADL,iCAAN;AAGD,CArBD;AAuBA;AACA;AACA;;AACA;AACA;;;AACA,IAAMO,MAAM,GACV,SADIA,MACJ;EAAA,IAACP,KAAD,uEAAiB,CAAjB;EAAA,OACA;IAAA,sBAAGD,KAAH;IAAA,IAAGA,KAAH,2BAAW,EAAX;IAAA,OACED,OAAO,CAACC,KAAD,EAAQC,KAAR,CADT;EAAA,CADA;AAAA,CADF;AAKA;AACA;AACA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMQ,OAAO,GACX,SADIA,OACJ;EAAA,kCAAIC,MAAJ;IAAIA,MAAJ;EAAA;;EAAA,OACA;IAAA,wBAAGV,KAAH;IAAA,IAAGA,KAAH,4BAAW,EAAX;IAAA,OACE,kBAAAU,MAAM,MAAN,CAAAA,MAAM,EAAK,UAACT,KAAD;MAAA,OAAWF,OAAO,CAACC,KAAD,EAAQC,KAAR,CAAlB;IAAA,CAAL,CAAN,CAA6CU,IAA7C,CAAkD,GAAlD,CADF;EAAA,CADA;AAAA,CADF;AAKA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMC,MAAM,GACV,SADIA,MACJ;EAAA,IAACX,KAAD,uEAAiB,CAAjB;EAAA,OACA;IAAA,wBAAGD,KAAH;IAAA,IAAGA,KAAH,4BAAW,EAAX;IAAA,OACED,OAAO,CAACC,KAAD,EAAQC,KAAR,EAAe,aAAf,EAA8B,IAA9B,CADT;EAAA,CADA;AAAA,CADF"}
1
+ {"version":3,"file":"spacers.js","names":["getSize","theme","ratio","path","unit","size","Big","times","IllegalStateException","IllegalArgumentException","spacer","spacers","ratios","join","gutter"],"sources":["../../../src/react-theme/utils/spacers.js"],"sourcesContent":["// @flow\nimport Big from \"big.js\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\nimport IllegalArgumentException from \"../../exceptions/IllegalArgumentException\";\nimport IllegalStateException from \"../../exceptions/IllegalStateException\";\n\n/**\n */\nconst getSize = (\n theme: Theme,\n ratio: number | string = 1,\n path: string = \"SPACER\",\n unit: string = \"rem\"\n) => {\n if (typeof ratio === \"string\") {\n return ratio;\n }\n\n if (typeof ratio === \"number\") {\n if (typeof theme[path] === \"number\") {\n const size = Big(ratio).times(theme[path]);\n return `${size}${unit}`;\n }\n throw new IllegalStateException(`Size ${path} must be a number`);\n }\n\n throw new IllegalArgumentException(\n `Ratio ${JSON.stringify(ratio)} must be a string or number`\n );\n};\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n */\n/**\n */\nconst spacer =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio);\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n * Ratio's can be given clockwise with shorthand,\n * spacers(0.5, 1) with a spacer of 0.8 will give \"0.4rem 1rem\";\n */\n/**\n */\nconst spacers =\n (...ratios: Array<number | \"auto\">): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n ratios.map((ratio) => getSize(theme, ratio)).join(\" \");\n\n/*\n * Render a gutter based on GUTTER property\n */\n/**\n */\nconst gutter =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio, \"GRID_GUTTER\", \"px\");\n\nexport { spacer, spacers, gutter };\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AAEA;AACA;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CACdC,KADc,EAKX;EAAA,IAHHC,KAGG,uEAHsB,CAGtB;EAAA,IAFHC,IAEG,uEAFY,QAEZ;EAAA,IADHC,IACG,uEADY,KACZ;;EACH,IAAI,OAAOF,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD;;EAED,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7B,IAAI,OAAOD,KAAK,CAACE,IAAD,CAAZ,KAAuB,QAA3B,EAAqC;MAAA;;MACnC,IAAME,IAAI,GAAG,IAAAC,YAAA,EAAIJ,KAAJ,EAAWK,KAAX,CAAiBN,KAAK,CAACE,IAAD,CAAtB,CAAb;MACA,iDAAUE,IAAV,kBAAiBD,IAAjB;IACD;;IACD,MAAM,IAAII,8BAAJ,gBAAkCL,IAAlC,uBAAN;EACD;;EAED,MAAM,IAAIM,iCAAJ,iBACK,wBAAeP,KAAf,CADL,iCAAN;AAGD,CArBD;AAuBA;AACA;AACA;;AACA;AACA;;;AACA,IAAMQ,MAAM,GACV,SADIA,MACJ;EAAA,IAACR,KAAD,uEAAiB,CAAjB;EAAA,OACA;IAAA,sBAAGD,KAAH;IAAA,IAAGA,KAAH,2BAAW,EAAX;IAAA,OACED,OAAO,CAACC,KAAD,EAAQC,KAAR,CADT;EAAA,CADA;AAAA,CADF;AAKA;AACA;AACA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMS,OAAO,GACX,SADIA,OACJ;EAAA,kCAAIC,MAAJ;IAAIA,MAAJ;EAAA;;EAAA,OACA;IAAA,wBAAGX,KAAH;IAAA,IAAGA,KAAH,4BAAW,EAAX;IAAA,OACE,kBAAAW,MAAM,MAAN,CAAAA,MAAM,EAAK,UAACV,KAAD;MAAA,OAAWF,OAAO,CAACC,KAAD,EAAQC,KAAR,CAAlB;IAAA,CAAL,CAAN,CAA6CW,IAA7C,CAAkD,GAAlD,CADF;EAAA,CADA;AAAA,CADF;AAKA;AACA;AACA;;AACA;AACA;;;;;AACA,IAAMC,MAAM,GACV,SADIA,MACJ;EAAA,IAACZ,KAAD,uEAAiB,CAAjB;EAAA,OACA;IAAA,wBAAGD,KAAH;IAAA,IAAGA,KAAH,4BAAW,EAAX;IAAA,OACED,OAAO,CAACC,KAAD,EAAQC,KAAR,EAAe,aAAf,EAA8B,IAA9B,CADT;EAAA,CADA;AAAA,CADF"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeProps.js","names":["getProp","theme","path","defaultValue","getThemeProp","value","ThemePropertyException","getThemeStringProp","toString","getThemeNumberProp","themeProp"],"sources":["../../../src/react-theme/utils/themeProps.js"],"sourcesContent":["// @flow\nimport { get } from \"../../utils/helpers/objects\";\n\nimport { ThemePropertyException } from \"../../exceptions\";\n\nimport type { Theme, ThemePropValue } from \"../types\";\n\n/**\n */\nexport const getProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: ThemePropValue = \"\"\n): ?ThemePropValue => {\n return path === \"\" ? defaultValue : get(theme, path, defaultValue);\n};\n\n/**\n */\nexport const getThemeProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: ThemePropValue = \"\"\n): ThemePropValue => {\n const value = getProp(theme, path, defaultValue);\n\n if (\n value != null &&\n (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"object\")\n ) {\n return value;\n }\n\n throw new ThemePropertyException(\n `${path} is not a string, number or plain object, but: ${typeof value}`\n );\n};\n\n/**\n */\nexport const getThemeStringProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: string = \"\"\n): string => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"string\") {\n return value;\n } else if (typeof value === \"number\") {\n return value.toString();\n }\n\n throw new ThemePropertyException(\n `${path} is not a string, but: ${typeof value}`\n );\n};\n\n/**\n */\nexport const getThemeNumberProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: number = 0\n): number => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"number\") {\n return value;\n }\n\n throw new ThemePropertyException(\n `${path} is not a number, but: ${typeof value}`\n );\n};\n\n/*\n * Retrieve property value from theme property of styled component\n */\n/**\n */\nexport const themeProp =\n (\n path: string,\n defaultValue?: ThemePropValue\n ): (({ theme: Theme }) => ThemePropValue) =>\n ({ theme }: { theme: Theme }) =>\n getThemeProp(theme, path, defaultValue);\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,OAAO,GAAG,SAAVA,OAAU,GAID;EAAA,IAHpBC,KAGoB,uEAHG,EAGH;EAAA,IAFpBC,IAEoB,uEAFL,EAEK;EAAA,IADpBC,YACoB,uEADW,EACX;EACpB,OAAOD,IAAI,KAAK,EAAT,GAAcC,YAAd,GAA6B,kBAAIF,KAAJ,EAAWC,IAAX,EAAiBC,YAAjB,CAApC;AACD,CANM;AAQP;AACA;;;;;AACO,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAIP;EAAA;;EAAA,IAHnBH,KAGmB,uEAHI,EAGJ;EAAA,IAFnBC,IAEmB,uEAFJ,EAEI;EAAA,IADnBC,YACmB,uEADY,EACZ;EACnB,IAAME,KAAK,GAAGL,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IACEE,KAAK,IAAI,IAAT,KACC,OAAOA,KAAP,KAAiB,QAAjB,IACC,OAAOA,KAAP,KAAiB,QADlB,IAEC,sBAAOA,KAAP,MAAiB,QAHnB,CADF,EAKE;IACA,OAAOA,KAAP;EACD;;EAED,MAAM,IAAIC,kCAAJ,2CACDJ,IADC,2FAC4DG,KAD5D,GAAN;AAGD,CAnBM;AAqBP;AACA;;;;;AACO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,GAIrB;EAAA;;EAAA,IAHXN,KAGW,uEAHY,EAGZ;EAAA,IAFXC,IAEW,uEAFI,EAEJ;EAAA,IADXC,YACW,uEADY,EACZ;EACX,IAAME,KAAK,GAAGL,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IAAI,OAAOE,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD,CAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IACpC,OAAOA,KAAK,CAACG,QAAN,EAAP;EACD;;EAED,MAAM,IAAIF,kCAAJ,4CACDJ,IADC,oEACoCG,KADpC,GAAN;AAGD,CAhBM;AAkBP;AACA;;;;;AACO,IAAMI,kBAAkB,GAAG,SAArBA,kBAAqB,GAIrB;EAAA;;EAAA,IAHXR,KAGW,uEAHY,EAGZ;EAAA,IAFXC,IAEW,uEAFI,EAEJ;EAAA,IADXC,YACW,uEADY,CACZ;EACX,IAAME,KAAK,GAAGL,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IAAI,OAAOE,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD;;EAED,MAAM,IAAIC,kCAAJ,4CACDJ,IADC,oEACoCG,KADpC,GAAN;AAGD,CAdM;AAgBP;AACA;AACA;;AACA;AACA;;;;;AACO,IAAMK,SAAS,GACpB,SADWA,SACX,CACER,IADF,EAEEC,YAFF;EAAA,OAIA;IAAA,IAAGF,KAAH,QAAGA,KAAH;IAAA,OACEG,YAAY,CAACH,KAAD,EAAQC,IAAR,EAAcC,YAAd,CADd;EAAA,CAJA;AAAA,CADK"}
1
+ {"version":3,"file":"themeProps.js","names":["getProp","theme","path","defaultValue","get","getThemeProp","value","ThemePropertyException","getThemeStringProp","toString","getThemeNumberProp","themeProp"],"sources":["../../../src/react-theme/utils/themeProps.js"],"sourcesContent":["// @flow\nimport { get } from \"../../utils/helpers/objects\";\n\nimport { ThemePropertyException } from \"../../exceptions\";\n\nimport type { Theme, ThemePropValue } from \"../types\";\n\n/**\n */\nexport const getProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: ThemePropValue = \"\"\n): ?ThemePropValue => {\n return path === \"\" ? defaultValue : get(theme, path, defaultValue);\n};\n\n/**\n */\nexport const getThemeProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: ThemePropValue = \"\"\n): ThemePropValue => {\n const value = getProp(theme, path, defaultValue);\n\n if (\n value != null &&\n (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"object\")\n ) {\n return value;\n }\n\n throw new ThemePropertyException(\n `${path} is not a string, number or plain object, but: ${typeof value}`\n );\n};\n\n/**\n */\nexport const getThemeStringProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: string = \"\"\n): string => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"string\") {\n return value;\n } else if (typeof value === \"number\") {\n return value.toString();\n }\n\n throw new ThemePropertyException(\n `${path} is not a string, but: ${typeof value}`\n );\n};\n\n/**\n */\nexport const getThemeNumberProp = (\n theme: $Shape<Theme> = {},\n path: string = \"\",\n defaultValue: number = 0\n): number => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"number\") {\n return value;\n }\n\n throw new ThemePropertyException(\n `${path} is not a number, but: ${typeof value}`\n );\n};\n\n/*\n * Retrieve property value from theme property of styled component\n */\n/**\n */\nexport const themeProp =\n (\n path: string,\n defaultValue?: ThemePropValue\n ): (({ theme: Theme }) => ThemePropValue) =>\n ({ theme }: { theme: Theme }) =>\n getThemeProp(theme, path, defaultValue);\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,OAAO,GAAG,SAAVA,OAAU,GAID;EAAA,IAHpBC,KAGoB,uEAHG,EAGH;EAAA,IAFpBC,IAEoB,uEAFL,EAEK;EAAA,IADpBC,YACoB,uEADW,EACX;EACpB,OAAOD,IAAI,KAAK,EAAT,GAAcC,YAAd,GAA6B,IAAAC,YAAA,EAAIH,KAAJ,EAAWC,IAAX,EAAiBC,YAAjB,CAApC;AACD,CANM;AAQP;AACA;;;;;AACO,IAAME,YAAY,GAAG,SAAfA,YAAe,GAIP;EAAA;;EAAA,IAHnBJ,KAGmB,uEAHI,EAGJ;EAAA,IAFnBC,IAEmB,uEAFJ,EAEI;EAAA,IADnBC,YACmB,uEADY,EACZ;EACnB,IAAMG,KAAK,GAAGN,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IACEG,KAAK,IAAI,IAAT,KACC,OAAOA,KAAP,KAAiB,QAAjB,IACC,OAAOA,KAAP,KAAiB,QADlB,IAEC,sBAAOA,KAAP,MAAiB,QAHnB,CADF,EAKE;IACA,OAAOA,KAAP;EACD;;EAED,MAAM,IAAIC,kCAAJ,2CACDL,IADC,2FAC4DI,KAD5D,GAAN;AAGD,CAnBM;AAqBP;AACA;;;;;AACO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,GAIrB;EAAA;;EAAA,IAHXP,KAGW,uEAHY,EAGZ;EAAA,IAFXC,IAEW,uEAFI,EAEJ;EAAA,IADXC,YACW,uEADY,EACZ;EACX,IAAMG,KAAK,GAAGN,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IAAI,OAAOG,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD,CAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IACpC,OAAOA,KAAK,CAACG,QAAN,EAAP;EACD;;EAED,MAAM,IAAIF,kCAAJ,4CACDL,IADC,oEACoCI,KADpC,GAAN;AAGD,CAhBM;AAkBP;AACA;;;;;AACO,IAAMI,kBAAkB,GAAG,SAArBA,kBAAqB,GAIrB;EAAA;;EAAA,IAHXT,KAGW,uEAHY,EAGZ;EAAA,IAFXC,IAEW,uEAFI,EAEJ;EAAA,IADXC,YACW,uEADY,CACZ;EACX,IAAMG,KAAK,GAAGN,OAAO,CAACC,KAAD,EAAQC,IAAR,EAAcC,YAAd,CAArB;;EAEA,IAAI,OAAOG,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD;;EAED,MAAM,IAAIC,kCAAJ,4CACDL,IADC,oEACoCI,KADpC,GAAN;AAGD,CAdM;AAgBP;AACA;AACA;;AACA;AACA;;;;;AACO,IAAMK,SAAS,GACpB,SADWA,SACX,CACET,IADF,EAEEC,YAFF;EAAA,OAIA;IAAA,IAAGF,KAAH,QAAGA,KAAH;IAAA,OACEI,YAAY,CAACJ,KAAD,EAAQC,IAAR,EAAcC,YAAd,CADd;EAAA,CAJA;AAAA,CADK"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["receiveLocale","locale","type","payload","updateLocale","dispatch","setLocales","locales"],"sources":["../../../src/redux/_i18n/actions.js"],"sourcesContent":["// @flow\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport type Locales from \"../../i18n/Locales\";\nimport type { SetLocalesAction, UpdateLocaleAction } from \"./types\";\nimport type { ThunkAction } from \"../types\";\n\n/**\n * Update current locale\n */\nexport const receiveLocale = (locale: string): UpdateLocaleAction => ({\n type: \"UPDATE_LOCALE\",\n payload: locale,\n});\n\n/**\n * Change locale of application and redirect\n */\nexport const updateLocale =\n (locale: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n dispatch(receiveLocale(locale));\n\n dispatch(finishProgress());\n };\n\n/**\n */\nexport const setLocales = (\n locales: Locales,\n locale: string\n): SetLocalesAction => ({\n type: \"SET_LOCALES\",\n payload: {\n locales,\n locale,\n },\n});\n"],"mappings":";;;;;;;AACA;;AAMA;AACA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD;EAAA,OAAyC;IACpEC,IAAI,EAAE,eAD8D;IAEpEC,OAAO,EAAEF;EAF2D,CAAzC;AAAA,CAAtB;AAKP;AACA;AACA;;;;;AACO,IAAMG,YAAY,GACvB,SADWA,YACX,CAACH,MAAD;EAAA,OACA,UAACI,QAAD,EAAc;IACZA,QAAQ,CAAC,uCAAD,CAAR;IACAA,QAAQ,CAACL,aAAa,CAACC,MAAD,CAAd,CAAR;IAEAI,QAAQ,CAAC,wCAAD,CAAR;EACD,CAND;AAAA,CADK;AASP;AACA;;;;;AACO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CACxBC,OADwB,EAExBN,MAFwB;EAAA,OAGF;IACtBC,IAAI,EAAE,aADgB;IAEtBC,OAAO,EAAE;MACPI,OAAO,EAAPA,OADO;MAEPN,MAAM,EAANA;IAFO;EAFa,CAHE;AAAA,CAAnB"}
1
+ {"version":3,"file":"actions.js","names":["receiveLocale","locale","type","payload","updateLocale","dispatch","startProgress","finishProgress","setLocales","locales"],"sources":["../../../src/redux/_i18n/actions.js"],"sourcesContent":["// @flow\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport type Locales from \"../../i18n/Locales\";\nimport type { SetLocalesAction, UpdateLocaleAction } from \"./types\";\nimport type { ThunkAction } from \"../types\";\n\n/**\n * Update current locale\n */\nexport const receiveLocale = (locale: string): UpdateLocaleAction => ({\n type: \"UPDATE_LOCALE\",\n payload: locale,\n});\n\n/**\n * Change locale of application and redirect\n */\nexport const updateLocale =\n (locale: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n dispatch(receiveLocale(locale));\n\n dispatch(finishProgress());\n };\n\n/**\n */\nexport const setLocales = (\n locales: Locales,\n locale: string\n): SetLocalesAction => ({\n type: \"SET_LOCALES\",\n payload: {\n locales,\n locale,\n },\n});\n"],"mappings":";;;;;;;AACA;;AAMA;AACA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD;EAAA,OAAyC;IACpEC,IAAI,EAAE,eAD8D;IAEpEC,OAAO,EAAEF;EAF2D,CAAzC;AAAA,CAAtB;AAKP;AACA;AACA;;;;;AACO,IAAMG,YAAY,GACvB,SADWA,YACX,CAACH,MAAD;EAAA,OACA,UAACI,QAAD,EAAc;IACZA,QAAQ,CAAC,IAAAC,gCAAA,GAAD,CAAR;IACAD,QAAQ,CAACL,aAAa,CAACC,MAAD,CAAd,CAAR;IAEAI,QAAQ,CAAC,IAAAE,iCAAA,GAAD,CAAR;EACD,CAND;AAAA,CADK;AASP;AACA;;;;;AACO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CACxBC,OADwB,EAExBR,MAFwB;EAAA,OAGF;IACtBC,IAAI,EAAE,aADgB;IAEtBC,OAAO,EAAE;MACPM,OAAO,EAAPA,OADO;MAEPR,MAAM,EAANA;IAFO;EAFa,CAHE;AAAA,CAAnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","names":["updateLocale","state","locale","Cache","clear","setLocales","locales","initialState","Locales","I18nReducer","action","type","payload"],"sources":["../../../src/redux/_i18n/reducer.js"],"sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport { setCookie } from \"../../utils/browser/Cookies\";\n\nimport Locales from \"../../i18n/Locales\";\n\nimport type { Reducer } from \"redux\";\nimport type { I18nState } from \"./types\";\nimport type { ReduxAction } from \"../types\";\n\n/**\n */\nconst updateLocale = (state, locale) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n // clear cache because of cached contributions\n Cache.clear();\n\n return {\n ...state,\n locale,\n };\n};\n\n/**\n */\nconst setLocales = (state, { locale, locales }) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n if (locale) {\n return {\n ...state,\n locales,\n locale,\n };\n }\n\n return {\n ...state,\n locales,\n };\n};\n\n// REDUCER\nconst initialState: I18nState = {\n locales: new Locales(),\n locale: \"en\",\n};\n\n/**\n * Form reducer\n */\nexport const I18nReducer: Reducer<I18nState, ReduxAction> = (\n state = initialState,\n action = void 0\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"SET_LOCALES\":\n return setLocales(state, action.payload);\n\n case \"UPDATE_LOCALE\":\n return updateLocale(state, action.payload);\n\n default:\n return state;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;;;;;AAMA;AACA;AACA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQC,MAAR,EAAmB;EACtC;EACA,wBAAU,QAAV,EAAoBA,MAApB,EAFsC,CAItC;;EACAC,eAAMC,KAAN;;EAEA,uCACKH,KADL;IAEEC,MAAM,EAANA;EAFF;AAID,CAXD;AAaA;AACA;;;AACA,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACJ,KAAD,QAAgC;EAAA,IAAtBC,MAAsB,QAAtBA,MAAsB;EAAA,IAAdI,OAAc,QAAdA,OAAc;EACjD;EACA,wBAAU,QAAV,EAAoBJ,MAApB;;EAEA,IAAIA,MAAJ,EAAY;IACV,uCACKD,KADL;MAEEK,OAAO,EAAPA,OAFF;MAGEJ,MAAM,EAANA;IAHF;EAKD;;EAED,uCACKD,KADL;IAEEK,OAAO,EAAPA;EAFF;AAID,CAhBD,C,CAkBA;;;AACA,IAAMC,YAAuB,GAAG;EAC9BD,OAAO,EAAE,IAAIE,gBAAJ,EADqB;EAE9BN,MAAM,EAAE;AAFsB,CAAhC;AAKA;AACA;AACA;;AACO,IAAMO,WAA4C,GAAG,SAA/CA,WAA+C,GAGvD;EAAA,IAFHR,KAEG,uEAFKM,YAEL;EAAA,IADHG,MACG,uEADM,KAAK,CACX;;EACH,IAAI,CAACA,MAAL,EAAa;IACX,OAAOT,KAAP;EACD;;EAED,QAAQS,MAAM,CAACC,IAAf;IACE,KAAK,aAAL;MACE,OAAON,UAAU,CAACJ,KAAD,EAAQS,MAAM,CAACE,OAAf,CAAjB;;IAEF,KAAK,eAAL;MACE,OAAOZ,YAAY,CAACC,KAAD,EAAQS,MAAM,CAACE,OAAf,CAAnB;;IAEF;MACE,OAAOX,KAAP;EARJ;AAUD,CAlBM"}
1
+ {"version":3,"file":"reducer.js","names":["updateLocale","state","locale","setCookie","Cache","clear","setLocales","locales","initialState","Locales","I18nReducer","action","type","payload"],"sources":["../../../src/redux/_i18n/reducer.js"],"sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport { setCookie } from \"../../utils/browser/Cookies\";\n\nimport Locales from \"../../i18n/Locales\";\n\nimport type { Reducer } from \"redux\";\nimport type { I18nState } from \"./types\";\nimport type { ReduxAction } from \"../types\";\n\n/**\n */\nconst updateLocale = (state, locale) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n // clear cache because of cached contributions\n Cache.clear();\n\n return {\n ...state,\n locale,\n };\n};\n\n/**\n */\nconst setLocales = (state, { locale, locales }) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n if (locale) {\n return {\n ...state,\n locales,\n locale,\n };\n }\n\n return {\n ...state,\n locales,\n };\n};\n\n// REDUCER\nconst initialState: I18nState = {\n locales: new Locales(),\n locale: \"en\",\n};\n\n/**\n * Form reducer\n */\nexport const I18nReducer: Reducer<I18nState, ReduxAction> = (\n state = initialState,\n action = void 0\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"SET_LOCALES\":\n return setLocales(state, action.payload);\n\n case \"UPDATE_LOCALE\":\n return updateLocale(state, action.payload);\n\n default:\n return state;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;;;;;AAMA;AACA;AACA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQC,MAAR,EAAmB;EACtC;EACA,IAAAC,kBAAA,EAAU,QAAV,EAAoBD,MAApB,EAFsC,CAItC;;EACAE,cAAA,CAAMC,KAAN;;EAEA,uCACKJ,KADL;IAEEC,MAAM,EAANA;EAFF;AAID,CAXD;AAaA;AACA;;;AACA,IAAMI,UAAU,GAAG,SAAbA,UAAa,CAACL,KAAD,QAAgC;EAAA,IAAtBC,MAAsB,QAAtBA,MAAsB;EAAA,IAAdK,OAAc,QAAdA,OAAc;EACjD;EACA,IAAAJ,kBAAA,EAAU,QAAV,EAAoBD,MAApB;;EAEA,IAAIA,MAAJ,EAAY;IACV,uCACKD,KADL;MAEEM,OAAO,EAAPA,OAFF;MAGEL,MAAM,EAANA;IAHF;EAKD;;EAED,uCACKD,KADL;IAEEM,OAAO,EAAPA;EAFF;AAID,CAhBD,C,CAkBA;;;AACA,IAAMC,YAAuB,GAAG;EAC9BD,OAAO,EAAE,IAAIE,gBAAJ,EADqB;EAE9BP,MAAM,EAAE;AAFsB,CAAhC;AAKA;AACA;AACA;;AACO,IAAMQ,WAA4C,GAAG,SAA/CA,WAA+C,GAGvD;EAAA,IAFHT,KAEG,uEAFKO,YAEL;EAAA,IADHG,MACG,uEADM,KAAK,CACX;;EACH,IAAI,CAACA,MAAL,EAAa;IACX,OAAOV,KAAP;EACD;;EAED,QAAQU,MAAM,CAACC,IAAf;IACE,KAAK,aAAL;MACE,OAAON,UAAU,CAACL,KAAD,EAAQU,MAAM,CAACE,OAAf,CAAjB;;IAEF,KAAK,eAAL;MACE,OAAOb,YAAY,CAACC,KAAD,EAAQU,MAAM,CAACE,OAAf,CAAnB;;IAEF;MACE,OAAOZ,KAAP;EARJ;AAUD,CAlBM"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["setModel","key","model","connectKey","type","payload","updateModel","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","modelToUpdate","clonedModel","clone","update","Error","loadModel","href","options","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","isInvalidUsername","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","LOADING","loadModelPromise","resolve","then","response","FINISHED","catch","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/actions.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 UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type { RequestBaseOptions } 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 updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\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 modelToUpdate\n): UpdateModelAction | SetModelAction => {\n if (modelToUpdate) {\n // $FlowFixMe[prop-missing]\n if (typeof modelToUpdate[\"update\"] === \"function\") {\n const clonedModel = modelToUpdate.clone();\n clonedModel.update(model);\n\n return updateModel(clonedModel);\n }\n\n throw new Error(\n `loadModel action: updateModel is set as option for ${key}, but the model is missing an update methode`\n );\n }\n\n return setModel(key, model);\n};\n\n/**\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\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 /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateModel),\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 (\n errorResponse.isResourceNotFoundAfterReload ||\n errorResponse.isInvalidUsername\n ) {\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?: RequestBaseOptions\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?: RequestBaseOptions\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","names":["setModel","key","model","connectKey","type","payload","updateModel","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","modelToUpdate","clonedModel","clone","update","Error","loadModel","href","options","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","isInvalidUsername","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","LOADING","startProgress","loadModelPromise","resolve","then","response","FINISHED","finishProgress","catch","handleError","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/actions.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 UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type { RequestBaseOptions } 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 updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\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 modelToUpdate\n): UpdateModelAction | SetModelAction => {\n if (modelToUpdate) {\n // $FlowFixMe[prop-missing]\n if (typeof modelToUpdate[\"update\"] === \"function\") {\n const clonedModel = modelToUpdate.clone();\n clonedModel.update(model);\n\n return updateModel(clonedModel);\n }\n\n throw new Error(\n `loadModel action: updateModel is set as option for ${key}, but the model is missing an update methode`\n );\n }\n\n return setModel(key, model);\n};\n\n/**\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\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 /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateModel),\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 (\n errorResponse.isResourceNotFoundAfterReload ||\n errorResponse.isInvalidUsername\n ) {\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?: RequestBaseOptions\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?: RequestBaseOptions\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAcA;AACA;AACO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CACtBC,GADsB,EAEtBC,KAFsB,EAGH;EACnB;EACAA,KAAK,CAACC,UAAN,GAAmBF,GAAnB;EACA,OAAO;IACLG,IAAI,EAAE,eADD;IAELC,OAAO,EAAE;MACPJ,GAAG,EAAHA,GADO;MAEPC,KAAK,EAALA;IAFO;EAFJ,CAAP;AAOD,CAbM;AAeP;AACA;;;;;AACO,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACJ,KAAD;EAAA,OAA+C;IACxEE,IAAI,EAAE,kBADkE;IAExEC,OAAO,EAAEH;EAF+D,CAA/C;AAAA,CAApB;AAKP;AACA;;;;;AACO,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACN,GAAD;EAAA,OAA0C;IACxEG,IAAI,EAAE,sBADkE;IAExEC,OAAO,EAAEJ;EAF+D,CAA1C;AAAA,CAAzB;AAKP;AACA;AACA;;;;;AACO,IAAMO,cAAc,GAAG,SAAjBA,cAAiB;EAAA,OAA6B;IACzDJ,IAAI,EAAE;EADmD,CAA7B;AAAA,CAAvB;AAIP;AACA;;;;;AACO,IAAMK,YAAY,GAAG,SAAfA,YAAe,CAC1BR,GAD0B,EAE1BS,MAF0B;EAAA,OAGF;IACxBN,IAAI,EAAE,kBADkB;IAExBC,OAAO,EAAE;MAAEJ,GAAG,EAAHA,GAAF;MAAOS,MAAM,EAANA;IAAP;EAFe,CAHE;AAAA,CAArB;AAQP;AACA;;;;;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BV,GAD6B,EAE7BC,KAF6B,EAG7BU,aAH6B,EAIU;EACvC,IAAIA,aAAJ,EAAmB;IACjB;IACA,IAAI,OAAOA,aAAa,CAAC,QAAD,CAApB,KAAmC,UAAvC,EAAmD;MACjD,IAAMC,WAAW,GAAGD,aAAa,CAACE,KAAd,EAApB;MACAD,WAAW,CAACE,MAAZ,CAAmBb,KAAnB;MAEA,OAAOI,WAAW,CAACO,WAAD,CAAlB;IACD;;IAED,MAAM,IAAIG,KAAJ,8DACkDf,GADlD,kDAAN;EAGD;;EAED,OAAOD,QAAQ,CAACC,GAAD,EAAMC,KAAN,CAAf;AACD,CApBD;AAsBA;AACA;;;AACO,IAAMe,SAAS,GAAG,SAAZA,SAAY,CACvBhB,GADuB,EAEvBiB,IAFuB,EAGvBC,OAHuB;EAAA;;EAAA,OAIF;IACrBf,IAAI,EAAE,iBADe;IAErBC,OAAO,EAAE;MACPa,IAAI,EAAEA,IAAI,YAAYE,aAAhB,GAAuBF,IAAvB,GAA8B,IAAIE,aAAJ,CAASF,IAAT,CAD7B;MAEPG,MAAM,qBAAEF,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEE,MAAX,6DAAqBC,uBAAA,CAAaC,GAFjC;MAGPC,IAAI,EAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEK,IAHR;MAIPC,MAAM,qBAAEN,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEM,MAAX,6DAAqB,IAJpB;MAKPC,WAAW,EAAEP,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEO,WALf;MAMPC,WAAW,EAAER,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEQ,WANf;;MAOP;AACJ;MACIC,aAAa,EAAE,uBAAC1B,KAAD;QAAA,OACbS,sBAAsB,CAACV,GAAD,EAAMC,KAAN,EAAaiB,OAAb,aAAaA,OAAb,uBAAaA,OAAO,CAAEb,WAAtB,CADT;MAAA,CATR;;MAWP;AACJ;MACIuB,WAAW,EAAE,qBAACC,KAAD,EAAW;QACtB,IAAMC,aAAa,GAAG,IAAIC,sBAAJ,CAAkBF,KAAlB,EAAyB7B,GAAzB,CAAtB;;QACA,IAAI8B,aAAa,CAACE,gBAAlB,EAAoC;UAClC,OAAO;YACL7B,IAAI,EAAE;UADD,CAAP;QAGD,CAJD,MAIO,IACL2B,aAAa,CAACG,6BAAd,IACAH,aAAa,CAACI,iBAFT,EAGL;UACA,OAAO5B,gBAAgB,CAACN,GAAD,CAAvB;QACD;;QAED,OAAOQ,YAAY,CAACR,GAAD,EAAMmC,2BAAA,CAAiBC,KAAvB,CAAnB;MACD;IA3BM;EAFY,CAJE;AAAA,CAAlB;AAqCP;AACA;;;;;AACO,IAAMC,aAAa,GACxB,SADWA,aACX,CACErC,GADF,EAEEiB,IAFF,EAGEC,OAHF;EAAA,OAKA,UAACoB,QAAD,EAAwB;IACtBA,QAAQ,CAAC9B,YAAY,CAACR,GAAD,EAAMmC,2BAAA,CAAiBI,OAAvB,CAAb,CAAR;IACAD,QAAQ,CAAC,IAAAE,gCAAA,GAAD,CAAR;IAEA,IAAMC,gBAAgB,GAAGH,QAAQ,CAACtB,SAAS,CAAChB,GAAD,EAAMiB,IAAN,EAAYC,OAAZ,CAAV,CAAjC;IAEA,OAAO,iBAAQwB,OAAR,CAAgBD,gBAAhB,EACJE,IADI,CACC,UAACC,QAAD,EAAc;MAClB,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEzC,IAAV,MAAmB,iBAAvB,EAA0C;QACxCmC,QAAQ,CAAC9B,YAAY,CAACR,GAAD,EAAMmC,2BAAA,CAAiBU,QAAvB,CAAb,CAAR;MACD;;MAED,OAAOP,QAAQ,CAAC,IAAAQ,iCAAA,GAAD,CAAf;IACD,CAPI,EAQJC,KARI,CAQE,UAAClB,KAAD;MAAA,OAAWS,QAAQ,CAAC,IAAAU,kBAAA,EAAYnB,KAAZ,CAAD,CAAnB;IAAA,CARF,CAAP;EASD,CApBD;AAAA,CADK;AAuBP;AACA;;;;;AACO,IAAMoB,WAAW,GAAG,SAAdA,WAAc,CACzBhD,KADyB,EAEzBiB,OAFyB;EAAA,OAIzBmB,aAAa,CAACpC,KAAK,CAACC,UAAP,EAAmBD,KAAK,CAACiD,QAAzB,kCACRhC,OADQ;IAEXiC,QAAQ,EAAE;EAFC,GAJY;AAAA,CAApB"}
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","names":["connector","name","resource","options","propName","removeOnUnmount","otherOptions","Component","WrappedComponent","props","dispatch","location","url","displayName","contextId","modelEntry","modelKey","model","connectKey","handleManualReload","reloadOptions","handleFetch","href","fetchOptions","reload","state","doReload","isReload","locale","i18n","newProps","status","lastModification","Boolean"],"sources":["../../../src/redux/_modularui/connector.js"],"sourcesContent":["// @flow\nimport { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { loadModularUI, reloadModel, removeModelByKey } from \"./actions\";\n\nimport Href from \"../../models/href/Href\";\nimport { getDisplayName } from \"../../react/utils\";\n\nimport { useUrl, useReload } from \"./modularuiUtils\";\nimport { useModularUI } from \"../../hooks/useModularUI\";\n\nimport type { ComponentType, Node } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { ModularUIOptions } from \"./types\";\n\nexport type InjectedProps = {\n +modelKey: string,\n +location: Location,\n +status: string | null,\n +lastModification: number | null,\n +hasModel: boolean,\n +locale: string,\n +fetchModularUI: (href: string | Href, fetchOptions: Object) => void,\n +reloadModel: (model: ModularUIModel, options: Object) => void,\n +data?: ?ModularUIModel,\n};\n\n/**\n */\nconst connector = (\n name: string,\n resource: string | Function,\n options: ModularUIOptions = { propName: \"data\", removeOnUnmount: false }\n): ((Component: ComponentType<any>) => (props: any) => Node) => {\n const {\n propName = \"data\",\n removeOnUnmount = false,\n ...otherOptions\n } = options;\n\n return (Component: ComponentType<any>) => {\n const WrappedComponent = (props: any) => {\n const dispatch = useDispatch();\n const location = useLocation();\n\n const url = useUrl(resource, { location, ...props });\n const displayName = getDisplayName(Component, name, props.contextId);\n\n // Load the model through the useModUI hook\n const modelEntry = useModularUI(displayName, url, otherOptions);\n const modelKey = modelEntry?.model?.connectKey;\n\n // handle manual reload of model\n const handleManualReload = (\n model: ModularUIModel,\n reloadOptions?: Object\n ) => {\n dispatch(reloadModel(model, reloadOptions));\n };\n\n // Provide connected models with a fetchModularUI method to be able\n // to run the loadModularUI action from a handler / callback in the component\n const handleFetch = (href: string | Href, fetchOptions: Object) => {\n dispatch(loadModularUI(modelKey, href, fetchOptions));\n };\n\n // Check if current model needs a reload\n const reload = location?.state?.reload ?? 0;\n const doReload = useReload(modelEntry, reload);\n useEffect(() => {\n if (doReload) {\n dispatch(\n loadModularUI(modelKey, url, { ...otherOptions, isReload: true })\n );\n }\n }, [dispatch, doReload, url, modelKey]);\n\n // Remove model when hoc unloads\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(modelKey));\n }\n };\n }, [dispatch, modelKey]);\n\n // Create new properties object to inject modularui properties to own props\n const locale = useSelector((state) => state.i18n.locale);\n const newProps: InjectedProps = {\n modelKey,\n [propName]: modelEntry ? modelEntry.model : null,\n location,\n status: modelEntry ? modelEntry.status : null,\n lastModification: modelEntry ? modelEntry.lastModification : null,\n hasModel: Boolean(modelEntry),\n locale,\n fetchModularUI: handleFetch,\n reloadModel: handleManualReload,\n };\n\n return <Component {...props} {...newProps} />;\n };\n\n WrappedComponent.displayName = `BI.modularui(${getDisplayName(\n WrappedComponent,\n name\n )}`;\n\n return WrappedComponent;\n };\n};\n\nexport default connector;\n"],"mappings":"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"}
1
+ {"version":3,"file":"connector.js","names":["connector","name","resource","options","propName","removeOnUnmount","otherOptions","Component","WrappedComponent","props","dispatch","useDispatch","location","useLocation","url","useUrl","displayName","getDisplayName","contextId","modelEntry","useModularUI","modelKey","model","connectKey","handleManualReload","reloadOptions","reloadModel","handleFetch","href","fetchOptions","loadModularUI","reload","state","doReload","useReload","useEffect","isReload","removeModelByKey","locale","useSelector","i18n","newProps","status","lastModification","Boolean"],"sources":["../../../src/redux/_modularui/connector.js"],"sourcesContent":["// @flow\nimport { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { loadModularUI, reloadModel, removeModelByKey } from \"./actions\";\n\nimport Href from \"../../models/href/Href\";\nimport { getDisplayName } from \"../../react/utils\";\n\nimport { useUrl, useReload } from \"./modularuiUtils\";\nimport { useModularUI } from \"../../hooks/useModularUI\";\n\nimport type { ComponentType, Node } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { ModularUIOptions } from \"./types\";\n\nexport type InjectedProps = {\n +modelKey: string,\n +location: Location,\n +status: string | null,\n +lastModification: number | null,\n +hasModel: boolean,\n +locale: string,\n +fetchModularUI: (href: string | Href, fetchOptions: Object) => void,\n +reloadModel: (model: ModularUIModel, options: Object) => void,\n +data?: ?ModularUIModel,\n};\n\n/**\n */\nconst connector = (\n name: string,\n resource: string | Function,\n options: ModularUIOptions = { propName: \"data\", removeOnUnmount: false }\n): ((Component: ComponentType<any>) => (props: any) => Node) => {\n const {\n propName = \"data\",\n removeOnUnmount = false,\n ...otherOptions\n } = options;\n\n return (Component: ComponentType<any>) => {\n const WrappedComponent = (props: any) => {\n const dispatch = useDispatch();\n const location = useLocation();\n\n const url = useUrl(resource, { location, ...props });\n const displayName = getDisplayName(Component, name, props.contextId);\n\n // Load the model through the useModUI hook\n const modelEntry = useModularUI(displayName, url, otherOptions);\n const modelKey = modelEntry?.model?.connectKey;\n\n // handle manual reload of model\n const handleManualReload = (\n model: ModularUIModel,\n reloadOptions?: Object\n ) => {\n dispatch(reloadModel(model, reloadOptions));\n };\n\n // Provide connected models with a fetchModularUI method to be able\n // to run the loadModularUI action from a handler / callback in the component\n const handleFetch = (href: string | Href, fetchOptions: Object) => {\n dispatch(loadModularUI(modelKey, href, fetchOptions));\n };\n\n // Check if current model needs a reload\n const reload = location?.state?.reload ?? 0;\n const doReload = useReload(modelEntry, reload);\n useEffect(() => {\n if (doReload) {\n dispatch(\n loadModularUI(modelKey, url, { ...otherOptions, isReload: true })\n );\n }\n }, [dispatch, doReload, url, modelKey]);\n\n // Remove model when hoc unloads\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(modelKey));\n }\n };\n }, [dispatch, modelKey]);\n\n // Create new properties object to inject modularui properties to own props\n const locale = useSelector((state) => state.i18n.locale);\n const newProps: InjectedProps = {\n modelKey,\n [propName]: modelEntry ? modelEntry.model : null,\n location,\n status: modelEntry ? modelEntry.status : null,\n lastModification: modelEntry ? modelEntry.lastModification : null,\n hasModel: Boolean(modelEntry),\n locale,\n fetchModularUI: handleFetch,\n reloadModel: handleManualReload,\n };\n\n return <Component {...props} {...newProps} />;\n };\n\n WrappedComponent.displayName = `BI.modularui(${getDisplayName(\n WrappedComponent,\n name\n )}`;\n\n return WrappedComponent;\n };\n};\n\nexport default connector;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","names":["createRequest","modularui","request","ModularUIRequest","href","method","HTTP_METHODS","GET","data","locale","childmodels","isReload","targetModel","responseHandler","next","dispatch","successAction","model","successResult","then","result","catch","error","Error","errorHandler","errorAction","err","errorResult","handleFetch","action","payload","requestOptions","modularuiRequest","fetch","modularuiMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/middleware.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 } from \"./types\";\n\ntype RequestOptions = {\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n data?: string | { [key: string]: string },\n locale: string,\n childmodels?: boolean,\n targetModel?: Class<ModularUIModel>,\n isReload?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions) => {\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 });\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (next, dispatch, successAction, model) => {\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 = (next, dispatch, errorAction, err) => {\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 = (action: ModularUIAction, locale, dispatch, next) => {\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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"}
1
+ {"version":3,"file":"middleware.js","names":["createRequest","modularui","request","ModularUIRequest","href","method","HTTP_METHODS","GET","data","locale","childmodels","isReload","targetModel","responseHandler","next","dispatch","successAction","model","successResult","then","result","catch","error","handleError","Error","finishProgress","errorHandler","errorAction","err","errorResult","handleFetch","action","startProgress","payload","requestOptions","modularuiRequest","fetch","modularuiMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/middleware.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 } from \"./types\";\n\ntype RequestOptions = {\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n data?: string | { [key: string]: string },\n locale: string,\n childmodels?: boolean,\n targetModel?: Class<ModularUIModel>,\n isReload?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions) => {\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 });\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (next, dispatch, successAction, model) => {\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 = (next, dispatch, errorAction, err) => {\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 = (action: ModularUIAction, locale, dispatch, next) => {\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modularuiUtils.js","names":["getUrl","resource","props","url","Href","toString","useUrl","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","isDifferentUrl","hasDifferentStartUriPart","isExact","getKey","WrappedComponent","name","split","useReload","modelEntry","reload","isFullyLoaded","status","MODULARUI_STATUS","FINISHED","lastModification"],"sources":["../../../src/redux/_modularui/modularuiUtils.js"],"sourcesContent":["// @flow\nimport { useState } from \"react\";\n\nimport { getDisplayName } from \"../../react/utils\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\n\nimport type { ComponentType } from \"react\";\n\n/**\n * Generate modular ui url\n */\nconst getUrl = (resource: string | Function, props: Object) => {\n const url = typeof resource === \"function\" ? resource(props) : resource;\n\n if (url instanceof Href) {\n return url.toString();\n }\n\n return url || \"\";\n};\n\n/**\n */\nexport const useUrl = (resource: string | Function, props: Object): string => {\n const [previousUrl, setPreviousUrl] = useState(\"\");\n const [previousExact, setPreviousExact] = useState(false);\n\n const url = getUrl(resource, props);\n\n const { match } = props;\n\n // when match is not available through props,\n // this is a direct call to the modular ui hoc, not using a route\n if (!match) {\n return url;\n }\n\n const isDifferentUrl = url !== previousUrl;\n if (!isDifferentUrl) {\n return previousUrl;\n }\n\n const hasDifferentStartUriPart =\n previousUrl !== \"\" && !previousUrl.startsWith(match.url);\n\n // Always create an url when the match is exact\n // Or when the match is not exact AND the original match also was not exact\n // Or when the new start uri is different from the previous url\n if (\n match.isExact === true ||\n previousExact === match.isExact ||\n hasDifferentStartUriPart\n ) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n\n return url;\n }\n\n return previousUrl;\n};\n\n/**\n * Create key for modularui request based on component name and requested url\n */\nexport const getKey = (\n WrappedComponent: ComponentType<any>,\n name: string,\n url: string\n): string => {\n if (url) {\n return `${getDisplayName(WrappedComponent, name)}(${url.split(\"?\")[0]})`;\n }\n\n return getDisplayName(WrappedComponent, name);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelEntry: Object, reload: number = 0): boolean => {\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n\n return false;\n};\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAIA;AACA;AACA;AACA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,QAAD,EAA8BC,KAA9B,EAAgD;EAC7D,IAAMC,GAAG,GAAG,OAAOF,QAAP,KAAoB,UAApB,GAAiCA,QAAQ,CAACC,KAAD,CAAzC,GAAmDD,QAA/D;;EAEA,IAAIE,GAAG,YAAYC,aAAnB,EAAyB;IACvB,OAAOD,GAAG,CAACE,QAAJ,EAAP;EACD;;EAED,OAAOF,GAAG,IAAI,EAAd;AACD,CARD;AAUA;AACA;;;AACO,IAAMG,MAAM,GAAG,SAATA,MAAS,CAACL,QAAD,EAA8BC,KAA9B,EAAwD;EAC5E,gBAAsC,qBAAS,EAAT,CAAtC;EAAA;EAAA,IAAOK,WAAP;EAAA,IAAoBC,cAApB;;EACA,iBAA0C,qBAAS,KAAT,CAA1C;EAAA;EAAA,IAAOC,aAAP;EAAA,IAAsBC,gBAAtB;;EAEA,IAAMP,GAAG,GAAGH,MAAM,CAACC,QAAD,EAAWC,KAAX,CAAlB;EAEA,IAAQS,KAAR,GAAkBT,KAAlB,CAAQS,KAAR,CAN4E,CAQ5E;EACA;;EACA,IAAI,CAACA,KAAL,EAAY;IACV,OAAOR,GAAP;EACD;;EAED,IAAMS,cAAc,GAAGT,GAAG,KAAKI,WAA/B;;EACA,IAAI,CAACK,cAAL,EAAqB;IACnB,OAAOL,WAAP;EACD;;EAED,IAAMM,wBAAwB,GAC5BN,WAAW,KAAK,EAAhB,IAAsB,CAAC,yBAAAA,WAAW,MAAX,CAAAA,WAAW,EAAYI,KAAK,CAACR,GAAlB,CADpC,CAnB4E,CAsB5E;EACA;EACA;;EACA,IACEQ,KAAK,CAACG,OAAN,KAAkB,IAAlB,IACAL,aAAa,KAAKE,KAAK,CAACG,OADxB,IAEAD,wBAHF,EAIE;IACAL,cAAc,CAACL,GAAD,CAAd;IACAO,gBAAgB,CAACC,KAAK,CAACG,OAAP,CAAhB;IAEA,OAAOX,GAAP;EACD;;EAED,OAAOI,WAAP;AACD,CArCM;AAuCP;AACA;AACA;;;;;AACO,IAAMQ,MAAM,GAAG,SAATA,MAAS,CACpBC,gBADoB,EAEpBC,IAFoB,EAGpBd,GAHoB,EAIT;EACX,IAAIA,GAAJ,EAAS;IAAA;;IACP,iDAAU,2BAAea,gBAAf,EAAiCC,IAAjC,CAAV,uBAAoDd,GAAG,CAACe,KAAJ,CAAU,GAAV,EAAe,CAAf,CAApD;EACD;;EAED,OAAO,2BAAeF,gBAAf,EAAiCC,IAAjC,CAAP;AACD,CAVM;AAYP;AACA;AACA;;;;;AACO,IAAME,SAAS,GAAG,SAAZA,SAAY,CAACC,UAAD,EAAqD;EAAA,IAAhCC,MAAgC,uEAAf,CAAe;;EAC5E,IAAIA,MAAM,GAAG,CAAb,EAAgB;IAAA;;IACd,IAAMC,aAAa,GAAG,CAAAF,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEG,MAAZ,MAAuBC,4BAAiBC,QAA9D;IACA,IAAMC,gBAAgB,4BAAGN,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEM,gBAAf,yEAAmC,CAAzD;;IAEA,IAAIJ,aAAa,IAAII,gBAAgB,GAAGL,MAAxC,EAAgD;MAC9C,OAAO,IAAP;IACD;EACF;;EAED,OAAO,KAAP;AACD,CAXM"}
1
+ {"version":3,"file":"modularuiUtils.js","names":["getUrl","resource","props","url","Href","toString","useUrl","useState","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","isDifferentUrl","hasDifferentStartUriPart","isExact","getKey","WrappedComponent","name","getDisplayName","split","useReload","modelEntry","reload","isFullyLoaded","status","MODULARUI_STATUS","FINISHED","lastModification"],"sources":["../../../src/redux/_modularui/modularuiUtils.js"],"sourcesContent":["// @flow\nimport { useState } from \"react\";\n\nimport { getDisplayName } from \"../../react/utils\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\n\nimport type { ComponentType } from \"react\";\n\n/**\n * Generate modular ui url\n */\nconst getUrl = (resource: string | Function, props: Object) => {\n const url = typeof resource === \"function\" ? resource(props) : resource;\n\n if (url instanceof Href) {\n return url.toString();\n }\n\n return url || \"\";\n};\n\n/**\n */\nexport const useUrl = (resource: string | Function, props: Object): string => {\n const [previousUrl, setPreviousUrl] = useState(\"\");\n const [previousExact, setPreviousExact] = useState(false);\n\n const url = getUrl(resource, props);\n\n const { match } = props;\n\n // when match is not available through props,\n // this is a direct call to the modular ui hoc, not using a route\n if (!match) {\n return url;\n }\n\n const isDifferentUrl = url !== previousUrl;\n if (!isDifferentUrl) {\n return previousUrl;\n }\n\n const hasDifferentStartUriPart =\n previousUrl !== \"\" && !previousUrl.startsWith(match.url);\n\n // Always create an url when the match is exact\n // Or when the match is not exact AND the original match also was not exact\n // Or when the new start uri is different from the previous url\n if (\n match.isExact === true ||\n previousExact === match.isExact ||\n hasDifferentStartUriPart\n ) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n\n return url;\n }\n\n return previousUrl;\n};\n\n/**\n * Create key for modularui request based on component name and requested url\n */\nexport const getKey = (\n WrappedComponent: ComponentType<any>,\n name: string,\n url: string\n): string => {\n if (url) {\n return `${getDisplayName(WrappedComponent, name)}(${url.split(\"?\")[0]})`;\n }\n\n return getDisplayName(WrappedComponent, name);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelEntry: Object, reload: number = 0): boolean => {\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n\n return false;\n};\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAIA;AACA;AACA;AACA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,QAAD,EAA8BC,KAA9B,EAAgD;EAC7D,IAAMC,GAAG,GAAG,OAAOF,QAAP,KAAoB,UAApB,GAAiCA,QAAQ,CAACC,KAAD,CAAzC,GAAmDD,QAA/D;;EAEA,IAAIE,GAAG,YAAYC,aAAnB,EAAyB;IACvB,OAAOD,GAAG,CAACE,QAAJ,EAAP;EACD;;EAED,OAAOF,GAAG,IAAI,EAAd;AACD,CARD;AAUA;AACA;;;AACO,IAAMG,MAAM,GAAG,SAATA,MAAS,CAACL,QAAD,EAA8BC,KAA9B,EAAwD;EAC5E,gBAAsC,IAAAK,eAAA,EAAS,EAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EACA,iBAA0C,IAAAF,eAAA,EAAS,KAAT,CAA1C;EAAA;EAAA,IAAOG,aAAP;EAAA,IAAsBC,gBAAtB;;EAEA,IAAMR,GAAG,GAAGH,MAAM,CAACC,QAAD,EAAWC,KAAX,CAAlB;EAEA,IAAQU,KAAR,GAAkBV,KAAlB,CAAQU,KAAR,CAN4E,CAQ5E;EACA;;EACA,IAAI,CAACA,KAAL,EAAY;IACV,OAAOT,GAAP;EACD;;EAED,IAAMU,cAAc,GAAGV,GAAG,KAAKK,WAA/B;;EACA,IAAI,CAACK,cAAL,EAAqB;IACnB,OAAOL,WAAP;EACD;;EAED,IAAMM,wBAAwB,GAC5BN,WAAW,KAAK,EAAhB,IAAsB,CAAC,yBAAAA,WAAW,MAAX,CAAAA,WAAW,EAAYI,KAAK,CAACT,GAAlB,CADpC,CAnB4E,CAsB5E;EACA;EACA;;EACA,IACES,KAAK,CAACG,OAAN,KAAkB,IAAlB,IACAL,aAAa,KAAKE,KAAK,CAACG,OADxB,IAEAD,wBAHF,EAIE;IACAL,cAAc,CAACN,GAAD,CAAd;IACAQ,gBAAgB,CAACC,KAAK,CAACG,OAAP,CAAhB;IAEA,OAAOZ,GAAP;EACD;;EAED,OAAOK,WAAP;AACD,CArCM;AAuCP;AACA;AACA;;;;;AACO,IAAMQ,MAAM,GAAG,SAATA,MAAS,CACpBC,gBADoB,EAEpBC,IAFoB,EAGpBf,GAHoB,EAIT;EACX,IAAIA,GAAJ,EAAS;IAAA;;IACP,iDAAU,IAAAgB,qBAAA,EAAeF,gBAAf,EAAiCC,IAAjC,CAAV,uBAAoDf,GAAG,CAACiB,KAAJ,CAAU,GAAV,EAAe,CAAf,CAApD;EACD;;EAED,OAAO,IAAAD,qBAAA,EAAeF,gBAAf,EAAiCC,IAAjC,CAAP;AACD,CAVM;AAYP;AACA;AACA;;;;;AACO,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACC,UAAD,EAAqD;EAAA,IAAhCC,MAAgC,uEAAf,CAAe;;EAC5E,IAAIA,MAAM,GAAG,CAAb,EAAgB;IAAA;;IACd,IAAMC,aAAa,GAAG,CAAAF,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEG,MAAZ,MAAuBC,2BAAA,CAAiBC,QAA9D;IACA,IAAMC,gBAAgB,4BAAGN,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEM,gBAAf,yEAAmC,CAAzD;;IAEA,IAAIJ,aAAa,IAAII,gBAAgB,GAAGL,MAAxC,EAAgD;MAC9C,OAAO,IAAP;IACD;EACF;;EAED,OAAO,KAAP;AACD,CAXM"}
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","names":["updateStatus","state","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","model","IllegalArgumentException","getModelKey","connectKey","updateModel","modelKey","Error","removeKey","_","newState","resetModularUI","ApplicationModel","initialState","ModularUIReducer","action","type","payload"],"sources":["../../../src/redux/_modularui/reducer.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\n\n/**\n */\nconst updateStatus = (state, { key, status }) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (state, { key, model }) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst getModelKey = (state, model) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state, model) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n // eslint-disable-next-line no-unused-vars\n const { [modelKey]: _, ...newState } = state;\n\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","names":["updateStatus","state","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","model","IllegalArgumentException","getModelKey","connectKey","updateModel","modelKey","Error","removeKey","_","newState","resetModularUI","ApplicationModel","initialState","ModularUIReducer","action","type","payload"],"sources":["../../../src/redux/_modularui/reducer.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\n\n/**\n */\nconst updateStatus = (state, { key, status }) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (state, { key, model }) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst getModelKey = (state, model) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state, model) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n // eslint-disable-next-line no-unused-vars\n const { [modelKey]: _, ...newState } = state;\n\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":["getAllModelsByInstance","state","instance","locale","i18n","modularui","key","model","getFirstModelByInstance","getActiveModelByInstance","location","getLocation","selfhref","path","getApplication","ApplicationModel","getTab","TabModel","getCaseView","CaseViewModel","getForm","FormModel","modelByHref","href","findHref","Href","modelConfigKey","equals","keyByHref","router","pathname","getModels","models","forEach","modelKey","modelEntry","label","type","modelInfo","selfContentLink","ContentModel","ContentTOCModel","push","getActiveModels","defaultMemoize","value","other","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType"],"sources":["../../../src/redux/_modularui/selectors.js"],"sourcesContent":["// @flow\nimport { createSelectorCreator, defaultMemoize } from \"reselect\";\nimport { has } from \"../../utils/helpers/objects\";\n\nimport Href from \"../../models/href/Href\";\nimport ContentModel from \"../../models/content/ContentModel\";\nimport ContentTOCModel from \"../../models/content/ContentTOCModel\";\nimport ApplicationModel from \"../../models/application/ApplicationModel\";\nimport TabModel from \"../../models/tab/TabModel\";\nimport CaseViewModel from \"../../models/caseview/CaseViewModel\";\nimport FormModel from \"../../models/form/FormModel\";\n\nimport type { ReduxState, PreferenceValue } from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\n\n/**\n */\nexport const getAllModelsByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): Array<ModularUIModel> => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n return Object.keys(modularui)\n .filter((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n })\n .map((key) => modularui[key].model);\n }\n\n return [];\n};\n\n/**\n */\nexport const getFirstModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n */\nexport const getActiveModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const location = getLocation(state);\n\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return (\n model instanceof instance &&\n model.locale === locale &&\n location.startsWith(model.selfhref.path)\n );\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n * Get the application model, which is the model with selfhref '/'\n */\nexport const getApplication = (state: ReduxState): null | ApplicationModel =>\n getFirstModelByInstance(state, ApplicationModel);\n\n/**\n */\nexport const getTab = (state: ReduxState): null | TabModel =>\n getFirstModelByInstance(state, TabModel);\n\n/**\n */\nexport const getCaseView = (state: ReduxState): null | CaseViewModel =>\n getFirstModelByInstance(state, CaseViewModel);\n\n/**\n */\nexport const getForm = (state: ReduxState): null | FormModel =>\n getFirstModelByInstance(state, FormModel);\n\n/**\n * Get the model by it's href\n */\nexport const modelByHref = (\n state: ReduxState,\n href: Href | string\n): null | ModularUIModel => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n const modelConfigKey = Object.keys(state.modularui).find((key) => {\n const model = state.modularui[key];\n\n return (\n model.model &&\n model.model.selfhref &&\n model.model.selfhref.equals(findHref)\n );\n });\n\n if (modelConfigKey) {\n return state.modularui[modelConfigKey].model;\n }\n }\n\n return null;\n};\n\n/**\n * Return the key of a model by the selfhref the model is saved in the reducer\n */\nexport const keyByHref = (state: ReduxState, href: Href | string): ?string => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n return Object.keys(state.modularui).find((key) => {\n const { model } = state.modularui[key];\n\n return model && model.selfhref && model.selfhref.equals(findHref);\n });\n }\n\n return null;\n};\n\n/**\n */\nconst getLocation = (state): string => state?.router?.location.pathname;\n\n/**\n */\nconst getModels = (state) => {\n const models = [];\n\n Object.keys(state.modularui).forEach((modelKey: string) => {\n const modelEntry = state.modularui[modelKey];\n\n if (has(modelEntry, \"model\")) {\n const { key, selfhref, label, type } = modelEntry.model;\n\n const modelInfo = {\n key,\n selfhref,\n label,\n type,\n selfContentLink: null,\n };\n\n if (\n modelEntry.model instanceof ContentModel ||\n modelEntry.model instanceof ContentTOCModel\n ) {\n models.push({\n ...modelInfo,\n selfContentLink: modelEntry.model.selfContentLink,\n });\n } else {\n models.push(modelInfo);\n }\n }\n });\n\n return models;\n};\n\nexport const getActiveModels: (state: ReduxState) => Array<{\n key: string,\n href: Href,\n label: string,\n type: string,\n}> = createSelectorCreator(\n defaultMemoize,\n (value, other) => JSON.stringify(value) === JSON.stringify(other)\n)([getLocation, getModels], (location, models) => {\n const contextModels = [];\n\n if (location) {\n const locationParts = location.split(\"/\");\n\n locationParts.reduce((accumulator, current) => {\n const path = `${accumulator}/${current}`;\n\n // Remove modelcatalog part to match breadcrumb parts\n const comparePath = decodeURIComponent(path).replace(\n \"/modelcatalog/\",\n \"/\"\n );\n\n const foundEntry = models.find(\n (model) => model.selfhref && model.selfhref.equals(comparePath)\n );\n\n if (foundEntry) {\n const { key, label, type, selfhref, selfContentLink } = foundEntry;\n\n const href =\n path.startsWith(\"/modelcatalog/\") && selfContentLink\n ? new Href(`/modelcatalog${selfContentLink.encodedHref.toString()}`)\n : selfhref;\n\n contextModels.push({ key, href, label, type });\n }\n\n return path;\n });\n }\n\n return contextModels;\n});\n\n/**\n */\nexport const getPreference = (\n state: ReduxState,\n preferenceName: string\n): null | PreferenceValue => {\n if (state && state.preferences) {\n return state.preferences[preferenceName];\n }\n\n return null;\n};\n\n/**\n * @deprecated - Use getFirstModelByInstance or the appropriate getter for the model type: getApplication, getTab, etc\n */\nexport const getModelsByType = (\n state: ReduxState,\n type: string\n): Array<ModularUIModel> => {\n if (state && state.modularui) {\n return Object.keys(state.modularui)\n .filter(\n (key) =>\n state.modularui[key] &&\n state.modularui[key].model &&\n state.modularui[key].model.type === type\n )\n .map((key) => state.modularui[key].model);\n }\n\n return [];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","names":["getAllModelsByInstance","state","instance","locale","i18n","modularui","key","model","getFirstModelByInstance","getActiveModelByInstance","location","getLocation","selfhref","path","getApplication","ApplicationModel","getTab","TabModel","getCaseView","CaseViewModel","getForm","FormModel","modelByHref","href","findHref","Href","modelConfigKey","equals","keyByHref","router","pathname","getModels","models","forEach","modelKey","modelEntry","has","label","type","modelInfo","selfContentLink","ContentModel","ContentTOCModel","push","getActiveModels","createSelectorCreator","defaultMemoize","value","other","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType"],"sources":["../../../src/redux/_modularui/selectors.js"],"sourcesContent":["// @flow\nimport { createSelectorCreator, defaultMemoize } from \"reselect\";\nimport { has } from \"../../utils/helpers/objects\";\n\nimport Href from \"../../models/href/Href\";\nimport ContentModel from \"../../models/content/ContentModel\";\nimport ContentTOCModel from \"../../models/content/ContentTOCModel\";\nimport ApplicationModel from \"../../models/application/ApplicationModel\";\nimport TabModel from \"../../models/tab/TabModel\";\nimport CaseViewModel from \"../../models/caseview/CaseViewModel\";\nimport FormModel from \"../../models/form/FormModel\";\n\nimport type { ReduxState, PreferenceValue } from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\n\n/**\n */\nexport const getAllModelsByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): Array<ModularUIModel> => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n return Object.keys(modularui)\n .filter((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n })\n .map((key) => modularui[key].model);\n }\n\n return [];\n};\n\n/**\n */\nexport const getFirstModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n */\nexport const getActiveModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const location = getLocation(state);\n\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return (\n model instanceof instance &&\n model.locale === locale &&\n location.startsWith(model.selfhref.path)\n );\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n * Get the application model, which is the model with selfhref '/'\n */\nexport const getApplication = (state: ReduxState): null | ApplicationModel =>\n getFirstModelByInstance(state, ApplicationModel);\n\n/**\n */\nexport const getTab = (state: ReduxState): null | TabModel =>\n getFirstModelByInstance(state, TabModel);\n\n/**\n */\nexport const getCaseView = (state: ReduxState): null | CaseViewModel =>\n getFirstModelByInstance(state, CaseViewModel);\n\n/**\n */\nexport const getForm = (state: ReduxState): null | FormModel =>\n getFirstModelByInstance(state, FormModel);\n\n/**\n * Get the model by it's href\n */\nexport const modelByHref = (\n state: ReduxState,\n href: Href | string\n): null | ModularUIModel => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n const modelConfigKey = Object.keys(state.modularui).find((key) => {\n const model = state.modularui[key];\n\n return (\n model.model &&\n model.model.selfhref &&\n model.model.selfhref.equals(findHref)\n );\n });\n\n if (modelConfigKey) {\n return state.modularui[modelConfigKey].model;\n }\n }\n\n return null;\n};\n\n/**\n * Return the key of a model by the selfhref the model is saved in the reducer\n */\nexport const keyByHref = (state: ReduxState, href: Href | string): ?string => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n return Object.keys(state.modularui).find((key) => {\n const { model } = state.modularui[key];\n\n return model && model.selfhref && model.selfhref.equals(findHref);\n });\n }\n\n return null;\n};\n\n/**\n */\nconst getLocation = (state): string => state?.router?.location.pathname;\n\n/**\n */\nconst getModels = (state) => {\n const models = [];\n\n Object.keys(state.modularui).forEach((modelKey: string) => {\n const modelEntry = state.modularui[modelKey];\n\n if (has(modelEntry, \"model\")) {\n const { key, selfhref, label, type } = modelEntry.model;\n\n const modelInfo = {\n key,\n selfhref,\n label,\n type,\n selfContentLink: null,\n };\n\n if (\n modelEntry.model instanceof ContentModel ||\n modelEntry.model instanceof ContentTOCModel\n ) {\n models.push({\n ...modelInfo,\n selfContentLink: modelEntry.model.selfContentLink,\n });\n } else {\n models.push(modelInfo);\n }\n }\n });\n\n return models;\n};\n\nexport const getActiveModels: (state: ReduxState) => Array<{\n key: string,\n href: Href,\n label: string,\n type: string,\n}> = createSelectorCreator(\n defaultMemoize,\n (value, other) => JSON.stringify(value) === JSON.stringify(other)\n)([getLocation, getModels], (location, models) => {\n const contextModels = [];\n\n if (location) {\n const locationParts = location.split(\"/\");\n\n locationParts.reduce((accumulator, current) => {\n const path = `${accumulator}/${current}`;\n\n // Remove modelcatalog part to match breadcrumb parts\n const comparePath = decodeURIComponent(path).replace(\n \"/modelcatalog/\",\n \"/\"\n );\n\n const foundEntry = models.find(\n (model) => model.selfhref && model.selfhref.equals(comparePath)\n );\n\n if (foundEntry) {\n const { key, label, type, selfhref, selfContentLink } = foundEntry;\n\n const href =\n path.startsWith(\"/modelcatalog/\") && selfContentLink\n ? new Href(`/modelcatalog${selfContentLink.encodedHref.toString()}`)\n : selfhref;\n\n contextModels.push({ key, href, label, type });\n }\n\n return path;\n });\n }\n\n return contextModels;\n});\n\n/**\n */\nexport const getPreference = (\n state: ReduxState,\n preferenceName: string\n): null | PreferenceValue => {\n if (state && state.preferences) {\n return state.preferences[preferenceName];\n }\n\n return null;\n};\n\n/**\n * @deprecated - Use getFirstModelByInstance or the appropriate getter for the model type: getApplication, getTab, etc\n */\nexport const getModelsByType = (\n state: ReduxState,\n type: string\n): Array<ModularUIModel> => {\n if (state && state.modularui) {\n return Object.keys(state.modularui)\n .filter(\n (key) =>\n state.modularui[key] &&\n state.modularui[key].model &&\n state.modularui[key].model.type === type\n )\n .map((key) => state.modularui[key].model);\n }\n\n return [];\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withModularUI.js","names":["getLocaleCode","state","i18n","locale","modularui","localeCode","href","options","modularuiRequest","ModularUIRequest","mapStateToProps","mapDispatchToProps","startProgress","finishProgress","reloadModel","handleError","withModularui"],"sources":["../../../src/redux/_modularui/withModularUI.js"],"sourcesContent":["// @flow\nimport { connect } from \"react-redux\";\n\nimport { createSelector } from \"reselect\";\n\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport { handleError } from \"../actions/Error\";\n\nimport { reloadModel } from \"./actions\";\n\nimport type {\n ReduxState,\n StartProgressAction,\n FinishProgressAction,\n ThunkAction,\n} from \"../types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { RequestBaseOptions } from \"../../utils/fetch/types\";\nimport type FetchException from \"../../exceptions/FetchException\";\nimport type { ComponentType } from \"react\";\n\ntype StateProps = {\n modularui: (href: Href, options: any) => ModularUIRequest,\n locale: string,\n};\n\ntype DispatchProps = {\n startProgress: () => StartProgressAction,\n finishProgress: () => FinishProgressAction,\n reloadModel: (\n model: ModularUIModel,\n options?: RequestBaseOptions\n ) => ThunkAction,\n handleError: (error: Error | FetchException) => ThunkAction,\n};\n\ntype Props = {\n ...StateProps,\n ...DispatchProps,\n};\n\n/**\n */\nconst getLocaleCode = (state) => state.i18n.locale ?? \"en\";\n\nconst modularui = createSelector(\n [getLocaleCode],\n (localeCode) =>\n (href, options = {}) => {\n const modularuiRequest = new ModularUIRequest(href, options);\n modularuiRequest.locale = localeCode;\n return modularuiRequest;\n }\n);\n\n/**\n */\nconst mapStateToProps = (state: ReduxState): StateProps => ({\n modularui: modularui(state),\n locale: state.i18n.locale,\n});\n\nconst mapDispatchToProps: DispatchProps = {\n startProgress,\n finishProgress,\n reloadModel,\n handleError,\n};\n\n/**\n * Injects the modular ui service and the progress start and finish actions\n * This can be used to request modular ui services inside react view components\n */\nconst withModularui: ComponentType<any> = connect<\n Props,\n {},\n StateProps,\n _,\n _,\n _\n>(mapStateToProps, mapDispatchToProps);\n\nexport default withModularui;\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAkCA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;EAAA;;EAAA,6BAAWA,KAAK,CAACC,IAAN,CAAWC,MAAtB,mEAAgC,IAAhC;AAAA,CAAtB;;AAEA,IAAMC,SAAS,GAAG,8BAChB,CAACJ,aAAD,CADgB,EAEhB,UAACK,UAAD;EAAA,OACE,UAACC,IAAD,EAAwB;IAAA,IAAjBC,OAAiB,uEAAP,EAAO;IACtB,IAAMC,gBAAgB,GAAG,IAAIC,yBAAJ,CAAqBH,IAArB,EAA2BC,OAA3B,CAAzB;IACAC,gBAAgB,CAACL,MAAjB,GAA0BE,UAA1B;IACA,OAAOG,gBAAP;EACD,CALH;AAAA,CAFgB,CAAlB;AAUA;AACA;;AACA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAACT,KAAD;EAAA,OAAoC;IAC1DG,SAAS,EAAEA,SAAS,CAACH,KAAD,CADsC;IAE1DE,MAAM,EAAEF,KAAK,CAACC,IAAN,CAAWC;EAFuC,CAApC;AAAA,CAAxB;;AAKA,IAAMQ,kBAAiC,GAAG;EACxCC,aAAa,EAAbA,gCADwC;EAExCC,cAAc,EAAdA,iCAFwC;EAGxCC,WAAW,EAAXA,oBAHwC;EAIxCC,WAAW,EAAXA;AAJwC,CAA1C;AAOA;AACA;AACA;AACA;;AACA,IAAMC,aAAiC,GAAG,yBAOxCN,eAPwC,EAOvBC,kBAPuB,CAA1C;eASeK,a"}
1
+ {"version":3,"file":"withModularUI.js","names":["getLocaleCode","state","i18n","locale","modularui","createSelector","localeCode","href","options","modularuiRequest","ModularUIRequest","mapStateToProps","mapDispatchToProps","startProgress","finishProgress","reloadModel","handleError","withModularui","connect"],"sources":["../../../src/redux/_modularui/withModularUI.js"],"sourcesContent":["// @flow\nimport { connect } from \"react-redux\";\n\nimport { createSelector } from \"reselect\";\n\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport { handleError } from \"../actions/Error\";\n\nimport { reloadModel } from \"./actions\";\n\nimport type {\n ReduxState,\n StartProgressAction,\n FinishProgressAction,\n ThunkAction,\n} from \"../types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { RequestBaseOptions } from \"../../utils/fetch/types\";\nimport type FetchException from \"../../exceptions/FetchException\";\nimport type { ComponentType } from \"react\";\n\ntype StateProps = {\n modularui: (href: Href, options: any) => ModularUIRequest,\n locale: string,\n};\n\ntype DispatchProps = {\n startProgress: () => StartProgressAction,\n finishProgress: () => FinishProgressAction,\n reloadModel: (\n model: ModularUIModel,\n options?: RequestBaseOptions\n ) => ThunkAction,\n handleError: (error: Error | FetchException) => ThunkAction,\n};\n\ntype Props = {\n ...StateProps,\n ...DispatchProps,\n};\n\n/**\n */\nconst getLocaleCode = (state) => state.i18n.locale ?? \"en\";\n\nconst modularui = createSelector(\n [getLocaleCode],\n (localeCode) =>\n (href, options = {}) => {\n const modularuiRequest = new ModularUIRequest(href, options);\n modularuiRequest.locale = localeCode;\n return modularuiRequest;\n }\n);\n\n/**\n */\nconst mapStateToProps = (state: ReduxState): StateProps => ({\n modularui: modularui(state),\n locale: state.i18n.locale,\n});\n\nconst mapDispatchToProps: DispatchProps = {\n startProgress,\n finishProgress,\n reloadModel,\n handleError,\n};\n\n/**\n * Injects the modular ui service and the progress start and finish actions\n * This can be used to request modular ui services inside react view components\n */\nconst withModularui: ComponentType<any> = connect<\n Props,\n {},\n StateProps,\n _,\n _,\n _\n>(mapStateToProps, mapDispatchToProps);\n\nexport default withModularui;\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAkCA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;EAAA;;EAAA,6BAAWA,KAAK,CAACC,IAAN,CAAWC,MAAtB,mEAAgC,IAAhC;AAAA,CAAtB;;AAEA,IAAMC,SAAS,GAAG,IAAAC,wBAAA,EAChB,CAACL,aAAD,CADgB,EAEhB,UAACM,UAAD;EAAA,OACE,UAACC,IAAD,EAAwB;IAAA,IAAjBC,OAAiB,uEAAP,EAAO;IACtB,IAAMC,gBAAgB,GAAG,IAAIC,yBAAJ,CAAqBH,IAArB,EAA2BC,OAA3B,CAAzB;IACAC,gBAAgB,CAACN,MAAjB,GAA0BG,UAA1B;IACA,OAAOG,gBAAP;EACD,CALH;AAAA,CAFgB,CAAlB;AAUA;AACA;;AACA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAACV,KAAD;EAAA,OAAoC;IAC1DG,SAAS,EAAEA,SAAS,CAACH,KAAD,CADsC;IAE1DE,MAAM,EAAEF,KAAK,CAACC,IAAN,CAAWC;EAFuC,CAApC;AAAA,CAAxB;;AAKA,IAAMS,kBAAiC,GAAG;EACxCC,aAAa,EAAbA,gCADwC;EAExCC,cAAc,EAAdA,iCAFwC;EAGxCC,WAAW,EAAXA,oBAHwC;EAIxCC,WAAW,EAAXA;AAJwC,CAA1C;AAOA;AACA;AACA;AACA;;AACA,IAAMC,aAAiC,GAAG,IAAAC,mBAAA,EAOxCP,eAPwC,EAOvBC,kBAPuB,CAA1C;eASeK,a"}
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.js","names":["withKey","state","locationKey","router","location","key","withPathname","pathname","withLocation","withQuerystring","querystring","search","withNavigation","push","replace","go","goBack","goForward"],"sources":["../../../src/redux/_router/connectors.js"],"sourcesContent":["// @flow\nimport { connect } from \"react-redux\";\n\nimport { push, replace, go, goBack, goForward } from \"./actions\";\n\nimport type { Location, LocationShape } from \"react-router\";\nimport type {\n PushAction,\n ReplaceAction,\n GoAction,\n GoBackAction,\n GoForwardAction,\n} from \"./types\";\nimport type { ComponentType } from \"react\";\nimport type { ReduxState } from \"../types\";\n\ntype WithKeyStateProps = { locationKey: string, ... };\n\ntype WithPathnameProps = { pathname: string, ... };\n\ntype WithLocationProps = { location: Location, ... };\n\ntype WithQuerystringProps = { querystring: string, ... };\n\ntype NavigationDispatchProps = {\n push: (location: LocationShape | string, state?: { ... }) => PushAction,\n replace: (location: LocationShape | string, state?: { ... }) => ReplaceAction,\n go: (delta: number) => GoAction,\n goBack: () => GoBackAction,\n goForward: () => GoForwardAction,\n};\n\n/**\n */\nconst withKey: ComponentType<any> = connect<WithKeyStateProps, {}, _, _, _, _>(\n (state: ReduxState) => ({\n locationKey: state.router.location?.key ?? \"\",\n })\n);\n\n/**\n */\nconst withPathname: ComponentType<any> = connect<\n WithPathnameProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n pathname: state.router.location?.pathname,\n}));\n\n/**\n */\nconst withLocation: ComponentType<any> = connect<\n WithLocationProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n location: state.router.location,\n}));\n\n/**\n */\nconst withQuerystring: ComponentType<any> = connect<\n WithQuerystringProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n querystring: state.router.location?.search,\n}));\n\n/**\n */\nconst withNavigation: ComponentType<any> = connect<\n NavigationDispatchProps,\n {},\n _,\n _,\n _,\n _\n>(null, {\n push,\n replace,\n go,\n goBack,\n goForward,\n});\n\nexport { withKey, withPathname, withLocation, withQuerystring, withNavigation };\n"],"mappings":";;;;;;;AACA;;AAEA;;AA6BA;AACA;AACA,IAAMA,OAA2B,GAAG,yBAClC,UAACC,KAAD;EAAA;;EAAA,OAAwB;IACtBC,WAAW,qDAAED,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBC,GAAzB,yEAAgC;EADrB,CAAxB;AAAA,CADkC,CAApC;AAMA;AACA;;;AACA,IAAMC,YAAgC,GAAG,yBAOvC,UAACL,KAAD;EAAA;;EAAA,OAAwB;IACxBM,QAAQ,4BAAEN,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBG;EADT,CAAxB;AAAA,CAPuC,CAAzC;AAWA;AACA;;;AACA,IAAMC,YAAgC,GAAG,yBAOvC,UAACP,KAAD;EAAA,OAAwB;IACxBG,QAAQ,EAAEH,KAAK,CAACE,MAAN,CAAaC;EADC,CAAxB;AAAA,CAPuC,CAAzC;AAWA;AACA;;;AACA,IAAMK,eAAmC,GAAG,yBAO1C,UAACR,KAAD;EAAA;;EAAA,OAAwB;IACxBS,WAAW,4BAAET,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBO;EADZ,CAAxB;AAAA,CAP0C,CAA5C;AAWA;AACA;;;AACA,IAAMC,cAAkC,GAAG,yBAOzC,IAPyC,EAOnC;EACNC,IAAI,EAAJA,aADM;EAENC,OAAO,EAAPA,gBAFM;EAGNC,EAAE,EAAFA,WAHM;EAINC,MAAM,EAANA,eAJM;EAKNC,SAAS,EAATA;AALM,CAPmC,CAA3C"}
1
+ {"version":3,"file":"connectors.js","names":["withKey","connect","state","locationKey","router","location","key","withPathname","pathname","withLocation","withQuerystring","querystring","search","withNavigation","push","replace","go","goBack","goForward"],"sources":["../../../src/redux/_router/connectors.js"],"sourcesContent":["// @flow\nimport { connect } from \"react-redux\";\n\nimport { push, replace, go, goBack, goForward } from \"./actions\";\n\nimport type { Location, LocationShape } from \"react-router\";\nimport type {\n PushAction,\n ReplaceAction,\n GoAction,\n GoBackAction,\n GoForwardAction,\n} from \"./types\";\nimport type { ComponentType } from \"react\";\nimport type { ReduxState } from \"../types\";\n\ntype WithKeyStateProps = { locationKey: string, ... };\n\ntype WithPathnameProps = { pathname: string, ... };\n\ntype WithLocationProps = { location: Location, ... };\n\ntype WithQuerystringProps = { querystring: string, ... };\n\ntype NavigationDispatchProps = {\n push: (location: LocationShape | string, state?: { ... }) => PushAction,\n replace: (location: LocationShape | string, state?: { ... }) => ReplaceAction,\n go: (delta: number) => GoAction,\n goBack: () => GoBackAction,\n goForward: () => GoForwardAction,\n};\n\n/**\n */\nconst withKey: ComponentType<any> = connect<WithKeyStateProps, {}, _, _, _, _>(\n (state: ReduxState) => ({\n locationKey: state.router.location?.key ?? \"\",\n })\n);\n\n/**\n */\nconst withPathname: ComponentType<any> = connect<\n WithPathnameProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n pathname: state.router.location?.pathname,\n}));\n\n/**\n */\nconst withLocation: ComponentType<any> = connect<\n WithLocationProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n location: state.router.location,\n}));\n\n/**\n */\nconst withQuerystring: ComponentType<any> = connect<\n WithQuerystringProps,\n {},\n _,\n _,\n _,\n _\n>((state: ReduxState) => ({\n querystring: state.router.location?.search,\n}));\n\n/**\n */\nconst withNavigation: ComponentType<any> = connect<\n NavigationDispatchProps,\n {},\n _,\n _,\n _,\n _\n>(null, {\n push,\n replace,\n go,\n goBack,\n goForward,\n});\n\nexport { withKey, withPathname, withLocation, withQuerystring, withNavigation };\n"],"mappings":";;;;;;;AACA;;AAEA;;AA6BA;AACA;AACA,IAAMA,OAA2B,GAAG,IAAAC,mBAAA,EAClC,UAACC,KAAD;EAAA;;EAAA,OAAwB;IACtBC,WAAW,qDAAED,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBC,GAAzB,yEAAgC;EADrB,CAAxB;AAAA,CADkC,CAApC;AAMA;AACA;;;AACA,IAAMC,YAAgC,GAAG,IAAAN,mBAAA,EAOvC,UAACC,KAAD;EAAA;;EAAA,OAAwB;IACxBM,QAAQ,4BAAEN,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBG;EADT,CAAxB;AAAA,CAPuC,CAAzC;AAWA;AACA;;;AACA,IAAMC,YAAgC,GAAG,IAAAR,mBAAA,EAOvC,UAACC,KAAD;EAAA,OAAwB;IACxBG,QAAQ,EAAEH,KAAK,CAACE,MAAN,CAAaC;EADC,CAAxB;AAAA,CAPuC,CAAzC;AAWA;AACA;;;AACA,IAAMK,eAAmC,GAAG,IAAAT,mBAAA,EAO1C,UAACC,KAAD;EAAA;;EAAA,OAAwB;IACxBS,WAAW,4BAAET,KAAK,CAACE,MAAN,CAAaC,QAAf,2DAAE,uBAAuBO;EADZ,CAAxB;AAAA,CAP0C,CAA5C;AAWA;AACA;;;AACA,IAAMC,cAAkC,GAAG,IAAAZ,mBAAA,EAOzC,IAPyC,EAOnC;EACNa,IAAI,EAAJA,aADM;EAENC,OAAO,EAAPA,gBAFM;EAGNC,EAAE,EAAFA,WAHM;EAINC,MAAM,EAANA,eAJM;EAKNC,SAAS,EAATA;AALM,CAPmC,CAA3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","names":["reloadApplication","dispatch","getState","modelKey","locale","i18n","Href","targetModel","ApplicationModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAIA;AACA;AACO,IAAMA,iBAAiB,GAC5B,SADWA,iBACX;EAAA,OAAmB,UAACC,QAAD,EAAqBC,QAArB,EAA4C;IAC7D,IAAIC,QAAQ,GAAG,0BAAUD,QAAQ,EAAlB,EAAsB,GAAtB,CAAf;;IAEA,IAAI,CAACC,QAAL,EAAe;MAAA;;MACb,IAAMC,MAAM,qBAAGF,QAAQ,GAAGG,IAAd,mDAAG,eAAiBD,MAAhC;MACAD,QAAQ,4BAAqBC,MAArB,MAAR;IACD;;IAED,OAAOH,QAAQ,CACb,4BAAcE,QAAd,EAAwB,IAAIG,YAAJ,CAAS,GAAT,EAAc,aAAd,CAAxB,EAAsD;MACpDC,WAAW,EAAEC;IADuC,CAAtD,CADa,CAAf;EAKD,CAbD;AAAA,CADK"}
1
+ {"version":3,"file":"Application.js","names":["reloadApplication","dispatch","getState","modelKey","keyByHref","locale","i18n","loadModularUI","Href","targetModel","ApplicationModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAIA;AACA;AACO,IAAMA,iBAAiB,GAC5B,SADWA,iBACX;EAAA,OAAmB,UAACC,QAAD,EAAqBC,QAArB,EAA4C;IAC7D,IAAIC,QAAQ,GAAG,IAAAC,oBAAA,EAAUF,QAAQ,EAAlB,EAAsB,GAAtB,CAAf;;IAEA,IAAI,CAACC,QAAL,EAAe;MAAA;;MACb,IAAME,MAAM,qBAAGH,QAAQ,GAAGI,IAAd,mDAAG,eAAiBD,MAAhC;MACAF,QAAQ,4BAAqBE,MAArB,MAAR;IACD;;IAED,OAAOJ,QAAQ,CACb,IAAAM,sBAAA,EAAcJ,QAAd,EAAwB,IAAIK,YAAJ,CAAS,GAAT,EAAc,aAAd,CAAxB,EAAsD;MACpDC,WAAW,EAAEC;IADuC,CAAtD,CADa,CAAf;EAKD,CAbD;AAAA,CADK"}
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.js","names":["handleUnauthorized","errorResponse","dispatch","getState","connectKey","response","error","window","location","reload","Cache","getItem","removeItem","isInvalidUsername","WARNING_TIMEOUT","NOTIFICATION_TYPES","WARNING","id","defaultMessage","message","router","pathname","LOGIN_PATH","locationFrom","state","from","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set\n if (Cache.getItem(\"auth\")) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,CAAC,gCAAiBD,aAAa,CAACG,UAA/B,CAAD,CAAR;IACD;;IAED,IACE,2BAAW,mCAAX,EAAgD,KAAhD,8BACAH,aAAa,CAACI,QADd,kDACA,sBAAwBC,KAF1B,EAGE;MACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;MACA;IACD,CAXqB,CAatB;;;IACA,IAAIC,eAAMC,OAAN,CAAc,MAAd,CAAJ,EAA2B;MACzBT,QAAQ,CAAC,qCAAD,CAAR;IACD,CAhBqB,CAkBtB;;;IACAA,QAAQ,CAAC,6BAAD,CAAR;;IAEAQ,eAAME,UAAN,CAAiB,MAAjB;;IAEA,IAAIX,aAAa,CAACY,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAZ,QAAQ,CACN,oCACEa,8BAAmBC,OADrB,EAEE;QACEC,EAAE,EAAEhB,aAAa,CAACgB,EADpB;QAEEC,cAAc,EAAEjB,aAAa,CAACkB;MAFhC,CAFF,EAME,IANF,EAOEL,eAPF,CADM,CAAR;IAWD,CApCqB,CAsCtB;;;IACA,IAAMN,QAAQ,GAAGL,QAAQ,GAAGiB,MAAX,CAAkBZ,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEa,QAAV,MAAuBC,qBAA3B,EAAuC;MAAA;;MACrC,IAAMC,YAAY,GAAGf,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEgB,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAOvB,QAAQ,CACb,sBAAQoB,qBAAR,EAAoB;QAClBG,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkBpB,QAAQ,GAAGiB,MAAX,CAAkBZ,QADpC;QAElB;QACAkB,KAAK,EAAE;MAHW,CAApB,CADa,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CArDD;AAAA,CADK"}
1
+ {"version":3,"file":"Authorization.js","names":["handleUnauthorized","errorResponse","dispatch","getState","connectKey","removeModelByKey","getSetting","response","error","window","location","reload","Cache","getItem","reloadApplication","logoutSuccess","removeItem","isInvalidUsername","WARNING_TIMEOUT","showNotification","NOTIFICATION_TYPES","WARNING","id","defaultMessage","message","router","pathname","LOGIN_PATH","locationFrom","state","from","replace","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set\n if (Cache.getItem(\"auth\")) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,CAAC,IAAAG,0BAAA,EAAiBJ,aAAa,CAACG,UAA/B,CAAD,CAAR;IACD;;IAED,IACE,IAAAE,qBAAA,EAAW,mCAAX,EAAgD,KAAhD,8BACAL,aAAa,CAACM,QADd,kDACA,sBAAwBC,KAF1B,EAGE;MACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;MACA;IACD,CAXqB,CAatB;;;IACA,IAAIC,cAAA,CAAMC,OAAN,CAAc,MAAd,CAAJ,EAA2B;MACzBX,QAAQ,CAAC,IAAAY,8BAAA,GAAD,CAAR;IACD,CAhBqB,CAkBtB;;;IACAZ,QAAQ,CAAC,IAAAa,sBAAA,GAAD,CAAR;;IAEAH,cAAA,CAAMI,UAAN,CAAiB,MAAjB;;IAEA,IAAIf,aAAa,CAACgB,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAhB,QAAQ,CACN,IAAAiB,8BAAA,EACEC,6BAAA,CAAmBC,OADrB,EAEE;QACEC,EAAE,EAAErB,aAAa,CAACqB,EADpB;QAEEC,cAAc,EAAEtB,aAAa,CAACuB;MAFhC,CAFF,EAME,IANF,EAOEN,eAPF,CADM,CAAR;IAWD,CApCqB,CAsCtB;;;IACA,IAAMR,QAAQ,GAAGP,QAAQ,GAAGsB,MAAX,CAAkBf,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEgB,QAAV,MAAuBC,qBAA3B,EAAuC;MAAA;;MACrC,IAAMC,YAAY,GAAGlB,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEmB,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAO5B,QAAQ,CACb,IAAA6B,gBAAA,EAAQJ,qBAAR,EAAoB;QAClBG,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkBzB,QAAQ,GAAGsB,MAAX,CAAkBf,QADpC;QAElB;QACAsB,KAAK,EAAE;MAHW,CAApB,CADa,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CArDD;AAAA,CADK"}
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","names":["saveError","error","type","payload","defaultErrorResponseHandler","dispatch","isResourceNotFoundAfterReload","isRemoteServiceException","isUnauthorized","isBlocked","isConcurrentUser","LOGOUT_PATH","isChangePassword","IS_SERVER","setTimeout","customErrorResponseHandler","errorResponse","defaultHandler","setCustomErrorResponseHandler","handler","handleError","ErrorResponse"],"sources":["../../../src/redux/actions/Error.js"],"sourcesContent":["// @flow\nimport { LOGOUT_PATH, IS_SERVER } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { push } from \"../_router/actions\";\nimport { showXHRErrorNotification } from \"./Notification\";\nimport { resetProgress } from \"./ProgressIndicator\";\nimport { changePassword } from \"./SignIn\";\nimport { handleUnauthorized } from \"./Authorization\";\n\nimport type { FetchException } from \"../../exceptions\";\nimport type { Dispatch, SaveErrorAction, ThunkAction } from \"../types\";\n\ntype DefaultErrorResponseHandler = (error: ErrorResponse) => ThunkAction;\ntype CustomErrorResponseHandler = (\n errorResponse: ErrorResponse,\n defaultHandler: DefaultErrorResponseHandler\n) => ThunkAction;\n\n/**\n */\nconst saveError = (error): SaveErrorAction => ({\n type: \"SAVE_ERROR\",\n payload: error,\n});\n\n/**\n */\nconst defaultErrorResponseHandler: DefaultErrorResponseHandler =\n (error: ErrorResponse): ThunkAction =>\n (dispatch: Dispatch) => {\n if (error.isResourceNotFoundAfterReload || error.isRemoteServiceException) {\n return dispatch({ type: \"NO_ACTION\" });\n }\n\n if (error.isUnauthorized) {\n return dispatch(handleUnauthorized(error));\n }\n\n if (error.isBlocked || error.isConcurrentUser) {\n dispatch(push(LOGOUT_PATH));\n }\n\n if (error.isChangePassword) {\n return dispatch(changePassword());\n }\n\n if (IS_SERVER) {\n return dispatch(saveError(error));\n }\n\n setTimeout(() => {\n throw error;\n });\n\n return dispatch(showXHRErrorNotification(error));\n };\n\n/**\n * Standard Custom error response, acts as a proxy and can be overwritten by {@link setCustomErrorResponseHandler}\n */\nlet customErrorResponseHandler: CustomErrorResponseHandler =\n (errorResponse, defaultHandler) => (dispatch: Dispatch) =>\n dispatch(defaultHandler(errorResponse));\n\n/**\n * Set a custom error response handler,\n * can be used when custom functionality is needed on certain (error) response\n * of the modular ui, for example when custom logic is needed when a user is unauthorized<br>\n * It receives an {@link ErrorResponse} and the {@link defaultErrorResponseHandler}\n */\nexport const setCustomErrorResponseHandler = (\n handler: CustomErrorResponseHandler\n) => {\n customErrorResponseHandler = handler;\n};\n\n/**\n * Handle errors by sending an error notification message\n */\nexport const handleError =\n (error: Error | FetchException): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(resetProgress());\n\n const errorResponse = new ErrorResponse(error);\n\n return dispatch(\n customErrorResponseHandler(errorResponse, defaultErrorResponseHandler)\n );\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAWA;AACA;AACA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;EAAA,OAA6B;IAC7CC,IAAI,EAAE,YADuC;IAE7CC,OAAO,EAAEF;EAFoC,CAA7B;AAAA,CAAlB;AAKA;AACA;;;AACA,IAAMG,2BAAwD,GAC5D,SADIA,2BACJ,CAACH,KAAD;EAAA,OACA,UAACI,QAAD,EAAwB;IACtB,IAAIJ,KAAK,CAACK,6BAAN,IAAuCL,KAAK,CAACM,wBAAjD,EAA2E;MACzE,OAAOF,QAAQ,CAAC;QAAEH,IAAI,EAAE;MAAR,CAAD,CAAf;IACD;;IAED,IAAID,KAAK,CAACO,cAAV,EAA0B;MACxB,OAAOH,QAAQ,CAAC,uCAAmBJ,KAAnB,CAAD,CAAf;IACD;;IAED,IAAIA,KAAK,CAACQ,SAAN,IAAmBR,KAAK,CAACS,gBAA7B,EAA+C;MAC7CL,QAAQ,CAAC,mBAAKM,sBAAL,CAAD,CAAR;IACD;;IAED,IAAIV,KAAK,CAACW,gBAAV,EAA4B;MAC1B,OAAOP,QAAQ,CAAC,6BAAD,CAAf;IACD;;IAED,IAAIQ,oBAAJ,EAAe;MACb,OAAOR,QAAQ,CAACL,SAAS,CAACC,KAAD,CAAV,CAAf;IACD;;IAEDa,UAAU,CAAC,YAAM;MACf,MAAMb,KAAN;IACD,CAFS,CAAV;IAIA,OAAOI,QAAQ,CAAC,4CAAyBJ,KAAzB,CAAD,CAAf;EACD,CA3BD;AAAA,CADF;AA8BA;AACA;AACA;;;AACA,IAAIc,0BAAsD,GACxD,oCAACC,aAAD,EAAgBC,cAAhB;EAAA,OAAmC,UAACZ,QAAD;IAAA,OACjCA,QAAQ,CAACY,cAAc,CAACD,aAAD,CAAf,CADyB;EAAA,CAAnC;AAAA,CADF;AAIA;AACA;AACA;AACA;AACA;AACA;;;AACO,IAAME,6BAA6B,GAAG,SAAhCA,6BAAgC,CAC3CC,OAD2C,EAExC;EACHJ,0BAA0B,GAAGI,OAA7B;AACD,CAJM;AAMP;AACA;AACA;;;;;AACO,IAAMC,WAAW,GACtB,SADWA,WACX,CAACnB,KAAD;EAAA,OACA,UAACI,QAAD,EAAwB;IACtBA,QAAQ,CAAC,uCAAD,CAAR;IAEA,IAAMW,aAAa,GAAG,IAAIK,sBAAJ,CAAkBpB,KAAlB,CAAtB;IAEA,OAAOI,QAAQ,CACbU,0BAA0B,CAACC,aAAD,EAAgBZ,2BAAhB,CADb,CAAf;EAGD,CATD;AAAA,CADK"}
1
+ {"version":3,"file":"Error.js","names":["saveError","error","type","payload","defaultErrorResponseHandler","dispatch","isResourceNotFoundAfterReload","isRemoteServiceException","isUnauthorized","handleUnauthorized","isBlocked","isConcurrentUser","push","LOGOUT_PATH","isChangePassword","changePassword","IS_SERVER","setTimeout","showXHRErrorNotification","customErrorResponseHandler","errorResponse","defaultHandler","setCustomErrorResponseHandler","handler","handleError","resetProgress","ErrorResponse"],"sources":["../../../src/redux/actions/Error.js"],"sourcesContent":["// @flow\nimport { LOGOUT_PATH, IS_SERVER } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { push } from \"../_router/actions\";\nimport { showXHRErrorNotification } from \"./Notification\";\nimport { resetProgress } from \"./ProgressIndicator\";\nimport { changePassword } from \"./SignIn\";\nimport { handleUnauthorized } from \"./Authorization\";\n\nimport type { FetchException } from \"../../exceptions\";\nimport type { Dispatch, SaveErrorAction, ThunkAction } from \"../types\";\n\ntype DefaultErrorResponseHandler = (error: ErrorResponse) => ThunkAction;\ntype CustomErrorResponseHandler = (\n errorResponse: ErrorResponse,\n defaultHandler: DefaultErrorResponseHandler\n) => ThunkAction;\n\n/**\n */\nconst saveError = (error): SaveErrorAction => ({\n type: \"SAVE_ERROR\",\n payload: error,\n});\n\n/**\n */\nconst defaultErrorResponseHandler: DefaultErrorResponseHandler =\n (error: ErrorResponse): ThunkAction =>\n (dispatch: Dispatch) => {\n if (error.isResourceNotFoundAfterReload || error.isRemoteServiceException) {\n return dispatch({ type: \"NO_ACTION\" });\n }\n\n if (error.isUnauthorized) {\n return dispatch(handleUnauthorized(error));\n }\n\n if (error.isBlocked || error.isConcurrentUser) {\n dispatch(push(LOGOUT_PATH));\n }\n\n if (error.isChangePassword) {\n return dispatch(changePassword());\n }\n\n if (IS_SERVER) {\n return dispatch(saveError(error));\n }\n\n setTimeout(() => {\n throw error;\n });\n\n return dispatch(showXHRErrorNotification(error));\n };\n\n/**\n * Standard Custom error response, acts as a proxy and can be overwritten by {@link setCustomErrorResponseHandler}\n */\nlet customErrorResponseHandler: CustomErrorResponseHandler =\n (errorResponse, defaultHandler) => (dispatch: Dispatch) =>\n dispatch(defaultHandler(errorResponse));\n\n/**\n * Set a custom error response handler,\n * can be used when custom functionality is needed on certain (error) response\n * of the modular ui, for example when custom logic is needed when a user is unauthorized<br>\n * It receives an {@link ErrorResponse} and the {@link defaultErrorResponseHandler}\n */\nexport const setCustomErrorResponseHandler = (\n handler: CustomErrorResponseHandler\n) => {\n customErrorResponseHandler = handler;\n};\n\n/**\n * Handle errors by sending an error notification message\n */\nexport const handleError =\n (error: Error | FetchException): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(resetProgress());\n\n const errorResponse = new ErrorResponse(error);\n\n return dispatch(\n customErrorResponseHandler(errorResponse, defaultErrorResponseHandler)\n );\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAWA;AACA;AACA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;EAAA,OAA6B;IAC7CC,IAAI,EAAE,YADuC;IAE7CC,OAAO,EAAEF;EAFoC,CAA7B;AAAA,CAAlB;AAKA;AACA;;;AACA,IAAMG,2BAAwD,GAC5D,SADIA,2BACJ,CAACH,KAAD;EAAA,OACA,UAACI,QAAD,EAAwB;IACtB,IAAIJ,KAAK,CAACK,6BAAN,IAAuCL,KAAK,CAACM,wBAAjD,EAA2E;MACzE,OAAOF,QAAQ,CAAC;QAAEH,IAAI,EAAE;MAAR,CAAD,CAAf;IACD;;IAED,IAAID,KAAK,CAACO,cAAV,EAA0B;MACxB,OAAOH,QAAQ,CAAC,IAAAI,iCAAA,EAAmBR,KAAnB,CAAD,CAAf;IACD;;IAED,IAAIA,KAAK,CAACS,SAAN,IAAmBT,KAAK,CAACU,gBAA7B,EAA+C;MAC7CN,QAAQ,CAAC,IAAAO,aAAA,EAAKC,sBAAL,CAAD,CAAR;IACD;;IAED,IAAIZ,KAAK,CAACa,gBAAV,EAA4B;MAC1B,OAAOT,QAAQ,CAAC,IAAAU,sBAAA,GAAD,CAAf;IACD;;IAED,IAAIC,oBAAJ,EAAe;MACb,OAAOX,QAAQ,CAACL,SAAS,CAACC,KAAD,CAAV,CAAf;IACD;;IAEDgB,UAAU,CAAC,YAAM;MACf,MAAMhB,KAAN;IACD,CAFS,CAAV;IAIA,OAAOI,QAAQ,CAAC,IAAAa,sCAAA,EAAyBjB,KAAzB,CAAD,CAAf;EACD,CA3BD;AAAA,CADF;AA8BA;AACA;AACA;;;AACA,IAAIkB,0BAAsD,GACxD,oCAACC,aAAD,EAAgBC,cAAhB;EAAA,OAAmC,UAAChB,QAAD;IAAA,OACjCA,QAAQ,CAACgB,cAAc,CAACD,aAAD,CAAf,CADyB;EAAA,CAAnC;AAAA,CADF;AAIA;AACA;AACA;AACA;AACA;AACA;;;AACO,IAAME,6BAA6B,GAAG,SAAhCA,6BAAgC,CAC3CC,OAD2C,EAExC;EACHJ,0BAA0B,GAAGI,OAA7B;AACD,CAJM;AAMP;AACA;AACA;;;;;AACO,IAAMC,WAAW,GACtB,SADWA,WACX,CAACvB,KAAD;EAAA,OACA,UAACI,QAAD,EAAwB;IACtBA,QAAQ,CAAC,IAAAoB,gCAAA,GAAD,CAAR;IAEA,IAAML,aAAa,GAAG,IAAIM,sBAAJ,CAAkBzB,KAAlB,CAAtB;IAEA,OAAOI,QAAQ,CACbc,0BAA0B,CAACC,aAAD,EAAgBhB,2BAAhB,CADb,CAAf;EAGD,CATD;AAAA,CADK"}
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","names":["previousObject","form","newForm","clone","setPreviousObject","cancelForm","dispatch","getState","key","auth","mustChangePassword","Authenticate","logout","then"],"sources":["../../../src/redux/actions/Form.js"],"sourcesContent":["// @flow\nimport { goBack } from \"../_router/actions\";\nimport { updateModel } from \"../_modularui/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { reloadApplication } from \"./Application\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\n\nimport Authenticate from \"../../modularui/Authenticate\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type { UpdateModelAction } from \"../_modularui/types\";\n\n/**\n * Go back to previous object (back button on form)\n */\nexport const previousObject = (form: FormModel): UpdateModelAction => {\n const newForm = form.clone();\n\n newForm.setPreviousObject();\n\n return updateModel(newForm);\n};\n\n/**\n */\nexport const cancelForm =\n (form: FormModel): ThunkAction =>\n (dispatch: Dispatch, getState: GetState) => {\n if (form.key === \"ChangePassword\" && getState().auth.mustChangePassword) {\n dispatch(startProgress());\n return new Authenticate().logout().then(() => {\n dispatch(logoutSuccess());\n dispatch(reloadApplication());\n dispatch(finishProgress());\n\n return dispatch(goBack());\n });\n }\n\n return dispatch(goBack());\n };\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAMA;AACA;AACA;AACO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,IAAD,EAAwC;EACpE,IAAMC,OAAO,GAAGD,IAAI,CAACE,KAAL,EAAhB;EAEAD,OAAO,CAACE,iBAAR;EAEA,OAAO,2BAAYF,OAAZ,CAAP;AACD,CANM;AAQP;AACA;;;;;AACO,IAAMG,UAAU,GACrB,SADWA,UACX,CAACJ,IAAD;EAAA,OACA,UAACK,QAAD,EAAqBC,QAArB,EAA4C;IAC1C,IAAIN,IAAI,CAACO,GAAL,KAAa,gBAAb,IAAiCD,QAAQ,GAAGE,IAAX,CAAgBC,kBAArD,EAAyE;MACvEJ,QAAQ,CAAC,uCAAD,CAAR;MACA,OAAO,IAAIK,qBAAJ,GAAmBC,MAAnB,GAA4BC,IAA5B,CAAiC,YAAM;QAC5CP,QAAQ,CAAC,6BAAD,CAAR;QACAA,QAAQ,CAAC,qCAAD,CAAR;QACAA,QAAQ,CAAC,wCAAD,CAAR;QAEA,OAAOA,QAAQ,CAAC,sBAAD,CAAf;MACD,CANM,CAAP;IAOD;;IAED,OAAOA,QAAQ,CAAC,sBAAD,CAAf;EACD,CAdD;AAAA,CADK"}
1
+ {"version":3,"file":"Form.js","names":["previousObject","form","newForm","clone","setPreviousObject","updateModel","cancelForm","dispatch","getState","key","auth","mustChangePassword","startProgress","Authenticate","logout","then","logoutSuccess","reloadApplication","finishProgress","goBack"],"sources":["../../../src/redux/actions/Form.js"],"sourcesContent":["// @flow\nimport { goBack } from \"../_router/actions\";\nimport { updateModel } from \"../_modularui/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { reloadApplication } from \"./Application\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\n\nimport Authenticate from \"../../modularui/Authenticate\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type { UpdateModelAction } from \"../_modularui/types\";\n\n/**\n * Go back to previous object (back button on form)\n */\nexport const previousObject = (form: FormModel): UpdateModelAction => {\n const newForm = form.clone();\n\n newForm.setPreviousObject();\n\n return updateModel(newForm);\n};\n\n/**\n */\nexport const cancelForm =\n (form: FormModel): ThunkAction =>\n (dispatch: Dispatch, getState: GetState) => {\n if (form.key === \"ChangePassword\" && getState().auth.mustChangePassword) {\n dispatch(startProgress());\n return new Authenticate().logout().then(() => {\n dispatch(logoutSuccess());\n dispatch(reloadApplication());\n dispatch(finishProgress());\n\n return dispatch(goBack());\n });\n }\n\n return dispatch(goBack());\n };\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAMA;AACA;AACA;AACO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,IAAD,EAAwC;EACpE,IAAMC,OAAO,GAAGD,IAAI,CAACE,KAAL,EAAhB;EAEAD,OAAO,CAACE,iBAAR;EAEA,OAAO,IAAAC,qBAAA,EAAYH,OAAZ,CAAP;AACD,CANM;AAQP;AACA;;;;;AACO,IAAMI,UAAU,GACrB,SADWA,UACX,CAACL,IAAD;EAAA,OACA,UAACM,QAAD,EAAqBC,QAArB,EAA4C;IAC1C,IAAIP,IAAI,CAACQ,GAAL,KAAa,gBAAb,IAAiCD,QAAQ,GAAGE,IAAX,CAAgBC,kBAArD,EAAyE;MACvEJ,QAAQ,CAAC,IAAAK,gCAAA,GAAD,CAAR;MACA,OAAO,IAAIC,qBAAJ,GAAmBC,MAAnB,GAA4BC,IAA5B,CAAiC,YAAM;QAC5CR,QAAQ,CAAC,IAAAS,sBAAA,GAAD,CAAR;QACAT,QAAQ,CAAC,IAAAU,8BAAA,GAAD,CAAR;QACAV,QAAQ,CAAC,IAAAW,iCAAA,GAAD,CAAR;QAEA,OAAOX,QAAQ,CAAC,IAAAY,eAAA,GAAD,CAAf;MACD,CANM,CAAP;IAOD;;IAED,OAAOZ,QAAQ,CAAC,IAAAY,eAAA,GAAD,CAAf;EACD,CAdD;AAAA,CADK"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormAttributeSet.js","names":["updateFormAttribute","form","formObject","attribute","inputvalue","options","autosubmit","autosave","forceUpdate","validate","dispatch","newForm","clone","undefined","currentFormObject","equals","updateAttribute","completedFormObjects","forEach","completeObject","isValid","autosubmitAction","isChanged","hasDynamicValidations"],"sources":["../../../src/redux/actions/FormAttributeSet.js"],"sourcesContent":["// @flow\nimport { updateModel } from \"../_modularui/actions\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport { validateFormObject } from \"./FormValidations\";\nimport { autosaveFormObject } from \"./FormAutosave\";\nimport { autosubmitFormObject } from \"./FormAutosubmit\";\n\nimport type { Dispatch, ThunkAction, UpdateFormOptions } from \"../types\";\nimport type { AttributeType } from \"../../models/types\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type FormObjectModel from \"../../models/form/FormObjectModel\";\n\n/**\n * Update an attribute on a form\n */\nexport const updateFormAttribute =\n (\n form: FormModel,\n formObject: FormObjectModel,\n attribute: AttributeType,\n inputvalue: string,\n options: UpdateFormOptions = {\n autosubmit: false,\n autosave: false,\n forceUpdate: false,\n validate: true,\n }\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n const newForm = form.clone();\n\n if (options.validate === undefined) {\n options.validate = true;\n }\n\n if (newForm.currentFormObject?.equals(formObject)) {\n newForm.currentFormObject.updateAttribute(attribute, inputvalue);\n } else {\n newForm.completedFormObjects.forEach((completeObject) => {\n if (completeObject.equals(formObject)) {\n completeObject.updateAttribute(attribute, inputvalue);\n }\n });\n }\n\n if (options.autosubmit && newForm.isValid) {\n const autosubmitAction = autosubmitFormObject(\n newForm,\n attribute,\n options.forceUpdate\n );\n if (autosubmitAction) {\n return dispatch(autosubmitAction);\n }\n }\n\n if (options.autosave && newForm.isValid && newForm.isChanged()) {\n dispatch(autosaveFormObject(newForm));\n }\n\n if (\n options.validate &&\n newForm.currentFormObject?.hasDynamicValidations &&\n getSetting(\"USE_INSTANT_SERVER_VALIDATION\")\n ) {\n // server form validations happens async, don't wait for the form to return\n dispatch(validateFormObject(newForm));\n }\n return dispatch(updateModel(newForm));\n };\n"],"mappings":";;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAOA;AACA;AACA;AACO,IAAMA,mBAAmB,GAC9B,SADWA,mBACX,CACEC,IADF,EAEEC,UAFF,EAGEC,SAHF,EAIEC,UAJF;EAAA,IAKEC,OALF,uEAK+B;IAC3BC,UAAU,EAAE,KADe;IAE3BC,QAAQ,EAAE,KAFiB;IAG3BC,WAAW,EAAE,KAHc;IAI3BC,QAAQ,EAAE;EAJiB,CAL/B;EAAA,OAYA,UAACC,QAAD,EAAwB;IAAA;;IACtB,IAAMC,OAAO,GAAGV,IAAI,CAACW,KAAL,EAAhB;;IAEA,IAAIP,OAAO,CAACI,QAAR,KAAqBI,SAAzB,EAAoC;MAClCR,OAAO,CAACI,QAAR,GAAmB,IAAnB;IACD;;IAED,6BAAIE,OAAO,CAACG,iBAAZ,kDAAI,sBAA2BC,MAA3B,CAAkCb,UAAlC,CAAJ,EAAmD;MACjDS,OAAO,CAACG,iBAAR,CAA0BE,eAA1B,CAA0Cb,SAA1C,EAAqDC,UAArD;IACD,CAFD,MAEO;MACLO,OAAO,CAACM,oBAAR,CAA6BC,OAA7B,CAAqC,UAACC,cAAD,EAAoB;QACvD,IAAIA,cAAc,CAACJ,MAAf,CAAsBb,UAAtB,CAAJ,EAAuC;UACrCiB,cAAc,CAACH,eAAf,CAA+Bb,SAA/B,EAA0CC,UAA1C;QACD;MACF,CAJD;IAKD;;IAED,IAAIC,OAAO,CAACC,UAAR,IAAsBK,OAAO,CAACS,OAAlC,EAA2C;MACzC,IAAMC,gBAAgB,GAAG,0CACvBV,OADuB,EAEvBR,SAFuB,EAGvBE,OAAO,CAACG,WAHe,CAAzB;;MAKA,IAAIa,gBAAJ,EAAsB;QACpB,OAAOX,QAAQ,CAACW,gBAAD,CAAf;MACD;IACF;;IAED,IAAIhB,OAAO,CAACE,QAAR,IAAoBI,OAAO,CAACS,OAA5B,IAAuCT,OAAO,CAACW,SAAR,EAA3C,EAAgE;MAC9DZ,QAAQ,CAAC,sCAAmBC,OAAnB,CAAD,CAAR;IACD;;IAED,IACEN,OAAO,CAACI,QAAR,8BACAE,OAAO,CAACG,iBADR,mDACA,uBAA2BS,qBAD3B,IAEA,0BAAW,+BAAX,CAHF,EAIE;MACA;MACAb,QAAQ,CAAC,yCAAmBC,OAAnB,CAAD,CAAR;IACD;;IACD,OAAOD,QAAQ,CAAC,0BAAYC,OAAZ,CAAD,CAAf;EACD,CArDD;AAAA,CADK"}
1
+ {"version":3,"file":"FormAttributeSet.js","names":["updateFormAttribute","form","formObject","attribute","inputvalue","options","autosubmit","autosave","forceUpdate","validate","dispatch","newForm","clone","undefined","currentFormObject","equals","updateAttribute","completedFormObjects","forEach","completeObject","isValid","autosubmitAction","autosubmitFormObject","isChanged","autosaveFormObject","hasDynamicValidations","getSetting","validateFormObject","updateModel"],"sources":["../../../src/redux/actions/FormAttributeSet.js"],"sourcesContent":["// @flow\nimport { updateModel } from \"../_modularui/actions\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport { validateFormObject } from \"./FormValidations\";\nimport { autosaveFormObject } from \"./FormAutosave\";\nimport { autosubmitFormObject } from \"./FormAutosubmit\";\n\nimport type { Dispatch, ThunkAction, UpdateFormOptions } from \"../types\";\nimport type { AttributeType } from \"../../models/types\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type FormObjectModel from \"../../models/form/FormObjectModel\";\n\n/**\n * Update an attribute on a form\n */\nexport const updateFormAttribute =\n (\n form: FormModel,\n formObject: FormObjectModel,\n attribute: AttributeType,\n inputvalue: string,\n options: UpdateFormOptions = {\n autosubmit: false,\n autosave: false,\n forceUpdate: false,\n validate: true,\n }\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n const newForm = form.clone();\n\n if (options.validate === undefined) {\n options.validate = true;\n }\n\n if (newForm.currentFormObject?.equals(formObject)) {\n newForm.currentFormObject.updateAttribute(attribute, inputvalue);\n } else {\n newForm.completedFormObjects.forEach((completeObject) => {\n if (completeObject.equals(formObject)) {\n completeObject.updateAttribute(attribute, inputvalue);\n }\n });\n }\n\n if (options.autosubmit && newForm.isValid) {\n const autosubmitAction = autosubmitFormObject(\n newForm,\n attribute,\n options.forceUpdate\n );\n if (autosubmitAction) {\n return dispatch(autosubmitAction);\n }\n }\n\n if (options.autosave && newForm.isValid && newForm.isChanged()) {\n dispatch(autosaveFormObject(newForm));\n }\n\n if (\n options.validate &&\n newForm.currentFormObject?.hasDynamicValidations &&\n getSetting(\"USE_INSTANT_SERVER_VALIDATION\")\n ) {\n // server form validations happens async, don't wait for the form to return\n dispatch(validateFormObject(newForm));\n }\n return dispatch(updateModel(newForm));\n };\n"],"mappings":";;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAOA;AACA;AACA;AACO,IAAMA,mBAAmB,GAC9B,SADWA,mBACX,CACEC,IADF,EAEEC,UAFF,EAGEC,SAHF,EAIEC,UAJF;EAAA,IAKEC,OALF,uEAK+B;IAC3BC,UAAU,EAAE,KADe;IAE3BC,QAAQ,EAAE,KAFiB;IAG3BC,WAAW,EAAE,KAHc;IAI3BC,QAAQ,EAAE;EAJiB,CAL/B;EAAA,OAYA,UAACC,QAAD,EAAwB;IAAA;;IACtB,IAAMC,OAAO,GAAGV,IAAI,CAACW,KAAL,EAAhB;;IAEA,IAAIP,OAAO,CAACI,QAAR,KAAqBI,SAAzB,EAAoC;MAClCR,OAAO,CAACI,QAAR,GAAmB,IAAnB;IACD;;IAED,6BAAIE,OAAO,CAACG,iBAAZ,kDAAI,sBAA2BC,MAA3B,CAAkCb,UAAlC,CAAJ,EAAmD;MACjDS,OAAO,CAACG,iBAAR,CAA0BE,eAA1B,CAA0Cb,SAA1C,EAAqDC,UAArD;IACD,CAFD,MAEO;MACLO,OAAO,CAACM,oBAAR,CAA6BC,OAA7B,CAAqC,UAACC,cAAD,EAAoB;QACvD,IAAIA,cAAc,CAACJ,MAAf,CAAsBb,UAAtB,CAAJ,EAAuC;UACrCiB,cAAc,CAACH,eAAf,CAA+Bb,SAA/B,EAA0CC,UAA1C;QACD;MACF,CAJD;IAKD;;IAED,IAAIC,OAAO,CAACC,UAAR,IAAsBK,OAAO,CAACS,OAAlC,EAA2C;MACzC,IAAMC,gBAAgB,GAAG,IAAAC,oCAAA,EACvBX,OADuB,EAEvBR,SAFuB,EAGvBE,OAAO,CAACG,WAHe,CAAzB;;MAKA,IAAIa,gBAAJ,EAAsB;QACpB,OAAOX,QAAQ,CAACW,gBAAD,CAAf;MACD;IACF;;IAED,IAAIhB,OAAO,CAACE,QAAR,IAAoBI,OAAO,CAACS,OAA5B,IAAuCT,OAAO,CAACY,SAAR,EAA3C,EAAgE;MAC9Db,QAAQ,CAAC,IAAAc,gCAAA,EAAmBb,OAAnB,CAAD,CAAR;IACD;;IAED,IACEN,OAAO,CAACI,QAAR,8BACAE,OAAO,CAACG,iBADR,mDACA,uBAA2BW,qBAD3B,IAEA,IAAAC,oBAAA,EAAW,+BAAX,CAHF,EAIE;MACA;MACAhB,QAAQ,CAAC,IAAAiB,mCAAA,EAAmBhB,OAAnB,CAAD,CAAR;IACD;;IACD,OAAOD,QAAQ,CAAC,IAAAkB,oBAAA,EAAYjB,OAAZ,CAAD,CAAf;EACD,CArDD;AAAA,CADK"}