@platforma-sdk/model 1.42.0 → 1.42.4

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.
@@ -1,8 +1,6 @@
1
- import { AxesSpec, PTableAbsent, PTableValue } from '@milaboratories/pl-model-common';
1
+ import { AxesSpec, PTableValueAxis } from '@milaboratories/pl-model-common';
2
2
  /** Key is a set of all axes values, which means it is unique across rows */
3
- export type PTableKey = AxisValue[];
4
- /** Readable axis value */
5
- export type AxisValue = string | number | PTableAbsent;
3
+ export type PTableKey = PTableValueAxis[];
6
4
  /**
7
5
  * Information on selected rows.
8
6
  * for selectedKeys = [[axis1Value, axis2Value, axis3Value], ...]
@@ -15,5 +13,4 @@ export type PlSelectionModel = {
15
13
  selectedKeys: PTableKey[];
16
14
  };
17
15
  export declare function createPlSelectionModel(): PlSelectionModel;
18
- export declare function mapPTableValueToAxisKey(value: PTableValue): AxisValue;
19
16
  //# sourceMappingURL=PlSelectionModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlSelectionModel.d.ts","sourceRoot":"","sources":["../../src/components/PlSelectionModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG3F,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AAEpC,0BAA0B;AAC1B,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,YAAY,EAAE,SAAS,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,gBAAgB,CAKzD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAMrE"}
1
+ {"version":3,"file":"PlSelectionModel.d.ts","sourceRoot":"","sources":["../../src/components/PlSelectionModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEjF,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,YAAY,EAAE,SAAS,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,gBAAgB,CAKzD"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var gt=Object.defineProperty;var yt=(t,e,n)=>e in t?gt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var V=(t,e,n)=>yt(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@milaboratories/pl-model-common"),De=require("canonicalize"),j=require("zod"),Le=require("@milaboratories/pl-error-like");class Ne extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0].message),this.errors=e,this.moreErrors=n}}function ke(t){if(!t.ok)throw new Ne(t.errors,t.moreErrors);return t.value}function bt(t){return new Proxy(t,{get(e,n){return ke(e[n])}})}function I(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null?Q(t):t}function W(t){return{type:"GetFromCtx",variable:t}}function vt(t){return{type:"Isolate",cfg:t}}const Ct=W("$args"),Tt=W("$it"),Pt=W("$prod"),At=W("$staging"),St=W("$ui");function Q(t){return{type:"Immediate",value:t}}function we(t){const e={};for(const[n,r]of Object.entries(t))e[n]=I(r);return{type:"MakeObject",template:e}}function It(...t){const e=[];for(const n of t)e.push(I(n));return{type:"MakeArray",template:e}}function ee(t,e){return{type:"GetJsonField",source:I(t),field:I(e)}}function wt(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function xt(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function Ft(t){return{type:"Flatten",source:t}}function _t(t){return{type:"IsEmpty",arg:t}}function Lt(t){return{type:"Not",operand:t}}function Et(t,e){return{type:"And",operand1:t,operand2:e}}function Ot(t,e){return{type:"Or",operand1:t,operand2:e}}function Rt(t,e){return{type:"GetResourceField",source:I(t),field:I(e)}}function Vt(){return function(t){return{type:"GetResourceValueAsJson",source:I(t)}}}function Dt(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function Nt(t,e){return{type:"GetBlobContent",range:e,source:I(t)}}function kt(t,e){return{type:"GetBlobContentAsString",range:e,source:I(t)}}function Ut(){return function(t,e){return{type:"GetBlobContentAsJson",range:e,source:I(t)}}}function Mt(t){return{type:"GetDownloadedBlobContent",source:I(t)}}function Jt(t){return{type:"GetOnDemandBlobContent",source:I(t)}}function Kt(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:I(t)}}function jt(t){return{type:"GetImportProgress",source:I(t)}}function Bt(t,e){return{type:"GetLastLogs",source:I(t),lines:e}}function qt(t,e){return{type:"GetProgressLog",source:I(t),patternToSearch:e}}function $t(t,e){return{type:"GetProgressLogWithInfo",source:I(t),patternToSearch:e}}function Wt(t){return{type:"GetLogHandle",source:I(t)}}function Gt(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function Ue(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 zt(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx}function v(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx;throw new Error("Not in config rendering context")}function H(t,e){const n=zt();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 me=new Map;function Ht(t,e){t in v().callbackRegistry||(v().callbackRegistry[t]=n=>{for(const r of me.get(t))r(n)},me.set(t,[])),me.get(t).push(e)}class L{constructor(e,n=r=>r){V(this,"isResolved",!1);V(this,"resolvedValue");this.handle=e,this.postProcess=n,Ht(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new L(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new L(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 ue(t,e){return t===void 0?void 0:e(t)}class O{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 ue(v().resolveWithCommon(this.handle,e,...n),i=>new O(i,r))}get resourceType(){return v().getResourceType(this.handle)}getInputsLocked(){return v().getInputsLocked(this.handle)}getOutputsLocked(){return v().getOutputsLocked(this.handle)}getIsReadyOrError(){return v().getIsReadyOrError(this.handle)}getIsFinal(){return v().getIsFinal(this.handle)}getError(){const e=[...this.resolvePath,"error"];return ue(v().getError(this.handle),n=>new O(n,e))}listInputFields(){return v().listInputFields(this.handle)}listOutputFields(){return v().listOutputFields(this.handle)}listDynamicFields(){return v().listDynamicFields(this.handle)}getKeyValueBase64(e){return v().getKeyValueBase64(this.handle,e)}getKeyValueAsString(e){return v().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 v().getDataBase64(this.handle)}getDataAsString(){return v().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(([,o])=>{if(!l.isPColumn(o))throw new Error(`not a PColumn (kind = ${o.spec.kind})`);return o})}parsePObjectCollection(e=!1,n=""){const r=v().parsePObjectCollection(this.handle,e,n,...this.resolvePath);if(r===void 0)return;const i={};for(const[o,s]of Object.entries(r)){const a=[...this.resolvePath,o];i[o]=l.mapPObjectData(s,u=>new O(u,a))}return i}getFileContentAsBase64(e){return new L(v().getBlobContentAsBase64(this.handle,e))}getFileContentAsString(e){return new L(v().getBlobContentAsString(this.handle,e))}getFileContentAsJson(e){return new L(v().getBlobContentAsString(this.handle,e)).mapDefined(n=>JSON.parse(n))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new L(v().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new L(v().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new L(v().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new L(v().getImportProgress(this.handle))}getLastLogs(e){return new L(v().getLastLogs(this.handle,e))}getProgressLog(e){return new L(v().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new L(v().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new L(v().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:o}={fieldType:"Input",requireLocked:!0,skipUnresolved:!1,...n},s=e;if(i&&(r==="Input"&&!this.getInputsLocked()||r==="Output"&&!this.getOutputsLocked()))return;let u=(r==="Input"?this.listInputFields():r==="Output"?this.listOutputFields():this.listDynamicFields()).map(c=>[c,this.resolve({field:c,assertFieldType:r})]);return o&&(u=u.filter(c=>c[1]!==void 0)),u.map(([c,m])=>s(c,m))}}const Me="staging",Je="main",Xt={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0,pTablePartitionFiltersSupport:!0,pFrameInSetFilterSupport:!0};function Ke(t){return typeof t=="object"&&t!==null&&"__awaited_futures__"in t}function ye(t,e,n){if(e.has(n))return;if(e.add(n),typeof n==="object")if(Ke(n))n.__awaited_futures__.forEach(i=>t.add(i));else if(Array.isArray(n))for(const i of n)ye(t,e,i);else for(const[,i]of Object.entries(n))i!==n&&ye(t,e,i)}function Yt(t){const e=new Set;return ye(e,new Set,t),e}const Qt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:Xt,MainAccessorName:Je,StagingAccessorName:Me,getAllFutureAwaits:Yt,isFutureAwait:Ke},Symbol.toStringTag,{value:"Module"})),je="pl7.app/label",Be="pl7.app/trace",qe=j.z.object({type:j.z.string(),importance:j.z.number().optional(),id:j.z.string().optional(),label:j.z.string()}),$e=j.z.array(qe),Zt=.001,en="__LABEL__",Ee="__LABEL__@1";function xe(t,e,n={}){const r=new Map,i=n.forceTraceElements!==void 0&&n.forceTraceElements.length>0?new Set(n.forceTraceElements):void 0,o=new Map,s=t.map(f=>{var p,C;const b=e(f);let d,y,T;"spec"in b&&typeof b.spec=="object"?(d=b.spec,y=b.prefixTrace,T=b.suffixTrace):d=b;const R=(p=d.annotations)==null?void 0:p[je],x=(C=d.annotations)==null?void 0:C[Be],A=(x?$e.safeParse(JSON.parse(x)).data:void 0)??[],S=[...y??[],...A,...T??[]];if(R!==void 0){const _={label:R,type:en,importance:-2};n.addLabelAsSuffix?S.push(_):S.splice(0,0,_)}const P=[],F=new Map;for(let _=S.length-1;_>=0;--_){const{type:G}=S[_],k=S[_].importance??0,J=(F.get(G)??0)+1;F.set(G,J);const N=`${G}@${J}`;o.set(N,(o.get(N)??0)+1),r.set(N,Math.max(r.get(N)??Number.NEGATIVE_INFINITY,k-(S.length-_)*Zt)),P.push({...S[_],fullType:N,occurrenceIndex:J})}return P.reverse(),{value:f,spec:d,label:R,fullTrace:P}}),a=[],u=[],c=[...r];c.sort(([,f],[,b])=>b-f);for(const[f]of c)f.endsWith("@1")||o.get(f)===t.length?a.push(f):u.push(f);const m=(f,b=!1)=>{const d=[];for(let y=0;y<s.length;y++){const T=s[y],R=T.fullTrace.filter(S=>f.has(S.fullType)||i&&i.has(S.type));if(R.length===0)if(b)d.push({label:"Unlabeled",value:T.value});else return;const x=R.map(S=>S.label),A=n.separator??" / ";d.push({label:x.join(A),value:T.value})}return d};if(a.length===0){if(u.length!==0)throw new Error("Non-empty secondary types list while main types list is empty.");return m(new Set(Ee),!0)}let h=0,g=-1;for(;h<a.length;){const f=new Set;n.includeNativeLabel&&f.add(Ee);for(let d=0;d<h;++d)f.add(a[d]);g>=0&&f.add(a[g]);const b=m(f);if(b!==void 0&&new Set(b.map(d=>d.label)).size===t.length)return b;g++,g>=a.length&&(h++,g=h)}return m(new Set([...a,...u]),!0)}const ie="PColumnData/",te=ie+"ResourceMap",ne=ie+"Partitioned/ResourceMap",B=ie+"JsonPartitioned",M=ie+"BinaryPartitioned",We=ie+"Partitioned/",re=We+"JsonPartitioned",q=We+"BinaryPartitioned";function Ge(t,e,n,r=[],i){if(t===void 0)return!1;switch(t.resourceType.name){case te:{let o=t.getInputsLocked();for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"}),u=[...r,...JSON.parse(s)],c=a===void 0?void 0:e(a);c===void 0&&(o=!1),(c!==void 0||i)&&n.push({key:u,value:c})}return o}case ne:{let o=t.getInputsLocked();for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)o=!1;else{const u=[...r,...JSON.parse(s)],c=Ge(a,e,n,u,i);o=o&&c}}return o}default:throw new Error(`Unknown resource type: ${t.resourceType.name}`)}}function tn(t,e,n=!1){const r=[];return{isComplete:Ge(t,e,r,[],n),data:r}}const be=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 ze(t){if(!t)return;const e=t.resourceType.name,n=t.getDataAsJson(),r=[];let i=0;switch(e){case te:i=n.keyLength;break;case ne:i=n.partitionKeyLength+n.keyLength;break;case B:case M:i=n.partitionKeyLength;break;case q:case re:i=n.superPartitionKeyLength+n.partitionKeyLength;break}switch(e){case te:case B:case M:for(let o of t.listInputFields()){e===M&&(o=be(o).baseKey);const s=[...JSON.parse(o)];r.push(s)}break;case ne:case q:case re:for(const o of t.listInputFields()){const s=[...JSON.parse(o)],a=t.resolve({field:o,assertFieldType:"Input"});if(a!==void 0)for(let u of a.listInputFields()){e===q&&(u=be(u).baseKey);const c=[...s,...JSON.parse(u)];r.push(c)}}break}return{data:r,keyLength:i}}function nn(t){if(t.type!=="JsonPartitioned"&&t.type!=="BinaryPartitioned")throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${t.type}`);const{parts:e,partitionKeyLength:n}=t,r=[];for(let i=0;i<n;++i)r.push(new Set);for(const i of e){const o=i.key;if(o.length!==n)throw new Error(`Key length (${o.length}) does not match partition length (${n}) for key: ${JSON.stringify(o)}`);for(let s=0;s<n;++s)r[s].add(o[s])}return r.map(i=>Array.from(i.values()))}function He(t){if(t===void 0)return;if(l.isDataInfoEntries(t))return nn(t);const e=ze(t);if(!e)return;const{data:n,keyLength:r}=e,i=[];for(let o=0;o<r;++o)i.push(new Set);for(const o of n){if(o.length!==r)throw new Error("key length does not match partition length");for(let s=0;s<r;++s)i[s].add(o[s])}return i.map(o=>Array.from(o.values()))}function ce(t,e=[]){if(t===void 0||!t.getIsReadyOrError())return;const n=t.resourceType.name,r=t.getDataAsJson();if(e.length>0&&(n===re||n===q))throw new Error(`Unexpected nested super-partitioned resource: ${n}`);switch(n){case te:case ne:throw new Error(`Only data columns are supported, got: ${n}`);case B:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[];for(const o of t.listInputFields()){const s=t.resolve({field:o,assertFieldType:"Input"});if(s===void 0)return;const a=[...e,...JSON.parse(o)];i.push({key:a,value:s})}return{type:"JsonPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case M:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[],o=new Map;for(const s of t.listInputFields()){const a=be(s),u=t.resolve({field:s,assertFieldType:"Input"});if(u===void 0)return;let c=o.get(a.baseKey);c||(c={},o.set(a.baseKey,c)),a.type==="index"?c.index=u:c.values=u}for(const[s,a]of o.entries()){if(!a.index||!a.values)return;const u=[...e,...JSON.parse(s)];i.push({key:u,value:{index:a.index,values:a.values}})}return{type:"BinaryPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case re:{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,o=[];for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==B)throw new Error(`Expected ${B} inside ${n}, but got ${a.resourceType.name}`);const u=ce(a,JSON.parse(s));if(u===void 0)return;if(u.type!=="JsonPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${u.type}`);o.push(...u.parts)}return{type:"JsonPartitioned",partitionKeyLength:i,parts:o}}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,o=[];for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==M)throw new Error(`Expected ${M} inside ${n}, but got ${a.resourceType.name}`);const u=ce(a,JSON.parse(s));if(u===void 0)return;if(u.type!=="BinaryPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${u.type}`);o.push(...u.parts)}return{type:"BinaryPartitioned",partitionKeyLength:i,parts:o}}default:throw new Error(`Unknown resource type: ${n}`)}}function Xe(t){if(t!==void 0){if(l.isDataInfoEntries(t))return t;if(l.isDataInfo(t))return l.dataInfoToEntries(t);if(t instanceof O)return ce(t);throw new Error(`Unexpected input type: ${typeof t}`)}}function Ye(t,e){const n=[...e].sort((o,s)=>s[0]-o[0]);if(t.type==="JsonPartitioned"||t.type==="BinaryPartitioned"){const{partitionKeyLength:o}=t;for(const[s]of e)if(s>=o)throw new Error(`Can't filter on non-partitioned axis ${s}. Must be >= ${o}`)}else if(t.type==="Json"){const{keyLength:o}=t;for(const[s]of e)if(s>=o)throw new Error(`Can't filter on non-data axis ${s}. Must be >= ${o}`)}const r=o=>{for(const[s,a]of n)if(o[s]!==a)return!1;return!0},i=o=>{const s=[...o];for(const[a]of n)s.splice(a,1);return s};switch(t.type){case"Json":{const o=t.data.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"Json",keyLength:t.keyLength-e.length,data:o}}case"JsonPartitioned":{const o=t.parts.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:o}}case"BinaryPartitioned":{const o=t.parts.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:o}}}}function rn(t){if(!Array.isArray(t))return!1;if(t.length===0)return!0;const e=t[0];return typeof e=="object"&&e!==null&&"key"in e&&"val"in e}class on{constructor(e){this.columns=e}selectColumns(e){const n=typeof e=="function"?e:l.selectorsToPredicate(e);return this.columns.filter(r=>n(r.spec))}}function sn(t){if(t)return t.map(e=>({type:`split:${l.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function an(t){if(t)return t.map(e=>[e.axisIdx,e.value])}function ln(t,e){if(!e||e.length===0)return t;const n=[...e].sort((r,i)=>r[0]-i[0]);return De({id:t,axisFilters:n})}function Oe(t){if(!t||typeof t!="object")return!1;const e=t,n=e.domain&&typeof e.domain=="object"&&Object.values(e.domain).some(i=>typeof i=="object"&&i!==null&&"anchor"in i),r=e.axes&&Array.isArray(e.axes)&&e.axes.some(i=>typeof i=="object"&&i!==null&&"anchor"in i);return!!e.domainAnchor||n||r}function un(t){if(typeof t!="object"||!("axes"in t)||t.axes===void 0)return[];const e=t.axes.map((n,r)=>typeof n=="object"&&"split"in n&&n.split===!0?r:-1).filter(n=>n!==-1);if(e.length>0&&t.partialAxesMatch!==void 0)throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");return e.sort((n,r)=>n-r),e}class ${constructor(){V(this,"defaultProviderStore",[]);V(this,"providers",[new on(this.defaultProviderStore)]);V(this,"axisLabelProviders",[])}addColumnProvider(e){return this.providers.push(e),this}addAxisLabelProvider(e){return this.axisLabelProviders.push(e),this}addColumns(e){return this.defaultProviderStore.push(...e),this}addColumn(e){return this.defaultProviderStore.push(e),this}findLabels(e){for(const n of this.axisLabelProviders){const r=n.findLabels(e);if(r)return r}}getUniversalEntries(e,n){const{anchorCtx:r,labelOps:i,dontWaitAllData:o=!1,overrideLabelAnnotation:s=!1,exclude:a}=n??{},u={...s&&(i==null?void 0:i.includeNativeLabel)!==!1?{includeNativeLabel:!0}:{},...i??{}};let c=()=>!1;if(a){const d=(Array.isArray(a)?a:[a]).map(y=>{if(Oe(y)){if(!r)throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");return l.selectorsToPredicate(l.resolveAnchors(r.anchors,y,n))}else return l.selectorsToPredicate(y)});c=y=>d.some(T=>T(y))}const m=typeof e=="function"?[e]:Array.isArray(e)?e:[e],h=[],g=new Set;for(const d of m){const y=Oe(d);let T;if(y){if(!r)throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");T=l.resolveAnchors(r.anchors,d,n)}else T=d;const R=new Set,x=[];for(const P of this.providers){const F=P.selectColumns(T);for(const p of F){if(c(p.spec))continue;if(R.has(p.id))throw new Error(`Duplicate column id ${p.id} in provider ${P.constructor.name}`);const C=l.deriveNativeId(p.spec);g.has(C)||(R.add(p.id),g.add(C),x.push(p))}}if(x.length===0)continue;const A=un(d),S=A.length>0;for(const P of x){if(!l.isPColumnSpec(P.spec))continue;const F=P.spec;if(S){if(rn(P.data))throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${P.id}`);const p=Xe(P.data);if(!p){if(o)continue;return}if(!l.isPartitionedDataInfoEntries(p))throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${p.type} for column ${P.id}`);const C=He(p),_=A[A.length-1];if(_>=p.partitionKeyLength)throw new Error(`Not enough partition keys (${p.partitionKeyLength}) for requested split axes (max index ${_}) in column ${F.name}`);const G=A.map(E=>this.findLabels(l.getAxisId(F.axesSpec[E]))),k=[],J=(E,z)=>{if(z>=A.length){if(k.push([...E]),k.length>1e4)throw new Error("Too many key combinations, aborting.");return}const U=A[z];if(U>=C.length)throw new Error(`Axis index ${U} out of bounds for unique keys array (length ${C.length}) during split key generation for column ${P.id}`);const K=C[U];if(!K||K.length===0){k.length=0;return}for(const oe of K)E.push(oe),J(E,z+1),E.pop()};if(J([],0),k.length===0)continue;const N=[...F.axesSpec],dt=A.map(E=>E);for(let E=A.length-1;E>=0;E--)N.splice(A[E],1);const ft={...F,axesSpec:N};for(const E of k){const z=E.map((U,K)=>{const oe=dt[K],ht=l.getAxisId(F.axesSpec[oe]),he=G[K],mt=(he==null?void 0:he[U])??String(U);return{axisIdx:oe,axisId:ht,value:U,label:mt}});h.push({type:"split",originalColumn:P,spec:F,adjustedSpec:ft,dataEntries:p,axisFilters:z})}}else h.push({type:"direct",originalColumn:P,spec:F,adjustedSpec:F})}}if(h.length===0)return[];const f=xe(h,d=>({spec:d.spec,suffixTrace:d.type==="split"?sn(d.axisFilters):void 0}),u),b=[];for(const{value:d,label:y}of f){const{originalColumn:T,spec:R}=d,x=d.type==="split"?d.axisFilters:void 0,A=an(x);let S;r?S=r.deriveS(R,A):S=ln(T.id,A);let P={...d.adjustedSpec};s&&(P={...P,annotations:{...P.annotations??{},"pl7.app/label":y}}),b.push({id:S,spec:P,data:()=>d.type==="split"?l.entriesToDataInfo(Ye(d.dataEntries,A)):d.originalColumn.data,label:y})}return b}getColumns(e,n){const r=this.getUniversalEntries(e,{overrideLabelAnnotation:!0,...n??{}});if(!r)return;const i=[];for(const o of r){const s=o.data();if(!s){if(n!=null&&n.dontWaitAllData)continue;return}i.push({id:o.id,spec:o.spec,data:s})}return i}}function ve(t){const e=i=>i.operator!=="InSet"?i:{operator:"Or",operands:i.references.map(o=>({operator:"Equal",reference:o}))},n=(i,o)=>{switch(i.operator){case"And":return{...i,operands:i.operands.map(a=>n(a,o))};case"Or":return{...i,operands:i.operands.map(a=>n(a,o))};case"Not":return{...i,operand:n(i.operand,o)};default:return o(i)}},r=(i,o)=>({...i,predicate:n(i.predicate,o)});return t.map(i=>r(i,e))}function ge(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 Re(t){return l.mapPObjectData(t,e=>e instanceof O?e.handle:l.isDataInfo(e)?l.mapDataInfo(e,n=>n.handle):e)}class Qe{constructor(){V(this,"ctx",v())}calculateOptions(e){return this.ctx.calculateOptions(e)}getOptions(e,n){const r=typeof e=="function"?e:l.selectorsToPredicate(e),i=this.getSpecs().entries.filter(a=>r(a.obj));let o={},s=!1;return typeof n<"u"&&(typeof n=="function"?o=n:typeof n=="object"&&("includeNativeLabel"in n||"separator"in n||"addLabelAsSuffix"in n?o=n:(n=n,o=n.label??{},s=n.refsWithEnrichments??!1))),typeof o=="object"?xe(i,a=>a.obj,o??{}).map(({value:{ref:a},label:u})=>({ref:l.withEnrichments(a,s),label:u})):i.map(({ref:a,obj:u})=>({ref:l.withEnrichments(a,s),label:o(u,a)}))}resolveAnchorCtx(e){if(e instanceof l.AnchoredIdDeriver)return e;const n={};for(const[r,i]of Object.entries(e))if(l.isPlRef(i)){const o=this.getPColumnSpecByRef(i);if(!o)return;n[r]=o}else n[r]=i;return new l.AnchoredIdDeriver(n)}getAnchoredPColumns(e,n,r){const i=this.resolveAnchorCtx(e);if(i)return new $().addColumnProvider(this).addAxisLabelProvider(this).getColumns(n,{...r,anchorCtx:i})}getCanonicalOptions(e,n,r){const i=this.resolveAnchorCtx(e);if(!i)return;const o=new $().addColumnProvider(this).addAxisLabelProvider(this).getUniversalEntries(n,{...r,anchorCtx:i});if(o)return o.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 O(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:l.mapValueInVOE(n.obj.data,r=>new O(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 l.mapPObjectData(n,i=>new O(i,[e.blockId,e.name]))}getPColumnByRef(e){const n=this.getDataByRef(e);if(n)return l.ensurePColumn(n)}getPColumnSpecByRef(e){const n=this.getSpecByRef(e);if(n){if(!l.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(!l.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&&ge(e.domain,i.domain)){for(let o=0;o<e.axesSpec.length;++o){const s=e.axesSpec[o],a=i.axesSpec[o];if(s.name!==a.name||s.type!==a.type||!ge(s.domain,a.domain))continue e}n.push(r.obj)}}return n}findLabels(e){const n=this.getData();for(const r of n.entries){if(!l.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&&ge(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(s=>[JSON.parse(s[0])[0],s[1]]))}}}selectColumns(e){const n=typeof e=="function"?e:l.selectorsToPredicate(e);return this.getSpecs().entries.filter(({obj:i})=>l.isPColumnSpec(i)?n(i):!1).map(({ref:i,obj:o})=>{const s=o;let a=null;const u=this;return{id:De(i),spec:s,get data(){var c;return a!==null||(a=(c=u.getPColumnByRef(i))==null?void 0:c.data),a}}})}findLabelsForColumnAxis(e,n){var o;const r=this.findLabels(e.axesSpec[n]);if(!r)return;const i=(o=e.annotations)==null?void 0:o["pl7.app/axisKeys/"+n];if(i!==void 0){const s=JSON.parse(i);return Object.fromEntries(s.map(a=>[a,r[a]??"Unlabelled"]))}else return r}}class X{constructor(){V(this,"ctx");V(this,"_argsCache");V(this,"_uiStateCache");V(this,"_activeArgsCache");V(this,"resultPool",new Qe);this.ctx=v()}get args(){if(this._argsCache===void 0){const e=this.ctx.args,n=typeof e=="function"?e():e;this._argsCache={v:JSON.parse(n)}}return this._argsCache.v}get uiState(){if(this._uiStateCache===void 0){const e=this.ctx.uiState,n=typeof e=="function"?e():e;this._uiStateCache={v:n?JSON.parse(n):{}}}return this._uiStateCache.v}get activeArgs(){if(this._activeArgsCache===void 0){const e=this.ctx.activeArgs,n=typeof e=="function"?e():e;this._activeArgsCache={v:n?JSON.parse(n):void 0}}return this._activeArgsCache.v}getNamedAccessor(e){return ue(this.ctx.getAccessorHandleByName(e),n=>new O(n,[e]))}get prerun(){return this.getNamedAccessor(Me)}get outputs(){return this.getNamedAccessor(Je)}findLabels(e){return this.resultPool.findLabels(e)}verifyInlineAndExplicitColumnsSupport(e){var i;const n=e.some(o=>!(o.data instanceof O)||l.isDataInfo(o.data)),r=((i=this.ctx.featureFlags)==null?void 0:i.inlineColumnsSupport)===!0;if(n&&!r)throw Error("Inline or explicit columns not supported")}patchPTableDef(e){var n,r;return(n=this.ctx.featureFlags)!=null&&n.pTablePartitionFiltersSupport||(e={...e,partitionFilters:[],filters:[...e.partitionFilters,...e.filters]}),(r=this.ctx.featureFlags)!=null&&r.pFrameInSetFilterSupport||(e={...e,partitionFilters:ve(e.partitionFilters),filters:ve(e.filters)}),e}createPFrame(e){return this.verifyInlineAndExplicitColumnsSupport(e),this.ctx.createPFrame(e.map(n=>Re(n)))}createPTable(e){let n;return"columns"in e?n=this.patchPTableDef({src:{type:"full",entries:e.columns.map(r=>({type:"column",column:r}))},partitionFilters:e.filters??[],filters:[],sorting:e.sorting??[]}):n=this.patchPTableDef(e),this.verifyInlineAndExplicitColumnsSupport(l.extractAllColumns(n.src)),this.ctx.createPTable(l.mapPTableDef(n,r=>Re(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){return this.ctx.getCurrentUnstableMarker()}logInfo(e){this.ctx.logInfo(e)}logWarn(e){this.ctx.logWarn(e)}logError(e){this.ctx.logError(e)}}const cn="1.42.0",Z=cn;function Ze(t){return t.__renderLambda===!0}function ae(t){if(t!==void 0)return Ze(t)?t.handle:t}function pn(t){return l.extractConfigGeneric(t)}const w=class w{constructor(e,n,r,i,o,s,a,u,c){this._renderingMode=e,this._initialArgs=n,this._initialUiState=r,this._outputs=i,this._inputsValid=o,this._sections=s,this._title=a,this._enrichmentTargets=u,this._featureFlags=c}static create(e="Heavy"){return new w(e,void 0,{},{},Q(!0),Q([]),void 0,void 0,{...w.INITIAL_BLOCK_FEATURE_FLAGS})}output(e,n,r={}){if(typeof n=="function"){const i=`output#${e}`;return H(i,()=>n(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:{__renderLambda:!0,handle:i,...r}},this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}else return new w(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:n},this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}retentiveOutput(e,n){return this.output(e,n,{retentive:!0})}argsValid(e){return typeof e=="function"?(H("inputsValid",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,{__renderLambda:!0,handle:"inputsValid"},this._sections,this._title,this._enrichmentTargets,this._featureFlags)):new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,e,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}sections(e){return Array.isArray(e)?this.sections(Q(e)):typeof e=="function"?(H("sections",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,{__renderLambda:!0,handle:"sections"},this._title,this._enrichmentTargets,this._featureFlags)):new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,e,this._title,this._enrichmentTargets,this._featureFlags)}title(e){return H("title",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,{__renderLambda:!0,handle:"title"},this._enrichmentTargets,this._featureFlags)}initialArgs(e){return new w(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withArgs(e){return new w(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withUiState(e){return new w(this._renderingMode,this._initialArgs,e,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withFeatureFlags(e){return new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,{...this._featureFlags,...e})}enriches(e){return H("enrichmentTargets",e),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,{__renderLambda:!0,handle:"enrichmentTargets"},this._featureFlags)}done(e){const n=e??1;return this.withFeatureFlags({...this._featureFlags,requiresUIAPIVersion:n})._done(n)}_done(e){if(this._initialArgs===void 0)throw new Error("Initial arguments not set.");const n={v3:{sdkVersion:Z,renderingMode:this._renderingMode,initialArgs:this._initialArgs,initialUiState:this._initialUiState,inputsValid:this._inputsValid,sections:this._sections,title:this._title,outputs:this._outputs,enrichmentTargets:this._enrichmentTargets,featureFlags:this._featureFlags},sdkVersion:Z,renderingMode:this._renderingMode,initialArgs:this._initialArgs,inputsValid:ae(this._inputsValid),sections:ae(this._sections),outputs:Object.fromEntries(Object.entries(this._outputs).map(([r,i])=>[r,ae(i)]))};return globalThis.platformaApiVersion=e,Gt()?Ue({sdkVersion:Z,apiVersion:platformaApiVersion}):{config:n}}};V(w,"INITIAL_BLOCK_FEATURE_FLAGS",{supportsLazyState:!0,requiresUIAPIVersion:1,requiresModelAPIVersion:1});let Ce=w;function Fe(){return{sourceId:null,hiddenColIds:null,partitionFilters:[],filters:[],sorting:[]}}function Te(){return{version:4,stateCache:[],pTableParams:Fe()}}function et(t){return"version"in t||(t=Te()),t.version===2&&(t={version:3,stateCache:t.stateCache.map(e=>({...e,filtersState:[]})),pTableParams:Fe()}),t.version===3&&(t=Te()),t}function pe(t){return t.axesSpec.length===1&&t.name==="pl7.app/label"}function tt(t){return new $().addAxisLabelProvider(t).addColumnProvider(t).getColumns({name:"pl7.app/label",axes:[{}]},{dontWaitAllData:!0})}function Pe(t,e){const n=[],r=[];for(const a of t)pe(a.spec)?n.push(a):r.push(a);const i=[];for(const a of r)for(const u of a.spec.axesSpec){const c=l.getAxisId(u);i.some(m=>l.matchAxisId(m,c))||i.push(c)}for(const a of n){const u=l.getAxisId(a.spec.axesSpec[0]),c=i.findIndex(m=>l.matchAxisId(m,u));c!==-1&&i.splice(c,1)}const o=(a,u)=>{let c=a.toString();if(u)for(const m in u)c+=m,c+=u[m];return c},s=[];for(const a of e){const u=a.spec.axesSpec[0],c=l.getAxisId(u),m=i.findIndex(h=>l.matchAxisId(h,c));if(m!==-1){const h=i[m],g=Object.keys(h.domain??{}).length,f=Object.keys(u.domain??{}).length;g>f?s.push({id:o(a.id,h.domain),spec:{...a.spec,axesSpec:[{...h,annotations:u.annotations}]},data:a.data}):s.push(a),i.splice(m,1)}}return s}function nt(t){const e=i=>Array.isArray(i),n=i=>i instanceof O,r=i=>typeof i=="object"&&"type"in i;return t.map(i=>i.data).every(i=>{if(e(i))return!0;if(n(i))return i.getIsReadyOrError();if(r(i))switch(i.type){case"Json":return!0;case"JsonPartitioned":return Object.values(i.parts).every(s=>s.getIsReadyOrError());case"BinaryPartitioned":return Object.values(i.parts).every(s=>s.index.getIsReadyOrError()&&s.values.getIsReadyOrError())}else throw Error(`unsupported column data type: ${i}`)})}function Ve(t){let e=t.columns;const n=[];if(t.coreColumnPredicate){e=[];for(const r of t.columns)t.coreColumnPredicate(r.spec)?e.push(r):n.push(r)}return n.push(...t.labelColumns),{src:{type:"outer",primary:{type:t.coreJoinType,entries:e.map(r=>({type:"column",column:r}))},secondary:n.map(r=>({type:"column",column:r}))},partitionFilters:t.partitionFilters,filters:t.filters,sorting:t.sorting}}function rt(t){var e;return((e=t.annotations)==null?void 0:e["pl7.app/table/visibility"])==="hidden"}function it(t){var e;return((e=t.annotations)==null?void 0:e["pl7.app/table/visibility"])==="optional"}function le(t,e){return[...new Map(t.map(n=>[e(n),n])).values()]}function dn(t,e,n,r){if(e.length===0)return;const i=e.filter(p=>de(p.spec)||!rt(p.spec)),o=et(n),s=tt(t.resultPool);if(!s)return;const a=Pe(i.map(l.getColumnIdAndSpec),s),u=[...i,...a],m=[...le([...u.flatMap(p=>p.spec.axesSpec.map(C=>l.getAxisId(C)))],p=>l.canonicalizeJson(p)).map(p=>({type:"axis",id:p})),...u.map(p=>({type:"column",id:p.id}))],h=new Set(m.map(p=>l.canonicalizeJson(p))),g=p=>h.has(l.canonicalizeJson(p)),f=(r==null?void 0:r.coreJoinType)??"full",b=o.pTableParams.partitionFilters.filter(p=>{const C=g(p.column);return C||t.logWarn(`Partition filter ${JSON.stringify(p)} does not match provided columns, skipping`),C}),d=le([...(r==null?void 0:r.filters)??[],...o.pTableParams.filters],p=>l.canonicalizeJson(p.column)).filter(p=>{const C=g(p.column);return C||t.logWarn(`Filter ${JSON.stringify(p)} does not match provided columns, skipping`),C}),y=le([...(r==null?void 0:r.sorting)??[],...o.pTableParams.sorting],p=>l.canonicalizeJson(p.column)).filter(p=>{const C=g(p.column);return C||t.logWarn(`Sorting ${JSON.stringify(p)} does not match provided columns, skipping`),C}),T=Ve({columns:i,labelColumns:a,coreJoinType:f,partitionFilters:b,filters:d,sorting:y,coreColumnPredicate:r==null?void 0:r.coreColumnPredicate}),R=t.createPTable(T),x=new Set((()=>{if(f==="inner")return[];const p=o.pTableParams.hiddenColIds;return p||i.filter(C=>it(C.spec)).map(C=>C.id)})());i.filter(p=>de(p.spec)).forEach(p=>x.delete(p.id)),r!=null&&r.coreColumnPredicate&&i.flatMap(C=>{var _;return(_=r==null?void 0:r.coreColumnPredicate)!=null&&_.call(r,C.spec)?[C.id]:[]}).forEach(C=>x.delete(C)),[...b.map(p=>p.column),...d.map(p=>p.column),...y.map(p=>p.column)].filter(p=>p.type==="column").forEach(p=>x.delete(p.id));const A=i.filter(p=>!x.has(p.id)),S=Pe(A.map(l.getColumnIdAndSpec),s);if(!nt([...A,...S]))return;const P=Ve({columns:A,labelColumns:S,coreJoinType:f,partitionFilters:b,filters:d,sorting:y,coreColumnPredicate:r==null?void 0:r.coreColumnPredicate}),F=t.createPTable(P);return{sourceId:o.pTableParams.sourceId,fullTableHandle:R,visibleTableHandle:F}}function fn(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 hn=(t,e)=>{let n=t.toString();return e==null||e.forEach(r=>{if(r)for(const[i,o]of Object.entries(r))n+=i,n+=o}),n};function mn(t){if(!t.length)return[];let e=[[]];return t.forEach(n=>{const r=[];n.forEach(i=>{r.push(...e.map(o=>[...o,i]))}),e=r}),e}function de(t){var e;return((e=t.annotations)==null?void 0:e[st])==="true"}const ot="pl7.app/graph/isVirtual",Ae="pl7.app/label",st="pl7.app/isLinkerColumn";function at(t){var n,r;const e=new Map;for(const{spec:i}of t){const o=i.axesSpec.map(l.getAxisId).map(l.canonicalizeJson);o.forEach(s=>{e.has(s)||e.set(s,new Set)});for(let s=0;s<o.length-1;s++)for(let a=s+1;a<o.length;a++){const u=o[s],c=o[a];(n=e.get(u))==null||n.add(c),(r=e.get(c))==null||r.add(u)}}return e}function lt(t,e){const n=at(t),r=[...n.keys()].map(l.parseJson),i=[];for(const u of e.values()){const c=r.find(m=>l.matchAxisId(u,m));c&&i.push(l.canonicalizeJson(c))}const o=new Set(i),s=new Map;let a=[...i];for(;a.length;){const u=[];for(const c of a)for(const m of n.get(c)??[])o.has(m)||(u.push(m),o.add(m),s.set(m,l.parseJson(m)));a=u}return s}function Se(t,e){const n=[];return e.forEach(r=>{n.push(...gn(t,r))}),n}function gn(t,e){const n=e.spec.axesSpec.map(l.getAxisId);if(n.every(c=>t.has(l.canonicalizeJson(c))))return[e];const r=n.map(c=>{const m=[];for(const[h,g]of t)l.matchAxisId(g,c)&&!l.matchAxisId(c,g)&&m.push(g);return m}),i=mn(r),o=new Set,s=new Set,a=i.map(c=>{const m=new Set;return c.map((h,g)=>{const f=e.spec.axesSpec[g].domain,b=h.domain;return Object.entries(b??{}).forEach(([d,y])=>{if((f==null?void 0:f[d])===void 0){const T=JSON.stringify([d,y]);m.add(T),o.add(T)}}),{...h,annotations:e.spec.axesSpec[g].annotations}}),m});[...o].forEach(c=>{a.some(m=>!m.has(c))&&s.add(c)});const u=i.map((c,m)=>{var d;const h=hn(e.id,c.map(y=>y.domain)),g=((d=e.spec.annotations)==null?void 0:d[Ae])??"",f=[...a[m]].filter(y=>s.has(y)).sort().map(y=>{var T;return(T=JSON.parse(y))==null?void 0:T[1]}).join(" / "),b={...e.spec.annotations,[ot]:"true"};return(g||f)&&(b[Ae]=g&&f?g+" / "+f:g+f),{id:h,spec:{...e.spec,axesSpec:c.map((y,T)=>({...y,annotations:e.spec.axesSpec[T].annotations})),annotations:b},data:e.data}});return[e,...u]}function ut(t){let e=!0;return t.data instanceof O?e=e&&t.data.getIsReadyOrError():l.isDataInfo(t.data)&&l.visitDataInfo(t.data,n=>{e=e&&n.getIsReadyOrError()}),e}function Y(t){return t.every(ut)}function yn(t,e){if(!e){const h=new $;h.addColumnProvider(t.resultPool);const g=h.getColumns(()=>!0,{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[];if(!Y(g))return;const f=new Map(g.flatMap(d=>d.spec.axesSpec).map(d=>{const y=l.getAxisId(d);return[l.canonicalizeJson(y),y]})),b=Se(f,g);return t.createPFrame(b)}if(!Y(e))return;const n=new $;n.addColumnProvider(t.resultPool),n.addColumns(e);const r=new Map,i=new Map;for(const h of e)for(const g of h.spec.axesSpec){const f=l.getAxisId(g);r.set(l.canonicalizeJson(f),f),i.set(l.canonicalizeJson(f),f)}const o=n.getColumns(h=>de(h))??[],s=lt(o,r);for(const h of s)r.set(...h),i.set(...h);const a=(n.getColumns(h=>h.axesSpec.some(g=>{const f=l.getAxisId(g);for(const b of r.values())if(l.matchAxisId(b,f))return!0;return!1}),{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[]).filter(h=>!pe(h.spec));if(!Y(a))return;for(const h of a)for(const g of h.spec.axesSpec){const f=l.getAxisId(g);i.set(l.canonicalizeJson(f),f)}const u=(n.getColumns(h=>h.axesSpec.some(g=>{const f=l.getAxisId(g);for(const b of i.values())if(l.matchAxisId(b,f))return!0;return!1}),{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[]).filter(h=>pe(h.spec));if(!Y(u))return;const c=[...a,...u],m=Se(r,c);return t.createPFrame(m)}function bn({selection:t,columnId:e=l.uniquePlId(),label:n="Selection marker",domain:r}){if(!(t!=null&&t.axesSpec.length))return;const i=t.selectedKeys.filter(o=>o.every(s=>!l.isPTableAbsent(s))).map(o=>({key:o,val:1}));if(i.length)return{id:e,spec:{kind:"PColumn",valueType:"Int",name:"pl7.app/table/row-selection",axesSpec:t.axesSpec,...r&&Object.keys(r).length&&{domain:r},annotations:{"pl7.app/label":n,"pl7.app/discreteValues":"[1]"}},data:i}}function vn(){return{axesSpec:[],selectedKeys:[]}}function Cn(t){return t===l.PTableNA?(console.error("Axis value can never be N/A"),""):t}function ct(t){throw new Error("Unexpected object: "+t)}function D(t){return t.valueType==="Int"||t.valueType==="Long"||t.valueType==="Float"||t.valueType==="Double"}function se(t){return t.valueType==="String"}const _e={lessThan:{label:"Col < X (Less Than)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThan"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:D},greaterThan:{label:"Col > X (Greater Than)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"greaterThan"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:D},lessThanOrEqual:{label:"Col ≤ X (Less Than or Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanOrEqual"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:D},greaterThanOrEqual:{label:"Col ≥ X (Greater Than or Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"greaterThanOrEqual"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:D},lessThanColumn:{label:"Col₁ < Col₂ (Compare Columns)",form:{column:{label:"Col₁",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanColumn"},rhs:{label:"Col₂",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},minDiff:{label:"Margin (positive)",fieldType:"number?",defaultValue:()=>{}}},supportedFor:(t,e)=>D(t)&&(e===void 0||D(e))},lessThanColumnOrEqual:{label:"Col₁ ≤ Col₂ (Compare Columns)",form:{column:{label:"Col₁",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanColumnOrEqual"},rhs:{label:"Col₂",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},minDiff:{label:"Margin (positive)",fieldType:"number?",defaultValue:()=>{}}},supportedFor:(t,e)=>D(t)&&(e===void 0||D(e))},topN:{label:"Top N",form:{column:{label:"Rank By Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"topN"},n:{label:"N",fieldType:"number",defaultValue:()=>10}},supportedFor:D},bottomN:{label:"Bottom N",form:{column:{label:"Rank By Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"bottomN"},n:{label:"N",fieldType:"number",defaultValue:()=>10}},supportedFor:D},patternContainSubsequence:{label:"Col ~ Seq (Contain Subsequence)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternContainSubsequence"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternNotContainSubsequence:{label:"Col ≁ Seq (Not Contain Subsequence)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternNotContainSubsequence"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternEquals:{label:"Col = Seq (Equals)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternEquals"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternNotEquals:{label:"Col ≠ Seq (Not Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternNotEquals"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},isNA:{label:"Is NA",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"isNA"}},supportedFor:()=>!0},isNotNA:{label:"Is Not NA",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"isNotNA"}},supportedFor:()=>!0},or:{label:"Or",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"or"},filters:{fieldType:"unknown[]",label:"Filters",defaultValue:()=>[]}},supportedFor:()=>!1},and:{label:"And",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"and"},filters:{fieldType:"unknown[]",label:"Filters",defaultValue:()=>[]}},supportedFor:()=>!1},not:{label:"Not",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"not"},filter:{fieldType:"form",label:"Filter",defaultValue:()=>{}}},supportedFor:()=>!1}};function Tn(t){return t?Object.entries(_e).filter(([e,n])=>n.supportedFor(t)).map(([e,n])=>({label:n.label,value:e})):[]}function Pn(t){return _e[t]}function fe(t){if(t.type==="or")return{type:"or",filters:Ie(t.filters)};if(t.type==="and")return{type:"and",filters:Ie(t.filters)};if(t.type==="not")return{type:"not",filter:fe(t.filter)};if(t.type==="isNA")return{type:"isNA",column:t.column};if(t.type==="isNotNA")return{type:"not",filter:{type:"isNA",column:t.column}};if(t.type==="patternEquals")return{type:"pattern",column:t.column,predicate:{type:"equals",value:t.value}};if(t.type==="patternNotEquals")return{type:"not",filter:{type:"pattern",column:t.column,predicate:{type:"equals",value:t.value}}};if(t.type==="patternContainSubsequence")return{type:"pattern",column:t.column,predicate:{type:"containSubsequence",value:t.value}};if(t.type==="patternNotContainSubsequence")return{type:"not",filter:{type:"pattern",column:t.column,predicate:{type:"containSubsequence",value:t.value}}};if(t.type==="topN")return{type:"numericalComparison",lhs:{transformer:"rank",column:t.column,descending:!0},rhs:t.n,allowEqual:!0};if(t.type==="bottomN")return{type:"numericalComparison",lhs:{transformer:"rank",column:t.column},rhs:t.n,allowEqual:!0};if(t.type==="lessThan")return{type:"numericalComparison",lhs:t.column,rhs:t.x};if(t.type==="greaterThan")return{type:"numericalComparison",rhs:t.column,lhs:t.x};if(t.type==="greaterThanOrEqual")return{type:"numericalComparison",rhs:t.column,lhs:t.x,allowEqual:!0};if(t.type==="lessThanOrEqual")return{type:"numericalComparison",lhs:t.column,rhs:t.x,allowEqual:!0};if(t.type==="lessThanColumn")return{type:"numericalComparison",lhs:t.column,rhs:t.rhs,minDiff:t.minDiff,allowEqual:void 0};if(t.type==="lessThanColumnOrEqual")return{type:"numericalComparison",lhs:t.column,rhs:t.rhs,minDiff:t.minDiff,allowEqual:!0};if(t.type===void 0)throw new Error("Filter type is undefined, this should not happen");ct(t)}function Ie(t){return t.filter(e=>e.type!==void 0).map(fe)}function An(t){return{title:t.title,mode:t.mode,steps:t.steps.filter(e=>e.filter.type==null?!1:e.filter.type==="or"||e.filter.type==="and"?e.filter.filters.length>0:!1).map(e=>({label:e.label.trim(),filter:fe(e.filter)}))}}class Sn{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,n){var r;return(r=cfgRenderCtx.featureFlags)!=null&&r.pFrameInSetFilterSupport||(e={...e,filters:ve(e.filters)}),await platforma.pFrameDriver.calculateTableData(this.handle,e,n)}async getUniqueValues(e){return await platforma.pFrameDriver.getUniqueValues(this.handle,e)}}function pt(t){return we({__isRef:!0,blockId:ee(t,"blockId"),name:ee(t,"name")})}function In(t){return we({ref:pt(ee(t,"ref")),label:ee(t,"label")})}const wn={sdkVersion:Z};function xn(){return platformaApiVersion??1}function Fn(){return Ue({sdkVersion:Z,apiVersion:platformaApiVersion})}function _n(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ct;exports.BlockModel=Ce;exports.CurrentSdkInfo=wn;exports.FutureRef=L;exports.IS_VIRTUAL_COLUMN=ot;exports.It=Tt;exports.JsRenderInternal=Qt;exports.LABEL_ANNOTATION=Ae;exports.LINKER_COLUMN_ANNOTATION=st;exports.MainOutputs=Pt;exports.OutputError=Ne;exports.PAnnotationLabel=je;exports.PAnnotationTrace=Be;exports.PColumnCollection=$;exports.PFrameImpl=Sn;exports.RT_BINARY_PARTITIONED=M;exports.RT_BINARY_SUPER_PARTITIONED=q;exports.RT_JSON_PARTITIONED=B;exports.RT_JSON_SUPER_PARTITIONED=re;exports.RT_RESOURCE_MAP=te;exports.RT_RESOURCE_MAP_PARTITIONED=ne;exports.RenderCtx=X;exports.ResultPool=Qe;exports.StagingOutputs=At;exports.Trace=$e;exports.TraceEntry=qe;exports.TreeNodeAccessor=O;exports.UiState=St;exports.allColumnsComputed=nt;exports.allColumnsReady=Y;exports.and=Et;exports.compileAnnotationScript=An;exports.compileFilter=fe;exports.compileFilters=Ie;exports.convertOrParsePColumnData=Xe;exports.createPFrameForGraphs=yn;exports.createPlDataTableSheet=fn;exports.createPlDataTableStateV2=Te;exports.createPlDataTableV2=dn;exports.createPlSelectionModel=vn;exports.createRowSelectionColumn=bn;exports.deriveLabels=xe;exports.downgradeCfgOrLambda=ae;exports.enrichCompatible=Se;exports.extractArchiveAndGetURL=Kt;exports.extractConfig=pn;exports.filterDataInfoEntries=Ye;exports.filterUiMetadata=_e;exports.flatten=Ft;exports.fromPlOption=In;exports.fromPlRef=pt;exports.getAllLabelColumns=tt;exports.getAvailableWithLinkersAxes=lt;exports.getBlobContent=Nt;exports.getBlobContentAsJson=Ut;exports.getBlobContentAsString=kt;exports.getDownloadedBlobContent=Mt;exports.getEnvironmentValue=_n;exports.getFilterUiMetadata=Pn;exports.getFilterUiTypeOptions=Tn;exports.getFromCfg=W;exports.getImmediate=Q;exports.getImportProgress=jt;exports.getJsonField=ee;exports.getLastLogs=Bt;exports.getLinkerColumnsMap=at;exports.getLogHandle=Wt;exports.getMatchingLabelColumns=Pe;exports.getOnDemandBlobContent=Jt;exports.getPartitionKeysList=ze;exports.getPlatformaApiVersion=xn;exports.getProgressLog=qt;exports.getProgressLogWithInfo=$t;exports.getRawPlatformaInstance=Fn;exports.getResourceField=Rt;exports.getResourceValueAsJson=Vt;exports.getUniquePartitionKeys=He;exports.ifDef=ue;exports.isColumnHidden=rt;exports.isColumnOptional=it;exports.isColumnReady=ut;exports.isConfigLambda=Ze;exports.isEmpty=_t;exports.isLabelColumn=pe;exports.isLinkerColumn=de;exports.isolate=vt;exports.makeArray=It;exports.makeDefaultPTableParams=Fe;exports.makeObject=we;exports.mapArrayValues=xt;exports.mapPTableValueToAxisKey=Cn;exports.mapRecordValues=wt;exports.mapResourceFields=Dt;exports.not=Lt;exports.or=Ot;exports.parsePColumnData=ce;exports.parseResourceMap=tn;exports.readOutput=ke;exports.uniqueBy=le;exports.unreachable=ct;exports.upgradePlDataTableStateV2=et;exports.wrapOutputs=bt;Object.keys(l).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>l[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 gt=Object.defineProperty;var yt=(t,e,n)=>e in t?gt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var D=(t,e,n)=>yt(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@milaboratories/pl-model-common"),Ve=require("canonicalize"),j=require("zod"),Le=require("@milaboratories/pl-error-like");class Ne extends Error{constructor(e,n){super(`${e.length}${n?"+":""} errors, first error: `+e[0].message),this.errors=e,this.moreErrors=n}}function ke(t){if(!t.ok)throw new Ne(t.errors,t.moreErrors);return t.value}function bt(t){return new Proxy(t,{get(e,n){return ke(e[n])}})}function I(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null?Q(t):t}function W(t){return{type:"GetFromCtx",variable:t}}function vt(t){return{type:"Isolate",cfg:t}}const Ct=W("$args"),Tt=W("$it"),Pt=W("$prod"),At=W("$staging"),St=W("$ui");function Q(t){return{type:"Immediate",value:t}}function we(t){const e={};for(const[n,r]of Object.entries(t))e[n]=I(r);return{type:"MakeObject",template:e}}function It(...t){const e=[];for(const n of t)e.push(I(n));return{type:"MakeArray",template:e}}function ee(t,e){return{type:"GetJsonField",source:I(t),field:I(e)}}function wt(t,e,n="$it"){return{type:"MapRecordValues",source:t,mapping:e,itVar:n}}function xt(t,e,n="$it"){return{type:"MapArrayValues",source:t,mapping:e,itVar:n}}function Ft(t){return{type:"Flatten",source:t}}function _t(t){return{type:"IsEmpty",arg:t}}function Lt(t){return{type:"Not",operand:t}}function Et(t,e){return{type:"And",operand1:t,operand2:e}}function Ot(t,e){return{type:"Or",operand1:t,operand2:e}}function Rt(t,e){return{type:"GetResourceField",source:I(t),field:I(e)}}function Dt(){return function(t){return{type:"GetResourceValueAsJson",source:I(t)}}}function Vt(t,e,n="$it"){return{type:"MapResourceFields",source:t,mapping:e,itVar:n}}function Nt(t,e){return{type:"GetBlobContent",range:e,source:I(t)}}function kt(t,e){return{type:"GetBlobContentAsString",range:e,source:I(t)}}function Ut(){return function(t,e){return{type:"GetBlobContentAsJson",range:e,source:I(t)}}}function Mt(t){return{type:"GetDownloadedBlobContent",source:I(t)}}function Jt(t){return{type:"GetOnDemandBlobContent",source:I(t)}}function Kt(t,e){return{type:"ExtractArchiveAndGetURL",format:e,source:I(t)}}function jt(t){return{type:"GetImportProgress",source:I(t)}}function Bt(t,e){return{type:"GetLastLogs",source:I(t),lines:e}}function qt(t,e){return{type:"GetProgressLog",source:I(t),patternToSearch:e}}function $t(t,e){return{type:"GetProgressLogWithInfo",source:I(t),patternToSearch:e}}function Wt(t){return{type:"GetLogHandle",source:I(t)}}function Gt(){return typeof globalThis.getPlatforma<"u"||typeof globalThis.platforma<"u"}function Ue(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 zt(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx}function v(){if(typeof globalThis.cfgRenderCtx<"u")return globalThis.cfgRenderCtx;throw new Error("Not in config rendering context")}function H(t,e){const n=zt();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 me=new Map;function Ht(t,e){t in v().callbackRegistry||(v().callbackRegistry[t]=n=>{for(const r of me.get(t))r(n)},me.set(t,[])),me.get(t).push(e)}class L{constructor(e,n=r=>r){D(this,"isResolved",!1);D(this,"resolvedValue");this.handle=e,this.postProcess=n,Ht(e,r=>{this.resolvedValue=n(r),this.isResolved=!0})}map(e){return new L(this.handle,n=>e(this.postProcess(n)))}mapDefined(e){return new L(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 ue(t,e){return t===void 0?void 0:e(t)}class O{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 ue(v().resolveWithCommon(this.handle,e,...n),i=>new O(i,r))}get resourceType(){return v().getResourceType(this.handle)}getInputsLocked(){return v().getInputsLocked(this.handle)}getOutputsLocked(){return v().getOutputsLocked(this.handle)}getIsReadyOrError(){return v().getIsReadyOrError(this.handle)}getIsFinal(){return v().getIsFinal(this.handle)}getError(){const e=[...this.resolvePath,"error"];return ue(v().getError(this.handle),n=>new O(n,e))}listInputFields(){return v().listInputFields(this.handle)}listOutputFields(){return v().listOutputFields(this.handle)}listDynamicFields(){return v().listDynamicFields(this.handle)}getKeyValueBase64(e){return v().getKeyValueBase64(this.handle,e)}getKeyValueAsString(e){return v().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 v().getDataBase64(this.handle)}getDataAsString(){return v().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(([,o])=>{if(!l.isPColumn(o))throw new Error(`not a PColumn (kind = ${o.spec.kind})`);return o})}parsePObjectCollection(e=!1,n=""){const r=v().parsePObjectCollection(this.handle,e,n,...this.resolvePath);if(r===void 0)return;const i={};for(const[o,s]of Object.entries(r)){const a=[...this.resolvePath,o];i[o]=l.mapPObjectData(s,u=>new O(u,a))}return i}getFileContentAsBase64(e){return new L(v().getBlobContentAsBase64(this.handle,e))}getFileContentAsString(e){return new L(v().getBlobContentAsString(this.handle,e))}getFileContentAsJson(e){return new L(v().getBlobContentAsString(this.handle,e)).mapDefined(n=>JSON.parse(n))}getBlobContentAsBase64(){return this.getFileContentAsBase64()}getBlobContentAsString(){return this.getFileContentAsString()}getFileHandle(){return new L(v().getDownloadedBlobContentHandle(this.handle))}getDownloadedBlobHandle(){return this.getFileHandle()}getRemoteFileHandle(){return new L(v().getOnDemandBlobContentHandle(this.handle))}getOnDemandBlobHandle(){return this.getRemoteFileHandle()}extractArchiveAndGetURL(e){return new L(v().extractArchiveAndGetURL(this.handle,e))}getImportProgress(){return new L(v().getImportProgress(this.handle))}getLastLogs(e){return new L(v().getLastLogs(this.handle,e))}getProgressLog(e){return new L(v().getProgressLog(this.handle,e))}getProgressLogWithInfo(e){return new L(v().getProgressLogWithInfo(this.handle,e))}getLogHandle(){return new L(v().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:o}={fieldType:"Input",requireLocked:!0,skipUnresolved:!1,...n},s=e;if(i&&(r==="Input"&&!this.getInputsLocked()||r==="Output"&&!this.getOutputsLocked()))return;let u=(r==="Input"?this.listInputFields():r==="Output"?this.listOutputFields():this.listDynamicFields()).map(c=>[c,this.resolve({field:c,assertFieldType:r})]);return o&&(u=u.filter(c=>c[1]!==void 0)),u.map(([c,m])=>s(c,m))}}const Me="staging",Je="main",Xt={explicitColumnsSupport:!0,inlineColumnsSupport:!0,activeArgs:!0,pTablePartitionFiltersSupport:!0,pFrameInSetFilterSupport:!0};function Ke(t){return typeof t=="object"&&t!==null&&"__awaited_futures__"in t}function ye(t,e,n){if(e.has(n))return;if(e.add(n),typeof n==="object")if(Ke(n))n.__awaited_futures__.forEach(i=>t.add(i));else if(Array.isArray(n))for(const i of n)ye(t,e,i);else for(const[,i]of Object.entries(n))i!==n&&ye(t,e,i)}function Yt(t){const e=new Set;return ye(e,new Set,t),e}const Qt=Object.freeze(Object.defineProperty({__proto__:null,GlobalCfgRenderCtxFeatureFlags:Xt,MainAccessorName:Je,StagingAccessorName:Me,getAllFutureAwaits:Yt,isFutureAwait:Ke},Symbol.toStringTag,{value:"Module"})),je="pl7.app/label",Be="pl7.app/trace",qe=j.z.object({type:j.z.string(),importance:j.z.number().optional(),id:j.z.string().optional(),label:j.z.string()}),$e=j.z.array(qe),Zt=.001,en="__LABEL__",Ee="__LABEL__@1";function xe(t,e,n={}){const r=new Map,i=n.forceTraceElements!==void 0&&n.forceTraceElements.length>0?new Set(n.forceTraceElements):void 0,o=new Map,s=t.map(f=>{var p,C;const b=e(f);let d,y,T;"spec"in b&&typeof b.spec=="object"?(d=b.spec,y=b.prefixTrace,T=b.suffixTrace):d=b;const R=(p=d.annotations)==null?void 0:p[je],x=(C=d.annotations)==null?void 0:C[Be],A=(x?$e.safeParse(JSON.parse(x)).data:void 0)??[],S=[...y??[],...A,...T??[]];if(R!==void 0){const _={label:R,type:en,importance:-2};n.addLabelAsSuffix?S.push(_):S.splice(0,0,_)}const P=[],F=new Map;for(let _=S.length-1;_>=0;--_){const{type:G}=S[_],k=S[_].importance??0,J=(F.get(G)??0)+1;F.set(G,J);const N=`${G}@${J}`;o.set(N,(o.get(N)??0)+1),r.set(N,Math.max(r.get(N)??Number.NEGATIVE_INFINITY,k-(S.length-_)*Zt)),P.push({...S[_],fullType:N,occurrenceIndex:J})}return P.reverse(),{value:f,spec:d,label:R,fullTrace:P}}),a=[],u=[],c=[...r];c.sort(([,f],[,b])=>b-f);for(const[f]of c)f.endsWith("@1")||o.get(f)===t.length?a.push(f):u.push(f);const m=(f,b=!1)=>{const d=[];for(let y=0;y<s.length;y++){const T=s[y],R=T.fullTrace.filter(S=>f.has(S.fullType)||i&&i.has(S.type));if(R.length===0)if(b)d.push({label:"Unlabeled",value:T.value});else return;const x=R.map(S=>S.label),A=n.separator??" / ";d.push({label:x.join(A),value:T.value})}return d};if(a.length===0){if(u.length!==0)throw new Error("Non-empty secondary types list while main types list is empty.");return m(new Set(Ee),!0)}let h=0,g=-1;for(;h<a.length;){const f=new Set;n.includeNativeLabel&&f.add(Ee);for(let d=0;d<h;++d)f.add(a[d]);g>=0&&f.add(a[g]);const b=m(f);if(b!==void 0&&new Set(b.map(d=>d.label)).size===t.length)return b;g++,g>=a.length&&(h++,g=h)}return m(new Set([...a,...u]),!0)}const ie="PColumnData/",te=ie+"ResourceMap",ne=ie+"Partitioned/ResourceMap",B=ie+"JsonPartitioned",M=ie+"BinaryPartitioned",We=ie+"Partitioned/",re=We+"JsonPartitioned",q=We+"BinaryPartitioned";function Ge(t,e,n,r=[],i){if(t===void 0)return!1;switch(t.resourceType.name){case te:{let o=t.getInputsLocked();for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"}),u=[...r,...JSON.parse(s)],c=a===void 0?void 0:e(a);c===void 0&&(o=!1),(c!==void 0||i)&&n.push({key:u,value:c})}return o}case ne:{let o=t.getInputsLocked();for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)o=!1;else{const u=[...r,...JSON.parse(s)],c=Ge(a,e,n,u,i);o=o&&c}}return o}default:throw new Error(`Unknown resource type: ${t.resourceType.name}`)}}function tn(t,e,n=!1){const r=[];return{isComplete:Ge(t,e,r,[],n),data:r}}const be=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 ze(t){if(!t)return;const e=t.resourceType.name,n=t.getDataAsJson(),r=[];let i=0;switch(e){case te:i=n.keyLength;break;case ne:i=n.partitionKeyLength+n.keyLength;break;case B:case M:i=n.partitionKeyLength;break;case q:case re:i=n.superPartitionKeyLength+n.partitionKeyLength;break}switch(e){case te:case B:case M:for(let o of t.listInputFields()){e===M&&(o=be(o).baseKey);const s=[...JSON.parse(o)];r.push(s)}break;case ne:case q:case re:for(const o of t.listInputFields()){const s=[...JSON.parse(o)],a=t.resolve({field:o,assertFieldType:"Input"});if(a!==void 0)for(let u of a.listInputFields()){e===q&&(u=be(u).baseKey);const c=[...s,...JSON.parse(u)];r.push(c)}}break}return{data:r,keyLength:i}}function nn(t){if(t.type!=="JsonPartitioned"&&t.type!=="BinaryPartitioned")throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${t.type}`);const{parts:e,partitionKeyLength:n}=t,r=[];for(let i=0;i<n;++i)r.push(new Set);for(const i of e){const o=i.key;if(o.length!==n)throw new Error(`Key length (${o.length}) does not match partition length (${n}) for key: ${JSON.stringify(o)}`);for(let s=0;s<n;++s)r[s].add(o[s])}return r.map(i=>Array.from(i.values()))}function He(t){if(t===void 0)return;if(l.isDataInfoEntries(t))return nn(t);const e=ze(t);if(!e)return;const{data:n,keyLength:r}=e,i=[];for(let o=0;o<r;++o)i.push(new Set);for(const o of n){if(o.length!==r)throw new Error("key length does not match partition length");for(let s=0;s<r;++s)i[s].add(o[s])}return i.map(o=>Array.from(o.values()))}function ce(t,e=[]){if(t===void 0||!t.getIsReadyOrError())return;const n=t.resourceType.name,r=t.getDataAsJson();if(e.length>0&&(n===re||n===q))throw new Error(`Unexpected nested super-partitioned resource: ${n}`);switch(n){case te:case ne:throw new Error(`Only data columns are supported, got: ${n}`);case B:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[];for(const o of t.listInputFields()){const s=t.resolve({field:o,assertFieldType:"Input"});if(s===void 0)return;const a=[...e,...JSON.parse(o)];i.push({key:a,value:s})}return{type:"JsonPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case M:{if(typeof(r==null?void 0:r.partitionKeyLength)!="number")throw new Error(`Missing partitionKeyLength in metadata for ${n}`);const i=[],o=new Map;for(const s of t.listInputFields()){const a=be(s),u=t.resolve({field:s,assertFieldType:"Input"});if(u===void 0)return;let c=o.get(a.baseKey);c||(c={},o.set(a.baseKey,c)),a.type==="index"?c.index=u:c.values=u}for(const[s,a]of o.entries()){if(!a.index||!a.values)return;const u=[...e,...JSON.parse(s)];i.push({key:u,value:{index:a.index,values:a.values}})}return{type:"BinaryPartitioned",partitionKeyLength:r.partitionKeyLength,parts:i}}case re:{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,o=[];for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==B)throw new Error(`Expected ${B} inside ${n}, but got ${a.resourceType.name}`);const u=ce(a,JSON.parse(s));if(u===void 0)return;if(u.type!=="JsonPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${u.type}`);o.push(...u.parts)}return{type:"JsonPartitioned",partitionKeyLength:i,parts:o}}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,o=[];for(const s of t.listInputFields()){const a=t.resolve({field:s,assertFieldType:"Input"});if(a===void 0)return;if(a.resourceType.name!==M)throw new Error(`Expected ${M} inside ${n}, but got ${a.resourceType.name}`);const u=ce(a,JSON.parse(s));if(u===void 0)return;if(u.type!=="BinaryPartitioned")throw new Error(`Unexpected inner result type for ${n}: ${u.type}`);o.push(...u.parts)}return{type:"BinaryPartitioned",partitionKeyLength:i,parts:o}}default:throw new Error(`Unknown resource type: ${n}`)}}function Xe(t){if(t!==void 0){if(l.isDataInfoEntries(t))return t;if(l.isDataInfo(t))return l.dataInfoToEntries(t);if(t instanceof O)return ce(t);throw new Error(`Unexpected input type: ${typeof t}`)}}function Ye(t,e){const n=[...e].sort((o,s)=>s[0]-o[0]);if(t.type==="JsonPartitioned"||t.type==="BinaryPartitioned"){const{partitionKeyLength:o}=t;for(const[s]of e)if(s>=o)throw new Error(`Can't filter on non-partitioned axis ${s}. Must be >= ${o}`)}else if(t.type==="Json"){const{keyLength:o}=t;for(const[s]of e)if(s>=o)throw new Error(`Can't filter on non-data axis ${s}. Must be >= ${o}`)}const r=o=>{for(const[s,a]of n)if(o[s]!==a)return!1;return!0},i=o=>{const s=[...o];for(const[a]of n)s.splice(a,1);return s};switch(t.type){case"Json":{const o=t.data.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"Json",keyLength:t.keyLength-e.length,data:o}}case"JsonPartitioned":{const o=t.parts.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:o}}case"BinaryPartitioned":{const o=t.parts.filter(s=>r(s.key)).map(s=>({key:i(s.key),value:s.value}));return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength-e.length,parts:o}}}}function rn(t){if(!Array.isArray(t))return!1;if(t.length===0)return!0;const e=t[0];return typeof e=="object"&&e!==null&&"key"in e&&"val"in e}class on{constructor(e){this.columns=e}selectColumns(e){const n=typeof e=="function"?e:l.selectorsToPredicate(e);return this.columns.filter(r=>n(r.spec))}}function sn(t){if(t)return t.map(e=>({type:`split:${l.canonicalizeAxisId(e.axisId)}`,label:e.label,importance:1e6}))}function an(t){if(t)return t.map(e=>[e.axisIdx,e.value])}function ln(t,e){if(!e||e.length===0)return t;const n=[...e].sort((r,i)=>r[0]-i[0]);return Ve({id:t,axisFilters:n})}function Oe(t){if(!t||typeof t!="object")return!1;const e=t,n=e.domain&&typeof e.domain=="object"&&Object.values(e.domain).some(i=>typeof i=="object"&&i!==null&&"anchor"in i),r=e.axes&&Array.isArray(e.axes)&&e.axes.some(i=>typeof i=="object"&&i!==null&&"anchor"in i);return!!e.domainAnchor||n||r}function un(t){if(typeof t!="object"||!("axes"in t)||t.axes===void 0)return[];const e=t.axes.map((n,r)=>typeof n=="object"&&"split"in n&&n.split===!0?r:-1).filter(n=>n!==-1);if(e.length>0&&t.partialAxesMatch!==void 0)throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");return e.sort((n,r)=>n-r),e}class ${constructor(){D(this,"defaultProviderStore",[]);D(this,"providers",[new on(this.defaultProviderStore)]);D(this,"axisLabelProviders",[])}addColumnProvider(e){return this.providers.push(e),this}addAxisLabelProvider(e){return this.axisLabelProviders.push(e),this}addColumns(e){return this.defaultProviderStore.push(...e),this}addColumn(e){return this.defaultProviderStore.push(e),this}findLabels(e){for(const n of this.axisLabelProviders){const r=n.findLabels(e);if(r)return r}}getUniversalEntries(e,n){const{anchorCtx:r,labelOps:i,dontWaitAllData:o=!1,overrideLabelAnnotation:s=!1,exclude:a}=n??{},u={...s&&(i==null?void 0:i.includeNativeLabel)!==!1?{includeNativeLabel:!0}:{},...i??{}};let c=()=>!1;if(a){const d=(Array.isArray(a)?a:[a]).map(y=>{if(Oe(y)){if(!r)throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");return l.selectorsToPredicate(l.resolveAnchors(r.anchors,y,n))}else return l.selectorsToPredicate(y)});c=y=>d.some(T=>T(y))}const m=typeof e=="function"?[e]:Array.isArray(e)?e:[e],h=[],g=new Set;for(const d of m){const y=Oe(d);let T;if(y){if(!r)throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");T=l.resolveAnchors(r.anchors,d,n)}else T=d;const R=new Set,x=[];for(const P of this.providers){const F=P.selectColumns(T);for(const p of F){if(c(p.spec))continue;if(R.has(p.id))throw new Error(`Duplicate column id ${p.id} in provider ${P.constructor.name}`);const C=l.deriveNativeId(p.spec);g.has(C)||(R.add(p.id),g.add(C),x.push(p))}}if(x.length===0)continue;const A=un(d),S=A.length>0;for(const P of x){if(!l.isPColumnSpec(P.spec))continue;const F=P.spec;if(S){if(rn(P.data))throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${P.id}`);const p=Xe(P.data);if(!p){if(o)continue;return}if(!l.isPartitionedDataInfoEntries(p))throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${p.type} for column ${P.id}`);const C=He(p),_=A[A.length-1];if(_>=p.partitionKeyLength)throw new Error(`Not enough partition keys (${p.partitionKeyLength}) for requested split axes (max index ${_}) in column ${F.name}`);const G=A.map(E=>this.findLabels(l.getAxisId(F.axesSpec[E]))),k=[],J=(E,z)=>{if(z>=A.length){if(k.push([...E]),k.length>1e4)throw new Error("Too many key combinations, aborting.");return}const U=A[z];if(U>=C.length)throw new Error(`Axis index ${U} out of bounds for unique keys array (length ${C.length}) during split key generation for column ${P.id}`);const K=C[U];if(!K||K.length===0){k.length=0;return}for(const oe of K)E.push(oe),J(E,z+1),E.pop()};if(J([],0),k.length===0)continue;const N=[...F.axesSpec],dt=A.map(E=>E);for(let E=A.length-1;E>=0;E--)N.splice(A[E],1);const ft={...F,axesSpec:N};for(const E of k){const z=E.map((U,K)=>{const oe=dt[K],ht=l.getAxisId(F.axesSpec[oe]),he=G[K],mt=(he==null?void 0:he[U])??String(U);return{axisIdx:oe,axisId:ht,value:U,label:mt}});h.push({type:"split",originalColumn:P,spec:F,adjustedSpec:ft,dataEntries:p,axisFilters:z})}}else h.push({type:"direct",originalColumn:P,spec:F,adjustedSpec:F})}}if(h.length===0)return[];const f=xe(h,d=>({spec:d.spec,suffixTrace:d.type==="split"?sn(d.axisFilters):void 0}),u),b=[];for(const{value:d,label:y}of f){const{originalColumn:T,spec:R}=d,x=d.type==="split"?d.axisFilters:void 0,A=an(x);let S;r?S=r.deriveS(R,A):S=ln(T.id,A);let P={...d.adjustedSpec};s&&(P={...P,annotations:{...P.annotations??{},"pl7.app/label":y}}),b.push({id:S,spec:P,data:()=>d.type==="split"?l.entriesToDataInfo(Ye(d.dataEntries,A)):d.originalColumn.data,label:y})}return b}getColumns(e,n){const r=this.getUniversalEntries(e,{overrideLabelAnnotation:!0,...n??{}});if(!r)return;const i=[];for(const o of r){const s=o.data();if(!s){if(n!=null&&n.dontWaitAllData)continue;return}i.push({id:o.id,spec:o.spec,data:s})}return i}}function ve(t){const e=i=>i.operator!=="InSet"?i:{operator:"Or",operands:i.references.map(o=>({operator:"Equal",reference:o}))},n=(i,o)=>{switch(i.operator){case"And":return{...i,operands:i.operands.map(a=>n(a,o))};case"Or":return{...i,operands:i.operands.map(a=>n(a,o))};case"Not":return{...i,operand:n(i.operand,o)};default:return o(i)}},r=(i,o)=>({...i,predicate:n(i.predicate,o)});return t.map(i=>r(i,e))}function ge(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 Re(t){return l.mapPObjectData(t,e=>e instanceof O?e.handle:l.isDataInfo(e)?l.mapDataInfo(e,n=>n.handle):e)}class Qe{constructor(){D(this,"ctx",v())}calculateOptions(e){return this.ctx.calculateOptions(e)}getOptions(e,n){const r=typeof e=="function"?e:l.selectorsToPredicate(e),i=this.getSpecs().entries.filter(a=>r(a.obj));let o={},s=!1;return typeof n<"u"&&(typeof n=="function"?o=n:typeof n=="object"&&("includeNativeLabel"in n||"separator"in n||"addLabelAsSuffix"in n?o=n:(n=n,o=n.label??{},s=n.refsWithEnrichments??!1))),typeof o=="object"?xe(i,a=>a.obj,o??{}).map(({value:{ref:a},label:u})=>({ref:l.withEnrichments(a,s),label:u})):i.map(({ref:a,obj:u})=>({ref:l.withEnrichments(a,s),label:o(u,a)}))}resolveAnchorCtx(e){if(e instanceof l.AnchoredIdDeriver)return e;const n={};for(const[r,i]of Object.entries(e))if(l.isPlRef(i)){const o=this.getPColumnSpecByRef(i);if(!o)return;n[r]=o}else n[r]=i;return new l.AnchoredIdDeriver(n)}getAnchoredPColumns(e,n,r){const i=this.resolveAnchorCtx(e);if(i)return new $().addColumnProvider(this).addAxisLabelProvider(this).getColumns(n,{...r,anchorCtx:i})}getCanonicalOptions(e,n,r){const i=this.resolveAnchorCtx(e);if(!i)return;const o=new $().addColumnProvider(this).addAxisLabelProvider(this).getUniversalEntries(n,{...r,anchorCtx:i});if(o)return o.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 O(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:l.mapValueInVOE(n.obj.data,r=>new O(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 l.mapPObjectData(n,i=>new O(i,[e.blockId,e.name]))}getPColumnByRef(e){const n=this.getDataByRef(e);if(n)return l.ensurePColumn(n)}getPColumnSpecByRef(e){const n=this.getSpecByRef(e);if(n){if(!l.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(!l.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&&ge(e.domain,i.domain)){for(let o=0;o<e.axesSpec.length;++o){const s=e.axesSpec[o],a=i.axesSpec[o];if(s.name!==a.name||s.type!==a.type||!ge(s.domain,a.domain))continue e}n.push(r.obj)}}return n}findLabels(e){const n=this.getData();for(const r of n.entries){if(!l.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&&ge(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(s=>[JSON.parse(s[0])[0],s[1]]))}}}selectColumns(e){const n=typeof e=="function"?e:l.selectorsToPredicate(e);return this.getSpecs().entries.filter(({obj:i})=>l.isPColumnSpec(i)?n(i):!1).map(({ref:i,obj:o})=>{const s=o;let a=null;const u=this;return{id:Ve(i),spec:s,get data(){var c;return a!==null||(a=(c=u.getPColumnByRef(i))==null?void 0:c.data),a}}})}findLabelsForColumnAxis(e,n){var o;const r=this.findLabels(e.axesSpec[n]);if(!r)return;const i=(o=e.annotations)==null?void 0:o["pl7.app/axisKeys/"+n];if(i!==void 0){const s=JSON.parse(i);return Object.fromEntries(s.map(a=>[a,r[a]??"Unlabelled"]))}else return r}}class X{constructor(){D(this,"ctx");D(this,"_argsCache");D(this,"_uiStateCache");D(this,"_activeArgsCache");D(this,"resultPool",new Qe);this.ctx=v()}get args(){if(this._argsCache===void 0){const e=this.ctx.args,n=typeof e=="function"?e():e;this._argsCache={v:JSON.parse(n)}}return this._argsCache.v}get uiState(){if(this._uiStateCache===void 0){const e=this.ctx.uiState,n=typeof e=="function"?e():e;this._uiStateCache={v:n?JSON.parse(n):{}}}return this._uiStateCache.v}get activeArgs(){if(this._activeArgsCache===void 0){const e=this.ctx.activeArgs,n=typeof e=="function"?e():e;this._activeArgsCache={v:n?JSON.parse(n):void 0}}return this._activeArgsCache.v}getNamedAccessor(e){return ue(this.ctx.getAccessorHandleByName(e),n=>new O(n,[e]))}get prerun(){return this.getNamedAccessor(Me)}get outputs(){return this.getNamedAccessor(Je)}findLabels(e){return this.resultPool.findLabels(e)}verifyInlineAndExplicitColumnsSupport(e){var i;const n=e.some(o=>!(o.data instanceof O)||l.isDataInfo(o.data)),r=((i=this.ctx.featureFlags)==null?void 0:i.inlineColumnsSupport)===!0;if(n&&!r)throw Error("Inline or explicit columns not supported")}patchPTableDef(e){var n,r;return(n=this.ctx.featureFlags)!=null&&n.pTablePartitionFiltersSupport||(e={...e,partitionFilters:[],filters:[...e.partitionFilters,...e.filters]}),(r=this.ctx.featureFlags)!=null&&r.pFrameInSetFilterSupport||(e={...e,partitionFilters:ve(e.partitionFilters),filters:ve(e.filters)}),e}createPFrame(e){return this.verifyInlineAndExplicitColumnsSupport(e),this.ctx.createPFrame(e.map(n=>Re(n)))}createPTable(e){let n;return"columns"in e?n=this.patchPTableDef({src:{type:"full",entries:e.columns.map(r=>({type:"column",column:r}))},partitionFilters:e.filters??[],filters:[],sorting:e.sorting??[]}):n=this.patchPTableDef(e),this.verifyInlineAndExplicitColumnsSupport(l.extractAllColumns(n.src)),this.ctx.createPTable(l.mapPTableDef(n,r=>Re(r)))}getBlockLabel(e){return this.ctx.getBlockLabel(e)}getCurrentUnstableMarker(){return this.ctx.getCurrentUnstableMarker()}logInfo(e){this.ctx.logInfo(e)}logWarn(e){this.ctx.logWarn(e)}logError(e){this.ctx.logError(e)}}const cn="1.42.4",Z=cn;function Ze(t){return t.__renderLambda===!0}function ae(t){if(t!==void 0)return Ze(t)?t.handle:t}function pn(t){return l.extractConfigGeneric(t)}const w=class w{constructor(e,n,r,i,o,s,a,u,c){this._renderingMode=e,this._initialArgs=n,this._initialUiState=r,this._outputs=i,this._inputsValid=o,this._sections=s,this._title=a,this._enrichmentTargets=u,this._featureFlags=c}static create(e="Heavy"){return new w(e,void 0,{},{},Q(!0),Q([]),void 0,void 0,{...w.INITIAL_BLOCK_FEATURE_FLAGS})}output(e,n,r={}){if(typeof n=="function"){const i=`output#${e}`;return H(i,()=>n(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:{__renderLambda:!0,handle:i,...r}},this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}else return new w(this._renderingMode,this._initialArgs,this._initialUiState,{...this._outputs,[e]:n},this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}retentiveOutput(e,n){return this.output(e,n,{retentive:!0})}argsValid(e){return typeof e=="function"?(H("inputsValid",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,{__renderLambda:!0,handle:"inputsValid"},this._sections,this._title,this._enrichmentTargets,this._featureFlags)):new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,e,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}sections(e){return Array.isArray(e)?this.sections(Q(e)):typeof e=="function"?(H("sections",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,{__renderLambda:!0,handle:"sections"},this._title,this._enrichmentTargets,this._featureFlags)):new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,e,this._title,this._enrichmentTargets,this._featureFlags)}title(e){return H("title",()=>e(new X)),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,{__renderLambda:!0,handle:"title"},this._enrichmentTargets,this._featureFlags)}initialArgs(e){return new w(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withArgs(e){return new w(this._renderingMode,e,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withUiState(e){return new w(this._renderingMode,this._initialArgs,e,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,this._featureFlags)}withFeatureFlags(e){return new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,this._enrichmentTargets,{...this._featureFlags,...e})}enriches(e){return H("enrichmentTargets",e),new w(this._renderingMode,this._initialArgs,this._initialUiState,this._outputs,this._inputsValid,this._sections,this._title,{__renderLambda:!0,handle:"enrichmentTargets"},this._featureFlags)}done(e){const n=e??1;return this.withFeatureFlags({...this._featureFlags,requiresUIAPIVersion:n})._done(n)}_done(e){if(this._initialArgs===void 0)throw new Error("Initial arguments not set.");const n={v3:{sdkVersion:Z,renderingMode:this._renderingMode,initialArgs:this._initialArgs,initialUiState:this._initialUiState,inputsValid:this._inputsValid,sections:this._sections,title:this._title,outputs:this._outputs,enrichmentTargets:this._enrichmentTargets,featureFlags:this._featureFlags},sdkVersion:Z,renderingMode:this._renderingMode,initialArgs:this._initialArgs,inputsValid:ae(this._inputsValid),sections:ae(this._sections),outputs:Object.fromEntries(Object.entries(this._outputs).map(([r,i])=>[r,ae(i)]))};return globalThis.platformaApiVersion=e,Gt()?Ue({sdkVersion:Z,apiVersion:platformaApiVersion}):{config:n}}};D(w,"INITIAL_BLOCK_FEATURE_FLAGS",{supportsLazyState:!0,requiresUIAPIVersion:1,requiresModelAPIVersion:1});let Ce=w;function Fe(){return{sourceId:null,hiddenColIds:null,partitionFilters:[],filters:[],sorting:[]}}function Te(){return{version:4,stateCache:[],pTableParams:Fe()}}function et(t){return"version"in t||(t=Te()),t.version===2&&(t={version:3,stateCache:t.stateCache.map(e=>({...e,filtersState:[]})),pTableParams:Fe()}),t.version===3&&(t=Te()),t}function pe(t){return t.axesSpec.length===1&&t.name==="pl7.app/label"}function tt(t){return new $().addAxisLabelProvider(t).addColumnProvider(t).getColumns({name:"pl7.app/label",axes:[{}]},{dontWaitAllData:!0})}function Pe(t,e){const n=[],r=[];for(const a of t)pe(a.spec)?n.push(a):r.push(a);const i=[];for(const a of r)for(const u of a.spec.axesSpec){const c=l.getAxisId(u);i.some(m=>l.matchAxisId(m,c))||i.push(c)}for(const a of n){const u=l.getAxisId(a.spec.axesSpec[0]),c=i.findIndex(m=>l.matchAxisId(m,u));c!==-1&&i.splice(c,1)}const o=(a,u)=>{let c=a.toString();if(u)for(const m in u)c+=m,c+=u[m];return c},s=[];for(const a of e){const u=a.spec.axesSpec[0],c=l.getAxisId(u),m=i.findIndex(h=>l.matchAxisId(h,c));if(m!==-1){const h=i[m],g=Object.keys(h.domain??{}).length,f=Object.keys(u.domain??{}).length;g>f?s.push({id:o(a.id,h.domain),spec:{...a.spec,axesSpec:[{...h,annotations:u.annotations}]},data:a.data}):s.push(a),i.splice(m,1)}}return s}function nt(t){const e=i=>Array.isArray(i),n=i=>i instanceof O,r=i=>typeof i=="object"&&"type"in i;return t.map(i=>i.data).every(i=>{if(e(i))return!0;if(n(i))return i.getIsReadyOrError();if(r(i))switch(i.type){case"Json":return!0;case"JsonPartitioned":return Object.values(i.parts).every(s=>s.getIsReadyOrError());case"BinaryPartitioned":return Object.values(i.parts).every(s=>s.index.getIsReadyOrError()&&s.values.getIsReadyOrError())}else throw Error(`unsupported column data type: ${i}`)})}function De(t){let e=t.columns;const n=[];if(t.coreColumnPredicate){e=[];for(const r of t.columns)t.coreColumnPredicate(r.spec)?e.push(r):n.push(r)}return n.push(...t.labelColumns),{src:{type:"outer",primary:{type:t.coreJoinType,entries:e.map(r=>({type:"column",column:r}))},secondary:n.map(r=>({type:"column",column:r}))},partitionFilters:t.partitionFilters,filters:t.filters,sorting:t.sorting}}function rt(t){var e;return((e=t.annotations)==null?void 0:e["pl7.app/table/visibility"])==="hidden"}function it(t){var e;return((e=t.annotations)==null?void 0:e["pl7.app/table/visibility"])==="optional"}function le(t,e){return[...new Map(t.map(n=>[e(n),n])).values()]}function dn(t,e,n,r){if(e.length===0)return;const i=e.filter(p=>de(p.spec)||!rt(p.spec)),o=et(n),s=tt(t.resultPool);if(!s)return;const a=Pe(i.map(l.getColumnIdAndSpec),s),u=[...i,...a],m=[...le([...u.flatMap(p=>p.spec.axesSpec.map(C=>l.getAxisId(C)))],p=>l.canonicalizeJson(p)).map(p=>({type:"axis",id:p})),...u.map(p=>({type:"column",id:p.id}))],h=new Set(m.map(p=>l.canonicalizeJson(p))),g=p=>h.has(l.canonicalizeJson(p)),f=(r==null?void 0:r.coreJoinType)??"full",b=o.pTableParams.partitionFilters.filter(p=>{const C=g(p.column);return C||t.logWarn(`Partition filter ${JSON.stringify(p)} does not match provided columns, skipping`),C}),d=le([...(r==null?void 0:r.filters)??[],...o.pTableParams.filters],p=>l.canonicalizeJson(p.column)).filter(p=>{const C=g(p.column);return C||t.logWarn(`Filter ${JSON.stringify(p)} does not match provided columns, skipping`),C}),y=le([...(r==null?void 0:r.sorting)??[],...o.pTableParams.sorting],p=>l.canonicalizeJson(p.column)).filter(p=>{const C=g(p.column);return C||t.logWarn(`Sorting ${JSON.stringify(p)} does not match provided columns, skipping`),C}),T=De({columns:i,labelColumns:a,coreJoinType:f,partitionFilters:b,filters:d,sorting:y,coreColumnPredicate:r==null?void 0:r.coreColumnPredicate}),R=t.createPTable(T),x=new Set((()=>{if(f==="inner")return[];const p=o.pTableParams.hiddenColIds;return p||i.filter(C=>it(C.spec)).map(C=>C.id)})());i.filter(p=>de(p.spec)).forEach(p=>x.delete(p.id)),r!=null&&r.coreColumnPredicate&&i.flatMap(C=>{var _;return(_=r==null?void 0:r.coreColumnPredicate)!=null&&_.call(r,C.spec)?[C.id]:[]}).forEach(C=>x.delete(C)),[...b.map(p=>p.column),...d.map(p=>p.column),...y.map(p=>p.column)].filter(p=>p.type==="column").forEach(p=>x.delete(p.id));const A=i.filter(p=>!x.has(p.id)),S=Pe(A.map(l.getColumnIdAndSpec),s);if(!nt([...A,...S]))return;const P=De({columns:A,labelColumns:S,coreJoinType:f,partitionFilters:b,filters:d,sorting:y,coreColumnPredicate:r==null?void 0:r.coreColumnPredicate}),F=t.createPTable(P);return{sourceId:o.pTableParams.sourceId,fullTableHandle:R,visibleTableHandle:F}}function fn(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 hn=(t,e)=>{let n=t.toString();return e==null||e.forEach(r=>{if(r)for(const[i,o]of Object.entries(r))n+=i,n+=o}),n};function mn(t){if(!t.length)return[];let e=[[]];return t.forEach(n=>{const r=[];n.forEach(i=>{r.push(...e.map(o=>[...o,i]))}),e=r}),e}function de(t){var e;return((e=t.annotations)==null?void 0:e[st])==="true"}const ot="pl7.app/graph/isVirtual",Ae="pl7.app/label",st="pl7.app/isLinkerColumn";function at(t){var n,r;const e=new Map;for(const{spec:i}of t){const o=i.axesSpec.map(l.getAxisId).map(l.canonicalizeJson);o.forEach(s=>{e.has(s)||e.set(s,new Set)});for(let s=0;s<o.length-1;s++)for(let a=s+1;a<o.length;a++){const u=o[s],c=o[a];(n=e.get(u))==null||n.add(c),(r=e.get(c))==null||r.add(u)}}return e}function lt(t,e){const n=at(t),r=[...n.keys()].map(l.parseJson),i=[];for(const u of e.values()){const c=r.find(m=>l.matchAxisId(u,m));c&&i.push(l.canonicalizeJson(c))}const o=new Set(i),s=new Map;let a=[...i];for(;a.length;){const u=[];for(const c of a)for(const m of n.get(c)??[])o.has(m)||(u.push(m),o.add(m),s.set(m,l.parseJson(m)));a=u}return s}function Se(t,e){const n=[];return e.forEach(r=>{n.push(...gn(t,r))}),n}function gn(t,e){const n=e.spec.axesSpec.map(l.getAxisId);if(n.every(c=>t.has(l.canonicalizeJson(c))))return[e];const r=n.map(c=>{const m=[];for(const[h,g]of t)l.matchAxisId(g,c)&&!l.matchAxisId(c,g)&&m.push(g);return m}),i=mn(r),o=new Set,s=new Set,a=i.map(c=>{const m=new Set;return c.map((h,g)=>{const f=e.spec.axesSpec[g].domain,b=h.domain;return Object.entries(b??{}).forEach(([d,y])=>{if((f==null?void 0:f[d])===void 0){const T=JSON.stringify([d,y]);m.add(T),o.add(T)}}),{...h,annotations:e.spec.axesSpec[g].annotations}}),m});[...o].forEach(c=>{a.some(m=>!m.has(c))&&s.add(c)});const u=i.map((c,m)=>{var d;const h=hn(e.id,c.map(y=>y.domain)),g=((d=e.spec.annotations)==null?void 0:d[Ae])??"",f=[...a[m]].filter(y=>s.has(y)).sort().map(y=>{var T;return(T=JSON.parse(y))==null?void 0:T[1]}).join(" / "),b={...e.spec.annotations,[ot]:"true"};return(g||f)&&(b[Ae]=g&&f?g+" / "+f:g+f),{id:h,spec:{...e.spec,axesSpec:c.map((y,T)=>({...y,annotations:e.spec.axesSpec[T].annotations})),annotations:b},data:e.data}});return[e,...u]}function ut(t){let e=!0;return t.data instanceof O?e=e&&t.data.getIsReadyOrError():l.isDataInfo(t.data)&&l.visitDataInfo(t.data,n=>{e=e&&n.getIsReadyOrError()}),e}function Y(t){return t.every(ut)}function yn(t,e){if(!e){const h=new $;h.addColumnProvider(t.resultPool);const g=h.getColumns(()=>!0,{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[];if(!Y(g))return;const f=new Map(g.flatMap(d=>d.spec.axesSpec).map(d=>{const y=l.getAxisId(d);return[l.canonicalizeJson(y),y]})),b=Se(f,g);return t.createPFrame(b)}if(!Y(e))return;const n=new $;n.addColumnProvider(t.resultPool),n.addColumns(e);const r=new Map,i=new Map;for(const h of e)for(const g of h.spec.axesSpec){const f=l.getAxisId(g);r.set(l.canonicalizeJson(f),f),i.set(l.canonicalizeJson(f),f)}const o=n.getColumns(h=>de(h))??[],s=lt(o,r);for(const h of s)r.set(...h),i.set(...h);const a=(n.getColumns(h=>h.axesSpec.some(g=>{const f=l.getAxisId(g);for(const b of r.values())if(l.matchAxisId(b,f))return!0;return!1}),{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[]).filter(h=>!pe(h.spec));if(!Y(a))return;for(const h of a)for(const g of h.spec.axesSpec){const f=l.getAxisId(g);i.set(l.canonicalizeJson(f),f)}const u=(n.getColumns(h=>h.axesSpec.some(g=>{const f=l.getAxisId(g);for(const b of i.values())if(l.matchAxisId(b,f))return!0;return!1}),{dontWaitAllData:!0,overrideLabelAnnotation:!1})??[]).filter(h=>pe(h.spec));if(!Y(u))return;const c=[...a,...u],m=Se(r,c);return t.createPFrame(m)}function bn({selection:t,columnId:e=l.uniquePlId(),label:n="Selection marker",domain:r}){if(!(t!=null&&t.axesSpec.length))return;const i=t.selectedKeys.filter(o=>o.every(s=>!l.isPTableAbsent(s))).map(o=>({key:o,val:1}));if(i.length)return{id:e,spec:{kind:"PColumn",valueType:"Int",name:"pl7.app/table/row-selection",axesSpec:t.axesSpec,...r&&Object.keys(r).length&&{domain:r},annotations:{"pl7.app/label":n,"pl7.app/discreteValues":"[1]"}},data:i}}function vn(){return{axesSpec:[],selectedKeys:[]}}function ct(t){throw new Error("Unexpected object: "+t)}function V(t){return t.valueType==="Int"||t.valueType==="Long"||t.valueType==="Float"||t.valueType==="Double"}function se(t){return t.valueType==="String"}const _e={lessThan:{label:"Col < X (Less Than)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThan"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:V},greaterThan:{label:"Col > X (Greater Than)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"greaterThan"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:V},lessThanOrEqual:{label:"Col ≤ X (Less Than or Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanOrEqual"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:V},greaterThanOrEqual:{label:"Col ≥ X (Greater Than or Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"greaterThanOrEqual"},x:{label:"X",fieldType:"number",defaultValue:()=>0}},supportedFor:V},lessThanColumn:{label:"Col₁ < Col₂ (Compare Columns)",form:{column:{label:"Col₁",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanColumn"},rhs:{label:"Col₂",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},minDiff:{label:"Margin (positive)",fieldType:"number?",defaultValue:()=>{}}},supportedFor:(t,e)=>V(t)&&(e===void 0||V(e))},lessThanColumnOrEqual:{label:"Col₁ ≤ Col₂ (Compare Columns)",form:{column:{label:"Col₁",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"lessThanColumnOrEqual"},rhs:{label:"Col₂",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},minDiff:{label:"Margin (positive)",fieldType:"number?",defaultValue:()=>{}}},supportedFor:(t,e)=>V(t)&&(e===void 0||V(e))},topN:{label:"Top N",form:{column:{label:"Rank By Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"topN"},n:{label:"N",fieldType:"number",defaultValue:()=>10}},supportedFor:V},bottomN:{label:"Bottom N",form:{column:{label:"Rank By Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"bottomN"},n:{label:"N",fieldType:"number",defaultValue:()=>10}},supportedFor:V},patternContainSubsequence:{label:"Col ~ Seq (Contain Subsequence)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternContainSubsequence"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternNotContainSubsequence:{label:"Col ≁ Seq (Not Contain Subsequence)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternNotContainSubsequence"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternEquals:{label:"Col = Seq (Equals)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternEquals"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},patternNotEquals:{label:"Col ≠ Seq (Not Equal)",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"patternNotEquals"},value:{label:"Seq",fieldType:"string",defaultValue:()=>""}},supportedFor:se},isNA:{label:"Is NA",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"isNA"}},supportedFor:()=>!0},isNotNA:{label:"Is Not NA",form:{column:{label:"Column",fieldType:"SUniversalPColumnId",defaultValue:()=>{}},type:{label:"Predicate",fieldType:"FilterUiType",defaultValue:()=>"isNotNA"}},supportedFor:()=>!0},or:{label:"Or",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"or"},filters:{fieldType:"unknown[]",label:"Filters",defaultValue:()=>[]}},supportedFor:()=>!1},and:{label:"And",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"and"},filters:{fieldType:"unknown[]",label:"Filters",defaultValue:()=>[]}},supportedFor:()=>!1},not:{label:"Not",form:{type:{fieldType:"FilterUiType",label:"Predicate",defaultValue:()=>"not"},filter:{fieldType:"form",label:"Filter",defaultValue:()=>{}}},supportedFor:()=>!1}};function Cn(t){return t?Object.entries(_e).filter(([e,n])=>n.supportedFor(t)).map(([e,n])=>({label:n.label,value:e})):[]}function Tn(t){return _e[t]}function fe(t){if(t.type==="or")return{type:"or",filters:Ie(t.filters)};if(t.type==="and")return{type:"and",filters:Ie(t.filters)};if(t.type==="not")return{type:"not",filter:fe(t.filter)};if(t.type==="isNA")return{type:"isNA",column:t.column};if(t.type==="isNotNA")return{type:"not",filter:{type:"isNA",column:t.column}};if(t.type==="patternEquals")return{type:"pattern",column:t.column,predicate:{type:"equals",value:t.value}};if(t.type==="patternNotEquals")return{type:"not",filter:{type:"pattern",column:t.column,predicate:{type:"equals",value:t.value}}};if(t.type==="patternContainSubsequence")return{type:"pattern",column:t.column,predicate:{type:"containSubsequence",value:t.value}};if(t.type==="patternNotContainSubsequence")return{type:"not",filter:{type:"pattern",column:t.column,predicate:{type:"containSubsequence",value:t.value}}};if(t.type==="topN")return{type:"numericalComparison",lhs:{transformer:"rank",column:t.column,descending:!0},rhs:t.n,allowEqual:!0};if(t.type==="bottomN")return{type:"numericalComparison",lhs:{transformer:"rank",column:t.column},rhs:t.n,allowEqual:!0};if(t.type==="lessThan")return{type:"numericalComparison",lhs:t.column,rhs:t.x};if(t.type==="greaterThan")return{type:"numericalComparison",rhs:t.column,lhs:t.x};if(t.type==="greaterThanOrEqual")return{type:"numericalComparison",rhs:t.column,lhs:t.x,allowEqual:!0};if(t.type==="lessThanOrEqual")return{type:"numericalComparison",lhs:t.column,rhs:t.x,allowEqual:!0};if(t.type==="lessThanColumn")return{type:"numericalComparison",lhs:t.column,rhs:t.rhs,minDiff:t.minDiff,allowEqual:void 0};if(t.type==="lessThanColumnOrEqual")return{type:"numericalComparison",lhs:t.column,rhs:t.rhs,minDiff:t.minDiff,allowEqual:!0};if(t.type===void 0)throw new Error("Filter type is undefined, this should not happen");ct(t)}function Ie(t){return t.filter(e=>e.type!==void 0).map(fe)}function Pn(t){return{title:t.title,mode:t.mode,steps:t.steps.filter(e=>e.filter.type==null?!1:e.filter.type==="or"||e.filter.type==="and"?e.filter.filters.length>0:!1).map(e=>({label:e.label.trim(),filter:fe(e.filter)}))}}class An{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,n){var r;return(r=cfgRenderCtx.featureFlags)!=null&&r.pFrameInSetFilterSupport||(e={...e,filters:ve(e.filters)}),await platforma.pFrameDriver.calculateTableData(this.handle,e,n)}async getUniqueValues(e){return await platforma.pFrameDriver.getUniqueValues(this.handle,e)}}function pt(t){return we({__isRef:!0,blockId:ee(t,"blockId"),name:ee(t,"name")})}function Sn(t){return we({ref:pt(ee(t,"ref")),label:ee(t,"label")})}const In={sdkVersion:Z};function wn(){return platformaApiVersion??1}function xn(){return Ue({sdkVersion:Z,apiVersion:platformaApiVersion})}function Fn(t){if(typeof globalThis.getEnvironmentValue=="function")return globalThis.getEnvironmentValue(t)}exports.Args=Ct;exports.BlockModel=Ce;exports.CurrentSdkInfo=In;exports.FutureRef=L;exports.IS_VIRTUAL_COLUMN=ot;exports.It=Tt;exports.JsRenderInternal=Qt;exports.LABEL_ANNOTATION=Ae;exports.LINKER_COLUMN_ANNOTATION=st;exports.MainOutputs=Pt;exports.OutputError=Ne;exports.PAnnotationLabel=je;exports.PAnnotationTrace=Be;exports.PColumnCollection=$;exports.PFrameImpl=An;exports.RT_BINARY_PARTITIONED=M;exports.RT_BINARY_SUPER_PARTITIONED=q;exports.RT_JSON_PARTITIONED=B;exports.RT_JSON_SUPER_PARTITIONED=re;exports.RT_RESOURCE_MAP=te;exports.RT_RESOURCE_MAP_PARTITIONED=ne;exports.RenderCtx=X;exports.ResultPool=Qe;exports.StagingOutputs=At;exports.Trace=$e;exports.TraceEntry=qe;exports.TreeNodeAccessor=O;exports.UiState=St;exports.allColumnsComputed=nt;exports.allColumnsReady=Y;exports.and=Et;exports.compileAnnotationScript=Pn;exports.compileFilter=fe;exports.compileFilters=Ie;exports.convertOrParsePColumnData=Xe;exports.createPFrameForGraphs=yn;exports.createPlDataTableSheet=fn;exports.createPlDataTableStateV2=Te;exports.createPlDataTableV2=dn;exports.createPlSelectionModel=vn;exports.createRowSelectionColumn=bn;exports.deriveLabels=xe;exports.downgradeCfgOrLambda=ae;exports.enrichCompatible=Se;exports.extractArchiveAndGetURL=Kt;exports.extractConfig=pn;exports.filterDataInfoEntries=Ye;exports.filterUiMetadata=_e;exports.flatten=Ft;exports.fromPlOption=Sn;exports.fromPlRef=pt;exports.getAllLabelColumns=tt;exports.getAvailableWithLinkersAxes=lt;exports.getBlobContent=Nt;exports.getBlobContentAsJson=Ut;exports.getBlobContentAsString=kt;exports.getDownloadedBlobContent=Mt;exports.getEnvironmentValue=Fn;exports.getFilterUiMetadata=Tn;exports.getFilterUiTypeOptions=Cn;exports.getFromCfg=W;exports.getImmediate=Q;exports.getImportProgress=jt;exports.getJsonField=ee;exports.getLastLogs=Bt;exports.getLinkerColumnsMap=at;exports.getLogHandle=Wt;exports.getMatchingLabelColumns=Pe;exports.getOnDemandBlobContent=Jt;exports.getPartitionKeysList=ze;exports.getPlatformaApiVersion=wn;exports.getProgressLog=qt;exports.getProgressLogWithInfo=$t;exports.getRawPlatformaInstance=xn;exports.getResourceField=Rt;exports.getResourceValueAsJson=Dt;exports.getUniquePartitionKeys=He;exports.ifDef=ue;exports.isColumnHidden=rt;exports.isColumnOptional=it;exports.isColumnReady=ut;exports.isConfigLambda=Ze;exports.isEmpty=_t;exports.isLabelColumn=pe;exports.isLinkerColumn=de;exports.isolate=vt;exports.makeArray=It;exports.makeDefaultPTableParams=Fe;exports.makeObject=we;exports.mapArrayValues=xt;exports.mapRecordValues=wt;exports.mapResourceFields=Vt;exports.not=Lt;exports.or=Ot;exports.parsePColumnData=ce;exports.parseResourceMap=tn;exports.readOutput=ke;exports.uniqueBy=le;exports.unreachable=ct;exports.upgradePlDataTableStateV2=et;exports.wrapOutputs=bt;Object.keys(l).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(exports,t)&&Object.defineProperty(exports,t,{enumerable:!0,get:()=>l[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