@owp/core 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index11.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/index16.js +5 -2
  7. package/dist/_virtual/index16.js.map +1 -1
  8. package/dist/_virtual/index17.js +2 -2
  9. package/dist/_virtual/index5.js +2 -5
  10. package/dist/_virtual/index5.js.map +1 -1
  11. package/dist/_virtual/index6.js +2 -2
  12. package/dist/_virtual/index7.js +2 -2
  13. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +137 -134
  14. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  15. package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js +3 -4
  16. package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js.map +1 -1
  17. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  18. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  19. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  20. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  21. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  22. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  23. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  24. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  25. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  26. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  27. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  28. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  29. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  30. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  31. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  32. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  33. 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
  34. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
  35. package/dist/utils/exceljsBrowser.js +6 -6
  36. package/dist/utils/exceljsBrowser.js.map +1 -1
  37. package/dist/utils/jszipBrowser.js +6 -6
  38. package/dist/utils/jszipBrowser.js.map +1 -1
  39. package/dist/utils/treeGridExportExcelUtil.js +306 -268
  40. package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
  41. package/package.json +1 -3
  42. package/dist/_virtual/_commonjs-dynamic-modules.js +0 -10
  43. package/dist/_virtual/_commonjs-dynamic-modules.js.map +0 -1
  44. package/dist/_virtual/exceljs.min.js +0 -31
  45. package/dist/_virtual/exceljs.min.js.map +0 -1
  46. package/dist/_virtual/exceljs.min2.js +0 -5
  47. package/dist/_virtual/exceljs.min2.js.map +0 -1
  48. package/dist/_virtual/jszip.min.js +0 -31
  49. package/dist/_virtual/jszip.min.js.map +0 -1
  50. package/dist/_virtual/jszip.min2.js +0 -5
  51. package/dist/_virtual/jszip.min2.js.map +0 -1
  52. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.js +0 -23540
  53. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.js.map +0 -1
  54. package/dist/node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js +0 -2385
  55. package/dist/node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OwpTreeGrid.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGrid.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useGetCurrentLanguage } from '@/hooks/useCurrentLanguage';\nimport { debounce, delay, get, isEmpty, isEqual, omit } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useOwpTreeGridOverlayFrame } from './hooks/useOwpTreeGridOverlayFrame';\nimport { OwpTreeGridLoadingOverlay } from './OwpTreeGridLoadingOverlay';\nimport { OwpTreeGridNoDataOverlay } from './OwpTreeGridNoDataOverlay';\nimport { applyTreeGridLayoutToGrid } from './utils';\n\ntype TreeGridLayoutScalarValue = string | number;\ntype TreeGridNestedLayoutFields = Record<string, TreeGridLayoutScalarValue>;\ntype TreeGridLayoutFields = Record<string, TreeGridLayoutScalarValue | TreeGridNestedLayoutFields>;\ntype TreeGridSectionFields = Record<string, TreeGridLayoutScalarValue>;\n\nconst TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\nexport interface OwpTreeGridLayout {\n Header?: TreeGridLayoutFields;\n Toolbar?: TreeGridSectionFields;\n Foot?: TreeGridSectionFields;\n}\n\nexport type OwpTreeGridLayoutConfig = OwpTreeGridLayout;\nexport type THeader = OwpTreeGridLayoutConfig;\nexport type OwpTreeGridBodyData<T> = Record<string, never> | [] | undefined | T[];\nexport type OwpTreeGridData<T> = OwpTreeGridBodyData<T>;\nexport type TData<T> = OwpTreeGridBodyData<T>;\nexport type OwpTreeGridRowModel<T> = TRow & T;\nexport type OwpTreeGridSelectedRows<T> = OwpTreeGridRowModel<T>[];\n\ntype OwpTreeGridSelectHandler<T> = (selectedRows: OwpTreeGridSelectedRows<T>) => void;\ntype OwpTreeGridRowAddHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridRowDeleteHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n deleteType: number,\n) => void;\ntype OwpTreeGridRowUndeleteHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridButtonClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n event: Event,\n) => void;\ntype OwpTreeGridRowClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n x: number,\n y: number,\n event: Event,\n) => void;\ntype OwpTreeGridSaveHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n autoupdate: boolean | number,\n) => void;\ntype OwpTreeGridCellValue = unknown;\ntype OwpTreeGridAfterValueChangedHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n value: OwpTreeGridCellValue,\n) => void;\n\nexport interface OwpTreeGridProps<T> {\n id: string;\n className?: string;\n containerStyle?: CSSProperties;\n containerClassName?: string;\n layoutUrl?: string;\n dataUrl?: string;\n layoutOverrides?: OwpTreeGridLayoutConfig;\n data?: OwpTreeGridBodyData<T>;\n style?: CSSProperties;\n height?: string | number;\n width?: string | number;\n useDataUrl?: boolean;\n onSelect?: OwpTreeGridSelectHandler<T>;\n onRowAdd?: OwpTreeGridRowAddHandler<T>;\n onRowDelete?: OwpTreeGridRowDeleteHandler<T>;\n onRowUndelete?: OwpTreeGridRowUndeleteHandler<T>;\n onRowChange?: OwpTreeGridAfterValueChangedHandler<T>;\n onClickButton?: OwpTreeGridButtonClickHandler<T>;\n onReady?: (grid: TGrid) => void;\n onRowClick?: OwpTreeGridRowClickHandler<T>;\n onSave?: OwpTreeGridSaveHandler<T>;\n onAfterValueChanged?: OwpTreeGridAfterValueChangedHandler<T>;\n showLoading?: boolean;\n}\n\ntype TreeGridEventBindingOptions<T> = Pick<\n OwpTreeGridProps<T>,\n | 'id'\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n> & {\n treeGridInstanceRef: RefObject<TGrid>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\nconst buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\nconst replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\nconst bindTreeGridEvents = <T,>({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const valueChangedHandler = onAfterValueChanged ?? onRowChange;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n\n if (typeof onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n onRowClick(grid, row as OwpTreeGridRowModel<T>, col, x, y, event);\n }, 300),\n );\n }\n\n if (typeof onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n onClickButton(grid, row as OwpTreeGridRowModel<T>, col, event);\n }, 300),\n );\n }\n\n if (typeof onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n onRowDelete(grid, row as OwpTreeGridRowModel<T>, deleteType);\n });\n }\n if (typeof onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n onRowUndelete(grid, row as OwpTreeGridRowModel<T>);\n });\n }\n if (typeof valueChangedHandler === 'function') {\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n valueChangedHandler(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n }\n if (typeof onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n onSelect(selectedRows);\n }, 100),\n );\n }\n if (typeof onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n onSave(grid, row as OwpTreeGridRowModel<T>, autoupdate);\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n setIsTreeGridReady(true);\n onReady?.(grid);\n }\n }, 100),\n );\n};\n\n/**\n * OwpTreeGrid 컴포넌트\n * @param id 식별자\n * @param containerStyle containerStyle 값\n * @param containerClassName containerClassName 값\n * @param className CSS 클래스명\n * @param style 스타일 객체\n * @param height height 값\n */\nconst OwpTreeGrid = <T,>({\n id = 'treeGridWrapper',\n containerStyle,\n containerClassName,\n className,\n style,\n height = '100%',\n width = '100%',\n layoutUrl,\n dataUrl,\n layoutOverrides,\n data,\n useDataUrl,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n showLoading = true,\n}: OwpTreeGridProps<T>) => {\n const { t } = useOwpTranslation();\n const treeGridInstanceRef = useRef<TGrid>(null);\n const treeGridContainerRef = useRef<HTMLDivElement | null>(null);\n const latestLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(layoutOverrides);\n const latestBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(data);\n const appliedLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(undefined);\n const appliedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasAppliedInitialLayoutRef = useRef(false);\n const bodyReloadSequenceRef = useRef(0);\n const bindingLoadingStartedAtRef = useRef<number | null>(null);\n const bindingLoadingHideTimeoutRef = useRef<number | undefined>(undefined);\n const bodyReloadStartTimeoutRef = useRef<number | undefined>(undefined);\n const [isTreeGridReady, setIsTreeGridReady] = useState(false);\n const [isBindingLoadingVisible, setIsBindingLoadingVisible] = useState(false);\n const currentLanguage = useGetCurrentLanguage();\n const currentLanguageIdRef = useRef(currentLanguage.id);\n const isPendingBodyReload =\n showLoading &&\n data !== undefined &&\n isTreeGridReady &&\n appliedBodyDataPropRef.current !== data;\n const isLoadingOverlayVisible = showLoading && (isBindingLoadingVisible || isPendingBodyReload);\n const isNoDataVisible = !isLoadingOverlayVisible && data !== undefined && isEmpty(data);\n\n latestLayoutOverridesRef.current = layoutOverrides;\n latestBodyDataPropRef.current = data;\n\n const overlayFrame = useOwpTreeGridOverlayFrame({\n visible: isLoadingOverlayVisible || isNoDataVisible,\n containerRef: treeGridContainerRef,\n treeGridInstanceRef,\n });\n\n const clearBindingLoadingHideTimeout = () => {\n if (bindingLoadingHideTimeoutRef.current !== undefined) {\n window.clearTimeout(bindingLoadingHideTimeoutRef.current);\n bindingLoadingHideTimeoutRef.current = undefined;\n }\n };\n\n const clearBodyReloadStartTimeout = () => {\n if (bodyReloadStartTimeoutRef.current !== undefined) {\n window.clearTimeout(bodyReloadStartTimeoutRef.current);\n bodyReloadStartTimeoutRef.current = undefined;\n }\n };\n\n useEffect(() => {\n if (!showLoading) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }\n }, [showLoading]);\n\n useEffect(() => {\n if (\n currentLanguage.id !== currentLanguageIdRef.current &&\n !isEmpty(treeGridInstanceRef.current)\n ) {\n treeGridInstanceRef.current?.Dispose();\n treeGridInstanceRef.current = null;\n currentLanguageIdRef.current = currentLanguage.id;\n }\n\n if (!isEmpty(treeGridInstanceRef.current)) {\n return;\n }\n\n bindTreeGridEvents({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n });\n\n window.TreeGrid(\n buildTreeGridInitializationOptions({\n id,\n layoutUrl,\n dataUrl,\n bodyData: data,\n useDataUrl,\n width,\n height,\n languageId: currentLanguage.id,\n }),\n id,\n id,\n );\n\n return () => {\n delay(() => {\n treeGridInstanceRef.current?.Dispose();\n }, 200);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n const treeGrid = treeGridInstanceRef.current;\n const nextLayoutOverrides = latestLayoutOverridesRef.current;\n const nextBodyData = latestBodyDataPropRef.current;\n\n if (isEmpty(treeGrid) || !isTreeGridReady) {\n return;\n }\n\n const shouldApplyLayoutOverrides =\n appliedLayoutOverridesRef.current !== nextLayoutOverrides &&\n !isEqual(appliedLayoutOverridesRef.current, nextLayoutOverrides);\n const shouldApplyBodyData = appliedBodyDataPropRef.current !== nextBodyData;\n\n if (!shouldApplyLayoutOverrides && !shouldApplyBodyData) {\n return;\n }\n\n if (shouldApplyLayoutOverrides) {\n applyTreeGridLayoutToGrid(treeGrid, nextLayoutOverrides, shouldApplyBodyData);\n appliedLayoutOverridesRef.current = nextLayoutOverrides;\n }\n\n if (shouldApplyBodyData) {\n const reloadSequence = bodyReloadSequenceRef.current + 1;\n const runBodyReload = () => {\n bodyReloadStartTimeoutRef.current = undefined;\n replaceTreeGridBodyData(treeGrid, nextBodyData, () => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n const startedAt = bindingLoadingStartedAtRef.current;\n\n if (!showLoading || startedAt === null) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n const remainingVisibleTime = Math.max(\n 0,\n TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS - (Date.now() - startedAt),\n );\n\n clearBindingLoadingHideTimeout();\n\n if (remainingVisibleTime === 0) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = undefined;\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }, remainingVisibleTime);\n });\n };\n\n bodyReloadSequenceRef.current = reloadSequence;\n\n if (showLoading && nextBodyData !== undefined) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = Date.now();\n setIsBindingLoadingVisible(true);\n bodyReloadStartTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n runBodyReload();\n }, 0);\n } else {\n runBodyReload();\n }\n\n appliedBodyDataPropRef.current = nextBodyData;\n }\n }, [isTreeGridReady, layoutOverrides, data, showLoading]);\n\n useEffect(() => {\n return () => {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n };\n }, []);\n\n const resolvedContainerStyle: CSSProperties = {\n height,\n width,\n ...containerStyle,\n };\n\n if (showLoading || isNoDataVisible) {\n resolvedContainerStyle.position =\n containerStyle?.position && containerStyle.position !== 'static'\n ? containerStyle.position\n : 'relative';\n resolvedContainerStyle.isolation = 'isolate';\n }\n\n return (\n <div ref={treeGridContainerRef} className={containerClassName} style={resolvedContainerStyle}>\n <div id={id} className={className} style={omit(style, ['height', 'width'])} />\n <OwpTreeGridNoDataOverlay\n visible={isNoDataVisible}\n message={t('Message.조회된 결과가 없습니다.')}\n overlayFrame={overlayFrame}\n />\n <OwpTreeGridLoadingOverlay visible={isLoadingOverlayVisible} overlayFrame={overlayFrame} />\n </div>\n );\n};\n\nexport { OwpTreeGrid };\n"],"names":["TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","onSelect","onRowClick","onRowAdd","onRowDelete","onRowUndelete","onRowChange","onClickButton","onSave","onReady","onAfterValueChanged","treeGridInstanceRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","setIsTreeGridReady","valueChangedHandler","row","debounce","col","x","y","event","deleteType","value","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","OwpTreeGrid","containerStyle","containerClassName","className","style","layoutOverrides","data","showLoading","t","useOwpTranslation","useRef","treeGridContainerRef","latestBodyDataPropRef","bodyReloadSequenceRef","bindingLoadingStartedAtRef","bindingLoadingHideTimeoutRef","bodyReloadStartTimeoutRef","isTreeGridReady","useState","isBindingLoadingVisible","setIsBindingLoadingVisible","currentLanguage","useGetCurrentLanguage","currentLanguageIdRef","isPendingBodyReload","isLoadingOverlayVisible","isNoDataVisible","overlayFrame","useOwpTreeGridOverlayFrame","clearBindingLoadingHideTimeout","clearBodyReloadStartTimeout","useEffect","delay","useLayoutEffect","treeGrid","nextLayoutOverrides","nextBodyData","shouldApplyLayoutOverrides","isEqual","shouldApplyBodyData","reloadSequence","runBodyReload","startedAt","remainingVisibleTime","resolvedContainerStyle","jsx","omit","OwpTreeGridNoDataOverlay","OwpTreeGridLoadingOverlay"],"mappings":"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"}
1
+ {"version":3,"file":"OwpTreeGrid.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGrid.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useGetCurrentLanguage } from '@/hooks/useCurrentLanguage';\nimport { debounce, delay, get, isEmpty, isEqual, omit } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useOwpTreeGridOverlayFrame } from './hooks/useOwpTreeGridOverlayFrame';\nimport { OwpTreeGridLoadingOverlay } from './OwpTreeGridLoadingOverlay';\nimport { OwpTreeGridNoDataOverlay } from './OwpTreeGridNoDataOverlay';\nimport { applyTreeGridLayoutToGrid } from './utils';\n\ntype TreeGridLayoutScalarValue = string | number;\ntype TreeGridNestedLayoutFields = Record<string, TreeGridLayoutScalarValue>;\ntype TreeGridLayoutFields = Record<string, TreeGridLayoutScalarValue | TreeGridNestedLayoutFields>;\ntype TreeGridSectionFields = Record<string, TreeGridLayoutScalarValue>;\n\nconst TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\nexport interface OwpTreeGridLayout {\n Header?: TreeGridLayoutFields;\n Toolbar?: TreeGridSectionFields;\n Foot?: TreeGridSectionFields;\n}\n\nexport type OwpTreeGridLayoutConfig = OwpTreeGridLayout;\nexport type THeader = OwpTreeGridLayoutConfig;\nexport type OwpTreeGridBodyData<T> = Record<string, never> | [] | undefined | T[];\nexport type OwpTreeGridData<T> = OwpTreeGridBodyData<T>;\nexport type TData<T> = OwpTreeGridBodyData<T>;\nexport type OwpTreeGridRowModel<T> = TRow & T;\nexport type OwpTreeGridSelectedRows<T> = OwpTreeGridRowModel<T>[];\n\ntype OwpTreeGridSelectHandler<T> = (selectedRows: OwpTreeGridSelectedRows<T>) => void;\ntype OwpTreeGridRowAddHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridRowDeleteHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n deleteType: number,\n) => void;\ntype OwpTreeGridRowUndeleteHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridButtonClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n event: Event,\n) => void;\ntype OwpTreeGridRowClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n x: number,\n y: number,\n event: Event,\n) => void;\ntype OwpTreeGridSaveHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n autoupdate: boolean | number,\n) => void;\ntype OwpTreeGridCellValue = unknown;\ntype OwpTreeGridAfterValueChangedHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n value: OwpTreeGridCellValue,\n) => void;\n\nexport interface OwpTreeGridProps<T> {\n id: string;\n className?: string;\n containerStyle?: CSSProperties;\n containerClassName?: string;\n layoutUrl?: string;\n dataUrl?: string;\n layoutOverrides?: OwpTreeGridLayoutConfig;\n data?: OwpTreeGridBodyData<T>;\n style?: CSSProperties;\n height?: string | number;\n width?: string | number;\n useDataUrl?: boolean;\n onSelect?: OwpTreeGridSelectHandler<T>;\n onRowAdd?: OwpTreeGridRowAddHandler<T>;\n onRowDelete?: OwpTreeGridRowDeleteHandler<T>;\n onRowUndelete?: OwpTreeGridRowUndeleteHandler<T>;\n onRowChange?: OwpTreeGridAfterValueChangedHandler<T>;\n onClickButton?: OwpTreeGridButtonClickHandler<T>;\n onReady?: (grid: TGrid) => void;\n onRowClick?: OwpTreeGridRowClickHandler<T>;\n onSave?: OwpTreeGridSaveHandler<T>;\n onAfterValueChanged?: OwpTreeGridAfterValueChangedHandler<T>;\n loading?: boolean;\n showLoading?: boolean;\n}\n\ntype TreeGridEventBindingOptions<T> = Pick<\n OwpTreeGridProps<T>,\n | 'id'\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n> & {\n treeGridInstanceRef: RefObject<TGrid>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\nconst buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\nconst replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\nconst bindTreeGridEvents = <T,>({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const valueChangedHandler = onAfterValueChanged ?? onRowChange;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n\n if (typeof onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n onRowClick(grid, row as OwpTreeGridRowModel<T>, col, x, y, event);\n }, 300),\n );\n }\n\n if (typeof onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n onClickButton(grid, row as OwpTreeGridRowModel<T>, col, event);\n }, 300),\n );\n }\n\n if (typeof onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n onRowDelete(grid, row as OwpTreeGridRowModel<T>, deleteType);\n });\n }\n if (typeof onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n onRowUndelete(grid, row as OwpTreeGridRowModel<T>);\n });\n }\n if (typeof valueChangedHandler === 'function') {\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n valueChangedHandler(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n }\n if (typeof onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n onSelect(selectedRows);\n }, 100),\n );\n }\n if (typeof onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n onSave(grid, row as OwpTreeGridRowModel<T>, autoupdate);\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n setIsTreeGridReady(true);\n onReady?.(grid);\n }\n }, 100),\n );\n};\n\n/**\n * OwpTreeGrid 컴포넌트\n * @param id 식별자\n * @param containerStyle containerStyle 값\n * @param containerClassName containerClassName 값\n * @param className CSS 클래스명\n * @param style 스타일 객체\n * @param height height 값\n */\nconst OwpTreeGrid = <T,>({\n id = 'treeGridWrapper',\n containerStyle,\n containerClassName,\n className,\n style,\n height = '100%',\n width = '100%',\n layoutUrl,\n dataUrl,\n layoutOverrides,\n data,\n useDataUrl,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n loading,\n showLoading = true,\n}: OwpTreeGridProps<T>) => {\n const { t } = useOwpTranslation();\n const treeGridInstanceRef = useRef<TGrid>(null);\n const treeGridContainerRef = useRef<HTMLDivElement | null>(null);\n const latestLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(layoutOverrides);\n const latestBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(data);\n const stagedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasStagedBodyDataPropRef = useRef(false);\n const appliedLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(undefined);\n const appliedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasAppliedInitialLayoutRef = useRef(false);\n const bodyReloadSequenceRef = useRef(0);\n const bindingLoadingStartedAtRef = useRef<number | null>(null);\n const bindingLoadingHideTimeoutRef = useRef<number | undefined>(undefined);\n const bodyReloadStartTimeoutRef = useRef<number | undefined>(undefined);\n const [isTreeGridReady, setIsTreeGridReady] = useState(false);\n const [isBindingLoadingVisible, setIsBindingLoadingVisible] = useState(false);\n const currentLanguage = useGetCurrentLanguage();\n const currentLanguageIdRef = useRef(currentLanguage.id);\n const isPendingBodyReload =\n showLoading &&\n data !== undefined &&\n isTreeGridReady &&\n appliedBodyDataPropRef.current !== data;\n const isInternalLoadingVisible = showLoading && (isBindingLoadingVisible || isPendingBodyReload);\n const isLoadingOverlayVisible = (showLoading && loading === true) || isInternalLoadingVisible;\n const isNoDataVisible = !isLoadingOverlayVisible && data !== undefined && isEmpty(data);\n\n latestLayoutOverridesRef.current = layoutOverrides;\n latestBodyDataPropRef.current = data;\n\n const overlayFrame = useOwpTreeGridOverlayFrame({\n visible: isLoadingOverlayVisible || isNoDataVisible,\n containerRef: treeGridContainerRef,\n treeGridInstanceRef,\n });\n\n const clearBindingLoadingHideTimeout = () => {\n if (bindingLoadingHideTimeoutRef.current !== undefined) {\n window.clearTimeout(bindingLoadingHideTimeoutRef.current);\n bindingLoadingHideTimeoutRef.current = undefined;\n }\n };\n\n const clearBodyReloadStartTimeout = () => {\n if (bodyReloadStartTimeoutRef.current !== undefined) {\n window.clearTimeout(bodyReloadStartTimeoutRef.current);\n bodyReloadStartTimeoutRef.current = undefined;\n }\n };\n\n useEffect(() => {\n if (!showLoading) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }\n }, [showLoading]);\n\n useEffect(() => {\n if (\n currentLanguage.id !== currentLanguageIdRef.current &&\n !isEmpty(treeGridInstanceRef.current)\n ) {\n treeGridInstanceRef.current?.Dispose();\n treeGridInstanceRef.current = null;\n currentLanguageIdRef.current = currentLanguage.id;\n }\n\n if (!isEmpty(treeGridInstanceRef.current)) {\n return;\n }\n\n bindTreeGridEvents({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n });\n\n window.TreeGrid(\n buildTreeGridInitializationOptions({\n id,\n layoutUrl,\n dataUrl,\n bodyData: data,\n useDataUrl,\n width,\n height,\n languageId: currentLanguage.id,\n }),\n id,\n id,\n );\n\n return () => {\n delay(() => {\n treeGridInstanceRef.current?.Dispose();\n }, 200);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n const treeGrid = treeGridInstanceRef.current;\n const nextLayoutOverrides = latestLayoutOverridesRef.current;\n const nextBodyData = latestBodyDataPropRef.current;\n\n if (isEmpty(treeGrid) || !isTreeGridReady) {\n return;\n }\n\n const shouldApplyLayoutOverrides =\n appliedLayoutOverridesRef.current !== nextLayoutOverrides &&\n !isEqual(appliedLayoutOverridesRef.current, nextLayoutOverrides);\n const shouldApplyBodyData =\n appliedBodyDataPropRef.current !== nextBodyData &&\n (!hasStagedBodyDataPropRef.current || stagedBodyDataPropRef.current !== nextBodyData);\n\n if (!shouldApplyLayoutOverrides && !shouldApplyBodyData) {\n return;\n }\n\n if (shouldApplyLayoutOverrides) {\n applyTreeGridLayoutToGrid(treeGrid, nextLayoutOverrides, shouldApplyBodyData);\n appliedLayoutOverridesRef.current = nextLayoutOverrides;\n }\n\n if (shouldApplyBodyData) {\n const reloadSequence = bodyReloadSequenceRef.current + 1;\n const runBodyReload = () => {\n const bodyDataToApply = stagedBodyDataPropRef.current;\n\n bodyReloadStartTimeoutRef.current = undefined;\n\n replaceTreeGridBodyData(treeGrid, bodyDataToApply, () => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n appliedBodyDataPropRef.current = bodyDataToApply;\n\n if (stagedBodyDataPropRef.current === bodyDataToApply) {\n stagedBodyDataPropRef.current = undefined;\n hasStagedBodyDataPropRef.current = false;\n }\n\n const startedAt = bindingLoadingStartedAtRef.current;\n\n if (!showLoading || startedAt === null) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n const remainingVisibleTime = Math.max(\n 0,\n TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS - (Date.now() - startedAt),\n );\n\n clearBindingLoadingHideTimeout();\n\n if (remainingVisibleTime === 0) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = undefined;\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }, remainingVisibleTime);\n });\n };\n\n bodyReloadSequenceRef.current = reloadSequence;\n stagedBodyDataPropRef.current = nextBodyData;\n hasStagedBodyDataPropRef.current = true;\n\n if (showLoading && nextBodyData !== undefined) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = Date.now();\n setIsBindingLoadingVisible(true);\n bodyReloadStartTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n runBodyReload();\n }, 0);\n } else {\n runBodyReload();\n }\n }\n }, [isTreeGridReady, layoutOverrides, data, showLoading]);\n\n useEffect(() => {\n return () => {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n };\n }, []);\n\n const resolvedContainerStyle: CSSProperties = {\n height,\n width,\n ...containerStyle,\n };\n\n if (showLoading || isNoDataVisible) {\n resolvedContainerStyle.position =\n containerStyle?.position && containerStyle.position !== 'static'\n ? containerStyle.position\n : 'relative';\n resolvedContainerStyle.isolation = 'isolate';\n }\n\n return (\n <div ref={treeGridContainerRef} className={containerClassName} style={resolvedContainerStyle}>\n <div id={id} className={className} style={omit(style, ['height', 'width'])} />\n <OwpTreeGridNoDataOverlay\n visible={isNoDataVisible}\n message={t('Message.조회된 결과가 없습니다.')}\n overlayFrame={overlayFrame}\n />\n <OwpTreeGridLoadingOverlay visible={isLoadingOverlayVisible} overlayFrame={overlayFrame} />\n </div>\n );\n};\n\nexport { OwpTreeGrid };\n"],"names":["TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","onSelect","onRowClick","onRowAdd","onRowDelete","onRowUndelete","onRowChange","onClickButton","onSave","onReady","onAfterValueChanged","treeGridInstanceRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","setIsTreeGridReady","valueChangedHandler","row","debounce","col","x","y","event","deleteType","value","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","OwpTreeGrid","containerStyle","containerClassName","className","style","layoutOverrides","data","loading","showLoading","t","useOwpTranslation","useRef","treeGridContainerRef","latestBodyDataPropRef","stagedBodyDataPropRef","hasStagedBodyDataPropRef","bodyReloadSequenceRef","bindingLoadingStartedAtRef","bindingLoadingHideTimeoutRef","bodyReloadStartTimeoutRef","isTreeGridReady","useState","isBindingLoadingVisible","setIsBindingLoadingVisible","currentLanguage","useGetCurrentLanguage","currentLanguageIdRef","isPendingBodyReload","isLoadingOverlayVisible","isNoDataVisible","overlayFrame","useOwpTreeGridOverlayFrame","clearBindingLoadingHideTimeout","clearBodyReloadStartTimeout","useEffect","delay","useLayoutEffect","treeGrid","nextLayoutOverrides","nextBodyData","shouldApplyLayoutOverrides","isEqual","shouldApplyBodyData","reloadSequence","runBodyReload","bodyDataToApply","startedAt","remainingVisibleTime","resolvedContainerStyle","jsx","omit","OwpTreeGridNoDataOverlay","OwpTreeGridLoadingOverlay"],"mappings":"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"}
@@ -2,7 +2,7 @@ var r = Object.defineProperty;
2
2
  var n = (e, i) => r(e, "name", { value: i, configurable: !0 });
3
3
  import { jsx as o } 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 p from "@mui/material/Typography";
5
- import { TREE_GRID_NO_DATA_OVERLAY_Z_INDEX as s } from "./hooks/useOwpTreeGridOverlayFrame.js";
5
+ import { TREE_GRID_NO_DATA_OVERLAY_Z_INDEX as l } from "./hooks/useOwpTreeGridOverlayFrame.js";
6
6
  const c = /* @__PURE__ */ n(({
7
7
  visible: e,
8
8
  message: i,
@@ -17,7 +17,7 @@ const c = /* @__PURE__ */ n(({
17
17
  top: t.top,
18
18
  width: t.width,
19
19
  height: t.height,
20
- zIndex: s,
20
+ zIndex: l,
21
21
  display: "flex",
22
22
  alignItems: "center",
23
23
  justifyContent: "center",
@@ -26,11 +26,10 @@ const c = /* @__PURE__ */ n(({
26
26
  children: /* @__PURE__ */ o(
27
27
  p,
28
28
  {
29
- color: "text.secondary",
30
29
  sx: {
30
+ color: "#111112",
31
31
  fontFamily: "RobotoLight, sans-serif",
32
32
  fontSize: "14px",
33
- fontWeight: 700,
34
33
  lineHeight: "16px",
35
34
  letterSpacing: "0.04em"
36
35
  },
@@ -1 +1 @@
1
- {"version":3,"file":"OwpTreeGridNoDataOverlay.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography';\nimport {\n type OwpTreeGridOverlayFrame,\n TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n} from './hooks/useOwpTreeGridOverlayFrame';\n\ntype OwpTreeGridNoDataOverlayProps = {\n visible: boolean;\n message: string;\n overlayFrame: OwpTreeGridOverlayFrame;\n};\n\n/**\n * TreeGrid no-data overlay\n * @param visible overlay visibility\n * @param message no-data message\n * @param overlayFrame overlay frame\n */\nconst OwpTreeGridNoDataOverlay = ({\n visible,\n message,\n overlayFrame,\n}: OwpTreeGridNoDataOverlayProps) => {\n if (!visible) {\n return null;\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: overlayFrame.left,\n top: overlayFrame.top,\n width: overlayFrame.width,\n height: overlayFrame.height,\n zIndex: TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n }}\n >\n <Typography\n color=\"text.secondary\"\n sx={{\n fontFamily: 'RobotoLight, sans-serif',\n fontSize: '14px',\n fontWeight: 700,\n lineHeight: '16px',\n letterSpacing: '0.04em',\n }}\n >\n {message}\n </Typography>\n </div>\n );\n};\n\nexport { OwpTreeGridNoDataOverlay };\n"],"names":["OwpTreeGridNoDataOverlay","__name","visible","message","overlayFrame","jsx","TREE_GRID_NO_DATA_OVERLAY_Z_INDEX","Typography"],"mappings":";;;;;AAkBA,MAAMA,IAA2B,gBAAAC,EAAA,CAAC;AAAA,EAChC,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AACF,MACOF,IAKH,gBAAAG;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAMD,EAAa;AAAA,MACnB,KAAKA,EAAa;AAAA,MAClB,OAAOA,EAAa;AAAA,MACpB,QAAQA,EAAa;AAAA,MACrB,QAAQE;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,eAAe;AAAA,IAAA;AAAA,IAGjB,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,IAAI;AAAA,UACF,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,eAAe;AAAA,QAAA;AAAA,QAGhB,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAAA,IA9BK,MANsB;"}
1
+ {"version":3,"file":"OwpTreeGridNoDataOverlay.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography';\nimport {\n type OwpTreeGridOverlayFrame,\n TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n} from './hooks/useOwpTreeGridOverlayFrame';\n\ntype OwpTreeGridNoDataOverlayProps = {\n visible: boolean;\n message: string;\n overlayFrame: OwpTreeGridOverlayFrame;\n};\n\n/**\n * TreeGrid no-data overlay\n * @param visible overlay visibility\n * @param message no-data message\n * @param overlayFrame overlay frame\n */\nconst OwpTreeGridNoDataOverlay = ({\n visible,\n message,\n overlayFrame,\n}: OwpTreeGridNoDataOverlayProps) => {\n if (!visible) {\n return null;\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: overlayFrame.left,\n top: overlayFrame.top,\n width: overlayFrame.width,\n height: overlayFrame.height,\n zIndex: TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n }}\n >\n <Typography\n sx={{\n color: '#111112',\n fontFamily: 'RobotoLight, sans-serif',\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0.04em',\n }}\n >\n {message}\n </Typography>\n </div>\n );\n};\n\nexport { OwpTreeGridNoDataOverlay };\n"],"names":["OwpTreeGridNoDataOverlay","__name","visible","message","overlayFrame","jsx","TREE_GRID_NO_DATA_OVERLAY_Z_INDEX","Typography"],"mappings":";;;;;AAkBA,MAAMA,IAA2B,gBAAAC,EAAA,CAAC;AAAA,EAChC,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AACF,MACOF,IAKH,gBAAAG;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAMD,EAAa;AAAA,MACnB,KAAKA,EAAa;AAAA,MAClB,OAAOA,EAAa;AAAA,MACpB,QAAQA,EAAa;AAAA,MACrB,QAAQE;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,eAAe;AAAA,IAAA;AAAA,IAGjB,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,eAAe;AAAA,QAAA;AAAA,QAGhB,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAAA,IA7BK,MANsB;"}
@@ -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/constants2.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/constants.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/index9.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/index8.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/index15.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 n = Object.defineProperty;
2
2
  var G = (r, t) => n(r, "name", { value: t, configurable: !0 });
3
- import { __exports as L } from "../../../../../../../../_virtual/constants3.js";
3
+ import { __exports as L } from "../../../../../../../../_virtual/constants2.js";
4
4
  var e;
5
5
  function o() {
6
6
  return e ? L : (e = 1, Object.defineProperty(L, "__esModule", {
@@ -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/index10.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/index16.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/constants.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/constants3.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/index11.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/index12.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/index14.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/index13.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/index17.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 t = Object.defineProperty;
2
2
  var i = (e, o) => t(e, "name", { value: o, configurable: !0 });
3
- import { __module as r } from "../../../../../_virtual/index6.js";
3
+ import { __module as r } from "../../../../../_virtual/index17.js";
4
4
  import { __require as p } from "../../../react-is@16.13.1/node_modules/react-is/index.js";
5
5
  import { __require as u } from "./factoryWithTypeCheckers.js";
6
6
  import { __require as a } from "./factoryWithThrowingShims.js";
@@ -1,7 +1,7 @@
1
1
  var d = Object.defineProperty;
2
2
  var f = (n, a) => d(n, "name", { value: a, configurable: !0 });
3
3
  import r from "react";
4
- import e from "../../../../../../_virtual/index5.js";
4
+ import e from "../../../../../../_virtual/index16.js";
5
5
  import "../../../../imask@7.6.1/node_modules/imask/esm/controls/input.js";
6
6
  import m from "../../../../imask@7.6.1/node_modules/imask/esm/core/holder.js";
7
7
  import "../../../../imask@7.6.1/node_modules/imask/esm/masked/factory.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/index7.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,6 +1,6 @@
1
1
  var c = Object.defineProperty;
2
2
  var a = (r, e) => c(r, "name", { value: e, configurable: !0 });
3
- import n from "../../../../../../_virtual/index5.js";
3
+ import n from "../../../../../../_virtual/index16.js";
4
4
  import m from "react-dom";
5
5
  import t from "react";
6
6
  import u from "./useWaitForDOMRef.js";
@@ -47,6 +47,7 @@ export interface OwpTreeGridProps<T> {
47
47
  onRowClick?: OwpTreeGridRowClickHandler<T>;
48
48
  onSave?: OwpTreeGridSaveHandler<T>;
49
49
  onAfterValueChanged?: OwpTreeGridAfterValueChangedHandler<T>;
50
+ loading?: boolean;
50
51
  showLoading?: boolean;
51
52
  }
52
53
  /**
@@ -58,5 +59,5 @@ export interface OwpTreeGridProps<T> {
58
59
  * @param style 스타일 객체
59
60
  * @param height height 값
60
61
  */
61
- declare const OwpTreeGrid: <T>({ id, containerStyle, containerClassName, className, style, height, width, layoutUrl, dataUrl, layoutOverrides, data, useDataUrl, onSelect, onRowClick, onRowAdd, onRowDelete, onRowUndelete, onRowChange, onClickButton, onSave, onReady, onAfterValueChanged, showLoading, }: OwpTreeGridProps<T>) => import("react/jsx-runtime").JSX.Element;
62
+ declare const OwpTreeGrid: <T>({ id, containerStyle, containerClassName, className, style, height, width, layoutUrl, dataUrl, layoutOverrides, data, useDataUrl, onSelect, onRowClick, onRowAdd, onRowDelete, onRowUndelete, onRowChange, onClickButton, onSave, onReady, onAfterValueChanged, loading, showLoading, }: OwpTreeGridProps<T>) => import("react/jsx-runtime").JSX.Element;
62
63
  export { OwpTreeGrid };
@@ -1,10 +1,10 @@
1
1
  var l = Object.defineProperty;
2
- var o = (e, r) => l(e, "name", { value: r, configurable: !0 });
3
- let t;
4
- const n = /* @__PURE__ */ o((e) => "default" in e ? e.default : e, "resolveExcelJSImport"), c = /* @__PURE__ */ o(() => (t || (t = import("../_virtual/exceljs.min.js").then((e) => e.e).then((e) => n(e)).catch((e) => {
5
- throw t = void 0, e;
6
- })), t), "loadExcelJSBrowser");
2
+ var r = (e, t) => l(e, "name", { value: t, configurable: !0 });
3
+ let o;
4
+ const s = /* @__PURE__ */ r((e) => "default" in e ? e.default : e, "resolveExcelJSImport"), i = /* @__PURE__ */ r(() => (o || (o = import("exceljs").then((e) => s(e)).catch((e) => {
5
+ throw o = void 0, e;
6
+ })), o), "loadExcelJSBrowser");
7
7
  export {
8
- c as loadExcelJSBrowser
8
+ i as loadExcelJSBrowser
9
9
  };
10
10
  //# sourceMappingURL=exceljsBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceljsBrowser.js","sources":["../../src/utils/exceljsBrowser.ts"],"sourcesContent":["import type * as ExcelJSModule from 'exceljs';\n\ntype ExcelJSImportModule = typeof import('virtual:owp-exceljs-browser');\nlet excelJSBrowserPromise: Promise<typeof ExcelJSModule> | undefined;\n\n/**\n * 브라우저 배포용 exceljs 모듈 정규화\n */\nconst resolveExcelJSImport = (excelJSImport: ExcelJSImportModule) =>\n (('default' in excelJSImport ? excelJSImport.default : excelJSImport) as typeof ExcelJSModule);\n\n/**\n * 브라우저 배포용 exceljs 모듈 지연 로드\n */\nexport const loadExcelJSBrowser = () => {\n if (!excelJSBrowserPromise) {\n excelJSBrowserPromise = import('virtual:owp-exceljs-browser')\n .then((excelJSImport) => resolveExcelJSImport(excelJSImport))\n .catch((error) => {\n excelJSBrowserPromise = undefined;\n throw error;\n });\n }\n\n return excelJSBrowserPromise;\n};\n"],"names":["excelJSBrowserPromise","resolveExcelJSImport","__name","excelJSImport","loadExcelJSBrowser","error"],"mappings":";;AAGA,IAAIA;AAKJ,MAAMC,IAAuB,gBAAAC,EAAA,CAACC,MAC1B,aAAaA,IAAgBA,EAAc,UAAUA,GAD5B,yBAMhBC,IAAqB,gBAAAF,EAAA,OAC3BF,MACHA,IAAwB,OAAO,4BAA6B,mBACzD,KAAK,CAACG,MAAkBF,EAAqBE,CAAa,CAAC,EAC3D,MAAM,CAACE,MAAU;AAChB,QAAAL,IAAwB,QAClBK;AACR,CAAC,IAGEL,IAVyB;"}
1
+ {"version":3,"file":"exceljsBrowser.js","sources":["../../src/utils/exceljsBrowser.ts"],"sourcesContent":["import type * as ExcelJSModule from 'exceljs';\n\ntype ExcelJSImportModule = typeof import('exceljs');\nlet excelJSBrowserPromise: Promise<typeof ExcelJSModule> | undefined;\n\n/**\n * 브라우저 배포용 exceljs 모듈 정규화\n */\nconst resolveExcelJSImport = (excelJSImport: ExcelJSImportModule) =>\n (('default' in excelJSImport ? excelJSImport.default : excelJSImport) as typeof ExcelJSModule);\n\n/**\n * 브라우저 배포용 exceljs 모듈 지연 로드\n */\nexport const loadExcelJSBrowser = () => {\n if (!excelJSBrowserPromise) {\n excelJSBrowserPromise = import('exceljs')\n .then((excelJSImport) => resolveExcelJSImport(excelJSImport))\n .catch((error) => {\n excelJSBrowserPromise = undefined;\n throw error;\n });\n }\n\n return excelJSBrowserPromise;\n};\n"],"names":["excelJSBrowserPromise","resolveExcelJSImport","__name","excelJSImport","loadExcelJSBrowser","error"],"mappings":";;AAGA,IAAIA;AAKJ,MAAMC,IAAuB,gBAAAC,EAAA,CAACC,MAC1B,aAAaA,IAAgBA,EAAc,UAAUA,GAD5B,yBAMhBC,IAAqB,gBAAAF,EAAA,OAC3BF,MACHA,IAAwB,OAAO,SAAS,EACrC,KAAK,CAACG,MAAkBF,EAAqBE,CAAa,CAAC,EAC3D,MAAM,CAACE,MAAU;AAChB,QAAAL,IAAwB,QAClBK;AACR,CAAC,IAGEL,IAVyB;"}
@@ -1,10 +1,10 @@
1
1
  var r = Object.defineProperty;
2
- var o = (t, i) => r(t, "name", { value: i, configurable: !0 });
3
- let e;
4
- const n = /* @__PURE__ */ o(() => (e || (e = import("../_virtual/jszip.min.js").then((t) => t.j).then((t) => t.default).catch((t) => {
5
- throw e = void 0, t;
6
- })), e), "loadJSZip");
2
+ var e = (t, i) => r(t, "name", { value: i, configurable: !0 });
3
+ let o;
4
+ const a = /* @__PURE__ */ e(() => (o || (o = import("jszip").then((t) => t.default).catch((t) => {
5
+ throw o = void 0, t;
6
+ })), o), "loadJSZip");
7
7
  export {
8
- n as loadJSZip
8
+ a as loadJSZip
9
9
  };
10
10
  //# sourceMappingURL=jszipBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jszipBrowser.js","sources":["../../src/utils/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,0BAAO,mBAC1B,KAAK,CAACG,MAAgBA,EAAY,OAAO,EACzC,MAAM,CAACC,MAAU;AAChB,QAAAJ,IAAe,QACTI;AACR,CAAC,IAGEJ,IAVgB;"}
1
+ {"version":3,"file":"jszipBrowser.js","sources":["../../src/utils/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;"}