@platforma-sdk/model 1.27.6 → 1.27.8

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 CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var De=Object.defineProperty;var Ee=(t,e,n)=>e in t?De(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var L=(t,e,n)=>Ee(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@milaboratories/pl-model-common"),k=require("zod");class pe extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0]),this.errors=e,this.moreErrors=n}}function de(t){if(!t.ok)throw new pe(t.errors,t.moreErrors);return t.value}function ke(t){return new Proxy(t,{get(e,n){return de(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 je(t){return{type:"Isolate",cfg:t}}const Ve=N("$args"),Ne=N("$it"),Ke=N("$prod"),Be=N("$staging"),Ue=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 Je(...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 Me(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function $e(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function Ge(t){return{type:"Flatten",source:t}}function We(t){return{type:"IsEmpty",arg:t}}function He(t){return{type:"Not",operand:t}}function ze(t,e){return{type:"And",operand1:t,operand2:e}}function qe(t,e){return{type:"Or",operand1:t,operand2:e}}function Ye(t,e){return{type:"GetResourceField",source:v(t),field:v(e)}}function Xe(){return function(t){return{type:"GetResourceValueAsJson",source:v(t)}}}function Qe(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function Ze(t){return{type:"GetBlobContent",source:v(t)}}function et(t){return{type:"GetBlobContentAsString",source:v(t)}}function tt(){return function(t){return{type:"GetBlobContentAsJson",source:v(t)}}}function nt(t){return{type:"GetDownloadedBlobContent",source:v(t)}}function rt(t){return{type:"GetOnDemandBlobContent",source:v(t)}}function st(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:v(t)}}function it(t){return{type:"GetImportProgress",source:v(t)}}function ot(t,e){return{type:"GetLastLogs",source:v(t),lines:e}}function at(t,e){return{type:"GetProgressLog",source:v(t),patternToSearch:e}}function lt(t,e){return{type:"GetProgressLogWithInfo",source:v(t),patternToSearch:e}}function ut(t){return{type:"GetLogHandle",source:v(t)}}function ct(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function fe(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 pt(){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=pt();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 dt(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 w{constructor(e,n=r=>r){L(this,"isResolved",!1);L(this,"resolvedValue");this.handle=e,this.postProcess=n,dt(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new w(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new w(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 w(g().getBlobContentAsBase64(this.handle))}getFileContentAsString(){return new w(g().getBlobContentAsString(this.handle))}getFileContentAsJson(){return new w(g().getBlobContentAsString(this.handle)).mapDefined(e=>JSON.parse(e))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new w(g().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new w(g().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new w(g().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new w(g().getImportProgress(this.handle))}getLastLogs(e){return new w(g().getLastLogs(this.handle,e))}getProgressLog(e){return new w(g().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new w(g().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new w(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 he="staging",ge="main",ft={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0};function me(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(me(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 ht(t){const e=new Set;return re(e,new Set,t),e}const gt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:ft,MainAccessorName:ge,StagingAccessorName:he,getAllFutureAwaits:ht,isFutureAwait:me},Symbol.toStringTag,{value:"Module"})),ye="pl7.app/label",be="pl7.app/trace",ve=k.z.object({type:k.z.string(),importance:k.z.number().optional(),id:k.z.string().optional(),label:k.z.string()}),Ae=k.z.array(ve),mt=.001,yt="__LABEL__",le="__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[ye],P=(F=f.annotations)==null?void 0:F[be],I=(P?Ae.safeParse(JSON.parse(P)).data:void 0)??[],T=[...b??[],...I,...m??[]];if(A){const x={label:A,type:yt,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)*mt)),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(le))}let y=0,u=0;for(;y<o.length;){const h=new Set;n.includeNativeLabel&&h.add(le);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",Pe=Y+"Partitioned/",q=Pe+"JsonPartitioned",V=Pe+"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 bt(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 we(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 xe(t){const e=we(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 Se(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 ue(t){return p.mapPObjectData(t,e=>e instanceof _?e.handle:p.isDataInfo(e)?p.mapDataInfo(e,n=>n.handle):e)}function vt(t){if(t)return t.map(e=>({type:`split:${p.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function At(t){if(t)return t.map(e=>[e.axisIdx,e.value])}class _e{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=xe(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]))),I=[],T=(C,R)=>{if(R>=h.length){I.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 I){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:vt(l.axisFilters)}),(r==null?void 0:r.labelOps)??{}).map(l=>({id:o.deriveS(l.value.obj,At(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=Se(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 _e);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(he)}get outputs(){return this.getNamedAccessor(ge)}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=>ue(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=>ue(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){if(!(typeof this.ctx.getCurrentUnstableMarker>"u"))return this.ctx.getCurrentUnstableMarker()}}const G="1.27.6";function Ce(t){return t.__renderLambda===!0}function Q(t){if(t!==void 0)return Ce(t)?t.handle:t}function E(t){if(t!==void 0)return typeof t=="string"?{__renderLambda:!0,handle:t,retentive:!1}:t}function Pt(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 ct()?fe({sdkVersion:G}):{config:e}}}function It(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 I=s(f.id,d.domain);o.set(I,{id:I,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 wt(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 xt=(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 St(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 _t(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 Te(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 Le="pl7.app/graph/isVirtual",oe="pl7.app/label";function ce(t,e){const n=t.spec.axesSpec.map(p.getAxisId),r=e.spec.axesSpec.map(p.getAxisId);if(_t(t,e))return[];if(!Te(t,e))return[];const o=r.map(u=>n.filter(h=>p.matchAxisId(h,u))),a=St(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 I=JSON.stringify([A,P]);h.add(I),c.add(I)}}),{...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=xt(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 I;return(I=JSON.parse(P))==null?void 0:I[1]}).join(" / "),m={...e.spec.annotations,[Le]:"true"};return(f||b)&&(m[oe]=f&&b?f+" / "+b:f+b),{id:d,spec:{...e.spec,axesSpec:u.map((P,I)=>({...P,annotations:e.spec.axesSpec[I].annotations})),annotations:m},data:e.data}})}function Re(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(...ce(i,s),...ce(s,i))}return e}function Oe(t,e){const n=[...t];for(const r of e)for(const i of t){if(i.id===r.id)break;if(Te(i,r)){n.push(r);break}}return n}const Ct=["Int","Long","Float","Double","String","Bytes"];function Tt(t,e){if(e===void 0)return;const n=t.resultPool.getData().entries.map(s=>s.obj).filter(p.isPColumn).filter(s=>Ct.includes(s.spec.valueType)),r=Oe(e,n),i=[...r,...Re(r)];if(!i.some(s=>s.data instanceof _&&!s.data.getIsReadyOrError()))return t.createPFrame(i)}class Lt{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 Fe(t){return ae({__isRef:!0,blockId:W(t,"blockId"),name:W(t,"name")})}function Rt(t){return ae({ref:Fe(W(t,"ref")),label:W(t,"label")})}const Ot={sdkVersion:G};function Ft(){return fe({sdkVersion:G})}function Dt(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ve;exports.BlockModel=S;exports.CurrentSdkInfo=Ot;exports.FutureRef=w;exports.IS_VIRTUAL_COLUMN=Le;exports.It=Ne;exports.JsRenderInternal=gt;exports.LABEL_ANNOTATION=oe;exports.MainOutputs=Ke;exports.OutputError=pe;exports.PAnnotationLabel=ye;exports.PAnnotationTrace=be;exports.PFrameImpl=Lt;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=_e;exports.StagingOutputs=Be;exports.Trace=Ae;exports.TraceEntry=ve;exports.TreeNodeAccessor=_;exports.UiState=Ue;exports.and=ze;exports.createPFrameForGraphs=Tt;exports.createPlDataTable=It;exports.createPlDataTableSheet=wt;exports.deriveLabels=se;exports.downgradeCfgOrLambda=Q;exports.enrichColumnsWithCompatible=Oe;exports.extractArchiveAndGetURL=st;exports.extractConfig=Pt;exports.filterDataInfoEntries=Se;exports.flatten=Ge;exports.fromPlOption=Rt;exports.fromPlRef=Fe;exports.getAdditionalColumns=Re;exports.getBlobContent=Ze;exports.getBlobContentAsJson=tt;exports.getBlobContentAsString=et;exports.getDownloadedBlobContent=nt;exports.getEnvironmentValue=Dt;exports.getFromCfg=N;exports.getImmediate=$;exports.getImportProgress=it;exports.getJsonField=W;exports.getLastLogs=ot;exports.getLogHandle=ut;exports.getOnDemandBlobContent=rt;exports.getPartitionKeysList=we;exports.getProgressLog=at;exports.getProgressLogWithInfo=lt;exports.getRawPlatformaInstance=Ft;exports.getResourceField=Ye;exports.getResourceValueAsJson=Xe;exports.getUniquePartitionKeys=xe;exports.ifDef=Z;exports.isConfigLambda=Ce;exports.isEmpty=We;exports.isolate=je;exports.makeArray=Je;exports.makeObject=ae;exports.mapArrayValues=$e;exports.mapRecordValues=Me;exports.mapResourceFields=Qe;exports.not=He;exports.or=qe;exports.parsePColumnData=ee;exports.parseResourceMap=bt;exports.readOutput=de;exports.wrapOutputs=ke;Object.keys(p).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>p[t]})});
1
+ "use strict";var De=Object.defineProperty;var Ee=(t,e,n)=>e in t?De(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var L=(t,e,n)=>Ee(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@milaboratories/pl-model-common"),k=require("zod");class pe extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0]),this.errors=e,this.moreErrors=n}}function de(t){if(!t.ok)throw new pe(t.errors,t.moreErrors);return t.value}function ke(t){return new Proxy(t,{get(e,n){return de(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 je(t){return{type:"Isolate",cfg:t}}const Ve=N("$args"),Ne=N("$it"),Ke=N("$prod"),Be=N("$staging"),Ue=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 Je(...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 Me(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function $e(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function Ge(t){return{type:"Flatten",source:t}}function We(t){return{type:"IsEmpty",arg:t}}function He(t){return{type:"Not",operand:t}}function ze(t,e){return{type:"And",operand1:t,operand2:e}}function qe(t,e){return{type:"Or",operand1:t,operand2:e}}function Ye(t,e){return{type:"GetResourceField",source:v(t),field:v(e)}}function Xe(){return function(t){return{type:"GetResourceValueAsJson",source:v(t)}}}function Qe(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function Ze(t){return{type:"GetBlobContent",source:v(t)}}function et(t){return{type:"GetBlobContentAsString",source:v(t)}}function tt(){return function(t){return{type:"GetBlobContentAsJson",source:v(t)}}}function nt(t){return{type:"GetDownloadedBlobContent",source:v(t)}}function rt(t){return{type:"GetOnDemandBlobContent",source:v(t)}}function st(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:v(t)}}function it(t){return{type:"GetImportProgress",source:v(t)}}function ot(t,e){return{type:"GetLastLogs",source:v(t),lines:e}}function at(t,e){return{type:"GetProgressLog",source:v(t),patternToSearch:e}}function lt(t,e){return{type:"GetProgressLogWithInfo",source:v(t),patternToSearch:e}}function ut(t){return{type:"GetLogHandle",source:v(t)}}function ct(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function fe(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 pt(){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=pt();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 dt(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 w{constructor(e,n=r=>r){L(this,"isResolved",!1);L(this,"resolvedValue");this.handle=e,this.postProcess=n,dt(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new w(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new w(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 w(g().getBlobContentAsBase64(this.handle))}getFileContentAsString(){return new w(g().getBlobContentAsString(this.handle))}getFileContentAsJson(){return new w(g().getBlobContentAsString(this.handle)).mapDefined(e=>JSON.parse(e))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new w(g().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new w(g().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new w(g().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new w(g().getImportProgress(this.handle))}getLastLogs(e){return new w(g().getLastLogs(this.handle,e))}getProgressLog(e){return new w(g().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new w(g().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new w(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 he="staging",ge="main",ft={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0};function me(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(me(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 ht(t){const e=new Set;return re(e,new Set,t),e}const gt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:ft,MainAccessorName:ge,StagingAccessorName:he,getAllFutureAwaits:ht,isFutureAwait:me},Symbol.toStringTag,{value:"Module"})),ye="pl7.app/label",be="pl7.app/trace",ve=k.z.object({type:k.z.string(),importance:k.z.number().optional(),id:k.z.string().optional(),label:k.z.string()}),Ae=k.z.array(ve),mt=.001,yt="__LABEL__",le="__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[ye],P=(F=f.annotations)==null?void 0:F[be],I=(P?Ae.safeParse(JSON.parse(P)).data:void 0)??[],T=[...b??[],...I,...m??[]];if(A){const x={label:A,type:yt,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)*mt)),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(le))}let y=0,u=0;for(;y<o.length;){const h=new Set;n.includeNativeLabel&&h.add(le);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",Pe=Y+"Partitioned/",q=Pe+"JsonPartitioned",V=Pe+"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 bt(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 we(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 xe(t){const e=we(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 Se(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 ue(t){return p.mapPObjectData(t,e=>e instanceof _?e.handle:p.isDataInfo(e)?p.mapDataInfo(e,n=>n.handle):e)}function vt(t){if(t)return t.map(e=>({type:`split:${p.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function At(t){if(t)return t.map(e=>[e.axisIdx,e.value])}class _e{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=xe(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]))),I=[],T=(C,R)=>{if(R>=h.length){I.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 I){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:vt(l.axisFilters)}),(r==null?void 0:r.labelOps)??{}).map(l=>({id:o.deriveS(l.value.obj,At(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=Se(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 _e);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(he)}get outputs(){return this.getNamedAccessor(ge)}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=>ue(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=>ue(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){if(!(typeof this.ctx.getCurrentUnstableMarker>"u"))return this.ctx.getCurrentUnstableMarker()}}const G="1.27.8";function Ce(t){return t.__renderLambda===!0}function Q(t){if(t!==void 0)return Ce(t)?t.handle:t}function E(t){if(t!==void 0)return typeof t=="string"?{__renderLambda:!0,handle:t,retentive:!1}:t}function Pt(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 ct()?fe({sdkVersion:G}):{config:e}}}function It(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 I=s(f.id,d.domain);o.set(I,{id:I,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 wt(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 xt=(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 St(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 _t(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 Te(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 Le="pl7.app/graph/isVirtual",oe="pl7.app/label";function ce(t,e){const n=t.spec.axesSpec.map(p.getAxisId),r=e.spec.axesSpec.map(p.getAxisId);if(_t(t,e))return[];if(!Te(t,e))return[];const o=r.map(u=>n.filter(h=>p.matchAxisId(h,u))),a=St(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 I=JSON.stringify([A,P]);h.add(I),c.add(I)}}),{...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=xt(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 I;return(I=JSON.parse(P))==null?void 0:I[1]}).join(" / "),m={...e.spec.annotations,[Le]:"true"};return(f||b)&&(m[oe]=f&&b?f+" / "+b:f+b),{id:d,spec:{...e.spec,axesSpec:u.map((P,I)=>({...P,annotations:e.spec.axesSpec[I].annotations})),annotations:m},data:e.data}})}function Re(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(...ce(i,s),...ce(s,i))}return e}function Oe(t,e){const n=[...t];for(const r of e)for(const i of t){if(i.id===r.id)break;if(Te(i,r)){n.push(r);break}}return n}const Ct=["Int","Long","Float","Double","String","Bytes"];function Tt(t,e){if(e===void 0)return;const n=t.resultPool.getData().entries.map(s=>s.obj).filter(p.isPColumn).filter(s=>Ct.includes(s.spec.valueType)),r=Oe(e,n),i=[...r,...Re(r)];if(!i.some(s=>s.data instanceof _&&!s.data.getIsReadyOrError()))return t.createPFrame(i)}class Lt{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 Fe(t){return ae({__isRef:!0,blockId:W(t,"blockId"),name:W(t,"name")})}function Rt(t){return ae({ref:Fe(W(t,"ref")),label:W(t,"label")})}const Ot={sdkVersion:G};function Ft(){return fe({sdkVersion:G})}function Dt(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ve;exports.BlockModel=S;exports.CurrentSdkInfo=Ot;exports.FutureRef=w;exports.IS_VIRTUAL_COLUMN=Le;exports.It=Ne;exports.JsRenderInternal=gt;exports.LABEL_ANNOTATION=oe;exports.MainOutputs=Ke;exports.OutputError=pe;exports.PAnnotationLabel=ye;exports.PAnnotationTrace=be;exports.PFrameImpl=Lt;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=_e;exports.StagingOutputs=Be;exports.Trace=Ae;exports.TraceEntry=ve;exports.TreeNodeAccessor=_;exports.UiState=Ue;exports.and=ze;exports.createPFrameForGraphs=Tt;exports.createPlDataTable=It;exports.createPlDataTableSheet=wt;exports.deriveLabels=se;exports.downgradeCfgOrLambda=Q;exports.enrichColumnsWithCompatible=Oe;exports.extractArchiveAndGetURL=st;exports.extractConfig=Pt;exports.filterDataInfoEntries=Se;exports.flatten=Ge;exports.fromPlOption=Rt;exports.fromPlRef=Fe;exports.getAdditionalColumns=Re;exports.getBlobContent=Ze;exports.getBlobContentAsJson=tt;exports.getBlobContentAsString=et;exports.getDownloadedBlobContent=nt;exports.getEnvironmentValue=Dt;exports.getFromCfg=N;exports.getImmediate=$;exports.getImportProgress=it;exports.getJsonField=W;exports.getLastLogs=ot;exports.getLogHandle=ut;exports.getOnDemandBlobContent=rt;exports.getPartitionKeysList=we;exports.getProgressLog=at;exports.getProgressLogWithInfo=lt;exports.getRawPlatformaInstance=Ft;exports.getResourceField=Ye;exports.getResourceValueAsJson=Xe;exports.getUniquePartitionKeys=xe;exports.ifDef=Z;exports.isConfigLambda=Ce;exports.isEmpty=We;exports.isolate=je;exports.makeArray=Je;exports.makeObject=ae;exports.mapArrayValues=$e;exports.mapRecordValues=Me;exports.mapResourceFields=Qe;exports.not=He;exports.or=qe;exports.parsePColumnData=ee;exports.parseResourceMap=bt;exports.readOutput=de;exports.wrapOutputs=ke;Object.keys(p).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>p[t]})});
2
2
  //# sourceMappingURL=index.js.map