@platforma-sdk/model 1.65.9 → 1.66.2
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 +8 -11
- package/dist/block_model.cjs.map +1 -1
- package/dist/block_model.d.ts.map +1 -1
- package/dist/block_model.js +8 -10
- package/dist/block_model.js.map +1 -1
- package/dist/columns/column_collection_builder.cjs +61 -74
- package/dist/columns/column_collection_builder.cjs.map +1 -1
- package/dist/columns/column_collection_builder.d.ts +16 -22
- package/dist/columns/column_collection_builder.d.ts.map +1 -1
- package/dist/columns/column_collection_builder.js +62 -75
- package/dist/columns/column_collection_builder.js.map +1 -1
- package/dist/columns/column_selector.cjs.map +1 -1
- package/dist/columns/column_selector.d.ts +1 -1
- package/dist/columns/column_selector.js.map +1 -1
- package/dist/columns/column_snapshot.cjs.map +1 -1
- package/dist/columns/column_snapshot.d.ts +4 -4
- package/dist/columns/column_snapshot.d.ts.map +1 -1
- package/dist/columns/column_snapshot.js.map +1 -1
- package/dist/columns/ctx_column_sources.cjs.map +1 -1
- package/dist/columns/ctx_column_sources.d.ts +1 -1
- package/dist/columns/ctx_column_sources.d.ts.map +1 -1
- package/dist/columns/ctx_column_sources.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +2 -2
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +2 -2
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs +17 -18
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js +17 -18
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +99 -91
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts +16 -16
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +102 -94
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +32 -23
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts +5 -5
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +33 -24
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/index.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/index.d.ts +2 -3
- package/dist/components/PlDataTable/createPlDataTable/index.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/index.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs +133 -16
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts +8 -6
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.js +130 -17
- package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -1
- package/dist/components/PlDataTable/labels.cjs +1 -2
- package/dist/components/PlDataTable/labels.cjs.map +1 -1
- package/dist/components/PlDataTable/labels.js +1 -2
- package/dist/components/PlDataTable/labels.js.map +1 -1
- package/dist/filters/distill.cjs +73 -30
- package/dist/filters/distill.cjs.map +1 -1
- package/dist/filters/distill.d.ts.map +1 -1
- package/dist/filters/distill.js +73 -30
- package/dist/filters/distill.js.map +1 -1
- package/dist/index.cjs +19 -15
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -4
- package/dist/labels/derive_distinct_tooltips.cjs +85 -0
- package/dist/labels/derive_distinct_tooltips.cjs.map +1 -0
- package/dist/labels/derive_distinct_tooltips.d.ts +17 -0
- package/dist/labels/derive_distinct_tooltips.d.ts.map +1 -0
- package/dist/labels/derive_distinct_tooltips.js +84 -0
- package/dist/labels/derive_distinct_tooltips.js.map +1 -0
- package/dist/labels/index.cjs +1 -0
- package/dist/labels/index.d.ts +2 -1
- package/dist/labels/index.js +1 -0
- package/dist/package.cjs +1 -1
- package/dist/package.js +1 -1
- package/dist/render/api.cjs +8 -13
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +8 -11
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/api.js +8 -13
- package/dist/render/api.js.map +1 -1
- package/dist/services/get_services.cjs +19 -0
- package/dist/services/get_services.cjs.map +1 -0
- package/dist/services/get_services.d.ts +7 -0
- package/dist/services/get_services.d.ts.map +1 -0
- package/dist/services/get_services.js +19 -0
- package/dist/services/get_services.js.map +1 -0
- package/dist/services/index.cjs +1 -0
- package/dist/services/index.d.ts +2 -1
- package/dist/services/index.js +1 -0
- package/dist/services/service_bridge.cjs +4 -4
- package/dist/services/service_bridge.cjs.map +1 -1
- package/dist/services/service_bridge.d.ts +4 -4
- package/dist/services/service_bridge.d.ts.map +1 -1
- package/dist/services/service_bridge.js +4 -4
- package/dist/services/service_bridge.js.map +1 -1
- package/package.json +6 -6
- package/src/block_model.ts +8 -11
- package/src/columns/column_collection_builder.test.ts +75 -30
- package/src/columns/column_collection_builder.ts +96 -133
- package/src/columns/column_selector.ts +1 -1
- package/src/columns/column_snapshot.ts +7 -4
- package/src/columns/ctx_column_sources.ts +1 -3
- package/src/components/PFrameForGraphs.test.ts +4 -4
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +2 -2
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV3.ts +44 -21
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +202 -218
- package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +69 -56
- package/src/components/PlDataTable/createPlDataTable/index.ts +6 -7
- package/src/components/PlDataTable/createPlDataTable/utils.test.ts +97 -1
- package/src/components/PlDataTable/createPlDataTable/utils.ts +190 -35
- package/src/components/PlDataTable/labels.ts +3 -7
- package/src/filters/distill.test.ts +91 -0
- package/src/filters/distill.ts +102 -46
- package/src/labels/derive_distinct_tooltips.test.ts +233 -0
- package/src/labels/derive_distinct_tooltips.ts +130 -0
- package/src/labels/index.ts +1 -0
- package/src/render/api.ts +15 -50
- package/src/services/get_services.ts +28 -0
- package/src/services/index.ts +1 -0
- package/src/services/service_bridge.ts +5 -5
package/src/render/api.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
AnyFunction,
|
|
4
4
|
AxisId,
|
|
5
5
|
DataInfo,
|
|
6
|
+
ModelServices,
|
|
6
7
|
Option,
|
|
7
8
|
PColumn,
|
|
8
9
|
PColumnLazy,
|
|
@@ -23,7 +24,6 @@ import type {
|
|
|
23
24
|
PlRef,
|
|
24
25
|
ResolveAnchorsOptions,
|
|
25
26
|
ResultCollection,
|
|
26
|
-
ServiceName,
|
|
27
27
|
SUniversalPColumnId,
|
|
28
28
|
ValueOrError,
|
|
29
29
|
} from "@milaboratories/pl-model-common";
|
|
@@ -55,11 +55,8 @@ import type {
|
|
|
55
55
|
PluginHandle,
|
|
56
56
|
PluginFactoryLike,
|
|
57
57
|
InferFactoryData,
|
|
58
|
-
InferFactoryModelServices,
|
|
59
58
|
InferFactoryParams,
|
|
60
59
|
} from "../plugin_handle";
|
|
61
|
-
import type { BlockDefaultModelServices } from "../services/service_resolve";
|
|
62
|
-
import type { ModelServices as AllModelServices } from "@milaboratories/pl-model-common";
|
|
63
60
|
import { TreeNodeAccessor, ifDef } from "./accessor";
|
|
64
61
|
import type { FutureRef } from "./future";
|
|
65
62
|
import type { AccessorHandle, GlobalCfgRenderCtx } from "./internal";
|
|
@@ -75,6 +72,7 @@ import type { APColumnSelectorWithSplit } from "./util/split_selectors";
|
|
|
75
72
|
import { patchInSetFilters } from "./util/pframe_upgraders";
|
|
76
73
|
import { allPColumnsReady } from "./util/pcolumn_data";
|
|
77
74
|
import type { PColumnDataUniversal } from "./internal";
|
|
75
|
+
import { getService } from "../services";
|
|
78
76
|
|
|
79
77
|
/**
|
|
80
78
|
* Helper function to match domain objects
|
|
@@ -554,40 +552,11 @@ export class ResultPool implements ColumnProvider, AxisLabelProvider {
|
|
|
554
552
|
}
|
|
555
553
|
|
|
556
554
|
/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) */
|
|
557
|
-
export abstract class RenderCtxBase<
|
|
558
|
-
Args = unknown,
|
|
559
|
-
Data = unknown,
|
|
560
|
-
ModelServices = Partial<AllModelServices>,
|
|
561
|
-
> {
|
|
555
|
+
export abstract class RenderCtxBase<Args = unknown, Data = unknown> {
|
|
562
556
|
protected readonly ctx: GlobalCfgRenderCtx;
|
|
563
|
-
private readonly requiredServiceNames: ServiceName[];
|
|
564
|
-
private cachedServices?: ModelServices;
|
|
565
557
|
|
|
566
|
-
constructor(
|
|
558
|
+
constructor() {
|
|
567
559
|
this.ctx = getCfgRenderCtx();
|
|
568
|
-
this.requiredServiceNames = requiredServiceNames;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
get services(): ModelServices {
|
|
572
|
-
if (this.cachedServices) return this.cachedServices;
|
|
573
|
-
const ctx = this.ctx;
|
|
574
|
-
const services = Object.freeze(
|
|
575
|
-
Object.fromEntries(
|
|
576
|
-
this.requiredServiceNames.map((id) => [
|
|
577
|
-
id,
|
|
578
|
-
Object.freeze(
|
|
579
|
-
Object.fromEntries(
|
|
580
|
-
(ctx.getServiceMethods(id) as string[]).map((method) => [
|
|
581
|
-
method,
|
|
582
|
-
(...args: unknown[]) => ctx.callServiceMethod(id, method, ...args),
|
|
583
|
-
]),
|
|
584
|
-
),
|
|
585
|
-
),
|
|
586
|
-
]),
|
|
587
|
-
),
|
|
588
|
-
) as ModelServices;
|
|
589
|
-
this.cachedServices = services;
|
|
590
|
-
return services;
|
|
591
560
|
}
|
|
592
561
|
|
|
593
562
|
private dataCache?: { v: Data };
|
|
@@ -619,6 +588,10 @@ export abstract class RenderCtxBase<
|
|
|
619
588
|
return this.activeArgsCache.v;
|
|
620
589
|
}
|
|
621
590
|
|
|
591
|
+
public getService<T extends keyof ModelServices>(name: T): ModelServices[T] {
|
|
592
|
+
return getService(name);
|
|
593
|
+
}
|
|
594
|
+
|
|
622
595
|
// /** Can be used to determine features provided by the desktop instance. */
|
|
623
596
|
// public get featureFlags() {
|
|
624
597
|
// return this.ctx.featureFlags;
|
|
@@ -771,11 +744,7 @@ export abstract class RenderCtxBase<
|
|
|
771
744
|
}
|
|
772
745
|
|
|
773
746
|
/** Main entry point to the API available within model lambdas (like outputs, sections, etc..) for v3+ blocks */
|
|
774
|
-
export class BlockRenderCtx<
|
|
775
|
-
Args = unknown,
|
|
776
|
-
Data = unknown,
|
|
777
|
-
ModelServices = BlockDefaultModelServices,
|
|
778
|
-
> extends RenderCtxBase<Args, Data, ModelServices> {
|
|
747
|
+
export class BlockRenderCtx<Args = unknown, Data = unknown> extends RenderCtxBase<Args, Data> {
|
|
779
748
|
private argsCache?: { v: Args | undefined };
|
|
780
749
|
public get args(): Args | undefined {
|
|
781
750
|
if (this.argsCache === undefined) {
|
|
@@ -824,19 +793,15 @@ export class RenderCtxLegacy<Args = unknown, UiState = unknown> extends RenderCt
|
|
|
824
793
|
*
|
|
825
794
|
* @typeParam F - PluginFactoryLike phantom carrying data/params/outputs types
|
|
826
795
|
*/
|
|
827
|
-
export class PluginRenderCtx<
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
>
|
|
796
|
+
export class PluginRenderCtx<F extends PluginFactoryLike = PluginFactoryLike> extends RenderCtxBase<
|
|
797
|
+
unknown,
|
|
798
|
+
InferFactoryData<F>
|
|
799
|
+
> {
|
|
831
800
|
private readonly handle: PluginHandle<F>;
|
|
832
801
|
private readonly wrappedInputs: Record<string, () => unknown>;
|
|
833
802
|
|
|
834
|
-
constructor(
|
|
835
|
-
|
|
836
|
-
wrappedInputs: Record<string, () => unknown>,
|
|
837
|
-
requiredServiceNames: ServiceName[] = [],
|
|
838
|
-
) {
|
|
839
|
-
super(requiredServiceNames);
|
|
803
|
+
constructor(handle: PluginHandle<F>, wrappedInputs: Record<string, () => unknown>) {
|
|
804
|
+
super();
|
|
840
805
|
this.handle = handle;
|
|
841
806
|
this.wrappedInputs = wrappedInputs;
|
|
842
807
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ModelServices, ServiceName } from "@milaboratories/pl-model-common";
|
|
2
|
+
import { getCfgRenderCtx } from "../internal";
|
|
3
|
+
import { ValueOf } from "@milaboratories/helpers";
|
|
4
|
+
import { createServiceProxy } from "./service_bridge";
|
|
5
|
+
import { GlobalCfgRenderCtx } from "../render/internal";
|
|
6
|
+
|
|
7
|
+
const cachedServices = new WeakMap<
|
|
8
|
+
GlobalCfgRenderCtx,
|
|
9
|
+
Map<keyof ModelServices, ValueOf<ModelServices>>
|
|
10
|
+
>();
|
|
11
|
+
|
|
12
|
+
export function getService<T extends keyof ModelServices>(name: T): ModelServices[T] {
|
|
13
|
+
const ctx = getCfgRenderCtx();
|
|
14
|
+
|
|
15
|
+
const map = cachedServices.has(ctx)
|
|
16
|
+
? cachedServices.get(ctx)!
|
|
17
|
+
: (() => {
|
|
18
|
+
cachedServices.set(ctx, new Map());
|
|
19
|
+
return cachedServices.get(ctx)!;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
return map.has(name)
|
|
23
|
+
? (map.get(name) as ModelServices[T])
|
|
24
|
+
: (() => {
|
|
25
|
+
map.set(name, createServiceProxy(ctx)(name as ServiceName) as ModelServices[T]);
|
|
26
|
+
return map.get(name) as ModelServices[T];
|
|
27
|
+
})();
|
|
28
|
+
}
|
package/src/services/index.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { UiServiceRegistry } from "@milaboratories/pl-model-common";
|
|
|
15
15
|
// Makes a remote node service appear local.
|
|
16
16
|
// Given a service ID, returns an object implementing the service's UI interface.
|
|
17
17
|
// Provided by the desktop app (e.g. backed by Electron IPC).
|
|
18
|
-
export type
|
|
18
|
+
export type ServiceProxy = <S extends ServiceTypesLike>(
|
|
19
19
|
serviceId: ServiceName<S>,
|
|
20
20
|
) => InferServiceUi<S>;
|
|
21
21
|
|
|
@@ -53,10 +53,10 @@ export function buildServices<S extends Partial<AllUiServices> = Partial<AllUiSe
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* Builds a
|
|
56
|
+
* Builds a ServiceProxy from a ServiceDispatch.
|
|
57
57
|
* Each service method call is forwarded to dispatch.callServiceMethod.
|
|
58
58
|
*/
|
|
59
|
-
export function
|
|
59
|
+
export function createServiceProxy(dispatch: ServiceDispatch): ServiceProxy {
|
|
60
60
|
return ((serviceId: ServiceName) =>
|
|
61
61
|
Object.freeze(
|
|
62
62
|
Object.fromEntries(
|
|
@@ -64,8 +64,8 @@ export function createNodeServiceProxy(dispatch: ServiceDispatch): NodeServicePr
|
|
|
64
64
|
.getServiceMethods(serviceId)
|
|
65
65
|
.map((method) => [
|
|
66
66
|
method,
|
|
67
|
-
|
|
67
|
+
(...args: unknown[]) => dispatch.callServiceMethod(serviceId, method, ...args),
|
|
68
68
|
]),
|
|
69
69
|
),
|
|
70
|
-
)) as
|
|
70
|
+
)) as ServiceProxy;
|
|
71
71
|
}
|