@platforma-sdk/model 1.54.13 → 1.56.0

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 (120) hide show
  1. package/dist/bconfig/normalization.cjs +8 -1
  2. package/dist/bconfig/normalization.cjs.map +1 -1
  3. package/dist/bconfig/normalization.d.ts.map +1 -1
  4. package/dist/bconfig/normalization.js +8 -1
  5. package/dist/bconfig/normalization.js.map +1 -1
  6. package/dist/block_api_v3.d.ts +2 -2
  7. package/dist/block_api_v3.d.ts.map +1 -1
  8. package/dist/block_migrations.cjs +246 -214
  9. package/dist/block_migrations.cjs.map +1 -1
  10. package/dist/block_migrations.d.ts +180 -158
  11. package/dist/block_migrations.d.ts.map +1 -1
  12. package/dist/block_migrations.js +247 -214
  13. package/dist/block_migrations.js.map +1 -1
  14. package/dist/block_model.cjs +85 -35
  15. package/dist/block_model.cjs.map +1 -1
  16. package/dist/block_model.d.ts +66 -38
  17. package/dist/block_model.d.ts.map +1 -1
  18. package/dist/block_model.js +86 -36
  19. package/dist/block_model.js.map +1 -1
  20. package/dist/{builder.cjs → block_model_legacy.cjs} +2 -2
  21. package/dist/block_model_legacy.cjs.map +1 -0
  22. package/dist/{builder.d.ts → block_model_legacy.d.ts} +1 -1
  23. package/dist/block_model_legacy.d.ts.map +1 -0
  24. package/dist/{builder.js → block_model_legacy.js} +2 -2
  25. package/dist/block_model_legacy.js.map +1 -0
  26. package/dist/block_state_patch.d.ts +11 -1
  27. package/dist/block_state_patch.d.ts.map +1 -1
  28. package/dist/block_storage.cjs +126 -109
  29. package/dist/block_storage.cjs.map +1 -1
  30. package/dist/block_storage.d.ts +109 -112
  31. package/dist/block_storage.d.ts.map +1 -1
  32. package/dist/block_storage.js +126 -101
  33. package/dist/block_storage.js.map +1 -1
  34. package/dist/block_storage_callbacks.cjs +227 -0
  35. package/dist/block_storage_callbacks.cjs.map +1 -0
  36. package/dist/block_storage_callbacks.d.ts +113 -0
  37. package/dist/block_storage_callbacks.d.ts.map +1 -0
  38. package/dist/block_storage_callbacks.js +218 -0
  39. package/dist/block_storage_callbacks.js.map +1 -0
  40. package/dist/block_storage_facade.cjs +104 -0
  41. package/dist/block_storage_facade.cjs.map +1 -0
  42. package/dist/block_storage_facade.d.ts +168 -0
  43. package/dist/block_storage_facade.d.ts.map +1 -0
  44. package/dist/block_storage_facade.js +99 -0
  45. package/dist/block_storage_facade.js.map +1 -0
  46. package/dist/index.cjs +13 -14
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.ts +8 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +6 -4
  51. package/dist/index.js.map +1 -1
  52. package/dist/package.json.cjs +1 -1
  53. package/dist/package.json.js +1 -1
  54. package/dist/platforma.d.ts +11 -4
  55. package/dist/platforma.d.ts.map +1 -1
  56. package/dist/plugin_model.cjs +171 -0
  57. package/dist/plugin_model.cjs.map +1 -0
  58. package/dist/plugin_model.d.ts +162 -0
  59. package/dist/plugin_model.d.ts.map +1 -0
  60. package/dist/plugin_model.js +169 -0
  61. package/dist/plugin_model.js.map +1 -0
  62. package/dist/render/api.cjs +20 -21
  63. package/dist/render/api.cjs.map +1 -1
  64. package/dist/render/api.d.ts +8 -8
  65. package/dist/render/api.d.ts.map +1 -1
  66. package/dist/render/api.js +20 -21
  67. package/dist/render/api.js.map +1 -1
  68. package/dist/render/internal.cjs.map +1 -1
  69. package/dist/render/internal.d.ts +2 -1
  70. package/dist/render/internal.d.ts.map +1 -1
  71. package/dist/render/internal.js.map +1 -1
  72. package/dist/version.cjs +4 -0
  73. package/dist/version.cjs.map +1 -1
  74. package/dist/version.d.ts +4 -0
  75. package/dist/version.d.ts.map +1 -1
  76. package/dist/version.js +4 -1
  77. package/dist/version.js.map +1 -1
  78. package/package.json +5 -5
  79. package/src/bconfig/normalization.ts +8 -1
  80. package/src/block_api_v3.ts +2 -2
  81. package/src/block_migrations.test.ts +141 -171
  82. package/src/block_migrations.ts +300 -285
  83. package/src/block_model.ts +205 -95
  84. package/src/{builder.ts → block_model_legacy.ts} +1 -1
  85. package/src/block_state_patch.ts +13 -1
  86. package/src/block_storage.test.ts +283 -95
  87. package/src/block_storage.ts +199 -188
  88. package/src/block_storage_callbacks.ts +326 -0
  89. package/src/block_storage_facade.ts +199 -0
  90. package/src/index.ts +7 -3
  91. package/src/platforma.ts +26 -7
  92. package/src/plugin_model.test.ts +168 -0
  93. package/src/plugin_model.ts +242 -0
  94. package/src/render/api.ts +26 -24
  95. package/src/render/internal.ts +3 -1
  96. package/src/typing.test.ts +1 -1
  97. package/src/version.ts +8 -0
  98. package/dist/block_storage_vm.cjs +0 -262
  99. package/dist/block_storage_vm.cjs.map +0 -1
  100. package/dist/block_storage_vm.d.ts +0 -59
  101. package/dist/block_storage_vm.d.ts.map +0 -1
  102. package/dist/block_storage_vm.js +0 -258
  103. package/dist/block_storage_vm.js.map +0 -1
  104. package/dist/branding.d.ts +0 -7
  105. package/dist/branding.d.ts.map +0 -1
  106. package/dist/builder.cjs.map +0 -1
  107. package/dist/builder.d.ts.map +0 -1
  108. package/dist/builder.js.map +0 -1
  109. package/dist/sdk_info.cjs +0 -10
  110. package/dist/sdk_info.cjs.map +0 -1
  111. package/dist/sdk_info.d.ts +0 -5
  112. package/dist/sdk_info.d.ts.map +0 -1
  113. package/dist/sdk_info.js +0 -8
  114. package/dist/sdk_info.js.map +0 -1
  115. package/dist/unionize.d.ts +0 -12
  116. package/dist/unionize.d.ts.map +0 -1
  117. package/src/block_storage_vm.ts +0 -346
  118. package/src/branding.ts +0 -4
  119. package/src/sdk_info.ts +0 -9
  120. package/src/unionize.ts +0 -12
@@ -0,0 +1,169 @@
1
+ /**
2
+ * PluginModel - Builder for creating plugin types with data model and outputs.
3
+ *
4
+ * Plugins are UI components with their own model logic and persistent state.
5
+ * Block developers register plugin instances via BlockModelV3.plugin() method.
6
+ *
7
+ * @module plugin_model
8
+ */
9
+ /** Symbol for internal builder creation method */
10
+ const FROM_BUILDER = Symbol("fromBuilder");
11
+ // =============================================================================
12
+ // Plugin Type
13
+ // =============================================================================
14
+ /**
15
+ * Configured plugin instance returned by PluginModelFactory.create().
16
+ * Contains the plugin's name, data model, and output definitions.
17
+ */
18
+ class PluginModel {
19
+ /** Globally unique plugin name */
20
+ name;
21
+ /** Data model instance for this plugin */
22
+ dataModel;
23
+ /** Output definitions - functions that compute outputs from plugin context */
24
+ outputs;
25
+ constructor(input) {
26
+ this.name = input.name;
27
+ this.dataModel = input.dataModel;
28
+ this.outputs = input.outputs;
29
+ }
30
+ /**
31
+ * Internal method for creating PluginModel from factory.
32
+ * Uses Symbol key to prevent external access.
33
+ * @internal
34
+ */
35
+ static [FROM_BUILDER](input) {
36
+ return new this(input);
37
+ }
38
+ /**
39
+ * Creates a new PluginModelBuilder for building plugin definitions.
40
+ *
41
+ * @param options.name - Globally unique plugin name
42
+ * @param options.data - Factory function that creates the data model from config
43
+ * @returns PluginModelBuilder for chaining output definitions
44
+ *
45
+ * @example
46
+ * const dataModelChain = new DataModelBuilder().from<MyData>(DATA_MODEL_DEFAULT_VERSION);
47
+ *
48
+ * const myPlugin = PluginModel.define<MyData, MyParams, MyConfig>({
49
+ * name: 'myPlugin' as PluginName,
50
+ * data: (cfg) => dataModelChain.init(() => ({ value: cfg.defaultValue })),
51
+ * })
52
+ * .output('computed', (ctx) => ctx.data.value * ctx.params.multiplier)
53
+ * .build();
54
+ */
55
+ static define(options) {
56
+ return PluginModelBuilder[FROM_BUILDER](options);
57
+ }
58
+ }
59
+ /**
60
+ * Plugin factory returned by PluginModelBuilder.build().
61
+ * Call create() with config to get a configured PluginModel instance.
62
+ */
63
+ class PluginModelFactory {
64
+ name;
65
+ data;
66
+ outputs;
67
+ constructor(input) {
68
+ this.name = input.name;
69
+ this.data = input.data;
70
+ this.outputs = input.outputs;
71
+ }
72
+ /** Create a configured PluginModel instance */
73
+ create(config) {
74
+ return PluginModel[FROM_BUILDER]({
75
+ name: this.name,
76
+ dataModel: this.data(config),
77
+ outputs: this.outputs,
78
+ });
79
+ }
80
+ }
81
+ // =============================================================================
82
+ // Plugin Model Builder
83
+ // =============================================================================
84
+ /**
85
+ * Builder for creating PluginType with type-safe output definitions.
86
+ *
87
+ * Use `PluginModel.define()` to create a builder instance.
88
+ *
89
+ * @typeParam Data - Plugin's persistent data type
90
+ * @typeParam Params - Params derived from block's RenderCtx (optional)
91
+ * @typeParam Config - Static configuration passed to plugin factory (optional)
92
+ * @typeParam Outputs - Accumulated output types
93
+ *
94
+ * @example
95
+ * const dataModelChain = new DataModelBuilder().from<TableData>(DATA_MODEL_DEFAULT_VERSION);
96
+ *
97
+ * const dataTable = PluginModel.define<TableData, TableParams, TableConfig>({
98
+ * name: 'dataTable' as PluginName,
99
+ * data: (cfg) => {
100
+ * return dataModelChain.init(() => ({ state: createInitialState(cfg.ops) }));
101
+ * },
102
+ * })
103
+ * .output('model', (ctx) => createTableModel(ctx))
104
+ * .build();
105
+ */
106
+ class PluginModelBuilder {
107
+ name;
108
+ data;
109
+ outputs;
110
+ constructor(input) {
111
+ this.name = input.name;
112
+ this.data = input.data;
113
+ this.outputs =
114
+ input.outputs ??
115
+ {};
116
+ }
117
+ /**
118
+ * Internal method for creating PluginModelBuilder.
119
+ * Uses Symbol key to prevent external access.
120
+ * @internal
121
+ */
122
+ static [FROM_BUILDER](input) {
123
+ return new this(input);
124
+ }
125
+ /**
126
+ * Adds an output to the plugin.
127
+ *
128
+ * @param key - Output name
129
+ * @param fn - Function that computes the output value from plugin context
130
+ * @returns PluginModel with the new output added
131
+ *
132
+ * @example
133
+ * .output('model', (ctx) => createModel(ctx.params.columns, ctx.data.state))
134
+ * .output('isReady', (ctx) => ctx.params.columns !== undefined)
135
+ */
136
+ output(key, fn) {
137
+ return new PluginModelBuilder({
138
+ name: this.name,
139
+ data: this.data,
140
+ outputs: {
141
+ ...this.outputs,
142
+ [key]: fn,
143
+ },
144
+ });
145
+ }
146
+ /**
147
+ * Finalizes the plugin definition and returns a ConfigurablePluginModel.
148
+ *
149
+ * @returns Callable plugin factory that accepts config and returns PluginModel
150
+ *
151
+ * @example
152
+ * const myPlugin = new PluginModelBuilder('myPlugin', () => dataModel)
153
+ * .output('value', (ctx) => ctx.data.value)
154
+ * .build();
155
+ *
156
+ * // Later, call create() with config to get a configured instance:
157
+ * const configured = myPlugin.create({ defaultValue: 'test' });
158
+ */
159
+ build() {
160
+ return new PluginModelFactory({
161
+ name: this.name,
162
+ data: this.data,
163
+ outputs: this.outputs,
164
+ });
165
+ }
166
+ }
167
+
168
+ export { PluginModel };
169
+ //# sourceMappingURL=plugin_model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin_model.js","sources":["../src/plugin_model.ts"],"sourcesContent":["/**\n * PluginModel - Builder for creating plugin types with data model and outputs.\n *\n * Plugins are UI components with their own model logic and persistent state.\n * Block developers register plugin instances via BlockModelV3.plugin() method.\n *\n * @module plugin_model\n */\n\nimport type { DataModel } from \"./block_migrations\";\nimport type { PluginName } from \"./block_storage\";\nimport type { ResultPool } from \"./render\";\n\n/** Symbol for internal builder creation method */\nconst FROM_BUILDER = Symbol(\"fromBuilder\");\n\n// =============================================================================\n// Plugin Render Context\n// =============================================================================\n\n/**\n * Context passed to plugin output functions.\n * Provides access to plugin's persistent data, params derived from block context,\n * and the result pool for accessing workflow outputs.\n */\nexport interface PluginRenderCtx<Data, Params = undefined> {\n /** Plugin's persistent data */\n readonly data: Data;\n /** Params derived from block's RenderCtx */\n readonly params: Params;\n /** Result pool for accessing workflow outputs */\n readonly resultPool: ResultPool;\n}\n\n// =============================================================================\n// Plugin Type\n// =============================================================================\n\n/**\n * Configured plugin instance returned by PluginModelFactory.create().\n * Contains the plugin's name, data model, and output definitions.\n */\nexport class PluginModel<Data = unknown, Params = undefined, Outputs = {}> {\n /** Globally unique plugin name */\n readonly name: PluginName;\n /** Data model instance for this plugin */\n readonly dataModel: DataModel<Data>;\n /** Output definitions - functions that compute outputs from plugin context */\n readonly outputs: { [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K] };\n\n private constructor(input: {\n name: PluginName;\n dataModel: DataModel<Data>;\n outputs: { [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K] };\n }) {\n this.name = input.name;\n this.dataModel = input.dataModel;\n this.outputs = input.outputs;\n }\n\n /**\n * Internal method for creating PluginModel from factory.\n * Uses Symbol key to prevent external access.\n * @internal\n */\n static [FROM_BUILDER]<D, P, O>(input: {\n name: PluginName;\n dataModel: DataModel<D>;\n outputs: { [K in keyof O]: (ctx: PluginRenderCtx<D, P>) => O[K] };\n }): PluginModel<D, P, O> {\n return new this<D, P, O>(input);\n }\n\n /**\n * Creates a new PluginModelBuilder for building plugin definitions.\n *\n * @param options.name - Globally unique plugin name\n * @param options.data - Factory function that creates the data model from config\n * @returns PluginModelBuilder for chaining output definitions\n *\n * @example\n * const dataModelChain = new DataModelBuilder().from<MyData>(DATA_MODEL_DEFAULT_VERSION);\n *\n * const myPlugin = PluginModel.define<MyData, MyParams, MyConfig>({\n * name: 'myPlugin' as PluginName,\n * data: (cfg) => dataModelChain.init(() => ({ value: cfg.defaultValue })),\n * })\n * .output('computed', (ctx) => ctx.data.value * ctx.params.multiplier)\n * .build();\n */\n static define<Data, Params = undefined, Config = undefined>(options: {\n name: PluginName;\n data: (config?: Config) => DataModel<Data>;\n }): PluginModelBuilder<Data, Params, Config> {\n return PluginModelBuilder[FROM_BUILDER]<Data, Params, Config>(options);\n }\n}\n\n/**\n * Plugin factory returned by PluginModelBuilder.build().\n * Call create() with config to get a configured PluginModel instance.\n */\nclass PluginModelFactory<Data, Params, Config, Outputs> {\n private readonly name: PluginName;\n private readonly data: (config?: Config) => DataModel<Data>;\n private readonly outputs: {\n [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K];\n };\n\n constructor(input: {\n name: PluginName;\n data: (config?: Config) => DataModel<Data>;\n outputs: { [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K] };\n }) {\n this.name = input.name;\n this.data = input.data;\n this.outputs = input.outputs;\n }\n\n /** Create a configured PluginModel instance */\n create(config?: Config): PluginModel<Data, Params, Outputs> {\n return PluginModel[FROM_BUILDER]<Data, Params, Outputs>({\n name: this.name,\n dataModel: this.data(config),\n outputs: this.outputs,\n });\n }\n}\n\n// =============================================================================\n// Plugin Model Builder\n// =============================================================================\n\n/**\n * Builder for creating PluginType with type-safe output definitions.\n *\n * Use `PluginModel.define()` to create a builder instance.\n *\n * @typeParam Data - Plugin's persistent data type\n * @typeParam Params - Params derived from block's RenderCtx (optional)\n * @typeParam Config - Static configuration passed to plugin factory (optional)\n * @typeParam Outputs - Accumulated output types\n *\n * @example\n * const dataModelChain = new DataModelBuilder().from<TableData>(DATA_MODEL_DEFAULT_VERSION);\n *\n * const dataTable = PluginModel.define<TableData, TableParams, TableConfig>({\n * name: 'dataTable' as PluginName,\n * data: (cfg) => {\n * return dataModelChain.init(() => ({ state: createInitialState(cfg.ops) }));\n * },\n * })\n * .output('model', (ctx) => createTableModel(ctx))\n * .build();\n */\nclass PluginModelBuilder<\n Data,\n Params = undefined,\n Config = undefined,\n Outputs extends Record<string, unknown> = {},\n> {\n private readonly name: PluginName;\n private readonly data: (config?: Config) => DataModel<Data>;\n private readonly outputs: {\n [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K];\n };\n\n private constructor(input: {\n name: PluginName;\n data: (config?: Config) => DataModel<Data>;\n outputs?: { [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K] };\n }) {\n this.name = input.name;\n this.data = input.data;\n this.outputs =\n input.outputs ??\n ({} as { [K in keyof Outputs]: (ctx: PluginRenderCtx<Data, Params>) => Outputs[K] });\n }\n\n /**\n * Internal method for creating PluginModelBuilder.\n * Uses Symbol key to prevent external access.\n * @internal\n */\n static [FROM_BUILDER]<D, P, C, O extends Record<string, unknown> = {}>(input: {\n name: PluginName;\n data: (config?: C) => DataModel<D>;\n outputs?: { [K in keyof O]: (ctx: PluginRenderCtx<D, P>) => O[K] };\n }): PluginModelBuilder<D, P, C, O> {\n return new this<D, P, C, O>(input);\n }\n\n /**\n * Adds an output to the plugin.\n *\n * @param key - Output name\n * @param fn - Function that computes the output value from plugin context\n * @returns PluginModel with the new output added\n *\n * @example\n * .output('model', (ctx) => createModel(ctx.params.columns, ctx.data.state))\n * .output('isReady', (ctx) => ctx.params.columns !== undefined)\n */\n output<const Key extends string, T>(\n key: Key,\n fn: (ctx: PluginRenderCtx<Data, Params>) => T,\n ): PluginModelBuilder<Data, Params, Config, Outputs & { [K in Key]: T }> {\n return new PluginModelBuilder<Data, Params, Config, Outputs & { [K in Key]: T }>({\n name: this.name,\n data: this.data,\n outputs: {\n ...this.outputs,\n [key]: fn,\n } as {\n [K in keyof (Outputs & { [P in Key]: T })]: (\n ctx: PluginRenderCtx<Data, Params>,\n ) => (Outputs & { [P in Key]: T })[K];\n },\n });\n }\n\n /**\n * Finalizes the plugin definition and returns a ConfigurablePluginModel.\n *\n * @returns Callable plugin factory that accepts config and returns PluginModel\n *\n * @example\n * const myPlugin = new PluginModelBuilder('myPlugin', () => dataModel)\n * .output('value', (ctx) => ctx.data.value)\n * .build();\n *\n * // Later, call create() with config to get a configured instance:\n * const configured = myPlugin.create({ defaultValue: 'test' });\n */\n build(): PluginModelFactory<Data, Params, Config, Outputs> {\n return new PluginModelFactory<Data, Params, Config, Outputs>({\n name: this.name,\n data: this.data,\n outputs: this.outputs,\n });\n }\n}\n"],"names":[],"mappings":"AAAA;;;;;;;AAOG;AAMH;AACA,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;AAoB1C;AACA;AACA;AAEA;;;AAGG;MACU,WAAW,CAAA;;AAEb,IAAA,IAAI;;AAEJ,IAAA,SAAS;;AAET,IAAA,OAAO;AAEhB,IAAA,WAAA,CAAoB,KAInB,EAAA;AACC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;AAEA;;;;AAIG;AACH,IAAA,QAAQ,YAAY,CAAC,CAAU,KAI9B,EAAA;AACC,QAAA,OAAO,IAAI,IAAI,CAAU,KAAK,CAAC;IACjC;AAEA;;;;;;;;;;;;;;;;AAgBG;IACH,OAAO,MAAM,CAA+C,OAG3D,EAAA;AACC,QAAA,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAuB,OAAO,CAAC;IACxE;AACD;AAED;;;AAGG;AACH,MAAM,kBAAkB,CAAA;AACL,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,OAAO;AAIxB,IAAA,WAAA,CAAY,KAIX,EAAA;AACC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;;AAGA,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,OAAO,WAAW,CAAC,YAAY,CAAC,CAAwB;YACtD,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,SAAA,CAAC;IACJ;AACD;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH,MAAM,kBAAkB,CAAA;AAML,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,OAAO;AAIxB,IAAA,WAAA,CAAoB,KAInB,EAAA;AACC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO;AACV,YAAA,KAAK,CAAC,OAAO;AACZ,gBAAA,EAAmF;IACxF;AAEA;;;;AAIG;AACH,IAAA,QAAQ,YAAY,CAAC,CAAkD,KAItE,EAAA;AACC,QAAA,OAAO,IAAI,IAAI,CAAa,KAAK,CAAC;IACpC;AAEA;;;;;;;;;;AAUG;IACH,MAAM,CACJ,GAAQ,EACR,EAA6C,EAAA;QAE7C,OAAO,IAAI,kBAAkB,CAAoD;YAC/E,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAO;gBACf,CAAC,GAAG,GAAG,EAAE;AAKV,aAAA;AACF,SAAA,CAAC;IACJ;AAEA;;;;;;;;;;;;AAYG;IACH,KAAK,GAAA;QACH,OAAO,IAAI,kBAAkB,CAAgC;YAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,SAAA,CAAC;IACJ;AACD;;;;"}
@@ -387,30 +387,30 @@ class RenderCtxBase {
387
387
  constructor() {
388
388
  this.ctx = internal.getCfgRenderCtx();
389
389
  }
390
- _dataCache;
390
+ dataCache;
391
391
  get data() {
392
- if (this._dataCache === undefined) {
392
+ if (this.dataCache === undefined) {
393
393
  const raw = this.ctx.data;
394
394
  const value = typeof raw === "function" ? raw() : raw;
395
- this._dataCache = { v: value ? JSON.parse(value) : {} };
395
+ this.dataCache = { v: value ? JSON.parse(value) : {} };
396
396
  }
397
- return this._dataCache.v;
397
+ return this.dataCache.v;
398
398
  }
399
399
  // lazy rendering because this feature is rarely used
400
- _activeArgsCache;
400
+ activeArgsCache;
401
401
  /**
402
402
  * Returns args snapshot the block was executed for (i.e. when "Run" button was pressed).
403
403
  * Returns undefined, if block was never executed or stopped mid-way execution, so that the result was cleared.
404
404
  * */
405
405
  get activeArgs() {
406
- if (this._activeArgsCache === undefined) {
406
+ if (this.activeArgsCache === undefined) {
407
407
  const raw = this.ctx.activeArgs;
408
408
  const value = typeof raw === "function" ? raw() : raw;
409
- this._activeArgsCache = {
409
+ this.activeArgsCache = {
410
410
  v: value ? JSON.parse(value) : undefined,
411
411
  };
412
412
  }
413
- return this._activeArgsCache.v;
413
+ return this.activeArgsCache.v;
414
414
  }
415
415
  // /** Can be used to determine features provided by the desktop instance. */
416
416
  // public get featureFlags() {
@@ -514,36 +514,35 @@ class RenderCtxBase {
514
514
  }
515
515
  /** Main entry point to the API available within model lambdas (like outputs, sections, etc..) for v3+ blocks */
516
516
  class RenderCtx extends RenderCtxBase {
517
- _argsCache;
517
+ argsCache;
518
518
  get args() {
519
- if (this._argsCache === undefined) {
519
+ if (this.argsCache === undefined) {
520
520
  const raw = this.ctx.args;
521
521
  const value = typeof raw === "function" ? raw() : raw;
522
- // args can be undefined when derivation fails (e.g., validation error in args())
523
- this._argsCache = { v: value === undefined ? undefined : JSON.parse(value) };
522
+ this.argsCache = { v: value === undefined ? undefined : JSON.parse(value) };
524
523
  }
525
- return this._argsCache.v;
524
+ return this.argsCache.v;
526
525
  }
527
526
  }
528
527
  /** Render context for legacy v1/v2 blocks - provides backward compatibility */
529
528
  class RenderCtxLegacy extends RenderCtxBase {
530
- _argsCache;
529
+ argsCache;
531
530
  get args() {
532
- if (this._argsCache === undefined) {
531
+ if (this.argsCache === undefined) {
533
532
  const raw = this.ctx.args;
534
533
  const value = typeof raw === "function" ? raw() : raw;
535
- this._argsCache = { v: JSON.parse(value) };
534
+ this.argsCache = { v: JSON.parse(value) };
536
535
  }
537
- return this._argsCache.v;
536
+ return this.argsCache.v;
538
537
  }
539
- _uiStateCache;
538
+ uiStateCache;
540
539
  get uiState() {
541
- if (this._uiStateCache === undefined) {
540
+ if (this.uiStateCache === undefined) {
542
541
  const raw = this.ctx.uiState;
543
542
  const value = typeof raw === "function" ? raw() : raw;
544
- this._uiStateCache = { v: value ? JSON.parse(value) : {} };
543
+ this.uiStateCache = { v: value ? JSON.parse(value) : {} };
545
544
  }
546
- return this._uiStateCache.v;
545
+ return this.uiStateCache.v;
547
546
  }
548
547
  }
549
548
 
@@ -1 +1 @@
1
- {"version":3,"file":"api.cjs","sources":["../../src/render/api.ts"],"sourcesContent":["import type {\n AnchoredPColumnSelector,\n AnyFunction,\n AxisId,\n DataInfo,\n Option,\n PColumn,\n PColumnLazy,\n PColumnSelector,\n PColumnSpec,\n PColumnValues,\n PFrameDef,\n PFrameHandle,\n PObject,\n PObjectId,\n PObjectSpec,\n PSpecPredicate,\n PTableDef,\n PTableDefV2,\n PTableHandle,\n PTableRecordFilter,\n PTableSorting,\n PlRef,\n ResolveAnchorsOptions,\n ResultCollection,\n SUniversalPColumnId,\n ValueOrError,\n} from \"@milaboratories/pl-model-common\";\nimport {\n AnchoredIdDeriver,\n collectSpecQueryColumns,\n ensurePColumn,\n extractAllColumns,\n isDataInfo,\n isPColumn,\n isPColumnSpec,\n isPlRef,\n mapDataInfo,\n mapPObjectData,\n mapPTableDef,\n mapPTableDefV2,\n mapValueInVOE,\n PColumnName,\n readAnnotation,\n selectorsToPredicate,\n withEnrichments,\n} from \"@milaboratories/pl-model-common\";\nimport canonicalize from \"canonicalize\";\nimport type { Optional } from \"utility-types\";\nimport { getCfgRenderCtx } from \"../internal\";\nimport { TreeNodeAccessor, ifDef } from \"./accessor\";\nimport type { FutureRef } from \"./future\";\nimport type { AccessorHandle, GlobalCfgRenderCtx } from \"./internal\";\nimport { MainAccessorName, StagingAccessorName } from \"./internal\";\nimport {\n PColumnCollection,\n type AxisLabelProvider,\n type ColumnProvider,\n} from \"./util/column_collection\";\nimport type { LabelDerivationOps } from \"./util/label\";\nimport { deriveLabels } from \"./util/label\";\nimport type { APColumnSelectorWithSplit } from \"./util/split_selectors\";\nimport { patchInSetFilters } from \"./util/pframe_upgraders\";\nimport { allPColumnsReady } from \"./util/pcolumn_data\";\nimport type { PColumnDataUniversal } from \"./internal\";\n\n/**\n * Helper function to match domain objects\n * @param query Optional domain to match against\n * @param target Optional domain to match\n * @returns true if domains match, false otherwise\n */\nfunction matchDomain(query?: Record<string, string>, target?: Record<string, string>) {\n if (query === undefined) return target === undefined;\n if (target === undefined) return true;\n for (const k in target) {\n if (query[k] !== target[k]) return false;\n }\n return true;\n}\n\nexport type UniversalColumnOption = { label: string; value: SUniversalPColumnId };\n\n/**\n * Transforms PColumn data into the internal representation expected by the platform\n * @param data Data from a PColumn to transform\n * @returns Transformed data compatible with platform API\n */\nfunction transformPColumnData(\n data: PColumn<PColumnDataUniversal> | PColumnLazy<PColumnDataUniversal>,\n): PColumn<PColumnValues | AccessorHandle | DataInfo<AccessorHandle>> {\n return mapPObjectData(data, (d) => {\n if (d instanceof TreeNodeAccessor) {\n return d.handle;\n } else if (isDataInfo(d)) {\n return mapDataInfo(d, (accessor) => accessor.handle);\n } else {\n return d;\n }\n });\n}\n\ntype UniversalPColumnOpts = {\n labelOps?: LabelDerivationOps;\n dontWaitAllData?: boolean;\n exclude?: AnchoredPColumnSelector | AnchoredPColumnSelector[];\n} & ResolveAnchorsOptions;\n\ntype GetOptionsOpts = {\n /**\n * If true, references returned by the method will contain `requireEnrichments` flag set to true.\n * If this reference is added to the block's args, it will communicate to the platform that the block\n * expects enrichments of the referenced block to be available in the context of the current block.\n */\n refsWithEnrichments?: boolean;\n /**\n * Label derivation options.\n * If provided, it will be used to derive labels for the options.\n * If not provided, labels will be derived using the default logic.\n */\n label?: ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps;\n};\n\nexport class ResultPool implements ColumnProvider, AxisLabelProvider {\n private readonly ctx: GlobalCfgRenderCtx = getCfgRenderCtx();\n\n /**\n * @deprecated use getOptions()\n */\n public calculateOptions(predicate: PSpecPredicate): Option[] {\n return this.ctx.calculateOptions(predicate);\n }\n\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n opts?: GetOptionsOpts,\n ): Option[];\n /** @deprecated wrap label ops with { label: <...> } */\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n label?: ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps,\n ): Option[];\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n opts?: GetOptionsOpts | ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps,\n ): Option[] {\n const predicate =\n typeof predicateOrSelector === \"function\"\n ? predicateOrSelector\n : selectorsToPredicate(predicateOrSelector);\n const filtered = this.getSpecs().entries.filter((s) => predicate(s.obj));\n\n let labelOps: LabelDerivationOps | ((spec: PObjectSpec, ref: PlRef) => string) = {};\n let refsWithEnrichments: boolean = false;\n if (typeof opts !== \"undefined\") {\n if (typeof opts === \"function\") {\n labelOps = opts;\n } else if (typeof opts === \"object\") {\n if (\"includeNativeLabel\" in opts || \"separator\" in opts || \"addLabelAsSuffix\" in opts) {\n labelOps = opts;\n } else {\n opts = opts as GetOptionsOpts;\n labelOps = opts.label ?? {};\n refsWithEnrichments = opts.refsWithEnrichments ?? false;\n }\n }\n }\n\n if (typeof labelOps === \"object\")\n return deriveLabels(filtered, (o) => o.obj, labelOps ?? {}).map(\n ({ value: { ref }, label }) => ({\n ref: withEnrichments(ref, refsWithEnrichments),\n label,\n }),\n );\n else\n return filtered.map(({ ref, obj }) => ({\n ref: withEnrichments(ref, refsWithEnrichments),\n label: labelOps(obj, ref),\n }));\n }\n\n public resolveAnchorCtx(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n ): AnchoredIdDeriver | undefined {\n if (anchorsOrCtx instanceof AnchoredIdDeriver) return anchorsOrCtx;\n const resolvedAnchors: Record<string, PColumnSpec> = {};\n for (const [key, value] of Object.entries(anchorsOrCtx)) {\n if (isPlRef(value)) {\n const resolvedSpec = this.getPColumnSpecByRef(value);\n if (!resolvedSpec) return undefined;\n resolvedAnchors[key] = resolvedSpec;\n } else {\n resolvedAnchors[key] = value;\n }\n }\n return new AnchoredIdDeriver(resolvedAnchors);\n }\n\n /**\n * Returns columns that match the provided anchors and selectors. It applies axis filters and label derivation.\n *\n * @param anchorsOrCtx - Anchor context for column selection (same as in getCanonicalOptions)\n * @param predicateOrSelectors - Predicate or selectors for filtering columns (same as in getCanonicalOptions)\n * @param opts - Optional configuration for label generation and data waiting\n * @returns A PFrameHandle for the created PFrame, or undefined if any required data is missing\n */\n public getAnchoredPColumns(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n predicateOrSelectors:\n | ((spec: PColumnSpec) => boolean)\n | APColumnSelectorWithSplit\n | APColumnSelectorWithSplit[],\n opts?: UniversalPColumnOpts,\n ): PColumn<PColumnDataUniversal>[] | undefined {\n const anchorCtx = this.resolveAnchorCtx(anchorsOrCtx);\n if (!anchorCtx) return undefined;\n return new PColumnCollection()\n .addColumnProvider(this)\n .addAxisLabelProvider(this)\n .getColumns(predicateOrSelectors, {\n ...opts,\n anchorCtx,\n });\n }\n\n /**\n * Calculates anchored identifier options for columns matching a given predicate and returns their\n * canonicalized representations.\n *\n * This function filters column specifications from the result pool that match the provided predicate,\n * creates a standardized AnchorCtx from the provided anchors, and generates a list of label-value\n * pairs for UI components (like dropdowns).\n *\n * @param anchorsOrCtx - Either:\n * - An existing AnchorCtx instance\n * - A record mapping anchor IDs to PColumnSpec objects\n * - A record mapping anchor IDs to PlRef objects (which will be resolved to PColumnSpec)\n * @param predicateOrSelectors - Either:\n * - A predicate function that takes a PColumnSpec and returns a boolean.\n * Only specs that return true will be included.\n * - An APColumnSelector object for declarative filtering, which will be\n * resolved against the provided anchors and matched using matchPColumn.\n * - An array of APColumnSelector objects - columns matching ANY selector\n * in the array will be included (OR operation).\n * @param opts - Optional configuration for label generation:\n * - labelOps: Optional configuration for label generation:\n * - includeNativeLabel: Whether to include native column labels\n * - separator: String to use between label parts (defaults to \" / \")\n * - addLabelAsSuffix: Whether to add labels as suffix instead of prefix\n * - dontWaitAllData: Whether to skip columns that don't have all data (if not set, will return undefined,\n * if at least one column that requires splitting is missing data)\n * @returns An array of objects with `label` (display text) and `value` (anchored ID string) properties,\n * or undefined if any PlRef resolution fails.\n */\n getCanonicalOptions(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n predicateOrSelectors:\n | ((spec: PColumnSpec) => boolean)\n | APColumnSelectorWithSplit\n | APColumnSelectorWithSplit[],\n opts?: UniversalPColumnOpts,\n ): { label: string; value: SUniversalPColumnId }[] | undefined {\n const anchorCtx = this.resolveAnchorCtx(anchorsOrCtx);\n if (!anchorCtx) return undefined;\n const entries = new PColumnCollection()\n .addColumnProvider(this)\n .addAxisLabelProvider(this)\n .getUniversalEntries(predicateOrSelectors, {\n ...opts,\n anchorCtx,\n });\n if (!entries) return undefined;\n return entries.map((item) => ({\n value: item.id,\n label: item.label,\n }));\n }\n\n /**\n * @deprecated use getData()\n */\n public getDataFromResultPool(): ResultCollection<PObject<TreeNodeAccessor>> {\n return this.getData();\n }\n\n public getData(): ResultCollection<PObject<TreeNodeAccessor>> {\n const result = this.ctx.getDataFromResultPool();\n return {\n isComplete: result.isComplete,\n entries: result.entries.map((e) => ({\n ref: e.ref,\n obj: {\n ...e.obj,\n data: new TreeNodeAccessor(e.obj.data, [e.ref.blockId, e.ref.name]),\n },\n })),\n };\n }\n\n /**\n * @deprecated use getDataWithErrors()\n */\n public getDataWithErrorsFromResultPool(): ResultCollection<\n Optional<PObject<ValueOrError<TreeNodeAccessor, Error>>, \"id\">\n > {\n return this.getDataWithErrors();\n }\n\n public getDataWithErrors(): ResultCollection<\n Optional<PObject<ValueOrError<TreeNodeAccessor, Error>>, \"id\">\n > {\n const result = this.ctx.getDataWithErrorsFromResultPool();\n return {\n isComplete: result.isComplete,\n entries: result.entries.map((e) => ({\n ref: e.ref,\n obj: {\n ...e.obj,\n data: mapValueInVOE(\n e.obj.data,\n (handle) => new TreeNodeAccessor(handle, [e.ref.blockId, e.ref.name]),\n ),\n },\n })),\n };\n }\n\n /**\n * @deprecated use getSpecs()\n */\n public getSpecsFromResultPool(): ResultCollection<PObjectSpec> {\n return this.getSpecs();\n }\n\n public getSpecs(): ResultCollection<PObjectSpec> {\n return this.ctx.getSpecsFromResultPool();\n }\n\n /**\n * @param ref a Ref\n * @returns data associated with the ref\n */\n public getDataByRef(ref: PlRef): PObject<TreeNodeAccessor> | undefined {\n // @TODO remove after 1 Jan 2025; forward compatibility\n if (typeof this.ctx.getDataFromResultPoolByRef === \"undefined\")\n return this.getData().entries.find(\n (f) => f.ref.blockId === ref.blockId && f.ref.name === ref.name,\n )?.obj;\n const data = this.ctx.getDataFromResultPoolByRef(ref.blockId, ref.name); // Keep original call\n // Need to handle undefined case before mapping\n if (!data) return undefined;\n return mapPObjectData(data, (handle) => new TreeNodeAccessor(handle, [ref.blockId, ref.name]));\n }\n\n /**\n * Returns data associated with the ref ensuring that it is a p-column.\n * @param ref a Ref\n * @returns p-column associated with the ref\n */\n public getPColumnByRef(ref: PlRef): PColumn<TreeNodeAccessor> | undefined {\n const data = this.getDataByRef(ref);\n if (!data) return undefined;\n return ensurePColumn(data);\n }\n\n /**\n * Returns spec associated with the ref ensuring that it is a p-column spec.\n * @param ref a Ref\n * @returns p-column spec associated with the ref\n */\n public getPColumnSpecByRef(ref: PlRef): PColumnSpec | undefined {\n const spec = this.getSpecByRef(ref);\n if (!spec) return undefined;\n if (!isPColumnSpec(spec)) throw new Error(`not a PColumn spec (kind = ${spec.kind})`);\n return spec;\n }\n\n /**\n * @param ref a Ref\n * @returns object spec associated with the ref\n */\n public getSpecByRef(ref: PlRef): PObjectSpec | undefined {\n return this.ctx.getSpecFromResultPoolByRef(ref.blockId, ref.name);\n }\n\n /**\n * @param spec object specification\n * @returns array of data objects with compatible specs\n * @deprecated delete this method after Jan 1, 2025\n */\n public findDataWithCompatibleSpec(spec: PColumnSpec): PObject<TreeNodeAccessor>[] {\n const result: PObject<TreeNodeAccessor>[] = [];\n\n out: for (const data of this.getData().entries) {\n if (!isPColumnSpec(data.obj.spec)) {\n continue;\n }\n\n const oth = data.obj.spec;\n\n if (spec.name !== oth.name) {\n continue;\n }\n\n if (spec.valueType !== oth.valueType) {\n continue;\n }\n\n if (spec.axesSpec.length !== oth.axesSpec.length) {\n continue;\n }\n\n if (!matchDomain(spec.domain, oth.domain)) {\n continue;\n }\n\n for (let i = 0; i < spec.axesSpec.length; ++i) {\n const qAx = spec.axesSpec[i];\n const tAx = oth.axesSpec[i];\n if (qAx.name !== tAx.name) {\n continue out;\n }\n if (qAx.type !== tAx.type) {\n continue out;\n }\n if (!matchDomain(qAx.domain, tAx.domain)) {\n continue out;\n }\n }\n\n result.push(data.obj);\n }\n return result;\n }\n\n /**\n * Find labels data for a given axis id. It will search for a label column and return its data as a map.\n * @returns a map of axis value => label\n */\n public findLabels(axis: AxisId): Record<string | number, string> | undefined {\n const dataPool = this.getData();\n for (const column of dataPool.entries) {\n if (!isPColumn(column.obj)) continue;\n\n const spec = column.obj.spec;\n if (\n spec.name === PColumnName.Label &&\n spec.axesSpec.length === 1 &&\n spec.axesSpec[0].name === axis.name &&\n spec.axesSpec[0].type === axis.type &&\n matchDomain(axis.domain, spec.axesSpec[0].domain)\n ) {\n if (column.obj.data.resourceType.name !== \"PColumnData/Json\") {\n throw Error(`Expected JSON column for labels, got: ${column.obj.data.resourceType.name}`);\n }\n const labels: Record<string | number, string> = Object.fromEntries(\n Object.entries(\n column.obj.data.getDataAsJson<{\n data: Record<string | number, string>;\n }>().data,\n ).map((e) => [JSON.parse(e[0])[0], e[1]]),\n );\n\n return labels;\n }\n }\n return undefined;\n }\n\n /**\n * Selects columns based on the provided selectors, returning PColumn objects\n * with lazily loaded data.\n *\n * @param selectors - A predicate function, a single selector, or an array of selectors.\n * @returns An array of PColumn objects matching the selectors. Data is loaded on first access.\n */\n public selectColumns(\n selectors: ((spec: PColumnSpec) => boolean) | PColumnSelector | PColumnSelector[],\n ): PColumn<TreeNodeAccessor | undefined>[] {\n const predicate = typeof selectors === \"function\" ? selectors : selectorsToPredicate(selectors);\n\n const matchedSpecs = this.getSpecs().entries.filter(({ obj: spec }) => {\n if (!isPColumnSpec(spec)) return false;\n return predicate(spec);\n });\n\n // Map specs to PColumn objects with lazy data loading\n return matchedSpecs.map(({ ref, obj: spec }) => {\n // Type assertion needed because filter ensures it's PColumnSpec\n const pcolumnSpec = spec as PColumnSpec;\n let _cachedData: TreeNodeAccessor | undefined | null = null; // Use null to distinguish initial state from undefined result\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this; // Capture 'this' for use inside the getter\n\n return {\n id: canonicalize(ref) as PObjectId,\n spec: pcolumnSpec,\n get data(): TreeNodeAccessor | undefined {\n if (_cachedData !== null) {\n return _cachedData; // Return cached data (could be undefined if fetch failed)\n }\n\n _cachedData = self.getPColumnByRef(ref)?.data;\n return _cachedData;\n },\n } satisfies PColumn<TreeNodeAccessor | undefined>; // Cast needed because 'data' is a getter\n });\n }\n\n /**\n * Find labels data for a given axis id of a p-column.\n * @returns a map of axis value => label\n */\n public findLabelsForColumnAxis(\n column: PColumnSpec,\n axisIdx: number,\n ): Record<string | number, string> | undefined {\n const labels = this.findLabels(column.axesSpec[axisIdx]);\n if (!labels) return undefined;\n const axisKeys = readAnnotation(column, `pl7.app/axisKeys/${axisIdx}`);\n if (axisKeys !== undefined) {\n const keys = JSON.parse(axisKeys) as string[];\n return Object.fromEntries(\n keys.map((key) => {\n return [key, labels[key] ?? \"Unlabelled\"];\n }),\n );\n } else {\n return labels;\n }\n }\n}\n\n/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) */\nexport abstract class RenderCtxBase<Args, Data> {\n protected readonly ctx: GlobalCfgRenderCtx;\n\n constructor() {\n this.ctx = getCfgRenderCtx();\n }\n\n private _dataCache?: { v: Data };\n\n public get data(): Data {\n if (this._dataCache === undefined) {\n const raw = this.ctx.data;\n const value = typeof raw === \"function\" ? raw() : raw;\n this._dataCache = { v: value ? JSON.parse(value) : ({} as Data) };\n }\n return this._dataCache.v;\n }\n\n // lazy rendering because this feature is rarely used\n private _activeArgsCache?: { v?: Args };\n\n /**\n * Returns args snapshot the block was executed for (i.e. when \"Run\" button was pressed).\n * Returns undefined, if block was never executed or stopped mid-way execution, so that the result was cleared.\n * */\n public get activeArgs(): Args | undefined {\n if (this._activeArgsCache === undefined) {\n const raw = this.ctx.activeArgs;\n const value = typeof raw === \"function\" ? raw() : raw;\n this._activeArgsCache = {\n v: value ? JSON.parse(value) : undefined,\n };\n }\n return this._activeArgsCache.v;\n }\n\n // /** Can be used to determine features provided by the desktop instance. */\n // public get featureFlags() {\n // return this.ctx.featureFlags;\n // }\n\n private getNamedAccessor(name: string): TreeNodeAccessor | undefined {\n return ifDef(\n this.ctx.getAccessorHandleByName(name),\n (accessor) => new TreeNodeAccessor(accessor, [name]),\n );\n }\n\n public get prerun(): TreeNodeAccessor | undefined {\n return this.getNamedAccessor(StagingAccessorName);\n }\n\n public get outputs(): TreeNodeAccessor | undefined {\n return this.getNamedAccessor(MainAccessorName);\n }\n\n public readonly resultPool = new ResultPool();\n\n /**\n * Find labels data for a given axis id. It will search for a label column and return its data as a map.\n * @returns a map of axis value => label\n * @deprecated Use resultPool.findLabels instead\n */\n public findLabels(axis: AxisId): Record<string | number, string> | undefined {\n return this.resultPool.findLabels(axis);\n }\n\n private verifyInlineAndExplicitColumnsSupport(\n columns: (PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>)[],\n ) {\n const hasInlineColumns = columns.some(\n (c) => !(c.data instanceof TreeNodeAccessor) || isDataInfo(c.data),\n ); // Updated check for DataInfo\n const inlineColumnsSupport = this.ctx.featureFlags?.inlineColumnsSupport === true;\n if (hasInlineColumns && !inlineColumnsSupport)\n throw Error(`Inline or explicit columns not supported`); // Combined check\n\n // Removed redundant explicitColumns check\n }\n\n private patchPTableDef(\n def: PTableDef<PColumn<PColumnDataUniversal>>,\n ): PTableDef<PColumn<PColumnDataUniversal>> {\n if (!this.ctx.featureFlags?.pTablePartitionFiltersSupport) {\n // For old desktop move all partition filters to filters field as it doesn't read partitionFilters field\n def = {\n ...def,\n partitionFilters: [],\n filters: [...def.partitionFilters, ...def.filters],\n };\n }\n if (!this.ctx.featureFlags?.pFrameInSetFilterSupport) {\n def = {\n ...def,\n partitionFilters: patchInSetFilters(def.partitionFilters),\n filters: patchInSetFilters(def.filters),\n };\n }\n return def;\n }\n\n // TODO remove all non-PColumn fields\n public createPFrame(\n def: PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>>,\n ): PFrameHandle | undefined {\n this.verifyInlineAndExplicitColumnsSupport(def);\n if (!allPColumnsReady(def)) return undefined;\n return this.ctx.createPFrame(def.map((c) => transformPColumnData(c)));\n }\n\n // TODO remove all non-PColumn fields\n public createPTable(def: PTableDef<PColumn<PColumnDataUniversal>>): PTableHandle | undefined;\n public createPTable(def: {\n columns: PColumn<PColumnDataUniversal>[];\n filters?: PTableRecordFilter[];\n /** Table sorting */\n sorting?: PTableSorting[];\n }): PTableHandle | undefined;\n public createPTable(\n def:\n | PTableDef<PColumn<PColumnDataUniversal>>\n | {\n columns: PColumn<PColumnDataUniversal>[];\n filters?: PTableRecordFilter[];\n /** Table sorting */\n sorting?: PTableSorting[];\n },\n ): PTableHandle | undefined {\n let rawDef: PTableDef<PColumn<PColumnDataUniversal>>;\n if (\"columns\" in def) {\n rawDef = this.patchPTableDef({\n src: {\n type: \"full\",\n entries: def.columns.map((c) => ({ type: \"column\", column: c })),\n },\n partitionFilters: def.filters ?? [],\n filters: [],\n sorting: def.sorting ?? [],\n });\n } else {\n rawDef = this.patchPTableDef(def);\n }\n const columns = extractAllColumns(rawDef.src);\n this.verifyInlineAndExplicitColumnsSupport(columns);\n if (!allPColumnsReady(columns)) return undefined;\n return this.ctx.createPTable(mapPTableDef(rawDef, (po) => transformPColumnData(po)));\n }\n\n public createPTableV2(def: PTableDefV2<PColumn<PColumnDataUniversal>>): PTableHandle | undefined {\n const columns = collectSpecQueryColumns(def.query);\n this.verifyInlineAndExplicitColumnsSupport(columns);\n if (!allPColumnsReady(columns)) return undefined;\n return this.ctx.createPTableV2(mapPTableDefV2(def, (po) => transformPColumnData(po)));\n }\n\n /** @deprecated scheduled for removal from SDK */\n public getBlockLabel(blockId: string): string {\n return this.ctx.getBlockLabel(blockId);\n }\n\n public getCurrentUnstableMarker(): string | undefined {\n return this.ctx.getCurrentUnstableMarker();\n }\n\n public logInfo(msg: string): void {\n this.ctx.logInfo(msg);\n }\n\n public logWarn(msg: string): void {\n this.ctx.logWarn(msg);\n }\n\n public logError(msg: string): void {\n this.ctx.logError(msg);\n }\n}\n\n/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) for v3+ blocks */\nexport class RenderCtx<Args, Data> extends RenderCtxBase<Args, Data> {\n private _argsCache?: { v: Args | undefined };\n public get args(): Args | undefined {\n if (this._argsCache === undefined) {\n const raw = this.ctx.args;\n const value = typeof raw === \"function\" ? raw() : raw;\n // args can be undefined when derivation fails (e.g., validation error in args())\n this._argsCache = { v: value === undefined ? undefined : JSON.parse(value) };\n }\n return this._argsCache.v;\n }\n}\n\n/** Render context for legacy v1/v2 blocks - provides backward compatibility */\nexport class RenderCtxLegacy<Args, UiState> extends RenderCtxBase<Args, UiState> {\n private _argsCache?: { v: Args };\n\n public get args(): Args {\n if (this._argsCache === undefined) {\n const raw = this.ctx.args;\n const value = typeof raw === \"function\" ? raw() : raw;\n this._argsCache = { v: JSON.parse(value) };\n }\n return this._argsCache.v;\n }\n\n private _uiStateCache?: { v: UiState };\n\n public get uiState(): UiState {\n if (this._uiStateCache === undefined) {\n const raw = this.ctx.uiState!;\n const value = typeof raw === \"function\" ? raw() : raw;\n this._uiStateCache = { v: value ? JSON.parse(value) : ({} as UiState) };\n }\n return this._uiStateCache.v;\n }\n}\n\nexport type RenderFunction<Args = unknown, State = unknown, Ret = unknown> = (\n rCtx: RenderCtx<Args, State>,\n) => Ret;\n\nexport type RenderFunctionLegacy<Args = unknown, State = unknown, Ret = unknown> = (\n rCtx: RenderCtxLegacy<Args, State>,\n) => Ret;\n\nexport type UnwrapFutureRef<K> =\n K extends FutureRef<infer T>\n ? T\n : K extends bigint | boolean | null | number | string | symbol | undefined\n ? K\n : { [key in keyof K]: UnwrapFutureRef<K[key]> };\n\nexport type InferRenderFunctionReturn<RF extends AnyFunction> = RF extends (...args: any) => infer R\n ? UnwrapFutureRef<R>\n : never;\n"],"names":["mapPObjectData","TreeNodeAccessor","isDataInfo","mapDataInfo","getCfgRenderCtx","selectorsToPredicate","deriveLabels","withEnrichments","AnchoredIdDeriver","isPlRef","PColumnCollection","mapValueInVOE","ensurePColumn","isPColumnSpec","isPColumn","PColumnName","readAnnotation","ifDef","accessor","StagingAccessorName","MainAccessorName","patchInSetFilters","allPColumnsReady","extractAllColumns","mapPTableDef","collectSpecQueryColumns","mapPTableDefV2"],"mappings":"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"}
1
+ {"version":3,"file":"api.cjs","sources":["../../src/render/api.ts"],"sourcesContent":["import type {\n AnchoredPColumnSelector,\n AnyFunction,\n AxisId,\n DataInfo,\n Option,\n PColumn,\n PColumnLazy,\n PColumnSelector,\n PColumnSpec,\n PColumnValues,\n PFrameDef,\n PFrameHandle,\n PObject,\n PObjectId,\n PObjectSpec,\n PSpecPredicate,\n PTableDef,\n PTableDefV2,\n PTableHandle,\n PTableRecordFilter,\n PTableSorting,\n PlRef,\n ResolveAnchorsOptions,\n ResultCollection,\n SUniversalPColumnId,\n ValueOrError,\n} from \"@milaboratories/pl-model-common\";\nimport {\n AnchoredIdDeriver,\n collectSpecQueryColumns,\n ensurePColumn,\n extractAllColumns,\n isDataInfo,\n isPColumn,\n isPColumnSpec,\n isPlRef,\n mapDataInfo,\n mapPObjectData,\n mapPTableDef,\n mapPTableDefV2,\n mapValueInVOE,\n PColumnName,\n readAnnotation,\n selectorsToPredicate,\n withEnrichments,\n} from \"@milaboratories/pl-model-common\";\nimport canonicalize from \"canonicalize\";\nimport type { Optional } from \"utility-types\";\nimport { getCfgRenderCtx } from \"../internal\";\nimport { TreeNodeAccessor, ifDef } from \"./accessor\";\nimport type { FutureRef } from \"./future\";\nimport type { AccessorHandle, GlobalCfgRenderCtx } from \"./internal\";\nimport { MainAccessorName, StagingAccessorName } from \"./internal\";\nimport {\n PColumnCollection,\n type AxisLabelProvider,\n type ColumnProvider,\n} from \"./util/column_collection\";\nimport type { LabelDerivationOps } from \"./util/label\";\nimport { deriveLabels } from \"./util/label\";\nimport type { APColumnSelectorWithSplit } from \"./util/split_selectors\";\nimport { patchInSetFilters } from \"./util/pframe_upgraders\";\nimport { allPColumnsReady } from \"./util/pcolumn_data\";\nimport type { PColumnDataUniversal } from \"./internal\";\n\n/**\n * Helper function to match domain objects\n * @param query Optional domain to match against\n * @param target Optional domain to match\n * @returns true if domains match, false otherwise\n */\nfunction matchDomain(query?: Record<string, string>, target?: Record<string, string>) {\n if (query === undefined) return target === undefined;\n if (target === undefined) return true;\n for (const k in target) {\n if (query[k] !== target[k]) return false;\n }\n return true;\n}\n\nexport type UniversalColumnOption = { label: string; value: SUniversalPColumnId };\n\n/**\n * Transforms PColumn data into the internal representation expected by the platform\n * @param data Data from a PColumn to transform\n * @returns Transformed data compatible with platform API\n */\nfunction transformPColumnData(\n data: PColumn<PColumnDataUniversal> | PColumnLazy<PColumnDataUniversal>,\n): PColumn<PColumnValues | AccessorHandle | DataInfo<AccessorHandle>> {\n return mapPObjectData(data, (d) => {\n if (d instanceof TreeNodeAccessor) {\n return d.handle;\n } else if (isDataInfo(d)) {\n return mapDataInfo(d, (accessor) => accessor.handle);\n } else {\n return d;\n }\n });\n}\n\ntype UniversalPColumnOpts = {\n labelOps?: LabelDerivationOps;\n dontWaitAllData?: boolean;\n exclude?: AnchoredPColumnSelector | AnchoredPColumnSelector[];\n} & ResolveAnchorsOptions;\n\ntype GetOptionsOpts = {\n /**\n * If true, references returned by the method will contain `requireEnrichments` flag set to true.\n * If this reference is added to the block's args, it will communicate to the platform that the block\n * expects enrichments of the referenced block to be available in the context of the current block.\n */\n refsWithEnrichments?: boolean;\n /**\n * Label derivation options.\n * If provided, it will be used to derive labels for the options.\n * If not provided, labels will be derived using the default logic.\n */\n label?: ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps;\n};\n\nexport class ResultPool implements ColumnProvider, AxisLabelProvider {\n private readonly ctx: GlobalCfgRenderCtx = getCfgRenderCtx();\n\n /**\n * @deprecated use getOptions()\n */\n public calculateOptions(predicate: PSpecPredicate): Option[] {\n return this.ctx.calculateOptions(predicate);\n }\n\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n opts?: GetOptionsOpts,\n ): Option[];\n /** @deprecated wrap label ops with { label: <...> } */\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n label?: ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps,\n ): Option[];\n public getOptions(\n predicateOrSelector: ((spec: PObjectSpec) => boolean) | PColumnSelector | PColumnSelector[],\n opts?: GetOptionsOpts | ((spec: PObjectSpec, ref: PlRef) => string) | LabelDerivationOps,\n ): Option[] {\n const predicate =\n typeof predicateOrSelector === \"function\"\n ? predicateOrSelector\n : selectorsToPredicate(predicateOrSelector);\n const filtered = this.getSpecs().entries.filter((s) => predicate(s.obj));\n\n let labelOps: LabelDerivationOps | ((spec: PObjectSpec, ref: PlRef) => string) = {};\n let refsWithEnrichments: boolean = false;\n if (typeof opts !== \"undefined\") {\n if (typeof opts === \"function\") {\n labelOps = opts;\n } else if (typeof opts === \"object\") {\n if (\"includeNativeLabel\" in opts || \"separator\" in opts || \"addLabelAsSuffix\" in opts) {\n labelOps = opts;\n } else {\n opts = opts as GetOptionsOpts;\n labelOps = opts.label ?? {};\n refsWithEnrichments = opts.refsWithEnrichments ?? false;\n }\n }\n }\n\n if (typeof labelOps === \"object\")\n return deriveLabels(filtered, (o) => o.obj, labelOps ?? {}).map(\n ({ value: { ref }, label }) => ({\n ref: withEnrichments(ref, refsWithEnrichments),\n label,\n }),\n );\n else\n return filtered.map(({ ref, obj }) => ({\n ref: withEnrichments(ref, refsWithEnrichments),\n label: labelOps(obj, ref),\n }));\n }\n\n public resolveAnchorCtx(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n ): AnchoredIdDeriver | undefined {\n if (anchorsOrCtx instanceof AnchoredIdDeriver) return anchorsOrCtx;\n const resolvedAnchors: Record<string, PColumnSpec> = {};\n for (const [key, value] of Object.entries(anchorsOrCtx)) {\n if (isPlRef(value)) {\n const resolvedSpec = this.getPColumnSpecByRef(value);\n if (!resolvedSpec) return undefined;\n resolvedAnchors[key] = resolvedSpec;\n } else {\n resolvedAnchors[key] = value;\n }\n }\n return new AnchoredIdDeriver(resolvedAnchors);\n }\n\n /**\n * Returns columns that match the provided anchors and selectors. It applies axis filters and label derivation.\n *\n * @param anchorsOrCtx - Anchor context for column selection (same as in getCanonicalOptions)\n * @param predicateOrSelectors - Predicate or selectors for filtering columns (same as in getCanonicalOptions)\n * @param opts - Optional configuration for label generation and data waiting\n * @returns A PFrameHandle for the created PFrame, or undefined if any required data is missing\n */\n public getAnchoredPColumns(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n predicateOrSelectors:\n | ((spec: PColumnSpec) => boolean)\n | APColumnSelectorWithSplit\n | APColumnSelectorWithSplit[],\n opts?: UniversalPColumnOpts,\n ): PColumn<PColumnDataUniversal>[] | undefined {\n const anchorCtx = this.resolveAnchorCtx(anchorsOrCtx);\n if (!anchorCtx) return undefined;\n return new PColumnCollection()\n .addColumnProvider(this)\n .addAxisLabelProvider(this)\n .getColumns(predicateOrSelectors, {\n ...opts,\n anchorCtx,\n });\n }\n\n /**\n * Calculates anchored identifier options for columns matching a given predicate and returns their\n * canonicalized representations.\n *\n * This function filters column specifications from the result pool that match the provided predicate,\n * creates a standardized AnchorCtx from the provided anchors, and generates a list of label-value\n * pairs for UI components (like dropdowns).\n *\n * @param anchorsOrCtx - Either:\n * - An existing AnchorCtx instance\n * - A record mapping anchor IDs to PColumnSpec objects\n * - A record mapping anchor IDs to PlRef objects (which will be resolved to PColumnSpec)\n * @param predicateOrSelectors - Either:\n * - A predicate function that takes a PColumnSpec and returns a boolean.\n * Only specs that return true will be included.\n * - An APColumnSelector object for declarative filtering, which will be\n * resolved against the provided anchors and matched using matchPColumn.\n * - An array of APColumnSelector objects - columns matching ANY selector\n * in the array will be included (OR operation).\n * @param opts - Optional configuration for label generation:\n * - labelOps: Optional configuration for label generation:\n * - includeNativeLabel: Whether to include native column labels\n * - separator: String to use between label parts (defaults to \" / \")\n * - addLabelAsSuffix: Whether to add labels as suffix instead of prefix\n * - dontWaitAllData: Whether to skip columns that don't have all data (if not set, will return undefined,\n * if at least one column that requires splitting is missing data)\n * @returns An array of objects with `label` (display text) and `value` (anchored ID string) properties,\n * or undefined if any PlRef resolution fails.\n */\n getCanonicalOptions(\n anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>,\n predicateOrSelectors:\n | ((spec: PColumnSpec) => boolean)\n | APColumnSelectorWithSplit\n | APColumnSelectorWithSplit[],\n opts?: UniversalPColumnOpts,\n ): { label: string; value: SUniversalPColumnId }[] | undefined {\n const anchorCtx = this.resolveAnchorCtx(anchorsOrCtx);\n if (!anchorCtx) return undefined;\n const entries = new PColumnCollection()\n .addColumnProvider(this)\n .addAxisLabelProvider(this)\n .getUniversalEntries(predicateOrSelectors, {\n ...opts,\n anchorCtx,\n });\n if (!entries) return undefined;\n return entries.map((item) => ({\n value: item.id,\n label: item.label,\n }));\n }\n\n /**\n * @deprecated use getData()\n */\n public getDataFromResultPool(): ResultCollection<PObject<TreeNodeAccessor>> {\n return this.getData();\n }\n\n public getData(): ResultCollection<PObject<TreeNodeAccessor>> {\n const result = this.ctx.getDataFromResultPool();\n return {\n isComplete: result.isComplete,\n entries: result.entries.map((e) => ({\n ref: e.ref,\n obj: {\n ...e.obj,\n data: new TreeNodeAccessor(e.obj.data, [e.ref.blockId, e.ref.name]),\n },\n })),\n };\n }\n\n /**\n * @deprecated use getDataWithErrors()\n */\n public getDataWithErrorsFromResultPool(): ResultCollection<\n Optional<PObject<ValueOrError<TreeNodeAccessor, Error>>, \"id\">\n > {\n return this.getDataWithErrors();\n }\n\n public getDataWithErrors(): ResultCollection<\n Optional<PObject<ValueOrError<TreeNodeAccessor, Error>>, \"id\">\n > {\n const result = this.ctx.getDataWithErrorsFromResultPool();\n return {\n isComplete: result.isComplete,\n entries: result.entries.map((e) => ({\n ref: e.ref,\n obj: {\n ...e.obj,\n data: mapValueInVOE(\n e.obj.data,\n (handle) => new TreeNodeAccessor(handle, [e.ref.blockId, e.ref.name]),\n ),\n },\n })),\n };\n }\n\n /**\n * @deprecated use getSpecs()\n */\n public getSpecsFromResultPool(): ResultCollection<PObjectSpec> {\n return this.getSpecs();\n }\n\n public getSpecs(): ResultCollection<PObjectSpec> {\n return this.ctx.getSpecsFromResultPool();\n }\n\n /**\n * @param ref a Ref\n * @returns data associated with the ref\n */\n public getDataByRef(ref: PlRef): PObject<TreeNodeAccessor> | undefined {\n // @TODO remove after 1 Jan 2025; forward compatibility\n if (typeof this.ctx.getDataFromResultPoolByRef === \"undefined\")\n return this.getData().entries.find(\n (f) => f.ref.blockId === ref.blockId && f.ref.name === ref.name,\n )?.obj;\n const data = this.ctx.getDataFromResultPoolByRef(ref.blockId, ref.name); // Keep original call\n // Need to handle undefined case before mapping\n if (!data) return undefined;\n return mapPObjectData(data, (handle) => new TreeNodeAccessor(handle, [ref.blockId, ref.name]));\n }\n\n /**\n * Returns data associated with the ref ensuring that it is a p-column.\n * @param ref a Ref\n * @returns p-column associated with the ref\n */\n public getPColumnByRef(ref: PlRef): PColumn<TreeNodeAccessor> | undefined {\n const data = this.getDataByRef(ref);\n if (!data) return undefined;\n return ensurePColumn(data);\n }\n\n /**\n * Returns spec associated with the ref ensuring that it is a p-column spec.\n * @param ref a Ref\n * @returns p-column spec associated with the ref\n */\n public getPColumnSpecByRef(ref: PlRef): PColumnSpec | undefined {\n const spec = this.getSpecByRef(ref);\n if (!spec) return undefined;\n if (!isPColumnSpec(spec)) throw new Error(`not a PColumn spec (kind = ${spec.kind})`);\n return spec;\n }\n\n /**\n * @param ref a Ref\n * @returns object spec associated with the ref\n */\n public getSpecByRef(ref: PlRef): PObjectSpec | undefined {\n return this.ctx.getSpecFromResultPoolByRef(ref.blockId, ref.name);\n }\n\n /**\n * @param spec object specification\n * @returns array of data objects with compatible specs\n * @deprecated delete this method after Jan 1, 2025\n */\n public findDataWithCompatibleSpec(spec: PColumnSpec): PObject<TreeNodeAccessor>[] {\n const result: PObject<TreeNodeAccessor>[] = [];\n\n out: for (const data of this.getData().entries) {\n if (!isPColumnSpec(data.obj.spec)) {\n continue;\n }\n\n const oth = data.obj.spec;\n\n if (spec.name !== oth.name) {\n continue;\n }\n\n if (spec.valueType !== oth.valueType) {\n continue;\n }\n\n if (spec.axesSpec.length !== oth.axesSpec.length) {\n continue;\n }\n\n if (!matchDomain(spec.domain, oth.domain)) {\n continue;\n }\n\n for (let i = 0; i < spec.axesSpec.length; ++i) {\n const qAx = spec.axesSpec[i];\n const tAx = oth.axesSpec[i];\n if (qAx.name !== tAx.name) {\n continue out;\n }\n if (qAx.type !== tAx.type) {\n continue out;\n }\n if (!matchDomain(qAx.domain, tAx.domain)) {\n continue out;\n }\n }\n\n result.push(data.obj);\n }\n return result;\n }\n\n /**\n * Find labels data for a given axis id. It will search for a label column and return its data as a map.\n * @returns a map of axis value => label\n */\n public findLabels(axis: AxisId): Record<string | number, string> | undefined {\n const dataPool = this.getData();\n for (const column of dataPool.entries) {\n if (!isPColumn(column.obj)) continue;\n\n const spec = column.obj.spec;\n if (\n spec.name === PColumnName.Label &&\n spec.axesSpec.length === 1 &&\n spec.axesSpec[0].name === axis.name &&\n spec.axesSpec[0].type === axis.type &&\n matchDomain(axis.domain, spec.axesSpec[0].domain)\n ) {\n if (column.obj.data.resourceType.name !== \"PColumnData/Json\") {\n throw Error(`Expected JSON column for labels, got: ${column.obj.data.resourceType.name}`);\n }\n const labels: Record<string | number, string> = Object.fromEntries(\n Object.entries(\n column.obj.data.getDataAsJson<{\n data: Record<string | number, string>;\n }>().data,\n ).map((e) => [JSON.parse(e[0])[0], e[1]]),\n );\n\n return labels;\n }\n }\n return undefined;\n }\n\n /**\n * Selects columns based on the provided selectors, returning PColumn objects\n * with lazily loaded data.\n *\n * @param selectors - A predicate function, a single selector, or an array of selectors.\n * @returns An array of PColumn objects matching the selectors. Data is loaded on first access.\n */\n public selectColumns(\n selectors: ((spec: PColumnSpec) => boolean) | PColumnSelector | PColumnSelector[],\n ): PColumn<TreeNodeAccessor | undefined>[] {\n const predicate = typeof selectors === \"function\" ? selectors : selectorsToPredicate(selectors);\n\n const matchedSpecs = this.getSpecs().entries.filter(({ obj: spec }) => {\n if (!isPColumnSpec(spec)) return false;\n return predicate(spec);\n });\n\n // Map specs to PColumn objects with lazy data loading\n return matchedSpecs.map(({ ref, obj: spec }) => {\n // Type assertion needed because filter ensures it's PColumnSpec\n const pcolumnSpec = spec as PColumnSpec;\n let _cachedData: TreeNodeAccessor | undefined | null = null; // Use null to distinguish initial state from undefined result\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this; // Capture 'this' for use inside the getter\n\n return {\n id: canonicalize(ref) as PObjectId,\n spec: pcolumnSpec,\n get data(): TreeNodeAccessor | undefined {\n if (_cachedData !== null) {\n return _cachedData; // Return cached data (could be undefined if fetch failed)\n }\n\n _cachedData = self.getPColumnByRef(ref)?.data;\n return _cachedData;\n },\n } satisfies PColumn<TreeNodeAccessor | undefined>; // Cast needed because 'data' is a getter\n });\n }\n\n /**\n * Find labels data for a given axis id of a p-column.\n * @returns a map of axis value => label\n */\n public findLabelsForColumnAxis(\n column: PColumnSpec,\n axisIdx: number,\n ): Record<string | number, string> | undefined {\n const labels = this.findLabels(column.axesSpec[axisIdx]);\n if (!labels) return undefined;\n const axisKeys = readAnnotation(column, `pl7.app/axisKeys/${axisIdx}`);\n if (axisKeys !== undefined) {\n const keys = JSON.parse(axisKeys) as string[];\n return Object.fromEntries(\n keys.map((key) => {\n return [key, labels[key] ?? \"Unlabelled\"];\n }),\n );\n } else {\n return labels;\n }\n }\n}\n\n/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) */\nexport abstract class RenderCtxBase<Args = unknown, Data = unknown> {\n protected readonly ctx: GlobalCfgRenderCtx;\n\n constructor() {\n this.ctx = getCfgRenderCtx();\n }\n\n private dataCache?: { v: Data };\n\n public get data(): Data {\n if (this.dataCache === undefined) {\n const raw = this.ctx.data;\n const value = typeof raw === \"function\" ? raw() : raw;\n this.dataCache = { v: value ? JSON.parse(value) : ({} as Data) };\n }\n return this.dataCache.v;\n }\n\n // lazy rendering because this feature is rarely used\n private activeArgsCache?: { v?: Args };\n\n /**\n * Returns args snapshot the block was executed for (i.e. when \"Run\" button was pressed).\n * Returns undefined, if block was never executed or stopped mid-way execution, so that the result was cleared.\n * */\n public get activeArgs(): Args | undefined {\n if (this.activeArgsCache === undefined) {\n const raw = this.ctx.activeArgs;\n const value = typeof raw === \"function\" ? raw() : raw;\n this.activeArgsCache = {\n v: value ? JSON.parse(value) : undefined,\n };\n }\n return this.activeArgsCache.v;\n }\n\n // /** Can be used to determine features provided by the desktop instance. */\n // public get featureFlags() {\n // return this.ctx.featureFlags;\n // }\n\n private getNamedAccessor(name: string): TreeNodeAccessor | undefined {\n return ifDef(\n this.ctx.getAccessorHandleByName(name),\n (accessor) => new TreeNodeAccessor(accessor, [name]),\n );\n }\n\n public get prerun(): TreeNodeAccessor | undefined {\n return this.getNamedAccessor(StagingAccessorName);\n }\n\n public get outputs(): TreeNodeAccessor | undefined {\n return this.getNamedAccessor(MainAccessorName);\n }\n\n public readonly resultPool = new ResultPool();\n\n /**\n * Find labels data for a given axis id. It will search for a label column and return its data as a map.\n * @returns a map of axis value => label\n * @deprecated Use resultPool.findLabels instead\n */\n public findLabels(axis: AxisId): Record<string | number, string> | undefined {\n return this.resultPool.findLabels(axis);\n }\n\n private verifyInlineAndExplicitColumnsSupport(\n columns: (PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>)[],\n ) {\n const hasInlineColumns = columns.some(\n (c) => !(c.data instanceof TreeNodeAccessor) || isDataInfo(c.data),\n ); // Updated check for DataInfo\n const inlineColumnsSupport = this.ctx.featureFlags?.inlineColumnsSupport === true;\n if (hasInlineColumns && !inlineColumnsSupport)\n throw Error(`Inline or explicit columns not supported`); // Combined check\n\n // Removed redundant explicitColumns check\n }\n\n private patchPTableDef(\n def: PTableDef<PColumn<PColumnDataUniversal>>,\n ): PTableDef<PColumn<PColumnDataUniversal>> {\n if (!this.ctx.featureFlags?.pTablePartitionFiltersSupport) {\n // For old desktop move all partition filters to filters field as it doesn't read partitionFilters field\n def = {\n ...def,\n partitionFilters: [],\n filters: [...def.partitionFilters, ...def.filters],\n };\n }\n if (!this.ctx.featureFlags?.pFrameInSetFilterSupport) {\n def = {\n ...def,\n partitionFilters: patchInSetFilters(def.partitionFilters),\n filters: patchInSetFilters(def.filters),\n };\n }\n return def;\n }\n\n // TODO remove all non-PColumn fields\n public createPFrame(\n def: PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>>,\n ): PFrameHandle | undefined {\n this.verifyInlineAndExplicitColumnsSupport(def);\n if (!allPColumnsReady(def)) return undefined;\n return this.ctx.createPFrame(def.map((c) => transformPColumnData(c)));\n }\n\n // TODO remove all non-PColumn fields\n public createPTable(def: PTableDef<PColumn<PColumnDataUniversal>>): PTableHandle | undefined;\n public createPTable(def: {\n columns: PColumn<PColumnDataUniversal>[];\n filters?: PTableRecordFilter[];\n /** Table sorting */\n sorting?: PTableSorting[];\n }): PTableHandle | undefined;\n public createPTable(\n def:\n | PTableDef<PColumn<PColumnDataUniversal>>\n | {\n columns: PColumn<PColumnDataUniversal>[];\n filters?: PTableRecordFilter[];\n /** Table sorting */\n sorting?: PTableSorting[];\n },\n ): PTableHandle | undefined {\n let rawDef: PTableDef<PColumn<PColumnDataUniversal>>;\n if (\"columns\" in def) {\n rawDef = this.patchPTableDef({\n src: {\n type: \"full\",\n entries: def.columns.map((c) => ({ type: \"column\", column: c })),\n },\n partitionFilters: def.filters ?? [],\n filters: [],\n sorting: def.sorting ?? [],\n });\n } else {\n rawDef = this.patchPTableDef(def);\n }\n const columns = extractAllColumns(rawDef.src);\n this.verifyInlineAndExplicitColumnsSupport(columns);\n if (!allPColumnsReady(columns)) return undefined;\n return this.ctx.createPTable(mapPTableDef(rawDef, (po) => transformPColumnData(po)));\n }\n\n public createPTableV2(def: PTableDefV2<PColumn<PColumnDataUniversal>>): PTableHandle | undefined {\n const columns = collectSpecQueryColumns(def.query);\n this.verifyInlineAndExplicitColumnsSupport(columns);\n if (!allPColumnsReady(columns)) return undefined;\n return this.ctx.createPTableV2(mapPTableDefV2(def, (po) => transformPColumnData(po)));\n }\n\n /** @deprecated scheduled for removal from SDK */\n public getBlockLabel(blockId: string): string {\n return this.ctx.getBlockLabel(blockId);\n }\n\n public getCurrentUnstableMarker(): string | undefined {\n return this.ctx.getCurrentUnstableMarker();\n }\n\n public logInfo(msg: string): void {\n this.ctx.logInfo(msg);\n }\n\n public logWarn(msg: string): void {\n this.ctx.logWarn(msg);\n }\n\n public logError(msg: string): void {\n this.ctx.logError(msg);\n }\n}\n\n/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) for v3+ blocks */\nexport class RenderCtx<Args = unknown, Data = unknown> extends RenderCtxBase<Args, Data> {\n private argsCache?: { v: Args | undefined };\n public get args(): Args | undefined {\n if (this.argsCache === undefined) {\n const raw = this.ctx.args;\n const value = typeof raw === \"function\" ? raw() : raw;\n this.argsCache = { v: value === undefined ? undefined : JSON.parse(value) };\n }\n return this.argsCache.v;\n }\n}\n\n/** Render context for legacy v1/v2 blocks - provides backward compatibility */\nexport class RenderCtxLegacy<Args = unknown, UiState = unknown> extends RenderCtxBase<\n Args,\n UiState\n> {\n private argsCache?: { v: Args };\n\n public get args(): Args {\n if (this.argsCache === undefined) {\n const raw = this.ctx.args;\n const value = typeof raw === \"function\" ? raw() : raw;\n this.argsCache = { v: JSON.parse(value) };\n }\n return this.argsCache.v;\n }\n\n private uiStateCache?: { v: UiState };\n\n public get uiState(): UiState {\n if (this.uiStateCache === undefined) {\n const raw = this.ctx.uiState!;\n const value = typeof raw === \"function\" ? raw() : raw;\n this.uiStateCache = { v: value ? JSON.parse(value) : ({} as UiState) };\n }\n return this.uiStateCache.v;\n }\n}\n\nexport type RenderFunction<Args = unknown, State = unknown, Ret = unknown> = (\n rCtx: RenderCtx<Args, State>,\n) => Ret;\n\nexport type RenderFunctionLegacy<Args = unknown, State = unknown, Ret = unknown> = (\n rCtx: RenderCtxLegacy<Args, State>,\n) => Ret;\n\nexport type UnwrapFutureRef<K> =\n K extends FutureRef<infer T>\n ? T\n : K extends bigint | boolean | null | number | string | symbol | undefined\n ? K\n : { [key in keyof K]: UnwrapFutureRef<K[key]> };\n\nexport type InferRenderFunctionReturn<RF extends AnyFunction> = RF extends (...args: any) => infer R\n ? UnwrapFutureRef<R>\n : never;\n"],"names":["mapPObjectData","TreeNodeAccessor","isDataInfo","mapDataInfo","getCfgRenderCtx","selectorsToPredicate","deriveLabels","withEnrichments","AnchoredIdDeriver","isPlRef","PColumnCollection","mapValueInVOE","ensurePColumn","isPColumnSpec","isPColumn","PColumnName","readAnnotation","ifDef","accessor","StagingAccessorName","MainAccessorName","patchInSetFilters","allPColumnsReady","extractAllColumns","mapPTableDef","collectSpecQueryColumns","mapPTableDefV2"],"mappings":"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"}
@@ -146,12 +146,12 @@ export declare class ResultPool implements ColumnProvider, AxisLabelProvider {
146
146
  findLabelsForColumnAxis(column: PColumnSpec, axisIdx: number): Record<string | number, string> | undefined;
147
147
  }
148
148
  /** Main entry point to the API available within model lambdas (like outputs, sections, etc..) */
149
- export declare abstract class RenderCtxBase<Args, Data> {
149
+ export declare abstract class RenderCtxBase<Args = unknown, Data = unknown> {
150
150
  protected readonly ctx: GlobalCfgRenderCtx;
151
151
  constructor();
152
- private _dataCache?;
152
+ private dataCache?;
153
153
  get data(): Data;
154
- private _activeArgsCache?;
154
+ private activeArgsCache?;
155
155
  /**
156
156
  * Returns args snapshot the block was executed for (i.e. when "Run" button was pressed).
157
157
  * Returns undefined, if block was never executed or stopped mid-way execution, so that the result was cleared.
@@ -186,15 +186,15 @@ export declare abstract class RenderCtxBase<Args, Data> {
186
186
  logError(msg: string): void;
187
187
  }
188
188
  /** Main entry point to the API available within model lambdas (like outputs, sections, etc..) for v3+ blocks */
189
- export declare class RenderCtx<Args, Data> extends RenderCtxBase<Args, Data> {
190
- private _argsCache?;
189
+ export declare class RenderCtx<Args = unknown, Data = unknown> extends RenderCtxBase<Args, Data> {
190
+ private argsCache?;
191
191
  get args(): Args | undefined;
192
192
  }
193
193
  /** Render context for legacy v1/v2 blocks - provides backward compatibility */
194
- export declare class RenderCtxLegacy<Args, UiState> extends RenderCtxBase<Args, UiState> {
195
- private _argsCache?;
194
+ export declare class RenderCtxLegacy<Args = unknown, UiState = unknown> extends RenderCtxBase<Args, UiState> {
195
+ private argsCache?;
196
196
  get args(): Args;
197
- private _uiStateCache?;
197
+ private uiStateCache?;
198
198
  get uiState(): UiState;
199
199
  }
200
200
  export type RenderFunction<Args = unknown, State = unknown, Ret = unknown> = (rCtx: RenderCtx<Args, State>) => Ret;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"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"}