@sqlrooms/pivot 0.29.0-rc.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.
Files changed (66) hide show
  1. package/README.md +3 -0
  2. package/dist/PivotCellContent.d.ts +10 -0
  3. package/dist/PivotCellContent.d.ts.map +1 -0
  4. package/dist/PivotCellContent.js +37 -0
  5. package/dist/PivotCellContent.js.map +1 -0
  6. package/dist/PivotCoreSlice.d.ts +73 -0
  7. package/dist/PivotCoreSlice.d.ts.map +1 -0
  8. package/dist/PivotCoreSlice.js +175 -0
  9. package/dist/PivotCoreSlice.js.map +1 -0
  10. package/dist/PivotEditor.d.ts +66 -0
  11. package/dist/PivotEditor.d.ts.map +1 -0
  12. package/dist/PivotEditor.js +341 -0
  13. package/dist/PivotEditor.js.map +1 -0
  14. package/dist/PivotResults.d.ts +15 -0
  15. package/dist/PivotResults.d.ts.map +1 -0
  16. package/dist/PivotResults.js +102 -0
  17. package/dist/PivotResults.js.map +1 -0
  18. package/dist/PivotSlice.d.ts +7 -0
  19. package/dist/PivotSlice.d.ts.map +1 -0
  20. package/dist/PivotSlice.js +353 -0
  21. package/dist/PivotSlice.js.map +1 -0
  22. package/dist/PivotView.d.ts +3 -0
  23. package/dist/PivotView.d.ts.map +1 -0
  24. package/dist/PivotView.js +39 -0
  25. package/dist/PivotView.js.map +1 -0
  26. package/dist/TableRenderer.d.ts +14 -0
  27. package/dist/TableRenderer.d.ts.map +1 -0
  28. package/dist/TableRenderer.js +100 -0
  29. package/dist/TableRenderer.js.map +1 -0
  30. package/dist/TsvRenderer.d.ts +7 -0
  31. package/dist/TsvRenderer.d.ts.map +1 -0
  32. package/dist/TsvRenderer.js +26 -0
  33. package/dist/TsvRenderer.js.map +1 -0
  34. package/dist/aggregators.d.ts +24 -0
  35. package/dist/aggregators.d.ts.map +1 -0
  36. package/dist/aggregators.js +232 -0
  37. package/dist/aggregators.js.map +1 -0
  38. package/dist/helpers.d.ts +85 -0
  39. package/dist/helpers.d.ts.map +1 -0
  40. package/dist/helpers.js +348 -0
  41. package/dist/helpers.js.map +1 -0
  42. package/dist/index.d.ts +20 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +17 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/pivotCellRegistryEntry.d.ts +4 -0
  47. package/dist/pivotCellRegistryEntry.d.ts.map +1 -0
  48. package/dist/pivotCellRegistryEntry.js +137 -0
  49. package/dist/pivotCellRegistryEntry.js.map +1 -0
  50. package/dist/pivotCellTypes.d.ts +23 -0
  51. package/dist/pivotCellTypes.d.ts.map +1 -0
  52. package/dist/pivotCellTypes.js +14 -0
  53. package/dist/pivotCellTypes.js.map +1 -0
  54. package/dist/pivotExecution.d.ts +16 -0
  55. package/dist/pivotExecution.d.ts.map +1 -0
  56. package/dist/pivotExecution.js +49 -0
  57. package/dist/pivotExecution.js.map +1 -0
  58. package/dist/sql.d.ts +17 -0
  59. package/dist/sql.d.ts.map +1 -0
  60. package/dist/sql.js +278 -0
  61. package/dist/sql.js.map +1 -0
  62. package/dist/types.d.ts +513 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +107 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +58 -0
@@ -0,0 +1,513 @@
1
+ import { SliceFunctions } from '@sqlrooms/room-store';
2
+ import { z } from 'zod';
3
+ import type { StoreApi } from 'zustand/vanilla';
4
+ export declare const PIVOT_RENDERER_NAMES: readonly ["Table", "Table Heatmap", "Table Col Heatmap", "Table Row Heatmap", "Exportable TSV", "Grouped Column Chart", "Stacked Column Chart", "Grouped Bar Chart", "Stacked Bar Chart", "Line Chart", "Dot Chart", "Area Chart", "Scatter Chart", "Multiple Pie Chart"];
5
+ export declare const PivotRendererName: z.ZodEnum<{
6
+ Table: "Table";
7
+ "Table Heatmap": "Table Heatmap";
8
+ "Table Col Heatmap": "Table Col Heatmap";
9
+ "Table Row Heatmap": "Table Row Heatmap";
10
+ "Exportable TSV": "Exportable TSV";
11
+ "Grouped Column Chart": "Grouped Column Chart";
12
+ "Stacked Column Chart": "Stacked Column Chart";
13
+ "Grouped Bar Chart": "Grouped Bar Chart";
14
+ "Stacked Bar Chart": "Stacked Bar Chart";
15
+ "Line Chart": "Line Chart";
16
+ "Dot Chart": "Dot Chart";
17
+ "Area Chart": "Area Chart";
18
+ "Scatter Chart": "Scatter Chart";
19
+ "Multiple Pie Chart": "Multiple Pie Chart";
20
+ }>;
21
+ export type PivotRendererName = z.infer<typeof PivotRendererName>;
22
+ export declare const PivotSortOrder: z.ZodEnum<{
23
+ key_a_to_z: "key_a_to_z";
24
+ value_a_to_z: "value_a_to_z";
25
+ value_z_to_a: "value_z_to_a";
26
+ }>;
27
+ export type PivotSortOrder = z.infer<typeof PivotSortOrder>;
28
+ export declare const PivotFilterMapSchema: z.ZodRecord<z.ZodString, z.ZodBoolean>;
29
+ export type PivotFilterMap = z.infer<typeof PivotFilterMapSchema>;
30
+ export declare const PivotValueFilterSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodBoolean>>;
31
+ export type PivotValueFilter = z.infer<typeof PivotValueFilterSchema>;
32
+ export declare const PivotConfig: z.ZodObject<{
33
+ rendererName: z.ZodDefault<z.ZodEnum<{
34
+ Table: "Table";
35
+ "Table Heatmap": "Table Heatmap";
36
+ "Table Col Heatmap": "Table Col Heatmap";
37
+ "Table Row Heatmap": "Table Row Heatmap";
38
+ "Exportable TSV": "Exportable TSV";
39
+ "Grouped Column Chart": "Grouped Column Chart";
40
+ "Stacked Column Chart": "Stacked Column Chart";
41
+ "Grouped Bar Chart": "Grouped Bar Chart";
42
+ "Stacked Bar Chart": "Stacked Bar Chart";
43
+ "Line Chart": "Line Chart";
44
+ "Dot Chart": "Dot Chart";
45
+ "Area Chart": "Area Chart";
46
+ "Scatter Chart": "Scatter Chart";
47
+ "Multiple Pie Chart": "Multiple Pie Chart";
48
+ }>>;
49
+ aggregatorName: z.ZodDefault<z.ZodString>;
50
+ rows: z.ZodDefault<z.ZodArray<z.ZodString>>;
51
+ cols: z.ZodDefault<z.ZodArray<z.ZodString>>;
52
+ vals: z.ZodDefault<z.ZodArray<z.ZodString>>;
53
+ valueFilter: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodBoolean>>>;
54
+ rowOrder: z.ZodDefault<z.ZodEnum<{
55
+ key_a_to_z: "key_a_to_z";
56
+ value_a_to_z: "value_a_to_z";
57
+ value_z_to_a: "value_z_to_a";
58
+ }>>;
59
+ colOrder: z.ZodDefault<z.ZodEnum<{
60
+ key_a_to_z: "key_a_to_z";
61
+ value_a_to_z: "value_a_to_z";
62
+ value_z_to_a: "value_z_to_a";
63
+ }>>;
64
+ unusedOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
65
+ menuLimit: z.ZodDefault<z.ZodNumber>;
66
+ hiddenAttributes: z.ZodDefault<z.ZodArray<z.ZodString>>;
67
+ hiddenFromAggregators: z.ZodDefault<z.ZodArray<z.ZodString>>;
68
+ hiddenFromDragDrop: z.ZodDefault<z.ZodArray<z.ZodString>>;
69
+ }, z.core.$strip>;
70
+ export type PivotConfig = z.infer<typeof PivotConfig>;
71
+ export declare const PivotSource: z.ZodDiscriminatedUnion<[z.ZodObject<{
72
+ kind: z.ZodLiteral<"table">;
73
+ tableName: z.ZodString;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ kind: z.ZodLiteral<"sql">;
76
+ sqlId: z.ZodString;
77
+ }, z.core.$strip>], "kind">;
78
+ export type PivotSource = z.infer<typeof PivotSource>;
79
+ export declare const PivotRelationViews: z.ZodObject<{
80
+ cells: z.ZodOptional<z.ZodString>;
81
+ rowTotals: z.ZodOptional<z.ZodString>;
82
+ colTotals: z.ZodOptional<z.ZodString>;
83
+ grandTotal: z.ZodOptional<z.ZodString>;
84
+ export: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strip>;
86
+ export type PivotRelationViews = z.infer<typeof PivotRelationViews>;
87
+ export declare const PivotRunState: z.ZodEnum<{
88
+ success: "success";
89
+ error: "error";
90
+ idle: "idle";
91
+ running: "running";
92
+ cancel: "cancel";
93
+ }>;
94
+ export type PivotRunState = z.infer<typeof PivotRunState>;
95
+ export declare const PivotStatus: z.ZodObject<{
96
+ state: z.ZodDefault<z.ZodEnum<{
97
+ success: "success";
98
+ error: "error";
99
+ idle: "idle";
100
+ running: "running";
101
+ cancel: "cancel";
102
+ }>>;
103
+ stale: z.ZodDefault<z.ZodBoolean>;
104
+ lastError: z.ZodOptional<z.ZodString>;
105
+ lastRunTime: z.ZodOptional<z.ZodNumber>;
106
+ relations: z.ZodOptional<z.ZodObject<{
107
+ cells: z.ZodOptional<z.ZodString>;
108
+ rowTotals: z.ZodOptional<z.ZodString>;
109
+ colTotals: z.ZodOptional<z.ZodString>;
110
+ grandTotal: z.ZodOptional<z.ZodString>;
111
+ export: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$strip>>;
113
+ sourceRelation: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strip>;
115
+ export type PivotStatus = z.infer<typeof PivotStatus>;
116
+ export declare const PivotSliceItem: z.ZodPipe<z.ZodObject<{
117
+ id: z.ZodString;
118
+ title: z.ZodString;
119
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
120
+ kind: z.ZodLiteral<"table">;
121
+ tableName: z.ZodString;
122
+ }, z.core.$strip>, z.ZodObject<{
123
+ kind: z.ZodLiteral<"sql">;
124
+ sqlId: z.ZodString;
125
+ }, z.core.$strip>], "kind">>;
126
+ config: z.ZodObject<{
127
+ rendererName: z.ZodDefault<z.ZodEnum<{
128
+ Table: "Table";
129
+ "Table Heatmap": "Table Heatmap";
130
+ "Table Col Heatmap": "Table Col Heatmap";
131
+ "Table Row Heatmap": "Table Row Heatmap";
132
+ "Exportable TSV": "Exportable TSV";
133
+ "Grouped Column Chart": "Grouped Column Chart";
134
+ "Stacked Column Chart": "Stacked Column Chart";
135
+ "Grouped Bar Chart": "Grouped Bar Chart";
136
+ "Stacked Bar Chart": "Stacked Bar Chart";
137
+ "Line Chart": "Line Chart";
138
+ "Dot Chart": "Dot Chart";
139
+ "Area Chart": "Area Chart";
140
+ "Scatter Chart": "Scatter Chart";
141
+ "Multiple Pie Chart": "Multiple Pie Chart";
142
+ }>>;
143
+ aggregatorName: z.ZodDefault<z.ZodString>;
144
+ rows: z.ZodDefault<z.ZodArray<z.ZodString>>;
145
+ cols: z.ZodDefault<z.ZodArray<z.ZodString>>;
146
+ vals: z.ZodDefault<z.ZodArray<z.ZodString>>;
147
+ valueFilter: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodBoolean>>>;
148
+ rowOrder: z.ZodDefault<z.ZodEnum<{
149
+ key_a_to_z: "key_a_to_z";
150
+ value_a_to_z: "value_a_to_z";
151
+ value_z_to_a: "value_z_to_a";
152
+ }>>;
153
+ colOrder: z.ZodDefault<z.ZodEnum<{
154
+ key_a_to_z: "key_a_to_z";
155
+ value_a_to_z: "value_a_to_z";
156
+ value_z_to_a: "value_z_to_a";
157
+ }>>;
158
+ unusedOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
159
+ menuLimit: z.ZodDefault<z.ZodNumber>;
160
+ hiddenAttributes: z.ZodDefault<z.ZodArray<z.ZodString>>;
161
+ hiddenFromAggregators: z.ZodDefault<z.ZodArray<z.ZodString>>;
162
+ hiddenFromDragDrop: z.ZodDefault<z.ZodArray<z.ZodString>>;
163
+ }, z.core.$strip>;
164
+ status: z.ZodDefault<z.ZodObject<{
165
+ state: z.ZodDefault<z.ZodEnum<{
166
+ success: "success";
167
+ error: "error";
168
+ idle: "idle";
169
+ running: "running";
170
+ cancel: "cancel";
171
+ }>>;
172
+ stale: z.ZodDefault<z.ZodBoolean>;
173
+ lastError: z.ZodOptional<z.ZodString>;
174
+ lastRunTime: z.ZodOptional<z.ZodNumber>;
175
+ relations: z.ZodOptional<z.ZodObject<{
176
+ cells: z.ZodOptional<z.ZodString>;
177
+ rowTotals: z.ZodOptional<z.ZodString>;
178
+ colTotals: z.ZodOptional<z.ZodString>;
179
+ grandTotal: z.ZodOptional<z.ZodString>;
180
+ export: z.ZodOptional<z.ZodString>;
181
+ }, z.core.$strip>>;
182
+ sourceRelation: z.ZodOptional<z.ZodString>;
183
+ }, z.core.$strip>>;
184
+ }, z.core.$strip>, z.ZodTransform<{
185
+ status: {
186
+ state: "success" | "error" | "idle" | "running" | "cancel";
187
+ stale: boolean;
188
+ lastError?: string | undefined;
189
+ lastRunTime?: number | undefined;
190
+ relations?: {
191
+ cells?: string | undefined;
192
+ rowTotals?: string | undefined;
193
+ colTotals?: string | undefined;
194
+ grandTotal?: string | undefined;
195
+ export?: string | undefined;
196
+ } | undefined;
197
+ sourceRelation?: string | undefined;
198
+ };
199
+ id: string;
200
+ title: string;
201
+ config: {
202
+ rendererName: "Table" | "Table Heatmap" | "Table Col Heatmap" | "Table Row Heatmap" | "Exportable TSV" | "Grouped Column Chart" | "Stacked Column Chart" | "Grouped Bar Chart" | "Stacked Bar Chart" | "Line Chart" | "Dot Chart" | "Area Chart" | "Scatter Chart" | "Multiple Pie Chart";
203
+ aggregatorName: string;
204
+ rows: string[];
205
+ cols: string[];
206
+ vals: string[];
207
+ valueFilter: Record<string, Record<string, boolean>>;
208
+ rowOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
209
+ colOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
210
+ unusedOrder: string[];
211
+ menuLimit: number;
212
+ hiddenAttributes: string[];
213
+ hiddenFromAggregators: string[];
214
+ hiddenFromDragDrop: string[];
215
+ };
216
+ source?: {
217
+ kind: "table";
218
+ tableName: string;
219
+ } | {
220
+ kind: "sql";
221
+ sqlId: string;
222
+ } | undefined;
223
+ }, {
224
+ id: string;
225
+ title: string;
226
+ config: {
227
+ rendererName: "Table" | "Table Heatmap" | "Table Col Heatmap" | "Table Row Heatmap" | "Exportable TSV" | "Grouped Column Chart" | "Stacked Column Chart" | "Grouped Bar Chart" | "Stacked Bar Chart" | "Line Chart" | "Dot Chart" | "Area Chart" | "Scatter Chart" | "Multiple Pie Chart";
228
+ aggregatorName: string;
229
+ rows: string[];
230
+ cols: string[];
231
+ vals: string[];
232
+ valueFilter: Record<string, Record<string, boolean>>;
233
+ rowOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
234
+ colOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
235
+ unusedOrder: string[];
236
+ menuLimit: number;
237
+ hiddenAttributes: string[];
238
+ hiddenFromAggregators: string[];
239
+ hiddenFromDragDrop: string[];
240
+ };
241
+ status: {
242
+ state: "success" | "error" | "idle" | "running" | "cancel";
243
+ stale: boolean;
244
+ lastError?: string | undefined;
245
+ lastRunTime?: number | undefined;
246
+ relations?: {
247
+ cells?: string | undefined;
248
+ rowTotals?: string | undefined;
249
+ colTotals?: string | undefined;
250
+ grandTotal?: string | undefined;
251
+ export?: string | undefined;
252
+ } | undefined;
253
+ sourceRelation?: string | undefined;
254
+ };
255
+ source?: {
256
+ kind: "table";
257
+ tableName: string;
258
+ } | {
259
+ kind: "sql";
260
+ sqlId: string;
261
+ } | undefined;
262
+ }>>;
263
+ export type PivotSliceItem = z.infer<typeof PivotSliceItem>;
264
+ export declare const PivotSliceConfig: z.ZodObject<{
265
+ pivots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodObject<{
266
+ id: z.ZodString;
267
+ title: z.ZodString;
268
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
269
+ kind: z.ZodLiteral<"table">;
270
+ tableName: z.ZodString;
271
+ }, z.core.$strip>, z.ZodObject<{
272
+ kind: z.ZodLiteral<"sql">;
273
+ sqlId: z.ZodString;
274
+ }, z.core.$strip>], "kind">>;
275
+ config: z.ZodObject<{
276
+ rendererName: z.ZodDefault<z.ZodEnum<{
277
+ Table: "Table";
278
+ "Table Heatmap": "Table Heatmap";
279
+ "Table Col Heatmap": "Table Col Heatmap";
280
+ "Table Row Heatmap": "Table Row Heatmap";
281
+ "Exportable TSV": "Exportable TSV";
282
+ "Grouped Column Chart": "Grouped Column Chart";
283
+ "Stacked Column Chart": "Stacked Column Chart";
284
+ "Grouped Bar Chart": "Grouped Bar Chart";
285
+ "Stacked Bar Chart": "Stacked Bar Chart";
286
+ "Line Chart": "Line Chart";
287
+ "Dot Chart": "Dot Chart";
288
+ "Area Chart": "Area Chart";
289
+ "Scatter Chart": "Scatter Chart";
290
+ "Multiple Pie Chart": "Multiple Pie Chart";
291
+ }>>;
292
+ aggregatorName: z.ZodDefault<z.ZodString>;
293
+ rows: z.ZodDefault<z.ZodArray<z.ZodString>>;
294
+ cols: z.ZodDefault<z.ZodArray<z.ZodString>>;
295
+ vals: z.ZodDefault<z.ZodArray<z.ZodString>>;
296
+ valueFilter: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodBoolean>>>;
297
+ rowOrder: z.ZodDefault<z.ZodEnum<{
298
+ key_a_to_z: "key_a_to_z";
299
+ value_a_to_z: "value_a_to_z";
300
+ value_z_to_a: "value_z_to_a";
301
+ }>>;
302
+ colOrder: z.ZodDefault<z.ZodEnum<{
303
+ key_a_to_z: "key_a_to_z";
304
+ value_a_to_z: "value_a_to_z";
305
+ value_z_to_a: "value_z_to_a";
306
+ }>>;
307
+ unusedOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
308
+ menuLimit: z.ZodDefault<z.ZodNumber>;
309
+ hiddenAttributes: z.ZodDefault<z.ZodArray<z.ZodString>>;
310
+ hiddenFromAggregators: z.ZodDefault<z.ZodArray<z.ZodString>>;
311
+ hiddenFromDragDrop: z.ZodDefault<z.ZodArray<z.ZodString>>;
312
+ }, z.core.$strip>;
313
+ status: z.ZodDefault<z.ZodObject<{
314
+ state: z.ZodDefault<z.ZodEnum<{
315
+ success: "success";
316
+ error: "error";
317
+ idle: "idle";
318
+ running: "running";
319
+ cancel: "cancel";
320
+ }>>;
321
+ stale: z.ZodDefault<z.ZodBoolean>;
322
+ lastError: z.ZodOptional<z.ZodString>;
323
+ lastRunTime: z.ZodOptional<z.ZodNumber>;
324
+ relations: z.ZodOptional<z.ZodObject<{
325
+ cells: z.ZodOptional<z.ZodString>;
326
+ rowTotals: z.ZodOptional<z.ZodString>;
327
+ colTotals: z.ZodOptional<z.ZodString>;
328
+ grandTotal: z.ZodOptional<z.ZodString>;
329
+ export: z.ZodOptional<z.ZodString>;
330
+ }, z.core.$strip>>;
331
+ sourceRelation: z.ZodOptional<z.ZodString>;
332
+ }, z.core.$strip>>;
333
+ }, z.core.$strip>, z.ZodTransform<{
334
+ status: {
335
+ state: "success" | "error" | "idle" | "running" | "cancel";
336
+ stale: boolean;
337
+ lastError?: string | undefined;
338
+ lastRunTime?: number | undefined;
339
+ relations?: {
340
+ cells?: string | undefined;
341
+ rowTotals?: string | undefined;
342
+ colTotals?: string | undefined;
343
+ grandTotal?: string | undefined;
344
+ export?: string | undefined;
345
+ } | undefined;
346
+ sourceRelation?: string | undefined;
347
+ };
348
+ id: string;
349
+ title: string;
350
+ config: {
351
+ rendererName: "Table" | "Table Heatmap" | "Table Col Heatmap" | "Table Row Heatmap" | "Exportable TSV" | "Grouped Column Chart" | "Stacked Column Chart" | "Grouped Bar Chart" | "Stacked Bar Chart" | "Line Chart" | "Dot Chart" | "Area Chart" | "Scatter Chart" | "Multiple Pie Chart";
352
+ aggregatorName: string;
353
+ rows: string[];
354
+ cols: string[];
355
+ vals: string[];
356
+ valueFilter: Record<string, Record<string, boolean>>;
357
+ rowOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
358
+ colOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
359
+ unusedOrder: string[];
360
+ menuLimit: number;
361
+ hiddenAttributes: string[];
362
+ hiddenFromAggregators: string[];
363
+ hiddenFromDragDrop: string[];
364
+ };
365
+ source?: {
366
+ kind: "table";
367
+ tableName: string;
368
+ } | {
369
+ kind: "sql";
370
+ sqlId: string;
371
+ } | undefined;
372
+ }, {
373
+ id: string;
374
+ title: string;
375
+ config: {
376
+ rendererName: "Table" | "Table Heatmap" | "Table Col Heatmap" | "Table Row Heatmap" | "Exportable TSV" | "Grouped Column Chart" | "Stacked Column Chart" | "Grouped Bar Chart" | "Stacked Bar Chart" | "Line Chart" | "Dot Chart" | "Area Chart" | "Scatter Chart" | "Multiple Pie Chart";
377
+ aggregatorName: string;
378
+ rows: string[];
379
+ cols: string[];
380
+ vals: string[];
381
+ valueFilter: Record<string, Record<string, boolean>>;
382
+ rowOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
383
+ colOrder: "key_a_to_z" | "value_a_to_z" | "value_z_to_a";
384
+ unusedOrder: string[];
385
+ menuLimit: number;
386
+ hiddenAttributes: string[];
387
+ hiddenFromAggregators: string[];
388
+ hiddenFromDragDrop: string[];
389
+ };
390
+ status: {
391
+ state: "success" | "error" | "idle" | "running" | "cancel";
392
+ stale: boolean;
393
+ lastError?: string | undefined;
394
+ lastRunTime?: number | undefined;
395
+ relations?: {
396
+ cells?: string | undefined;
397
+ rowTotals?: string | undefined;
398
+ colTotals?: string | undefined;
399
+ grandTotal?: string | undefined;
400
+ export?: string | undefined;
401
+ } | undefined;
402
+ sourceRelation?: string | undefined;
403
+ };
404
+ source?: {
405
+ kind: "table";
406
+ tableName: string;
407
+ } | {
408
+ kind: "sql";
409
+ sqlId: string;
410
+ } | undefined;
411
+ }>>>>;
412
+ pivotOrder: z.ZodDefault<z.ZodArray<z.ZodString>>;
413
+ currentPivotId: z.ZodOptional<z.ZodString>;
414
+ }, z.core.$strip>;
415
+ export type PivotSliceConfig = z.infer<typeof PivotSliceConfig>;
416
+ export type PivotDropZone = 'unused' | 'rows' | 'cols';
417
+ export type PivotField = {
418
+ name: string;
419
+ type: string;
420
+ };
421
+ export type PivotQuerySource = {
422
+ tableRef: string;
423
+ columns: PivotField[];
424
+ };
425
+ export type PivotSliceState = {
426
+ pivot: SliceFunctions & {
427
+ config: PivotSliceConfig;
428
+ initialize: () => Promise<void>;
429
+ getPivotStore: (pivotId: string) => PivotInstanceStore;
430
+ addPivot: (props?: {
431
+ title?: string;
432
+ source?: PivotSource;
433
+ config?: Partial<PivotConfig>;
434
+ }) => string;
435
+ removePivot: (pivotId: string) => void;
436
+ setCurrentPivot: (pivotId: string) => void;
437
+ renamePivot: (pivotId: string, title: string) => void;
438
+ setSource: (pivotId: string, source: PivotSource | undefined) => void;
439
+ setStatus: (pivotId: string, status: Partial<PivotStatus>) => void;
440
+ setConfig: (pivotId: string, config: PivotConfig) => void;
441
+ patchConfig: (pivotId: string, config: Partial<PivotConfig>) => void;
442
+ setRendererName: (pivotId: string, rendererName: PivotRendererName) => void;
443
+ setAggregatorName: (pivotId: string, aggregatorName: string) => void;
444
+ setRows: (pivotId: string, rows: string[]) => void;
445
+ setCols: (pivotId: string, cols: string[]) => void;
446
+ setVals: (pivotId: string, vals: string[]) => void;
447
+ setUnusedOrder: (pivotId: string, unusedOrder: string[]) => void;
448
+ moveField: (pivotId: string, field: string, destination: PivotDropZone, index?: number) => void;
449
+ cycleRowOrder: (pivotId: string) => void;
450
+ cycleColOrder: (pivotId: string) => void;
451
+ setAttributeFilterValues: (pivotId: string, attribute: string, values: string[]) => void;
452
+ addAttributeFilterValues: (pivotId: string, attribute: string, values: string[]) => void;
453
+ removeAttributeFilterValues: (pivotId: string, attribute: string, values: string[]) => void;
454
+ clearAttributeFilter: (pivotId: string, attribute: string) => void;
455
+ runPivot: (pivotId: string, opts?: {
456
+ cascade?: boolean;
457
+ schemaName?: string;
458
+ querySource?: PivotQuerySource;
459
+ }) => Promise<void>;
460
+ };
461
+ };
462
+ export type PivotEditorUiState = {
463
+ sectionOpenState: Record<string, boolean>;
464
+ };
465
+ export type PivotInstanceSnapshot = {
466
+ source?: PivotSource;
467
+ config: PivotConfig;
468
+ status: PivotStatus;
469
+ querySource?: PivotQuerySource;
470
+ fields: PivotField[];
471
+ availableTables: string[];
472
+ };
473
+ export type PivotInstanceCallbacks = {
474
+ setSource?: (source: PivotSource | undefined) => void;
475
+ setConfig?: (config: PivotConfig) => void;
476
+ run?: () => void | Promise<void>;
477
+ };
478
+ export type PivotInstanceState = PivotInstanceSnapshot & {
479
+ ui: PivotEditorUiState;
480
+ setSource: (source: PivotSource | undefined) => void;
481
+ setConfig: (config: PivotConfig) => void;
482
+ patchConfig: (config: Partial<PivotConfig>) => void;
483
+ setRendererName: (rendererName: PivotConfig['rendererName']) => void;
484
+ setAggregatorName: (aggregatorName: string) => void;
485
+ setVals: (vals: string[]) => void;
486
+ moveField: (field: string, destination: PivotDropZone, index?: number) => void;
487
+ cycleRowOrder: () => void;
488
+ cycleColOrder: () => void;
489
+ setAttributeFilterValues: (attribute: string, values: string[]) => void;
490
+ addAttributeFilterValues: (attribute: string, values: string[]) => void;
491
+ removeAttributeFilterValues: (attribute: string, values: string[]) => void;
492
+ clearAttributeFilter: (attribute: string) => void;
493
+ setSectionOpen: (section: string, isOpen: boolean) => void;
494
+ run: () => Promise<void>;
495
+ };
496
+ export type PivotInstanceStore = StoreApi<PivotInstanceState> & {
497
+ destroy: () => void;
498
+ };
499
+ export type CreatePivotCoreStoreProps = {
500
+ source?: PivotSource;
501
+ config?: Partial<PivotConfig>;
502
+ status?: Partial<PivotStatus>;
503
+ querySource?: PivotQuerySource;
504
+ fields?: PivotField[];
505
+ availableTables?: string[];
506
+ callbacks?: PivotInstanceCallbacks;
507
+ };
508
+ export type PivotOutputCell = {
509
+ rowKey: string[];
510
+ colKey: string[];
511
+ value: number | string | null;
512
+ };
513
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ export const PIVOT_RENDERER_NAMES = [
3
+ 'Table',
4
+ 'Table Heatmap',
5
+ 'Table Col Heatmap',
6
+ 'Table Row Heatmap',
7
+ 'Exportable TSV',
8
+ 'Grouped Column Chart',
9
+ 'Stacked Column Chart',
10
+ 'Grouped Bar Chart',
11
+ 'Stacked Bar Chart',
12
+ 'Line Chart',
13
+ 'Dot Chart',
14
+ 'Area Chart',
15
+ 'Scatter Chart',
16
+ 'Multiple Pie Chart',
17
+ ];
18
+ export const PivotRendererName = z.enum(PIVOT_RENDERER_NAMES);
19
+ export const PivotSortOrder = z.enum([
20
+ 'key_a_to_z',
21
+ 'value_a_to_z',
22
+ 'value_z_to_a',
23
+ ]);
24
+ export const PivotFilterMapSchema = z.record(z.string(), z.boolean());
25
+ export const PivotValueFilterSchema = z.record(z.string(), PivotFilterMapSchema);
26
+ export const PivotConfig = z.object({
27
+ rendererName: PivotRendererName.default('Table'),
28
+ aggregatorName: z.string().default('Count'),
29
+ rows: z.array(z.string()).default([]),
30
+ cols: z.array(z.string()).default([]),
31
+ vals: z.array(z.string()).default([]),
32
+ valueFilter: PivotValueFilterSchema.default({}),
33
+ rowOrder: PivotSortOrder.default('key_a_to_z'),
34
+ colOrder: PivotSortOrder.default('key_a_to_z'),
35
+ unusedOrder: z.array(z.string()).default([]),
36
+ menuLimit: z.number().int().positive().default(500),
37
+ hiddenAttributes: z.array(z.string()).default([]),
38
+ hiddenFromAggregators: z.array(z.string()).default([]),
39
+ hiddenFromDragDrop: z.array(z.string()).default([]),
40
+ });
41
+ export const PivotSource = z.discriminatedUnion('kind', [
42
+ z.object({
43
+ kind: z.literal('table'),
44
+ tableName: z.string(),
45
+ }),
46
+ z.object({
47
+ kind: z.literal('sql'),
48
+ sqlId: z.string(),
49
+ }),
50
+ ]);
51
+ export const PivotRelationViews = z.object({
52
+ cells: z.string().optional(),
53
+ rowTotals: z.string().optional(),
54
+ colTotals: z.string().optional(),
55
+ grandTotal: z.string().optional(),
56
+ export: z.string().optional(),
57
+ });
58
+ export const PivotRunState = z.enum([
59
+ 'idle',
60
+ 'running',
61
+ 'success',
62
+ 'cancel',
63
+ 'error',
64
+ ]);
65
+ export const PivotStatus = z.object({
66
+ state: PivotRunState.default('idle'),
67
+ stale: z.boolean().default(false),
68
+ lastError: z.string().optional(),
69
+ lastRunTime: z.number().optional(),
70
+ relations: PivotRelationViews.optional(),
71
+ sourceRelation: z.string().optional(),
72
+ });
73
+ function sanitizePersistedPivotStatus(status) {
74
+ const hasEphemeralRuntimeState = Boolean(status.relations ||
75
+ status.sourceRelation ||
76
+ status.lastError ||
77
+ status.state === 'running' ||
78
+ status.state === 'success' ||
79
+ status.state === 'cancel' ||
80
+ status.state === 'error');
81
+ if (!hasEphemeralRuntimeState) {
82
+ return status;
83
+ }
84
+ return {
85
+ state: 'idle',
86
+ stale: true,
87
+ lastRunTime: status.lastRunTime,
88
+ };
89
+ }
90
+ export const PivotSliceItem = z
91
+ .object({
92
+ id: z.string(),
93
+ title: z.string(),
94
+ source: PivotSource.optional(),
95
+ config: PivotConfig,
96
+ status: PivotStatus.default({ state: 'idle', stale: false }),
97
+ })
98
+ .transform((item) => ({
99
+ ...item,
100
+ status: sanitizePersistedPivotStatus(item.status),
101
+ }));
102
+ export const PivotSliceConfig = z.object({
103
+ pivots: z.record(z.string(), PivotSliceItem).default({}),
104
+ pivotOrder: z.array(z.string()).default([]),
105
+ currentPivotId: z.string().optional(),
106
+ });
107
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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","sourcesContent":["import {SliceFunctions} from '@sqlrooms/room-store';\nimport {z} from 'zod';\nimport type {StoreApi} from 'zustand/vanilla';\n\nexport const PIVOT_RENDERER_NAMES = [\n 'Table',\n 'Table Heatmap',\n 'Table Col Heatmap',\n 'Table Row Heatmap',\n 'Exportable TSV',\n 'Grouped Column Chart',\n 'Stacked Column Chart',\n 'Grouped Bar Chart',\n 'Stacked Bar Chart',\n 'Line Chart',\n 'Dot Chart',\n 'Area Chart',\n 'Scatter Chart',\n 'Multiple Pie Chart',\n] as const;\n\nexport const PivotRendererName = z.enum(PIVOT_RENDERER_NAMES);\nexport type PivotRendererName = z.infer<typeof PivotRendererName>;\n\nexport const PivotSortOrder = z.enum([\n 'key_a_to_z',\n 'value_a_to_z',\n 'value_z_to_a',\n]);\nexport type PivotSortOrder = z.infer<typeof PivotSortOrder>;\n\nexport const PivotFilterMapSchema = z.record(z.string(), z.boolean());\nexport type PivotFilterMap = z.infer<typeof PivotFilterMapSchema>;\n\nexport const PivotValueFilterSchema = z.record(\n z.string(),\n PivotFilterMapSchema,\n);\nexport type PivotValueFilter = z.infer<typeof PivotValueFilterSchema>;\n\nexport const PivotConfig = z.object({\n rendererName: PivotRendererName.default('Table'),\n aggregatorName: z.string().default('Count'),\n rows: z.array(z.string()).default([]),\n cols: z.array(z.string()).default([]),\n vals: z.array(z.string()).default([]),\n valueFilter: PivotValueFilterSchema.default({}),\n rowOrder: PivotSortOrder.default('key_a_to_z'),\n colOrder: PivotSortOrder.default('key_a_to_z'),\n unusedOrder: z.array(z.string()).default([]),\n menuLimit: z.number().int().positive().default(500),\n hiddenAttributes: z.array(z.string()).default([]),\n hiddenFromAggregators: z.array(z.string()).default([]),\n hiddenFromDragDrop: z.array(z.string()).default([]),\n});\nexport type PivotConfig = z.infer<typeof PivotConfig>;\n\nexport const PivotSource = z.discriminatedUnion('kind', [\n z.object({\n kind: z.literal('table'),\n tableName: z.string(),\n }),\n z.object({\n kind: z.literal('sql'),\n sqlId: z.string(),\n }),\n]);\nexport type PivotSource = z.infer<typeof PivotSource>;\n\nexport const PivotRelationViews = z.object({\n cells: z.string().optional(),\n rowTotals: z.string().optional(),\n colTotals: z.string().optional(),\n grandTotal: z.string().optional(),\n export: z.string().optional(),\n});\nexport type PivotRelationViews = z.infer<typeof PivotRelationViews>;\n\nexport const PivotRunState = z.enum([\n 'idle',\n 'running',\n 'success',\n 'cancel',\n 'error',\n]);\nexport type PivotRunState = z.infer<typeof PivotRunState>;\n\nexport const PivotStatus = z.object({\n state: PivotRunState.default('idle'),\n stale: z.boolean().default(false),\n lastError: z.string().optional(),\n lastRunTime: z.number().optional(),\n relations: PivotRelationViews.optional(),\n sourceRelation: z.string().optional(),\n});\nexport type PivotStatus = z.infer<typeof PivotStatus>;\n\nfunction sanitizePersistedPivotStatus(status: PivotStatus): PivotStatus {\n const hasEphemeralRuntimeState = Boolean(\n status.relations ||\n status.sourceRelation ||\n status.lastError ||\n status.state === 'running' ||\n status.state === 'success' ||\n status.state === 'cancel' ||\n status.state === 'error',\n );\n\n if (!hasEphemeralRuntimeState) {\n return status;\n }\n\n return {\n state: 'idle',\n stale: true,\n lastRunTime: status.lastRunTime,\n };\n}\n\nexport const PivotSliceItem = z\n .object({\n id: z.string(),\n title: z.string(),\n source: PivotSource.optional(),\n config: PivotConfig,\n status: PivotStatus.default({state: 'idle', stale: false}),\n })\n .transform((item) => ({\n ...item,\n status: sanitizePersistedPivotStatus(item.status),\n }));\nexport type PivotSliceItem = z.infer<typeof PivotSliceItem>;\n\nexport const PivotSliceConfig = z.object({\n pivots: z.record(z.string(), PivotSliceItem).default({}),\n pivotOrder: z.array(z.string()).default([]),\n currentPivotId: z.string().optional(),\n});\nexport type PivotSliceConfig = z.infer<typeof PivotSliceConfig>;\n\nexport type PivotDropZone = 'unused' | 'rows' | 'cols';\n\nexport type PivotField = {\n name: string;\n type: string;\n};\n\nexport type PivotQuerySource = {\n tableRef: string;\n columns: PivotField[];\n};\n\nexport type PivotSliceState = {\n pivot: SliceFunctions & {\n config: PivotSliceConfig;\n initialize: () => Promise<void>;\n getPivotStore: (pivotId: string) => PivotInstanceStore;\n addPivot: (props?: {\n title?: string;\n source?: PivotSource;\n config?: Partial<PivotConfig>;\n }) => string;\n removePivot: (pivotId: string) => void;\n setCurrentPivot: (pivotId: string) => void;\n renamePivot: (pivotId: string, title: string) => void;\n setSource: (pivotId: string, source: PivotSource | undefined) => void;\n setStatus: (pivotId: string, status: Partial<PivotStatus>) => void;\n setConfig: (pivotId: string, config: PivotConfig) => void;\n patchConfig: (pivotId: string, config: Partial<PivotConfig>) => void;\n setRendererName: (pivotId: string, rendererName: PivotRendererName) => void;\n setAggregatorName: (pivotId: string, aggregatorName: string) => void;\n setRows: (pivotId: string, rows: string[]) => void;\n setCols: (pivotId: string, cols: string[]) => void;\n setVals: (pivotId: string, vals: string[]) => void;\n setUnusedOrder: (pivotId: string, unusedOrder: string[]) => void;\n moveField: (\n pivotId: string,\n field: string,\n destination: PivotDropZone,\n index?: number,\n ) => void;\n cycleRowOrder: (pivotId: string) => void;\n cycleColOrder: (pivotId: string) => void;\n setAttributeFilterValues: (\n pivotId: string,\n attribute: string,\n values: string[],\n ) => void;\n addAttributeFilterValues: (\n pivotId: string,\n attribute: string,\n values: string[],\n ) => void;\n removeAttributeFilterValues: (\n pivotId: string,\n attribute: string,\n values: string[],\n ) => void;\n clearAttributeFilter: (pivotId: string, attribute: string) => void;\n runPivot: (\n pivotId: string,\n opts?: {\n cascade?: boolean;\n schemaName?: string;\n querySource?: PivotQuerySource;\n },\n ) => Promise<void>;\n };\n};\n\nexport type PivotEditorUiState = {\n sectionOpenState: Record<string, boolean>;\n};\n\nexport type PivotInstanceSnapshot = {\n source?: PivotSource;\n config: PivotConfig;\n status: PivotStatus;\n querySource?: PivotQuerySource;\n fields: PivotField[];\n availableTables: string[];\n};\n\nexport type PivotInstanceCallbacks = {\n setSource?: (source: PivotSource | undefined) => void;\n setConfig?: (config: PivotConfig) => void;\n run?: () => void | Promise<void>;\n};\n\nexport type PivotInstanceState = PivotInstanceSnapshot & {\n ui: PivotEditorUiState;\n setSource: (source: PivotSource | undefined) => void;\n setConfig: (config: PivotConfig) => void;\n patchConfig: (config: Partial<PivotConfig>) => void;\n setRendererName: (rendererName: PivotConfig['rendererName']) => void;\n setAggregatorName: (aggregatorName: string) => void;\n setVals: (vals: string[]) => void;\n moveField: (\n field: string,\n destination: PivotDropZone,\n index?: number,\n ) => void;\n cycleRowOrder: () => void;\n cycleColOrder: () => void;\n setAttributeFilterValues: (attribute: string, values: string[]) => void;\n addAttributeFilterValues: (attribute: string, values: string[]) => void;\n removeAttributeFilterValues: (attribute: string, values: string[]) => void;\n clearAttributeFilter: (attribute: string) => void;\n setSectionOpen: (section: string, isOpen: boolean) => void;\n run: () => Promise<void>;\n};\n\nexport type PivotInstanceStore = StoreApi<PivotInstanceState> & {\n destroy: () => void;\n};\n\nexport type CreatePivotCoreStoreProps = {\n source?: PivotSource;\n config?: Partial<PivotConfig>;\n status?: Partial<PivotStatus>;\n querySource?: PivotQuerySource;\n fields?: PivotField[];\n availableTables?: string[];\n callbacks?: PivotInstanceCallbacks;\n};\n\nexport type PivotOutputCell = {\n rowKey: string[];\n colKey: string[];\n value: number | string | null;\n};\n"]}