@owp/core 2.5.30 → 2.5.32
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/index20.js +2 -2
- package/dist/_virtual/index21.js +2 -2
- package/dist/_virtual/index22.js +2 -2
- package/dist/components/OwpPageContent/OwpPageContent.js +1 -1
- package/dist/components/OwpPageContent/OwpPageContent.js.map +1 -1
- package/dist/components/OwpSection/OwpSection.js +1 -1
- package/dist/components/OwpSection/OwpSection.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +813 -241
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +266 -252
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/OwpTreeGridErrorTooltip.js +59 -0
- package/dist/components/OwpTreeGrid/internal/OwpTreeGridErrorTooltip.js.map +1 -0
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridErrorTooltip.js +27 -0
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridErrorTooltip.js.map +1 -0
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +607 -510
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridSelection.js +61 -0
- package/dist/components/OwpTreeGrid/internal/treeGridSelection.js.map +1 -0
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +157 -154
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
- package/dist/hooks/useMinimumVisibleState.js.map +1 -0
- package/dist/hooks.js +47 -45
- package/dist/hooks.js.map +1 -1
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js +1 -1
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/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/ITF/constants.js +1 -1
- package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/types/components/OwpSelectorBase/types/types.d.ts +2 -0
- package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +5 -1
- package/dist/types/components/OwpTreeGrid/internal/OwpTreeGridErrorTooltip.d.ts +12 -0
- package/dist/types/components/OwpTreeGrid/internal/hooks/useOwpTreeGridErrorTooltip.d.ts +17 -0
- package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +6 -1
- package/dist/types/components/OwpTreeGrid/internal/treeGridSelection.d.ts +12 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useMinimumVisibleState.d.ts +6 -0
- package/dist/types/utils/treeGridUtil.d.ts +6 -1
- package/dist/utils/treeGridUtil.js +299 -251
- package/dist/utils/treeGridUtil.js.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/internal/useMinimumVisibleState.js.map +0 -1
- package/dist/types/hooks/internal/useMinimumVisibleState.d.ts +0 -7
- /package/dist/hooks/{internal/useMinimumVisibleState.js → useMinimumVisibleState.js} +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var d = Object.defineProperty;
|
|
2
|
+
var a = (e, t) => d(e, "name", { value: t, configurable: !0 });
|
|
3
|
+
const i = "Panel", S = /* @__PURE__ */ a((e) => {
|
|
4
|
+
const t = e == null ? void 0 : e.Visible;
|
|
5
|
+
return !!e && t !== 0 && t !== !1 && t !== "0";
|
|
6
|
+
}, "isVisibleTreeGridRow"), G = /* @__PURE__ */ a((e) => {
|
|
7
|
+
const t = e == null ? void 0 : e.Added;
|
|
8
|
+
return !!e && t !== 0 && t !== !1 && t !== "0" && t !== void 0;
|
|
9
|
+
}, "isAddedTreeGridRow"), u = /* @__PURE__ */ a((e) => !e || e.Fixed === "Foot" || !S(e) ? !1 : e.Kind === "Data" || G(e), "isDisplayTreeGridRow"), h = /* @__PURE__ */ a((e) => {
|
|
10
|
+
if (typeof e.GetFirst == "function" && typeof e.GetNext == "function") {
|
|
11
|
+
const t = [];
|
|
12
|
+
let r = e.GetFirst();
|
|
13
|
+
for (; r; )
|
|
14
|
+
t.push(r), r = e.GetNext(r);
|
|
15
|
+
return t;
|
|
16
|
+
}
|
|
17
|
+
return Object.values(e.Rows ?? {});
|
|
18
|
+
}, "getTreeGridRows"), R = /* @__PURE__ */ a((e, t) => {
|
|
19
|
+
const r = e, s = r == null ? void 0 : r[`${t}RowSpan`], n = typeof s == "number" ? s : Number.parseFloat(String(s ?? ""));
|
|
20
|
+
return Number.isFinite(n) && n > 1 ? Math.floor(n) : 1;
|
|
21
|
+
}, "getTreeGridRowSpanCount"), w = /* @__PURE__ */ a((e) => {
|
|
22
|
+
const t = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
let r = null, s = -1;
|
|
24
|
+
return h(e).forEach((n, o) => {
|
|
25
|
+
if (!u(n)) {
|
|
26
|
+
t.set(n, null);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const l = R(n, i);
|
|
30
|
+
if (l > 1) {
|
|
31
|
+
r = n, s = o + l - 1, t.set(n, n);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
t.set(n, r && o <= s ? r : null), o >= s && (r = null, s = -1);
|
|
35
|
+
}), t;
|
|
36
|
+
}, "createTreeGridPanelRowSpanAnchorRowMap"), T = /* @__PURE__ */ a((e, t) => {
|
|
37
|
+
if (!t || !u(t))
|
|
38
|
+
return [];
|
|
39
|
+
const r = R(t, i);
|
|
40
|
+
if (r <= 1)
|
|
41
|
+
return [];
|
|
42
|
+
const s = [];
|
|
43
|
+
let n = t;
|
|
44
|
+
for (let o = 0; n && o < r; o += 1)
|
|
45
|
+
u(n) && s.push(n), n = typeof e.GetNext == "function" ? e.GetNext(n) : null;
|
|
46
|
+
return s;
|
|
47
|
+
}, "getTreeGridPanelRowSpanRows"), N = /* @__PURE__ */ a((e) => (e == null ? void 0 : e.selectionScope) === "panelRowSpan" || (e == null ? void 0 : e.includePanelRowSpanRows) === !0, "shouldIncludeTreeGridPanelRowSpanRows"), P = /* @__PURE__ */ a((e, t, r) => {
|
|
48
|
+
if (!N(r))
|
|
49
|
+
return t;
|
|
50
|
+
const s = w(e), n = [], o = /* @__PURE__ */ new Set();
|
|
51
|
+
return t.forEach((l) => {
|
|
52
|
+
const p = s.get(l) ?? l, f = T(e, p);
|
|
53
|
+
(f.length ? f : [l]).forEach((c) => {
|
|
54
|
+
o.has(c) || (o.add(c), n.push(c));
|
|
55
|
+
});
|
|
56
|
+
}), n;
|
|
57
|
+
}, "resolveTreeGridSelectedRows");
|
|
58
|
+
export {
|
|
59
|
+
P as resolveTreeGridSelectedRows
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=treeGridSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeGridSelection.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridSelection.ts"],"sourcesContent":["export type OwpTreeGridSelectionScope = 'native' | 'panelRowSpan';\n\nexport type OwpTreeGridSelectedRowsResolveOptions = {\n selectionScope?: OwpTreeGridSelectionScope;\n includePanelRowSpanRows?: boolean;\n};\n\nconst TREE_GRID_PANEL_ROW_SPAN_COLUMN = 'Panel';\n\n/**\n * TreeGrid 표시 행 여부\n * @param row TreeGrid 행\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 */\nconst getTreeGridRows = (grid: TGrid) => {\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n const rows: TRow[] = [];\n let row = grid.GetFirst();\n\n while (row) {\n rows.push(row);\n row = grid.GetNext(row);\n }\n\n return rows;\n }\n\n return Object.values(grid.Rows ?? {});\n};\n\n/**\n * TreeGrid row span 정수값 조회\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getTreeGridRowSpanCount = (row: TRow | null | undefined, col: string) => {\n const rowRecord = row as unknown as Record<string, unknown> | null;\n const rowSpanValue = rowRecord?.[`${col}RowSpan`];\n const rowSpan =\n typeof rowSpanValue === 'number'\n ? rowSpanValue\n : Number.parseFloat(String(rowSpanValue ?? ''));\n\n return Number.isFinite(rowSpan) && rowSpan > 1 ? Math.floor(rowSpan) : 1;\n};\n\n/**\n * TreeGrid Panel row span 앵커 맵 생성\n * @param grid TreeGrid 인스턴스\n */\nconst createTreeGridPanelRowSpanAnchorRowMap = (grid: TGrid) => {\n const anchorRowMap = new WeakMap<TRow, TRow | null>();\n let anchorRow: TRow | null = null;\n let anchorEndIndex = -1;\n\n getTreeGridRows(grid).forEach((row, index) => {\n if (!isDisplayTreeGridRow(row)) {\n anchorRowMap.set(row, null);\n return;\n }\n\n const rowSpan = getTreeGridRowSpanCount(row, TREE_GRID_PANEL_ROW_SPAN_COLUMN);\n\n if (rowSpan > 1) {\n anchorRow = row;\n anchorEndIndex = index + rowSpan - 1;\n anchorRowMap.set(row, row);\n return;\n }\n\n anchorRowMap.set(row, anchorRow && index <= anchorEndIndex ? anchorRow : null);\n\n if (index >= anchorEndIndex) {\n anchorRow = null;\n anchorEndIndex = -1;\n }\n });\n\n return anchorRowMap;\n};\n\n/**\n * TreeGrid Panel row span 행 목록 조회\n * @param grid TreeGrid 인스턴스\n * @param anchorRow Panel row span 앵커 행\n */\nconst getTreeGridPanelRowSpanRows = (grid: TGrid, anchorRow: TRow | null | undefined) => {\n if (!anchorRow || !isDisplayTreeGridRow(anchorRow)) {\n return [];\n }\n\n const rowSpan = getTreeGridRowSpanCount(anchorRow, TREE_GRID_PANEL_ROW_SPAN_COLUMN);\n\n if (rowSpan <= 1) {\n return [];\n }\n\n const rows: TRow[] = [];\n let currentRow: TRow | null = anchorRow;\n\n for (let rowOffset = 0; currentRow && rowOffset < rowSpan; rowOffset += 1) {\n if (isDisplayTreeGridRow(currentRow)) {\n rows.push(currentRow);\n }\n\n currentRow =\n typeof grid.GetNext === 'function' ? grid.GetNext(currentRow) : null;\n }\n\n return rows;\n};\n\n/**\n * TreeGrid Panel row span 행 포함 여부\n * @param options 선택 행 반환 범위 옵션\n */\nconst shouldIncludeTreeGridPanelRowSpanRows = (\n options?: OwpTreeGridSelectedRowsResolveOptions,\n) => options?.selectionScope === 'panelRowSpan' || options?.includePanelRowSpanRows === true;\n\n/**\n * TreeGrid 선택 행 Panel row span 범위 확장\n * @param grid TreeGrid 인스턴스\n * @param selectedRows TreeGrid 선택 행 목록\n * @param options 선택 행 반환 범위 옵션\n */\nexport const resolveTreeGridSelectedRows = <T>(\n grid: TGrid,\n selectedRows: Array<TRow & T>,\n options?: OwpTreeGridSelectedRowsResolveOptions,\n) => {\n if (!shouldIncludeTreeGridPanelRowSpanRows(options)) {\n return selectedRows;\n }\n\n const anchorRowMap = createTreeGridPanelRowSpanAnchorRowMap(grid);\n const resolvedRows: Array<TRow & T> = [];\n const resolvedRowSet = new Set<TRow>();\n\n selectedRows.forEach((selectedRow) => {\n const anchorRow = anchorRowMap.get(selectedRow) ?? selectedRow;\n const panelRowSpanRows = getTreeGridPanelRowSpanRows(grid, anchorRow);\n const targetRows = panelRowSpanRows.length ? panelRowSpanRows : [selectedRow];\n\n targetRows.forEach((targetRow) => {\n if (resolvedRowSet.has(targetRow)) {\n return;\n }\n\n resolvedRowSet.add(targetRow);\n resolvedRows.push(targetRow as TRow & T);\n });\n });\n\n return resolvedRows;\n};\n"],"names":["TREE_GRID_PANEL_ROW_SPAN_COLUMN","isVisibleTreeGridRow","__name","row","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","getTreeGridRows","grid","rows","getTreeGridRowSpanCount","col","rowRecord","rowSpanValue","rowSpan","createTreeGridPanelRowSpanAnchorRowMap","anchorRowMap","anchorRow","anchorEndIndex","index","getTreeGridPanelRowSpanRows","currentRow","rowOffset","shouldIncludeTreeGridPanelRowSpanRows","options","resolveTreeGridSelectedRows","selectedRows","resolvedRows","resolvedRowSet","selectedRow","panelRowSpanRows","targetRow"],"mappings":"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"}
|