@ornery/ui-grid-vanilla 5.0.0 → 5.0.2

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.
@@ -1,4 +1,4 @@
1
- // ../ui-grid-core/src/lib/grid.utils.ts
1
+ // ../ui-grid-core/dist/index.mjs
2
2
  var uid = 0;
3
3
  var PROTECTED_PATH_SEGMENTS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
4
4
  function nextUid(prefix = "grid") {
@@ -78,8 +78,6 @@ function toCsvValue(value, separator = ",") {
78
78
  }
79
79
  return value;
80
80
  }
81
-
82
- // ../ui-grid-core/src/lib/grid.core.display.ts
83
81
  function buildGridCellContext(row, column) {
84
82
  const value = getCellValue(row.entity, column);
85
83
  return {
@@ -96,8 +94,6 @@ function formatGridCellDisplayValue(context) {
96
94
  }
97
95
  return context.column.formatter ? context.column.formatter(context.value, context.row) : stringifyCellValue(context.value);
98
96
  }
99
-
100
- // ../ui-grid-core/src/lib/grid.core.edit.ts
101
97
  function beginGridEditSession(rowId, columnName, editingValue) {
102
98
  const position = { rowId, columnName };
103
99
  return {
@@ -176,8 +172,6 @@ function parseGridEditedValue(column, value, oldValue) {
176
172
  return value;
177
173
  }
178
174
  }
179
-
180
- // ../ui-grid-core/src/lib/grid.core.export.ts
181
175
  function headerLabel(column) {
182
176
  return column.displayName ?? titleize(column.name);
183
177
  }
@@ -441,8 +435,6 @@ function resolveGridExporterOptions(options) {
441
435
  showHeader: options.exporterShowHeader
442
436
  };
443
437
  }
444
-
445
- // ../ui-grid-core/src/lib/grid.core.exporter-menu.ts
446
438
  function buildGridExporterMenuItems(options, labels, actions, hasSelection = () => false) {
447
439
  const baseOrder = options.exporterMenuItemOrder ?? 200;
448
440
  const menuCsv = options.exporterMenuCsv !== false;
@@ -517,8 +509,6 @@ function buildGridExporterMenuItems(options, labels, actions, hasSelection = ()
517
509
  }
518
510
  return items;
519
511
  }
520
-
521
- // ../ui-grid-core/src/lib/grid.core.importer.ts
522
512
  function resolveGridImporterOptions(options) {
523
513
  return {
524
514
  enable: options.enableImporter,
@@ -678,8 +668,6 @@ function buildGridImporterObjectsFromJson(parsed, options) {
678
668
  }
679
669
  return result;
680
670
  }
681
-
682
- // ../ui-grid-core/src/lib/grid.core.importer-menu.ts
683
671
  function buildGridImporterMenuItems(options, labels, actions) {
684
672
  if (options.enableImporter !== true) return [];
685
673
  if (options.importerShowMenu === false) return [];
@@ -693,8 +681,6 @@ function buildGridImporterMenuItems(options, labels, actions) {
693
681
  }
694
682
  ];
695
683
  }
696
-
697
- // ../ui-grid-core/src/lib/grid.core.row-edit-menu.ts
698
684
  function buildGridRowEditMenuItems(options, labels, actions, predicates) {
699
685
  const baseOrder = options.rowEditMenuItemOrder ?? 300;
700
686
  const menuFlush = options.rowEditMenuFlushDirtyRows !== false;
@@ -722,8 +708,6 @@ function buildGridRowEditMenuItems(options, labels, actions, predicates) {
722
708
  }
723
709
  return items;
724
710
  }
725
-
726
- // ../ui-grid-core/src/lib/grid.core.validate.ts
727
711
  var GridValidatorRegistry = class {
728
712
  entries = /* @__PURE__ */ new Map();
729
713
  setValidator(name, validatorFactory, messageFunction) {
@@ -863,8 +847,6 @@ async function validateAllGridRows(rowEntities, columnDefs, registry) {
863
847
  }
864
848
  return [...invalidRows];
865
849
  }
866
-
867
- // ../ui-grid-core/src/lib/i18n/en-US.json
868
850
  var en_US_default = {
869
851
  sortDefault: "Sort",
870
852
  sortAsc: "Sort ascending",
@@ -918,8 +900,6 @@ var en_US_default = {
918
900
  rowEditFlushAll: "Save changes",
919
901
  rowEditRetryErrors: "Retry errored rows"
920
902
  };
921
-
922
- // ../ui-grid-core/src/lib/grid.models.ts
923
903
  var DEFAULT_GRID_LABELS = en_US_default;
924
904
  var GridRow = class {
925
905
  constructor(id, entity, index, height = 44) {
@@ -977,8 +957,6 @@ var GridRow = class {
977
957
  this.visible = this.invisibleReasons.size === 0;
978
958
  }
979
959
  };
980
-
981
- // ../ui-grid-core/src/lib/i18n/es.json
982
960
  var es_default = {
983
961
  sortDefault: "Ordenar",
984
962
  sortAsc: "Ordenar ascendente",
@@ -1032,8 +1010,6 @@ var es_default = {
1032
1010
  rowEditFlushAll: "Guardar cambios",
1033
1011
  rowEditRetryErrors: "Reintentar filas con error"
1034
1012
  };
1035
-
1036
- // ../ui-grid-core/src/lib/i18n/fr.json
1037
1013
  var fr_default = {
1038
1014
  sortDefault: "Trier",
1039
1015
  sortAsc: "Tri croissant",
@@ -1087,8 +1063,6 @@ var fr_default = {
1087
1063
  rowEditFlushAll: "Enregistrer les modifications",
1088
1064
  rowEditRetryErrors: "R\xE9essayer les lignes en erreur"
1089
1065
  };
1090
-
1091
- // ../ui-grid-core/src/lib/i18n/de.json
1092
1066
  var de_default = {
1093
1067
  sortDefault: "Sortieren",
1094
1068
  sortAsc: "Aufsteigend sortieren",
@@ -1142,8 +1116,6 @@ var de_default = {
1142
1116
  rowEditFlushAll: "\xC4nderungen speichern",
1143
1117
  rowEditRetryErrors: "Fehlerhafte Zeilen erneut versuchen"
1144
1118
  };
1145
-
1146
- // ../ui-grid-core/src/lib/i18n/ja.json
1147
1119
  var ja_default = {
1148
1120
  sortDefault: "\u4E26\u3079\u66FF\u3048",
1149
1121
  sortAsc: "\u6607\u9806\u3067\u4E26\u3079\u66FF\u3048",
@@ -1197,8 +1169,6 @@ var ja_default = {
1197
1169
  rowEditFlushAll: "\u5909\u66F4\u3092\u4FDD\u5B58",
1198
1170
  rowEditRetryErrors: "\u30A8\u30E9\u30FC\u884C\u3092\u518D\u8A66\u884C"
1199
1171
  };
1200
-
1201
- // ../ui-grid-core/src/lib/i18n/zh-CN.json
1202
1172
  var zh_CN_default = {
1203
1173
  sortDefault: "\u6392\u5E8F",
1204
1174
  sortAsc: "\u5347\u5E8F\u6392\u5E8F",
@@ -1252,8 +1222,6 @@ var zh_CN_default = {
1252
1222
  rowEditFlushAll: "\u4FDD\u5B58\u66F4\u6539",
1253
1223
  rowEditRetryErrors: "\u91CD\u8BD5\u9519\u8BEF\u884C"
1254
1224
  };
1255
-
1256
- // ../ui-grid-core/src/lib/grid.core.i18n.ts
1257
1225
  var GridI18nService = class {
1258
1226
  locales = /* @__PURE__ */ new Map();
1259
1227
  currentLang = "en-US";
@@ -1312,8 +1280,6 @@ var GridI18nService = class {
1312
1280
  }
1313
1281
  };
1314
1282
  var gridI18n = new GridI18nService();
1315
-
1316
- // ../ui-grid-core/src/lib/grid.constants.ts
1317
1283
  var SORT_DIRECTIONS = {
1318
1284
  asc: "asc",
1319
1285
  desc: "desc",
@@ -1330,8 +1296,6 @@ var FILTER_CONDITIONS = {
1330
1296
  lessThan: "lessThan",
1331
1297
  lessThanOrEqual: "lessThanOrEqual"
1332
1298
  };
1333
-
1334
- // ../ui-grid-core/src/lib/row-searcher.ts
1335
1299
  function escapeRegExp(value) {
1336
1300
  return value.replace(/[|\\{}()[\]^$+?*.]/g, "\\$&").replace(/-/g, "\\x2d");
1337
1301
  }
@@ -1461,8 +1425,6 @@ function runColumnFilter(row, column, filter) {
1461
1425
  return true;
1462
1426
  }
1463
1427
  }
1464
-
1465
- // ../ui-grid-core/src/lib/grid.core.filtering.ts
1466
1428
  function isFilteringEnabled(options) {
1467
1429
  return options.enableFiltering !== false;
1468
1430
  }
@@ -1526,8 +1488,6 @@ function matchesGridRowFilters(row, columns, options, activeFilters) {
1526
1488
  }
1527
1489
  return matchesGridRowPreparedFilters(row, prepared);
1528
1490
  }
1529
-
1530
- // ../ui-grid-core/src/lib/grid.core.grouping.ts
1531
1491
  function isGroupingEnabled(options) {
1532
1492
  return options.enableGrouping === true && options.enableTreeView !== true;
1533
1493
  }
@@ -1585,8 +1545,6 @@ function buildGridDisplayItems(rows, columns, options, groupBy, collapsedGroups)
1585
1545
  }
1586
1546
  return buildGroupedItems(rows, columns, options, groupBy, collapsedGroups, 0, "");
1587
1547
  }
1588
-
1589
- // ../ui-grid-core/src/lib/grid.core.identity.ts
1590
1548
  function resolveGridRowId(options, row) {
1591
1549
  if (typeof row === "string") {
1592
1550
  return row;
@@ -1607,8 +1565,6 @@ function buildGridSortState(columnName, direction) {
1607
1565
  direction: direction ?? SORT_DIRECTIONS.asc
1608
1566
  };
1609
1567
  }
1610
-
1611
- // ../ui-grid-core/src/lib/grid.core.infinite-scroll.ts
1612
1568
  function maybeRequestInfiniteScrollData(context) {
1613
1569
  if (context.state.dataLoading) {
1614
1570
  return { request: null, nextState: context.state };
@@ -1664,8 +1620,6 @@ function setInfiniteScrollDirectionsState(state, scrollUp, scrollDown) {
1664
1620
  scrollDown
1665
1621
  };
1666
1622
  }
1667
-
1668
- // ../ui-grid-core/src/lib/grid.core.pagination.ts
1669
1623
  function isPaginationEnabled(options) {
1670
1624
  return options.enablePagination === true || (options.paginationPageSize ?? 0) > 0;
1671
1625
  }
@@ -1729,8 +1683,6 @@ function seekGridPage(page, totalPages) {
1729
1683
  function resolveGridPageSize(pageSize) {
1730
1684
  return Number.isFinite(pageSize) && pageSize > 0 ? pageSize : null;
1731
1685
  }
1732
-
1733
- // ../ui-grid-core/src/lib/grid.core.pinning.ts
1734
1686
  function isPinningEnabled(options) {
1735
1687
  return options.enablePinning === true;
1736
1688
  }
@@ -1796,15 +1748,11 @@ function computePinnedOffset(visibleColumns, pinnedColumns, column) {
1796
1748
  }
1797
1749
  return null;
1798
1750
  }
1799
-
1800
- // ../ui-grid-core/src/lib/grid.features.ts
1801
1751
  var FEATURE_SORTING = true;
1802
1752
  var FEATURE_FILTERING = true;
1803
1753
  var FEATURE_GROUPING = true;
1804
1754
  var FEATURE_PAGINATION = true;
1805
1755
  var FEATURE_TREE_VIEW = true;
1806
-
1807
- // ../ui-grid-core/src/lib/row-sorter.ts
1808
1756
  function handleNulls(left, right) {
1809
1757
  if (left === void 0 || left === null || right === void 0 || right === null) {
1810
1758
  if ((left === void 0 || left === null) && (right === void 0 || right === null)) {
@@ -1902,8 +1850,6 @@ function getSortFn(column, rows) {
1902
1850
  const sampleValues = rows.map((row) => getCellValue(row, column));
1903
1851
  return guessSortFn(sampleValues);
1904
1852
  }
1905
-
1906
- // ../ui-grid-core/src/lib/grid.core.sorting.ts
1907
1853
  function isSortingEnabled(options) {
1908
1854
  return options.enableSorting !== false;
1909
1855
  }
@@ -1923,8 +1869,6 @@ function sortGridRows(rows, columns, options, sortState) {
1923
1869
  return sortFn(leftValue, rightValue) * directionMultiplier;
1924
1870
  });
1925
1871
  }
1926
-
1927
- // ../ui-grid-core/src/lib/grid.core.tree.ts
1928
1872
  function isTreeEnabled(options) {
1929
1873
  return options.enableTreeView === true;
1930
1874
  }
@@ -2026,8 +1970,6 @@ function filterAndFlattenGridTreeRows(rows, columns, options, activeFilters, exp
2026
1970
  flatten(null);
2027
1971
  return flattened;
2028
1972
  }
2029
-
2030
- // ../ui-grid-core/src/lib/grid.core.pipeline.ts
2031
1973
  var rowsCache = null;
2032
1974
  function buildGridRowsCached(context) {
2033
1975
  const dataRef = context.options.data;
@@ -2099,8 +2041,6 @@ function buildGridPipeline(context) {
2099
2041
  totalItems
2100
2042
  };
2101
2043
  }
2102
-
2103
- // ../ui-grid-core/src/lib/grid.core.row-edit.ts
2104
2044
  function createGridRowEditState() {
2105
2045
  return {
2106
2046
  dirtyRowIds: /* @__PURE__ */ new Set(),
@@ -2145,8 +2085,6 @@ function isGridRowEditTimerEnabled(waitInterval) {
2145
2085
  function resolveGridRowEditWaitInterval(waitInterval) {
2146
2086
  return waitInterval && waitInterval > 0 ? waitInterval : 2e3;
2147
2087
  }
2148
-
2149
- // ../ui-grid-core/src/lib/grid.core.row-state.ts
2150
2088
  function toggleGridRowExpanded(expandedRows, rowId) {
2151
2089
  const expanded = !expandedRows[rowId];
2152
2090
  return {
@@ -2186,8 +2124,6 @@ function expandAllGridTreeRows(rows) {
2186
2124
  }
2187
2125
  return nextExpandedTreeRows;
2188
2126
  }
2189
-
2190
- // ../ui-grid-core/src/lib/grid.core.selection.ts
2191
2127
  function createGridSelectionState() {
2192
2128
  return {
2193
2129
  selectedRowIds: /* @__PURE__ */ new Set(),
@@ -2365,13 +2301,9 @@ function mapSelectedRowsToEntities(rows) {
2365
2301
  }
2366
2302
  return out;
2367
2303
  }
2368
-
2369
- // ../ui-grid-core/src/lib/grid.core.state.ts
2370
2304
  function sanitizeDownloadFilename(value) {
2371
2305
  return value.replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "") || "ui-grid";
2372
2306
  }
2373
-
2374
- // ../ui-grid-core/src/lib/grid.core.viewmodel.ts
2375
2307
  function resolveGridLabels(overrides) {
2376
2308
  const localeLabels = gridI18n.getCurrentLabels();
2377
2309
  if (!overrides) return localeLabels;
@@ -2476,8 +2408,6 @@ function gridTreeToggleLabelForRow(expandedTreeRows, row, labels) {
2476
2408
  function gridExpandToggleLabelForRow(row, labels) {
2477
2409
  return gridExpandToggleLabel(row.expanded, labels);
2478
2410
  }
2479
-
2480
- // ../ui-grid-core/src/lib/ui-grid.wasm-path.ts
2481
2411
  var uiGridWasmWebModuleRelativePath = "dist/ui-grid-wasm-web/ui_grid_wasm.js";
2482
2412
  var uiGridWasmWebBinaryRelativePath = "dist/ui-grid-wasm-web/ui_grid_wasm_bg.wasm";
2483
2413
  var configuredUiGridWasmAssetBase = null;
@@ -2505,14 +2435,15 @@ function resolveUiGridWasmAssetUrl(relativePath) {
2505
2435
  const normalizedBase = normalizeUiGridWasmAssetBase(base);
2506
2436
  return `${normalizedBase}${relativePath}`;
2507
2437
  }
2438
+ function getConfiguredUiGridWasmAssetBase() {
2439
+ return configuredUiGridWasmAssetBase;
2440
+ }
2508
2441
  function getUiGridWasmModulePath() {
2509
2442
  return resolveUiGridWasmAssetUrl(uiGridWasmWebModuleRelativePath);
2510
2443
  }
2511
2444
  function getUiGridWasmBinaryPath() {
2512
2445
  return resolveUiGridWasmAssetUrl(uiGridWasmWebBinaryRelativePath);
2513
2446
  }
2514
-
2515
- // ../ui-grid-core/src/lib/grid.core.wasm-bridge.ts
2516
2447
  var defaultWasmSerializationAuditOptions = {
2517
2448
  enabled: true,
2518
2449
  maxDepth: 4,
@@ -2521,31 +2452,78 @@ var defaultWasmSerializationAuditOptions = {
2521
2452
  };
2522
2453
  var wasmCore = null;
2523
2454
  var wasmInitPromise = null;
2455
+ var wasmInitSource = null;
2456
+ var wasmInitGeneration = 0;
2457
+ var wasmInitState = "idle";
2524
2458
  var auditedWasmCore = null;
2525
2459
  var auditedWasmCoreSource = null;
2526
2460
  var wasmSerializationAuditOptions = {
2527
2461
  ...defaultWasmSerializationAuditOptions
2528
2462
  };
2529
2463
  var warnedWasmAuditKeys = /* @__PURE__ */ new Set();
2464
+ function currentWasmInitSource() {
2465
+ return getConfiguredUiGridWasmAssetBase() ?? "package";
2466
+ }
2467
+ async function loadWasmCoreModule() {
2468
+ if (!getConfiguredUiGridWasmAssetBase()) {
2469
+ return import("@ornery/ui-grid-wasm/bundler");
2470
+ }
2471
+ const module = await import(
2472
+ /* @vite-ignore */
2473
+ getUiGridWasmModulePath()
2474
+ );
2475
+ if (typeof module.default !== "function") {
2476
+ throw new Error("UI Grid WASM web module does not export an initializer");
2477
+ }
2478
+ await module.default(getUiGridWasmBinaryPath());
2479
+ return module;
2480
+ }
2481
+ function registerWasmCoreModule(module) {
2482
+ wasmInitGeneration += 1;
2483
+ wasmCore = module;
2484
+ auditedWasmCore = null;
2485
+ auditedWasmCoreSource = null;
2486
+ wasmInitSource = "registered";
2487
+ wasmInitState = "ready";
2488
+ wasmInitPromise = Promise.resolve(true);
2489
+ }
2530
2490
  async function initWasmCore() {
2531
2491
  if (wasmCore) {
2532
2492
  return true;
2533
2493
  }
2534
- if (!wasmInitPromise) {
2535
- wasmInitPromise = import(
2536
- /* @vite-ignore */
2537
- getUiGridWasmModulePath()
2538
- ).then(async (module) => {
2539
- await module.default(getUiGridWasmBinaryPath());
2540
- wasmCore = module;
2541
- return true;
2542
- }).catch(() => {
2543
- wasmInitPromise = null;
2544
- return false;
2545
- });
2546
- }
2494
+ const source = currentWasmInitSource();
2495
+ if (wasmInitPromise && wasmInitSource === source) {
2496
+ return wasmInitPromise;
2497
+ }
2498
+ const generation = ++wasmInitGeneration;
2499
+ wasmInitSource = source;
2500
+ wasmInitState = "loading";
2501
+ wasmInitPromise = loadWasmCoreModule().then((module) => {
2502
+ if (generation !== wasmInitGeneration) {
2503
+ return wasmCore !== null;
2504
+ }
2505
+ wasmCore = module;
2506
+ auditedWasmCore = null;
2507
+ auditedWasmCoreSource = null;
2508
+ wasmInitState = "ready";
2509
+ return true;
2510
+ }).catch(() => {
2511
+ if (generation === wasmInitGeneration) {
2512
+ wasmInitState = "failed";
2513
+ }
2514
+ return false;
2515
+ });
2547
2516
  return wasmInitPromise;
2548
2517
  }
2518
+ function getWasmCoreInitializationState() {
2519
+ if (wasmCore) {
2520
+ return "ready";
2521
+ }
2522
+ if (wasmInitSource !== currentWasmInitSource()) {
2523
+ return "idle";
2524
+ }
2525
+ return wasmInitState;
2526
+ }
2549
2527
  function readGlobalWasmSerializationAuditFlag() {
2550
2528
  if (typeof globalThis === "undefined") {
2551
2529
  return false;
@@ -2666,7 +2644,9 @@ function emitWasmSerializationAudit(methodName, result, extra = {}) {
2666
2644
  const signature = JSON.stringify({
2667
2645
  methodName,
2668
2646
  estimatedBytesBucket: Math.floor(result.estimatedBytes / 1024),
2669
- issues: result.issues.map((issue) => `${issue.path}:${issue.kind}:${issue.constructorName ?? ""}`)
2647
+ issues: result.issues.map(
2648
+ (issue) => `${issue.path}:${issue.kind}:${issue.constructorName ?? ""}`
2649
+ )
2670
2650
  });
2671
2651
  if (wasmSerializationAuditOptions.warnOnce && warnedWasmAuditKeys.has(signature)) {
2672
2652
  return;
@@ -2726,7 +2706,9 @@ function hasUnsupportedFilterCondition(column) {
2726
2706
  return condition instanceof RegExp || typeof condition === "function";
2727
2707
  }
2728
2708
  function shouldFallbackFiltering(columns) {
2729
- return columns.some((column) => hasColumnCallbacks(column) || hasUnsupportedFilterCondition(column));
2709
+ return columns.some(
2710
+ (column) => hasColumnCallbacks(column) || hasUnsupportedFilterCondition(column)
2711
+ );
2730
2712
  }
2731
2713
  function normalizeColumnForWasm(column) {
2732
2714
  return {
@@ -2756,9 +2738,6 @@ function normalizeOptionsForWasm(options) {
2756
2738
  function shouldFallbackTree(options, columns) {
2757
2739
  return shouldFallbackFiltering(columns);
2758
2740
  }
2759
- function shouldFallbackResolveRowId(options, row) {
2760
- return typeof options.rowIdentity === "function" && typeof row === "object" && row !== null && !("entity" in row);
2761
- }
2762
2741
  var buildGridCellContext2 = (...args) => buildGridCellContext(...args);
2763
2742
  var formatGridCellDisplayValue2 = (...args) => formatGridCellDisplayValue(...args);
2764
2743
  var buildGridHeaderContext2 = (...args) => buildGridHeaderContext(...args);
@@ -2872,26 +2851,12 @@ var sanitizeDownloadFilename2 = (value) => withWasm(
2872
2851
  (wasm) => wasm.sanitize_download_filename_js(value),
2873
2852
  () => sanitizeDownloadFilename(value)
2874
2853
  );
2875
- var findGridRowById2 = (rows, rowId) => withWasm(
2876
- (wasm) => wasm.find_grid_row_by_id_js({ rows, rowId }),
2877
- () => findGridRowById(rows, rowId)
2878
- );
2854
+ var findGridRowById2 = findGridRowById;
2879
2855
  var buildGridSortState2 = (columnName, direction) => withWasm(
2880
2856
  (wasm) => wasm.build_grid_sort_state_js({ columnName, direction: direction ?? null }),
2881
2857
  () => buildGridSortState(columnName, direction)
2882
2858
  );
2883
- var resolveGridRowId2 = (options, row) => withWasm(
2884
- (wasm) => {
2885
- if (shouldFallbackResolveRowId(options, row)) {
2886
- return resolveGridRowId(options, row);
2887
- }
2888
- return wasm.resolve_grid_row_id_js({
2889
- options: normalizeOptionsForWasm(options),
2890
- row
2891
- });
2892
- },
2893
- () => resolveGridRowId(options, row)
2894
- );
2859
+ var resolveGridRowId2 = resolveGridRowId;
2895
2860
  var maybeRequestInfiniteScrollData2 = (context) => withWasm(
2896
2861
  (wasm) => wasm.maybe_request_infinite_scroll_data_js(context),
2897
2862
  () => maybeRequestInfiniteScrollData(context)
@@ -2972,8 +2937,6 @@ var markGridRowSaving2 = markGridRowSaving;
2972
2937
  var markGridRowError2 = markGridRowError;
2973
2938
  var isGridRowEditTimerEnabled2 = isGridRowEditTimerEnabled;
2974
2939
  var resolveGridRowEditWaitInterval2 = resolveGridRowEditWaitInterval;
2975
-
2976
- // ../ui-grid-core/src/lib/grid.api.ts
2977
2940
  var GridEvent = class {
2978
2941
  listeners = /* @__PURE__ */ new Set();
2979
2942
  subscribe(listener) {
@@ -3355,8 +3318,6 @@ function createGridApi(bindings) {
3355
3318
  };
3356
3319
  return api;
3357
3320
  }
3358
-
3359
- // ../ui-grid-core/src/lib/grid.core.template-interpolate.ts
3360
3321
  function interpolateGridTemplate(templateMarkup, context, escape) {
3361
3322
  return templateMarkup.replace(/{{\s*([^}]+?)\s*}}/g, (_match, expression) => {
3362
3323
  const value = resolveGridTemplateValue(context, String(expression).trim());
@@ -3378,8 +3339,6 @@ function resolveGridTemplateValue(context, expression) {
3378
3339
  }
3379
3340
  return current ?? "";
3380
3341
  }
3381
-
3382
- // ../ui-grid-core/src/lib/ui-grid.events.ts
3383
3342
  function raiseGridSortChanged(gridApi, sortState) {
3384
3343
  gridApi.core.raise.sortChanged(sortState.columnName, sortState.direction);
3385
3344
  }
@@ -3417,8 +3376,6 @@ function raiseGridCancelCellEdit(gridApi, rowEntity, column) {
3417
3376
  function raiseGridColumnPinned(gridApi, columnName, direction) {
3418
3377
  gridApi.pinning.raise.columnPinned(columnName, direction);
3419
3378
  }
3420
-
3421
- // ../ui-grid-core/src/lib/ui-grid.state.ts
3422
3379
  function moveArrayItem(items, fromIndex, toIndex) {
3423
3380
  const next = [...items];
3424
3381
  const [item] = next.splice(fromIndex, 1);
@@ -3451,8 +3408,6 @@ function moveGridVisibleColumnOrderState(currentOrder, visibleColumnNames, colum
3451
3408
  }
3452
3409
  return nextOrder;
3453
3410
  }
3454
-
3455
- // ../ui-grid-core/src/lib/ui-grid.commands.ts
3456
3411
  function applyGridSortStateCommand(gridApi, setSortState, sortState) {
3457
3412
  setSortState(sortState);
3458
3413
  raiseGridSortChanged(gridApi, sortState);
@@ -3605,12 +3560,7 @@ function cancelGridCellEditCommand(gridApi, access) {
3605
3560
  raiseGridCancelCellEdit(gridApi, row.entity, column);
3606
3561
  return { focusTarget: editingCell };
3607
3562
  }
3608
-
3609
- // ../ui-grid-core/src/lib/ui-grid.engine.ts
3610
3563
  var registeredRustWasmBindings = null;
3611
- function activeGridEngineBackend() {
3612
- return registeredRustWasmBindings ? "rust-wasm" : "typescript";
3613
- }
3614
3564
  var RustBackedGridEngine = class {
3615
3565
  buildPipeline(context) {
3616
3566
  if (registeredRustWasmBindings) {
@@ -3620,16 +3570,15 @@ var RustBackedGridEngine = class {
3620
3570
  }
3621
3571
  };
3622
3572
  var defaultGridEngine = new RustBackedGridEngine();
3623
-
3624
- // ../ui-grid-core/src/lib/ui-grid.engine.wasm.ts
3573
+ function registerUiGridWasmEngineFromModule(module) {
3574
+ registerWasmCoreModule(module);
3575
+ }
3625
3576
  async function enableUiGridWasmEngine() {
3626
3577
  const ready = await initWasmCore();
3627
3578
  if (!ready) {
3628
3579
  throw new Error("Failed to initialize UI Grid WASM module");
3629
3580
  }
3630
3581
  }
3631
-
3632
- // ../ui-grid-core/src/lib/ui-grid.host.ts
3633
3582
  function downloadGridCsvFile(csv, filename) {
3634
3583
  if (typeof Blob === "undefined" || typeof URL === "undefined" || typeof document === "undefined") {
3635
3584
  return;
@@ -5976,7 +5925,6 @@ var VanillaGridController = class {
5976
5925
  visibleColumns = [];
5977
5926
  apiRegistered = false;
5978
5927
  disposed = false;
5979
- wasmEngineInitRequested = false;
5980
5928
  subscribers = /* @__PURE__ */ new Set();
5981
5929
  gridApi;
5982
5930
  constructor(options) {
@@ -7251,17 +7199,14 @@ var VanillaGridController = class {
7251
7199
  this.emit();
7252
7200
  }
7253
7201
  maybeEnableWasmEngine() {
7254
- if (this.wasmEngineInitRequested || activeGridEngineBackend() === "rust-wasm") {
7202
+ if (getWasmCoreInitializationState() !== "idle") {
7255
7203
  return;
7256
7204
  }
7257
- this.wasmEngineInitRequested = true;
7258
7205
  void enableUiGridWasmEngine().then(() => {
7259
7206
  if (!this.disposed) {
7260
7207
  this.refresh();
7261
7208
  }
7262
- }).catch(() => {
7263
- this.wasmEngineInitRequested = false;
7264
- });
7209
+ }).catch(() => void 0);
7265
7210
  }
7266
7211
  emit() {
7267
7212
  const snapshot = this.getSnapshot();
@@ -9556,6 +9501,7 @@ async function defineStandaloneUiGridElement(tagName = "ui-grid-element") {
9556
9501
  // src/index.ts
9557
9502
  async function registerVanillaUiGridRustModule(module, input) {
9558
9503
  await module.default(input);
9504
+ registerUiGridWasmEngineFromModule(module);
9559
9505
  }
9560
9506
  async function mountVanillaUiGrid(target, options, rustModule, tagName = "ui-grid-element") {
9561
9507
  if (rustModule) {
@@ -93,7 +93,6 @@ export declare class VanillaGridController {
93
93
  private visibleColumns;
94
94
  private apiRegistered;
95
95
  private disposed;
96
- private wasmEngineInitRequested;
97
96
  private readonly subscribers;
98
97
  readonly gridApi: UiGridApi;
99
98
  constructor(options: GridOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"grid-controller.d.ts","sourceRoot":"","sources":["../src/grid-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-controller.d.ts","sourceRoot":"","sources":["../src/grid-controller.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GridOptions } from '@ornery/ui-grid-core';
1
+ import { type GridOptions } from '@ornery/ui-grid-core';
2
2
  import { defineStandaloneUiGridElement, type VanillaUiGridElement } from './ui-grid-standalone.element';
3
3
  export { createVanillaGridController, type GridControllerSnapshot, type GridSaveState, type VanillaGridController, } from './grid-controller';
4
4
  export { defineStandaloneUiGridElement, UiGridStandaloneElement, type VanillaUiGridElement, type UiGridControlIconKey, type UiGridIconDefinition, type UiGridIconOverrides, type FrameworkRenderedSlotsConfig, type FrameworkCellSlot, type FrameworkHeaderSlot, type FrameworkFilterSlot, type FrameworkGroupRowSlot, type FrameworkExpandableRowSlot, type FrameworkEmptyStateSlot, type FrameworkSlotDelta, } from './ui-grid-standalone.element';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,OAAO,EAAE,6BAA6B,IAAI,mBAAmB,EAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,mBAAmB,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,mBAAmB,EAChC,OAAO,SAAoB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAe/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,OAAO,EAAE,6BAA6B,IAAI,mBAAmB,EAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,mBAAmB,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,mBAAmB,EAChC,OAAO,SAAoB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAe/B"}
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ __export(index_exports, {
29
29
  registerVanillaUiGridRustModule: () => registerVanillaUiGridRustModule
30
30
  });
31
31
  module.exports = __toCommonJS(index_exports);
32
+ var import_ui_grid_core7 = require("@ornery/ui-grid-core");
32
33
 
33
34
  // src/ui-grid-standalone.element.ts
34
35
  var import_ui_grid_core6 = require("@ornery/ui-grid-core");
@@ -2373,7 +2374,6 @@ var VanillaGridController = class {
2373
2374
  visibleColumns = [];
2374
2375
  apiRegistered = false;
2375
2376
  disposed = false;
2376
- wasmEngineInitRequested = false;
2377
2377
  subscribers = /* @__PURE__ */ new Set();
2378
2378
  gridApi;
2379
2379
  constructor(options) {
@@ -3648,17 +3648,14 @@ var VanillaGridController = class {
3648
3648
  this.emit();
3649
3649
  }
3650
3650
  maybeEnableWasmEngine() {
3651
- if (this.wasmEngineInitRequested || (0, import_ui_grid_core5.activeGridEngineBackend)() === "rust-wasm") {
3651
+ if ((0, import_ui_grid_core5.getWasmCoreInitializationState)() !== "idle") {
3652
3652
  return;
3653
3653
  }
3654
- this.wasmEngineInitRequested = true;
3655
3654
  void (0, import_ui_grid_core5.enableUiGridWasmEngine)().then(() => {
3656
3655
  if (!this.disposed) {
3657
3656
  this.refresh();
3658
3657
  }
3659
- }).catch(() => {
3660
- this.wasmEngineInitRequested = false;
3661
- });
3658
+ }).catch(() => void 0);
3662
3659
  }
3663
3660
  emit() {
3664
3661
  const snapshot = this.getSnapshot();
@@ -5953,6 +5950,7 @@ async function defineStandaloneUiGridElement(tagName = "ui-grid-element") {
5953
5950
  // src/index.ts
5954
5951
  async function registerVanillaUiGridRustModule(module2, input) {
5955
5952
  await module2.default(input);
5953
+ (0, import_ui_grid_core7.registerUiGridWasmEngineFromModule)(module2);
5956
5954
  }
5957
5955
  async function mountVanillaUiGrid(target, options, rustModule, tagName = "ui-grid-element") {
5958
5956
  if (rustModule) {
package/dist/index.mjs CHANGED
@@ -1,3 +1,6 @@
1
+ // src/index.ts
2
+ import { registerUiGridWasmEngineFromModule } from "@ornery/ui-grid-core";
3
+
1
4
  // src/ui-grid-standalone.element.ts
2
5
  import {
3
6
  interpolateGridTemplate
@@ -2236,7 +2239,6 @@ var IconRegistry = class {
2236
2239
  // src/grid-controller.ts
2237
2240
  import {
2238
2241
  SORT_DIRECTIONS as SORT_DIRECTIONS2,
2239
- activeGridEngineBackend,
2240
2242
  beginGridCellEditCommand,
2241
2243
  buildGridRows,
2242
2244
  buildGridCellContext,
@@ -2253,6 +2255,7 @@ import {
2253
2255
  expandAllGridRowsCommand,
2254
2256
  expandAllGridTreeRowsCommand,
2255
2257
  enableUiGridWasmEngine,
2258
+ getWasmCoreInitializationState,
2256
2259
  findGridRowById as coreFindGridRowById,
2257
2260
  formatGridCellDisplayValue,
2258
2261
  getCellValue as getCellValue3,
@@ -2462,7 +2465,6 @@ var VanillaGridController = class {
2462
2465
  visibleColumns = [];
2463
2466
  apiRegistered = false;
2464
2467
  disposed = false;
2465
- wasmEngineInitRequested = false;
2466
2468
  subscribers = /* @__PURE__ */ new Set();
2467
2469
  gridApi;
2468
2470
  constructor(options) {
@@ -3737,17 +3739,14 @@ var VanillaGridController = class {
3737
3739
  this.emit();
3738
3740
  }
3739
3741
  maybeEnableWasmEngine() {
3740
- if (this.wasmEngineInitRequested || activeGridEngineBackend() === "rust-wasm") {
3742
+ if (getWasmCoreInitializationState() !== "idle") {
3741
3743
  return;
3742
3744
  }
3743
- this.wasmEngineInitRequested = true;
3744
3745
  void enableUiGridWasmEngine().then(() => {
3745
3746
  if (!this.disposed) {
3746
3747
  this.refresh();
3747
3748
  }
3748
- }).catch(() => {
3749
- this.wasmEngineInitRequested = false;
3750
- });
3749
+ }).catch(() => void 0);
3751
3750
  }
3752
3751
  emit() {
3753
3752
  const snapshot = this.getSnapshot();
@@ -6042,6 +6041,7 @@ async function defineStandaloneUiGridElement(tagName = "ui-grid-element") {
6042
6041
  // src/index.ts
6043
6042
  async function registerVanillaUiGridRustModule(module, input) {
6044
6043
  await module.default(input);
6044
+ registerUiGridWasmEngineFromModule(module);
6045
6045
  }
6046
6046
  async function mountVanillaUiGrid(target, options, rustModule, tagName = "ui-grid-element") {
6047
6047
  if (rustModule) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ornery/ui-grid-vanilla",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "description": "Vanilla DOM wrapper for the Rust/WASM-backed @ornery/ui-grid-core custom element",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -26,16 +26,17 @@
26
26
  "./browser/ui-grid-element.js": "./dist/browser/ui-grid-element.js"
27
27
  },
28
28
  "dependencies": {
29
- "@ornery/ui-grid-core": "5.0.0"
29
+ "@ornery/ui-grid-core": "5.0.2"
30
30
  },
31
31
  "devDependencies": {
32
- "happy-dom": "^20.10.6",
32
+ "@ornery/ui-grid-core": "file:../ui-grid-core",
33
+ "happy-dom": "^21.0.4",
33
34
  "jsdom": "^29.1.1",
34
35
  "sass": "^1.101.0",
35
36
  "tsup": "^8.5.1",
36
37
  "typescript": "~6.0.3",
37
- "vite": "^8.1.2",
38
- "vitest": "^4.1.9"
38
+ "vite": "^8.3.4",
39
+ "vitest": "^4.1.12"
39
40
  },
40
41
  "scripts": {
41
42
  "start": "SASS_PATH=node_modules vite serve",
@@ -1,6 +1,6 @@
1
1
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
2
 
3
- import { clearRustWasmGridEngine } from '@ornery/ui-grid-core';
3
+ import { clearRustWasmGridEngine, initWasmCore } from '@ornery/ui-grid-core';
4
4
 
5
5
  import {
6
6
  mountVanillaUiGrid,
@@ -89,7 +89,7 @@ async function mountGrid(options: GridOptions): Promise<{
89
89
  const target = document.getElementById('app')!;
90
90
  const grid = await mountVanillaUiGrid(target, options, undefined, TAG);
91
91
  const shadow = await waitFor(() => grid.shadowRoot);
92
- await waitFor(() => shadow.querySelector('.body-cell[data-row="r1"][data-column="name"]'));
92
+ await waitFor(() => shadow.querySelector('.body-cell[data-column="name"]'));
93
93
  return { grid, shadow };
94
94
  }
95
95
 
@@ -214,11 +214,7 @@ describe('cell selection state retention', () => {
214
214
  // the cell entirely.
215
215
  const projected = document.createElement('span');
216
216
  projected.className = 'projected-cell';
217
- const path: EventTarget[] = [
218
- projected,
219
- targetCell,
220
- shadow,
221
- ];
217
+ const path: EventTarget[] = [projected, targetCell, shadow];
222
218
  const event = new MouseEvent('click', {
223
219
  bubbles: true,
224
220
  cancelable: true,
@@ -260,8 +256,7 @@ describe('row selection + expand patch correctness', () => {
260
256
  return baseOptions({
261
257
  enableRowSelection: true,
262
258
  enableExpandable: true,
263
- expandableRowTemplate:
264
- template as unknown as GridOptions['expandableRowTemplate'],
259
+ expandableRowTemplate: template as unknown as GridOptions['expandableRowTemplate'],
265
260
  });
266
261
  }
267
262
 
@@ -387,9 +382,7 @@ describe('row selection + expand patch correctness', () => {
387
382
  const options = selectionExpandOptions();
388
383
  options.enableCellEdit = true;
389
384
  options.columnDefs = options.columnDefs.map((c) =>
390
- c.name === 'name'
391
- ? { ...c, enableCellEdit: true, validators: { required: true } }
392
- : c,
385
+ c.name === 'name' ? { ...c, enableCellEdit: true, validators: { required: true } } : c,
393
386
  );
394
387
 
395
388
  const { shadow } = await mountGrid(options);
@@ -405,15 +398,38 @@ describe('row selection + expand patch correctness', () => {
405
398
  await waitFor(() =>
406
399
  shadow.querySelector('.body-cell[data-row="r1"][data-column="name"].ui-grid-cell-invalid'),
407
400
  );
408
- expect(
409
- cellIn(shadow, 'r1', 'name').classList.contains('ui-grid-cell-invalid'),
410
- ).toBe(true);
401
+ expect(cellIn(shadow, 'r1', 'name').classList.contains('ui-grid-cell-invalid')).toBe(true);
411
402
  // Other rows / columns must NOT be flagged.
412
- expect(
413
- cellIn(shadow, 'r1', 'status').classList.contains('ui-grid-cell-invalid'),
414
- ).toBe(false);
415
- expect(
416
- cellIn(shadow, 'r2', 'name').classList.contains('ui-grid-cell-invalid'),
417
- ).toBe(false);
403
+ expect(cellIn(shadow, 'r1', 'status').classList.contains('ui-grid-cell-invalid')).toBe(false);
404
+ expect(cellIn(shadow, 'r2', 'name').classList.contains('ui-grid-cell-invalid')).toBe(false);
405
+ });
406
+
407
+ it('keeps selection and expansion clicks independent with WASM active', async () => {
408
+ await initWasmCore();
409
+ const options = selectionExpandOptions();
410
+ options.rowIdentity = undefined;
411
+ const { shadow } = await mountGrid(options);
412
+ const api = getApi(options);
413
+ const rowId = `${options.id}-0`;
414
+ const expandToggle = (): HTMLElement => {
415
+ const toggle = cellIn(shadow, rowId, 'name').querySelector<HTMLElement>('.row-toggle-expand');
416
+ if (!toggle) throw new Error('Expand toggle was not rendered in the primary data column');
417
+ return toggle;
418
+ };
419
+
420
+ dispatchClick(cellIn(shadow, rowId, 'selectionRowHeaderCol'));
421
+ await waitFor(() => (api.selection.getSelectedCount() === 1 ? {} : null));
422
+ expect(api.selection.getSelectedRows()[0]?.['id']).toBe('r1');
423
+
424
+ dispatchClick(cellIn(shadow, rowId, 'selectionRowHeaderCol'));
425
+ await waitFor(() => (api.selection.getSelectedCount() === 0 ? {} : null));
426
+
427
+ dispatchClick(expandToggle());
428
+ await waitFor(() => shadow.querySelector('.expandable-row'));
429
+ expect(api.selection.getSelectedCount()).toBe(0);
430
+
431
+ dispatchClick(expandToggle());
432
+ await waitFor(() => (shadow.querySelector('.expandable-row') === null ? {} : null));
433
+ expect(api.selection.getSelectedCount()).toBe(0);
418
434
  });
419
435
  });
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  SORT_DIRECTIONS,
3
- activeGridEngineBackend,
4
3
  beginGridCellEditCommand,
5
4
  buildGridRows,
6
5
  buildGridCellContext,
@@ -17,6 +16,7 @@ import {
17
16
  expandAllGridRowsCommand,
18
17
  expandAllGridTreeRowsCommand,
19
18
  enableUiGridWasmEngine,
19
+ getWasmCoreInitializationState,
20
20
  findGridRowById as coreFindGridRowById,
21
21
  formatGridCellDisplayValue,
22
22
  getCellValue,
@@ -346,7 +346,6 @@ export class VanillaGridController {
346
346
  private visibleColumns: GridColumnDef[] = [];
347
347
  private apiRegistered = false;
348
348
  private disposed = false;
349
- private wasmEngineInitRequested = false;
350
349
 
351
350
  private readonly subscribers = new Set<GridControllerSubscriber>();
352
351
 
@@ -1905,20 +1904,17 @@ export class VanillaGridController {
1905
1904
  }
1906
1905
 
1907
1906
  private maybeEnableWasmEngine(): void {
1908
- if (this.wasmEngineInitRequested || activeGridEngineBackend() === 'rust-wasm') {
1907
+ if (getWasmCoreInitializationState() !== 'idle') {
1909
1908
  return;
1910
1909
  }
1911
1910
 
1912
- this.wasmEngineInitRequested = true;
1913
1911
  void enableUiGridWasmEngine()
1914
1912
  .then(() => {
1915
1913
  if (!this.disposed) {
1916
1914
  this.refresh();
1917
1915
  }
1918
1916
  })
1919
- .catch(() => {
1920
- this.wasmEngineInitRequested = false;
1921
- });
1917
+ .catch(() => undefined);
1922
1918
  }
1923
1919
 
1924
1920
  private emit(): void {
@@ -6,6 +6,7 @@ import {
6
6
  activeGridEngineBackend,
7
7
  buildGridRows,
8
8
  clearRustWasmGridEngine,
9
+ clearWasmCoreModule,
9
10
  } from '@ornery/ui-grid-core';
10
11
  import {
11
12
  defineStandaloneUiGridElement,
@@ -40,6 +41,7 @@ describe('mountVanillaUiGrid integration', () => {
40
41
 
41
42
  afterEach(() => {
42
43
  clearRustWasmGridEngine();
44
+ clearWasmCoreModule();
43
45
  document.body.innerHTML = '';
44
46
  });
45
47
 
@@ -181,6 +183,7 @@ describe('mountVanillaUiGrid integration', () => {
181
183
 
182
184
  it('lazy-loads the wasm engine once and refreshes through it when ready', async () => {
183
185
  const enableSpy = vi.spyOn(core, 'enableUiGridWasmEngine').mockImplementation(async () => {
186
+ core.registerWasmCoreModule({});
184
187
  core.registerRustWasmGridEngine({
185
188
  buildPipeline(context) {
186
189
  return {
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GridOptions } from '@ornery/ui-grid-core';
1
+ import { registerUiGridWasmEngineFromModule, type GridOptions } from '@ornery/ui-grid-core';
2
2
 
3
3
  import {
4
4
  defineStandaloneUiGridElement,
@@ -41,6 +41,7 @@ export async function registerVanillaUiGridRustModule(
41
41
  input?: unknown,
42
42
  ): Promise<void> {
43
43
  await module.default(input);
44
+ registerUiGridWasmEngineFromModule(module);
44
45
  }
45
46
 
46
47
  export async function mountVanillaUiGrid(
package/tsup.config.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import path from 'node:path';
1
2
  import { defineConfig } from 'tsup';
2
3
  import { scssInlineEsbuild } from './scss-plugin';
3
4
 
@@ -17,9 +18,16 @@ export default defineConfig([
17
18
  platform: 'browser',
18
19
  target: 'es2022',
19
20
  outDir: 'dist/browser',
21
+ external: ['@ornery/ui-grid-wasm/bundler'],
20
22
  outExtension: () => ({ js: '.js' }),
21
23
  tsconfig: './tsconfig.json',
22
24
  noExternal: ['@ornery/ui-grid-core'],
25
+ esbuildOptions(options) {
26
+ options.alias = {
27
+ ...options.alias,
28
+ '@ornery/ui-grid-core': path.resolve(__dirname, '../ui-grid-core/dist/index.mjs'),
29
+ };
30
+ },
23
31
  esbuildPlugins: [scssInlineEsbuild()],
24
32
  },
25
33
  ]);