@toclocoinc/lattice-grid 1.66.0 → 1.67.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.
- package/README.md +1 -1
- package/angular/package.json +1 -1
- package/docs/API.html +70 -17
- package/docs/api-detail.html +4 -4
- package/lattice-grid.d.ts +9 -6
- package/lattice-grid.esm.min.js +12 -8
- package/lattice-grid.min.cjs +12 -8
- package/lattice-grid.min.js +12 -8
- package/modules/ai.d.ts +1 -1
- package/modules/ai.esm.min.js +3 -3
- package/modules/ai.min.cjs +3 -3
- package/modules/ai.min.js +3 -3
- package/modules/angular.d.ts +1 -1
- package/modules/angular.esm.min.js +3 -3
- package/modules/angular.min.cjs +3 -3
- package/modules/angular.min.js +3 -3
- package/modules/chart-alluvial.d.ts +1 -1
- package/modules/chart-alluvial.esm.min.js +1 -1
- package/modules/chart-alluvial.min.cjs +1 -1
- package/modules/chart-alluvial.min.js +1 -1
- package/modules/chart-arc.d.ts +1 -1
- package/modules/chart-arc.esm.min.js +1 -1
- package/modules/chart-arc.min.cjs +1 -1
- package/modules/chart-arc.min.js +1 -1
- package/modules/chart-bubblemap.d.ts +1 -1
- package/modules/chart-bubblemap.esm.min.js +1 -1
- package/modules/chart-bubblemap.min.cjs +1 -1
- package/modules/chart-bubblemap.min.js +1 -1
- package/modules/chart-bump.d.ts +1 -1
- package/modules/chart-bump.esm.min.js +1 -1
- package/modules/chart-bump.min.cjs +1 -1
- package/modules/chart-bump.min.js +1 -1
- package/modules/chart-calendar.d.ts +1 -1
- package/modules/chart-calendar.esm.min.js +1 -1
- package/modules/chart-calendar.min.cjs +1 -1
- package/modules/chart-calendar.min.js +1 -1
- package/modules/chart-decomposition.d.ts +1 -1
- package/modules/chart-decomposition.esm.min.js +1 -1
- package/modules/chart-decomposition.min.cjs +1 -1
- package/modules/chart-decomposition.min.js +1 -1
- package/modules/chart-diverging.d.ts +1 -1
- package/modules/chart-diverging.esm.min.js +1 -1
- package/modules/chart-diverging.min.cjs +1 -1
- package/modules/chart-diverging.min.js +1 -1
- package/modules/chart-dumbbell.d.ts +1 -1
- package/modules/chart-dumbbell.esm.min.js +1 -1
- package/modules/chart-dumbbell.min.cjs +1 -1
- package/modules/chart-dumbbell.min.js +1 -1
- package/modules/chart-fan.d.ts +1 -1
- package/modules/chart-fan.esm.min.js +1 -1
- package/modules/chart-fan.min.cjs +1 -1
- package/modules/chart-fan.min.js +1 -1
- package/modules/chart-hexbin.d.ts +1 -1
- package/modules/chart-hexbin.esm.min.js +1 -1
- package/modules/chart-hexbin.min.cjs +1 -1
- package/modules/chart-hexbin.min.js +1 -1
- package/modules/chart-hexmap.d.ts +1 -1
- package/modules/chart-hexmap.esm.min.js +1 -1
- package/modules/chart-hexmap.min.cjs +1 -1
- package/modules/chart-hexmap.min.js +1 -1
- package/modules/chart-icicle.d.ts +1 -1
- package/modules/chart-icicle.esm.min.js +1 -1
- package/modules/chart-icicle.min.cjs +1 -1
- package/modules/chart-icicle.min.js +1 -1
- package/modules/chart-markermap.d.ts +1 -1
- package/modules/chart-markermap.esm.min.js +1 -1
- package/modules/chart-markermap.min.cjs +1 -1
- package/modules/chart-markermap.min.js +1 -1
- package/modules/chart-parallel.d.ts +1 -1
- package/modules/chart-parallel.esm.min.js +1 -1
- package/modules/chart-parallel.min.cjs +1 -1
- package/modules/chart-parallel.min.js +1 -1
- package/modules/chart-ridgeline.d.ts +1 -1
- package/modules/chart-ridgeline.esm.min.js +1 -1
- package/modules/chart-ridgeline.min.cjs +1 -1
- package/modules/chart-ridgeline.min.js +1 -1
- package/modules/chart-roc.d.ts +1 -1
- package/modules/chart-roc.esm.min.js +1 -1
- package/modules/chart-roc.min.cjs +1 -1
- package/modules/chart-roc.min.js +1 -1
- package/modules/chart-slope.d.ts +1 -1
- package/modules/chart-slope.esm.min.js +1 -1
- package/modules/chart-slope.min.cjs +1 -1
- package/modules/chart-slope.min.js +1 -1
- package/modules/chart-splom.d.ts +1 -1
- package/modules/chart-splom.esm.min.js +1 -1
- package/modules/chart-splom.min.cjs +1 -1
- package/modules/chart-splom.min.js +1 -1
- package/modules/chart-waffle.d.ts +1 -1
- package/modules/chart-waffle.esm.min.js +1 -1
- package/modules/chart-waffle.min.cjs +1 -1
- package/modules/chart-waffle.min.js +1 -1
- package/modules/charts.d.ts +1 -1
- package/modules/charts.esm.min.js +3 -3
- package/modules/charts.min.cjs +3 -3
- package/modules/charts.min.js +3 -3
- package/modules/data-router.d.ts +8 -3
- package/modules/data-router.esm.min.js +28 -6
- package/modules/data-router.min.cjs +28 -6
- package/modules/data-router.min.js +28 -6
- package/modules/devtools.d.ts +1 -1
- package/modules/devtools.esm.min.js +1 -1
- package/modules/devtools.min.cjs +1 -1
- package/modules/devtools.min.js +1 -1
- package/modules/dhtmlx-compat.d.ts +1 -1
- package/modules/dhtmlx-compat.esm.min.js +3 -3
- package/modules/dhtmlx-compat.min.cjs +3 -3
- package/modules/dhtmlx-compat.min.js +3 -3
- package/modules/gantt.d.ts +8 -3
- package/modules/gantt.esm.min.js +27 -4
- package/modules/gantt.min.cjs +27 -4
- package/modules/gantt.min.js +27 -4
- package/modules/geo-europe-nuts.d.ts +1 -1
- package/modules/geo-europe-nuts.esm.min.js +1 -1
- package/modules/geo-uk.d.ts +1 -1
- package/modules/geo-uk.esm.min.js +1 -1
- package/modules/geo-us-states.d.ts +1 -1
- package/modules/geo-us-states.esm.min.js +1 -1
- package/modules/geo-world-110m.d.ts +1 -1
- package/modules/geo-world-110m.esm.min.js +1 -1
- package/modules/geo-world-50m.d.ts +1 -1
- package/modules/geo-world-50m.esm.min.js +1 -1
- package/modules/htmx.d.ts +1 -1
- package/modules/htmx.esm.min.js +12 -8
- package/modules/htmx.min.cjs +12 -8
- package/modules/htmx.min.js +12 -8
- package/modules/kanban.d.ts +10 -3
- package/modules/kanban.esm.min.js +24 -4
- package/modules/kanban.min.cjs +24 -4
- package/modules/kanban.min.js +24 -4
- package/modules/kpi.d.ts +10 -3
- package/modules/kpi.esm.min.js +27 -4
- package/modules/kpi.min.cjs +27 -4
- package/modules/kpi.min.js +27 -4
- package/modules/layout.d.ts +1 -1
- package/modules/layout.esm.min.js +3 -3
- package/modules/layout.min.cjs +3 -3
- package/modules/layout.min.js +3 -3
- package/modules/mock-socket.d.ts +1 -1
- package/modules/mock-socket.esm.min.js +1 -1
- package/modules/mock-socket.min.cjs +1 -1
- package/modules/mock-socket.min.js +1 -1
- package/modules/react.d.ts +1 -1
- package/modules/react.esm.min.js +3 -3
- package/modules/react.min.cjs +3 -3
- package/modules/react.min.js +3 -3
- package/modules/svelte.d.ts +1 -1
- package/modules/svelte.esm.min.js +3 -3
- package/modules/svelte.min.cjs +3 -3
- package/modules/svelte.min.js +3 -3
- package/modules/tabs.d.ts +1 -1
- package/modules/tabs.esm.min.js +3 -3
- package/modules/tabs.min.cjs +3 -3
- package/modules/tabs.min.js +3 -3
- package/modules/vue.d.ts +1 -1
- package/modules/vue.esm.min.js +3 -3
- package/modules/vue.min.cjs +3 -3
- package/modules/vue.min.js +3 -3
- package/modules/webcomponent.d.ts +1 -1
- package/modules/webcomponent.esm.min.js +12 -8
- package/modules/webcomponent.min.cjs +12 -8
- package/modules/webcomponent.min.js +12 -8
- package/package.json +1 -1
package/modules/chart-roc.d.ts
CHANGED
package/modules/chart-roc.min.js
CHANGED
package/modules/chart-slope.d.ts
CHANGED
package/modules/chart-splom.d.ts
CHANGED
package/modules/charts.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.0, charts module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -2618,12 +2618,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
|
|
|
2618
2618
|
Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
|
|
2619
2619
|
Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
|
|
2620
2620
|
Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
|
|
2621
|
-
const STAMPED_VERSION="1.
|
|
2621
|
+
const STAMPED_VERSION="1.67.0";
|
|
2622
2622
|
async function resolveVersion(){
|
|
2623
2623
|
if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
|
|
2624
2624
|
return STAMPED_VERSION;
|
|
2625
2625
|
}
|
|
2626
|
-
const VERSION="1.
|
|
2626
|
+
const VERSION="1.67.0";
|
|
2627
2627
|
const warned=new Set();
|
|
2628
2628
|
const WARNED_LIMIT=2000;
|
|
2629
2629
|
function rememberWarned(key){
|
package/modules/charts.min.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.0, charts module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -2620,12 +2620,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
|
|
|
2620
2620
|
Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
|
|
2621
2621
|
Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
|
|
2622
2622
|
Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
|
|
2623
|
-
const STAMPED_VERSION="1.
|
|
2623
|
+
const STAMPED_VERSION="1.67.0";
|
|
2624
2624
|
async function resolveVersion(){
|
|
2625
2625
|
if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
|
|
2626
2626
|
return STAMPED_VERSION;
|
|
2627
2627
|
}
|
|
2628
|
-
const VERSION="1.
|
|
2628
|
+
const VERSION="1.67.0";
|
|
2629
2629
|
const warned=new Set();
|
|
2630
2630
|
const WARNED_LIMIT=2000;
|
|
2631
2631
|
function rememberWarned(key){
|
package/modules/charts.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.0, charts module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -2620,12 +2620,12 @@ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){r
|
|
|
2620
2620
|
Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
|
|
2621
2621
|
Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
|
|
2622
2622
|
Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
|
|
2623
|
-
const STAMPED_VERSION="1.
|
|
2623
|
+
const STAMPED_VERSION="1.67.0";
|
|
2624
2624
|
async function resolveVersion(){
|
|
2625
2625
|
if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
|
|
2626
2626
|
return STAMPED_VERSION;
|
|
2627
2627
|
}
|
|
2628
|
-
const VERSION="1.
|
|
2628
|
+
const VERSION="1.67.0";
|
|
2629
2629
|
const warned=new Set();
|
|
2630
2630
|
const WARNED_LIMIT=2000;
|
|
2631
2631
|
function rememberWarned(key){
|
package/modules/data-router.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.0, data-router module type declarations
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -9,8 +9,13 @@
|
|
|
9
9
|
*/
|
|
10
10
|
type RouterRecord = Record<string, unknown>;
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* A property name, or a function reading the value off a row, returning a
|
|
14
|
+
* string or number. Composite (`string[]`) keys are
|
|
15
|
+
* core-grid-only: a route (or an alert, or a group) keys its own partition
|
|
16
|
+
* by one value, so there is nothing for an array to join into here.
|
|
17
|
+
*/
|
|
18
|
+
type RouterKey = string | ((row: RouterRecord) => string | number);
|
|
14
19
|
|
|
15
20
|
/** A per-route diff summary returned by `load`. */
|
|
16
21
|
interface RouteDiff { added: number; updated: number; removed: number }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
55
|
+
const STAMPED_VERSION="1.67.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.
|
|
60
|
+
const VERSION="1.67.0";
|
|
61
61
|
const warned=new Set();
|
|
62
62
|
const WARNED_LIMIT=2000;
|
|
63
63
|
function rememberWarned(key){
|
|
@@ -1636,6 +1636,28 @@ if(typeof spec==='function')return spec;
|
|
|
1636
1636
|
if(typeof spec==='string')return(row)=>row[spec];
|
|
1637
1637
|
return fallback;
|
|
1638
1638
|
}
|
|
1639
|
+
function rowKeyTypeName(v){
|
|
1640
|
+
if(Array.isArray(v))return'array';
|
|
1641
|
+
if(v===null)return'null';
|
|
1642
|
+
return typeof v;
|
|
1643
|
+
}
|
|
1644
|
+
function assertRowKeySpec(spec,where){
|
|
1645
|
+
if(spec===undefined)return spec;
|
|
1646
|
+
if(typeof spec==='string'&&spec.length>0)return spec;
|
|
1647
|
+
if(typeof spec==='function'){
|
|
1648
|
+
return(row)=>{
|
|
1649
|
+
const key=spec(row);
|
|
1650
|
+
if(typeof key==='string')return key;
|
|
1651
|
+
if(typeof key==='number'&&Number.isFinite(key))return key;
|
|
1652
|
+
throw new Error(
|
|
1653
|
+
`lattice-data-router: rowKey function must return a string or number; got ${rowKeyTypeName(key)}.`,
|
|
1654
|
+
);
|
|
1655
|
+
};
|
|
1656
|
+
}
|
|
1657
|
+
throw new Error(
|
|
1658
|
+
`lattice-data-router: rowKey must be a property name or a function; composite keys are not supported on ${where}.`,
|
|
1659
|
+
);
|
|
1660
|
+
}
|
|
1639
1661
|
function comparator(sort){
|
|
1640
1662
|
if(typeof sort==='function')return sort;
|
|
1641
1663
|
if(sort&&typeof sort==='object'&&typeof sort.key==='string'){
|
|
@@ -1748,7 +1770,7 @@ return evalCondition(node,row);
|
|
|
1748
1770
|
}
|
|
1749
1771
|
function createDataRouter(opts={}){
|
|
1750
1772
|
const partOf=resolver(opts.key,()=>undefined);
|
|
1751
|
-
const defaultKeyOf=resolver(opts.rowKey,(row)=>row.rowKey);
|
|
1773
|
+
const defaultKeyOf=resolver(assertRowKeySpec(opts.rowKey,'routes'),(row)=>row.rowKey);
|
|
1752
1774
|
const overlap=!!opts.overlap;
|
|
1753
1775
|
const onUnrouted=typeof opts.onUnrouted==='function'?opts.onUnrouted:null;
|
|
1754
1776
|
const debounceMs=Number.isFinite(opts.selectionDebounce)?Number(opts.selectionDebounce):16;
|
|
@@ -2033,7 +2055,7 @@ const makeRoute=(grid,match,o)=>({
|
|
|
2033
2055
|
grid,
|
|
2034
2056
|
sink:targetSink(grid),
|
|
2035
2057
|
match,
|
|
2036
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2058
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'routes'),defaultKeyOf),
|
|
2037
2059
|
partition:new Map(),
|
|
2038
2060
|
keys:new Map(),
|
|
2039
2061
|
transform:typeof o.transform==='function'?o.transform:null,
|
|
@@ -2726,7 +2748,7 @@ const match=typeof predicate==='function'
|
|
|
2726
2748
|
:(row)=>partOf(row)===predicate;
|
|
2727
2749
|
const al={
|
|
2728
2750
|
match,
|
|
2729
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2751
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'alerts'),defaultKeyOf),
|
|
2730
2752
|
filter:typeof o.filter==='function'?o.filter:null,
|
|
2731
2753
|
condition:typeof condition==='function'?condition:()=>false,
|
|
2732
2754
|
handler:typeof handler==='function'?handler:()=>{},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
57
|
+
const STAMPED_VERSION="1.67.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.
|
|
62
|
+
const VERSION="1.67.0";
|
|
63
63
|
const warned=new Set();
|
|
64
64
|
const WARNED_LIMIT=2000;
|
|
65
65
|
function rememberWarned(key){
|
|
@@ -1638,6 +1638,28 @@ if(typeof spec==='function')return spec;
|
|
|
1638
1638
|
if(typeof spec==='string')return(row)=>row[spec];
|
|
1639
1639
|
return fallback;
|
|
1640
1640
|
}
|
|
1641
|
+
function rowKeyTypeName(v){
|
|
1642
|
+
if(Array.isArray(v))return'array';
|
|
1643
|
+
if(v===null)return'null';
|
|
1644
|
+
return typeof v;
|
|
1645
|
+
}
|
|
1646
|
+
function assertRowKeySpec(spec,where){
|
|
1647
|
+
if(spec===undefined)return spec;
|
|
1648
|
+
if(typeof spec==='string'&&spec.length>0)return spec;
|
|
1649
|
+
if(typeof spec==='function'){
|
|
1650
|
+
return(row)=>{
|
|
1651
|
+
const key=spec(row);
|
|
1652
|
+
if(typeof key==='string')return key;
|
|
1653
|
+
if(typeof key==='number'&&Number.isFinite(key))return key;
|
|
1654
|
+
throw new Error(
|
|
1655
|
+
`lattice-data-router: rowKey function must return a string or number; got ${rowKeyTypeName(key)}.`,
|
|
1656
|
+
);
|
|
1657
|
+
};
|
|
1658
|
+
}
|
|
1659
|
+
throw new Error(
|
|
1660
|
+
`lattice-data-router: rowKey must be a property name or a function; composite keys are not supported on ${where}.`,
|
|
1661
|
+
);
|
|
1662
|
+
}
|
|
1641
1663
|
function comparator(sort){
|
|
1642
1664
|
if(typeof sort==='function')return sort;
|
|
1643
1665
|
if(sort&&typeof sort==='object'&&typeof sort.key==='string'){
|
|
@@ -1750,7 +1772,7 @@ return evalCondition(node,row);
|
|
|
1750
1772
|
}
|
|
1751
1773
|
function createDataRouter(opts={}){
|
|
1752
1774
|
const partOf=resolver(opts.key,()=>undefined);
|
|
1753
|
-
const defaultKeyOf=resolver(opts.rowKey,(row)=>row.rowKey);
|
|
1775
|
+
const defaultKeyOf=resolver(assertRowKeySpec(opts.rowKey,'routes'),(row)=>row.rowKey);
|
|
1754
1776
|
const overlap=!!opts.overlap;
|
|
1755
1777
|
const onUnrouted=typeof opts.onUnrouted==='function'?opts.onUnrouted:null;
|
|
1756
1778
|
const debounceMs=Number.isFinite(opts.selectionDebounce)?Number(opts.selectionDebounce):16;
|
|
@@ -2035,7 +2057,7 @@ const makeRoute=(grid,match,o)=>({
|
|
|
2035
2057
|
grid,
|
|
2036
2058
|
sink:targetSink(grid),
|
|
2037
2059
|
match,
|
|
2038
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2060
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'routes'),defaultKeyOf),
|
|
2039
2061
|
partition:new Map(),
|
|
2040
2062
|
keys:new Map(),
|
|
2041
2063
|
transform:typeof o.transform==='function'?o.transform:null,
|
|
@@ -2728,7 +2750,7 @@ const match=typeof predicate==='function'
|
|
|
2728
2750
|
:(row)=>partOf(row)===predicate;
|
|
2729
2751
|
const al={
|
|
2730
2752
|
match,
|
|
2731
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2753
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'alerts'),defaultKeyOf),
|
|
2732
2754
|
filter:typeof o.filter==='function'?o.filter:null,
|
|
2733
2755
|
condition:typeof condition==='function'?condition:()=>false,
|
|
2734
2756
|
handler:typeof handler==='function'?handler:()=>{},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
57
|
+
const STAMPED_VERSION="1.67.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.
|
|
62
|
+
const VERSION="1.67.0";
|
|
63
63
|
const warned=new Set();
|
|
64
64
|
const WARNED_LIMIT=2000;
|
|
65
65
|
function rememberWarned(key){
|
|
@@ -1638,6 +1638,28 @@ if(typeof spec==='function')return spec;
|
|
|
1638
1638
|
if(typeof spec==='string')return(row)=>row[spec];
|
|
1639
1639
|
return fallback;
|
|
1640
1640
|
}
|
|
1641
|
+
function rowKeyTypeName(v){
|
|
1642
|
+
if(Array.isArray(v))return'array';
|
|
1643
|
+
if(v===null)return'null';
|
|
1644
|
+
return typeof v;
|
|
1645
|
+
}
|
|
1646
|
+
function assertRowKeySpec(spec,where){
|
|
1647
|
+
if(spec===undefined)return spec;
|
|
1648
|
+
if(typeof spec==='string'&&spec.length>0)return spec;
|
|
1649
|
+
if(typeof spec==='function'){
|
|
1650
|
+
return(row)=>{
|
|
1651
|
+
const key=spec(row);
|
|
1652
|
+
if(typeof key==='string')return key;
|
|
1653
|
+
if(typeof key==='number'&&Number.isFinite(key))return key;
|
|
1654
|
+
throw new Error(
|
|
1655
|
+
`lattice-data-router: rowKey function must return a string or number; got ${rowKeyTypeName(key)}.`,
|
|
1656
|
+
);
|
|
1657
|
+
};
|
|
1658
|
+
}
|
|
1659
|
+
throw new Error(
|
|
1660
|
+
`lattice-data-router: rowKey must be a property name or a function; composite keys are not supported on ${where}.`,
|
|
1661
|
+
);
|
|
1662
|
+
}
|
|
1641
1663
|
function comparator(sort){
|
|
1642
1664
|
if(typeof sort==='function')return sort;
|
|
1643
1665
|
if(sort&&typeof sort==='object'&&typeof sort.key==='string'){
|
|
@@ -1750,7 +1772,7 @@ return evalCondition(node,row);
|
|
|
1750
1772
|
}
|
|
1751
1773
|
function createDataRouter(opts={}){
|
|
1752
1774
|
const partOf=resolver(opts.key,()=>undefined);
|
|
1753
|
-
const defaultKeyOf=resolver(opts.rowKey,(row)=>row.rowKey);
|
|
1775
|
+
const defaultKeyOf=resolver(assertRowKeySpec(opts.rowKey,'routes'),(row)=>row.rowKey);
|
|
1754
1776
|
const overlap=!!opts.overlap;
|
|
1755
1777
|
const onUnrouted=typeof opts.onUnrouted==='function'?opts.onUnrouted:null;
|
|
1756
1778
|
const debounceMs=Number.isFinite(opts.selectionDebounce)?Number(opts.selectionDebounce):16;
|
|
@@ -2035,7 +2057,7 @@ const makeRoute=(grid,match,o)=>({
|
|
|
2035
2057
|
grid,
|
|
2036
2058
|
sink:targetSink(grid),
|
|
2037
2059
|
match,
|
|
2038
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2060
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'routes'),defaultKeyOf),
|
|
2039
2061
|
partition:new Map(),
|
|
2040
2062
|
keys:new Map(),
|
|
2041
2063
|
transform:typeof o.transform==='function'?o.transform:null,
|
|
@@ -2728,7 +2750,7 @@ const match=typeof predicate==='function'
|
|
|
2728
2750
|
:(row)=>partOf(row)===predicate;
|
|
2729
2751
|
const al={
|
|
2730
2752
|
match,
|
|
2731
|
-
keyOf:resolver(o.rowKey,defaultKeyOf),
|
|
2753
|
+
keyOf:resolver(assertRowKeySpec(o.rowKey,'alerts'),defaultKeyOf),
|
|
2732
2754
|
filter:typeof o.filter==='function'?o.filter:null,
|
|
2733
2755
|
condition:typeof condition==='function'?condition:()=>false,
|
|
2734
2756
|
handler:typeof handler==='function'?handler:()=>{},
|
package/modules/devtools.d.ts
CHANGED
package/modules/devtools.min.cjs
CHANGED
package/modules/devtools.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
65
|
+
const STAMPED_VERSION="1.67.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.
|
|
70
|
+
const VERSION="1.67.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.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
66
|
+
const STAMPED_VERSION="1.67.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.
|
|
71
|
+
const VERSION="1.67.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.
|
|
2
|
+
* Lattice Grid 1.67.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.
|
|
66
|
+
const STAMPED_VERSION="1.67.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.
|
|
71
|
+
const VERSION="1.67.0";
|
|
72
72
|
const warned=new Set();
|
|
73
73
|
const WARNED_LIMIT=2000;
|
|
74
74
|
function rememberWarned(key){
|
package/modules/gantt.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.67.0, gantt module type declarations
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -579,8 +579,13 @@ export function createGantt(opts?: {
|
|
|
579
579
|
grid?: unknown;
|
|
580
580
|
/** Map task fields to grid column ids to enable drag write-back. */
|
|
581
581
|
columns?: { start?: string; end?: string; duration?: string };
|
|
582
|
-
/**
|
|
583
|
-
|
|
582
|
+
/**
|
|
583
|
+
* Task identity for the live `rows.apply` surface (a field or fn, returning
|
|
584
|
+
* a string or number); default 'id'. Composite (`string[]`) keys are
|
|
585
|
+
* core-grid-only: the Gantt keys its own task/board identity from one
|
|
586
|
+
* value, so there is nothing for an array to join into here.
|
|
587
|
+
*/
|
|
588
|
+
rowKey?: string | ((row: GanttTask) => string | number);
|
|
584
589
|
/**
|
|
585
590
|
* The host's own names for the task properties the scheduler reads, so a
|
|
586
591
|
* plan can be fed as it already exists rather than renamed for the Gantt:
|