@platforma-sdk/model 1.83.0 → 1.83.9

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 (189) hide show
  1. package/dist/annotations/converter.d.ts +1 -3
  2. package/dist/annotations/converter.d.ts.map +1 -1
  3. package/dist/annotations/types.d.ts +5 -6
  4. package/dist/annotations/types.d.ts.map +1 -1
  5. package/dist/bconfig/lambdas.d.ts +10 -10
  6. package/dist/bconfig/lambdas.d.ts.map +1 -1
  7. package/dist/bconfig/normalization.d.ts +3 -5
  8. package/dist/bconfig/normalization.d.ts.map +1 -1
  9. package/dist/bconfig/types.d.ts +4 -5
  10. package/dist/bconfig/types.d.ts.map +1 -1
  11. package/dist/bconfig/util.d.ts +1 -3
  12. package/dist/bconfig/util.d.ts.map +1 -1
  13. package/dist/bconfig/v3.d.ts +3 -5
  14. package/dist/bconfig/v3.d.ts.map +1 -1
  15. package/dist/block_api_v1.d.ts +2 -4
  16. package/dist/block_api_v1.d.ts.map +1 -1
  17. package/dist/block_api_v2.d.ts +1 -3
  18. package/dist/block_api_v2.d.ts.map +1 -1
  19. package/dist/block_api_v3.d.ts +1 -3
  20. package/dist/block_api_v3.d.ts.map +1 -1
  21. package/dist/block_migrations.d.ts +20 -36
  22. package/dist/block_migrations.d.ts.map +1 -1
  23. package/dist/block_model.d.ts +10 -10
  24. package/dist/block_model.d.ts.map +1 -1
  25. package/dist/block_state_patch.d.ts +6 -6
  26. package/dist/block_state_patch.d.ts.map +1 -1
  27. package/dist/block_state_util.d.ts +4 -6
  28. package/dist/block_state_util.d.ts.map +1 -1
  29. package/dist/block_storage.d.ts +24 -23
  30. package/dist/block_storage.d.ts.map +1 -1
  31. package/dist/block_storage_facade.d.ts +11 -12
  32. package/dist/block_storage_facade.d.ts.map +1 -1
  33. package/dist/columns/column.d.ts +5 -6
  34. package/dist/columns/column.d.ts.map +1 -1
  35. package/dist/columns/column_providers/index.d.ts +5 -6
  36. package/dist/columns/column_providers/index.d.ts.map +1 -1
  37. package/dist/columns/column_providers/providers.d.ts +10 -11
  38. package/dist/columns/column_providers/providers.d.ts.map +1 -1
  39. package/dist/columns/column_providers/types.d.ts +2 -3
  40. package/dist/columns/column_providers/types.d.ts.map +1 -1
  41. package/dist/columns/column_recipes/column_discovered_recipe.d.ts +1 -3
  42. package/dist/columns/column_recipes/column_discovered_recipe.d.ts.map +1 -1
  43. package/dist/columns/column_recipes/column_filtered_recipe.d.ts +1 -3
  44. package/dist/columns/column_recipes/column_filtered_recipe.d.ts.map +1 -1
  45. package/dist/columns/column_recipes/column_overrided_recipe.d.ts +2 -3
  46. package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -1
  47. package/dist/columns/column_recipes/index.d.ts +3 -4
  48. package/dist/columns/column_recipes/index.d.ts.map +1 -1
  49. package/dist/columns/column_recipes/types.d.ts +5 -6
  50. package/dist/columns/column_recipes/types.d.ts.map +1 -1
  51. package/dist/columns/columns_collection.d.ts +7 -8
  52. package/dist/columns/columns_collection.d.ts.map +1 -1
  53. package/dist/columns/data_column.d.ts +12 -16
  54. package/dist/columns/data_column.d.ts.map +1 -1
  55. package/dist/columns/derive_axis_values_labels.d.ts +2 -3
  56. package/dist/columns/derive_axis_values_labels.d.ts.map +1 -1
  57. package/dist/columns/split_by_axes.d.ts +3 -5
  58. package/dist/columns/split_by_axes.d.ts.map +1 -1
  59. package/dist/columns/utils.d.ts +10 -12
  60. package/dist/columns/utils.d.ts.map +1 -1
  61. package/dist/components/PFrameForGraphs.d.ts +5 -5
  62. package/dist/components/PFrameForGraphs.d.ts.map +1 -1
  63. package/dist/components/PlAnnotations/filter.d.ts +59 -40
  64. package/dist/components/PlAnnotations/filter.d.ts.map +1 -1
  65. package/dist/components/PlAnnotations/filters_ui.d.ts +18 -18
  66. package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -1
  67. package/dist/components/PlDataTable/columnResolver.cjs +2 -4
  68. package/dist/components/PlDataTable/columnResolver.cjs.map +1 -1
  69. package/dist/components/PlDataTable/columnResolver.js +2 -4
  70. package/dist/components/PlDataTable/columnResolver.js.map +1 -1
  71. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +1 -1
  72. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
  73. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts +3 -4
  74. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts.map +1 -1
  75. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +1 -1
  76. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
  77. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +1 -1
  78. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
  79. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts +13 -10
  80. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts.map +1 -1
  81. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +1 -1
  82. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
  83. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts +5 -5
  84. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts.map +1 -1
  85. package/dist/components/PlDataTable/createPlDataTable/index.d.ts +4 -4
  86. package/dist/components/PlDataTable/createPlDataTable/index.d.ts.map +1 -1
  87. package/dist/components/PlDataTable/createPlDataTable/utils.d.ts +8 -7
  88. package/dist/components/PlDataTable/createPlDataTable/utils.d.ts.map +1 -1
  89. package/dist/components/PlDataTable/createPlDataTableSheet.d.ts +2 -3
  90. package/dist/components/PlDataTable/createPlDataTableSheet.d.ts.map +1 -1
  91. package/dist/components/PlDataTable/state-migration.d.ts +6 -7
  92. package/dist/components/PlDataTable/state-migration.d.ts.map +1 -1
  93. package/dist/components/PlDataTable/typesV4.d.ts +73 -42
  94. package/dist/components/PlDataTable/typesV4.d.ts.map +1 -1
  95. package/dist/components/PlDataTable/typesV5.d.ts +3 -5
  96. package/dist/components/PlDataTable/typesV5.d.ts.map +1 -1
  97. package/dist/components/PlDataTable/typesV6.d.ts +4 -6
  98. package/dist/components/PlDataTable/typesV6.d.ts.map +1 -1
  99. package/dist/components/PlDataTable/typesV7.d.ts +45 -27
  100. package/dist/components/PlDataTable/typesV7.d.ts.map +1 -1
  101. package/dist/components/PlDataTable/typesV8.d.ts +80 -45
  102. package/dist/components/PlDataTable/typesV8.d.ts.map +1 -1
  103. package/dist/components/PlDatasetSelector/build_dataset_options.d.ts +7 -6
  104. package/dist/components/PlDatasetSelector/build_dataset_options.d.ts.map +1 -1
  105. package/dist/components/PlDatasetSelector/dataset_selection.d.ts +4 -6
  106. package/dist/components/PlDatasetSelector/dataset_selection.d.ts.map +1 -1
  107. package/dist/components/PlDatasetSelector/filter_discovery.d.ts +9 -8
  108. package/dist/components/PlDatasetSelector/filter_discovery.d.ts.map +1 -1
  109. package/dist/components/PlMultiSequenceAlignment.d.ts +6 -13
  110. package/dist/components/PlMultiSequenceAlignment.d.ts.map +1 -1
  111. package/dist/components/PlSelectionModel.d.ts +6 -6
  112. package/dist/components/PlSelectionModel.d.ts.map +1 -1
  113. package/dist/components/index.d.ts +3 -0
  114. package/dist/config/model.d.ts +28 -30
  115. package/dist/config/model.d.ts.map +1 -1
  116. package/dist/config/type_engine.d.ts +3 -5
  117. package/dist/config/type_engine.d.ts.map +1 -1
  118. package/dist/env_value.d.ts +1 -2
  119. package/dist/env_value.d.ts.map +1 -1
  120. package/dist/filters/converters/filterToQuery.d.ts +6 -7
  121. package/dist/filters/converters/filterToQuery.d.ts.map +1 -1
  122. package/dist/filters/converters/filterUiToExpressionImpl.d.ts +2 -4
  123. package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +1 -1
  124. package/dist/filters/distill.d.ts +1 -3
  125. package/dist/filters/distill.d.ts.map +1 -1
  126. package/dist/filters/index.d.ts +1 -0
  127. package/dist/filters/types.d.ts +3 -4
  128. package/dist/filters/types.d.ts.map +1 -1
  129. package/dist/index.d.ts +9 -0
  130. package/dist/labels/derive_distinct_labels.d.ts +28 -17
  131. package/dist/labels/derive_distinct_labels.d.ts.map +1 -1
  132. package/dist/labels/derive_distinct_tooltips.d.ts +11 -8
  133. package/dist/labels/derive_distinct_tooltips.d.ts.map +1 -1
  134. package/dist/labels/linked_column_postfix.d.ts +3 -5
  135. package/dist/labels/linked_column_postfix.d.ts.map +1 -1
  136. package/dist/package.cjs +1 -1
  137. package/dist/package.js +1 -1
  138. package/dist/pframe.d.ts +1 -3
  139. package/dist/pframe.d.ts.map +1 -1
  140. package/dist/pframe_utils/axes.d.ts +4 -5
  141. package/dist/pframe_utils/axes.d.ts.map +1 -1
  142. package/dist/pframe_utils/columns.d.ts +3 -7
  143. package/dist/pframe_utils/columns.d.ts.map +1 -1
  144. package/dist/pframe_utils/index.d.ts +9 -10
  145. package/dist/pframe_utils/index.d.ts.map +1 -1
  146. package/dist/platforma.d.ts +19 -21
  147. package/dist/platforma.d.ts.map +1 -1
  148. package/dist/plugin_handle.d.ts +11 -13
  149. package/dist/plugin_handle.d.ts.map +1 -1
  150. package/dist/plugin_model.d.ts +21 -22
  151. package/dist/plugin_model.d.ts.map +1 -1
  152. package/dist/raw_globals.d.ts +3 -4
  153. package/dist/raw_globals.d.ts.map +1 -1
  154. package/dist/render/accessor.d.ts +2 -4
  155. package/dist/render/accessor.d.ts.map +1 -1
  156. package/dist/render/api.d.ts +13 -13
  157. package/dist/render/api.d.ts.map +1 -1
  158. package/dist/render/future.d.ts +2 -4
  159. package/dist/render/future.d.ts.map +1 -1
  160. package/dist/render/index.d.ts +1 -0
  161. package/dist/render/internal.d.ts +11 -13
  162. package/dist/render/internal.d.ts.map +1 -1
  163. package/dist/render/traversal_ops.d.ts +14 -11
  164. package/dist/render/traversal_ops.d.ts.map +1 -1
  165. package/dist/render/util/axis_filtering.d.ts +5 -7
  166. package/dist/render/util/axis_filtering.d.ts.map +1 -1
  167. package/dist/render/util/column_collection.d.ts +14 -12
  168. package/dist/render/util/column_collection.d.ts.map +1 -1
  169. package/dist/render/util/label.d.ts +2 -3
  170. package/dist/render/util/label.d.ts.map +1 -1
  171. package/dist/render/util/pcolumn_data.d.ts +24 -25
  172. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  173. package/dist/render/util/split_selectors.d.ts +4 -6
  174. package/dist/render/util/split_selectors.d.ts.map +1 -1
  175. package/dist/services/block_services.d.ts +3 -4
  176. package/dist/services/block_services.d.ts.map +1 -1
  177. package/dist/services/get_services.d.ts +1 -3
  178. package/dist/services/get_services.d.ts.map +1 -1
  179. package/dist/services/service_bridge.d.ts +3 -5
  180. package/dist/services/service_bridge.d.ts.map +1 -1
  181. package/dist/services/service_resolve.d.ts +6 -7
  182. package/dist/services/service_resolve.d.ts.map +1 -1
  183. package/dist/version.d.ts +3 -4
  184. package/dist/version.d.ts.map +1 -1
  185. package/package.json +10 -10
  186. package/src/components/PlDataTable/columnResolver.test.ts +3 -5
  187. package/src/components/PlDataTable/columnResolver.ts +2 -12
  188. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +1 -4
  189. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"createPlDataTableV3.js","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts"],"sourcesContent":["import type {\n ColumnUniversalId,\n FilterSpecNode,\n PObjectId,\n PTableColumnId,\n PTableColumnIdColumn,\n PTableSorting,\n MultiColumnSelector,\n ColumnSelector,\n} from \"@milaboratories/pl-model-common\";\nimport {\n canonicalizeAxisId,\n dedupColumns,\n extractPObjectId,\n uniqueBy,\n} from \"@milaboratories/pl-model-common\";\nimport { collectFilterSpecColumns } from \"../../../filters/traverse\";\nimport { createColumnResolver, type ColumnResolver } from \"../columnResolver\";\nimport type { RenderCtxBase } from \"../../../render\";\nimport type {\n PlDataTableColumnsMeta,\n PlDataTableFilters,\n PlDataTableFilterSpecLeaf,\n PlDataTableModel,\n} from \"../typesV8\";\nimport { upgradePlDataTableStateV2 } from \"../state-migration\";\nimport type { PlDataTableStateV2 } from \"../state-migration\";\nimport type { MatchingMode } from \"@milaboratories/pl-model-common\";\nimport {\n hasSingleDataColumn,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n type ColumnRecipe,\n} from \"../../../columns\";\nimport type { DeriveLabelsOptions } from \"../../../labels/derive_distinct_labels\";\nimport {\n deriveAllLabels,\n evaluateRules,\n getEffectiveVisibility,\n getOrderPriority,\n isColumnHidden,\n buildDataStatusMap,\n toRuleColumn,\n} from \"./utils\";\nimport { createPTableDefV3 } from \"./createPTableDefV3\";\nimport {\n discoverLabelColumns,\n discoverTableColumns,\n type DiscoverTableColumnOptions,\n} from \"./discoverColumns\";\nimport { isNil, isPlainObject, type Nil } from \"@milaboratories/helpers\";\nimport { uniq } from \"es-toolkit\";\n\nexport type createPlDataTableOptionsV3 = (\n | {\n columns: Nil | DiscoverTableColumnOptions;\n }\n | {\n primaryColumns: ColumnRecipe[];\n columns: Nil | ColumnRecipe[];\n }\n) & {\n tableState?: PlDataTableStateV2;\n\n filters?: PlDataTableFilters;\n sorting?: PTableSorting[];\n primaryJoinType?: \"inner\" | \"full\";\n\n labelsOptions?: DeriveLabelsOptions;\n displayOptions?: ColumnsDisplayOptions;\n};\n\n/** Structured source config — selectors/anchors instead of raw ColumnsSource. */\nexport type ColumnsSelectorConfig = {\n include?: MultiColumnSelector | MultiColumnSelector[];\n exclude?: MultiColumnSelector | MultiColumnSelector[];\n mode?: MatchingMode;\n maxHops?: number;\n};\n\nexport type ColumnsDisplayOptions = {\n /** Column ordering rules. Higher priority = further left. First matching rule wins. */\n ordering?: ColumnOrderRule[];\n /** Column visibility rules. First matching rule wins. Unmatched columns use default visibility. */\n visibility?: ColumnVisibilityRule[];\n};\n\nexport type ColumnOrderRule = {\n match: ColumnSelector;\n /** Higher number = further left in table */\n priority: number;\n};\n\nexport type ColumnVisibilityRule = {\n match: ColumnSelector;\n visibility: \"default\" | \"optional\" | \"hidden\";\n};\n\nexport function createPlDataTableV3<A, U>(\n ctx: RenderCtxBase<A, U>,\n options: createPlDataTableOptionsV3,\n): PlDataTableModel | undefined {\n const state = upgradePlDataTableStateV2(options.tableState);\n const primaryJoinType = options.primaryJoinType ?? \"full\";\n\n const resolved = resolveInputColumns(ctx, options);\n if (resolved === undefined) return undefined;\n const { primary, secondary } = resolved;\n if (primary.length === 0) return undefined;\n\n const { direct, linked } = splitByTopology(secondary);\n\n const allColumns = [...primary, ...secondary];\n const derivedLabels = deriveAllLabels({\n // Skip hidden columns when deriving labels — they don't appear in the\n // table, so they shouldn't influence label disambiguation (#1623).\n columns: allColumns.filter((c) => !isColumnHidden(c.getSpec())).map(toLabelableColumn),\n deriveLabelsOptions: {\n includeNativeLabel: true,\n ...options.labelsOptions,\n },\n });\n\n // Rule-based visibility/order maps (keyed by bare PObjectId). Computed once\n // here: `computeHiddenColumns` needs visibility to decide the visible set,\n // and `buildColumnsMeta` (below, once the visible set is known) reuses both.\n const allColumnsForRules = [...primary, ...direct, ...linked, ...collectLinkerSnapshots(linked)];\n const visibilityByColId = evaluateRules(\n options.displayOptions?.visibility ?? [],\n allColumnsForRules,\n );\n const orderByColId = evaluateRules(options.displayOptions?.ordering ?? [], allColumnsForRules);\n\n const resolver = createColumnResolver(\n [...primary, ...direct, ...linked.flatMap((lc) => [...collectLinkerColumns(lc), lc])],\n { warn: ctx.logWarn.bind(ctx) },\n );\n\n const remapedDefaultFilters = remapFilterColumnIds(options.filters, resolver);\n const filters = filterFilters(\n concatFilters(\n state.pTableParams.filters,\n state.pTableParams.defaultFilters ?? remapedDefaultFilters,\n ),\n resolver,\n );\n\n const sorting = filterSorting(\n resolveSorting(state.pTableParams.sorting, remapSortingColumnIds(options.sorting, resolver)),\n resolver,\n );\n\n const fullDef = createPTableDefV3({\n primaryJoinType,\n primary,\n secondary: [...direct, ...linked],\n filters,\n sorting,\n });\n\n const fullHandle = ctx.createPTableV2(fullDef);\n // TODO: is workaround for dropdown suggestions.\n // Pframe have not equivalent data for columns relativly to Ptable.\n // PFrame is the physical column registry — one entry per bare PObjectId,\n // so strip the rich recipe ids down to their physical leaf id and dedupe:\n // multiple discovered variants of the same hit collapse to the same bare id.\n const pframeHandle = ctx.createPFrame(\n uniq([\n ...primary.map((v) => extractPObjectId(v.id)),\n ...direct.map((v) => extractPObjectId(v.id)),\n ...linked.map((v) => extractPObjectId(v.id)),\n ]),\n );\n\n const hiddenSpecs = state.pTableParams.hiddenColIds;\n const hiddenColumnIds = computeHiddenColumns({\n columns: [...primary, ...direct, ...linked],\n visibilityByColId,\n sorting,\n filters,\n hiddenSpecs,\n });\n\n const visible = {\n primary,\n direct: direct.filter((c) => !hiddenColumnIds.has(c.id)),\n linked: linked.filter((c) => !hiddenColumnIds.has(c.id)),\n };\n const visibleDef = createPTableDefV3({\n primaryJoinType,\n primary,\n secondary: [...visible.direct, ...visible.linked],\n filters,\n sorting,\n });\n const visibleHandle = ctx.createPTableV2(visibleDef);\n\n // Built here, where the visible set is known: per-column data status is\n // computed for visible columns only (the probe is meaningful only for what\n // the user sees), while label/visibility/order/axes cover all columns.\n const columnsMeta = buildColumnsMeta({\n fullColumns: [...primary, ...direct, ...linked],\n visibleColumns: [...visible.primary, ...visible.direct, ...visible.linked],\n primaryColumns: primary,\n derivedLabels,\n visibilityByColId,\n orderByColId,\n });\n\n return {\n sourceId: state.pTableParams.sourceId,\n fullTableHandle: fullHandle,\n fullPframeHandle: pframeHandle,\n visibleTableHandle: visibleHandle,\n defaultFilters: remapedDefaultFilters,\n columnsMeta,\n } satisfies PlDataTableModel;\n}\n\ntype ResolvedColumns = {\n readonly primary: ColumnRecipe[];\n readonly secondary: ColumnRecipe[];\n};\n\n/** Normalize either option branch into a {primary, secondary} pair of recipes. */\nfunction resolveInputColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n options: createPlDataTableOptionsV3,\n): undefined | ResolvedColumns {\n if (\"primaryColumns\" in options) {\n const primary = options.primaryColumns;\n const secondary = options.columns ?? [];\n const labels = discoverLabelColumns(ctx, primary);\n // Exclude from secondary anything already present in primary: a label\n // column the block hands in as primary can be re-discovered here as a\n // label for that same axis, landing in the table twice with the same id.\n const primaryIds = new Set(primary.map((c) => c.id));\n return {\n primary,\n secondary: dedupColumns(\n [...secondary, ...labels].filter((c) => !primaryIds.has(c.id)),\n (c) => c.id,\n (c) => c.getSpec(),\n ),\n };\n }\n\n if (isPlainObject(options.columns)) {\n return discoverTableColumns(ctx, options.columns);\n }\n\n return undefined;\n}\n\n/** Split secondary recipes by query topology: leaves (no linker chain) vs joined. */\nfunction splitByTopology(columns: ColumnRecipe[]): {\n direct: ColumnRecipe[];\n linked: ColumnRecipe[];\n} {\n const direct: ColumnRecipe[] = [];\n const linked: ColumnRecipe[] = [];\n for (const c of columns) {\n if (hasSingleDataColumn(c)) direct.push(c);\n else linked.push(c);\n }\n return { direct, linked };\n}\n\n/** All linker recipes across the given linked columns, deduped by id. */\nfunction collectLinkerSnapshots(linked: ColumnRecipe[]): ColumnRecipe[] {\n return uniqueBy(\n linked.flatMap((c) => collectLinkerColumns(c)),\n (c) => c.id,\n );\n}\n\nfunction toLabelableColumn(col: ColumnRecipe) {\n return {\n id: col.id,\n spec: col.getSpec(),\n linkerPath: collectLinkerColumns(col).map((linker) => ({\n linker: { spec: linker.getSpec() },\n })),\n qualifications: {\n forHit: [...hitQualifications(col)],\n forQueries: queriesQualifications(col),\n },\n };\n}\n\n/**\n * Compute display metadata as a sidecar keyed by each emitted column's\n * `ColumnUniversalId` (and axis `AxisId`), instead of baking it into the specs\n * via `withSpecs`. Spec overrides change a recipe's id, so the same physical\n * column reached two ways would diverge into two ids and render twice; keeping\n * meta out of the spec preserves identity and lets dedup collapse such cases.\n * The UI overlays this onto the engine-emitted specs at render time.\n */\nfunction buildColumnsMeta(params: {\n /** Every column in the table (primary + secondary) — drives `columns` and `axes`. */\n fullColumns: ColumnRecipe[];\n /** The visible subset — `status` is probed for these only. */\n visibleColumns: ColumnRecipe[];\n /** The primary join columns — their axes are the visible index; all other axes are hidden. */\n primaryColumns: ColumnRecipe[];\n derivedLabels: Record<string, string>;\n visibilityByColId: Map<PObjectId, ColumnVisibilityRule>;\n orderByColId: Map<PObjectId, ColumnOrderRule>;\n}): PlDataTableColumnsMeta {\n const { fullColumns, visibleColumns, primaryColumns, derivedLabels } = params;\n const { visibilityByColId, orderByColId } = params;\n // Status only for visible columns — the probe is meaningful only for what the\n // user actually sees; non-visible columns get no `status`.\n const visibleStatus = buildDataStatusMap(visibleColumns);\n\n const columns = fullColumns.reduce<PlDataTableColumnsMeta[\"columns\"]>((acc, c) => {\n const rc = toRuleColumn(c);\n acc[c.id] = {\n label: derivedLabels[c.id],\n visibility: getEffectiveVisibility(rc, visibilityByColId),\n order: getOrderPriority(rc, orderByColId),\n status: visibleStatus[c.id],\n };\n return acc;\n }, {});\n\n // Only primary columns declare the table's visible axes. Any axis introduced\n // solely by a secondary column (a linker-bridge axis, or a distinct-domain\n // copy) is flagged hidden — otherwise it renders as a second index axis.\n const primaryAxisKeys = new Set(\n primaryColumns.flatMap((c) => c.getSpec().axesSpec.map((a) => canonicalizeAxisId(a))),\n );\n const axes = fullColumns.reduce<PlDataTableColumnsMeta[\"axes\"]>(\n (acc, c) =>\n c.getSpec().axesSpec.reduce((inner, ax) => {\n const key = canonicalizeAxisId(ax);\n if (inner[key] === undefined) inner[key] = { hidden: !primaryAxisKeys.has(key) };\n return inner;\n }, acc),\n {},\n );\n\n return { columns, axes };\n}\n\n/** Drop filter leaves whose column references cannot be resolved; rewrite the\n * resolvable ones through the resolver. Prune empty and/or/not groups. */\nfunction filterFilters(\n filters: Nil | PlDataTableFilters,\n resolver: ColumnResolver,\n): Nil | PlDataTableFilters {\n if (isNil(filters)) return filters;\n\n const rewriteLeaf = (leaf: PlDataTableFilterSpecLeaf): Nil | PlDataTableFilterSpecLeaf => {\n if (leaf.type === undefined) return leaf;\n const result = { ...leaf };\n if (\"column\" in result) {\n const c = resolver(result.column);\n if (isNil(c)) return undefined;\n result.column = c;\n }\n if (\"rhs\" in result) {\n const c = resolver(result.rhs);\n if (isNil(c)) return undefined;\n result.rhs = c;\n }\n return result;\n };\n\n const prune = (node: PlDataTableFilterNode): Nil | PlDataTableFilterNode => {\n if (node.type === \"and\" || node.type === \"or\") {\n const kept = node.filters\n .map((f) => prune(f))\n .filter((f): f is PlDataTableFilterNode => !isNil(f));\n if (kept.length === 0) return undefined;\n return { type: node.type, filters: kept };\n }\n if (node.type === \"not\") {\n const inner = prune(node.filter);\n return isNil(inner) ? undefined : { type: \"not\", filter: inner };\n }\n return rewriteLeaf(node);\n };\n\n return prune(filters) as Nil | PlDataTableFilters;\n}\n\n/** Merge two filter trees into one AND-combined tree. Returns the non-nil one if the other is nil.\n * Exported for unit testing. */\nexport function concatFilters(\n a: Nil | PlDataTableFilters,\n b: Nil | PlDataTableFilters,\n): Nil | PlDataTableFilters {\n if (isNil(a)) return b;\n if (isNil(b)) return a;\n const operands = (f: PlDataTableFilters): PlDataTableFilterNode[] =>\n f.type === \"and\" ? f.filters : [f as PlDataTableFilterNode];\n return { type: \"and\", filters: [...operands(a), ...operands(b)] };\n}\n\n/** Pick user sorting from state if set, otherwise fall back to options default.\n * null = user has not touched sorting → use default;\n * [] = user has explicitly cleared sorting → no sorting (default ignored). */\nfunction resolveSorting(\n userSorting: Nil | PTableSorting[],\n defaultSorting: Nil | PTableSorting[],\n): PTableSorting[] {\n return (isNil(userSorting) ? defaultSorting : userSorting) ?? [];\n}\n\n/** Rewrite sorting entries through the resolver; drop those that fail to resolve. */\nfunction filterSorting(sorting: PTableSorting[], resolver: ColumnResolver): PTableSorting[] {\n return sorting.flatMap((s) => {\n const col = resolver(s.column);\n return isNil(col) ? [] : [{ ...s, column: col }];\n });\n}\n\n/** Determine which columns should be hidden based on state or optional-column defaults.\n * Keyed by the recipe's logical {@link ColumnUniversalId} (rich) — variants of\n * the same physical column are independently visible/hidden. */\nfunction computeHiddenColumns(params: {\n columns: ColumnRecipe[];\n visibilityByColId: Map<PObjectId, ColumnVisibilityRule>;\n sorting: Nil | PTableSorting[];\n filters: Nil | PlDataTableFilters;\n hiddenSpecs: Nil | PTableColumnId[];\n}): Set<ColumnUniversalId> {\n const { columns, visibilityByColId, sorting, filters, hiddenSpecs } = params;\n const visibilityOf = (c: ColumnRecipe) =>\n getEffectiveVisibility(toRuleColumn(c), visibilityByColId);\n const alwaysHidden = columns.filter((c) => visibilityOf(c) === \"hidden\").map((c) => c.id);\n const optionalHidden = !isNil(hiddenSpecs)\n ? hiddenSpecs.filter((s): s is PTableColumnIdColumn => s.type === \"column\").map((s) => s.id)\n : columns.filter((c) => visibilityOf(c) === \"optional\").map((c) => c.id);\n const initial = [...alwaysHidden, ...optionalHidden];\n const preserved = collectPreservedColumnIds(sorting, filters);\n\n return new Set(initial.filter((id) => !preserved.has(id)));\n}\n\n/** Collect IDs of columns that must remain visible (sorted, filtered). */\nfunction collectPreservedColumnIds(\n sorting: Nil | PTableSorting[],\n filters: Nil | PlDataTableFilters,\n): Set<ColumnUniversalId> {\n const sortedIds = (sorting ?? [])\n .map((s) => s.column)\n .filter((c): c is PTableColumnIdColumn => c.type === \"column\")\n .map((c) => c.id);\n\n const filterIds = !isNil(filters)\n ? collectFilterSpecColumns(filters).flatMap((c) => (c.type === \"column\" ? [c.id] : []))\n : [];\n\n return new Set<ColumnUniversalId>([...sortedIds, ...filterIds]);\n}\n\n/** Remap column references in sorting entries through the resolver.\n * Unresolved entries are dropped with a warning (best-effort contract). */\nfunction remapSortingColumnIds(\n sorting: Nil | PTableSorting[],\n resolver: ColumnResolver,\n): Nil | PTableSorting[] {\n return sorting?.flatMap((s) => {\n const col = resolver(s.column);\n if (isNil(col)) {\n console.warn(\n `Sorting column ${JSON.stringify(s.column)} does not match any discovered column — dropped.`,\n );\n return [];\n }\n return [{ ...s, column: col }];\n });\n}\n\ntype PlDataTableFilterNode = FilterSpecNode<PlDataTableFilterSpecLeaf>;\n\n/** Remap column references in a filter tree through the resolver.\n * Unresolved leaves are dropped with a warning; empty groups are pruned. */\nfunction remapFilterColumnIds(\n filters: Nil | PlDataTableFilters,\n resolver: ColumnResolver,\n): Nil | PlDataTableFilters {\n if (isNil(filters)) return filters;\n\n const mapLeaf = (leaf: PlDataTableFilterSpecLeaf): Nil | PlDataTableFilterSpecLeaf => {\n if (leaf.type === undefined) return leaf;\n const result = { ...leaf };\n if (\"column\" in result) {\n const c = resolver(result.column);\n if (isNil(c)) {\n console.warn(\n `Filter column ${JSON.stringify(result.column)} does not match any discovered column — dropped.`,\n );\n return undefined;\n }\n result.column = c;\n }\n if (\"rhs\" in result) {\n const c = resolver(result.rhs);\n if (isNil(c)) {\n console.warn(\n `Filter rhs ${JSON.stringify(result.rhs)} does not match any discovered column — dropped.`,\n );\n return undefined;\n }\n result.rhs = c;\n }\n return result;\n };\n\n const prune = (node: PlDataTableFilterNode): Nil | PlDataTableFilterNode => {\n if (node.type === \"and\" || node.type === \"or\") {\n const kept = node.filters\n .map((f) => prune(f))\n .filter((f): f is PlDataTableFilterNode => !isNil(f));\n if (kept.length === 0) return undefined;\n return { type: node.type, filters: kept };\n }\n if (node.type === \"not\") {\n const inner = prune(node.filter);\n return isNil(inner) ? undefined : { type: \"not\", filter: inner };\n }\n return mapLeaf(node);\n };\n\n return prune(filters) as Nil | PlDataTableFilters;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"createPlDataTableV3.js","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts"],"sourcesContent":["import type {\n ColumnUniversalId,\n FilterSpecNode,\n PObjectId,\n PTableColumnId,\n PTableColumnIdColumn,\n PTableSorting,\n MultiColumnSelector,\n ColumnSelector,\n} from \"@milaboratories/pl-model-common\";\nimport {\n canonicalizeAxisId,\n dedupColumns,\n extractPObjectId,\n uniqueBy,\n} from \"@milaboratories/pl-model-common\";\nimport { collectFilterSpecColumns } from \"../../../filters/traverse\";\nimport { createColumnResolver, type ColumnResolver } from \"../columnResolver\";\nimport type { RenderCtxBase } from \"../../../render\";\nimport type {\n PlDataTableColumnsMeta,\n PlDataTableFilters,\n PlDataTableFilterSpecLeaf,\n PlDataTableModel,\n} from \"../typesV8\";\nimport { upgradePlDataTableStateV2 } from \"../state-migration\";\nimport type { PlDataTableStateV2 } from \"../state-migration\";\nimport type { MatchingMode } from \"@milaboratories/pl-model-common\";\nimport {\n hasSingleDataColumn,\n hitQualifications,\n collectLinkerColumns,\n queriesQualifications,\n type ColumnRecipe,\n} from \"../../../columns\";\nimport type { DeriveLabelsOptions } from \"../../../labels/derive_distinct_labels\";\nimport {\n deriveAllLabels,\n evaluateRules,\n getEffectiveVisibility,\n getOrderPriority,\n isColumnHidden,\n buildDataStatusMap,\n toRuleColumn,\n} from \"./utils\";\nimport { createPTableDefV3 } from \"./createPTableDefV3\";\nimport {\n discoverLabelColumns,\n discoverTableColumns,\n type DiscoverTableColumnOptions,\n} from \"./discoverColumns\";\nimport { isNil, isPlainObject, type Nil } from \"@milaboratories/helpers\";\nimport { uniq } from \"es-toolkit\";\n\nexport type createPlDataTableOptionsV3 = (\n | {\n columns: Nil | DiscoverTableColumnOptions;\n }\n | {\n primaryColumns: ColumnRecipe[];\n columns: Nil | ColumnRecipe[];\n }\n) & {\n tableState?: PlDataTableStateV2;\n\n filters?: PlDataTableFilters;\n sorting?: PTableSorting[];\n primaryJoinType?: \"inner\" | \"full\";\n\n labelsOptions?: DeriveLabelsOptions;\n displayOptions?: ColumnsDisplayOptions;\n};\n\n/** Structured source config — selectors/anchors instead of raw ColumnsSource. */\nexport type ColumnsSelectorConfig = {\n include?: MultiColumnSelector | MultiColumnSelector[];\n exclude?: MultiColumnSelector | MultiColumnSelector[];\n mode?: MatchingMode;\n maxHops?: number;\n};\n\nexport type ColumnsDisplayOptions = {\n /** Column ordering rules. Higher priority = further left. First matching rule wins. */\n ordering?: ColumnOrderRule[];\n /** Column visibility rules. First matching rule wins. Unmatched columns use default visibility. */\n visibility?: ColumnVisibilityRule[];\n};\n\nexport type ColumnOrderRule = {\n match: ColumnSelector;\n /** Higher number = further left in table */\n priority: number;\n};\n\nexport type ColumnVisibilityRule = {\n match: ColumnSelector;\n visibility: \"default\" | \"optional\" | \"hidden\";\n};\n\nexport function createPlDataTableV3<A, U>(\n ctx: RenderCtxBase<A, U>,\n options: createPlDataTableOptionsV3,\n): PlDataTableModel | undefined {\n const state = upgradePlDataTableStateV2(options.tableState);\n const primaryJoinType = options.primaryJoinType ?? \"full\";\n\n const resolved = resolveInputColumns(ctx, options);\n if (resolved === undefined) return undefined;\n const { primary, secondary } = resolved;\n if (primary.length === 0) return undefined;\n\n const { direct, linked } = splitByTopology(secondary);\n\n const allColumns = [...primary, ...secondary];\n const derivedLabels = deriveAllLabels({\n // Skip hidden columns when deriving labels — they don't appear in the\n // table, so they shouldn't influence label disambiguation (#1623).\n columns: allColumns.filter((c) => !isColumnHidden(c.getSpec())).map(toLabelableColumn),\n deriveLabelsOptions: {\n includeNativeLabel: true,\n ...options.labelsOptions,\n },\n });\n\n // Rule-based visibility/order maps (keyed by bare PObjectId). Computed once\n // here: `computeHiddenColumns` needs visibility to decide the visible set,\n // and `buildColumnsMeta` (below, once the visible set is known) reuses both.\n const allColumnsForRules = [...primary, ...direct, ...linked, ...collectLinkerSnapshots(linked)];\n const visibilityByColId = evaluateRules(\n options.displayOptions?.visibility ?? [],\n allColumnsForRules,\n );\n const orderByColId = evaluateRules(options.displayOptions?.ordering ?? [], allColumnsForRules);\n\n const resolver = createColumnResolver([\n ...primary,\n ...direct,\n ...linked.flatMap((lc) => [...collectLinkerColumns(lc), lc]),\n ]);\n\n const remapedDefaultFilters = remapFilterColumnIds(options.filters, resolver);\n const filters = filterFilters(\n concatFilters(\n state.pTableParams.filters,\n state.pTableParams.defaultFilters ?? remapedDefaultFilters,\n ),\n resolver,\n );\n\n const sorting = filterSorting(\n resolveSorting(state.pTableParams.sorting, remapSortingColumnIds(options.sorting, resolver)),\n resolver,\n );\n\n const fullDef = createPTableDefV3({\n primaryJoinType,\n primary,\n secondary: [...direct, ...linked],\n filters,\n sorting,\n });\n\n const fullHandle = ctx.createPTableV2(fullDef);\n // TODO: is workaround for dropdown suggestions.\n // Pframe have not equivalent data for columns relativly to Ptable.\n // PFrame is the physical column registry — one entry per bare PObjectId,\n // so strip the rich recipe ids down to their physical leaf id and dedupe:\n // multiple discovered variants of the same hit collapse to the same bare id.\n const pframeHandle = ctx.createPFrame(\n uniq([\n ...primary.map((v) => extractPObjectId(v.id)),\n ...direct.map((v) => extractPObjectId(v.id)),\n ...linked.map((v) => extractPObjectId(v.id)),\n ]),\n );\n\n const hiddenSpecs = state.pTableParams.hiddenColIds;\n const hiddenColumnIds = computeHiddenColumns({\n columns: [...primary, ...direct, ...linked],\n visibilityByColId,\n sorting,\n filters,\n hiddenSpecs,\n });\n\n const visible = {\n primary,\n direct: direct.filter((c) => !hiddenColumnIds.has(c.id)),\n linked: linked.filter((c) => !hiddenColumnIds.has(c.id)),\n };\n const visibleDef = createPTableDefV3({\n primaryJoinType,\n primary,\n secondary: [...visible.direct, ...visible.linked],\n filters,\n sorting,\n });\n const visibleHandle = ctx.createPTableV2(visibleDef);\n\n // Built here, where the visible set is known: per-column data status is\n // computed for visible columns only (the probe is meaningful only for what\n // the user sees), while label/visibility/order/axes cover all columns.\n const columnsMeta = buildColumnsMeta({\n fullColumns: [...primary, ...direct, ...linked],\n visibleColumns: [...visible.primary, ...visible.direct, ...visible.linked],\n primaryColumns: primary,\n derivedLabels,\n visibilityByColId,\n orderByColId,\n });\n\n return {\n sourceId: state.pTableParams.sourceId,\n fullTableHandle: fullHandle,\n fullPframeHandle: pframeHandle,\n visibleTableHandle: visibleHandle,\n defaultFilters: remapedDefaultFilters,\n columnsMeta,\n } satisfies PlDataTableModel;\n}\n\ntype ResolvedColumns = {\n readonly primary: ColumnRecipe[];\n readonly secondary: ColumnRecipe[];\n};\n\n/** Normalize either option branch into a {primary, secondary} pair of recipes. */\nfunction resolveInputColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n options: createPlDataTableOptionsV3,\n): undefined | ResolvedColumns {\n if (\"primaryColumns\" in options) {\n const primary = options.primaryColumns;\n const secondary = options.columns ?? [];\n const labels = discoverLabelColumns(ctx, primary);\n // Exclude from secondary anything already present in primary: a label\n // column the block hands in as primary can be re-discovered here as a\n // label for that same axis, landing in the table twice with the same id.\n const primaryIds = new Set(primary.map((c) => c.id));\n return {\n primary,\n secondary: dedupColumns(\n [...secondary, ...labels].filter((c) => !primaryIds.has(c.id)),\n (c) => c.id,\n (c) => c.getSpec(),\n ),\n };\n }\n\n if (isPlainObject(options.columns)) {\n return discoverTableColumns(ctx, options.columns);\n }\n\n return undefined;\n}\n\n/** Split secondary recipes by query topology: leaves (no linker chain) vs joined. */\nfunction splitByTopology(columns: ColumnRecipe[]): {\n direct: ColumnRecipe[];\n linked: ColumnRecipe[];\n} {\n const direct: ColumnRecipe[] = [];\n const linked: ColumnRecipe[] = [];\n for (const c of columns) {\n if (hasSingleDataColumn(c)) direct.push(c);\n else linked.push(c);\n }\n return { direct, linked };\n}\n\n/** All linker recipes across the given linked columns, deduped by id. */\nfunction collectLinkerSnapshots(linked: ColumnRecipe[]): ColumnRecipe[] {\n return uniqueBy(\n linked.flatMap((c) => collectLinkerColumns(c)),\n (c) => c.id,\n );\n}\n\nfunction toLabelableColumn(col: ColumnRecipe) {\n return {\n id: col.id,\n spec: col.getSpec(),\n linkerPath: collectLinkerColumns(col).map((linker) => ({\n linker: { spec: linker.getSpec() },\n })),\n qualifications: {\n forHit: [...hitQualifications(col)],\n forQueries: queriesQualifications(col),\n },\n };\n}\n\n/**\n * Compute display metadata as a sidecar keyed by each emitted column's\n * `ColumnUniversalId` (and axis `AxisId`), instead of baking it into the specs\n * via `withSpecs`. Spec overrides change a recipe's id, so the same physical\n * column reached two ways would diverge into two ids and render twice; keeping\n * meta out of the spec preserves identity and lets dedup collapse such cases.\n * The UI overlays this onto the engine-emitted specs at render time.\n */\nfunction buildColumnsMeta(params: {\n /** Every column in the table (primary + secondary) — drives `columns` and `axes`. */\n fullColumns: ColumnRecipe[];\n /** The visible subset — `status` is probed for these only. */\n visibleColumns: ColumnRecipe[];\n /** The primary join columns — their axes are the visible index; all other axes are hidden. */\n primaryColumns: ColumnRecipe[];\n derivedLabels: Record<string, string>;\n visibilityByColId: Map<PObjectId, ColumnVisibilityRule>;\n orderByColId: Map<PObjectId, ColumnOrderRule>;\n}): PlDataTableColumnsMeta {\n const { fullColumns, visibleColumns, primaryColumns, derivedLabels } = params;\n const { visibilityByColId, orderByColId } = params;\n // Status only for visible columns — the probe is meaningful only for what the\n // user actually sees; non-visible columns get no `status`.\n const visibleStatus = buildDataStatusMap(visibleColumns);\n\n const columns = fullColumns.reduce<PlDataTableColumnsMeta[\"columns\"]>((acc, c) => {\n const rc = toRuleColumn(c);\n acc[c.id] = {\n label: derivedLabels[c.id],\n visibility: getEffectiveVisibility(rc, visibilityByColId),\n order: getOrderPriority(rc, orderByColId),\n status: visibleStatus[c.id],\n };\n return acc;\n }, {});\n\n // Only primary columns declare the table's visible axes. Any axis introduced\n // solely by a secondary column (a linker-bridge axis, or a distinct-domain\n // copy) is flagged hidden — otherwise it renders as a second index axis.\n const primaryAxisKeys = new Set(\n primaryColumns.flatMap((c) => c.getSpec().axesSpec.map((a) => canonicalizeAxisId(a))),\n );\n const axes = fullColumns.reduce<PlDataTableColumnsMeta[\"axes\"]>(\n (acc, c) =>\n c.getSpec().axesSpec.reduce((inner, ax) => {\n const key = canonicalizeAxisId(ax);\n if (inner[key] === undefined) inner[key] = { hidden: !primaryAxisKeys.has(key) };\n return inner;\n }, acc),\n {},\n );\n\n return { columns, axes };\n}\n\n/** Drop filter leaves whose column references cannot be resolved; rewrite the\n * resolvable ones through the resolver. Prune empty and/or/not groups. */\nfunction filterFilters(\n filters: Nil | PlDataTableFilters,\n resolver: ColumnResolver,\n): Nil | PlDataTableFilters {\n if (isNil(filters)) return filters;\n\n const rewriteLeaf = (leaf: PlDataTableFilterSpecLeaf): Nil | PlDataTableFilterSpecLeaf => {\n if (leaf.type === undefined) return leaf;\n const result = { ...leaf };\n if (\"column\" in result) {\n const c = resolver(result.column);\n if (isNil(c)) return undefined;\n result.column = c;\n }\n if (\"rhs\" in result) {\n const c = resolver(result.rhs);\n if (isNil(c)) return undefined;\n result.rhs = c;\n }\n return result;\n };\n\n const prune = (node: PlDataTableFilterNode): Nil | PlDataTableFilterNode => {\n if (node.type === \"and\" || node.type === \"or\") {\n const kept = node.filters\n .map((f) => prune(f))\n .filter((f): f is PlDataTableFilterNode => !isNil(f));\n if (kept.length === 0) return undefined;\n return { type: node.type, filters: kept };\n }\n if (node.type === \"not\") {\n const inner = prune(node.filter);\n return isNil(inner) ? undefined : { type: \"not\", filter: inner };\n }\n return rewriteLeaf(node);\n };\n\n return prune(filters) as Nil | PlDataTableFilters;\n}\n\n/** Merge two filter trees into one AND-combined tree. Returns the non-nil one if the other is nil.\n * Exported for unit testing. */\nexport function concatFilters(\n a: Nil | PlDataTableFilters,\n b: Nil | PlDataTableFilters,\n): Nil | PlDataTableFilters {\n if (isNil(a)) return b;\n if (isNil(b)) return a;\n const operands = (f: PlDataTableFilters): PlDataTableFilterNode[] =>\n f.type === \"and\" ? f.filters : [f as PlDataTableFilterNode];\n return { type: \"and\", filters: [...operands(a), ...operands(b)] };\n}\n\n/** Pick user sorting from state if set, otherwise fall back to options default.\n * null = user has not touched sorting → use default;\n * [] = user has explicitly cleared sorting → no sorting (default ignored). */\nfunction resolveSorting(\n userSorting: Nil | PTableSorting[],\n defaultSorting: Nil | PTableSorting[],\n): PTableSorting[] {\n return (isNil(userSorting) ? defaultSorting : userSorting) ?? [];\n}\n\n/** Rewrite sorting entries through the resolver; drop those that fail to resolve. */\nfunction filterSorting(sorting: PTableSorting[], resolver: ColumnResolver): PTableSorting[] {\n return sorting.flatMap((s) => {\n const col = resolver(s.column);\n return isNil(col) ? [] : [{ ...s, column: col }];\n });\n}\n\n/** Determine which columns should be hidden based on state or optional-column defaults.\n * Keyed by the recipe's logical {@link ColumnUniversalId} (rich) — variants of\n * the same physical column are independently visible/hidden. */\nfunction computeHiddenColumns(params: {\n columns: ColumnRecipe[];\n visibilityByColId: Map<PObjectId, ColumnVisibilityRule>;\n sorting: Nil | PTableSorting[];\n filters: Nil | PlDataTableFilters;\n hiddenSpecs: Nil | PTableColumnId[];\n}): Set<ColumnUniversalId> {\n const { columns, visibilityByColId, sorting, filters, hiddenSpecs } = params;\n const visibilityOf = (c: ColumnRecipe) =>\n getEffectiveVisibility(toRuleColumn(c), visibilityByColId);\n const alwaysHidden = columns.filter((c) => visibilityOf(c) === \"hidden\").map((c) => c.id);\n const optionalHidden = !isNil(hiddenSpecs)\n ? hiddenSpecs.filter((s): s is PTableColumnIdColumn => s.type === \"column\").map((s) => s.id)\n : columns.filter((c) => visibilityOf(c) === \"optional\").map((c) => c.id);\n const initial = [...alwaysHidden, ...optionalHidden];\n const preserved = collectPreservedColumnIds(sorting, filters);\n\n return new Set(initial.filter((id) => !preserved.has(id)));\n}\n\n/** Collect IDs of columns that must remain visible (sorted, filtered). */\nfunction collectPreservedColumnIds(\n sorting: Nil | PTableSorting[],\n filters: Nil | PlDataTableFilters,\n): Set<ColumnUniversalId> {\n const sortedIds = (sorting ?? [])\n .map((s) => s.column)\n .filter((c): c is PTableColumnIdColumn => c.type === \"column\")\n .map((c) => c.id);\n\n const filterIds = !isNil(filters)\n ? collectFilterSpecColumns(filters).flatMap((c) => (c.type === \"column\" ? [c.id] : []))\n : [];\n\n return new Set<ColumnUniversalId>([...sortedIds, ...filterIds]);\n}\n\n/** Remap column references in sorting entries through the resolver.\n * Unresolved entries are dropped with a warning (best-effort contract). */\nfunction remapSortingColumnIds(\n sorting: Nil | PTableSorting[],\n resolver: ColumnResolver,\n): Nil | PTableSorting[] {\n return sorting?.flatMap((s) => {\n const col = resolver(s.column);\n if (isNil(col)) {\n console.warn(\n `Sorting column ${JSON.stringify(s.column)} does not match any discovered column — dropped.`,\n );\n return [];\n }\n return [{ ...s, column: col }];\n });\n}\n\ntype PlDataTableFilterNode = FilterSpecNode<PlDataTableFilterSpecLeaf>;\n\n/** Remap column references in a filter tree through the resolver.\n * Unresolved leaves are dropped with a warning; empty groups are pruned. */\nfunction remapFilterColumnIds(\n filters: Nil | PlDataTableFilters,\n resolver: ColumnResolver,\n): Nil | PlDataTableFilters {\n if (isNil(filters)) return filters;\n\n const mapLeaf = (leaf: PlDataTableFilterSpecLeaf): Nil | PlDataTableFilterSpecLeaf => {\n if (leaf.type === undefined) return leaf;\n const result = { ...leaf };\n if (\"column\" in result) {\n const c = resolver(result.column);\n if (isNil(c)) {\n console.warn(\n `Filter column ${JSON.stringify(result.column)} does not match any discovered column — dropped.`,\n );\n return undefined;\n }\n result.column = c;\n }\n if (\"rhs\" in result) {\n const c = resolver(result.rhs);\n if (isNil(c)) {\n console.warn(\n `Filter rhs ${JSON.stringify(result.rhs)} does not match any discovered column — dropped.`,\n );\n return undefined;\n }\n result.rhs = c;\n }\n return result;\n };\n\n const prune = (node: PlDataTableFilterNode): Nil | PlDataTableFilterNode => {\n if (node.type === \"and\" || node.type === \"or\") {\n const kept = node.filters\n .map((f) => prune(f))\n .filter((f): f is PlDataTableFilterNode => !isNil(f));\n if (kept.length === 0) return undefined;\n return { type: node.type, filters: kept };\n }\n if (node.type === \"not\") {\n const inner = prune(node.filter);\n return isNil(inner) ? undefined : { type: \"not\", filter: inner };\n }\n return mapLeaf(node);\n };\n\n return prune(filters) as Nil | PlDataTableFilters;\n}\n"],"mappings":";;;;;;;;;;;;AAmGA,SAAgB,oBACd,KACA,SAC8B;CAC9B,MAAM,QAAQ,0BAA0B,QAAQ,UAAU;CAC1D,MAAM,kBAAkB,QAAQ,mBAAmB;CAEnD,MAAM,WAAW,oBAAoB,KAAK,OAAO;CACjD,IAAI,aAAa,KAAA,GAAW,OAAO,KAAA;CACnC,MAAM,EAAE,SAAS,cAAc;CAC/B,IAAI,QAAQ,WAAW,GAAG,OAAO,KAAA;CAEjC,MAAM,EAAE,QAAQ,WAAW,gBAAgB,SAAS;CAGpD,MAAM,gBAAgB,gBAAgB;EAGpC,SAAS,CAJS,GAAG,SAAS,GAAG,SAIf,CAAC,CAAC,QAAQ,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB;EACrF,qBAAqB;GACnB,oBAAoB;GACpB,GAAG,QAAQ;EACb;CACF,CAAC;CAKD,MAAM,qBAAqB;EAAC,GAAG;EAAS,GAAG;EAAQ,GAAG;EAAQ,GAAG,uBAAuB,MAAM;CAAC;CAC/F,MAAM,oBAAoB,cACxB,QAAQ,gBAAgB,cAAc,CAAC,GACvC,kBACF;CACA,MAAM,eAAe,cAAc,QAAQ,gBAAgB,YAAY,CAAC,GAAG,kBAAkB;CAE7F,MAAM,WAAW,qBAAqB;EACpC,GAAG;EACH,GAAG;EACH,GAAG,OAAO,SAAS,OAAO,CAAC,GAAG,qBAAqB,EAAE,GAAG,EAAE,CAAC;CAC7D,CAAC;CAED,MAAM,wBAAwB,qBAAqB,QAAQ,SAAS,QAAQ;CAC5E,MAAM,UAAU,cACd,cACE,MAAM,aAAa,SACnB,MAAM,aAAa,kBAAkB,qBACvC,GACA,QACF;CAEA,MAAM,UAAU,cACd,eAAe,MAAM,aAAa,SAAS,sBAAsB,QAAQ,SAAS,QAAQ,CAAC,GAC3F,QACF;CAEA,MAAM,UAAU,kBAAkB;EAChC;EACA;EACA,WAAW,CAAC,GAAG,QAAQ,GAAG,MAAM;EAChC;EACA;CACF,CAAC;CAED,MAAM,aAAa,IAAI,eAAe,OAAO;CAM7C,MAAM,eAAe,IAAI,aACvB,KAAK;EACH,GAAG,QAAQ,KAAK,MAAM,iBAAiB,EAAE,EAAE,CAAC;EAC5C,GAAG,OAAO,KAAK,MAAM,iBAAiB,EAAE,EAAE,CAAC;EAC3C,GAAG,OAAO,KAAK,MAAM,iBAAiB,EAAE,EAAE,CAAC;CAC7C,CAAC,CACH;CAEA,MAAM,cAAc,MAAM,aAAa;CACvC,MAAM,kBAAkB,qBAAqB;EAC3C,SAAS;GAAC,GAAG;GAAS,GAAG;GAAQ,GAAG;EAAM;EAC1C;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,UAAU;EACd;EACA,QAAQ,OAAO,QAAQ,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;EACvD,QAAQ,OAAO,QAAQ,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;CACzD;CACA,MAAM,aAAa,kBAAkB;EACnC;EACA;EACA,WAAW,CAAC,GAAG,QAAQ,QAAQ,GAAG,QAAQ,MAAM;EAChD;EACA;CACF,CAAC;CACD,MAAM,gBAAgB,IAAI,eAAe,UAAU;CAKnD,MAAM,cAAc,iBAAiB;EACnC,aAAa;GAAC,GAAG;GAAS,GAAG;GAAQ,GAAG;EAAM;EAC9C,gBAAgB;GAAC,GAAG,QAAQ;GAAS,GAAG,QAAQ;GAAQ,GAAG,QAAQ;EAAM;EACzE,gBAAgB;EAChB;EACA;EACA;CACF,CAAC;CAED,OAAO;EACL,UAAU,MAAM,aAAa;EAC7B,iBAAiB;EACjB,kBAAkB;EAClB,oBAAoB;EACpB,gBAAgB;EAChB;CACF;AACF;;AAQA,SAAS,oBACP,KACA,SAC6B;CAC7B,IAAI,oBAAoB,SAAS;EAC/B,MAAM,UAAU,QAAQ;EACxB,MAAM,YAAY,QAAQ,WAAW,CAAC;EACtC,MAAM,SAAS,qBAAqB,KAAK,OAAO;EAIhD,MAAM,aAAa,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,EAAE,CAAC;EACnD,OAAO;GACL;GACA,WAAW,aACT,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,IAC5D,MAAM,EAAE,KACR,MAAM,EAAE,QAAQ,CACnB;EACF;CACF;CAEA,IAAI,cAAc,QAAQ,OAAO,GAC/B,OAAO,qBAAqB,KAAK,QAAQ,OAAO;AAIpD;;AAGA,SAAS,gBAAgB,SAGvB;CACA,MAAM,SAAyB,CAAC;CAChC,MAAM,SAAyB,CAAC;CAChC,KAAK,MAAM,KAAK,SACd,IAAI,oBAAoB,CAAC,GAAG,OAAO,KAAK,CAAC;MACpC,OAAO,KAAK,CAAC;CAEpB,OAAO;EAAE;EAAQ;CAAO;AAC1B;;AAGA,SAAS,uBAAuB,QAAwC;CACtE,OAAO,SACL,OAAO,SAAS,MAAM,qBAAqB,CAAC,CAAC,IAC5C,MAAM,EAAE,EACX;AACF;AAEA,SAAS,kBAAkB,KAAmB;CAC5C,OAAO;EACL,IAAI,IAAI;EACR,MAAM,IAAI,QAAQ;EAClB,YAAY,qBAAqB,GAAG,CAAC,CAAC,KAAK,YAAY,EACrD,QAAQ,EAAE,MAAM,OAAO,QAAQ,EAAE,EACnC,EAAE;EACF,gBAAgB;GACd,QAAQ,CAAC,GAAG,kBAAkB,GAAG,CAAC;GAClC,YAAY,sBAAsB,GAAG;EACvC;CACF;AACF;;;;;;;;;AAUA,SAAS,iBAAiB,QAUC;CACzB,MAAM,EAAE,aAAa,gBAAgB,gBAAgB,kBAAkB;CACvE,MAAM,EAAE,mBAAmB,iBAAiB;CAG5C,MAAM,gBAAgB,mBAAmB,cAAc;CAEvD,MAAM,UAAU,YAAY,QAA2C,KAAK,MAAM;EAChF,MAAM,KAAK,aAAa,CAAC;EACzB,IAAI,EAAE,MAAM;GACV,OAAO,cAAc,EAAE;GACvB,YAAY,uBAAuB,IAAI,iBAAiB;GACxD,OAAO,iBAAiB,IAAI,YAAY;GACxC,QAAQ,cAAc,EAAE;EAC1B;EACA,OAAO;CACT,GAAG,CAAC,CAAC;CAKL,MAAM,kBAAkB,IAAI,IAC1B,eAAe,SAAS,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,KAAK,MAAM,mBAAmB,CAAC,CAAC,CAAC,CACtF;CAWA,OAAO;EAAE;EAAS,MAVL,YAAY,QACtB,KAAK,MACJ,EAAE,QAAQ,CAAC,CAAC,SAAS,QAAQ,OAAO,OAAO;GACzC,MAAM,MAAM,mBAAmB,EAAE;GACjC,IAAI,MAAM,SAAS,KAAA,GAAW,MAAM,OAAO,EAAE,QAAQ,CAAC,gBAAgB,IAAI,GAAG,EAAE;GAC/E,OAAO;EACT,GAAG,GAAG,GACR,CAAC,CAGkB;CAAE;AACzB;;;AAIA,SAAS,cACP,SACA,UAC0B;CAC1B,IAAI,MAAM,OAAO,GAAG,OAAO;CAE3B,MAAM,eAAe,SAAqE;EACxF,IAAI,KAAK,SAAS,KAAA,GAAW,OAAO;EACpC,MAAM,SAAS,EAAE,GAAG,KAAK;EACzB,IAAI,YAAY,QAAQ;GACtB,MAAM,IAAI,SAAS,OAAO,MAAM;GAChC,IAAI,MAAM,CAAC,GAAG,OAAO,KAAA;GACrB,OAAO,SAAS;EAClB;EACA,IAAI,SAAS,QAAQ;GACnB,MAAM,IAAI,SAAS,OAAO,GAAG;GAC7B,IAAI,MAAM,CAAC,GAAG,OAAO,KAAA;GACrB,OAAO,MAAM;EACf;EACA,OAAO;CACT;CAEA,MAAM,SAAS,SAA6D;EAC1E,IAAI,KAAK,SAAS,SAAS,KAAK,SAAS,MAAM;GAC7C,MAAM,OAAO,KAAK,QACf,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,CACpB,QAAQ,MAAkC,CAAC,MAAM,CAAC,CAAC;GACtD,IAAI,KAAK,WAAW,GAAG,OAAO,KAAA;GAC9B,OAAO;IAAE,MAAM,KAAK;IAAM,SAAS;GAAK;EAC1C;EACA,IAAI,KAAK,SAAS,OAAO;GACvB,MAAM,QAAQ,MAAM,KAAK,MAAM;GAC/B,OAAO,MAAM,KAAK,IAAI,KAAA,IAAY;IAAE,MAAM;IAAO,QAAQ;GAAM;EACjE;EACA,OAAO,YAAY,IAAI;CACzB;CAEA,OAAO,MAAM,OAAO;AACtB;;;AAIA,SAAgB,cACd,GACA,GAC0B;CAC1B,IAAI,MAAM,CAAC,GAAG,OAAO;CACrB,IAAI,MAAM,CAAC,GAAG,OAAO;CACrB,MAAM,YAAY,MAChB,EAAE,SAAS,QAAQ,EAAE,UAAU,CAAC,CAA0B;CAC5D,OAAO;EAAE,MAAM;EAAO,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;CAAE;AAClE;;;;AAKA,SAAS,eACP,aACA,gBACiB;CACjB,QAAQ,MAAM,WAAW,IAAI,iBAAiB,gBAAgB,CAAC;AACjE;;AAGA,SAAS,cAAc,SAA0B,UAA2C;CAC1F,OAAO,QAAQ,SAAS,MAAM;EAC5B,MAAM,MAAM,SAAS,EAAE,MAAM;EAC7B,OAAO,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;GAAE,GAAG;GAAG,QAAQ;EAAI,CAAC;CACjD,CAAC;AACH;;;;AAKA,SAAS,qBAAqB,QAMH;CACzB,MAAM,EAAE,SAAS,mBAAmB,SAAS,SAAS,gBAAgB;CACtE,MAAM,gBAAgB,MACpB,uBAAuB,aAAa,CAAC,GAAG,iBAAiB;CAC3D,MAAM,eAAe,QAAQ,QAAQ,MAAM,aAAa,CAAC,MAAM,QAAQ,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE;CACxF,MAAM,iBAAiB,CAAC,MAAM,WAAW,IACrC,YAAY,QAAQ,MAAiC,EAAE,SAAS,QAAQ,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,IACzF,QAAQ,QAAQ,MAAM,aAAa,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE;CACzE,MAAM,UAAU,CAAC,GAAG,cAAc,GAAG,cAAc;CACnD,MAAM,YAAY,0BAA0B,SAAS,OAAO;CAE5D,OAAO,IAAI,IAAI,QAAQ,QAAQ,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAC3D;;AAGA,SAAS,0BACP,SACA,SACwB;CACxB,MAAM,aAAa,WAAW,CAAC,EAAA,CAC5B,KAAK,MAAM,EAAE,MAAM,CAAC,CACpB,QAAQ,MAAiC,EAAE,SAAS,QAAQ,CAAC,CAC7D,KAAK,MAAM,EAAE,EAAE;CAElB,MAAM,YAAY,CAAC,MAAM,OAAO,IAC5B,yBAAyB,OAAO,CAAC,CAAC,SAAS,MAAO,EAAE,SAAS,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAE,IACpF,CAAC;CAEL,uBAAO,IAAI,IAAuB,CAAC,GAAG,WAAW,GAAG,SAAS,CAAC;AAChE;;;AAIA,SAAS,sBACP,SACA,UACuB;CACvB,OAAO,SAAS,SAAS,MAAM;EAC7B,MAAM,MAAM,SAAS,EAAE,MAAM;EAC7B,IAAI,MAAM,GAAG,GAAG;GACd,QAAQ,KACN,kBAAkB,KAAK,UAAU,EAAE,MAAM,EAAE,iDAC7C;GACA,OAAO,CAAC;EACV;EACA,OAAO,CAAC;GAAE,GAAG;GAAG,QAAQ;EAAI,CAAC;CAC/B,CAAC;AACH;;;AAMA,SAAS,qBACP,SACA,UAC0B;CAC1B,IAAI,MAAM,OAAO,GAAG,OAAO;CAE3B,MAAM,WAAW,SAAqE;EACpF,IAAI,KAAK,SAAS,KAAA,GAAW,OAAO;EACpC,MAAM,SAAS,EAAE,GAAG,KAAK;EACzB,IAAI,YAAY,QAAQ;GACtB,MAAM,IAAI,SAAS,OAAO,MAAM;GAChC,IAAI,MAAM,CAAC,GAAG;IACZ,QAAQ,KACN,iBAAiB,KAAK,UAAU,OAAO,MAAM,EAAE,iDACjD;IACA;GACF;GACA,OAAO,SAAS;EAClB;EACA,IAAI,SAAS,QAAQ;GACnB,MAAM,IAAI,SAAS,OAAO,GAAG;GAC7B,IAAI,MAAM,CAAC,GAAG;IACZ,QAAQ,KACN,cAAc,KAAK,UAAU,OAAO,GAAG,EAAE,iDAC3C;IACA;GACF;GACA,OAAO,MAAM;EACf;EACA,OAAO;CACT;CAEA,MAAM,SAAS,SAA6D;EAC1E,IAAI,KAAK,SAAS,SAAS,KAAK,SAAS,MAAM;GAC7C,MAAM,OAAO,KAAK,QACf,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,CACpB,QAAQ,MAAkC,CAAC,MAAM,CAAC,CAAC;GACtD,IAAI,KAAK,WAAW,GAAG,OAAO,KAAA;GAC9B,OAAO;IAAE,MAAM,KAAK;IAAM,SAAS;GAAK;EAC1C;EACA,IAAI,KAAK,SAAS,OAAO;GACvB,MAAM,QAAQ,MAAM,KAAK,MAAM;GAC/B,OAAO,MAAM,KAAK,IAAI,KAAA,IAAY;IAAE,MAAM;IAAO,QAAQ;GAAM;EACjE;EACA,OAAO,QAAQ,IAAI;CACrB;CAEA,OAAO,MAAM,OAAO;AACtB"}
@@ -1,17 +1,18 @@
1
1
  import { RenderCtxBase } from "../../../render/api.js";
2
+ import "../../../render/index.js";
2
3
  import { ColumnRecipe } from "../../../columns/column_recipes/index.js";
3
4
  import { ColumnsSource } from "../../../columns/column_providers/types.js";
5
+ import "../../../columns/index.js";
4
6
  import { ColumnsSelectorConfig } from "./createPlDataTableV3.js";
5
7
  import { PColumnSpec, PObjectId, PlRef, RelaxedColumnSelector } from "@milaboratories/pl-model-common";
6
-
7
8
  //#region src/components/PlDataTable/createPlDataTable/discoverColumns.d.ts
8
- type DiscoverTableColumnOptions = {
9
+ export type DiscoverTableColumnOptions = {
9
10
  sources?: ColumnsSource[];
10
11
  anchors: Record<string, PlRef | PObjectId | PColumnSpec | RelaxedColumnSelector>;
11
12
  selector: ColumnsSelectorConfig;
12
13
  };
13
14
  /** Split of discovered columns into anchor-matching (primary) and the rest. */
14
- type DiscoveredTableColumns = {
15
+ export type DiscoveredTableColumns = {
15
16
  readonly primary: ColumnRecipe[];
16
17
  readonly secondary: ColumnRecipe[];
17
18
  };
@@ -20,7 +21,6 @@ type DiscoveredTableColumns = {
20
21
  * (direct anchor hits — zero-hop, query is a bare column) and secondary
21
22
  * (reached via a linker chain, query carries a join).
22
23
  */
23
- declare function discoverTableColumns(ctx: RenderCtxBase, options: DiscoverTableColumnOptions): DiscoveredTableColumns;
24
+ export declare function discoverTableColumns(ctx: RenderCtxBase, options: DiscoverTableColumnOptions): DiscoveredTableColumns;
24
25
  //#endregion
25
- export { DiscoverTableColumnOptions, DiscoveredTableColumns, discoverTableColumns };
26
26
  //# sourceMappingURL=discoverColumns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoverColumns.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/discoverColumns.ts"],"mappings":";;;;;;;KAYY,0BAAA;EACV,OAAA,GAAU,aAAA;EACV,OAAA,EAAS,MAAA,SAAe,KAAA,GAAQ,SAAA,GAAY,WAAA,GAAc,qBAAA;EAC1D,QAAA,EAAU,qBAAA;AAAA;AAHZ;AAAA,KAOY,sBAAA;EAAA,SACD,OAAA,EAAS,YAAA;EAAA,SACT,SAAA,EAAW,YAAY;AAAA;;;;;;iBAQlB,oBAAA,CACd,GAAA,EAAK,aAAA,EACL,OAAA,EAAS,0BAAA,GACR,sBAAA"}
1
+ {"version":3,"file":"discoverColumns.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/discoverColumns.ts"],"mappings":";;;;;;;;YAYY;EACV,UAAU;EACV,SAAS,eAAe,QAAQ,YAAY,cAAc;EAC1D,UAAU;;;YAIA;WACD,SAAS;WACT,WAAW;;;;;;;wBAQN,qBACd,KAAK,eACL,SAAS,6BACR"}
@@ -1,15 +1,15 @@
1
1
  import { RenderCtxBase } from "../../../render/api.js";
2
+ import "../../../render/index.js";
2
3
  import { createPlDataTableOptionsV2, createPlDataTableV2 } from "./createPlDataTableV2.js";
3
4
  import { discoverTableColumns } from "./discoverColumns.js";
4
5
  import { createPlDataTableOptionsV3, createPlDataTableV3 } from "./createPlDataTableV3.js";
5
-
6
6
  //#region src/components/PlDataTable/createPlDataTable/index.d.ts
7
- declare function createPlDataTable<A, U>(ctx: RenderCtxBase<A, U>, options: {
7
+ export declare function createPlDataTable<A, U>(ctx: RenderCtxBase<A, U>, options: {
8
8
  version: "v2";
9
9
  } & createPlDataTableOptionsV2): ReturnType<typeof createPlDataTableV2>;
10
- declare function createPlDataTable<A, U>(ctx: RenderCtxBase<A, U>, options: {
10
+ export declare function createPlDataTable<A, U>(ctx: RenderCtxBase<A, U>, options: {
11
11
  version?: "v3";
12
12
  } & createPlDataTableOptionsV3): ReturnType<typeof createPlDataTableV3>;
13
13
  //#endregion
14
- export { createPlDataTable, discoverTableColumns as discoverTableColumnSnaphots };
14
+ export { discoverTableColumns as discoverTableColumnSnaphots };
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/index.ts"],"mappings":";;;;;;iBAMgB,iBAAA,OACd,GAAA,EAAK,aAAA,CAAc,CAAA,EAAG,CAAA,GACtB,OAAA;EAAW,OAAA;AAAA,IAAkB,0BAAA,GAC5B,UAAA,QAAkB,mBAAA;AAAA,iBACL,iBAAA,OACd,GAAA,EAAK,aAAA,CAAc,CAAA,EAAG,CAAA,GACtB,OAAA;EAAW,OAAA;AAAA,IAAmB,0BAAA,GAC7B,UAAA,QAAkB,mBAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/index.ts"],"mappings":";;;;;;wBAMgB,kBAAkB,GAAG,GACnC,KAAK,cAAc,GAAG,IACtB;EAAW;IAAkB,6BAC5B,kBAAkB;wBACL,kBAAkB,GAAG,GACnC,KAAK,cAAc,GAAG,IACtB;EAAW;IAAmB,6BAC7B,kBAAkB"}
@@ -1,21 +1,22 @@
1
+ import "../../../render/internal.js";
2
+ import "../../../labels/derive_distinct_labels.js";
3
+ import "../../../columns/index.js";
1
4
  import { ColumnOrderRule, ColumnVisibilityRule } from "./createPlDataTableV3.js";
2
5
  import { Annotation, AnnotationDataStatus, ColumnSelector, ColumnUniversalId, MatchQualifications, PColumn, PColumnSpec, PObjectId } from "@milaboratories/pl-model-common";
3
-
4
6
  //#region src/components/PlDataTable/createPlDataTable/utils.d.ts
5
7
  /** Check if column should be omitted from the table */
6
- declare function isColumnHidden(spec: {
8
+ export declare function isColumnHidden(spec: {
7
9
  annotations?: Annotation;
8
10
  }): boolean;
9
11
  /** Check if column is hidden by default */
10
- declare function isColumnOptional(spec: {
12
+ export declare function isColumnOptional(spec: {
11
13
  annotations?: Annotation;
12
14
  }): boolean;
13
15
  /** Column shape consumed by rule evaluation. */
14
- type RuleColumn = Pick<PColumn<PObjectId>, "id" | "spec">;
16
+ export type RuleColumn = Pick<PColumn<PObjectId>, "id" | "spec">;
15
17
  /** Get effective visibility for a column. Rule map lookup first, then annotation fallback. */
16
- declare function getEffectiveVisibility(col: RuleColumn, visibilityByColId?: Map<PObjectId, ColumnVisibilityRule>): undefined | "default" | "optional" | "hidden";
18
+ export declare function getEffectiveVisibility(col: RuleColumn, visibilityByColId?: Map<PObjectId, ColumnVisibilityRule>): undefined | "default" | "optional" | "hidden";
17
19
  /** Get ordering priority for a column. Rule map lookup first, then annotation fallback. */
18
- declare function getOrderPriority(col: RuleColumn, orderByColId?: Map<PObjectId, ColumnOrderRule>): undefined | number;
20
+ export declare function getOrderPriority(col: RuleColumn, orderByColId?: Map<PObjectId, ColumnOrderRule>): undefined | number;
19
21
  //#endregion
20
- export { RuleColumn, getEffectiveVisibility, getOrderPriority, isColumnHidden, isColumnOptional };
21
22
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/utils.ts"],"mappings":";;;;;iBA+BgB,cAAA,CAAe,IAAA;EAAQ,WAAA,GAAc,UAAU;AAAA;;iBAK/C,gBAAA,CAAiB,IAAA;EAAQ,WAAA,GAAc,UAAU;AAAA;AAAjE;AAAA,KAKY,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,SAAA;;iBAGtB,sBAAA,CACd,GAAA,EAAK,UAAA,EACL,iBAAA,GAAoB,GAAA,CAAI,SAAA,EAAW,oBAAA;;iBAUrB,gBAAA,CACd,GAAA,EAAK,UAAA,EACL,YAAA,GAAe,GAAA,CAAI,SAAA,EAAW,eAAA"}
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../../src/components/PlDataTable/createPlDataTable/utils.ts"],"mappings":";;;;;;;wBA+BgB,eAAe;EAAQ,cAAc;;;wBAKrC,iBAAiB;EAAQ,cAAc;;;YAK3C,aAAa,KAAK,QAAQ;;wBAGtB,uBACd,KAAK,YACL,oBAAoB,IAAI,WAAW;;wBAUrB,iBACd,KAAK,YACL,eAAe,IAAI,WAAW"}
@@ -1,10 +1,9 @@
1
1
  import { RenderCtxBase } from "../../render/api.js";
2
+ import "../../render/index.js";
2
3
  import { PlDataTableSheet } from "./typesV8.js";
3
4
  import { AxisSpec } from "@milaboratories/pl-model-common";
4
-
5
5
  //#region src/components/PlDataTable/createPlDataTableSheet.d.ts
6
6
  /** Create sheet entries for PlDataTable */
7
- declare function createPlDataTableSheet<A, U>(ctx: RenderCtxBase<A, U>, axis: AxisSpec, values: (string | number)[]): PlDataTableSheet;
7
+ export declare function createPlDataTableSheet<A, U>(ctx: RenderCtxBase<A, U>, axis: AxisSpec, values: (string | number)[]): PlDataTableSheet;
8
8
  //#endregion
9
- export { createPlDataTableSheet };
10
9
  //# sourceMappingURL=createPlDataTableSheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPlDataTableSheet.d.ts","names":[],"sources":["../../../src/components/PlDataTable/createPlDataTableSheet.ts"],"mappings":";;;;;;iBAKgB,sBAAA,OACd,GAAA,EAAK,aAAA,CAAc,CAAA,EAAG,CAAA,GACtB,IAAA,EAAM,QAAA,EACN,MAAA,wBACC,gBAAA"}
1
+ {"version":3,"file":"createPlDataTableSheet.d.ts","names":[],"sources":["../../../src/components/PlDataTable/createPlDataTableSheet.ts"],"mappings":";;;;;;wBAKgB,uBAAuB,GAAG,GACxC,KAAK,cAAc,GAAG,IACtB,MAAM,UACN,8BACC"}
@@ -4,12 +4,11 @@ import { PTableParamsV2 as PTableParamsV2$1, PlDataTableFiltersWithMeta, PlDataT
4
4
  import { PlDataTableGridStateV6, PlDataTableStateV2V6 } from "./typesV6.js";
5
5
  import { PlDataTableGridStateV5 } from "./typesV5.js";
6
6
  import { AxisId, CanonicalizedJson, PObjectId, PTableColumnSpec, PTableRecordFilter, PTableSorting } from "@milaboratories/pl-model-common";
7
-
8
7
  //#region src/components/PlDataTable/state-migration.d.ts
9
8
  /**
10
9
  * PlDataTableV2 persisted state
11
10
  */
12
- type PlDataTableStateV2 = {
11
+ export type PlDataTableStateV2 = {
13
12
  gridState: {
14
13
  columnOrder?: {
15
14
  orderedColIds: CanonicalizedJson<PTableColumnSpec>[];
@@ -84,7 +83,8 @@ type PlDataTableStateV2 = {
84
83
  gridState: PlDataTableGridStateV6;
85
84
  sheetsState: PlDataTableSheetState[];
86
85
  filtersState: PlDataTableFilterState[];
87
- }[]; /** Old format; only fields used in migration are typed */
86
+ }[];
87
+ /** Old format; only fields used in migration are typed */
88
88
  pTableParams: {
89
89
  sourceId: string | null;
90
90
  hiddenColIds: PObjectId[] | null;
@@ -103,9 +103,8 @@ type PlDataTableStateV2 = {
103
103
  pTableParams: PTableParamsV2$1;
104
104
  } | PlDataTableStateV2V6 | PlDataTableStateV2Normalized$1 | PlDataTableStateV2Normalized;
105
105
  /** Upgrade PlDataTableStateV2 to the latest version */
106
- declare function upgradePlDataTableStateV2(state: PlDataTableStateV2 | undefined): PlDataTableStateV2Normalized;
107
- declare function createDefaultPTableParams(): PTableParamsV2;
108
- declare function createPlDataTableStateV2(): PlDataTableStateV2Normalized;
106
+ export declare function upgradePlDataTableStateV2(state: PlDataTableStateV2 | undefined): PlDataTableStateV2Normalized;
107
+ export declare function createDefaultPTableParams(): PTableParamsV2;
108
+ export declare function createPlDataTableStateV2(): PlDataTableStateV2Normalized;
109
109
  //#endregion
110
- export { PlDataTableStateV2, createDefaultPTableParams, createPlDataTableStateV2, upgradePlDataTableStateV2 };
111
110
  //# sourceMappingURL=state-migration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-migration.d.ts","names":[],"sources":["../../../src/components/PlDataTable/state-migration.ts"],"mappings":";;;;;;;;;;AAiDA;KAAY,kBAAA;EAIN,SAAA;IACE,WAAA;MACE,aAAA,EAAe,iBAAA,CAAkB,gBAAA;IAAA;IAEnC,IAAA;MACE,SAAA;QACE,KAAA,EAAO,iBAAA,CAAkB,gBAAA;QACzB,IAAA;MAAA;IAAA;IAGJ,gBAAA;MACE,YAAA,EAAc,iBAAA,CAAkB,gBAAA;IAAA;IAElC,QAAA;IACA,MAAA,GAAS,MAAA,CAAO,iBAAA,CAAkB,MAAA;EAAA;EAEpC,YAAA;IACE,OAAA,GAAU,aAAA;IACV,OAAA,GAAU,kBAAA;EAAA;AAAA;EAIZ,OAAA;EACA,UAAA;IACE,QAAA;IACA,SAAA;MACE,WAAA;QACE,aAAA,EAAe,iBAAA,CAAkB,gBAAA;MAAA;MAEnC,IAAA;QACE,SAAA;UACE,KAAA,EAAO,iBAAA,CAAkB,gBAAA;UACzB,IAAA;QAAA;MAAA;MAGJ,gBAAA;QACE,YAAA,EAAc,iBAAA,CAAkB,gBAAA;MAAA;IAAA;IAGpC,WAAA,EAAa,qBAAA;EAAA;EAEf,YAAA;IACE,YAAA,EAAc,SAAA;IACd,OAAA,EAAS,kBAAA;IACT,OAAA,EAAS,aAAA;EAAA;AAAA;EAIX,OAAA;EACA,UAAA;IACE,QAAA;IACA,SAAA;MACE,WAAA;QACE,aAAA,EAAe,iBAAA,CAAkB,gBAAA;MAAA;MAEnC,IAAA;QACE,SAAA;UACE,KAAA,EAAO,iBAAA,CAAkB,gBAAA;UACzB,IAAA;QAAA;MAAA;MAGJ,gBAAA;QACE,YAAA,EAAc,iBAAA,CAAkB,gBAAA;MAAA;IAAA;IAGpC,WAAA,EAAa,qBAAA;IACb,YAAA,EAAc,sBAAA;EAAA;EAEhB,YAAA,EAAc,gBAAA;AAAA;EAGd,OAAA;EACA,UAAA;IACE,QAAA;IACA,SAAA,EAAW,sBAAA;IACX,WAAA,EAAa,qBAAA;IACb,YAAA,EAAc,sBAAA;EAAA,KAlDZ;EAqDJ,YAAA;IACE,QAAA;IACA,YAAA,EAAc,SAAA;IACd,OAAA,EAAS,aAAA;EAAA;AAAA;EAKX,OAAA;EACA,UAAA;IACE,QAAA;IACA,SAAA,EAAW,sBAAA;IACX,WAAA,EAAa,qBAAA;IACb,YAAA,SAAqB,0BAAA;IACrB,mBAAA,SAA4B,0BAAA;IAC5B,YAAA;EAAA;EAEF,YAAA,EAAc,gBAAA;AAAA,IAIhB,oBAAA,GAGA,8BAAA,GAEA,4BAAA;;iBAGY,yBAAA,CACd,KAAA,EAAO,kBAAA,eACN,4BAA4B;AAAA,iBA+Qf,yBAAA,IAA6B,cAAc;AAAA,iBAU3C,wBAAA,IAA4B,4BAA4B"}
1
+ {"version":3,"file":"state-migration.d.ts","names":[],"sources":["../../../src/components/PlDataTable/state-migration.ts"],"mappings":";;;;;;;;;;YAiDY;EAIN;IACE;MACE,eAAe,kBAAkB;;IAEnC;MACE;QACE,OAAO,kBAAkB;QACzB;;;IAGJ;MACE,cAAc,kBAAkB;;IAElC;IACA,SAAS,OAAO,kBAAkB;;EAEpC;IACE,UAAU;IACV,UAAU;;;EAIZ;EACA;IACE;IACA;MACE;QACE,eAAe,kBAAkB;;MAEnC;QACE;UACE,OAAO,kBAAkB;UACzB;;;MAGJ;QACE,cAAc,kBAAkB;;;IAGpC,aAAa;;EAEf;IACE,cAAc;IACd,SAAS;IACT,SAAS;;;EAIX;EACA;IACE;IACA;MACE;QACE,eAAe,kBAAkB;;MAEnC;QACE;UACE,OAAO,kBAAkB;UACzB;;;MAGJ;QACE,cAAc,kBAAkB;;;IAGpC,aAAa;IACb,cAAc;;EAEhB,cAAc;;EAGd;EACA;IACE;IACA,WAAW;IACX,aAAa;IACb,cAAc;;;EAGhB;IACE;IACA,cAAc;IACd,SAAS;;;EAKX;EACA;IACE;IACA,WAAW;IACX,aAAa;IACb,qBAAqB;IACrB,4BAA4B;IAC5B;;EAEF,cAAc;IAIhB,uBAGA,iCAEA;;wBAGY,0BACd,OAAO,iCACN;wBA+Qa,6BAA6B;wBAU7B,4BAA4B"}
@@ -1,7 +1,6 @@
1
1
  import { PTableColumnId } from "@milaboratories/pl-model-common";
2
-
3
2
  //#region src/components/PlDataTable/typesV4.d.ts
4
- type PlDataTableFilterState = {
3
+ export type PlDataTableFilterState = {
5
4
  id: PTableColumnId;
6
5
  alphabetic: boolean;
7
6
  filter: null | {
@@ -10,88 +9,121 @@ type PlDataTableFilterState = {
10
9
  };
11
10
  };
12
11
  /** PlTableFilters filter entry */
13
- type PlTableFilterIsNotNA = {
14
- /** Predicate type */type: "isNotNA";
12
+ export type PlTableFilterIsNotNA = {
13
+ /** Predicate type */
14
+ type: "isNotNA";
15
15
  };
16
16
  /** PlTableFilters filter entry */
17
- type PlTableFilterIsNA = {
18
- /** Predicate type */type: "isNA";
17
+ export type PlTableFilterIsNA = {
18
+ /** Predicate type */
19
+ type: "isNA";
19
20
  };
20
21
  /** PlTableFilters filter entries applicable to both string and number values */
21
- type PlTableFilterCommon = PlTableFilterIsNotNA | PlTableFilterIsNA;
22
+ export type PlTableFilterCommon = PlTableFilterIsNotNA | PlTableFilterIsNA;
22
23
  /** PlTableFilters numeric filter entry */
23
- type PlTableFilterNumberEquals = {
24
- /** Predicate type */type: "number_equals"; /** Reference value */
24
+ export type PlTableFilterNumberEquals = {
25
+ /** Predicate type */
26
+ type: "number_equals";
27
+ /** Reference value */
25
28
  reference: number;
26
29
  };
27
30
  /** PlTableFilters numeric filter entry */
28
- type PlTableFilterNumberNotEquals = {
29
- /** Predicate type */type: "number_notEquals"; /** Reference value */
31
+ export type PlTableFilterNumberNotEquals = {
32
+ /** Predicate type */
33
+ type: "number_notEquals";
34
+ /** Reference value */
30
35
  reference: number;
31
36
  };
32
37
  /** PlTableFilters numeric filter entry */
33
- type PlTableFilterNumberGreaterThan = {
34
- /** Predicate type */type: "number_greaterThan"; /** Reference value */
38
+ export type PlTableFilterNumberGreaterThan = {
39
+ /** Predicate type */
40
+ type: "number_greaterThan";
41
+ /** Reference value */
35
42
  reference: number;
36
43
  };
37
44
  /** PlTableFilters numeric filter entry */
38
- type PlTableFilterNumberGreaterThanOrEqualTo = {
39
- /** Predicate type */type: "number_greaterThanOrEqualTo"; /** Reference value */
45
+ export type PlTableFilterNumberGreaterThanOrEqualTo = {
46
+ /** Predicate type */
47
+ type: "number_greaterThanOrEqualTo";
48
+ /** Reference value */
40
49
  reference: number;
41
50
  };
42
51
  /** PlTableFilters numeric filter entry */
43
- type PlTableFilterNumberLessThan = {
44
- /** Predicate type */type: "number_lessThan"; /** Reference value */
52
+ export type PlTableFilterNumberLessThan = {
53
+ /** Predicate type */
54
+ type: "number_lessThan";
55
+ /** Reference value */
45
56
  reference: number;
46
57
  };
47
58
  /** PlTableFilters numeric filter entry */
48
- type PlTableFilterNumberLessThanOrEqualTo = {
49
- /** Predicate type */type: "number_lessThanOrEqualTo"; /** Reference value */
59
+ export type PlTableFilterNumberLessThanOrEqualTo = {
60
+ /** Predicate type */
61
+ type: "number_lessThanOrEqualTo";
62
+ /** Reference value */
50
63
  reference: number;
51
64
  };
52
65
  /** PlTableFilters numeric filter entry */
53
- type PlTableFilterNumberBetween = {
54
- /** Predicate type */type: "number_between"; /** Reference value for the lower bound */
55
- lowerBound: number; /** Defines whether values equal to lower bound reference value should be matched */
56
- includeLowerBound: boolean; /** Reference value for the upper bound */
57
- upperBound: number; /** Defines whether values equal to upper bound reference value should be matched */
66
+ export type PlTableFilterNumberBetween = {
67
+ /** Predicate type */
68
+ type: "number_between";
69
+ /** Reference value for the lower bound */
70
+ lowerBound: number;
71
+ /** Defines whether values equal to lower bound reference value should be matched */
72
+ includeLowerBound: boolean;
73
+ /** Reference value for the upper bound */
74
+ upperBound: number;
75
+ /** Defines whether values equal to upper bound reference value should be matched */
58
76
  includeUpperBound: boolean;
59
77
  };
60
78
  /** All PlTableFilters numeric filter entries */
61
- type PlTableFilterNumber = PlTableFilterCommon | PlTableFilterNumberEquals | PlTableFilterNumberNotEquals | PlTableFilterNumberGreaterThan | PlTableFilterNumberGreaterThanOrEqualTo | PlTableFilterNumberLessThan | PlTableFilterNumberLessThanOrEqualTo | PlTableFilterNumberBetween;
79
+ export type PlTableFilterNumber = PlTableFilterCommon | PlTableFilterNumberEquals | PlTableFilterNumberNotEquals | PlTableFilterNumberGreaterThan | PlTableFilterNumberGreaterThanOrEqualTo | PlTableFilterNumberLessThan | PlTableFilterNumberLessThanOrEqualTo | PlTableFilterNumberBetween;
62
80
  /** PlTableFilters string filter entry */
63
- type PlTableFilterStringEquals = {
64
- /** Predicate type */type: "string_equals"; /** Reference value */
81
+ export type PlTableFilterStringEquals = {
82
+ /** Predicate type */
83
+ type: "string_equals";
84
+ /** Reference value */
65
85
  reference: string;
66
86
  };
67
87
  /** PlTableFilters string filter entry */
68
- type PlTableFilterStringNotEquals = {
69
- /** Predicate type */type: "string_notEquals"; /** Reference value */
88
+ export type PlTableFilterStringNotEquals = {
89
+ /** Predicate type */
90
+ type: "string_notEquals";
91
+ /** Reference value */
70
92
  reference: string;
71
93
  };
72
94
  /** PlTableFilters string filter entry */
73
- type PlTableFilterStringContains = {
74
- /** Predicate type */type: "string_contains"; /** Reference value */
95
+ export type PlTableFilterStringContains = {
96
+ /** Predicate type */
97
+ type: "string_contains";
98
+ /** Reference value */
75
99
  reference: string;
76
100
  };
77
101
  /** PlTableFilters string filter entry */
78
- type PlTableFilterStringDoesNotContain = {
79
- /** Predicate type */type: "string_doesNotContain"; /** Reference value */
102
+ export type PlTableFilterStringDoesNotContain = {
103
+ /** Predicate type */
104
+ type: "string_doesNotContain";
105
+ /** Reference value */
80
106
  reference: string;
81
107
  };
82
108
  /** PlTableFilters string filter entry */
83
- type PlTableFilterStringMatches = {
84
- /** Predicate type */type: "string_matches"; /** Reference value */
109
+ export type PlTableFilterStringMatches = {
110
+ /** Predicate type */
111
+ type: "string_matches";
112
+ /** Reference value */
85
113
  reference: string;
86
114
  };
87
115
  /** PlTableFilters string filter entry */
88
- type PlTableFilterStringDoesNotMatch = {
89
- /** Predicate type */type: "string_doesNotMatch"; /** Reference value */
116
+ export type PlTableFilterStringDoesNotMatch = {
117
+ /** Predicate type */
118
+ type: "string_doesNotMatch";
119
+ /** Reference value */
90
120
  reference: string;
91
121
  };
92
122
  /** PlTableFilters string filter entry */
93
- type PlTableFilterStringContainsFuzzyMatch = {
94
- /** Predicate type */type: "string_containsFuzzyMatch"; /** Reference value */
123
+ export type PlTableFilterStringContainsFuzzyMatch = {
124
+ /** Predicate type */
125
+ type: "string_containsFuzzyMatch";
126
+ /** Reference value */
95
127
  reference: string;
96
128
  /**
97
129
  * Maximum acceptable edit distance between reference value and matched substring
@@ -114,9 +146,8 @@ type PlTableFilterStringContainsFuzzyMatch = {
114
146
  wildcard?: string;
115
147
  };
116
148
  /** All PlTableFilters string filter entries */
117
- type PlTableFilterString = PlTableFilterCommon | PlTableFilterStringEquals | PlTableFilterStringNotEquals | PlTableFilterStringContains | PlTableFilterStringDoesNotContain | PlTableFilterStringMatches | PlTableFilterStringDoesNotMatch | PlTableFilterStringContainsFuzzyMatch;
149
+ export type PlTableFilterString = PlTableFilterCommon | PlTableFilterStringEquals | PlTableFilterStringNotEquals | PlTableFilterStringContains | PlTableFilterStringDoesNotContain | PlTableFilterStringMatches | PlTableFilterStringDoesNotMatch | PlTableFilterStringContainsFuzzyMatch;
118
150
  /** All PlTableFilters filter entries */
119
- type PlTableFilter = PlTableFilterNumber | PlTableFilterString;
151
+ export type PlTableFilter = PlTableFilterNumber | PlTableFilterString;
120
152
  //#endregion
121
- export { PlDataTableFilterState, PlTableFilter, PlTableFilterCommon, PlTableFilterIsNA, PlTableFilterIsNotNA, PlTableFilterNumber, PlTableFilterNumberBetween, PlTableFilterNumberEquals, PlTableFilterNumberGreaterThan, PlTableFilterNumberGreaterThanOrEqualTo, PlTableFilterNumberLessThan, PlTableFilterNumberLessThanOrEqualTo, PlTableFilterNumberNotEquals, PlTableFilterString, PlTableFilterStringContains, PlTableFilterStringContainsFuzzyMatch, PlTableFilterStringDoesNotContain, PlTableFilterStringDoesNotMatch, PlTableFilterStringEquals, PlTableFilterStringMatches, PlTableFilterStringNotEquals };
122
153
  //# sourceMappingURL=typesV4.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesV4.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV4.ts"],"mappings":";;;KAEY,sBAAA;EACV,EAAA,EAAI,cAAA;EACJ,UAAA;EACA,MAAA;IACE,KAAA,EAAO,aAAa;IACpB,QAAA;EAAA;AAAA;;KAKQ,oBAAA;EANR,qBAQF,IAAI;AAAA;;KAIM,iBAAA;EANA,qBAQV,IAAI;AAAA;;KAIM,mBAAA,GAAsB,oBAAA,GAAuB,iBAAiB;AAN1E;AAAA,KASY,yBAAA;uBAEV,IAAA,mBATI;EAWJ,SAAS;AAAA;;KAIC,4BAAA;EAX8D,qBAaxE,IAAA,sBAVmC;EAYnC,SAAS;AAAA;AARA;AAAA,KAYC,8BAAA;EAR4B,qBAUtC,IAAA,wBARA;EAUA,SAAS;AAAA;;KAIC,uCAAA;EANV,qBAQA,IAAA,iCAFU;EAIV,SAAS;AAAA;;KAIC,2BAAA;EAAA,qBAEV,IAAA;EAEA,SAAS;AAAA;AAIX;AAAA,KAAY,oCAAA;uBAEV,IAAA,8BAES;EAAT,SAAS;AAAA;;KAIC,0BAAA;EAEV,qBAAA,IAAA,oBAIA;EAFA,UAAA,UAMA;EAJA,iBAAA,WAIiB;EAFjB,UAAA,UAM6B;EAJ7B,iBAAA;AAAA;;KAIU,mBAAA,GACR,mBAAA,GACA,yBAAA,GACA,4BAAA,GACA,8BAAA,GACA,uCAAA,GACA,2BAAA,GACA,oCAAA,GACA,0BAAA;;KAKQ,yBAAA;EALR,qBAOF,IAAA,mBAP4B;EAS5B,SAAS;AAAA;;KAIC,4BAAA;EAhBR,qBAkBF,IAAA,sBAhBE;EAkBF,SAAS;AAAA;AAjBmB;AAAA,KAqBlB,2BAAA;EAhByB,qBAkBnC,IAAA,qBAhBA;EAkBA,SAAS;AAAA;;KAIC,iCAAA;EAdV,qBAgBA,IAAA,2BAVU;EAYV,SAAS;AAAA;;KAIC,0BAAA;EARA,qBAUV,IAAA;EAEA,SAAS;AAAA;AAJX;AAAA,KAQY,+BAAA;uBAEV,IAAA,yBANS;EAQT,SAAS;AAAA;;KAIC,qCAAA;EAJD,qBAMT,IAAA,+BAF+C;EAI/C,SAAA;EAJ+C;;;;EAS/C,QAAA;EAcA;;AAAQ;AAIV;;;;;EATE,iBAAA;EAaE;;;;EARF,QAAA;AAAA;;KAIU,mBAAA,GACR,mBAAA,GACA,yBAAA,GACA,4BAAA,GACA,2BAAA,GACA,iCAAA,GACA,0BAAA,GACA,+BAAA,GACA,qCAAA;;KAKQ,aAAA,GAAgB,mBAAA,GAAsB,mBAAmB"}
1
+ {"version":3,"file":"typesV4.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV4.ts"],"mappings":";;YAEY;EACV,IAAI;EACJ;EACA;IACE,OAAO;IACP;;;;YAKQ;;EAEV;;;YAIU;;EAEV;;;YAIU,sBAAsB,uBAAuB;;YAG7C;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;EAEA;;EAEA;;EAEA;;;YAIU,sBACR,sBACA,4BACA,+BACA,iCACA,0CACA,8BACA,uCACA;;YAKQ;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;YAIU;;EAEV;;EAEA;;;;;EAKA;;;;;;;;;EASA;;;;;EAKA;;;YAIU,sBACR,sBACA,4BACA,+BACA,8BACA,oCACA,6BACA,kCACA;;YAKQ,gBAAgB,sBAAsB"}
@@ -1,5 +1,4 @@
1
1
  import { CanonicalizedJson, PTableColumnSpec } from "@milaboratories/pl-model-common";
2
-
3
2
  //#region src/components/PlDataTable/typesV5.d.ts
4
3
  /**
5
4
  * v5 colId wrapper. v5 stored every grid colId as `{ source, labeled }` —
@@ -7,12 +6,12 @@ import { CanonicalizedJson, PTableColumnSpec } from "@milaboratories/pl-model-co
7
6
  * labeled axes substituted by their label columns. v6 dropped the wrapper
8
7
  * and stores bare `PTableColumnSpec`. Kept here for the v5→v6 migration.
9
8
  */
10
- type PlDataTableV5ColIdWrapper = {
9
+ export type PlDataTableV5ColIdWrapper = {
11
10
  source: PTableColumnSpec;
12
11
  labeled: PTableColumnSpec;
13
12
  };
14
- type PlDataTableV5ColIdJson = CanonicalizedJson<PlDataTableV5ColIdWrapper>;
15
- type PlDataTableGridStateV5 = {
13
+ export type PlDataTableV5ColIdJson = CanonicalizedJson<PlDataTableV5ColIdWrapper>;
14
+ export type PlDataTableGridStateV5 = {
16
15
  columnOrder?: {
17
16
  orderedColIds: PlDataTableV5ColIdJson[];
18
17
  };
@@ -27,5 +26,4 @@ type PlDataTableGridStateV5 = {
27
26
  };
28
27
  };
29
28
  //#endregion
30
- export { PlDataTableGridStateV5, PlDataTableV5ColIdJson, PlDataTableV5ColIdWrapper };
31
29
  //# sourceMappingURL=typesV5.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesV5.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV5.ts"],"mappings":";;;;;AAQA;;;;KAAY,yBAAA;EACV,MAAA,EAAQ,gBAAA;EACR,OAAA,EAAS,gBAAgB;AAAA;AAAA,KAGf,sBAAA,GAAyB,iBAAiB,CAAC,yBAAA;AAAA,KAE3C,sBAAA;EACV,WAAA;IAAgB,aAAA,EAAe,sBAAA;EAAA;EAC/B,IAAA;IAAS,SAAA;MAAa,KAAA,EAAO,sBAAA;MAAwB,IAAA;IAAA;EAAA;EACrD,gBAAA;IAAqB,YAAA,EAAc,sBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"typesV5.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV5.ts"],"mappings":";;;;;;;;YAQY;EACV,QAAQ;EACR,SAAS;;YAGC,yBAAyB,kBAAkB;YAE3C;EACV;IAAgB,eAAe;;EAC/B;IAAS;MAAa,OAAO;MAAwB;;;EACrD;IAAqB,cAAc"}
@@ -1,14 +1,13 @@
1
1
  import { PTableParamsV2, PlDataTableFiltersWithMeta, PlDataTableSheetState } from "./typesV7.js";
2
2
  import { CanonicalizedJson, PTableColumnSpec } from "@milaboratories/pl-model-common";
3
-
4
3
  //#region src/components/PlDataTable/typesV6.d.ts
5
4
  /**
6
5
  * v6 colId scheme: bare canonicalized `PTableColumnSpec` (full spec including
7
6
  * all annotations and `pl7.app/trace`). v7 dropped the spec body and now uses
8
7
  * `CanonicalizedJson<PTableColumnId>` — orders of magnitude smaller.
9
8
  */
10
- type PlDataTableV6ColIdJson = CanonicalizedJson<PTableColumnSpec>;
11
- type PlDataTableGridStateV6 = {
9
+ export type PlDataTableV6ColIdJson = CanonicalizedJson<PTableColumnSpec>;
10
+ export type PlDataTableGridStateV6 = {
12
11
  columnOrder?: {
13
12
  orderedColIds: PlDataTableV6ColIdJson[];
14
13
  };
@@ -22,7 +21,7 @@ type PlDataTableGridStateV6 = {
22
21
  hiddenColIds: PlDataTableV6ColIdJson[];
23
22
  };
24
23
  };
25
- type PlDataTableStateV2V6CacheEntry = {
24
+ export type PlDataTableStateV2V6CacheEntry = {
26
25
  sourceId: string;
27
26
  gridState: PlDataTableGridStateV6;
28
27
  sheetsState: PlDataTableSheetState[];
@@ -30,11 +29,10 @@ type PlDataTableStateV2V6CacheEntry = {
30
29
  defaultFiltersState: null | PlDataTableFiltersWithMeta;
31
30
  searchString?: string;
32
31
  };
33
- type PlDataTableStateV2V6 = {
32
+ export type PlDataTableStateV2V6 = {
34
33
  version: 6;
35
34
  stateCache: PlDataTableStateV2V6CacheEntry[];
36
35
  pTableParams: PTableParamsV2;
37
36
  };
38
37
  //#endregion
39
- export { PlDataTableGridStateV6, PlDataTableStateV2V6, PlDataTableStateV2V6CacheEntry, PlDataTableV6ColIdJson };
40
38
  //# sourceMappingURL=typesV6.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typesV6.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV6.ts"],"mappings":";;;;;;AAQA;;;KAAY,sBAAA,GAAyB,iBAAiB,CAAC,gBAAA;AAAA,KAE3C,sBAAA;EACV,WAAA;IAAgB,aAAA,EAAe,sBAAA;EAAA;EAC/B,IAAA;IAAS,SAAA;MAAa,KAAA,EAAO,sBAAA;MAAwB,IAAA;IAAA;EAAA;EACrD,gBAAA;IAAqB,YAAA,EAAc,sBAAA;EAAA;AAAA;AAAA,KAGzB,8BAAA;EACV,QAAA;EACA,SAAA,EAAW,sBAAA;EACX,WAAA,EAAa,qBAAA;EACb,YAAA,SAAqB,0BAAA;EACrB,mBAAA,SAA4B,0BAAA;EAC5B,YAAA;AAAA;AAAA,KAGU,oBAAA;EACV,OAAA;EACA,UAAA,EAAY,8BAAA;EACZ,YAAA,EAAc,cAAc;AAAA"}
1
+ {"version":3,"file":"typesV6.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV6.ts"],"mappings":";;;;;;;;YAQY,yBAAyB,kBAAkB;YAE3C;EACV;IAAgB,eAAe;;EAC/B;IAAS;MAAa,OAAO;MAAwB;;;EACrD;IAAqB,cAAc;;;YAGzB;EACV;EACA,WAAW;EACX,aAAa;EACb,qBAAqB;EACrB,4BAA4B;EAC5B;;YAGU;EACV;EACA,YAAY;EACZ,cAAc"}