@toclocoinc/lattice-grid 1.12.2 → 1.13.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 +56 -13
- package/docs/API.html +221 -10
- package/docs/CHART-CODES.md +1 -1
- package/docs/api-detail.html +488 -40
- package/lattice-grid.d.ts +185 -7
- package/lattice-grid.esm.min.js +684 -46
- package/lattice-grid.min.cjs +667 -46
- package/lattice-grid.min.js +667 -46
- package/modules/charts.esm.min.js +1 -1
- package/modules/devtools.esm.min.js +1 -1
- package/modules/dhtmlx-compat.esm.min.js +667 -46
- package/modules/htmx.esm.min.js +650 -46
- package/modules/htmx.min.cjs +650 -46
- package/modules/htmx.min.js +650 -46
- package/modules/react.esm.min.js +1 -1
- package/modules/svelte.esm.min.js +1 -1
- package/modules/vue.esm.min.js +1 -1
- package/modules/webcomponent.esm.min.js +667 -46
- package/package.json +1 -1
package/lattice-grid.min.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.13.0, core + DOM renderer
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
@@ -16151,6 +16151,577 @@ function createDerivedSource(config,ctx){
|
|
|
16151
16151
|
return new DerivedSource(config,ctx);
|
|
16152
16152
|
}
|
|
16153
16153
|
});
|
|
16154
|
+
__def("packages/core/src/source/pushdown.js",function(__exports,__req){
|
|
16155
|
+
'use strict';
|
|
16156
|
+
Object.defineProperty(__exports,"NO_CAPABILITIES",{enumerable:true,get:function(){return NO_CAPABILITIES;}});
|
|
16157
|
+
Object.defineProperty(__exports,"capabilitiesOf",{enumerable:true,get:function(){return capabilitiesOf;}});
|
|
16158
|
+
Object.defineProperty(__exports,"splitFilters",{enumerable:true,get:function(){return splitFilters;}});
|
|
16159
|
+
Object.defineProperty(__exports,"planQuery",{enumerable:true,get:function(){return planQuery;}});
|
|
16160
|
+
Object.defineProperty(__exports,"applyResidual",{enumerable:true,get:function(){return applyResidual;}});
|
|
16161
|
+
Object.defineProperty(__exports,"createPushdownSource",{enumerable:true,get:function(){return createPushdownSource;}});
|
|
16162
|
+
const __m0=__req("packages/core/src/internal/util.js");
|
|
16163
|
+
const isFunction=__m0["isFunction"];
|
|
16164
|
+
const warnOnce=__m0["warnOnce"];
|
|
16165
|
+
const __m1=__req("packages/core/src/source/filterwire.js");
|
|
16166
|
+
const isGroup=__m1["isGroup"];
|
|
16167
|
+
const NO_CAPABILITIES=Object.freeze({
|
|
16168
|
+
filter:false,
|
|
16169
|
+
operators:Object.freeze([]),
|
|
16170
|
+
sort:false,
|
|
16171
|
+
quick:false,
|
|
16172
|
+
range:false,
|
|
16173
|
+
total:false,
|
|
16174
|
+
group:false,
|
|
16175
|
+
});
|
|
16176
|
+
function readPath(row,path){
|
|
16177
|
+
if(!row||typeof path!=='string')return undefined;
|
|
16178
|
+
if(!path.includes('.'))return(row)[path];
|
|
16179
|
+
let cursor=row;
|
|
16180
|
+
for(const part of path.split('.')){
|
|
16181
|
+
if(cursor===null||typeof cursor!=='object')return undefined;
|
|
16182
|
+
cursor=(cursor)[part];
|
|
16183
|
+
}
|
|
16184
|
+
return cursor;
|
|
16185
|
+
}
|
|
16186
|
+
function capabilitiesOf(declared){
|
|
16187
|
+
const caps={...NO_CAPABILITIES,...(declared||{})};
|
|
16188
|
+
caps.operators=new Set(caps.operators||[]);
|
|
16189
|
+
return caps;
|
|
16190
|
+
}
|
|
16191
|
+
function conditionPushable(condition,caps){
|
|
16192
|
+
if(!condition||!condition.op)return false;
|
|
16193
|
+
if(!caps.operators.size)return false;
|
|
16194
|
+
return caps.operators.has(condition.op);
|
|
16195
|
+
}
|
|
16196
|
+
function splitFilters(filters,caps){
|
|
16197
|
+
if(!filters)return{pushed:null,residual:null};
|
|
16198
|
+
if(!caps.filter)return{pushed:null,residual:filters};
|
|
16199
|
+
if(caps.filter==='term'){
|
|
16200
|
+
if(isGroup(filters)){
|
|
16201
|
+
const conditions=filters.conditions||[];
|
|
16202
|
+
if(String(filters.op)!=='and')return{pushed:null,residual:filters};
|
|
16203
|
+
const at=conditions.findIndex((c)=>!isGroup(c)&&conditionPushable(c,caps));
|
|
16204
|
+
if(at<0)return{pushed:null,residual:filters};
|
|
16205
|
+
const rest=conditions.filter((unused,i)=>i!==at);
|
|
16206
|
+
return{
|
|
16207
|
+
pushed:conditions[at],
|
|
16208
|
+
residual:rest.length?{op:'and',conditions:rest}:null,
|
|
16209
|
+
};
|
|
16210
|
+
}
|
|
16211
|
+
return conditionPushable(filters,caps)
|
|
16212
|
+
?{pushed:filters,residual:null}
|
|
16213
|
+
:{pushed:null,residual:filters};
|
|
16214
|
+
}
|
|
16215
|
+
if(!isGroup(filters)){
|
|
16216
|
+
return conditionPushable(filters,caps)
|
|
16217
|
+
?{pushed:filters,residual:null}
|
|
16218
|
+
:{pushed:null,residual:filters};
|
|
16219
|
+
}
|
|
16220
|
+
if(String(filters.op)!=='and'){
|
|
16221
|
+
const everyBranch=(filters.conditions||[])
|
|
16222
|
+
.every((c)=>(isGroup(c)?splitFilters(c,caps).residual===null:conditionPushable(c,caps)));
|
|
16223
|
+
return everyBranch?{pushed:filters,residual:null}:{pushed:null,residual:filters};
|
|
16224
|
+
}
|
|
16225
|
+
const pushed=[];
|
|
16226
|
+
const residual=[];
|
|
16227
|
+
for(const condition of filters.conditions||[]){
|
|
16228
|
+
if(isGroup(condition)){
|
|
16229
|
+
if(caps.filter==='flat'){residual.push(condition);continue;}
|
|
16230
|
+
const inner=splitFilters(condition,caps);
|
|
16231
|
+
if(inner.pushed)pushed.push(inner.pushed);
|
|
16232
|
+
if(inner.residual)residual.push(inner.residual);
|
|
16233
|
+
continue;
|
|
16234
|
+
}
|
|
16235
|
+
(conditionPushable(condition,caps)?pushed:residual).push(condition);
|
|
16236
|
+
}
|
|
16237
|
+
const group=(list)=>(list.length===0?null
|
|
16238
|
+
:(list.length===1?list[0]:{op:'and',conditions:list}));
|
|
16239
|
+
return{pushed:group(pushed),residual:group(residual)};
|
|
16240
|
+
}
|
|
16241
|
+
function planQuery(request,caps){
|
|
16242
|
+
const filters=splitFilters(request.filters||null,caps);
|
|
16243
|
+
const unpushed=[];
|
|
16244
|
+
if(filters.residual)unpushed.push('filter');
|
|
16245
|
+
const wanted=request.sort||[];
|
|
16246
|
+
const sortPushable=wanted.length===0
|
|
16247
|
+
||(caps.sort==='multi'&&wanted.length>=1)
|
|
16248
|
+
||(caps.sort==='single'&&wanted.length===1);
|
|
16249
|
+
if(!sortPushable&&wanted.length)unpushed.push('sort');
|
|
16250
|
+
const quick=request.quick?String(request.quick):'';
|
|
16251
|
+
const quickPushable=!quick||!!caps.quick;
|
|
16252
|
+
if(!quickPushable)unpushed.push('quick');
|
|
16253
|
+
const residual={
|
|
16254
|
+
filters:filters.residual,
|
|
16255
|
+
sort:sortPushable?null:wanted,
|
|
16256
|
+
quick:quickPushable?'':quick,
|
|
16257
|
+
};
|
|
16258
|
+
const needsAll=!!(residual.filters||residual.sort||residual.quick)||!caps.range;
|
|
16259
|
+
const pushed={
|
|
16260
|
+
...request,
|
|
16261
|
+
filters:filters.pushed,
|
|
16262
|
+
sort:sortPushable?wanted:[],
|
|
16263
|
+
quick:quickPushable?quick:'',
|
|
16264
|
+
range:needsAll?null:request.range,
|
|
16265
|
+
};
|
|
16266
|
+
return{pushed,residual,needsAll,unpushed};
|
|
16267
|
+
}
|
|
16268
|
+
function applyResidual(rows,residual,compute){
|
|
16269
|
+
if(!residual)return rows;
|
|
16270
|
+
let out=rows;
|
|
16271
|
+
if(residual.filters&&isFunction(compute.evaluateFilters)){
|
|
16272
|
+
const ctx={
|
|
16273
|
+
count:out.length,
|
|
16274
|
+
handle:(col)=>({id:col,get:(i)=>readPath(out[i],col)}),
|
|
16275
|
+
};
|
|
16276
|
+
const mask=compute.evaluateFilters(residual.filters,ctx);
|
|
16277
|
+
const kept=[];
|
|
16278
|
+
for(let i=0;i<out.length;i++)if(mask[i])kept.push(out[i]);
|
|
16279
|
+
out=kept;
|
|
16280
|
+
}
|
|
16281
|
+
if(residual.quick){
|
|
16282
|
+
const needle=residual.quick.toLowerCase();
|
|
16283
|
+
out=out.filter((row)=>{
|
|
16284
|
+
if(!row||typeof row!=='object')return false;
|
|
16285
|
+
for(const value of Object.values((row))){
|
|
16286
|
+
if(value!==null&&value!==undefined
|
|
16287
|
+
&&String(value).toLowerCase().includes(needle))return true;
|
|
16288
|
+
}
|
|
16289
|
+
return false;
|
|
16290
|
+
});
|
|
16291
|
+
}
|
|
16292
|
+
if(residual.sort&&residual.sort.length&&isFunction(compute.sortMulti)){
|
|
16293
|
+
const columns=[...new Set(residual.sort.map((entry)=>entry.col))];
|
|
16294
|
+
const view=out;
|
|
16295
|
+
const handles=columns.map((col)=>({id:col,get:(i)=>readPath(view[i],col)}));
|
|
16296
|
+
const order=compute.sortMulti(
|
|
16297
|
+
handles,
|
|
16298
|
+
residual.sort.map((entry)=>({col:entry.col,dir:entry.dir})),
|
|
16299
|
+
Uint32Array.from({length:out.length},(unused,i)=>i),
|
|
16300
|
+
{},
|
|
16301
|
+
);
|
|
16302
|
+
out=Array.from(order,(i)=>view[i]);
|
|
16303
|
+
}
|
|
16304
|
+
return out;
|
|
16305
|
+
}
|
|
16306
|
+
function planKey(pushed){
|
|
16307
|
+
return JSON.stringify({
|
|
16308
|
+
filters:pushed.filters||null,
|
|
16309
|
+
sort:pushed.sort||[],
|
|
16310
|
+
quick:pushed.quick||'',
|
|
16311
|
+
groupBy:pushed.groupBy||[],
|
|
16312
|
+
groupPath:pushed.groupPath||[],
|
|
16313
|
+
context:pushed.context??null,
|
|
16314
|
+
});
|
|
16315
|
+
}
|
|
16316
|
+
function createPushdownSource(config={}){
|
|
16317
|
+
const adapter=config.adapter;
|
|
16318
|
+
if(!adapter||!isFunction(adapter.execute)){
|
|
16319
|
+
warnOnce('source.pushdown.adapter',
|
|
16320
|
+
'createPushdownSource needs an `adapter` with an `execute(query)` function.');
|
|
16321
|
+
return{...config,mode:'remote',fetch:async()=>({rows:[],total:0})};
|
|
16322
|
+
}
|
|
16323
|
+
const caps=capabilitiesOf(adapter.capabilities);
|
|
16324
|
+
const name=adapter.name||'adapter';
|
|
16325
|
+
let held=null;
|
|
16326
|
+
let lastPlan=null;
|
|
16327
|
+
const fetch=async(request)=>{
|
|
16328
|
+
const plan=planQuery(request,caps);
|
|
16329
|
+
lastPlan=plan;
|
|
16330
|
+
if(!plan.needsAll){
|
|
16331
|
+
const result=await adapter.execute(plan.pushed,request);
|
|
16332
|
+
return{rows:result.rows||[],total:result.total??(result.rows||[]).length};
|
|
16333
|
+
}
|
|
16334
|
+
if(plan.unpushed.length){
|
|
16335
|
+
warnOnce(`source.pushdown.residual.${name}.${plan.unpushed.join('.')}`,
|
|
16336
|
+
`the ${name} adapter cannot push ${plan.unpushed.join(' or ')}, so every matching row is `
|
|
16337
|
+
+'fetched and the rest is applied in the browser. Correct, and slower than it needs to be: '
|
|
16338
|
+
+'widening the adapter is the fix.');
|
|
16339
|
+
}
|
|
16340
|
+
const key=planKey(plan.pushed);
|
|
16341
|
+
if(!held||held.key!==key){
|
|
16342
|
+
const result=await adapter.execute(plan.pushed,request);
|
|
16343
|
+
const rows=result.rows||[];
|
|
16344
|
+
if(typeof result.total==='number'&&rows.length<result.total){
|
|
16345
|
+
warnOnce(`source.pushdown.partial.${name}`,
|
|
16346
|
+
`the ${name} adapter returned ${rows.length} of ${result.total} matching rows when asked `
|
|
16347
|
+
+'for the whole result, so filtering and sorting would be applied to a fraction of it. '
|
|
16348
|
+
+'The adapter must follow the engine\'s own paging before returning.');
|
|
16349
|
+
}
|
|
16350
|
+
held={key,rows};
|
|
16351
|
+
}
|
|
16352
|
+
const rows=applyResidual(held.rows,plan.residual,config.compute||{});
|
|
16353
|
+
const start=request.range?request.range.start:0;
|
|
16354
|
+
const end=request.range?request.range.end:rows.length;
|
|
16355
|
+
return{rows:rows.slice(start,end),total:rows.length};
|
|
16356
|
+
};
|
|
16357
|
+
return{
|
|
16358
|
+
...config,
|
|
16359
|
+
mode:'remote',
|
|
16360
|
+
fetch,
|
|
16361
|
+
lastPlan:()=>lastPlan,
|
|
16362
|
+
};
|
|
16363
|
+
}
|
|
16364
|
+
});
|
|
16365
|
+
__def("packages/core/src/source/adapters/odata.js",function(__exports,__req){
|
|
16366
|
+
'use strict';
|
|
16367
|
+
Object.defineProperty(__exports,"conditionToOData",{enumerable:true,get:function(){return conditionToOData;}});
|
|
16368
|
+
Object.defineProperty(__exports,"filtersToOData",{enumerable:true,get:function(){return filtersToOData;}});
|
|
16369
|
+
Object.defineProperty(__exports,"odataAdapter",{enumerable:true,get:function(){return odataAdapter;}});
|
|
16370
|
+
const __m0=__req("packages/core/src/source/filterwire.js");
|
|
16371
|
+
const isGroup=__m0["isGroup"];
|
|
16372
|
+
const OPERATORS=Object.freeze([
|
|
16373
|
+
'eq','ne','gt','gte','lt','lte','contains','startsWith','endsWith',
|
|
16374
|
+
'blank','notBlank',
|
|
16375
|
+
]);
|
|
16376
|
+
const MAX_SERVER_PAGES=200;
|
|
16377
|
+
const PAGE_GUARD=1000;
|
|
16378
|
+
const COMPARISON=Object.freeze({eq:'eq',ne:'ne',gt:'gt',gte:'ge',lt:'lt',lte:'le'});
|
|
16379
|
+
function literal(value){
|
|
16380
|
+
if(value===null||value===undefined)return'null';
|
|
16381
|
+
if(typeof value==='number'||typeof value==='boolean')return String(value);
|
|
16382
|
+
if(value instanceof Date)return value.toISOString();
|
|
16383
|
+
return`'${String(value).replace(/'/g,"''")}'`;
|
|
16384
|
+
}
|
|
16385
|
+
function conditionToOData(condition){
|
|
16386
|
+
const col=String(condition.col);
|
|
16387
|
+
const op=String(condition.op);
|
|
16388
|
+
if(COMPARISON[op])return`${col} ${COMPARISON[op]} ${literal(condition.value)}`;
|
|
16389
|
+
if(op==='contains')return`contains(${col},${literal(condition.value)})`;
|
|
16390
|
+
if(op==='startsWith')return`startswith(${col},${literal(condition.value)})`;
|
|
16391
|
+
if(op==='endsWith')return`endswith(${col},${literal(condition.value)})`;
|
|
16392
|
+
if(op==='blank')return`(${col} eq null)`;
|
|
16393
|
+
if(op==='notBlank')return`(${col} ne null)`;
|
|
16394
|
+
return null;
|
|
16395
|
+
}
|
|
16396
|
+
function filtersToOData(filters){
|
|
16397
|
+
if(!filters)return'';
|
|
16398
|
+
if(!isGroup(filters))return conditionToOData(filters)||'';
|
|
16399
|
+
const joiner=String(filters.op)==='or'?' or ':' and ';
|
|
16400
|
+
const parts=(filters.conditions||[]).map(filtersToOData).filter(Boolean);
|
|
16401
|
+
if(!parts.length)return'';
|
|
16402
|
+
return parts.length===1?parts[0]:`(${parts.join(joiner)})`;
|
|
16403
|
+
}
|
|
16404
|
+
function odataAdapter(options={}){
|
|
16405
|
+
const base=String(options.url||'');
|
|
16406
|
+
const call=options.fetch||(typeof fetch==='function'?fetch:null);
|
|
16407
|
+
const wantsCount=options.count!==false;
|
|
16408
|
+
return{
|
|
16409
|
+
name:'odata',
|
|
16410
|
+
capabilities:{
|
|
16411
|
+
filter:'tree',
|
|
16412
|
+
operators:OPERATORS,
|
|
16413
|
+
sort:'multi',
|
|
16414
|
+
quick:options.search===true,
|
|
16415
|
+
range:true,
|
|
16416
|
+
total:wantsCount,
|
|
16417
|
+
},
|
|
16418
|
+
urlFor(query){
|
|
16419
|
+
const parts=[];
|
|
16420
|
+
const put=(key,value)=>parts.push(`${key}=${encodeURIComponent(value)}`);
|
|
16421
|
+
const filter=filtersToOData(query.filters);
|
|
16422
|
+
if(filter)put('$filter',filter);
|
|
16423
|
+
if(query.sort&&query.sort.length){
|
|
16424
|
+
put('$orderby',query.sort
|
|
16425
|
+
.map((entry)=>`${entry.col}${entry.dir==='desc'?' desc':' asc'}`).join(','));
|
|
16426
|
+
}
|
|
16427
|
+
if(query.range){
|
|
16428
|
+
put('$skip',String(query.range.start));
|
|
16429
|
+
put('$top',String(query.range.end-query.range.start));
|
|
16430
|
+
}
|
|
16431
|
+
if(query.quick)put('$search',`"${String(query.quick).replace(/"/g,'')}"`);
|
|
16432
|
+
if(wantsCount)put('$count','true');
|
|
16433
|
+
return parts.length?`${base}?${parts.join('&')}`:base;
|
|
16434
|
+
},
|
|
16435
|
+
async execute(query,request){
|
|
16436
|
+
if(!call)throw new Error('odataAdapter needs a fetch implementation');
|
|
16437
|
+
const headers={Accept:'application/json',...(options.headers||{})};
|
|
16438
|
+
const signal=request&&request.signal;
|
|
16439
|
+
const page=async(url)=>{
|
|
16440
|
+
const response=await call(url,{headers,signal});
|
|
16441
|
+
if(!response.ok)throw new Error(`OData request failed: ${response.status}`);
|
|
16442
|
+
return response.json();
|
|
16443
|
+
};
|
|
16444
|
+
let body=await page(this.urlFor(query));
|
|
16445
|
+
let rows=body.value||body.rows||[];
|
|
16446
|
+
const total=body['@odata.count']??body.count??rows.length;
|
|
16447
|
+
if(!query.range){
|
|
16448
|
+
let next=body['@odata.nextLink'];
|
|
16449
|
+
while(next&&rows.length<MAX_SERVER_PAGES*PAGE_GUARD){
|
|
16450
|
+
body=await page(next);
|
|
16451
|
+
rows=rows.concat(body.value||body.rows||[]);
|
|
16452
|
+
next=body['@odata.nextLink'];
|
|
16453
|
+
}
|
|
16454
|
+
}
|
|
16455
|
+
return{rows,total};
|
|
16456
|
+
},
|
|
16457
|
+
};
|
|
16458
|
+
}
|
|
16459
|
+
});
|
|
16460
|
+
__def("packages/core/src/source/adapters/rest.js",function(__exports,__req){
|
|
16461
|
+
'use strict';
|
|
16462
|
+
Object.defineProperty(__exports,"DEFAULT_PARAMS",{enumerable:true,get:function(){return DEFAULT_PARAMS;}});
|
|
16463
|
+
Object.defineProperty(__exports,"restAdapter",{enumerable:true,get:function(){return restAdapter;}});
|
|
16464
|
+
const DEFAULT_PARAMS=Object.freeze({
|
|
16465
|
+
offset:'offset',
|
|
16466
|
+
limit:'limit',
|
|
16467
|
+
sort:'sort',
|
|
16468
|
+
order:'order',
|
|
16469
|
+
filter:'filter',
|
|
16470
|
+
search:'q',
|
|
16471
|
+
});
|
|
16472
|
+
function restAdapter(options={}){
|
|
16473
|
+
const base=String(options.url||'');
|
|
16474
|
+
const call=options.fetch||(typeof fetch==='function'?fetch:null);
|
|
16475
|
+
const names={...DEFAULT_PARAMS,...(options.params||{})};
|
|
16476
|
+
const encodeFilter=options.encodeFilter||((filters)=>JSON.stringify(filters));
|
|
16477
|
+
const readRows=options.rows||((body)=>(Array.isArray(body)?body:(body.rows||body.data||[])));
|
|
16478
|
+
const readTotal=options.total
|
|
16479
|
+
||((body,rows)=>(Array.isArray(body)?rows.length:(body.total??body.count??rows.length)));
|
|
16480
|
+
return{
|
|
16481
|
+
name:'rest',
|
|
16482
|
+
capabilities:{
|
|
16483
|
+
range:true,
|
|
16484
|
+
total:true,
|
|
16485
|
+
sort:'multi',
|
|
16486
|
+
filter:false,
|
|
16487
|
+
quick:false,
|
|
16488
|
+
...(options.capabilities||{}),
|
|
16489
|
+
...(options.operators?{filter:'tree',operators:options.operators}:{}),
|
|
16490
|
+
},
|
|
16491
|
+
urlFor(query){
|
|
16492
|
+
const params=new URLSearchParams();
|
|
16493
|
+
if(query.range){
|
|
16494
|
+
params.set(names.offset,String(query.range.start));
|
|
16495
|
+
params.set(names.limit,String(query.range.end-query.range.start));
|
|
16496
|
+
}
|
|
16497
|
+
if(query.sort&&query.sort.length){
|
|
16498
|
+
params.set(names.sort,query.sort.map((entry)=>entry.col).join(','));
|
|
16499
|
+
params.set(names.order,query.sort.map((entry)=>entry.dir||'asc').join(','));
|
|
16500
|
+
}
|
|
16501
|
+
if(query.filters)params.set(names.filter,encodeFilter(query.filters));
|
|
16502
|
+
if(query.quick)params.set(names.search,String(query.quick));
|
|
16503
|
+
const qs=params.toString();
|
|
16504
|
+
return qs?`${base}?${qs}`:base;
|
|
16505
|
+
},
|
|
16506
|
+
async execute(query,request){
|
|
16507
|
+
if(!call)throw new Error('restAdapter needs a fetch implementation');
|
|
16508
|
+
const response=await call(this.urlFor(query),{
|
|
16509
|
+
headers:{Accept:'application/json',...(options.headers||{})},
|
|
16510
|
+
signal:request&&request.signal,
|
|
16511
|
+
});
|
|
16512
|
+
if(!response.ok)throw new Error(`request failed: ${response.status}`);
|
|
16513
|
+
const body=await response.json();
|
|
16514
|
+
const rows=readRows(body);
|
|
16515
|
+
return{rows,total:readTotal(body,rows)};
|
|
16516
|
+
},
|
|
16517
|
+
};
|
|
16518
|
+
}
|
|
16519
|
+
});
|
|
16520
|
+
__def("packages/core/src/source/adapters/dfql.js",function(__exports,__req){
|
|
16521
|
+
'use strict';
|
|
16522
|
+
Object.defineProperty(__exports,"DFQL_BASE",{enumerable:true,get:function(){return DFQL_BASE;}});
|
|
16523
|
+
Object.defineProperty(__exports,"dfqlAdapter",{enumerable:true,get:function(){return dfqlAdapter;}});
|
|
16524
|
+
const DFQL_BASE='https://rest.demandflow.com';
|
|
16525
|
+
async function readNdjson(response){
|
|
16526
|
+
const out=[];
|
|
16527
|
+
const take=(line)=>{
|
|
16528
|
+
const text=line.trim();
|
|
16529
|
+
if(!text)return;
|
|
16530
|
+
try{out.push(JSON.parse(text));}catch{}
|
|
16531
|
+
};
|
|
16532
|
+
if(!response.body||typeof response.body.getReader!=='function'){
|
|
16533
|
+
(await response.text()).split('\n').forEach(take);
|
|
16534
|
+
return out;
|
|
16535
|
+
}
|
|
16536
|
+
const reader=response.body.getReader();
|
|
16537
|
+
const decoder=new TextDecoder();
|
|
16538
|
+
let buffer='';
|
|
16539
|
+
for(;;){
|
|
16540
|
+
const{value,done}=await reader.read();
|
|
16541
|
+
if(done)break;
|
|
16542
|
+
buffer+=decoder.decode(value,{stream:true});
|
|
16543
|
+
const lines=buffer.split('\n');
|
|
16544
|
+
buffer=lines.pop()||'';
|
|
16545
|
+
lines.forEach(take);
|
|
16546
|
+
}
|
|
16547
|
+
take(buffer);
|
|
16548
|
+
return out;
|
|
16549
|
+
}
|
|
16550
|
+
function dfqlAdapter(options={}){
|
|
16551
|
+
const entity=String(options.entity||'');
|
|
16552
|
+
const base=String(options.url||DFQL_BASE).replace(/\/+$/,'');
|
|
16553
|
+
const call=options.fetch||(typeof fetch==='function'?fetch:null);
|
|
16554
|
+
const keyName=String(options.comboKey||'comboKey');
|
|
16555
|
+
const prefix=String(options.query||'SUB');
|
|
16556
|
+
const ceiling=Number.isFinite(Number(options.limit))?Number(options.limit):1000;
|
|
16557
|
+
return{
|
|
16558
|
+
name:'dfql',
|
|
16559
|
+
capabilities:{
|
|
16560
|
+
filter:'term',
|
|
16561
|
+
operators:['contains'],
|
|
16562
|
+
sort:false,
|
|
16563
|
+
quick:false,
|
|
16564
|
+
range:false,
|
|
16565
|
+
total:true,
|
|
16566
|
+
},
|
|
16567
|
+
linesFor(query){
|
|
16568
|
+
const line={entity,comboKey:keyName,query:prefix,limit:ceiling,tag:'rows'};
|
|
16569
|
+
if(options.load&&options.load.length)line.load=options.load.join(',');
|
|
16570
|
+
const condition=query&&query.filters;
|
|
16571
|
+
if(condition&&condition.col&&condition.value!==undefined&&condition.value!==null){
|
|
16572
|
+
line.filter={field:String(condition.col),term:String(condition.value)};
|
|
16573
|
+
}
|
|
16574
|
+
const counted={...line,countOnly:true,tag:'count'};
|
|
16575
|
+
delete counted.load;
|
|
16576
|
+
delete counted.limit;
|
|
16577
|
+
return[line,counted];
|
|
16578
|
+
},
|
|
16579
|
+
async execute(query,request){
|
|
16580
|
+
if(!call)throw new Error('dfqlAdapter needs a fetch implementation');
|
|
16581
|
+
if(!options.token)throw new Error('dfqlAdapter needs a personal access token');
|
|
16582
|
+
const response=await call(`${base}/v1/query`,{
|
|
16583
|
+
method:'POST',
|
|
16584
|
+
headers:{
|
|
16585
|
+
Authorization:`Bearer ${options.token}`,
|
|
16586
|
+
'Content-Type':'application/json',
|
|
16587
|
+
...(options.headers||{}),
|
|
16588
|
+
},
|
|
16589
|
+
body:JSON.stringify(this.linesFor(query)),
|
|
16590
|
+
signal:request&&request.signal,
|
|
16591
|
+
});
|
|
16592
|
+
if(!response.ok)throw new Error(`DemandFlow request failed: ${response.status}`);
|
|
16593
|
+
const lines=await readNdjson(response);
|
|
16594
|
+
const failed=lines.find((line)=>line&&line._type==='error');
|
|
16595
|
+
if(failed)throw new Error(`DemandFlow query failed: ${failed.message||'unknown error'}`);
|
|
16596
|
+
const rows=lines.filter((line)=>line&&!line._meta&&line._type===undefined);
|
|
16597
|
+
const counted=lines.find((line)=>line&&line._type==='count');
|
|
16598
|
+
return{rows,total:counted&&typeof counted.count==='number'?counted.count:rows.length};
|
|
16599
|
+
},
|
|
16600
|
+
};
|
|
16601
|
+
}
|
|
16602
|
+
});
|
|
16603
|
+
__def("packages/core/src/source/adapters/duckdb.js",function(__exports,__req){
|
|
16604
|
+
'use strict';
|
|
16605
|
+
Object.defineProperty(__exports,"filtersToSql",{enumerable:true,get:function(){return filtersToSql;}});
|
|
16606
|
+
Object.defineProperty(__exports,"duckdbAdapter",{enumerable:true,get:function(){return duckdbAdapter;}});
|
|
16607
|
+
const __m0=__req("packages/core/src/internal/util.js");
|
|
16608
|
+
const isFunction=__m0["isFunction"];
|
|
16609
|
+
const warnOnce=__m0["warnOnce"];
|
|
16610
|
+
const __m1=__req("packages/core/src/source/filterwire.js");
|
|
16611
|
+
const isGroup=__m1["isGroup"];
|
|
16612
|
+
const OPERATORS=Object.freeze([
|
|
16613
|
+
'eq','ne','gt','gte','lt','lte','contains','startsWith','endsWith',
|
|
16614
|
+
'blank','notBlank','in',
|
|
16615
|
+
]);
|
|
16616
|
+
const COMPARISON=Object.freeze({eq:'=',ne:'<>',gt:'>',gte:'>=',lt:'<',lte:'<='});
|
|
16617
|
+
const TOTAL='__lattice_total';
|
|
16618
|
+
function ident(name){
|
|
16619
|
+
const text=String(name);
|
|
16620
|
+
if(!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(text)){
|
|
16621
|
+
throw new Error(`duckdbAdapter: "${text}" is not a usable column name`);
|
|
16622
|
+
}
|
|
16623
|
+
return`"${text}"`;
|
|
16624
|
+
}
|
|
16625
|
+
function conditionSql(condition,params){
|
|
16626
|
+
const col=ident(condition.col);
|
|
16627
|
+
const op=String(condition.op);
|
|
16628
|
+
if(COMPARISON[op]){params.push(condition.value);return`${col} ${COMPARISON[op]} ?`;}
|
|
16629
|
+
if(op==='contains'){params.push(`%${condition.value}%`);return`${col} ILIKE ?`;}
|
|
16630
|
+
if(op==='startsWith'){params.push(`${condition.value}%`);return`${col} ILIKE ?`;}
|
|
16631
|
+
if(op==='endsWith'){params.push(`%${condition.value}`);return`${col} ILIKE ?`;}
|
|
16632
|
+
if(op==='blank')return`(${col} IS NULL OR ${col} = '')`;
|
|
16633
|
+
if(op==='notBlank')return`(${col} IS NOT NULL AND ${col} <> '')`;
|
|
16634
|
+
if(op==='in'){
|
|
16635
|
+
const list=Array.isArray(condition.value)?condition.value:[condition.value];
|
|
16636
|
+
if(!list.length)return'FALSE';
|
|
16637
|
+
list.forEach((value)=>params.push(value));
|
|
16638
|
+
return`${col} IN (${list.map(()=>'?').join(', ')})`;
|
|
16639
|
+
}
|
|
16640
|
+
return null;
|
|
16641
|
+
}
|
|
16642
|
+
function filtersToSql(filters,params){
|
|
16643
|
+
if(!filters)return'';
|
|
16644
|
+
if(!isGroup(filters))return conditionSql(filters,params)||'';
|
|
16645
|
+
const joiner=String(filters.op)==='or'?' OR ':' AND ';
|
|
16646
|
+
const parts=(filters.conditions||[])
|
|
16647
|
+
.map((node)=>filtersToSql(node,params))
|
|
16648
|
+
.filter(Boolean);
|
|
16649
|
+
if(!parts.length)return'';
|
|
16650
|
+
return parts.length===1?parts[0]:`(${parts.join(joiner)})`;
|
|
16651
|
+
}
|
|
16652
|
+
function normalise(value){
|
|
16653
|
+
if(typeof value!=='bigint')return value;
|
|
16654
|
+
return value<=BigInt(Number.MAX_SAFE_INTEGER)&&value>=BigInt(Number.MIN_SAFE_INTEGER)
|
|
16655
|
+
?Number(value)
|
|
16656
|
+
:String(value);
|
|
16657
|
+
}
|
|
16658
|
+
function duckdbAdapter(options={}){
|
|
16659
|
+
const connection=options.connection;
|
|
16660
|
+
const from=String(options.from||'');
|
|
16661
|
+
const projection=Array.isArray(options.fields)&&options.fields.length
|
|
16662
|
+
?options.fields.map(ident).join(', ')
|
|
16663
|
+
:'*';
|
|
16664
|
+
return{
|
|
16665
|
+
name:'duckdb',
|
|
16666
|
+
capabilities:{
|
|
16667
|
+
filter:'tree',
|
|
16668
|
+
operators:OPERATORS,
|
|
16669
|
+
sort:'multi',
|
|
16670
|
+
quick:false,
|
|
16671
|
+
range:true,
|
|
16672
|
+
total:true,
|
|
16673
|
+
},
|
|
16674
|
+
sqlFor(query){
|
|
16675
|
+
const params=[];
|
|
16676
|
+
const where=filtersToSql(query.filters,params);
|
|
16677
|
+
const order=(query.sort||[])
|
|
16678
|
+
.map((entry)=>`${ident(entry.col)} ${entry.dir==='desc'?'DESC':'ASC'}`)
|
|
16679
|
+
.join(', ');
|
|
16680
|
+
let sql=`SELECT ${projection}, count(*) OVER () AS ${ident(TOTAL)} FROM ${from}`;
|
|
16681
|
+
if(where)sql+=` WHERE ${where}`;
|
|
16682
|
+
if(order)sql+=` ORDER BY ${order}`;
|
|
16683
|
+
if(query.range){
|
|
16684
|
+
sql+=` LIMIT ${Number(query.range.end)-Number(query.range.start)}`;
|
|
16685
|
+
sql+=` OFFSET ${Number(query.range.start)}`;
|
|
16686
|
+
}
|
|
16687
|
+
return{sql,params};
|
|
16688
|
+
},
|
|
16689
|
+
async execute(query){
|
|
16690
|
+
if(!connection||!isFunction(connection.query)){
|
|
16691
|
+
throw new Error('duckdbAdapter needs a connection with a query function');
|
|
16692
|
+
}
|
|
16693
|
+
const{sql,params}=this.sqlFor(query);
|
|
16694
|
+
let result;
|
|
16695
|
+
if(params.length&&isFunction(connection.prepare)){
|
|
16696
|
+
const statement=await connection.prepare(sql);
|
|
16697
|
+
try{
|
|
16698
|
+
result=await statement.query(...params);
|
|
16699
|
+
}finally{
|
|
16700
|
+
if(isFunction(statement.close))await statement.close();
|
|
16701
|
+
}
|
|
16702
|
+
}else{
|
|
16703
|
+
if(params.length){
|
|
16704
|
+
warnOnce('source.duckdb.unprepared',
|
|
16705
|
+
'this DuckDB connection has no prepare(), so filter values cannot be bound. Filters '
|
|
16706
|
+
+'are not sent rather than being interpolated into SQL.');
|
|
16707
|
+
return{rows:[],total:0};
|
|
16708
|
+
}
|
|
16709
|
+
result=await connection.query(sql);
|
|
16710
|
+
}
|
|
16711
|
+
const raw=isFunction(result.toArray)?result.toArray():Array.from(result||[]);
|
|
16712
|
+
let total=null;
|
|
16713
|
+
const rows=raw.map((row)=>{
|
|
16714
|
+
const plain=isFunction(row.toJSON)?row.toJSON():{...row};
|
|
16715
|
+
if(total===null&&plain[TOTAL]!==undefined)total=Number(normalise(plain[TOTAL]));
|
|
16716
|
+
delete plain[TOTAL];
|
|
16717
|
+
for(const key of Object.keys(plain))plain[key]=normalise(plain[key]);
|
|
16718
|
+
return plain;
|
|
16719
|
+
});
|
|
16720
|
+
return{rows,total:total===null?rows.length:total};
|
|
16721
|
+
},
|
|
16722
|
+
};
|
|
16723
|
+
}
|
|
16724
|
+
});
|
|
16154
16725
|
__def("packages/core/src/source/index.js",function(__exports,__req){
|
|
16155
16726
|
'use strict';
|
|
16156
16727
|
Object.defineProperty(__exports,"createMemorySource",{enumerable:true,get:function(){return createMemorySource;}});
|
|
@@ -16194,51 +16765,70 @@ const createDerivedSource=__m5["createDerivedSource"];
|
|
|
16194
16765
|
const DerivedSource=__m5["DerivedSource"];
|
|
16195
16766
|
const IDLE_REFRESH_MS=__m5["IDLE_REFRESH_MS"];
|
|
16196
16767
|
const PROFILE_FIELDS=__m5["PROFILE_FIELDS"];
|
|
16197
|
-
const __m6=__req("packages/core/src/source/
|
|
16198
|
-
Object.defineProperty(__exports,"
|
|
16199
|
-
Object.defineProperty(__exports,"
|
|
16200
|
-
Object.defineProperty(__exports,"
|
|
16201
|
-
Object.defineProperty(__exports,"
|
|
16202
|
-
Object.defineProperty(__exports,"
|
|
16203
|
-
Object.defineProperty(__exports,"
|
|
16204
|
-
|
|
16205
|
-
Object.defineProperty(__exports,"
|
|
16206
|
-
Object.defineProperty(__exports,"
|
|
16207
|
-
Object.defineProperty(__exports,"
|
|
16208
|
-
const
|
|
16209
|
-
Object.defineProperty(__exports,"
|
|
16210
|
-
Object.defineProperty(__exports,"
|
|
16211
|
-
|
|
16212
|
-
Object.defineProperty(__exports,"
|
|
16213
|
-
|
|
16214
|
-
|
|
16215
|
-
Object.defineProperty(__exports,"
|
|
16216
|
-
|
|
16217
|
-
Object.defineProperty(__exports,"
|
|
16218
|
-
Object.defineProperty(__exports,"
|
|
16219
|
-
Object.defineProperty(__exports,"
|
|
16220
|
-
Object.defineProperty(__exports,"
|
|
16221
|
-
Object.defineProperty(__exports,"
|
|
16222
|
-
Object.defineProperty(__exports,"
|
|
16223
|
-
Object.defineProperty(__exports,"
|
|
16224
|
-
Object.defineProperty(__exports,"
|
|
16225
|
-
Object.defineProperty(__exports,"
|
|
16226
|
-
Object.defineProperty(__exports,"
|
|
16227
|
-
const
|
|
16228
|
-
Object.defineProperty(__exports,"
|
|
16229
|
-
Object.defineProperty(__exports,"
|
|
16230
|
-
Object.defineProperty(__exports,"
|
|
16231
|
-
|
|
16232
|
-
Object.defineProperty(__exports,"
|
|
16233
|
-
const
|
|
16234
|
-
Object.defineProperty(__exports,"
|
|
16235
|
-
Object.defineProperty(__exports,"
|
|
16236
|
-
Object.defineProperty(__exports,"
|
|
16237
|
-
Object.defineProperty(__exports,"
|
|
16238
|
-
Object.defineProperty(__exports,"
|
|
16239
|
-
|
|
16240
|
-
Object.defineProperty(__exports,"
|
|
16241
|
-
Object.defineProperty(__exports,"
|
|
16768
|
+
const __m6=__req("packages/core/src/source/pushdown.js");
|
|
16769
|
+
Object.defineProperty(__exports,"createPushdownSource",{enumerable:true,get:function(){return __m6["createPushdownSource"];}});
|
|
16770
|
+
Object.defineProperty(__exports,"planQuery",{enumerable:true,get:function(){return __m6["planQuery"];}});
|
|
16771
|
+
Object.defineProperty(__exports,"splitFilters",{enumerable:true,get:function(){return __m6["splitFilters"];}});
|
|
16772
|
+
Object.defineProperty(__exports,"applyResidual",{enumerable:true,get:function(){return __m6["applyResidual"];}});
|
|
16773
|
+
Object.defineProperty(__exports,"capabilitiesOf",{enumerable:true,get:function(){return __m6["capabilitiesOf"];}});
|
|
16774
|
+
Object.defineProperty(__exports,"NO_CAPABILITIES",{enumerable:true,get:function(){return __m6["NO_CAPABILITIES"];}});
|
|
16775
|
+
const __m7=__req("packages/core/src/source/adapters/odata.js");
|
|
16776
|
+
Object.defineProperty(__exports,"odataAdapter",{enumerable:true,get:function(){return __m7["odataAdapter"];}});
|
|
16777
|
+
Object.defineProperty(__exports,"filtersToOData",{enumerable:true,get:function(){return __m7["filtersToOData"];}});
|
|
16778
|
+
Object.defineProperty(__exports,"conditionToOData",{enumerable:true,get:function(){return __m7["conditionToOData"];}});
|
|
16779
|
+
const __m8=__req("packages/core/src/source/adapters/rest.js");
|
|
16780
|
+
Object.defineProperty(__exports,"restAdapter",{enumerable:true,get:function(){return __m8["restAdapter"];}});
|
|
16781
|
+
Object.defineProperty(__exports,"DEFAULT_PARAMS",{enumerable:true,get:function(){return __m8["DEFAULT_PARAMS"];}});
|
|
16782
|
+
const __m9=__req("packages/core/src/source/adapters/dfql.js");
|
|
16783
|
+
Object.defineProperty(__exports,"dfqlAdapter",{enumerable:true,get:function(){return __m9["dfqlAdapter"];}});
|
|
16784
|
+
const __m10=__req("packages/core/src/source/adapters/duckdb.js");
|
|
16785
|
+
Object.defineProperty(__exports,"duckdbAdapter",{enumerable:true,get:function(){return __m10["duckdbAdapter"];}});
|
|
16786
|
+
Object.defineProperty(__exports,"filtersToSql",{enumerable:true,get:function(){return __m10["filtersToSql"];}});
|
|
16787
|
+
const __m11=__req("packages/core/src/source/derive.js");
|
|
16788
|
+
Object.defineProperty(__exports,"derive",{enumerable:true,get:function(){return __m11["derive"];}});
|
|
16789
|
+
Object.defineProperty(__exports,"unnest",{enumerable:true,get:function(){return __m11["unnest"];}});
|
|
16790
|
+
Object.defineProperty(__exports,"readPath",{enumerable:true,get:function(){return __m11["readPath"];}});
|
|
16791
|
+
Object.defineProperty(__exports,"bucketOf",{enumerable:true,get:function(){return __m11["bucketOf"];}});
|
|
16792
|
+
Object.defineProperty(__exports,"applyLimit",{enumerable:true,get:function(){return __m11["applyLimit"];}});
|
|
16793
|
+
Object.defineProperty(__exports,"applyCumulative",{enumerable:true,get:function(){return __m11["applyCumulative"];}});
|
|
16794
|
+
Object.defineProperty(__exports,"reduceValues",{enumerable:true,get:function(){return __m11["reduceValues"];}});
|
|
16795
|
+
Object.defineProperty(__exports,"FOLLOW_MODES",{enumerable:true,get:function(){return __m11["FOLLOW_MODES"];}});
|
|
16796
|
+
Object.defineProperty(__exports,"BUCKETS",{enumerable:true,get:function(){return __m11["BUCKETS"];}});
|
|
16797
|
+
Object.defineProperty(__exports,"DERIVED_ROW_KEY",{enumerable:true,get:function(){return __m11["DERIVED_ROW_KEY"];}});
|
|
16798
|
+
const __m12=__req("packages/core/src/source/abort.js");
|
|
16799
|
+
Object.defineProperty(__exports,"AbortScope",{enumerable:true,get:function(){return __m12["AbortScope"];}});
|
|
16800
|
+
Object.defineProperty(__exports,"RequestToken",{enumerable:true,get:function(){return __m12["RequestToken"];}});
|
|
16801
|
+
Object.defineProperty(__exports,"SupersededError",{enumerable:true,get:function(){return __m12["SupersededError"];}});
|
|
16802
|
+
Object.defineProperty(__exports,"createAbortScope",{enumerable:true,get:function(){return __m12["createAbortScope"];}});
|
|
16803
|
+
Object.defineProperty(__exports,"isAbortError",{enumerable:true,get:function(){return __m12["isAbortError"];}});
|
|
16804
|
+
const __m13=__req("packages/core/src/source/filterwire.js");
|
|
16805
|
+
Object.defineProperty(__exports,"RELATIVE_TOKENS",{enumerable:true,get:function(){return __m13["RELATIVE_TOKENS"];}});
|
|
16806
|
+
Object.defineProperty(__exports,"parseRelativeToken",{enumerable:true,get:function(){return __m13["parseRelativeToken"];}});
|
|
16807
|
+
Object.defineProperty(__exports,"resolveRelativeRange",{enumerable:true,get:function(){return __m13["resolveRelativeRange"];}});
|
|
16808
|
+
Object.defineProperty(__exports,"resolveRelativeCondition",{enumerable:true,get:function(){return __m13["resolveRelativeCondition"];}});
|
|
16809
|
+
Object.defineProperty(__exports,"relativeTokenOf",{enumerable:true,get:function(){return __m13["relativeTokenOf"];}});
|
|
16810
|
+
Object.defineProperty(__exports,"buildFilterSet",{enumerable:true,get:function(){return __m13["buildFilterSet"];}});
|
|
16811
|
+
Object.defineProperty(__exports,"normaliseFilterSet",{enumerable:true,get:function(){return __m13["normaliseFilterSet"];}});
|
|
16812
|
+
Object.defineProperty(__exports,"wireFilters",{enumerable:true,get:function(){return __m13["wireFilters"];}});
|
|
16813
|
+
Object.defineProperty(__exports,"querySignature",{enumerable:true,get:function(){return __m13["querySignature"];}});
|
|
16814
|
+
Object.defineProperty(__exports,"mapConditions",{enumerable:true,get:function(){return __m13["mapConditions"];}});
|
|
16815
|
+
Object.defineProperty(__exports,"forEachCondition",{enumerable:true,get:function(){return __m13["forEachCondition"];}});
|
|
16816
|
+
Object.defineProperty(__exports,"isGroup",{enumerable:true,get:function(){return __m13["isGroup"];}});
|
|
16817
|
+
const __m14=__req("packages/core/src/source/blockcache.js");
|
|
16818
|
+
Object.defineProperty(__exports,"BlockCache",{enumerable:true,get:function(){return __m14["BlockCache"];}});
|
|
16819
|
+
Object.defineProperty(__exports,"DEFAULT_PAGE_SIZE",{enumerable:true,get:function(){return __m14["DEFAULT_PAGE_SIZE"];}});
|
|
16820
|
+
Object.defineProperty(__exports,"DEFAULT_MAX_CACHED_PAGES",{enumerable:true,get:function(){return __m14["DEFAULT_MAX_CACHED_PAGES"];}});
|
|
16821
|
+
const __m15=__req("packages/core/src/source/gapbuffer.js");
|
|
16822
|
+
Object.defineProperty(__exports,"GapBuffer",{enumerable:true,get:function(){return __m15["GapBuffer"];}});
|
|
16823
|
+
const __m16=__req("packages/core/src/source/rows.js");
|
|
16824
|
+
Object.defineProperty(__exports,"RowFactory",{enumerable:true,get:function(){return __m16["RowFactory"];}});
|
|
16825
|
+
Object.defineProperty(__exports,"createRowFactory",{enumerable:true,get:function(){return __m16["createRowFactory"];}});
|
|
16826
|
+
Object.defineProperty(__exports,"groupKey",{enumerable:true,get:function(){return __m16["groupKey"];}});
|
|
16827
|
+
Object.defineProperty(__exports,"lazyRowView",{enumerable:true,get:function(){return __m16["lazyRowView"];}});
|
|
16828
|
+
Object.defineProperty(__exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return __m16["DEFAULT_ROW_HEIGHT"];}});
|
|
16829
|
+
const __m17=__req("packages/core/src/source/handles.js");
|
|
16830
|
+
Object.defineProperty(__exports,"HandleProvider",{enumerable:true,get:function(){return __m17["HandleProvider"];}});
|
|
16831
|
+
Object.defineProperty(__exports,"createHandleProvider",{enumerable:true,get:function(){return __m17["createHandleProvider"];}});
|
|
16242
16832
|
const MODES=Object.freeze(['memory','paged','remote','stream','derived']);
|
|
16243
16833
|
function createSource(config,ctx){
|
|
16244
16834
|
if(!ctx)fail('createSource requires a SourceContext');
|
|
@@ -39394,6 +39984,20 @@ Object.defineProperty(__exports,"createRemoteSource",{enumerable:true,get:functi
|
|
|
39394
39984
|
Object.defineProperty(__exports,"createStreamSource",{enumerable:true,get:function(){return __m10["createStreamSource"];}});
|
|
39395
39985
|
Object.defineProperty(__exports,"PROTOCOL",{enumerable:true,get:function(){return __m10["PROTOCOL"];}});
|
|
39396
39986
|
Object.defineProperty(__exports,"MODES",{enumerable:true,get:function(){return __m10["MODES"];}});
|
|
39987
|
+
Object.defineProperty(__exports,"createPushdownSource",{enumerable:true,get:function(){return __m10["createPushdownSource"];}});
|
|
39988
|
+
Object.defineProperty(__exports,"planQuery",{enumerable:true,get:function(){return __m10["planQuery"];}});
|
|
39989
|
+
Object.defineProperty(__exports,"splitFilters",{enumerable:true,get:function(){return __m10["splitFilters"];}});
|
|
39990
|
+
Object.defineProperty(__exports,"applyResidual",{enumerable:true,get:function(){return __m10["applyResidual"];}});
|
|
39991
|
+
Object.defineProperty(__exports,"capabilitiesOf",{enumerable:true,get:function(){return __m10["capabilitiesOf"];}});
|
|
39992
|
+
Object.defineProperty(__exports,"NO_CAPABILITIES",{enumerable:true,get:function(){return __m10["NO_CAPABILITIES"];}});
|
|
39993
|
+
Object.defineProperty(__exports,"odataAdapter",{enumerable:true,get:function(){return __m10["odataAdapter"];}});
|
|
39994
|
+
Object.defineProperty(__exports,"filtersToOData",{enumerable:true,get:function(){return __m10["filtersToOData"];}});
|
|
39995
|
+
Object.defineProperty(__exports,"conditionToOData",{enumerable:true,get:function(){return __m10["conditionToOData"];}});
|
|
39996
|
+
Object.defineProperty(__exports,"restAdapter",{enumerable:true,get:function(){return __m10["restAdapter"];}});
|
|
39997
|
+
Object.defineProperty(__exports,"DEFAULT_PARAMS",{enumerable:true,get:function(){return __m10["DEFAULT_PARAMS"];}});
|
|
39998
|
+
Object.defineProperty(__exports,"dfqlAdapter",{enumerable:true,get:function(){return __m10["dfqlAdapter"];}});
|
|
39999
|
+
Object.defineProperty(__exports,"duckdbAdapter",{enumerable:true,get:function(){return __m10["duckdbAdapter"];}});
|
|
40000
|
+
Object.defineProperty(__exports,"filtersToSql",{enumerable:true,get:function(){return __m10["filtersToSql"];}});
|
|
39397
40001
|
const __m11=__req("packages/core/src/model/index.js");
|
|
39398
40002
|
Object.defineProperty(__exports,"RowModel",{enumerable:true,get:function(){return __m11["RowModel"];}});
|
|
39399
40003
|
Object.defineProperty(__exports,"createRowKey",{enumerable:true,get:function(){return __m11["createRowKey"];}});
|
|
@@ -64645,12 +65249,29 @@ Object.defineProperty(__exports,"referencesOf",{enumerable:true,get:function(){r
|
|
|
64645
65249
|
Object.defineProperty(__exports,"looksLikeFormula",{enumerable:true,get:function(){return __m4["looksLikeFormula"];}});
|
|
64646
65250
|
Object.defineProperty(__exports,"FormulaError",{enumerable:true,get:function(){return __m4["FormulaError"];}});
|
|
64647
65251
|
Object.defineProperty(__exports,"FUNCTIONS",{enumerable:true,get:function(){return __m4["FUNCTIONS"];}});
|
|
65252
|
+
Object.defineProperty(__exports,"compileRules",{enumerable:true,get:function(){return __m4["compileRules"];}});
|
|
65253
|
+
Object.defineProperty(__exports,"ingest",{enumerable:true,get:function(){return __m4["ingest"];}});
|
|
65254
|
+
Object.defineProperty(__exports,"ingestSync",{enumerable:true,get:function(){return __m4["ingestSync"];}});
|
|
64648
65255
|
Object.defineProperty(__exports,"createSource",{enumerable:true,get:function(){return __m4["createSource"];}});
|
|
64649
65256
|
Object.defineProperty(__exports,"createMemorySource",{enumerable:true,get:function(){return __m4["createMemorySource"];}});
|
|
64650
65257
|
Object.defineProperty(__exports,"createPagedSource",{enumerable:true,get:function(){return __m4["createPagedSource"];}});
|
|
64651
65258
|
Object.defineProperty(__exports,"createRemoteSource",{enumerable:true,get:function(){return __m4["createRemoteSource"];}});
|
|
64652
65259
|
Object.defineProperty(__exports,"createStreamSource",{enumerable:true,get:function(){return __m4["createStreamSource"];}});
|
|
64653
65260
|
Object.defineProperty(__exports,"PROTOCOL",{enumerable:true,get:function(){return __m4["PROTOCOL"];}});
|
|
65261
|
+
Object.defineProperty(__exports,"createPushdownSource",{enumerable:true,get:function(){return __m4["createPushdownSource"];}});
|
|
65262
|
+
Object.defineProperty(__exports,"planQuery",{enumerable:true,get:function(){return __m4["planQuery"];}});
|
|
65263
|
+
Object.defineProperty(__exports,"splitFilters",{enumerable:true,get:function(){return __m4["splitFilters"];}});
|
|
65264
|
+
Object.defineProperty(__exports,"applyResidual",{enumerable:true,get:function(){return __m4["applyResidual"];}});
|
|
65265
|
+
Object.defineProperty(__exports,"capabilitiesOf",{enumerable:true,get:function(){return __m4["capabilitiesOf"];}});
|
|
65266
|
+
Object.defineProperty(__exports,"NO_CAPABILITIES",{enumerable:true,get:function(){return __m4["NO_CAPABILITIES"];}});
|
|
65267
|
+
Object.defineProperty(__exports,"odataAdapter",{enumerable:true,get:function(){return __m4["odataAdapter"];}});
|
|
65268
|
+
Object.defineProperty(__exports,"filtersToOData",{enumerable:true,get:function(){return __m4["filtersToOData"];}});
|
|
65269
|
+
Object.defineProperty(__exports,"conditionToOData",{enumerable:true,get:function(){return __m4["conditionToOData"];}});
|
|
65270
|
+
Object.defineProperty(__exports,"restAdapter",{enumerable:true,get:function(){return __m4["restAdapter"];}});
|
|
65271
|
+
Object.defineProperty(__exports,"DEFAULT_PARAMS",{enumerable:true,get:function(){return __m4["DEFAULT_PARAMS"];}});
|
|
65272
|
+
Object.defineProperty(__exports,"dfqlAdapter",{enumerable:true,get:function(){return __m4["dfqlAdapter"];}});
|
|
65273
|
+
Object.defineProperty(__exports,"duckdbAdapter",{enumerable:true,get:function(){return __m4["duckdbAdapter"];}});
|
|
65274
|
+
Object.defineProperty(__exports,"filtersToSql",{enumerable:true,get:function(){return __m4["filtersToSql"];}});
|
|
64654
65275
|
Object.defineProperty(__exports,"RowModel",{enumerable:true,get:function(){return __m4["RowModel"];}});
|
|
64655
65276
|
Object.defineProperty(__exports,"createRowKey",{enumerable:true,get:function(){return __m4["createRowKey"];}});
|
|
64656
65277
|
Object.defineProperty(__exports,"SelectionModel",{enumerable:true,get:function(){return __m4["SelectionModel"];}});
|