@owp/core 2.2.6 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/_virtual/index5.js +5 -2
  2. package/dist/_virtual/index5.js.map +1 -1
  3. package/dist/_virtual/index6.js +2 -5
  4. package/dist/_virtual/index6.js.map +1 -1
  5. package/dist/_virtual/index7.js +2 -2
  6. package/dist/components/OwpDialog/OwpDialog.js +30 -32
  7. package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
  8. package/dist/components/OwpLayout/OwpLayout.js +29 -30
  9. package/dist/components/OwpLayout/OwpLayout.js.map +1 -1
  10. package/dist/components/OwpMrtTable/OwpMrtTable.js +393 -255
  11. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  12. package/dist/components/OwpScrollbars/OwpScrollbars.js +16 -17
  13. package/dist/components/OwpScrollbars/OwpScrollbars.js.map +1 -1
  14. package/dist/components/OwpStyleProvider/OwpStyleProvider.js +28 -29
  15. package/dist/components/OwpStyleProvider/OwpStyleProvider.js.map +1 -1
  16. package/dist/components/OwpTable/OwpDataTable.js +45 -45
  17. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  18. package/dist/components/OwpTable/OwpTable.js +6 -6
  19. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  20. package/dist/components/OwpTable/OwpVerticalTable.js +55 -53
  21. package/dist/components/OwpTable/OwpVerticalTable.js.map +1 -1
  22. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +80 -74
  23. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  24. package/dist/constants/storageKeys.js +1 -0
  25. package/dist/constants/storageKeys.js.map +1 -1
  26. package/dist/contexts/OwpCoreProvider.js +22 -36
  27. package/dist/contexts/OwpCoreProvider.js.map +1 -1
  28. package/dist/contexts/OwpStoreProvider.js +9 -9
  29. package/dist/contexts/OwpStoreProvider.js.map +1 -1
  30. package/dist/hooks/useCurrentUserSeq.js +11 -0
  31. package/dist/hooks/useCurrentUserSeq.js.map +1 -0
  32. package/dist/hooks/useNavbar.js +24 -0
  33. package/dist/hooks/useNavbar.js.map +1 -0
  34. package/dist/hooks/useOwpSettings.js +21 -0
  35. package/dist/hooks/useOwpSettings.js.map +1 -0
  36. package/dist/hooks.js +78 -62
  37. package/dist/hooks.js.map +1 -1
  38. package/dist/index.js +58 -59
  39. package/dist/layout/Layout.js +28 -29
  40. package/dist/layout/Layout.js.map +1 -1
  41. package/dist/layout/components/layouts/FooterLayout.js +15 -16
  42. package/dist/layout/components/layouts/FooterLayout.js.map +1 -1
  43. package/dist/layout/components/layouts/NavbarToggleFabLayout.js +21 -18
  44. package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
  45. package/dist/layout/components/layouts/NavbarWrapperLayout.js +20 -21
  46. package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
  47. package/dist/layout/components/navbar/NavbarPinToggleButton.js +10 -11
  48. package/dist/layout/components/navbar/NavbarPinToggleButton.js.map +1 -1
  49. package/dist/layout/components/navbar/NavbarToggleButton.js +31 -32
  50. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  51. package/dist/layout/components/navbar/style/NavbarStyle.js +36 -37
  52. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  53. package/dist/layout/components/navbar/style/NavbarStyleContent.js +29 -30
  54. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  55. package/dist/layout/components/navigation/Navigation.js +18 -22
  56. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  57. package/dist/layout/components/toggles/NavigationSearchToggle.js +55 -60
  58. package/dist/layout/components/toggles/NavigationSearchToggle.js.map +1 -1
  59. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +44 -49
  60. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  61. package/dist/layout/components/toolbar/ToolbarLayout.js +26 -27
  62. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  63. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  64. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  65. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  66. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  67. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  68. package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
  69. package/dist/owp-app.css +1 -1
  70. package/dist/store/atoms/navbarAtoms.js +84 -0
  71. package/dist/store/atoms/navbarAtoms.js.map +1 -0
  72. package/dist/store/atoms/owpSettingsAtoms.js +140 -0
  73. package/dist/store/atoms/owpSettingsAtoms.js.map +1 -0
  74. package/dist/store/atoms/owpStore.js +29 -0
  75. package/dist/store/atoms/owpStore.js.map +1 -0
  76. package/dist/store.js +44 -39
  77. package/dist/store.js.map +1 -1
  78. package/dist/types/components/OwpDialog/OwpDialog.d.ts +1 -9
  79. package/dist/types/components/OwpMrtTable/OwpMrtTable.d.ts +9 -0
  80. package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +1 -1
  81. package/dist/types/components/OwpTable/OwpTable.d.ts +1 -1
  82. package/dist/types/components/OwpTable/OwpVerticalTable.d.ts +3 -1
  83. package/dist/types/components/OwpTabs/OwpTab.d.ts +1 -1
  84. package/dist/types/components/OwpTabs/OwpTabs.d.ts +1 -1
  85. package/dist/types/constants/storageKeys.d.ts +1 -0
  86. package/dist/types/contexts/OwpCoreProvider.d.ts +2 -2
  87. package/dist/types/contexts/OwpStoreProvider.d.ts +4 -4
  88. package/dist/types/hooks/index.d.ts +3 -1
  89. package/dist/types/hooks/useCurrentUserSeq.d.ts +8 -0
  90. package/dist/types/hooks/useNavbar.d.ts +19 -0
  91. package/dist/types/hooks/useOwpSettings.d.ts +79 -0
  92. package/dist/types/layout/components/navigation/Navigation.d.ts +6 -2
  93. package/dist/types/layout/components/toggles/NavigationSearchToggle.d.ts +5 -2
  94. package/dist/types/layout/components/toggles/NavigationShortcutsToggle.d.ts +5 -2
  95. package/dist/types/store/atoms/index.d.ts +3 -0
  96. package/dist/types/store/atoms/internal/types.d.ts +29 -0
  97. package/dist/types/store/atoms/navbarAtoms.d.ts +48 -0
  98. package/dist/types/store/atoms/owpSettingsAtoms.d.ts +89 -0
  99. package/dist/types/store/atoms/owpStore.d.ts +13 -0
  100. package/dist/types/store/index.d.ts +1 -3
  101. package/dist/types/utils/treeGridExportExcelUtil.d.ts +0 -4
  102. package/dist/types/utils/treeGridUtil.d.ts +0 -59
  103. package/dist/utils/treeGridExportExcelUtil.js +57 -58
  104. package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
  105. package/dist/utils/treeGridUtil.js +69 -83
  106. package/dist/utils/treeGridUtil.js.map +1 -1
  107. package/dist/utils.js +71 -86
  108. package/package.json +2 -6
  109. package/dist/hooks/useAppStore.js +0 -8
  110. package/dist/hooks/useAppStore.js.map +0 -1
  111. package/dist/store/generateReducersFromSlices.js +0 -18
  112. package/dist/store/generateReducersFromSlices.js.map +0 -1
  113. package/dist/store/lazyLoadedSlices.js +0 -16
  114. package/dist/store/lazyLoadedSlices.js.map +0 -1
  115. package/dist/store/middleware.js +0 -9
  116. package/dist/store/middleware.js.map +0 -1
  117. package/dist/store/navbarSlice.js +0 -71
  118. package/dist/store/navbarSlice.js.map +0 -1
  119. package/dist/store/navigationSlice.js +0 -46
  120. package/dist/store/navigationSlice.js.map +0 -1
  121. package/dist/store/owpSettingsSlice.js +0 -195
  122. package/dist/store/owpSettingsSlice.js.map +0 -1
  123. package/dist/store/store.js +0 -17
  124. package/dist/store/store.js.map +0 -1
  125. package/dist/store/withSlices.js +0 -27
  126. package/dist/store/withSlices.js.map +0 -1
  127. package/dist/types/hooks/useAppStore.d.ts +0 -7
  128. package/dist/types/store/generateReducersFromSlices.d.ts +0 -6
  129. package/dist/types/store/lazyLoadedSlices.d.ts +0 -9
  130. package/dist/types/store/middleware.d.ts +0 -17
  131. package/dist/types/store/navbarSlice.d.ts +0 -22
  132. package/dist/types/store/navigationSlice.d.ts +0 -93
  133. package/dist/types/store/owpSettingsSlice.d.ts +0 -112
  134. package/dist/types/store/store.d.ts +0 -13
  135. package/dist/types/store/withSlices.d.ts +0 -11
@@ -1,5 +1,8 @@
1
- var e = { exports: {} };
1
+ import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
+ import { __require as o } from "../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js";
3
+ var p = /* @__PURE__ */ o();
4
+ const s = /* @__PURE__ */ r(p);
2
5
  export {
3
- e as __module
6
+ s as default
4
7
  };
5
8
  //# sourceMappingURL=index5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,8 +1,5 @@
1
- import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as o } from "../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js";
3
- var p = /* @__PURE__ */ o();
4
- const s = /* @__PURE__ */ r(p);
1
+ var p = { exports: {} };
5
2
  export {
6
- s as default
3
+ p as __module
7
4
  };
8
5
  //# sourceMappingURL=index6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +1,5 @@
1
- var p = { exports: {} };
1
+ var e = { exports: {} };
2
2
  export {
3
- p as __module
3
+ e as __module
4
4
  };
5
5
  //# sourceMappingURL=index7.js.map
@@ -1,53 +1,53 @@
1
1
  var v = Object.defineProperty;
2
2
  var c = (i, e) => v(i, "name", { value: e, configurable: !0 });
3
3
  import { jsxs as l, jsx as r } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
- import { useOwpTranslation as O } from "../../hooks/useOwpTranslation.js";
5
- import { DialogContent as j, DialogActions as K, Dialog as N, DialogTitle as b, Box as A, Button as m } from "@mui/material";
6
- import { forwardRef as R } from "react";
7
- const x = R(
4
+ import { useOwpTranslation as s } from "../../hooks/useOwpTranslation.js";
5
+ import { DialogContent as O, DialogActions as j, Dialog as K, DialogTitle as N, Box as b, Button as m } from "@mui/material";
6
+ import { forwardRef as A } from "react";
7
+ const R = A(
8
8
  ({
9
9
  title: i,
10
10
  children: e,
11
- canCancel: D = !0,
11
+ canCancel: x = !0,
12
12
  canConfirm: a = !0,
13
- confirmText: w,
14
- cancelText: g,
15
- onConfirm: o,
16
- onCancel: f,
13
+ confirmText: D,
14
+ cancelText: h,
15
+ onConfirm: f,
16
+ onCancel: o,
17
17
  onClose: t,
18
18
  useSubmit: n,
19
- actions: p,
20
- contentProps: h,
19
+ actions: u,
20
+ contentProps: w,
21
21
  ...y
22
- }, T) => {
23
- const { t: u } = O(), B = w ?? u("Button.저장"), k = g ?? u(a ? "Button.취소" : "Button.닫기");
22
+ }, g) => {
23
+ const { t: d } = s(), T = D ?? d("Button.저장"), B = h ?? d(a ? "Button.취소" : "Button.닫기");
24
24
  return /* @__PURE__ */ l(
25
- N,
25
+ K,
26
26
  {
27
- ref: T,
27
+ ref: g,
28
28
  fullWidth: !0,
29
29
  component: n ? "form" : void 0,
30
- onClose: /* @__PURE__ */ c((s, d) => {
31
- d !== "backdropClick" && (t == null || t(s, d));
30
+ onClose: /* @__PURE__ */ c((k, p) => {
31
+ p !== "backdropClick" && (t == null || t(k, p));
32
32
  }, "onClose"),
33
33
  ...y,
34
34
  children: [
35
- i && /* @__PURE__ */ r(b, { children: i }),
36
- /* @__PURE__ */ r(j, { dividers: !0, ...h, children: e }),
37
- /* @__PURE__ */ l(K, { children: [
38
- p && /* @__PURE__ */ r(A, { className: "flex w-full items-start", children: p }),
39
- D && /* @__PURE__ */ r(
35
+ i && /* @__PURE__ */ r(N, { children: i }),
36
+ /* @__PURE__ */ r(O, { dividers: !0, ...w, children: e }),
37
+ /* @__PURE__ */ l(j, { children: [
38
+ u && /* @__PURE__ */ r(b, { className: "flex w-full items-start", children: u }),
39
+ x && /* @__PURE__ */ r(
40
40
  m,
41
41
  {
42
42
  variant: "outlined",
43
43
  onClick: /* @__PURE__ */ c(() => {
44
- if (typeof f == "function") {
45
- f();
44
+ if (typeof o == "function") {
45
+ o();
46
46
  return;
47
47
  }
48
48
  t == null || t({}, "escapeKeyDown");
49
49
  }, "onClick"),
50
- children: k
50
+ children: B
51
51
  }
52
52
  ),
53
53
  a && /* @__PURE__ */ r(
@@ -58,14 +58,14 @@ const x = R(
58
58
  type: n ? "submit" : "button",
59
59
  onClick: /* @__PURE__ */ c(() => {
60
60
  if (!n) {
61
- if (typeof o == "function") {
62
- o();
61
+ if (typeof f == "function") {
62
+ f();
63
63
  return;
64
64
  }
65
65
  t == null || t({}, "escapeKeyDown");
66
66
  }
67
67
  }, "onClick"),
68
- children: B
68
+ children: T
69
69
  }
70
70
  )
71
71
  ] })
@@ -74,10 +74,8 @@ const x = R(
74
74
  );
75
75
  }
76
76
  );
77
- x.displayName = "OwpDialog";
78
- const G = x;
77
+ R.displayName = "OwpDialog";
79
78
  export {
80
- G as OwpCommonDialog,
81
- x as OwpDialog
79
+ R as OwpDialog
82
80
  };
83
81
  //# sourceMappingURL=OwpDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OwpDialog.js","sources":["../../../src/components/OwpDialog/OwpDialog.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentProps,\n DialogProps,\n DialogTitle,\n} from '@mui/material';\nimport { forwardRef, ReactNode } from 'react';\n\nexport interface OwpDialogProps extends Omit<DialogProps, 'title'> {\n title?: ReactNode;\n children?: ReactNode;\n canConfirm?: boolean;\n canCancel?: boolean;\n confirmText?: string;\n cancelText?: string;\n useSubmit?: boolean;\n actions?: ReactNode;\n contentProps?: DialogContentProps;\n onConfirm?: () => void;\n onCancel?: () => void;\n}\n\n/**\n * OwpDialog 컴포넌트\n * @param title 제목\n * @param children 하위 콘텐츠\n * @param canCancel canCancel 값\n * @param canConfirm canConfirm 값\n * @param onConfirm onConfirm 핸들러\n * @param onCancel onCancel 핸들러\n */\nconst OwpDialog = forwardRef<HTMLDivElement, OwpDialogProps>(\n (\n {\n title,\n children,\n canCancel = true,\n canConfirm = true,\n confirmText: confirmTextProp,\n cancelText: cancelTextProp,\n onConfirm,\n onCancel,\n onClose,\n useSubmit,\n actions,\n contentProps,\n ...dialogProps\n },\n ref,\n ) => {\n const { t } = useOwpTranslation();\n const confirmText = confirmTextProp ?? t('Button.저장');\n const cancelText = cancelTextProp ?? t(canConfirm ? 'Button.취소' : 'Button.닫기');\n\n return (\n <Dialog\n ref={ref}\n fullWidth\n component={useSubmit ? 'form' : undefined}\n onClose={(event, reason) => {\n if (reason === 'backdropClick') {\n return;\n }\n\n onClose?.(event, reason);\n }}\n {...dialogProps}\n >\n {title && <DialogTitle>{title}</DialogTitle>}\n <DialogContent dividers {...contentProps}>\n {children}\n </DialogContent>\n <DialogActions>\n {actions && <Box className=\"flex w-full items-start\">{actions}</Box>}\n {canCancel && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (typeof onCancel === 'function') {\n onCancel();\n return;\n }\n\n onClose?.({}, 'escapeKeyDown');\n }}\n >\n {cancelText}\n </Button>\n )}\n {canConfirm && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n type={useSubmit ? 'submit' : 'button'}\n onClick={() => {\n if (useSubmit) {\n return;\n }\n\n if (typeof onConfirm === 'function') {\n onConfirm();\n return;\n }\n\n onClose?.({}, 'escapeKeyDown');\n }}\n >\n {confirmText}\n </Button>\n )}\n </DialogActions>\n </Dialog>\n );\n },\n);\n\nOwpDialog.displayName = 'OwpDialog';\n\n/**\n * @deprecated Use OwpDialogProps instead.\n */\nexport type OwpCommonDialogProps = OwpDialogProps;\n\n/**\n * @deprecated Use OwpDialog instead.\n */\nconst OwpCommonDialog = OwpDialog;\n\nexport { OwpCommonDialog, OwpDialog };\n"],"names":["OwpDialog","forwardRef","title","children","canCancel","canConfirm","confirmTextProp","cancelTextProp","onConfirm","onCancel","onClose","useSubmit","actions","contentProps","dialogProps","ref","t","useOwpTranslation","confirmText","cancelText","jsxs","Dialog","__name","event","reason","jsx","DialogTitle","DialogContent","DialogActions","Box","Button","OwpCommonDialog"],"mappings":";;;;;;AAoCA,MAAMA,IAAYC;AAAA,EAChB,CACE;AAAA,IACE,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,YAAAC,IAAa;AAAA,IACb,aAAaC;AAAA,IACb,YAAYC;AAAA,IACZ,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAcZ,KAAmBU,EAAE,WAAW,GAC9CG,IAAaZ,KAAkBS,EAAEX,IAAa,cAAc,WAAW;AAE7E,WACE,gBAAAe;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,WAAS;AAAA,QACT,WAAWJ,IAAY,SAAS;AAAA,QAChC,SAAS,gBAAAW,EAAA,CAACC,GAAOC,MAAW;AAC1B,UAAIA,MAAW,oBAIfd,KAAA,QAAAA,EAAUa,GAAOC;AAAA,QACnB,GANS;AAAA,QAOR,GAAGV;AAAA,QAEH,UAAA;AAAA,UAAAZ,KAAS,gBAAAuB,EAACC,KAAa,UAAAxB,EAAA,CAAM;AAAA,4BAC7ByB,GAAA,EAAc,UAAQ,IAAE,GAAGd,GACzB,UAAAV,GACH;AAAA,4BACCyB,GAAA,EACE,UAAA;AAAA,YAAAhB,KAAW,gBAAAa,EAACI,GAAA,EAAI,WAAU,2BAA2B,UAAAjB,GAAQ;AAAA,YAC7DR,KACC,gBAAAqB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,SAAS,gBAAAR,EAAA,MAAM;AACb,sBAAI,OAAOb,KAAa,YAAY;AAClC,oBAAAA,EAAA;AACA;AAAA,kBACF;AAEA,kBAAAC,KAAA,QAAAA,EAAU,CAAA,GAAI;AAAA,gBAChB,GAPS;AAAA,gBASR,UAAAS;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJd,KACC,gBAAAoB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,MAAMnB,IAAY,WAAW;AAAA,gBAC7B,SAAS,gBAAAW,EAAA,MAAM;AACb,sBAAI,CAAAX,GAIJ;AAAA,wBAAI,OAAOH,KAAc,YAAY;AACnC,sBAAAA,EAAA;AACA;AAAA,oBACF;AAEA,oBAAAE,KAAA,QAAAA,EAAU,CAAA,GAAI;AAAA;AAAA,gBAChB,GAXS;AAAA,gBAaR,UAAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACH,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAlB,EAAU,cAAc;AAUxB,MAAM+B,IAAkB/B;"}
1
+ {"version":3,"file":"OwpDialog.js","sources":["../../../src/components/OwpDialog/OwpDialog.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentProps,\n DialogProps,\n DialogTitle,\n} from '@mui/material';\nimport { forwardRef, ReactNode } from 'react';\n\nexport interface OwpDialogProps extends Omit<DialogProps, 'title'> {\n title?: ReactNode;\n children?: ReactNode;\n canConfirm?: boolean;\n canCancel?: boolean;\n confirmText?: string;\n cancelText?: string;\n useSubmit?: boolean;\n actions?: ReactNode;\n contentProps?: DialogContentProps;\n onConfirm?: () => void;\n onCancel?: () => void;\n}\n\n/**\n * OwpDialog 컴포넌트\n * @param title 제목\n * @param children 하위 콘텐츠\n * @param canCancel canCancel 값\n * @param canConfirm canConfirm 값\n * @param onConfirm onConfirm 핸들러\n * @param onCancel onCancel 핸들러\n */\nconst OwpDialog = forwardRef<HTMLDivElement, OwpDialogProps>(\n (\n {\n title,\n children,\n canCancel = true,\n canConfirm = true,\n confirmText: confirmTextProp,\n cancelText: cancelTextProp,\n onConfirm,\n onCancel,\n onClose,\n useSubmit,\n actions,\n contentProps,\n ...dialogProps\n },\n ref,\n ) => {\n const { t } = useOwpTranslation();\n const confirmText = confirmTextProp ?? t('Button.저장');\n const cancelText = cancelTextProp ?? t(canConfirm ? 'Button.취소' : 'Button.닫기');\n\n return (\n <Dialog\n ref={ref}\n fullWidth\n component={useSubmit ? 'form' : undefined}\n onClose={(event, reason) => {\n if (reason === 'backdropClick') {\n return;\n }\n\n onClose?.(event, reason);\n }}\n {...dialogProps}\n >\n {title && <DialogTitle>{title}</DialogTitle>}\n <DialogContent dividers {...contentProps}>\n {children}\n </DialogContent>\n <DialogActions>\n {actions && <Box className=\"flex w-full items-start\">{actions}</Box>}\n {canCancel && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (typeof onCancel === 'function') {\n onCancel();\n return;\n }\n\n onClose?.({}, 'escapeKeyDown');\n }}\n >\n {cancelText}\n </Button>\n )}\n {canConfirm && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n type={useSubmit ? 'submit' : 'button'}\n onClick={() => {\n if (useSubmit) {\n return;\n }\n\n if (typeof onConfirm === 'function') {\n onConfirm();\n return;\n }\n\n onClose?.({}, 'escapeKeyDown');\n }}\n >\n {confirmText}\n </Button>\n )}\n </DialogActions>\n </Dialog>\n );\n },\n);\n\nOwpDialog.displayName = 'OwpDialog';\nexport { OwpDialog };\n"],"names":["OwpDialog","forwardRef","title","children","canCancel","canConfirm","confirmTextProp","cancelTextProp","onConfirm","onCancel","onClose","useSubmit","actions","contentProps","dialogProps","ref","t","useOwpTranslation","confirmText","cancelText","jsxs","Dialog","__name","event","reason","jsx","DialogTitle","DialogContent","DialogActions","Box","Button"],"mappings":";;;;;;AAoCA,MAAMA,IAAYC;AAAA,EAChB,CACE;AAAA,IACE,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,YAAAC,IAAa;AAAA,IACb,aAAaC;AAAA,IACb,YAAYC;AAAA,IACZ,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAcZ,KAAmBU,EAAE,WAAW,GAC9CG,IAAaZ,KAAkBS,EAAEX,IAAa,cAAc,WAAW;AAE7E,WACE,gBAAAe;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,WAAS;AAAA,QACT,WAAWJ,IAAY,SAAS;AAAA,QAChC,SAAS,gBAAAW,EAAA,CAACC,GAAOC,MAAW;AAC1B,UAAIA,MAAW,oBAIfd,KAAA,QAAAA,EAAUa,GAAOC;AAAA,QACnB,GANS;AAAA,QAOR,GAAGV;AAAA,QAEH,UAAA;AAAA,UAAAZ,KAAS,gBAAAuB,EAACC,KAAa,UAAAxB,EAAA,CAAM;AAAA,4BAC7ByB,GAAA,EAAc,UAAQ,IAAE,GAAGd,GACzB,UAAAV,GACH;AAAA,4BACCyB,GAAA,EACE,UAAA;AAAA,YAAAhB,KAAW,gBAAAa,EAACI,GAAA,EAAI,WAAU,2BAA2B,UAAAjB,GAAQ;AAAA,YAC7DR,KACC,gBAAAqB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,SAAS,gBAAAR,EAAA,MAAM;AACb,sBAAI,OAAOb,KAAa,YAAY;AAClC,oBAAAA,EAAA;AACA;AAAA,kBACF;AAEA,kBAAAC,KAAA,QAAAA,EAAU,CAAA,GAAI;AAAA,gBAChB,GAPS;AAAA,gBASR,UAAAS;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJd,KACC,gBAAAoB;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,MAAMnB,IAAY,WAAW;AAAA,gBAC7B,SAAS,gBAAAW,EAAA,MAAM;AACb,sBAAI,CAAAX,GAIJ;AAAA,wBAAI,OAAOH,KAAc,YAAY;AACnC,sBAAAA,EAAA;AACA;AAAA,oBACF;AAEA,oBAAAE,KAAA,QAAAA,EAAU,CAAA,GAAI;AAAA;AAAA,gBAChB,GAXS;AAAA,gBAaR,UAAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACH,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAlB,EAAU,cAAc;"}
@@ -1,48 +1,47 @@
1
- var v = Object.defineProperty;
2
- var g = (s, o) => v(s, "name", { value: o, configurable: !0 });
3
- import { jsx as I } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
1
+ var w = Object.defineProperty;
2
+ var g = (s, o) => w(s, "name", { value: o, configurable: !0 });
3
+ import { jsx as L } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
4
  import { themeLayouts as R } from "../../layout/themeLayouts.js";
5
5
  import { useOwpAppContext as z } from "../../contexts/OwpAppProvider.js";
6
- import { generateSettings as C } from "../../configs/defaultConfig.js";
7
- import { useOwpTranslation as P } from "../../hooks/useOwpTranslation.js";
8
- import { useAppDispatch as x, useAppSelector as L } from "../../hooks/useAppStore.js";
9
- import { selectOwpCurrentSettings as A, selectOwpDefaultSettings as j, setSettings as B } from "../../store/owpSettingsSlice.js";
10
- import { useRef as D, useMemo as f, useEffect as h } from "react";
6
+ import { generateSettings as O } from "../../configs/defaultConfig.js";
7
+ import { useOwpTranslation as C } from "../../hooks/useOwpTranslation.js";
8
+ import { useSetSettings as P, useGetCurrentSettings as x, useGetDefaultSettings as j } from "../../hooks/useOwpSettings.js";
9
+ import { useRef as B, useMemo as f, useEffect as S } from "react";
11
10
  import { useLocation as E, matchRoutes as F } from "react-router-dom";
12
- import { isEqual as M } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
13
- import { merge as T } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
14
- import { OwpLoading as b } from "../OwpLoading/OwpLoading.js";
15
- function $(s) {
11
+ import { isEqual as G } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
12
+ import { merge as M } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
13
+ import { OwpLoading as T } from "../OwpLoading/OwpLoading.js";
14
+ function Y(s) {
16
15
  var y;
17
- const { routesConfig: o } = z(), { i18n: r } = P(), { layouts: l = R, children: u } = s, a = x(), t = L(A), i = L(j), m = (y = t == null ? void 0 : t.layout) == null ? void 0 : y.style, e = E(), { pathname: p } = e, S = D(!1), d = f(
18
- () => k(o, p, "settings", !0),
19
- [p, o]
20
- ), c = f(() => d === void 0 ? i : C(i, d), [i, d]), n = f(
21
- () => t === c || M(c, t),
16
+ const { routesConfig: o } = z(), { i18n: r } = C(), { layouts: m = R, children: u } = s, a = P(), t = x(), n = j(), l = (y = t == null ? void 0 : t.layout) == null ? void 0 : y.style, e = E(), { pathname: d } = e, h = B(!1), p = f(
17
+ () => b(o, d, "settings", !0),
18
+ [d, o]
19
+ ), c = f(() => p === void 0 ? n : O(n, p), [n, p]), i = f(
20
+ () => t === c || G(c, t),
22
21
  [c, t]
23
22
  );
24
- return h(() => {
25
- n || a(B(c));
26
- }, [c, a, n]), h(() => {
23
+ return S(() => {
24
+ i || a(c);
25
+ }, [c, i, a]), S(() => {
27
26
  window.scrollTo(0, 0);
28
- }, [p]), h(() => {
29
- n && r.isInitialized && (S.current = !0);
30
- }, [r.isInitialized, n]), f(() => !r.isInitialized || !n && !S.current ? /* @__PURE__ */ I(b, {}) : Object.entries(l).map(([w, O]) => w === m ? /* @__PURE__ */ I(O, { children: u }, w) : null), [u, r.isInitialized, n, m, l]);
27
+ }, [d]), S(() => {
28
+ i && r.isInitialized && (h.current = !0);
29
+ }, [r.isInitialized, i]), f(() => !r.isInitialized || !i && !h.current ? /* @__PURE__ */ L(T, {}) : Object.entries(m).map(([I, v]) => I === l ? /* @__PURE__ */ L(v, { children: u }, I) : null), [u, r.isInitialized, i, l, m]);
31
30
  }
32
- g($, "OwpLayout");
33
- function k(s, o, r, l = !0) {
31
+ g(Y, "OwpLayout");
32
+ function b(s, o, r, m = !0) {
34
33
  const u = F(s, o);
35
34
  if (!u)
36
35
  return;
37
36
  let a = !1;
38
- const t = u.reduce((i, m) => {
39
- const e = m.route[r];
40
- return e === void 0 ? i : (a = !0, !l || e === null ? e : T(i ?? {}, e));
37
+ const t = u.reduce((n, l) => {
38
+ const e = l.route[r];
39
+ return e === void 0 ? n : (a = !0, !m || e === null ? e : M(n ?? {}, e));
41
40
  }, void 0);
42
41
  return a ? t : void 0;
43
42
  }
44
- g(k, "getRouteParamUtil");
43
+ g(b, "getRouteParamUtil");
45
44
  export {
46
- $ as OwpLayout
45
+ Y as OwpLayout
47
46
  };
48
47
  //# sourceMappingURL=OwpLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OwpLayout.js","sources":["../../../src/components/OwpLayout/OwpLayout.tsx"],"sourcesContent":["import { themeLayouts, themeLayoutsType } from '@/layout/themeLayouts';\nimport { useOwpAppContext } from '@/contexts/OwpAppProvider';\nimport { generateSettings } from '@/configs/defaultConfig';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useAppStore';\nimport {\n selectOwpCurrentSettings,\n selectOwpDefaultSettings,\n setSettings,\n} from '@/store/owpSettingsSlice';\nimport type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';\nimport { OwpRoutesType } from '@/utils/common/OwpUtils';\nimport { isEqual, merge } from 'es-toolkit/compat';\nimport { type ReactNode, useEffect, useMemo, useRef } from 'react';\nimport { matchRoutes, RouteMatch, RouteObject, useLocation } from 'react-router-dom';\nimport { OwpLoading } from '../OwpLoading';\n\nexport type OwpRouteObjectType = RouteObject & {\n settings?: OwpSettingsConfigType;\n auth?: string[] | [] | null | undefined;\n};\n\nexport type OwpRouteMatchType = RouteMatch & {\n route: OwpRouteObjectType;\n};\n\ntype OwpLayoutProps = {\n layouts?: themeLayoutsType;\n children?: ReactNode;\n};\n\n/**\n * OwpLayout\n * React frontend component in a React project that is used for layouting the user interface. The component\n * handles generating user interface settings related to current routes, merged with default settings, and uses\n * the new settings to generate layouts.\n */\nfunction OwpLayout(props: OwpLayoutProps) {\n const { routesConfig } = useOwpAppContext();\n const { i18n } = useOwpTranslation();\n\n const { layouts = themeLayouts, children } = props;\n const dispatch = useAppDispatch();\n const settings = useAppSelector(selectOwpCurrentSettings);\n const defaultSettings = useAppSelector(selectOwpDefaultSettings);\n\n const layoutStyle = settings?.layout?.style;\n const location = useLocation();\n const { pathname } = location;\n const hasCompletedInitialLayoutSyncRef = useRef(false);\n\n const matchedSettings = useMemo(\n () => getRouteParamUtil(routesConfig, pathname, 'settings', true),\n [pathname, routesConfig],\n );\n const currentSettings = useMemo(() => {\n if (matchedSettings === undefined) {\n return defaultSettings;\n }\n\n return generateSettings(defaultSettings, matchedSettings);\n }, [defaultSettings, matchedSettings]);\n const isSettingsSynchronized = useMemo(\n () => settings === currentSettings || isEqual(currentSettings, settings),\n [currentSettings, settings],\n );\n\n useEffect(() => {\n if (isSettingsSynchronized) {\n return;\n }\n\n dispatch(setSettings(currentSettings));\n }, [currentSettings, dispatch, isSettingsSynchronized]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n useEffect(() => {\n if (isSettingsSynchronized && i18n.isInitialized) {\n hasCompletedInitialLayoutSyncRef.current = true;\n }\n }, [i18n.isInitialized, isSettingsSynchronized]);\n\n return useMemo(() => {\n const shouldBlockForInitialLoading =\n !i18n.isInitialized ||\n (!isSettingsSynchronized && !hasCompletedInitialLayoutSyncRef.current);\n\n if (shouldBlockForInitialLoading) {\n return <OwpLoading />;\n }\n\n return Object.entries(layouts).map(([key, Layout]) => {\n if (key === layoutStyle) {\n return <Layout key={key}>{children}</Layout>;\n }\n\n return null;\n });\n }, [children, i18n.isInitialized, isSettingsSynchronized, layoutStyle, layouts]);\n}\n\nexport { OwpLayout };\n\n/**\n * Utility function to retrieve and merge or replace a specific route parameter from matched routes.\n *\n * @param pathname The current pathname\n * @param key The key of the parameter to merge or replace (e.g., 'settings', 'auth')\n * @param useMerge Whether to merge the parameter (using es-toolkit merge) or replace it\n * @returns The merged or replaced parameter data of type T\n */\nfunction getRouteParamUtil<T>(\n routes: OwpRoutesType,\n pathname: string,\n key: keyof OwpRouteObjectType,\n useMerge: boolean = true,\n): T | undefined {\n const matchedRoutes = matchRoutes(routes, pathname) as OwpRouteMatchType[] | null;\n\n if (!matchedRoutes) {\n return undefined;\n }\n\n let hasMatchedParam = false;\n\n const resolvedRouteParam = matchedRoutes.reduce<T | undefined>((acc, match) => {\n const routeParam = match.route[key] as T | undefined;\n\n if (routeParam === undefined) {\n return acc;\n }\n\n hasMatchedParam = true;\n\n if (!useMerge) {\n return routeParam;\n }\n\n if (routeParam === null) {\n return routeParam;\n }\n\n return merge(acc ?? {}, routeParam);\n }, undefined);\n\n return hasMatchedParam ? resolvedRouteParam : undefined;\n}\n"],"names":["OwpLayout","props","routesConfig","useOwpAppContext","i18n","useOwpTranslation","layouts","themeLayouts","children","dispatch","useAppDispatch","settings","useAppSelector","selectOwpCurrentSettings","defaultSettings","selectOwpDefaultSettings","layoutStyle","_a","location","useLocation","pathname","hasCompletedInitialLayoutSyncRef","useRef","matchedSettings","useMemo","getRouteParamUtil","currentSettings","generateSettings","isSettingsSynchronized","isEqual","useEffect","setSettings","OwpLoading","key","Layout","jsx","__name","routes","useMerge","matchedRoutes","matchRoutes","hasMatchedParam","resolvedRouteParam","acc","match","routeParam","merge"],"mappings":";;;;;;;;;;;;;;AAqCA,SAASA,EAAUC,GAAuB;;AACxC,QAAM,EAAE,cAAAC,EAAA,IAAiBC,EAAA,GACnB,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEX,EAAE,SAAAC,IAAUC,GAAc,UAAAC,EAAA,IAAaP,GACvCQ,IAAWC,EAAA,GACXC,IAAWC,EAAeC,CAAwB,GAClDC,IAAkBF,EAAeG,CAAwB,GAEzDC,KAAcC,IAAAN,KAAA,gBAAAA,EAAU,WAAV,gBAAAM,EAAkB,OAChCC,IAAWC,EAAA,GACX,EAAE,UAAAC,MAAaF,GACfG,IAAmCC,EAAO,EAAK,GAE/CC,IAAkBC;AAAA,IACtB,MAAMC,EAAkBvB,GAAckB,GAAU,YAAY,EAAI;AAAA,IAChE,CAACA,GAAUlB,CAAY;AAAA,EAAA,GAEnBwB,IAAkBF,EAAQ,MAC1BD,MAAoB,SACfT,IAGFa,EAAiBb,GAAiBS,CAAe,GACvD,CAACT,GAAiBS,CAAe,CAAC,GAC/BK,IAAyBJ;AAAA,IAC7B,MAAMb,MAAae,KAAmBG,EAAQH,GAAiBf,CAAQ;AAAA,IACvE,CAACe,GAAiBf,CAAQ;AAAA,EAAA;AAG5B,SAAAmB,EAAU,MAAM;AACd,IAAIF,KAIJnB,EAASsB,EAAYL,CAAe,CAAC;AAAA,EACvC,GAAG,CAACA,GAAiBjB,GAAUmB,CAAsB,CAAC,GAEtDE,EAAU,MAAM;AACd,WAAO,SAAS,GAAG,CAAC;AAAA,EACtB,GAAG,CAACV,CAAQ,CAAC,GAEbU,EAAU,MAAM;AACd,IAAIF,KAA0BxB,EAAK,kBACjCiB,EAAiC,UAAU;AAAA,EAE/C,GAAG,CAACjB,EAAK,eAAewB,CAAsB,CAAC,GAExCJ,EAAQ,MAEX,CAACpB,EAAK,iBACL,CAACwB,KAA0B,CAACP,EAAiC,4BAGtDW,GAAA,EAAW,IAGd,OAAO,QAAQ1B,CAAO,EAAE,IAAI,CAAC,CAAC2B,GAAKC,CAAM,MAC1CD,MAAQjB,IACH,gBAAAmB,EAACD,GAAA,EAAkB,UAAA1B,EAAA,GAANyB,CAAe,IAG9B,IACR,GACA,CAACzB,GAAUJ,EAAK,eAAewB,GAAwBZ,GAAaV,CAAO,CAAC;AACjF;AAjES8B,EAAApC,GAAA;AA6ET,SAASyB,EACPY,GACAjB,GACAa,GACAK,IAAoB,IACL;AACf,QAAMC,IAAgBC,EAAYH,GAAQjB,CAAQ;AAElD,MAAI,CAACmB;AACH;AAGF,MAAIE,IAAkB;AAEtB,QAAMC,IAAqBH,EAAc,OAAsB,CAACI,GAAKC,MAAU;AAC7E,UAAMC,IAAaD,EAAM,MAAMX,CAAG;AAElC,WAAIY,MAAe,SACVF,KAGTF,IAAkB,IAEd,CAACH,KAIDO,MAAe,OACVA,IAGFC,EAAMH,KAAO,CAAA,GAAIE,CAAU;AAAA,EACpC,GAAG,MAAS;AAEZ,SAAOJ,IAAkBC,IAAqB;AAChD;AAnCSN,EAAAX,GAAA;"}
1
+ {"version":3,"file":"OwpLayout.js","sources":["../../../src/components/OwpLayout/OwpLayout.tsx"],"sourcesContent":["import { themeLayouts, themeLayoutsType } from '@/layout/themeLayouts';\nimport { useOwpAppContext } from '@/contexts/OwpAppProvider';\nimport { generateSettings } from '@/configs/defaultConfig';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport {\n useGetCurrentSettings,\n useGetDefaultSettings,\n useSetSettings,\n} from '@/hooks/useOwpSettings';\nimport type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';\nimport { OwpRoutesType } from '@/utils/common/OwpUtils';\nimport { isEqual, merge } from 'es-toolkit/compat';\nimport { type ReactNode, useEffect, useMemo, useRef } from 'react';\nimport { matchRoutes, RouteMatch, RouteObject, useLocation } from 'react-router-dom';\nimport { OwpLoading } from '../OwpLoading';\n\nexport type OwpRouteObjectType = RouteObject & {\n settings?: OwpSettingsConfigType;\n auth?: string[] | [] | null | undefined;\n};\n\nexport type OwpRouteMatchType = RouteMatch & {\n route: OwpRouteObjectType;\n};\n\ntype OwpLayoutProps = {\n layouts?: themeLayoutsType;\n children?: ReactNode;\n};\n\n/**\n * OwpLayout\n * React frontend component in a React project that is used for layouting the user interface. The component\n * handles generating user interface settings related to current routes, merged with default settings, and uses\n * the new settings to generate layouts.\n */\nfunction OwpLayout(props: OwpLayoutProps) {\n const { routesConfig } = useOwpAppContext();\n const { i18n } = useOwpTranslation();\n\n const { layouts = themeLayouts, children } = props;\n const setSettings = useSetSettings();\n const settings = useGetCurrentSettings();\n const defaultSettings = useGetDefaultSettings();\n\n const layoutStyle = settings?.layout?.style;\n const location = useLocation();\n const { pathname } = location;\n const hasCompletedInitialLayoutSyncRef = useRef(false);\n\n const matchedSettings = useMemo(\n () => getRouteParamUtil(routesConfig, pathname, 'settings', true),\n [pathname, routesConfig],\n );\n const currentSettings = useMemo(() => {\n if (matchedSettings === undefined) {\n return defaultSettings;\n }\n\n return generateSettings(defaultSettings, matchedSettings);\n }, [defaultSettings, matchedSettings]);\n const isSettingsSynchronized = useMemo(\n () => settings === currentSettings || isEqual(currentSettings, settings),\n [currentSettings, settings],\n );\n\n useEffect(() => {\n if (isSettingsSynchronized) {\n return;\n }\n\n setSettings(currentSettings);\n }, [currentSettings, isSettingsSynchronized, setSettings]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n useEffect(() => {\n if (isSettingsSynchronized && i18n.isInitialized) {\n hasCompletedInitialLayoutSyncRef.current = true;\n }\n }, [i18n.isInitialized, isSettingsSynchronized]);\n\n return useMemo(() => {\n const shouldBlockForInitialLoading =\n !i18n.isInitialized ||\n (!isSettingsSynchronized && !hasCompletedInitialLayoutSyncRef.current);\n\n if (shouldBlockForInitialLoading) {\n return <OwpLoading />;\n }\n\n return Object.entries(layouts).map(([key, Layout]) => {\n if (key === layoutStyle) {\n return <Layout key={key}>{children}</Layout>;\n }\n\n return null;\n });\n }, [children, i18n.isInitialized, isSettingsSynchronized, layoutStyle, layouts]);\n}\n\nexport { OwpLayout };\n\n/**\n * Utility function to retrieve and merge or replace a specific route parameter from matched routes.\n *\n * @param pathname The current pathname\n * @param key The key of the parameter to merge or replace (e.g., 'settings', 'auth')\n * @param useMerge Whether to merge the parameter (using es-toolkit merge) or replace it\n * @returns The merged or replaced parameter data of type T\n */\nfunction getRouteParamUtil<T>(\n routes: OwpRoutesType,\n pathname: string,\n key: keyof OwpRouteObjectType,\n useMerge: boolean = true,\n): T | undefined {\n const matchedRoutes = matchRoutes(routes, pathname) as OwpRouteMatchType[] | null;\n\n if (!matchedRoutes) {\n return undefined;\n }\n\n let hasMatchedParam = false;\n\n const resolvedRouteParam = matchedRoutes.reduce<T | undefined>((acc, match) => {\n const routeParam = match.route[key] as T | undefined;\n\n if (routeParam === undefined) {\n return acc;\n }\n\n hasMatchedParam = true;\n\n if (!useMerge) {\n return routeParam;\n }\n\n if (routeParam === null) {\n return routeParam;\n }\n\n return merge(acc ?? {}, routeParam);\n }, undefined);\n\n return hasMatchedParam ? resolvedRouteParam : undefined;\n}\n"],"names":["OwpLayout","props","routesConfig","useOwpAppContext","i18n","useOwpTranslation","layouts","themeLayouts","children","setSettings","useSetSettings","settings","useGetCurrentSettings","defaultSettings","useGetDefaultSettings","layoutStyle","_a","location","useLocation","pathname","hasCompletedInitialLayoutSyncRef","useRef","matchedSettings","useMemo","getRouteParamUtil","currentSettings","generateSettings","isSettingsSynchronized","isEqual","useEffect","OwpLoading","key","Layout","jsx","__name","routes","useMerge","matchedRoutes","matchRoutes","hasMatchedParam","resolvedRouteParam","acc","match","routeParam","merge"],"mappings":";;;;;;;;;;;;;AAoCA,SAASA,EAAUC,GAAuB;;AACxC,QAAM,EAAE,cAAAC,EAAA,IAAiBC,EAAA,GACnB,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEX,EAAE,SAAAC,IAAUC,GAAc,UAAAC,EAAA,IAAaP,GACvCQ,IAAcC,EAAA,GACdC,IAAWC,EAAA,GACXC,IAAkBC,EAAA,GAElBC,KAAcC,IAAAL,KAAA,gBAAAA,EAAU,WAAV,gBAAAK,EAAkB,OAChCC,IAAWC,EAAA,GACX,EAAE,UAAAC,MAAaF,GACfG,IAAmCC,EAAO,EAAK,GAE/CC,IAAkBC;AAAA,IACtB,MAAMC,EAAkBtB,GAAciB,GAAU,YAAY,EAAI;AAAA,IAChE,CAACA,GAAUjB,CAAY;AAAA,EAAA,GAEnBuB,IAAkBF,EAAQ,MAC1BD,MAAoB,SACfT,IAGFa,EAAiBb,GAAiBS,CAAe,GACvD,CAACT,GAAiBS,CAAe,CAAC,GAC/BK,IAAyBJ;AAAA,IAC7B,MAAMZ,MAAac,KAAmBG,EAAQH,GAAiBd,CAAQ;AAAA,IACvE,CAACc,GAAiBd,CAAQ;AAAA,EAAA;AAG5B,SAAAkB,EAAU,MAAM;AACd,IAAIF,KAIJlB,EAAYgB,CAAe;AAAA,EAC7B,GAAG,CAACA,GAAiBE,GAAwBlB,CAAW,CAAC,GAEzDoB,EAAU,MAAM;AACd,WAAO,SAAS,GAAG,CAAC;AAAA,EACtB,GAAG,CAACV,CAAQ,CAAC,GAEbU,EAAU,MAAM;AACd,IAAIF,KAA0BvB,EAAK,kBACjCgB,EAAiC,UAAU;AAAA,EAE/C,GAAG,CAAChB,EAAK,eAAeuB,CAAsB,CAAC,GAExCJ,EAAQ,MAEX,CAACnB,EAAK,iBACL,CAACuB,KAA0B,CAACP,EAAiC,4BAGtDU,GAAA,EAAW,IAGd,OAAO,QAAQxB,CAAO,EAAE,IAAI,CAAC,CAACyB,GAAKC,CAAM,MAC1CD,MAAQhB,IACH,gBAAAkB,EAACD,GAAA,EAAkB,UAAAxB,EAAA,GAANuB,CAAe,IAG9B,IACR,GACA,CAACvB,GAAUJ,EAAK,eAAeuB,GAAwBZ,GAAaT,CAAO,CAAC;AACjF;AAjES4B,EAAAlC,GAAA;AA6ET,SAASwB,EACPW,GACAhB,GACAY,GACAK,IAAoB,IACL;AACf,QAAMC,IAAgBC,EAAYH,GAAQhB,CAAQ;AAElD,MAAI,CAACkB;AACH;AAGF,MAAIE,IAAkB;AAEtB,QAAMC,IAAqBH,EAAc,OAAsB,CAACI,GAAKC,MAAU;AAC7E,UAAMC,IAAaD,EAAM,MAAMX,CAAG;AAElC,WAAIY,MAAe,SACVF,KAGTF,IAAkB,IAEd,CAACH,KAIDO,MAAe,OACVA,IAGFC,EAAMH,KAAO,CAAA,GAAIE,CAAU;AAAA,EACpC,GAAG,MAAS;AAEZ,SAAOJ,IAAkBC,IAAqB;AAChD;AAnCSN,EAAAV,GAAA;"}