@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.
- package/dist/columns/column.cjs +9 -6
- package/dist/columns/column.cjs.map +1 -1
- package/dist/columns/column.d.ts +5 -5
- package/dist/columns/column.d.ts.map +1 -1
- package/dist/columns/column.js +10 -7
- package/dist/columns/column.js.map +1 -1
- package/dist/columns/column_providers/index.cjs.map +1 -1
- package/dist/columns/column_providers/index.d.ts.map +1 -1
- package/dist/columns/column_providers/index.js.map +1 -1
- package/dist/columns/column_providers/providers.cjs +5 -5
- package/dist/columns/column_providers/providers.cjs.map +1 -1
- package/dist/columns/column_providers/providers.d.ts +8 -8
- package/dist/columns/column_providers/providers.d.ts.map +1 -1
- package/dist/columns/column_providers/providers.js +5 -5
- package/dist/columns/column_providers/providers.js.map +1 -1
- package/dist/columns/column_providers/types.d.ts +3 -3
- package/dist/columns/column_providers/types.d.ts.map +1 -1
- package/dist/columns/column_recipes/column_discovered_recipe.cjs +1 -1
- package/dist/columns/column_recipes/column_discovered_recipe.cjs.map +1 -1
- package/dist/columns/column_recipes/column_discovered_recipe.d.ts +1 -1
- package/dist/columns/column_recipes/column_discovered_recipe.js +1 -1
- package/dist/columns/column_recipes/column_discovered_recipe.js.map +1 -1
- package/dist/columns/column_recipes/column_overrided_recipe.cjs +47 -2
- package/dist/columns/column_recipes/column_overrided_recipe.cjs.map +1 -1
- package/dist/columns/column_recipes/column_overrided_recipe.d.ts +30 -3
- package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -1
- package/dist/columns/column_recipes/column_overrided_recipe.js +47 -3
- package/dist/columns/column_recipes/column_overrided_recipe.js.map +1 -1
- package/dist/columns/column_recipes/index.cjs +4 -14
- package/dist/columns/column_recipes/index.cjs.map +1 -1
- package/dist/columns/column_recipes/index.d.ts +3 -10
- package/dist/columns/column_recipes/index.d.ts.map +1 -1
- package/dist/columns/column_recipes/index.js +5 -14
- package/dist/columns/column_recipes/index.js.map +1 -1
- package/dist/columns/{column_lazy.cjs → data_column.cjs} +57 -54
- package/dist/columns/data_column.cjs.map +1 -0
- package/dist/columns/data_column.d.ts +152 -0
- package/dist/columns/data_column.d.ts.map +1 -0
- package/dist/columns/{column_lazy.js → data_column.js} +55 -52
- package/dist/columns/data_column.js.map +1 -0
- package/dist/columns/derive_axis_values_labels.cjs +4 -4
- package/dist/columns/derive_axis_values_labels.cjs.map +1 -1
- package/dist/columns/derive_axis_values_labels.d.ts +2 -2
- package/dist/columns/derive_axis_values_labels.js +4 -4
- package/dist/columns/derive_axis_values_labels.js.map +1 -1
- package/dist/columns/index.cjs +9 -9
- package/dist/columns/index.d.ts +5 -5
- package/dist/columns/index.js +5 -5
- package/dist/columns/{expand_by_partition.cjs → split_by_axes.cjs} +13 -8
- package/dist/columns/split_by_axes.cjs.map +1 -0
- package/dist/columns/{expand_by_partition.d.ts → split_by_axes.d.ts} +18 -8
- package/dist/columns/split_by_axes.d.ts.map +1 -0
- package/dist/columns/{expand_by_partition.js → split_by_axes.js} +14 -9
- package/dist/columns/split_by_axes.js.map +1 -0
- package/dist/columns/utils.cjs +50 -43
- package/dist/columns/utils.cjs.map +1 -1
- package/dist/columns/utils.d.ts +44 -19
- package/dist/columns/utils.d.ts.map +1 -1
- package/dist/columns/utils.js +50 -44
- package/dist/columns/utils.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +3 -3
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +3 -3
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +2 -2
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +2 -2
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +2 -2
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +2 -2
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.js +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -1
- package/dist/components/PlDatasetSelector/enrichment_discovery.cjs +1 -1
- package/dist/components/PlDatasetSelector/enrichment_discovery.cjs.map +1 -1
- package/dist/components/PlDatasetSelector/enrichment_discovery.js +2 -2
- package/dist/components/PlDatasetSelector/enrichment_discovery.js.map +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.d.ts +5 -5
- package/dist/index.js +5 -5
- package/dist/package.cjs +1 -1
- package/dist/package.js +1 -1
- package/package.json +8 -8
- package/src/columns/__test_helpers__/collection_driver.ts +6 -6
- package/src/columns/__test_helpers__/stub_registry.ts +4 -6
- package/src/columns/column.ts +20 -9
- package/src/columns/column_providers/index.ts +9 -3
- package/src/columns/column_providers/providers.ts +16 -15
- package/src/columns/column_providers/types.ts +3 -3
- package/src/columns/column_recipes/column_discovered_recipe.ts +1 -1
- package/src/columns/column_recipes/column_overrided_recipe.ts +58 -4
- package/src/columns/column_recipes/column_recipes.test.ts +2 -2
- package/src/columns/column_recipes/index.ts +5 -20
- package/src/columns/{column_lazy.test.ts → data_column.test.ts} +19 -19
- package/src/columns/{column_lazy.ts → data_column.ts} +105 -67
- package/src/columns/derive_axis_values_labels.ts +4 -4
- package/src/columns/index.ts +2 -2
- package/src/columns/predicates.test.ts +124 -0
- package/src/columns/{expand_by_partition.test.ts → split_by_axes.test.ts} +29 -21
- package/src/columns/{expand_by_partition.ts → split_by_axes.ts} +22 -9
- package/src/columns/utils.ts +53 -48
- package/src/components/PlDataTable/columnResolver.test.ts +3 -3
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +3 -3
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +2 -2
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +2 -2
- package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +2 -2
- package/src/components/PlDataTable/createPlDataTable/utils.test.ts +34 -3
- package/src/components/PlDataTable/createPlDataTable/utils.ts +4 -1
- package/src/components/PlDatasetSelector/enrichment_discovery.ts +2 -2
- package/dist/columns/column_lazy.cjs.map +0 -1
- package/dist/columns/column_lazy.d.ts +0 -137
- package/dist/columns/column_lazy.d.ts.map +0 -1
- package/dist/columns/column_lazy.js.map +0 -1
- package/dist/columns/expand_by_partition.cjs.map +0 -1
- package/dist/columns/expand_by_partition.d.ts.map +0 -1
- package/dist/columns/expand_by_partition.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichment_discovery.cjs","names":["ColumnsCollection","Annotation","
|
|
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,
|
|
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 (
|
|
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
|
|
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
|
|
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 =
|
|
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,
|
|
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
|
|
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 {
|
|
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,
|
|
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,
|
|
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
|
|
33
|
+
import { ColumnRecipe } from "./columns/column_recipes/index.js";
|
|
34
34
|
import { ColumnOverriddenRecipe } from "./columns/column_recipes/column_overrided_recipe.js";
|
|
35
|
-
import { ColumnAbsentError,
|
|
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,
|
|
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,
|
|
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
package/dist/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/model",
|
|
3
|
-
"version": "1.
|
|
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/
|
|
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/
|
|
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/
|
|
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 `
|
|
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 {
|
|
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
|
-
* `
|
|
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 `
|
|
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:
|
|
166
|
+
const columns: DataColumnRecipe<PObjectId>[] = [];
|
|
167
167
|
for (const [id, spec] of specMap) {
|
|
168
|
-
columns.push(
|
|
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. `
|
|
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 {
|
|
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
|
|
73
|
+
columns: [] as DataColumnRecipe<PObjectId>[],
|
|
76
74
|
},
|
|
77
75
|
);
|
|
78
76
|
return {
|
package/src/columns/column.ts
CHANGED
|
@@ -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 {
|
|
11
|
-
import {
|
|
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<
|
|
19
|
-
|
|
|
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` / `
|
|
30
|
+
* - object source (`PlRef` / `LeafEntry` / `PColumn` / `DataColumnRecipe`) → {@link DataColumnRecipe}
|
|
25
31
|
*
|
|
26
|
-
* `
|
|
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
|
|
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` / `
|
|
48
|
+
* mirror the `Column` / `ColumnRecipe` / `DataColumnRecipe` factory triple.
|
|
43
49
|
*/
|
|
44
50
|
export function isColumn(value: unknown): value is Column {
|
|
45
|
-
return
|
|
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 {
|
|
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 {
|
|
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<
|
|
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 {
|
|
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():
|
|
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:
|
|
96
|
+
private readonly columns: DataColumnRecipe<PObjectId>[];
|
|
96
97
|
|
|
97
98
|
constructor(
|
|
98
|
-
columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> |
|
|
99
|
+
columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe<PObjectId>>,
|
|
99
100
|
private readonly _isFinal: boolean,
|
|
100
101
|
) {
|
|
101
|
-
this.columns = columns.map((c) =>
|
|
102
|
+
this.columns = columns.map((c) => DataColumn.fromColumn(c));
|
|
102
103
|
}
|
|
103
104
|
|
|
104
|
-
getColumns():
|
|
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
|
|
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?:
|
|
124
|
+
private cachedColumns?: DataColumnRecipe<PObjectId>[];
|
|
124
125
|
|
|
125
126
|
constructor(root: TreeNodeAccessor) {
|
|
126
127
|
super(root, root.resolvePath);
|
|
127
128
|
}
|
|
128
129
|
|
|
129
|
-
getColumns():
|
|
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) =>
|
|
133
|
-
.filter((v): v is
|
|
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?:
|
|
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():
|
|
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) =>
|
|
177
|
-
.filter((v): v is
|
|
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 {
|
|
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
|
|
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> |
|
|
21
|
+
PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe | ColumnRecipe
|
|
22
22
|
>;
|
|
23
23
|
readonly isFinal: boolean;
|
|
24
24
|
};
|