@toclocoinc/lattice-grid 1.64.0 → 1.65.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 (162) hide show
  1. package/README.md +3 -2
  2. package/docs/API.html +127 -5
  3. package/docs/api-detail.html +39 -4
  4. package/lattice-grid.d.ts +241 -205
  5. package/lattice-grid.esm.min.js +5 -5
  6. package/lattice-grid.min.cjs +5 -5
  7. package/lattice-grid.min.js +5 -5
  8. package/modules/ai.d.ts +10 -13
  9. package/modules/ai.esm.min.js +3 -3
  10. package/modules/ai.min.cjs +3 -3
  11. package/modules/ai.min.js +3 -3
  12. package/modules/angular.d.ts +2 -2
  13. package/modules/angular.esm.min.js +433 -7
  14. package/modules/angular.min.cjs +433 -7
  15. package/modules/angular.min.js +433 -7
  16. package/modules/chart-alluvial.d.ts +2 -2
  17. package/modules/chart-alluvial.esm.min.js +1 -1
  18. package/modules/chart-alluvial.min.cjs +1 -1
  19. package/modules/chart-alluvial.min.js +1 -1
  20. package/modules/chart-arc.d.ts +2 -2
  21. package/modules/chart-arc.esm.min.js +1 -1
  22. package/modules/chart-arc.min.cjs +1 -1
  23. package/modules/chart-arc.min.js +1 -1
  24. package/modules/chart-bubblemap.d.ts +2 -2
  25. package/modules/chart-bubblemap.esm.min.js +1 -1
  26. package/modules/chart-bubblemap.min.cjs +1 -1
  27. package/modules/chart-bubblemap.min.js +1 -1
  28. package/modules/chart-bump.d.ts +2 -2
  29. package/modules/chart-bump.esm.min.js +1 -1
  30. package/modules/chart-bump.min.cjs +1 -1
  31. package/modules/chart-bump.min.js +1 -1
  32. package/modules/chart-calendar.d.ts +2 -2
  33. package/modules/chart-calendar.esm.min.js +1 -1
  34. package/modules/chart-calendar.min.cjs +1 -1
  35. package/modules/chart-calendar.min.js +1 -1
  36. package/modules/chart-decomposition.d.ts +2 -2
  37. package/modules/chart-decomposition.esm.min.js +1 -1
  38. package/modules/chart-decomposition.min.cjs +1 -1
  39. package/modules/chart-decomposition.min.js +1 -1
  40. package/modules/chart-diverging.d.ts +2 -2
  41. package/modules/chart-diverging.esm.min.js +1 -1
  42. package/modules/chart-diverging.min.cjs +1 -1
  43. package/modules/chart-diverging.min.js +1 -1
  44. package/modules/chart-dumbbell.d.ts +2 -2
  45. package/modules/chart-dumbbell.esm.min.js +1 -1
  46. package/modules/chart-dumbbell.min.cjs +1 -1
  47. package/modules/chart-dumbbell.min.js +1 -1
  48. package/modules/chart-fan.d.ts +2 -2
  49. package/modules/chart-fan.esm.min.js +1 -1
  50. package/modules/chart-fan.min.cjs +1 -1
  51. package/modules/chart-fan.min.js +1 -1
  52. package/modules/chart-hexbin.d.ts +2 -2
  53. package/modules/chart-hexbin.esm.min.js +1 -1
  54. package/modules/chart-hexbin.min.cjs +1 -1
  55. package/modules/chart-hexbin.min.js +1 -1
  56. package/modules/chart-hexmap.d.ts +2 -2
  57. package/modules/chart-hexmap.esm.min.js +1 -1
  58. package/modules/chart-hexmap.min.cjs +1 -1
  59. package/modules/chart-hexmap.min.js +1 -1
  60. package/modules/chart-icicle.d.ts +2 -2
  61. package/modules/chart-icicle.esm.min.js +1 -1
  62. package/modules/chart-icicle.min.cjs +1 -1
  63. package/modules/chart-icicle.min.js +1 -1
  64. package/modules/chart-markermap.d.ts +1 -1
  65. package/modules/chart-markermap.esm.min.js +1 -1
  66. package/modules/chart-markermap.min.cjs +1 -1
  67. package/modules/chart-markermap.min.js +1 -1
  68. package/modules/chart-parallel.d.ts +2 -2
  69. package/modules/chart-parallel.esm.min.js +1 -1
  70. package/modules/chart-parallel.min.cjs +1 -1
  71. package/modules/chart-parallel.min.js +1 -1
  72. package/modules/chart-ridgeline.d.ts +2 -2
  73. package/modules/chart-ridgeline.esm.min.js +1 -1
  74. package/modules/chart-ridgeline.min.cjs +1 -1
  75. package/modules/chart-ridgeline.min.js +1 -1
  76. package/modules/chart-roc.d.ts +2 -2
  77. package/modules/chart-roc.esm.min.js +1 -1
  78. package/modules/chart-roc.min.cjs +1 -1
  79. package/modules/chart-roc.min.js +1 -1
  80. package/modules/chart-slope.d.ts +2 -2
  81. package/modules/chart-slope.esm.min.js +1 -1
  82. package/modules/chart-slope.min.cjs +1 -1
  83. package/modules/chart-slope.min.js +1 -1
  84. package/modules/chart-splom.d.ts +2 -2
  85. package/modules/chart-splom.esm.min.js +1 -1
  86. package/modules/chart-splom.min.cjs +1 -1
  87. package/modules/chart-splom.min.js +1 -1
  88. package/modules/chart-waffle.d.ts +2 -2
  89. package/modules/chart-waffle.esm.min.js +1 -1
  90. package/modules/chart-waffle.min.cjs +1 -1
  91. package/modules/chart-waffle.min.js +1 -1
  92. package/modules/charts.d.ts +4 -5
  93. package/modules/charts.esm.min.js +3 -3
  94. package/modules/charts.min.cjs +3 -3
  95. package/modules/charts.min.js +3 -3
  96. package/modules/data-router.d.ts +5 -6
  97. package/modules/data-router.esm.min.js +3 -3
  98. package/modules/data-router.min.cjs +3 -3
  99. package/modules/data-router.min.js +3 -3
  100. package/modules/devtools.d.ts +1 -1
  101. package/modules/devtools.esm.min.js +1 -1
  102. package/modules/devtools.min.cjs +1 -1
  103. package/modules/devtools.min.js +1 -1
  104. package/modules/dhtmlx-compat.d.ts +1 -1
  105. package/modules/dhtmlx-compat.esm.min.js +3 -3
  106. package/modules/dhtmlx-compat.min.cjs +3 -3
  107. package/modules/dhtmlx-compat.min.js +3 -3
  108. package/modules/gantt.d.ts +37 -43
  109. package/modules/gantt.esm.min.js +3 -3
  110. package/modules/gantt.min.cjs +3 -3
  111. package/modules/gantt.min.js +3 -3
  112. package/modules/geo-europe-nuts.d.ts +2 -2
  113. package/modules/geo-europe-nuts.esm.min.js +1 -1
  114. package/modules/geo-uk.d.ts +2 -2
  115. package/modules/geo-uk.esm.min.js +1 -1
  116. package/modules/geo-us-states.d.ts +2 -2
  117. package/modules/geo-us-states.esm.min.js +1 -1
  118. package/modules/geo-world-110m.d.ts +2 -2
  119. package/modules/geo-world-110m.esm.min.js +1 -1
  120. package/modules/geo-world-50m.d.ts +2 -2
  121. package/modules/geo-world-50m.esm.min.js +1 -1
  122. package/modules/htmx.d.ts +2 -2
  123. package/modules/htmx.esm.min.js +5 -5
  124. package/modules/htmx.min.cjs +5 -5
  125. package/modules/htmx.min.js +5 -5
  126. package/modules/kanban.d.ts +14 -14
  127. package/modules/kanban.esm.min.js +3 -3
  128. package/modules/kanban.min.cjs +3 -3
  129. package/modules/kanban.min.js +3 -3
  130. package/modules/kpi.d.ts +5 -5
  131. package/modules/kpi.esm.min.js +3 -3
  132. package/modules/kpi.min.cjs +3 -3
  133. package/modules/kpi.min.js +3 -3
  134. package/modules/layout.d.ts +2 -2
  135. package/modules/layout.esm.min.js +3 -3
  136. package/modules/layout.min.cjs +3 -3
  137. package/modules/layout.min.js +3 -3
  138. package/modules/mock-socket.d.ts +1 -1
  139. package/modules/mock-socket.esm.min.js +1 -1
  140. package/modules/mock-socket.min.cjs +1 -1
  141. package/modules/mock-socket.min.js +1 -1
  142. package/modules/react.d.ts +4 -5
  143. package/modules/react.esm.min.js +3 -3
  144. package/modules/react.min.cjs +3 -3
  145. package/modules/react.min.js +3 -3
  146. package/modules/svelte.d.ts +2 -3
  147. package/modules/svelte.esm.min.js +1 -1
  148. package/modules/svelte.min.cjs +1 -1
  149. package/modules/svelte.min.js +1 -1
  150. package/modules/tabs.d.ts +2 -3
  151. package/modules/tabs.esm.min.js +3 -3
  152. package/modules/tabs.min.cjs +3 -3
  153. package/modules/tabs.min.js +3 -3
  154. package/modules/vue.d.ts +1 -1
  155. package/modules/vue.esm.min.js +1 -1
  156. package/modules/vue.min.cjs +1 -1
  157. package/modules/vue.min.js +1 -1
  158. package/modules/webcomponent.d.ts +2 -2
  159. package/modules/webcomponent.esm.min.js +5 -5
  160. package/modules/webcomponent.min.cjs +5 -5
  161. package/modules/webcomponent.min.js +5 -5
  162. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, angular module
2
+ * Lattice Grid 1.65.0, angular module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -18,6 +18,403 @@ if(!fn)throw new Error('[lattice] missing module: '+id);
18
18
  fn(exports,__req);
19
19
  return exports;
20
20
  }
21
+ __def("packages/core/src/internal/util.js",function(__exports,__req){
22
+ 'use strict';
23
+ Object.defineProperty(__exports,"VERSION",{enumerable:true,get:function(){return VERSION;}});
24
+ Object.defineProperty(__exports,"reportedWarnings",{enumerable:true,get:function(){return reportedWarnings;}});
25
+ Object.defineProperty(__exports,"warnOnce",{enumerable:true,get:function(){return warnOnce;}});
26
+ Object.defineProperty(__exports,"infoOnce",{enumerable:true,get:function(){return infoOnce;}});
27
+ Object.defineProperty(__exports,"resetWarnings",{enumerable:true,get:function(){return resetWarnings;}});
28
+ Object.defineProperty(__exports,"fail",{enumerable:true,get:function(){return fail;}});
29
+ Object.defineProperty(__exports,"invariant",{enumerable:true,get:function(){return invariant;}});
30
+ Object.defineProperty(__exports,"DEV",{enumerable:true,get:function(){return DEV;}});
31
+ Object.defineProperty(__exports,"isObject",{enumerable:true,get:function(){return isObject;}});
32
+ Object.defineProperty(__exports,"isFunction",{enumerable:true,get:function(){return isFunction;}});
33
+ Object.defineProperty(__exports,"isNil",{enumerable:true,get:function(){return isNil;}});
34
+ Object.defineProperty(__exports,"isBlank",{enumerable:true,get:function(){return isBlank;}});
35
+ Object.defineProperty(__exports,"isCtor",{enumerable:true,get:function(){return isCtor;}});
36
+ Object.defineProperty(__exports,"pathGetter",{enumerable:true,get:function(){return pathGetter;}});
37
+ Object.defineProperty(__exports,"pathSetter",{enumerable:true,get:function(){return pathSetter;}});
38
+ Object.defineProperty(__exports,"getPath",{enumerable:true,get:function(){return getPath;}});
39
+ Object.defineProperty(__exports,"setPath",{enumerable:true,get:function(){return setPath;}});
40
+ Object.defineProperty(__exports,"humanise",{enumerable:true,get:function(){return humanise;}});
41
+ Object.defineProperty(__exports,"escapeHtml",{enumerable:true,get:function(){return escapeHtml;}});
42
+ Object.defineProperty(__exports,"titleCase",{enumerable:true,get:function(){return titleCase;}});
43
+ Object.defineProperty(__exports,"expand",{enumerable:true,get:function(){return expand;}});
44
+ Object.defineProperty(__exports,"toArray",{enumerable:true,get:function(){return toArray;}});
45
+ Object.defineProperty(__exports,"merge",{enumerable:true,get:function(){return merge;}});
46
+ Object.defineProperty(__exports,"mergeRow",{enumerable:true,get:function(){return mergeRow;}});
47
+ Object.defineProperty(__exports,"Lru",{enumerable:true,get:function(){return Lru;}});
48
+ Object.defineProperty(__exports,"collator",{enumerable:true,get:function(){return collator;}});
49
+ Object.defineProperty(__exports,"defaultCompare",{enumerable:true,get:function(){return defaultCompare;}});
50
+ Object.defineProperty(__exports,"now",{enumerable:true,get:function(){return now;}});
51
+ Object.defineProperty(__exports,"nextFrame",{enumerable:true,get:function(){return nextFrame;}});
52
+ Object.defineProperty(__exports,"cancelFrame",{enumerable:true,get:function(){return cancelFrame;}});
53
+ Object.defineProperty(__exports,"frameBatched",{enumerable:true,get:function(){return frameBatched;}});
54
+ Object.defineProperty(__exports,"settleDebounce",{enumerable:true,get:function(){return settleDebounce;}});
55
+ Object.defineProperty(__exports,"whenIdle",{enumerable:true,get:function(){return whenIdle;}});
56
+ Object.defineProperty(__exports,"uid",{enumerable:true,get:function(){return uid;}});
57
+ const STAMPED_VERSION="1.65.0";
58
+ async function resolveVersion(){
59
+ if(STAMPED_VERSION!=='0.0.0-source')return STAMPED_VERSION;
60
+ return STAMPED_VERSION;
61
+ }
62
+ const VERSION="1.65.0";
63
+ const warned=new Set();
64
+ const WARNED_LIMIT=2000;
65
+ function rememberWarned(key){
66
+ warned.add(key);
67
+ if(warned.size>WARNED_LIMIT){
68
+ const oldest=warned.values().next().value;
69
+ if(oldest!==undefined)warned.delete(oldest);
70
+ }
71
+ }
72
+ const reported=[];
73
+ const REPORT_LIMIT=500;
74
+ function record(key,level,message){
75
+ reported.push({
76
+ key,
77
+ level,
78
+ message:message.map((m)=>(typeof m==='string'?m:safeString(m))).join(' '),
79
+ at:Date.now(),
80
+ });
81
+ if(reported.length>REPORT_LIMIT)reported.shift();
82
+ }
83
+ function safeString(value){
84
+ if(value instanceof Error)return value.message;
85
+ try{return JSON.stringify(value);}catch{return String(value);}
86
+ }
87
+ function reportedWarnings(){return reported.map((r)=>({...r}));}
88
+ function warnOnce(key,...message){
89
+ if(warned.has(key))return;
90
+ rememberWarned(key);
91
+ record(key,'warn',message);
92
+ console.warn('[lattice]',...message);
93
+ }
94
+ function infoOnce(key,...message){
95
+ if(warned.has(key))return;
96
+ rememberWarned(key);
97
+ record(key,'info',message);
98
+ console.info('[lattice]',...message);
99
+ }
100
+ function resetWarnings(){
101
+ warned.clear();
102
+ reported.length=0;
103
+ }
104
+ function fail(message,extra){
105
+ const err=new Error(`[lattice] ${message}`);
106
+ if(extra!==undefined)err.cause=extra;
107
+ throw err;
108
+ }
109
+ function invariant(condition,message){
110
+ if(!condition)fail(message);
111
+ }
112
+ const DEV=(()=>{
113
+ try{
114
+ return!(typeof process!=='undefined'&&process.env
115
+ &&process.env.NODE_ENV==='production');
116
+ }catch{
117
+ return true;
118
+ }
119
+ })();
120
+ function isObject(v){
121
+ return v!==null&&typeof v==='object'&&!Array.isArray(v);
122
+ }
123
+ function isFunction(v){
124
+ return typeof v==='function';
125
+ }
126
+ function isNil(v){
127
+ return v===null||v===undefined;
128
+ }
129
+ function isBlank(v){
130
+ return v===null||v===undefined||v==='';
131
+ }
132
+ function isCtor(v){
133
+ if(typeof v!=='function')return false;
134
+ if(/^class[\s{]/.test(Function.prototype.toString.call(v)))return true;
135
+ return!!(v.prototype&&Object.getOwnPropertyNames(v.prototype).length>1);
136
+ }
137
+ const pathCache=new Map();
138
+ function pathGetter(path){
139
+ let fn=pathCache.get(path);
140
+ if(fn)return fn;
141
+ if(!path.includes('.')){
142
+ fn=(o)=>(o==null?undefined:o[path]);
143
+ }else{
144
+ const parts=path.split('.');
145
+ const n=parts.length;
146
+ fn=(o)=>{
147
+ let cur=o;
148
+ for(let i=0;i<n;i++){
149
+ if(cur==null)return undefined;
150
+ cur=cur[parts[i]];
151
+ }
152
+ return cur;
153
+ };
154
+ }
155
+ pathCache.set(path,fn);
156
+ return fn;
157
+ }
158
+ const setterCache=new Map();
159
+ function pathSetter(path){
160
+ let fn=setterCache.get(path);
161
+ if(fn)return fn;
162
+ if(!path.includes('.')){
163
+ fn=(o,v)=>{if(o!=null)o[path]=v;};
164
+ }else{
165
+ const parts=path.split('.');
166
+ const last=parts.length-1;
167
+ fn=(o,v)=>{
168
+ let cur=o;
169
+ for(let i=0;i<last;i++){
170
+ if(cur==null)return;
171
+ const k=parts[i];
172
+ if(cur[k]==null)cur[k]={};
173
+ cur=cur[k];
174
+ }
175
+ if(cur!=null)cur[parts[last]]=v;
176
+ };
177
+ }
178
+ setterCache.set(path,fn);
179
+ return fn;
180
+ }
181
+ function getPath(obj,path){
182
+ return pathGetter(path)(obj);
183
+ }
184
+ function setPath(obj,path,value){
185
+ pathSetter(path)(obj,value);
186
+ }
187
+ function humanise(field){
188
+ if(!field)return'';
189
+ const leaf=field.includes('.')?field.slice(field.lastIndexOf('.')+1):field;
190
+ return leaf
191
+ .replace(/[_-]+/g,' ')
192
+ .replace(/([a-z0-9])([A-Z])/g,'$1 $2')
193
+ .replace(/([A-Z]+)([A-Z][a-z])/g,'$1 $2')
194
+ .replace(/\s+/g,' ')
195
+ .trim()
196
+ .replace(/^./,(c)=>c.toUpperCase());
197
+ }
198
+ const ESCAPES={'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'};
199
+ function escapeHtml(s){
200
+ const str=s==null?'':String(s);
201
+ return/[&<>"']/.test(str)?str.replace(/[&<>"']/g,(c)=>ESCAPES[c]):str;
202
+ }
203
+ function titleCase(s){
204
+ return String(s).replace(/\w\S*/g,(t)=>t[0].toUpperCase()+t.slice(1).toLowerCase());
205
+ }
206
+ function expand(value,key,whenTrue){
207
+ if(value===undefined)return undefined;
208
+ if(value===true)return{enabled:true,...whenTrue};
209
+ if(value===false)return{enabled:false};
210
+ if(isObject(value))return value;
211
+ return{[key]:value,enabled:true};
212
+ }
213
+ function toArray(v){
214
+ if(v===undefined||v===null)return[];
215
+ return Array.isArray(v)?v:[v];
216
+ }
217
+ const MERGE_FORBIDDEN_KEYS=Object.freeze(new Set(['__proto__','constructor','prototype']));
218
+ function merge(a,b){
219
+ if(!isObject(a))return isObject(b)?{...b}:b;
220
+ if(!isObject(b))return b===undefined?a:b;
221
+ const out={...a};
222
+ for(const k of Object.keys(b)){
223
+ if(MERGE_FORBIDDEN_KEYS.has(k))continue;
224
+ const bv=b[k];
225
+ if(bv===undefined)continue;
226
+ out[k]=isObject(bv)&&isObject(out[k])?merge(out[k],bv):bv;
227
+ }
228
+ return out;
229
+ }
230
+ function mergeRow(previous,patch){
231
+ if(!isObject(previous)||!isObject(patch)||previous===patch)return patch;
232
+ const out=Object.create(Object.getPrototypeOf(previous));
233
+ Object.assign(out,previous,patch);
234
+ return out;
235
+ }
236
+ class Lru{
237
+ #max;
238
+ #map=new Map();
239
+ #onEvict;
240
+ constructor(max=256,onEvict=null){
241
+ this.#max=max;
242
+ this.#onEvict=onEvict;
243
+ }
244
+ get size(){
245
+ return this.#map.size;
246
+ }
247
+ get max(){
248
+ return this.#max;
249
+ }
250
+ set max(v){
251
+ this.#max=v;
252
+ this.#trim();
253
+ }
254
+ has(k){
255
+ return this.#map.has(k);
256
+ }
257
+ get(k){
258
+ const m=this.#map;
259
+ if(!m.has(k))return undefined;
260
+ const v=m.get(k);
261
+ m.delete(k);
262
+ m.set(k,v);
263
+ return v;
264
+ }
265
+ peek(k){
266
+ return this.#map.get(k);
267
+ }
268
+ set(k,v){
269
+ const m=this.#map;
270
+ if(m.has(k))m.delete(k);
271
+ m.set(k,v);
272
+ this.#trim();
273
+ return v;
274
+ }
275
+ delete(k){
276
+ const v=this.#map.get(k);
277
+ if(this.#map.delete(k)&&this.#onEvict)this.#onEvict(v,k);
278
+ return v;
279
+ }
280
+ clear(){
281
+ if(this.#onEvict)for(const[k,v]of this.#map)this.#onEvict(v,k);
282
+ this.#map.clear();
283
+ }
284
+ keys(){
285
+ return this.#map.keys();
286
+ }
287
+ values(){
288
+ return this.#map.values();
289
+ }
290
+ #trim(){
291
+ const m=this.#map;
292
+ while(m.size>this.#max){
293
+ const oldest=m.keys().next().value;
294
+ const v=m.get(oldest);
295
+ m.delete(oldest);
296
+ if(this.#onEvict)this.#onEvict(v,oldest);
297
+ }
298
+ }
299
+ }
300
+ const collators=new Map();
301
+ function collator(locale,opts){
302
+ const key=`${locale||''}|${opts?JSON.stringify(opts):''}`;
303
+ let c=collators.get(key);
304
+ if(!c){
305
+ c=new Intl.Collator(locale||undefined,{
306
+ numeric:true,sensitivity:'variant',...opts,
307
+ });
308
+ collators.set(key,c);
309
+ }
310
+ return c;
311
+ }
312
+ function defaultCompare(a,b){
313
+ if(a===b)return 0;
314
+ if(a===null||a===undefined)return 1;
315
+ if(b===null||b===undefined)return-1;
316
+ if(typeof a==='number'&&typeof b==='number'){
317
+ if(Number.isNaN(a))return Number.isNaN(b)?0:1;
318
+ if(Number.isNaN(b))return-1;
319
+ return a<b?-1:a>b?1:0;
320
+ }
321
+ const sa=String(a);
322
+ const sb=String(b);
323
+ return sa<sb?-1:sa>sb?1:0;
324
+ }
325
+ function now(){
326
+ return typeof performance!=='undefined'&&performance.now
327
+ ?performance.now()
328
+ :Date.now();
329
+ }
330
+ const hasRaf=typeof requestAnimationFrame==='function';
331
+ function nextFrame(fn){
332
+ if(hasRaf)return requestAnimationFrame(fn);
333
+ return setTimeout(()=>fn(now()),16);
334
+ }
335
+ function cancelFrame(handle){
336
+ if(handle==null)return;
337
+ if(hasRaf)cancelAnimationFrame(handle);
338
+ else clearTimeout(handle);
339
+ }
340
+ function frameBatched(fn){
341
+ let handle=null;
342
+ let lastArgs=null;
343
+ const run=()=>{
344
+ handle=null;
345
+ const a=lastArgs;
346
+ lastArgs=null;
347
+ fn(...(a||[]));
348
+ };
349
+ const wrapped=(...args)=>{
350
+ lastArgs=args;
351
+ if(handle===null)handle=nextFrame(run);
352
+ };
353
+ wrapped.cancel=()=>{
354
+ cancelFrame(handle);
355
+ handle=null;
356
+ lastArgs=null;
357
+ };
358
+ wrapped.flush=()=>{
359
+ if(handle!==null){
360
+ cancelFrame(handle);
361
+ run();
362
+ }
363
+ };
364
+ return wrapped;
365
+ }
366
+ function settleDebounce(fn,waitMs){
367
+ let timer=null;
368
+ let held=null;
369
+ const trailing=()=>{
370
+ timer=null;
371
+ if(held===null)return;
372
+ const args=held;
373
+ held=null;
374
+ fn(...args);
375
+ arm();
376
+ };
377
+ const arm=()=>{
378
+ timer=setTimeout(trailing,waitMs);
379
+ if(typeof timer?.unref==='function')timer.unref();
380
+ };
381
+ const wrapped=(...args)=>{
382
+ if(timer===null){
383
+ fn(...args);
384
+ arm();
385
+ }else{
386
+ held=args;
387
+ clearTimeout(timer);
388
+ arm();
389
+ }
390
+ };
391
+ wrapped.flush=()=>{
392
+ if(timer!==null)clearTimeout(timer);
393
+ timer=null;
394
+ if(held===null)return;
395
+ const args=held;
396
+ held=null;
397
+ fn(...args);
398
+ };
399
+ wrapped.cancel=()=>{
400
+ if(timer!==null)clearTimeout(timer);
401
+ timer=null;
402
+ held=null;
403
+ };
404
+ wrapped.pending=()=>timer!==null||held!==null;
405
+ return wrapped;
406
+ }
407
+ function whenIdle(fn,timeout=50){
408
+ if(typeof requestIdleCallback==='function'){
409
+ return requestIdleCallback(fn,{timeout});
410
+ }
411
+ return setTimeout(()=>fn({timeRemaining:()=>0,didTimeout:true}),1);
412
+ }
413
+ let idSeq=0;
414
+ function uid(prefix='l'){
415
+ return`${prefix}${(++idSeq).toString(36)}`;
416
+ }
417
+ });
21
418
  __def("packages/modules/shared/adapter.js",function(__exports,__req){
22
419
  'use strict';
23
420
  Object.defineProperty(__exports,"EVENT_NAMES",{enumerable:true,get:function(){return EVENT_NAMES;}});
@@ -178,15 +575,23 @@ Object.defineProperty(__exports,"EVENT_NAMES",{enumerable:true,get:function(){re
178
575
  Object.defineProperty(__exports,"dashedName",{enumerable:true,get:function(){return dashedName;}});
179
576
  Object.defineProperty(__exports,"createLatticeGrid",{enumerable:true,get:function(){return createLatticeGrid;}});
180
577
  Object.defineProperty(__exports,"default",{enumerable:true,get:function(){return __default;}});
181
- const __m0=__req("packages/modules/shared/adapter.js");
182
- const createGridController=__m0["createGridController"];
183
- const EVENT_NAMES=__m0["EVENT_NAMES"];
184
- const dashedName=__m0["dashedName"];
185
- const handlerName=__m0["handlerName"];
578
+ const __m0=__req("packages/core/src/internal/util.js");
579
+ const warnOnce=__m0["warnOnce"];
580
+ const __m1=__req("packages/modules/shared/adapter.js");
581
+ const createGridController=__m1["createGridController"];
582
+ const EVENT_NAMES=__m1["EVENT_NAMES"];
583
+ const dashedName=__m1["dashedName"];
584
+ const handlerName=__m1["handlerName"];
186
585
  const IMPERATIVE_INPUTS=Object.freeze(['sort','filters','quickFilter','selectedKeys']);
187
586
  function emitterKey(event){
188
587
  return String(event).replace(/:/g,'_');
189
588
  }
589
+ function canCompileAtRuntime(ng){
590
+ const real=typeof((ng))['\u0275\u0275defineComponent']==='function';
591
+ if(!real)return true;
592
+ const globals=(globalThis);
593
+ return!!(globals.ng&&globals.ng['\u0275compilerFacade']);
594
+ }
190
595
  function createLatticeGrid(deps){
191
596
  const ng=deps&&deps.ng;
192
597
  const createGrid=deps&&deps.createGrid;
@@ -198,6 +603,18 @@ throw new TypeError('createLatticeGrid needs the Angular core namespace: createL
198
603
  if(typeof createGrid!=='function'){
199
604
  throw new TypeError('createLatticeGrid needs createGrid: createLatticeGrid({ ng, createGrid }).');
200
605
  }
606
+ warnOnce('angular.deprecated',
607
+ 'modules/angular is deprecated: it needs the JIT compiler. '
608
+ +'Use @toclocoinc/lattice-grid-angular.');
609
+ if(!canCompileAtRuntime(ng)){
610
+ throw new Error(
611
+ '[lattice] modules/angular builds its component at run time, which needs Angular\'s JIT '
612
+ +'compiler, and this page has none — which is what a production (AOT) build looks like. '
613
+ +'Install @toclocoinc/lattice-grid-angular, an ahead-of-time Angular library that needs no '
614
+ +"compiler: import { LatticeGridComponent, provideLattice } from "
615
+ +"'@toclocoinc/lattice-grid-angular'. (To keep using this adapter, import "
616
+ +"'@angular/compiler' before it — a development-server shape, not a production one.)");
617
+ }
201
618
  const{
202
619
  Component,Directive,Input,Output,EventEmitter,ElementRef,inject,
203
620
  }=ng;
@@ -242,7 +659,7 @@ this.__controller=null;
242
659
  }
243
660
  },
244
661
  };
245
- const build=(cls,classDecorator)=>{
662
+ const build=(cls,classDecorator,configAlias)=>{
246
663
  const proto=cls.prototype;
247
664
  Object.assign(proto,lifecycle);
248
665
  Object.defineProperty(proto,'grid',{
@@ -250,6 +667,14 @@ get(){return this.__controller?this.__controller.grid:null;},
250
667
  configurable:true,
251
668
  });
252
669
  Input()(proto,'config');
670
+ if(configAlias){
671
+ Object.defineProperty(proto,configAlias,{
672
+ set(value){if(value!=='')this.config=value;},
673
+ get(){return this.config;},
674
+ configurable:true,
675
+ });
676
+ Input()(proto,configAlias);
677
+ }
253
678
  for(const key of IMPERATIVE_INPUTS)Input()(proto,key);
254
679
  for(const name of EVENT_NAMES)Output(dashedName(name))(proto,emitterKey(name));
255
680
  const decorated=classDecorator(cls);
@@ -266,6 +691,7 @@ class LatticeGridDirective{
266
691
  constructor(){init(this);}
267
692
  },
268
693
  Directive({selector:'[latticeGrid]',standalone:true}),
694
+ 'latticeGrid',
269
695
  );
270
696
  return{LatticeGridComponent,LatticeGridDirective};
271
697
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-alluvial module type declarations
2
+ * Lattice Grid 1.65.0, chart-alluvial module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -8,7 +8,7 @@ import type {
8
8
  } from '../lattice-grid.js';
9
9
 
10
10
  /**
11
- * The alluvial extension type (BACKLOG-0000886). Importing this module
11
+ * The alluvial extension type. Importing this module
12
12
  * registers `alluvial`. Ribbons from `source` categories to `target`
13
13
  * categories sized by `value` — categorical flow between two dimensions.
14
14
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-alluvial module
2
+ * Lattice Grid 1.65.0, chart-alluvial 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.64.0, chart-alluvial module
2
+ * Lattice Grid 1.65.0, chart-alluvial 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.64.0, chart-alluvial module
2
+ * Lattice Grid 1.65.0, chart-alluvial 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.64.0, chart-arc module type declarations
2
+ * Lattice Grid 1.65.0, chart-arc module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -8,7 +8,7 @@ import type {
8
8
  } from '../lattice-grid.js';
9
9
 
10
10
  /**
11
- * The arc-diagram extension type (BACKLOG-0000886). Importing this module
11
+ * The arc-diagram extension type. Importing this module
12
12
  * registers `arc`. Nodes on a baseline with `source`→`target` relationships as
13
13
  * semicircular arcs, thickness by `value`.
14
14
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-arc module
2
+ * Lattice Grid 1.65.0, chart-arc 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.64.0, chart-arc module
2
+ * Lattice Grid 1.65.0, chart-arc 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.64.0, chart-arc module
2
+ * Lattice Grid 1.65.0, chart-arc 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.64.0, chart-bubblemap module type declarations
2
+ * Lattice Grid 1.65.0, chart-bubblemap module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -8,7 +8,7 @@ import type {
8
8
  } from '../lattice-grid.js';
9
9
 
10
10
  /**
11
- * The symbol / bubble-map extension type (BACKLOG-0000886). Importing this
11
+ * The symbol / bubble-map extension type. Importing this
12
12
  * module registers `bubblemap`. Points placed by `lon`/`lat`, each a bubble
13
13
  * with a square-root radius from `size`; needs no outlines and fetches nothing.
14
14
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-bubblemap module
2
+ * Lattice Grid 1.65.0, chart-bubblemap 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.64.0, chart-bubblemap module
2
+ * Lattice Grid 1.65.0, chart-bubblemap 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.64.0, chart-bubblemap module
2
+ * Lattice Grid 1.65.0, chart-bubblemap module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-bump module type declarations
2
+ * Lattice Grid 1.65.0, chart-bump module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
6
  /**
7
- * The bump-chart extension type (BACKLOG-0000886). Importing this module
7
+ * The bump-chart extension type. Importing this module
8
8
  * registers `bump`. One line per `series` plotted by its rank of `y` within
9
9
  * each `x` period — rank-over-time, where crossings are the story.
10
10
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-bump module
2
+ * Lattice Grid 1.65.0, chart-bump 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.64.0, chart-bump module
2
+ * Lattice Grid 1.65.0, chart-bump 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.64.0, chart-bump module
2
+ * Lattice Grid 1.65.0, chart-bump module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-calendar module type declarations
2
+ * Lattice Grid 1.65.0, chart-calendar module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
6
  /**
7
- * The calendar-heatmap extension chart type (BACKLOG-0000886). Importing this
7
+ * The calendar-heatmap extension chart type. Importing this
8
8
  * module registers `calendar`. Draws value-by-day as a GitHub-style grid: `x`
9
9
  * is a date column, `y` the measure summed per day.
10
10
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.64.0, chart-calendar module
2
+ * Lattice Grid 1.65.0, chart-calendar 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.64.0, chart-calendar module
2
+ * Lattice Grid 1.65.0, chart-calendar 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.64.0, chart-calendar module
2
+ * Lattice Grid 1.65.0, chart-calendar module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */