@toclocoinc/lattice-grid 1.68.1 → 1.69.0

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 (165) hide show
  1. package/README.md +26 -1
  2. package/angular/fesm2022/toclocoinc-lattice-grid-angular.mjs +1 -0
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +3834 -1278
  5. package/docs/api-detail.html +102 -4
  6. package/lattice-grid.d.ts +2635 -143
  7. package/lattice-grid.esm.min.js +257 -50
  8. package/lattice-grid.min.cjs +257 -50
  9. package/lattice-grid.min.css +1 -1
  10. package/lattice-grid.min.js +257 -50
  11. package/modules/ai.d.ts +111 -13
  12. package/modules/ai.esm.min.js +19 -3
  13. package/modules/ai.min.cjs +19 -3
  14. package/modules/ai.min.js +19 -3
  15. package/modules/angular.d.ts +1 -1
  16. package/modules/angular.esm.min.js +3 -3
  17. package/modules/angular.min.cjs +3 -3
  18. package/modules/angular.min.js +3 -3
  19. package/modules/chart-alluvial.d.ts +1 -1
  20. package/modules/chart-alluvial.esm.min.js +1 -1
  21. package/modules/chart-alluvial.min.cjs +1 -1
  22. package/modules/chart-alluvial.min.js +1 -1
  23. package/modules/chart-arc.d.ts +1 -1
  24. package/modules/chart-arc.esm.min.js +1 -1
  25. package/modules/chart-arc.min.cjs +1 -1
  26. package/modules/chart-arc.min.js +1 -1
  27. package/modules/chart-bubblemap.d.ts +1 -1
  28. package/modules/chart-bubblemap.esm.min.js +1 -1
  29. package/modules/chart-bubblemap.min.cjs +1 -1
  30. package/modules/chart-bubblemap.min.js +1 -1
  31. package/modules/chart-bump.d.ts +1 -1
  32. package/modules/chart-bump.esm.min.js +1 -1
  33. package/modules/chart-bump.min.cjs +1 -1
  34. package/modules/chart-bump.min.js +1 -1
  35. package/modules/chart-calendar.d.ts +1 -1
  36. package/modules/chart-calendar.esm.min.js +1 -1
  37. package/modules/chart-calendar.min.cjs +1 -1
  38. package/modules/chart-calendar.min.js +1 -1
  39. package/modules/chart-decomposition.d.ts +1 -1
  40. package/modules/chart-decomposition.esm.min.js +1 -1
  41. package/modules/chart-decomposition.min.cjs +1 -1
  42. package/modules/chart-decomposition.min.js +1 -1
  43. package/modules/chart-diverging.d.ts +1 -1
  44. package/modules/chart-diverging.esm.min.js +1 -1
  45. package/modules/chart-diverging.min.cjs +1 -1
  46. package/modules/chart-diverging.min.js +1 -1
  47. package/modules/chart-dumbbell.d.ts +1 -1
  48. package/modules/chart-dumbbell.esm.min.js +1 -1
  49. package/modules/chart-dumbbell.min.cjs +1 -1
  50. package/modules/chart-dumbbell.min.js +1 -1
  51. package/modules/chart-fan.d.ts +1 -1
  52. package/modules/chart-fan.esm.min.js +1 -1
  53. package/modules/chart-fan.min.cjs +1 -1
  54. package/modules/chart-fan.min.js +1 -1
  55. package/modules/chart-hexbin.d.ts +1 -1
  56. package/modules/chart-hexbin.esm.min.js +1 -1
  57. package/modules/chart-hexbin.min.cjs +1 -1
  58. package/modules/chart-hexbin.min.js +1 -1
  59. package/modules/chart-hexmap.d.ts +1 -1
  60. package/modules/chart-hexmap.esm.min.js +1 -1
  61. package/modules/chart-hexmap.min.cjs +1 -1
  62. package/modules/chart-hexmap.min.js +1 -1
  63. package/modules/chart-icicle.d.ts +1 -1
  64. package/modules/chart-icicle.esm.min.js +1 -1
  65. package/modules/chart-icicle.min.cjs +1 -1
  66. package/modules/chart-icicle.min.js +1 -1
  67. package/modules/chart-markermap.d.ts +1 -1
  68. package/modules/chart-markermap.esm.min.js +1 -1
  69. package/modules/chart-markermap.min.cjs +1 -1
  70. package/modules/chart-markermap.min.js +1 -1
  71. package/modules/chart-parallel.d.ts +1 -1
  72. package/modules/chart-parallel.esm.min.js +1 -1
  73. package/modules/chart-parallel.min.cjs +1 -1
  74. package/modules/chart-parallel.min.js +1 -1
  75. package/modules/chart-ridgeline.d.ts +1 -1
  76. package/modules/chart-ridgeline.esm.min.js +1 -1
  77. package/modules/chart-ridgeline.min.cjs +1 -1
  78. package/modules/chart-ridgeline.min.js +1 -1
  79. package/modules/chart-roc.d.ts +1 -1
  80. package/modules/chart-roc.esm.min.js +1 -1
  81. package/modules/chart-roc.min.cjs +1 -1
  82. package/modules/chart-roc.min.js +1 -1
  83. package/modules/chart-slope.d.ts +1 -1
  84. package/modules/chart-slope.esm.min.js +1 -1
  85. package/modules/chart-slope.min.cjs +1 -1
  86. package/modules/chart-slope.min.js +1 -1
  87. package/modules/chart-splom.d.ts +1 -1
  88. package/modules/chart-splom.esm.min.js +1 -1
  89. package/modules/chart-splom.min.cjs +1 -1
  90. package/modules/chart-splom.min.js +1 -1
  91. package/modules/chart-waffle.d.ts +1 -1
  92. package/modules/chart-waffle.esm.min.js +1 -1
  93. package/modules/chart-waffle.min.cjs +1 -1
  94. package/modules/chart-waffle.min.js +1 -1
  95. package/modules/charts.d.ts +1 -1
  96. package/modules/charts.esm.min.js +9 -9
  97. package/modules/charts.min.cjs +9 -9
  98. package/modules/charts.min.js +9 -9
  99. package/modules/data-router.d.ts +35 -5
  100. package/modules/data-router.esm.min.js +9 -4
  101. package/modules/data-router.min.cjs +9 -4
  102. package/modules/data-router.min.js +9 -4
  103. package/modules/devtools.d.ts +1 -1
  104. package/modules/devtools.esm.min.js +1 -1
  105. package/modules/devtools.min.cjs +1 -1
  106. package/modules/devtools.min.js +1 -1
  107. package/modules/dhtmlx-compat.d.ts +1 -1
  108. package/modules/dhtmlx-compat.esm.min.js +3 -3
  109. package/modules/dhtmlx-compat.min.cjs +3 -3
  110. package/modules/dhtmlx-compat.min.js +3 -3
  111. package/modules/gantt.d.ts +283 -33
  112. package/modules/gantt.esm.min.js +15 -8
  113. package/modules/gantt.min.cjs +15 -8
  114. package/modules/gantt.min.js +15 -8
  115. package/modules/geo-europe-nuts.d.ts +1 -1
  116. package/modules/geo-europe-nuts.esm.min.js +1 -1
  117. package/modules/geo-uk.d.ts +1 -1
  118. package/modules/geo-uk.esm.min.js +1 -1
  119. package/modules/geo-us-states.d.ts +1 -1
  120. package/modules/geo-us-states.esm.min.js +1 -1
  121. package/modules/geo-world-110m.d.ts +1 -1
  122. package/modules/geo-world-110m.esm.min.js +1 -1
  123. package/modules/geo-world-50m.d.ts +1 -1
  124. package/modules/geo-world-50m.esm.min.js +1 -1
  125. package/modules/htmx.d.ts +1 -1
  126. package/modules/htmx.esm.min.js +257 -50
  127. package/modules/htmx.min.cjs +257 -50
  128. package/modules/htmx.min.js +257 -50
  129. package/modules/kanban.d.ts +456 -5
  130. package/modules/kanban.esm.min.js +3 -3
  131. package/modules/kanban.min.cjs +3 -3
  132. package/modules/kanban.min.js +3 -3
  133. package/modules/kpi.d.ts +68 -4
  134. package/modules/kpi.esm.min.js +3 -3
  135. package/modules/kpi.min.cjs +3 -3
  136. package/modules/kpi.min.js +3 -3
  137. package/modules/layout.d.ts +134 -8
  138. package/modules/layout.esm.min.js +3 -3
  139. package/modules/layout.min.cjs +3 -3
  140. package/modules/layout.min.js +3 -3
  141. package/modules/mock-socket.d.ts +1 -1
  142. package/modules/mock-socket.esm.min.js +1 -1
  143. package/modules/mock-socket.min.cjs +1 -1
  144. package/modules/mock-socket.min.js +1 -1
  145. package/modules/react.d.ts +5 -1
  146. package/modules/react.esm.min.js +3 -3
  147. package/modules/react.min.cjs +3 -3
  148. package/modules/react.min.js +3 -3
  149. package/modules/svelte.d.ts +1 -1
  150. package/modules/svelte.esm.min.js +3 -3
  151. package/modules/svelte.min.cjs +3 -3
  152. package/modules/svelte.min.js +3 -3
  153. package/modules/tabs.d.ts +96 -20
  154. package/modules/tabs.esm.min.js +3 -3
  155. package/modules/tabs.min.cjs +3 -3
  156. package/modules/tabs.min.js +3 -3
  157. package/modules/vue.d.ts +5 -1
  158. package/modules/vue.esm.min.js +3 -3
  159. package/modules/vue.min.cjs +3 -3
  160. package/modules/vue.min.js +3 -3
  161. package/modules/webcomponent.d.ts +10 -39
  162. package/modules/webcomponent.esm.min.js +302 -54
  163. package/modules/webcomponent.min.cjs +302 -54
  164. package/modules/webcomponent.min.js +302 -54
  165. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, data-router module type declarations
2
+ * Lattice Grid 1.69.0, data-router module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -134,7 +134,9 @@ interface RouteOptions {
134
134
  * or `{ ok: false }` (or reject, or throw) to revert the cell, `{ conflict, row }` to
135
135
  * fire `onConflict` and take the winning row, anything else to accept; a promise is
136
136
  * awaited with the optimistic value standing. Overrides the router-wide handler. The
137
- * context's `route` is the viewer; `source` is always null.
137
+ * context's `route` is the viewer, and `source` is the `addSource` handle of the feed
138
+ * the edited row arrived on — the one to persist back to on a fan-in router — or null
139
+ * when the rows were loaded into the router directly.
138
140
  */
139
141
  onWrite?: (change: RouterWrite, ctx: { route: unknown; source: unknown }) => unknown;
140
142
  /**
@@ -294,6 +296,10 @@ interface RouterRouteMetrics {
294
296
  * of a route reports 0, having no interval to measure.
295
297
  */
296
298
  throughput: number;
299
+ /**
300
+ * Any further counter the route's own stage publishes. The four above are the ones
301
+ * every route reports; a stage may add to them and they arrive here.
302
+ */
297
303
  [key: string]: unknown;
298
304
  }
299
305
 
@@ -392,6 +398,25 @@ interface RouterPersistOptions {
392
398
  storeName?: string;
393
399
  }
394
400
 
401
+ /**
402
+ * The events a data router raises.
403
+ *
404
+ * One event, and the router raises nothing else: routing itself is reported to
405
+ * each attached viewer through its own `rows.apply`, not through an event here.
406
+ * The `metrics` timer runs only while at least one `metrics` listener is
407
+ * registered, so collection costs nothing until someone asks for it, and stops
408
+ * when the last listener unsubscribes.
409
+ */
410
+ type RouterEventName =
411
+ /** The metrics timer fired: a `metrics()` snapshot, every `metricsInterval` ms (default 1000; `0` disables the timer). */
412
+ | 'metrics';
413
+
414
+ /** What a handler receives, per router event. */
415
+ interface RouterEventPayloads {
416
+ /** The same snapshot `metrics()` returns, taken at the emit; the throughput baseline advances with it. */
417
+ metrics: RouterMetrics;
418
+ }
419
+
395
420
  /**
396
421
  * A data router: one arriving stream, partitioned by a property (or composite
397
422
  * predicate), fanned out to a grid per partition. Each grid
@@ -441,8 +466,12 @@ interface DataRouter {
441
466
  sources(): string[];
442
467
  /** A cheap point-in-time snapshot of the router's runtime (v10); throughput is measured since the previous read. */
443
468
  metrics(): RouterMetrics;
444
- /** Subscribe to the periodic `metrics` emit (v10) — the only event; the timer runs only while a listener is registered. Returns the unsubscribe. */
445
- on(event: 'metrics', handler: (snapshot: RouterMetrics) => void): () => void;
469
+ /**
470
+ * Subscribe to the periodic `metrics` emit (v10) — the only event; the timer runs only
471
+ * while a listener is registered. What it carries is {@link RouterEventPayloads}.
472
+ * Returns the unsubscribe.
473
+ */
474
+ on(event: RouterEventName, handler: (snapshot: RouterEventPayloads[RouterEventName]) => void): () => void;
446
475
  /** Mount the live devtools panel into `el` (v10); it re-renders on each `metrics` emit. */
447
476
  mountDevtools(el: unknown): RouterDevtoolsPanel;
448
477
  /** How many records matched no route since the last `load` or `query`, running for deltas. */
@@ -582,7 +611,8 @@ interface DataRouterOptions {
582
611
  * Persist an edit committed in any route attached `{ writable: true }`
583
612
  * that names no handler of its own. Return, or resolve, falsely to revert
584
613
  * the edit; a route with neither this nor its own handler leaves the edit
585
- * in place unpersisted and warns.
614
+ * in place unpersisted and warns. The context's `source` is the
615
+ * `addSource` handle of the feed the edited row arrived on, or null.
586
616
  */
587
617
  onWrite?: (change: RouterWrite, ctx: { route: unknown; source: unknown }) => unknown;
588
618
  /**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, data-router module
2
+ * Lattice Grid 1.69.0, data-router module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -52,12 +52,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
52
52
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
53
53
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
54
54
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
55
- const STAMPED_VERSION="1.68.1";
55
+ const STAMPED_VERSION="1.69.0";
56
56
  async function resolveVersion(){
57
57
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
58
58
  return STAMPED_VERSION;
59
59
  }
60
- const VERSION="1.68.1";
60
+ const VERSION="1.69.0";
61
61
  const warned=new Set();
62
62
  const WARNED_LIMIT=2000;
63
63
  function rememberWarned(key){
@@ -2323,6 +2323,11 @@ return;
2323
2323
  metricAdd('writeAccepted',1);
2324
2324
  reenterWrite(obj&&obj.row?obj.row:change.row);
2325
2325
  };
2326
+ const sourceOf=(key)=>{
2327
+ const id=String(key);
2328
+ for(const source of sources.values())if(source.live.has(id))return source.handle;
2329
+ return null;
2330
+ };
2326
2331
  const onGridEdit=(route,e)=>{
2327
2332
  if(!e||e.key===undefined||e.colId===undefined)return;
2328
2333
  if(revertingCells.has(cellId(e.key,e.colId)))return;
@@ -2346,7 +2351,7 @@ warnOnce(
2346
2351
  return;
2347
2352
  }
2348
2353
  let result;
2349
- try{result=onWrite(change,{route:route.grid,source:null});}
2354
+ try{result=onWrite(change,{route:route.grid,source:sourceOf(change.key)});}
2350
2355
  catch{revertCell(route,change);metricAdd('writeRejected',1);return;}
2351
2356
  if(result&&typeof result.then==='function'){
2352
2357
  result.then(
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, data-router module
2
+ * Lattice Grid 1.69.0, data-router module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.1";
57
+ const STAMPED_VERSION="1.69.0";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.1";
62
+ const VERSION="1.69.0";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
@@ -2325,6 +2325,11 @@ return;
2325
2325
  metricAdd('writeAccepted',1);
2326
2326
  reenterWrite(obj&&obj.row?obj.row:change.row);
2327
2327
  };
2328
+ const sourceOf=(key)=>{
2329
+ const id=String(key);
2330
+ for(const source of sources.values())if(source.live.has(id))return source.handle;
2331
+ return null;
2332
+ };
2328
2333
  const onGridEdit=(route,e)=>{
2329
2334
  if(!e||e.key===undefined||e.colId===undefined)return;
2330
2335
  if(revertingCells.has(cellId(e.key,e.colId)))return;
@@ -2348,7 +2353,7 @@ warnOnce(
2348
2353
  return;
2349
2354
  }
2350
2355
  let result;
2351
- try{result=onWrite(change,{route:route.grid,source:null});}
2356
+ try{result=onWrite(change,{route:route.grid,source:sourceOf(change.key)});}
2352
2357
  catch{revertCell(route,change);metricAdd('writeRejected',1);return;}
2353
2358
  if(result&&typeof result.then==='function'){
2354
2359
  result.then(
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, data-router module
2
+ * Lattice Grid 1.69.0, data-router module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -54,12 +54,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
54
54
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
55
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
56
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
- const STAMPED_VERSION="1.68.1";
57
+ const STAMPED_VERSION="1.69.0";
58
58
  async function resolveVersion(){
59
59
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
60
  return STAMPED_VERSION;
61
61
  }
62
- const VERSION="1.68.1";
62
+ const VERSION="1.69.0";
63
63
  const warned=new Set();
64
64
  const WARNED_LIMIT=2000;
65
65
  function rememberWarned(key){
@@ -2325,6 +2325,11 @@ return;
2325
2325
  metricAdd('writeAccepted',1);
2326
2326
  reenterWrite(obj&&obj.row?obj.row:change.row);
2327
2327
  };
2328
+ const sourceOf=(key)=>{
2329
+ const id=String(key);
2330
+ for(const source of sources.values())if(source.live.has(id))return source.handle;
2331
+ return null;
2332
+ };
2328
2333
  const onGridEdit=(route,e)=>{
2329
2334
  if(!e||e.key===undefined||e.colId===undefined)return;
2330
2335
  if(revertingCells.has(cellId(e.key,e.colId)))return;
@@ -2348,7 +2353,7 @@ warnOnce(
2348
2353
  return;
2349
2354
  }
2350
2355
  let result;
2351
- try{result=onWrite(change,{route:route.grid,source:null});}
2356
+ try{result=onWrite(change,{route:route.grid,source:sourceOf(change.key)});}
2352
2357
  catch{revertCell(route,change);metricAdd('writeRejected',1);return;}
2353
2358
  if(result&&typeof result.then==='function'){
2354
2359
  result.then(
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, devtools module type declarations
2
+ * Lattice Grid 1.69.0, devtools module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, devtools module
2
+ * Lattice Grid 1.69.0, devtools module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, devtools module
2
+ * Lattice Grid 1.69.0, devtools module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, devtools module
2
+ * Lattice Grid 1.69.0, devtools module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, dhtmlx-compat module type declarations
2
+ * Lattice Grid 1.69.0, dhtmlx-compat module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, dhtmlx-compat module
2
+ * Lattice Grid 1.69.0, dhtmlx-compat module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -62,12 +62,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
62
62
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
63
63
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
64
64
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
65
- const STAMPED_VERSION="1.68.1";
65
+ const STAMPED_VERSION="1.69.0";
66
66
  async function resolveVersion(){
67
67
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
68
68
  return STAMPED_VERSION;
69
69
  }
70
- const VERSION="1.68.1";
70
+ const VERSION="1.69.0";
71
71
  const warned=new Set();
72
72
  const WARNED_LIMIT=2000;
73
73
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, dhtmlx-compat module
2
+ * Lattice Grid 1.69.0, dhtmlx-compat module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -63,12 +63,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
63
63
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
64
64
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
65
65
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
66
- const STAMPED_VERSION="1.68.1";
66
+ const STAMPED_VERSION="1.69.0";
67
67
  async function resolveVersion(){
68
68
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
69
69
  return STAMPED_VERSION;
70
70
  }
71
- const VERSION="1.68.1";
71
+ const VERSION="1.69.0";
72
72
  const warned=new Set();
73
73
  const WARNED_LIMIT=2000;
74
74
  function rememberWarned(key){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.68.1, dhtmlx-compat module
2
+ * Lattice Grid 1.69.0, dhtmlx-compat module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -63,12 +63,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
63
63
  Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
64
64
  Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
65
65
  Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
66
- const STAMPED_VERSION="1.68.1";
66
+ const STAMPED_VERSION="1.69.0";
67
67
  async function resolveVersion(){
68
68
  if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
69
69
  return STAMPED_VERSION;
70
70
  }
71
- const VERSION="1.68.1";
71
+ const VERSION="1.69.0";
72
72
  const warned=new Set();
73
73
  const WARNED_LIMIT=2000;
74
74
  function rememberWarned(key){