@alaarab/ogrid-core 2.1.14 → 2.1.15

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 (2) hide show
  1. package/dist/esm/index.js +22 -6
  2. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -524,23 +524,39 @@ function processClientSideData(data, columns, filters, sortBy, sortDirection) {
524
524
  const trimmed = val.value.trim();
525
525
  if (trimmed) {
526
526
  const lower = trimmed.toLowerCase();
527
- predicates.push((r) => String(getCellValue(r, col) ?? "").toLowerCase().includes(lower));
527
+ const textCache = /* @__PURE__ */ new Map();
528
+ for (let j = 0; j < data.length; j++) {
529
+ textCache.set(data[j], String(getCellValue(data[j], col) ?? "").toLowerCase());
530
+ }
531
+ predicates.push((r) => (textCache.get(r) ?? "").includes(lower));
528
532
  }
529
533
  break;
530
534
  }
531
535
  case "people": {
532
536
  const email = val.value.email.toLowerCase();
533
- predicates.push((r) => String(getCellValue(r, col) ?? "").toLowerCase() === email);
537
+ const peopleCache = /* @__PURE__ */ new Map();
538
+ for (let j = 0; j < data.length; j++) {
539
+ peopleCache.set(data[j], String(getCellValue(data[j], col) ?? "").toLowerCase());
540
+ }
541
+ predicates.push((r) => (peopleCache.get(r) ?? "") === email);
534
542
  break;
535
543
  }
536
544
  case "date": {
537
545
  const dv = val.value;
538
546
  const fromTs = dv.from ? (/* @__PURE__ */ new Date(dv.from + "T00:00:00")).getTime() : NaN;
539
547
  const toTs = dv.to ? (/* @__PURE__ */ new Date(dv.to + "T23:59:59.999")).getTime() : NaN;
548
+ const dateCache = /* @__PURE__ */ new Map();
549
+ for (let j = 0; j < data.length; j++) {
550
+ const cellVal = getCellValue(data[j], col);
551
+ if (cellVal == null) {
552
+ dateCache.set(data[j], NaN);
553
+ } else {
554
+ const t = new Date(String(cellVal)).getTime();
555
+ dateCache.set(data[j], Number.isNaN(t) ? NaN : t);
556
+ }
557
+ }
540
558
  predicates.push((r) => {
541
- const cellVal = getCellValue(r, col);
542
- if (cellVal == null) return false;
543
- const cellTs = new Date(String(cellVal)).getTime();
559
+ const cellTs = dateCache.get(r) ?? NaN;
544
560
  if (Number.isNaN(cellTs)) return false;
545
561
  if (!Number.isNaN(fromTs) && cellTs < fromTs) return false;
546
562
  if (!Number.isNaN(toTs) && cellTs > toTs) return false;
@@ -1311,7 +1327,7 @@ function computeRowSelectionState(selectedIds, items, getRowId) {
1311
1327
  if (selectedIds.size === 0 || items.length === 0) {
1312
1328
  return { allSelected: false, someSelected: false };
1313
1329
  }
1314
- const allSelected = items.every((item) => selectedIds.has(getRowId(item)));
1330
+ const allSelected = selectedIds.size >= items.length && items.every((item) => selectedIds.has(getRowId(item)));
1315
1331
  const someSelected = !allSelected && selectedIds.size > 0;
1316
1332
  return { allSelected, someSelected };
1317
1333
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-core",
3
- "version": "2.1.14",
3
+ "version": "2.1.15",
4
4
  "description": "OGrid core – framework-agnostic types, algorithms, and utilities for OGrid data grids.",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",