@beinformed/react 1.0.0-beta.0 → 1.0.0-beta.2

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 (117) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{beforeRenderHooks-Gb0tcmCY.d.ts → beforeRenderHooks-B0CWdI7P.d.ts} +1 -1
  3. package/dist/{beforeRenderHooks-CNvsMmi8.d.cts → beforeRenderHooks-CKR6eECI.d.cts} +1 -1
  4. package/dist/chunk-4IDEBSD5.js +2 -0
  5. package/dist/chunk-4IDEBSD5.js.map +1 -0
  6. package/dist/chunk-6AKWSGWH.js +2 -0
  7. package/dist/chunk-6AKWSGWH.js.map +1 -0
  8. package/dist/chunk-6EK3TAMN.js +2 -0
  9. package/dist/chunk-6EK3TAMN.js.map +1 -0
  10. package/dist/{chunk-YJNJVQFW.js → chunk-7JMMW2FM.js} +2 -2
  11. package/dist/{chunk-YJNJVQFW.js.map → chunk-7JMMW2FM.js.map} +1 -1
  12. package/dist/{chunk-X2C7CKOK.js → chunk-A3D5R7MI.js} +2 -2
  13. package/dist/{chunk-X2C7CKOK.js.map → chunk-A3D5R7MI.js.map} +1 -1
  14. package/dist/{chunk-HDOILTJ2.js → chunk-BV77KA4Y.js} +2 -2
  15. package/dist/chunk-BV77KA4Y.js.map +1 -0
  16. package/dist/{chunk-K3DTH6XN.js → chunk-FBCZEJSD.js} +2 -2
  17. package/dist/chunk-FBCZEJSD.js.map +1 -0
  18. package/dist/{chunk-DI7VM62A.js → chunk-GD4NSZBN.js} +2 -2
  19. package/dist/chunk-GD4NSZBN.js.map +1 -0
  20. package/dist/chunk-HTR32BUX.js +2 -0
  21. package/dist/{chunk-6KRECIRI.js.map → chunk-HTR32BUX.js.map} +1 -1
  22. package/dist/chunk-ITSZQHGD.js +2 -0
  23. package/dist/chunk-ITSZQHGD.js.map +1 -0
  24. package/dist/chunk-JWOBKHOJ.js +2 -0
  25. package/dist/chunk-JWOBKHOJ.js.map +1 -0
  26. package/dist/chunk-KZB56W7Q.js +2 -0
  27. package/dist/chunk-KZB56W7Q.js.map +1 -0
  28. package/dist/chunk-KZLW2NHD.js +2 -0
  29. package/dist/chunk-KZLW2NHD.js.map +1 -0
  30. package/dist/{chunk-WBPDMDW4.js → chunk-L7DO7AZT.js} +2 -2
  31. package/dist/{chunk-WBPDMDW4.js.map → chunk-L7DO7AZT.js.map} +1 -1
  32. package/dist/{chunk-VG3QU524.js → chunk-OQK6SSUD.js} +3 -3
  33. package/dist/chunk-OQK6SSUD.js.map +1 -0
  34. package/dist/chunk-SPV6MD7J.js +2 -0
  35. package/dist/chunk-SPV6MD7J.js.map +1 -0
  36. package/dist/{chunk-Z2Y3OPVI.js → chunk-TAWZ2VIM.js} +2 -2
  37. package/dist/chunk-TAWZ2VIM.js.map +1 -0
  38. package/dist/{chunk-A4USB53Q.js → chunk-TDYPCNQI.js} +2 -2
  39. package/dist/{chunk-A4USB53Q.js.map → chunk-TDYPCNQI.js.map} +1 -1
  40. package/dist/chunk-VXOYOMNN.js +2 -0
  41. package/dist/chunk-VXOYOMNN.js.map +1 -0
  42. package/dist/chunk-WEJGEXAP.js +2 -0
  43. package/dist/chunk-WEJGEXAP.js.map +1 -0
  44. package/dist/client/index.cjs +5 -5
  45. package/dist/client/index.cjs.map +1 -1
  46. package/dist/client/index.d.cts +3 -3
  47. package/dist/client/index.d.ts +3 -3
  48. package/dist/client/index.js +1 -1
  49. package/dist/hooks/index.cjs +1 -1
  50. package/dist/hooks/index.cjs.map +1 -1
  51. package/dist/hooks/index.d.cts +193 -69
  52. package/dist/hooks/index.d.ts +193 -69
  53. package/dist/hooks/index.js +1 -1
  54. package/dist/i18n/index.cjs +1 -1
  55. package/dist/i18n/index.cjs.map +1 -1
  56. package/dist/i18n/index.d.cts +22 -4
  57. package/dist/i18n/index.d.ts +22 -4
  58. package/dist/i18n/index.js +1 -1
  59. package/dist/index.cjs +6 -6
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.cts +9 -8
  62. package/dist/index.d.ts +9 -8
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/redux/index.cjs +1 -1
  66. package/dist/redux/index.cjs.map +1 -1
  67. package/dist/redux/index.d.cts +215 -28
  68. package/dist/redux/index.d.ts +215 -28
  69. package/dist/redux/index.js +1 -1
  70. package/dist/server/index.cjs +2 -2
  71. package/dist/server/index.cjs.map +1 -1
  72. package/dist/server/index.d.cts +3 -3
  73. package/dist/server/index.d.ts +3 -3
  74. package/dist/server/index.js +1 -1
  75. package/dist/{styled-components.d-CrkOxzv5.d.cts → styled-components.d-C19eFejP.d.cts} +7 -13
  76. package/dist/{styled-components.d-CrkOxzv5.d.ts → styled-components.d-C19eFejP.d.ts} +7 -13
  77. package/dist/theme/index.cjs +1 -1
  78. package/dist/theme/index.cjs.map +1 -1
  79. package/dist/theme/index.d.cts +1 -1
  80. package/dist/theme/index.d.ts +1 -1
  81. package/dist/theme/index.js +1 -1
  82. package/dist/{useForm-DW-a5mcV.d.ts → useForm-BWwXFuv5.d.cts} +3 -3
  83. package/dist/{useForm-CG_DMYfZ.d.cts → useForm-DqaU9T78.d.ts} +3 -3
  84. package/dist/utils/index.cjs +1 -1
  85. package/dist/utils/index.cjs.map +1 -1
  86. package/dist/utils/index.d.cts +6 -1
  87. package/dist/utils/index.d.ts +6 -1
  88. package/dist/utils/index.js +1 -1
  89. package/package.json +16 -16
  90. package/dist/chunk-3OP2KQ56.js +0 -2
  91. package/dist/chunk-3OP2KQ56.js.map +0 -1
  92. package/dist/chunk-4AC7YQ5Q.js +0 -2
  93. package/dist/chunk-4AC7YQ5Q.js.map +0 -1
  94. package/dist/chunk-6KRECIRI.js +0 -2
  95. package/dist/chunk-AMFWIR2R.js +0 -2
  96. package/dist/chunk-AMFWIR2R.js.map +0 -1
  97. package/dist/chunk-B7PQLTVC.js +0 -2
  98. package/dist/chunk-B7PQLTVC.js.map +0 -1
  99. package/dist/chunk-DI7VM62A.js.map +0 -1
  100. package/dist/chunk-HDOILTJ2.js.map +0 -1
  101. package/dist/chunk-JYAETKRB.js +0 -2
  102. package/dist/chunk-JYAETKRB.js.map +0 -1
  103. package/dist/chunk-K3DTH6XN.js.map +0 -1
  104. package/dist/chunk-RKGGCIUD.js +0 -2
  105. package/dist/chunk-RKGGCIUD.js.map +0 -1
  106. package/dist/chunk-UZIZDEU6.js +0 -2
  107. package/dist/chunk-UZIZDEU6.js.map +0 -1
  108. package/dist/chunk-VFLYA5WJ.js +0 -2
  109. package/dist/chunk-VFLYA5WJ.js.map +0 -1
  110. package/dist/chunk-VG3QU524.js.map +0 -1
  111. package/dist/chunk-X3N2NQVZ.js +0 -2
  112. package/dist/chunk-X3N2NQVZ.js.map +0 -1
  113. package/dist/chunk-Y7ESITVO.js +0 -2
  114. package/dist/chunk-Y7ESITVO.js.map +0 -1
  115. package/dist/chunk-YG7XDCNV.js +0 -2
  116. package/dist/chunk-YG7XDCNV.js.map +0 -1
  117. package/dist/chunk-Z2Y3OPVI.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @beinformed/react
2
2
 
3
+ ## 1.0.0-beta.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 6270090: Update hooks and codemod
8
+ - Updated dependencies [6270090]
9
+ - @beinformed/ui@2.0.0-beta.2
10
+
11
+ ## 1.0.0-beta.1
12
+
13
+ ### Patch Changes
14
+
15
+ - 84de89d: - # fix sonar, lint and tsc issues
16
+ - Sync with UI library 1.0 changes
17
+ - Updated dependencies [84de89d]
18
+ - @beinformed/ui@2.0.0-beta.1
19
+
3
20
  ## 1.0.0-beta.0
4
21
 
5
22
  ### Major Changes
@@ -1,5 +1,5 @@
1
1
  import { H as HttpServletRequestJava } from './types-CGXygEPz.js';
2
- import { _ as BEIStore } from './styled-components.d-CrkOxzv5.js';
2
+ import { _ as BEIStore } from './styled-components.d-C19eFejP.js';
3
3
 
4
4
  interface BeforeRenderHookProps {
5
5
  store: BEIStore;
@@ -1,5 +1,5 @@
1
1
  import { H as HttpServletRequestJava } from './types-CGXygEPz.cjs';
2
- import { _ as BEIStore } from './styled-components.d-CrkOxzv5.cjs';
2
+ import { _ as BEIStore } from './styled-components.d-C19eFejP.cjs';
3
3
 
4
4
  interface BeforeRenderHookProps {
5
5
  store: BEIStore;
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-JWOBKHOJ.js";import{hideVisually as i}from"polished";import{jsx as s}from"react/jsx-runtime";var d=({className:e,id:o,defaultMessage:t,children:n,data:p,screenreaderOnly:l=!1,allowHTML:m=!1})=>{let r=a(o,t||n,p);if(l){let f={...i()};return s("span",{className:e,style:f,children:r})}return m?s("span",{className:e,dangerouslySetInnerHTML:{__html:r}}):s("span",{className:e,children:r})};d.displayName="BI.Message";export{d as a};
2
+ //# sourceMappingURL=chunk-4IDEBSD5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/react/Message.tsx"],"sourcesContent":["import { hideVisually } from \"polished\";\n\nimport { useMessage } from \"../../hooks/useI18n\";\n\nimport type { MessageParameters } from \"@beinformed/ui/types\";\n\ninterface Props {\n className?: string;\n id: string;\n defaultMessage?: string | null;\n children?: string;\n data?: MessageParameters | undefined;\n screenreaderOnly?: boolean;\n allowHTML?: boolean;\n}\n\n/**\n * Message React component\n */\nexport const Message = ({\n className,\n id,\n defaultMessage,\n children,\n data,\n screenreaderOnly = false,\n allowHTML = false,\n}: Props) => {\n const translatedMessage = useMessage(id, defaultMessage || children, data);\n\n if (screenreaderOnly) {\n const styles = {\n ...hideVisually(),\n };\n\n return (\n <span className={className} style={styles}>\n {translatedMessage}\n </span>\n );\n }\n\n if (allowHTML) {\n return (\n <span\n className={className}\n dangerouslySetInnerHTML={{\n __html: translatedMessage,\n }}\n />\n );\n }\n\n return <span className={className}>{translatedMessage}</span>;\n};\n\nMessage.displayName = \"BI.Message\";\n"],"mappings":"mCAAA,OAAS,gBAAAA,MAAoB,WAoCvB,cAAAC,MAAA,oBAjBC,IAAMC,EAAU,CAAC,CACtB,UAAAC,EACA,GAAAC,EACA,eAAAC,EACA,SAAAC,EACA,KAAAC,EACA,iBAAAC,EAAmB,GACnB,UAAAC,EAAY,EACd,IAAa,CACX,IAAMC,EAAoBC,EAAWP,EAAIC,GAAkBC,EAAUC,CAAI,EAEzE,GAAIC,EAAkB,CACpB,IAAMI,EAAS,CACb,GAAGC,EAAa,CAClB,EAEA,OACEZ,EAAC,QAAK,UAAWE,EAAW,MAAOS,EAChC,SAAAF,EACH,CAEJ,CAEA,OAAID,EAEAR,EAAC,QACC,UAAWE,EACX,wBAAyB,CACvB,OAAQO,CACV,EACF,EAIGT,EAAC,QAAK,UAAWE,EAAY,SAAAO,EAAkB,CACxD,EAEAR,EAAQ,YAAc","names":["hideVisually","jsx","Message","className","id","defaultMessage","children","data","screenreaderOnly","allowHTML","translatedMessage","useMessage","styles","hideVisually"]}
@@ -0,0 +1,2 @@
1
+ import{f as r}from"./chunk-FBCZEJSD.js";var c=i=>{let e=preferencesProvider.getLayoutConfigFileLocation();if(typeof e=="string"){let o=e.startsWith("/")?`/resource${e}`:`/resource/${e}`,t=dataFetcher.fetch(o);if(t)i.dispatch(r(t));else throw new Error(`Could not read theme configuration file from: ${o}`)}};export{c as a};
2
+ //# sourceMappingURL=chunk-6AKWSGWH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/theme/serverTheme.ts"],"sourcesContent":["import { setThemePreference } from \"../redux/preferences/preferencesActions\";\n\nimport type { BEIStore } from \"../redux/store\";\n\nexport const setConfigurationTheme = (store: BEIStore) => {\n const configFileLocation = preferencesProvider.getLayoutConfigFileLocation();\n if (typeof configFileLocation === \"string\") {\n const configFilePath = configFileLocation.startsWith(\"/\")\n ? `/resource${configFileLocation}`\n : `/resource/${configFileLocation}`;\n\n const configTheme = dataFetcher.fetch(configFilePath);\n\n if (configTheme) {\n store.dispatch(setThemePreference(configTheme));\n } else {\n throw new Error(\n `Could not read theme configuration file from: ${configFilePath}`,\n );\n }\n }\n};\n"],"mappings":"wCAIO,IAAMA,EAAyBC,GAAoB,CACxD,IAAMC,EAAqB,oBAAoB,4BAA4B,EAC3E,GAAI,OAAOA,GAAuB,SAAU,CAC1C,IAAMC,EAAiBD,EAAmB,WAAW,GAAG,EACpD,YAAYA,CAAkB,GAC9B,aAAaA,CAAkB,GAE7BE,EAAc,YAAY,MAAMD,CAAc,EAEpD,GAAIC,EACFH,EAAM,SAASI,EAAmBD,CAAW,CAAC,MAE9C,OAAM,IAAI,MACR,iDAAiDD,CAAc,EACjE,CAEJ,CACF","names":["setConfigurationTheme","store","configFileLocation","configFilePath","configTheme","setThemePreference"]}
@@ -0,0 +1,2 @@
1
+ import{b as P}from"./chunk-MT7D3AJU.js";import{b as u}from"./chunk-KZLW2NHD.js";import{a as f,c as l,d as S,i as b}from"./chunk-SPV6MD7J.js";import{a as c,i as d,t as y,v as T}from"./chunk-ITSZQHGD.js";import{a as _,b as x}from"./chunk-GD4NSZBN.js";import{g,h as E,i as R}from"./chunk-FBCZEJSD.js";import{createRoot as k,hydrateRoot as B}from"react-dom/client";import{getContextPathModularUI as F,getStringSetting as H,setSetting as D,setSettings as M}from"@beinformed/ui/settings";import{Cache as a,xhr as A}from"@beinformed/ui/utils";import{HelmetProvider as w}from"@dr.pogodin/react-helmet";import{Provider as C}from"react-redux";import{Router as I}from"react-router";import{jsx as p}from"react/jsx-runtime";var h=({store:o,routerHistory:e,theme:t,children:r,ErrorFallbackComponent:i})=>p(C,{store:o,children:p(x,{theme:t,children:p(w,{children:p(P,{FallbackComponent:i,children:p(I,{history:e,children:r})})})})});h.displayName="BEI.Init";import{jsx as q}from"react/jsx-runtime";var L=o=>{globalThis.onunhandledrejection=e=>e.reason?queueMicrotask(()=>{let t=e.reason.message.toString()||String(e.reason);throw o.dispatch(y(t)),e.reason}):e},N=(o,e)=>{let t=o.preferences.theme;_(t,e)},v=o=>{let t=new URLSearchParams(globalThis.location.search).get("redirectURI");t&&A({url:`${F()}${t}`}).catch(r=>{if(r.id==="UnauthorizedException"||r.id==="Error.NotAuthorized"||r.id==="Error.Authentication.Required"||r.id==="Error.Authentication.InvalidCredentials"){let i=H("LOGIN_PATH","/signin");o.dispatch(T(i,{from:{pathname:t},modal:!1}))}})},U=o=>{if(globalThis!==void 0){let e=new URLSearchParams(globalThis.location?.search).get("entryDate");if(e)o.dispatch(d(e));else if(a.hasItem("ModelCatalogEntryDate")){let t=a.getItem("ModelCatalogEntryDate");o.dispatch(d(t))}}},W=(o,e,t,r)=>{let i=globalThis.window.contextPath;if(i===void 0)throw new Error("Missing contextPath on window object");D("CONTEXT_PATH",i),r&&M(r),a.clear("^res:");let n=b(u(),o);return N(n.getState(),t),v(n),U(n),g(n.getState()),R(n.getState()),E(n.getState()),a.loadOtherBrowserTabs(()=>{a.getItem("auth")&&n.dispatch(c())}),a.getItem("auth")&&n.dispatch(c()),l().listen((m,s)=>{n.dispatch(S(m,s))}),L(n),document.body&&(document.body.className="js"),e&&f(e,{store:n}),{store:n}},j=(o,e,t,r,i)=>{globalThis.addEventListener("DOMContentLoaded",()=>{let n=document.querySelector("#application");if(!n)throw new Error("No DOM element with id application found to attach client to");t(n,q(h,{store:o,routerHistory:l(),theme:r,ErrorFallbackComponent:i,children:e()}))})},O=(o,e)=>{o.querySelector(".application")?B(o,e):k(o).render(e)},le=({customReducers:o,theme:e,settings:t,render:r,beforeRenderHooks:i,ErrorFallbackComponent:n,mount:m})=>{let{store:s}=W(o,i,t);j(s,r,m??O,e,n)};(function(){let e=document.querySelector('script[type="application/json"][data-app-state="app-json"]');if(!e)throw new Error("Error finding script with attribute app-json to retrieve context path in html");let t=e.getAttribute("data-app-contextpath");if(t&&(window.contextPath=t),typeof __webpack_public_path__<"u"){let i=e.getAttribute("data-app-filepath");i&&i!=="{FILEPATH}"?__webpack_public_path__=`${i}/`:t&&(__webpack_public_path__=`${t}/`)}let r=e.getAttribute("data-app-nonce");r&&(__webpack_nonce__=r)})();export{h as a,L as b,U as c,W as d,j as e,le as f};
2
+ //# sourceMappingURL=chunk-6EK3TAMN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client/client.tsx","../src/client/Init.tsx","../src/client/contextPath.ts"],"sourcesContent":["import { createRoot, hydrateRoot } from \"react-dom/client\";\n\nimport {\n getContextPathModularUI,\n getStringSetting,\n setSetting,\n setSettings,\n} from \"@beinformed/ui/settings\";\nimport { Cache, xhr } from \"@beinformed/ui/utils\";\n\nimport { loginSuccess } from \"../redux/auth/authReducer\";\nimport { handleBeforeRenderHooks } from \"../redux/beforeRenderHooks\";\nimport { getDataFromServer } from \"../redux/dataFromServer\";\nimport { updateEntryDate } from \"../redux/modelcatalog/modelCatalogReducer\";\nimport { showXHRErrorNotification } from \"../redux/notifications/notificationActions\";\nimport {\n setAllContentInDataSetting,\n setDateTimeSettings,\n setLoginPreferences,\n} from \"../redux/preferences/preferencesActions\";\nimport { getBrowserHistory } from \"../redux/router/browserHistory\";\nimport { replace } from \"../redux/router/routerActions\";\nimport { locationChange } from \"../redux/router/routerReducer\";\nimport { setupStore } from \"../redux/store\";\nimport { createTheme } from \"../theme/createTheme\";\n\nimport { Init } from \"./Init\";\n\nimport type { Setting } from \"@beinformed/ui/settings\";\nimport type { Reducer } from \"@reduxjs/toolkit\";\nimport type { ComponentType, ElementType, ReactElement } from \"react\";\nimport type { ErrorBoundaryFallbackProps } from \"../components/ErrorBoundaryFallback\";\nimport type { BeforeRenderHook } from \"../redux/beforeRenderHooks\";\nimport type { RouterLocation } from \"../redux/router/routerReducer\";\nimport type { BEIStore, RootState } from \"../redux/store\";\nimport type { Theme } from \"../theme/types\";\nimport type { WindowWithContext } from \"./types\";\n\ntype RenderFunction = () => ReactElement<ElementType>;\ntype MountFunction = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => void;\n\ninterface Props {\n customReducers?: Record<string, Reducer>;\n theme?: Theme | Theme[];\n settings?: Record<string, Setting>;\n render: RenderFunction;\n mount: MountFunction;\n beforeRenderHooks?: BeforeRenderHook[];\n ErrorFallbackComponent?: ComponentType<ErrorBoundaryFallbackProps>;\n}\n\nexport const setUnhandledRejectionEvent = (store: BEIStore) => {\n globalThis.onunhandledrejection = (event: PromiseRejectionEvent) => {\n if (event.reason) {\n return queueMicrotask(() => {\n const errorMessage =\n event.reason.message.toString() || String(event.reason);\n\n store.dispatch(showXHRErrorNotification(errorMessage));\n throw event.reason;\n });\n }\n\n return event;\n };\n};\n\nconst initThemeSettings = (state: RootState, theme?: Theme | Theme[]) => {\n const storedTheme = state.preferences.theme;\n createTheme(storedTheme, theme); // on theme creation, the settings are set\n};\n\n/**\n * The redirectURI querystring parameter is available when the server is redirecting an unauthorized deep link\n * @param store\n */\nconst handleRedirectURI = (store: BEIStore) => {\n const urlParams = new URLSearchParams(globalThis.location.search);\n const redirectURI = urlParams.get(\"redirectURI\");\n if (redirectURI) {\n xhr({ url: `${getContextPathModularUI()}${redirectURI}` }).catch((e) => {\n if (\n e.id === \"UnauthorizedException\" ||\n e.id === \"Error.NotAuthorized\" ||\n e.id === \"Error.Authentication.Required\" ||\n e.id === \"Error.Authentication.InvalidCredentials\"\n ) {\n const LOGIN_PATH = getStringSetting(\"LOGIN_PATH\", \"/signin\");\n store.dispatch(\n replace(LOGIN_PATH, {\n from: { pathname: redirectURI },\n modal: false,\n }),\n );\n }\n });\n }\n};\n\nexport const setModelCatalogEntryDate = (store: BEIStore) => {\n if (globalThis !== undefined) {\n const entryDateFromUrl = new URLSearchParams(\n globalThis.location?.search,\n ).get(\"entryDate\");\n if (entryDateFromUrl) {\n store.dispatch(updateEntryDate(entryDateFromUrl));\n } else if (Cache.hasItem(\"ModelCatalogEntryDate\")) {\n const entryDate = Cache.getItem(\"ModelCatalogEntryDate\") as string;\n store.dispatch(updateEntryDate(entryDate));\n }\n }\n};\n\nexport const setupClient = (\n customReducers?: Record<string, Reducer>,\n beforeRenderHooks?: BeforeRenderHook[],\n theme?: Theme | Theme[],\n settings?: Record<string, Setting>,\n) => {\n const contextPath = (globalThis.window as WindowWithContext).contextPath;\n\n if (contextPath === undefined) {\n throw new Error(\"Missing contextPath on window object\");\n }\n\n setSetting(\"CONTEXT_PATH\", contextPath);\n\n if (settings) {\n setSettings(settings);\n }\n\n // remove all resources from cache\n Cache.clear(\"^res:\");\n\n const reduxStore = setupStore(getDataFromServer(), customReducers);\n\n initThemeSettings(reduxStore.getState(), theme);\n\n handleRedirectURI(reduxStore);\n setModelCatalogEntryDate(reduxStore);\n\n setAllContentInDataSetting(reduxStore.getState());\n setLoginPreferences(reduxStore.getState());\n setDateTimeSettings(reduxStore.getState());\n\n // load existing cache from other browser tabs\n Cache.loadOtherBrowserTabs(() => {\n if (Cache.getItem(\"auth\")) {\n reduxStore.dispatch(loginSuccess());\n }\n });\n\n if (Cache.getItem(\"auth\")) {\n reduxStore.dispatch(loginSuccess());\n }\n\n // listen to history change and update the redux router store\n getBrowserHistory().listen((location, action) => {\n reduxStore.dispatch(locationChange(location as RouterLocation, action));\n });\n\n setUnhandledRejectionEvent(reduxStore);\n\n if (document.body) {\n document.body.className = \"js\";\n }\n\n if (beforeRenderHooks) {\n handleBeforeRenderHooks(beforeRenderHooks, { store: reduxStore });\n }\n\n return { store: reduxStore };\n};\n\nexport const addContentLoadedEvent = (\n store: BEIStore,\n render: RenderFunction,\n mount: MountFunction,\n theme?: Theme | Theme[],\n ErrorFallbackComponent?: ComponentType<ErrorBoundaryFallbackProps>,\n) => {\n globalThis.addEventListener(\"DOMContentLoaded\", () => {\n const applicationNode = document.querySelector(\"#application\");\n if (!applicationNode) {\n throw new Error(\n \"No DOM element with id application found to attach client to\",\n );\n }\n\n mount(\n applicationNode,\n <Init\n store={store}\n routerHistory={getBrowserHistory()}\n theme={theme}\n ErrorFallbackComponent={ErrorFallbackComponent}\n >\n {render()}\n </Init>,\n );\n });\n};\n\nconst mountClient = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => {\n const isSSR = applicationNode.querySelector(\".application\");\n if (isSSR) {\n hydrateRoot(applicationNode, element);\n } else {\n const root = createRoot(applicationNode);\n root.render(element);\n }\n};\n\n/**\n * Mount the webapplication to the DOM, setup redux store and caches, add unhandledRejectionEvent, used client side when JavaScript is enabled.\n */\nexport const client = ({\n customReducers,\n theme,\n settings,\n render,\n beforeRenderHooks,\n ErrorFallbackComponent,\n mount,\n}: Props) => {\n const { store } = setupClient(customReducers, beforeRenderHooks, settings);\n\n addContentLoadedEvent(\n store,\n render,\n mount ?? mountClient,\n theme,\n ErrorFallbackComponent,\n );\n};\n","import { HelmetProvider } from \"@dr.pogodin/react-helmet\";\nimport { Provider } from \"react-redux\";\nimport { Router } from \"react-router\";\n\nimport { ErrorBoundary } from \"../components/ErrorBoundary\";\nimport { ThemeProvider } from \"../theme/ThemeProvider\";\n\nimport type { History as RouterHistory } from \"history\";\nimport type { ComponentType, ReactNode } from \"react\";\nimport type { ErrorBoundaryFallbackProps } from \"../components/ErrorBoundaryFallback\";\nimport type { BEIStore } from \"../redux/store\";\nimport type { Theme } from \"../theme/types\";\n\ninterface Props {\n store: BEIStore;\n routerHistory: RouterHistory;\n theme?: Theme | Theme[];\n children: ReactNode;\n ErrorFallbackComponent?: ComponentType<ErrorBoundaryFallbackProps>;\n}\n\nexport const Init = ({\n store,\n routerHistory,\n theme,\n children,\n ErrorFallbackComponent,\n}: Props): ReactNode => (\n <Provider store={store}>\n <ThemeProvider theme={theme}>\n <HelmetProvider>\n <ErrorBoundary FallbackComponent={ErrorFallbackComponent}>\n <Router history={routerHistory}>{children}</Router>\n </ErrorBoundary>\n </HelmetProvider>\n </ThemeProvider>\n </Provider>\n);\n\nInit.displayName = \"BEI.Init\";\n","import type { WindowWithContext } from \"./types\";\n\ndeclare let __webpack_public_path__: string;\ndeclare let __webpack_nonce__: string;\n\n(function x() {\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]',\n );\n if (!dataElement) {\n throw new Error(\n \"Error finding script with attribute app-json to retrieve context path in html\",\n );\n }\n\n const contextPath = dataElement.getAttribute(\"data-app-contextpath\");\n if (contextPath) {\n (window as WindowWithContext).contextPath = contextPath;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n const filePath = dataElement.getAttribute(\"data-app-filepath\");\n if (filePath && filePath !== \"{FILEPATH}\") {\n __webpack_public_path__ = `${filePath}/`; // NOSONAR\n } else if (contextPath) {\n __webpack_public_path__ = `${contextPath}/`; // NOSONAR\n }\n }\n\n const nonce = dataElement.getAttribute(\"data-app-nonce\");\n if (nonce) {\n __webpack_nonce__ = nonce; // NOSONAR\n }\n})();\n\nexport {};\n"],"mappings":"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","names":["createRoot","hydrateRoot","getContextPathModularUI","getStringSetting","setSetting","setSettings","Cache","xhr","HelmetProvider","Provider","Router","jsx","Init","store","routerHistory","theme","children","ErrorFallbackComponent","Provider","ThemeProvider","HelmetProvider","ErrorBoundary","Router","jsx","setUnhandledRejectionEvent","store","event","errorMessage","showXHRErrorNotification","initThemeSettings","state","theme","storedTheme","createTheme","handleRedirectURI","redirectURI","xhr","getContextPathModularUI","e","LOGIN_PATH","getStringSetting","replace","setModelCatalogEntryDate","entryDateFromUrl","updateEntryDate","Cache","entryDate","setupClient","customReducers","beforeRenderHooks","settings","contextPath","setSetting","setSettings","reduxStore","setupStore","getDataFromServer","setAllContentInDataSetting","setLoginPreferences","setDateTimeSettings","loginSuccess","getBrowserHistory","location","action","locationChange","handleBeforeRenderHooks","addContentLoadedEvent","render","mount","ErrorFallbackComponent","applicationNode","Init","mountClient","element","hydrateRoot","createRoot","client","dataElement","contextPath","filePath","nonce"]}
@@ -1,2 +1,2 @@
1
- import{d,f as s}from"./chunk-WBPDMDW4.js";import{a as l}from"./chunk-FW4363Y4.js";var q=l((t,u)=>{"use strict";var a=d(),f=s();function g(e,n){n=a(n,e);for(var r=0,i=n.length;e!=null&&r<i;)e=e[f(n[r++])];return r&&r==i?e:void 0}u.exports=g});export{q as a};
2
- //# sourceMappingURL=chunk-YJNJVQFW.js.map
1
+ import{d,f as s}from"./chunk-L7DO7AZT.js";import{a as l}from"./chunk-FW4363Y4.js";var q=l((t,u)=>{"use strict";var a=d(),f=s();function g(e,n){n=a(n,e);for(var r=0,i=n.length;e!=null&&r<i;)e=e[f(n[r++])];return r&&r==i?e:void 0}u.exports=g});export{q as a};
2
+ //# sourceMappingURL=chunk-7JMMW2FM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js"],"sourcesContent":["var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n"],"mappings":"kFAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,kBAAIC,EAAW,IACXC,EAAQ,IAUZ,SAASC,EAAQC,EAAQC,EAAM,CAC7BA,EAAOJ,EAASI,EAAMD,CAAM,EAK5B,QAHIE,EAAQ,EACRC,EAASF,EAAK,OAEXD,GAAU,MAAQE,EAAQC,GAC/BH,EAASA,EAAOF,EAAMG,EAAKC,GAAO,CAAC,CAAC,EAEtC,OAAQA,GAASA,GAASC,EAAUH,EAAS,MAC/C,CAEAJ,EAAO,QAAUG","names":["require_baseGet","__commonJSMin","exports","module","castPath","toKey","baseGet","object","path","index","length"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGet.js"],"sourcesContent":["var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n"],"mappings":"kFAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,kBAAIC,EAAW,IACXC,EAAQ,IAUZ,SAASC,EAAQC,EAAQC,EAAM,CAC7BA,EAAOJ,EAASI,EAAMD,CAAM,EAK5B,QAHIE,EAAQ,EACRC,EAASF,EAAK,OAEXD,GAAU,MAAQE,EAAQC,GAC/BH,EAASA,EAAOF,EAAMG,EAAKC,GAAO,CAAC,CAAC,EAEtC,OAAQA,GAASA,GAASC,EAAUH,EAAS,MAC/C,CAEAJ,EAAO,QAAUG","names":["require_baseGet","__commonJSMin","exports","module","castPath","toKey","baseGet","object","path","index","length"]}
@@ -1,2 +1,2 @@
1
- import{a as d}from"./chunk-YJNJVQFW.js";import{a as b,b as x}from"./chunk-FW4363Y4.js";var a=b((N,T)=>{"use strict";var R=d();function E(e,t,o){var r=e==null?void 0:R(e,t);return r===void 0?o:r}T.exports=E});import{useContext as C}from"react";import{ThemeContext as U}from"styled-components";var L=()=>C(U);var h=x(a(),1),m=(e={},t="",o="")=>{if(t==="")return o;let r=(0,h.default)(e,t,o);return r||o},s=(e={},t="",o="")=>{let r=m(e,t,o);if(r!=null&&(typeof r=="string"||typeof r=="number"||typeof r=="object"))return r;throw new Error(`${t} is not a string, number or plain object, but: ${r===null?"nuLl":typeof r}`)},i=(e={},t="",o="")=>{let r=m(e,t,o);if(typeof r=="string")return r;if(typeof r=="number")return r.toString();throw new Error(`${t} is not a string, but: ${typeof r}`)},Y=(e={},t="",o=0)=>{let r=m(e,t,o);if(typeof r=="number")return r;throw new Error(`${t} is not a number, but: ${typeof r}`)},Q=(e,t)=>({theme:o})=>s(o,e,t);var F=(e,t)=>({theme:o})=>{let r=s(o,e,t);return typeof r=="string"?`background: ${r}`:r};import{darken as $,hsl as v,lighten as O,parseToHsl as S}from"polished";var G=(e="",t,o)=>({theme:r})=>$(e,String(s(r,t,o))),K=(e="",t,o)=>({theme:r})=>O(e,String(s(r,t,o))),z=(e,t,o,r=0)=>v(S(e).hue+r,t,o);import{getLuminance as c,parseToRgb as V}from"polished";var u=(e,t)=>{let o=c(e),r=c(t);return parseFloat((o>r?(o+.05)/(r+.05):(r+.05)/(o+.05)).toFixed(2))},g=e=>{let t=V(e);return(t.red*299+t.green*587+t.blue*114)/1e3},k=(e,t="#212529",o="#fff",r)=>{if(typeof e!="string")throw new Error("ContrastYIQ needs a string to retrieve color, received: "+e);let n=g(e);if(r&&u(e,r)>=4.5)return r;let p=g(t)<127.5?t:"#212529",f=g(o)>127.5?o:"#fff";return n>127.5?u(e,p)<3?"#212529":p:u(e,f)<3?"#fff":f},w=(e,t,o)=>{let r=m(e,t,o);if(typeof r=="object"&&r!=null&&"backgroundColor"in r){let{backgroundColor:n}=r;if(typeof n=="string")return n}return typeof r=="string"?r:o},X=(e="",t,o="YIQ_DARK_COLOR",r="YIQ_LIGHT_COLOR")=>({theme:n})=>{let p=w(n,e,"#ffffff"),f=i(n,t),P=i(n,o,"#212529"),y=i(n,r,"#fff");return k(p,P,y,f)};var l="border-radius",er=(e=l,t="BORDER_RADIUS",o="0.25rem")=>({theme:r})=>r.ROUNDED_CORNERS?`${e&&e!==l?`border-${e}-radius`:l}: ${i(r,t,o)}`:"";export{L as a,m as b,s as c,i as d,Y as e,Q as f,F as g,G as h,K as i,z as j,u as k,g as l,k as m,X as n,er as o};
2
- //# sourceMappingURL=chunk-X2C7CKOK.js.map
1
+ import{a as d}from"./chunk-7JMMW2FM.js";import{a as b,b as x}from"./chunk-FW4363Y4.js";var a=b((N,T)=>{"use strict";var R=d();function E(e,t,o){var r=e==null?void 0:R(e,t);return r===void 0?o:r}T.exports=E});import{useContext as C}from"react";import{ThemeContext as U}from"styled-components";var L=()=>C(U);var h=x(a(),1),m=(e={},t="",o="")=>{if(t==="")return o;let r=(0,h.default)(e,t,o);return r||o},s=(e={},t="",o="")=>{let r=m(e,t,o);if(r!=null&&(typeof r=="string"||typeof r=="number"||typeof r=="object"))return r;throw new Error(`${t} is not a string, number or plain object, but: ${r===null?"nuLl":typeof r}`)},i=(e={},t="",o="")=>{let r=m(e,t,o);if(typeof r=="string")return r;if(typeof r=="number")return r.toString();throw new Error(`${t} is not a string, but: ${typeof r}`)},Y=(e={},t="",o=0)=>{let r=m(e,t,o);if(typeof r=="number")return r;throw new Error(`${t} is not a number, but: ${typeof r}`)},Q=(e,t)=>({theme:o})=>s(o,e,t);var F=(e,t)=>({theme:o})=>{let r=s(o,e,t);return typeof r=="string"?`background: ${r}`:r};import{darken as $,hsl as v,lighten as O,parseToHsl as S}from"polished";var G=(e="",t,o)=>({theme:r})=>$(e,String(s(r,t,o))),K=(e="",t,o)=>({theme:r})=>O(e,String(s(r,t,o))),z=(e,t,o,r=0)=>v(S(e).hue+r,t,o);import{getLuminance as c,parseToRgb as V}from"polished";var u=(e,t)=>{let o=c(e),r=c(t);return parseFloat((o>r?(o+.05)/(r+.05):(r+.05)/(o+.05)).toFixed(2))},g=e=>{let t=V(e);return(t.red*299+t.green*587+t.blue*114)/1e3},k=(e,t="#212529",o="#fff",r)=>{if(typeof e!="string")throw new Error("ContrastYIQ needs a string to retrieve color, received: "+e);let n=g(e);if(r&&u(e,r)>=4.5)return r;let p=g(t)<127.5?t:"#212529",f=g(o)>127.5?o:"#fff";return n>127.5?u(e,p)<3?"#212529":p:u(e,f)<3?"#fff":f},w=(e,t,o)=>{let r=m(e,t,o);if(typeof r=="object"&&r!=null&&"backgroundColor"in r){let{backgroundColor:n}=r;if(typeof n=="string")return n}return typeof r=="string"?r:o},X=(e="",t,o="YIQ_DARK_COLOR",r="YIQ_LIGHT_COLOR")=>({theme:n})=>{let p=w(n,e,"#ffffff"),f=i(n,t),P=i(n,o,"#212529"),y=i(n,r,"#fff");return k(p,P,y,f)};var l="border-radius",er=(e=l,t="BORDER_RADIUS",o="0.25rem")=>({theme:r})=>r.ROUNDED_CORNERS?`${e&&e!==l?`border-${e}-radius`:l}: ${i(r,t,o)}`:"";export{L as a,m as b,s as c,i as d,Y as e,Q as f,F as g,G as h,K as i,z as j,u as k,g as l,k as m,X as n,er as o};
2
+ //# sourceMappingURL=chunk-A3D5R7MI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","../src/theme/useTheme.ts","../src/theme/utils/themeProps.ts","../src/theme/utils/background.ts","../src/theme/utils/colors.ts","../src/theme/utils/contrast.ts","../src/theme/utils/corners.ts"],"sourcesContent":["var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import { useContext } from \"react\";\n\nimport { ThemeContext } from \"styled-components\";\n\nimport type { Theme } from \"./types\";\n\nconst useTheme = (): Theme | undefined => {\n return useContext(ThemeContext) as Theme | undefined;\n};\n\nexport { useTheme };\n","import get from \"lodash/get\";\n\nimport type { Theme, ThemePropValue } from \"../types\";\n\nexport const getProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue: ThemePropValue = \"\",\n) => {\n if (path === \"\") {\n return defaultValue;\n }\n const value = get(theme, path, defaultValue);\n if (!value) {\n return defaultValue;\n }\n return value;\n};\n\nexport const getThemeProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue: ThemePropValue = \"\",\n) => {\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 Error(\n `${path} is not a string, number or plain object, but: ${value === null ? \"nuLl\" : typeof value}`,\n );\n};\n\nexport const getThemeStringProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue = \"\",\n) => {\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 Error(`${path} is not a string, but: ${typeof value}`);\n};\n\nexport const getThemeNumberProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue = 0,\n) => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"number\") {\n return value;\n }\n\n throw new Error(`${path} is not a number, but: ${typeof value}`);\n};\n\n/*\n * Retrieve property value from theme property of styled component\n */\nexport const themeProp =\n <T extends Theme>(\n path: string,\n defaultValue?: ThemePropValue,\n ): ((props: { theme: T }) => ThemePropValue) =>\n ({ theme }: { theme: T }) =>\n getThemeProp(theme, path, defaultValue);\n","import { getThemeProp } from \"./themeProps\";\n\nimport type { ThemePropValue, UtilThemeProps } from \"../types\";\n\nconst renderBackground =\n (\n path?: string,\n defaultValue?: string,\n ): ((arg0: UtilThemeProps) => ThemePropValue) =>\n ({ theme }: UtilThemeProps) => {\n const value = getThemeProp(theme, path, defaultValue);\n\n if (typeof value === \"string\") {\n return `background: ${value}`;\n }\n\n return value;\n };\n\nexport { renderBackground };\n","import { darken, hsl, lighten, parseToHsl } from \"polished\";\n\nimport { getThemeProp } from \"./themeProps\";\n\nimport type { ThemePropValue, UtilThemeProps } from \"../types\";\n\n/*\n * Themed color x amount darkened\n */\nconst darkenColor =\n (\n amount: number | string = \"\",\n path?: string,\n defaultValue?: ThemePropValue,\n ): ((arg0: UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n darken(amount, String(getThemeProp(theme, path, defaultValue)));\n\n/*\n * Themed color x amount lightened\n */\nconst lightenColor =\n (\n amount: number | string = \"\",\n path?: string,\n defaultValue?: ThemePropValue,\n ): ((arg0: UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n lighten(amount, String(getThemeProp(theme, path, defaultValue)));\n\n/*\n * Make a color lighter or darker in the same color family\n */\nconst changeHSL = (\n color: string,\n saturation?: number,\n lightness?: number,\n hueAdjustment = 0,\n): string => hsl(parseToHsl(color).hue + hueAdjustment, saturation, lightness);\n\nexport { darkenColor, lightenColor, changeHSL };\n","import { getLuminance, parseToRgb } from \"polished\";\n\nimport { getProp, getThemeStringProp } from \"./themeProps\";\n\nimport type { Theme, ThemePropValue, UtilThemeProps } from \"../types\";\n\n/**\n * calculate the contrast ratio of two colors\n */\nconst getColorContrast = (color1: string, color2: string) => {\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 */\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: ThemePropValue,\n dark = \"#212529\",\n light = \"#fff\",\n preferredColor?: string,\n): string => {\n if (typeof color !== \"string\") {\n throw new Error(\n \"ContrastYIQ needs a string to retrieve color, received: \" + color,\n );\n }\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\nconst getBackgroundColor = (\n theme: Theme,\n bgColorProperty: string,\n defaultValue: string,\n) => {\n const bgColor = getProp(theme, bgColorProperty, defaultValue);\n\n if (\n typeof bgColor === \"object\" &&\n bgColor != null &&\n \"backgroundColor\" in bgColor\n ) {\n const { backgroundColor } = bgColor;\n if (typeof backgroundColor === \"string\") {\n return backgroundColor;\n }\n }\n\n if (typeof bgColor === \"string\") {\n return bgColor;\n }\n\n return defaultValue;\n};\n\n/**\n * Retrieve the contrast color for the given background property,\n * based on theme properties\n */\nconst renderContrastColor =\n (\n bgColorProperty = \"\",\n preferredColorProperty?: string,\n standardDarkProperty = \"YIQ_DARK_COLOR\",\n standardLightProperty = \"YIQ_LIGHT_COLOR\",\n ): ((arg0: 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","import { 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 */\nconst roundedCorners =\n (\n property: string = DEFAULT_CORNER_PROPERTY,\n path = \"BORDER_RADIUS\",\n defaultValue = \"0.25rem\",\n ): ((arg0: 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":"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","names":["require_get","__commonJSMin","exports","module","baseGet","get","object","path","defaultValue","result","useContext","ThemeContext","useTheme","import_get","getProp","theme","path","defaultValue","value","get","getThemeProp","getThemeStringProp","getThemeNumberProp","themeProp","renderBackground","path","defaultValue","theme","value","getThemeProp","darken","hsl","lighten","parseToHsl","darkenColor","amount","path","defaultValue","theme","darken","getThemeProp","lightenColor","lighten","changeHSL","color","saturation","lightness","hueAdjustment","hsl","parseToHsl","getLuminance","parseToRgb","getColorContrast","color1","color2","luminance1","getLuminance","luminance2","getYIQ","color","rgb","parseToRgb","getContrastYIQ","dark","light","preferredColor","yiqColor","darkColor","lightColor","getBackgroundColor","theme","bgColorProperty","defaultValue","bgColor","getProp","backgroundColor","renderContrastColor","preferredColorProperty","standardDarkProperty","standardLightProperty","getThemeStringProp","DEFAULT_CORNER_PROPERTY","roundedCorners","property","path","defaultValue","theme","getThemeStringProp"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/get.js","../src/theme/useTheme.ts","../src/theme/utils/themeProps.ts","../src/theme/utils/background.ts","../src/theme/utils/colors.ts","../src/theme/utils/contrast.ts","../src/theme/utils/corners.ts"],"sourcesContent":["var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import { useContext } from \"react\";\n\nimport { ThemeContext } from \"styled-components\";\n\nimport type { Theme } from \"./types\";\n\nconst useTheme = (): Theme | undefined => {\n return useContext(ThemeContext) as Theme | undefined;\n};\n\nexport { useTheme };\n","import get from \"lodash/get\";\n\nimport type { Theme, ThemePropValue } from \"../types\";\n\nexport const getProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue: ThemePropValue = \"\",\n) => {\n if (path === \"\") {\n return defaultValue;\n }\n const value = get(theme, path, defaultValue);\n if (!value) {\n return defaultValue;\n }\n return value;\n};\n\nexport const getThemeProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue: ThemePropValue = \"\",\n) => {\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 Error(\n `${path} is not a string, number or plain object, but: ${value === null ? \"nuLl\" : typeof value}`,\n );\n};\n\nexport const getThemeStringProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue = \"\",\n) => {\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 Error(`${path} is not a string, but: ${typeof value}`);\n};\n\nexport const getThemeNumberProp = (\n theme: Partial<Theme> = {},\n path = \"\",\n defaultValue = 0,\n) => {\n const value = getProp(theme, path, defaultValue);\n\n if (typeof value === \"number\") {\n return value;\n }\n\n throw new Error(`${path} is not a number, but: ${typeof value}`);\n};\n\n/*\n * Retrieve property value from theme property of styled component\n */\nexport const themeProp =\n <T extends Theme>(\n path: string,\n defaultValue?: ThemePropValue,\n ): ((props: { theme: T }) => ThemePropValue) =>\n ({ theme }: { theme: T }) =>\n getThemeProp(theme, path, defaultValue);\n","import { getThemeProp } from \"./themeProps\";\n\nimport type { ThemePropValue, UtilThemeProps } from \"../types\";\n\nconst renderBackground =\n (\n path?: string,\n defaultValue?: string,\n ): ((arg0: UtilThemeProps) => ThemePropValue) =>\n ({ theme }: UtilThemeProps) => {\n const value = getThemeProp(theme, path, defaultValue);\n\n if (typeof value === \"string\") {\n return `background: ${value}`;\n }\n\n return value;\n };\n\nexport { renderBackground };\n","import { darken, hsl, lighten, parseToHsl } from \"polished\";\n\nimport { getThemeProp } from \"./themeProps\";\n\nimport type { ThemePropValue, UtilThemeProps } from \"../types\";\n\n/*\n * Themed color x amount darkened\n */\nconst darkenColor =\n (\n amount: number | string = \"\",\n path?: string,\n defaultValue?: ThemePropValue,\n ): ((arg0: UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n darken(amount, String(getThemeProp(theme, path, defaultValue)));\n\n/*\n * Themed color x amount lightened\n */\nconst lightenColor =\n (\n amount: number | string = \"\",\n path?: string,\n defaultValue?: ThemePropValue,\n ): ((arg0: UtilThemeProps) => string) =>\n ({ theme }: UtilThemeProps) =>\n lighten(amount, String(getThemeProp(theme, path, defaultValue)));\n\n/*\n * Make a color lighter or darker in the same color family\n */\nconst changeHSL = (\n color: string,\n saturation?: number,\n lightness?: number,\n hueAdjustment = 0,\n): string => hsl(parseToHsl(color).hue + hueAdjustment, saturation, lightness);\n\nexport { darkenColor, lightenColor, changeHSL };\n","import { getLuminance, parseToRgb } from \"polished\";\n\nimport { getProp, getThemeStringProp } from \"./themeProps\";\n\nimport type { Theme, ThemePropValue, UtilThemeProps } from \"../types\";\n\n/**\n * calculate the contrast ratio of two colors\n */\nconst getColorContrast = (color1: string, color2: string) => {\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 */\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: ThemePropValue,\n dark = \"#212529\",\n light = \"#fff\",\n preferredColor?: string,\n): string => {\n if (typeof color !== \"string\") {\n throw new Error(\n \"ContrastYIQ needs a string to retrieve color, received: \" + color,\n );\n }\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\nconst getBackgroundColor = (\n theme: Theme,\n bgColorProperty: string,\n defaultValue: string,\n) => {\n const bgColor = getProp(theme, bgColorProperty, defaultValue);\n\n if (\n typeof bgColor === \"object\" &&\n bgColor != null &&\n \"backgroundColor\" in bgColor\n ) {\n const { backgroundColor } = bgColor;\n if (typeof backgroundColor === \"string\") {\n return backgroundColor;\n }\n }\n\n if (typeof bgColor === \"string\") {\n return bgColor;\n }\n\n return defaultValue;\n};\n\n/**\n * Retrieve the contrast color for the given background property,\n * based on theme properties\n */\nconst renderContrastColor =\n (\n bgColorProperty = \"\",\n preferredColorProperty?: string,\n standardDarkProperty = \"YIQ_DARK_COLOR\",\n standardLightProperty = \"YIQ_LIGHT_COLOR\",\n ): ((arg0: 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","import { 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 */\nconst roundedCorners =\n (\n property: string = DEFAULT_CORNER_PROPERTY,\n path = \"BORDER_RADIUS\",\n defaultValue = \"0.25rem\",\n ): ((arg0: 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":"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","names":["require_get","__commonJSMin","exports","module","baseGet","get","object","path","defaultValue","result","useContext","ThemeContext","useTheme","import_get","getProp","theme","path","defaultValue","value","get","getThemeProp","getThemeStringProp","getThemeNumberProp","themeProp","renderBackground","path","defaultValue","theme","value","getThemeProp","darken","hsl","lighten","parseToHsl","darkenColor","amount","path","defaultValue","theme","darken","getThemeProp","lightenColor","lighten","changeHSL","color","saturation","lightness","hueAdjustment","hsl","parseToHsl","getLuminance","parseToRgb","getColorContrast","color1","color2","luminance1","getLuminance","luminance2","getYIQ","color","rgb","parseToRgb","getContrastYIQ","dark","light","preferredColor","yiqColor","darkColor","lightColor","getBackgroundColor","theme","bgColorProperty","defaultValue","bgColor","getProp","backgroundColor","renderContrastColor","preferredColorProperty","standardDarkProperty","standardLightProperty","getThemeStringProp","DEFAULT_CORNER_PROPERTY","roundedCorners","property","path","defaultValue","theme","getThemeStringProp"]}
@@ -1,2 +1,2 @@
1
- import{c as p,e as l,h as u}from"./chunk-YG7XDCNV.js";var L=t=>{if(!t)return"";let e=[];return t.split("&").forEach(r=>{let[o,a]=r.split("=");o&&a?e.push(`${encodeURIComponent(o)}=${encodeURIComponent(a)}`):o&&e.push(encodeURIComponent(o))}),e.join("&")},h=t=>{let e=t.getPathInfo()||"/",r=t.getQueryString();return e=e.split("/").map(o=>encodeURIComponent(o)).join("/"),r?`${e}?${L(r)}`:e},C=t=>({pathname:t.getPathInfo()||"/",search:t.getQueryString()||"",state:{},hash:""}),v=(t,e)=>t.getCookieByName(e),m=(t,e)=>{let o=v(t,"locale")||t.getHeader("Accept-Language");return o===null?e.availableLocaleCodes[0]:e.getPreferredLocale(o)};import{IllegalArgumentException as g}from"@beinformed/ui/exceptions";import{getEnabledLocales as y}from"@beinformed/ui/settings";import R from"deepmerge";var E=(t,e=[],r)=>{if(!Array.isArray(e))throw new g("locales must be an array of objects");if(!r)throw new g("missing request argument");let o=p.map(n=>{let s=n.code,c=e.find(d=>d.code===s);return c?R(n,c):n});e.forEach(n=>{o.some(s=>s.code===n.code)||o.push(n)});let a=o.filter(n=>y().includes(n.code)),i=new l(a),f=m(r,i);t.dispatch(u(i,f??"en"))};export{h as a,C as b,v as c,m as d,E as e};
2
- //# sourceMappingURL=chunk-HDOILTJ2.js.map
1
+ import{c as p,e as l,h as u}from"./chunk-KZB56W7Q.js";var L=t=>{if(!t)return"";let e=[];return t.split("&").forEach(r=>{let[o,a]=r.split("=");o&&a?e.push(`${encodeURIComponent(o)}=${encodeURIComponent(a)}`):o&&e.push(encodeURIComponent(o))}),e.join("&")},h=t=>{let e=t.getPathInfo()||"/",r=t.getQueryString();return e=e.split("/").map(o=>encodeURIComponent(o)).join("/"),r?`${e}?${L(r)}`:e},C=t=>({pathname:t.getPathInfo()||"/",search:t.getQueryString()||"",state:{},hash:""}),v=(t,e)=>t.getCookieByName(e),m=(t,e)=>{let o=v(t,"locale")||t.getHeader("Accept-Language");return o===null?e.availableLocaleCodes[0]:e.getPreferredLocale(o)};import y from"deepmerge";import{IllegalArgumentException as g}from"@beinformed/ui/exceptions";import{getEnabledLocales as R}from"@beinformed/ui/settings";var E=(t,e=[],r)=>{if(!Array.isArray(e))throw new g("locales must be an array of objects");if(!r)throw new g("missing request argument");let o=p.map(n=>{let s=n.code,c=e.find(d=>d.code===s);return c?y(n,c):n});e.forEach(n=>{o.some(s=>s.code===n.code)||o.push(n)});let a=o.filter(n=>R().includes(n.code)),i=new l(a),f=m(r,i);t.dispatch(u(i,f??"en"))};export{h as a,C as b,v as c,m as d,E as e};
2
+ //# sourceMappingURL=chunk-BV77KA4Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/requestInformation.ts","../src/i18n/serverI18n.ts"],"sourcesContent":["import type { Locales } from \"../i18n/Locales\";\nimport type { RouterLocation } from \"../redux/router/routerReducer\";\nimport type { HttpServletRequestJava } from \"./types\";\n\nconst encodeQueryString = (queryString: string) => {\n if (!queryString) return \"\";\n\n const params: string[] = [];\n queryString.split(\"&\").forEach((part) => {\n const [key, value] = part.split(\"=\");\n if (key && value) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n } else if (key) {\n params.push(encodeURIComponent(key));\n }\n });\n return params.join(\"&\");\n};\n\nexport const getFullRequestUrl = (request: HttpServletRequestJava): string => {\n let pathInfo = request.getPathInfo() || \"/\";\n const queryString = request.getQueryString();\n\n pathInfo = pathInfo\n .split(\"/\")\n .map((segment) => encodeURIComponent(segment))\n .join(\"/\");\n\n if (queryString) {\n return `${pathInfo}?${encodeQueryString(queryString)}`;\n }\n\n return pathInfo;\n};\n\nexport const getFullRequestLocation = (\n request: HttpServletRequestJava,\n): RouterLocation => {\n return {\n pathname: request.getPathInfo() || \"/\",\n search: request.getQueryString() || \"\",\n state: {},\n hash: \"\",\n };\n};\n\nexport const getCookieFromRequest = (\n request: HttpServletRequestJava,\n cookieName: string,\n): null | string => {\n return request.getCookieByName(cookieName);\n};\n\nexport const getPreferredLocale = (\n request: HttpServletRequestJava,\n locales: Locales,\n): void | string => {\n const languageFromCookie = getCookieFromRequest(request, \"locale\");\n const acceptLanguageHeader =\n languageFromCookie || request.getHeader(\"Accept-Language\");\n\n // when no accept language header or cookie present, get first locale code\n if (acceptLanguageHeader === null) {\n return locales.availableLocaleCodes[0];\n }\n\n return locales.getPreferredLocale(acceptLanguageHeader);\n};\n","import deepmerge from \"deepmerge\";\n\nimport { IllegalArgumentException } from \"@beinformed/ui/exceptions\";\nimport { getEnabledLocales } from \"@beinformed/ui/settings\";\n\nimport { setLocales } from \"../redux/i18n/i18nReducer\";\nimport { getPreferredLocale } from \"../server/requestInformation\";\n\nimport { availableLocales, Locales } from \"./Locales\";\n\nimport type { BEIStore } from \"../redux/store\";\nimport type { HttpServletRequestJava } from \"../server/types\";\nimport type { LocaleConfiguration } from \"./types\";\n\nexport const setI18n = (\n store: BEIStore,\n locales: LocaleConfiguration[] = [],\n request: HttpServletRequestJava,\n) => {\n if (!Array.isArray(locales)) {\n throw new IllegalArgumentException(\"locales must be an array of objects\");\n }\n if (!request) {\n throw new IllegalArgumentException(\"missing request argument\");\n }\n\n const mergedLocales = availableLocales.map((locale) => {\n const code = locale.code;\n const customLocale = locales.find((custLocale) => custLocale.code === code);\n\n if (customLocale) {\n return deepmerge(locale, customLocale);\n }\n\n return locale;\n });\n\n locales.forEach((customLocale) => {\n if (!mergedLocales.some((locale) => locale.code === customLocale.code)) {\n mergedLocales.push(customLocale);\n }\n });\n\n const enabledLocales = mergedLocales.filter((locale: LocaleConfiguration) =>\n getEnabledLocales().includes(locale.code),\n );\n\n const localesInstance = new Locales(enabledLocales);\n const preferredLocale = getPreferredLocale(request, localesInstance);\n store.dispatch(setLocales(localesInstance, preferredLocale ?? \"en\"));\n};\n"],"mappings":"sDAIA,IAAMA,EAAqBC,GAAwB,CACjD,GAAI,CAACA,EAAa,MAAO,GAEzB,IAAMC,EAAmB,CAAC,EAC1B,OAAAD,EAAY,MAAM,GAAG,EAAE,QAASE,GAAS,CACvC,GAAM,CAACC,EAAKC,CAAK,EAAIF,EAAK,MAAM,GAAG,EAC/BC,GAAOC,EACTH,EAAO,KAAK,GAAG,mBAAmBE,CAAG,CAAC,IAAI,mBAAmBC,CAAK,CAAC,EAAE,EAC5DD,GACTF,EAAO,KAAK,mBAAmBE,CAAG,CAAC,CAEvC,CAAC,EACMF,EAAO,KAAK,GAAG,CACxB,EAEaI,EAAqBC,GAA4C,CAC5E,IAAIC,EAAWD,EAAQ,YAAY,GAAK,IAClCN,EAAcM,EAAQ,eAAe,EAO3C,OALAC,EAAWA,EACR,MAAM,GAAG,EACT,IAAKC,GAAY,mBAAmBA,CAAO,CAAC,EAC5C,KAAK,GAAG,EAEPR,EACK,GAAGO,CAAQ,IAAIR,EAAkBC,CAAW,CAAC,GAG/CO,CACT,EAEaE,EACXH,IAEO,CACL,SAAUA,EAAQ,YAAY,GAAK,IACnC,OAAQA,EAAQ,eAAe,GAAK,GACpC,MAAO,CAAC,EACR,KAAM,EACR,GAGWI,EAAuB,CAClCJ,EACAK,IAEOL,EAAQ,gBAAgBK,CAAU,EAG9BC,EAAqB,CAChCN,EACAO,IACkB,CAElB,IAAMC,EADqBJ,EAAqBJ,EAAS,QAAQ,GAEzCA,EAAQ,UAAU,iBAAiB,EAG3D,OAAIQ,IAAyB,KACpBD,EAAQ,qBAAqB,CAAC,EAGhCA,EAAQ,mBAAmBC,CAAoB,CACxD,ECnEA,OAAOC,MAAe,YAEtB,OAAS,4BAAAC,MAAgC,4BACzC,OAAS,qBAAAC,MAAyB,0BAW3B,IAAMC,EAAU,CACrBC,EACAC,EAAiC,CAAC,EAClCC,IACG,CACH,GAAI,CAAC,MAAM,QAAQD,CAAO,EACxB,MAAM,IAAIE,EAAyB,qCAAqC,EAE1E,GAAI,CAACD,EACH,MAAM,IAAIC,EAAyB,0BAA0B,EAG/D,IAAMC,EAAgBC,EAAiB,IAAKC,GAAW,CACrD,IAAMC,EAAOD,EAAO,KACdE,EAAeP,EAAQ,KAAMQ,GAAeA,EAAW,OAASF,CAAI,EAE1E,OAAIC,EACKE,EAAUJ,EAAQE,CAAY,EAGhCF,CACT,CAAC,EAEDL,EAAQ,QAASO,GAAiB,CAC3BJ,EAAc,KAAME,GAAWA,EAAO,OAASE,EAAa,IAAI,GACnEJ,EAAc,KAAKI,CAAY,CAEnC,CAAC,EAED,IAAMG,EAAiBP,EAAc,OAAQE,GAC3CM,EAAkB,EAAE,SAASN,EAAO,IAAI,CAC1C,EAEMO,EAAkB,IAAIC,EAAQH,CAAc,EAC5CI,EAAkBC,EAAmBd,EAASW,CAAe,EACnEb,EAAM,SAASiB,EAAWJ,EAAiBE,GAAmB,IAAI,CAAC,CACrE","names":["encodeQueryString","queryString","params","part","key","value","getFullRequestUrl","request","pathInfo","segment","getFullRequestLocation","getCookieFromRequest","cookieName","getPreferredLocale","locales","acceptLanguageHeader","deepmerge","IllegalArgumentException","getEnabledLocales","setI18n","store","locales","request","IllegalArgumentException","mergedLocales","availableLocales","locale","code","customLocale","custLocale","deepmerge","enabledLocales","getEnabledLocales","localesInstance","Locales","preferredLocale","getPreferredLocale","setLocales"]}
@@ -1,2 +1,2 @@
1
- import{b as x}from"./chunk-WBPDMDW4.js";import{c as R}from"./chunk-6KRECIRI.js";import{a as c,b as j}from"./chunk-FW4363Y4.js";var T=c(($,y)=>{"use strict";function h(r,e){return function(t){return r(e(t))}}y.exports=h});var O=c((z,S)=>{"use strict";var A=T(),G=A(Object.getPrototypeOf,Object);S.exports=G});var E=c((K,I)=>{"use strict";var L=R(),V=O(),k=x(),F="[object Object]",w=Function.prototype,U=Object.prototype,v=w.toString,q=U.hasOwnProperty,M=v.call(Object);function J(r){if(!k(r)||L(r)!=F)return!1;var e=V(r);if(e===null)return!0;var t=q.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&v.call(t)==M}I.exports=J});import{createAction as g,createReducer as C}from"@reduxjs/toolkit";var o=g("SET_PREFERENCE",(r,e)=>({payload:{key:r,value:e}})),a=g("SET_PREFERENCES",r=>({payload:{...r}})),D={},W=C(D,r=>{r.addCase(o,(e,t)=>{let{key:n,value:i}=t.payload;e[n]=i}).addCase(a,(e,t)=>{for(let n of Object.keys(t.payload))e[n]=t.payload[n]})});var b=j(E(),1);import{LOGIN_PASSWORD_SETTING as f,LOGIN_PATH_SETTING as p,LOGIN_TYPE as l,LOGIN_USERNAME_SETTING as u,LOGOUT_PATH_SETTING as d}from"@beinformed/ui/constants";import{JsonParseException as H}from"@beinformed/ui/exceptions";import{ALL_CONTENT_IN_DATA_SETTING as P,INCLUDE_TIME_OFFSET as m,setSetting as _,setSettings as N}from"@beinformed/ui/settings";var s=(r,e,t)=>{let n;return typeof preferencesProvider<"u"&&(n=preferencesProvider.getPreferenceByName(r)),n||(n=e),typeof n=="string"&&t!=="string"&&n.includes(",")&&(n=n.split(",").map(i=>i.trim())),n},re=(r,e,t)=>{let n=s(r,e,t);return o(r,n)},te=r=>{let e;try{e=r?JSON.parse(r):null}catch(t){throw new H(`Theme file contains invalid JSON: ${t}`)}return e&&(0,b.default)(e)&&N(e.settings),o("theme",e)},ne=r=>{let e=!1;return typeof preferencesProvider<"u"&&typeof preferencesProvider.getModularUIContentInData<"u"?e=preferencesProvider.getModularUIContentInData():typeof r<"u"&&(e=r.preferences[P]),_(P,!!e),o(P,e)},oe=r=>{let e=!1;return typeof preferencesProvider<"u"&&typeof preferencesProvider.isIncludeTimeOffsetInDateTimes<"u"?e=preferencesProvider.isIncludeTimeOffsetInDateTimes():typeof r<"u"&&(e=r.preferences[m]),_(m,!!e),o(m,e)},se=r=>{let e={[l]:s(l,r?.preferences[l]||""),[p]:s(p,r?.preferences[p]||"/callback?client_name=FormClient"),[u]:s(u,r?.preferences[u]||"j_username"),[f]:s(f,r?.preferences[f]||"j_password"),[d]:s(d,r?.preferences[d]||"/logout")};return N(e),a(e)};export{E as a,o as b,a as c,W as d,re as e,te as f,ne as g,oe as h,se as i};
2
- //# sourceMappingURL=chunk-K3DTH6XN.js.map
1
+ import{b as x}from"./chunk-L7DO7AZT.js";import{c as R}from"./chunk-HTR32BUX.js";import{a as c,b as j}from"./chunk-FW4363Y4.js";var T=c(($,y)=>{"use strict";function h(r,e){return function(t){return r(e(t))}}y.exports=h});var O=c((z,S)=>{"use strict";var A=T(),G=A(Object.getPrototypeOf,Object);S.exports=G});var E=c((K,I)=>{"use strict";var L=R(),V=O(),k=x(),F="[object Object]",w=Function.prototype,U=Object.prototype,v=w.toString,q=U.hasOwnProperty,M=v.call(Object);function J(r){if(!k(r)||L(r)!=F)return!1;var e=V(r);if(e===null)return!0;var t=q.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&v.call(t)==M}I.exports=J});import{createAction as g,createReducer as C}from"@reduxjs/toolkit";var o=g("SET_PREFERENCE",(r,e)=>({payload:{key:r,value:e}})),a=g("SET_PREFERENCES",r=>({payload:{...r}})),D={},W=C(D,r=>{r.addCase(o,(e,t)=>{let{key:n,value:i}=t.payload;e[n]=i}).addCase(a,(e,t)=>{for(let n of Object.keys(t.payload))e[n]=t.payload[n]})});var _=j(E(),1);import{LOGIN_PASSWORD_SETTING as f,LOGIN_PATH_SETTING as p,LOGIN_TYPE as l,LOGIN_USERNAME_SETTING as u,LOGOUT_PATH_SETTING as d}from"@beinformed/ui/constants";import{JsonParseException as H}from"@beinformed/ui/exceptions";import{ALL_CONTENT_IN_DATA_SETTING as P,INCLUDE_TIME_OFFSET as m,setSetting as N,setSettings as b}from"@beinformed/ui/settings";var s=(r,e,t)=>{let n;return typeof preferencesProvider<"u"&&(n=preferencesProvider.getPreferenceByName(r)),n||(n=e),typeof n=="string"&&t!=="string"&&n.includes(",")&&(n=n.split(",").map(i=>i.trim())),n},re=(r,e,t)=>{let n=s(r,e,t);return o(r,n)},te=r=>{let e;try{e=r?JSON.parse(r):null}catch(t){throw new H(`Theme file contains invalid JSON: ${t}`)}return e&&(0,_.default)(e)&&b(e.settings),o("theme",e)},ne=r=>{let e=!1;return typeof preferencesProvider<"u"&&typeof preferencesProvider.getModularUIContentInData<"u"?e=preferencesProvider.getModularUIContentInData():typeof r<"u"&&(e=r.preferences[P]),N(P,!!e),o(P,e)},oe=r=>{let e=!1;return typeof preferencesProvider<"u"&&typeof preferencesProvider.isIncludeTimeOffsetInDateTimes<"u"?e=preferencesProvider.isIncludeTimeOffsetInDateTimes():typeof r<"u"&&(e=r.preferences[m]),N(m,!!e),o(m,e)},se=r=>{let e={[l]:s(l,r?.preferences[l]||""),[p]:s(p,r?.preferences[p]||"/callback?client_name=FormClient"),[u]:s(u,r?.preferences[u]||"j_username"),[f]:s(f,r?.preferences[f]||"j_password"),[d]:s(d,r?.preferences[d]||"/logout")};return b(e),a(e)};export{E as a,o as b,a as c,W as d,re as e,te as f,ne as g,oe as h,se as i};
2
+ //# sourceMappingURL=chunk-FBCZEJSD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_overArg.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getPrototype.js","../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isPlainObject.js","../src/redux/preferences/preferencesReducer.ts","../src/redux/preferences/preferencesActions.ts"],"sourcesContent":["/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","import { createAction, createReducer } from \"@reduxjs/toolkit\";\n\nimport type { Theme } from \"../../theme/types\";\nimport type { PreferenceValue } from \"./types\";\n\nexport type PreferencesState = Record<string, PreferenceValue> & {\n theme?: Theme;\n};\n\nexport const setPreference = createAction(\n \"SET_PREFERENCE\",\n (propertyName: string, propertyValue: PreferenceValue) => {\n return {\n payload: {\n key: propertyName,\n value: propertyValue,\n },\n };\n },\n);\n\nexport const setPreferences = createAction(\n \"SET_PREFERENCES\",\n (preferences: Record<string, PreferenceValue>) => {\n return {\n payload: {\n ...preferences,\n },\n };\n },\n);\n\nconst initialState = {};\n\nexport const preferencesReducer = createReducer<PreferencesState>(\n initialState,\n (builder) => {\n builder\n .addCase(setPreference, (state, action) => {\n const { key, value } = action.payload;\n state[key] = value;\n })\n .addCase(setPreferences, (state, action) => {\n for (const key of Object.keys(action.payload)) {\n state[key] = action.payload[key];\n }\n });\n },\n);\n","import isPlainObject from \"lodash/isPlainObject\";\n\nimport {\n LOGIN_PASSWORD_SETTING,\n LOGIN_PATH_SETTING,\n LOGIN_TYPE,\n LOGIN_USERNAME_SETTING,\n LOGOUT_PATH_SETTING,\n} from \"@beinformed/ui/constants\";\nimport { JsonParseException } from \"@beinformed/ui/exceptions\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INCLUDE_TIME_OFFSET,\n setSetting,\n setSettings,\n} from \"@beinformed/ui/settings\";\n\nimport { setPreference, setPreferences } from \"./preferencesReducer\";\n\nimport type { RootState } from \"../store\";\nimport type { PreferenceValue } from \"./types\";\n\nconst getServerPreferenceValue = (\n preferenceName: string,\n defaultValue: PreferenceValue,\n type?: string,\n) => {\n let value;\n if (typeof preferencesProvider !== \"undefined\") {\n value = preferencesProvider.getPreferenceByName(preferenceName);\n }\n\n if (!value) {\n value = defaultValue;\n }\n\n if (typeof value === \"string\" && type !== \"string\" && value.includes(\",\")) {\n value = value.split(\",\").map((val) => val.trim());\n }\n\n return value as PreferenceValue;\n};\n\nexport const setServerPreference = (\n propertyName: string,\n defaultValue: PreferenceValue,\n type?: string,\n) => {\n const value = getServerPreferenceValue(propertyName, defaultValue, type);\n return setPreference(propertyName, value);\n};\n\nexport const setThemePreference = (configTheme: string) => {\n let themeData;\n\n try {\n themeData = configTheme ? JSON.parse(configTheme) : null;\n } catch (error) {\n throw new JsonParseException(`Theme file contains invalid JSON: ${error}`);\n }\n\n if (themeData && isPlainObject(themeData)) {\n setSettings(themeData.settings);\n }\n\n return setPreference(\"theme\", themeData);\n};\n\n/**\n * Make modular-ui-content-in-data preference available client side\n */\nexport const setAllContentInDataSetting = (state?: RootState) => {\n let allContentInDataSetting = false;\n\n if (\n typeof preferencesProvider !== \"undefined\" &&\n typeof preferencesProvider.getModularUIContentInData !== \"undefined\"\n ) {\n allContentInDataSetting = preferencesProvider.getModularUIContentInData();\n } else if (typeof state !== \"undefined\") {\n allContentInDataSetting = state.preferences[\n ALL_CONTENT_IN_DATA_SETTING\n ] as boolean;\n }\n\n setSetting(ALL_CONTENT_IN_DATA_SETTING, !!allContentInDataSetting);\n return setPreference(ALL_CONTENT_IN_DATA_SETTING, allContentInDataSetting);\n};\n\n/**\n * Retrieve settings for date time conversion\n */\nexport const setDateTimeSettings = (state?: RootState) => {\n let isIncludeTimeOffsetInDateTimes = false;\n if (\n typeof preferencesProvider !== \"undefined\" &&\n typeof preferencesProvider.isIncludeTimeOffsetInDateTimes !== \"undefined\"\n ) {\n isIncludeTimeOffsetInDateTimes =\n preferencesProvider.isIncludeTimeOffsetInDateTimes();\n } else if (typeof state !== \"undefined\") {\n isIncludeTimeOffsetInDateTimes = state.preferences[\n INCLUDE_TIME_OFFSET\n ] as boolean;\n }\n\n setSetting(INCLUDE_TIME_OFFSET, !!isIncludeTimeOffsetInDateTimes);\n return setPreference(INCLUDE_TIME_OFFSET, isIncludeTimeOffsetInDateTimes);\n};\n\n/**\n * Retrieves login settings from runtime preferences and sets them as setting in the preference reducer\n */\nexport const setLoginPreferences = (state?: RootState) => {\n const loginSettings = {\n [LOGIN_TYPE]: getServerPreferenceValue(\n LOGIN_TYPE,\n state?.preferences[LOGIN_TYPE] || \"\",\n ) as string,\n [LOGIN_PATH_SETTING]: getServerPreferenceValue(\n LOGIN_PATH_SETTING,\n state?.preferences[LOGIN_PATH_SETTING] ||\n `/callback?client_name=FormClient`,\n ) as string,\n [LOGIN_USERNAME_SETTING]: getServerPreferenceValue(\n LOGIN_USERNAME_SETTING,\n state?.preferences[LOGIN_USERNAME_SETTING] || \"j_username\",\n ) as string,\n [LOGIN_PASSWORD_SETTING]: getServerPreferenceValue(\n LOGIN_PASSWORD_SETTING,\n state?.preferences[LOGIN_PASSWORD_SETTING] || \"j_password\",\n ) as string,\n [LOGOUT_PATH_SETTING]: getServerPreferenceValue(\n LOGOUT_PATH_SETTING,\n state?.preferences[LOGOUT_PATH_SETTING] || `/logout`,\n ) as string,\n };\n\n setSettings(loginSettings);\n return setPreferences(loginSettings);\n};\n"],"mappings":"+HAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,cAQA,SAASC,EAAQC,EAAMC,EAAW,CAChC,OAAO,SAASC,EAAK,CACnB,OAAOF,EAAKC,EAAUC,CAAG,CAAC,CAC5B,CACF,CAEAJ,EAAO,QAAUC,ICdjB,IAAAI,EAAAC,EAAA,CAAAC,EAAAC,IAAA,kBAAIC,EAAU,IAGVC,EAAeD,EAAQ,OAAO,eAAgB,MAAM,EAExDD,EAAO,QAAUE,ICLjB,IAAAC,EAAAC,EAAA,CAAAC,EAAAC,IAAA,kBAAIC,EAAa,IACbC,EAAe,IACfC,EAAe,IAGfC,EAAY,kBAGZC,EAAY,SAAS,UACrBC,EAAc,OAAO,UAGrBC,EAAeF,EAAU,SAGzBG,EAAiBF,EAAY,eAG7BG,EAAmBF,EAAa,KAAK,MAAM,EA8B/C,SAASG,EAAcC,EAAO,CAC5B,GAAI,CAACR,EAAaQ,CAAK,GAAKV,EAAWU,CAAK,GAAKP,EAC/C,MAAO,GAET,IAAIQ,EAAQV,EAAaS,CAAK,EAC9B,GAAIC,IAAU,KACZ,MAAO,GAET,IAAIC,EAAOL,EAAe,KAAKI,EAAO,aAAa,GAAKA,EAAM,YAC9D,OAAO,OAAOC,GAAQ,YAAcA,aAAgBA,GAClDN,EAAa,KAAKM,CAAI,GAAKJ,CAC/B,CAEAT,EAAO,QAAUU,IC7DjB,OAAS,gBAAAI,EAAc,iBAAAC,MAAqB,mBASrC,IAAMC,EAAgBF,EAC3B,iBACA,CAACG,EAAsBC,KACd,CACL,QAAS,CACP,IAAKD,EACL,MAAOC,CACT,CACF,EAEJ,EAEaC,EAAiBL,EAC5B,kBACCM,IACQ,CACL,QAAS,CACP,GAAGA,CACL,CACF,EAEJ,EAEMC,EAAe,CAAC,EAETC,EAAqBP,EAChCM,EACCE,GAAY,CACXA,EACG,QAAQP,EAAe,CAACQ,EAAOC,IAAW,CACzC,GAAM,CAAE,IAAAC,EAAK,MAAAC,CAAM,EAAIF,EAAO,QAC9BD,EAAME,CAAG,EAAIC,CACf,CAAC,EACA,QAAQR,EAAgB,CAACK,EAAOC,IAAW,CAC1C,QAAWC,KAAO,OAAO,KAAKD,EAAO,OAAO,EAC1CD,EAAME,CAAG,EAAID,EAAO,QAAQC,CAAG,CAEnC,CAAC,CACL,CACF,EChDA,IAAAE,EAA0B,SAE1B,OACE,0BAAAC,EACA,sBAAAC,EACA,cAAAC,EACA,0BAAAC,EACA,uBAAAC,MACK,2BACP,OAAS,sBAAAC,MAA0B,4BACnC,OACE,+BAAAC,EACA,uBAAAC,EACA,cAAAC,EACA,eAAAC,MACK,0BAOP,IAAMC,EAA2B,CAC/BC,EACAC,EACAC,IACG,CACH,IAAIC,EACJ,OAAI,OAAO,oBAAwB,MACjCA,EAAQ,oBAAoB,oBAAoBH,CAAc,GAG3DG,IACHA,EAAQF,GAGN,OAAOE,GAAU,UAAYD,IAAS,UAAYC,EAAM,SAAS,GAAG,IACtEA,EAAQA,EAAM,MAAM,GAAG,EAAE,IAAKC,GAAQA,EAAI,KAAK,CAAC,GAG3CD,CACT,EAEaE,GAAsB,CACjCC,EACAL,EACAC,IACG,CACH,IAAMC,EAAQJ,EAAyBO,EAAcL,EAAcC,CAAI,EACvE,OAAOK,EAAcD,EAAcH,CAAK,CAC1C,EAEaK,GAAsBC,GAAwB,CACzD,IAAIC,EAEJ,GAAI,CACFA,EAAYD,EAAc,KAAK,MAAMA,CAAW,EAAI,IACtD,OAASE,EAAO,CACd,MAAM,IAAIC,EAAmB,qCAAqCD,CAAK,EAAE,CAC3E,CAEA,OAAID,MAAa,EAAAG,SAAcH,CAAS,GACtCI,EAAYJ,EAAU,QAAQ,EAGzBH,EAAc,QAASG,CAAS,CACzC,EAKaK,GAA8BC,GAAsB,CAC/D,IAAIC,EAA0B,GAE9B,OACE,OAAO,oBAAwB,KAC/B,OAAO,oBAAoB,0BAA8B,IAEzDA,EAA0B,oBAAoB,0BAA0B,EAC/D,OAAOD,EAAU,MAC1BC,EAA0BD,EAAM,YAC9BE,CACF,GAGFC,EAAWD,EAA6B,CAAC,CAACD,CAAuB,EAC1DV,EAAcW,EAA6BD,CAAuB,CAC3E,EAKaG,GAAuBJ,GAAsB,CACxD,IAAIK,EAAiC,GACrC,OACE,OAAO,oBAAwB,KAC/B,OAAO,oBAAoB,+BAAmC,IAE9DA,EACE,oBAAoB,+BAA+B,EAC5C,OAAOL,EAAU,MAC1BK,EAAiCL,EAAM,YACrCM,CACF,GAGFH,EAAWG,EAAqB,CAAC,CAACD,CAA8B,EACzDd,EAAce,EAAqBD,CAA8B,CAC1E,EAKaE,GAAuBP,GAAsB,CACxD,IAAMQ,EAAgB,CACpB,CAACC,CAAU,EAAG1B,EACZ0B,EACAT,GAAO,YAAYS,CAAU,GAAK,EACpC,EACA,CAACC,CAAkB,EAAG3B,EACpB2B,EACAV,GAAO,YAAYU,CAAkB,GACnC,kCACJ,EACA,CAACC,CAAsB,EAAG5B,EACxB4B,EACAX,GAAO,YAAYW,CAAsB,GAAK,YAChD,EACA,CAACC,CAAsB,EAAG7B,EACxB6B,EACAZ,GAAO,YAAYY,CAAsB,GAAK,YAChD,EACA,CAACC,CAAmB,EAAG9B,EACrB8B,EACAb,GAAO,YAAYa,CAAmB,GAAK,SAC7C,CACF,EAEA,OAAAf,EAAYU,CAAa,EAClBM,EAAeN,CAAa,CACrC","names":["require_overArg","__commonJSMin","exports","module","overArg","func","transform","arg","require_getPrototype","__commonJSMin","exports","module","overArg","getPrototype","require_isPlainObject","__commonJSMin","exports","module","baseGetTag","getPrototype","isObjectLike","objectTag","funcProto","objectProto","funcToString","hasOwnProperty","objectCtorString","isPlainObject","value","proto","Ctor","createAction","createReducer","setPreference","propertyName","propertyValue","setPreferences","preferences","initialState","preferencesReducer","builder","state","action","key","value","import_isPlainObject","LOGIN_PASSWORD_SETTING","LOGIN_PATH_SETTING","LOGIN_TYPE","LOGIN_USERNAME_SETTING","LOGOUT_PATH_SETTING","JsonParseException","ALL_CONTENT_IN_DATA_SETTING","INCLUDE_TIME_OFFSET","setSetting","setSettings","getServerPreferenceValue","preferenceName","defaultValue","type","value","val","setServerPreference","propertyName","setPreference","setThemePreference","configTheme","themeData","error","JsonParseException","isPlainObject","setSettings","setAllContentInDataSetting","state","allContentInDataSetting","ALL_CONTENT_IN_DATA_SETTING","setSetting","setDateTimeSettings","isIncludeTimeOffsetInDateTimes","INCLUDE_TIME_OFFSET","setLoginPreferences","loginSettings","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","setPreferences"]}
@@ -1,2 +1,2 @@
1
- import{a as D}from"./chunk-A4USB53Q.js";import{a as g}from"./chunk-K3DTH6XN.js";import{i}from"./chunk-6KRECIRI.js";import{a as d,b as f}from"./chunk-FW4363Y4.js";var a=d((I,l)=>{"use strict";var y=D(),P=1/0;function b(t){var n=t==null?0:t.length;return n?y(t,P):[]}l.exports=b});var u=f(a(),1),c=f(g(),1);import{setSettings as S}from"@beinformed/ui/settings";var h=t=>{let n=Object.keys(t).map(e=>`\\b${e}\\b`).join("|"),o=new RegExp(`\\$(${n})`,"g");return Object.entries(t).forEach(([e,r])=>{e!=="settings"&&typeof r=="string"&&(t[e]=r.replace(o,(m,p)=>{let s=t[p];return typeof s=="string"?s:m}))}),t},v=(t,...n)=>{let o=t?.settings??{},e={settings:{}};for(let r of n)if(typeof r=="function")e=r(h(e));else if((0,c.default)(r)){let m=e.settings??{};e={...e,...r,...t},"settings"in r&&typeof r.settings=="object"&&(e.settings={...m,...r.settings,...o})}return h(e)},T=(t,...n)=>{let o=(0,u.default)(n).filter(r=>r!=null),e=v(t,...o);return e?.settings&&S(e.settings),e};import{ThemeProvider as R}from"styled-components";import{jsx as x}from"react/jsx-runtime";var N=({theme:t,children:n})=>{let o=i(r=>r.preferences.theme),e=T(o,t);return x(R,{theme:e,children:n})};N.displayName="BI.ThemeProvider";export{T as a,N as b};
2
- //# sourceMappingURL=chunk-DI7VM62A.js.map
1
+ import{a as D}from"./chunk-TDYPCNQI.js";import{a as g}from"./chunk-FBCZEJSD.js";import{i}from"./chunk-HTR32BUX.js";import{a as d,b as f}from"./chunk-FW4363Y4.js";var a=d((I,l)=>{"use strict";var y=D(),P=1/0;function b(t){var n=t==null?0:t.length;return n?y(t,P):[]}l.exports=b});var u=f(a(),1),c=f(g(),1);import{setSettings as S}from"@beinformed/ui/settings";var h=t=>{let n=Object.keys(t).map(e=>`\\b${e}\\b`).join("|"),o=new RegExp(`\\$(${n})`,"g");return Object.entries(t).forEach(([e,r])=>{e!=="settings"&&typeof r=="string"&&(t[e]=r.replace(o,(m,p)=>{let s=t[p];return typeof s=="string"?s:m}))}),t},v=(t,...n)=>{let o=t?.settings??{},e={settings:{}};for(let r of n)if(typeof r=="function")e=r(h(e));else if((0,c.default)(r)){let m=e.settings??{};e={...e,...r,...t},"settings"in r&&typeof r.settings=="object"&&(e.settings={...m,...r.settings,...o})}return h(e)},T=(t,...n)=>{let o=(0,u.default)(n).filter(r=>r!=null),e=v(t,...o);return e?.settings&&S(e.settings),e};import{ThemeProvider as R}from"styled-components";import{jsx as x}from"react/jsx-runtime";var N=({theme:t,children:n})=>{let o=i(r=>r.preferences.theme),e=T(o,t);return x(R,{theme:e,children:n})};N.displayName="BI.ThemeProvider";export{T as a,N as b};
2
+ //# sourceMappingURL=chunk-GD4NSZBN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/flattenDeep.js","../src/theme/createTheme.ts","../src/theme/ThemeProvider.tsx"],"sourcesContent":["var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","import flattenDeep from \"lodash/flattenDeep\";\nimport isPlainObject from \"lodash/isPlainObject\";\n\nimport { setSettings } from \"@beinformed/ui/settings\";\n\nimport type { DefaultTheme } from \"styled-components\";\n\nconst replacePlaceholders = (inputTheme: DefaultTheme): DefaultTheme => {\n const possibleKeys = Object.keys(inputTheme)\n .map((key) => `\\\\b${key}\\\\b`)\n .join(\"|\");\n\n const re = new RegExp(`\\\\$(${possibleKeys})`, \"g\");\n Object.entries(inputTheme).forEach(([key, value]) => {\n if (key !== \"settings\" && typeof value === \"string\") {\n inputTheme[key] = value.replace(re, (match, capture) => {\n const replacement = inputTheme[capture];\n return typeof replacement === \"string\" ? replacement : match;\n });\n }\n });\n\n return inputTheme;\n};\n\nconst generateTheme = (\n storedTheme: DefaultTheme | null | undefined,\n ...themeElements: (DefaultTheme | ((theme: DefaultTheme) => DefaultTheme))[]\n): DefaultTheme => {\n const storedSettings = storedTheme?.settings ?? {};\n\n let generatedTheme: DefaultTheme = { settings: {} };\n\n for (const element of themeElements) {\n if (typeof element === \"function\") {\n generatedTheme = element(replacePlaceholders(generatedTheme));\n } else if (isPlainObject(element)) {\n const generatedSettings = generatedTheme.settings ?? {};\n\n // Type assertion is less critical here if DefaultTheme is well-defined\n generatedTheme = {\n ...generatedTheme,\n ...(element as DefaultTheme),\n ...(storedTheme as DefaultTheme),\n };\n\n if (\"settings\" in element && typeof element.settings === \"object\") {\n generatedTheme.settings = {\n ...generatedSettings,\n ...(element.settings as Record<string, string>), // Adjusted to Record<string, string> based on your DefaultTheme\n ...storedSettings,\n };\n }\n }\n }\n\n return replacePlaceholders(generatedTheme);\n};\n\n/**\n * Create a theme from multiple theme configuration objects.\n * Properties are overwritten by iterating the configuration objects from left to right.\n *\n * The first argument represents a stored theme part, this is optional. The stored theme part will overwrite every part in the collection of theme parts.\n * Thus a stored configuration is leading as it can be configured by a modeller through the repository.\n *\n * Placeholders can be used, they are replaced before calling a function theme part or at the end of the theme creation.\n *\n * Both objects and function can be used, where a function receives the previous objects as input arguments.\n * For example using the method createTheme(ThemeObject, ThemeObject2, ThemeFunction, ThemeFunction2), will be handled as:\n *\n * ThemeFunction2(ThemeFunction1({ ...ThemeObject, ...ThemeObject2 }))\n *\n * @example\n * Example where the primary color of the default theme is overwritten with a primary color of the custom theme,\n * but the button bg still uses the yiq function of the default theme:\n *\n * const DefaultTheme = {\n * PRIMARY_COLOR: \"#0000ff\",\n * SECONDARY_COLOR: \"#00ff00\",\n * BUTTON_COLOR: \"$PRIMARY_COLOR\"\n * }\n *\n * const createDefaultTheme = (input) => ({\n * ...input,\n * BUTTON_BG: getContrastYIQ(input.BUTTON_COLOR)\n * })\n *\n * const CustomTheme = {\n * PRIMARY_COLOR: \"#ff0000\"\n * }\n *\n * createTheme(null, DefaultTheme, CustomTheme, createDefaultTheme);\n *\n * // Result:\n * {\n * PRIMARY_COLOR: \"#ff0000\",\n * BUTTON_COLOR: \"#ff0000\",\n * BUTTON_BG: \"#fff\",\n * SECONDARY_COLOR: \"#00ff00\",\n * }\n */\nexport const createTheme = (\n storedTheme: DefaultTheme | null | undefined,\n ...themeConfigs: (\n | DefaultTheme\n | (DefaultTheme | ((theme: DefaultTheme) => DefaultTheme))[]\n | ((theme: DefaultTheme) => DefaultTheme)\n | undefined\n )[]\n): DefaultTheme => {\n const flattenConfig = flattenDeep<\n | DefaultTheme\n | DefaultTheme[]\n | ((theme: DefaultTheme) => DefaultTheme)\n | undefined\n >(themeConfigs).filter((el) => el != null);\n\n const customTheme = generateTheme(storedTheme, ...flattenConfig);\n\n if (customTheme?.settings) {\n setSettings(customTheme.settings);\n }\n\n return customTheme;\n};\n","import { ThemeProvider as SCThemeProvider } from \"styled-components\";\n\nimport { useBEISelector } from \"../redux/hooks\";\n\nimport { createTheme } from \"./createTheme\";\n\nimport type { ReactNode } from \"react\";\nimport type { RootState } from \"../redux/store\";\nimport type { Theme } from \"./types\";\n\nexport interface Props {\n theme?: Theme | Theme[];\n children: ReactNode;\n}\n\nexport const ThemeProvider = ({ theme, children }: Props): ReactNode => {\n const storedTheme = useBEISelector<RootState, Theme | undefined>(\n (state) => state.preferences.theme,\n );\n const finalTheme = createTheme(storedTheme, theme);\n\n return <SCThemeProvider theme={finalTheme}>{children}</SCThemeProvider>;\n};\nThemeProvider.displayName = \"BI.ThemeProvider\";\n"],"mappings":"kKAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,kBAAIC,EAAc,IAGdC,EAAW,IAgBf,SAASC,EAAYC,EAAO,CAC1B,IAAIC,EAASD,GAAS,KAAO,EAAIA,EAAM,OACvC,OAAOC,EAASJ,EAAYG,EAAOF,CAAQ,EAAI,CAAC,CAClD,CAEAF,EAAO,QAAUG,ICxBjB,IAAAG,EAAwB,SACxBC,EAA0B,SAE1B,OAAS,eAAAC,MAAmB,0BAI5B,IAAMC,EAAuBC,GAA2C,CACtE,IAAMC,EAAe,OAAO,KAAKD,CAAU,EACxC,IAAKE,GAAQ,MAAMA,CAAG,KAAK,EAC3B,KAAK,GAAG,EAELC,EAAK,IAAI,OAAO,OAAOF,CAAY,IAAK,GAAG,EACjD,cAAO,QAAQD,CAAU,EAAE,QAAQ,CAAC,CAACE,EAAKE,CAAK,IAAM,CAC/CF,IAAQ,YAAc,OAAOE,GAAU,WACzCJ,EAAWE,CAAG,EAAIE,EAAM,QAAQD,EAAI,CAACE,EAAOC,IAAY,CACtD,IAAMC,EAAcP,EAAWM,CAAO,EACtC,OAAO,OAAOC,GAAgB,SAAWA,EAAcF,CACzD,CAAC,EAEL,CAAC,EAEML,CACT,EAEMQ,EAAgB,CACpBC,KACGC,IACc,CACjB,IAAMC,EAAiBF,GAAa,UAAY,CAAC,EAE7CG,EAA+B,CAAE,SAAU,CAAC,CAAE,EAElD,QAAWC,KAAWH,EACpB,GAAI,OAAOG,GAAY,WACrBD,EAAiBC,EAAQd,EAAoBa,CAAc,CAAC,aACnD,EAAAE,SAAcD,CAAO,EAAG,CACjC,IAAME,EAAoBH,EAAe,UAAY,CAAC,EAGtDA,EAAiB,CACf,GAAGA,EACH,GAAIC,EACJ,GAAIJ,CACN,EAEI,aAAcI,GAAW,OAAOA,EAAQ,UAAa,WACvDD,EAAe,SAAW,CACxB,GAAGG,EACH,GAAIF,EAAQ,SACZ,GAAGF,CACL,EAEJ,CAGF,OAAOZ,EAAoBa,CAAc,CAC3C,EA6CaI,EAAc,CACzBP,KACGQ,IAMc,CACjB,IAAMC,KAAgB,EAAAC,SAKpBF,CAAY,EAAE,OAAQG,GAAOA,GAAM,IAAI,EAEnCC,EAAcb,EAAcC,EAAa,GAAGS,CAAa,EAE/D,OAAIG,GAAa,UACfvB,EAAYuB,EAAY,QAAQ,EAG3BA,CACT,EC7HA,OAAS,iBAAiBC,MAAuB,oBAqBxC,cAAAC,MAAA,oBANF,IAAMC,EAAgB,CAAC,CAAE,MAAAC,EAAO,SAAAC,CAAS,IAAwB,CACtE,IAAMC,EAAcC,EACjBC,GAAUA,EAAM,YAAY,KAC/B,EACMC,EAAaC,EAAYJ,EAAaF,CAAK,EAEjD,OAAOF,EAACS,EAAA,CAAgB,MAAOF,EAAa,SAAAJ,EAAS,CACvD,EACAF,EAAc,YAAc","names":["require_flattenDeep","__commonJSMin","exports","module","baseFlatten","INFINITY","flattenDeep","array","length","import_flattenDeep","import_isPlainObject","setSettings","replacePlaceholders","inputTheme","possibleKeys","key","re","value","match","capture","replacement","generateTheme","storedTheme","themeElements","storedSettings","generatedTheme","element","isPlainObject","generatedSettings","createTheme","themeConfigs","flattenConfig","flattenDeep","el","customTheme","SCThemeProvider","jsx","ThemeProvider","theme","children","storedTheme","useBEISelector","state","finalTheme","createTheme","SCThemeProvider"]}
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-FW4363Y4.js";var C=a((ra,b)=>{"use strict";var Xe=typeof global=="object"&&global&&global.Object===Object&&global;b.exports=Xe});var v=a((aa,S)=>{"use strict";var Qe=C(),We=typeof self=="object"&&self&&self.Object===Object&&self,Ye=Qe||We||Function("return this")();S.exports=Ye});var d=a((oa,O)=>{"use strict";var Ze=v(),ke=Ze.Symbol;O.exports=ke});var w=a((ia,T)=>{"use strict";var j=d(),m=Object.prototype,et=m.hasOwnProperty,tt=m.toString,p=j?j.toStringTag:void 0;function rt(e){var t=et.call(e,p),r=e[p];try{e[p]=void 0;var o=!0}catch{}var u=tt.call(e);return o&&(t?e[p]=r:delete e[p]),u}T.exports=rt});var I=a((na,D)=>{"use strict";var at=Object.prototype,ot=at.toString;function it(e){return ot.call(e)}D.exports=it});var H=a((sa,z)=>{"use strict";var P=d(),nt=w(),st=I(),ut="[object Null]",ct="[object Undefined]",E=P?P.toStringTag:void 0;function pt(e){return e==null?e===void 0?ct:ut:E&&E in Object(e)?nt(e):st(e)}z.exports=pt});var _=a((ua,M)=>{"use strict";function ht(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}M.exports=ht});var F=a((ca,N)=>{"use strict";var lt=H(),ft=_(),vt="[object AsyncFunction]",dt="[object Function]",_t="[object GeneratorFunction]",gt="[object Proxy]";function xt(e){if(!ft(e))return!1;var t=lt(e);return t==dt||t==_t||t==vt||t==gt}N.exports=xt});var R=a((pa,G)=>{"use strict";var yt=v(),qt=yt["__core-js_shared__"];G.exports=qt});var A=a((ha,$)=>{"use strict";var g=R(),B=(function(){var e=/[^.]+$/.exec(g&&g.keys&&g.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function bt(e){return!!B&&B in e}$.exports=bt});var K=a((la,U)=>{"use strict";var Ct=Function.prototype,St=Ct.toString;function Ot(e){if(e!=null){try{return St.call(e)}catch{}try{return e+""}catch{}}return""}U.exports=Ot});var L=a((fa,J)=>{"use strict";var jt=F(),mt=A(),Tt=_(),wt=K(),Dt=/[\\^$.*+?()[\]{}|]/g,It=/^\[object .+?Constructor\]$/,Pt=Function.prototype,Et=Object.prototype,zt=Pt.toString,Ht=Et.hasOwnProperty,Mt=RegExp("^"+zt.call(Ht).replace(Dt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Nt(e){if(!Tt(e)||mt(e))return!1;var t=jt(e)?Mt:It;return t.test(wt(e))}J.exports=Nt});var X=a((va,V)=>{"use strict";function Ft(e,t){return e?.[t]}V.exports=Ft});var x=a((da,Q)=>{"use strict";var Gt=L(),Rt=X();function Bt(e,t){var r=Rt(e,t);return Gt(r)?r:void 0}Q.exports=Bt});var h=a((_a,W)=>{"use strict";var $t=x(),At=$t(Object,"create");W.exports=At});var k=a((ga,Z)=>{"use strict";var Y=h();function Ut(){this.__data__=Y?Y(null):{},this.size=0}Z.exports=Ut});var te=a((xa,ee)=>{"use strict";function Kt(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}ee.exports=Kt});var ae=a((ya,re)=>{"use strict";var Jt=h(),Lt="__lodash_hash_undefined__",Vt=Object.prototype,Xt=Vt.hasOwnProperty;function Qt(e){var t=this.__data__;if(Jt){var r=t[e];return r===Lt?void 0:r}return Xt.call(t,e)?t[e]:void 0}re.exports=Qt});var ie=a((qa,oe)=>{"use strict";var Wt=h(),Yt=Object.prototype,Zt=Yt.hasOwnProperty;function kt(e){var t=this.__data__;return Wt?t[e]!==void 0:Zt.call(t,e)}oe.exports=kt});var se=a((ba,ne)=>{"use strict";var er=h(),tr="__lodash_hash_undefined__";function rr(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=er&&t===void 0?tr:t,this}ne.exports=rr});var ce=a((Ca,ue)=>{"use strict";var ar=k(),or=te(),ir=ae(),nr=ie(),sr=se();function i(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}i.prototype.clear=ar;i.prototype.delete=or;i.prototype.get=ir;i.prototype.has=nr;i.prototype.set=sr;ue.exports=i});var he=a((Sa,pe)=>{"use strict";function ur(){this.__data__=[],this.size=0}pe.exports=ur});var fe=a((Oa,le)=>{"use strict";function cr(e,t){return e===t||e!==e&&t!==t}le.exports=cr});var l=a((ja,ve)=>{"use strict";var pr=fe();function hr(e,t){for(var r=e.length;r--;)if(pr(e[r][0],t))return r;return-1}ve.exports=hr});var _e=a((ma,de)=>{"use strict";var lr=l(),fr=Array.prototype,vr=fr.splice;function dr(e){var t=this.__data__,r=lr(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():vr.call(t,r,1),--this.size,!0}de.exports=dr});var xe=a((Ta,ge)=>{"use strict";var _r=l();function gr(e){var t=this.__data__,r=_r(t,e);return r<0?void 0:t[r][1]}ge.exports=gr});var qe=a((wa,ye)=>{"use strict";var xr=l();function yr(e){return xr(this.__data__,e)>-1}ye.exports=yr});var Ce=a((Da,be)=>{"use strict";var qr=l();function br(e,t){var r=this.__data__,o=qr(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}be.exports=br});var Oe=a((Ia,Se)=>{"use strict";var Cr=he(),Sr=_e(),Or=xe(),jr=qe(),mr=Ce();function n(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}n.prototype.clear=Cr;n.prototype.delete=Sr;n.prototype.get=Or;n.prototype.has=jr;n.prototype.set=mr;Se.exports=n});var me=a((Pa,je)=>{"use strict";var Tr=x(),wr=v(),Dr=Tr(wr,"Map");je.exports=Dr});var De=a((Ea,we)=>{"use strict";var Te=ce(),Ir=Oe(),Pr=me();function Er(){this.size=0,this.__data__={hash:new Te,map:new(Pr||Ir),string:new Te}}we.exports=Er});var Pe=a((za,Ie)=>{"use strict";function zr(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}Ie.exports=zr});var f=a((Ha,Ee)=>{"use strict";var Hr=Pe();function Mr(e,t){var r=e.__data__;return Hr(t)?r[typeof t=="string"?"string":"hash"]:r.map}Ee.exports=Mr});var He=a((Ma,ze)=>{"use strict";var Nr=f();function Fr(e){var t=Nr(this,e).delete(e);return this.size-=t?1:0,t}ze.exports=Fr});var Ne=a((Na,Me)=>{"use strict";var Gr=f();function Rr(e){return Gr(this,e).get(e)}Me.exports=Rr});var Ge=a((Fa,Fe)=>{"use strict";var Br=f();function $r(e){return Br(this,e).has(e)}Fe.exports=$r});var Be=a((Ga,Re)=>{"use strict";var Ar=f();function Ur(e,t){var r=Ar(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}Re.exports=Ur});var Ae=a((Ra,$e)=>{"use strict";var Kr=De(),Jr=He(),Lr=Ne(),Vr=Ge(),Xr=Be();function s(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}s.prototype.clear=Kr;s.prototype.delete=Jr;s.prototype.get=Lr;s.prototype.has=Vr;s.prototype.set=Xr;$e.exports=s});var Wr=a((Ba,Ke)=>{"use strict";var Ue=Ae(),Qr="Expected a function";function y(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Qr);var r=function(){var o=arguments,u=t?t.apply(this,o):o[0],c=r.cache;if(c.has(u))return c.get(u);var q=e.apply(this,o);return r.cache=c.set(u,q)||c,q};return r.cache=new(y.Cache||Ue),r}y.Cache=Ue;Ke.exports=y});import{useDispatch as Je,useSelector as Le,useStore as Ve}from"react-redux";var Zr=Je.withTypes(),kr=Le.withTypes(),ea=Ve.withTypes();export{v as a,d as b,H as c,_ as d,x as e,fe as f,Wr as g,Zr as h,kr as i,ea as j};
2
+ //# sourceMappingURL=chunk-HTR32BUX.js.map