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