@owp/core 2.5.13 → 2.5.14
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.
- package/dist/_virtual/index3.js +2 -2
- package/dist/_virtual/index4.js +2 -2
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +105 -103
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +214 -188
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/node_modules/.pnpm/inko@1.1.1/node_modules/inko/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/index.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
- package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +2 -1
- package/dist/types/utils/treeGridUtil.d.ts +23 -0
- package/dist/utils/treeGridExportExcelUtil.js +118 -118
- package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
- package/dist/utils/treeGridUtil.js +123 -103
- package/dist/utils/treeGridUtil.js.map +1 -1
- package/dist/utils.js +81 -75
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import { getTreeGridTextResourceUrl } from '@/constants/treeGrid';\nimport { highlightTreeGridCellById } from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport { enqueueSnackbar } from 'notistack';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridColumnEditRule,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n resetTreeGridColumnEditRulesState,\n resolveTreeGridColumnEditValue,\n syncTreeGridColumnEditRules,\n type TreeGridColumnEditRuleLookup,\n type TreeGridColumnEditRulesState,\n} from './treeGridColumnEditRules';\nimport {\n countTreeGridPerf,\n logTreeGridPerf,\n measureTreeGridPerf,\n} from './utils/perf';\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\nconst TREE_GRID_SELECTED_CELL_RGB = [255, 255, 166] as const;\nconst TREE_GRID_READONLY_HOVER_CELL_RGB = [240, 240, 240] as const;\nconst TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB = [248, 248, 248] as const;\nconst TREE_GRID_PREVIEW_CELL_RGB = [255, 255, 255] as const;\nconst TREE_GRID_PREVIEW_CELL_SOFT_RGB = [255, 255, 254] as const;\nconst TREE_GRID_PREVIEW_CELL_DIM_RGB = [242, 242, 242] as const;\nconst TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE = 'Button';\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n layoutData?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n editableCellBackgroundColorValueRef: RefObject<number | undefined>;\n changedCellBackgroundColorRef: RefObject<string>;\n selectedCellBackgroundColorRef: RefObject<string>;\n hoverCellBackgroundColorRef: RefObject<string>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n latestColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n latestColumnEditRuleLookupRef: RefObject<TreeGridColumnEditRuleLookup | undefined>;\n appliedColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n columnEditRulesStateRef: RefObject<TreeGridColumnEditRulesState>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst isTreeGridInlineUrl = (url?: string) => {\n return url?.startsWith('data:') || url?.startsWith('blob:');\n};\n\nconst treeGridInlineBlobUrlCache = new Map<string, string>();\n\nconst resolveTreeGridInlineUrl = (url?: string) => {\n if (!url || !url.startsWith('data:')) {\n return url;\n }\n\n const cachedUrl = treeGridInlineBlobUrlCache.get(url);\n\n if (cachedUrl) {\n return cachedUrl;\n }\n\n try {\n const [meta, encodedData = ''] = url.split(',', 2);\n const match = /^data:([^;]*)(;base64)?$/i.exec(meta);\n const mimeType = match?.[1] || 'application/octet-stream';\n const decodedData = match?.[2] ? atob(encodedData) : decodeURIComponent(encodedData);\n const bytes = new Uint8Array(decodedData.length);\n\n for (let index = 0; index < decodedData.length; index += 1) {\n bytes[index] = decodedData.charCodeAt(index);\n }\n\n const blobUrl = URL.createObjectURL(new Blob([bytes], { type: mimeType }));\n\n treeGridInlineBlobUrlCache.set(url, blobUrl);\n\n return blobUrl;\n } catch {\n return url;\n }\n};\n\nconst appendNoCacheQuery = (url: string) => {\n if (!url || isTreeGridInlineUrl(url)) {\n return resolveTreeGridInlineUrl(url);\n }\n\n const hashIndex = url.indexOf('#');\n const [baseUrl, hashFragment] =\n hashIndex >= 0 ? [url.slice(0, hashIndex), url.slice(hashIndex)] : [url, ''];\n const querySeparator = baseUrl.includes('?') ? '&' : '?';\n\n return `${baseUrl}${querySeparator}noCache=${Date.now()}${hashFragment}`;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n if (!dataUrl) {\n return '';\n }\n\n if (isTreeGridInlineUrl(dataUrl) || dataUrl.includes('assets')) {\n return appendNoCacheQuery(dataUrl);\n }\n\n // @ts-expect-error - API base URL env is provided by host app\n return appendNoCacheQuery(`${import.meta.env.VITE_API_BASE_URL}/${dataUrl}`);\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\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n layoutData,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: layoutData ? { Data: layoutData } : { 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\ntype TreeGridCellSpanAttribute = 'Span' | 'RowSpan';\n\n/**\n * TreeGrid span 속성 숫자 변환\n * @param value span 속성 원본값\n */\nconst parseTreeGridPositiveNumber = (value: unknown) => {\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? value : undefined;\n }\n\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmedValue = value.trim();\n\n if (!trimmedValue) {\n return undefined;\n }\n\n const numericValue = Number(trimmedValue);\n\n return Number.isFinite(numericValue) && numericValue > 0 ? numericValue : undefined;\n};\n\n/**\n * TreeGrid 헤더 셀 span 속성 조회\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n * @param attributeName span 속성 이름\n */\nconst getTreeGridHeaderCellSpanAttribute = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n attributeName: TreeGridCellSpanAttribute,\n) => {\n if (!row || !col) {\n return undefined;\n }\n\n const attributeValue = grid.GetAttribute(row, col, attributeName);\n const resolvedAttributeValue = parseTreeGridPositiveNumber(attributeValue);\n\n if (resolvedAttributeValue !== undefined) {\n return resolvedAttributeValue;\n }\n\n return parseTreeGridPositiveNumber(\n (row as unknown as Record<string, unknown>)[`${col}${attributeName}`],\n );\n};\n\n/**\n * TreeGrid 그룹 전용 헤더 셀 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isTreeGridGroupHeaderCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || row.Fixed !== 'Head') {\n return false;\n }\n\n const colSpan = getTreeGridHeaderCellSpanAttribute(grid, row, col, 'Span') ?? 1;\n\n if (colSpan <= 1) {\n return false;\n }\n\n const rowSpan = getTreeGridHeaderCellSpanAttribute(grid, row, col, 'RowSpan') ?? 1;\n\n return rowSpan === 1;\n};\n\n/**\n * TreeGrid 그룹 헤더 sort 버튼 비활성 셀 속성 적용\n * @param grid TreeGrid 인스턴스\n * @param gridId TreeGrid 인스턴스 ID\n * @param refreshRows 반영 후 헤더 행 refresh 여부\n */\nconst applyTreeGridGroupHeaderSortButtonAttributes = (\n grid: TGrid,\n gridId: string,\n refreshRows = false,\n) => {\n const applyStartedAt =\n typeof performance !== 'undefined' ? performance.now() : Date.now();\n const headerRows =\n typeof grid.GetFixedRows === 'function'\n ? grid.GetFixedRows().filter((row) => row.Fixed === 'Head')\n : [];\n const cols = typeof grid.GetCols === 'function' ? grid.GetCols() : [];\n\n if (!headerRows.length || !cols.length) {\n return;\n }\n\n const updatedRows = new Set<TRow>();\n let updatedCellCount = 0;\n\n if (typeof grid.StartUpdate === 'function') {\n grid.StartUpdate();\n }\n\n try {\n headerRows.forEach((row) => {\n cols.forEach((col) => {\n if (!isTreeGridGroupHeaderCell(grid, row, col)) {\n return;\n }\n\n if (grid.GetAttribute(row, col, TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE) === '') {\n return;\n }\n\n grid.SetAttribute(row, col, TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE, '', 0, 0);\n updatedRows.add(row);\n updatedCellCount += 1;\n });\n });\n } finally {\n if (typeof grid.EndUpdate === 'function') {\n grid.EndUpdate();\n }\n }\n\n if (!updatedRows.size) {\n return;\n }\n\n if (refreshRows) {\n updatedRows.forEach((row) => {\n if (typeof grid.RefreshRow === 'function') {\n grid.RefreshRow(row);\n }\n });\n }\n\n countTreeGridPerf(gridId, 'group header button attribute apply');\n measureTreeGridPerf(gridId, 'group header button attribute apply', applyStartedAt, {\n updatedCellCount,\n updatedRowCount: updatedRows.size,\n });\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n editableCellBackgroundColorValue: number | undefined,\n) => {\n if (\n !row ||\n editableCellBackgroundColorValue === undefined ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return undefined;\n }\n\n return editableCellBackgroundColorValue;\n};\n\nconst matchesTreeGridRgbColor = (\n r: number,\n g: number,\n b: number,\n expected: readonly [number, number, number],\n) => {\n return r === expected[0] && g === expected[1] && b === expected[2];\n};\n\nconst isTreeGridSelectedCellState = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n const selected = grid.IsSelected(row, col);\n\n return selected !== 0 && selected !== false && selected !== undefined && selected !== null;\n};\n\nconst isTreeGridReadonlyHoveredCellState = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (!row || !col || !isDisplayTreeGridRow(row) || grid.ARow !== row || grid.ACol !== col) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 0;\n};\n\nconst isTreeGridPreviewHoveredCellState = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (!row || !col || !isDisplayTreeGridRow(row) || grid.ARow !== row || grid.ACol !== col) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 2;\n};\n\nconst resolveTreeGridStateBackgroundColor = ({\n grid,\n row,\n col,\n r,\n g,\n b,\n selectedCellBackgroundColor,\n hoverCellBackgroundColor,\n}: {\n grid: TGrid;\n row: TRow | null | undefined;\n col: string;\n r: number;\n g: number;\n b: number;\n selectedCellBackgroundColor: string;\n hoverCellBackgroundColor: string;\n}) => {\n if (\n isTreeGridSelectedCellState(grid, row, col) &&\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_SELECTED_CELL_RGB)\n ) {\n return selectedCellBackgroundColor;\n }\n\n if (\n isTreeGridReadonlyHoveredCellState(grid, row, col) &&\n (matchesTreeGridRgbColor(r, g, b, TREE_GRID_READONLY_HOVER_CELL_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB))\n ) {\n return hoverCellBackgroundColor;\n }\n\n if (\n isTreeGridPreviewHoveredCellState(grid, row, col) &&\n (matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_SOFT_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_DIM_RGB))\n ) {\n return hoverCellBackgroundColor;\n }\n\n return undefined;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const 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\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n editableCellBackgroundColorValueRef,\n changedCellBackgroundColorRef,\n selectedCellBackgroundColorRef,\n hoverCellBackgroundColorRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n latestColumnEditRulesRef,\n latestColumnEditRuleLookupRef,\n appliedColumnEditRulesRef,\n columnEditRulesStateRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n } else {\n window.TGSetEvent('OnRowDelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n if (typeof initialEventHandlers?.onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n } else {\n window.TGSetEvent('OnRowUndelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current || !isDisplayTreeGridRow(row)) {\n return undefined;\n }\n\n return getEditableTreeGridCellDefaultColor(\n grid,\n row,\n col,\n editableCellBackgroundColorValueRef.current,\n );\n });\n window.TGSetEvent('OnGetColor', id, (grid, row, col, r, g, b, type) => {\n if (type) {\n return undefined;\n }\n\n return resolveTreeGridStateBackgroundColor({\n grid,\n row,\n col,\n r,\n g,\n b,\n selectedCellBackgroundColor: selectedCellBackgroundColorRef.current,\n hoverCellBackgroundColor: hoverCellBackgroundColorRef.current,\n });\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n const columnEditRuleLookup = latestColumnEditRuleLookupRef.current;\n const resolvedEditValue = columnEditRuleLookup\n ? resolveTreeGridColumnEditValue(columnEditRuleLookup, col, value)\n : undefined;\n const nextValue = resolvedEditValue?.value;\n const resolvedValue = nextValue ?? value;\n\n if (resolvedEditValue?.invalidText) {\n enqueueSnackbar(resolvedEditValue.invalidText, { variant: 'warning' });\n }\n\n if (nextValue !== undefined) {\n grid.SetValue(row, col, nextValue, 1);\n }\n\n if (highlightChangedCellsRef.current && isDisplayTreeGridRow(row)) {\n highlightTreeGridCellById(id, {\n row,\n col,\n backgroundColor: changedCellBackgroundColorRef.current,\n });\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, resolvedValue);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n window.TGSetEvent('OnSort', id, (grid, col) => {\n if (!col || !isTreeGridGroupHeaderCell(grid, grid.ARow, col)) {\n return undefined;\n }\n\n countTreeGridPerf(id, 'group header sort blocked');\n logTreeGridPerf(id, 'group header sort blocked', {\n rowId: grid.ARow?.id,\n col,\n });\n\n return -1;\n });\n window.TGSetEvent('OnRenderStart', id, (grid) => {\n applyTreeGridGroupHeaderSortButtonAttributes(grid, id, false);\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 resetTreeGridColumnEditRulesState(columnEditRulesStateRef.current);\n syncTreeGridColumnEditRules(\n grid,\n latestColumnEditRuleLookupRef.current,\n columnEditRulesStateRef.current,\n );\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n appliedColumnEditRulesRef.current = latestColumnEditRulesRef.current;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n applyTreeGridGroupHeaderSortButtonAttributes(grid, id, true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_SELECTED_CELL_RGB","TREE_GRID_READONLY_HOVER_CELL_RGB","TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB","TREE_GRID_PREVIEW_CELL_RGB","TREE_GRID_PREVIEW_CELL_SOFT_RGB","TREE_GRID_PREVIEW_CELL_DIM_RGB","TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE","isTreeGridInlineUrl","__name","url","treeGridInlineBlobUrlCache","resolveTreeGridInlineUrl","cachedUrl","meta","encodedData","match","mimeType","decodedData","bytes","index","blobUrl","appendNoCacheQuery","hashIndex","baseUrl","hashFragment","querySeparator","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","layoutData","width","height","languageId","getTreeGridTextResourceUrl","getTreeGridBodyData","grid","get","parseTreeGridPositiveNumber","value","trimmedValue","numericValue","getTreeGridHeaderCellSpanAttribute","row","col","attributeName","attributeValue","resolvedAttributeValue","isTreeGridGroupHeaderCell","applyTreeGridGroupHeaderSortButtonAttributes","gridId","refreshRows","applyStartedAt","headerRows","cols","updatedRows","updatedCellCount","countTreeGridPerf","measureTreeGridPerf","getTreeGridBodyDataCount","isVisibleTreeGridRow","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","editableCellBackgroundColorValue","matchesTreeGridRgbColor","r","g","b","expected","isTreeGridSelectedCellState","selected","isTreeGridReadonlyHoveredCellState","isTreeGridPreviewHoveredCellState","resolveTreeGridStateBackgroundColor","selectedCellBackgroundColor","hoverCellBackgroundColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","editableCellBackgroundColorValueRef","changedCellBackgroundColorRef","selectedCellBackgroundColorRef","hoverCellBackgroundColorRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","latestColumnEditRulesRef","latestColumnEditRuleLookupRef","appliedColumnEditRulesRef","columnEditRulesStateRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","type","columnEditRuleLookup","resolvedEditValue","resolveTreeGridColumnEditValue","nextValue","resolvedValue","enqueueSnackbar","highlightTreeGridCellById","valueChangedHandler","selectedRows","autoupdate","logTreeGridPerf","latestLayoutOverrides","applyTreeGridLayoutToGrid","resetTreeGridColumnEditRulesState","syncTreeGridColumnEditRules"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import {\n getTreeGridTextResourceUrl,\n TREEGRID_CELL_HIGHLIGHT_CLASS,\n} from '@/constants/treeGrid';\nimport {\n appendTreeGridAddedRowHighlightColumn,\n getTreeGridAddedRowHighlightColumns,\n highlightTreeGridCellById,\n isTreeGridRowAddedById,\n} from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport { enqueueSnackbar } from 'notistack';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridColumnEditRule,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n resetTreeGridColumnEditRulesState,\n resolveTreeGridColumnEditValue,\n syncTreeGridColumnEditRules,\n type TreeGridColumnEditRuleLookup,\n type TreeGridColumnEditRulesState,\n} from './treeGridColumnEditRules';\nimport {\n countTreeGridPerf,\n logTreeGridPerf,\n measureTreeGridPerf,\n} from './utils/perf';\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\nconst TREE_GRID_SELECTED_CELL_RGB = [255, 255, 166] as const;\nconst TREE_GRID_READONLY_HOVER_CELL_RGB = [240, 240, 240] as const;\nconst TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB = [248, 248, 248] as const;\nconst TREE_GRID_PREVIEW_CELL_RGB = [255, 255, 255] as const;\nconst TREE_GRID_PREVIEW_CELL_SOFT_RGB = [255, 255, 254] as const;\nconst TREE_GRID_PREVIEW_CELL_DIM_RGB = [242, 242, 242] as const;\nconst TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE = 'Button';\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n layoutData?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n syncDeletedRowCanEditRef: RefObject<boolean>;\n editableCellBackgroundColorValueRef: RefObject<number | undefined>;\n changedCellBackgroundColorRef: RefObject<string>;\n selectedCellBackgroundColorRef: RefObject<string>;\n hoverCellBackgroundColorRef: RefObject<string>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n latestColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n latestColumnEditRuleLookupRef: RefObject<TreeGridColumnEditRuleLookup | undefined>;\n appliedColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n columnEditRulesStateRef: RefObject<TreeGridColumnEditRulesState>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst isTreeGridInlineUrl = (url?: string) => {\n return url?.startsWith('data:') || url?.startsWith('blob:');\n};\n\nconst treeGridInlineBlobUrlCache = new Map<string, string>();\n\nconst resolveTreeGridInlineUrl = (url?: string) => {\n if (!url || !url.startsWith('data:')) {\n return url;\n }\n\n const cachedUrl = treeGridInlineBlobUrlCache.get(url);\n\n if (cachedUrl) {\n return cachedUrl;\n }\n\n try {\n const [meta, encodedData = ''] = url.split(',', 2);\n const match = /^data:([^;]*)(;base64)?$/i.exec(meta);\n const mimeType = match?.[1] || 'application/octet-stream';\n const decodedData = match?.[2] ? atob(encodedData) : decodeURIComponent(encodedData);\n const bytes = new Uint8Array(decodedData.length);\n\n for (let index = 0; index < decodedData.length; index += 1) {\n bytes[index] = decodedData.charCodeAt(index);\n }\n\n const blobUrl = URL.createObjectURL(new Blob([bytes], { type: mimeType }));\n\n treeGridInlineBlobUrlCache.set(url, blobUrl);\n\n return blobUrl;\n } catch {\n return url;\n }\n};\n\nconst appendNoCacheQuery = (url: string) => {\n if (!url || isTreeGridInlineUrl(url)) {\n return resolveTreeGridInlineUrl(url);\n }\n\n const hashIndex = url.indexOf('#');\n const [baseUrl, hashFragment] =\n hashIndex >= 0 ? [url.slice(0, hashIndex), url.slice(hashIndex)] : [url, ''];\n const querySeparator = baseUrl.includes('?') ? '&' : '?';\n\n return `${baseUrl}${querySeparator}noCache=${Date.now()}${hashFragment}`;\n};\n\ntype TreeGridDeletedRowStateSyncOptions = {\n canEdit?: 1 | 2;\n highlightColumns?: readonly string[];\n highlightBackgroundColor?: string;\n};\n\n/**\n * 삭제 상태 변경 행 시각 상태 동기화\n * @param grid TreeGrid 인스턴스\n * @param row 대상 행\n * @param options 동기화 옵션\n */\nconst syncTreeGridDeletedRowState = (\n grid: TGrid | null | undefined,\n row: TRow,\n options: TreeGridDeletedRowStateSyncOptions,\n) => {\n if (!grid) {\n return;\n }\n\n const canEdit = options.canEdit;\n const highlightColumns = options.highlightColumns ?? [];\n const highlightBackgroundColor = options.highlightBackgroundColor;\n\n if (canEdit === undefined && !highlightColumns.length) {\n return;\n }\n\n if (typeof grid.StartUpdate === 'function') {\n grid.StartUpdate();\n }\n\n try {\n if (canEdit !== undefined) {\n row.CanEdit = canEdit;\n }\n\n highlightColumns.forEach((col) => {\n if (!col) {\n return;\n }\n\n grid.SetValue(\n row,\n `${col}Class`,\n highlightBackgroundColor ? TREEGRID_CELL_HIGHLIGHT_CLASS : '',\n 0,\n );\n grid.SetValue(row, `${col}Color`, highlightBackgroundColor ?? '', 0);\n });\n } finally {\n if (typeof grid.EndUpdate === 'function') {\n grid.EndUpdate();\n }\n }\n\n if (typeof grid.RefreshRow === 'function') {\n grid.RefreshRow(row);\n }\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n if (!dataUrl) {\n return '';\n }\n\n if (isTreeGridInlineUrl(dataUrl) || dataUrl.includes('assets')) {\n return appendNoCacheQuery(dataUrl);\n }\n\n // @ts-expect-error - API base URL env is provided by host app\n return appendNoCacheQuery(`${import.meta.env.VITE_API_BASE_URL}/${dataUrl}`);\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\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n layoutData,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: layoutData ? { Data: layoutData } : { 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\ntype TreeGridCellSpanAttribute = 'Span' | 'RowSpan';\n\n/**\n * TreeGrid span 속성 숫자 변환\n * @param value span 속성 원본값\n */\nconst parseTreeGridPositiveNumber = (value: unknown) => {\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? value : undefined;\n }\n\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmedValue = value.trim();\n\n if (!trimmedValue) {\n return undefined;\n }\n\n const numericValue = Number(trimmedValue);\n\n return Number.isFinite(numericValue) && numericValue > 0 ? numericValue : undefined;\n};\n\n/**\n * TreeGrid 헤더 셀 span 속성 조회\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n * @param attributeName span 속성 이름\n */\nconst getTreeGridHeaderCellSpanAttribute = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n attributeName: TreeGridCellSpanAttribute,\n) => {\n if (!row || !col) {\n return undefined;\n }\n\n const attributeValue = grid.GetAttribute(row, col, attributeName);\n const resolvedAttributeValue = parseTreeGridPositiveNumber(attributeValue);\n\n if (resolvedAttributeValue !== undefined) {\n return resolvedAttributeValue;\n }\n\n return parseTreeGridPositiveNumber(\n (row as unknown as Record<string, unknown>)[`${col}${attributeName}`],\n );\n};\n\n/**\n * TreeGrid 그룹 전용 헤더 셀 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isTreeGridGroupHeaderCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || row.Fixed !== 'Head') {\n return false;\n }\n\n const colSpan = getTreeGridHeaderCellSpanAttribute(grid, row, col, 'Span') ?? 1;\n\n if (colSpan <= 1) {\n return false;\n }\n\n const rowSpan = getTreeGridHeaderCellSpanAttribute(grid, row, col, 'RowSpan') ?? 1;\n\n return rowSpan === 1;\n};\n\n/**\n * TreeGrid 그룹 헤더 sort 버튼 비활성 셀 속성 적용\n * @param grid TreeGrid 인스턴스\n * @param gridId TreeGrid 인스턴스 ID\n * @param refreshRows 반영 후 헤더 행 refresh 여부\n */\nconst applyTreeGridGroupHeaderSortButtonAttributes = (\n grid: TGrid,\n gridId: string,\n refreshRows = false,\n) => {\n const applyStartedAt =\n typeof performance !== 'undefined' ? performance.now() : Date.now();\n const headerRows =\n typeof grid.GetFixedRows === 'function'\n ? grid.GetFixedRows().filter((row) => row.Fixed === 'Head')\n : [];\n const cols = typeof grid.GetCols === 'function' ? grid.GetCols() : [];\n\n if (!headerRows.length || !cols.length) {\n return;\n }\n\n const updatedRows = new Set<TRow>();\n let updatedCellCount = 0;\n\n if (typeof grid.StartUpdate === 'function') {\n grid.StartUpdate();\n }\n\n try {\n headerRows.forEach((row) => {\n cols.forEach((col) => {\n if (!isTreeGridGroupHeaderCell(grid, row, col)) {\n return;\n }\n\n if (grid.GetAttribute(row, col, TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE) === '') {\n return;\n }\n\n grid.SetAttribute(row, col, TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE, '', 0, 0);\n updatedRows.add(row);\n updatedCellCount += 1;\n });\n });\n } finally {\n if (typeof grid.EndUpdate === 'function') {\n grid.EndUpdate();\n }\n }\n\n if (!updatedRows.size) {\n return;\n }\n\n if (refreshRows) {\n updatedRows.forEach((row) => {\n if (typeof grid.RefreshRow === 'function') {\n grid.RefreshRow(row);\n }\n });\n }\n\n countTreeGridPerf(gridId, 'group header button attribute apply');\n measureTreeGridPerf(gridId, 'group header button attribute apply', applyStartedAt, {\n updatedCellCount,\n updatedRowCount: updatedRows.size,\n });\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n editableCellBackgroundColorValue: number | undefined,\n) => {\n if (\n !row ||\n editableCellBackgroundColorValue === undefined ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return undefined;\n }\n\n return editableCellBackgroundColorValue;\n};\n\nconst matchesTreeGridRgbColor = (\n r: number,\n g: number,\n b: number,\n expected: readonly [number, number, number],\n) => {\n return r === expected[0] && g === expected[1] && b === expected[2];\n};\n\nconst isTreeGridSelectedCellState = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n const selected = grid.IsSelected(row, col);\n\n return selected !== 0 && selected !== false && selected !== undefined && selected !== null;\n};\n\nconst isTreeGridReadonlyHoveredCellState = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (!row || !col || !isDisplayTreeGridRow(row) || grid.ARow !== row || grid.ACol !== col) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 0;\n};\n\nconst isTreeGridPreviewHoveredCellState = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (!row || !col || !isDisplayTreeGridRow(row) || grid.ARow !== row || grid.ACol !== col) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 2;\n};\n\nconst resolveTreeGridStateBackgroundColor = ({\n grid,\n row,\n col,\n r,\n g,\n b,\n selectedCellBackgroundColor,\n hoverCellBackgroundColor,\n}: {\n grid: TGrid;\n row: TRow | null | undefined;\n col: string;\n r: number;\n g: number;\n b: number;\n selectedCellBackgroundColor: string;\n hoverCellBackgroundColor: string;\n}) => {\n if (\n isTreeGridSelectedCellState(grid, row, col) &&\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_SELECTED_CELL_RGB)\n ) {\n return selectedCellBackgroundColor;\n }\n\n if (\n isTreeGridReadonlyHoveredCellState(grid, row, col) &&\n (matchesTreeGridRgbColor(r, g, b, TREE_GRID_READONLY_HOVER_CELL_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB))\n ) {\n return hoverCellBackgroundColor;\n }\n\n if (\n isTreeGridPreviewHoveredCellState(grid, row, col) &&\n (matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_SOFT_RGB) ||\n matchesTreeGridRgbColor(r, g, b, TREE_GRID_PREVIEW_CELL_DIM_RGB))\n ) {\n return hoverCellBackgroundColor;\n }\n\n return undefined;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const 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\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n syncDeletedRowCanEditRef,\n editableCellBackgroundColorValueRef,\n changedCellBackgroundColorRef,\n selectedCellBackgroundColorRef,\n hoverCellBackgroundColorRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n latestColumnEditRulesRef,\n latestColumnEditRuleLookupRef,\n appliedColumnEditRulesRef,\n columnEditRulesStateRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n const addedRowHighlightColumns = isTreeGridRowAddedById(row)\n ? getTreeGridAddedRowHighlightColumns(row)\n : [];\n\n syncTreeGridDeletedRowState(grid, row, {\n canEdit: syncDeletedRowCanEditRef.current !== false ? 2 : undefined,\n highlightColumns: addedRowHighlightColumns,\n });\n\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n const addedRowHighlightColumns = isTreeGridRowAddedById(row)\n ? getTreeGridAddedRowHighlightColumns(row)\n : [];\n\n syncTreeGridDeletedRowState(grid, row, {\n canEdit: syncDeletedRowCanEditRef.current !== false ? 1 : undefined,\n highlightColumns: addedRowHighlightColumns,\n highlightBackgroundColor: addedRowHighlightColumns.length\n ? changedCellBackgroundColorRef.current\n : undefined,\n });\n\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current || !isDisplayTreeGridRow(row)) {\n return undefined;\n }\n\n return getEditableTreeGridCellDefaultColor(\n grid,\n row,\n col,\n editableCellBackgroundColorValueRef.current,\n );\n });\n window.TGSetEvent('OnGetColor', id, (grid, row, col, r, g, b, type) => {\n if (type) {\n return undefined;\n }\n\n return resolveTreeGridStateBackgroundColor({\n grid,\n row,\n col,\n r,\n g,\n b,\n selectedCellBackgroundColor: selectedCellBackgroundColorRef.current,\n hoverCellBackgroundColor: hoverCellBackgroundColorRef.current,\n });\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n const columnEditRuleLookup = latestColumnEditRuleLookupRef.current;\n const resolvedEditValue = columnEditRuleLookup\n ? resolveTreeGridColumnEditValue(columnEditRuleLookup, col, value)\n : undefined;\n const nextValue = resolvedEditValue?.value;\n const resolvedValue = nextValue ?? value;\n\n if (resolvedEditValue?.invalidText) {\n enqueueSnackbar(resolvedEditValue.invalidText, { variant: 'warning' });\n }\n\n if (nextValue !== undefined) {\n grid.SetValue(row, col, nextValue, 1);\n }\n\n if (highlightChangedCellsRef.current && isDisplayTreeGridRow(row)) {\n highlightTreeGridCellById(id, {\n row,\n col,\n backgroundColor: changedCellBackgroundColorRef.current,\n });\n\n if (isTreeGridRowAddedById(row)) {\n appendTreeGridAddedRowHighlightColumn(row, col);\n }\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, resolvedValue);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n window.TGSetEvent('OnSort', id, (grid, col) => {\n if (!col || !isTreeGridGroupHeaderCell(grid, grid.ARow, col)) {\n return undefined;\n }\n\n countTreeGridPerf(id, 'group header sort blocked');\n logTreeGridPerf(id, 'group header sort blocked', {\n rowId: grid.ARow?.id,\n col,\n });\n\n return -1;\n });\n window.TGSetEvent('OnRenderStart', id, (grid) => {\n applyTreeGridGroupHeaderSortButtonAttributes(grid, id, false);\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 resetTreeGridColumnEditRulesState(columnEditRulesStateRef.current);\n syncTreeGridColumnEditRules(\n grid,\n latestColumnEditRuleLookupRef.current,\n columnEditRulesStateRef.current,\n );\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n appliedColumnEditRulesRef.current = latestColumnEditRulesRef.current;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n applyTreeGridGroupHeaderSortButtonAttributes(grid, id, true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_SELECTED_CELL_RGB","TREE_GRID_READONLY_HOVER_CELL_RGB","TREE_GRID_READONLY_NO_FOCUS_HOVER_CELL_RGB","TREE_GRID_PREVIEW_CELL_RGB","TREE_GRID_PREVIEW_CELL_SOFT_RGB","TREE_GRID_PREVIEW_CELL_DIM_RGB","TREE_GRID_GROUP_HEADER_BUTTON_ATTRIBUTE","isTreeGridInlineUrl","__name","url","treeGridInlineBlobUrlCache","resolveTreeGridInlineUrl","cachedUrl","meta","encodedData","match","mimeType","decodedData","bytes","index","blobUrl","appendNoCacheQuery","hashIndex","baseUrl","hashFragment","querySeparator","syncTreeGridDeletedRowState","grid","row","options","canEdit","highlightColumns","highlightBackgroundColor","col","TREEGRID_CELL_HIGHLIGHT_CLASS","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","layoutData","width","height","languageId","getTreeGridTextResourceUrl","getTreeGridBodyData","get","parseTreeGridPositiveNumber","value","trimmedValue","numericValue","getTreeGridHeaderCellSpanAttribute","attributeName","attributeValue","resolvedAttributeValue","isTreeGridGroupHeaderCell","applyTreeGridGroupHeaderSortButtonAttributes","gridId","refreshRows","applyStartedAt","headerRows","cols","updatedRows","updatedCellCount","countTreeGridPerf","measureTreeGridPerf","getTreeGridBodyDataCount","isVisibleTreeGridRow","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","editableCellBackgroundColorValue","matchesTreeGridRgbColor","r","g","b","expected","isTreeGridSelectedCellState","selected","isTreeGridReadonlyHoveredCellState","isTreeGridPreviewHoveredCellState","resolveTreeGridStateBackgroundColor","selectedCellBackgroundColor","hoverCellBackgroundColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","syncDeletedRowCanEditRef","editableCellBackgroundColorValueRef","changedCellBackgroundColorRef","selectedCellBackgroundColorRef","hoverCellBackgroundColorRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","latestColumnEditRulesRef","latestColumnEditRuleLookupRef","appliedColumnEditRulesRef","columnEditRulesStateRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","addedRowHighlightColumns","isTreeGridRowAddedById","getTreeGridAddedRowHighlightColumns","type","columnEditRuleLookup","resolvedEditValue","resolveTreeGridColumnEditValue","nextValue","resolvedValue","enqueueSnackbar","highlightTreeGridCellById","appendTreeGridAddedRowHighlightColumn","valueChangedHandler","selectedRows","autoupdate","logTreeGridPerf","latestLayoutOverrides","applyTreeGridLayoutToGrid","resetTreeGridColumnEditRulesState","syncTreeGridColumnEditRules"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var Q = Object.defineProperty;
|
|
2
2
|
var w = (k, D) => Q(k, "name", { value: D, configurable: !0 });
|
|
3
|
-
import { __module as I } from "../../../../../_virtual/
|
|
3
|
+
import { __module as I } from "../../../../../_virtual/index3.js";
|
|
4
4
|
var F;
|
|
5
5
|
function W() {
|
|
6
6
|
return F ? I.exports : (F = 1, (function(k, D) {
|
|
@@ -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/
|
|
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 n = Object.defineProperty;
|
|
2
2
|
var G = (r, t) => n(r, "name", { value: t, configurable: !0 });
|
|
3
|
-
import { __exports as L } from "../../../../../../../../_virtual/
|
|
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", {
|
package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var O = Object.defineProperty;
|
|
2
2
|
var C = (i, r) => O(i, "name", { value: r, configurable: !0 });
|
|
3
|
-
import { __exports as o } from "../../../../../../../_virtual/
|
|
3
|
+
import { __exports as o } from "../../../../../../../_virtual/index4.js";
|
|
4
4
|
import { __require as c } from "./CODE39/index.js";
|
|
5
5
|
import { __require as D } from "./CODE128/index.js";
|
|
6
6
|
import { __require as d } from "./EAN_UPC/index.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var S = Object.defineProperty;
|
|
2
2
|
var e = (r, i) => S(r, "name", { value: i, configurable: !0 });
|
|
3
|
-
import { __exports as n } from "../../../../../../../_virtual/
|
|
3
|
+
import { __exports as n } from "../../../../../../../_virtual/utils2.js";
|
|
4
4
|
var u;
|
|
5
5
|
function c() {
|
|
6
6
|
if (u) return n;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var M = Object.defineProperty;
|
|
2
2
|
var a = (l, h) => M(l, "name", { value: h, configurable: !0 });
|
|
3
|
-
import { __exports as s } from "../../../../../../../_virtual/
|
|
3
|
+
import { __exports as s } from "../../../../../../../_virtual/utils.js";
|
|
4
4
|
var w;
|
|
5
5
|
function _() {
|
|
6
6
|
return w ? s : (w = 1, (function(l) {
|
|
@@ -59,6 +59,7 @@ export interface OwpTreeGridProps<T> {
|
|
|
59
59
|
columnEditRules?: readonly OwpTreeGridColumnEditRule[];
|
|
60
60
|
highlightEditableCells?: boolean;
|
|
61
61
|
highlightChangedCells?: boolean;
|
|
62
|
+
syncDeletedRowCanEdit?: boolean;
|
|
62
63
|
loading?: boolean;
|
|
63
64
|
showLoading?: boolean;
|
|
64
65
|
}
|
|
@@ -74,5 +75,5 @@ export interface OwpTreeGridProps<T> {
|
|
|
74
75
|
* @param canUseTableRadius TreeGrid 내부 테이블 radius 사용 여부
|
|
75
76
|
* @param tableBorderRadius TreeGrid 내부 테이블 radius 값
|
|
76
77
|
*/
|
|
77
|
-
declare const OwpTreeGrid: <T>({ id, containerStyle, containerClassName, toolbarRowBackgroundColor, className, style, height, width, canUseTableRadius, tableBorderRadius, layoutUrl, layoutData, dataUrl, layoutOverrides, data, useDataUrl, onSelect, onRowClick, onRowAdd, onRowDelete, onRowUndelete, onRowChange, onClickButton, onSave, onReady, onAfterValueChanged, columnEditRules, highlightEditableCells, highlightChangedCells, loading, showLoading, }: OwpTreeGridProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
declare const OwpTreeGrid: <T>({ id, containerStyle, containerClassName, toolbarRowBackgroundColor, className, style, height, width, canUseTableRadius, tableBorderRadius, layoutUrl, layoutData, dataUrl, layoutOverrides, data, useDataUrl, onSelect, onRowClick, onRowAdd, onRowDelete, onRowUndelete, onRowChange, onClickButton, onSave, onReady, onAfterValueChanged, columnEditRules, highlightEditableCells, highlightChangedCells, syncDeletedRowCanEdit, loading, showLoading, }: OwpTreeGridProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
78
79
|
export { OwpTreeGrid };
|
|
@@ -18,6 +18,7 @@ export type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {
|
|
|
18
18
|
latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;
|
|
19
19
|
highlightEditableCellsRef: RefObject<boolean>;
|
|
20
20
|
highlightChangedCellsRef: RefObject<boolean>;
|
|
21
|
+
syncDeletedRowCanEditRef: RefObject<boolean>;
|
|
21
22
|
editableCellBackgroundColorValueRef: RefObject<number | undefined>;
|
|
22
23
|
changedCellBackgroundColorRef: RefObject<string>;
|
|
23
24
|
selectedCellBackgroundColorRef: RefObject<string>;
|
|
@@ -85,5 +86,5 @@ export declare const replaceTreeGridBodyData: <T>(grid: TGrid, bodyData: OwpTree
|
|
|
85
86
|
* TreeGrid 이벤트 바인딩
|
|
86
87
|
* @param options 이벤트 바인딩 옵션
|
|
87
88
|
*/
|
|
88
|
-
export declare const bindTreeGridEvents: <T>({ id, latestEventHandlersRef, highlightEditableCellsRef, highlightChangedCellsRef, editableCellBackgroundColorValueRef, changedCellBackgroundColorRef, selectedCellBackgroundColorRef, hoverCellBackgroundColorRef, treeGridInstanceRef, treeGridInitStartedAtRef, latestLayoutOverridesRef, appliedLayoutOverridesRef, appliedBodyDataPropRef, latestColumnEditRulesRef, latestColumnEditRuleLookupRef, appliedColumnEditRulesRef, columnEditRulesStateRef, hasAppliedInitialLayoutRef, syncHasDisplayDataRows, setIsTreeGridReady, }: TreeGridEventBindingOptions<T>) => void;
|
|
89
|
+
export declare const bindTreeGridEvents: <T>({ id, latestEventHandlersRef, highlightEditableCellsRef, highlightChangedCellsRef, syncDeletedRowCanEditRef, editableCellBackgroundColorValueRef, changedCellBackgroundColorRef, selectedCellBackgroundColorRef, hoverCellBackgroundColorRef, treeGridInstanceRef, treeGridInitStartedAtRef, latestLayoutOverridesRef, appliedLayoutOverridesRef, appliedBodyDataPropRef, latestColumnEditRulesRef, latestColumnEditRuleLookupRef, appliedColumnEditRulesRef, columnEditRulesStateRef, hasAppliedInitialLayoutRef, syncHasDisplayDataRows, setIsTreeGridReady, }: TreeGridEventBindingOptions<T>) => void;
|
|
89
90
|
export {};
|
|
@@ -17,6 +17,29 @@ 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
|
+
/**
|
|
23
|
+
* addTreeGridRowById 생성 행 마킹
|
|
24
|
+
* @param row 대상 행
|
|
25
|
+
*/
|
|
26
|
+
export declare const markTreeGridRowAddedById: (row: TRow | null | undefined) => void;
|
|
27
|
+
/**
|
|
28
|
+
* addTreeGridRowById 생성 행 여부
|
|
29
|
+
* @param row 대상 행
|
|
30
|
+
*/
|
|
31
|
+
export declare const isTreeGridRowAddedById: (row: TRow | null | undefined) => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* addTreeGridRowById 생성 행 하이라이트 컬럼 누적
|
|
34
|
+
* @param row 대상 행
|
|
35
|
+
* @param col 대상 컬럼
|
|
36
|
+
*/
|
|
37
|
+
export declare const appendTreeGridAddedRowHighlightColumn: (row: TRow | null | undefined, col: string) => void;
|
|
38
|
+
/**
|
|
39
|
+
* addTreeGridRowById 생성 행 하이라이트 컬럼 조회
|
|
40
|
+
* @param row 대상 행
|
|
41
|
+
*/
|
|
42
|
+
export declare const getTreeGridAddedRowHighlightColumns: (row: TRow | null | undefined) => string[];
|
|
20
43
|
/**
|
|
21
44
|
* TreeGrid 인스턴스 ID 조회
|
|
22
45
|
* @param gridId TreeGrid 인스턴스 ID
|