@platforma-sdk/model 1.80.17 → 1.81.1

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 (123) hide show
  1. package/dist/columns/column.cjs +9 -6
  2. package/dist/columns/column.cjs.map +1 -1
  3. package/dist/columns/column.d.ts +5 -5
  4. package/dist/columns/column.d.ts.map +1 -1
  5. package/dist/columns/column.js +10 -7
  6. package/dist/columns/column.js.map +1 -1
  7. package/dist/columns/column_providers/index.cjs.map +1 -1
  8. package/dist/columns/column_providers/index.d.ts.map +1 -1
  9. package/dist/columns/column_providers/index.js.map +1 -1
  10. package/dist/columns/column_providers/providers.cjs +5 -5
  11. package/dist/columns/column_providers/providers.cjs.map +1 -1
  12. package/dist/columns/column_providers/providers.d.ts +8 -8
  13. package/dist/columns/column_providers/providers.d.ts.map +1 -1
  14. package/dist/columns/column_providers/providers.js +5 -5
  15. package/dist/columns/column_providers/providers.js.map +1 -1
  16. package/dist/columns/column_providers/types.d.ts +3 -3
  17. package/dist/columns/column_providers/types.d.ts.map +1 -1
  18. package/dist/columns/column_recipes/column_discovered_recipe.cjs +1 -1
  19. package/dist/columns/column_recipes/column_discovered_recipe.cjs.map +1 -1
  20. package/dist/columns/column_recipes/column_discovered_recipe.d.ts +1 -1
  21. package/dist/columns/column_recipes/column_discovered_recipe.js +1 -1
  22. package/dist/columns/column_recipes/column_discovered_recipe.js.map +1 -1
  23. package/dist/columns/column_recipes/column_overrided_recipe.cjs +47 -2
  24. package/dist/columns/column_recipes/column_overrided_recipe.cjs.map +1 -1
  25. package/dist/columns/column_recipes/column_overrided_recipe.d.ts +30 -3
  26. package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -1
  27. package/dist/columns/column_recipes/column_overrided_recipe.js +47 -3
  28. package/dist/columns/column_recipes/column_overrided_recipe.js.map +1 -1
  29. package/dist/columns/column_recipes/index.cjs +4 -14
  30. package/dist/columns/column_recipes/index.cjs.map +1 -1
  31. package/dist/columns/column_recipes/index.d.ts +3 -10
  32. package/dist/columns/column_recipes/index.d.ts.map +1 -1
  33. package/dist/columns/column_recipes/index.js +5 -14
  34. package/dist/columns/column_recipes/index.js.map +1 -1
  35. package/dist/columns/{column_lazy.cjs → data_column.cjs} +57 -54
  36. package/dist/columns/data_column.cjs.map +1 -0
  37. package/dist/columns/data_column.d.ts +152 -0
  38. package/dist/columns/data_column.d.ts.map +1 -0
  39. package/dist/columns/{column_lazy.js → data_column.js} +55 -52
  40. package/dist/columns/data_column.js.map +1 -0
  41. package/dist/columns/derive_axis_values_labels.cjs +4 -4
  42. package/dist/columns/derive_axis_values_labels.cjs.map +1 -1
  43. package/dist/columns/derive_axis_values_labels.d.ts +2 -2
  44. package/dist/columns/derive_axis_values_labels.js +4 -4
  45. package/dist/columns/derive_axis_values_labels.js.map +1 -1
  46. package/dist/columns/index.cjs +9 -9
  47. package/dist/columns/index.d.ts +5 -5
  48. package/dist/columns/index.js +5 -5
  49. package/dist/columns/{expand_by_partition.cjs → split_by_axes.cjs} +13 -8
  50. package/dist/columns/split_by_axes.cjs.map +1 -0
  51. package/dist/columns/{expand_by_partition.d.ts → split_by_axes.d.ts} +18 -8
  52. package/dist/columns/split_by_axes.d.ts.map +1 -0
  53. package/dist/columns/{expand_by_partition.js → split_by_axes.js} +14 -9
  54. package/dist/columns/split_by_axes.js.map +1 -0
  55. package/dist/columns/utils.cjs +50 -43
  56. package/dist/columns/utils.cjs.map +1 -1
  57. package/dist/columns/utils.d.ts +44 -19
  58. package/dist/columns/utils.d.ts.map +1 -1
  59. package/dist/columns/utils.js +50 -44
  60. package/dist/columns/utils.js.map +1 -1
  61. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +3 -3
  62. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
  63. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +3 -3
  64. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
  65. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +2 -2
  66. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
  67. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +2 -2
  68. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
  69. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +1 -1
  70. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
  71. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +2 -2
  72. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
  73. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +1 -1
  74. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
  75. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +2 -2
  76. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
  77. package/dist/components/PlDataTable/createPlDataTable/utils.cjs +1 -1
  78. package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -1
  79. package/dist/components/PlDataTable/createPlDataTable/utils.js +1 -1
  80. package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -1
  81. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs +1 -1
  82. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs.map +1 -1
  83. package/dist/components/PlDatasetSelector/enrichment_discovery.js +2 -2
  84. package/dist/components/PlDatasetSelector/enrichment_discovery.js.map +1 -1
  85. package/dist/index.cjs +9 -9
  86. package/dist/index.d.ts +5 -5
  87. package/dist/index.js +5 -5
  88. package/dist/package.cjs +1 -1
  89. package/dist/package.js +1 -1
  90. package/package.json +8 -8
  91. package/src/columns/__test_helpers__/collection_driver.ts +6 -6
  92. package/src/columns/__test_helpers__/stub_registry.ts +4 -6
  93. package/src/columns/column.ts +20 -9
  94. package/src/columns/column_providers/index.ts +9 -3
  95. package/src/columns/column_providers/providers.ts +16 -15
  96. package/src/columns/column_providers/types.ts +3 -3
  97. package/src/columns/column_recipes/column_discovered_recipe.ts +1 -1
  98. package/src/columns/column_recipes/column_overrided_recipe.ts +58 -4
  99. package/src/columns/column_recipes/column_recipes.test.ts +2 -2
  100. package/src/columns/column_recipes/index.ts +5 -20
  101. package/src/columns/{column_lazy.test.ts → data_column.test.ts} +19 -19
  102. package/src/columns/{column_lazy.ts → data_column.ts} +105 -67
  103. package/src/columns/derive_axis_values_labels.ts +4 -4
  104. package/src/columns/index.ts +2 -2
  105. package/src/columns/predicates.test.ts +124 -0
  106. package/src/columns/{expand_by_partition.test.ts → split_by_axes.test.ts} +29 -21
  107. package/src/columns/{expand_by_partition.ts → split_by_axes.ts} +22 -9
  108. package/src/columns/utils.ts +53 -48
  109. package/src/components/PlDataTable/columnResolver.test.ts +3 -3
  110. package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +3 -3
  111. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +2 -2
  112. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +2 -2
  113. package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +2 -2
  114. package/src/components/PlDataTable/createPlDataTable/utils.test.ts +34 -3
  115. package/src/components/PlDataTable/createPlDataTable/utils.ts +4 -1
  116. package/src/components/PlDatasetSelector/enrichment_discovery.ts +2 -2
  117. package/dist/columns/column_lazy.cjs.map +0 -1
  118. package/dist/columns/column_lazy.d.ts +0 -137
  119. package/dist/columns/column_lazy.d.ts.map +0 -1
  120. package/dist/columns/column_lazy.js.map +0 -1
  121. package/dist/columns/expand_by_partition.cjs.map +0 -1
  122. package/dist/columns/expand_by_partition.d.ts.map +0 -1
  123. package/dist/columns/expand_by_partition.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"enrichment_discovery.cjs","names":["ColumnsCollection","Annotation","isLeafColumn","collectLinkerIds","hitQualifications","deriveDistinctLabels","collectLinkerColumns","queriesQualifications"],"sources":["../../../src/components/PlDatasetSelector/enrichment_discovery.ts"],"sourcesContent":["import {\n Annotation,\n createEnrichmentRef,\n extractPObjectId,\n isGlobalPObjectId,\n} from \"@milaboratories/pl-model-common\";\nimport type {\n ColumnsCollectionDriverModel,\n EnrichmentStep,\n LabeledEnrichmentRef,\n LabeledEnrichmentRefs,\n MultiColumnSelector,\n PColumnSpec,\n PObjectSpec,\n} from \"@milaboratories/pl-model-common\";\nimport type { ColumnRecipe, ColumnsSource } from \"../../columns\";\nimport {\n isLeafColumn,\n ColumnsCollection,\n collectLinkerIds,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n} from \"../../columns\";\nimport {\n deriveDistinctLabels,\n type DeriveLabelsOptions,\n type Entry,\n} from \"../../labels/derive_distinct_labels\";\n\nexport interface FindEnrichmentColumnsOptions {\n sources: ReadonlyArray<ColumnsSource>;\n anchorSpec: PColumnSpec;\n maxHops?: number;\n include?: MultiColumnSelector | MultiColumnSelector[];\n predicate?: (spec: PObjectSpec) => boolean;\n /** Override the resolved `columnsCollection` service (primarily for tests). */\n driver?: ColumnsCollectionDriverModel;\n}\n\n/**\n * Linker-reached hits attached to the anchor primary. Drops zero-hop variants\n * (filters / the primary itself) and structural hits (subset, linker, label\n * columns). Narrow further with `include` selectors or a `predicate`.\n */\nexport function findEnrichmentColumns(options: FindEnrichmentColumnsOptions): ColumnRecipe[] {\n const include =\n options.include === undefined\n ? undefined\n : Array.isArray(options.include)\n ? options.include\n : [options.include];\n\n const columns = ColumnsCollection([...options.sources], { driver: options.driver })\n .discover({\n anchors: { main: options.anchorSpec },\n mode: \"enrichment\",\n maxHops: options.maxHops ?? 4,\n include,\n exclude: [\n { annotations: { [Annotation.IsSubset]: \"true\" } },\n { annotations: { [Annotation.IsLinkerColumn]: \"true\" } },\n { name: Annotation.Label },\n ],\n })\n .getColumns();\n\n const predicate = options.predicate;\n return columns.filter((v) => {\n if (isLeafColumn(v)) return false;\n if (predicate !== undefined && !predicate(v.getSpec())) return false;\n if (!isGlobalPObjectId(extractPObjectId(v.id))) return false;\n if (collectLinkerIds(v).some((id) => !isGlobalPObjectId(id))) return false;\n return true;\n });\n}\n\n/**\n * Pair each variant with a path-disambiguated label (so export headers stay\n * unique) and carry hit/linker `PObjectId`s through verbatim. Propagates\n * `qualifications.forHit`; `forQueries` is re-derived by the table builder.\n */\nexport function enrichmentVariantsToRefs(\n variants: ColumnRecipe[],\n labelOptions?: DeriveLabelsOptions,\n): LabeledEnrichmentRefs {\n if (variants.length === 0) return [];\n\n const linkerIdsByVariant = variants.map((v) => collectLinkerIds(v));\n const hitQualsByVariant = variants.map((v) => [...hitQualifications(v)]);\n\n const entries: Entry[] = variants.map((variant, i) => ({\n spec: variant.getSpec(),\n linkerPath: collectLinkerColumns(variant).map((linker) => ({ spec: linker.getSpec() })),\n qualifications: {\n forHit: hitQualsByVariant[i],\n forQueries: queriesQualifications(variant),\n },\n }));\n const labels = deriveDistinctLabels(entries, labelOptions);\n\n return variants.map((variant, i): LabeledEnrichmentRef => {\n const path: undefined | EnrichmentStep[] =\n linkerIdsByVariant[i].length === 0\n ? undefined\n : linkerIdsByVariant[i].map((id) => ({ type: \"linker\", linker: id }));\n return {\n ref: createEnrichmentRef(extractPObjectId(variant.id), {\n path,\n qualifications: hitQualsByVariant[i],\n }),\n label: labels[i],\n };\n });\n}\n"],"mappings":";;;;;;;;;;;AA6CA,SAAgB,sBAAsB,SAAuD;CAC3F,MAAM,UACJ,QAAQ,YAAY,KAAA,IAChB,KAAA,IACA,MAAM,QAAQ,QAAQ,OAAO,IAC3B,QAAQ,UACR,CAAC,QAAQ,OAAO;CAExB,MAAM,UAAUA,2BAAAA,kBAAkB,CAAC,GAAG,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,OAAO,CAAC,CAAC,CAChF,SAAS;EACR,SAAS,EAAE,MAAM,QAAQ,WAAW;EACpC,MAAM;EACN,SAAS,QAAQ,WAAW;EAC5B;EACA,SAAS;GACP,EAAE,aAAa,GAAGC,gCAAAA,WAAW,WAAW,OAAO,EAAE;GACjD,EAAE,aAAa,GAAGA,gCAAAA,WAAW,iBAAiB,OAAO,EAAE;GACvD,EAAE,MAAMA,gCAAAA,WAAW,MAAM;EAC3B;CACF,CAAC,CAAC,CACD,WAAW;CAEd,MAAM,YAAY,QAAQ;CAC1B,OAAO,QAAQ,QAAQ,MAAM;EAC3B,IAAIC,cAAAA,aAAa,CAAC,GAAG,OAAO;EAC5B,IAAI,cAAc,KAAA,KAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO;EAC/D,IAAI,EAAA,GAAA,gCAAA,kBAAA,EAAA,GAAA,gCAAA,iBAAA,CAAoC,EAAE,EAAE,CAAC,GAAG,OAAO;EACvD,IAAIC,cAAAA,iBAAiB,CAAC,CAAC,CAAC,MAAM,OAAO,EAAA,GAAA,gCAAA,kBAAA,CAAmB,EAAE,CAAC,GAAG,OAAO;EACrE,OAAO;CACT,CAAC;AACH;;;;;;AAOA,SAAgB,yBACd,UACA,cACuB;CACvB,IAAI,SAAS,WAAW,GAAG,OAAO,CAAC;CAEnC,MAAM,qBAAqB,SAAS,KAAK,MAAMA,cAAAA,iBAAiB,CAAC,CAAC;CAClE,MAAM,oBAAoB,SAAS,KAAK,MAAM,CAAC,GAAGC,cAAAA,kBAAkB,CAAC,CAAC,CAAC;CAUvE,MAAM,SAASC,+BAAAA,qBARU,SAAS,KAAK,SAAS,OAAO;EACrD,MAAM,QAAQ,QAAQ;EACtB,YAAYC,cAAAA,qBAAqB,OAAO,CAAC,CAAC,KAAK,YAAY,EAAE,MAAM,OAAO,QAAQ,EAAE,EAAE;EACtF,gBAAgB;GACd,QAAQ,kBAAkB;GAC1B,YAAYC,cAAAA,sBAAsB,OAAO;EAC3C;CACF,EAC0C,GAAG,YAAY;CAEzD,OAAO,SAAS,KAAK,SAAS,MAA4B;EACxD,MAAM,OACJ,mBAAmB,EAAE,CAAC,WAAW,IAC7B,KAAA,IACA,mBAAmB,EAAE,CAAC,KAAK,QAAQ;GAAE,MAAM;GAAU,QAAQ;EAAG,EAAE;EACxE,OAAO;GACL,MAAA,GAAA,gCAAA,oBAAA,EAAA,GAAA,gCAAA,iBAAA,CAA0C,QAAQ,EAAE,GAAG;IACrD;IACA,gBAAgB,kBAAkB;GACpC,CAAC;GACD,OAAO,OAAO;EAChB;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"enrichment_discovery.cjs","names":["ColumnsCollection","Annotation","hasSingleDataColumn","collectLinkerIds","hitQualifications","deriveDistinctLabels","collectLinkerColumns","queriesQualifications"],"sources":["../../../src/components/PlDatasetSelector/enrichment_discovery.ts"],"sourcesContent":["import {\n Annotation,\n createEnrichmentRef,\n extractPObjectId,\n isGlobalPObjectId,\n} from \"@milaboratories/pl-model-common\";\nimport type {\n ColumnsCollectionDriverModel,\n EnrichmentStep,\n LabeledEnrichmentRef,\n LabeledEnrichmentRefs,\n MultiColumnSelector,\n PColumnSpec,\n PObjectSpec,\n} from \"@milaboratories/pl-model-common\";\nimport type { ColumnRecipe, ColumnsSource } from \"../../columns\";\nimport {\n hasSingleDataColumn,\n ColumnsCollection,\n collectLinkerIds,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n} from \"../../columns\";\nimport {\n deriveDistinctLabels,\n type DeriveLabelsOptions,\n type Entry,\n} from \"../../labels/derive_distinct_labels\";\n\nexport interface FindEnrichmentColumnsOptions {\n sources: ReadonlyArray<ColumnsSource>;\n anchorSpec: PColumnSpec;\n maxHops?: number;\n include?: MultiColumnSelector | MultiColumnSelector[];\n predicate?: (spec: PObjectSpec) => boolean;\n /** Override the resolved `columnsCollection` service (primarily for tests). */\n driver?: ColumnsCollectionDriverModel;\n}\n\n/**\n * Linker-reached hits attached to the anchor primary. Drops zero-hop variants\n * (filters / the primary itself) and structural hits (subset, linker, label\n * columns). Narrow further with `include` selectors or a `predicate`.\n */\nexport function findEnrichmentColumns(options: FindEnrichmentColumnsOptions): ColumnRecipe[] {\n const include =\n options.include === undefined\n ? undefined\n : Array.isArray(options.include)\n ? options.include\n : [options.include];\n\n const columns = ColumnsCollection([...options.sources], { driver: options.driver })\n .discover({\n anchors: { main: options.anchorSpec },\n mode: \"enrichment\",\n maxHops: options.maxHops ?? 4,\n include,\n exclude: [\n { annotations: { [Annotation.IsSubset]: \"true\" } },\n { annotations: { [Annotation.IsLinkerColumn]: \"true\" } },\n { name: Annotation.Label },\n ],\n })\n .getColumns();\n\n const predicate = options.predicate;\n return columns.filter((v) => {\n if (hasSingleDataColumn(v)) return false;\n if (predicate !== undefined && !predicate(v.getSpec())) return false;\n if (!isGlobalPObjectId(extractPObjectId(v.id))) return false;\n if (collectLinkerIds(v).some((id) => !isGlobalPObjectId(id))) return false;\n return true;\n });\n}\n\n/**\n * Pair each variant with a path-disambiguated label (so export headers stay\n * unique) and carry hit/linker `PObjectId`s through verbatim. Propagates\n * `qualifications.forHit`; `forQueries` is re-derived by the table builder.\n */\nexport function enrichmentVariantsToRefs(\n variants: ColumnRecipe[],\n labelOptions?: DeriveLabelsOptions,\n): LabeledEnrichmentRefs {\n if (variants.length === 0) return [];\n\n const linkerIdsByVariant = variants.map((v) => collectLinkerIds(v));\n const hitQualsByVariant = variants.map((v) => [...hitQualifications(v)]);\n\n const entries: Entry[] = variants.map((variant, i) => ({\n spec: variant.getSpec(),\n linkerPath: collectLinkerColumns(variant).map((linker) => ({ spec: linker.getSpec() })),\n qualifications: {\n forHit: hitQualsByVariant[i],\n forQueries: queriesQualifications(variant),\n },\n }));\n const labels = deriveDistinctLabels(entries, labelOptions);\n\n return variants.map((variant, i): LabeledEnrichmentRef => {\n const path: undefined | EnrichmentStep[] =\n linkerIdsByVariant[i].length === 0\n ? undefined\n : linkerIdsByVariant[i].map((id) => ({ type: \"linker\", linker: id }));\n return {\n ref: createEnrichmentRef(extractPObjectId(variant.id), {\n path,\n qualifications: hitQualsByVariant[i],\n }),\n label: labels[i],\n };\n });\n}\n"],"mappings":";;;;;;;;;;;AA6CA,SAAgB,sBAAsB,SAAuD;CAC3F,MAAM,UACJ,QAAQ,YAAY,KAAA,IAChB,KAAA,IACA,MAAM,QAAQ,QAAQ,OAAO,IAC3B,QAAQ,UACR,CAAC,QAAQ,OAAO;CAExB,MAAM,UAAUA,2BAAAA,kBAAkB,CAAC,GAAG,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,OAAO,CAAC,CAAC,CAChF,SAAS;EACR,SAAS,EAAE,MAAM,QAAQ,WAAW;EACpC,MAAM;EACN,SAAS,QAAQ,WAAW;EAC5B;EACA,SAAS;GACP,EAAE,aAAa,GAAGC,gCAAAA,WAAW,WAAW,OAAO,EAAE;GACjD,EAAE,aAAa,GAAGA,gCAAAA,WAAW,iBAAiB,OAAO,EAAE;GACvD,EAAE,MAAMA,gCAAAA,WAAW,MAAM;EAC3B;CACF,CAAC,CAAC,CACD,WAAW;CAEd,MAAM,YAAY,QAAQ;CAC1B,OAAO,QAAQ,QAAQ,MAAM;EAC3B,IAAIC,cAAAA,oBAAoB,CAAC,GAAG,OAAO;EACnC,IAAI,cAAc,KAAA,KAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO;EAC/D,IAAI,EAAA,GAAA,gCAAA,kBAAA,EAAA,GAAA,gCAAA,iBAAA,CAAoC,EAAE,EAAE,CAAC,GAAG,OAAO;EACvD,IAAIC,cAAAA,iBAAiB,CAAC,CAAC,CAAC,MAAM,OAAO,EAAA,GAAA,gCAAA,kBAAA,CAAmB,EAAE,CAAC,GAAG,OAAO;EACrE,OAAO;CACT,CAAC;AACH;;;;;;AAOA,SAAgB,yBACd,UACA,cACuB;CACvB,IAAI,SAAS,WAAW,GAAG,OAAO,CAAC;CAEnC,MAAM,qBAAqB,SAAS,KAAK,MAAMA,cAAAA,iBAAiB,CAAC,CAAC;CAClE,MAAM,oBAAoB,SAAS,KAAK,MAAM,CAAC,GAAGC,cAAAA,kBAAkB,CAAC,CAAC,CAAC;CAUvE,MAAM,SAASC,+BAAAA,qBARU,SAAS,KAAK,SAAS,OAAO;EACrD,MAAM,QAAQ,QAAQ;EACtB,YAAYC,cAAAA,qBAAqB,OAAO,CAAC,CAAC,KAAK,YAAY,EAAE,MAAM,OAAO,QAAQ,EAAE,EAAE;EACtF,gBAAgB;GACd,QAAQ,kBAAkB;GAC1B,YAAYC,cAAAA,sBAAsB,OAAO;EAC3C;CACF,EAC0C,GAAG,YAAY;CAEzD,OAAO,SAAS,KAAK,SAAS,MAA4B;EACxD,MAAM,OACJ,mBAAmB,EAAE,CAAC,WAAW,IAC7B,KAAA,IACA,mBAAmB,EAAE,CAAC,KAAK,QAAQ;GAAE,MAAM;GAAU,QAAQ;EAAG,EAAE;EACxE,OAAO;GACL,MAAA,GAAA,gCAAA,oBAAA,EAAA,GAAA,gCAAA,iBAAA,CAA0C,QAAQ,EAAE,GAAG;IACrD;IACA,gBAAgB,kBAAkB;GACpC,CAAC;GACD,OAAO,OAAO;EAChB;CACF,CAAC;AACH"}
@@ -1,6 +1,6 @@
1
1
  import { deriveDistinctLabels } from "../../labels/derive_distinct_labels.js";
2
2
  import { ColumnsCollection } from "../../columns/columns_collection.js";
3
- import { collectLinkerColumns, collectLinkerIds, hitQualifications, isLeafColumn, queriesQualifications } from "../../columns/utils.js";
3
+ import { collectLinkerColumns, collectLinkerIds, hasSingleDataColumn, hitQualifications, queriesQualifications } from "../../columns/utils.js";
4
4
  import "../../columns/index.js";
5
5
  import { Annotation, createEnrichmentRef, extractPObjectId, isGlobalPObjectId } from "@milaboratories/pl-model-common";
6
6
  //#region src/components/PlDatasetSelector/enrichment_discovery.ts
@@ -24,7 +24,7 @@ function findEnrichmentColumns(options) {
24
24
  }).getColumns();
25
25
  const predicate = options.predicate;
26
26
  return columns.filter((v) => {
27
- if (isLeafColumn(v)) return false;
27
+ if (hasSingleDataColumn(v)) return false;
28
28
  if (predicate !== void 0 && !predicate(v.getSpec())) return false;
29
29
  if (!isGlobalPObjectId(extractPObjectId(v.id))) return false;
30
30
  if (collectLinkerIds(v).some((id) => !isGlobalPObjectId(id))) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"enrichment_discovery.js","names":[],"sources":["../../../src/components/PlDatasetSelector/enrichment_discovery.ts"],"sourcesContent":["import {\n Annotation,\n createEnrichmentRef,\n extractPObjectId,\n isGlobalPObjectId,\n} from \"@milaboratories/pl-model-common\";\nimport type {\n ColumnsCollectionDriverModel,\n EnrichmentStep,\n LabeledEnrichmentRef,\n LabeledEnrichmentRefs,\n MultiColumnSelector,\n PColumnSpec,\n PObjectSpec,\n} from \"@milaboratories/pl-model-common\";\nimport type { ColumnRecipe, ColumnsSource } from \"../../columns\";\nimport {\n isLeafColumn,\n ColumnsCollection,\n collectLinkerIds,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n} from \"../../columns\";\nimport {\n deriveDistinctLabels,\n type DeriveLabelsOptions,\n type Entry,\n} from \"../../labels/derive_distinct_labels\";\n\nexport interface FindEnrichmentColumnsOptions {\n sources: ReadonlyArray<ColumnsSource>;\n anchorSpec: PColumnSpec;\n maxHops?: number;\n include?: MultiColumnSelector | MultiColumnSelector[];\n predicate?: (spec: PObjectSpec) => boolean;\n /** Override the resolved `columnsCollection` service (primarily for tests). */\n driver?: ColumnsCollectionDriverModel;\n}\n\n/**\n * Linker-reached hits attached to the anchor primary. Drops zero-hop variants\n * (filters / the primary itself) and structural hits (subset, linker, label\n * columns). Narrow further with `include` selectors or a `predicate`.\n */\nexport function findEnrichmentColumns(options: FindEnrichmentColumnsOptions): ColumnRecipe[] {\n const include =\n options.include === undefined\n ? undefined\n : Array.isArray(options.include)\n ? options.include\n : [options.include];\n\n const columns = ColumnsCollection([...options.sources], { driver: options.driver })\n .discover({\n anchors: { main: options.anchorSpec },\n mode: \"enrichment\",\n maxHops: options.maxHops ?? 4,\n include,\n exclude: [\n { annotations: { [Annotation.IsSubset]: \"true\" } },\n { annotations: { [Annotation.IsLinkerColumn]: \"true\" } },\n { name: Annotation.Label },\n ],\n })\n .getColumns();\n\n const predicate = options.predicate;\n return columns.filter((v) => {\n if (isLeafColumn(v)) return false;\n if (predicate !== undefined && !predicate(v.getSpec())) return false;\n if (!isGlobalPObjectId(extractPObjectId(v.id))) return false;\n if (collectLinkerIds(v).some((id) => !isGlobalPObjectId(id))) return false;\n return true;\n });\n}\n\n/**\n * Pair each variant with a path-disambiguated label (so export headers stay\n * unique) and carry hit/linker `PObjectId`s through verbatim. Propagates\n * `qualifications.forHit`; `forQueries` is re-derived by the table builder.\n */\nexport function enrichmentVariantsToRefs(\n variants: ColumnRecipe[],\n labelOptions?: DeriveLabelsOptions,\n): LabeledEnrichmentRefs {\n if (variants.length === 0) return [];\n\n const linkerIdsByVariant = variants.map((v) => collectLinkerIds(v));\n const hitQualsByVariant = variants.map((v) => [...hitQualifications(v)]);\n\n const entries: Entry[] = variants.map((variant, i) => ({\n spec: variant.getSpec(),\n linkerPath: collectLinkerColumns(variant).map((linker) => ({ spec: linker.getSpec() })),\n qualifications: {\n forHit: hitQualsByVariant[i],\n forQueries: queriesQualifications(variant),\n },\n }));\n const labels = deriveDistinctLabels(entries, labelOptions);\n\n return variants.map((variant, i): LabeledEnrichmentRef => {\n const path: undefined | EnrichmentStep[] =\n linkerIdsByVariant[i].length === 0\n ? undefined\n : linkerIdsByVariant[i].map((id) => ({ type: \"linker\", linker: id }));\n return {\n ref: createEnrichmentRef(extractPObjectId(variant.id), {\n path,\n qualifications: hitQualsByVariant[i],\n }),\n label: labels[i],\n };\n });\n}\n"],"mappings":";;;;;;;;;;;AA6CA,SAAgB,sBAAsB,SAAuD;CAC3F,MAAM,UACJ,QAAQ,YAAY,KAAA,IAChB,KAAA,IACA,MAAM,QAAQ,QAAQ,OAAO,IAC3B,QAAQ,UACR,CAAC,QAAQ,OAAO;CAExB,MAAM,UAAU,kBAAkB,CAAC,GAAG,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,OAAO,CAAC,CAAC,CAChF,SAAS;EACR,SAAS,EAAE,MAAM,QAAQ,WAAW;EACpC,MAAM;EACN,SAAS,QAAQ,WAAW;EAC5B;EACA,SAAS;GACP,EAAE,aAAa,GAAG,WAAW,WAAW,OAAO,EAAE;GACjD,EAAE,aAAa,GAAG,WAAW,iBAAiB,OAAO,EAAE;GACvD,EAAE,MAAM,WAAW,MAAM;EAC3B;CACF,CAAC,CAAC,CACD,WAAW;CAEd,MAAM,YAAY,QAAQ;CAC1B,OAAO,QAAQ,QAAQ,MAAM;EAC3B,IAAI,aAAa,CAAC,GAAG,OAAO;EAC5B,IAAI,cAAc,KAAA,KAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO;EAC/D,IAAI,CAAC,kBAAkB,iBAAiB,EAAE,EAAE,CAAC,GAAG,OAAO;EACvD,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,OAAO;EACrE,OAAO;CACT,CAAC;AACH;;;;;;AAOA,SAAgB,yBACd,UACA,cACuB;CACvB,IAAI,SAAS,WAAW,GAAG,OAAO,CAAC;CAEnC,MAAM,qBAAqB,SAAS,KAAK,MAAM,iBAAiB,CAAC,CAAC;CAClE,MAAM,oBAAoB,SAAS,KAAK,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAUvE,MAAM,SAAS,qBARU,SAAS,KAAK,SAAS,OAAO;EACrD,MAAM,QAAQ,QAAQ;EACtB,YAAY,qBAAqB,OAAO,CAAC,CAAC,KAAK,YAAY,EAAE,MAAM,OAAO,QAAQ,EAAE,EAAE;EACtF,gBAAgB;GACd,QAAQ,kBAAkB;GAC1B,YAAY,sBAAsB,OAAO;EAC3C;CACF,EAC0C,GAAG,YAAY;CAEzD,OAAO,SAAS,KAAK,SAAS,MAA4B;EACxD,MAAM,OACJ,mBAAmB,EAAE,CAAC,WAAW,IAC7B,KAAA,IACA,mBAAmB,EAAE,CAAC,KAAK,QAAQ;GAAE,MAAM;GAAU,QAAQ;EAAG,EAAE;EACxE,OAAO;GACL,KAAK,oBAAoB,iBAAiB,QAAQ,EAAE,GAAG;IACrD;IACA,gBAAgB,kBAAkB;GACpC,CAAC;GACD,OAAO,OAAO;EAChB;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"enrichment_discovery.js","names":[],"sources":["../../../src/components/PlDatasetSelector/enrichment_discovery.ts"],"sourcesContent":["import {\n Annotation,\n createEnrichmentRef,\n extractPObjectId,\n isGlobalPObjectId,\n} from \"@milaboratories/pl-model-common\";\nimport type {\n ColumnsCollectionDriverModel,\n EnrichmentStep,\n LabeledEnrichmentRef,\n LabeledEnrichmentRefs,\n MultiColumnSelector,\n PColumnSpec,\n PObjectSpec,\n} from \"@milaboratories/pl-model-common\";\nimport type { ColumnRecipe, ColumnsSource } from \"../../columns\";\nimport {\n hasSingleDataColumn,\n ColumnsCollection,\n collectLinkerIds,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n} from \"../../columns\";\nimport {\n deriveDistinctLabels,\n type DeriveLabelsOptions,\n type Entry,\n} from \"../../labels/derive_distinct_labels\";\n\nexport interface FindEnrichmentColumnsOptions {\n sources: ReadonlyArray<ColumnsSource>;\n anchorSpec: PColumnSpec;\n maxHops?: number;\n include?: MultiColumnSelector | MultiColumnSelector[];\n predicate?: (spec: PObjectSpec) => boolean;\n /** Override the resolved `columnsCollection` service (primarily for tests). */\n driver?: ColumnsCollectionDriverModel;\n}\n\n/**\n * Linker-reached hits attached to the anchor primary. Drops zero-hop variants\n * (filters / the primary itself) and structural hits (subset, linker, label\n * columns). Narrow further with `include` selectors or a `predicate`.\n */\nexport function findEnrichmentColumns(options: FindEnrichmentColumnsOptions): ColumnRecipe[] {\n const include =\n options.include === undefined\n ? undefined\n : Array.isArray(options.include)\n ? options.include\n : [options.include];\n\n const columns = ColumnsCollection([...options.sources], { driver: options.driver })\n .discover({\n anchors: { main: options.anchorSpec },\n mode: \"enrichment\",\n maxHops: options.maxHops ?? 4,\n include,\n exclude: [\n { annotations: { [Annotation.IsSubset]: \"true\" } },\n { annotations: { [Annotation.IsLinkerColumn]: \"true\" } },\n { name: Annotation.Label },\n ],\n })\n .getColumns();\n\n const predicate = options.predicate;\n return columns.filter((v) => {\n if (hasSingleDataColumn(v)) return false;\n if (predicate !== undefined && !predicate(v.getSpec())) return false;\n if (!isGlobalPObjectId(extractPObjectId(v.id))) return false;\n if (collectLinkerIds(v).some((id) => !isGlobalPObjectId(id))) return false;\n return true;\n });\n}\n\n/**\n * Pair each variant with a path-disambiguated label (so export headers stay\n * unique) and carry hit/linker `PObjectId`s through verbatim. Propagates\n * `qualifications.forHit`; `forQueries` is re-derived by the table builder.\n */\nexport function enrichmentVariantsToRefs(\n variants: ColumnRecipe[],\n labelOptions?: DeriveLabelsOptions,\n): LabeledEnrichmentRefs {\n if (variants.length === 0) return [];\n\n const linkerIdsByVariant = variants.map((v) => collectLinkerIds(v));\n const hitQualsByVariant = variants.map((v) => [...hitQualifications(v)]);\n\n const entries: Entry[] = variants.map((variant, i) => ({\n spec: variant.getSpec(),\n linkerPath: collectLinkerColumns(variant).map((linker) => ({ spec: linker.getSpec() })),\n qualifications: {\n forHit: hitQualsByVariant[i],\n forQueries: queriesQualifications(variant),\n },\n }));\n const labels = deriveDistinctLabels(entries, labelOptions);\n\n return variants.map((variant, i): LabeledEnrichmentRef => {\n const path: undefined | EnrichmentStep[] =\n linkerIdsByVariant[i].length === 0\n ? undefined\n : linkerIdsByVariant[i].map((id) => ({ type: \"linker\", linker: id }));\n return {\n ref: createEnrichmentRef(extractPObjectId(variant.id), {\n path,\n qualifications: hitQualsByVariant[i],\n }),\n label: labels[i],\n };\n });\n}\n"],"mappings":";;;;;;;;;;;AA6CA,SAAgB,sBAAsB,SAAuD;CAC3F,MAAM,UACJ,QAAQ,YAAY,KAAA,IAChB,KAAA,IACA,MAAM,QAAQ,QAAQ,OAAO,IAC3B,QAAQ,UACR,CAAC,QAAQ,OAAO;CAExB,MAAM,UAAU,kBAAkB,CAAC,GAAG,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,OAAO,CAAC,CAAC,CAChF,SAAS;EACR,SAAS,EAAE,MAAM,QAAQ,WAAW;EACpC,MAAM;EACN,SAAS,QAAQ,WAAW;EAC5B;EACA,SAAS;GACP,EAAE,aAAa,GAAG,WAAW,WAAW,OAAO,EAAE;GACjD,EAAE,aAAa,GAAG,WAAW,iBAAiB,OAAO,EAAE;GACvD,EAAE,MAAM,WAAW,MAAM;EAC3B;CACF,CAAC,CAAC,CACD,WAAW;CAEd,MAAM,YAAY,QAAQ;CAC1B,OAAO,QAAQ,QAAQ,MAAM;EAC3B,IAAI,oBAAoB,CAAC,GAAG,OAAO;EACnC,IAAI,cAAc,KAAA,KAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO;EAC/D,IAAI,CAAC,kBAAkB,iBAAiB,EAAE,EAAE,CAAC,GAAG,OAAO;EACvD,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,OAAO;EACrE,OAAO;CACT,CAAC;AACH;;;;;;AAOA,SAAgB,yBACd,UACA,cACuB;CACvB,IAAI,SAAS,WAAW,GAAG,OAAO,CAAC;CAEnC,MAAM,qBAAqB,SAAS,KAAK,MAAM,iBAAiB,CAAC,CAAC;CAClE,MAAM,oBAAoB,SAAS,KAAK,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAUvE,MAAM,SAAS,qBARU,SAAS,KAAK,SAAS,OAAO;EACrD,MAAM,QAAQ,QAAQ;EACtB,YAAY,qBAAqB,OAAO,CAAC,CAAC,KAAK,YAAY,EAAE,MAAM,OAAO,QAAQ,EAAE,EAAE;EACtF,gBAAgB;GACd,QAAQ,kBAAkB;GAC1B,YAAY,sBAAsB,OAAO;EAC3C;CACF,EAC0C,GAAG,YAAY;CAEzD,OAAO,SAAS,KAAK,SAAS,MAA4B;EACxD,MAAM,OACJ,mBAAmB,EAAE,CAAC,WAAW,IAC7B,KAAA,IACA,mBAAmB,EAAE,CAAC,KAAK,QAAQ;GAAE,MAAM;GAAU,QAAQ;EAAG,EAAE;EACxE,OAAO;GACL,KAAK,oBAAoB,iBAAiB,QAAQ,EAAE,GAAG;IACrD;IACA,gBAAgB,kBAAkB;GACpC,CAAC;GACD,OAAO,OAAO;EAChB;CACF,CAAC;AACH"}
package/dist/index.cjs CHANGED
@@ -33,13 +33,13 @@ const require_column_discovered_recipe = require("./columns/column_recipes/colum
33
33
  const require_column_filtered_recipe = require("./columns/column_recipes/column_filtered_recipe.cjs");
34
34
  const require_index$4 = require("./columns/column_recipes/index.cjs");
35
35
  const require_column_overrided_recipe = require("./columns/column_recipes/column_overrided_recipe.cjs");
36
- const require_column_lazy = require("./columns/column_lazy.cjs");
36
+ const require_data_column = require("./columns/data_column.cjs");
37
37
  const require_providers = require("./columns/column_providers/providers.cjs");
38
38
  const require_index$5 = require("./columns/column_providers/index.cjs");
39
39
  const require_columns_collection = require("./columns/columns_collection.cjs");
40
40
  const require_utils = require("./columns/utils.cjs");
41
- const require_expand_by_partition = require("./columns/expand_by_partition.cjs");
42
41
  const require_derive_axis_values_labels = require("./columns/derive_axis_values_labels.cjs");
42
+ const require_split_by_axes = require("./columns/split_by_axes.cjs");
43
43
  require("./columns/index.cjs");
44
44
  const require_columns = require("./pframe_utils/columns.cjs");
45
45
  const require_PFrameForGraphs = require("./components/PFrameForGraphs.cjs");
@@ -82,17 +82,17 @@ exports.BlockRenderCtx = require_api.BlockRenderCtx;
82
82
  exports.BlockStorageFacadeCallbacks = require_block_storage_facade.BlockStorageFacadeCallbacks;
83
83
  exports.BlockStorageFacadeHandles = require_block_storage_facade.BlockStorageFacadeHandles;
84
84
  exports.Column = require_column.Column;
85
- exports.ColumnAbsentError = require_column_lazy.ColumnAbsentError;
85
+ exports.ColumnAbsentError = require_data_column.ColumnAbsentError;
86
86
  exports.ColumnDiscoveredRecipe = require_column_discovered_recipe.ColumnDiscoveredRecipe;
87
87
  exports.ColumnFilteredRecipe = require_column_filtered_recipe.ColumnFilteredRecipe;
88
- exports.ColumnLazy = require_column_lazy.ColumnLazy;
89
- exports.ColumnLazyImpl = require_column_lazy.ColumnLazyImpl;
90
88
  exports.ColumnOverriddenRecipe = require_column_overrided_recipe.ColumnOverriddenRecipe;
91
89
  exports.ColumnRecipe = require_index$4.ColumnRecipe;
92
90
  exports.ColumnsCollection = require_columns_collection.ColumnsCollection;
93
91
  exports.ColumnsCollectionImpl = require_columns_collection.ColumnsCollectionImpl;
94
92
  exports.ColumnsProvider = require_providers.ColumnsProvider;
95
93
  exports.CurrentSdkInfo = require_version.CurrentSdkInfo;
94
+ exports.DataColumn = require_data_column.DataColumn;
95
+ exports.DataColumnImpl = require_data_column.DataColumnImpl;
96
96
  exports.DataModel = require_block_migrations.DataModel;
97
97
  exports.DataModelBuilder = require_block_migrations.DataModelBuilder;
98
98
  exports.FutureRef = require_future.FutureRef;
@@ -169,7 +169,6 @@ exports.discoverTableColumnSnaphots = require_discoverColumns.discoverTableColum
169
169
  exports.distillFilterSpec = require_distill.distillFilterSpec;
170
170
  exports.downgradeCfgOrLambda = require_normalization.downgradeCfgOrLambda;
171
171
  exports.enrichCompatible = require_axes.enrichCompatible;
172
- exports.expandByPartition = require_expand_by_partition.expandByPartition;
173
172
  exports.extractArchiveAndGetURL = require_actions.extractArchiveAndGetURL;
174
173
  exports.extractConfig = require_normalization.extractConfig;
175
174
  exports.filterDataInfoEntries = require_axis_filtering.filterDataInfoEntries;
@@ -199,7 +198,6 @@ exports.getImmediate = require_actions.getImmediate;
199
198
  exports.getImportProgress = require_actions.getImportProgress;
200
199
  exports.getJsonField = require_actions.getJsonField;
201
200
  exports.getLastLogs = require_actions.getLastLogs;
202
- exports.getLeafColumnData = require_utils.getLeafColumnData;
203
201
  exports.getLogHandle = require_actions.getLogHandle;
204
202
  exports.getNumberOfRows = require_pcolumn_data.getNumberOfRows;
205
203
  exports.getOnDemandBlobContent = require_actions.getOnDemandBlobContent;
@@ -220,17 +218,18 @@ exports.getStorageData = require_block_storage.getStorageData;
220
218
  exports.getUniquePartitionKeys = require_pcolumn_data.getUniquePartitionKeys;
221
219
  exports.getUniqueSourceValuesWithLabels = require_index$12.getUniqueSourceValuesWithLabels;
222
220
  exports.hasColumnData = require_utils.hasColumnData;
221
+ exports.hasReachableData = require_utils.hasReachableData;
222
+ exports.hasSingleDataColumn = require_utils.hasSingleDataColumn;
223
223
  exports.hitQualifications = require_utils.hitQualifications;
224
224
  exports.ifDef = require_accessor.ifDef;
225
225
  exports.isBlockStorage = require_block_storage.isBlockStorage;
226
226
  exports.isColumn = require_column.isColumn;
227
227
  exports.isColumnHidden = require_utils$1.isColumnHidden;
228
- exports.isColumnLazy = require_column_lazy.isColumnLazy;
229
228
  exports.isColumnOptional = require_utils$1.isColumnOptional;
230
229
  exports.isColumnProvider = require_index$5.isColumnProvider;
231
- exports.isColumnRecipe = require_index$4.isColumnRecipe;
232
230
  exports.isColumnsCollection = require_columns_collection.isColumnsCollection;
233
231
  exports.isConfigLambda = require_types.isConfigLambda;
232
+ exports.isDataColumn = require_data_column.isDataColumn;
234
233
  exports.isDatasetSelection = require_dataset_selection.isDatasetSelection;
235
234
  exports.isEmpty = require_actions.isEmpty;
236
235
  exports.isHiddenFromGraphColumn = require_PFrameForGraphs.isHiddenFromGraphColumn;
@@ -255,6 +254,7 @@ exports.pluginOutputPrefix = require_plugin_handle.pluginOutputPrefix;
255
254
  exports.queriesQualifications = require_utils.queriesQualifications;
256
255
  exports.readOutput = require_block_state_util.readOutput;
257
256
  exports.registerFacadeCallbacks = require_block_storage_facade.registerFacadeCallbacks;
257
+ exports.splitByAxes = require_split_by_axes.splitByAxes;
258
258
  exports.toColumnProvider = require_index$5.toColumnProvider;
259
259
  exports.unreachable = require_filters_ui.unreachable;
260
260
  exports.updateStorageData = require_block_storage.updateStorageData;
package/dist/index.d.ts CHANGED
@@ -46,19 +46,19 @@ import { convertFilterSpecsToExpressionSpecs } from "./annotations/converter.js"
46
46
  import { AnnotationScriptUi, AnnotationStepUi, AnyForm, FilterUi, FilterUiOfType, FilterUiType, FormField, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, compileAnnotationScript, compileFilter, compileFilters, unreachable } from "./components/PlAnnotations/filters_ui.js";
47
47
  import { DatasetOption, DatasetSelection, createDatasetSelection, isDatasetSelection } from "./components/PlDatasetSelector/dataset_selection.js";
48
48
  import { ColumnFieldStatus, ColumnRecipeId, ColumnResolutionStatus, SpecQuery } from "./columns/column_recipes/types.js";
49
- import { ColumnAbsentError, ColumnLazy, ColumnLazyData, ColumnLazyId, ColumnLazyImpl, isColumnLazy } from "./columns/column_lazy.js";
49
+ import { ColumnAbsentError, ColumnData, DataColumn, DataColumnId, DataColumnImpl, DataColumnRecipe, DataColumnSource, isDataColumn } from "./columns/data_column.js";
50
50
  import { ColumnDiscoveredRecipe } from "./columns/column_recipes/column_discovered_recipe.js";
51
51
  import { ColumnFilteredRecipe } from "./columns/column_recipes/column_filtered_recipe.js";
52
52
  import { Column, ColumnSource, isColumn } from "./columns/column.js";
53
53
  import { ColumnOverriddenRecipe } from "./columns/column_recipes/column_overrided_recipe.js";
54
- import { ColumnRecipe, isColumnRecipe } from "./columns/column_recipes/index.js";
54
+ import { ColumnRecipe } from "./columns/column_recipes/index.js";
55
55
  import { AccessorColumnsProvider, AccessorColumnsProviderImpl, ArrayColumnsProvider, ColumnsProvider, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl } from "./columns/column_providers/providers.js";
56
56
  import { ColumnsSource } from "./columns/column_providers/types.js";
57
57
  import { _ctxProvidersCache, getCtxProviders, isColumnProvider, toColumnProvider } from "./columns/column_providers/index.js";
58
- import { ExpandByPartitionOpts, SplitAxis, expandByPartition } from "./columns/expand_by_partition.js";
58
+ import { SplitAxis, SplitByAxesOpts, splitByAxes } from "./columns/split_by_axes.js";
59
59
  import { ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, ColumnsSourceShorthand, isColumnsCollection } from "./columns/columns_collection.js";
60
60
  import { deriveAxisValuesLabels } from "./columns/derive_axis_values_labels.js";
61
- import { ColumnOption, collectLinkerColumns, collectLinkerIds, deriveColumnOptions, getLeafColumnData, hasColumnData, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
61
+ import { ColumnOption, collectLinkerColumns, collectLinkerIds, deriveColumnOptions, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
62
62
  import { FilterMatchOptions, FindFilterColumnsOptions, buildRefMap, filterMatchesToOptions, findFilterColumns } from "./components/PlDatasetSelector/filter_discovery.js";
63
63
  import { BuildDatasetOptions, buildDatasetOptions } from "./components/PlDatasetSelector/build_dataset_options.js";
64
64
  import { PTableParamsV2, PlDataTableAxisMeta, PlDataTableColumnMeta, PlDataTableColumnsMeta, PlDataTableFilterMeta, PlDataTableFilterSpecLeaf, PlDataTableFilters, PlDataTableFiltersWithMeta, PlDataTableGridStateCore, PlDataTableModel, PlDataTableSheet, PlDataTableSheetState, PlDataTableStateV2CacheEntry, PlDataTableStateV2Normalized, PlTableColumnIdJson } from "./components/PlDataTable/typesV8.js";
@@ -82,4 +82,4 @@ import { getService } from "./services/get_services.js";
82
82
  import { getEnvironmentValue } from "./env_value.js";
83
83
  export * from "@milaboratories/pl-model-common";
84
84
  export * from "@milaboratories/pl-error-like";
85
- export { AccessorColumnsProvider, AccessorColumnsProviderImpl, type AccessorHandle, ActAnd, ActExtractArchiveAndGetURL, ActFlatten, ActGetBlobContent, ActGetBlobContentAsJson, ActGetBlobContentAsString, ActGetDownloadedBlobContent, ActGetField, ActGetFromCtx, ActGetImmediate, ActGetLastLogs, ActGetLogHandle, ActGetOnDemandBlobContent, ActGetProgressLog, ActGetProgressLogWithInfo, ActGetResourceField, ActGetResourceValueAsJson, ActImportProgress, ActIsEmpty, ActIsolate, ActMakeArray, ActMakeObject, ActMapArrayValues, ActMapRecordValues, ActMapResourceFields, ActNot, ActOr, ActionResult, AndFilter, AnnotationFilter, AnnotationMode, AnnotationScript, AnnotationScript2, AnnotationScriptUi, AnnotationSpec, AnnotationSpecUi, AnnotationStep, AnnotationStepUi, AnyForm, Args, ArrayColumnsProvider, type AxesVault, AxisLabelProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockApiV1, BlockApiV2, BlockConfig, BlockConfigV3, BlockConfigV4, BlockDefaultModelServices, BlockDefaultUiServices, BlockModel, BlockModelInfo, BlockModelV3, BlockRenderCtx, BlockServiceFlags, BlockStatePatch, type BlockStorage, BlockStorageFacade, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, type BlockStorageSchemaVersion, BuildDatasetOptions, CancelSubscription, Cfg, CfgAnd, CfgBlobContent, CfgBlobContentAsJson, CfgBlobContentAsString, CfgDownloadedBlobContent, CfgExtractArchiveAndGetURL, CfgFlatten, CfgGetFromCtx, CfgGetJsonField, CfgGetResourceField, CfgImmediate, CfgImportProgress, CfgIsEmpty, CfgIsolate, CfgLastLogs, CfgLogHandle, CfgMakeArray, CfgMakeObject, CfgMapArrayValues, CfgMapRecordValues, CfgMapResourceFields, CfgNot, CfgOnDemandBlobContent, CfgOr, CfgProgressLog, CfgProgressLogWithInfo, CfgRenderingMode, CfgResourceValueAsJson, type Checked, Column, ColumnAbsentError, ColumnDiscoveredRecipe, type ColumnFieldStatus, ColumnFilteredRecipe, ColumnLazy, ColumnLazyData, ColumnLazyId, ColumnLazyImpl, ColumnOption, type ColumnOrderRule, ColumnOverriddenRecipe, ColumnProvider, ColumnRecipe, type ColumnRecipeId, type ColumnResolutionStatus, ColumnSource, type ColumnVisibilityRule, ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, type ColumnsDisplayOptions, ColumnsProvider, type ColumnsSelectorConfig, ColumnsSource, ColumnsSourceShorthand, CommonFieldTraverseOps, CommonTraversalOps, ConfAction, ConfigRenderLambda, ConfigRenderLambdaFlags, ConfigResult, CurrentSdkInfo, DataModel, DataModelBuilder, DatasetOption, DatasetSelection, DeriveHref, DeriveLabelsFormatters, DeriveLabelsOptions, Entry, ExpandByPartitionOpts, ExpressionSpec, ExtractAction, ExtractFunctionHandleReturn, type ExtractFutureRefType, FieldTraversalStep, FieldType, FilterMatchOptions, type FilterSpec, type FilterSpecLeaf, type FilterSpecNode, type FilterSpecOfType, type FilterSpecType, FilterSpecUi, FilterUi, FilterUiOfType, FilterUiType, FindFilterColumnsOptions, FormField, FutureRef, GetFieldStep, InferArgsType, InferBlockState, InferBlockStatePatch, InferDataType, InferFactoryData, InferFactoryModelServices, InferFactoryOutputs, InferFactoryParams, InferFactoryUiServices, InferHrefType, InferOutputType, InferOutputsFromConfigs, InferOutputsFromLambdas, InferOutputsType, InferPluginData, InferPluginHandle, InferPluginNames, InferPluginUiEntries, InferRenderFunctionReturn, InferUiState, InferVarTypeSafe, IsNA, It, internal_d_exports as JsRenderInternal, type DeriveLabelsOptions as LabelDerivationOps, LinkerStep, Log10, MainAccessorName, MainOutputs, type MigrateBlockStorageConfig, type MigrationFailure, type MigrationResult, type MigrationSuccess, type ModelServices, type MutateStoragePayload, NotFilter, NumericalComparisonFilter, OptionalPlResourceEntry, OrFilter, OutputError, PColumnCollection, type PColumnDataUniversal, PColumnEntryUniversal, PColumnEntryWithLabel, PColumnKeyList, PColumnPredicate, PColumnResourceMapData, PColumnResourceMapEntry, PColumnUniversal, PColumnWithLabel, PFrameImpl, POCExtractAction, PTableKey, type PTableParamsV2, type ParamsInput, Patch, PatternFilter, PatternPredicate, PatternPredicateContainSubsequence, PatternPredicateEquals, type PlDataTableAxisMeta, type PlDataTableColumnMeta, type PlDataTableColumnsMeta, type PlDataTableFilterMeta, type PlDataTableFilterSpecLeaf, type PlDataTableFilters, type PlDataTableFiltersWithMeta, type PlDataTableGridStateCore, type PlDataTableModel, type PlDataTableSheet, type PlDataTableSheetState, type PlDataTableStateV2, type PlDataTableStateV2CacheEntry, type PlDataTableStateV2Normalized, PlMultiSequenceAlignmentColorSchemeOption, PlMultiSequenceAlignmentModel, PlMultiSequenceAlignmentSettings, PlMultiSequenceAlignmentWidget, PlResourceEntry, PlSelectionModel, type PlTableColumnIdJson, Platforma, PlatformaApiVersion, PlatformaExtended, PlatformaFactory, PlatformaSDKVersion, PlatformaV1, PlatformaV2, PlatformaV3, type PluginConfig, type PluginData, PluginDataModel, PluginDataModelBuilder, type PluginDataModelVersions, type PluginFactory, PluginFactoryLike, PluginHandle, PluginInstance, PluginModel, type PluginName, type PluginOutputs, type PluginParams, type PluginPublicOutputs, type PluginRecord, type PluginRegistry, PluginRenderCtx, PrimitiveOrConfig, PrimitiveToCfg, type PublicOutputFieldDef, QueryColumnId, QueryColumnIdAxis, QueryColumnIdColumn, 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, RenderCtx, RenderCtxBase, RenderCtxLegacy, RenderFunction, RenderFunctionLegacy, ResolveCfgType, ResolveModelServices, ResolveUiServices, ResourceTraversalOps, ResourceType, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, SdkInfo, ServiceProxy, SimplifiedPColumnSpec, SimplifiedUniversalPColumnEntry, SortedCumulativeSum, type Entry as SpecExtractorResult, type SpecQuery, SplitAxis, StagingAccessorName, StagingOutputs, StdCtx, StdCtxArgsOnly, TooltipEntry, type Trace, type TraceEntry, TransformedColumn, TreeNodeAccessor, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, TypedConfig, TypedConfigOrConfigLambda, TypedConfigOrString, type UiServices, UiState, Unionize, UniversalColumnOption, UnwrapFutureRef, ValueRank, type VersionedData, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, type createPlDataTableOptionsV3, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, expandByPartition, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLeafColumnData, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnLazy, isColumnOptional, isColumnProvider, isColumnRecipe, isColumnsCollection, isConfigLambda, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
85
+ export { AccessorColumnsProvider, AccessorColumnsProviderImpl, type AccessorHandle, ActAnd, ActExtractArchiveAndGetURL, ActFlatten, ActGetBlobContent, ActGetBlobContentAsJson, ActGetBlobContentAsString, ActGetDownloadedBlobContent, ActGetField, ActGetFromCtx, ActGetImmediate, ActGetLastLogs, ActGetLogHandle, ActGetOnDemandBlobContent, ActGetProgressLog, ActGetProgressLogWithInfo, ActGetResourceField, ActGetResourceValueAsJson, ActImportProgress, ActIsEmpty, ActIsolate, ActMakeArray, ActMakeObject, ActMapArrayValues, ActMapRecordValues, ActMapResourceFields, ActNot, ActOr, ActionResult, AndFilter, AnnotationFilter, AnnotationMode, AnnotationScript, AnnotationScript2, AnnotationScriptUi, AnnotationSpec, AnnotationSpecUi, AnnotationStep, AnnotationStepUi, AnyForm, Args, ArrayColumnsProvider, type AxesVault, AxisLabelProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockApiV1, BlockApiV2, BlockConfig, BlockConfigV3, BlockConfigV4, BlockDefaultModelServices, BlockDefaultUiServices, BlockModel, BlockModelInfo, BlockModelV3, BlockRenderCtx, BlockServiceFlags, BlockStatePatch, type BlockStorage, BlockStorageFacade, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, type BlockStorageSchemaVersion, BuildDatasetOptions, CancelSubscription, Cfg, CfgAnd, CfgBlobContent, CfgBlobContentAsJson, CfgBlobContentAsString, CfgDownloadedBlobContent, CfgExtractArchiveAndGetURL, CfgFlatten, CfgGetFromCtx, CfgGetJsonField, CfgGetResourceField, CfgImmediate, CfgImportProgress, CfgIsEmpty, CfgIsolate, CfgLastLogs, CfgLogHandle, CfgMakeArray, CfgMakeObject, CfgMapArrayValues, CfgMapRecordValues, CfgMapResourceFields, CfgNot, CfgOnDemandBlobContent, CfgOr, CfgProgressLog, CfgProgressLogWithInfo, CfgRenderingMode, CfgResourceValueAsJson, type Checked, Column, ColumnAbsentError, ColumnData, ColumnDiscoveredRecipe, type ColumnFieldStatus, ColumnFilteredRecipe, ColumnOption, type ColumnOrderRule, ColumnOverriddenRecipe, ColumnProvider, ColumnRecipe, type ColumnRecipeId, type ColumnResolutionStatus, ColumnSource, type ColumnVisibilityRule, ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, type ColumnsDisplayOptions, ColumnsProvider, type ColumnsSelectorConfig, ColumnsSource, ColumnsSourceShorthand, CommonFieldTraverseOps, CommonTraversalOps, ConfAction, ConfigRenderLambda, ConfigRenderLambdaFlags, ConfigResult, CurrentSdkInfo, DataColumn, DataColumnId, DataColumnImpl, DataColumnRecipe, DataColumnSource, DataModel, DataModelBuilder, DatasetOption, DatasetSelection, DeriveHref, DeriveLabelsFormatters, DeriveLabelsOptions, Entry, ExpressionSpec, ExtractAction, ExtractFunctionHandleReturn, type ExtractFutureRefType, FieldTraversalStep, FieldType, FilterMatchOptions, type FilterSpec, type FilterSpecLeaf, type FilterSpecNode, type FilterSpecOfType, type FilterSpecType, FilterSpecUi, FilterUi, FilterUiOfType, FilterUiType, FindFilterColumnsOptions, FormField, FutureRef, GetFieldStep, InferArgsType, InferBlockState, InferBlockStatePatch, InferDataType, InferFactoryData, InferFactoryModelServices, InferFactoryOutputs, InferFactoryParams, InferFactoryUiServices, InferHrefType, InferOutputType, InferOutputsFromConfigs, InferOutputsFromLambdas, InferOutputsType, InferPluginData, InferPluginHandle, InferPluginNames, InferPluginUiEntries, InferRenderFunctionReturn, InferUiState, InferVarTypeSafe, IsNA, It, internal_d_exports as JsRenderInternal, type DeriveLabelsOptions as LabelDerivationOps, LinkerStep, Log10, MainAccessorName, MainOutputs, type MigrateBlockStorageConfig, type MigrationFailure, type MigrationResult, type MigrationSuccess, type ModelServices, type MutateStoragePayload, NotFilter, NumericalComparisonFilter, OptionalPlResourceEntry, OrFilter, OutputError, PColumnCollection, type PColumnDataUniversal, PColumnEntryUniversal, PColumnEntryWithLabel, PColumnKeyList, PColumnPredicate, PColumnResourceMapData, PColumnResourceMapEntry, PColumnUniversal, PColumnWithLabel, PFrameImpl, POCExtractAction, PTableKey, type PTableParamsV2, type ParamsInput, Patch, PatternFilter, PatternPredicate, PatternPredicateContainSubsequence, PatternPredicateEquals, type PlDataTableAxisMeta, type PlDataTableColumnMeta, type PlDataTableColumnsMeta, type PlDataTableFilterMeta, type PlDataTableFilterSpecLeaf, type PlDataTableFilters, type PlDataTableFiltersWithMeta, type PlDataTableGridStateCore, type PlDataTableModel, type PlDataTableSheet, type PlDataTableSheetState, type PlDataTableStateV2, type PlDataTableStateV2CacheEntry, type PlDataTableStateV2Normalized, PlMultiSequenceAlignmentColorSchemeOption, PlMultiSequenceAlignmentModel, PlMultiSequenceAlignmentSettings, PlMultiSequenceAlignmentWidget, PlResourceEntry, PlSelectionModel, type PlTableColumnIdJson, Platforma, PlatformaApiVersion, PlatformaExtended, PlatformaFactory, PlatformaSDKVersion, PlatformaV1, PlatformaV2, PlatformaV3, type PluginConfig, type PluginData, PluginDataModel, PluginDataModelBuilder, type PluginDataModelVersions, type PluginFactory, PluginFactoryLike, PluginHandle, PluginInstance, PluginModel, type PluginName, type PluginOutputs, type PluginParams, type PluginPublicOutputs, type PluginRecord, type PluginRegistry, PluginRenderCtx, PrimitiveOrConfig, PrimitiveToCfg, type PublicOutputFieldDef, QueryColumnId, QueryColumnIdAxis, QueryColumnIdColumn, 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, RenderCtx, RenderCtxBase, RenderCtxLegacy, RenderFunction, RenderFunctionLegacy, ResolveCfgType, ResolveModelServices, ResolveUiServices, ResourceTraversalOps, ResourceType, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, SdkInfo, ServiceProxy, SimplifiedPColumnSpec, SimplifiedUniversalPColumnEntry, SortedCumulativeSum, type Entry as SpecExtractorResult, type SpecQuery, SplitAxis, SplitByAxesOpts, StagingAccessorName, StagingOutputs, StdCtx, StdCtxArgsOnly, TooltipEntry, type Trace, type TraceEntry, TransformedColumn, TreeNodeAccessor, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, TypedConfig, TypedConfigOrConfigLambda, TypedConfigOrString, type UiServices, UiState, Unionize, UniversalColumnOption, UnwrapFutureRef, ValueRank, type VersionedData, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, type createPlDataTableOptionsV3, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnOptional, isColumnProvider, isColumnsCollection, isConfigLambda, isDataColumn, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, splitByAxes, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
package/dist/index.js CHANGED
@@ -30,15 +30,15 @@ import { enrichCompatible, getAvailableWithLinkersAxes } from "./pframe_utils/ax
30
30
  import { Column, isColumn } from "./columns/column.js";
31
31
  import { ColumnDiscoveredRecipe } from "./columns/column_recipes/column_discovered_recipe.js";
32
32
  import { ColumnFilteredRecipe } from "./columns/column_recipes/column_filtered_recipe.js";
33
- import { ColumnRecipe, isColumnRecipe } from "./columns/column_recipes/index.js";
33
+ import { ColumnRecipe } from "./columns/column_recipes/index.js";
34
34
  import { ColumnOverriddenRecipe } from "./columns/column_recipes/column_overrided_recipe.js";
35
- import { ColumnAbsentError, ColumnLazy, ColumnLazyImpl, isColumnLazy } from "./columns/column_lazy.js";
35
+ import { ColumnAbsentError, DataColumn, DataColumnImpl, isDataColumn } from "./columns/data_column.js";
36
36
  import { AccessorColumnsProvider, AccessorColumnsProviderImpl, ArrayColumnsProvider, ColumnsProvider, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl } from "./columns/column_providers/providers.js";
37
37
  import { _ctxProvidersCache, getCtxProviders, isColumnProvider, toColumnProvider } from "./columns/column_providers/index.js";
38
38
  import { ColumnsCollection, ColumnsCollectionImpl, isColumnsCollection } from "./columns/columns_collection.js";
39
- import { collectLinkerColumns, collectLinkerIds, deriveColumnOptions, getLeafColumnData, hasColumnData, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
40
- import { expandByPartition } from "./columns/expand_by_partition.js";
39
+ import { collectLinkerColumns, collectLinkerIds, deriveColumnOptions, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
41
40
  import { deriveAxisValuesLabels } from "./columns/derive_axis_values_labels.js";
41
+ import { splitByAxes } from "./columns/split_by_axes.js";
42
42
  import "./columns/index.js";
43
43
  import { getAllRelatedColumns, getRelatedColumns } from "./pframe_utils/columns.js";
44
44
  import { createPFrameForGraphs, isHiddenFromGraphColumn, isHiddenFromUIColumn } from "./components/PFrameForGraphs.js";
@@ -71,4 +71,4 @@ import { getAxisUniqueValues, getColumnOrAxisValueLabelsId, getColumnSpecById, g
71
71
  import { getEnvironmentValue } from "./env_value.js";
72
72
  export * from "@milaboratories/pl-model-common";
73
73
  export * from "@milaboratories/pl-error-like";
74
- export { AccessorColumnsProvider, AccessorColumnsProviderImpl, Args, ArrayColumnsProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockModel, BlockModelV3, BlockRenderCtx, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, Column, ColumnAbsentError, ColumnDiscoveredRecipe, ColumnFilteredRecipe, ColumnLazy, ColumnLazyImpl, ColumnOverriddenRecipe, ColumnRecipe, ColumnsCollection, ColumnsCollectionImpl, ColumnsProvider, CurrentSdkInfo, DataModel, DataModelBuilder, FutureRef, It, internal_exports as JsRenderInternal, MainAccessorName, MainOutputs, OutputError, PColumnCollection, PFrameImpl, PlatformaSDKVersion, PluginDataModel, PluginDataModelBuilder, PluginInstance, PluginModel, PluginRenderCtx, 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, RenderCtxBase, RenderCtxLegacy, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, StagingAccessorName, StagingOutputs, TreeNodeAccessor, UiState, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, expandByPartition, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLeafColumnData, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnLazy, isColumnOptional, isColumnProvider, isColumnRecipe, isColumnsCollection, isConfigLambda, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
74
+ export { AccessorColumnsProvider, AccessorColumnsProviderImpl, Args, ArrayColumnsProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockModel, BlockModelV3, BlockRenderCtx, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, Column, ColumnAbsentError, ColumnDiscoveredRecipe, ColumnFilteredRecipe, ColumnOverriddenRecipe, ColumnRecipe, ColumnsCollection, ColumnsCollectionImpl, ColumnsProvider, CurrentSdkInfo, DataColumn, DataColumnImpl, DataModel, DataModelBuilder, FutureRef, It, internal_exports as JsRenderInternal, MainAccessorName, MainOutputs, OutputError, PColumnCollection, PFrameImpl, PlatformaSDKVersion, PluginDataModel, PluginDataModelBuilder, PluginInstance, PluginModel, PluginRenderCtx, 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, RenderCtxBase, RenderCtxLegacy, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, StagingAccessorName, StagingOutputs, TreeNodeAccessor, UiState, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnOptional, isColumnProvider, isColumnsCollection, isConfigLambda, isDataColumn, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, splitByAxes, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
package/dist/package.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.80.17";
2
+ var version = "1.81.1";
3
3
  //#endregion
4
4
  Object.defineProperty(exports, "version", {
5
5
  enumerable: true,
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.80.17";
2
+ var version = "1.81.1";
3
3
  //#endregion
4
4
  export { version };
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/model",
3
- "version": "1.80.17",
3
+ "version": "1.81.1",
4
4
  "description": "Platforma.bio SDK / Block Model",
5
5
  "files": [
6
6
  "./dist/**/*",
@@ -31,11 +31,11 @@
31
31
  "lru-cache": "^11.2.2",
32
32
  "utility-types": "^3.11.0",
33
33
  "zod": "~3.25.76",
34
- "@milaboratories/pl-error-like": "1.12.10",
35
- "@milaboratories/pl-model-common": "1.47.3",
36
- "@milaboratories/pl-model-middle-layer": "1.31.0",
37
34
  "@milaboratories/helpers": "1.14.5",
38
- "@milaboratories/ptabler-expression-js": "1.2.37"
35
+ "@milaboratories/pl-model-middle-layer": "1.31.0",
36
+ "@milaboratories/ptabler-expression-js": "1.2.37",
37
+ "@milaboratories/pl-error-like": "1.12.10",
38
+ "@milaboratories/pl-model-common": "1.47.3"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@vitest/coverage-istanbul": "^4.1.3",
@@ -43,11 +43,11 @@
43
43
  "typescript": "~5.9.3",
44
44
  "vitest": "^4.1.3",
45
45
  "@milaboratories/build-configs": "2.0.0",
46
- "@milaboratories/columns-collection-driver": "0.2.3",
47
46
  "@milaboratories/pf-driver": "1.9.0",
48
- "@milaboratories/ts-configs": "1.4.0",
47
+ "@milaboratories/columns-collection-driver": "0.2.3",
48
+ "@milaboratories/pf-spec-driver": "1.5.0",
49
49
  "@milaboratories/ts-builder": "1.6.2",
50
- "@milaboratories/pf-spec-driver": "1.5.0"
50
+ "@milaboratories/ts-configs": "1.4.0"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "ts-builder build --target node",
@@ -10,7 +10,7 @@
10
10
  * Calling {@link TestCollectionDriverHandle.installAmbientCtx} additionally
11
11
  * installs a minimal `globalThis.cfgRenderCtx` AND plants a stub
12
12
  * `ColumnEntriesProvider` into the ctx-providers cache so registered specs
13
- * are reachable via `ColumnLazy.fromId` (and therefore via
13
+ * are reachable via `DataColumnRecipe.fromId` (and therefore via
14
14
  * `ColumnsCollection.getColumns()`).
15
15
  */
16
16
  import type {
@@ -29,7 +29,7 @@ import type { GlobalCfgRenderCtx } from "../../render/internal";
29
29
  import { TreeNodeAccessor } from "../../render/accessor";
30
30
  import { _ctxProvidersCache } from "../column_providers";
31
31
  import type { ColumnsProvider } from "../column_providers";
32
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
32
+ import { DataColumn, type DataColumnRecipe } from "../data_column";
33
33
 
34
34
  export interface TestCollectionDriverHandle {
35
35
  readonly driver: ColumnsCollectionDriverModel;
@@ -38,7 +38,7 @@ export interface TestCollectionDriverHandle {
38
38
  /**
39
39
  * Install a minimal `globalThis.cfgRenderCtx` so `getService("columnsCollection")`
40
40
  * resolves to this driver and registered columns are reachable via
41
- * `ColumnLazy.fromId`. Call inside `beforeEach` if the code under test uses
41
+ * `DataColumnRecipe.fromId`. Call inside `beforeEach` if the code under test uses
42
42
  * the ambient ctx instead of an explicit `driver` option.
43
43
  */
44
44
  installAmbientCtx(): void;
@@ -148,7 +148,7 @@ export function createTestCollectionDriver(): TestCollectionDriverHandle {
148
148
  * Construct a {@link ColumnEntriesProvider} + {@link ColumnsProvider} backed
149
149
  * by an `(id → spec)` map. Each entry carries a fake {@link TreeNodeAccessor}
150
150
  * whose only contract is the surface `readSpec` / `readData` /
151
- * `readDataStatus` (in `p_column_lazy.ts`) actually call:
151
+ * `readDataStatus` (in `data_column.ts`) actually call:
152
152
  * - `traverse({field: `${name}.spec`, ignoreError: true})` →
153
153
  * stub-accessor whose `getDataAsJson()` returns the spec.
154
154
  * - `traverse({field: `${name}.data`})` → `undefined` (data is not
@@ -163,9 +163,9 @@ function buildStubProvider(
163
163
  for (const [id, spec] of specMap) {
164
164
  entries.set(id, { accessor: stubAccessorFor(id, spec), name: id, id });
165
165
  }
166
- const columns: ColumnLazy[] = [];
166
+ const columns: DataColumnRecipe<PObjectId>[] = [];
167
167
  for (const [id, spec] of specMap) {
168
- columns.push(ColumnLazyImpl.fromColumn({ id, spec, data: undefined as never }));
168
+ columns.push(DataColumn.fromColumn({ id, spec, data: undefined as never }));
169
169
  }
170
170
  return {
171
171
  getPObjectEntries: () => entries,
@@ -3,7 +3,7 @@
3
3
  * `ColumnRegistry.resolve(id)` returns a `LeafEntry` whose spec accessor
4
4
  * reports `hasData() === true` and `getDataAsJson()` returns the supplied
5
5
  * spec. Sufficient for code that goes through
6
- * `getCtxProviders` / `readLeafSpecAccessor` (e.g. `ColumnLazy.fromId`,
6
+ * `getCtxProviders` / `readLeafSpecAccessor` (e.g. `DataColumnRecipe.fromId`,
7
7
  * `ColumnDiscoveredRecipe.fromKey`).
8
8
  *
9
9
  * Two leaf shapes:
@@ -28,7 +28,7 @@ import type { GlobalCfgRenderCtx } from "../../render/internal";
28
28
  import type { TreeNodeAccessor } from "../../render/accessor";
29
29
  import { _ctxProvidersCache } from "../column_providers";
30
30
  import type { ColumnsProvider } from "../column_providers";
31
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
31
+ import { DataColumn, type DataColumnRecipe } from "../data_column";
32
32
 
33
33
  /** Fine-grained per-leaf stub config. Defaults match the shorthand form. */
34
34
  export type StubLeafConfig = {
@@ -64,15 +64,13 @@ function buildStubProvider(
64
64
  const cfg = normalizeLeafInput(raw);
65
65
  acc.entries.set(id, { accessor: stubAccessorFor(id, cfg), name: id, id });
66
66
  if (cfg.spec !== undefined && cfg.specHasData) {
67
- acc.columns.push(
68
- ColumnLazyImpl.fromColumn({ id, spec: cfg.spec, data: undefined as never }),
69
- );
67
+ acc.columns.push(DataColumn.fromColumn({ id, spec: cfg.spec, data: undefined as never }));
70
68
  }
71
69
  return acc;
72
70
  },
73
71
  {
74
72
  entries: new Map<PObjectId, LeafEntry<TreeNodeAccessor>>(),
75
- columns: [] as ColumnLazy[],
73
+ columns: [] as DataColumnRecipe<PObjectId>[],
76
74
  },
77
75
  );
78
76
  return {
@@ -7,23 +7,29 @@ import {
7
7
  } from "@milaboratories/pl-model-common";
8
8
  import type { GlobalCfgRenderCtx } from "../render/internal";
9
9
  import type { TreeNodeAccessor } from "../render";
10
- import { ColumnLazy, ColumnLazyImpl, type ColumnLazyData } from "./column_lazy";
11
- import { ColumnRecipe, ColumnRecipeId, isColumnRecipe } from "./column_recipes";
10
+ import { DataColumn, DataColumnRecipe, DataColumnImpl, type ColumnData } from "./data_column";
11
+ import {
12
+ ColumnDiscoveredRecipe,
13
+ ColumnFilteredRecipe,
14
+ ColumnOverriddenRecipe,
15
+ ColumnRecipe,
16
+ ColumnRecipeId,
17
+ } from "./column_recipes";
12
18
 
13
19
  export type ColumnSource =
14
20
  | PObjectId
15
21
  | ColumnUniversalId
16
22
  | PlRef
17
23
  | LeafEntry<TreeNodeAccessor>
18
- | PColumn<ColumnLazyData>
19
- | ColumnLazyImpl;
24
+ | PColumn<ColumnData>
25
+ | DataColumnRecipe<PObjectId>;
20
26
 
21
27
  /**
22
28
  * Unified entry point — routes between the two top-level dispatchers:
23
29
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
24
- * - object source (`PlRef` / `LeafEntry` / `PColumn` / `ColumnLazy`) → {@link ColumnLazy}
30
+ * - object source (`PlRef` / `LeafEntry` / `PColumn` / `DataColumnRecipe`) → {@link DataColumnRecipe}
25
31
  *
26
- * `ColumnLazy` is itself a `ColumnRecipe<PObjectId>`, so the return type is
32
+ * `DataColumnRecipe` is itself a `ColumnRecipe<PObjectId>`, so the return type is
27
33
  * the common `ColumnRecipe`.
28
34
  */
29
35
  export function Column(
@@ -31,7 +37,7 @@ export function Column(
31
37
  opts?: { ctx?: GlobalCfgRenderCtx },
32
38
  ): undefined | ColumnRecipe {
33
39
  if (typeof source === "string") return ColumnRecipe(source, opts);
34
- return ColumnLazy(source, opts);
40
+ return DataColumn(source, opts);
35
41
  }
36
42
 
37
43
  export type Column<ID extends ColumnRecipeId = ColumnRecipeId> = ColumnRecipe<ID>;
@@ -39,8 +45,13 @@ export type Column<ID extends ColumnRecipeId = ColumnRecipeId> = ColumnRecipe<ID
39
45
  /**
40
46
  * Type-guard for the `Column` type — currently aliased to `ColumnRecipe`, so
41
47
  * this is equivalent to {@link isColumnRecipe}. Kept as a separate export to
42
- * mirror the `Column` / `ColumnRecipe` / `ColumnLazy` factory triple.
48
+ * mirror the `Column` / `ColumnRecipe` / `DataColumnRecipe` factory triple.
43
49
  */
44
50
  export function isColumn(value: unknown): value is Column {
45
- return isColumnRecipe(value);
51
+ return (
52
+ value instanceof DataColumnImpl ||
53
+ value instanceof ColumnFilteredRecipe ||
54
+ value instanceof ColumnDiscoveredRecipe ||
55
+ value instanceof ColumnOverriddenRecipe
56
+ );
46
57
  }
@@ -1,9 +1,13 @@
1
- import { PColumn, type ColumnEntriesProvider } from "@milaboratories/pl-model-common";
1
+ import {
2
+ PColumn,
3
+ type ColumnEntriesProvider,
4
+ type PObjectId,
5
+ } from "@milaboratories/pl-model-common";
2
6
  import type { GlobalCfgRenderCtx, PColumnDataUniversal } from "../../render/internal";
3
7
  import { getCfgRenderCtx } from "../../internal";
4
8
  import { MainAccessorName, StagingAccessorName } from "../../render/internal";
5
9
  import { TreeNodeAccessor } from "../../render/accessor";
6
- import { ColumnLazy } from "../column_lazy";
10
+ import { DataColumnRecipe } from "../data_column";
7
11
  import type { ColumnsSource } from "./types";
8
12
  import { ArrayColumnsProvider, ColumnsProvider } from "./providers";
9
13
 
@@ -69,7 +73,9 @@ export function toColumnProvider(source: ColumnsSource): ColumnsProvider {
69
73
  }
70
74
 
71
75
  function isColumnArray(source: unknown): source is {
72
- readonly columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | ColumnLazy>;
76
+ readonly columns: ReadonlyArray<
77
+ PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe<PObjectId>
78
+ >;
73
79
  readonly isFinal: boolean;
74
80
  } {
75
81
  if (typeof source !== "object" || source === null) return false;
@@ -2,10 +2,11 @@ import {
2
2
  AccessorEntriesProvider,
3
3
  ResultPoolEntriesProvider,
4
4
  type PColumn,
5
+ type PObjectId,
5
6
  type UpstreamBlockCtx,
6
7
  } from "@milaboratories/pl-model-common";
7
8
  import { AccessorHandle, PColumnDataUniversal, TreeNodeAccessor } from "../../render";
8
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
9
+ import { DataColumn, DataColumnRecipe } from "../data_column";
9
10
  import { getCfgRenderCtx } from "../../internal";
10
11
  import { isNil } from "es-toolkit";
11
12
  import { LRUCache } from "lru-cache";
@@ -20,7 +21,7 @@ import { LRUCache } from "lru-cache";
20
21
  */
21
22
  export interface ColumnsProvider {
22
23
  /** Returns all currently known PColumn columns as lazy views. */
23
- getColumns(): ColumnLazy[];
24
+ getColumns(): DataColumnRecipe<PObjectId>[];
24
25
  /** Whether the provider has finished enumerating all its columns. */
25
26
  isFinal(): boolean;
26
27
  }
@@ -92,16 +93,16 @@ export function ResultPoolColumnsProvider(
92
93
  * id-index source — `ColumnRegistry` does not consume it.
93
94
  */
94
95
  export class ArrayColumnsProvider implements ColumnsProvider {
95
- private readonly columns: ColumnLazy[];
96
+ private readonly columns: DataColumnRecipe<PObjectId>[];
96
97
 
97
98
  constructor(
98
- columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | ColumnLazy>,
99
+ columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe<PObjectId>>,
99
100
  private readonly _isFinal: boolean,
100
101
  ) {
101
- this.columns = columns.map((c) => ColumnLazyImpl.fromColumn(c));
102
+ this.columns = columns.map((c) => DataColumn.fromColumn(c));
102
103
  }
103
104
 
104
- getColumns(): ColumnLazy[] {
105
+ getColumns(): DataColumnRecipe<PObjectId>[] {
105
106
  return this.columns;
106
107
  }
107
108
 
@@ -113,24 +114,24 @@ export class ArrayColumnsProvider implements ColumnsProvider {
113
114
  /**
114
115
  * Sandbox-specific provider over a {@link TreeNodeAccessor} root. Uses the
115
116
  * accessor's own `resolvePath` as the canonical root path for id construction,
116
- * and adds `getColumns()` returning {@link ColumnLazy}s on top of the generic
117
+ * and adds `getColumns()` returning {@link DataColumnRecipe<PObjectId>}s on top of the generic
117
118
  * entries index.
118
119
  */
119
120
  export class AccessorColumnsProviderImpl
120
121
  extends AccessorEntriesProvider<TreeNodeAccessor>
121
122
  implements ColumnsProvider
122
123
  {
123
- private cachedColumns?: ColumnLazy[];
124
+ private cachedColumns?: DataColumnRecipe<PObjectId>[];
124
125
 
125
126
  constructor(root: TreeNodeAccessor) {
126
127
  super(root, root.resolvePath);
127
128
  }
128
129
 
129
- getColumns(): ColumnLazy[] {
130
+ getColumns(): DataColumnRecipe<PObjectId>[] {
130
131
  if (this.cachedColumns !== undefined) return this.cachedColumns;
131
132
  return (this.cachedColumns = Array.from(this.entries.values())
132
- .map((e) => ColumnLazyImpl.fromAccessor(e))
133
- .filter((v): v is ColumnLazy => !isNil(v)));
133
+ .map((e) => DataColumn.fromAccessor(e))
134
+ .filter((v): v is DataColumnRecipe<PObjectId> => !isNil(v)));
134
135
  }
135
136
  }
136
137
 
@@ -146,7 +147,7 @@ export class ResultPoolColumnsProviderImpl
146
147
  extends ResultPoolEntriesProvider<TreeNodeAccessor>
147
148
  implements ColumnsProvider
148
149
  {
149
- private cachedColumns?: ColumnLazy[];
150
+ private cachedColumns?: DataColumnRecipe<PObjectId>[];
150
151
 
151
152
  constructor(
152
153
  rawPool: ReadonlyArray<
@@ -170,11 +171,11 @@ export class ResultPoolColumnsProviderImpl
170
171
  super(blocks);
171
172
  }
172
173
 
173
- getColumns(): ColumnLazy[] {
174
+ getColumns(): DataColumnRecipe<PObjectId>[] {
174
175
  if (this.cachedColumns !== undefined) return this.cachedColumns;
175
176
  return (this.cachedColumns = Array.from(this.getPObjectEntries().values())
176
- .map((e) => ColumnLazyImpl.fromAccessor(e))
177
- .filter((v): v is ColumnLazy => !isNil(v)));
177
+ .map((e) => DataColumn.fromAccessor(e))
178
+ .filter((v): v is DataColumnRecipe<PObjectId> => !isNil(v)));
178
179
  }
179
180
  }
180
181
 
@@ -1,7 +1,7 @@
1
1
  import type { PColumn } from "@milaboratories/pl-model-common";
2
2
  import { TreeNodeAccessor } from "../../render";
3
3
  import type { PColumnDataUniversal } from "../../render/internal";
4
- import type { ColumnLazy } from "../column_lazy";
4
+ import type { DataColumnRecipe } from "../data_column";
5
5
  import type { ColumnRecipe } from "../column_recipes";
6
6
  import type { ColumnsProvider } from "./providers";
7
7
 
@@ -10,7 +10,7 @@ import type { ColumnsProvider } from "./providers";
10
10
  * Includes TreeNodeAccessor, ColumnsProvider, and arrays of columns.
11
11
  *
12
12
  * The array form accepts plain {@link PColumn}s (materialized snapshots),
13
- * {@link ColumnLazy} leaves, or any {@link ColumnRecipe} — builders only
13
+ * {@link DataColumnRecipe} leaves, or any {@link ColumnRecipe} — builders only
14
14
  * need each entry's `id` for serialization.
15
15
  */
16
16
  export type ColumnsSource =
@@ -18,7 +18,7 @@ export type ColumnsSource =
18
18
  | TreeNodeAccessor
19
19
  | {
20
20
  readonly columns: ReadonlyArray<
21
- PColumn<undefined | PColumnDataUniversal> | ColumnLazy | ColumnRecipe
21
+ PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe | ColumnRecipe
22
22
  >;
23
23
  readonly isFinal: boolean;
24
24
  };