@platforma-sdk/model 1.75.5 → 1.75.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/block_model.cjs +3 -3
- package/dist/block_model.cjs.map +1 -1
- package/dist/block_model.d.ts +4 -5
- package/dist/block_model.d.ts.map +1 -1
- package/dist/block_model.js +3 -3
- package/dist/block_model.js.map +1 -1
- package/dist/block_model_legacy.cjs +2 -1
- package/dist/block_model_legacy.cjs.map +1 -1
- package/dist/block_model_legacy.js +2 -1
- package/dist/block_model_legacy.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/labels/derive_distinct_labels.cjs +58 -23
- package/dist/labels/derive_distinct_labels.cjs.map +1 -1
- package/dist/labels/derive_distinct_labels.js +58 -23
- package/dist/labels/derive_distinct_labels.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.js +1 -1
- package/dist/platforma.d.ts +8 -5
- package/dist/platforma.d.ts.map +1 -1
- package/dist/plugin_handle.cjs.map +1 -1
- package/dist/plugin_handle.d.ts +1 -1
- package/dist/plugin_handle.js.map +1 -1
- package/dist/plugin_model.cjs +34 -37
- package/dist/plugin_model.cjs.map +1 -1
- package/dist/plugin_model.d.ts +55 -53
- package/dist/plugin_model.d.ts.map +1 -1
- package/dist/plugin_model.js +34 -37
- package/dist/plugin_model.js.map +1 -1
- package/package.json +8 -8
- package/src/block_model.ts +16 -5
- package/src/block_model_legacy.ts +1 -0
- package/src/index.ts +2 -0
- package/src/labels/derive_distinct_labels.test.ts +22 -0
- package/src/labels/derive_distinct_labels.ts +101 -31
- package/src/platforma.ts +11 -5
- package/src/plugin_handle.ts +1 -1
- package/src/plugin_model.ts +189 -76
package/dist/plugin_model.d.ts
CHANGED
|
@@ -14,9 +14,18 @@ type PluginOutputFn<Data extends PluginData, Params extends PluginParams, ModelS
|
|
|
14
14
|
type PluginOutputFns<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, ModelServices, UiServices> = { [K in keyof Outputs]: PluginOutputFn<Data, Params, ModelServices, UiServices, Outputs[K]> };
|
|
15
15
|
/** Symbol for internal plugin model creation — not accessible to external consumers */
|
|
16
16
|
declare const CREATE_PLUGIN_MODEL: unique symbol;
|
|
17
|
+
/**
|
|
18
|
+
* Runtime definition for a single public output field.
|
|
19
|
+
* Stored in PluginModel and passed through BlockModelInfo to the UI layer.
|
|
20
|
+
*/
|
|
21
|
+
type PublicOutputFieldDef = {
|
|
22
|
+
readonly getter: (data: unknown) => unknown;
|
|
23
|
+
};
|
|
24
|
+
type PublicOutputDef<PublicOutputs extends PluginPublicOutputs> = { [K in keyof PublicOutputs]: PublicOutputFieldDef };
|
|
17
25
|
type PluginData = Record<string, unknown>;
|
|
18
26
|
type PluginParams = undefined | Record<string, unknown>;
|
|
19
27
|
type PluginOutputs = Record<string, unknown>;
|
|
28
|
+
type PluginPublicOutputs = Record<string, unknown>;
|
|
20
29
|
type PluginConfig = undefined | Record<string, unknown>;
|
|
21
30
|
/**
|
|
22
31
|
* Plugin data model with typed migration chain and config-aware initialization.
|
|
@@ -128,7 +137,7 @@ declare class PluginDataModelWithRecover<Data extends PluginData, Versions exten
|
|
|
128
137
|
* @typeParam Outputs - Plugin outputs type
|
|
129
138
|
* @typeParam TransferData - Type of data entering the plugin via transfer (never if no transfer)
|
|
130
139
|
*/
|
|
131
|
-
declare class PluginInstance<Id extends string = string, Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, TransferData = never, ModelServices = unknown, UiServices = unknown> implements TransferTarget<Id, TransferData> {
|
|
140
|
+
declare class PluginInstance<Id extends string = string, Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, TransferData = never, ModelServices = unknown, UiServices = unknown> implements TransferTarget<Id, TransferData> {
|
|
132
141
|
readonly id: Id;
|
|
133
142
|
readonly transferVersion: string;
|
|
134
143
|
/** @internal Phantom for type inference; never set at runtime. */
|
|
@@ -138,50 +147,47 @@ declare class PluginInstance<Id extends string = string, Data extends PluginData
|
|
|
138
147
|
outputs: Outputs;
|
|
139
148
|
modelServices: ModelServices;
|
|
140
149
|
uiServices: UiServices;
|
|
150
|
+
publicOutputs: PublicOutputs;
|
|
141
151
|
};
|
|
142
152
|
/** Bound closure that creates the PluginModel. Config is captured at factory.create() time. */
|
|
143
153
|
private readonly createPluginModel;
|
|
144
154
|
private constructor();
|
|
145
155
|
/** @internal Accepts concrete Config — binds it into a closure, avoiding Config variance issues. */
|
|
146
|
-
static [FROM_BUILDER]<Id extends string, Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, TransferData, Config extends PluginConfig = PluginConfig, ModelServices = unknown, UiServices = unknown>(id: Id, factory: PluginModelFactory<Data, Params, Outputs, Config, Record<string, unknown>, ModelServices, UiServices>, transferVersion: string, config?: Config): PluginInstance<Id, Data, Params, Outputs, TransferData, ModelServices, UiServices>;
|
|
156
|
+
static [FROM_BUILDER]<Id extends string, Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, TransferData = never, Config extends PluginConfig = PluginConfig, ModelServices = unknown, UiServices = unknown>(id: Id, factory: PluginModelFactory<Data, Params, Outputs, PublicOutputs, Config, Record<string, unknown>, ModelServices, UiServices>, transferVersion: string, config?: Config): PluginInstance<Id, Data, Params, Outputs, PublicOutputs, TransferData, ModelServices, UiServices>;
|
|
147
157
|
/** @internal Create a PluginModel from this instance. Used by BlockModelV3.plugin(). */
|
|
148
|
-
[CREATE_PLUGIN_MODEL](): PluginModel<Data, Params, Outputs, ModelServices, UiServices>;
|
|
158
|
+
[CREATE_PLUGIN_MODEL](): PluginModel<Data, Params, Outputs, PublicOutputs, ModelServices, UiServices>;
|
|
149
159
|
}
|
|
150
160
|
/**
|
|
151
161
|
* Configured plugin instance returned by PluginModelFactory[CREATE_PLUGIN_MODEL]().
|
|
152
162
|
* Contains the plugin's name, data model, and output definitions.
|
|
153
163
|
*/
|
|
154
|
-
declare class PluginModel<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, ModelServices = {}, UiServices = {}> {
|
|
164
|
+
declare class PluginModel<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, ModelServices = {}, UiServices = {}> {
|
|
155
165
|
/** Globally unique plugin name */
|
|
156
166
|
readonly name: PluginName;
|
|
157
167
|
/** Data model instance for this plugin */
|
|
158
168
|
readonly dataModel: DataModel<Data>;
|
|
159
169
|
/** Output definitions - functions that compute outputs from plugin context */
|
|
160
170
|
readonly outputs: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
161
|
-
/** Per-output flags (e.g. withStatus) */
|
|
162
|
-
readonly outputFlags: Record<string, {
|
|
163
|
-
withStatus: boolean;
|
|
164
|
-
}>;
|
|
165
171
|
/** Feature flags declared by this plugin */
|
|
166
172
|
readonly featureFlags?: BlockCodeKnownFeatureFlags;
|
|
167
173
|
/** Create fresh default data. Config (if any) is captured at creation time. */
|
|
168
174
|
readonly getDefaultData: () => DataVersioned<Data>;
|
|
175
|
+
/** Public output definitions — accessible without usePlugin() via app.plugins */
|
|
176
|
+
readonly publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
169
177
|
private constructor();
|
|
170
178
|
/**
|
|
171
179
|
* Internal method for creating PluginModel from factory.
|
|
172
180
|
* Uses Symbol key to prevent external access.
|
|
173
181
|
* @internal
|
|
174
182
|
*/
|
|
175
|
-
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, ModelServices = {}, UiServices = {}>(options: {
|
|
183
|
+
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, ModelServices = {}, UiServices = {}>(options: {
|
|
176
184
|
name: PluginName;
|
|
177
185
|
dataModel: DataModel<Data>;
|
|
178
186
|
outputs: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
179
|
-
outputFlags: Record<string, {
|
|
180
|
-
withStatus: boolean;
|
|
181
|
-
}>;
|
|
182
187
|
featureFlags?: BlockCodeKnownFeatureFlags;
|
|
183
188
|
getDefaultData: () => DataVersioned<Data>;
|
|
184
|
-
|
|
189
|
+
publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
190
|
+
}): PluginModel<Data, Params, Outputs, PublicOutputs, ModelServices, UiServices>;
|
|
185
191
|
/**
|
|
186
192
|
* Creates a new PluginModelBuilder with a PluginDataModel (supports transfer / config).
|
|
187
193
|
*
|
|
@@ -219,13 +225,15 @@ declare class PluginModel<Data extends PluginData = PluginData, Params extends P
|
|
|
219
225
|
}): PluginModelInitialBuilder<Data, Params, Config, {}, ResolveModelServices<Flags>, ResolveUiServices<Flags>>;
|
|
220
226
|
}
|
|
221
227
|
/** Plugin factory returned by PluginModelBuilder.build(). */
|
|
222
|
-
interface PluginFactory<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> extends PluginFactoryLike<Data, Params, Outputs, ModelServices, UiServices> {
|
|
228
|
+
interface PluginFactory<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> extends PluginFactoryLike<Data, Params, Outputs, ModelServices, UiServices> {
|
|
223
229
|
/** Create a named plugin instance, optionally with transfer at a specific version. */
|
|
224
230
|
create<const Id extends string, const V extends string & keyof Versions = never>(options: {
|
|
225
231
|
pluginId: Id;
|
|
226
232
|
transferAt?: V;
|
|
227
233
|
config?: Config;
|
|
228
|
-
}): PluginInstance<Id, Data, Params, Outputs, Versions[V], ModelServices, UiServices>;
|
|
234
|
+
}): PluginInstance<Id, Data, Params, Outputs, PublicOutputs, Versions[V], ModelServices, UiServices>;
|
|
235
|
+
/** Public output field definitions declared via .publicOutput(). */
|
|
236
|
+
readonly publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
229
237
|
/**
|
|
230
238
|
* @internal Phantom field for structural type extraction.
|
|
231
239
|
* Enables InferFactoryData/InferFactoryOutputs to work via PluginFactoryLike.
|
|
@@ -238,34 +246,33 @@ interface PluginFactory<Data extends PluginData = PluginData, Params extends Plu
|
|
|
238
246
|
uiServices: UiServices;
|
|
239
247
|
config: Config;
|
|
240
248
|
versions: Versions;
|
|
249
|
+
publicOutputs: PublicOutputs;
|
|
241
250
|
};
|
|
242
251
|
}
|
|
243
|
-
declare class PluginModelFactory<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> implements PluginFactory<Data, Params, Outputs, Config, Versions, ModelServices, UiServices> {
|
|
252
|
+
declare class PluginModelFactory<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> implements PluginFactory<Data, Params, Outputs, PublicOutputs, Config, Versions, ModelServices, UiServices> {
|
|
244
253
|
private readonly name;
|
|
245
254
|
private readonly dataFn;
|
|
246
255
|
private readonly getDefaultDataFn?;
|
|
247
256
|
readonly outputs: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
248
|
-
private readonly outputFlags;
|
|
249
257
|
private readonly featureFlags?;
|
|
258
|
+
readonly publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
250
259
|
private constructor();
|
|
251
260
|
/** @internal */
|
|
252
|
-
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, Config extends PluginConfig, Versions extends Record<string, unknown
|
|
261
|
+
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}>(options: {
|
|
253
262
|
name: PluginName;
|
|
254
263
|
dataFn: (config?: Config) => DataModel<Data>;
|
|
255
264
|
getDefaultDataFn?: (config?: Config) => DataVersioned<Data>;
|
|
256
265
|
outputs: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
257
|
-
outputFlags: Record<string, {
|
|
258
|
-
withStatus: boolean;
|
|
259
|
-
}>;
|
|
260
266
|
featureFlags?: BlockCodeKnownFeatureFlags;
|
|
261
|
-
|
|
267
|
+
publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
268
|
+
}): PluginModelFactory<Data, Params, Outputs, PublicOutputs, Config, Versions, ModelServices, UiServices>;
|
|
262
269
|
create<const Id extends string, const V extends string & keyof Versions = never>(options: {
|
|
263
270
|
pluginId: Id;
|
|
264
271
|
transferAt?: V;
|
|
265
272
|
config?: Config;
|
|
266
|
-
}): PluginInstance<Id, Data, Params, Outputs, Versions[V], ModelServices, UiServices>;
|
|
273
|
+
}): PluginInstance<Id, Data, Params, Outputs, PublicOutputs, Versions[V], ModelServices, UiServices>;
|
|
267
274
|
/** @internal Create a PluginModel from config. Config is captured in getDefaultData closure. */
|
|
268
|
-
[CREATE_PLUGIN_MODEL](config?: Config): PluginModel<Data, Params, Outputs, ModelServices, UiServices>;
|
|
275
|
+
[CREATE_PLUGIN_MODEL](config?: Config): PluginModel<Data, Params, Outputs, PublicOutputs, ModelServices, UiServices>;
|
|
269
276
|
}
|
|
270
277
|
/**
|
|
271
278
|
* Builder for creating PluginType with type-safe output definitions.
|
|
@@ -286,64 +293,59 @@ declare class PluginModelFactory<Data extends PluginData = PluginData, Params ex
|
|
|
286
293
|
* .output('model', (ctx) => createTableModel(ctx))
|
|
287
294
|
* .build();
|
|
288
295
|
*/
|
|
289
|
-
declare class PluginModelBuilder<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> {
|
|
296
|
+
declare class PluginModelBuilder<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Outputs extends PluginOutputs = PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> {
|
|
290
297
|
protected readonly name: PluginName;
|
|
291
298
|
protected readonly dataFn: (config?: Config) => DataModel<Data>;
|
|
292
299
|
protected readonly getDefaultDataFn?: (config?: Config) => DataVersioned<Data>;
|
|
293
300
|
private readonly outputs;
|
|
294
|
-
private readonly outputFlags;
|
|
295
301
|
protected readonly featureFlags?: BlockCodeKnownFeatureFlags;
|
|
302
|
+
private readonly publicOutputDef;
|
|
296
303
|
protected constructor(options: {
|
|
297
304
|
name: PluginName;
|
|
298
305
|
dataFn: (config?: Config) => DataModel<Data>;
|
|
299
306
|
getDefaultDataFn?: (config?: Config) => DataVersioned<Data>;
|
|
300
307
|
outputs?: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
301
|
-
outputFlags?: Record<string, {
|
|
302
|
-
withStatus: boolean;
|
|
303
|
-
}>;
|
|
304
308
|
featureFlags?: BlockCodeKnownFeatureFlags;
|
|
309
|
+
publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
305
310
|
});
|
|
306
311
|
/** @internal */
|
|
307
|
-
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, Config extends PluginConfig, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}>(options: {
|
|
312
|
+
static [FROM_BUILDER]<Data extends PluginData, Params extends PluginParams, Outputs extends PluginOutputs, PublicOutputs extends PluginPublicOutputs = PluginPublicOutputs, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}>(options: {
|
|
308
313
|
name: PluginName;
|
|
309
314
|
dataFn: (config?: Config) => DataModel<Data>;
|
|
310
315
|
getDefaultDataFn?: (config?: Config) => DataVersioned<Data>;
|
|
311
316
|
outputs?: PluginOutputFns<Data, Params, Outputs, ModelServices, UiServices>;
|
|
312
|
-
outputFlags?: Record<string, {
|
|
313
|
-
withStatus: boolean;
|
|
314
|
-
}>;
|
|
315
317
|
featureFlags?: BlockCodeKnownFeatureFlags;
|
|
316
|
-
|
|
318
|
+
publicOutputDef: PublicOutputDef<PublicOutputs>;
|
|
319
|
+
}): PluginModelBuilder<Data, Params, Outputs, PublicOutputs, Config, Versions, ModelServices, UiServices>;
|
|
317
320
|
/**
|
|
318
321
|
* Adds an output to the plugin.
|
|
322
|
+
* All plugin outputs are always wrapped with status — the UI receives
|
|
323
|
+
* {@link OutputWithStatus} for every output, allowing it to distinguish
|
|
324
|
+
* between pending, success, and error states.
|
|
319
325
|
*
|
|
320
326
|
* @param key - Output name
|
|
321
327
|
* @param fn - Function that computes the output value from plugin context
|
|
322
|
-
* @returns
|
|
328
|
+
* @returns Builder with the new output added
|
|
323
329
|
*
|
|
324
330
|
* @example
|
|
325
331
|
* .output('model', (ctx) => createModel(ctx.params.columns, ctx.data.state))
|
|
326
|
-
* .output('
|
|
332
|
+
* .output('pFrame', (ctx) => ctx.createPFrame([...]))
|
|
327
333
|
*/
|
|
328
|
-
output<const Key extends string, T>(key: Key, fn: (ctx: PluginRenderCtx<PluginFactoryLike<Data, Params, Record<string, unknown>, ModelServices, UiServices>>) => T): PluginModelBuilder<Data, Params, Outputs & { [K in Key]: T }, Config, Versions, ModelServices, UiServices>;
|
|
334
|
+
output<const Key extends string, T>(key: Key, fn: (ctx: PluginRenderCtx<PluginFactoryLike<Data, Params, Record<string, unknown>, ModelServices, UiServices>>) => T): PluginModelBuilder<Data, Params, Outputs & { [K in Key]: OutputWithStatus<T> }, PublicOutputs, Config, Versions, ModelServices, UiServices>;
|
|
329
335
|
/**
|
|
330
|
-
*
|
|
336
|
+
* Exposes a plugin data field as a public output — accessible without `usePlugin()`
|
|
337
|
+
* via `app.plugins.pluginName.publicOutputs.key`.
|
|
331
338
|
*
|
|
332
|
-
* The
|
|
333
|
-
*
|
|
339
|
+
* The getter runs against the plugin's reactive data object.
|
|
340
|
+
* Public outputs are read-only.
|
|
334
341
|
*
|
|
335
|
-
* @param key -
|
|
336
|
-
* @param
|
|
337
|
-
* @returns PluginModel with the new status-wrapped output added
|
|
342
|
+
* @param key - Name of the public output field
|
|
343
|
+
* @param getter - Function deriving the value from plugin data
|
|
338
344
|
*
|
|
339
345
|
* @example
|
|
340
|
-
* .
|
|
341
|
-
* const pCols = ctx.params.pFrame?.getPColumns();
|
|
342
|
-
* if (pCols === undefined) return undefined;
|
|
343
|
-
* return createPlDataTableV2(ctx, pCols, ctx.data.tableState);
|
|
344
|
-
* })
|
|
346
|
+
* .publicOutput('selection', (d) => d.selection)
|
|
345
347
|
*/
|
|
346
|
-
|
|
348
|
+
publicOutput<const Key extends string, T>(key: Key, getter: (data: Data) => T): PluginModelBuilder<Data, Params, Outputs, PublicOutputs & { [K in Key]: T }, Config, Versions, ModelServices, UiServices>;
|
|
347
349
|
/**
|
|
348
350
|
* Finalizes the plugin definition and returns a PluginFactory.
|
|
349
351
|
*
|
|
@@ -357,13 +359,13 @@ declare class PluginModelBuilder<Data extends PluginData = PluginData, Params ex
|
|
|
357
359
|
* // Create a named instance:
|
|
358
360
|
* const table = myPlugin.create({ pluginId: 'mainTable', config: { ... } });
|
|
359
361
|
*/
|
|
360
|
-
build(): PluginFactory<Data, Params, Outputs, Config, Versions, ModelServices, UiServices>;
|
|
362
|
+
build(): PluginFactory<Data, Params, Outputs, PublicOutputs, Config, Versions, ModelServices, UiServices>;
|
|
361
363
|
}
|
|
362
364
|
/**
|
|
363
365
|
* Initial builder returned by PluginModel.define(). Extends PluginModelBuilder with .params().
|
|
364
366
|
* Once .params() or .output() is called, transitions to PluginModelBuilder (no second .params()).
|
|
365
367
|
*/
|
|
366
|
-
declare class PluginModelInitialBuilder<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> extends PluginModelBuilder<Data, Params, {}, Config, Versions, ModelServices, UiServices> {
|
|
368
|
+
declare class PluginModelInitialBuilder<Data extends PluginData = PluginData, Params extends PluginParams = undefined, Config extends PluginConfig = undefined, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}> extends PluginModelBuilder<Data, Params, {}, {}, Config, Versions, ModelServices, UiServices> {
|
|
367
369
|
/** @internal */
|
|
368
370
|
static create<Data extends PluginData, Config extends PluginConfig, Versions extends Record<string, unknown> = {}, ModelServices = {}, UiServices = {}>(options: {
|
|
369
371
|
name: PluginName;
|
|
@@ -380,8 +382,8 @@ declare class PluginModelInitialBuilder<Data extends PluginData = PluginData, Pa
|
|
|
380
382
|
* .params<{ title: string }>()
|
|
381
383
|
* .output('displayText', (ctx) => ctx.params.title)
|
|
382
384
|
*/
|
|
383
|
-
params<P extends PluginParams>(): PluginModelBuilder<Data, P, {}, Config, Versions, ModelServices, UiServices>;
|
|
385
|
+
params<P extends PluginParams>(): PluginModelBuilder<Data, P, {}, {}, Config, Versions, ModelServices, UiServices>;
|
|
384
386
|
}
|
|
385
387
|
//#endregion
|
|
386
|
-
export { PluginConfig, PluginData, PluginDataModel, PluginDataModelBuilder, PluginDataModelVersions, PluginFactory, PluginInstance, PluginModel, PluginOutputs, PluginParams };
|
|
388
|
+
export { PluginConfig, PluginData, PluginDataModel, PluginDataModelBuilder, PluginDataModelVersions, PluginFactory, PluginInstance, PluginModel, PluginOutputs, PluginParams, PluginPublicOutputs, PublicOutputFieldDef };
|
|
387
389
|
//# sourceMappingURL=plugin_model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin_model.d.ts","names":[],"sources":["../src/plugin_model.ts"],"mappings":";;;;;;;;AAuB0C;AAAA,cAApC,YAAA;;KAGD,cAAA,cACU,UAAA,iBACE,YAAA,mCAKf,GAAA,EAAK,eAAA,CACH,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,MAAA,mBAAyB,aAAA,EAAe,UAAA,OAEvE,CAAA;;KAGA,eAAA,cACU,UAAA,iBACE,YAAA,kBACC,aAAA,6CAIJ,OAAA,GAAU,cAAA,CAAe,IAAA,EAAM,MAAA,EAAQ,aAAA,EAAe,UAAA,EAAY,OAAA,CAAQ,CAAA;;cAI3E,mBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"plugin_model.d.ts","names":[],"sources":["../src/plugin_model.ts"],"mappings":"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"}
|
package/dist/plugin_model.js
CHANGED
|
@@ -208,19 +208,19 @@ var PluginModel = class PluginModel {
|
|
|
208
208
|
dataModel;
|
|
209
209
|
/** Output definitions - functions that compute outputs from plugin context */
|
|
210
210
|
outputs;
|
|
211
|
-
/** Per-output flags (e.g. withStatus) */
|
|
212
|
-
outputFlags;
|
|
213
211
|
/** Feature flags declared by this plugin */
|
|
214
212
|
featureFlags;
|
|
215
213
|
/** Create fresh default data. Config (if any) is captured at creation time. */
|
|
216
214
|
getDefaultData;
|
|
215
|
+
/** Public output definitions — accessible without usePlugin() via app.plugins */
|
|
216
|
+
publicOutputDef;
|
|
217
217
|
constructor(options) {
|
|
218
218
|
this.name = options.name;
|
|
219
219
|
this.dataModel = options.dataModel;
|
|
220
220
|
this.outputs = options.outputs;
|
|
221
|
-
this.outputFlags = options.outputFlags;
|
|
222
221
|
this.featureFlags = options.featureFlags;
|
|
223
222
|
this.getDefaultData = options.getDefaultData;
|
|
223
|
+
this.publicOutputDef = options.publicOutputDef;
|
|
224
224
|
}
|
|
225
225
|
/**
|
|
226
226
|
* Internal method for creating PluginModel from factory.
|
|
@@ -252,15 +252,15 @@ var PluginModelFactory = class PluginModelFactory {
|
|
|
252
252
|
dataFn;
|
|
253
253
|
getDefaultDataFn;
|
|
254
254
|
outputs;
|
|
255
|
-
outputFlags;
|
|
256
255
|
featureFlags;
|
|
256
|
+
publicOutputDef;
|
|
257
257
|
constructor(options) {
|
|
258
258
|
this.name = options.name;
|
|
259
259
|
this.dataFn = options.dataFn;
|
|
260
260
|
this.getDefaultDataFn = options.getDefaultDataFn;
|
|
261
261
|
this.outputs = options.outputs;
|
|
262
|
-
this.outputFlags = options.outputFlags;
|
|
263
262
|
this.featureFlags = options.featureFlags;
|
|
263
|
+
this.publicOutputDef = options.publicOutputDef;
|
|
264
264
|
}
|
|
265
265
|
/** @internal */
|
|
266
266
|
static [FROM_BUILDER](options) {
|
|
@@ -278,9 +278,9 @@ var PluginModelFactory = class PluginModelFactory {
|
|
|
278
278
|
name: this.name,
|
|
279
279
|
dataModel,
|
|
280
280
|
outputs: this.outputs,
|
|
281
|
-
outputFlags: this.outputFlags,
|
|
282
281
|
featureFlags: this.featureFlags,
|
|
283
|
-
getDefaultData: getDefaultDataFn ? () => getDefaultDataFn(config) : () => dataModel.getDefaultData()
|
|
282
|
+
getDefaultData: getDefaultDataFn ? () => getDefaultDataFn(config) : () => dataModel.getDefaultData(),
|
|
283
|
+
publicOutputDef: this.publicOutputDef
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
286
|
};
|
|
@@ -308,15 +308,15 @@ var PluginModelBuilder = class PluginModelBuilder {
|
|
|
308
308
|
dataFn;
|
|
309
309
|
getDefaultDataFn;
|
|
310
310
|
outputs;
|
|
311
|
-
outputFlags;
|
|
312
311
|
featureFlags;
|
|
312
|
+
publicOutputDef;
|
|
313
313
|
constructor(options) {
|
|
314
314
|
this.name = options.name;
|
|
315
315
|
this.dataFn = options.dataFn;
|
|
316
316
|
this.getDefaultDataFn = options.getDefaultDataFn;
|
|
317
317
|
this.outputs = options.outputs ?? {};
|
|
318
|
-
this.outputFlags = options.outputFlags ?? {};
|
|
319
318
|
this.featureFlags = options.featureFlags;
|
|
319
|
+
this.publicOutputDef = options.publicOutputDef;
|
|
320
320
|
}
|
|
321
321
|
/** @internal */
|
|
322
322
|
static [FROM_BUILDER](options) {
|
|
@@ -324,14 +324,17 @@ var PluginModelBuilder = class PluginModelBuilder {
|
|
|
324
324
|
}
|
|
325
325
|
/**
|
|
326
326
|
* Adds an output to the plugin.
|
|
327
|
+
* All plugin outputs are always wrapped with status — the UI receives
|
|
328
|
+
* {@link OutputWithStatus} for every output, allowing it to distinguish
|
|
329
|
+
* between pending, success, and error states.
|
|
327
330
|
*
|
|
328
331
|
* @param key - Output name
|
|
329
332
|
* @param fn - Function that computes the output value from plugin context
|
|
330
|
-
* @returns
|
|
333
|
+
* @returns Builder with the new output added
|
|
331
334
|
*
|
|
332
335
|
* @example
|
|
333
336
|
* .output('model', (ctx) => createModel(ctx.params.columns, ctx.data.state))
|
|
334
|
-
* .output('
|
|
337
|
+
* .output('pFrame', (ctx) => ctx.createPFrame([...]))
|
|
335
338
|
*/
|
|
336
339
|
output(key, fn) {
|
|
337
340
|
return new PluginModelBuilder({
|
|
@@ -343,42 +346,32 @@ var PluginModelBuilder = class PluginModelBuilder {
|
|
|
343
346
|
...this.outputs,
|
|
344
347
|
[key]: fn
|
|
345
348
|
},
|
|
346
|
-
|
|
347
|
-
...this.outputFlags,
|
|
348
|
-
[key]: { withStatus: false }
|
|
349
|
-
}
|
|
349
|
+
publicOutputDef: this.publicOutputDef
|
|
350
350
|
});
|
|
351
351
|
}
|
|
352
352
|
/**
|
|
353
|
-
*
|
|
353
|
+
* Exposes a plugin data field as a public output — accessible without `usePlugin()`
|
|
354
|
+
* via `app.plugins.pluginName.publicOutputs.key`.
|
|
354
355
|
*
|
|
355
|
-
* The
|
|
356
|
-
*
|
|
356
|
+
* The getter runs against the plugin's reactive data object.
|
|
357
|
+
* Public outputs are read-only.
|
|
357
358
|
*
|
|
358
|
-
* @param key -
|
|
359
|
-
* @param
|
|
360
|
-
* @returns PluginModel with the new status-wrapped output added
|
|
359
|
+
* @param key - Name of the public output field
|
|
360
|
+
* @param getter - Function deriving the value from plugin data
|
|
361
361
|
*
|
|
362
362
|
* @example
|
|
363
|
-
* .
|
|
364
|
-
* const pCols = ctx.params.pFrame?.getPColumns();
|
|
365
|
-
* if (pCols === undefined) return undefined;
|
|
366
|
-
* return createPlDataTableV2(ctx, pCols, ctx.data.tableState);
|
|
367
|
-
* })
|
|
363
|
+
* .publicOutput('selection', (d) => d.selection)
|
|
368
364
|
*/
|
|
369
|
-
|
|
365
|
+
publicOutput(key, getter) {
|
|
370
366
|
return new PluginModelBuilder({
|
|
371
367
|
name: this.name,
|
|
372
368
|
dataFn: this.dataFn,
|
|
373
369
|
getDefaultDataFn: this.getDefaultDataFn,
|
|
374
370
|
featureFlags: this.featureFlags,
|
|
375
|
-
outputs:
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
outputFlags: {
|
|
380
|
-
...this.outputFlags,
|
|
381
|
-
[key]: { withStatus: true }
|
|
371
|
+
outputs: this.outputs,
|
|
372
|
+
publicOutputDef: {
|
|
373
|
+
...this.publicOutputDef,
|
|
374
|
+
[key]: { getter }
|
|
382
375
|
}
|
|
383
376
|
});
|
|
384
377
|
}
|
|
@@ -401,7 +394,7 @@ var PluginModelBuilder = class PluginModelBuilder {
|
|
|
401
394
|
dataFn: this.dataFn,
|
|
402
395
|
getDefaultDataFn: this.getDefaultDataFn,
|
|
403
396
|
outputs: this.outputs,
|
|
404
|
-
|
|
397
|
+
publicOutputDef: this.publicOutputDef,
|
|
405
398
|
featureFlags: this.featureFlags
|
|
406
399
|
});
|
|
407
400
|
}
|
|
@@ -413,7 +406,10 @@ var PluginModelBuilder = class PluginModelBuilder {
|
|
|
413
406
|
var PluginModelInitialBuilder = class PluginModelInitialBuilder extends PluginModelBuilder {
|
|
414
407
|
/** @internal */
|
|
415
408
|
static create(options) {
|
|
416
|
-
return new PluginModelInitialBuilder(
|
|
409
|
+
return new PluginModelInitialBuilder({
|
|
410
|
+
...options,
|
|
411
|
+
publicOutputDef: {}
|
|
412
|
+
});
|
|
417
413
|
}
|
|
418
414
|
/**
|
|
419
415
|
* Sets the Params type for this plugin — the shape of data derived from the block's
|
|
@@ -429,7 +425,8 @@ var PluginModelInitialBuilder = class PluginModelInitialBuilder extends PluginMo
|
|
|
429
425
|
name: this.name,
|
|
430
426
|
dataFn: this.dataFn,
|
|
431
427
|
getDefaultDataFn: this.getDefaultDataFn,
|
|
432
|
-
featureFlags: this.featureFlags
|
|
428
|
+
featureFlags: this.featureFlags,
|
|
429
|
+
publicOutputDef: {}
|
|
433
430
|
});
|
|
434
431
|
}
|
|
435
432
|
};
|