UNPKG

@progress/kendo-vue-grid

Version:
175 lines (174 loc) 5.67 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { createVNode as H } from "vue"; import { GridCell as ne } from "./cells/GridCell.mjs"; import { GridEditCell as de } from "./cells/GridEditCell.mjs"; import { getter as c, getNestedValue as g } from "@progress/kendo-vue-common"; import { resolveCells as oe, groupedFirstItemValue as re } from "./utils/main.mjs"; import { tableKeyboardNavigationTools as ie } from "@progress/kendo-vue-data-tools"; const ce = ({ leafColumns: a, editField: l, item: o }) => { if (!l) return !1; for (const n of a) if (n.editable) { const r = g(l, o.dataItem); if (r === !0 || r === n.field) return !0; } return !1; }, fe = ({ selectedField: a, dataItemKey: l, select: o, item: n }) => { if (a) { const r = g(a, n.dataItem); return typeof r == "boolean" && r; } if (o && l && c(l)(n.dataItem) !== void 0) { const r = o[c(l)(n.dataItem)]; return typeof r == "boolean" && r; } return !1; }, se = ({ highlight: a, dataItemKey: l, item: o }) => { if (a && l && c(l)(o.dataItem) !== void 0) { const n = a[c(l)(o.dataItem)]; return typeof n == "boolean" && n; } return !1; }, be = (a, l, o, n, r, f) => { const { leafColumns: I, selectedField: y, dataItemKey: i, select: h, highlight: v, editField: S, cellRender: $, cells: A, itemChange: G, selectionChangeHandler: B, editHandler: D, removeHandler: P, saveHandler: _, cancelHandler: q, cellClickHandler: O, cellKeydownHandler: j, computedCollapsed: b, uniqueField: z, columnsRef: J, isRtl: x, idPrefix: K } = a, L = h && i && c(i)(l.dataItem) !== void 0 ? h[c(i)(l.dataItem)] : void 0, C = y ? g(y, l.dataItem) : L, T = v && i && c(i)(l.dataItem) !== void 0 ? v[c(i)(l.dataItem)] : void 0, M = ce({ leafColumns: I, editField: S, item: l }), Q = fe({ selectedField: y, dataItemKey: i, select: h, item: l }), U = se({ highlight: v, dataItemKey: i, item: l }); return { row: (a.hasDynamicColSpan ? a.getCellsToRender(l.dataItem, I) : a.cellsToRender).map(({ columnIndex: s, colSpan: W }) => { var E, V, F, N, R; const e = I[s]; let u; if ((E = e.rowSpannable) != null && E.enabled && l.rowType === "data" && e.field && f) { const d = e.field ? (F = (V = e.rowSpannable).valueGetter) == null ? void 0 : F.call(V, l.dataItem, e.field) : null; u = { value: d, count: 1 }, f[e.field] && ((N = f[e.field]) == null ? void 0 : N.value) === d && f[e.field] !== null ? (f[e.field].count++, u.count = null) : f[e.field] = u; } const X = `${e.className ? e.className + " " : ""}${e.locked ? "k-grid-content-sticky" : ""}`, Y = x ? { left: e.right + "px", right: e.left + "px" } : { left: e.left + "px", right: e.right + "px" }, Z = e.locked && (e.left !== void 0 || e.right !== void 0) ? Y : void 0; let k = !1; if (e.editable && S) { const d = g(S, l.dataItem); (d === !0 || d === e.field) && (k = !0); } const t = oe(A, e.cells); let p; l.rowType === "groupFooter" ? p = (t == null ? void 0 : t.groupFooter) || e.cell : l.rowType === "groupHeader" ? p = (t == null ? void 0 : t.groupHeader) || e.cell : (e.cell || t != null && t.data) && (p = e.cell || (t == null ? void 0 : t.data)); const w = (R = b == null ? void 0 : b[l.level]) == null ? void 0 : R.some((d) => d === re(l.dataItem, z)), ee = e.id ? e.id : s, le = w ? !w : l.expanded || l.dataItem.expanded, te = e._type === "expand", ae = ie.generateNavigatableId(`${o}-${String(s)}`, K, te || l.rowType === "groupHeader" || l.rowType === "groupFooter" || e.field === "value" ? "nodata" : "cell"), m = { locked: e.locked, key: ee, id: ae, colSpan: W, dataItem: l.dataItem, field: e.field || "", editor: e.editor, format: e.format, readFormat: e.readFormat, type: e.type, columnType: e.columnType, className: X, render: p || $, onChange: G, onSelectionchange: (d) => B({ event: d, dataItem: l.dataItem, dataIndex: n, columnIndex: s }), onCellclick: O, onCellkeydown: j, onEdit: D, onRemove: P, onSave: _, onCancel: q, cells: t, columnIndex: s, columnsCount: J.filter((d) => !d.children.length).length, rowType: l.rowType, level: l.level, expanded: le, dataIndex: l.dataIndex, style: Z, ariaColumnIndex: e.ariaColumnIndex, isRtl: x, isSelected: !!((e == null ? void 0 : e._type) === "edit" ? C : Array.isArray(C) && C.indexOf(s) > -1), isHighlighted: !!(typeof T != "boolean" && T && (e != null && e.field) && T[e.field] === !0), group: l.group, rowSpan: u }; return e.defaultCell ? H(e.defaultCell, m, null) : k ? H(de, m, null) : H(ne, m, null); }), isInEdit: M, isSelected: Q, isHighlighted: U }; }; export { se as calculateIsHighlighted, ce as calculateIsInEdit, fe as calculateIsSelected, be as getRowContents };