@owp/core 2.5.23 → 2.5.25

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 (155) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index15.js +2 -2
  6. package/dist/_virtual/index5.js +2 -2
  7. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +15 -13
  8. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
  9. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +21 -19
  10. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
  11. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +1 -1
  12. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
  13. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js +1 -1
  14. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
  15. package/dist/components/OwpLoading/OwpLoading.js +1 -1
  16. package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
  17. package/dist/components/OwpMrtTable/OwpMrtTable.js +1 -1
  18. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  19. package/dist/components/OwpOptionSelector/OwpOptionSelector.js +14 -12
  20. package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
  21. package/dist/components/OwpPageTitle/OwpPageTitle.js +1 -1
  22. package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
  23. package/dist/components/OwpPicker/OwpDatePicker.js +81 -82
  24. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  25. package/dist/components/OwpPicker/OwpTimePicker.js +82 -83
  26. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  27. package/dist/components/OwpPicker/OwpWeekDatePicker.js +24 -25
  28. package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
  29. package/dist/components/OwpSearchFilter/OwpSearchFilter.js +1 -1
  30. package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
  31. package/dist/components/OwpSection/OwpSection.js +1 -1
  32. package/dist/components/OwpSection/OwpSection.js.map +1 -1
  33. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +155 -157
  34. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  35. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +95 -81
  36. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
  37. package/dist/components/OwpSuspense/OwpSuspense.js +43 -43
  38. package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
  39. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +2 -2
  40. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  41. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +55 -56
  42. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
  43. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +10 -10
  44. package/dist/contexts/OwpUiProvider.js +5 -5
  45. package/dist/contexts/OwpUiProvider.js.map +1 -1
  46. package/dist/hooks/{useAccessTokenGuard.js → internal/useAccessTokenGuard.js} +2 -2
  47. package/dist/hooks/internal/useAccessTokenGuard.js.map +1 -0
  48. package/dist/hooks/{useCurrentLanguage.js → internal/useCurrentLanguage.js} +2 -2
  49. package/dist/hooks/internal/useCurrentLanguage.js.map +1 -0
  50. package/dist/hooks/internal/useHeaderWrapState.js.map +1 -0
  51. package/dist/hooks/internal/useNavbar.js +24 -0
  52. package/dist/hooks/internal/useNavbar.js.map +1 -0
  53. package/dist/hooks/{useNavigationActiveRouteRemount.js → internal/useNavigationActiveRouteRemount.js} +1 -1
  54. package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -0
  55. package/dist/hooks/{useShortcuts.js → internal/useShortcuts.js} +3 -3
  56. package/dist/hooks/internal/useShortcuts.js.map +1 -0
  57. package/dist/hooks/internal/useThemeMediaQuery.js.map +1 -0
  58. package/dist/hooks/internal/useTimeout.js.map +1 -0
  59. package/dist/hooks/useInitApp.js.map +1 -1
  60. package/dist/hooks.js +53 -81
  61. package/dist/hooks.js.map +1 -1
  62. package/dist/layout/Layout.js +1 -1
  63. package/dist/layout/Layout.js.map +1 -1
  64. package/dist/layout/components/layouts/NavbarToggleFabLayout.js +2 -2
  65. package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
  66. package/dist/layout/components/layouts/NavbarWrapperLayout.js +2 -2
  67. package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
  68. package/dist/layout/components/navbar/NavbarToggleButton.js +2 -2
  69. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  70. package/dist/layout/components/navbar/style/NavbarStyle.js +1 -1
  71. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  72. package/dist/layout/components/navbar/style/NavbarStyleContent.js +1 -1
  73. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  74. package/dist/layout/components/navigation/Navigation.js +2 -2
  75. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  76. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +1 -1
  77. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
  78. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +1 -1
  79. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
  80. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +1 -1
  81. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
  82. package/dist/layout/components/toggles/LanguageSwitcherToggle.js +1 -1
  83. package/dist/layout/components/toggles/LanguageSwitcherToggle.js.map +1 -1
  84. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
  85. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  86. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  87. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  88. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  89. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  90. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  91. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  92. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  93. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  94. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  95. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  96. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  97. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  98. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  99. package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +5 -3
  100. package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +5 -3
  101. package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +4 -1
  102. package/dist/types/components/OwpSelectorBase/types/index.d.ts +1 -1
  103. package/dist/types/components/OwpSelectorBase/types/types.d.ts +3 -0
  104. package/dist/types/hooks/index.d.ts +0 -10
  105. package/dist/types/hooks/{useNavbar.d.ts → internal/useNavbar.d.ts} +1 -1
  106. package/dist/types/utils/treeGridUtil.d.ts +0 -14
  107. package/dist/utils/{exceljsBrowser.js → internal/exceljsBrowser.js} +1 -1
  108. package/dist/utils/internal/exceljsBrowser.js.map +1 -0
  109. package/dist/utils/internal/jszipBrowser.js.map +1 -0
  110. package/dist/utils/internal/treeGridBodyRowsEvent.js.map +1 -0
  111. package/dist/utils/treeGridExportExcelUtil.js +1 -1
  112. package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
  113. package/dist/utils/treeGridUtil.js +1 -6
  114. package/dist/utils/treeGridUtil.js.map +1 -1
  115. package/dist/utils/zipUtil.js +1 -1
  116. package/dist/utils/zipUtil.js.map +1 -1
  117. package/dist/utils.js +70 -75
  118. package/package.json +1 -1
  119. package/dist/hooks/useAccessTokenGuard.js.map +0 -1
  120. package/dist/hooks/useCurrentLanguage.js.map +0 -1
  121. package/dist/hooks/useDebounce.js +0 -24
  122. package/dist/hooks/useDebounce.js.map +0 -1
  123. package/dist/hooks/useDeepCompareEffect.js +0 -38
  124. package/dist/hooks/useDeepCompareEffect.js.map +0 -1
  125. package/dist/hooks/useHeaderWrapState.js.map +0 -1
  126. package/dist/hooks/useNavbar.js +0 -24
  127. package/dist/hooks/useNavbar.js.map +0 -1
  128. package/dist/hooks/useNavigationActiveRouteRemount.js.map +0 -1
  129. package/dist/hooks/usePrevious.js +0 -14
  130. package/dist/hooks/usePrevious.js.map +0 -1
  131. package/dist/hooks/useShortcuts.js.map +0 -1
  132. package/dist/hooks/useThemeMediaQuery.js.map +0 -1
  133. package/dist/hooks/useTimeout.js.map +0 -1
  134. package/dist/types/hooks/useDebounce.d.ts +0 -7
  135. package/dist/types/hooks/useDeepCompareEffect.d.ts +0 -22
  136. package/dist/types/hooks/usePrevious.d.ts +0 -5
  137. package/dist/types/utils/dayjsBrowser.d.ts +0 -1
  138. package/dist/utils/exceljsBrowser.js.map +0 -1
  139. package/dist/utils/jszipBrowser.js.map +0 -1
  140. package/dist/utils/treeGridBodyRowsEvent.js.map +0 -1
  141. /package/dist/hooks/{useHeaderWrapState.js → internal/useHeaderWrapState.js} +0 -0
  142. /package/dist/hooks/{useThemeMediaQuery.js → internal/useThemeMediaQuery.js} +0 -0
  143. /package/dist/hooks/{useTimeout.js → internal/useTimeout.js} +0 -0
  144. /package/dist/types/hooks/{useAccessTokenGuard.d.ts → internal/useAccessTokenGuard.d.ts} +0 -0
  145. /package/dist/types/hooks/{useCurrentLanguage.d.ts → internal/useCurrentLanguage.d.ts} +0 -0
  146. /package/dist/types/hooks/{useHeaderWrapState.d.ts → internal/useHeaderWrapState.d.ts} +0 -0
  147. /package/dist/types/hooks/{useNavigationActiveRouteRemount.d.ts → internal/useNavigationActiveRouteRemount.d.ts} +0 -0
  148. /package/dist/types/hooks/{useShortcuts.d.ts → internal/useShortcuts.d.ts} +0 -0
  149. /package/dist/types/hooks/{useThemeMediaQuery.d.ts → internal/useThemeMediaQuery.d.ts} +0 -0
  150. /package/dist/types/hooks/{useTimeout.d.ts → internal/useTimeout.d.ts} +0 -0
  151. /package/dist/types/utils/{exceljsBrowser.d.ts → internal/exceljsBrowser.d.ts} +0 -0
  152. /package/dist/types/utils/{jszipBrowser.d.ts → internal/jszipBrowser.d.ts} +0 -0
  153. /package/dist/types/utils/{treeGridBodyRowsEvent.d.ts → internal/treeGridBodyRowsEvent.d.ts} +0 -0
  154. /package/dist/utils/{jszipBrowser.js → internal/jszipBrowser.js} +0 -0
  155. /package/dist/utils/{treeGridBodyRowsEvent.js → internal/treeGridBodyRowsEvent.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"NavVerticalItem.js","sources":["../../../../../../src/layout/components/navigation/vertical/types/NavVerticalItem.tsx"],"sourcesContent":["import { useNavigationActiveRouteRemount } from '@/hooks/useNavigationActiveRouteRemount';\nimport NavLinkAdapter from '@/components/OwpNavLinkAdapter';\nimport { OwpSvgIcon as SvgIcon } from '@/components/OwpSvgIcon';\nimport { ListItemButton, ListItemButtonProps } from '@mui/material';\nimport ListItemText from '@mui/material/ListItemText';\nimport { alpha, styled } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport type { MouseEvent } from 'react';\nimport { NavBadge } from '../../NavBadge';\nimport { NavItemComponentProps } from '../../NavItem';\n\ntype ListItemButtonStyleProps = ListItemButtonProps & {\n itempadding: number;\n};\n\nconst Root = styled(ListItemButton)<ListItemButtonStyleProps>(({ theme, ...props }) => ({\n minHeight: 36,\n width: '100%',\n borderRadius: '8px',\n margin: '0 0 4px 0',\n paddingRight: 16,\n paddingLeft: props.itempadding > 80 ? 80 : props.itempadding,\n paddingTop: 10,\n paddingBottom: 10,\n color: alpha(theme.palette.text.primary, 0.7),\n cursor: 'pointer',\n textDecoration: 'none!important',\n '&:hover': {\n color: theme.palette.text.primary,\n },\n '&.active': {\n color: theme.palette.secondary.main,\n backgroundColor: alpha(theme.palette.secondary.main, 0.2),\n transition: 'border-radius .15s cubic-bezier(0.4,0.0,0.2,1)',\n '& > .owp-list-item-text-primary': {\n color: 'inherit',\n },\n '& > .owp-list-item-icon': {\n color: 'inherit',\n },\n },\n '& > .owp-list-item-icon': {\n marginRight: 16,\n width: 22,\n height: 22,\n minWidth: 22,\n minHeight: 22,\n fontSize: 22,\n lineHeight: '22px',\n textAlign: 'center',\n color: 'inherit',\n },\n '& > .owp-list-item-text': {},\n}));\n\n/**\n * NavVerticalItem renders a single vertical navigation item.\n */\nfunction NavVerticalItem(props: NavItemComponentProps) {\n const { item, nestedLevel = 0, onItemClick, checkPermission } = props;\n const { remountRoute, shouldRemountRouteOnClick } = useNavigationActiveRouteRemount(\n item.url || undefined,\n );\n\n const itempadding = nestedLevel > 0 ? 38 + nestedLevel * 16 : 16;\n\n const component = item.url ? NavLinkAdapter : 'li';\n\n let itemProps = {};\n\n if (typeof component !== 'string') {\n itemProps = {\n disabled: item.disabled,\n to: item.url || '',\n end: item.end,\n role: 'button',\n };\n }\n\n if (checkPermission && !item?.hasPermission) {\n return null;\n }\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n if (shouldRemountRouteOnClick) {\n event.preventDefault();\n remountRoute();\n }\n\n onItemClick?.(item);\n };\n\n return (\n <Root\n component={component}\n className={clsx('owp-list-item', item.active && 'active')}\n onClick={handleClick}\n itempadding={itempadding}\n sx={item.sx}\n {...itemProps}\n >\n {item.icon && (\n <SvgIcon className={clsx('owp-list-item-icon shrink-0', item.iconClass)} color=\"action\">\n {item.icon}\n </SvgIcon>\n )}\n\n <ListItemText\n className=\"owp-list-item-text\"\n primary={item.title}\n secondary={item.subtitle}\n sx={{\n my: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: 0.25,\n '& .owp-list-item-text-primary': {\n fontWeight: 600,\n },\n '& .owp-list-item-text-secondary': {\n fontWeight: 500,\n },\n }}\n classes={{\n primary: 'text-lg font-medium owp-list-item-text-primary truncate',\n secondary: 'text-md font-medium owp-list-item-text-secondary leading-normal truncate',\n }}\n />\n {item.badge && <NavBadge badge={item.badge} />}\n </Root>\n );\n}\n\nexport { NavVerticalItem };\n"],"names":["Root","styled","ListItemButton","theme","props","alpha","NavVerticalItem","item","nestedLevel","onItemClick","checkPermission","remountRoute","shouldRemountRouteOnClick","useNavigationActiveRouteRemount","itempadding","component","NavLinkAdapter","itemProps","handleClick","__name","event","jsxs","clsx","jsx","SvgIcon","ListItemText","NavBadge"],"mappings":"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"}
1
+ {"version":3,"file":"NavVerticalItem.js","sources":["../../../../../../src/layout/components/navigation/vertical/types/NavVerticalItem.tsx"],"sourcesContent":["import { useNavigationActiveRouteRemount } from '@/hooks/internal/useNavigationActiveRouteRemount';\nimport NavLinkAdapter from '@/components/OwpNavLinkAdapter';\nimport { OwpSvgIcon as SvgIcon } from '@/components/OwpSvgIcon';\nimport { ListItemButton, ListItemButtonProps } from '@mui/material';\nimport ListItemText from '@mui/material/ListItemText';\nimport { alpha, styled } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport type { MouseEvent } from 'react';\nimport { NavBadge } from '../../NavBadge';\nimport { NavItemComponentProps } from '../../NavItem';\n\ntype ListItemButtonStyleProps = ListItemButtonProps & {\n itempadding: number;\n};\n\nconst Root = styled(ListItemButton)<ListItemButtonStyleProps>(({ theme, ...props }) => ({\n minHeight: 36,\n width: '100%',\n borderRadius: '8px',\n margin: '0 0 4px 0',\n paddingRight: 16,\n paddingLeft: props.itempadding > 80 ? 80 : props.itempadding,\n paddingTop: 10,\n paddingBottom: 10,\n color: alpha(theme.palette.text.primary, 0.7),\n cursor: 'pointer',\n textDecoration: 'none!important',\n '&:hover': {\n color: theme.palette.text.primary,\n },\n '&.active': {\n color: theme.palette.secondary.main,\n backgroundColor: alpha(theme.palette.secondary.main, 0.2),\n transition: 'border-radius .15s cubic-bezier(0.4,0.0,0.2,1)',\n '& > .owp-list-item-text-primary': {\n color: 'inherit',\n },\n '& > .owp-list-item-icon': {\n color: 'inherit',\n },\n },\n '& > .owp-list-item-icon': {\n marginRight: 16,\n width: 22,\n height: 22,\n minWidth: 22,\n minHeight: 22,\n fontSize: 22,\n lineHeight: '22px',\n textAlign: 'center',\n color: 'inherit',\n },\n '& > .owp-list-item-text': {},\n}));\n\n/**\n * NavVerticalItem renders a single vertical navigation item.\n */\nfunction NavVerticalItem(props: NavItemComponentProps) {\n const { item, nestedLevel = 0, onItemClick, checkPermission } = props;\n const { remountRoute, shouldRemountRouteOnClick } = useNavigationActiveRouteRemount(\n item.url || undefined,\n );\n\n const itempadding = nestedLevel > 0 ? 38 + nestedLevel * 16 : 16;\n\n const component = item.url ? NavLinkAdapter : 'li';\n\n let itemProps = {};\n\n if (typeof component !== 'string') {\n itemProps = {\n disabled: item.disabled,\n to: item.url || '',\n end: item.end,\n role: 'button',\n };\n }\n\n if (checkPermission && !item?.hasPermission) {\n return null;\n }\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n if (shouldRemountRouteOnClick) {\n event.preventDefault();\n remountRoute();\n }\n\n onItemClick?.(item);\n };\n\n return (\n <Root\n component={component}\n className={clsx('owp-list-item', item.active && 'active')}\n onClick={handleClick}\n itempadding={itempadding}\n sx={item.sx}\n {...itemProps}\n >\n {item.icon && (\n <SvgIcon className={clsx('owp-list-item-icon shrink-0', item.iconClass)} color=\"action\">\n {item.icon}\n </SvgIcon>\n )}\n\n <ListItemText\n className=\"owp-list-item-text\"\n primary={item.title}\n secondary={item.subtitle}\n sx={{\n my: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: 0.25,\n '& .owp-list-item-text-primary': {\n fontWeight: 600,\n },\n '& .owp-list-item-text-secondary': {\n fontWeight: 500,\n },\n }}\n classes={{\n primary: 'text-lg font-medium owp-list-item-text-primary truncate',\n secondary: 'text-md font-medium owp-list-item-text-secondary leading-normal truncate',\n }}\n />\n {item.badge && <NavBadge badge={item.badge} />}\n </Root>\n );\n}\n\nexport { NavVerticalItem };\n"],"names":["Root","styled","ListItemButton","theme","props","alpha","NavVerticalItem","item","nestedLevel","onItemClick","checkPermission","remountRoute","shouldRemountRouteOnClick","useNavigationActiveRouteRemount","itempadding","component","NavLinkAdapter","itemProps","handleClick","__name","event","jsxs","clsx","jsx","SvgIcon","ListItemText","NavBadge"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  var T = Object.defineProperty;
2
2
  var r = (o, t) => T(o, "name", { value: t, configurable: !0 });
3
3
  import { jsxs as g, jsx as n, Fragment 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";
4
- import { useGetCurrentLanguage as b, useSetCurrentLanguage as v, useGetLanguageList as N } from "../../../hooks/useCurrentLanguage.js";
4
+ import { useGetCurrentLanguage as b, useSetCurrentLanguage as v, useGetLanguageList as N } from "../../../hooks/internal/useCurrentLanguage.js";
5
5
  import { useOwpTranslation as w } from "../../../hooks/useOwpTranslation.js";
6
6
  import M from "@mui/material/IconButton";
7
7
  import j from "@mui/material/ListItemIcon";
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageSwitcherToggle.js","sources":["../../../../src/layout/components/toggles/LanguageSwitcherToggle.tsx"],"sourcesContent":["import {\n type CurrentLanguage,\n useGetCurrentLanguage,\n useGetLanguageList,\n useSetCurrentLanguage,\n} from '@/hooks/useCurrentLanguage';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport MenuItem from '@mui/material/MenuItem';\nimport Popover from '@mui/material/Popover';\nimport Tooltip from '@mui/material/Tooltip';\nimport clsx from 'clsx';\nimport { type MouseEvent, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { toolbarToggleSx } from './toggleStyles';\n\ntype LanguageSwitcherToggleProps = {\n canRefresh?: boolean;\n className?: string;\n};\n\ntype LanguageMarkProps = {\n language: CurrentLanguage;\n};\n\n/**\n * Language mark with image fallback.\n */\nfunction LanguageMark(props: LanguageMarkProps) {\n const { language } = props;\n const [hasImageError, setHasImageError] = useState(language.id === 'lc' || !language.flag);\n\n if (hasImageError) {\n return (\n <span className=\"flex h-20 w-20 items-center justify-center text-[11px] font-semibold uppercase leading-none\">\n {language.id}\n </span>\n );\n }\n\n return (\n <img\n className=\"h-20 w-20 object-contain\"\n src={`assets/images/flags/${language.flag}.svg`}\n alt={language.id}\n onError={() => setHasImageError(true)}\n />\n );\n}\n\n/**\n * Language switcher toggle.\n */\nfunction LanguageSwitcherToggle(props: LanguageSwitcherToggleProps) {\n const { canRefresh, className } = props;\n const [menu, setMenu] = useState<null | HTMLElement>(null);\n const currentLanguage = useGetCurrentLanguage();\n const setLanguage = useSetCurrentLanguage();\n const languageList = useGetLanguageList();\n const navigate = useNavigate();\n\n const { i18n, t } = useOwpTranslation();\n\n const langMenuClick = (event: MouseEvent<HTMLElement>) => {\n setMenu(event.currentTarget);\n };\n\n const langMenuClose = () => {\n setMenu(null);\n };\n\n function handleLanguageChange(language: CurrentLanguage) {\n if (currentLanguage.id !== language.id) {\n setLanguage(language);\n i18n.changeLanguage(language.id);\n\n if (canRefresh) {\n navigate(0);\n }\n }\n langMenuClose();\n }\n\n return (\n <>\n <Tooltip title={t('Title.언어 변경')} placement=\"bottom\">\n <IconButton\n sx={(theme) => ({\n ...toolbarToggleSx(theme),\n color: theme.palette.text.primary,\n })}\n onClick={langMenuClick}\n className={clsx(className)}\n aria-label={t('Title.언어 변경')}\n >\n <LanguageMark key={currentLanguage.id} language={currentLanguage} />\n </IconButton>\n </Tooltip>\n <Popover\n open={Boolean(menu)}\n anchorEl={menu}\n onClose={langMenuClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center',\n }}\n classes={{\n paper: 'py-8',\n }}\n >\n {languageList.map((lng) => (\n <MenuItem key={lng.id} onClick={() => handleLanguageChange(lng)}>\n <ListItemIcon className=\"min-w-36\">\n <LanguageMark language={lng} />\n </ListItemIcon>\n <ListItemText primary={lng.title} />\n </MenuItem>\n ))}\n </Popover>\n </>\n );\n}\n\nexport default LanguageSwitcherToggle;\n"],"names":["LanguageMark","props","language","hasImageError","setHasImageError","useState","jsx","__name","LanguageSwitcherToggle","canRefresh","className","menu","setMenu","currentLanguage","useGetCurrentLanguage","setLanguage","useSetCurrentLanguage","languageList","useGetLanguageList","navigate","useNavigate","i18n","t","useOwpTranslation","langMenuClick","event","langMenuClose","handleLanguageChange","jsxs","Fragment","Tooltip","IconButton","theme","toolbarToggleSx","clsx","Popover","lng","MenuItem","ListItemIcon","ListItemText"],"mappings":";;;;;;;;;;;;;;;AA8BA,SAASA,EAAaC,GAA0B;AAC9C,QAAM,EAAE,UAAAC,MAAaD,GACf,CAACE,GAAeC,CAAgB,IAAIC,EAASH,EAAS,OAAO,QAAQ,CAACA,EAAS,IAAI;AAEzF,SAAIC,IAEA,gBAAAG,EAAC,QAAA,EAAK,WAAU,+FACb,YAAS,IACZ,IAKF,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,KAAK,uBAAuBJ,EAAS,IAAI;AAAA,MACzC,KAAKA,EAAS;AAAA,MACd,SAAS,gBAAAK,EAAA,MAAMH,EAAiB,EAAI,GAA3B;AAAA,IAA2B;AAAA,EAAA;AAG1C;AApBSG,EAAAP,GAAA;AAyBT,SAASQ,EAAuBP,GAAoC;AAClE,QAAM,EAAE,YAAAQ,GAAY,WAAAC,EAAA,IAAcT,GAC5B,CAACU,GAAMC,CAAO,IAAIP,EAA6B,IAAI,GACnDQ,IAAkBC,EAAA,GAClBC,IAAcC,EAAA,GACdC,IAAeC,EAAA,GACfC,IAAWC,EAAA,GAEX,EAAE,MAAAC,GAAM,GAAAC,EAAA,IAAMC,EAAA,GAEdC,IAAgB,gBAAAjB,EAAA,CAACkB,MAAmC;AACxD,IAAAb,EAAQa,EAAM,aAAa;AAAA,EAC7B,GAFsB,kBAIhBC,IAAgB,gBAAAnB,EAAA,MAAM;AAC1B,IAAAK,EAAQ,IAAI;AAAA,EACd,GAFsB;AAItB,WAASe,EAAqBzB,GAA2B;AACvD,IAAIW,EAAgB,OAAOX,EAAS,OAClCa,EAAYb,CAAQ,GACpBmB,EAAK,eAAenB,EAAS,EAAE,GAE3BO,KACFU,EAAS,CAAC,IAGdO,EAAA;AAAA,EACF;AAVS,SAAAnB,EAAAoB,GAAA,yBAaP,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAvB,EAACwB,KAAQ,OAAOR,EAAE,aAAa,GAAG,WAAU,UAC1C,UAAA,gBAAAhB;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,IAAI,gBAAAxB,EAAA,CAACyB,OAAW;AAAA,UACd,GAAGC,EAAgBD,CAAK;AAAA,UACxB,OAAOA,EAAM,QAAQ,KAAK;AAAA,QAAA,IAFxB;AAAA,QAIJ,SAASR;AAAA,QACT,WAAWU,EAAKxB,CAAS;AAAA,QACzB,cAAYY,EAAE,aAAa;AAAA,QAE3B,UAAA,gBAAAhB,EAACN,GAAA,EAAsC,UAAUa,EAAA,GAA9BA,EAAgB,EAA+B;AAAA,MAAA;AAAA,IAAA,GAEtE;AAAA,IACA,gBAAAP;AAAA,MAAC6B;AAAA,MAAA;AAAA,QACC,MAAM,EAAQxB;AAAA,QACd,UAAUA;AAAA,QACV,SAASe;AAAA,QACT,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,iBAAiB;AAAA,UACf,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,SAAS;AAAA,UACP,OAAO;AAAA,QAAA;AAAA,QAGR,UAAAT,EAAa,IAAI,CAACmB,MACjB,gBAAAR,EAACS,KAAsB,SAAS,gBAAA9B,EAAA,MAAMoB,EAAqBS,CAAG,GAA9B,YAC9B,UAAA;AAAA,UAAA,gBAAA9B,EAACgC,KAAa,WAAU,YACtB,4BAACtC,GAAA,EAAa,UAAUoC,GAAK,EAAA,CAC/B;AAAA,UACA,gBAAA9B,EAACiC,GAAA,EAAa,SAASH,EAAI,MAAA,CAAO;AAAA,QAAA,EAAA,GAJrBA,EAAI,EAKnB,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;AAxES7B,EAAAC,GAAA;"}
1
+ {"version":3,"file":"LanguageSwitcherToggle.js","sources":["../../../../src/layout/components/toggles/LanguageSwitcherToggle.tsx"],"sourcesContent":["import {\n type CurrentLanguage,\n useGetCurrentLanguage,\n useGetLanguageList,\n useSetCurrentLanguage,\n} from '@/hooks/internal/useCurrentLanguage';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport MenuItem from '@mui/material/MenuItem';\nimport Popover from '@mui/material/Popover';\nimport Tooltip from '@mui/material/Tooltip';\nimport clsx from 'clsx';\nimport { type MouseEvent, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { toolbarToggleSx } from './toggleStyles';\n\ntype LanguageSwitcherToggleProps = {\n canRefresh?: boolean;\n className?: string;\n};\n\ntype LanguageMarkProps = {\n language: CurrentLanguage;\n};\n\n/**\n * Language mark with image fallback.\n */\nfunction LanguageMark(props: LanguageMarkProps) {\n const { language } = props;\n const [hasImageError, setHasImageError] = useState(language.id === 'lc' || !language.flag);\n\n if (hasImageError) {\n return (\n <span className=\"flex h-20 w-20 items-center justify-center text-[11px] font-semibold uppercase leading-none\">\n {language.id}\n </span>\n );\n }\n\n return (\n <img\n className=\"h-20 w-20 object-contain\"\n src={`assets/images/flags/${language.flag}.svg`}\n alt={language.id}\n onError={() => setHasImageError(true)}\n />\n );\n}\n\n/**\n * Language switcher toggle.\n */\nfunction LanguageSwitcherToggle(props: LanguageSwitcherToggleProps) {\n const { canRefresh, className } = props;\n const [menu, setMenu] = useState<null | HTMLElement>(null);\n const currentLanguage = useGetCurrentLanguage();\n const setLanguage = useSetCurrentLanguage();\n const languageList = useGetLanguageList();\n const navigate = useNavigate();\n\n const { i18n, t } = useOwpTranslation();\n\n const langMenuClick = (event: MouseEvent<HTMLElement>) => {\n setMenu(event.currentTarget);\n };\n\n const langMenuClose = () => {\n setMenu(null);\n };\n\n function handleLanguageChange(language: CurrentLanguage) {\n if (currentLanguage.id !== language.id) {\n setLanguage(language);\n i18n.changeLanguage(language.id);\n\n if (canRefresh) {\n navigate(0);\n }\n }\n langMenuClose();\n }\n\n return (\n <>\n <Tooltip title={t('Title.언어 변경')} placement=\"bottom\">\n <IconButton\n sx={(theme) => ({\n ...toolbarToggleSx(theme),\n color: theme.palette.text.primary,\n })}\n onClick={langMenuClick}\n className={clsx(className)}\n aria-label={t('Title.언어 변경')}\n >\n <LanguageMark key={currentLanguage.id} language={currentLanguage} />\n </IconButton>\n </Tooltip>\n <Popover\n open={Boolean(menu)}\n anchorEl={menu}\n onClose={langMenuClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center',\n }}\n classes={{\n paper: 'py-8',\n }}\n >\n {languageList.map((lng) => (\n <MenuItem key={lng.id} onClick={() => handleLanguageChange(lng)}>\n <ListItemIcon className=\"min-w-36\">\n <LanguageMark language={lng} />\n </ListItemIcon>\n <ListItemText primary={lng.title} />\n </MenuItem>\n ))}\n </Popover>\n </>\n );\n}\n\nexport default LanguageSwitcherToggle;\n"],"names":["LanguageMark","props","language","hasImageError","setHasImageError","useState","jsx","__name","LanguageSwitcherToggle","canRefresh","className","menu","setMenu","currentLanguage","useGetCurrentLanguage","setLanguage","useSetCurrentLanguage","languageList","useGetLanguageList","navigate","useNavigate","i18n","t","useOwpTranslation","langMenuClick","event","langMenuClose","handleLanguageChange","jsxs","Fragment","Tooltip","IconButton","theme","toolbarToggleSx","clsx","Popover","lng","MenuItem","ListItemIcon","ListItemText"],"mappings":";;;;;;;;;;;;;;;AA8BA,SAASA,EAAaC,GAA0B;AAC9C,QAAM,EAAE,UAAAC,MAAaD,GACf,CAACE,GAAeC,CAAgB,IAAIC,EAASH,EAAS,OAAO,QAAQ,CAACA,EAAS,IAAI;AAEzF,SAAIC,IAEA,gBAAAG,EAAC,QAAA,EAAK,WAAU,+FACb,YAAS,IACZ,IAKF,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,KAAK,uBAAuBJ,EAAS,IAAI;AAAA,MACzC,KAAKA,EAAS;AAAA,MACd,SAAS,gBAAAK,EAAA,MAAMH,EAAiB,EAAI,GAA3B;AAAA,IAA2B;AAAA,EAAA;AAG1C;AApBSG,EAAAP,GAAA;AAyBT,SAASQ,EAAuBP,GAAoC;AAClE,QAAM,EAAE,YAAAQ,GAAY,WAAAC,EAAA,IAAcT,GAC5B,CAACU,GAAMC,CAAO,IAAIP,EAA6B,IAAI,GACnDQ,IAAkBC,EAAA,GAClBC,IAAcC,EAAA,GACdC,IAAeC,EAAA,GACfC,IAAWC,EAAA,GAEX,EAAE,MAAAC,GAAM,GAAAC,EAAA,IAAMC,EAAA,GAEdC,IAAgB,gBAAAjB,EAAA,CAACkB,MAAmC;AACxD,IAAAb,EAAQa,EAAM,aAAa;AAAA,EAC7B,GAFsB,kBAIhBC,IAAgB,gBAAAnB,EAAA,MAAM;AAC1B,IAAAK,EAAQ,IAAI;AAAA,EACd,GAFsB;AAItB,WAASe,EAAqBzB,GAA2B;AACvD,IAAIW,EAAgB,OAAOX,EAAS,OAClCa,EAAYb,CAAQ,GACpBmB,EAAK,eAAenB,EAAS,EAAE,GAE3BO,KACFU,EAAS,CAAC,IAGdO,EAAA;AAAA,EACF;AAVS,SAAAnB,EAAAoB,GAAA,yBAaP,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAvB,EAACwB,KAAQ,OAAOR,EAAE,aAAa,GAAG,WAAU,UAC1C,UAAA,gBAAAhB;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,IAAI,gBAAAxB,EAAA,CAACyB,OAAW;AAAA,UACd,GAAGC,EAAgBD,CAAK;AAAA,UACxB,OAAOA,EAAM,QAAQ,KAAK;AAAA,QAAA,IAFxB;AAAA,QAIJ,SAASR;AAAA,QACT,WAAWU,EAAKxB,CAAS;AAAA,QACzB,cAAYY,EAAE,aAAa;AAAA,QAE3B,UAAA,gBAAAhB,EAACN,GAAA,EAAsC,UAAUa,EAAA,GAA9BA,EAAgB,EAA+B;AAAA,MAAA;AAAA,IAAA,GAEtE;AAAA,IACA,gBAAAP;AAAA,MAAC6B;AAAA,MAAA;AAAA,QACC,MAAM,EAAQxB;AAAA,QACd,UAAUA;AAAA,QACV,SAASe;AAAA,QACT,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,iBAAiB;AAAA,UACf,UAAU;AAAA,UACV,YAAY;AAAA,QAAA;AAAA,QAEd,SAAS;AAAA,UACP,OAAO;AAAA,QAAA;AAAA,QAGR,UAAAT,EAAa,IAAI,CAACmB,MACjB,gBAAAR,EAACS,KAAsB,SAAS,gBAAA9B,EAAA,MAAMoB,EAAqBS,CAAG,GAA9B,YAC9B,UAAA;AAAA,UAAA,gBAAA9B,EAACgC,KAAa,WAAU,YACtB,4BAACtC,GAAA,EAAa,UAAUoC,GAAK,EAAA,CAC/B;AAAA,UACA,gBAAA9B,EAACiC,GAAA,EAAa,SAASH,EAAI,MAAA,CAAO;AAAA,QAAA,EAAA,GAJrBA,EAAI,EAKnB,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;AAxES7B,EAAAC,GAAA;"}
@@ -3,7 +3,7 @@ var r = (s, e) => P(s, "name", { value: e, configurable: !0 });
3
3
  import { jsxs as p, jsx as t } 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 { useGetNavigationList as D } from "../../../hooks/useNavigation.js";
5
5
  import { useOwpTranslation as G } from "../../../hooks/useOwpTranslation.js";
6
- import { useSetShortcuts as A, useGetShortcuts as F } from "../../../hooks/useShortcuts.js";
6
+ import { useSetShortcuts as A, useGetShortcuts as F } from "../../../hooks/internal/useShortcuts.js";
7
7
  import { OwpNavigationHelper as H } from "../../../utils/navigationUtils.js";
8
8
  import U from "../../../node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/Clear.js";
9
9
  import M from "@mui/material/Box";
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationShortcutsToggle.js","sources":["../../../../src/layout/components/toggles/NavigationShortcutsToggle.tsx"],"sourcesContent":["import { OwpSvgIcon } from '@/components/OwpSvgIcon';\nimport { useGetNavigationList } from '@/hooks/useNavigation';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useGetShortcuts, useSetShortcuts } from '@/hooks/useShortcuts';\nimport type { OwpFlatNavItemType as FlatNavItemType } from '@/types/OwpNavigationTypes';\nimport { OwpNavigationHelper as NavigationHelper } from '@/utils/navigationUtils';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport Box from '@mui/material/Box';\nimport { amber, grey } from '@mui/material/colors';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport Input from '@mui/material/Input';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport clsx from 'clsx';\nimport { find, xor } from 'es-toolkit/compat';\nimport { type ChangeEvent, type MouseEvent, useMemo, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { toolbarToggleSx } from './toggleStyles';\n\ntype NavigationShortcutsToggleProps = {\n className?: string;\n variant?: 'horizontal' | 'vertical';\n};\n\n/**\n * Navigation shortcuts toggle.\n */\nfunction NavigationShortcutsToggle(props: NavigationShortcutsToggleProps) {\n const { variant = 'horizontal', className = '' } = props;\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const [addMenu, setAddMenu] = useState<HTMLElement | null>(null);\n const [searchText, setSearchText] = useState('');\n const navigation = useGetNavigationList();\n const setShortcuts = useSetShortcuts();\n const userShortcuts = useGetShortcuts();\n const { t } = useOwpTranslation();\n\n const flatNavigation = useMemo(\n () => NavigationHelper.getFlatNavigation(navigation) as FlatNavItemType[],\n [navigation],\n );\n\n const shortcutItems = useMemo(\n () =>\n userShortcuts\n .map((id) => find(flatNavigation, { id }))\n .filter((item): item is FlatNavItemType => Boolean(item)),\n [flatNavigation, userShortcuts],\n );\n\n const searchResults = useMemo(() => {\n if (!searchText || !flatNavigation) {\n return [];\n }\n\n const normalizedSearchText = searchText.toLowerCase();\n\n return flatNavigation.filter((item) =>\n item?.title?.toLowerCase()?.includes(normalizedSearchText),\n );\n }, [flatNavigation, searchText]);\n\n function addMenuClick(event: MouseEvent<HTMLElement>) {\n setAddMenu(event.currentTarget);\n }\n\n function addMenuClose() {\n setAddMenu(null);\n }\n\n function search(ev: ChangeEvent<HTMLInputElement>) {\n setSearchText(ev.target.value);\n }\n\n function toggleInShortcuts(id: string) {\n let nextShortcuts = [...userShortcuts];\n\n nextShortcuts = xor(nextShortcuts, [id]);\n\n setShortcuts(nextShortcuts);\n }\n\n return (\n <Box\n className={clsx(\n 'flex flex-shrink overflow-hidden',\n variant === 'vertical' ? 'flex-col' : '',\n className,\n )}\n >\n <Box\n className={clsx(\n 'flex flex-1 items-center',\n variant === 'vertical' ? 'flex-col' : 'max-h-36',\n )}\n >\n <Tooltip\n title={t('Title.즐겨찾기 등록/삭제')}\n placement={variant === 'horizontal' ? 'bottom' : 'left'}\n >\n <IconButton\n sx={toolbarToggleSx}\n aria-haspopup=\"true\"\n onClick={addMenuClick}\n >\n <OwpSvgIcon size={20} sx={{ color: amber[600] }}>\n heroicons-solid:star\n </OwpSvgIcon>\n </IconButton>\n </Tooltip>\n </Box>\n\n <Menu\n id=\"add-menu\"\n anchorEl={addMenu}\n open={Boolean(addMenu)}\n onClose={addMenuClose}\n classes={{\n paper: 'min-w-256',\n }}\n TransitionProps={{\n onEntered: () => {\n searchInputRef?.current?.focus();\n },\n onExited: () => {\n setSearchText('');\n },\n }}\n >\n <div className=\"flex justify-between items-center p-16 pt-8\">\n <Input\n inputRef={searchInputRef}\n value={searchText}\n onChange={search}\n placeholder={t('Common.검색')}\n fullWidth\n inputProps={{\n 'aria-label': 'Search',\n }}\n disableUnderline\n />\n <IconButton\n sx={{ color: grey[500] }}\n onClick={() => {\n setSearchText('');\n searchInputRef?.current?.focus();\n }}\n >\n <ClearIcon />\n </IconButton>\n </div>\n\n {(searchText?.length > 0 || shortcutItems?.length > 0) && (\n <Divider sx={{ backgroundColor: grey[500] }} />\n )}\n\n {searchText.length > 0 &&\n searchResults.map((_item) => (\n <ShortcutMenuItem\n shortcuts={userShortcuts}\n key={_item.id}\n item={_item}\n onToggle={() => toggleInShortcuts(_item.id)}\n />\n ))}\n\n {searchText.length !== 0 && searchResults.length === 0 && (\n <Typography color=\"text.secondary\" className=\"p-16 pb-8\">\n {t('Message.검색된 결과가 없습니다...')}\n </Typography>\n )}\n\n {searchText.length === 0 &&\n shortcutItems.map((_item) => (\n <ShortcutMenuItem\n shortcuts={userShortcuts}\n key={_item.id}\n item={_item}\n onToggle={() => toggleInShortcuts(_item.id)}\n />\n ))}\n </Menu>\n </Box>\n );\n}\n\nfunction ShortcutMenuItem(props: {\n shortcuts?: string[];\n item: FlatNavItemType;\n onToggle: () => void;\n}) {\n const { item, onToggle, shortcuts = [] } = props;\n\n if (!item || !item.id) {\n return null;\n }\n\n return (\n <Link to={item.url || ''} role=\"button\">\n <MenuItem key={item.id}>\n <ListItemIcon className=\"min-w-36\">\n {item.icon ? (\n <OwpSvgIcon>{item.icon}</OwpSvgIcon>\n ) : (\n <span className=\"text-center text-2xl font-semibold uppercase\">{item.title[0]}</span>\n )}\n </ListItemIcon>\n <ListItemText primary={item.title} />\n <IconButton\n onClick={(ev) => {\n ev.preventDefault();\n ev.stopPropagation();\n onToggle();\n }}\n size=\"large\"\n >\n <OwpSvgIcon size={20} sx={{ color: amber[600] }}>\n {shortcuts.includes(item.id) ? 'heroicons-solid:star' : 'heroicons-outline:star'}\n </OwpSvgIcon>\n </IconButton>\n </MenuItem>\n </Link>\n );\n}\n\n/**\n * Memoized navigation shortcuts toggle.\n */\nexport default NavigationShortcutsToggle;\n"],"names":["NavigationShortcutsToggle","props","variant","className","searchInputRef","useRef","addMenu","setAddMenu","useState","searchText","setSearchText","navigation","useGetNavigationList","setShortcuts","useSetShortcuts","userShortcuts","useGetShortcuts","t","useOwpTranslation","flatNavigation","useMemo","NavigationHelper","shortcutItems","id","find","item","searchResults","normalizedSearchText","_b","_a","addMenuClick","event","__name","addMenuClose","search","ev","toggleInShortcuts","nextShortcuts","xor","jsxs","Box","clsx","jsx","Tooltip","IconButton","toolbarToggleSx","OwpSvgIcon","amber","Menu","Input","grey","ClearIcon","Divider","_item","ShortcutMenuItem","Typography","onToggle","shortcuts","Link","MenuItem","ListItemIcon","ListItemText"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationShortcutsToggle.js","sources":["../../../../src/layout/components/toggles/NavigationShortcutsToggle.tsx"],"sourcesContent":["import { OwpSvgIcon } from '@/components/OwpSvgIcon';\nimport { useGetNavigationList } from '@/hooks/useNavigation';\nimport { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useGetShortcuts, useSetShortcuts } from '@/hooks/internal/useShortcuts';\nimport type { OwpFlatNavItemType as FlatNavItemType } from '@/types/OwpNavigationTypes';\nimport { OwpNavigationHelper as NavigationHelper } from '@/utils/navigationUtils';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport Box from '@mui/material/Box';\nimport { amber, grey } from '@mui/material/colors';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport Input from '@mui/material/Input';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport clsx from 'clsx';\nimport { find, xor } from 'es-toolkit/compat';\nimport { type ChangeEvent, type MouseEvent, useMemo, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { toolbarToggleSx } from './toggleStyles';\n\ntype NavigationShortcutsToggleProps = {\n className?: string;\n variant?: 'horizontal' | 'vertical';\n};\n\n/**\n * Navigation shortcuts toggle.\n */\nfunction NavigationShortcutsToggle(props: NavigationShortcutsToggleProps) {\n const { variant = 'horizontal', className = '' } = props;\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const [addMenu, setAddMenu] = useState<HTMLElement | null>(null);\n const [searchText, setSearchText] = useState('');\n const navigation = useGetNavigationList();\n const setShortcuts = useSetShortcuts();\n const userShortcuts = useGetShortcuts();\n const { t } = useOwpTranslation();\n\n const flatNavigation = useMemo(\n () => NavigationHelper.getFlatNavigation(navigation) as FlatNavItemType[],\n [navigation],\n );\n\n const shortcutItems = useMemo(\n () =>\n userShortcuts\n .map((id) => find(flatNavigation, { id }))\n .filter((item): item is FlatNavItemType => Boolean(item)),\n [flatNavigation, userShortcuts],\n );\n\n const searchResults = useMemo(() => {\n if (!searchText || !flatNavigation) {\n return [];\n }\n\n const normalizedSearchText = searchText.toLowerCase();\n\n return flatNavigation.filter((item) =>\n item?.title?.toLowerCase()?.includes(normalizedSearchText),\n );\n }, [flatNavigation, searchText]);\n\n function addMenuClick(event: MouseEvent<HTMLElement>) {\n setAddMenu(event.currentTarget);\n }\n\n function addMenuClose() {\n setAddMenu(null);\n }\n\n function search(ev: ChangeEvent<HTMLInputElement>) {\n setSearchText(ev.target.value);\n }\n\n function toggleInShortcuts(id: string) {\n let nextShortcuts = [...userShortcuts];\n\n nextShortcuts = xor(nextShortcuts, [id]);\n\n setShortcuts(nextShortcuts);\n }\n\n return (\n <Box\n className={clsx(\n 'flex flex-shrink overflow-hidden',\n variant === 'vertical' ? 'flex-col' : '',\n className,\n )}\n >\n <Box\n className={clsx(\n 'flex flex-1 items-center',\n variant === 'vertical' ? 'flex-col' : 'max-h-36',\n )}\n >\n <Tooltip\n title={t('Title.즐겨찾기 등록/삭제')}\n placement={variant === 'horizontal' ? 'bottom' : 'left'}\n >\n <IconButton\n sx={toolbarToggleSx}\n aria-haspopup=\"true\"\n onClick={addMenuClick}\n >\n <OwpSvgIcon size={20} sx={{ color: amber[600] }}>\n heroicons-solid:star\n </OwpSvgIcon>\n </IconButton>\n </Tooltip>\n </Box>\n\n <Menu\n id=\"add-menu\"\n anchorEl={addMenu}\n open={Boolean(addMenu)}\n onClose={addMenuClose}\n classes={{\n paper: 'min-w-256',\n }}\n TransitionProps={{\n onEntered: () => {\n searchInputRef?.current?.focus();\n },\n onExited: () => {\n setSearchText('');\n },\n }}\n >\n <div className=\"flex justify-between items-center p-16 pt-8\">\n <Input\n inputRef={searchInputRef}\n value={searchText}\n onChange={search}\n placeholder={t('Common.검색')}\n fullWidth\n inputProps={{\n 'aria-label': 'Search',\n }}\n disableUnderline\n />\n <IconButton\n sx={{ color: grey[500] }}\n onClick={() => {\n setSearchText('');\n searchInputRef?.current?.focus();\n }}\n >\n <ClearIcon />\n </IconButton>\n </div>\n\n {(searchText?.length > 0 || shortcutItems?.length > 0) && (\n <Divider sx={{ backgroundColor: grey[500] }} />\n )}\n\n {searchText.length > 0 &&\n searchResults.map((_item) => (\n <ShortcutMenuItem\n shortcuts={userShortcuts}\n key={_item.id}\n item={_item}\n onToggle={() => toggleInShortcuts(_item.id)}\n />\n ))}\n\n {searchText.length !== 0 && searchResults.length === 0 && (\n <Typography color=\"text.secondary\" className=\"p-16 pb-8\">\n {t('Message.검색된 결과가 없습니다...')}\n </Typography>\n )}\n\n {searchText.length === 0 &&\n shortcutItems.map((_item) => (\n <ShortcutMenuItem\n shortcuts={userShortcuts}\n key={_item.id}\n item={_item}\n onToggle={() => toggleInShortcuts(_item.id)}\n />\n ))}\n </Menu>\n </Box>\n );\n}\n\nfunction ShortcutMenuItem(props: {\n shortcuts?: string[];\n item: FlatNavItemType;\n onToggle: () => void;\n}) {\n const { item, onToggle, shortcuts = [] } = props;\n\n if (!item || !item.id) {\n return null;\n }\n\n return (\n <Link to={item.url || ''} role=\"button\">\n <MenuItem key={item.id}>\n <ListItemIcon className=\"min-w-36\">\n {item.icon ? (\n <OwpSvgIcon>{item.icon}</OwpSvgIcon>\n ) : (\n <span className=\"text-center text-2xl font-semibold uppercase\">{item.title[0]}</span>\n )}\n </ListItemIcon>\n <ListItemText primary={item.title} />\n <IconButton\n onClick={(ev) => {\n ev.preventDefault();\n ev.stopPropagation();\n onToggle();\n }}\n size=\"large\"\n >\n <OwpSvgIcon size={20} sx={{ color: amber[600] }}>\n {shortcuts.includes(item.id) ? 'heroicons-solid:star' : 'heroicons-outline:star'}\n </OwpSvgIcon>\n </IconButton>\n </MenuItem>\n </Link>\n );\n}\n\n/**\n * Memoized navigation shortcuts toggle.\n */\nexport default NavigationShortcutsToggle;\n"],"names":["NavigationShortcutsToggle","props","variant","className","searchInputRef","useRef","addMenu","setAddMenu","useState","searchText","setSearchText","navigation","useGetNavigationList","setShortcuts","useSetShortcuts","userShortcuts","useGetShortcuts","t","useOwpTranslation","flatNavigation","useMemo","NavigationHelper","shortcutItems","id","find","item","searchResults","normalizedSearchText","_b","_a","addMenuClick","event","__name","addMenuClose","search","ev","toggleInShortcuts","nextShortcuts","xor","jsxs","Box","clsx","jsx","Tooltip","IconButton","toolbarToggleSx","OwpSvgIcon","amber","Menu","Input","grey","ClearIcon","Divider","_item","ShortcutMenuItem","Typography","onToggle","shortcuts","Link","MenuItem","ListItemIcon","ListItemText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAASA,GAA0BC,GAAuC;AACxE,QAAM,EAAE,SAAAC,IAAU,cAAc,WAAAC,IAAY,OAAOF,GAE7CG,IAAiBC,EAAyB,IAAI,GAC9C,CAACC,GAASC,CAAU,IAAIC,EAA6B,IAAI,GACzD,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAE,GACzCG,IAAaC,EAAA,GACbC,IAAeC,EAAA,GACfC,IAAgBC,EAAA,GAChB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GAERC,IAAiBC;AAAA,IACrB,MAAMC,EAAiB,kBAAkBV,CAAU;AAAA,IACnD,CAACA,CAAU;AAAA,EAAA,GAGPW,IAAgBF;AAAA,IACpB,MACEL,EACG,IAAI,CAACQ,MAAOC,EAAKL,GAAgB,EAAE,IAAAI,EAAA,CAAI,CAAC,EACxC,OAAO,CAACE,MAAkC,EAAQA,CAAK;AAAA,IAC5D,CAACN,GAAgBJ,CAAa;AAAA,EAAA,GAG1BW,IAAgBN,EAAQ,MAAM;AAClC,QAAI,CAACX,KAAc,CAACU;AAClB,aAAO,CAAA;AAGT,UAAMQ,IAAuBlB,EAAW,YAAA;AAExC,WAAOU,EAAe;AAAA,MAAO,CAACM,MAAA;;AAC5B,gBAAAG,KAAAC,IAAAJ,KAAA,gBAAAA,EAAM,UAAN,gBAAAI,EAAa,kBAAb,gBAAAD,EAA4B,SAASD;AAAA;AAAA,IAAoB;AAAA,EAE7D,GAAG,CAACR,GAAgBV,CAAU,CAAC;AAE/B,WAASqB,EAAaC,GAAgC;AACpD,IAAAxB,EAAWwB,EAAM,aAAa;AAAA,EAChC;AAFS,EAAAC,EAAAF,GAAA;AAIT,WAASG,IAAe;AACtB,IAAA1B,EAAW,IAAI;AAAA,EACjB;AAFS,EAAAyB,EAAAC,GAAA;AAIT,WAASC,EAAOC,GAAmC;AACjD,IAAAzB,EAAcyB,EAAG,OAAO,KAAK;AAAA,EAC/B;AAFS,EAAAH,EAAAE,GAAA;AAIT,WAASE,EAAkBb,GAAY;AACrC,QAAIc,IAAgB,CAAC,GAAGtB,CAAa;AAErC,IAAAsB,IAAgBC,GAAID,GAAe,CAACd,CAAE,CAAC,GAEvCV,EAAawB,CAAa;AAAA,EAC5B;AANS,SAAAL,EAAAI,GAAA,sBASP,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAvC,MAAY,aAAa,aAAa;AAAA,QACtCC;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAuC;AAAA,UAACF;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAvC,MAAY,aAAa,aAAa;AAAA,YAAA;AAAA,YAGxC,UAAA,gBAAAwC;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,OAAO1B,EAAE,kBAAkB;AAAA,gBAC3B,WAAWf,MAAY,eAAe,WAAW;AAAA,gBAEjD,UAAA,gBAAAwC;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,IAAIC;AAAA,oBACJ,iBAAc;AAAA,oBACd,SAASf;AAAA,oBAET,UAAA,gBAAAY,EAACI,GAAA,EAAW,MAAM,IAAI,IAAI,EAAE,OAAOC,EAAM,GAAG,EAAA,GAAK,UAAA,uBAAA,CAEjD;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAGF,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,UAAU1C;AAAA,YACV,MAAM,EAAQA;AAAA,YACd,SAAS2B;AAAA,YACT,SAAS;AAAA,cACP,OAAO;AAAA,YAAA;AAAA,YAET,iBAAiB;AAAA,cACf,WAAW,gBAAAD,EAAA,MAAM;;AACf,iBAAAH,IAAAzB,KAAA,gBAAAA,EAAgB,YAAhB,QAAAyB,EAAyB;AAAA,cAC3B,GAFW;AAAA,cAGX,UAAU,gBAAAG,EAAA,MAAM;AACd,gBAAAtB,EAAc,EAAE;AAAA,cAClB,GAFU;AAAA,YAEV;AAAA,YAGF,UAAA;AAAA,cAAA,gBAAA6B,EAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,gBAAA,gBAAAG;AAAA,kBAACO;AAAA,kBAAA;AAAA,oBACC,UAAU7C;AAAA,oBACV,OAAOK;AAAA,oBACP,UAAUyB;AAAA,oBACV,aAAajB,EAAE,WAAW;AAAA,oBAC1B,WAAS;AAAA,oBACT,YAAY;AAAA,sBACV,cAAc;AAAA,oBAAA;AAAA,oBAEhB,kBAAgB;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAElB,gBAAAyB;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,IAAI,EAAE,OAAOM,EAAK,GAAG,EAAA;AAAA,oBACrB,SAAS,gBAAAlB,EAAA,MAAM;;AACb,sBAAAtB,EAAc,EAAE,IAChBmB,IAAAzB,KAAA,gBAAAA,EAAgB,YAAhB,QAAAyB,EAAyB;AAAA,oBAC3B,GAHS;AAAA,oBAKT,4BAACsB,GAAA,CAAA,CAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACb,GACF;AAAA,gBAEE1C,KAAA,gBAAAA,EAAY,UAAS,MAAKa,KAAA,gBAAAA,EAAe,UAAS,MAClD,gBAAAoB,EAACU,GAAA,EAAQ,IAAI,EAAE,iBAAiBF,EAAK,GAAG,KAAK;AAAA,cAG9CzC,EAAW,SAAS,KACnBiB,EAAc,IAAI,CAAC2B,MACjB,gBAAAX;AAAA,gBAACY;AAAA,gBAAA;AAAA,kBACC,WAAWvC;AAAA,kBAEX,MAAMsC;AAAA,kBACN,UAAU,gBAAArB,EAAA,MAAMI,EAAkBiB,EAAM,EAAE,GAAhC;AAAA,gBAAgC;AAAA,gBAFrCA,EAAM;AAAA,cAAA,CAId;AAAA,cAEF5C,EAAW,WAAW,KAAKiB,EAAc,WAAW,KACnD,gBAAAgB,EAACa,GAAA,EAAW,OAAM,kBAAiB,WAAU,aAC1C,UAAAtC,EAAE,yBAAyB,GAC9B;AAAA,cAGDR,EAAW,WAAW,KACrBa,EAAc,IAAI,CAAC+B,MACjB,gBAAAX;AAAA,gBAACY;AAAA,gBAAA;AAAA,kBACC,WAAWvC;AAAA,kBAEX,MAAMsC;AAAA,kBACN,UAAU,gBAAArB,EAAA,MAAMI,EAAkBiB,EAAM,EAAE,GAAhC;AAAA,gBAAgC;AAAA,gBAFrCA,EAAM;AAAA,cAAA,CAId;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACL;AAAA,IAAA;AAAA,EAAA;AAGN;AA9JSrB,EAAAhC,IAAA;AAgKT,SAASsD,EAAiBrD,GAIvB;AACD,QAAM,EAAE,MAAAwB,GAAM,UAAA+B,GAAU,WAAAC,IAAY,CAAA,MAAOxD;AAE3C,SAAI,CAACwB,KAAQ,CAACA,EAAK,KACV,OAIP,gBAAAiB,EAACgB,KAAK,IAAIjC,EAAK,OAAO,IAAI,MAAK,UAC7B,UAAA,gBAAAc,EAACoB,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAjB,EAACkB,KAAa,WAAU,YACrB,YAAK,OACJ,gBAAAlB,EAACI,KAAY,UAAArB,EAAK,KAAA,CAAK,IAEvB,gBAAAiB,EAAC,UAAK,WAAU,gDAAgD,YAAK,MAAM,CAAC,GAAE,EAAA,CAElF;AAAA,IACA,gBAAAA,EAACmB,GAAA,EAAa,SAASpC,EAAK,MAAA,CAAO;AAAA,IACnC,gBAAAiB;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAAS,gBAAAZ,EAAA,CAACG,MAAO;AACf,UAAAA,EAAG,eAAA,GACHA,EAAG,gBAAA,GACHqB,EAAA;AAAA,QACF,GAJS;AAAA,QAKT,MAAK;AAAA,QAEL,4BAACV,GAAA,EAAW,MAAM,IAAI,IAAI,EAAE,OAAOC,EAAM,GAAG,KACzC,UAAAU,EAAU,SAAShC,EAAK,EAAE,IAAI,yBAAyB,yBAAA,CAC1D;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,KApBaA,EAAK,EAqBpB,GACF;AAEJ;AArCSO,EAAAsB,GAAA;"}
@@ -1,6 +1,6 @@
1
1
  var f = Object.defineProperty;
2
2
  var t = (e, _) => f(e, "name", { value: _, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/constants.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/constants2.js";
4
4
  var i;
5
5
  function E() {
6
6
  if (i) return r;
@@ -1,6 +1,6 @@
1
1
  var q = Object.defineProperty;
2
2
  var O = (C, _) => q(C, "name", { value: _, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index7.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index6.js";
4
4
  import { __require as d } from "./CODE128_AUTO.js";
5
5
  import { __require as n } from "./CODE128A.js";
6
6
  import { __require as m } from "./CODE128B.js";
@@ -1,6 +1,6 @@
1
1
  var w = Object.defineProperty;
2
2
  var n = (f, a) => w(f, "name", { value: a, configurable: !0 });
3
- import { __exports as i } from "../../../../../../../../_virtual/index6.js";
3
+ import { __exports as i } from "../../../../../../../../_virtual/index5.js";
4
4
  import { __require as k } from "../Barcode.js";
5
5
  var _;
6
6
  function P() {
@@ -1,6 +1,6 @@
1
1
  var D = Object.defineProperty;
2
2
  var C = (u, t) => D(u, "name", { value: t, configurable: !0 });
3
- import { __exports as e } from "../../../../../../../../_virtual/index13.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/index12.js";
4
4
  import { __require as O } from "./CODE93.js";
5
5
  import { __require as E } from "./CODE93FullASCII.js";
6
6
  var l;
@@ -1,6 +1,6 @@
1
1
  var C = Object.defineProperty;
2
2
  var i = (u, a) => C(u, "name", { value: a, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index8.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index7.js";
4
4
  import { __require as U } from "./EAN13.js";
5
5
  import { __require as s } from "./EAN8.js";
6
6
  import { __require as l } from "./EAN5.js";
@@ -1,6 +1,6 @@
1
1
  var b = Object.defineProperty;
2
2
  var r = (a, f) => b(a, "name", { value: f, configurable: !0 });
3
- import { __exports as u } from "../../../../../../../../_virtual/index14.js";
3
+ import { __exports as u } from "../../../../../../../../_virtual/index13.js";
4
4
  import { __require as p } from "../Barcode.js";
5
5
  var c;
6
6
  function w() {
@@ -1,6 +1,6 @@
1
1
  var o = Object.defineProperty;
2
2
  var r = (n, s) => o(n, "name", { value: s, configurable: !0 });
3
- import { __exports as e } from "../../../../../../../../_virtual/constants2.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/constants.js";
4
4
  var t;
5
5
  function _() {
6
6
  return t ? e : (t = 1, Object.defineProperty(e, "__esModule", {
@@ -1,6 +1,6 @@
1
1
  var T = Object.defineProperty;
2
2
  var i = (u, t) => T(u, "name", { value: t, configurable: !0 });
3
- import { __exports as e } from "../../../../../../../../_virtual/index9.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/index8.js";
4
4
  import { __require as f } from "./ITF.js";
5
5
  import { __require as n } from "./ITF14.js";
6
6
  var a;
@@ -1,6 +1,6 @@
1
1
  var v = Object.defineProperty;
2
2
  var I = (M, _) => v(M, "name", { value: _, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index10.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index9.js";
4
4
  import { __require as n } from "./MSI.js";
5
5
  import { __require as s } from "./MSI10.js";
6
6
  import { __require as l } from "./MSI11.js";
@@ -1,6 +1,6 @@
1
1
  var p = Object.defineProperty;
2
2
  var a = (f, c) => p(f, "name", { value: c, configurable: !0 });
3
- import { __exports as i } from "../../../../../../../../_virtual/index12.js";
3
+ import { __exports as i } from "../../../../../../../../_virtual/index11.js";
4
4
  import { __require as g } from "../Barcode.js";
5
5
  var h;
6
6
  function w() {
@@ -1,6 +1,6 @@
1
1
  var v = Object.defineProperty;
2
2
  var i = (u, f) => v(u, "name", { value: f, configurable: !0 });
3
- import { __exports as a } from "../../../../../../../../_virtual/index11.js";
3
+ import { __exports as a } from "../../../../../../../../_virtual/index10.js";
4
4
  import { __require as y } from "../Barcode.js";
5
5
  var c;
6
6
  function q() {
@@ -1,6 +1,6 @@
1
1
  var v = Object.defineProperty;
2
2
  var _ = (a, t) => v(a, "name", { value: t, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../_virtual/index15.js";
3
+ import { __exports as r } from "../../../../../../../_virtual/index14.js";
4
4
  import { __require as f } from "./canvas.js";
5
5
  import { __require as q } from "./svg.js";
6
6
  import { __require as c } from "./object.js";
@@ -1,6 +1,6 @@
1
1
  var i = Object.defineProperty;
2
2
  var r = (t, s) => i(t, "name", { value: s, configurable: !0 });
3
- import { __module as e } from "../../../../../_virtual/index5.js";
3
+ import { __module as e } from "../../../../../_virtual/index15.js";
4
4
  import { __require as u } from "./cjs/react-is.production.min.js";
5
5
  import { __require as p } from "./cjs/react-is.development.js";
6
6
  var o;
@@ -1,4 +1,4 @@
1
- import type { OwpSelectorType } from '@/components/OwpSelectorBase/types';
1
+ import type { OwpSelectorType, OwpSelectorValueTextAlign } from '@/components/OwpSelectorBase/types';
2
2
  import type { CommonCode } from '@/utils/commonCodeUtils';
3
3
  import { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';
4
4
  import { type ReactNode } from 'react';
@@ -22,11 +22,13 @@ export type OwpCommonCodeQuerySelectorProps = Omit<SelectProps<string>, 'default
22
22
  textFieldProps?: Omit<TextFieldProps, 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'>;
23
23
  useValueKeyDescription?: boolean;
24
24
  value?: string;
25
+ /** 단일 선택 값 텍스트 정렬 */
26
+ valueTextAlign?: OwpSelectorValueTextAlign;
25
27
  };
26
28
  /**
27
29
  * 원격 조회형 공통코드 선택기
28
30
  * @param props 원격 공통코드 선택기 props
29
31
  */
30
- export declare const OwpCommonCodeQuerySelector: ({ apiUrl, className, defaultValue, description, error, filterOptions, fullWidth, groupId, helperText, label, labelResolver, multiple, onChange, query, queryKeyDeps, required, responseListKey, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, variant, ...selectProps }: OwpCommonCodeQuerySelectorProps) => import("react/jsx-runtime").JSX.Element;
31
- export declare const CommonCodeQuerySelector: ({ apiUrl, className, defaultValue, description, error, filterOptions, fullWidth, groupId, helperText, label, labelResolver, multiple, onChange, query, queryKeyDeps, required, responseListKey, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, variant, ...selectProps }: OwpCommonCodeQuerySelectorProps) => import("react/jsx-runtime").JSX.Element;
32
+ export declare const OwpCommonCodeQuerySelector: ({ apiUrl, className, defaultValue, description, error, filterOptions, fullWidth, groupId, helperText, label, labelResolver, multiple, onChange, query, queryKeyDeps, required, responseListKey, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, valueTextAlign, variant, ...selectProps }: OwpCommonCodeQuerySelectorProps) => import("react/jsx-runtime").JSX.Element;
33
+ export declare const CommonCodeQuerySelector: ({ apiUrl, className, defaultValue, description, error, filterOptions, fullWidth, groupId, helperText, label, labelResolver, multiple, onChange, query, queryKeyDeps, required, responseListKey, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, valueTextAlign, variant, ...selectProps }: OwpCommonCodeQuerySelectorProps) => import("react/jsx-runtime").JSX.Element;
32
34
  export {};
@@ -1,4 +1,4 @@
1
- import type { OwpSelectorType } from '@/components/OwpSelectorBase/types';
1
+ import type { OwpSelectorType, OwpSelectorValueTextAlign } from '@/components/OwpSelectorBase/types';
2
2
  import type { CommonCode } from '@/utils/commonCodeUtils';
3
3
  import { type SelectChangeEvent, type SelectProps, type TextFieldProps } from '@mui/material';
4
4
  import { type ReactNode } from 'react';
@@ -16,11 +16,13 @@ export type OwpCommonCodeSelectorProps = Omit<SelectProps<string>, 'defaultValue
16
16
  showAllOption?: boolean;
17
17
  textFieldProps?: Omit<TextFieldProps, 'defaultValue' | 'error' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'>;
18
18
  value?: string;
19
+ /** 단일 선택 값 텍스트 정렬 */
20
+ valueTextAlign?: OwpSelectorValueTextAlign;
19
21
  };
20
22
  /**
21
23
  * 공통코드 선택기
22
24
  * @param props 공통코드 선택기 props
23
25
  */
24
- export declare const OwpCommonCodeSelector: ({ className, codeId, defaultValue, description, error, filterOptions, fullWidth, helperText, label, multiple, onChange, required, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, variant, ...selectProps }: OwpCommonCodeSelectorProps) => import("react/jsx-runtime").JSX.Element;
25
- export declare const CommonCodeSelector: ({ className, codeId, defaultValue, description, error, filterOptions, fullWidth, helperText, label, multiple, onChange, required, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, variant, ...selectProps }: OwpCommonCodeSelectorProps) => import("react/jsx-runtime").JSX.Element;
26
+ export declare const OwpCommonCodeSelector: ({ className, codeId, defaultValue, description, error, filterOptions, fullWidth, helperText, label, multiple, onChange, required, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, valueTextAlign, variant, ...selectProps }: OwpCommonCodeSelectorProps) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const CommonCodeSelector: ({ className, codeId, defaultValue, description, error, filterOptions, fullWidth, helperText, label, multiple, onChange, required, selectorType, showAllOption, textFieldProps, useValueKeyDescription, value, valueTextAlign, variant, ...selectProps }: OwpCommonCodeSelectorProps) => import("react/jsx-runtime").JSX.Element;
26
28
  export {};
@@ -1,3 +1,4 @@
1
+ import type { OwpSelectorValueTextAlign } from '@/components/OwpSelectorBase/types';
1
2
  import { type SelectChangeEvent, type SelectProps } from '@mui/material';
2
3
  import { type ReactNode } from 'react';
3
4
  export interface OwpOptionSelectorOption {
@@ -14,10 +15,12 @@ export interface OwpOptionSelectorProps extends Omit<SelectProps<string>, 'defau
14
15
  options: OwpOptionSelectorOption[];
15
16
  showAllOption?: boolean;
16
17
  value?: string;
18
+ /** 단일 선택 값 텍스트 정렬 */
19
+ valueTextAlign?: OwpSelectorValueTextAlign;
17
20
  }
18
21
  /**
19
22
  * 옵션 선택기
20
23
  * @param props 옵션 선택기 props
21
24
  */
22
- declare const OwpOptionSelector: ({ className, defaultValue, error, fullWidth, helperText, label, multiple, onChange, options, required, showAllOption, value, ...selectProps }: OwpOptionSelectorProps) => import("react/jsx-runtime").JSX.Element;
25
+ declare const OwpOptionSelector: ({ className, defaultValue, error, fullWidth, helperText, label, multiple, onChange, options, required, showAllOption, value, valueTextAlign, ...selectProps }: OwpOptionSelectorProps) => import("react/jsx-runtime").JSX.Element;
23
26
  export { OwpOptionSelector };
@@ -1 +1 @@
1
- export type { OwpSelectorAllValueMode, OwpSelectorBaseChangeEvent, OwpSelectorBaseHookResult, OwpSelectorBaseOption, OwpSelectorBaseProps, OwpSelectorEmptyValueMode, OwpSelectorType, } from './types';
1
+ export type { OwpSelectorAllValueMode, OwpSelectorBaseChangeEvent, OwpSelectorBaseHookResult, OwpSelectorBaseOption, OwpSelectorBaseProps, OwpSelectorEmptyValueMode, OwpSelectorType, OwpSelectorValueTextAlign, } from './types';
@@ -3,6 +3,7 @@ import type { SelectProps, TextFieldProps } from '@mui/material';
3
3
  export type OwpSelectorType = 'select' | 'autocomplete';
4
4
  export type OwpSelectorAllValueMode = 'empty' | 'joined';
5
5
  export type OwpSelectorEmptyValueMode = 'all' | 'none';
6
+ export type OwpSelectorValueTextAlign = 'left' | 'center' | 'right';
6
7
  export interface OwpSelectorBaseOption<T = unknown> {
7
8
  value: string;
8
9
  label: ReactNode;
@@ -37,6 +38,8 @@ export interface OwpSelectorBaseProps {
37
38
  placeholder?: string;
38
39
  required?: boolean;
39
40
  value?: string;
41
+ /** 단일 선택 값 텍스트 정렬 */
42
+ valueTextAlign?: OwpSelectorValueTextAlign;
40
43
  className?: string;
41
44
  textFieldProps?: Omit<TextFieldProps, 'defaultValue' | 'error' | 'fullWidth' | 'helperText' | 'label' | 'onChange' | 'required' | 'value'>;
42
45
  selectProps?: Omit<SelectProps<string>, 'defaultValue' | 'displayEmpty' | 'error' | 'fullWidth' | 'label' | 'multiple' | 'onChange' | 'required' | 'value'>;
@@ -1,26 +1,16 @@
1
1
  export * from './useCommonCodeList';
2
- export * from './useAccessTokenGuard';
3
2
  export * from './useConfirm';
4
- export * from './useCurrentLanguage';
5
3
  export * from './useLogoSrc';
6
4
  export * from './useCurrentUser';
7
5
  export * from './useCurrentUserId';
8
6
  export * from './useCurrentUserSeq';
9
- export * from './useDebounce';
10
- export * from './useDeepCompareEffect';
11
7
  export * from './useFormDataUploadMutation';
12
- export * from './useHeaderWrapState';
13
8
  export * from './useInitApp';
14
- export * from './useNavbar';
15
9
  export * from './useNavigation';
16
10
  export * from './useOwpSettings';
17
11
  export * from './useOwpTranslation';
18
12
  export * from './usePageLockLoading';
19
- export * from './usePrevious';
20
- export * from './useShortcuts';
21
13
  export * from './useStorage';
22
- export * from './useThemeMediaQuery';
23
- export * from './useTimeout';
24
14
  export * from './useTreeGridCommonCodeEnums';
25
15
  export * from './useTreeGridEnums';
26
16
  export * from './useTreeGridExcelExport';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Navbar 상태 조회 훅
3
3
  */
4
- export declare const useGetNavbar: () => import("../store/atoms/internal/types").NavbarState;
4
+ export declare const useGetNavbar: () => import("../../store/atoms/internal/types").NavbarState;
5
5
  /**
6
6
  * Navbar 액션 훅
7
7
  */
@@ -17,14 +17,6 @@ type TreeGridHighlightTargetOption = {
17
17
  col: string;
18
18
  backgroundColor?: string;
19
19
  };
20
- export declare const TREEGRID_ADDED_ROW_BY_ID_FLAG = "__owpAddedByAddTreeGridRowById";
21
- export declare const TREEGRID_ADDED_ROW_HIGHLIGHT_COLUMNS_KEY = "__owpAddedRowHighlightColumns";
22
- export declare const TREEGRID_ADDED_ROW_BASELINE_VALUES_KEY = "__owpAddedRowBaselineValues";
23
- /**
24
- * addTreeGridRowById 생성 행 마킹
25
- * @param row 대상 행
26
- */
27
- export declare const markTreeGridRowAddedById: (row: TRow | null | undefined) => void;
28
20
  /**
29
21
  * addTreeGridRowById 생성 행 여부
30
22
  * @param row 대상 행
@@ -60,12 +52,6 @@ export declare const getTreeGridCellComparableValue: (grid: TGrid, row: TRow, co
60
52
  * @param col 대상 컬럼
61
53
  */
62
54
  export declare const getTreeGridAddedRowBaselineValue: (row: TRow | null | undefined, col: string) => string;
63
- /**
64
- * TreeGrid 외부 반환 행 Date 시간 값 정규화
65
- * @param grid TreeGrid 인스턴스
66
- * @param row 대상 행
67
- */
68
- export declare const normalizeTreeGridExternalRow: <T>(grid: TGrid, row: TRow & T) => TRow & T;
69
55
  /**
70
56
  * TreeGrid 외부 반환 행 목록 Date 시간 값 정규화
71
57
  * @param grid TreeGrid 인스턴스
@@ -2,7 +2,7 @@ var x = Object.defineProperty;
2
2
  var e = (o, t) => x(o, "name", { value: t, configurable: !0 });
3
3
  const S = 'script[data-owp-exceljs-bundle="true"]';
4
4
  let c;
5
- const p = /* @__PURE__ */ e(() => typeof window > "u" ? void 0 : window.ExcelJS, "getExcelJSGlobal"), l = /* @__PURE__ */ e(() => new Error("Failed to resolve browser exceljs bundle."), "createExcelJSGlobalMissingError"), b = /* @__PURE__ */ e(async () => (await import("../_virtual/_virtual_owp-exceljs-browser-source.js")).default, "loadExcelJSBrowserSource"), m = /* @__PURE__ */ e(() => new Promise((o, t) => {
5
+ const p = /* @__PURE__ */ e(() => typeof window > "u" ? void 0 : window.ExcelJS, "getExcelJSGlobal"), l = /* @__PURE__ */ e(() => new Error("Failed to resolve browser exceljs bundle."), "createExcelJSGlobalMissingError"), b = /* @__PURE__ */ e(async () => (await import("../../_virtual/_virtual_owp-exceljs-browser-source.js")).default, "loadExcelJSBrowserSource"), m = /* @__PURE__ */ e(() => new Promise((o, t) => {
6
6
  const s = p();
7
7
  if (s) {
8
8
  o(s);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceljsBrowser.js","sources":["../../../src/utils/internal/exceljsBrowser.ts"],"sourcesContent":["import type * as ExcelJSModule from 'exceljs';\n\ntype ExcelJSBrowserModule = typeof ExcelJSModule;\ntype ExcelJSWindow = Window & {\n ExcelJS?: ExcelJSBrowserModule;\n};\n\nconst EXCELJS_SCRIPT_SELECTOR = 'script[data-owp-exceljs-bundle=\"true\"]';\nlet excelJSBrowserPromise: Promise<ExcelJSBrowserModule> | undefined;\n\n/** 브라우저 전역 exceljs 모듈 조회 */\nconst getExcelJSGlobal = () =>\n typeof window === 'undefined' ? undefined : (window as ExcelJSWindow).ExcelJS;\n\n/** 브라우저 전역 exceljs 누락 오류 생성 */\nconst createExcelJSGlobalMissingError = () =>\n new Error('Failed to resolve browser exceljs bundle.');\n\n/** 브라우저 exceljs 번들 소스 지연 로드 */\nconst loadExcelJSBrowserSource = async () =>\n (await import('virtual:owp-exceljs-browser-source')).default;\n\n/** 브라우저 exceljs 스크립트 로드 */\nconst loadExcelJSBrowserScript = () =>\n new Promise<ExcelJSBrowserModule>((resolve, reject) => {\n const loadedExcelJS = getExcelJSGlobal();\n\n if (loadedExcelJS) {\n resolve(loadedExcelJS);\n return;\n }\n\n if (typeof document === 'undefined') {\n reject(createExcelJSGlobalMissingError());\n return;\n }\n\n const handleLoad = () => {\n const resolvedExcelJS = getExcelJSGlobal();\n\n if (!resolvedExcelJS) {\n reject(createExcelJSGlobalMissingError());\n return;\n }\n\n resolve(resolvedExcelJS);\n };\n const handleError = () => {\n reject(new Error('Failed to load browser exceljs bundle.'));\n };\n const existingScript = document.querySelector<HTMLScriptElement>(EXCELJS_SCRIPT_SELECTOR);\n\n if (existingScript) {\n existingScript.addEventListener('load', handleLoad, { once: true });\n existingScript.addEventListener('error', handleError, { once: true });\n return;\n }\n\n const scriptElement = document.createElement('script');\n const scriptParentElement = document.head ?? document.body ?? document.documentElement;\n\n if (!scriptParentElement) {\n reject(createExcelJSGlobalMissingError());\n return;\n }\n\n void loadExcelJSBrowserSource()\n .then((source) => {\n const objectUrl = URL.createObjectURL(\n new Blob([source], {\n type: 'text/javascript',\n }),\n );\n const cleanupObjectUrl = () => {\n URL.revokeObjectURL(objectUrl);\n };\n\n scriptElement.async = true;\n scriptElement.dataset.owpExceljsBundle = 'true';\n scriptElement.src = objectUrl;\n scriptElement.addEventListener(\n 'load',\n () => {\n cleanupObjectUrl();\n handleLoad();\n },\n { once: true },\n );\n scriptElement.addEventListener(\n 'error',\n () => {\n cleanupObjectUrl();\n handleError();\n },\n { once: true },\n );\n scriptParentElement.append(scriptElement);\n })\n .catch((error) => {\n reject(error instanceof Error ? error : new Error('Failed to create browser exceljs bundle.'));\n });\n });\n\n/** 브라우저 배포용 exceljs 모듈 지연 로드 */\nexport const loadExcelJSBrowser = () => {\n if (!excelJSBrowserPromise) {\n excelJSBrowserPromise = loadExcelJSBrowserScript()\n .catch((error) => {\n excelJSBrowserPromise = undefined;\n throw error;\n });\n }\n\n return excelJSBrowserPromise;\n};\n"],"names":["EXCELJS_SCRIPT_SELECTOR","excelJSBrowserPromise","getExcelJSGlobal","__name","createExcelJSGlobalMissingError","loadExcelJSBrowserSource","loadExcelJSBrowserScript","resolve","reject","loadedExcelJS","handleLoad","resolvedExcelJS","handleError","existingScript","scriptElement","scriptParentElement","source","objectUrl","cleanupObjectUrl","error","loadExcelJSBrowser"],"mappings":";;AAOA,MAAMA,IAA0B;AAChC,IAAIC;AAGJ,MAAMC,IAAmB,gBAAAC,EAAA,MACvB,OAAO,SAAW,MAAc,SAAa,OAAyB,SAD/C,qBAInBC,IAAkC,gBAAAD,EAAA,MACtC,IAAI,MAAM,2CAA2C,GADf,oCAIlCE,IAA2B,gBAAAF,EAAA,aAC9B,MAAM,OAAO,uDAAoC,GAAG,SADtB,6BAI3BG,IAA2B,gBAAAH,EAAA,MAC/B,IAAI,QAA8B,CAACI,GAASC,MAAW;AACrD,QAAMC,IAAgBP,EAAA;AAEtB,MAAIO,GAAe;AACjB,IAAAF,EAAQE,CAAa;AACrB;AAAA,EACF;AAEA,MAAI,OAAO,WAAa,KAAa;AACnC,IAAAD,EAAOJ,GAAiC;AACxC;AAAA,EACF;AAEA,QAAMM,IAAa,gBAAAP,EAAA,MAAM;AACvB,UAAMQ,IAAkBT,EAAA;AAExB,QAAI,CAACS,GAAiB;AACpB,MAAAH,EAAOJ,GAAiC;AACxC;AAAA,IACF;AAEA,IAAAG,EAAQI,CAAe;AAAA,EACzB,GATmB,eAUbC,IAAc,gBAAAT,EAAA,MAAM;AACxB,IAAAK,EAAO,IAAI,MAAM,wCAAwC,CAAC;AAAA,EAC5D,GAFoB,gBAGdK,IAAiB,SAAS,cAAiCb,CAAuB;AAExF,MAAIa,GAAgB;AAClB,IAAAA,EAAe,iBAAiB,QAAQH,GAAY,EAAE,MAAM,IAAM,GAClEG,EAAe,iBAAiB,SAASD,GAAa,EAAE,MAAM,IAAM;AACpE;AAAA,EACF;AAEA,QAAME,IAAgB,SAAS,cAAc,QAAQ,GAC/CC,IAAsB,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAEvE,MAAI,CAACA,GAAqB;AACxB,IAAAP,EAAOJ,GAAiC;AACxC;AAAA,EACF;AAEA,EAAKC,EAAA,EACF,KAAK,CAACW,MAAW;AAChB,UAAMC,IAAY,IAAI;AAAA,MACpB,IAAI,KAAK,CAACD,CAAM,GAAG;AAAA,QACjB,MAAM;AAAA,MAAA,CACP;AAAA,IAAA,GAEGE,IAAmB,gBAAAf,EAAA,MAAM;AAC7B,UAAI,gBAAgBc,CAAS;AAAA,IAC/B,GAFyB;AAIzB,IAAAH,EAAc,QAAQ,IACtBA,EAAc,QAAQ,mBAAmB,QACzCA,EAAc,MAAMG,GACpBH,EAAc;AAAA,MACZ;AAAA,MACA,MAAM;AACJ,QAAAI,EAAA,GACAR,EAAA;AAAA,MACF;AAAA,MACA,EAAE,MAAM,GAAA;AAAA,IAAK,GAEfI,EAAc;AAAA,MACZ;AAAA,MACA,MAAM;AACJ,QAAAI,EAAA,GACAN,EAAA;AAAA,MACF;AAAA,MACA,EAAE,MAAM,GAAA;AAAA,IAAK,GAEfG,EAAoB,OAAOD,CAAa;AAAA,EAC1C,CAAC,EACA,MAAM,CAACK,MAAU;AAChB,IAAAX,EAAOW,aAAiB,QAAQA,IAAQ,IAAI,MAAM,0CAA0C,CAAC;AAAA,EAC/F,CAAC;AACL,CAAC,GA9E8B,6BAiFpBC,IAAqB,gBAAAjB,EAAA,OAC3BF,MACHA,IAAwBK,EAAA,EACrB,MAAM,CAACa,MAAU;AAChB,QAAAlB,IAAwB,QAClBkB;AACR,CAAC,IAGElB,IATyB;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jszipBrowser.js","sources":["../../../src/utils/internal/jszipBrowser.ts"],"sourcesContent":["import type JSZipModule from 'jszip';\n\nlet jsZipPromise: Promise<typeof JSZipModule> | undefined;\n\n/**\n * 브라우저 배포용 JSZip 모듈 지연 로드\n */\nexport const loadJSZip = () => {\n if (!jsZipPromise) {\n jsZipPromise = import('jszip')\n .then((jszipModule) => jszipModule.default)\n .catch((error) => {\n jsZipPromise = undefined;\n throw error;\n });\n }\n\n return jsZipPromise;\n};\n"],"names":["jsZipPromise","loadJSZip","__name","jszipModule","error"],"mappings":";;AAEA,IAAIA;AAKG,MAAMC,IAAY,gBAAAC,EAAA,OAClBF,MACHA,IAAe,OAAO,OAAO,EAC1B,KAAK,CAACG,MAAgBA,EAAY,OAAO,EACzC,MAAM,CAACC,MAAU;AAChB,QAAAJ,IAAe,QACTI;AACR,CAAC,IAGEJ,IAVgB;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeGridBodyRowsEvent.js","sources":["../../../src/utils/internal/treeGridBodyRowsEvent.ts"],"sourcesContent":["export const TREE_GRID_BODY_ROWS_CHANGED_EVENT = 'owp-treegrid:body-rows-changed';\n\nexport type TreeGridBodyRowsChangedEventDetail = {\n gridId: string;\n};\n\n/**\n * TreeGrid 본문 행 변경 이벤트 전파\n * @param gridId TreeGrid 인스턴스 ID\n */\nexport const emitTreeGridBodyRowsChanged = (gridId: string) => {\n window.dispatchEvent(\n new CustomEvent<TreeGridBodyRowsChangedEventDetail>(TREE_GRID_BODY_ROWS_CHANGED_EVENT, {\n detail: { gridId },\n }),\n );\n};\n"],"names":["TREE_GRID_BODY_ROWS_CHANGED_EVENT","emitTreeGridBodyRowsChanged","__name","gridId"],"mappings":";;AAAO,MAAMA,IAAoC,kCAUpCC,IAA8B,gBAAAC,EAAA,CAACC,MAAmB;AAC7D,SAAO;AAAA,IACL,IAAI,YAAgDH,GAAmC;AAAA,MACrF,QAAQ,EAAE,QAAAG,EAAA;AAAA,IAAO,CAClB;AAAA,EAAA;AAEL,GAN2C;"}
@@ -3,7 +3,7 @@ var l = (t, e) => Z(t, "name", { value: e, configurable: !0 });
3
3
  import { owpDayjs as $ } from "../dayjs.js";
4
4
  import { enqueueSnackbar as Q } from "notistack";
5
5
  import { exportExcelByBuffer as v } from "./excelUtil.js";
6
- import { loadExcelJSBrowser as tt } from "./exceljsBrowser.js";
6
+ import { loadExcelJSBrowser as tt } from "./internal/exceljsBrowser.js";
7
7
  import { DEFAULT_WRAP_CELL_ALIGNMENT as L, DEFAULT_HEADER_FONT as et, DEFAULT_HEADER_FILL as nt, DEFAULT_THIN_BORDER as P, DEFAULT_VALUE_FONT as ot } from "../constants/excel.js";
8
8
  const S = 200, F = /* @__PURE__ */ new Map(), rt = "엑셀 다운로드 중 오류가 발생했습니다.", st = "TreeGrid 인스턴스가 없습니다.", D = /* @__PURE__ */ l((t) => t == null || typeof t == "string" || typeof t == "number" || typeof t == "boolean" || t instanceof Date, "isPrimitiveCellValue"), R = /* @__PURE__ */ l(() => new Promise((t) => {
9
9
  if (typeof requestAnimationFrame == "function") {