@milaboratories/graph-maker 1.1.222 → 1.1.224
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/components/Chart.vue.d.ts.map +1 -1
- package/dist/components/Chart.vue.js +32 -32
- package/dist/components/Chart.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +3 -2
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/DiscreteForm.vue.js +3 -2
- package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +16 -15
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
- package/dist/index.vue.d.ts +0 -6
- package/dist/index.vue.d.ts.map +1 -1
- package/dist/index.vue.js +185 -210
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +110 -121
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/addFixedOptionsToState.d.ts.map +1 -1
- package/dist/utils/addFixedOptionsToState.js +9 -9
- package/dist/utils/addFixedOptionsToState.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +6 -5
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +9 -8
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +3 -2
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +3 -2
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +18 -17
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +9 -8
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/utils/getUsedAesInMapping.js +3 -2
- package/dist/utils/getUsedAesInMapping.js.map +1 -1
- package/dist/utils/loadDefaultSources.d.ts +5 -10
- package/dist/utils/loadDefaultSources.d.ts.map +1 -1
- package/dist/utils/loadDefaultSources.js +122 -47
- package/dist/utils/loadDefaultSources.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,6 +3,7 @@ import { getDiscreteLayersSettings as C } from "./createChartSettingsForRender/g
|
|
|
3
3
|
import "@milaboratories/pf-plots";
|
|
4
4
|
import "@platforma-sdk/model";
|
|
5
5
|
import "vue";
|
|
6
|
+
import "@milaboratories/helpers";
|
|
6
7
|
import "d3-scale";
|
|
7
8
|
import "../constantsAesthetic.js";
|
|
8
9
|
function d(t, u, s) {
|
|
@@ -12,7 +13,7 @@ function d(t, u, s) {
|
|
|
12
13
|
return f(l) && l.type === s;
|
|
13
14
|
});
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
+
function L(t, u, s, n, l, i) {
|
|
16
17
|
var a, S, h;
|
|
17
18
|
const p = {};
|
|
18
19
|
let c = [];
|
|
@@ -84,6 +85,6 @@ function F(t, u, s, n, l, i) {
|
|
|
84
85
|
return p;
|
|
85
86
|
}
|
|
86
87
|
export {
|
|
87
|
-
|
|
88
|
+
L as getUsedAesInMapping
|
|
88
89
|
};
|
|
89
90
|
//# sourceMappingURL=getUsedAesInMapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUsedAesInMapping.js","sources":["../../src/utils/getUsedAesInMapping.ts"],"sourcesContent":["import type { ChartType, DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport type {\n AesType, DiscreteStatisticsState,\n getDefaultLayersSettings,\n getInitialStatisticsState } from '../constantsCommon';\nimport { DISCRETE_TEMPLATES_MAP,\n isMappedAes,\n} from '../constantsCommon';\nimport type { DiscreteLayersTemplate, LayersTemplate } from '../types';\nimport type {\n ChartLayerSettings } from './index';\nimport {\n getDiscreteLayersSettings,\n} from './index';\n\nfunction checkLayersByType(layers: ChartLayerSettings[], field: 'fillColor' | 'dotFill' | 'lineColor' | 'dotShape' | 'lineShape', name: string) {\n return layers.some((item) => {\n const value = item?.aes?.[field];\n return isMappedAes(value) && value.type === name;\n });\n}\n\nexport function getUsedAesInMapping(\n chartType: ChartType,\n template: LayersTemplate,\n layersSettings: ReturnType<typeof getDefaultLayersSettings>,\n statisticsSettings: ReturnType<typeof getInitialStatisticsState>,\n optionsState: InputState,\n inputGuide: InputGuide<InputState>,\n) {\n const res: Record<string, Record<AesType, boolean>> = {};\n let groupingSources: string[] = [];\n if (chartType === 'discrete') {\n groupingSources = ['primaryGrouping', 'secondaryGrouping'];\n const layers = getDiscreteLayersSettings(\n DISCRETE_TEMPLATES_MAP[template as DiscreteLayersTemplate],\n layersSettings,\n statisticsSettings as DiscreteStatisticsState,\n optionsState as DiscreteUIState,\n inputGuide,\n );\n groupingSources.forEach((name) => {\n const source = optionsState.components[name]?.selectorStates[0]?.selectedSource;\n if (source) {\n res[source] = {\n fill: checkLayersByType(layers, 'fillColor', name) || checkLayersByType(layers, 'dotFill', name),\n stroke: checkLayersByType(layers, 'lineColor', name),\n dotShape: checkLayersByType(layers, 'dotShape', name),\n lineType: checkLayersByType(layers, 'lineShape', name),\n size: false,\n };\n }\n });\n }\n if (chartType === 'scatterplot') {\n const grouping = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n const shape = optionsState.components.shape.selectorStates.map((state) => state.selectedSource);\n groupingSources = [...grouping, ...shape];\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === grouping[0],\n stroke: false,\n dotShape: name === shape[0],\n lineType: false,\n size: false,\n };\n });\n }\n if (chartType === 'scatterplot-umap') {\n groupingSources = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === groupingSources[0],\n stroke: false,\n dotShape: false,\n lineType: false,\n size: false,\n };\n });\n }\n if (chartType === 'dendro') {\n const columns: (string | null)[] = [\n optionsState.components.nodeColor.selectorStates[0]?.selectedSource ?? null,\n optionsState.components.nodeShape.selectorStates[0]?.selectedSource ?? null,\n optionsState.components.lineColor.selectorStates[0]?.selectedSource ?? null,\n ];\n groupingSources = columns.filter((value) => value !== null) as string[];\n groupingSources.forEach((name) => {\n res[name] = {\n fill: isMappedAes(layersSettings.dendro.dotFill) && layersSettings.dendro.dotFill.value === name,\n stroke: isMappedAes(layersSettings.dendro.lineColor) && layersSettings.dendro.lineColor.value === name,\n dotShape: isMappedAes(layersSettings.dendro.dotShape) && layersSettings.dendro.dotShape.value === name,\n lineType: false,\n size: false,\n };\n });\n }\n\n if (chartType === 'histogram') {\n const groupingSources = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === groupingSources[0],\n stroke: false,\n dotShape: false,\n lineType: false,\n size: false,\n };\n });\n }\n\n return res;\n}\n"],"names":["checkLayersByType","layers","field","name","item","value","_a","isMappedAes","getUsedAesInMapping","chartType","template","layersSettings","statisticsSettings","optionsState","inputGuide","res","groupingSources","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","source","_b","grouping","state","shape","_c"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getUsedAesInMapping.js","sources":["../../src/utils/getUsedAesInMapping.ts"],"sourcesContent":["import type { ChartType, DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport type {\n AesType, DiscreteStatisticsState,\n getDefaultLayersSettings,\n getInitialStatisticsState } from '../constantsCommon';\nimport { DISCRETE_TEMPLATES_MAP,\n isMappedAes,\n} from '../constantsCommon';\nimport type { DiscreteLayersTemplate, LayersTemplate } from '../types';\nimport type {\n ChartLayerSettings } from './index';\nimport {\n getDiscreteLayersSettings,\n} from './index';\n\nfunction checkLayersByType(layers: ChartLayerSettings[], field: 'fillColor' | 'dotFill' | 'lineColor' | 'dotShape' | 'lineShape', name: string) {\n return layers.some((item) => {\n const value = item?.aes?.[field];\n return isMappedAes(value) && value.type === name;\n });\n}\n\nexport function getUsedAesInMapping(\n chartType: ChartType,\n template: LayersTemplate,\n layersSettings: ReturnType<typeof getDefaultLayersSettings>,\n statisticsSettings: ReturnType<typeof getInitialStatisticsState>,\n optionsState: InputState,\n inputGuide: InputGuide<InputState>,\n) {\n const res: Record<string, Record<AesType, boolean>> = {};\n let groupingSources: string[] = [];\n if (chartType === 'discrete') {\n groupingSources = ['primaryGrouping', 'secondaryGrouping'];\n const layers = getDiscreteLayersSettings(\n DISCRETE_TEMPLATES_MAP[template as DiscreteLayersTemplate],\n layersSettings,\n statisticsSettings as DiscreteStatisticsState,\n optionsState as DiscreteUIState,\n inputGuide,\n );\n groupingSources.forEach((name) => {\n const source = optionsState.components[name]?.selectorStates[0]?.selectedSource;\n if (source) {\n res[source] = {\n fill: checkLayersByType(layers, 'fillColor', name) || checkLayersByType(layers, 'dotFill', name),\n stroke: checkLayersByType(layers, 'lineColor', name),\n dotShape: checkLayersByType(layers, 'dotShape', name),\n lineType: checkLayersByType(layers, 'lineShape', name),\n size: false,\n };\n }\n });\n }\n if (chartType === 'scatterplot') {\n const grouping = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n const shape = optionsState.components.shape.selectorStates.map((state) => state.selectedSource);\n groupingSources = [...grouping, ...shape];\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === grouping[0],\n stroke: false,\n dotShape: name === shape[0],\n lineType: false,\n size: false,\n };\n });\n }\n if (chartType === 'scatterplot-umap') {\n groupingSources = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === groupingSources[0],\n stroke: false,\n dotShape: false,\n lineType: false,\n size: false,\n };\n });\n }\n if (chartType === 'dendro') {\n const columns: (string | null)[] = [\n optionsState.components.nodeColor.selectorStates[0]?.selectedSource ?? null,\n optionsState.components.nodeShape.selectorStates[0]?.selectedSource ?? null,\n optionsState.components.lineColor.selectorStates[0]?.selectedSource ?? null,\n ];\n groupingSources = columns.filter((value) => value !== null) as string[];\n groupingSources.forEach((name) => {\n res[name] = {\n fill: isMappedAes(layersSettings.dendro.dotFill) && layersSettings.dendro.dotFill.value === name,\n stroke: isMappedAes(layersSettings.dendro.lineColor) && layersSettings.dendro.lineColor.value === name,\n dotShape: isMappedAes(layersSettings.dendro.dotShape) && layersSettings.dendro.dotShape.value === name,\n lineType: false,\n size: false,\n };\n });\n }\n\n if (chartType === 'histogram') {\n const groupingSources = optionsState.components.grouping.selectorStates.map((state) => state.selectedSource);\n groupingSources.forEach((name) => {\n res[name] = {\n fill: name === groupingSources[0],\n stroke: false,\n dotShape: false,\n lineType: false,\n size: false,\n };\n });\n }\n\n return res;\n}\n"],"names":["checkLayersByType","layers","field","name","item","value","_a","isMappedAes","getUsedAesInMapping","chartType","template","layersSettings","statisticsSettings","optionsState","inputGuide","res","groupingSources","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","source","_b","grouping","state","shape","_c"],"mappings":"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"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { ChartType, DemoDataStore, InputNamesByChartType, SelectorStateFilter } from '@milaboratories/pf-plots';
|
|
1
|
+
import { ChartType, DemoDataStore, InputNamesByChartType, InputState, SelectorStateFilter, SelectorStateSimple } from '@milaboratories/pf-plots';
|
|
2
2
|
import { PredefinedGraphOption } from '../types';
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
selectedFilterRange?: SelectorStateFilter['selectedFilterRange'];
|
|
8
|
-
selectedFilterValues?: SelectorStateFilter['selectedFilterValues'];
|
|
9
|
-
};
|
|
10
|
-
export declare function loadDefaultSources(dataStore: DemoDataStore, defaultOptions: PredefinedGraphOption<ChartType>[], considerAxisDomains?: boolean): Promise<LoadedDefaultOptions<ChartType>[]>;
|
|
11
|
-
export {};
|
|
3
|
+
export type LoadedDefaultOptionsMap<T extends ChartType> = Record<InputNamesByChartType[T], (SelectorStateFilter | SelectorStateSimple)[]>;
|
|
4
|
+
export declare function loadDefaultSources(dataStore: DemoDataStore, defaultOptions: PredefinedGraphOption<ChartType>[], usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null, considerAxisDomains?: boolean): Promise<LoadedDefaultOptionsMap<ChartType>>;
|
|
5
|
+
export declare function isOptionsStateNeedsToBeUpdated(state: InputState, usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null, newDefaultOptions: LoadedDefaultOptionsMap<ChartType>): boolean;
|
|
6
|
+
export declare function createUpdatedWithNewDefaultsOptionsState(state: InputState, usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null, newDefaultOptions: LoadedDefaultOptionsMap<ChartType>): InputState['components'];
|
|
12
7
|
//# sourceMappingURL=loadDefaultSources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDefaultSources.d.ts","sourceRoot":"","sources":["../../src/utils/loadDefaultSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"loadDefaultSources.d.ts","sourceRoot":"","sources":["../../src/utils/loadDefaultSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAetD,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,SAAS,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAiG3I,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAClD,kBAAkB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,IAAI,EAC7D,mBAAmB,UAAO,GACzB,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAqG7C;AA4BD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,UAAU,EACjB,kBAAkB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,IAAI,EAC7D,iBAAiB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GACpD,OAAO,CAsBT;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,UAAU,EACjB,kBAAkB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,IAAI,EAC7D,iBAAiB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GACpD,UAAU,CAAC,YAAY,CAAC,CAY1B"}
|
|
@@ -1,70 +1,145 @@
|
|
|
1
|
-
import { AxisId as
|
|
2
|
-
import { readAnnotation as
|
|
3
|
-
import { toRaw as
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { AxisId as w } from "@milaboratories/pf-plots";
|
|
2
|
+
import { readAnnotation as b, Annotation as B } from "@platforma-sdk/model";
|
|
3
|
+
import { toRaw as A } from "vue";
|
|
4
|
+
import { copyJSON as I } from "./copyJSON.js";
|
|
5
|
+
import { isJsonEqual as P } from "@milaboratories/helpers";
|
|
6
|
+
function k(t, n) {
|
|
7
|
+
if (typeof t > "u")
|
|
6
8
|
return !0;
|
|
7
|
-
const
|
|
8
|
-
return typeof
|
|
9
|
+
const r = Object.keys(t);
|
|
10
|
+
return typeof n > "u" ? r.length === 0 : r.every((i) => n[i]);
|
|
9
11
|
}
|
|
10
|
-
function
|
|
11
|
-
return
|
|
12
|
+
function U(t, n, r, i) {
|
|
13
|
+
return n && b(n, B.IsSubset) ? "subset" : i !== void 0 ? "range" : r !== void 0 || t === "Int" || t === "String" ? "equals" : "range";
|
|
12
14
|
}
|
|
13
|
-
async function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
async function N(t, n, r, i) {
|
|
16
|
+
var o;
|
|
17
|
+
const l = (o = r == null ? void 0 : r[n]) == null ? void 0 : o.find((s) => s.selectedSource === i.toCanonicalString());
|
|
18
|
+
if (l && h(l) && l.type === "equals") {
|
|
19
|
+
const s = l.selectedFilterValues ?? [], a = await Promise.all(s.map(async (u) => (await t.pFrameProvider.getColumnUniqueValues(i, 1, [{
|
|
20
|
+
type: "bySingleColumnV2",
|
|
21
|
+
column: {
|
|
22
|
+
type: "column",
|
|
23
|
+
id: i.name
|
|
24
|
+
},
|
|
25
|
+
predicate: {
|
|
26
|
+
operator: "StringIContains",
|
|
27
|
+
substring: u
|
|
28
|
+
}
|
|
29
|
+
}])).values[0] === u));
|
|
30
|
+
if (s.length > 0 && a.every((u) => u))
|
|
31
|
+
return s;
|
|
32
|
+
}
|
|
33
|
+
return [(await t.pFrameProvider.getColumnUniqueValues(i, 1)).values[0]];
|
|
34
|
+
}
|
|
35
|
+
async function T(t, n, r, i, l) {
|
|
36
|
+
var s;
|
|
37
|
+
const o = (s = r == null ? void 0 : r[n]) == null ? void 0 : s.find((a) => a.selectedSource === i.toCanonicalString());
|
|
38
|
+
if (o && h(o) && o.type === "equals") {
|
|
39
|
+
const a = o.selectedFilterValues ?? [], u = await Promise.all(a.map(async (e) => (await t.pFrameProvider.getAxisUniqueValues(i, [l], 1, [{
|
|
40
|
+
type: "bySingleColumnV2",
|
|
41
|
+
column: {
|
|
42
|
+
type: "axis",
|
|
43
|
+
id: i.toPFrameId()
|
|
44
|
+
},
|
|
45
|
+
predicate: {
|
|
46
|
+
operator: "StringIContains",
|
|
47
|
+
substring: e
|
|
48
|
+
}
|
|
49
|
+
}])).values[0] === e));
|
|
50
|
+
if (a.length > 0 && u.every((e) => e))
|
|
51
|
+
return a;
|
|
52
|
+
}
|
|
53
|
+
return [(await t.pFrameProvider.getAxisUniqueValues(i, [l], 1)).values[0]];
|
|
54
|
+
}
|
|
55
|
+
async function H(t, n, r, i = !0) {
|
|
56
|
+
const l = [], o = n.filter(({ selectedSource: e }) => "kind" in e && e.kind === "PColumn"), s = n.filter(({ selectedSource: e }) => !("kind" in e && e.kind === "PColumn")), a = [];
|
|
57
|
+
for (const { inputName: e, filterType: d, selectedSource: S, selectedFilterValues: f, selectedFilterRange: g } of o) {
|
|
58
|
+
const { name: p, valueType: V, annotations: v, domain: C } = S, c = await t.pFrameProvider.findColumnBy(p, V, A(v), A(C)), q = e === "filters" || e === "tabBy" || e === "highlight";
|
|
59
|
+
if (c) {
|
|
60
|
+
const y = await t.pFrameProvider.getColumnSpecById(c);
|
|
61
|
+
if (!q)
|
|
62
|
+
l.push({ inputName: e, selectedSource: c.toCanonicalString() });
|
|
21
63
|
else {
|
|
22
|
-
const
|
|
23
|
-
|
|
64
|
+
const m = d ?? U(V, y, f, g), R = m === "equals" && typeof f > "u" ? await N(t, e, r, c) : f, F = { min: void 0, max: void 0, ...g };
|
|
65
|
+
l.push({
|
|
24
66
|
inputName: e,
|
|
25
|
-
filterType:
|
|
26
|
-
selectedSource:
|
|
27
|
-
selectedFilterValues:
|
|
28
|
-
selectedFilterRange:
|
|
67
|
+
filterType: m,
|
|
68
|
+
selectedSource: c.toCanonicalString(),
|
|
69
|
+
selectedFilterValues: R,
|
|
70
|
+
selectedFilterRange: F
|
|
29
71
|
});
|
|
30
72
|
}
|
|
31
|
-
|
|
73
|
+
a.push(...(y == null ? void 0 : y.axesSpec.map((m) => ({ spec: m, parentColumn: c }))) ?? []);
|
|
32
74
|
} else
|
|
33
|
-
console.warn(`Not found column for default option: ${JSON.stringify({ inputName: e, selectedSource:
|
|
75
|
+
console.warn(`Not found column for default option: ${JSON.stringify({ inputName: e, selectedSource: S })}`);
|
|
34
76
|
}
|
|
35
|
-
for (const { inputName: e, selectedSource: d, filterType:
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
77
|
+
for (const { inputName: e, selectedSource: d, filterType: S, selectedFilterValues: f, selectedFilterRange: g } of s) {
|
|
78
|
+
const p = w.fromAxisSpec(d), V = p.toCanonicalString(), v = e === "filters" || e === "tabBy" || e === "highlight", C = v ? S ?? U(p.type, { annotations: d == null ? void 0 : d.annotations }) : void 0, c = a.find((m) => w.fromAxisSpec(m.spec).toCanonicalString() === V), q = v && C === "equals" && typeof f > "u" && (c != null && c.parentColumn) ? await T(t, e, r, p, c == null ? void 0 : c.parentColumn) : f, y = { min: void 0, max: void 0, ...g };
|
|
79
|
+
if (i || l.push({
|
|
38
80
|
inputName: e,
|
|
39
|
-
filterType:
|
|
40
|
-
selectedSource:
|
|
41
|
-
selectedFilterValues:
|
|
42
|
-
selectedFilterRange:
|
|
43
|
-
}),
|
|
44
|
-
|
|
81
|
+
filterType: C,
|
|
82
|
+
selectedSource: V,
|
|
83
|
+
selectedFilterValues: q,
|
|
84
|
+
selectedFilterRange: y
|
|
85
|
+
}), c)
|
|
86
|
+
l.push({
|
|
45
87
|
inputName: e,
|
|
46
|
-
filterType:
|
|
47
|
-
selectedSource:
|
|
48
|
-
selectedFilterValues:
|
|
49
|
-
selectedFilterRange:
|
|
88
|
+
filterType: C,
|
|
89
|
+
selectedSource: V,
|
|
90
|
+
selectedFilterValues: q,
|
|
91
|
+
selectedFilterRange: y
|
|
50
92
|
});
|
|
51
93
|
else {
|
|
52
|
-
const { spec:
|
|
53
|
-
if (
|
|
54
|
-
const
|
|
55
|
-
|
|
94
|
+
const { spec: m, parentColumn: R } = a.find((F) => p.name === F.spec.name && p.type === F.spec.type && k(p.domain, F.spec.domain)) ?? {};
|
|
95
|
+
if (m) {
|
|
96
|
+
const F = (e === "filters" || e === "tabBy") && typeof f > "u" ? await T(t, e, r, w.fromAxisSpec(m), R) : f;
|
|
97
|
+
l.push({
|
|
56
98
|
inputName: e,
|
|
57
|
-
filterType:
|
|
58
|
-
selectedSource:
|
|
59
|
-
selectedFilterValues:
|
|
60
|
-
selectedFilterRange:
|
|
99
|
+
filterType: C,
|
|
100
|
+
selectedSource: w.fromAxisSpec(m).toCanonicalString(),
|
|
101
|
+
selectedFilterValues: F,
|
|
102
|
+
selectedFilterRange: y
|
|
61
103
|
});
|
|
62
104
|
}
|
|
63
105
|
}
|
|
64
106
|
}
|
|
107
|
+
return l.reduce((e, { inputName: d, selectedSource: S, filterType: f, selectedFilterValues: g, selectedFilterRange: p }) => (e[d] || (e[d] = []), f ? e[d].push({
|
|
108
|
+
selectedSource: S,
|
|
109
|
+
type: f,
|
|
110
|
+
selectedFilterValues: g,
|
|
111
|
+
selectedFilterRange: p
|
|
112
|
+
}) : e[d].push({ selectedSource: S }), e), {});
|
|
113
|
+
}
|
|
114
|
+
function h(t) {
|
|
115
|
+
return typeof t == "object" && t !== null && "type" in t;
|
|
116
|
+
}
|
|
117
|
+
function x(t, n) {
|
|
118
|
+
return h(t) && h(n) ? t.type !== n.type || t.type === "equals" && n.type === "equals" && !P(t.selectedFilterValues, n.selectedFilterValues) || t.selectedFilterRange !== void 0 && n.selectedFilterRange !== void 0 && (t.selectedFilterRange.min !== n.selectedFilterRange.min || t.selectedFilterRange.max !== n.selectedFilterRange.max) ? !1 : t.selectedSource === n.selectedSource : P(t, n);
|
|
119
|
+
}
|
|
120
|
+
function K(t, n, r) {
|
|
121
|
+
if (!n)
|
|
122
|
+
return Object.keys(r).length > 0;
|
|
123
|
+
for (const [i, l] of Object.entries(r)) {
|
|
124
|
+
const o = n[i], s = l, a = t.components[i].selectorStates;
|
|
125
|
+
for (const u of s)
|
|
126
|
+
if (!a.some((e) => x(e, u)) && !(o != null && o.some((e) => x(e, u))))
|
|
127
|
+
return !0;
|
|
128
|
+
}
|
|
129
|
+
return !1;
|
|
130
|
+
}
|
|
131
|
+
function L(t, n, r) {
|
|
132
|
+
var l;
|
|
133
|
+
const i = I(t.components);
|
|
134
|
+
for (const [o, s] of Object.entries(r))
|
|
135
|
+
(l = n == null ? void 0 : n[o]) != null && l.every(
|
|
136
|
+
(a) => s.some((u) => x(a, u))
|
|
137
|
+
) || (i[o].selectorStates = s);
|
|
65
138
|
return i;
|
|
66
139
|
}
|
|
67
140
|
export {
|
|
68
|
-
|
|
141
|
+
L as createUpdatedWithNewDefaultsOptionsState,
|
|
142
|
+
K as isOptionsStateNeedsToBeUpdated,
|
|
143
|
+
H as loadDefaultSources
|
|
69
144
|
};
|
|
70
145
|
//# sourceMappingURL=loadDefaultSources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDefaultSources.js","sources":["../../src/utils/loadDefaultSources.ts"],"sourcesContent":["import type {\n ChartType,\n ColumnId,\n DemoDataStore,\n InputNamesByChartType,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport {\n AxisId,\n} from '@milaboratories/pf-plots';\nimport type { PredefinedGraphOption } from '../types';\nimport type { AxisSpec, PColumnSpec, ValueType } from '@platforma-sdk/model';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\nimport { toRaw } from 'vue';\n\ntype LoadedDefaultOptions<T extends ChartType> = {\n inputName: InputNamesByChartType[T];\n selectedSource: string;\n filterType?: SelectorStateFilter['type'];\n selectedFilterRange?: SelectorStateFilter['selectedFilterRange'];\n selectedFilterValues?: SelectorStateFilter['selectedFilterValues'];\n};\n\nfunction domainIsCompatible(domain?: Record<string, string>, otherDomain?: Record<string, string>): boolean {\n if (typeof domain === 'undefined') {\n return true;\n }\n const keys = Object.keys(domain);\n if (typeof otherDomain === 'undefined') {\n return keys.length === 0;\n }\n return keys.every((key) => otherDomain[key]);\n}\n\nfunction getDefaultFilterType(\n valueType: ValueType,\n spec: PColumnSpec | null,\n selectedFilterValues?: SelectorStateFilter['selectedFilterValues'],\n selectedFilterRange?: Partial<SelectorStateFilter['selectedFilterRange']>,\n): SelectorStateFilter['type'] {\n if (spec && readAnnotation(spec, Annotation.IsSubset)) {\n return 'subset';\n }\n if (selectedFilterRange !== undefined) {\n return 'range';\n }\n if (selectedFilterValues !== undefined) {\n return 'equals';\n }\n if (valueType === 'Int' || valueType === 'String') {\n return 'equals';\n }\n return 'range';\n}\nexport async function loadDefaultSources(\n dataStore: DemoDataStore,\n defaultOptions: PredefinedGraphOption<ChartType>[],\n considerAxisDomains = true,\n): Promise<LoadedDefaultOptions<ChartType>[]> {\n const result: LoadedDefaultOptions<ChartType>[] = [];\n const defaultColumnStates = defaultOptions.filter(({ selectedSource }) => 'kind' in selectedSource && selectedSource.kind === 'PColumn');\n const defaultAxisStates = defaultOptions.filter(({ selectedSource }) => !('kind' in selectedSource && selectedSource.kind === 'PColumn'));\n\n const allowedAxisSpecs = [] as { spec: AxisSpec; parentColumn: ColumnId }[]; // if default options contain axes - they should be in other default columns\n\n for (const { inputName, filterType, selectedSource, selectedFilterValues, selectedFilterRange } of defaultColumnStates) {\n const { name, valueType, annotations, domain } = selectedSource as PColumnSpec;\n const columnId = await dataStore.pFrameProvider.findColumnBy(name, valueType, toRaw(annotations), toRaw(domain));\n const isFilter = inputName === 'filters' || inputName === 'tabBy' || inputName === 'highlight';\n if (columnId) {\n const spec = await dataStore.pFrameProvider.getColumnSpecById(columnId);\n if (!isFilter) {\n result.push({ inputName, selectedSource: columnId.toCanonicalString() });\n } else {\n const defaultFilterType = filterType ?? getDefaultFilterType(valueType, spec, selectedFilterValues, selectedFilterRange);\n const defaultSelectedFilterValue = defaultFilterType === 'equals' && typeof selectedFilterValues === 'undefined'\n ? [(await dataStore.pFrameProvider.getColumnUniqueValues(columnId, 1)).values[0]]\n : selectedFilterValues;\n const defaultFilterRange = { min: undefined, max: undefined, ...selectedFilterRange };\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: columnId.toCanonicalString(),\n selectedFilterValues: defaultSelectedFilterValue,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n\n allowedAxisSpecs.push(...spec?.axesSpec.map((spec) => ({ spec, parentColumn: columnId })) ?? []);\n } else {\n console.warn(`Not found column for default option: ${JSON.stringify({ inputName, selectedSource })}`);\n }\n }\n for (const { inputName, selectedSource, filterType, selectedFilterValues, selectedFilterRange } of defaultAxisStates) {\n const axisId = AxisId.fromAxisSpec(selectedSource as AxisSpec);\n const axisSourceStr = axisId.toCanonicalString();\n const isFilter = inputName === 'filters' || inputName === 'tabBy' || inputName === 'highlight';\n const defaultFilterType = isFilter ? filterType ?? getDefaultFilterType(axisId.type, { annotations: selectedSource?.annotations } as PColumnSpec) : undefined;\n\n const columnWithExistingAxis = allowedAxisSpecs.find((el) => AxisId.fromAxisSpec(el.spec).toCanonicalString() === axisSourceStr);\n const defaultSelectedFilterValues = isFilter && defaultFilterType === 'equals' && typeof selectedFilterValues === 'undefined' && columnWithExistingAxis?.parentColumn\n ? [(await dataStore.pFrameProvider.getAxisUniqueValues(axisId, [columnWithExistingAxis?.parentColumn], 1)).values[0]]\n : selectedFilterValues;\n const defaultFilterRange = { min: undefined, max: undefined, ...selectedFilterRange };\n\n if (!considerAxisDomains) {\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: axisSourceStr,\n selectedFilterValues: defaultSelectedFilterValues,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n if (columnWithExistingAxis) {\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: axisSourceStr,\n selectedFilterValues: defaultSelectedFilterValues,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n } else {\n const { spec: allowedCompatibleAxisSpec, parentColumn } = allowedAxisSpecs.find((el) => {\n return axisId.name === el.spec.name && axisId.type === el.spec.type && domainIsCompatible(axisId.domain, el.spec.domain);\n }) ?? {};\n if (allowedCompatibleAxisSpec) {\n const defaultSelectedFilterValue = (inputName === 'filters' || inputName === 'tabBy') && typeof selectedFilterValues === 'undefined'\n ? [(await dataStore.pFrameProvider.getAxisUniqueValues(AxisId.fromAxisSpec(allowedCompatibleAxisSpec), [parentColumn as ColumnId], 1)).values[0]]\n : selectedFilterValues;\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: AxisId.fromAxisSpec(allowedCompatibleAxisSpec).toCanonicalString(),\n selectedFilterValues: defaultSelectedFilterValue,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n }\n }\n\n return result;\n}\n"],"names":["domainIsCompatible","domain","otherDomain","keys","key","getDefaultFilterType","valueType","spec","selectedFilterValues","selectedFilterRange","readAnnotation","Annotation","loadDefaultSources","dataStore","defaultOptions","considerAxisDomains","result","defaultColumnStates","selectedSource","defaultAxisStates","allowedAxisSpecs","inputName","filterType","name","annotations","columnId","toRaw","isFilter","defaultFilterType","defaultSelectedFilterValue","defaultFilterRange","axisId","AxisId","axisSourceStr","columnWithExistingAxis","el","defaultSelectedFilterValues","allowedCompatibleAxisSpec","parentColumn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loadDefaultSources.js","sources":["../../src/utils/loadDefaultSources.ts"],"sourcesContent":["import type {\n ChartType,\n ColumnId,\n DemoDataStore,\n InputNamesByChartType,\n InputState,\n SelectorStateFilter,\n SelectorStateSimple,\n} from '@milaboratories/pf-plots';\nimport { AxisId } from '@milaboratories/pf-plots';\nimport type { PredefinedGraphOption } from '../types';\nimport type { AxisSpec, PColumnSpec, PObjectId, ValueType } from '@platforma-sdk/model';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\nimport { toRaw } from 'vue';\nimport { copyJSON } from './copyJSON';\nimport { isJsonEqual } from '@milaboratories/helpers';\n\ntype LoadedDefaultOptions<T extends ChartType> = {\n inputName: InputNamesByChartType[T];\n selectedSource: string;\n filterType?: SelectorStateFilter['type'];\n selectedFilterRange?: SelectorStateFilter['selectedFilterRange'];\n selectedFilterValues?: SelectorStateFilter['selectedFilterValues'];\n};\n\nexport type LoadedDefaultOptionsMap<T extends ChartType> = Record<InputNamesByChartType[T], (SelectorStateFilter | SelectorStateSimple)[]>;\n\nfunction domainIsCompatible(domain?: Record<string, string>, otherDomain?: Record<string, string>): boolean {\n if (typeof domain === 'undefined') {\n return true;\n }\n const keys = Object.keys(domain);\n if (typeof otherDomain === 'undefined') {\n return keys.length === 0;\n }\n return keys.every((key) => otherDomain[key]);\n}\n\nfunction getDefaultFilterType(\n valueType: ValueType,\n spec: PColumnSpec | null,\n selectedFilterValues?: SelectorStateFilter['selectedFilterValues'],\n selectedFilterRange?: Partial<SelectorStateFilter['selectedFilterRange']>,\n): SelectorStateFilter['type'] {\n if (spec && readAnnotation(spec, Annotation.IsSubset)) {\n return 'subset';\n }\n if (selectedFilterRange !== undefined) {\n return 'range';\n }\n if (selectedFilterValues !== undefined) {\n return 'equals';\n }\n if (valueType === 'Int' || valueType === 'String') {\n return 'equals';\n }\n return 'range';\n}\n\nasync function loadInitialFilterValuesColumn(\n dataStore: DemoDataStore,\n inputName: InputNamesByChartType[ChartType],\n usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null,\n columnId: ColumnId,\n): Promise<string[]> {\n const sameStateInUsedOptions = usedDefaultOptions?.[inputName]?.find((s) => s.selectedSource === columnId.toCanonicalString());\n\n if (sameStateInUsedOptions && isSelectorStateFilter(sameStateInUsedOptions) && sameStateInUsedOptions.type === 'equals') {\n const previousSelectedFilterValues = sameStateInUsedOptions.selectedFilterValues ?? [];\n const canBeUsedValues = await Promise.all(previousSelectedFilterValues.map(async (v) => {\n const loadedV = await dataStore.pFrameProvider.getColumnUniqueValues(columnId, 1, [{\n type: 'bySingleColumnV2',\n column: {\n type: 'column' as const,\n id: columnId.name as PObjectId,\n },\n predicate: {\n operator: 'StringIContains',\n substring: v,\n },\n }]);\n return loadedV.values[0] === v;\n }));\n if (previousSelectedFilterValues.length > 0 && canBeUsedValues.every((v) => v)) {\n return previousSelectedFilterValues;\n }\n }\n return [(await dataStore.pFrameProvider.getColumnUniqueValues(columnId, 1)).values[0]];\n}\n\nasync function loadInitialFilterValuesAxis(\n dataStore: DemoDataStore,\n inputName: InputNamesByChartType[ChartType],\n usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null,\n axisId: AxisId,\n parentColumn: ColumnId,\n): Promise<string[]> {\n const sameStateInUsedOptions = usedDefaultOptions?.[inputName]?.find((s) => s.selectedSource === axisId.toCanonicalString());\n\n if (sameStateInUsedOptions && isSelectorStateFilter(sameStateInUsedOptions) && sameStateInUsedOptions.type === 'equals') {\n const previousSelectedFilterValues = sameStateInUsedOptions.selectedFilterValues ?? [];\n const canBeUsedValues = await Promise.all(previousSelectedFilterValues.map(async (v) => {\n const loadedV = await dataStore.pFrameProvider.getAxisUniqueValues(axisId, [parentColumn], 1, [{\n type: 'bySingleColumnV2',\n column: {\n type: 'axis' as const,\n id: axisId.toPFrameId(),\n },\n predicate: {\n operator: 'StringIContains',\n substring: v,\n },\n }]);\n return loadedV.values[0] === v;\n }));\n if (previousSelectedFilterValues.length > 0 && canBeUsedValues.every((v) => v)) {\n return previousSelectedFilterValues;\n }\n }\n return [(await dataStore.pFrameProvider.getAxisUniqueValues(axisId, [parentColumn as ColumnId], 1)).values[0]];\n}\n\nexport async function loadDefaultSources(\n dataStore: DemoDataStore,\n defaultOptions: PredefinedGraphOption<ChartType>[],\n usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null,\n considerAxisDomains = true,\n): Promise<LoadedDefaultOptionsMap<ChartType>> {\n const result: LoadedDefaultOptions<ChartType>[] = [];\n const defaultColumnStates = defaultOptions.filter(({ selectedSource }) => 'kind' in selectedSource && selectedSource.kind === 'PColumn');\n const defaultAxisStates = defaultOptions.filter(({ selectedSource }) => !('kind' in selectedSource && selectedSource.kind === 'PColumn'));\n\n const allowedAxisSpecs = [] as { spec: AxisSpec; parentColumn: ColumnId }[]; // if default options contain axes - they should be in other default columns\n\n for (const { inputName, filterType, selectedSource, selectedFilterValues, selectedFilterRange } of defaultColumnStates) {\n const { name, valueType, annotations, domain } = selectedSource as PColumnSpec;\n const columnId = await dataStore.pFrameProvider.findColumnBy(name, valueType, toRaw(annotations), toRaw(domain));\n const isFilter = inputName === 'filters' || inputName === 'tabBy' || inputName === 'highlight';\n if (columnId) {\n const spec = await dataStore.pFrameProvider.getColumnSpecById(columnId);\n if (!isFilter) {\n result.push({ inputName, selectedSource: columnId.toCanonicalString() });\n } else {\n const defaultFilterType = filterType ?? getDefaultFilterType(valueType, spec, selectedFilterValues, selectedFilterRange);\n const defaultSelectedFilterValue = defaultFilterType === 'equals' && typeof selectedFilterValues === 'undefined'\n ? (await loadInitialFilterValuesColumn(dataStore, inputName, usedDefaultOptions, columnId))\n : selectedFilterValues;\n const defaultFilterRange = { min: undefined, max: undefined, ...selectedFilterRange };\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: columnId.toCanonicalString(),\n selectedFilterValues: defaultSelectedFilterValue,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n\n allowedAxisSpecs.push(...spec?.axesSpec.map((spec) => ({ spec, parentColumn: columnId })) ?? []);\n } else {\n console.warn(`Not found column for default option: ${JSON.stringify({ inputName, selectedSource })}`);\n }\n }\n for (const { inputName, selectedSource, filterType, selectedFilterValues, selectedFilterRange } of defaultAxisStates) {\n const axisId = AxisId.fromAxisSpec(selectedSource as AxisSpec);\n const axisSourceStr = axisId.toCanonicalString();\n const isFilter = inputName === 'filters' || inputName === 'tabBy' || inputName === 'highlight';\n const defaultFilterType = isFilter ? filterType ?? getDefaultFilterType(axisId.type, { annotations: selectedSource?.annotations } as PColumnSpec) : undefined;\n\n const columnWithExistingAxis = allowedAxisSpecs.find((el) => AxisId.fromAxisSpec(el.spec).toCanonicalString() === axisSourceStr);\n const defaultSelectedFilterValues = isFilter && defaultFilterType === 'equals' && typeof selectedFilterValues === 'undefined' && columnWithExistingAxis?.parentColumn\n ? (await loadInitialFilterValuesAxis(dataStore, inputName, usedDefaultOptions, axisId, columnWithExistingAxis?.parentColumn as ColumnId))\n : selectedFilterValues;\n const defaultFilterRange = { min: undefined, max: undefined, ...selectedFilterRange };\n\n if (!considerAxisDomains) {\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: axisSourceStr,\n selectedFilterValues: defaultSelectedFilterValues,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n if (columnWithExistingAxis) {\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: axisSourceStr,\n selectedFilterValues: defaultSelectedFilterValues,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n } else {\n const { spec: allowedCompatibleAxisSpec, parentColumn } = allowedAxisSpecs.find((el) => {\n return axisId.name === el.spec.name && axisId.type === el.spec.type && domainIsCompatible(axisId.domain, el.spec.domain);\n }) ?? {};\n if (allowedCompatibleAxisSpec) {\n const defaultSelectedFilterValues = (inputName === 'filters' || inputName === 'tabBy') && typeof selectedFilterValues === 'undefined'\n ? (await loadInitialFilterValuesAxis(dataStore, inputName, usedDefaultOptions, AxisId.fromAxisSpec(allowedCompatibleAxisSpec), parentColumn as ColumnId))\n : selectedFilterValues;\n result.push({\n inputName,\n filterType: defaultFilterType,\n selectedSource: AxisId.fromAxisSpec(allowedCompatibleAxisSpec).toCanonicalString(),\n selectedFilterValues: defaultSelectedFilterValues,\n selectedFilterRange: defaultFilterRange as SelectorStateFilter['selectedFilterRange'],\n });\n }\n }\n }\n\n const loadedDefaultOptionsGrouped = result.reduce((acc, { inputName, selectedSource, filterType, selectedFilterValues, selectedFilterRange }) => {\n if (!acc[inputName]) {\n acc[inputName] = [];\n }\n if (filterType) {\n acc[inputName].push({\n selectedSource,\n type: filterType,\n selectedFilterValues,\n selectedFilterRange,\n });\n } else {\n acc[inputName].push({ selectedSource });\n }\n return acc;\n }, {} as LoadedDefaultOptionsMap<ChartType>);\n\n return loadedDefaultOptionsGrouped;\n}\n\nfunction isSelectorStateFilter(a: SelectorStateFilter | SelectorStateSimple): a is SelectorStateFilter {\n return typeof a === 'object' && a !== null && 'type' in a;\n}\nfunction selectorStatesAreEqual(\n a: (SelectorStateFilter | SelectorStateSimple),\n b: (SelectorStateFilter | SelectorStateSimple),\n): boolean {\n if (isSelectorStateFilter(a) && isSelectorStateFilter(b)) {\n if (a.type !== b.type) {\n return false;\n }\n if (a.type === 'equals' && b.type === 'equals') {\n const equals = isJsonEqual(a.selectedFilterValues, b.selectedFilterValues);\n if (!equals) {\n return false;\n }\n }\n if (a.selectedFilterRange !== undefined && b.selectedFilterRange !== undefined\n && (a.selectedFilterRange.min !== b.selectedFilterRange.min || a.selectedFilterRange.max !== b.selectedFilterRange.max)\n ) {\n return false;\n }\n return a.selectedSource === b.selectedSource;\n }\n return isJsonEqual(a, b);\n}\nexport function isOptionsStateNeedsToBeUpdated(\n state: InputState,\n usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null,\n newDefaultOptions: LoadedDefaultOptionsMap<ChartType>,\n): boolean {\n if (!usedDefaultOptions) {\n return Object.keys(newDefaultOptions).length > 0;\n }\n for (const [inputName, selectedStates] of Object.entries(newDefaultOptions) as [InputNamesByChartType[ChartType], (SelectorStateFilter | SelectorStateSimple)[]][]) {\n const usedDefaults = usedDefaultOptions[inputName];\n const newDefaults = selectedStates;\n const currentOptions = state.components[inputName].selectorStates;\n\n for (const selectorState of newDefaults) {\n // this option is already in current options (set by user or wasn't changed from previous default options)\n if (currentOptions.some((s) => selectorStatesAreEqual(s, selectorState))) {\n continue;\n }\n // this option is not changed from previous default options (but was changed by user)\n if (usedDefaults?.some((s) => selectorStatesAreEqual(s, selectorState))) {\n continue;\n }\n return true;\n }\n }\n return false;\n};\n\nexport function createUpdatedWithNewDefaultsOptionsState(\n state: InputState,\n usedDefaultOptions: LoadedDefaultOptionsMap<ChartType> | null,\n newDefaultOptions: LoadedDefaultOptionsMap<ChartType>,\n): InputState['components'] {\n const updatedOptionsState: InputState['components'] = copyJSON(state.components);\n for (const [inputName, selectorStates] of Object.entries(newDefaultOptions) as [InputNamesByChartType[ChartType], (SelectorStateFilter | SelectorStateSimple)[]][]) {\n if (usedDefaultOptions?.[inputName as keyof LoadedDefaultOptionsMap<ChartType>]?.every(\n (s) => selectorStates.some((ss) => selectorStatesAreEqual(s, ss)),\n )) {\n // nothing changed for this input, skip; even if user has changed something, we don't want to reset it\n continue;\n }\n updatedOptionsState[inputName].selectorStates = selectorStates;\n }\n return updatedOptionsState;\n}\n"],"names":["domainIsCompatible","domain","otherDomain","keys","key","getDefaultFilterType","valueType","spec","selectedFilterValues","selectedFilterRange","readAnnotation","Annotation","loadInitialFilterValuesColumn","dataStore","inputName","usedDefaultOptions","columnId","sameStateInUsedOptions","_a","isSelectorStateFilter","previousSelectedFilterValues","canBeUsedValues","v","loadInitialFilterValuesAxis","axisId","parentColumn","s","loadDefaultSources","defaultOptions","considerAxisDomains","result","defaultColumnStates","selectedSource","defaultAxisStates","allowedAxisSpecs","filterType","name","annotations","toRaw","isFilter","defaultFilterType","defaultSelectedFilterValue","defaultFilterRange","AxisId","axisSourceStr","columnWithExistingAxis","el","defaultSelectedFilterValues","allowedCompatibleAxisSpec","acc","a","selectorStatesAreEqual","b","isJsonEqual","isOptionsStateNeedsToBeUpdated","state","newDefaultOptions","selectedStates","usedDefaults","newDefaults","currentOptions","selectorState","createUpdatedWithNewDefaultsOptionsState","updatedOptionsState","copyJSON","selectorStates","ss"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.224",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"d3-scale": "^4.0.2",
|
|
38
38
|
"vue": "^3.5.24",
|
|
39
39
|
"@milaboratories/miplots4": "1.0.172",
|
|
40
|
-
"@milaboratories/pf-plots": "1.1.
|
|
40
|
+
"@milaboratories/pf-plots": "1.1.62"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@milaboratories/build-configs": "^1.0.5",
|