UNPKG

@progress/kendo-vue-grid

Version:
82 lines (81 loc) 3.03 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 { defineComponent as D, createVNode as u, createTextVNode as S } from "vue"; import { getter as b } from "@progress/kendo-vue-common"; const M = /* @__PURE__ */ D({ name: "KendoVueGridStatusBar", props: { data: { type: Array, default: () => [] } }, setup(a) { return () => u("div", { class: "k-selection-aggregates k-grid-selection-aggregates" }, [a.data.map((s, o) => u("div", { key: `${s.type}-${o}` }, [u("span", { class: "k-selection-aggregates-item-text" }, [s.type, S(": ")]), u("span", { class: "k-selection-aggregates-item-value" }, [s.formattedValue])]))]); } }), V = (a) => { var o, d, l, i; const s = a.slice(); for (let t = 0; t < s.length; t++) for (; (d = (o = s[t]) == null ? void 0 : o.children) != null && d.length; ) s.splice(t, 1, ...(i = (l = s[t]) == null ? void 0 : l.children) != null ? i : []); return s; }, T = (a) => { const { dataItems: s, target: o } = a, l = V(o.columns).map((e) => e.field).filter((e) => e && typeof e == "string").map((e) => b(e)), i = (e) => { var n; return (n = a.select) == null ? void 0 : n[b(a.dataItemKey)(e)]; }, t = { dates: [], numbers: [], booleans: [], others: [] }, y = (e) => { typeof e == "number" ? t.numbers.push(e) : typeof e == "boolean" ? t.booleans.push(e) : e instanceof Date ? t.dates.push(e) : t.others.push(e); }; s.forEach((e) => { const n = i(e); Array.isArray(n) && n.forEach((r) => { y(l[r](e)); }); }); const g = t.dates.map((e) => e.getTime()), c = t.booleans.filter(Boolean).length, f = t.booleans.length - c, m = t.numbers.length ? t.numbers.reduce((e, n) => e + n, 0) : void 0, h = { sum: m, average: typeof m == "number" ? m / t.numbers.length : void 0, min: t.numbers.length ? Math.min(...t.numbers) : void 0, max: t.numbers.length ? Math.max(...t.numbers) : void 0, count: t.numbers.length + t.booleans.length + t.dates.length + t.others.length, isTrue: c > 0 ? c : void 0, isFalse: f > 0 ? f : void 0, earliest: t.dates.length ? new Date(Math.min(...g)) : void 0, latest: t.dates.length ? new Date(Math.max(...g)) : void 0 }, x = (e, n) => (n === "sum" || n === "average") && typeof e == "number" ? e.toFixed(2) : (n === "earliest" || n === "latest") && e instanceof Date ? e.toLocaleDateString() : String(e), p = []; return Object.keys(h).forEach((e) => { const n = e, r = h[n]; r !== void 0 && p.push({ type: n, value: r, formattedValue: x(r, n) }); }), p; }; export { M as StatusBar, T as getStatusData, V as leafColumns };