@platforma-sdk/model 1.27.10 → 1.27.17
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/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +145 -132
- package/dist/index.mjs.map +1 -1
- package/dist/render/api.d.ts +7 -2
- package/dist/render/api.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/render/api.ts +30 -17
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var ke=Object.defineProperty;var je=(t,e,n)=>e in t?ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var L=(t,e,n)=>je(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@milaboratories/pl-model-common"),k=require("zod"),le=require("@milaboratories/pl-error-like");class de extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0].message),this.errors=e,this.moreErrors=n}}function fe(t){if(!t.ok)throw new de(t.errors,t.moreErrors);return t.value}function Ve(t){return new Proxy(t,{get(e,n){return fe(e[n])}})}function v(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null?$(t):t}function N(t){return{type:"GetFromCtx",variable:t}}function Ne(t){return{type:"Isolate",cfg:t}}const Ke=N("$args"),Be=N("$it"),Ue=N("$prod"),Je=N("$staging"),Me=N("$ui");function $(t){return{type:"Immediate",value:t}}function ae(t){const e={};for(const[n,r]of Object.entries(t))e[n]=v(r);return{type:"MakeObject",template:e}}function $e(...t){const e=[];for(const n of t)e.push(v(n));return{type:"MakeArray",template:e}}function W(t,e){return{type:"GetJsonField",source:v(t),field:v(e)}}function Ge(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function We(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function He(t){return{type:"Flatten",source:t}}function ze(t){return{type:"IsEmpty",arg:t}}function qe(t){return{type:"Not",operand:t}}function Ye(t,e){return{type:"And",operand1:t,operand2:e}}function Xe(t,e){return{type:"Or",operand1:t,operand2:e}}function Qe(t,e){return{type:"GetResourceField",source:v(t),field:v(e)}}function Ze(){return function(t){return{type:"GetResourceValueAsJson",source:v(t)}}}function et(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function tt(t){return{type:"GetBlobContent",source:v(t)}}function nt(t){return{type:"GetBlobContentAsString",source:v(t)}}function rt(){return function(t){return{type:"GetBlobContentAsJson",source:v(t)}}}function st(t){return{type:"GetDownloadedBlobContent",source:v(t)}}function it(t){return{type:"GetOnDemandBlobContent",source:v(t)}}function ot(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:v(t)}}function at(t){return{type:"GetImportProgress",source:v(t)}}function lt(t,e){return{type:"GetLastLogs",source:v(t),lines:e}}function ut(t,e){return{type:"GetProgressLog",source:v(t),patternToSearch:e}}function ct(t,e){return{type:"GetProgressLogWithInfo",source:v(t),patternToSearch:e}}function pt(t){return{type:"GetLogHandle",source:v(t)}}function dt(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function he(t){if(t&&typeof globalThis.getPlatforma=="function")return globalThis.getPlatforma(t);if(typeof globalThis.platforma<"u")return globalThis.platforma;throw new Error("Can't get platforma instance.")}function ft(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx}function g(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx;throw new Error("Not in config rendering context")}function X(t,e){const n=ft();if(n===void 0)return!1;if(t in n.callbackRegistry)throw new Error(`Callback with key ${t} already registered.`);return n.callbackRegistry[t]=e,!0}const te=new Map;function ht(t,e){t in g().callbackRegistry||(g().callbackRegistry[t]=n=>{for(const r of te.get(t))r(n)},te.set(t,[])),te.get(t).push(e)}class I{constructor(e,n=r=>r){L(this,"isResolved",!1);L(this,"resolvedValue");this.handle=e,this.postProcess=n,ht(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new I(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new I(this.handle,n=>{const r=this.postProcess(n);return r?e(r):void 0})}toJSON(){return this.isResolved?this.resolvedValue:{__awaited_futures__:[this.handle]}}}function Z(t,e){return t===void 0?void 0:e(t)}class _{constructor(e,n){this.handle=e,this.resolvePath=n}resolve(...e){const n=e.map(r=>({assertFieldType:"Input",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveOutput(...e){const n=e.map(r=>({assertFieldType:"Output",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveInput(...e){const n=e.map(r=>({assertFieldType:"Input",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveAny(...e){return this.resolveWithCommon({},...e)}resolveWithCommon(e,...n){const r=[...this.resolvePath,...n.map(i=>typeof i=="string"?i:i.field)];return Z(g().resolveWithCommon(this.handle,e,...n),i=>new _(i,r))}get resourceType(){return g().getResourceType(this.handle)}getInputsLocked(){return g().getInputsLocked(this.handle)}getOutputsLocked(){return g().getOutputsLocked(this.handle)}getIsReadyOrError(){return g().getIsReadyOrError(this.handle)}getIsFinal(){return g().getIsFinal(this.handle)}getError(){const e=[...this.resolvePath,"error"];return Z(g().getError(this.handle),n=>new _(n,e))}listInputFields(){return g().listInputFields(this.handle)}listOutputFields(){return g().listOutputFields(this.handle)}listDynamicFields(){return g().listDynamicFields(this.handle)}getKeyValueBase64(e){return g().getKeyValueBase64(this.handle,e)}getKeyValueAsString(e){return g().getKeyValueAsString(this.handle,e)}getKeyValueAsJson(e){const n=this.getKeyValueAsString(e);if(n==null)throw new Error("Resource has no content.");return JSON.parse(n)}getDataBase64(){return g().getDataBase64(this.handle)}getDataAsString(){return g().getDataAsString(this.handle)}getDataAsJson(){const e=this.getDataAsString();if(e==null)throw new Error("Resource has no content.");return JSON.parse(e)}getPColumns(e=!1,n=""){const r=this.parsePObjectCollection(e,n);return r===void 0?void 0:Object.entries(r).map(([,s])=>{if(!p.isPColumn(s))throw new Error(`not a PColumn (kind = ${s.spec.kind})`);return s})}parsePObjectCollection(e=!1,n=""){const r=g().parsePObjectCollection(this.handle,e,n,...this.resolvePath);if(r===void 0)return;const i={};for(const[s,o]of Object.entries(r)){const a=[...this.resolvePath,s];i[s]=p.mapPObjectData(o,c=>new _(c,a))}return i}getFileContentAsBase64(){return new I(g().getBlobContentAsBase64(this.handle))}getFileContentAsString(){return new I(g().getBlobContentAsString(this.handle))}getFileContentAsJson(){return new I(g().getBlobContentAsString(this.handle)).mapDefined(e=>JSON.parse(e))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new I(g().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new I(g().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new I(g().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new I(g().getImportProgress(this.handle))}getLastLogs(e){return new I(g().getLastLogs(this.handle,e))}getProgressLog(e){return new I(g().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new I(g().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new I(g().getLogHandle(this.handle))}allFieldsResolved(e="Input"){switch(e){case"Input":return this.getInputsLocked()&&this.listInputFields().every(n=>this.resolve({field:n,assertFieldType:"Input"})!==void 0);case"Output":return this.getOutputsLocked()&&this.listOutputFields().every(n=>this.resolve({field:n,assertFieldType:"Output"})!==void 0)}}mapFields(e,n){const{fieldType:r,requireLocked:i,skipUnresolved:s}={fieldType:"Input",requireLocked:!0,skipUnresolved:!1,...n},o=e;if(i&&(r==="Input"&&!this.getInputsLocked()||r==="Output"&&!this.getOutputsLocked()))return;let c=(r==="Input"?this.listInputFields():r==="Output"?this.listOutputFields():this.listDynamicFields()).map(l=>[l,this.resolve({field:l,assertFieldType:r})]);return s&&(c=c.filter(l=>l[1]!==void 0)),c.map(([l,y])=>o(l,y))}}const ge="staging",me="main",gt={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0};function ye(t){return typeof t=="object"&&t!==null&&"__awaited_futures__"in t}function re(t,e,n){if(e.has(n))return;if(e.add(n),typeof n==="object")if(ye(n))n.__awaited_futures__.forEach(i=>t.add(i));else if(Array.isArray(n))for(const i of n)re(t,e,i);else for(const[,i]of Object.entries(n))i!==n&&re(t,e,i)}function mt(t){const e=new Set;return re(e,new Set,t),e}const yt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:gt,MainAccessorName:me,StagingAccessorName:ge,getAllFutureAwaits:mt,isFutureAwait:ye},Symbol.toStringTag,{value:"Module"})),be="pl7.app/label",ve="pl7.app/trace",Ae=k.z.object({type:k.z.string(),importance:k.z.number().optional(),id:k.z.string().optional(),label:k.z.string()}),Pe=k.z.array(Ae),bt=.001,vt="__LABEL__",ue="__LABEL__@1";function se(t,e,n={}){const r=new Map,i=new Map,s=t.map(h=>{var O,F;const d=e(h);let f,b,m;"spec"in d&&typeof d.spec=="object"?(f=d.spec,b=d.prefixTrace,m=d.suffixTrace):f=d;const A=(O=f.annotations)==null?void 0:O[be],P=(F=f.annotations)==null?void 0:F[ve],w=(P?Pe.safeParse(JSON.parse(P)).data:void 0)??[],T=[...b??[],...w,...m??[]];if(A){const x={label:A,type:vt,importance:-2};n.addLabelAsSuffix?T.push(x):T.splice(0,0,x)}const C=[],R=new Map;for(let x=T.length-1;x>=0;--x){const{type:K}=T[x],B=T[x].importance??0,U=(R.get(K)??0)+1;R.set(K,U);const J=`${K}@${U}`;i.set(J,(i.get(J)??0)+1),r.set(J,Math.max(r.get(J)??Number.NEGATIVE_INFINITY,B-(T.length-x)*bt)),C.push({...T[x],fullType:J,occurenceIndex:U})}return C.reverse(),{value:h,spec:f,label:A,fullTrace:C}}),o=[],a=[],c=[...r];c.sort(([,h],[,d])=>d-h);for(const[h]of c)h.endsWith("@1")||i.get(h)===t.length?o.push(h):a.push(h);const l=h=>s.map(d=>{const f=d.fullTrace.filter(m=>h.has(m.fullType)).map(m=>m.label),b=n.separator??" / ";return{label:f.join(b),value:d.value}});if(o.length===0){if(a.length!==0)throw new Error("Assertion error.");return l(new Set(ue))}let y=0,u=0;for(;y<o.length;){const h=new Set;n.includeNativeLabel&&h.add(ue);for(let f=0;f<y;++f)h.add(o[f]);h.add(o[u]);const d=l(h);if(new Set(d.map(f=>f.label)).size===t.length)return d;u++,u==o.length&&(y++,u=y)}return l(new Set([...o,...a]))}const Y="PColumnData/",H=Y+"ResourceMap",z=Y+"Partitioned/ResourceMap",j=Y+"JsonPartitioned",D=Y+"BinaryPartitioned",we=Y+"Partitioned/",q=we+"JsonPartitioned",V=we+"BinaryPartitioned";function Ie(t,e,n,r=[],i){if(t===void 0)return!1;switch(t.resourceType.name){case H:{let s=t.getInputsLocked();for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"}),c=[...r,...JSON.parse(o)],l=a===void 0?void 0:e(a);l===void 0&&(s=!1),(l!==void 0||i)&&n.push({key:c,value:l})}return s}case z:{let s=t.getInputsLocked();for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)s=!1;else{const c=[...r,...JSON.parse(o)],l=Ie(a,e,n,c,i);s=s&&l}}return s}default:throw new Error(`Unknown resource type: ${t.resourceType.name}`)}}function At(t,e,n=!1){const r=[];return{isComplete:Ie(t,e,r,[],n),data:r}}const ie=t=>{if(t.endsWith(".index"))return{baseKey:t.substring(0,t.length-6),type:"index"};if(t.endsWith(".values"))return{baseKey:t.substring(0,t.length-7),type:"values"};throw new Error(`key must ends on .index/.values for binary p-column, got: ${t}`)};function xe(t){if(!t)return;const e=t.resourceType.name,n=t.getDataAsJson(),r=[];let i=0;switch(e){case H:i=n.keyLength;break;case z:i=n.partitionKeyLength+n.keyLength;break;case j:case D:i=n.partitionKeyLength;break;case V:case q:i=n.superPartitionKeyLength+n.partitionKeyLength;break}switch(e){case H:case j:case D:for(let s of t.listInputFields()){e===D&&(s=ie(s).baseKey);const o=[...JSON.parse(s)];r.push(o)}break;case z:case V:case q:for(const s of t.listInputFields()){const o=[...JSON.parse(s)],a=t.resolve({field:s,assertFieldType:"Input"});if(a!==void 0)for(let c of a.listInputFields()){e===V&&(c=ie(c).baseKey);const l=[...o,...JSON.parse(c)];r.push(l)}}break}return{data:r,keyLength:i}}function Se(t){const e=xe(t);if(!e)return;const{data:n,keyLength:r}=e,i=[];for(let s=0;s<r;++s)i.push(new Set);for(const s of n){if(s.length!==r)throw new Error("key length does not match partition length");for(let o=0;o<r;++o)i[o].add(s[o])}return i.map(s=>Array.from(s.values()))}function ee(t,e=[]){if(t===void 0)return;const n=t.resourceType.name,r=t.getDataAsJson();if(e.length>0&&(n===q||n===V))throw new Error(`Unexpected nested super-partitioned resource: ${n}`);switch(n){case H:case z:throw new Error(`Only data columns are supported, got: ${n}`);case j:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[];for(const s of t.listInputFields()){const o=t.resolve({field:s,assertFieldType:"Input"});if(o===void 0)return;const a=[...e,...JSON.parse(s)];i.push({key:a,value:o})}return{type:"JsonPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case D:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[],s=new Map;for(const o of t.listInputFields()){const a=ie(o),c=t.resolve({field:o,assertFieldType:"Input"});if(c===void 0)return;let l=s.get(a.baseKey);l||(l={},s.set(a.baseKey,l)),a.type==="index"?l.index=c:l.values=c}for(const[o,a]of s.entries()){if(!a.index||!a.values)return;const c=[...e,...JSON.parse(o)];i.push({key:c,value:{index:a.index,values:a.values}})}return{type:"BinaryPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case q:{if(typeof(r==null?void 0:r.superPartitionKeyLength)!="number"||typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n}`);const i=r.superPartitionKeyLength+r.partitionKeyLength,s=[];for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==j)throw new Error(`Expected ${j} inside ${n}, but got ${a.resourceType.name}`);const c=ee(a,JSON.parse(o));if(c===void 0)return;if(c.type!=="JsonPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${c.type}`);s.push(...c.parts)}return{type:"JsonPartitioned",partitionKeyLength:i,parts:s}}case V:{if(typeof(r==null?void 0:r.superPartitionKeyLength)!="number"||typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n}`);const i=r.superPartitionKeyLength+r.partitionKeyLength,s=[];for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==D)throw new Error(`Expected ${D} inside ${n}, but got ${a.resourceType.name}`);const c=ee(a,JSON.parse(o));if(c===void 0)return;if(c.type!=="BinaryPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${c.type}`);s.push(...c.parts)}return{type:"BinaryPartitioned",partitionKeyLength:i,parts:s}}default:throw new Error(`Unknown resource type: ${n}`)}}function _e(t,e){const n=[...e].sort((s,o)=>o[0]-s[0]);if(t.type==="JsonPartitioned"||t.type==="BinaryPartitioned"){const{partitionKeyLength:s}=t;for(const[o]of e)if(o>=s)throw new Error(`Can't filter on non-partitioned axis ${o}. Must be >= ${s}`)}else if(t.type==="Json"){const{keyLength:s}=t;for(const[o]of e)if(o>=s)throw new Error(`Can't filter on non-data axis ${o}. Must be >= ${s}`)}const r=s=>{for(const[o,a]of n)if(s[o]!==a)return!1;return!0},i=s=>{const o=[...s];for(const[a]of n)o.splice(a,1);return o};switch(t.type){case"Json":{const s=t.data.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"Json",keyLength:t.keyLength-e.length,data:s}}case"JsonPartitioned":{const s=t.parts.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:s}}case"BinaryPartitioned":{const s=t.parts.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:s}}}}function ne(t,e){if(t===void 0)return e===void 0;if(e===void 0)return!0;for(const n in e)if(t[n]!==e[n])return!1;return!0}function ce(t){return p.mapPObjectData(t,e=>e instanceof _?e.handle:p.isDataInfo(e)?p.mapDataInfo(e,n=>n.handle):e)}function Pt(t){if(t)return t.map(e=>({type:`split:${p.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function wt(t){if(t)return t.map(e=>[e.axisIdx,e.value])}class Ce{constructor(){L(this,"ctx",g())}calculateOptions(e){return this.ctx.calculateOptions(e)}getOptions(e,n){const r=typeof e=="function"?e:p.selectorsToPredicate(e),i=this.getSpecs().entries.filter(s=>r(s.obj));return typeof n=="object"||typeof n>"u"?se(i,s=>s.obj,n??{}).map(({value:{ref:s},label:o})=>({ref:s,label:o})):i.map(s=>({ref:s.ref,label:n(s.obj,s.ref)}))}getUniversalPColumnEntries(e,n,r){const i={};if(!(e instanceof p.AnchoredIdDeriver))for(const[l,y]of Object.entries(e))if(p.isPlRef(y)){const u=this.getPColumnSpecByRef(y);if(!u)return;i[l]=u}else i[l]=y;const s=typeof n=="function"?[n]:Array.isArray(n)?n:[n],o=e instanceof p.AnchoredIdDeriver?e:new p.AnchoredIdDeriver(i),a=[];for(const l of s){const y=typeof l=="function"?l:p.selectorsToPredicate(p.resolveAnchors(i,l)),u=this.getSpecs().entries.filter(({obj:d})=>p.isPColumnSpec(d)?y(d):!1);if(u.length===0)continue;const h=typeof l=="object"&&"axes"in l&&l.axes!==void 0&&l.partialAxesMatch===void 0?l.axes.map((d,f)=>"split"in d&&d.split===!0?f:-1).filter(d=>d!==-1):[];if(h.sort((d,f)=>d-f),h.length>0){const d=h[h.length-1];for(const{ref:f,obj:b}of u){if(!p.isPColumnSpec(b))throw new Error(`Assertion failed: expected PColumnSpec, got ${b.kind}`);const m=this.getDataByRef(f);if(!m){if(r!=null&&r.dontWaitAllData)continue;return}if(!p.isPColumn(m))throw new Error(`Assertion failed: expected PColumn, got ${m.spec.kind}`);const A=Se(m.data);if(!A){if(r!=null&&r.dontWaitAllData)continue;return}if(d>=A.length)throw new Error(`Not enough partition keys for the requested split axes in column ${b.name}`);const P=h.map(C=>this.findLabels(p.getAxisId(b.axesSpec[C]))),w=[],T=(C,R)=>{if(R>=h.length){w.push([...C]);return}const O=h[R],F=A[O];for(const x of F)C.push(x),T(C,R+1),C.pop()};T([],0);for(const C of w){const R=C.map((O,F)=>{const x=h[F],K=p.getAxisId(b.axesSpec[x]),B=P[F],U=(B==null?void 0:B[O])??String(O);return{axisIdx:x,axisId:K,value:O,label:U}});a.push({obj:b,ref:f,axisFilters:R})}}}else for(const{ref:d,obj:f}of u)p.isPColumnSpec(f)&&a.push({obj:f,ref:d})}return a.length===0?[]:se(a,l=>({spec:l.obj,suffixTrace:Pt(l.axisFilters)}),(r==null?void 0:r.labelOps)??{}).map(l=>({id:o.deriveS(l.value.obj,wt(l.value.axisFilters)),obj:l.value.obj,ref:l.value.ref,axisFilters:l.value.axisFilters,label:l.label}))}getAnchoredPColumns(e,n,r){const i={...r,labelOps:{includeNativeLabel:!0,...(r==null?void 0:r.labelOps)||{}}},s=this.getUniversalPColumnEntries(e,n,i);if(!s||s.length===0)return;const o=[];for(const a of s){const c=this.getPColumnByRef(a.ref);if(!c)return;const l=ee(c.data);if(!l)return;let y=l,u={...c.spec};if(a.axisFilters&&a.axisFilters.length>0){const d=a.axisFilters.map(m=>[m.axisIdx,m.value]);y=_e(l,d);const f=[...a.axisFilters].map(m=>m.axisIdx).sort((m,A)=>A-m),b=[...u.axesSpec];for(const m of f)b.splice(m,1);u={...u,axesSpec:b}}const h=p.entriesToDataInfo(y);u.annotations?u={...u,annotations:{...u.annotations,"pl7.app/label":a.label}}:u={...u,annotations:{"pl7.app/label":a.label}},o.push({id:a.id,spec:u,data:h})}return o}getCanonicalOptions(e,n,r){const i=this.getUniversalPColumnEntries(e,n,r);if(i)return i.map(s=>({value:s.id,label:s.label}))}getDataFromResultPool(){return this.getData()}getData(){const e=this.ctx.getDataFromResultPool();return{isComplete:e.isComplete,entries:e.entries.map(n=>({ref:n.ref,obj:{...n.obj,data:new _(n.obj.data,[n.ref.blockId,n.ref.name])}}))}}getDataWithErrorsFromResultPool(){return this.getDataWithErrors()}getDataWithErrors(){const e=this.ctx.getDataWithErrorsFromResultPool();return{isComplete:e.isComplete,entries:e.entries.map(n=>({ref:n.ref,obj:{...n.obj,data:p.mapValueInVOE(n.obj.data,r=>new _(r,[n.ref.blockId,n.ref.name]))}}))}}getSpecsFromResultPool(){return this.getSpecs()}getSpecs(){return this.ctx.getSpecsFromResultPool()}getDataByRef(e){var r;if(typeof this.ctx.getDataFromResultPoolByRef>"u")return(r=this.getData().entries.find(i=>i.ref.blockId===e.blockId&&i.ref.name===e.name))==null?void 0:r.obj;const n=this.ctx.getDataFromResultPoolByRef(e.blockId,e.name);if(n)return p.mapPObjectData(n,i=>new _(i,[e.blockId,e.name]))}getPColumnByRef(e){const n=this.getDataByRef(e);if(n)return p.ensurePColumn(n)}getPColumnSpecByRef(e){const n=this.getSpecByRef(e);if(n){if(!p.isPColumnSpec(n))throw new Error(`not a PColumn spec (kind = ${n.kind})`);return n}}getSpecByRef(e){return this.ctx.getSpecFromResultPoolByRef(e.blockId,e.name)}findDataWithCompatibleSpec(e){const n=[];e:for(const r of this.getData().entries){if(!p.isPColumnSpec(r.obj.spec))continue;const i=r.obj.spec;if(e.name===i.name&&e.valueType===i.valueType&&e.axesSpec.length===i.axesSpec.length&&ne(e.domain,i.domain)){for(let s=0;s<e.axesSpec.length;++s){const o=e.axesSpec[s],a=i.axesSpec[s];if(o.name!==a.name||o.type!==a.type||!ne(o.domain,a.domain))continue e}n.push(r.obj)}}return n}findLabels(e){const n=this.getData();for(const r of n.entries){if(!p.isPColumn(r.obj))continue;const i=r.obj.spec;if(i.name==="pl7.app/label"&&i.axesSpec.length===1&&i.axesSpec[0].name===e.name&&i.axesSpec[0].type===e.type&&ne(e.domain,i.axesSpec[0].domain)){if(r.obj.data.resourceType.name!=="PColumnData/Json")throw Error(`Expected JSON column for labels, got: ${r.obj.data.resourceType.name}`);return Object.fromEntries(Object.entries(r.obj.data.getDataAsJson().data).map(o=>[JSON.parse(o[0])[0],o[1]]))}}}}class M{constructor(){L(this,"ctx");L(this,"args");L(this,"uiState");L(this,"_activeArgsCache");L(this,"resultPool",new Ce);this.ctx=g(),this.args=JSON.parse(this.ctx.args),this.uiState=this.ctx.uiState!==void 0?JSON.parse(this.ctx.uiState):{}}get activeArgs(){return this._activeArgsCache===void 0&&(this._activeArgsCache={v:this.ctx.activeArgs?JSON.parse(this.ctx.activeArgs):void 0}),this._activeArgsCache.v}getNamedAccessor(e){return Z(this.ctx.getAccessorHandleByName(e),n=>new _(n,[e]))}get prerun(){return this.getNamedAccessor(ge)}get outputs(){return this.getNamedAccessor(me)}findLabels(e){return this.resultPool.findLabels(e)}verifyInlineAndExplicitColumnsSupport(e){var i;const n=e.some(s=>!(s.data instanceof _)||p.isDataInfo(s.data)),r=((i=this.ctx.featureFlags)==null?void 0:i.inlineColumnsSupport)===!0;if(n&&!r)throw Error("Inline or explicit columns not supported")}createPFrame(e){return this.verifyInlineAndExplicitColumnsSupport(e),this.ctx.createPFrame(e.map(n=>ce(n)))}createPTable(e){let n;return"columns"in e?n={src:{type:"full",entries:e.columns.map(r=>({type:"column",column:r}))},filters:e.filters??[],sorting:e.sorting??[]}:n=e,this.verifyInlineAndExplicitColumnsSupport(p.extractAllColumns(n.src)),this.ctx.createPTable(p.mapPTableDef(n,r=>ce(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){if(!(typeof this.ctx.getCurrentUnstableMarker>"u"))return this.ctx.getCurrentUnstableMarker()}}const G="1.27.10";function Te(t){return t.__renderLambda===!0}function Q(t){if(t!==void 0)return Te(t)?t.handle:t}function E(t){if(t!==void 0)return typeof t=="string"?{__renderLambda:!0,handle:t,retentive:!1}:t}function It(t){if(t.v3!==void 0){const{initialArgs:e,initialUiState:n,inputsValid:r,outputs:i,renderingMode:s,sdkVersion:o,sections:a,title:c}=t.v3,{code:l}=t;return{initialArgs:e,initialUiState:n,inputsValid:r,outputs:i,renderingMode:s,sdkVersion:o,sections:a,title:c,code:l}}else if(t.inputsValid!==void 0){const{sdkVersion:e,renderingMode:n,outputs:r,inputsValid:i,sections:s,initialArgs:o,code:a}=t,c=Object.keys(t);if(e===void 0||n===void 0||r===void 0||i===void 0||s===void 0||o===void 0)throw new Error(`Malformed config v2. SDK version ${e}; Fields = ${c.join(", ")}`);return{sdkVersion:e,renderingMode:n,initialArgs:o,outputs:Object.fromEntries(Object.entries(r).map(([l,y])=>[l,E(y)])),inputsValid:E(i),sections:E(s),initialUiState:void 0,code:a}}else if(t.renderingMode!==void 0){const{sdkVersion:e,canRun:n,renderingMode:r,outputs:i,sections:s,initialArgs:o,code:a}=t,c=Object.keys(t);if(r===void 0||i===void 0||n===void 0||s===void 0||o===void 0)throw new Error(`Malformed config v1. SDK version ${e}; Fields = ${c.join(", ")}`);return{sdkVersion:e??"unknown",renderingMode:r,initialArgs:o,outputs:Object.fromEntries(Object.entries(i).map(([l,y])=>[l,E(y)])),inputsValid:E(n),sections:E(s),initialUiState:void 0,code:a}}else{const{sdkVersion:e}=t,n=Object.keys(t);throw new Error(`Config format not supported: SDK = ${e}; Fields = ${n.join(", ")}`)}}class S{constructor(e,n,r,i,s,o,a){this._renderingMode=e,this._initialArgs=n,this._initialUiState=r,this._outputs=i,this._inputsValid=s,this._sections=o,this._title=a}static create(e="Heavy"){return new S(e,void 0,{},{},$(!0),$([]),void 0)}output(e,n,r={}){if(typeof n=="function"){const i=`output#${e}`;return X(i,()=>n(new M)),new S(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:{__renderLambda:!0,handle:i,...r}},this._inputsValid,this._sections,this._title)}else return new S(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:n},this._inputsValid,this._sections,this._title)}retentiveOutput(e,n){return this.output(e,n,{retentive:!0})}argsValid(e){return typeof e=="function"?(X("inputsValid",()=>e(new M)),new S(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,{__renderLambda:!0,handle:"inputsValid"},this._sections,this._title)):new S(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,e,this._sections,this._title)}sections(e){return Array.isArray(e)?this.sections($(e)):typeof e=="function"?(X("sections",()=>e(new M)),new S(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,{__renderLambda:!0,handle:"sections"},this._title)):new S(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,e,this._title)}title(e){return X("title",()=>e(new M)),new S(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,{__renderLambda:!0,handle:"title"})}initialArgs(e){return new S(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title)}withArgs(e){return new S(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title)}withUiState(e){return new S(this._renderingMode,this._initialArgs,e,this._outputs,this._inputsValid,this._sections,this._title)}done(){if(this._initialArgs===void 0)throw new Error("Initial arguments not set.");const e={v3:{sdkVersion:G,renderingMode:this._renderingMode,initialArgs:this._initialArgs,initialUiState:this._initialUiState,inputsValid:this._inputsValid,sections:this._sections,title:this._title,outputs:this._outputs},sdkVersion:G,renderingMode:this._renderingMode,initialArgs:this._initialArgs,inputsValid:Q(this._inputsValid),sections:Q(this._sections),outputs:Object.fromEntries(Object.entries(this._outputs).map(([n,r])=>[n,Q(r)]))};return dt()?he({sdkVersion:G}):{config:e}}}function xt(t,e,n,r){var l,y;Array.isArray(r)&&(r={filters:r});const i=t.resultPool.getData().entries.map(u=>u.obj).filter(p.isPColumn).filter(u=>u.spec.name==="pl7.app/label"&&u.spec.axesSpec.length===1),s=(u,h)=>{let d=u.toString();if(h)for(const f in h)d+=f,d+=h[f];return d},o=new Map;for(const u of e)for(const h of u.spec.axesSpec){const d=p.getAxisId(h);for(const f of i){const b=f.spec.axesSpec[0],m=p.getAxisId(f.spec.axesSpec[0]);if(p.matchAxisId(d,m)){const A=Object.keys(d.domain??{}).length,P=Object.keys(m.domain??{}).length;if(A>P){const w=s(f.id,d.domain);o.set(w,{id:w,spec:{...f.spec,axesSpec:[{...d,annotations:b.annotations}]},data:f.data})}else o.set(s(f.id),f)}}}if([...e,...o.values()].some(u=>u.data instanceof _&&!u.data.getIsReadyOrError()))return;let a=e;const c=[];if(r!=null&&r.coreColumnPredicate){a=[];for(const u of e)r.coreColumnPredicate(u.spec)?a.push(u):c.push(u)}return c.push(...o.values()),t.createPTable({src:{type:"outer",primary:{type:(r==null?void 0:r.coreJoinType)??"full",entries:a.map(u=>({type:"column",column:u}))},secondary:c.map(u=>({type:"column",column:u}))},filters:[...(r==null?void 0:r.filters)??[],...((l=n==null?void 0:n.pTableParams)==null?void 0:l.filters)??[]],sorting:((y=n==null?void 0:n.pTableParams)==null?void 0:y.sorting)??[]})}function St(t,e,n){const r=t.resultPool.findLabels(e);return{axis:e,options:n.map(i=>({value:i,label:(r==null?void 0:r[i])??i.toString()})),defaultValue:n[0]}}const _t=(t,e)=>{let n=t.toString();return e==null||e.forEach(r=>{if(r)for(const[i,s]of Object.entries(r))n+=i,n+=s}),n};function Ct(t){if(!t.length)return[];let e=[[]];return t.forEach(n=>{const r=[];n.forEach(i=>{r.push(...e.map(s=>[...s,i]))}),e=r}),e}function Tt(t,e){const n=t.spec.axesSpec.map(p.getAxisId);return e.spec.axesSpec.map(p.getAxisId).every(i=>n.some(s=>p.matchAxisId(s,i)&&p.matchAxisId(i,s)))}function Le(t,e){const n=t.spec.axesSpec.map(p.getAxisId);return e.spec.axesSpec.map(p.getAxisId).every(i=>n.some(s=>p.matchAxisId(s,i)))}const Re="pl7.app/graph/isVirtual",oe="pl7.app/label";function pe(t,e){const n=t.spec.axesSpec.map(p.getAxisId),r=e.spec.axesSpec.map(p.getAxisId);if(Tt(t,e))return[];if(!Le(t,e))return[];const o=r.map(u=>n.filter(h=>p.matchAxisId(h,u))),a=Ct(o),c=new Set,l=new Set,y=a.map(u=>{const h=new Set;return u.map((d,f)=>{const b=e.spec.axesSpec[f].domain,m=d.domain;return Object.entries(m??{}).forEach(([A,P])=>{if((b==null?void 0:b[A])===void 0){const w=JSON.stringify([A,P]);h.add(w),c.add(w)}}),{...d,annotations:e.spec.axesSpec[f].annotations}}),h});return[...c].forEach(u=>{y.some(h=>!h.has(u))&&l.add(u)}),a.map((u,h)=>{var A;const d=_t(e.id,u.map(P=>P.domain)),f=((A=e.spec.annotations)==null?void 0:A[oe])??"",b=[...y[h]].filter(P=>l.has(P)).sort().map(P=>{var w;return(w=JSON.parse(P))==null?void 0:w[1]}).join(" / "),m={...e.spec.annotations,[Re]:"true"};return(f||b)&&(m[oe]=f&&b?f+" / "+b:f+b),{id:d,spec:{...e.spec,axesSpec:u.map((P,w)=>({...P,annotations:e.spec.axesSpec[w].annotations})),annotations:m},data:e.data}})}function Oe(t){const e=[];for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){const i=t[n],s=t[r];e.push(...pe(i,s),...pe(s,i))}return e}function Fe(t,e){const n=[...t];for(const r of e)for(const i of t){if(i.id===r.id)break;if(Le(i,r)){n.push(r);break}}return n}const Lt=["Int","Long","Float","Double","String","Bytes"];function Rt(t,e){if(e===void 0)return;const n=t.resultPool.getData().entries.map(s=>s.obj).filter(p.isPColumn).filter(s=>Lt.includes(s.spec.valueType)),r=Fe(e,n),i=[...r,...Oe(r)];if(!i.some(s=>s.data instanceof _&&!s.data.getIsReadyOrError()))return t.createPFrame(i)}class Ot{constructor(e){this.handle=e}async findColumns(e){return await platforma.pFrameDriver.findColumns(this.handle,e)}async getColumnSpec(e){return await platforma.pFrameDriver.getColumnSpec(this.handle,e)}async listColumns(){return await platforma.pFrameDriver.listColumns(this.handle)}async calculateTableData(e){return await platforma.pFrameDriver.calculateTableData(this.handle,e)}async getUniqueValues(e){return await platforma.pFrameDriver.getUniqueValues(this.handle,e)}}function De(t){return ae({__isRef:!0,blockId:W(t,"blockId"),name:W(t,"name")})}function Ft(t){return ae({ref:De(W(t,"ref")),label:W(t,"label")})}const Dt={sdkVersion:G};function Ee(){return he({sdkVersion:G})}function Et(t){try{return Ee()}catch{return t}}function kt(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ke;exports.BlockModel=S;exports.CurrentSdkInfo=Dt;exports.FutureRef=I;exports.IS_VIRTUAL_COLUMN=Re;exports.It=Be;exports.JsRenderInternal=yt;exports.LABEL_ANNOTATION=oe;exports.MainOutputs=Ue;exports.OutputError=de;exports.PAnnotationLabel=be;exports.PAnnotationTrace=ve;exports.PFrameImpl=Ot;exports.RT_BINARY_PARTITIONED=D;exports.RT_BINARY_SUPER_PARTITIONED=V;exports.RT_JSON_PARTITIONED=j;exports.RT_JSON_SUPER_PARTITIONED=q;exports.RT_RESOURCE_MAP=H;exports.RT_RESOURCE_MAP_PARTITIONED=z;exports.RenderCtx=M;exports.ResultPool=Ce;exports.StagingOutputs=Je;exports.Trace=Pe;exports.TraceEntry=Ae;exports.TreeNodeAccessor=_;exports.UiState=Me;exports.and=Ye;exports.createPFrameForGraphs=Rt;exports.createPlDataTable=xt;exports.createPlDataTableSheet=St;exports.deriveLabels=se;exports.downgradeCfgOrLambda=Q;exports.enrichColumnsWithCompatible=Fe;exports.extractArchiveAndGetURL=ot;exports.extractConfig=It;exports.filterDataInfoEntries=_e;exports.flatten=He;exports.fromPlOption=Ft;exports.fromPlRef=De;exports.getAdditionalColumns=Oe;exports.getBlobContent=tt;exports.getBlobContentAsJson=rt;exports.getBlobContentAsString=nt;exports.getDownloadedBlobContent=st;exports.getEnvironmentValue=kt;exports.getFromCfg=N;exports.getImmediate=$;exports.getImportProgress=at;exports.getJsonField=W;exports.getLastLogs=lt;exports.getLogHandle=pt;exports.getOnDemandBlobContent=it;exports.getPartitionKeysList=xe;exports.getPlatformaOrDefault=Et;exports.getProgressLog=ut;exports.getProgressLogWithInfo=ct;exports.getRawPlatformaInstance=Ee;exports.getResourceField=Qe;exports.getResourceValueAsJson=Ze;exports.getUniquePartitionKeys=Se;exports.ifDef=Z;exports.isConfigLambda=Te;exports.isEmpty=ze;exports.isolate=Ne;exports.makeArray=$e;exports.makeObject=ae;exports.mapArrayValues=We;exports.mapRecordValues=Ge;exports.mapResourceFields=et;exports.not=qe;exports.or=Xe;exports.parsePColumnData=ee;exports.parseResourceMap=At;exports.readOutput=fe;exports.wrapOutputs=Ve;Object.keys(p).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>p[t]})});Object.keys(le).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>le[t]})});
|
|
1
|
+
"use strict";var ke=Object.defineProperty;var je=(t,e,n)=>e in t?ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var L=(t,e,n)=>je(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@milaboratories/pl-model-common"),k=require("zod"),le=require("@milaboratories/pl-error-like");class de extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0].message),this.errors=e,this.moreErrors=n}}function fe(t){if(!t.ok)throw new de(t.errors,t.moreErrors);return t.value}function Ve(t){return new Proxy(t,{get(e,n){return fe(e[n])}})}function v(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null?$(t):t}function N(t){return{type:"GetFromCtx",variable:t}}function Ne(t){return{type:"Isolate",cfg:t}}const Ke=N("$args"),Be=N("$it"),Ue=N("$prod"),Je=N("$staging"),Me=N("$ui");function $(t){return{type:"Immediate",value:t}}function ae(t){const e={};for(const[n,r]of Object.entries(t))e[n]=v(r);return{type:"MakeObject",template:e}}function $e(...t){const e=[];for(const n of t)e.push(v(n));return{type:"MakeArray",template:e}}function W(t,e){return{type:"GetJsonField",source:v(t),field:v(e)}}function Ge(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function We(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function He(t){return{type:"Flatten",source:t}}function ze(t){return{type:"IsEmpty",arg:t}}function qe(t){return{type:"Not",operand:t}}function Ye(t,e){return{type:"And",operand1:t,operand2:e}}function Xe(t,e){return{type:"Or",operand1:t,operand2:e}}function Qe(t,e){return{type:"GetResourceField",source:v(t),field:v(e)}}function Ze(){return function(t){return{type:"GetResourceValueAsJson",source:v(t)}}}function et(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function tt(t){return{type:"GetBlobContent",source:v(t)}}function nt(t){return{type:"GetBlobContentAsString",source:v(t)}}function rt(){return function(t){return{type:"GetBlobContentAsJson",source:v(t)}}}function st(t){return{type:"GetDownloadedBlobContent",source:v(t)}}function it(t){return{type:"GetOnDemandBlobContent",source:v(t)}}function ot(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:v(t)}}function at(t){return{type:"GetImportProgress",source:v(t)}}function lt(t,e){return{type:"GetLastLogs",source:v(t),lines:e}}function ut(t,e){return{type:"GetProgressLog",source:v(t),patternToSearch:e}}function ct(t,e){return{type:"GetProgressLogWithInfo",source:v(t),patternToSearch:e}}function pt(t){return{type:"GetLogHandle",source:v(t)}}function dt(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function he(t){if(t&&typeof globalThis.getPlatforma=="function")return globalThis.getPlatforma(t);if(typeof globalThis.platforma<"u")return globalThis.platforma;throw new Error("Can't get platforma instance.")}function ft(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx}function g(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx;throw new Error("Not in config rendering context")}function X(t,e){const n=ft();if(n===void 0)return!1;if(t in n.callbackRegistry)throw new Error(`Callback with key ${t} already registered.`);return n.callbackRegistry[t]=e,!0}const te=new Map;function ht(t,e){t in g().callbackRegistry||(g().callbackRegistry[t]=n=>{for(const r of te.get(t))r(n)},te.set(t,[])),te.get(t).push(e)}class I{constructor(e,n=r=>r){L(this,"isResolved",!1);L(this,"resolvedValue");this.handle=e,this.postProcess=n,ht(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new I(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new I(this.handle,n=>{const r=this.postProcess(n);return r?e(r):void 0})}toJSON(){return this.isResolved?this.resolvedValue:{__awaited_futures__:[this.handle]}}}function Z(t,e){return t===void 0?void 0:e(t)}class _{constructor(e,n){this.handle=e,this.resolvePath=n}resolve(...e){const n=e.map(r=>({assertFieldType:"Input",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveOutput(...e){const n=e.map(r=>({assertFieldType:"Output",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveInput(...e){const n=e.map(r=>({assertFieldType:"Input",...typeof r=="string"?{field:r}:r}));return this.resolveWithCommon({},...n)}resolveAny(...e){return this.resolveWithCommon({},...e)}resolveWithCommon(e,...n){const r=[...this.resolvePath,...n.map(i=>typeof i=="string"?i:i.field)];return Z(g().resolveWithCommon(this.handle,e,...n),i=>new _(i,r))}get resourceType(){return g().getResourceType(this.handle)}getInputsLocked(){return g().getInputsLocked(this.handle)}getOutputsLocked(){return g().getOutputsLocked(this.handle)}getIsReadyOrError(){return g().getIsReadyOrError(this.handle)}getIsFinal(){return g().getIsFinal(this.handle)}getError(){const e=[...this.resolvePath,"error"];return Z(g().getError(this.handle),n=>new _(n,e))}listInputFields(){return g().listInputFields(this.handle)}listOutputFields(){return g().listOutputFields(this.handle)}listDynamicFields(){return g().listDynamicFields(this.handle)}getKeyValueBase64(e){return g().getKeyValueBase64(this.handle,e)}getKeyValueAsString(e){return g().getKeyValueAsString(this.handle,e)}getKeyValueAsJson(e){const n=this.getKeyValueAsString(e);if(n==null)throw new Error("Resource has no content.");return JSON.parse(n)}getDataBase64(){return g().getDataBase64(this.handle)}getDataAsString(){return g().getDataAsString(this.handle)}getDataAsJson(){const e=this.getDataAsString();if(e==null)throw new Error("Resource has no content.");return JSON.parse(e)}getPColumns(e=!1,n=""){const r=this.parsePObjectCollection(e,n);return r===void 0?void 0:Object.entries(r).map(([,s])=>{if(!p.isPColumn(s))throw new Error(`not a PColumn (kind = ${s.spec.kind})`);return s})}parsePObjectCollection(e=!1,n=""){const r=g().parsePObjectCollection(this.handle,e,n,...this.resolvePath);if(r===void 0)return;const i={};for(const[s,o]of Object.entries(r)){const a=[...this.resolvePath,s];i[s]=p.mapPObjectData(o,c=>new _(c,a))}return i}getFileContentAsBase64(){return new I(g().getBlobContentAsBase64(this.handle))}getFileContentAsString(){return new I(g().getBlobContentAsString(this.handle))}getFileContentAsJson(){return new I(g().getBlobContentAsString(this.handle)).mapDefined(e=>JSON.parse(e))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new I(g().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new I(g().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new I(g().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new I(g().getImportProgress(this.handle))}getLastLogs(e){return new I(g().getLastLogs(this.handle,e))}getProgressLog(e){return new I(g().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new I(g().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new I(g().getLogHandle(this.handle))}allFieldsResolved(e="Input"){switch(e){case"Input":return this.getInputsLocked()&&this.listInputFields().every(n=>this.resolve({field:n,assertFieldType:"Input"})!==void 0);case"Output":return this.getOutputsLocked()&&this.listOutputFields().every(n=>this.resolve({field:n,assertFieldType:"Output"})!==void 0)}}mapFields(e,n){const{fieldType:r,requireLocked:i,skipUnresolved:s}={fieldType:"Input",requireLocked:!0,skipUnresolved:!1,...n},o=e;if(i&&(r==="Input"&&!this.getInputsLocked()||r==="Output"&&!this.getOutputsLocked()))return;let c=(r==="Input"?this.listInputFields():r==="Output"?this.listOutputFields():this.listDynamicFields()).map(l=>[l,this.resolve({field:l,assertFieldType:r})]);return s&&(c=c.filter(l=>l[1]!==void 0)),c.map(([l,y])=>o(l,y))}}const ge="staging",me="main",gt={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0};function ye(t){return typeof t=="object"&&t!==null&&"__awaited_futures__"in t}function re(t,e,n){if(e.has(n))return;if(e.add(n),typeof n==="object")if(ye(n))n.__awaited_futures__.forEach(i=>t.add(i));else if(Array.isArray(n))for(const i of n)re(t,e,i);else for(const[,i]of Object.entries(n))i!==n&&re(t,e,i)}function mt(t){const e=new Set;return re(e,new Set,t),e}const yt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:gt,MainAccessorName:me,StagingAccessorName:ge,getAllFutureAwaits:mt,isFutureAwait:ye},Symbol.toStringTag,{value:"Module"}));function be(t,e){const n=[...e].sort((s,o)=>o[0]-s[0]);if(t.type==="JsonPartitioned"||t.type==="BinaryPartitioned"){const{partitionKeyLength:s}=t;for(const[o]of e)if(o>=s)throw new Error(`Can't filter on non-partitioned axis ${o}. Must be >= ${s}`)}else if(t.type==="Json"){const{keyLength:s}=t;for(const[o]of e)if(o>=s)throw new Error(`Can't filter on non-data axis ${o}. Must be >= ${s}`)}const r=s=>{for(const[o,a]of n)if(s[o]!==a)return!1;return!0},i=s=>{const o=[...s];for(const[a]of n)o.splice(a,1);return o};switch(t.type){case"Json":{const s=t.data.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"Json",keyLength:t.keyLength-e.length,data:s}}case"JsonPartitioned":{const s=t.parts.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:s}}case"BinaryPartitioned":{const s=t.parts.filter(o=>r(o.key)).map(o=>({key:i(o.key),value:o.value}));return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:s}}}}const ve="pl7.app/label",Ae="pl7.app/trace",Pe=k.z.object({type:k.z.string(),importance:k.z.number().optional(),id:k.z.string().optional(),label:k.z.string()}),we=k.z.array(Pe),bt=.001,vt="__LABEL__",ue="__LABEL__@1";function se(t,e,n={}){const r=new Map,i=new Map,s=t.map(h=>{var O,F;const d=e(h);let f,b,m;"spec"in d&&typeof d.spec=="object"?(f=d.spec,b=d.prefixTrace,m=d.suffixTrace):f=d;const A=(O=f.annotations)==null?void 0:O[ve],P=(F=f.annotations)==null?void 0:F[Ae],w=(P?we.safeParse(JSON.parse(P)).data:void 0)??[],T=[...b??[],...w,...m??[]];if(A){const S={label:A,type:vt,importance:-2};n.addLabelAsSuffix?T.push(S):T.splice(0,0,S)}const C=[],R=new Map;for(let S=T.length-1;S>=0;--S){const{type:K}=T[S],B=T[S].importance??0,U=(R.get(K)??0)+1;R.set(K,U);const J=`${K}@${U}`;i.set(J,(i.get(J)??0)+1),r.set(J,Math.max(r.get(J)??Number.NEGATIVE_INFINITY,B-(T.length-S)*bt)),C.push({...T[S],fullType:J,occurenceIndex:U})}return C.reverse(),{value:h,spec:f,label:A,fullTrace:C}}),o=[],a=[],c=[...r];c.sort(([,h],[,d])=>d-h);for(const[h]of c)h.endsWith("@1")||i.get(h)===t.length?o.push(h):a.push(h);const l=h=>s.map(d=>{const f=d.fullTrace.filter(m=>h.has(m.fullType)).map(m=>m.label),b=n.separator??" / ";return{label:f.join(b),value:d.value}});if(o.length===0){if(a.length!==0)throw new Error("Assertion error.");return l(new Set(ue))}let y=0,u=0;for(;y<o.length;){const h=new Set;n.includeNativeLabel&&h.add(ue);for(let f=0;f<y;++f)h.add(o[f]);h.add(o[u]);const d=l(h);if(new Set(d.map(f=>f.label)).size===t.length)return d;u++,u==o.length&&(y++,u=y)}return l(new Set([...o,...a]))}const Y="PColumnData/",H=Y+"ResourceMap",z=Y+"Partitioned/ResourceMap",j=Y+"JsonPartitioned",D=Y+"BinaryPartitioned",Ie=Y+"Partitioned/",q=Ie+"JsonPartitioned",V=Ie+"BinaryPartitioned";function Se(t,e,n,r=[],i){if(t===void 0)return!1;switch(t.resourceType.name){case H:{let s=t.getInputsLocked();for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"}),c=[...r,...JSON.parse(o)],l=a===void 0?void 0:e(a);l===void 0&&(s=!1),(l!==void 0||i)&&n.push({key:c,value:l})}return s}case z:{let s=t.getInputsLocked();for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)s=!1;else{const c=[...r,...JSON.parse(o)],l=Se(a,e,n,c,i);s=s&&l}}return s}default:throw new Error(`Unknown resource type: ${t.resourceType.name}`)}}function At(t,e,n=!1){const r=[];return{isComplete:Se(t,e,r,[],n),data:r}}const ie=t=>{if(t.endsWith(".index"))return{baseKey:t.substring(0,t.length-6),type:"index"};if(t.endsWith(".values"))return{baseKey:t.substring(0,t.length-7),type:"values"};throw new Error(`key must ends on .index/.values for binary p-column, got: ${t}`)};function xe(t){if(!t)return;const e=t.resourceType.name,n=t.getDataAsJson(),r=[];let i=0;switch(e){case H:i=n.keyLength;break;case z:i=n.partitionKeyLength+n.keyLength;break;case j:case D:i=n.partitionKeyLength;break;case V:case q:i=n.superPartitionKeyLength+n.partitionKeyLength;break}switch(e){case H:case j:case D:for(let s of t.listInputFields()){e===D&&(s=ie(s).baseKey);const o=[...JSON.parse(s)];r.push(o)}break;case z:case V:case q:for(const s of t.listInputFields()){const o=[...JSON.parse(s)],a=t.resolve({field:s,assertFieldType:"Input"});if(a!==void 0)for(let c of a.listInputFields()){e===V&&(c=ie(c).baseKey);const l=[...o,...JSON.parse(c)];r.push(l)}}break}return{data:r,keyLength:i}}function _e(t){const e=xe(t);if(!e)return;const{data:n,keyLength:r}=e,i=[];for(let s=0;s<r;++s)i.push(new Set);for(const s of n){if(s.length!==r)throw new Error("key length does not match partition length");for(let o=0;o<r;++o)i[o].add(s[o])}return i.map(s=>Array.from(s.values()))}function ee(t,e=[]){if(t===void 0)return;const n=t.resourceType.name,r=t.getDataAsJson();if(e.length>0&&(n===q||n===V))throw new Error(`Unexpected nested super-partitioned resource: ${n}`);switch(n){case H:case z:throw new Error(`Only data columns are supported, got: ${n}`);case j:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[];for(const s of t.listInputFields()){const o=t.resolve({field:s,assertFieldType:"Input"});if(o===void 0)return;const a=[...e,...JSON.parse(s)];i.push({key:a,value:o})}return{type:"JsonPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case D:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[],s=new Map;for(const o of t.listInputFields()){const a=ie(o),c=t.resolve({field:o,assertFieldType:"Input"});if(c===void 0)return;let l=s.get(a.baseKey);l||(l={},s.set(a.baseKey,l)),a.type==="index"?l.index=c:l.values=c}for(const[o,a]of s.entries()){if(!a.index||!a.values)return;const c=[...e,...JSON.parse(o)];i.push({key:c,value:{index:a.index,values:a.values}})}return{type:"BinaryPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case q:{if(typeof(r==null?void 0:r.superPartitionKeyLength)!="number"||typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n}`);const i=r.superPartitionKeyLength+r.partitionKeyLength,s=[];for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==j)throw new Error(`Expected ${j} inside ${n}, but got ${a.resourceType.name}`);const c=ee(a,JSON.parse(o));if(c===void 0)return;if(c.type!=="JsonPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${c.type}`);s.push(...c.parts)}return{type:"JsonPartitioned",partitionKeyLength:i,parts:s}}case V:{if(typeof(r==null?void 0:r.superPartitionKeyLength)!="number"||typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${n}`);const i=r.superPartitionKeyLength+r.partitionKeyLength,s=[];for(const o of t.listInputFields()){const a=t.resolve({field:o,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==D)throw new Error(`Expected ${D} inside ${n}, but got ${a.resourceType.name}`);const c=ee(a,JSON.parse(o));if(c===void 0)return;if(c.type!=="BinaryPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${c.type}`);s.push(...c.parts)}return{type:"BinaryPartitioned",partitionKeyLength:i,parts:s}}default:throw new Error(`Unknown resource type: ${n}`)}}function ne(t,e){if(t===void 0)return e===void 0;if(e===void 0)return!0;for(const n in e)if(t[n]!==e[n])return!1;return!0}function ce(t){return p.mapPObjectData(t,e=>e instanceof _?e.handle:p.isDataInfo(e)?p.mapDataInfo(e,n=>n.handle):e)}function Pt(t){if(t)return t.map(e=>({type:`split:${p.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function wt(t){if(t)return t.map(e=>[e.axisIdx,e.value])}class Ce{constructor(){L(this,"ctx",g())}calculateOptions(e){return this.ctx.calculateOptions(e)}getOptions(e,n){const r=typeof e=="function"?e:p.selectorsToPredicate(e),i=this.getSpecs().entries.filter(s=>r(s.obj));return typeof n=="object"||typeof n>"u"?se(i,s=>s.obj,n??{}).map(({value:{ref:s},label:o})=>({ref:s,label:o})):i.map(s=>({ref:s.ref,label:n(s.obj,s.ref)}))}getUniversalPColumnEntries(e,n,r){const i={};if(!(e instanceof p.AnchoredIdDeriver))for(const[l,y]of Object.entries(e))if(p.isPlRef(y)){const u=this.getPColumnSpecByRef(y);if(!u)return;i[l]=u}else i[l]=y;const s=typeof n=="function"?[n]:Array.isArray(n)?n:[n],o=e instanceof p.AnchoredIdDeriver?e:new p.AnchoredIdDeriver(i),a=[];for(const l of s){const y=typeof l=="function"?l:p.selectorsToPredicate(p.resolveAnchors(i,l)),u=this.getSpecs().entries.filter(({obj:d})=>p.isPColumnSpec(d)?y(d):!1);if(u.length===0)continue;const h=typeof l=="object"&&"axes"in l&&l.axes!==void 0&&l.partialAxesMatch===void 0?l.axes.map((d,f)=>"split"in d&&d.split===!0?f:-1).filter(d=>d!==-1):[];if(h.sort((d,f)=>d-f),h.length>0){const d=h[h.length-1];for(const{ref:f,obj:b}of u){if(!p.isPColumnSpec(b))throw new Error(`Assertion failed: expected PColumnSpec, got ${b.kind}`);const m=this.getDataByRef(f);if(!m){if(r!=null&&r.dontWaitAllData)continue;return}if(!p.isPColumn(m))throw new Error(`Assertion failed: expected PColumn, got ${m.spec.kind}`);const A=_e(m.data);if(!A){if(r!=null&&r.dontWaitAllData)continue;return}if(d>=A.length)throw new Error(`Not enough partition keys for the requested split axes in column ${b.name}`);const P=h.map(C=>this.findLabels(p.getAxisId(b.axesSpec[C]))),w=[],T=(C,R)=>{if(R>=h.length){w.push([...C]);return}const O=h[R],F=A[O];for(const S of F)C.push(S),T(C,R+1),C.pop()};T([],0);for(const C of w){const R=C.map((O,F)=>{const S=h[F],K=p.getAxisId(b.axesSpec[S]),B=P[F],U=(B==null?void 0:B[O])??String(O);return{axisIdx:S,axisId:K,value:O,label:U}});a.push({obj:b,ref:f,axisFilters:R})}}}else for(const{ref:d,obj:f}of u)p.isPColumnSpec(f)&&a.push({obj:f,ref:d})}return a.length===0?[]:se(a,l=>({spec:l.obj,suffixTrace:Pt(l.axisFilters)}),(r==null?void 0:r.labelOps)??{}).map(l=>({id:o.deriveS(l.value.obj,wt(l.value.axisFilters)),obj:l.value.obj,ref:l.value.ref,axisFilters:l.value.axisFilters,label:l.label}))}getAnchoredPColumns(e,n,r){const i={...r,labelOps:{includeNativeLabel:!0,...(r==null?void 0:r.labelOps)||{}}},s=this.getUniversalPColumnEntries(e,n,i);if(!s||s.length===0)return;const o=[];for(const a of s){const c=this.getPColumnByRef(a.ref);if(!c)return;const l=ee(c.data);if(!l)return;let y=l,u={...c.spec};if(a.axisFilters&&a.axisFilters.length>0){const d=a.axisFilters.map(m=>[m.axisIdx,m.value]);y=be(l,d);const f=[...a.axisFilters].map(m=>m.axisIdx).sort((m,A)=>A-m),b=[...u.axesSpec];for(const m of f)b.splice(m,1);u={...u,axesSpec:b}}const h=p.entriesToDataInfo(y);u.annotations?u={...u,annotations:{...u.annotations,"pl7.app/label":a.label}}:u={...u,annotations:{"pl7.app/label":a.label}},o.push({id:a.id,spec:u,data:h})}return o}getCanonicalOptions(e,n,r){const i=this.getUniversalPColumnEntries(e,n,r);if(i)return i.map(s=>({value:s.id,label:s.label}))}getDataFromResultPool(){return this.getData()}getData(){const e=this.ctx.getDataFromResultPool();return{isComplete:e.isComplete,entries:e.entries.map(n=>({ref:n.ref,obj:{...n.obj,data:new _(n.obj.data,[n.ref.blockId,n.ref.name])}}))}}getDataWithErrorsFromResultPool(){return this.getDataWithErrors()}getDataWithErrors(){const e=this.ctx.getDataWithErrorsFromResultPool();return{isComplete:e.isComplete,entries:e.entries.map(n=>({ref:n.ref,obj:{...n.obj,data:p.mapValueInVOE(n.obj.data,r=>new _(r,[n.ref.blockId,n.ref.name]))}}))}}getSpecsFromResultPool(){return this.getSpecs()}getSpecs(){return this.ctx.getSpecsFromResultPool()}getDataByRef(e){var r;if(typeof this.ctx.getDataFromResultPoolByRef>"u")return(r=this.getData().entries.find(i=>i.ref.blockId===e.blockId&&i.ref.name===e.name))==null?void 0:r.obj;const n=this.ctx.getDataFromResultPoolByRef(e.blockId,e.name);if(n)return p.mapPObjectData(n,i=>new _(i,[e.blockId,e.name]))}getPColumnByRef(e){const n=this.getDataByRef(e);if(n)return p.ensurePColumn(n)}getPColumnSpecByRef(e){const n=this.getSpecByRef(e);if(n){if(!p.isPColumnSpec(n))throw new Error(`not a PColumn spec (kind = ${n.kind})`);return n}}getSpecByRef(e){return this.ctx.getSpecFromResultPoolByRef(e.blockId,e.name)}findDataWithCompatibleSpec(e){const n=[];e:for(const r of this.getData().entries){if(!p.isPColumnSpec(r.obj.spec))continue;const i=r.obj.spec;if(e.name===i.name&&e.valueType===i.valueType&&e.axesSpec.length===i.axesSpec.length&&ne(e.domain,i.domain)){for(let s=0;s<e.axesSpec.length;++s){const o=e.axesSpec[s],a=i.axesSpec[s];if(o.name!==a.name||o.type!==a.type||!ne(o.domain,a.domain))continue e}n.push(r.obj)}}return n}findLabels(e){const n=this.getData();for(const r of n.entries){if(!p.isPColumn(r.obj))continue;const i=r.obj.spec;if(i.name==="pl7.app/label"&&i.axesSpec.length===1&&i.axesSpec[0].name===e.name&&i.axesSpec[0].type===e.type&&ne(e.domain,i.axesSpec[0].domain)){if(r.obj.data.resourceType.name!=="PColumnData/Json")throw Error(`Expected JSON column for labels, got: ${r.obj.data.resourceType.name}`);return Object.fromEntries(Object.entries(r.obj.data.getDataAsJson().data).map(o=>[JSON.parse(o[0])[0],o[1]]))}}}findLabelsForColumnAxis(e,n){const r=this.findLabels(e.spec.axesSpec[n]);if(r)return Object.fromEntries(e.data.listInputFields().map(i=>{const s=JSON.parse(i);return[s[n],r[s[n]]??"Unlabelled"]}))}}class M{constructor(){L(this,"ctx");L(this,"args");L(this,"uiState");L(this,"_activeArgsCache");L(this,"resultPool",new Ce);this.ctx=g(),this.args=JSON.parse(this.ctx.args),this.uiState=this.ctx.uiState!==void 0?JSON.parse(this.ctx.uiState):{}}get activeArgs(){return this._activeArgsCache===void 0&&(this._activeArgsCache={v:this.ctx.activeArgs?JSON.parse(this.ctx.activeArgs):void 0}),this._activeArgsCache.v}getNamedAccessor(e){return Z(this.ctx.getAccessorHandleByName(e),n=>new _(n,[e]))}get prerun(){return this.getNamedAccessor(ge)}get outputs(){return this.getNamedAccessor(me)}findLabels(e){return this.resultPool.findLabels(e)}verifyInlineAndExplicitColumnsSupport(e){var i;const n=e.some(s=>!(s.data instanceof _)||p.isDataInfo(s.data)),r=((i=this.ctx.featureFlags)==null?void 0:i.inlineColumnsSupport)===!0;if(n&&!r)throw Error("Inline or explicit columns not supported")}createPFrame(e){return this.verifyInlineAndExplicitColumnsSupport(e),this.ctx.createPFrame(e.map(n=>ce(n)))}createPTable(e){let n;return"columns"in e?n={src:{type:"full",entries:e.columns.map(r=>({type:"column",column:r}))},filters:e.filters??[],sorting:e.sorting??[]}:n=e,this.verifyInlineAndExplicitColumnsSupport(p.extractAllColumns(n.src)),this.ctx.createPTable(p.mapPTableDef(n,r=>ce(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){if(!(typeof this.ctx.getCurrentUnstableMarker>"u"))return this.ctx.getCurrentUnstableMarker()}}const G="1.27.17";function Te(t){return t.__renderLambda===!0}function Q(t){if(t!==void 0)return Te(t)?t.handle:t}function E(t){if(t!==void 0)return typeof t=="string"?{__renderLambda:!0,handle:t,retentive:!1}:t}function It(t){if(t.v3!==void 0){const{initialArgs:e,initialUiState:n,inputsValid:r,outputs:i,renderingMode:s,sdkVersion:o,sections:a,title:c}=t.v3,{code:l}=t;return{initialArgs:e,initialUiState:n,inputsValid:r,outputs:i,renderingMode:s,sdkVersion:o,sections:a,title:c,code:l}}else if(t.inputsValid!==void 0){const{sdkVersion:e,renderingMode:n,outputs:r,inputsValid:i,sections:s,initialArgs:o,code:a}=t,c=Object.keys(t);if(e===void 0||n===void 0||r===void 0||i===void 0||s===void 0||o===void 0)throw new Error(`Malformed config v2. SDK version ${e}; Fields = ${c.join(", ")}`);return{sdkVersion:e,renderingMode:n,initialArgs:o,outputs:Object.fromEntries(Object.entries(r).map(([l,y])=>[l,E(y)])),inputsValid:E(i),sections:E(s),initialUiState:void 0,code:a}}else if(t.renderingMode!==void 0){const{sdkVersion:e,canRun:n,renderingMode:r,outputs:i,sections:s,initialArgs:o,code:a}=t,c=Object.keys(t);if(r===void 0||i===void 0||n===void 0||s===void 0||o===void 0)throw new Error(`Malformed config v1. SDK version ${e}; Fields = ${c.join(", ")}`);return{sdkVersion:e??"unknown",renderingMode:r,initialArgs:o,outputs:Object.fromEntries(Object.entries(i).map(([l,y])=>[l,E(y)])),inputsValid:E(n),sections:E(s),initialUiState:void 0,code:a}}else{const{sdkVersion:e}=t,n=Object.keys(t);throw new Error(`Config format not supported: SDK = ${e}; Fields = ${n.join(", ")}`)}}class x{constructor(e,n,r,i,s,o,a){this._renderingMode=e,this._initialArgs=n,this._initialUiState=r,this._outputs=i,this._inputsValid=s,this._sections=o,this._title=a}static create(e="Heavy"){return new x(e,void 0,{},{},$(!0),$([]),void 0)}output(e,n,r={}){if(typeof n=="function"){const i=`output#${e}`;return X(i,()=>n(new M)),new x(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:{__renderLambda:!0,handle:i,...r}},this._inputsValid,this._sections,this._title)}else return new x(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:n},this._inputsValid,this._sections,this._title)}retentiveOutput(e,n){return this.output(e,n,{retentive:!0})}argsValid(e){return typeof e=="function"?(X("inputsValid",()=>e(new M)),new x(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,{__renderLambda:!0,handle:"inputsValid"},this._sections,this._title)):new x(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,e,this._sections,this._title)}sections(e){return Array.isArray(e)?this.sections($(e)):typeof e=="function"?(X("sections",()=>e(new M)),new x(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,{__renderLambda:!0,handle:"sections"},this._title)):new x(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,e,this._title)}title(e){return X("title",()=>e(new M)),new x(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,{__renderLambda:!0,handle:"title"})}initialArgs(e){return new x(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title)}withArgs(e){return new x(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title)}withUiState(e){return new x(this._renderingMode,this._initialArgs,e,this._outputs,this._inputsValid,this._sections,this._title)}done(){if(this._initialArgs===void 0)throw new Error("Initial arguments not set.");const e={v3:{sdkVersion:G,renderingMode:this._renderingMode,initialArgs:this._initialArgs,initialUiState:this._initialUiState,inputsValid:this._inputsValid,sections:this._sections,title:this._title,outputs:this._outputs},sdkVersion:G,renderingMode:this._renderingMode,initialArgs:this._initialArgs,inputsValid:Q(this._inputsValid),sections:Q(this._sections),outputs:Object.fromEntries(Object.entries(this._outputs).map(([n,r])=>[n,Q(r)]))};return dt()?he({sdkVersion:G}):{config:e}}}function St(t,e,n,r){var l,y;Array.isArray(r)&&(r={filters:r});const i=t.resultPool.getData().entries.map(u=>u.obj).filter(p.isPColumn).filter(u=>u.spec.name==="pl7.app/label"&&u.spec.axesSpec.length===1),s=(u,h)=>{let d=u.toString();if(h)for(const f in h)d+=f,d+=h[f];return d},o=new Map;for(const u of e)for(const h of u.spec.axesSpec){const d=p.getAxisId(h);for(const f of i){const b=f.spec.axesSpec[0],m=p.getAxisId(f.spec.axesSpec[0]);if(p.matchAxisId(d,m)){const A=Object.keys(d.domain??{}).length,P=Object.keys(m.domain??{}).length;if(A>P){const w=s(f.id,d.domain);o.set(w,{id:w,spec:{...f.spec,axesSpec:[{...d,annotations:b.annotations}]},data:f.data})}else o.set(s(f.id),f)}}}if([...e,...o.values()].some(u=>u.data instanceof _&&!u.data.getIsReadyOrError()))return;let a=e;const c=[];if(r!=null&&r.coreColumnPredicate){a=[];for(const u of e)r.coreColumnPredicate(u.spec)?a.push(u):c.push(u)}return c.push(...o.values()),t.createPTable({src:{type:"outer",primary:{type:(r==null?void 0:r.coreJoinType)??"full",entries:a.map(u=>({type:"column",column:u}))},secondary:c.map(u=>({type:"column",column:u}))},filters:[...(r==null?void 0:r.filters)??[],...((l=n==null?void 0:n.pTableParams)==null?void 0:l.filters)??[]],sorting:((y=n==null?void 0:n.pTableParams)==null?void 0:y.sorting)??[]})}function xt(t,e,n){const r=t.resultPool.findLabels(e);return{axis:e,options:n.map(i=>({value:i,label:(r==null?void 0:r[i])??i.toString()})),defaultValue:n[0]}}const _t=(t,e)=>{let n=t.toString();return e==null||e.forEach(r=>{if(r)for(const[i,s]of Object.entries(r))n+=i,n+=s}),n};function Ct(t){if(!t.length)return[];let e=[[]];return t.forEach(n=>{const r=[];n.forEach(i=>{r.push(...e.map(s=>[...s,i]))}),e=r}),e}function Tt(t,e){const n=t.spec.axesSpec.map(p.getAxisId);return e.spec.axesSpec.map(p.getAxisId).every(i=>n.some(s=>p.matchAxisId(s,i)&&p.matchAxisId(i,s)))}function Le(t,e){const n=t.spec.axesSpec.map(p.getAxisId);return e.spec.axesSpec.map(p.getAxisId).every(i=>n.some(s=>p.matchAxisId(s,i)))}const Re="pl7.app/graph/isVirtual",oe="pl7.app/label";function pe(t,e){const n=t.spec.axesSpec.map(p.getAxisId),r=e.spec.axesSpec.map(p.getAxisId);if(Tt(t,e))return[];if(!Le(t,e))return[];const o=r.map(u=>n.filter(h=>p.matchAxisId(h,u))),a=Ct(o),c=new Set,l=new Set,y=a.map(u=>{const h=new Set;return u.map((d,f)=>{const b=e.spec.axesSpec[f].domain,m=d.domain;return Object.entries(m??{}).forEach(([A,P])=>{if((b==null?void 0:b[A])===void 0){const w=JSON.stringify([A,P]);h.add(w),c.add(w)}}),{...d,annotations:e.spec.axesSpec[f].annotations}}),h});return[...c].forEach(u=>{y.some(h=>!h.has(u))&&l.add(u)}),a.map((u,h)=>{var A;const d=_t(e.id,u.map(P=>P.domain)),f=((A=e.spec.annotations)==null?void 0:A[oe])??"",b=[...y[h]].filter(P=>l.has(P)).sort().map(P=>{var w;return(w=JSON.parse(P))==null?void 0:w[1]}).join(" / "),m={...e.spec.annotations,[Re]:"true"};return(f||b)&&(m[oe]=f&&b?f+" / "+b:f+b),{id:d,spec:{...e.spec,axesSpec:u.map((P,w)=>({...P,annotations:e.spec.axesSpec[w].annotations})),annotations:m},data:e.data}})}function Oe(t){const e=[];for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){const i=t[n],s=t[r];e.push(...pe(i,s),...pe(s,i))}return e}function Fe(t,e){const n=[...t];for(const r of e)for(const i of t){if(i.id===r.id)break;if(Le(i,r)){n.push(r);break}}return n}const Lt=["Int","Long","Float","Double","String","Bytes"];function Rt(t,e){if(e===void 0)return;const n=t.resultPool.getData().entries.map(s=>s.obj).filter(p.isPColumn).filter(s=>Lt.includes(s.spec.valueType)),r=Fe(e,n),i=[...r,...Oe(r)];if(!i.some(s=>s.data instanceof _&&!s.data.getIsReadyOrError()))return t.createPFrame(i)}class Ot{constructor(e){this.handle=e}async findColumns(e){return await platforma.pFrameDriver.findColumns(this.handle,e)}async getColumnSpec(e){return await platforma.pFrameDriver.getColumnSpec(this.handle,e)}async listColumns(){return await platforma.pFrameDriver.listColumns(this.handle)}async calculateTableData(e){return await platforma.pFrameDriver.calculateTableData(this.handle,e)}async getUniqueValues(e){return await platforma.pFrameDriver.getUniqueValues(this.handle,e)}}function De(t){return ae({__isRef:!0,blockId:W(t,"blockId"),name:W(t,"name")})}function Ft(t){return ae({ref:De(W(t,"ref")),label:W(t,"label")})}const Dt={sdkVersion:G};function Ee(){return he({sdkVersion:G})}function Et(t){try{return Ee()}catch{return t}}function kt(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ke;exports.BlockModel=x;exports.CurrentSdkInfo=Dt;exports.FutureRef=I;exports.IS_VIRTUAL_COLUMN=Re;exports.It=Be;exports.JsRenderInternal=yt;exports.LABEL_ANNOTATION=oe;exports.MainOutputs=Ue;exports.OutputError=de;exports.PAnnotationLabel=ve;exports.PAnnotationTrace=Ae;exports.PFrameImpl=Ot;exports.RT_BINARY_PARTITIONED=D;exports.RT_BINARY_SUPER_PARTITIONED=V;exports.RT_JSON_PARTITIONED=j;exports.RT_JSON_SUPER_PARTITIONED=q;exports.RT_RESOURCE_MAP=H;exports.RT_RESOURCE_MAP_PARTITIONED=z;exports.RenderCtx=M;exports.ResultPool=Ce;exports.StagingOutputs=Je;exports.Trace=we;exports.TraceEntry=Pe;exports.TreeNodeAccessor=_;exports.UiState=Me;exports.and=Ye;exports.createPFrameForGraphs=Rt;exports.createPlDataTable=St;exports.createPlDataTableSheet=xt;exports.deriveLabels=se;exports.downgradeCfgOrLambda=Q;exports.enrichColumnsWithCompatible=Fe;exports.extractArchiveAndGetURL=ot;exports.extractConfig=It;exports.filterDataInfoEntries=be;exports.flatten=He;exports.fromPlOption=Ft;exports.fromPlRef=De;exports.getAdditionalColumns=Oe;exports.getBlobContent=tt;exports.getBlobContentAsJson=rt;exports.getBlobContentAsString=nt;exports.getDownloadedBlobContent=st;exports.getEnvironmentValue=kt;exports.getFromCfg=N;exports.getImmediate=$;exports.getImportProgress=at;exports.getJsonField=W;exports.getLastLogs=lt;exports.getLogHandle=pt;exports.getOnDemandBlobContent=it;exports.getPartitionKeysList=xe;exports.getPlatformaOrDefault=Et;exports.getProgressLog=ut;exports.getProgressLogWithInfo=ct;exports.getRawPlatformaInstance=Ee;exports.getResourceField=Qe;exports.getResourceValueAsJson=Ze;exports.getUniquePartitionKeys=_e;exports.ifDef=Z;exports.isConfigLambda=Te;exports.isEmpty=ze;exports.isolate=Ne;exports.makeArray=$e;exports.makeObject=ae;exports.mapArrayValues=We;exports.mapRecordValues=Ge;exports.mapResourceFields=et;exports.not=qe;exports.or=Xe;exports.parsePColumnData=ee;exports.parseResourceMap=At;exports.readOutput=fe;exports.wrapOutputs=Ve;Object.keys(p).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>p[t]})});Object.keys(le).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>le[t]})});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|