@hpcc-js/ddl-shim 3.2.1 → 3.2.3

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/index.js CHANGED
@@ -1,1064 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import * as _Ajv from "ajv";
4
- const PKG_NAME = "@hpcc-js/ddl-shim";
5
- const PKG_VERSION = "3.2.1";
6
- const BUILD_VERSION = "3.15.1";
7
- function isWorkunitDatasource(ref) {
8
- return ref.WUID !== void 0;
9
- }
10
- __name(isWorkunitDatasource, "isWorkunitDatasource");
11
- function isDatabombDatasource(ref) {
12
- return ref.databomb === true;
13
- }
14
- __name(isDatabombDatasource, "isDatabombDatasource");
15
- function isHipieDatasource(ref) {
16
- return ref.URL !== void 0;
17
- }
18
- __name(isHipieDatasource, "isHipieDatasource");
19
- function isPieVisualization(viz) {
20
- return viz.type === "PIE" || viz.type === "BAR";
21
- }
22
- __name(isPieVisualization, "isPieVisualization");
23
- function isLineVisualization(viz) {
24
- return viz.type === "LINE";
25
- }
26
- __name(isLineVisualization, "isLineVisualization");
27
- function isChoroVisualization(viz) {
28
- return viz.type === "CHORO";
29
- }
30
- __name(isChoroVisualization, "isChoroVisualization");
31
- function isTableVisualization(viz) {
32
- return viz.type === "TABLE";
33
- }
34
- __name(isTableVisualization, "isTableVisualization");
35
- function isSliderVisualization(viz) {
36
- return viz.type === "SLIDER";
37
- }
38
- __name(isSliderVisualization, "isSliderVisualization");
39
- function isGraphVisualization(viz) {
40
- return viz.type === "GRAPH";
41
- }
42
- __name(isGraphVisualization, "isGraphVisualization");
43
- function isHeatMapVisualization(viz) {
44
- return viz.type === "HEAT_MAP";
45
- }
46
- __name(isHeatMapVisualization, "isHeatMapVisualization");
47
- function isFormVisualization(viz) {
48
- return viz.type === "FORM";
49
- }
50
- __name(isFormVisualization, "isFormVisualization");
51
- function isUSStateMapping(mappings) {
52
- return mappings.state !== void 0;
53
- }
54
- __name(isUSStateMapping, "isUSStateMapping");
55
- function isUSCountyMapping(mappings) {
56
- return mappings.county !== void 0;
57
- }
58
- __name(isUSCountyMapping, "isUSCountyMapping");
59
- function isGeohashMapping(mappings) {
60
- return mappings.geohash !== void 0;
61
- }
62
- __name(isGeohashMapping, "isGeohashMapping");
63
- const v1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
64
- __proto__: null,
65
- isChoroVisualization,
66
- isDatabombDatasource,
67
- isFormVisualization,
68
- isGeohashMapping,
69
- isGraphVisualization,
70
- isHeatMapVisualization,
71
- isHipieDatasource,
72
- isLineVisualization,
73
- isPieVisualization,
74
- isSliderVisualization,
75
- isTableVisualization,
76
- isUSCountyMapping,
77
- isUSStateMapping,
78
- isWorkunitDatasource
79
- }, Symbol.toStringTag, { value: "Module" }));
80
- function isDatabombRef(ref) {
81
- return !isWUResultRef(ref) && !isRoxieServiceRef(ref);
82
- }
83
- __name(isDatabombRef, "isDatabombRef");
84
- function isWUResultRef(ref) {
85
- return ref.output !== void 0 && !isRoxieServiceRef(ref);
86
- }
87
- __name(isWUResultRef, "isWUResultRef");
88
- function isRoxieServiceRef(ref) {
89
- return ref.request !== void 0;
90
- }
91
- __name(isRoxieServiceRef, "isRoxieServiceRef");
92
- function isIFilterCondition(fc) {
93
- return !!fc.viewID;
94
- }
95
- __name(isIFilterCondition, "isIFilterCondition");
96
- function isFilterActivity(activity) {
97
- return activity.type === "filter";
98
- }
99
- __name(isFilterActivity, "isFilterActivity");
100
- function isProjectActivity(activity) {
101
- return activity.type === "project";
102
- }
103
- __name(isProjectActivity, "isProjectActivity");
104
- function isMappingsActivity(activity) {
105
- return activity.type === "mappings";
106
- }
107
- __name(isMappingsActivity, "isMappingsActivity");
108
- function isGroupByActivity(activity) {
109
- return activity.type === "groupby";
110
- }
111
- __name(isGroupByActivity, "isGroupByActivity");
112
- function isSortActivity(activity) {
113
- return activity.type === "sort";
114
- }
115
- __name(isSortActivity, "isSortActivity");
116
- function isLimitActivity(activity) {
117
- return activity.type === "limit";
118
- }
119
- __name(isLimitActivity, "isLimitActivity");
120
- const VisibilitySet = ["normal", "flyout"];
121
- const v2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
122
- __proto__: null,
123
- VisibilitySet,
124
- isDatabombRef,
125
- isFilterActivity,
126
- isGroupByActivity,
127
- isIFilterCondition,
128
- isLimitActivity,
129
- isMappingsActivity,
130
- isProjectActivity,
131
- isRoxieServiceRef,
132
- isSortActivity,
133
- isWUResultRef
134
- }, Symbol.toStringTag, { value: "Module" }));
135
- const classMappings = {
136
- c3chart_Bar: "chart_Bar",
137
- c3chart_Column: "chart_Column",
138
- c3chart_Pie: "chart_Pie",
139
- c3chart_Area: "chart_Area",
140
- c3chart_Line: "chart_Line",
141
- amchart_Bar: "chart_Bar",
142
- amchart_Column: "chart_Column",
143
- amchart_Pie: "chart_Pie",
144
- amchart_Area: "chart_Area",
145
- amchart_Line: "chart_Line",
146
- google_Bar: "chart_Bar",
147
- google_Column: "chart_Column",
148
- google_Pie: "chart_Pie",
149
- google_Area: "chart_Area",
150
- google_Line: "chart_Line",
151
- other_Table: "dgrid_Table"
152
- };
153
- const propertyMappings = {
154
- xAxisLabelRotation: [
155
- { name: "xAxisOverlapMode", transform: /* @__PURE__ */ __name((n) => "rotate", "transform") },
156
- { name: "xAxisLabelRotation", transform: /* @__PURE__ */ __name((n) => n, "transform") }
157
- ],
158
- tooltipLabelColor: {
159
- name: "tooltipLabelColor"
160
- },
161
- tooltipSeriesColor: {
162
- name: "tooltipSeriesColor"
163
- },
164
- tooltipValueColor: {
165
- name: "tooltipValueColor"
166
- },
167
- tooltipValueFormat: {
168
- name: "tooltipValueFormat"
169
- },
170
- timePattern: {
171
- name: "xAxisTypeTimePattern"
172
- },
173
- smoothLines: {
174
- name: "interpolate",
175
- transform: /* @__PURE__ */ __name((n) => {
176
- if (n === false) return "linear";
177
- return "catmullRom";
178
- }, "transform")
179
- },
180
- holePercent: {
181
- name: "innerRadius"
182
- },
183
- flip: {
184
- name: "orientation",
185
- transform: /* @__PURE__ */ __name((n) => n ? "vertical" : "horizontal", "transform")
186
- },
187
- bottomText: {
188
- name: "xAxisTitle"
189
- },
190
- xAxisTypeTimePattern: {
191
- name: "xAxisTypeTimePattern"
192
- },
193
- yAxisTypeTimePattern: {
194
- name: "yAxisTypeTimePattern"
195
- },
196
- valueFormat: {
197
- name: "tooltipValueFormat"
198
- },
199
- stacked: {
200
- name: "yAxisStacked"
201
- },
202
- showYGrid: {
203
- name: "yAxisGuideLines"
204
- },
205
- showXGrid: {
206
- name: "xAxisGuideLines"
207
- },
208
- showValueLabel: {
209
- name: "showValue"
210
- },
211
- low: {
212
- name: "yAxisDomainLow"
213
- },
214
- high: {
215
- name: "yAxisDomainHigh"
216
- },
217
- fillOpacity: {
218
- name: "interpolateFillOpacity"
219
- },
220
- areaFillOpacity: {
221
- name: "interpolateFillOpacity"
222
- },
223
- showToolbar: {
224
- name: "titleVisible"
225
- },
226
- showCSV: {
227
- name: "downloadButtonVisible"
228
- }
229
- };
230
- function findKeyVal(object, key, val) {
231
- let value;
232
- for (const k in object) {
233
- if (k === key && object[k] === val) {
234
- value = object;
235
- break;
236
- }
237
- if (object[k] && typeof object[k] === "object") {
238
- value = findKeyVal(object[k], key, val);
239
- if (value !== void 0) {
240
- break;
241
- }
242
- }
243
- }
244
- return value;
245
- }
246
- __name(findKeyVal, "findKeyVal");
247
- function apply_to_dataviews(ddl2, dermObj) {
248
- ddl2.dataviews.forEach(apply_to_dataview);
249
- function apply_to_dataview(dv) {
250
- const widgetId = dv.id;
251
- const dermPanelObj = findKeyVal(dermObj, "__id", widgetId);
252
- if (dermPanelObj) {
253
- const dermPanelProps = dermPanelObj.__properties;
254
- const dermWidgetObj = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;
255
- const dermWidgetProps = dermWidgetObj.__properties;
256
- apply_class_mapping(dermWidgetObj);
257
- apply_panel_property_mapping(dermPanelProps, dermWidgetProps);
258
- apply_widget_property_mapping(dermPanelProps, dermWidgetProps);
259
- if (dv.visualization.properties.chartType) {
260
- dv.visualization.properties.charttype = dv.visualization.properties.chartType;
261
- }
262
- } else {
263
- console.warn(widgetId + " not found in dermObj");
264
- }
265
- function apply_class_mapping(dermWidgetObj) {
266
- dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);
267
- dv.visualization.properties.__class = "marshaller_VizChartPanel";
268
- if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};
269
- dv.visualization.properties.widget.__class = dv.visualization.__class;
270
- function swap_with_supported_class(_class) {
271
- return classMappings[_class] ? classMappings[_class] : _class;
272
- }
273
- __name(swap_with_supported_class, "swap_with_supported_class");
274
- }
275
- __name(apply_class_mapping, "apply_class_mapping");
276
- function apply_panel_property_mapping(dermPanelProps, dermWidgetProps) {
277
- dv.visualization.title = dermPanelProps.title || "";
278
- dv.visualization.description = "";
279
- dv.visualization.visibility = dv.visualization.visibility === "flyout" ? "flyout" : "normal";
280
- dv.visualization.chartType = dv.visualization.__class.split("_")[1];
281
- for (const propName in dermPanelProps) {
282
- if (typeof propertyMappings[propName] !== "undefined") {
283
- const newPropName = propertyMappings[propName].name;
284
- if (typeof propertyMappings[propName].transform === "function") {
285
- dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);
286
- } else {
287
- dv.visualization.properties[newPropName] = dermPanelProps[propName];
288
- }
289
- }
290
- }
291
- if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {
292
- dv.visualization.properties.legendVisible = true;
293
- }
294
- }
295
- __name(apply_panel_property_mapping, "apply_panel_property_mapping");
296
- function apply_widget_property_mapping(dermPanelProps, dermWidgetProps) {
297
- dv.visualization.title = dv.visualization.title || dermWidgetProps.title || "";
298
- dv.visualization.description = "";
299
- dv.visualization.visibility = dv.visualization.visibility === "flyout" ? "flyout" : "normal";
300
- dv.visualization.chartType = dv.visualization.__class.split("_")[1];
301
- for (const propName in dermWidgetProps) {
302
- if (typeof propertyMappings[propName] !== "undefined") {
303
- if (propertyMappings[propName] instanceof Array) {
304
- propertyMappings[propName].forEach((p) => {
305
- const newPropName = p.name;
306
- dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);
307
- if (typeof propertyMappings[propName].transform === "function") {
308
- dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);
309
- } else {
310
- dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];
311
- }
312
- });
313
- } else {
314
- const newPropName = propertyMappings[propName].name;
315
- dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);
316
- }
317
- }
318
- }
319
- }
320
- __name(apply_widget_property_mapping, "apply_widget_property_mapping");
321
- }
322
- __name(apply_to_dataview, "apply_to_dataview");
323
- }
324
- __name(apply_to_dataviews, "apply_to_dataviews");
325
- function apply_to_properties_layout(ddl2, dermObj) {
326
- const retVal = {
327
- layout: []
328
- };
329
- if (!dermObj || !dermObj.__properties) return;
330
- dermObj.__properties.content.forEach((cell) => {
331
- const cellPosition = {
332
- // TODO - if "id" could be avoided then layouts could apply to any dashboard with the same number of widgets
333
- id: cell.__properties.widget.__id,
334
- position: [
335
- cell.__properties.gridCol,
336
- cell.__properties.gridRow,
337
- cell.__properties.gridColSpan,
338
- cell.__properties.gridRowSpan
339
- ]
340
- };
341
- retVal.layout.push(cellPosition);
342
- });
343
- return retVal;
344
- }
345
- __name(apply_to_properties_layout, "apply_to_properties_layout");
346
- function upgrade$1(ddl2, dermObj) {
347
- apply_to_dataviews(ddl2, dermObj);
348
- return apply_to_properties_layout(ddl2, dermObj);
349
- }
350
- __name(upgrade$1, "upgrade$1");
351
- function faCharFix(faChar) {
352
- return faChar;
353
- }
354
- __name(faCharFix, "faCharFix");
355
- const _DDLUpgrade = class _DDLUpgrade {
356
- _ddl;
357
- _baseUrl;
358
- _wuid;
359
- _toLowerCase;
360
- _datasources = {};
361
- _datasourceUpdates = {};
362
- _visualizations = {};
363
- _ddl2Datasources = {};
364
- _ddl2DatasourceFields = {};
365
- _ddl2Dataviews = {};
366
- _ddl2DataviewActivities = {};
367
- constructor(ddl, baseUrl = "http://localhost:8010", wuid = "WUID", toLowerCase = true) {
368
- this._ddl = ddl;
369
- this._baseUrl = baseUrl;
370
- this._wuid = wuid;
371
- this._toLowerCase = toLowerCase;
372
- this.indexDDL();
373
- this.readDDL();
374
- }
375
- toLowerCase(s) {
376
- return this._toLowerCase ? s.toLowerCase() : s;
377
- }
378
- isVizDatasourceRoxie(viz) {
379
- if (viz.source) {
380
- const ds = this._datasources[viz.source.id];
381
- if (isHipieDatasource(ds)) {
382
- return true;
383
- }
384
- }
385
- return false;
386
- }
387
- getDatasourceOutputs(dsID, vizID) {
388
- const retVal = [];
389
- const datasource = this._datasources[dsID];
390
- for (const output of datasource.outputs) {
391
- if (output.notify) {
392
- for (const notify of output.notify) {
393
- if (notify === vizID) {
394
- retVal.push({
395
- datasource,
396
- output
397
- });
398
- }
399
- }
400
- }
401
- }
402
- return retVal;
403
- }
404
- getDatasourceFilters(dsID, vizID) {
405
- const retVal = {};
406
- for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {
407
- if (dsOut.output.filter) {
408
- for (const filter of dsOut.output.filter) {
409
- retVal[filter.fieldid] = {
410
- datasource: dsOut.datasource,
411
- output: dsOut.output,
412
- filter
413
- };
414
- }
415
- }
416
- }
417
- return retVal;
418
- }
419
- indexDDL() {
420
- for (const dash of this._ddl.dashboards) {
421
- for (const viz of dash.visualizations) {
422
- this._visualizations[viz.id] = viz;
423
- }
424
- }
425
- for (const ds of this._ddl.datasources) {
426
- this._datasources[ds.id] = ds;
427
- for (const output of ds.outputs) {
428
- if (output.notify) {
429
- for (const notify of output.notify) {
430
- this._datasourceUpdates[notify] = {
431
- id: ds.id,
432
- output: output.from || output.id
433
- };
434
- }
435
- }
436
- }
437
- }
438
- }
439
- readDDL() {
440
- for (const ds of this._ddl.datasources) {
441
- if (isWorkunitDatasource(ds)) {
442
- const ddl2DS = {
443
- type: "wuresult",
444
- id: ds.id,
445
- url: this._baseUrl,
446
- wuid: this._wuid,
447
- outputs: {}
448
- };
449
- for (const output of ds.outputs) {
450
- this.output2output(output, ddl2DS.outputs);
451
- }
452
- this._ddl2Datasources[ds.id] = ddl2DS;
453
- } else if (isDatabombDatasource(ds)) ;
454
- else {
455
- const urlParts = ds.URL.split("/WsEcl/submit/query/");
456
- const hostParts = urlParts[0];
457
- const roxieParts = urlParts[1].split("/");
458
- const ddl2DS = {
459
- type: "hipie",
460
- id: ds.id,
461
- url: hostParts,
462
- querySet: roxieParts[0],
463
- queryID: roxieParts[1],
464
- inputs: [],
465
- outputs: {}
466
- };
467
- for (const output of ds.outputs) {
468
- this.output2output(output, ddl2DS.outputs);
469
- }
470
- this._ddl2Datasources[ds.id] = ddl2DS;
471
- }
472
- }
473
- for (const dash of this._ddl.dashboards) {
474
- for (const viz of dash.visualizations) {
475
- if (viz.type === "FORM") {
476
- this._ddl2Datasources[viz.id] = {
477
- type: "form",
478
- id: viz.id,
479
- fields: this.formFields2field(viz.fields)
480
- };
481
- this._datasourceUpdates[viz.id] = { id: viz.id };
482
- } else if (viz.type === "SLIDER") {
483
- this._ddl2Datasources[viz.id] = {
484
- type: "form",
485
- id: viz.id,
486
- fields: this.formFields2field(viz.fields, true)
487
- };
488
- this._datasourceUpdates[viz.id] = { id: viz.id };
489
- }
490
- this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);
491
- }
492
- }
493
- this.readGroupBy();
494
- this.readFilters();
495
- this.readSort();
496
- this.readMappings();
497
- }
498
- readGroupBy() {
499
- for (const dash of this._ddl.dashboards) {
500
- for (const viz of dash.visualizations) {
501
- if (viz.fields) {
502
- const projectTransformations = [];
503
- const groupByColumns = [];
504
- const aggrFields = [];
505
- for (const field of viz.fields) {
506
- if (field.properties && field.properties.function) {
507
- switch (field.properties.function) {
508
- case "SUM":
509
- case "MIN":
510
- case "MAX":
511
- aggrFields.push({
512
- type: this.func2aggr(field.properties.function),
513
- inFieldID: this.toLowerCase(field.properties.params.param1),
514
- fieldID: this.toLowerCase(field.id)
515
- });
516
- break;
517
- case "AVE":
518
- aggrFields.push({
519
- type: this.func2aggr(field.properties.function),
520
- inFieldID: this.toLowerCase(field.properties.params.param1),
521
- baseCountFieldID: field.properties.params.param2 ? this.toLowerCase(field.properties.params.param2) : void 0,
522
- fieldID: this.toLowerCase(field.id)
523
- });
524
- break;
525
- case "SCALE":
526
- if (typeof field.properties.params.param1 === "object") {
527
- const props = field.properties.params.param1;
528
- switch (props.function) {
529
- case "SUM":
530
- case "MIN":
531
- case "MAX":
532
- aggrFields.push({
533
- type: this.func2aggr(props.function),
534
- inFieldID: this.toLowerCase(props.params.param1),
535
- fieldID: this.toLowerCase(field.id)
536
- });
537
- break;
538
- }
539
- }
540
- projectTransformations.push({
541
- type: "scale",
542
- sourceFieldID: this.toLowerCase(field.id),
543
- fieldID: this.toLowerCase(field.id),
544
- factor: +field.properties.params.param2
545
- });
546
- break;
547
- default:
548
- groupByColumns.push(this.toLowerCase(field.id));
549
- throw new Error(`Unhandled field function: ${field.properties.function}`);
550
- }
551
- } else {
552
- groupByColumns.push(this.toLowerCase(field.id));
553
- }
554
- }
555
- if (projectTransformations.length) {
556
- this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;
557
- }
558
- if (aggrFields.length) {
559
- this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];
560
- this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;
561
- }
562
- }
563
- }
564
- }
565
- }
566
- func2aggr(func) {
567
- switch (func) {
568
- case "SUM":
569
- return "sum";
570
- case "AVE":
571
- return "mean";
572
- case "MIN":
573
- return "min";
574
- case "MAX":
575
- return "max";
576
- }
577
- throw new Error(`Unknown DDL1 Function Type: ${func}`);
578
- }
579
- readMappings() {
580
- for (const dash of this._ddl.dashboards) {
581
- for (const viz of dash.visualizations) {
582
- if (isFormVisualization(viz)) ;
583
- else if (isPieVisualization(viz)) {
584
- this.readPieMappings(viz);
585
- } else if (isChoroVisualization(viz)) {
586
- this.readChoroMappings(viz);
587
- } else if (isLineVisualization(viz)) {
588
- this.readLineMappings(viz);
589
- } else if (isTableVisualization(viz)) {
590
- this.readTableMappings(viz);
591
- } else if (isGraphVisualization(viz)) {
592
- this.readGraphMappings(viz);
593
- } else if (isSliderVisualization(viz)) {
594
- this.readSliderMappings(viz);
595
- } else {
596
- throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);
597
- }
598
- }
599
- }
600
- }
601
- readPieMappings(viz) {
602
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
603
- mappings.transformations.push({
604
- fieldID: "label",
605
- type: "=",
606
- sourceFieldID: this.toLowerCase(viz.source.mappings.label)
607
- });
608
- mappings.transformations.push({
609
- fieldID: "weight",
610
- type: "=",
611
- sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])
612
- });
613
- }
614
- readChoroMappings(viz) {
615
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
616
- mappings.transformations.push({
617
- fieldID: "label",
618
- type: "=",
619
- sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))
620
- });
621
- mappings.transformations.push({
622
- fieldID: "weight",
623
- type: "=",
624
- sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])
625
- });
626
- }
627
- anyChoroMapping2label(mapping) {
628
- return mapping.state || mapping.county || mapping.geohash;
629
- }
630
- readLineMappings(viz) {
631
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
632
- mappings.transformations.push({
633
- fieldID: viz.source.mappings.x[0],
634
- type: "=",
635
- sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])
636
- });
637
- for (let i = 0; i < viz.source.mappings.y.length; ++i) {
638
- mappings.transformations.push({
639
- fieldID: viz.source.mappings.y[i],
640
- type: "=",
641
- sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])
642
- });
643
- }
644
- }
645
- readTableMappings(viz) {
646
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
647
- for (let i = 0; i < viz.label.length; ++i) {
648
- mappings.transformations.push({
649
- fieldID: viz.label[i],
650
- type: "=",
651
- sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])
652
- });
653
- }
654
- }
655
- readGraphEnums(valueMappings, annotation = false) {
656
- const retVal = [];
657
- if (valueMappings) {
658
- for (const value in valueMappings) {
659
- const newValue = {};
660
- for (const key in valueMappings[value]) {
661
- if (key === "faChar") {
662
- newValue[key] = faCharFix(valueMappings[value][key]);
663
- } else if (annotation && key.indexOf("icon_") === 0) {
664
- console.warn("Deprecated flag property: " + key);
665
- newValue[key.split("icon_")[1]] = valueMappings[value][key];
666
- } else {
667
- newValue[key] = valueMappings[value][key];
668
- }
669
- }
670
- if (!annotation || value !== "0") {
671
- retVal.push({
672
- value,
673
- newValue
674
- });
675
- }
676
- }
677
- }
678
- return retVal;
679
- }
680
- readGraphMappings(viz) {
681
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
682
- mappings.transformations.push({
683
- fieldID: "uid",
684
- type: "=",
685
- sourceFieldID: this.toLowerCase(viz.source.mappings.uid)
686
- });
687
- mappings.transformations.push({
688
- fieldID: "label",
689
- type: "=",
690
- sourceFieldID: this.toLowerCase(viz.source.mappings.label)
691
- });
692
- if (viz.icon.fieldid) {
693
- mappings.transformations.push({
694
- fieldID: "icon",
695
- type: "map",
696
- sourceFieldID: this.toLowerCase(viz.icon.fieldid),
697
- default: { fachar: faCharFix(viz.icon.faChar) },
698
- mappings: this.readGraphEnums(viz.icon.valuemappings)
699
- });
700
- }
701
- let idx = 0;
702
- if (viz.flag) {
703
- for (const flag of viz.flag) {
704
- if (flag.fieldid) {
705
- mappings.transformations.push({
706
- fieldID: `annotation_${idx++}`,
707
- type: "map",
708
- sourceFieldID: this.toLowerCase(flag.fieldid),
709
- default: {},
710
- mappings: this.readGraphEnums(flag.valuemappings, true)
711
- });
712
- }
713
- }
714
- }
715
- mappings.transformations.push({
716
- fieldID: "links",
717
- type: "=",
718
- sourceFieldID: this.toLowerCase(viz.source.link.childfile),
719
- transformations: [{
720
- fieldID: "uid",
721
- type: "=",
722
- sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)
723
- }]
724
- });
725
- }
726
- readSliderMappings(viz) {
727
- const mappings = this._ddl2DataviewActivities[viz.id].mappings;
728
- mappings.transformations.push({
729
- fieldID: "label",
730
- type: "=",
731
- sourceFieldID: this.toLowerCase(viz.source.mappings.label)
732
- });
733
- }
734
- readFilters() {
735
- for (const dash of this._ddl.dashboards) {
736
- for (const viz of dash.visualizations) {
737
- if (viz.events) {
738
- for (const eventID in viz.events) {
739
- const event = viz.events[eventID];
740
- for (const update of event.updates) {
741
- const otherViz = this._ddl2Dataviews[update.visualization];
742
- const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);
743
- if (update.mappings) {
744
- if (isRoxieServiceRef(otherViz.datasource)) {
745
- for (const key in update.mappings) {
746
- otherViz.datasource.request.push({
747
- source: viz.id,
748
- remoteFieldID: this.toLowerCase(key),
749
- localFieldID: this.toLowerCase(update.mappings[key])
750
- });
751
- }
752
- } else {
753
- const condition = {
754
- viewID: viz.id,
755
- mappings: []
756
- };
757
- for (const key in update.mappings) {
758
- const mapping = update.mappings[key];
759
- const dsFilter = mapping && dsFilters[mapping] ? dsFilters[mapping].filter : void 0;
760
- if (!dsFilter) {
761
- console.warn(`Select Mapping "${mapping}" in viz "${viz.id}" not found in filters for "${otherViz.id}"`);
762
- } else {
763
- condition.mappings.push({
764
- remoteFieldID: this.toLowerCase(key),
765
- localFieldID: this.toLowerCase(update.mappings[key]),
766
- condition: this.rule2condition(dsFilter.rule),
767
- nullable: dsFilter.nullable
768
- });
769
- }
770
- }
771
- this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);
772
- }
773
- }
774
- }
775
- }
776
- }
777
- }
778
- }
779
- }
780
- rule2condition(_) {
781
- switch (_) {
782
- case "set":
783
- return "in";
784
- case "notequals":
785
- return "!=";
786
- }
787
- return _;
788
- }
789
- readSort() {
790
- for (const dash of this._ddl.dashboards) {
791
- for (const viz of dash.visualizations) {
792
- if (viz.source) {
793
- if (viz.source.sort) {
794
- const vizSort = this._ddl2DataviewActivities[viz.id].sort;
795
- vizSort.conditions = viz.source.sort.map((s) => {
796
- if (s.indexOf("-") === 0) {
797
- return {
798
- fieldID: this.toLowerCase(s.substr(1)),
799
- descending: true
800
- };
801
- }
802
- return {
803
- fieldID: this.toLowerCase(s),
804
- descending: false
805
- };
806
- });
807
- }
808
- if (viz.source.first) {
809
- const vizLimit = this._ddl2DataviewActivities[viz.id].limit;
810
- vizLimit.limit = +viz.source.first;
811
- }
812
- }
813
- }
814
- }
815
- }
816
- anyViz2view(viz) {
817
- const project = {
818
- type: "project",
819
- transformations: []
820
- };
821
- const filters = {
822
- type: "filter",
823
- conditions: []
824
- };
825
- const groupBy = {
826
- type: "groupby",
827
- groupByIDs: [],
828
- aggregates: []
829
- };
830
- const sort = {
831
- type: "sort",
832
- conditions: []
833
- };
834
- const limit = {
835
- type: "limit",
836
- limit: 0
837
- };
838
- const mappings = {
839
- type: "mappings",
840
- transformations: []
841
- };
842
- this._ddl2DataviewActivities[viz.id] = {
843
- project,
844
- filters,
845
- sort,
846
- groupBy,
847
- limit,
848
- mappings
849
- };
850
- const datasourceRef = this.isVizDatasourceRoxie(viz) ? {
851
- id: this._datasourceUpdates[viz.id].id,
852
- request: [],
853
- output: this._datasourceUpdates[viz.id].output
854
- } : {
855
- id: this._datasourceUpdates[viz.id].id,
856
- output: this._datasourceUpdates[viz.id].output
857
- };
858
- return {
859
- id: viz.id,
860
- datasource: datasourceRef,
861
- activities: [
862
- project,
863
- filters,
864
- sort,
865
- groupBy,
866
- limit
867
- ],
868
- visualization: {
869
- id: viz.id,
870
- title: viz.title || "",
871
- description: "",
872
- visibility: viz.properties && viz.properties.flyout === true ? "flyout" : "normal",
873
- ...this.type2chartType(viz.type),
874
- mappings,
875
- properties: viz.properties || {}
876
- }
877
- };
878
- }
879
- type2chartType(chartType) {
880
- switch (chartType) {
881
- case "LINE":
882
- return { chartType: "Line", __class: "chart_Line" };
883
- case "BUBBLE":
884
- return { chartType: "Bubble", __class: "chart_Bubble" };
885
- case "PIE":
886
- return { chartType: "Pie", __class: "chart_Pie" };
887
- case "BAR":
888
- return { chartType: "Column", __class: "chart_Column" };
889
- case "FORM":
890
- return { chartType: "FieldForm", __class: "form_FieldForm" };
891
- case "WORD_CLOUD":
892
- return { chartType: "WordCloud", __class: "chart_WordCloud" };
893
- case "CHORO":
894
- return { chartType: "ChoroplethStates", __class: "map_ChoroplethStates" };
895
- case "SUMMARY":
896
- return { chartType: "Summary", __class: "chart_Summary" };
897
- case "SLIDER":
898
- return { chartType: "FieldForm", __class: "form_FieldForm" };
899
- case "HEAT_MAP":
900
- return { chartType: "HeatMap", __class: "other_HeatMap" };
901
- case "2DCHART":
902
- return { chartType: "Column", __class: "chart_Column" };
903
- case "GRAPH":
904
- return { chartType: "AdjacencyGraph", __class: "graph_AdjacencyGraph" };
905
- case "TABLE":
906
- default:
907
- return { chartType: "Table", __class: "dgrid_Table" };
908
- }
909
- }
910
- formFields2field(fields, slider = false) {
911
- if (!fields) return [];
912
- return fields.map((field) => {
913
- switch (field.properties.type) {
914
- case "range":
915
- return {
916
- type: "range",
917
- id: field.id,
918
- default: field.properties.default ? field.properties.default : void 0
919
- };
920
- case "dataset":
921
- return {
922
- type: "dataset",
923
- id: field.id,
924
- default: [],
925
- children: []
926
- };
927
- default:
928
- return {
929
- type: this.formFieldType2fieldType(field.properties.datatype, slider),
930
- id: field.id,
931
- default: field.properties.default ? field.properties.default[0] : void 0
932
- };
933
- }
934
- });
935
- }
936
- formFieldType2fieldType(fieldType, slider) {
937
- switch (fieldType) {
938
- case "bool":
939
- case "boolean":
940
- return "boolean";
941
- case "integer":
942
- case "unsigned":
943
- case "float":
944
- case "double":
945
- case "real":
946
- return "number";
947
- case "string":
948
- return "string";
949
- default:
950
- return slider ? "number" : "string";
951
- }
952
- }
953
- output2output(output, target) {
954
- target[output.from || output.id] = {
955
- fields: this.filters2fields(output.filter)
956
- };
957
- }
958
- filters2fields(filters) {
959
- if (!filters) return [];
960
- return filters.filter((filter) => {
961
- const idParts = filter.fieldid.split("-");
962
- return idParts.length === 1 || idParts[1] === "range";
963
- }).map((filter) => {
964
- const idParts = filter.fieldid.split("-");
965
- const retVal = {
966
- type: "string",
967
- id: idParts[0]
968
- };
969
- return retVal;
970
- });
971
- }
972
- getVizField(vizID, fieldID) {
973
- return {
974
- type: "string",
975
- id: "",
976
- default: ""
977
- };
978
- }
979
- writeDatasources() {
980
- const retVal = [];
981
- for (const id in this._ddl2Datasources) {
982
- retVal.push(this._ddl2Datasources[id]);
983
- }
984
- return retVal;
985
- }
986
- writeDataviews() {
987
- const retVal = [];
988
- for (const id in this._ddl2Dataviews) {
989
- retVal.push(this._ddl2Dataviews[id]);
990
- }
991
- return retVal;
992
- }
993
- writeProperties() {
994
- return {
995
- // TODO
996
- };
997
- }
998
- write() {
999
- return {
1000
- version: "2.2.1",
1001
- createdBy: {
1002
- name: PKG_NAME,
1003
- version: PKG_VERSION
1004
- },
1005
- datasources: this.writeDatasources(),
1006
- dataviews: this.writeDataviews(),
1007
- properties: this.writeProperties()
1008
- };
1009
- }
1010
- };
1011
- __name(_DDLUpgrade, "DDLUpgrade");
1012
- let DDLUpgrade = _DDLUpgrade;
1013
- function upgrade(ddl, baseUrl, wuid, toLowerCase = true, dermatologyJson = {}) {
1014
- const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);
1015
- const retVal = ddlUp.write();
1016
- retVal.properties = upgrade$1(retVal, dermatologyJson);
1017
- return retVal;
1018
- }
1019
- __name(upgrade, "upgrade");
1020
- const $ref = "#/definitions/Schema";
1021
- const $schema = "http://json-schema.org/draft-07/schema#";
1022
- const definitions = /* @__PURE__ */ JSON.parse('{"ActivityType":{"anyOf":[{"$ref":"#/definitions/IFilter"},{"$ref":"#/definitions/IProject"},{"$ref":"#/definitions/IGroupBy"},{"$ref":"#/definitions/ISort"},{"$ref":"#/definitions/ILimit"},{"$ref":"#/definitions/IMappings"}]},"AggregateType":{"anyOf":[{"$ref":"#/definitions/IAggregate"},{"$ref":"#/definitions/ICount"}]},"Dataset":{"items":{},"type":"array"},"DatasourceType":{"anyOf":[{"$ref":"#/definitions/IWUResult"},{"$ref":"#/definitions/ILogicalFile"},{"$ref":"#/definitions/IRoxieService"},{"$ref":"#/definitions/IHipieService"},{"$ref":"#/definitions/IRestService"},{"$ref":"#/definitions/IForm"},{"$ref":"#/definitions/IDatabomb"}]},"FilterCondition":{"anyOf":[{"$ref":"#/definitions/IFilterCondition"},{"$ref":"#/definitions/IFilterStaticCondition"}]},"IAggregate":{"additionalProperties":false,"properties":{"baseCountFieldID":{"type":"string"},"fieldID":{"type":"string"},"inFieldID":{"type":"string"},"type":{"$ref":"#/definitions/IAggregateType"}},"required":["fieldID","type","inFieldID"],"type":"object"},"IAggregateType":{"enum":["min","max","sum","mean","variance","deviation"],"type":"string"},"ICalculated":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"sourceFieldID1":{"type":"string"},"sourceFieldID2":{"type":"string"},"type":{"$ref":"#/definitions/ICalculatedType"}},"required":["fieldID","type","sourceFieldID1","sourceFieldID2"],"type":"object"},"ICalculatedType":{"enum":["+","-","*","/"],"type":"string"},"ICount":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"type":{"const":"count","type":"string"}},"required":["fieldID","type"],"type":"object"},"IDatabomb":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"format":{"$ref":"#/definitions/IDatabombFormat"},"id":{"type":"string"},"payload":{"type":"string"},"type":{"const":"databomb","type":"string"}},"required":["fields","format","id","type"],"type":"object"},"IDatabombFormat":{"enum":["csv","tsv","json"],"type":"string"},"IDatabombRef":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"IDatasource":{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"$ref":"#/definitions/IDatasourceType"}},"required":["type","id"],"type":"object"},"IDatasourceRef":{"anyOf":[{"$ref":"#/definitions/IDatabombRef"},{"$ref":"#/definitions/IWUResultRef"},{"$ref":"#/definitions/IRoxieServiceRef"},{"$ref":"#/definitions/IHipieSqlRef"}]},"IDatasourceType":{"enum":["wuresult","logicalfile","roxie","hipie","rest","form","databomb"],"type":"string"},"IEquals":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"sourceFieldID":{"type":"string"},"transformations":{"items":{"$ref":"#/definitions/MultiTransformationType"},"type":"array"},"type":{"const":"=","type":"string"}},"required":["fieldID","type","sourceFieldID"],"type":"object"},"IField":{"anyOf":[{"$ref":"#/definitions/IFieldBoolean"},{"$ref":"#/definitions/IFieldNumber"},{"$ref":"#/definitions/IFieldNumber64"},{"$ref":"#/definitions/IFieldString"},{"$ref":"#/definitions/IFieldRange"},{"$ref":"#/definitions/IFieldDataset"},{"$ref":"#/definitions/IFieldSet"},{"$ref":"#/definitions/IFieldObject"}]},"IFieldBoolean":{"additionalProperties":false,"properties":{"default":{"type":"boolean"},"id":{"type":"string"},"type":{"const":"boolean","type":"string"}},"required":["type","id"],"type":"object"},"IFieldDataset":{"additionalProperties":false,"properties":{"children":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"default":{"$ref":"#/definitions/Dataset"},"id":{"type":"string"},"type":{"const":"dataset","type":"string"}},"required":["type","id","children"],"type":"object"},"IFieldNumber":{"additionalProperties":false,"properties":{"default":{"type":"number"},"id":{"type":"string"},"type":{"const":"number","type":"string"}},"required":["type","id"],"type":"object"},"IFieldNumber64":{"additionalProperties":false,"properties":{"default":{"$ref":"#/definitions/Number64"},"id":{"type":"string"},"type":{"const":"number64","type":"string"}},"required":["type","id"],"type":"object"},"IFieldObject":{"additionalProperties":false,"properties":{"default":{"type":"object"},"fields":{"additionalProperties":{"$ref":"#/definitions/IField"},"type":"object"},"id":{"type":"string"},"type":{"const":"object","type":"string"}},"required":["type","id","fields"],"type":"object"},"IFieldRange":{"additionalProperties":false,"properties":{"default":{"$ref":"#/definitions/Range"},"id":{"type":"string"},"type":{"const":"range","type":"string"}},"required":["type","id"],"type":"object"},"IFieldSet":{"additionalProperties":false,"properties":{"default":{"items":{"type":["string","number"]},"type":"array"},"fieldType":{"enum":["string","number"],"type":"string"},"id":{"type":"string"},"type":{"const":"set","type":"string"}},"required":["type","id","fieldType"],"type":"object"},"IFieldString":{"additionalProperties":false,"properties":{"default":{"type":"string"},"id":{"type":"string"},"type":{"const":"string","type":"string"}},"required":["type","id"],"type":"object"},"IFieldType":{"enum":["boolean","number","number64","string","range","dataset","set","object"],"type":"string"},"IFilter":{"additionalProperties":false,"properties":{"conditions":{"items":{"$ref":"#/definitions/FilterCondition"},"type":"array"},"type":{"const":"filter","type":"string"}},"required":["conditions","type"],"type":"object"},"IFilterCondition":{"additionalProperties":false,"properties":{"mappings":{"items":{"$ref":"#/definitions/IMapping"},"type":"array"},"viewID":{"type":"string"}},"required":["viewID","mappings"],"type":"object"},"IFilterStaticCondition":{"additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/IMappingConditionType"},"localFieldID":{"type":"string"},"value":{"type":["string","number"]}},"required":["localFieldID","condition","value"],"type":"object"},"IForm":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"id":{"type":"string"},"type":{"const":"form","type":"string"}},"required":["fields","id","type"],"type":"object"},"IGroupBy":{"additionalProperties":false,"properties":{"aggregates":{"items":{"$ref":"#/definitions/AggregateType"},"type":"array"},"groupByIDs":{"items":{"type":"string"},"type":"array"},"type":{"const":"groupby","type":"string"}},"required":["aggregates","groupByIDs","type"],"type":"object"},"IHipieService":{"additionalProperties":false,"properties":{"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"outputs":{"$ref":"#/definitions/OutputDict"},"queryID":{"type":"string"},"querySet":{"type":"string"},"type":{"const":"hipie","type":"string"},"url":{"type":"string"}},"required":["id","inputs","outputs","queryID","querySet","type","url"],"type":"object"},"IHipieSqlRef":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"ILimit":{"additionalProperties":false,"properties":{"limit":{"type":"number"},"type":{"const":"limit","type":"string"}},"required":["limit","type"],"type":"object"},"ILogicalFile":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"id":{"type":"string"},"logicalFile":{"type":"string"},"type":{"const":"logicalfile","type":"string"},"url":{"type":"string"}},"required":["fields","id","logicalFile","type","url"],"type":"object"},"IMap":{"additionalProperties":false,"properties":{"default":{},"fieldID":{"type":"string"},"mappings":{"items":{"$ref":"#/definitions/IMapMapping"},"type":"array"},"sourceFieldID":{"type":"string"},"type":{"const":"map","type":"string"}},"required":["fieldID","type","sourceFieldID","default","mappings"],"type":"object"},"IMapMapping":{"additionalProperties":false,"properties":{"newValue":{},"value":{}},"required":["value","newValue"],"type":"object"},"IMapping":{"additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/IMappingConditionType"},"localFieldID":{"type":"string"},"nullable":{"type":"boolean"},"remoteFieldID":{"type":"string"}},"required":["remoteFieldID","localFieldID","condition","nullable"],"type":"object"},"IMappingConditionType":{"enum":["==","!=",">",">=","<","<=","range","in"],"type":"string"},"IMappings":{"additionalProperties":false,"properties":{"transformations":{"items":{"$ref":"#/definitions/ProjectTransformationType"},"type":"array"},"type":{"const":"mappings","type":"string"}},"required":["transformations","type"],"type":"object"},"IMulti":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"transformations":{"items":{"$ref":"#/definitions/MultiTransformationType"},"type":"array"},"type":{"const":"multi","type":"string"}},"required":["fieldID","type","transformations"],"type":"object"},"IOutput":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"}},"required":["fields"],"type":"object"},"IProject":{"additionalProperties":false,"properties":{"transformations":{"items":{"$ref":"#/definitions/ProjectTransformationType"},"type":"array"},"type":{"const":"project","type":"string"}},"required":["transformations","type"],"type":"object"},"IProperties":{"type":"object"},"IRequestField":{"additionalProperties":false,"properties":{"localFieldID":{"type":"string"},"remoteFieldID":{"type":"string"},"source":{"type":"string"},"value":{"type":"string"}},"required":["localFieldID","source","remoteFieldID","value"],"type":"object"},"IRestService":{"additionalProperties":false,"properties":{"action":{"type":"string"},"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"mode":{"enum":["get","post"],"type":"string"},"outputs":{"$ref":"#/definitions/OutputDict"},"type":{"const":"rest","type":"string"},"url":{"type":"string"}},"required":["action","id","inputs","outputs","type","url"],"type":"object"},"IRoxieService":{"additionalProperties":false,"properties":{"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"outputs":{"$ref":"#/definitions/OutputDict"},"queryID":{"type":"string"},"querySet":{"type":"string"},"type":{"const":"roxie","type":"string"},"url":{"type":"string"}},"required":["id","inputs","outputs","queryID","querySet","type","url"],"type":"object"},"IRoxieServiceRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"output":{"type":"string"},"request":{"items":{"$ref":"#/definitions/IRequestField"},"type":"array"}},"required":["id","output","request"],"type":"object"},"IScale":{"additionalProperties":false,"properties":{"factor":{"type":"number"},"fieldID":{"type":"string"},"sourceFieldID":{"type":"string"},"type":{"const":"scale","type":"string"}},"required":["fieldID","type","sourceFieldID","factor"],"type":"object"},"ISort":{"additionalProperties":false,"properties":{"conditions":{"items":{"$ref":"#/definitions/ISortCondition"},"type":"array"},"type":{"const":"sort","type":"string"}},"required":["conditions","type"],"type":"object"},"ISortCondition":{"additionalProperties":false,"properties":{"descending":{"type":"boolean"},"fieldID":{"type":"string"}},"required":["fieldID","descending"],"type":"object"},"ITemplate":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"template":{"type":"string"},"type":{"const":"template","type":"string"}},"required":["fieldID","type","template"],"type":"object"},"IView":{"additionalProperties":false,"properties":{"activities":{"items":{"$ref":"#/definitions/ActivityType"},"type":"array"},"datasource":{"$ref":"#/definitions/IDatasourceRef"},"id":{"type":"string"},"visualization":{"$ref":"#/definitions/IVisualization"}},"required":["id","datasource","activities","visualization"],"type":"object"},"IVisualization":{"additionalProperties":false,"properties":{"__class":{"type":"string"},"chartType":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"mappings":{"$ref":"#/definitions/IMappings"},"properties":{"$ref":"#/definitions/IWidgetProperties"},"secondaryDataviewID":{"type":"string"},"title":{"type":"string"},"visibility":{"$ref":"#/definitions/VisibilityType"}},"required":["__class","chartType","id","mappings","properties","title","visibility"],"type":"object"},"IWUResult":{"additionalProperties":false,"properties":{"id":{"type":"string"},"outputs":{"$ref":"#/definitions/OutputDict"},"type":{"const":"wuresult","type":"string"},"url":{"type":"string"},"wuid":{"type":"string"}},"required":["id","outputs","type","url","wuid"],"type":"object"},"IWUResultRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"output":{"type":"string"}},"required":["id","output"],"type":"object"},"IWidgetProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"number"},{"type":"boolean"},{"not":{}},{"$ref":"#/definitions/IWidgetProperties"},{"items":{"$ref":"#/definitions/IWidgetProperties"},"type":"array"}]},"properties":{"__class":{"type":"string"}},"required":["__class"],"type":"object"},"MultiTransformationType":{"anyOf":[{"$ref":"#/definitions/IEquals"},{"$ref":"#/definitions/ICalculated"},{"$ref":"#/definitions/IScale"},{"$ref":"#/definitions/ITemplate"},{"$ref":"#/definitions/IMap"}]},"Number64":{"type":"string"},"OutputDict":{"additionalProperties":{"$ref":"#/definitions/IOutput"},"type":"object"},"ProjectTransformationType":{"anyOf":[{"$ref":"#/definitions/MultiTransformationType"},{"$ref":"#/definitions/IMulti"}]},"Range":{"items":{"type":["number","string"]},"maxItems":2,"minItems":2,"type":"array"},"Schema":{"additionalProperties":false,"properties":{"createdBy":{"additionalProperties":false,"properties":{"name":{"type":"string"},"version":{"type":"string"}},"required":["name","version"],"type":"object"},"datasources":{"items":{"$ref":"#/definitions/DatasourceType"},"type":"array"},"dataviews":{"items":{"$ref":"#/definitions/IView"},"type":"array"},"defs":{"additionalProperties":false,"properties":{"activityTypes":{"additionalProperties":false,"properties":{"filter":{"$ref":"#/definitions/IFilter"},"groupby":{"$ref":"#/definitions/IGroupBy"},"limit":{"$ref":"#/definitions/ILimit"},"mappings":{"$ref":"#/definitions/IMappings"},"project":{"$ref":"#/definitions/IProject"},"sort":{"$ref":"#/definitions/ISort"}},"required":["filter","project","groupby","sort","limit","mappings"],"type":"object"},"aggregateTypes":{"additionalProperties":false,"properties":{"aggregate":{"$ref":"#/definitions/IAggregate"},"count":{"$ref":"#/definitions/ICount"}},"required":["aggregate","count"],"type":"object"},"datasourceRefTypes":{"additionalProperties":false,"properties":{"roxieServiceRef":{"$ref":"#/definitions/IRoxieServiceRef"},"wuResultRef":{"$ref":"#/definitions/IWUResultRef"}},"required":["wuResultRef","roxieServiceRef"],"type":"object"},"datasourceTypes":{"additionalProperties":false,"properties":{"databomb":{"$ref":"#/definitions/IDatabomb"},"datasource":{"$ref":"#/definitions/IDatasource"},"form":{"$ref":"#/definitions/IForm"},"hipieService":{"$ref":"#/definitions/IHipieService"},"logicalFile":{"$ref":"#/definitions/ILogicalFile"},"roxieService":{"$ref":"#/definitions/IRoxieService"},"wuresult":{"$ref":"#/definitions/IWUResult"}},"required":["datasource","logicalFile","form","databomb","wuresult","hipieService","roxieService"],"type":"object"},"fieldTypes":{"additionalProperties":false,"properties":{"dataset":{"$ref":"#/definitions/Dataset"},"field":{"$ref":"#/definitions/IField"},"fieldBoolean":{"$ref":"#/definitions/IFieldBoolean"},"fieldDataset":{"$ref":"#/definitions/IFieldDataset"},"fieldNumber":{"$ref":"#/definitions/IFieldNumber"},"fieldNumber64":{"$ref":"#/definitions/IFieldNumber64"},"fieldObject":{"$ref":"#/definitions/IFieldObject"},"fieldRange":{"$ref":"#/definitions/IFieldRange"},"fieldSet":{"$ref":"#/definitions/IFieldSet"},"fieldString":{"$ref":"#/definitions/IFieldString"},"fieldType":{"$ref":"#/definitions/IFieldType"},"number64":{"$ref":"#/definitions/Number64"},"range":{"$ref":"#/definitions/Range"}},"required":["number64","range","dataset","fieldType","fieldBoolean","fieldNumber","fieldNumber64","fieldString","fieldRange","fieldDataset","fieldSet","fieldObject","field"],"type":"object"},"transformationTypes":{"additionalProperties":false,"properties":{"calculated":{"$ref":"#/definitions/ICalculated"},"equals":{"$ref":"#/definitions/IEquals"},"map":{"$ref":"#/definitions/IMap"},"multi":{"$ref":"#/definitions/IMulti"},"scale":{"$ref":"#/definitions/IScale"},"template":{"$ref":"#/definitions/ITemplate"}},"required":["equals","calculated","scale","template","map","multi"],"type":"object"}},"required":["fieldTypes","datasourceTypes","datasourceRefTypes","activityTypes","aggregateTypes","transformationTypes"],"type":"object"},"hipieProperties":{"$ref":"#/definitions/IProperties"},"properties":{"$ref":"#/definitions/IProperties"},"version":{"const":"2.2.1","type":"string"}},"required":["version","createdBy","datasources","dataviews"],"type":"object"},"VisibilityType":{"enum":["normal","flyout"],"type":"string"}}');
1023
- const _ddl2Schema = {
1024
- $ref,
1025
- $schema,
1026
- definitions
1027
- };
1028
- const Ajv = _Ajv.default || _Ajv;
1029
- const ddl2Schema = _ddl2Schema;
1030
- const options = {
1031
- allErrors: false,
1032
- verbose: true,
1033
- jsonPointers: false
1034
- };
1035
- function doValidate(ddl, schema) {
1036
- const ajv = new Ajv(options);
1037
- const validate = ajv.compile(schema);
1038
- const success = validate(ddl);
1039
- return {
1040
- success,
1041
- errors: validate.errors
1042
- };
1043
- }
1044
- __name(doValidate, "doValidate");
1045
- function validate2(ddl) {
1046
- return doValidate(ddl, _ddl2Schema);
1047
- }
1048
- __name(validate2, "validate2");
1049
- function isDDL2Schema(ref) {
1050
- return ref.version !== void 0 && ref.datasources !== void 0 && ref.dataviews !== void 0;
1051
- }
1052
- __name(isDDL2Schema, "isDDL2Schema");
1053
- export {
1054
- BUILD_VERSION,
1055
- v1 as DDL1,
1056
- v2 as DDL2,
1057
- PKG_NAME,
1058
- PKG_VERSION,
1059
- ddl2Schema,
1060
- isDDL2Schema,
1061
- upgrade,
1062
- validate2
1063
- };
1
+ var e=Object.defineProperty,i=(i,t)=>e(i,"name",{value:t,configurable:!0});import*as t from"ajv";const r="@hpcc-js/ddl-shim",s="3.2.3",o="3.18.0";function a(e){return void 0!==e.WUID}function n(e){return!0===e.databomb}function p(e){return void 0!==e.URL}function d(e){return"PIE"===e.type||"BAR"===e.type}function l(e){return"LINE"===e.type}function u(e){return"CHORO"===e.type}function f(e){return"TABLE"===e.type}function c(e){return"SLIDER"===e.type}function y(e){return"GRAPH"===e.type}function g(e){return"HEAT_MAP"===e.type}function m(e){return"FORM"===e.type}function h(e){return void 0!==e.state}function I(e){return void 0!==e.county}function b(e){return void 0!==e.geohash}i(a,"isWorkunitDatasource"),i(n,"isDatabombDatasource"),i(p,"isHipieDatasource"),i(d,"isPieVisualization"),i(l,"isLineVisualization"),i(u,"isChoroVisualization"),i(f,"isTableVisualization"),i(c,"isSliderVisualization"),i(y,"isGraphVisualization"),i(g,"isHeatMapVisualization"),i(m,"isFormVisualization"),i(h,"isUSStateMapping"),i(I,"isUSCountyMapping"),i(b,"isGeohashMapping");const _=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,isChoroVisualization:u,isDatabombDatasource:n,isFormVisualization:m,isGeohashMapping:b,isGraphVisualization:y,isHeatMapVisualization:g,isHipieDatasource:p,isLineVisualization:l,isPieVisualization:d,isSliderVisualization:c,isTableVisualization:f,isUSCountyMapping:I,isUSStateMapping:h,isWorkunitDatasource:a},Symbol.toStringTag,{value:"Module"}));function D(e){return!v(e)&&!w(e)}function v(e){return void 0!==e.output&&!w(e)}function w(e){return void 0!==e.request}function F(e){return!!e.viewID}function $(e){return"filter"===e.type}function P(e){return"project"===e.type}function T(e){return"mappings"===e.type}function C(e){return"groupby"===e.type}function j(e){return"sort"===e.type}function L(e){return"limit"===e.type}i(D,"isDatabombRef"),i(v,"isWUResultRef"),i(w,"isRoxieServiceRef"),i(F,"isIFilterCondition"),i($,"isFilterActivity"),i(P,"isProjectActivity"),i(T,"isMappingsActivity"),i(C,"isGroupByActivity"),i(j,"isSortActivity"),i(L,"isLimitActivity");const S=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,VisibilitySet:["normal","flyout"],isDatabombRef:D,isFilterActivity:$,isGroupByActivity:C,isIFilterCondition:F,isLimitActivity:L,isMappingsActivity:T,isProjectActivity:P,isRoxieServiceRef:w,isSortActivity:j,isWUResultRef:v},Symbol.toStringTag,{value:"Module"})),q={c3chart_Bar:"chart_Bar",c3chart_Column:"chart_Column",c3chart_Pie:"chart_Pie",c3chart_Area:"chart_Area",c3chart_Line:"chart_Line",amchart_Bar:"chart_Bar",amchart_Column:"chart_Column",amchart_Pie:"chart_Pie",amchart_Area:"chart_Area",amchart_Line:"chart_Line",google_Bar:"chart_Bar",google_Column:"chart_Column",google_Pie:"chart_Pie",google_Area:"chart_Area",google_Line:"chart_Line",other_Table:"dgrid_Table"},R={xAxisLabelRotation:[{name:"xAxisOverlapMode",transform:/* @__PURE__ */i(e=>"rotate","transform")},{name:"xAxisLabelRotation",transform:/* @__PURE__ */i(e=>e,"transform")}],tooltipLabelColor:{name:"tooltipLabelColor"},tooltipSeriesColor:{name:"tooltipSeriesColor"},tooltipValueColor:{name:"tooltipValueColor"},tooltipValueFormat:{name:"tooltipValueFormat"},timePattern:{name:"xAxisTypeTimePattern"},smoothLines:{name:"interpolate",transform:/* @__PURE__ */i(e=>!1===e?"linear":"catmullRom","transform")},holePercent:{name:"innerRadius"},flip:{name:"orientation",transform:/* @__PURE__ */i(e=>e?"vertical":"horizontal","transform")},bottomText:{name:"xAxisTitle"},xAxisTypeTimePattern:{name:"xAxisTypeTimePattern"},yAxisTypeTimePattern:{name:"yAxisTypeTimePattern"},valueFormat:{name:"tooltipValueFormat"},stacked:{name:"yAxisStacked"},showYGrid:{name:"yAxisGuideLines"},showXGrid:{name:"xAxisGuideLines"},showValueLabel:{name:"showValue"},low:{name:"yAxisDomainLow"},high:{name:"yAxisDomainHigh"},fillOpacity:{name:"interpolateFillOpacity"},areaFillOpacity:{name:"interpolateFillOpacity"},showToolbar:{name:"titleVisible"},showCSV:{name:"downloadButtonVisible"}};function A(e,i,t){let r;for(const s in e){if(s===i&&e[s]===t){r=e;break}if(e[s]&&"object"==typeof e[s]&&(r=A(e[s],i,t),void 0!==r))break}return r}function M(e,t){function r(e){const r=e.id,s=A(t,"__id",r);if(s){const i=s.__properties,t=s.__properties.chart?s.__properties.chart:s.__properties.widget,r=t.__properties;o(t),a(i,r),n(i,r),e.visualization.properties.chartType&&(e.visualization.properties.charttype=e.visualization.properties.chartType)}else console.warn(r+" not found in dermObj");function o(t){function r(e){return q[e]?q[e]:e}e.visualization.__class=r(t.__class),e.visualization.properties.__class="marshaller_VizChartPanel",e.visualization.properties.widget||(e.visualization.properties.widget={}),e.visualization.properties.widget.__class=e.visualization.__class,i(r,"swap_with_supported_class")}function a(i,t){e.visualization.title=i.title||"",e.visualization.description="",e.visualization.visibility="flyout"===e.visualization.visibility?"flyout":"normal",e.visualization.chartType=e.visualization.__class.split("_")[1];for(const r in i)if(void 0!==R[r]){const t=R[r].name;"function"==typeof R[r].transform?e.visualization.properties[t]=R[r].transform(i[r]):e.visualization.properties[t]=i[r]}t&&t.showLegend&&e.visualization.properties&&(e.visualization.properties.legendVisible=!0)}function n(i,t){e.visualization.title=e.visualization.title||t.title||"",e.visualization.description="",e.visualization.visibility="flyout"===e.visualization.visibility?"flyout":"normal",e.visualization.chartType=e.visualization.__class.split("_")[1];for(const r in t)if(void 0!==R[r])if(R[r]instanceof Array)R[r].forEach(i=>{const s=i.name;e.visualization.properties.widget[s]=i.transform(t[r]),"function"==typeof R[r].transform?e.visualization.properties.widget[s]=R[r].transform(t[r]):e.visualization.properties.widget[s]=t[r]});else{const i=R[r].name;e.visualization.properties.widget[i]=R[r].transform(t[r])}}i(o,"apply_class_mapping"),i(a,"apply_panel_property_mapping"),i(n,"apply_widget_property_mapping")}e.dataviews.forEach(r),i(r,"apply_to_dataview")}function z(e,i){const t={layout:[]};if(i&&i.__properties)return i.__properties.content.forEach(e=>{const i={id:e.__properties.widget.__id,position:[e.__properties.gridCol,e.__properties.gridRow,e.__properties.gridColSpan,e.__properties.gridRowSpan]};t.layout.push(i)}),t}function x(e,i){return M(e,i),z(0,i)}function V(e){return e}i(A,"findKeyVal"),i(M,"apply_to_dataviews"),i(z,"apply_to_properties_layout"),i(x,"upgrade$1"),i(V,"faCharFix");const O=class _DDLUpgrade{_ddl;_baseUrl;_wuid;_toLowerCase;_datasources={};_datasourceUpdates={};_visualizations={};_ddl2Datasources={};_ddl2DatasourceFields={};_ddl2Dataviews={};_ddl2DataviewActivities={};constructor(e,i="http://localhost:8010",t="WUID",r=!0){this._ddl=e,this._baseUrl=i,this._wuid=t,this._toLowerCase=r,this.indexDDL(),this.readDDL()}toLowerCase(e){return this._toLowerCase?e.toLowerCase():e}isVizDatasourceRoxie(e){if(e.source){if(p(this._datasources[e.source.id]))return!0}return!1}getDatasourceOutputs(e,i){const t=[],r=this._datasources[e];for(const s of r.outputs)if(s.notify)for(const e of s.notify)e===i&&t.push({datasource:r,output:s});return t}getDatasourceFilters(e,i){const t={};for(const r of this.getDatasourceOutputs(e,i))if(r.output.filter)for(const e of r.output.filter)t[e.fieldid]={datasource:r.datasource,output:r.output,filter:e};return t}indexDDL(){for(const e of this._ddl.dashboards)for(const i of e.visualizations)this._visualizations[i.id]=i;for(const e of this._ddl.datasources){this._datasources[e.id]=e;for(const i of e.outputs)if(i.notify)for(const t of i.notify)this._datasourceUpdates[t]={id:e.id,output:i.from||i.id}}}readDDL(){for(const e of this._ddl.datasources)if(a(e)){const i={type:"wuresult",id:e.id,url:this._baseUrl,wuid:this._wuid,outputs:{}};for(const t of e.outputs)this.output2output(t,i.outputs);this._ddl2Datasources[e.id]=i}else if(n(e));else{const i=e.URL.split("/WsEcl/submit/query/"),t=i[0],r=i[1].split("/"),s={type:"hipie",id:e.id,url:t,querySet:r[0],queryID:r[1],inputs:[],outputs:{}};for(const o of e.outputs)this.output2output(o,s.outputs);this._ddl2Datasources[e.id]=s}for(const e of this._ddl.dashboards)for(const i of e.visualizations)"FORM"===i.type?(this._ddl2Datasources[i.id]={type:"form",id:i.id,fields:this.formFields2field(i.fields)},this._datasourceUpdates[i.id]={id:i.id}):"SLIDER"===i.type&&(this._ddl2Datasources[i.id]={type:"form",id:i.id,fields:this.formFields2field(i.fields,!0)},this._datasourceUpdates[i.id]={id:i.id}),this._ddl2Dataviews[i.id]=this.anyViz2view(i);this.readGroupBy(),this.readFilters(),this.readSort(),this.readMappings()}readGroupBy(){for(const e of this._ddl.dashboards)for(const i of e.visualizations)if(i.fields){const e=[],t=[],r=[];for(const s of i.fields)if(s.properties&&s.properties.function)switch(s.properties.function){case"SUM":case"MIN":case"MAX":r.push({type:this.func2aggr(s.properties.function),inFieldID:this.toLowerCase(s.properties.params.param1),fieldID:this.toLowerCase(s.id)});break;case"AVE":r.push({type:this.func2aggr(s.properties.function),inFieldID:this.toLowerCase(s.properties.params.param1),baseCountFieldID:s.properties.params.param2?this.toLowerCase(s.properties.params.param2):void 0,fieldID:this.toLowerCase(s.id)});break;case"SCALE":if("object"==typeof s.properties.params.param1){const e=s.properties.params.param1;switch(e.function){case"SUM":case"MIN":case"MAX":r.push({type:this.func2aggr(e.function),inFieldID:this.toLowerCase(e.params.param1),fieldID:this.toLowerCase(s.id)})}}e.push({type:"scale",sourceFieldID:this.toLowerCase(s.id),fieldID:this.toLowerCase(s.id),factor:+s.properties.params.param2});break;default:throw t.push(this.toLowerCase(s.id)),new Error(`Unhandled field function: ${s.properties.function}`)}else t.push(this.toLowerCase(s.id));e.length&&(this._ddl2DataviewActivities[i.id].project.transformations=e),r.length&&(this._ddl2DataviewActivities[i.id].groupBy.groupByIDs=[...t],this._ddl2DataviewActivities[i.id].groupBy.aggregates=r)}}func2aggr(e){switch(e){case"SUM":return"sum";case"AVE":return"mean";case"MIN":return"min";case"MAX":return"max"}throw new Error(`Unknown DDL1 Function Type: ${e}`)}readMappings(){for(const e of this._ddl.dashboards)for(const i of e.visualizations)if(m(i));else if(d(i))this.readPieMappings(i);else if(u(i))this.readChoroMappings(i);else if(l(i))this.readLineMappings(i);else if(f(i))this.readTableMappings(i);else if(y(i))this.readGraphMappings(i);else{if(!c(i))throw new Error(`Unkown DDL1 mapping type: ${i.type}`);this.readSliderMappings(i)}}readPieMappings(e){const i=this._ddl2DataviewActivities[e.id].mappings;i.transformations.push({fieldID:"label",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.label)}),i.transformations.push({fieldID:"weight",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.weight[0])})}readChoroMappings(e){const i=this._ddl2DataviewActivities[e.id].mappings;i.transformations.push({fieldID:"label",type:"=",sourceFieldID:this.toLowerCase(this.anyChoroMapping2label(e.source.mappings))}),i.transformations.push({fieldID:"weight",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.weight[0])})}anyChoroMapping2label(e){return e.state||e.county||e.geohash}readLineMappings(e){const i=this._ddl2DataviewActivities[e.id].mappings;i.transformations.push({fieldID:e.source.mappings.x[0],type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.x[0])});for(let t=0;t<e.source.mappings.y.length;++t)i.transformations.push({fieldID:e.source.mappings.y[t],type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.y[t])})}readTableMappings(e){const i=this._ddl2DataviewActivities[e.id].mappings;for(let t=0;t<e.label.length;++t)i.transformations.push({fieldID:e.label[t],type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.value[t])})}readGraphEnums(e,i=!1){const t=[];if(e)for(const r in e){const s={};for(const t in e[r])"faChar"===t?s[t]=V(e[r][t]):i&&0===t.indexOf("icon_")?(console.warn("Deprecated flag property: "+t),s[t.split("icon_")[1]]=e[r][t]):s[t]=e[r][t];i&&"0"===r||t.push({value:r,newValue:s})}return t}readGraphMappings(e){const i=this._ddl2DataviewActivities[e.id].mappings;i.transformations.push({fieldID:"uid",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.uid)}),i.transformations.push({fieldID:"label",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.label)}),e.icon.fieldid&&i.transformations.push({fieldID:"icon",type:"map",sourceFieldID:this.toLowerCase(e.icon.fieldid),default:{fachar:e.icon.faChar},mappings:this.readGraphEnums(e.icon.valuemappings)});let t=0;if(e.flag)for(const r of e.flag)r.fieldid&&i.transformations.push({fieldID:"annotation_"+t++,type:"map",sourceFieldID:this.toLowerCase(r.fieldid),default:{},mappings:this.readGraphEnums(r.valuemappings,!0)});i.transformations.push({fieldID:"links",type:"=",sourceFieldID:this.toLowerCase(e.source.link.childfile),transformations:[{fieldID:"uid",type:"=",sourceFieldID:this.toLowerCase(e.source.link.mappings.uid)}]})}readSliderMappings(e){this._ddl2DataviewActivities[e.id].mappings.transformations.push({fieldID:"label",type:"=",sourceFieldID:this.toLowerCase(e.source.mappings.label)})}readFilters(){for(const e of this._ddl.dashboards)for(const i of e.visualizations)if(i.events)for(const e in i.events){const t=i.events[e];for(const e of t.updates){const t=this._ddl2Dataviews[e.visualization],r=this.getDatasourceFilters(e.datasource,t.id);if(e.mappings)if(w(t.datasource))for(const s in e.mappings)t.datasource.request.push({source:i.id,remoteFieldID:this.toLowerCase(s),localFieldID:this.toLowerCase(e.mappings[s])});else{const s={viewID:i.id,mappings:[]};for(const o in e.mappings){const a=e.mappings[o],n=a&&r[a]?r[a].filter:void 0;n?s.mappings.push({remoteFieldID:this.toLowerCase(o),localFieldID:this.toLowerCase(e.mappings[o]),condition:this.rule2condition(n.rule),nullable:n.nullable}):console.warn(`Select Mapping "${a}" in viz "${i.id}" not found in filters for "${t.id}"`)}this._ddl2DataviewActivities[t.id].filters.conditions.push(s)}}}}rule2condition(e){switch(e){case"set":return"in";case"notequals":return"!="}return e}readSort(){for(const e of this._ddl.dashboards)for(const i of e.visualizations)if(i.source){if(i.source.sort){this._ddl2DataviewActivities[i.id].sort.conditions=i.source.sort.map(e=>0===e.indexOf("-")?{fieldID:this.toLowerCase(e.substr(1)),descending:!0}:{fieldID:this.toLowerCase(e),descending:!1})}if(i.source.first){this._ddl2DataviewActivities[i.id].limit.limit=+i.source.first}}}anyViz2view(e){const i={type:"project",transformations:[]},t={type:"filter",conditions:[]},r={type:"groupby",groupByIDs:[],aggregates:[]},s={type:"sort",conditions:[]},o={type:"limit",limit:0},a={type:"mappings",transformations:[]};this._ddl2DataviewActivities[e.id]={project:i,filters:t,sort:s,groupBy:r,limit:o,mappings:a};const n=this.isVizDatasourceRoxie(e)?{id:this._datasourceUpdates[e.id].id,request:[],output:this._datasourceUpdates[e.id].output}:{id:this._datasourceUpdates[e.id].id,output:this._datasourceUpdates[e.id].output};return{id:e.id,datasource:n,activities:[i,t,s,r,o],visualization:{id:e.id,title:e.title||"",description:"",visibility:e.properties&&!0===e.properties.flyout?"flyout":"normal",...this.type2chartType(e.type),mappings:a,properties:e.properties||{}}}}type2chartType(e){switch(e){case"LINE":return{chartType:"Line",__class:"chart_Line"};case"BUBBLE":return{chartType:"Bubble",__class:"chart_Bubble"};case"PIE":return{chartType:"Pie",__class:"chart_Pie"};case"BAR":case"2DCHART":return{chartType:"Column",__class:"chart_Column"};case"FORM":case"SLIDER":return{chartType:"FieldForm",__class:"form_FieldForm"};case"WORD_CLOUD":return{chartType:"WordCloud",__class:"chart_WordCloud"};case"CHORO":return{chartType:"ChoroplethStates",__class:"map_ChoroplethStates"};case"SUMMARY":return{chartType:"Summary",__class:"chart_Summary"};case"HEAT_MAP":return{chartType:"HeatMap",__class:"other_HeatMap"};case"GRAPH":return{chartType:"AdjacencyGraph",__class:"graph_AdjacencyGraph"};default:return{chartType:"Table",__class:"dgrid_Table"}}}formFields2field(e,i=!1){return e?e.map(e=>{switch(e.properties.type){case"range":return{type:"range",id:e.id,default:e.properties.default?e.properties.default:void 0};case"dataset":return{type:"dataset",id:e.id,default:[],children:[]};default:return{type:this.formFieldType2fieldType(e.properties.datatype,i),id:e.id,default:e.properties.default?e.properties.default[0]:void 0}}}):[]}formFieldType2fieldType(e,i){switch(e){case"bool":case"boolean":return"boolean";case"integer":case"unsigned":case"float":case"double":case"real":return"number";case"string":return"string";default:return i?"number":"string"}}output2output(e,i){i[e.from||e.id]={fields:this.filters2fields(e.filter)}}filters2fields(e){return e?e.filter(e=>{const i=e.fieldid.split("-");return 1===i.length||"range"===i[1]}).map(e=>({type:"string",id:e.fieldid.split("-")[0]})):[]}getVizField(e,i){return{type:"string",id:"",default:""}}writeDatasources(){const e=[];for(const i in this._ddl2Datasources)e.push(this._ddl2Datasources[i]);return e}writeDataviews(){const e=[];for(const i in this._ddl2Dataviews)e.push(this._ddl2Dataviews[i]);return e}writeProperties(){return{}}write(){return{version:"2.2.1",createdBy:{name:r,version:s},datasources:this.writeDatasources(),dataviews:this.writeDataviews(),properties:this.writeProperties()}}};i(O,"DDLUpgrade");let U=O;function B(e,i,t,r=!0,s={}){const o=new U(e,i,t,r).write();return o.properties=x(o,s),o}i(B,"upgrade");const E={$ref:"#/definitions/Schema",$schema:"http://json-schema.org/draft-07/schema#",definitions:/* @__PURE__ */JSON.parse('{"ActivityType":{"anyOf":[{"$ref":"#/definitions/IFilter"},{"$ref":"#/definitions/IProject"},{"$ref":"#/definitions/IGroupBy"},{"$ref":"#/definitions/ISort"},{"$ref":"#/definitions/ILimit"},{"$ref":"#/definitions/IMappings"}]},"AggregateType":{"anyOf":[{"$ref":"#/definitions/IAggregate"},{"$ref":"#/definitions/ICount"}]},"Dataset":{"items":{},"type":"array"},"DatasourceType":{"anyOf":[{"$ref":"#/definitions/IWUResult"},{"$ref":"#/definitions/ILogicalFile"},{"$ref":"#/definitions/IRoxieService"},{"$ref":"#/definitions/IHipieService"},{"$ref":"#/definitions/IRestService"},{"$ref":"#/definitions/IForm"},{"$ref":"#/definitions/IDatabomb"}]},"FilterCondition":{"anyOf":[{"$ref":"#/definitions/IFilterCondition"},{"$ref":"#/definitions/IFilterStaticCondition"}]},"IAggregate":{"additionalProperties":false,"properties":{"baseCountFieldID":{"type":"string"},"fieldID":{"type":"string"},"inFieldID":{"type":"string"},"type":{"$ref":"#/definitions/IAggregateType"}},"required":["fieldID","type","inFieldID"],"type":"object"},"IAggregateType":{"enum":["min","max","sum","mean","variance","deviation"],"type":"string"},"ICalculated":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"sourceFieldID1":{"type":"string"},"sourceFieldID2":{"type":"string"},"type":{"$ref":"#/definitions/ICalculatedType"}},"required":["fieldID","type","sourceFieldID1","sourceFieldID2"],"type":"object"},"ICalculatedType":{"enum":["+","-","*","/"],"type":"string"},"ICount":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"type":{"const":"count","type":"string"}},"required":["fieldID","type"],"type":"object"},"IDatabomb":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"format":{"$ref":"#/definitions/IDatabombFormat"},"id":{"type":"string"},"payload":{"type":"string"},"type":{"const":"databomb","type":"string"}},"required":["fields","format","id","type"],"type":"object"},"IDatabombFormat":{"enum":["csv","tsv","json"],"type":"string"},"IDatabombRef":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"IDatasource":{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"$ref":"#/definitions/IDatasourceType"}},"required":["type","id"],"type":"object"},"IDatasourceRef":{"anyOf":[{"$ref":"#/definitions/IDatabombRef"},{"$ref":"#/definitions/IWUResultRef"},{"$ref":"#/definitions/IRoxieServiceRef"},{"$ref":"#/definitions/IHipieSqlRef"}]},"IDatasourceType":{"enum":["wuresult","logicalfile","roxie","hipie","rest","form","databomb"],"type":"string"},"IEquals":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"sourceFieldID":{"type":"string"},"transformations":{"items":{"$ref":"#/definitions/MultiTransformationType"},"type":"array"},"type":{"const":"=","type":"string"}},"required":["fieldID","type","sourceFieldID"],"type":"object"},"IField":{"anyOf":[{"$ref":"#/definitions/IFieldBoolean"},{"$ref":"#/definitions/IFieldNumber"},{"$ref":"#/definitions/IFieldNumber64"},{"$ref":"#/definitions/IFieldString"},{"$ref":"#/definitions/IFieldRange"},{"$ref":"#/definitions/IFieldDataset"},{"$ref":"#/definitions/IFieldSet"},{"$ref":"#/definitions/IFieldObject"}]},"IFieldBoolean":{"additionalProperties":false,"properties":{"default":{"type":"boolean"},"id":{"type":"string"},"type":{"const":"boolean","type":"string"}},"required":["type","id"],"type":"object"},"IFieldDataset":{"additionalProperties":false,"properties":{"children":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"default":{"$ref":"#/definitions/Dataset"},"id":{"type":"string"},"type":{"const":"dataset","type":"string"}},"required":["type","id","children"],"type":"object"},"IFieldNumber":{"additionalProperties":false,"properties":{"default":{"type":"number"},"id":{"type":"string"},"type":{"const":"number","type":"string"}},"required":["type","id"],"type":"object"},"IFieldNumber64":{"additionalProperties":false,"properties":{"default":{"$ref":"#/definitions/Number64"},"id":{"type":"string"},"type":{"const":"number64","type":"string"}},"required":["type","id"],"type":"object"},"IFieldObject":{"additionalProperties":false,"properties":{"default":{"type":"object"},"fields":{"additionalProperties":{"$ref":"#/definitions/IField"},"type":"object"},"id":{"type":"string"},"type":{"const":"object","type":"string"}},"required":["type","id","fields"],"type":"object"},"IFieldRange":{"additionalProperties":false,"properties":{"default":{"$ref":"#/definitions/Range"},"id":{"type":"string"},"type":{"const":"range","type":"string"}},"required":["type","id"],"type":"object"},"IFieldSet":{"additionalProperties":false,"properties":{"default":{"items":{"type":["string","number"]},"type":"array"},"fieldType":{"enum":["string","number"],"type":"string"},"id":{"type":"string"},"type":{"const":"set","type":"string"}},"required":["type","id","fieldType"],"type":"object"},"IFieldString":{"additionalProperties":false,"properties":{"default":{"type":"string"},"id":{"type":"string"},"type":{"const":"string","type":"string"}},"required":["type","id"],"type":"object"},"IFieldType":{"enum":["boolean","number","number64","string","range","dataset","set","object"],"type":"string"},"IFilter":{"additionalProperties":false,"properties":{"conditions":{"items":{"$ref":"#/definitions/FilterCondition"},"type":"array"},"type":{"const":"filter","type":"string"}},"required":["conditions","type"],"type":"object"},"IFilterCondition":{"additionalProperties":false,"properties":{"mappings":{"items":{"$ref":"#/definitions/IMapping"},"type":"array"},"viewID":{"type":"string"}},"required":["viewID","mappings"],"type":"object"},"IFilterStaticCondition":{"additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/IMappingConditionType"},"localFieldID":{"type":"string"},"value":{"type":["string","number"]}},"required":["localFieldID","condition","value"],"type":"object"},"IForm":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"id":{"type":"string"},"type":{"const":"form","type":"string"}},"required":["fields","id","type"],"type":"object"},"IGroupBy":{"additionalProperties":false,"properties":{"aggregates":{"items":{"$ref":"#/definitions/AggregateType"},"type":"array"},"groupByIDs":{"items":{"type":"string"},"type":"array"},"type":{"const":"groupby","type":"string"}},"required":["aggregates","groupByIDs","type"],"type":"object"},"IHipieService":{"additionalProperties":false,"properties":{"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"outputs":{"$ref":"#/definitions/OutputDict"},"queryID":{"type":"string"},"querySet":{"type":"string"},"type":{"const":"hipie","type":"string"},"url":{"type":"string"}},"required":["id","inputs","outputs","queryID","querySet","type","url"],"type":"object"},"IHipieSqlRef":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"ILimit":{"additionalProperties":false,"properties":{"limit":{"type":"number"},"type":{"const":"limit","type":"string"}},"required":["limit","type"],"type":"object"},"ILogicalFile":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"id":{"type":"string"},"logicalFile":{"type":"string"},"type":{"const":"logicalfile","type":"string"},"url":{"type":"string"}},"required":["fields","id","logicalFile","type","url"],"type":"object"},"IMap":{"additionalProperties":false,"properties":{"default":{},"fieldID":{"type":"string"},"mappings":{"items":{"$ref":"#/definitions/IMapMapping"},"type":"array"},"sourceFieldID":{"type":"string"},"type":{"const":"map","type":"string"}},"required":["fieldID","type","sourceFieldID","default","mappings"],"type":"object"},"IMapMapping":{"additionalProperties":false,"properties":{"newValue":{},"value":{}},"required":["value","newValue"],"type":"object"},"IMapping":{"additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/IMappingConditionType"},"localFieldID":{"type":"string"},"nullable":{"type":"boolean"},"remoteFieldID":{"type":"string"}},"required":["remoteFieldID","localFieldID","condition","nullable"],"type":"object"},"IMappingConditionType":{"enum":["==","!=",">",">=","<","<=","range","in"],"type":"string"},"IMappings":{"additionalProperties":false,"properties":{"transformations":{"items":{"$ref":"#/definitions/ProjectTransformationType"},"type":"array"},"type":{"const":"mappings","type":"string"}},"required":["transformations","type"],"type":"object"},"IMulti":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"transformations":{"items":{"$ref":"#/definitions/MultiTransformationType"},"type":"array"},"type":{"const":"multi","type":"string"}},"required":["fieldID","type","transformations"],"type":"object"},"IOutput":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/definitions/IField"},"type":"array"}},"required":["fields"],"type":"object"},"IProject":{"additionalProperties":false,"properties":{"transformations":{"items":{"$ref":"#/definitions/ProjectTransformationType"},"type":"array"},"type":{"const":"project","type":"string"}},"required":["transformations","type"],"type":"object"},"IProperties":{"type":"object"},"IRequestField":{"additionalProperties":false,"properties":{"localFieldID":{"type":"string"},"remoteFieldID":{"type":"string"},"source":{"type":"string"},"value":{"type":"string"}},"required":["localFieldID","source","remoteFieldID","value"],"type":"object"},"IRestService":{"additionalProperties":false,"properties":{"action":{"type":"string"},"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"mode":{"enum":["get","post"],"type":"string"},"outputs":{"$ref":"#/definitions/OutputDict"},"type":{"const":"rest","type":"string"},"url":{"type":"string"}},"required":["action","id","inputs","outputs","type","url"],"type":"object"},"IRoxieService":{"additionalProperties":false,"properties":{"id":{"type":"string"},"inputs":{"items":{"$ref":"#/definitions/IField"},"type":"array"},"outputs":{"$ref":"#/definitions/OutputDict"},"queryID":{"type":"string"},"querySet":{"type":"string"},"type":{"const":"roxie","type":"string"},"url":{"type":"string"}},"required":["id","inputs","outputs","queryID","querySet","type","url"],"type":"object"},"IRoxieServiceRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"output":{"type":"string"},"request":{"items":{"$ref":"#/definitions/IRequestField"},"type":"array"}},"required":["id","output","request"],"type":"object"},"IScale":{"additionalProperties":false,"properties":{"factor":{"type":"number"},"fieldID":{"type":"string"},"sourceFieldID":{"type":"string"},"type":{"const":"scale","type":"string"}},"required":["fieldID","type","sourceFieldID","factor"],"type":"object"},"ISort":{"additionalProperties":false,"properties":{"conditions":{"items":{"$ref":"#/definitions/ISortCondition"},"type":"array"},"type":{"const":"sort","type":"string"}},"required":["conditions","type"],"type":"object"},"ISortCondition":{"additionalProperties":false,"properties":{"descending":{"type":"boolean"},"fieldID":{"type":"string"}},"required":["fieldID","descending"],"type":"object"},"ITemplate":{"additionalProperties":false,"properties":{"fieldID":{"type":"string"},"template":{"type":"string"},"type":{"const":"template","type":"string"}},"required":["fieldID","type","template"],"type":"object"},"IView":{"additionalProperties":false,"properties":{"activities":{"items":{"$ref":"#/definitions/ActivityType"},"type":"array"},"datasource":{"$ref":"#/definitions/IDatasourceRef"},"id":{"type":"string"},"visualization":{"$ref":"#/definitions/IVisualization"}},"required":["id","datasource","activities","visualization"],"type":"object"},"IVisualization":{"additionalProperties":false,"properties":{"__class":{"type":"string"},"chartType":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"mappings":{"$ref":"#/definitions/IMappings"},"properties":{"$ref":"#/definitions/IWidgetProperties"},"secondaryDataviewID":{"type":"string"},"title":{"type":"string"},"visibility":{"$ref":"#/definitions/VisibilityType"}},"required":["__class","chartType","id","mappings","properties","title","visibility"],"type":"object"},"IWUResult":{"additionalProperties":false,"properties":{"id":{"type":"string"},"outputs":{"$ref":"#/definitions/OutputDict"},"type":{"const":"wuresult","type":"string"},"url":{"type":"string"},"wuid":{"type":"string"}},"required":["id","outputs","type","url","wuid"],"type":"object"},"IWUResultRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"output":{"type":"string"}},"required":["id","output"],"type":"object"},"IWidgetProperties":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"number"},{"type":"boolean"},{"not":{}},{"$ref":"#/definitions/IWidgetProperties"},{"items":{"$ref":"#/definitions/IWidgetProperties"},"type":"array"}]},"properties":{"__class":{"type":"string"}},"required":["__class"],"type":"object"},"MultiTransformationType":{"anyOf":[{"$ref":"#/definitions/IEquals"},{"$ref":"#/definitions/ICalculated"},{"$ref":"#/definitions/IScale"},{"$ref":"#/definitions/ITemplate"},{"$ref":"#/definitions/IMap"}]},"Number64":{"type":"string"},"OutputDict":{"additionalProperties":{"$ref":"#/definitions/IOutput"},"type":"object"},"ProjectTransformationType":{"anyOf":[{"$ref":"#/definitions/MultiTransformationType"},{"$ref":"#/definitions/IMulti"}]},"Range":{"items":{"type":["number","string"]},"maxItems":2,"minItems":2,"type":"array"},"Schema":{"additionalProperties":false,"properties":{"createdBy":{"additionalProperties":false,"properties":{"name":{"type":"string"},"version":{"type":"string"}},"required":["name","version"],"type":"object"},"datasources":{"items":{"$ref":"#/definitions/DatasourceType"},"type":"array"},"dataviews":{"items":{"$ref":"#/definitions/IView"},"type":"array"},"defs":{"additionalProperties":false,"properties":{"activityTypes":{"additionalProperties":false,"properties":{"filter":{"$ref":"#/definitions/IFilter"},"groupby":{"$ref":"#/definitions/IGroupBy"},"limit":{"$ref":"#/definitions/ILimit"},"mappings":{"$ref":"#/definitions/IMappings"},"project":{"$ref":"#/definitions/IProject"},"sort":{"$ref":"#/definitions/ISort"}},"required":["filter","project","groupby","sort","limit","mappings"],"type":"object"},"aggregateTypes":{"additionalProperties":false,"properties":{"aggregate":{"$ref":"#/definitions/IAggregate"},"count":{"$ref":"#/definitions/ICount"}},"required":["aggregate","count"],"type":"object"},"datasourceRefTypes":{"additionalProperties":false,"properties":{"roxieServiceRef":{"$ref":"#/definitions/IRoxieServiceRef"},"wuResultRef":{"$ref":"#/definitions/IWUResultRef"}},"required":["wuResultRef","roxieServiceRef"],"type":"object"},"datasourceTypes":{"additionalProperties":false,"properties":{"databomb":{"$ref":"#/definitions/IDatabomb"},"datasource":{"$ref":"#/definitions/IDatasource"},"form":{"$ref":"#/definitions/IForm"},"hipieService":{"$ref":"#/definitions/IHipieService"},"logicalFile":{"$ref":"#/definitions/ILogicalFile"},"roxieService":{"$ref":"#/definitions/IRoxieService"},"wuresult":{"$ref":"#/definitions/IWUResult"}},"required":["datasource","logicalFile","form","databomb","wuresult","hipieService","roxieService"],"type":"object"},"fieldTypes":{"additionalProperties":false,"properties":{"dataset":{"$ref":"#/definitions/Dataset"},"field":{"$ref":"#/definitions/IField"},"fieldBoolean":{"$ref":"#/definitions/IFieldBoolean"},"fieldDataset":{"$ref":"#/definitions/IFieldDataset"},"fieldNumber":{"$ref":"#/definitions/IFieldNumber"},"fieldNumber64":{"$ref":"#/definitions/IFieldNumber64"},"fieldObject":{"$ref":"#/definitions/IFieldObject"},"fieldRange":{"$ref":"#/definitions/IFieldRange"},"fieldSet":{"$ref":"#/definitions/IFieldSet"},"fieldString":{"$ref":"#/definitions/IFieldString"},"fieldType":{"$ref":"#/definitions/IFieldType"},"number64":{"$ref":"#/definitions/Number64"},"range":{"$ref":"#/definitions/Range"}},"required":["number64","range","dataset","fieldType","fieldBoolean","fieldNumber","fieldNumber64","fieldString","fieldRange","fieldDataset","fieldSet","fieldObject","field"],"type":"object"},"transformationTypes":{"additionalProperties":false,"properties":{"calculated":{"$ref":"#/definitions/ICalculated"},"equals":{"$ref":"#/definitions/IEquals"},"map":{"$ref":"#/definitions/IMap"},"multi":{"$ref":"#/definitions/IMulti"},"scale":{"$ref":"#/definitions/IScale"},"template":{"$ref":"#/definitions/ITemplate"}},"required":["equals","calculated","scale","template","map","multi"],"type":"object"}},"required":["fieldTypes","datasourceTypes","datasourceRefTypes","activityTypes","aggregateTypes","transformationTypes"],"type":"object"},"hipieProperties":{"$ref":"#/definitions/IProperties"},"properties":{"$ref":"#/definitions/IProperties"},"version":{"const":"2.2.1","type":"string"}},"required":["version","createdBy","datasources","dataviews"],"type":"object"},"VisibilityType":{"enum":["normal","flyout"],"type":"string"}}')},G=t.default||t,W=E,H={allErrors:!1,verbose:!0,jsonPointers:!1};function N(e,i){const t=new G(H).compile(i);return{success:t(e),errors:t.errors}}function k(e){return N(e,E)}function X(e){return void 0!==e.version&&void 0!==e.datasources&&void 0!==e.dataviews}i(N,"doValidate"),i(k,"validate2"),i(X,"isDDL2Schema");export{o as BUILD_VERSION,_ as DDL1,S as DDL2,r as PKG_NAME,s as PKG_VERSION,W as ddl2Schema,X as isDDL2Schema,B as upgrade,k as validate2};
1064
2
  //# sourceMappingURL=index.js.map