@sentropic/dataviz-core 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregate.d.ts +4 -4
- package/dist/aggregate.d.ts.map +1 -1
- package/dist/aggregate.js +13 -7
- package/dist/aggregate.js.map +1 -1
- package/dist/analytics.d.ts +105 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +323 -0
- package/dist/analytics.js.map +1 -0
- package/dist/categorical.d.ts +84 -0
- package/dist/categorical.d.ts.map +1 -0
- package/dist/categorical.js +158 -0
- package/dist/categorical.js.map +1 -0
- package/dist/describe.d.ts +11 -0
- package/dist/describe.d.ts.map +1 -0
- package/dist/describe.js +26 -0
- package/dist/describe.js.map +1 -0
- package/dist/distribution.d.ts +109 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/distribution.js +231 -0
- package/dist/distribution.js.map +1 -0
- package/dist/fields.d.ts +53 -0
- package/dist/fields.d.ts.map +1 -0
- package/dist/fields.js +108 -0
- package/dist/fields.js.map +1 -0
- package/dist/geo.d.ts +151 -0
- package/dist/geo.d.ts.map +1 -0
- package/dist/geo.js +300 -0
- package/dist/geo.js.map +1 -0
- package/dist/index.d.ts +22 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/kpi.d.ts +35 -0
- package/dist/kpi.d.ts.map +1 -0
- package/dist/kpi.js +40 -0
- package/dist/kpi.js.map +1 -0
- package/dist/model.d.ts +4 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +4 -0
- package/dist/model.js.map +1 -1
- package/dist/partOfWhole.d.ts +159 -0
- package/dist/partOfWhole.d.ts.map +1 -0
- package/dist/partOfWhole.js +260 -0
- package/dist/partOfWhole.js.map +1 -0
- package/dist/pivot.d.ts +31 -0
- package/dist/pivot.d.ts.map +1 -0
- package/dist/pivot.js +121 -0
- package/dist/pivot.js.map +1 -0
- package/dist/pivotAdvanced.d.ts +47 -0
- package/dist/pivotAdvanced.d.ts.map +1 -0
- package/dist/pivotAdvanced.js +208 -0
- package/dist/pivotAdvanced.js.map +1 -0
- package/dist/serialize.d.ts +15 -3
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js +55 -20
- package/dist/serialize.js.map +1 -1
- package/dist/store.d.ts +17 -4
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +120 -15
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The dashboard store: an immutable, observable container for the shared
|
|
3
|
-
* inter-view state (filters + selections).
|
|
3
|
+
* inter-view state (filters + selections + drill paths).
|
|
4
4
|
*
|
|
5
5
|
* Every mutation produces a brand-new frozen {@link DashboardState} (a different
|
|
6
6
|
* object reference) and then notifies subscribers. The state is fully
|
|
@@ -8,11 +8,41 @@
|
|
|
8
8
|
* than as opaque functions, so they can be bookmarked / round-tripped through a
|
|
9
9
|
* URL. A runtime predicate is derived from the spec on demand.
|
|
10
10
|
*/
|
|
11
|
+
import { findDimension } from './model.js';
|
|
12
|
+
import { applyCrossfilter as applyCrossfilterRows } from './crossfilter.js';
|
|
13
|
+
function isStringArray(value) {
|
|
14
|
+
return Array.isArray(value) && value.every((v) => typeof v === 'string');
|
|
15
|
+
}
|
|
16
|
+
function isFiniteBound(value) {
|
|
17
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
18
|
+
}
|
|
19
|
+
/** Validate that an unknown value is a well-formed, serialisable {@link FilterSpec}. */
|
|
20
|
+
export function isFilterSpec(value) {
|
|
21
|
+
if (typeof value !== 'object' || value === null)
|
|
22
|
+
return false;
|
|
23
|
+
const spec = value;
|
|
24
|
+
switch (spec.kind) {
|
|
25
|
+
case 'include':
|
|
26
|
+
case 'exclude':
|
|
27
|
+
return isStringArray(spec.values);
|
|
28
|
+
case 'range':
|
|
29
|
+
return ((spec.min === undefined || isFiniteBound(spec.min)) &&
|
|
30
|
+
(spec.max === undefined || isFiniteBound(spec.max)));
|
|
31
|
+
default:
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function assertFilterSpec(spec) {
|
|
36
|
+
if (!isFilterSpec(spec)) {
|
|
37
|
+
throw new TypeError('Invalid filter spec');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
11
40
|
/** Build the empty initial state, frozen. */
|
|
12
41
|
function emptyState() {
|
|
13
42
|
return Object.freeze({
|
|
14
43
|
filters: Object.freeze({}),
|
|
15
44
|
selections: Object.freeze({}),
|
|
45
|
+
drill: Object.freeze({}),
|
|
16
46
|
});
|
|
17
47
|
}
|
|
18
48
|
/** Deep-freeze a filter spec so snapshots cannot be mutated in place. */
|
|
@@ -22,7 +52,7 @@ function freezeSpec(spec) {
|
|
|
22
52
|
}
|
|
23
53
|
return Object.freeze({ kind: 'range', min: spec.min, max: spec.max });
|
|
24
54
|
}
|
|
25
|
-
function freezeState(filters, selections) {
|
|
55
|
+
function freezeState(filters, selections, drill) {
|
|
26
56
|
const frozenFilters = {};
|
|
27
57
|
for (const [id, spec] of Object.entries(filters)) {
|
|
28
58
|
frozenFilters[id] = freezeSpec(spec);
|
|
@@ -31,11 +61,34 @@ function freezeState(filters, selections) {
|
|
|
31
61
|
for (const [id, keys] of Object.entries(selections)) {
|
|
32
62
|
frozenSelections[id] = Object.freeze([...keys]);
|
|
33
63
|
}
|
|
64
|
+
const frozenDrill = {};
|
|
65
|
+
for (const [id, path] of Object.entries(drill)) {
|
|
66
|
+
frozenDrill[id] = Object.freeze([...path]);
|
|
67
|
+
}
|
|
34
68
|
return Object.freeze({
|
|
35
69
|
filters: Object.freeze(frozenFilters),
|
|
36
70
|
selections: Object.freeze(frozenSelections),
|
|
71
|
+
drill: Object.freeze(frozenDrill),
|
|
37
72
|
});
|
|
38
73
|
}
|
|
74
|
+
function freezeRow(row) {
|
|
75
|
+
return Object.freeze({ ...row });
|
|
76
|
+
}
|
|
77
|
+
function cloneResultRows(rows) {
|
|
78
|
+
return rows.map(freezeRow);
|
|
79
|
+
}
|
|
80
|
+
function arrayEqual(a, b) {
|
|
81
|
+
return a.length === b.length && a.every((value, index) => value === b[index]);
|
|
82
|
+
}
|
|
83
|
+
function specsEqual(a, b) {
|
|
84
|
+
if (!a || a.kind !== b.kind)
|
|
85
|
+
return false;
|
|
86
|
+
if (a.kind === 'include' || a.kind === 'exclude') {
|
|
87
|
+
return arrayEqual(a.values, b.values);
|
|
88
|
+
}
|
|
89
|
+
const range = b;
|
|
90
|
+
return a.min === range.min && a.max === range.max;
|
|
91
|
+
}
|
|
39
92
|
/**
|
|
40
93
|
* Create an observable, immutable dashboard store.
|
|
41
94
|
*
|
|
@@ -48,7 +101,7 @@ export function createDashboardStore(config) {
|
|
|
48
101
|
let state = emptyState();
|
|
49
102
|
const listeners = new Set();
|
|
50
103
|
// Defensive copy: the store owns its data; callers can't mutate it later.
|
|
51
|
-
const data = Object.freeze(
|
|
104
|
+
const data = Object.freeze(config.data.map(freezeRow));
|
|
52
105
|
function notify() {
|
|
53
106
|
for (const listener of [...listeners]) {
|
|
54
107
|
listener();
|
|
@@ -58,6 +111,18 @@ export function createDashboardStore(config) {
|
|
|
58
111
|
state = next;
|
|
59
112
|
notify();
|
|
60
113
|
}
|
|
114
|
+
function assertKnownDimension(dimensionId) {
|
|
115
|
+
if (!findDimension(config.model, dimensionId)) {
|
|
116
|
+
throw new Error(`Unknown dimension: ${dimensionId}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function clearFilterImpl(dimensionId) {
|
|
120
|
+
if (!(dimensionId in state.filters))
|
|
121
|
+
return;
|
|
122
|
+
const nextFilters = { ...state.filters };
|
|
123
|
+
delete nextFilters[dimensionId];
|
|
124
|
+
commit(freezeState(nextFilters, state.selections, state.drill));
|
|
125
|
+
}
|
|
61
126
|
return {
|
|
62
127
|
model: config.model,
|
|
63
128
|
data,
|
|
@@ -72,15 +137,18 @@ export function createDashboardStore(config) {
|
|
|
72
137
|
};
|
|
73
138
|
},
|
|
74
139
|
setFilter(dimensionId, spec) {
|
|
140
|
+
assertKnownDimension(dimensionId);
|
|
141
|
+
assertFilterSpec(spec);
|
|
142
|
+
if (specsEqual(state.filters[dimensionId], spec))
|
|
143
|
+
return;
|
|
75
144
|
const nextFilters = { ...state.filters, [dimensionId]: spec };
|
|
76
|
-
commit(freezeState(nextFilters, state.selections));
|
|
145
|
+
commit(freezeState(nextFilters, state.selections, state.drill));
|
|
146
|
+
},
|
|
147
|
+
clear(dimensionId) {
|
|
148
|
+
clearFilterImpl(dimensionId);
|
|
77
149
|
},
|
|
78
150
|
clearFilter(dimensionId) {
|
|
79
|
-
|
|
80
|
-
return;
|
|
81
|
-
const nextFilters = { ...state.filters };
|
|
82
|
-
delete nextFilters[dimensionId];
|
|
83
|
-
commit(freezeState(nextFilters, state.selections));
|
|
151
|
+
clearFilterImpl(dimensionId);
|
|
84
152
|
},
|
|
85
153
|
toggleSelection(viewId, key) {
|
|
86
154
|
const current = state.selections[viewId] ?? [];
|
|
@@ -93,25 +161,60 @@ export function createDashboardStore(config) {
|
|
|
93
161
|
else {
|
|
94
162
|
nextSelections[viewId] = nextKeys;
|
|
95
163
|
}
|
|
96
|
-
commit(freezeState(state.filters, nextSelections));
|
|
164
|
+
commit(freezeState(state.filters, nextSelections, state.drill));
|
|
97
165
|
},
|
|
98
166
|
clearSelection(viewId) {
|
|
99
167
|
if (!(viewId in state.selections))
|
|
100
168
|
return;
|
|
101
169
|
const nextSelections = { ...state.selections };
|
|
102
170
|
delete nextSelections[viewId];
|
|
103
|
-
commit(freezeState(state.filters, nextSelections));
|
|
171
|
+
commit(freezeState(state.filters, nextSelections, state.drill));
|
|
172
|
+
},
|
|
173
|
+
drillDown(viewId, dimensionId) {
|
|
174
|
+
assertKnownDimension(dimensionId);
|
|
175
|
+
const current = state.drill[viewId] ?? [];
|
|
176
|
+
if (current.includes(dimensionId))
|
|
177
|
+
return;
|
|
178
|
+
const nextDrill = { ...state.drill, [viewId]: [...current, dimensionId] };
|
|
179
|
+
commit(freezeState(state.filters, state.selections, nextDrill));
|
|
180
|
+
},
|
|
181
|
+
drillUp(viewId) {
|
|
182
|
+
const current = state.drill[viewId];
|
|
183
|
+
if (!current || current.length === 0)
|
|
184
|
+
return;
|
|
185
|
+
const nextDrill = { ...state.drill };
|
|
186
|
+
const nextPath = current.slice(0, -1);
|
|
187
|
+
if (nextPath.length === 0) {
|
|
188
|
+
delete nextDrill[viewId];
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
nextDrill[viewId] = nextPath;
|
|
192
|
+
}
|
|
193
|
+
commit(freezeState(state.filters, state.selections, nextDrill));
|
|
194
|
+
},
|
|
195
|
+
clearDrill(viewId) {
|
|
196
|
+
if (!(viewId in state.drill))
|
|
197
|
+
return;
|
|
198
|
+
const nextDrill = { ...state.drill };
|
|
199
|
+
delete nextDrill[viewId];
|
|
200
|
+
commit(freezeState(state.filters, state.selections, nextDrill));
|
|
104
201
|
},
|
|
105
202
|
clearAll() {
|
|
106
|
-
const hasState = Object.keys(state.filters).length > 0 ||
|
|
203
|
+
const hasState = Object.keys(state.filters).length > 0 ||
|
|
204
|
+
Object.keys(state.selections).length > 0 ||
|
|
205
|
+
Object.keys(state.drill).length > 0;
|
|
107
206
|
if (!hasState)
|
|
108
207
|
return;
|
|
109
208
|
commit(emptyState());
|
|
110
209
|
},
|
|
210
|
+
applyCrossfilter(viewId) {
|
|
211
|
+
return applyCrossfilterRows(state, data, viewId, config.crossfilter);
|
|
212
|
+
},
|
|
111
213
|
};
|
|
112
214
|
}
|
|
113
215
|
/** Compile a {@link FilterSpec} into a runtime predicate over a cell. */
|
|
114
216
|
export function specToPredicate(spec) {
|
|
217
|
+
assertFilterSpec(spec);
|
|
115
218
|
switch (spec.kind) {
|
|
116
219
|
case 'include': {
|
|
117
220
|
const set = new Set(spec.values);
|
|
@@ -124,7 +227,9 @@ export function specToPredicate(spec) {
|
|
|
124
227
|
case 'range': {
|
|
125
228
|
const { min, max } = spec;
|
|
126
229
|
return (value) => {
|
|
127
|
-
if (value == null || value === '')
|
|
230
|
+
if (value == null || typeof value === 'boolean')
|
|
231
|
+
return false;
|
|
232
|
+
if (typeof value === 'string' && value.trim() === '')
|
|
128
233
|
return false;
|
|
129
234
|
const n = typeof value === 'number' ? value : Number(value);
|
|
130
235
|
if (!Number.isFinite(n))
|
|
@@ -145,8 +250,8 @@ export function specToPredicate(spec) {
|
|
|
145
250
|
export function applyFilters(state, data) {
|
|
146
251
|
const entries = Object.entries(state.filters);
|
|
147
252
|
if (entries.length === 0)
|
|
148
|
-
return
|
|
253
|
+
return cloneResultRows(data);
|
|
149
254
|
const predicates = entries.map(([dimensionId, spec]) => [dimensionId, specToPredicate(spec)]);
|
|
150
|
-
return data.filter((row) => predicates.every(([dimId, pred]) => pred(row[dimId] ?? null)));
|
|
255
|
+
return cloneResultRows(data.filter((row) => predicates.every(([dimId, pred]) => pred(row[dimId] ?? null))));
|
|
151
256
|
}
|
|
152
257
|
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentropic/dataviz-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Framework-agnostic engine for shared inter-view dashboard state: data model, observable immutable store, cross-filter, aggregation, bookmark serialisation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|