@platforma-sdk/model 1.45.0 → 1.45.23

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.
Files changed (42) hide show
  1. package/dist/components/PFrameForGraphs.cjs +5 -22
  2. package/dist/components/PFrameForGraphs.cjs.map +1 -1
  3. package/dist/components/PFrameForGraphs.d.ts +0 -2
  4. package/dist/components/PFrameForGraphs.d.ts.map +1 -1
  5. package/dist/components/PFrameForGraphs.js +7 -22
  6. package/dist/components/PFrameForGraphs.js.map +1 -1
  7. package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
  8. package/dist/components/PlAnnotations/filters_ui.d.ts +6 -4
  9. package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -1
  10. package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
  11. package/dist/components/PlDataTable.cjs +6 -38
  12. package/dist/components/PlDataTable.cjs.map +1 -1
  13. package/dist/components/PlDataTable.d.ts +1 -4
  14. package/dist/components/PlDataTable.d.ts.map +1 -1
  15. package/dist/components/PlDataTable.js +7 -38
  16. package/dist/components/PlDataTable.js.map +1 -1
  17. package/dist/filters/types.d.ts +7 -7
  18. package/dist/filters/types.d.ts.map +1 -1
  19. package/dist/index.cjs +2 -3
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.js +3 -3
  22. package/dist/package.json.cjs +1 -1
  23. package/dist/package.json.js +1 -1
  24. package/dist/render/api.cjs +7 -1
  25. package/dist/render/api.cjs.map +1 -1
  26. package/dist/render/api.d.ts +3 -3
  27. package/dist/render/api.d.ts.map +1 -1
  28. package/dist/render/api.js +7 -1
  29. package/dist/render/api.js.map +1 -1
  30. package/dist/render/util/pcolumn_data.cjs +21 -0
  31. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  32. package/dist/render/util/pcolumn_data.d.ts +4 -1
  33. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  34. package/dist/render/util/pcolumn_data.js +21 -2
  35. package/dist/render/util/pcolumn_data.js.map +1 -1
  36. package/package.json +7 -7
  37. package/src/components/PFrameForGraphs.ts +5 -23
  38. package/src/components/PlAnnotations/filters_ui.ts +3 -5
  39. package/src/components/PlDataTable.ts +5 -40
  40. package/src/filters/types.ts +7 -7
  41. package/src/render/api.ts +9 -5
  42. package/src/render/util/pcolumn_data.ts +24 -0
@@ -382,6 +382,25 @@ function convertOrParsePColumnData(acc) {
382
382
  return parsePColumnData(acc);
383
383
  throw new Error(`Unexpected input type: ${typeof acc}`);
384
384
  }
385
+ function isPColumnReady(c) {
386
+ const isValues = (d) => Array.isArray(d);
387
+ const isAccessor = (d) => d instanceof accessor.TreeNodeAccessor;
388
+ let ready = true;
389
+ if (isAccessor(c.data)) {
390
+ ready &&= c.data.getIsReadyOrError();
391
+ }
392
+ else if (plModelCommon.isDataInfo(c.data)) {
393
+ plModelCommon.visitDataInfo(c.data, (v) => ready &&= v.getIsReadyOrError());
394
+ }
395
+ else if (!isValues(c.data)) {
396
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
397
+ throw Error(`unsupported column data type: ${c.data}`);
398
+ }
399
+ return ready;
400
+ }
401
+ function allPColumnsReady(columns) {
402
+ return columns.every(isPColumnReady);
403
+ }
385
404
 
386
405
  exports.RT_BINARY_PARTITIONED = RT_BINARY_PARTITIONED;
387
406
  exports.RT_BINARY_SUPER_PARTITIONED = RT_BINARY_SUPER_PARTITIONED;
@@ -391,9 +410,11 @@ exports.RT_PARQUET_PARTITIONED = RT_PARQUET_PARTITIONED;
391
410
  exports.RT_PARQUET_SUPER_PARTITIONED = RT_PARQUET_SUPER_PARTITIONED;
392
411
  exports.RT_RESOURCE_MAP = RT_RESOURCE_MAP;
393
412
  exports.RT_RESOURCE_MAP_PARTITIONED = RT_RESOURCE_MAP_PARTITIONED;
413
+ exports.allPColumnsReady = allPColumnsReady;
394
414
  exports.convertOrParsePColumnData = convertOrParsePColumnData;
395
415
  exports.getPartitionKeysList = getPartitionKeysList;
396
416
  exports.getUniquePartitionKeys = getUniquePartitionKeys;
417
+ exports.isPColumnReady = isPColumnReady;
397
418
  exports.parsePColumnData = parsePColumnData;
398
419
  exports.parseResourceMap = parseResourceMap;
399
420
  //# sourceMappingURL=pcolumn_data.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pcolumn_data.cjs","sources":["../../../src/render/util/pcolumn_data.ts"],"sourcesContent":["import type {\n DataInfo,\n PartitionedDataInfoEntries,\n} from '@milaboratories/pl-model-common';\nimport {\n dataInfoToEntries,\n isDataInfo,\n isDataInfoEntries,\n type BinaryChunk,\n type DataInfoEntries,\n type PColumnDataEntry,\n type PColumnKey,\n} from '@milaboratories/pl-model-common';\nimport { TreeNodeAccessor } from '../accessor';\n\nconst PCD_PREFIX = 'PColumnData/';\n\nexport const RT_RESOURCE_MAP = PCD_PREFIX + 'ResourceMap';\nexport const RT_RESOURCE_MAP_PARTITIONED = PCD_PREFIX + 'Partitioned/ResourceMap';\n\nexport const RT_JSON_PARTITIONED = PCD_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_PARTITIONED = PCD_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_PARTITIONED = PCD_PREFIX + 'ParquetPartitioned';\n\nconst PCD_SUP_PREFIX = PCD_PREFIX + 'Partitioned/';\nexport const RT_JSON_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'ParquetPartitioned';\n\nexport type PColumnResourceMapEntry<T> = {\n key: PColumnKey;\n value: T;\n};\n\nexport type PColumnResourceMapData<T> = {\n isComplete: boolean;\n data: PColumnResourceMapEntry<T>[];\n};\n\nfunction populateResourceMapData<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n data: PColumnResourceMapEntry<T | undefined>[],\n keyPrefix: PColumnKey = [],\n addEntriesWithNoData: boolean,\n): boolean {\n if (acc === undefined) return false;\n switch (acc.resourceType.name) {\n case RT_RESOURCE_MAP: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const converted = value === undefined ? undefined : resourceParser(value);\n if (converted === undefined) isComplete = false;\n if (converted !== undefined || addEntriesWithNoData) data.push({ key, value: converted });\n }\n return isComplete;\n }\n case RT_RESOURCE_MAP_PARTITIONED: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) isComplete = false;\n else {\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const populateResult = populateResourceMapData(\n value,\n resourceParser,\n data,\n key,\n addEntriesWithNoData,\n );\n isComplete = isComplete && populateResult;\n }\n }\n return isComplete;\n }\n default:\n throw new Error(`Unknown resource type: ${acc.resourceType.name}`);\n }\n}\n\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: false\n): PColumnResourceMapData<NonNullable<T>>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: true\n): PColumnResourceMapData<T | undefined>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: boolean = false,\n): PColumnResourceMapData<T | undefined> {\n const data: PColumnResourceMapEntry<T | undefined>[] = [];\n const isComplete = populateResourceMapData(acc, resourceParser, data, [], addEntriesWithNoData);\n return { isComplete, data };\n}\n\nexport type PColumnKeyList = {\n /** array of keys */\n data: PColumnKey[];\n /** length of partition key */\n keyLength: number;\n};\n\nconst removeIndexSuffix = (keyStr: string): { baseKey: string; type: 'index' | 'values' } => {\n if (keyStr.endsWith('.index')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 6), type: 'index' };\n } else if (keyStr.endsWith('.values')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 7), type: 'values' };\n } else {\n throw new Error(`key must ends on .index/.values for binary p-column, got: ${keyStr}`);\n }\n};\n\n// @TODO define a class with various resource map operations\n/** Returns a list of all partition keys appeared in the p-column */\nexport function getPartitionKeysList(\n acc: TreeNodeAccessor | undefined,\n): PColumnKeyList | undefined {\n if (!acc) return undefined;\n\n const rt = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n const data: PColumnKey[] = [];\n\n let keyLength = 0;\n // @TODO validate meta shape\n switch (rt) {\n case RT_RESOURCE_MAP:\n keyLength = meta['keyLength'];\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n keyLength = meta['partitionKeyLength'] + meta['keyLength'];\n break;\n\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n keyLength = meta['partitionKeyLength'];\n break;\n\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n keyLength = meta['superPartitionKeyLength'] + meta['partitionKeyLength'];\n break;\n }\n\n switch (rt) {\n case RT_RESOURCE_MAP:\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n for (let keyStr of acc.listInputFields()) {\n if (rt === RT_BINARY_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n for (const supKeyStr of acc.listInputFields()) {\n const keyPrefix = [...JSON.parse(supKeyStr)] as PColumnKey;\n\n const value = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (value !== undefined) {\n for (let keyStr of value.listInputFields()) {\n if (rt === RT_BINARY_SUPER_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n }\n }\n break;\n }\n\n return { data, keyLength };\n}\n\nfunction getUniquePartitionKeysForDataEntries(list: DataInfoEntries<unknown>): (string | number)[][] {\n if (list.type !== 'JsonPartitioned' && list.type !== 'BinaryPartitioned' && list.type !== 'ParquetPartitioned')\n throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${list.type}`);\n\n const { parts, partitionKeyLength } = list;\n\n const result: Set<string | number>[] = [];\n for (let i = 0; i < partitionKeyLength; ++i) {\n result.push(new Set());\n }\n\n for (const part of parts) {\n const key = part.key;\n if (key.length !== partitionKeyLength) {\n throw new Error(\n `Key length (${key.length}) does not match partition length (${partitionKeyLength}) for key: ${JSON.stringify(\n key,\n )}`,\n );\n }\n for (let i = 0; i < partitionKeyLength; ++i) {\n result[i].add(key[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/** Returns an array of unique partition keys for each column: the i-th element in the resulting 2d array contains all unique values of i-th partition axis. */\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown>): (string | number)[][];\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown> | TreeNodeAccessor | undefined): (string | number)[][] | undefined;\nexport function getUniquePartitionKeys(\n acc: TreeNodeAccessor | DataInfoEntries<unknown> | undefined,\n): (string | number)[][] | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc))\n return getUniquePartitionKeysForDataEntries(acc);\n\n const list = getPartitionKeysList(acc);\n if (!list) return undefined;\n\n const { data, keyLength } = list;\n\n const result: Set<string | number>[] = [];\n\n for (let i = 0; i < keyLength; ++i) {\n result.push(new Set());\n }\n\n for (const l of data) {\n if (l.length !== keyLength) {\n throw new Error('key length does not match partition length');\n }\n for (let i = 0; i < keyLength; ++i) {\n result[i].add(l[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/**\n * Parses the PColumn data from a TreeNodeAccessor into a DataInfoEntries structure.\n * Returns undefined if any required data is missing.\n * Throws error on validation failures.\n *\n * @param acc - The TreeNodeAccessor containing PColumn data\n * @param keyPrefix - Optional key prefix for recursive calls\n * @returns DataInfoEntries representation of the PColumn data, or undefined if incomplete\n */\nexport function parsePColumnData(\n acc: TreeNodeAccessor | undefined,\n keyPrefix: PColumnKey = [],\n): PartitionedDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (!acc.getIsReadyOrError()) return undefined;\n\n const resourceType = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n\n // Prevent recursive super-partitioned resources\n if (keyPrefix.length > 0\n && (resourceType === RT_JSON_SUPER_PARTITIONED\n || resourceType === RT_BINARY_SUPER_PARTITIONED\n || resourceType === RT_PARQUET_SUPER_PARTITIONED)) {\n throw new Error(`Unexpected nested super-partitioned resource: ${resourceType}`);\n }\n\n switch (resourceType) {\n case RT_RESOURCE_MAP:\n case RT_RESOURCE_MAP_PARTITIONED:\n throw new Error(`Only data columns are supported, got: ${resourceType}`);\n\n case RT_JSON_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n const baseKeys = new Map<string, { index?: TreeNodeAccessor; values?: TreeNodeAccessor }>();\n\n // Group fields by base key (without .index/.values suffix)\n for (const keyStr of acc.listInputFields()) {\n const suffix = removeIndexSuffix(keyStr);\n\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n let entry = baseKeys.get(suffix.baseKey);\n if (!entry) {\n entry = {};\n baseKeys.set(suffix.baseKey, entry);\n }\n\n if (suffix.type === 'index') {\n entry.index = value;\n } else {\n entry.values = value;\n }\n }\n\n // Process complete binary chunks only\n for (const [baseKeyStr, entry] of baseKeys.entries()) {\n if (!entry.index || !entry.values) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(baseKeyStr)];\n parts.push({\n key,\n value: {\n index: entry.index,\n values: entry.values,\n },\n });\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_JSON_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_JSON_PARTITIONED) {\n throw new Error(`Expected ${RT_JSON_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'JsonPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_BINARY_PARTITIONED) {\n throw new Error(`Expected ${RT_BINARY_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'BinaryPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_PARQUET_PARTITIONED) {\n throw new Error(`Expected ${RT_PARQUET_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'ParquetPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n default:\n throw new Error(`Unknown resource type: ${resourceType}`);\n }\n}\n\n/**\n * Converts or parses the input into DataInfoEntries format.\n\n * @param acc - The input data, which can be TreeNodeAccessor, DataInfoEntries, DataInfo, or undefined.\n * @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.\n */\nexport function convertOrParsePColumnData(acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined):\nDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc)) return acc;\n if (isDataInfo(acc)) return dataInfoToEntries(acc);\n if (acc instanceof TreeNodeAccessor) return parsePColumnData(acc);\n\n throw new Error(`Unexpected input type: ${typeof acc}`);\n}\n"],"names":["isDataInfoEntries","isDataInfo","dataInfoToEntries","TreeNodeAccessor"],"mappings":"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"}
1
+ {"version":3,"file":"pcolumn_data.cjs","sources":["../../../src/render/util/pcolumn_data.ts"],"sourcesContent":["import type {\n DataInfo,\n PartitionedDataInfoEntries,\n PColumn,\n PColumnValues,\n} from '@milaboratories/pl-model-common';\nimport {\n dataInfoToEntries,\n isDataInfo,\n isDataInfoEntries,\n visitDataInfo,\n type BinaryChunk,\n type DataInfoEntries,\n type PColumnDataEntry,\n type PColumnKey,\n} from '@milaboratories/pl-model-common';\nimport { TreeNodeAccessor } from '../accessor';\nimport type { PColumnDataUniversal } from '../api';\n\nconst PCD_PREFIX = 'PColumnData/';\n\nexport const RT_RESOURCE_MAP = PCD_PREFIX + 'ResourceMap';\nexport const RT_RESOURCE_MAP_PARTITIONED = PCD_PREFIX + 'Partitioned/ResourceMap';\n\nexport const RT_JSON_PARTITIONED = PCD_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_PARTITIONED = PCD_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_PARTITIONED = PCD_PREFIX + 'ParquetPartitioned';\n\nconst PCD_SUP_PREFIX = PCD_PREFIX + 'Partitioned/';\nexport const RT_JSON_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'ParquetPartitioned';\n\nexport type PColumnResourceMapEntry<T> = {\n key: PColumnKey;\n value: T;\n};\n\nexport type PColumnResourceMapData<T> = {\n isComplete: boolean;\n data: PColumnResourceMapEntry<T>[];\n};\n\nfunction populateResourceMapData<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n data: PColumnResourceMapEntry<T | undefined>[],\n keyPrefix: PColumnKey = [],\n addEntriesWithNoData: boolean,\n): boolean {\n if (acc === undefined) return false;\n switch (acc.resourceType.name) {\n case RT_RESOURCE_MAP: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const converted = value === undefined ? undefined : resourceParser(value);\n if (converted === undefined) isComplete = false;\n if (converted !== undefined || addEntriesWithNoData) data.push({ key, value: converted });\n }\n return isComplete;\n }\n case RT_RESOURCE_MAP_PARTITIONED: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) isComplete = false;\n else {\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const populateResult = populateResourceMapData(\n value,\n resourceParser,\n data,\n key,\n addEntriesWithNoData,\n );\n isComplete = isComplete && populateResult;\n }\n }\n return isComplete;\n }\n default:\n throw new Error(`Unknown resource type: ${acc.resourceType.name}`);\n }\n}\n\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: false\n): PColumnResourceMapData<NonNullable<T>>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: true\n): PColumnResourceMapData<T | undefined>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: boolean = false,\n): PColumnResourceMapData<T | undefined> {\n const data: PColumnResourceMapEntry<T | undefined>[] = [];\n const isComplete = populateResourceMapData(acc, resourceParser, data, [], addEntriesWithNoData);\n return { isComplete, data };\n}\n\nexport type PColumnKeyList = {\n /** array of keys */\n data: PColumnKey[];\n /** length of partition key */\n keyLength: number;\n};\n\nconst removeIndexSuffix = (keyStr: string): { baseKey: string; type: 'index' | 'values' } => {\n if (keyStr.endsWith('.index')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 6), type: 'index' };\n } else if (keyStr.endsWith('.values')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 7), type: 'values' };\n } else {\n throw new Error(`key must ends on .index/.values for binary p-column, got: ${keyStr}`);\n }\n};\n\n// @TODO define a class with various resource map operations\n/** Returns a list of all partition keys appeared in the p-column */\nexport function getPartitionKeysList(\n acc: TreeNodeAccessor | undefined,\n): PColumnKeyList | undefined {\n if (!acc) return undefined;\n\n const rt = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n const data: PColumnKey[] = [];\n\n let keyLength = 0;\n // @TODO validate meta shape\n switch (rt) {\n case RT_RESOURCE_MAP:\n keyLength = meta['keyLength'];\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n keyLength = meta['partitionKeyLength'] + meta['keyLength'];\n break;\n\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n keyLength = meta['partitionKeyLength'];\n break;\n\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n keyLength = meta['superPartitionKeyLength'] + meta['partitionKeyLength'];\n break;\n }\n\n switch (rt) {\n case RT_RESOURCE_MAP:\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n for (let keyStr of acc.listInputFields()) {\n if (rt === RT_BINARY_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n for (const supKeyStr of acc.listInputFields()) {\n const keyPrefix = [...JSON.parse(supKeyStr)] as PColumnKey;\n\n const value = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (value !== undefined) {\n for (let keyStr of value.listInputFields()) {\n if (rt === RT_BINARY_SUPER_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n }\n }\n break;\n }\n\n return { data, keyLength };\n}\n\nfunction getUniquePartitionKeysForDataEntries(list: DataInfoEntries<unknown>): (string | number)[][] {\n if (list.type !== 'JsonPartitioned' && list.type !== 'BinaryPartitioned' && list.type !== 'ParquetPartitioned')\n throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${list.type}`);\n\n const { parts, partitionKeyLength } = list;\n\n const result: Set<string | number>[] = [];\n for (let i = 0; i < partitionKeyLength; ++i) {\n result.push(new Set());\n }\n\n for (const part of parts) {\n const key = part.key;\n if (key.length !== partitionKeyLength) {\n throw new Error(\n `Key length (${key.length}) does not match partition length (${partitionKeyLength}) for key: ${JSON.stringify(\n key,\n )}`,\n );\n }\n for (let i = 0; i < partitionKeyLength; ++i) {\n result[i].add(key[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/** Returns an array of unique partition keys for each column: the i-th element in the resulting 2d array contains all unique values of i-th partition axis. */\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown>): (string | number)[][];\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown> | TreeNodeAccessor | undefined): (string | number)[][] | undefined;\nexport function getUniquePartitionKeys(\n acc: TreeNodeAccessor | DataInfoEntries<unknown> | undefined,\n): (string | number)[][] | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc))\n return getUniquePartitionKeysForDataEntries(acc);\n\n const list = getPartitionKeysList(acc);\n if (!list) return undefined;\n\n const { data, keyLength } = list;\n\n const result: Set<string | number>[] = [];\n\n for (let i = 0; i < keyLength; ++i) {\n result.push(new Set());\n }\n\n for (const l of data) {\n if (l.length !== keyLength) {\n throw new Error('key length does not match partition length');\n }\n for (let i = 0; i < keyLength; ++i) {\n result[i].add(l[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/**\n * Parses the PColumn data from a TreeNodeAccessor into a DataInfoEntries structure.\n * Returns undefined if any required data is missing.\n * Throws error on validation failures.\n *\n * @param acc - The TreeNodeAccessor containing PColumn data\n * @param keyPrefix - Optional key prefix for recursive calls\n * @returns DataInfoEntries representation of the PColumn data, or undefined if incomplete\n */\nexport function parsePColumnData(\n acc: TreeNodeAccessor | undefined,\n keyPrefix: PColumnKey = [],\n): PartitionedDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (!acc.getIsReadyOrError()) return undefined;\n\n const resourceType = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n\n // Prevent recursive super-partitioned resources\n if (keyPrefix.length > 0\n && (resourceType === RT_JSON_SUPER_PARTITIONED\n || resourceType === RT_BINARY_SUPER_PARTITIONED\n || resourceType === RT_PARQUET_SUPER_PARTITIONED)) {\n throw new Error(`Unexpected nested super-partitioned resource: ${resourceType}`);\n }\n\n switch (resourceType) {\n case RT_RESOURCE_MAP:\n case RT_RESOURCE_MAP_PARTITIONED:\n throw new Error(`Only data columns are supported, got: ${resourceType}`);\n\n case RT_JSON_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n const baseKeys = new Map<string, { index?: TreeNodeAccessor; values?: TreeNodeAccessor }>();\n\n // Group fields by base key (without .index/.values suffix)\n for (const keyStr of acc.listInputFields()) {\n const suffix = removeIndexSuffix(keyStr);\n\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n let entry = baseKeys.get(suffix.baseKey);\n if (!entry) {\n entry = {};\n baseKeys.set(suffix.baseKey, entry);\n }\n\n if (suffix.type === 'index') {\n entry.index = value;\n } else {\n entry.values = value;\n }\n }\n\n // Process complete binary chunks only\n for (const [baseKeyStr, entry] of baseKeys.entries()) {\n if (!entry.index || !entry.values) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(baseKeyStr)];\n parts.push({\n key,\n value: {\n index: entry.index,\n values: entry.values,\n },\n });\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_JSON_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_JSON_PARTITIONED) {\n throw new Error(`Expected ${RT_JSON_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'JsonPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_BINARY_PARTITIONED) {\n throw new Error(`Expected ${RT_BINARY_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'BinaryPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_PARQUET_PARTITIONED) {\n throw new Error(`Expected ${RT_PARQUET_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'ParquetPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n default:\n throw new Error(`Unknown resource type: ${resourceType}`);\n }\n}\n\n/**\n * Converts or parses the input into DataInfoEntries format.\n\n * @param acc - The input data, which can be TreeNodeAccessor, DataInfoEntries, DataInfo, or undefined.\n * @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.\n */\nexport function convertOrParsePColumnData(acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined):\nDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc)) return acc;\n if (isDataInfo(acc)) return dataInfoToEntries(acc);\n if (acc instanceof TreeNodeAccessor) return parsePColumnData(acc);\n\n throw new Error(`Unexpected input type: ${typeof acc}`);\n}\n\nexport function isPColumnReady(c: PColumn<PColumnDataUniversal>): boolean {\n const isValues = (d: PColumnDataUniversal): d is PColumnValues => Array.isArray(d);\n const isAccessor = (d: PColumnDataUniversal): d is TreeNodeAccessor => d instanceof TreeNodeAccessor;\n\n let ready = true;\n if (isAccessor(c.data)) {\n ready &&= c.data.getIsReadyOrError();\n } else if (isDataInfo(c.data)) {\n visitDataInfo(c.data, (v) => ready &&= v.getIsReadyOrError());\n } else if (!isValues(c.data)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw Error(`unsupported column data type: ${c.data satisfies never}`);\n }\n return ready;\n}\n\nexport function allPColumnsReady(columns: PColumn<PColumnDataUniversal>[]): boolean {\n return columns.every(isPColumnReady);\n}\n"],"names":["isDataInfoEntries","isDataInfo","dataInfoToEntries","TreeNodeAccessor","visitDataInfo"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { DataInfo, PartitionedDataInfoEntries } from '@milaboratories/pl-model-common';
1
+ import type { DataInfo, PartitionedDataInfoEntries, PColumn } from '@milaboratories/pl-model-common';
2
2
  import { type DataInfoEntries, type PColumnKey } from '@milaboratories/pl-model-common';
3
3
  import { TreeNodeAccessor } from '../accessor';
4
+ import type { PColumnDataUniversal } from '../api';
4
5
  export declare const RT_RESOURCE_MAP: string;
5
6
  export declare const RT_RESOURCE_MAP_PARTITIONED: string;
6
7
  export declare const RT_JSON_PARTITIONED: string;
@@ -47,4 +48,6 @@ export declare function parsePColumnData(acc: TreeNodeAccessor | undefined, keyP
47
48
  * @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.
48
49
  */
49
50
  export declare function convertOrParsePColumnData(acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined): DataInfoEntries<TreeNodeAccessor> | undefined;
51
+ export declare function isPColumnReady(c: PColumn<PColumnDataUniversal>): boolean;
52
+ export declare function allPColumnsReady(columns: PColumn<PColumnDataUniversal>[]): boolean;
50
53
  //# sourceMappingURL=pcolumn_data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pcolumn_data.d.ts","sourceRoot":"","sources":["../../../src/render/util/pcolumn_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKL,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,eAAO,MAAM,eAAe,QAA6B,CAAC;AAC1D,eAAO,MAAM,2BAA2B,QAAyC,CAAC;AAElF,eAAO,MAAM,mBAAmB,QAAiC,CAAC;AAClE,eAAO,MAAM,qBAAqB,QAAmC,CAAC;AACtE,eAAO,MAAM,sBAAsB,QAAoC,CAAC;AAGxE,eAAO,MAAM,yBAAyB,QAAqC,CAAC;AAC5E,eAAO,MAAM,2BAA2B,QAAuC,CAAC;AAChF,eAAO,MAAM,4BAA4B,QAAwC,CAAC;AAElF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;CACpC,CAAC;AA8CF,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,cAAc,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,GAAG,SAAS,EACxD,oBAAoB,EAAE,KAAK,GAC1B,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,cAAc,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,GAAG,SAAS,EACxD,oBAAoB,EAAE,IAAI,GACzB,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAWzC,MAAM,MAAM,cAAc,GAAG;IAC3B,oBAAoB;IACpB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAaF,oEAAoE;AACpE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAChC,cAAc,GAAG,SAAS,CAoE5B;AA8BD,+JAA+J;AAC/J,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;AAC7F,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,gBAAgB,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;AAgCxI;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,SAAS,GAAE,UAAe,GACzB,0BAA0B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CA+N1D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,GAC5I,eAAe,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAQ5C"}
1
+ {"version":3,"file":"pcolumn_data.d.ts","sourceRoot":"","sources":["../../../src/render/util/pcolumn_data.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isDataInfoEntries, isDataInfo, dataInfoToEntries } from '@milaboratories/pl-model-common';
1
+ import { isDataInfoEntries, isDataInfo, dataInfoToEntries, visitDataInfo } from '@milaboratories/pl-model-common';
2
2
  import { TreeNodeAccessor } from '../accessor.js';
3
3
 
4
4
  const PCD_PREFIX = 'PColumnData/';
@@ -380,6 +380,25 @@ function convertOrParsePColumnData(acc) {
380
380
  return parsePColumnData(acc);
381
381
  throw new Error(`Unexpected input type: ${typeof acc}`);
382
382
  }
383
+ function isPColumnReady(c) {
384
+ const isValues = (d) => Array.isArray(d);
385
+ const isAccessor = (d) => d instanceof TreeNodeAccessor;
386
+ let ready = true;
387
+ if (isAccessor(c.data)) {
388
+ ready &&= c.data.getIsReadyOrError();
389
+ }
390
+ else if (isDataInfo(c.data)) {
391
+ visitDataInfo(c.data, (v) => ready &&= v.getIsReadyOrError());
392
+ }
393
+ else if (!isValues(c.data)) {
394
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
395
+ throw Error(`unsupported column data type: ${c.data}`);
396
+ }
397
+ return ready;
398
+ }
399
+ function allPColumnsReady(columns) {
400
+ return columns.every(isPColumnReady);
401
+ }
383
402
 
384
- export { RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, convertOrParsePColumnData, getPartitionKeysList, getUniquePartitionKeys, parsePColumnData, parseResourceMap };
403
+ export { RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, allPColumnsReady, convertOrParsePColumnData, getPartitionKeysList, getUniquePartitionKeys, isPColumnReady, parsePColumnData, parseResourceMap };
385
404
  //# sourceMappingURL=pcolumn_data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pcolumn_data.js","sources":["../../../src/render/util/pcolumn_data.ts"],"sourcesContent":["import type {\n DataInfo,\n PartitionedDataInfoEntries,\n} from '@milaboratories/pl-model-common';\nimport {\n dataInfoToEntries,\n isDataInfo,\n isDataInfoEntries,\n type BinaryChunk,\n type DataInfoEntries,\n type PColumnDataEntry,\n type PColumnKey,\n} from '@milaboratories/pl-model-common';\nimport { TreeNodeAccessor } from '../accessor';\n\nconst PCD_PREFIX = 'PColumnData/';\n\nexport const RT_RESOURCE_MAP = PCD_PREFIX + 'ResourceMap';\nexport const RT_RESOURCE_MAP_PARTITIONED = PCD_PREFIX + 'Partitioned/ResourceMap';\n\nexport const RT_JSON_PARTITIONED = PCD_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_PARTITIONED = PCD_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_PARTITIONED = PCD_PREFIX + 'ParquetPartitioned';\n\nconst PCD_SUP_PREFIX = PCD_PREFIX + 'Partitioned/';\nexport const RT_JSON_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'ParquetPartitioned';\n\nexport type PColumnResourceMapEntry<T> = {\n key: PColumnKey;\n value: T;\n};\n\nexport type PColumnResourceMapData<T> = {\n isComplete: boolean;\n data: PColumnResourceMapEntry<T>[];\n};\n\nfunction populateResourceMapData<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n data: PColumnResourceMapEntry<T | undefined>[],\n keyPrefix: PColumnKey = [],\n addEntriesWithNoData: boolean,\n): boolean {\n if (acc === undefined) return false;\n switch (acc.resourceType.name) {\n case RT_RESOURCE_MAP: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const converted = value === undefined ? undefined : resourceParser(value);\n if (converted === undefined) isComplete = false;\n if (converted !== undefined || addEntriesWithNoData) data.push({ key, value: converted });\n }\n return isComplete;\n }\n case RT_RESOURCE_MAP_PARTITIONED: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) isComplete = false;\n else {\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const populateResult = populateResourceMapData(\n value,\n resourceParser,\n data,\n key,\n addEntriesWithNoData,\n );\n isComplete = isComplete && populateResult;\n }\n }\n return isComplete;\n }\n default:\n throw new Error(`Unknown resource type: ${acc.resourceType.name}`);\n }\n}\n\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: false\n): PColumnResourceMapData<NonNullable<T>>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: true\n): PColumnResourceMapData<T | undefined>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: boolean = false,\n): PColumnResourceMapData<T | undefined> {\n const data: PColumnResourceMapEntry<T | undefined>[] = [];\n const isComplete = populateResourceMapData(acc, resourceParser, data, [], addEntriesWithNoData);\n return { isComplete, data };\n}\n\nexport type PColumnKeyList = {\n /** array of keys */\n data: PColumnKey[];\n /** length of partition key */\n keyLength: number;\n};\n\nconst removeIndexSuffix = (keyStr: string): { baseKey: string; type: 'index' | 'values' } => {\n if (keyStr.endsWith('.index')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 6), type: 'index' };\n } else if (keyStr.endsWith('.values')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 7), type: 'values' };\n } else {\n throw new Error(`key must ends on .index/.values for binary p-column, got: ${keyStr}`);\n }\n};\n\n// @TODO define a class with various resource map operations\n/** Returns a list of all partition keys appeared in the p-column */\nexport function getPartitionKeysList(\n acc: TreeNodeAccessor | undefined,\n): PColumnKeyList | undefined {\n if (!acc) return undefined;\n\n const rt = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n const data: PColumnKey[] = [];\n\n let keyLength = 0;\n // @TODO validate meta shape\n switch (rt) {\n case RT_RESOURCE_MAP:\n keyLength = meta['keyLength'];\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n keyLength = meta['partitionKeyLength'] + meta['keyLength'];\n break;\n\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n keyLength = meta['partitionKeyLength'];\n break;\n\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n keyLength = meta['superPartitionKeyLength'] + meta['partitionKeyLength'];\n break;\n }\n\n switch (rt) {\n case RT_RESOURCE_MAP:\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n for (let keyStr of acc.listInputFields()) {\n if (rt === RT_BINARY_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n for (const supKeyStr of acc.listInputFields()) {\n const keyPrefix = [...JSON.parse(supKeyStr)] as PColumnKey;\n\n const value = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (value !== undefined) {\n for (let keyStr of value.listInputFields()) {\n if (rt === RT_BINARY_SUPER_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n }\n }\n break;\n }\n\n return { data, keyLength };\n}\n\nfunction getUniquePartitionKeysForDataEntries(list: DataInfoEntries<unknown>): (string | number)[][] {\n if (list.type !== 'JsonPartitioned' && list.type !== 'BinaryPartitioned' && list.type !== 'ParquetPartitioned')\n throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${list.type}`);\n\n const { parts, partitionKeyLength } = list;\n\n const result: Set<string | number>[] = [];\n for (let i = 0; i < partitionKeyLength; ++i) {\n result.push(new Set());\n }\n\n for (const part of parts) {\n const key = part.key;\n if (key.length !== partitionKeyLength) {\n throw new Error(\n `Key length (${key.length}) does not match partition length (${partitionKeyLength}) for key: ${JSON.stringify(\n key,\n )}`,\n );\n }\n for (let i = 0; i < partitionKeyLength; ++i) {\n result[i].add(key[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/** Returns an array of unique partition keys for each column: the i-th element in the resulting 2d array contains all unique values of i-th partition axis. */\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown>): (string | number)[][];\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown> | TreeNodeAccessor | undefined): (string | number)[][] | undefined;\nexport function getUniquePartitionKeys(\n acc: TreeNodeAccessor | DataInfoEntries<unknown> | undefined,\n): (string | number)[][] | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc))\n return getUniquePartitionKeysForDataEntries(acc);\n\n const list = getPartitionKeysList(acc);\n if (!list) return undefined;\n\n const { data, keyLength } = list;\n\n const result: Set<string | number>[] = [];\n\n for (let i = 0; i < keyLength; ++i) {\n result.push(new Set());\n }\n\n for (const l of data) {\n if (l.length !== keyLength) {\n throw new Error('key length does not match partition length');\n }\n for (let i = 0; i < keyLength; ++i) {\n result[i].add(l[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/**\n * Parses the PColumn data from a TreeNodeAccessor into a DataInfoEntries structure.\n * Returns undefined if any required data is missing.\n * Throws error on validation failures.\n *\n * @param acc - The TreeNodeAccessor containing PColumn data\n * @param keyPrefix - Optional key prefix for recursive calls\n * @returns DataInfoEntries representation of the PColumn data, or undefined if incomplete\n */\nexport function parsePColumnData(\n acc: TreeNodeAccessor | undefined,\n keyPrefix: PColumnKey = [],\n): PartitionedDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (!acc.getIsReadyOrError()) return undefined;\n\n const resourceType = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n\n // Prevent recursive super-partitioned resources\n if (keyPrefix.length > 0\n && (resourceType === RT_JSON_SUPER_PARTITIONED\n || resourceType === RT_BINARY_SUPER_PARTITIONED\n || resourceType === RT_PARQUET_SUPER_PARTITIONED)) {\n throw new Error(`Unexpected nested super-partitioned resource: ${resourceType}`);\n }\n\n switch (resourceType) {\n case RT_RESOURCE_MAP:\n case RT_RESOURCE_MAP_PARTITIONED:\n throw new Error(`Only data columns are supported, got: ${resourceType}`);\n\n case RT_JSON_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n const baseKeys = new Map<string, { index?: TreeNodeAccessor; values?: TreeNodeAccessor }>();\n\n // Group fields by base key (without .index/.values suffix)\n for (const keyStr of acc.listInputFields()) {\n const suffix = removeIndexSuffix(keyStr);\n\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n let entry = baseKeys.get(suffix.baseKey);\n if (!entry) {\n entry = {};\n baseKeys.set(suffix.baseKey, entry);\n }\n\n if (suffix.type === 'index') {\n entry.index = value;\n } else {\n entry.values = value;\n }\n }\n\n // Process complete binary chunks only\n for (const [baseKeyStr, entry] of baseKeys.entries()) {\n if (!entry.index || !entry.values) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(baseKeyStr)];\n parts.push({\n key,\n value: {\n index: entry.index,\n values: entry.values,\n },\n });\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_JSON_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_JSON_PARTITIONED) {\n throw new Error(`Expected ${RT_JSON_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'JsonPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_BINARY_PARTITIONED) {\n throw new Error(`Expected ${RT_BINARY_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'BinaryPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_PARQUET_PARTITIONED) {\n throw new Error(`Expected ${RT_PARQUET_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'ParquetPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n default:\n throw new Error(`Unknown resource type: ${resourceType}`);\n }\n}\n\n/**\n * Converts or parses the input into DataInfoEntries format.\n\n * @param acc - The input data, which can be TreeNodeAccessor, DataInfoEntries, DataInfo, or undefined.\n * @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.\n */\nexport function convertOrParsePColumnData(acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined):\nDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc)) return acc;\n if (isDataInfo(acc)) return dataInfoToEntries(acc);\n if (acc instanceof TreeNodeAccessor) return parsePColumnData(acc);\n\n throw new Error(`Unexpected input type: ${typeof acc}`);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pcolumn_data.js","sources":["../../../src/render/util/pcolumn_data.ts"],"sourcesContent":["import type {\n DataInfo,\n PartitionedDataInfoEntries,\n PColumn,\n PColumnValues,\n} from '@milaboratories/pl-model-common';\nimport {\n dataInfoToEntries,\n isDataInfo,\n isDataInfoEntries,\n visitDataInfo,\n type BinaryChunk,\n type DataInfoEntries,\n type PColumnDataEntry,\n type PColumnKey,\n} from '@milaboratories/pl-model-common';\nimport { TreeNodeAccessor } from '../accessor';\nimport type { PColumnDataUniversal } from '../api';\n\nconst PCD_PREFIX = 'PColumnData/';\n\nexport const RT_RESOURCE_MAP = PCD_PREFIX + 'ResourceMap';\nexport const RT_RESOURCE_MAP_PARTITIONED = PCD_PREFIX + 'Partitioned/ResourceMap';\n\nexport const RT_JSON_PARTITIONED = PCD_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_PARTITIONED = PCD_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_PARTITIONED = PCD_PREFIX + 'ParquetPartitioned';\n\nconst PCD_SUP_PREFIX = PCD_PREFIX + 'Partitioned/';\nexport const RT_JSON_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'JsonPartitioned';\nexport const RT_BINARY_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'BinaryPartitioned';\nexport const RT_PARQUET_SUPER_PARTITIONED = PCD_SUP_PREFIX + 'ParquetPartitioned';\n\nexport type PColumnResourceMapEntry<T> = {\n key: PColumnKey;\n value: T;\n};\n\nexport type PColumnResourceMapData<T> = {\n isComplete: boolean;\n data: PColumnResourceMapEntry<T>[];\n};\n\nfunction populateResourceMapData<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n data: PColumnResourceMapEntry<T | undefined>[],\n keyPrefix: PColumnKey = [],\n addEntriesWithNoData: boolean,\n): boolean {\n if (acc === undefined) return false;\n switch (acc.resourceType.name) {\n case RT_RESOURCE_MAP: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const converted = value === undefined ? undefined : resourceParser(value);\n if (converted === undefined) isComplete = false;\n if (converted !== undefined || addEntriesWithNoData) data.push({ key, value: converted });\n }\n return isComplete;\n }\n case RT_RESOURCE_MAP_PARTITIONED: {\n let isComplete = acc.getInputsLocked();\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) isComplete = false;\n else {\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n const populateResult = populateResourceMapData(\n value,\n resourceParser,\n data,\n key,\n addEntriesWithNoData,\n );\n isComplete = isComplete && populateResult;\n }\n }\n return isComplete;\n }\n default:\n throw new Error(`Unknown resource type: ${acc.resourceType.name}`);\n }\n}\n\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: false\n): PColumnResourceMapData<NonNullable<T>>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: true\n): PColumnResourceMapData<T | undefined>;\nexport function parseResourceMap<T>(\n acc: TreeNodeAccessor | undefined,\n resourceParser: (acc: TreeNodeAccessor) => T | undefined,\n addEntriesWithNoData: boolean = false,\n): PColumnResourceMapData<T | undefined> {\n const data: PColumnResourceMapEntry<T | undefined>[] = [];\n const isComplete = populateResourceMapData(acc, resourceParser, data, [], addEntriesWithNoData);\n return { isComplete, data };\n}\n\nexport type PColumnKeyList = {\n /** array of keys */\n data: PColumnKey[];\n /** length of partition key */\n keyLength: number;\n};\n\nconst removeIndexSuffix = (keyStr: string): { baseKey: string; type: 'index' | 'values' } => {\n if (keyStr.endsWith('.index')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 6), type: 'index' };\n } else if (keyStr.endsWith('.values')) {\n return { baseKey: keyStr.substring(0, keyStr.length - 7), type: 'values' };\n } else {\n throw new Error(`key must ends on .index/.values for binary p-column, got: ${keyStr}`);\n }\n};\n\n// @TODO define a class with various resource map operations\n/** Returns a list of all partition keys appeared in the p-column */\nexport function getPartitionKeysList(\n acc: TreeNodeAccessor | undefined,\n): PColumnKeyList | undefined {\n if (!acc) return undefined;\n\n const rt = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n const data: PColumnKey[] = [];\n\n let keyLength = 0;\n // @TODO validate meta shape\n switch (rt) {\n case RT_RESOURCE_MAP:\n keyLength = meta['keyLength'];\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n keyLength = meta['partitionKeyLength'] + meta['keyLength'];\n break;\n\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n keyLength = meta['partitionKeyLength'];\n break;\n\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n keyLength = meta['superPartitionKeyLength'] + meta['partitionKeyLength'];\n break;\n }\n\n switch (rt) {\n case RT_RESOURCE_MAP:\n case RT_JSON_PARTITIONED:\n case RT_BINARY_PARTITIONED:\n case RT_PARQUET_PARTITIONED:\n for (let keyStr of acc.listInputFields()) {\n if (rt === RT_BINARY_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n\n break;\n\n case RT_RESOURCE_MAP_PARTITIONED:\n case RT_BINARY_SUPER_PARTITIONED:\n case RT_JSON_SUPER_PARTITIONED:\n case RT_PARQUET_SUPER_PARTITIONED:\n for (const supKeyStr of acc.listInputFields()) {\n const keyPrefix = [...JSON.parse(supKeyStr)] as PColumnKey;\n\n const value = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (value !== undefined) {\n for (let keyStr of value.listInputFields()) {\n if (rt === RT_BINARY_SUPER_PARTITIONED) {\n keyStr = removeIndexSuffix(keyStr).baseKey;\n }\n const key = [...keyPrefix, ...JSON.parse(keyStr)] as PColumnKey;\n data.push(key);\n }\n }\n }\n break;\n }\n\n return { data, keyLength };\n}\n\nfunction getUniquePartitionKeysForDataEntries(list: DataInfoEntries<unknown>): (string | number)[][] {\n if (list.type !== 'JsonPartitioned' && list.type !== 'BinaryPartitioned' && list.type !== 'ParquetPartitioned')\n throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${list.type}`);\n\n const { parts, partitionKeyLength } = list;\n\n const result: Set<string | number>[] = [];\n for (let i = 0; i < partitionKeyLength; ++i) {\n result.push(new Set());\n }\n\n for (const part of parts) {\n const key = part.key;\n if (key.length !== partitionKeyLength) {\n throw new Error(\n `Key length (${key.length}) does not match partition length (${partitionKeyLength}) for key: ${JSON.stringify(\n key,\n )}`,\n );\n }\n for (let i = 0; i < partitionKeyLength; ++i) {\n result[i].add(key[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/** Returns an array of unique partition keys for each column: the i-th element in the resulting 2d array contains all unique values of i-th partition axis. */\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown>): (string | number)[][];\nexport function getUniquePartitionKeys(acc: DataInfoEntries<unknown> | TreeNodeAccessor | undefined): (string | number)[][] | undefined;\nexport function getUniquePartitionKeys(\n acc: TreeNodeAccessor | DataInfoEntries<unknown> | undefined,\n): (string | number)[][] | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc))\n return getUniquePartitionKeysForDataEntries(acc);\n\n const list = getPartitionKeysList(acc);\n if (!list) return undefined;\n\n const { data, keyLength } = list;\n\n const result: Set<string | number>[] = [];\n\n for (let i = 0; i < keyLength; ++i) {\n result.push(new Set());\n }\n\n for (const l of data) {\n if (l.length !== keyLength) {\n throw new Error('key length does not match partition length');\n }\n for (let i = 0; i < keyLength; ++i) {\n result[i].add(l[i]);\n }\n }\n\n return result.map((s) => Array.from(s.values()));\n}\n\n/**\n * Parses the PColumn data from a TreeNodeAccessor into a DataInfoEntries structure.\n * Returns undefined if any required data is missing.\n * Throws error on validation failures.\n *\n * @param acc - The TreeNodeAccessor containing PColumn data\n * @param keyPrefix - Optional key prefix for recursive calls\n * @returns DataInfoEntries representation of the PColumn data, or undefined if incomplete\n */\nexport function parsePColumnData(\n acc: TreeNodeAccessor | undefined,\n keyPrefix: PColumnKey = [],\n): PartitionedDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (!acc.getIsReadyOrError()) return undefined;\n\n const resourceType = acc.resourceType.name;\n const meta = acc.getDataAsJson<Record<string, number>>();\n\n // Prevent recursive super-partitioned resources\n if (keyPrefix.length > 0\n && (resourceType === RT_JSON_SUPER_PARTITIONED\n || resourceType === RT_BINARY_SUPER_PARTITIONED\n || resourceType === RT_PARQUET_SUPER_PARTITIONED)) {\n throw new Error(`Unexpected nested super-partitioned resource: ${resourceType}`);\n }\n\n switch (resourceType) {\n case RT_RESOURCE_MAP:\n case RT_RESOURCE_MAP_PARTITIONED:\n throw new Error(`Only data columns are supported, got: ${resourceType}`);\n\n case RT_JSON_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n const baseKeys = new Map<string, { index?: TreeNodeAccessor; values?: TreeNodeAccessor }>();\n\n // Group fields by base key (without .index/.values suffix)\n for (const keyStr of acc.listInputFields()) {\n const suffix = removeIndexSuffix(keyStr);\n\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n let entry = baseKeys.get(suffix.baseKey);\n if (!entry) {\n entry = {};\n baseKeys.set(suffix.baseKey, entry);\n }\n\n if (suffix.type === 'index') {\n entry.index = value;\n } else {\n entry.values = value;\n }\n }\n\n // Process complete binary chunks only\n for (const [baseKeyStr, entry] of baseKeys.entries()) {\n if (!entry.index || !entry.values) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(baseKeyStr)];\n parts.push({\n key,\n value: {\n index: entry.index,\n values: entry.values,\n },\n });\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_PARTITIONED: {\n if (typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n for (const keyStr of acc.listInputFields()) {\n const value = acc.resolve({ field: keyStr, assertFieldType: 'Input' });\n if (value === undefined) return undefined;\n\n const key = [...keyPrefix, ...JSON.parse(keyStr)];\n parts.push({ key, value });\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n }\n\n case RT_JSON_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_JSON_PARTITIONED) {\n throw new Error(`Expected ${RT_JSON_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'JsonPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_BINARY_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<BinaryChunk<TreeNodeAccessor>>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_BINARY_PARTITIONED) {\n throw new Error(`Expected ${RT_BINARY_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'BinaryPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n case RT_PARQUET_SUPER_PARTITIONED: {\n if (typeof meta?.superPartitionKeyLength !== 'number'\n || typeof meta?.partitionKeyLength !== 'number') {\n throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);\n }\n\n const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;\n const parts: PColumnDataEntry<TreeNodeAccessor>[] = [];\n\n // Process all super partitions\n for (const supKeyStr of acc.listInputFields()) {\n const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: 'Input' });\n if (superPartition === undefined) return undefined;\n\n // Validate inner type\n if (superPartition.resourceType.name !== RT_PARQUET_PARTITIONED) {\n throw new Error(`Expected ${RT_PARQUET_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);\n }\n\n const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr) as PColumnKey);\n\n if (innerResult === undefined) return undefined;\n\n if (innerResult.type !== 'ParquetPartitioned')\n throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);\n\n parts.push(...innerResult.parts);\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: totalKeyLength,\n parts,\n };\n }\n\n default:\n throw new Error(`Unknown resource type: ${resourceType}`);\n }\n}\n\n/**\n * Converts or parses the input into DataInfoEntries format.\n\n * @param acc - The input data, which can be TreeNodeAccessor, DataInfoEntries, DataInfo, or undefined.\n * @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.\n */\nexport function convertOrParsePColumnData(acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined):\nDataInfoEntries<TreeNodeAccessor> | undefined {\n if (acc === undefined) return undefined;\n\n if (isDataInfoEntries(acc)) return acc;\n if (isDataInfo(acc)) return dataInfoToEntries(acc);\n if (acc instanceof TreeNodeAccessor) return parsePColumnData(acc);\n\n throw new Error(`Unexpected input type: ${typeof acc}`);\n}\n\nexport function isPColumnReady(c: PColumn<PColumnDataUniversal>): boolean {\n const isValues = (d: PColumnDataUniversal): d is PColumnValues => Array.isArray(d);\n const isAccessor = (d: PColumnDataUniversal): d is TreeNodeAccessor => d instanceof TreeNodeAccessor;\n\n let ready = true;\n if (isAccessor(c.data)) {\n ready &&= c.data.getIsReadyOrError();\n } else if (isDataInfo(c.data)) {\n visitDataInfo(c.data, (v) => ready &&= v.getIsReadyOrError());\n } else if (!isValues(c.data)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw Error(`unsupported column data type: ${c.data satisfies never}`);\n }\n return ready;\n}\n\nexport function allPColumnsReady(columns: PColumn<PColumnDataUniversal>[]): boolean {\n return columns.every(isPColumnReady);\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/model",
3
- "version": "1.45.0",
3
+ "version": "1.45.23",
4
4
  "description": "Platforma.bio SDK / Block Model",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.cjs",
@@ -22,19 +22,19 @@
22
22
  "utility-types": "^3.11.0",
23
23
  "canonicalize": "~2.1.0",
24
24
  "zod": "~3.23.8",
25
- "@milaboratories/ptabler-expression-js": "1.1.0",
25
+ "@milaboratories/pl-model-common": "1.21.4",
26
26
  "@milaboratories/pl-error-like": "1.12.5",
27
- "@milaboratories/pl-model-common": "1.21.4"
27
+ "@milaboratories/ptabler-expression-js": "1.1.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "~5.6.3",
31
- "vitest": "^2.1.9",
31
+ "vitest": "^4.0.7",
32
32
  "fast-json-patch": "^3.1.1",
33
33
  "@platforma-sdk/eslint-config": "1.1.0",
34
- "@milaboratories/build-configs": "1.0.8",
35
- "@milaboratories/ts-configs": "1.0.6",
36
34
  "@milaboratories/helpers": "1.12.0",
37
- "@milaboratories/ts-builder": "1.0.5"
35
+ "@milaboratories/build-configs": "1.0.8",
36
+ "@milaboratories/ts-builder": "1.0.5",
37
+ "@milaboratories/ts-configs": "1.0.6"
38
38
  },
39
39
  "scripts": {
40
40
  "type-check": "ts-builder types --target node",
@@ -10,9 +10,7 @@ import type {
10
10
  import {
11
11
  canonicalizeJson,
12
12
  getAxisId,
13
- isDataInfo,
14
13
  matchAxisId,
15
- visitDataInfo,
16
14
  getColumnIdAndSpec,
17
15
  Annotation,
18
16
  readAnnotation,
@@ -24,7 +22,7 @@ import {
24
22
  getAxesTree,
25
23
  } from '@milaboratories/pl-model-common';
26
24
  import type { PColumnDataUniversal, RenderCtx } from '../render';
27
- import { PColumnCollection, TreeNodeAccessor } from '../render';
25
+ import { allPColumnsReady, PColumnCollection } from '../render';
28
26
  import { isLabelColumn } from './PlDataTable';
29
27
 
30
28
  /** Create id for column copy with added keys in axes domains */
@@ -190,22 +188,6 @@ function getAdditionalColumnsForColumn(
190
188
  return [column, ...additionalColumns];
191
189
  }
192
190
 
193
- export function isColumnReady(c: PColumn<PColumnDataUniversal>) {
194
- let ready = true;
195
- if (c.data instanceof TreeNodeAccessor) {
196
- ready = ready && c.data.getIsReadyOrError();
197
- } else if (isDataInfo(c.data)) {
198
- visitDataInfo(c.data, (v) => {
199
- ready = ready && v.getIsReadyOrError();
200
- });
201
- }
202
- return ready;
203
- }
204
-
205
- export function allColumnsReady(columns: PColumn<PColumnDataUniversal>[]): boolean {
206
- return columns.every(isColumnReady);
207
- }
208
-
209
191
  /**
210
192
  The aim of createPFrameForGraphs: to create pframe with block’s columns and all compatible columns from result pool
211
193
  (including linker columns and all label columns).
@@ -229,7 +211,7 @@ export function createPFrameForGraphs<A, U>(
229
211
 
230
212
  const allColumns = columns.getColumns((spec) => !isHiddenFromGraphColumn(spec), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? [];
231
213
  // if at least one column is not yet ready, we can't show the graph
232
- if (!allColumnsReady(allColumns)) {
214
+ if (!allPColumnsReady(allColumns)) {
233
215
  return undefined;
234
216
  }
235
217
 
@@ -246,7 +228,7 @@ export function createPFrameForGraphs<A, U>(
246
228
  return ctx.createPFrame(extendedColumns);
247
229
  };
248
230
 
249
- if (!allColumnsReady(blockColumns)) {
231
+ if (!allPColumnsReady(blockColumns)) {
250
232
  return undefined;
251
233
  }
252
234
 
@@ -284,7 +266,7 @@ export function createPFrameForGraphs<A, U>(
284
266
  }), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
285
267
 
286
268
  // if at least one column is not yet ready, we can't show the graph
287
- if (!allColumnsReady(compatibleWithoutLabels)) {
269
+ if (!allPColumnsReady(compatibleWithoutLabels)) {
288
270
  return undefined;
289
271
  }
290
272
 
@@ -309,7 +291,7 @@ export function createPFrameForGraphs<A, U>(
309
291
  }), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => isLabelColumn(column.spec));
310
292
 
311
293
  // if at least one column is not yet ready, we can't show the graph
312
- if (!allColumnsReady(compatibleLabels)) {
294
+ if (!allPColumnsReady(compatibleLabels)) {
313
295
  return undefined;
314
296
  }
315
297
 
@@ -1,11 +1,11 @@
1
1
  // @DEPRECATED - use sdk/model/src/filters + sdk/model/src/annotations
2
2
  import type { SUniversalPColumnId } from '@milaboratories/pl-model-common';
3
3
  import type { FilterSpecUi } from '../../annotations';
4
- import type { FilterSpec } from '../../filters';
4
+ import type { FilterSpec, FilterSpecLeaf } from '../../filters';
5
5
  import type { AnnotationFilter, AnnotationMode, AnnotationScript, IsNA, NotFilter, NumericalComparisonFilter, PatternFilter, PatternPredicate, ValueRank } from './filter';
6
6
 
7
7
  export type FilterUi = FilterSpec<Extract<
8
- FilterSpec,
8
+ FilterSpecLeaf,
9
9
  // supported filters
10
10
  { type:
11
11
  | 'lessThan'
@@ -89,9 +89,7 @@ export type FormField =
89
89
 
90
90
  export type AnyForm = Record<string, FormField>;
91
91
 
92
- export type AnnotationStepUi = FilterSpecUi<FilterUi> & {
93
- id?: number;
94
- };
92
+ export type AnnotationStepUi = FilterSpecUi<Extract<FilterUi, { type: 'and' | 'or' }>> & { id: number };
95
93
 
96
94
  export type AnnotationScriptUi = {
97
95
  isCreated?: boolean;