@splunk/visualizations 26.0.0 → 26.1.1

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 (152) hide show
  1. package/Area.config.js +103 -19
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +646 -243
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +105 -21
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +653 -237
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +95 -21
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +635 -229
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +66 -15
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +589 -211
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +104 -19
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +666 -239
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +83 -18
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +444 -156
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +101 -19
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +792 -322
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +97 -28
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +786 -390
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +63 -19
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +439 -164
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +107 -23
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +841 -456
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +73 -23
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +653 -230
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +1082 -0
  46. package/Map.config.js +244 -99
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +1223 -612
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +71 -21
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +477 -202
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +80 -22
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +819 -418
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +73 -19
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +870 -491
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +76 -23
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +643 -233
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +82 -30
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +863 -387
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +86 -20
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +449 -159
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +85 -23
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +895 -349
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +97 -23
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +639 -234
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +95 -25
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +1198 -656
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +287 -226
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +93 -23
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +991 -522
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +100 -27
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1185 -624
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +127 -68
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +74 -21
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +827 -329
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +152 -69
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +25 -14
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/DocExampleWithVizSandbox.js +530 -0
  107. package/common/DocExampleWithVizSandbox.js.map +1 -0
  108. package/common/EventsDoc.js +139 -104
  109. package/common/EventsDoc.js.map +1 -1
  110. package/common/GaugeMajorTicks.js +79 -69
  111. package/common/GaugeMajorTicks.js.map +1 -1
  112. package/common/GaugeValueMarker.js +54 -45
  113. package/common/GaugeValueMarker.js.map +1 -1
  114. package/common/OptionsDoc.js +178 -87
  115. package/common/OptionsDoc.js.map +1 -1
  116. package/common/OverviewDoc.js +530 -68
  117. package/common/OverviewDoc.js.map +1 -1
  118. package/common/SplunkVisualization.js +47 -20
  119. package/common/SplunkVisualization.js.map +1 -1
  120. package/common/SplunkVisualizationApi.js +15 -9
  121. package/common/SplunkVisualizationApi.js.map +1 -1
  122. package/common/ThemesDoc.js +57 -44
  123. package/common/ThemesDoc.js.map +1 -1
  124. package/common/chartingUtils.js +52 -20
  125. package/common/chartingUtils.js.map +1 -1
  126. package/common/docUtils.js +139 -7
  127. package/common/docUtils.js.map +1 -1
  128. package/common/gaugeUtils.js +185 -102
  129. package/common/gaugeUtils.js.map +1 -1
  130. package/common/shapeUtils.js +28 -16
  131. package/common/shapeUtils.js.map +1 -1
  132. package/common/utils/configUtils.js +50 -15
  133. package/common/utils/configUtils.js.map +1 -1
  134. package/common/utils/dataUtils.js +8 -3
  135. package/common/utils/dataUtils.js.map +1 -1
  136. package/common/utils/hocUtils.js +4 -2
  137. package/common/utils/hocUtils.js.map +1 -1
  138. package/common/utils/layoutUtils.js +2 -1
  139. package/common/utils/layoutUtils.js.map +1 -1
  140. package/common/utils/mapUtils.js +288 -128
  141. package/common/utils/mapUtils.js.map +1 -1
  142. package/common/utils/singleValueUtils.js +242 -197
  143. package/common/utils/singleValueUtils.js.map +1 -1
  144. package/common/utils/testHelper.js +10 -1
  145. package/common/utils/testHelper.js.map +1 -1
  146. package/common/utils/trellisUtils.js +62 -1
  147. package/common/utils/trellisUtils.js.map +1 -1
  148. package/common/utils/urlUtils.js +3 -1
  149. package/common/utils/urlUtils.js.map +1 -1
  150. package/common/withDashboardViz.js +389 -192
  151. package/common/withDashboardViz.js.map +1 -1
  152. package/package.json +18 -26
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2018 Splunk Inc.
2
+ * Copyright © 2024 Splunk Inc.
3
3
  * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
4
  * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
5
  */
@@ -113,12 +113,16 @@ module.exports = require("@babel/runtime/helpers/toConsumableArray");
113
113
 
114
114
 
115
115
  var _toConsumableArray = __webpack_require__(2);
116
+
116
117
  Object.defineProperty(exports, "__esModule", {
117
118
  value: true
118
119
  });
119
120
  exports.getTrellisDataSourcesBySplitMode = exports.dataSourcesSplitByModeStatsorUnknown = exports.dataSourcesSplitByModeChart = exports.dataSourcesSplitByModeTimechart = exports.dataSourcesSplitByAggregationsStats = exports.dataSourcesSplitByAggregationsTimechartAndChart = exports.dataSourcesSplitByAggregationsUnknown = exports.AGGREGATIONS = void 0;
121
+
120
122
  var lodash_1 = __webpack_require__(0);
123
+
121
124
  var trellisUtils_1 = __webpack_require__(39);
125
+
122
126
  exports.AGGREGATIONS = 'aggregations';
123
127
  /**
124
128
  * There can be certain SPL cmds that can produce dataSource without a specific field meta info (like group_by_rank, split_by_field etc),
@@ -128,16 +132,21 @@ exports.AGGREGATIONS = 'aggregations';
128
132
  * Example3:- `index = "_internal" | stats count`
129
133
  * Example4:- `index=_internal | stats avg(count), max(count)`
130
134
  */
135
+
131
136
  var dataSourcesSplitByAggregationsUnknown = function dataSourcesSplitByAggregationsUnknown(dataSource) {
132
137
  var _a, _b, _c, _d;
138
+
133
139
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
134
140
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
135
141
  var splitDataSources = null;
136
142
  var errorCode = null;
143
+
137
144
  if (fields && fields.length) {
138
145
  splitDataSources = {};
146
+
139
147
  for (var i = 0; i < fields.length; i += 1) {
140
148
  var fieldName = fields[i].name;
149
+
141
150
  if (!(fieldName === null || fieldName === void 0 ? void 0 : fieldName.startsWith('_'))) {
142
151
  splitDataSources[fieldName] = (0, lodash_1.cloneDeep)((0, lodash_1.omit)(dataSource, ['primary.data.fields', 'primary.data.columns']));
143
152
  splitDataSources[fieldName].primary.data.fields = [fields[i]];
@@ -147,22 +156,28 @@ var dataSourcesSplitByAggregationsUnknown = function dataSourcesSplitByAggregati
147
156
  } else {
148
157
  errorCode = 'INVALID_SPLIT_BY_FIELD';
149
158
  }
159
+
150
160
  return {
151
161
  splitDataSources: splitDataSources,
152
162
  errorCode: errorCode
153
163
  };
154
164
  };
165
+
155
166
  exports.dataSourcesSplitByAggregationsUnknown = dataSourcesSplitByAggregationsUnknown;
167
+
156
168
  var dataSourcesSplitByAggregationsTimechartAndChart = function dataSourcesSplitByAggregationsTimechartAndChart(dataSource) {
157
169
  var _a, _b, _c, _d;
170
+
158
171
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
159
172
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
160
173
  var splitDataSources = null;
161
174
  var splitByFields = [];
162
175
  var errorCode = null;
176
+
163
177
  if (typeof fields[0] !== 'string') {
164
178
  splitByFields = (0, trellisUtils_1.extractDataSourceAggregationKeysChart)(fields);
165
179
  }
180
+
166
181
  if (splitByFields && splitByFields.length > 0) {
167
182
  splitDataSources = {};
168
183
  splitByFields.forEach(function (splitByField) {
@@ -171,6 +186,7 @@ var dataSourcesSplitByAggregationsTimechartAndChart = function dataSourcesSplitB
171
186
  splitDataSources[splitByField].primary.data.columns = [columns[0]];
172
187
  fields.forEach(function (field, idx) {
173
188
  var fieldName = field === null || field === void 0 ? void 0 : field.name;
189
+
174
190
  if (fieldName !== '_time' && !(fieldName === null || fieldName === void 0 ? void 0 : fieldName.startsWith('_')) && field.data_source === splitByField) {
175
191
  splitDataSources[splitByField].primary.data.fields.push(field);
176
192
  splitDataSources[splitByField].primary.data.columns.push(columns[idx]);
@@ -182,8 +198,10 @@ var dataSourcesSplitByAggregationsTimechartAndChart = function dataSourcesSplitB
182
198
  // example1 :- index=_internal | timechart count
183
199
  // example2 :- index=_internal | timechart max(count) avg(count)
184
200
  splitDataSources = {};
201
+
185
202
  for (var i = 1; i < fields.length; i += 1) {
186
203
  var fieldName = fields[i].name;
204
+
187
205
  if (!(fieldName === null || fieldName === void 0 ? void 0 : fieldName.startsWith('_'))) {
188
206
  splitDataSources[fieldName] = (0, lodash_1.cloneDeep)((0, lodash_1.omit)(dataSource, ['primary.data.fields', 'primary.data.columns']));
189
207
  splitDataSources[fieldName].primary.data.fields = [fields[0], fields[i]];
@@ -193,22 +211,28 @@ var dataSourcesSplitByAggregationsTimechartAndChart = function dataSourcesSplitB
193
211
  } else {
194
212
  errorCode = 'INVALID_SPLIT_BY_FIELD';
195
213
  }
214
+
196
215
  return {
197
216
  splitDataSources: splitDataSources,
198
217
  errorCode: errorCode
199
218
  };
200
219
  };
220
+
201
221
  exports.dataSourcesSplitByAggregationsTimechartAndChart = dataSourcesSplitByAggregationsTimechartAndChart;
222
+
202
223
  var dataSourcesSplitByAggregationsStats = function dataSourcesSplitByAggregationsStats(dataSource) {
203
224
  var _a, _b, _c, _d;
225
+
204
226
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
205
227
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
206
228
  var splitDataSources = null;
207
229
  var splitByFields = [];
208
230
  var errorCode = null;
231
+
209
232
  if (typeof fields[0] !== 'string') {
210
233
  splitByFields = (0, trellisUtils_1.extractDataSourceAggregationKeysStats)(fields);
211
234
  }
235
+
212
236
  if (splitByFields && splitByFields.length > 0) {
213
237
  splitDataSources = {};
214
238
  splitByFields.forEach(function (splitByField) {
@@ -218,6 +242,7 @@ var dataSourcesSplitByAggregationsStats = function dataSourcesSplitByAggregation
218
242
  var idx = fields.findIndex(function (field) {
219
243
  return field.name === splitByField;
220
244
  });
245
+
221
246
  if (idx > 0) {
222
247
  splitDataSources[splitByField].primary.data.fields.push(fields[idx]);
223
248
  splitDataSources[splitByField].primary.data.columns.push(columns[idx]);
@@ -226,32 +251,40 @@ var dataSourcesSplitByAggregationsStats = function dataSourcesSplitByAggregation
226
251
  } else {
227
252
  errorCode = 'INVALID_SPLIT_BY_FIELD';
228
253
  }
254
+
229
255
  return {
230
256
  splitDataSources: splitDataSources,
231
257
  errorCode: errorCode
232
258
  };
233
259
  };
260
+
234
261
  exports.dataSourcesSplitByAggregationsStats = dataSourcesSplitByAggregationsStats;
262
+
235
263
  var dataSourcesSplitByModeTimechart = function dataSourcesSplitByModeTimechart(dataSource, splitBy) {
236
264
  var _a, _b, _c, _d, _e;
265
+
237
266
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
238
267
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
239
268
  var splitDataSources = null;
240
269
  var splitByFields = [];
241
270
  var errorCode = null;
271
+
242
272
  if (typeof fields[0] !== 'string') {
243
273
  splitByFields = (0, trellisUtils_1.extractSplitByFieldsChartFields)(fields);
244
274
  }
275
+
245
276
  if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
246
277
  splitDataSources = {};
247
278
  var dataSourceKeys = (0, trellisUtils_1.extractDataSourceAggregationKeysChart)(fields);
248
279
  var valueKeys = [];
280
+
249
281
  for (var i = 1; i < fields.length; i += 1) {
250
282
  // not including internal fields
251
283
  if (!((_e = fields[i].name) === null || _e === void 0 ? void 0 : _e.startsWith('_'))) {
252
284
  valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
253
285
  }
254
286
  }
287
+
255
288
  valueKeys.forEach(function (val) {
256
289
  splitDataSources[val] = (0, lodash_1.cloneDeep)((0, lodash_1.omit)(dataSource, ['primary.data.fields', 'primary.data.columns']));
257
290
  splitDataSources[val].primary.data.fields = [{
@@ -273,22 +306,28 @@ var dataSourcesSplitByModeTimechart = function dataSourcesSplitByModeTimechart(d
273
306
  } else {
274
307
  errorCode = 'INVALID_SPLIT_BY_FIELD';
275
308
  }
309
+
276
310
  return {
277
311
  splitDataSources: splitDataSources,
278
312
  errorCode: errorCode
279
313
  };
280
314
  };
315
+
281
316
  exports.dataSourcesSplitByModeTimechart = dataSourcesSplitByModeTimechart;
317
+
282
318
  var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSource, splitBy) {
283
319
  var _a, _b, _c, _d;
320
+
284
321
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
285
322
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
286
323
  var splitDataSources = null;
287
324
  var splitByFields = [];
288
325
  var errorCode = null;
326
+
289
327
  if (typeof fields[0] !== 'string') {
290
328
  splitByFields = (0, trellisUtils_1.extractSplitByFieldsChartFields)(fields);
291
329
  }
330
+
292
331
  if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
293
332
  splitDataSources = {};
294
333
  var splitByFieldIdx = splitByFields.findIndex(function (f) {
@@ -299,6 +338,7 @@ var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSourc
299
338
  });
300
339
  var dataSourceKeys = (0, trellisUtils_1.extractDataSourceAggregationKeysChart)(fields);
301
340
  var nonDataSourceAggregations = [];
341
+
302
342
  if (!dataSourceKeys.length && fields[0].groupby_rank === '0' && fields.length && !fields[1].groupby_rank) {
303
343
  /* check for another aggregation scenario where no key 'data_source' will be returned (applies for both chart and stats cmd)
304
344
  For example :-
@@ -323,12 +363,14 @@ var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSourc
323
363
  nonDataSourceAggregations.push(fields[i].name);
324
364
  }
325
365
  }
366
+
326
367
  if (splitByFieldIdx === 0) {
327
368
  // if splitBy is the first field, split row wise
328
369
  var valueKeys = (0, lodash_1.cloneDeep)(columns[0]);
329
370
  valueKeys.forEach(function (val, idx) {
330
371
  splitDataSources[val] = (0, lodash_1.cloneDeep)((0, lodash_1.omit)(dataSource, ['primary.data.fields', 'primary.data.columns']));
331
372
  splitDataSources[val].primary.data.fields = [];
373
+
332
374
  if (otherSplitBy.length) {
333
375
  splitDataSources[val].primary.data.fields = [{
334
376
  name: otherSplitBy[0]
@@ -400,16 +442,20 @@ var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSourc
400
442
  columnValues[1] = ['1','10','100']
401
443
  columnValues[2] = ['5', '50', '500']
402
444
  */
445
+
403
446
  var _loop = function _loop(_i) {
404
447
  columnValues[0].push(fields[_i].splitby_value ? fields[_i].splitby_value : fields[_i].name);
405
448
  dataSourceKeys.forEach(function (dskey, dsIndx) {
406
449
  var mul = (fields.length - 1) / dataSourceKeys.length; // This line does the index calculation
450
+
407
451
  columnValues[dsIndx + 1].push(columns[_i + dsIndx * mul][idx]);
408
452
  });
409
453
  };
454
+
410
455
  for (var _i = 1; _i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); _i += 1) {
411
456
  _loop(_i);
412
457
  }
458
+
413
459
  splitDataSources[val].primary.data.columns = columnValues;
414
460
  })();
415
461
  } else if (nonDataSourceAggregations.length) {
@@ -431,9 +477,11 @@ var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSourc
431
477
  } else {
432
478
  // split column wise
433
479
  var _valueKeys = [];
480
+
434
481
  for (var _i2 = 1; _i2 < fields.length; _i2 += 1) {
435
482
  _valueKeys.push(fields[_i2].splitby_value ? fields[_i2].splitby_value : fields[_i2].name);
436
483
  }
484
+
437
485
  _valueKeys.forEach(function (val) {
438
486
  splitDataSources[val] = (0, lodash_1.cloneDeep)((0, lodash_1.omit)(dataSource, ['primary.data.fields', 'primary.data.columns']));
439
487
  splitDataSources[val].primary.data.fields = [{
@@ -456,29 +504,36 @@ var dataSourcesSplitByModeChart = function dataSourcesSplitByModeChart(dataSourc
456
504
  } else {
457
505
  errorCode = 'INVALID_SPLIT_BY_FIELD';
458
506
  }
507
+
459
508
  return {
460
509
  splitDataSources: splitDataSources,
461
510
  errorCode: errorCode
462
511
  };
463
512
  };
513
+
464
514
  exports.dataSourcesSplitByModeChart = dataSourcesSplitByModeChart;
465
515
  /**
466
516
  * This method does datasplitting for 'stats' and generic cmds('makeresults','table' etc - categoried as 'unknown' splitMode).
467
517
  * The main difference is for 'stats' cmd possible splitBy fields have 'group_by_rank' in field meta info, whereas for 'unknown' cmd it can be any fieldnames
468
518
  */
519
+
469
520
  var dataSourcesSplitByModeStatsorUnknown = function dataSourcesSplitByModeStatsorUnknown(dataSource, splitBy, splitMode) {
470
521
  var _a, _b, _c, _d, _e, _f;
522
+
471
523
  var fields = (_b = (_a = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.fields;
472
524
  var columns = (_d = (_c = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.columns;
473
525
  var splitDataSources = null;
474
526
  var splitByFields = [];
475
527
  var errorCode = null;
528
+
476
529
  if (typeof fields[0] !== 'string') {
477
530
  splitByFields = splitMode !== trellisUtils_1.UNKNOWN ? (0, trellisUtils_1.extractSplitByFieldsForStats)(fields) : (0, trellisUtils_1.extractSplitByFieldsForUnknown)(fields);
478
531
  }
532
+
479
533
  var splitByIndex = fields === null || fields === void 0 ? void 0 : fields.findIndex(function (field) {
480
534
  return field === splitBy || field.name === splitBy;
481
535
  });
536
+
482
537
  if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
483
538
  var splitByColumn = (_f = (_e = dataSource === null || dataSource === void 0 ? void 0 : dataSource.primary) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.columns[splitByIndex];
484
539
  splitDataSources = {};
@@ -509,14 +564,18 @@ var dataSourcesSplitByModeStatsorUnknown = function dataSourcesSplitByModeStatso
509
564
  } else {
510
565
  errorCode = 'INVALID_SPLIT_BY_FIELD';
511
566
  }
567
+
512
568
  return {
513
569
  splitDataSources: splitDataSources,
514
570
  errorCode: errorCode
515
571
  };
516
572
  };
573
+
517
574
  exports.dataSourcesSplitByModeStatsorUnknown = dataSourcesSplitByModeStatsorUnknown;
575
+
518
576
  var getTrellisDataSourcesBySplitMode = function getTrellisDataSourcesBySplitMode(splitMode, dataSources, trellisSplitBy) {
519
577
  var result = null;
578
+
520
579
  try {
521
580
  if (splitMode === trellisUtils_1.TIMECHART) {
522
581
  result = trellisSplitBy === exports.AGGREGATIONS ? (0, exports.dataSourcesSplitByAggregationsTimechartAndChart)(dataSources) : (0, exports.dataSourcesSplitByModeTimechart)(dataSources, trellisSplitBy);
@@ -534,8 +593,10 @@ var getTrellisDataSourcesBySplitMode = function getTrellisDataSourcesBySplitMode
534
593
  errorCode: 'UNKNOWN'
535
594
  };
536
595
  }
596
+
537
597
  return result;
538
598
  };
599
+
539
600
  exports.getTrellisDataSourcesBySplitMode = getTrellisDataSourcesBySplitMode;
540
601
 
541
602
  /***/ }),
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///./src/common/utils/trellisUtils.ts","webpack:///external \"@splunk/visualizations-shared/trellisUtils\""],"names":["lodash_1","require","trellisUtils_1","exports","AGGREGATIONS","dataSourcesSplitByAggregationsUnknown","dataSource","fields","_b","_a","primary","data","columns","_d","_c","splitDataSources","errorCode","length","i","fieldName","name","startsWith","cloneDeep","omit","dataSourcesSplitByAggregationsTimechartAndChart","splitByFields","extractDataSourceAggregationKeysChart","forEach","splitByField","field","idx","data_source","push","dataSourcesSplitByAggregationsStats","extractDataSourceAggregationKeysStats","findIndex","dataSourcesSplitByModeTimechart","splitBy","extractSplitByFieldsChartFields","indexOf","dataSourceKeys","valueKeys","_e","splitby_value","val","concat","_toConsumableArray","map","k","dsKey","dataSourcesSplitByModeChart","splitByFieldIdx","f","otherSplitBy","filter","nonDataSourceAggregations","groupby_rank","columnValues","_loop","dskey","dsIndx","mul","Math","ceil","aggregationField","fieldIdx","dataSourcesSplitByModeStatsorUnknown","splitMode","UNKNOWN","extractSplitByFieldsForStats","extractSplitByFieldsForUnknown","splitByIndex","splitByColumn","_f","cloneFields","splice","Object","keys","valIndices","col","newCol","valIdx","getTrellisDataSourcesBySplitMode","dataSources","trellisSplitBy","result","TIMECHART","STATS","CHART","ex","console","error"],"mappings":"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","file":"trellisUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","import { cloneDeep, omit } from 'lodash';\nimport { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport {\n DataSplitMode,\n CHART,\n TIMECHART,\n STATS,\n UNKNOWN,\n extractDataSourceAggregationKeysChart,\n extractDataSourceAggregationKeysStats,\n extractSplitByFieldsChartFields,\n extractSplitByFieldsForStats,\n extractSplitByFieldsForUnknown,\n} from '@splunk/visualizations-shared/trellisUtils';\nimport { DataSource } from '../interfaces/DataSource';\n\nexport type SplitDataSource = { [key: string]: { [name: string]: DataSource } };\nexport interface DataSplitResult {\n splitDataSources: SplitDataSource;\n errorCode: 'UNKNOWN_DATA_SPLIT_MODE' | 'INVALID_SPLIT_BY_FIELD' | 'UNKNOWN';\n}\nexport const AGGREGATIONS = 'aggregations';\n\n/**\n * There can be certain SPL cmds that can produce dataSource without a specific field meta info (like group_by_rank, split_by_field etc),\n * to categorize it,\n * Example1:- `index = \"_internal\" | chart count`\n * Example2:- `index=_internal | chart avg(count), max(count)`\n * Example3:- `index = \"_internal\" | stats count`\n * Example4:- `index=_internal | stats avg(count), max(count)`\n */\nexport const dataSourcesSplitByAggregationsUnknown = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let errorCode = null;\n\n if (fields && fields.length) {\n splitDataSources = {};\n for (let i = 0; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByAggregationsTimechartAndChart = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysChart(fields as FieldEntry[]);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n fields.forEach((field: FieldEntry, idx) => {\n const fieldName = field?.name;\n if (\n fieldName !== '_time' &&\n !fieldName?.startsWith('_') &&\n field.data_source === splitByField\n ) {\n splitDataSources[splitByField].primary.data.fields.push(field);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n });\n } else if ((!splitByFields || !splitByFields.length) && fields.length > 1) {\n // handle where data_source doesnot exist in fields\n // example1 :- index=_internal | timechart count\n // example2 :- index=_internal | timechart max(count) avg(count)\n splitDataSources = {};\n for (let i = 1; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[0], fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[0], columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByAggregationsStats = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysStats(fields as FieldEntry[]);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n const idx = fields.findIndex(field => field.name === splitByField);\n if (idx > 0) {\n splitDataSources[splitByField].primary.data.fields.push(fields[idx]);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeTimechart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields as FieldEntry[]);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n // not including internal fields\n if (!fields[i].name?.startsWith('_')) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: fields[0].name },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeChart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const splitByFieldIdx = splitByFields.findIndex(f => f === splitBy);\n const otherSplitBy = splitByFields.filter(f => f !== splitBy);\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const nonDataSourceAggregations = [];\n if (\n !dataSourceKeys.length &&\n fields[0].groupby_rank === '0' &&\n fields.length &&\n !fields[1].groupby_rank\n ) {\n /* check for another aggregation scenario where no key 'data_source' will be returned (applies for both chart and stats cmd)\n For example :-\n index=_internal | chart count by status\n index = \"_internal\" | chart max(count) avg(count) by status\n index = \"_internal\" | stats max(count) avg(count) by status\n where field meta info is in this format - \n \"fields\": [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"max(count)\"\n },\n {\n \"name\": \"avg(count)\"\n }\n ]\n */\n\n for (let i = 1; i < fields.length; i += 1) {\n nonDataSourceAggregations.push(fields[i].name);\n }\n }\n if (splitByFieldIdx === 0) {\n // if splitBy is the first field, split row wise\n const valueKeys = cloneDeep(columns[0]);\n valueKeys.forEach((val, idx) => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [];\n if (otherSplitBy.length) {\n splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }]; // there can only be one otherSplitBy for chart cmd\n }\n if (dataSourceKeys.length) {\n const columnValues = [[]];\n splitDataSources[val].primary.data.fields = [\n ...splitDataSources[val].primary.data.fields,\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n dataSourceKeys.forEach(() => {\n columnValues.push([]);\n });\n /**\n * There can be chart SPL cmd where there are multiple data_source keys in the field meta info. \n * For eg - index = \"_internal\" | chart avg(count) max(count) by status , user) can result in fields and columns as below where \"data_source\" keys are \"avg(count)\" and \"max(count)\"\n * 'fields' : [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"avg(count): userA\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"avg(count): userB\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"avg(count): userC\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n {\n \"name\": \"max(count): userA\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"max(count): userB\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"max(count): userC\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n ]\n 'columns' : [['200','303','304','400'], ['1','2','3','4'], ['10','20','30','40'], ['100','200','300','400'], ['5','6','7','8'], ['50','60','70','80'],['500','600','700','800']]\n\n In this case when we split row wise, the data_source keys for userA appears in indices [1, 4, ..], the data_source keys for userB appears in indices [2, 5, ..]\n The resulting dataSplit for status '200', will have the fields => ['user','avg(count)', 'max(count)'] columns => [['userA', 'userB', 'userC'],['1','10','100'], ['5', '50', '500'] ]\n\n For the example above for..loop below will iterate from i= 1 to 3 (Math.ceil((fields.length - 1) / dataSourceKeys.length)). Exclude i = 0 as first column is the splitBy input.\n Since there are 2 data_source keys 'avg(count)' and 'max(count)', dataSourceKeys.forEach loop will collect individual arrays specific to the columnValues[indx] as below. \n columnValues[0] = ['userA', 'userB', 'userC']\n columnValues[1] = ['1','10','100']\n columnValues[2] = ['5', '50', '500']\n */\n for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {\n columnValues[0].push(\n fields[i].splitby_value ? fields[i].splitby_value : fields[i].name\n );\n dataSourceKeys.forEach((dskey, dsIndx) => {\n const mul = (fields.length - 1) / dataSourceKeys.length; // This line does the index calculation\n columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);\n });\n }\n splitDataSources[val].primary.data.columns = columnValues;\n } else if (nonDataSourceAggregations.length) {\n // There can be SPL where data_source field metainfo is not available and needs special handling\n // For eg :-\n // index=_internal | chart count by status\n // index = \"_internal\" | chart max(count) avg(count) by status\n // index = \"_internal\" | stats max(count) avg(count) by status\n const columnValues = [];\n fields.forEach((aggregationField, fieldIdx) => {\n if (fieldIdx > 0) {\n splitDataSources[val].primary.data.fields.push(aggregationField);\n columnValues.push([columns[fieldIdx][idx]]);\n }\n });\n splitDataSources[val].primary.data.columns = columnValues;\n }\n });\n } else {\n // split column wise\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: otherSplitBy[0] },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (\n field.data_source === dsKey &&\n (field.splitby_value === val || field.name === val)\n ) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\n/**\n * This method does datasplitting for 'stats' and generic cmds('makeresults','table' etc - categoried as 'unknown' splitMode).\n * The main difference is for 'stats' cmd possible splitBy fields have 'group_by_rank' in field meta info, whereas for 'unknown' cmd it can be any fieldnames\n */\nexport const dataSourcesSplitByModeStatsorUnknown = (\n dataSource: { [name: string]: DataSource },\n splitBy: string,\n splitMode?: DataSplitMode\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields =\n splitMode !== UNKNOWN\n ? extractSplitByFieldsForStats(fields as FieldEntry[])\n : extractSplitByFieldsForUnknown(fields as FieldEntry[]);\n }\n const splitByIndex = fields?.findIndex(\n field => field === splitBy || (field as FieldEntry).name === splitBy\n );\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n const splitByColumn = dataSource?.primary?.data?.columns[splitByIndex];\n splitDataSources = {};\n splitByColumn.forEach((val, idx) => {\n if (!splitDataSources[val]) {\n splitDataSources[val] = [idx];\n } else {\n splitDataSources[val].push(idx);\n }\n });\n const cloneFields = cloneDeep(fields);\n cloneFields.splice(splitByIndex, 1);\n const valueKeys = Object.keys(splitDataSources);\n valueKeys.forEach(val => {\n const valIndices = cloneDeep(splitDataSources[val]);\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = cloneFields;\n splitDataSources[val].primary.data.columns = [];\n columns.forEach((col, idx) => {\n if (idx !== splitByIndex) {\n const newCol = valIndices.map(valIdx => col[valIdx]);\n splitDataSources[val].primary.data.columns.push(newCol);\n }\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const getTrellisDataSourcesBySplitMode = (\n splitMode: DataSplitMode,\n dataSources: { [name: string]: DataSource },\n trellisSplitBy: string\n): DataSplitResult => {\n let result: DataSplitResult = null;\n try {\n if (splitMode === TIMECHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeTimechart(dataSources, trellisSplitBy);\n } else if (splitMode === STATS) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsStats(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, STATS);\n } else if (splitMode === CHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeChart(dataSources, trellisSplitBy);\n } else if (splitMode === UNKNOWN) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsUnknown(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, UNKNOWN);\n }\n } catch (ex) {\n console.error('getTrellisDataSourcesBySplitMode ', ex);\n result = { splitDataSources: null, errorCode: 'UNKNOWN' };\n }\n return result;\n};\n","module.exports = require(\"@splunk/visualizations-shared/trellisUtils\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///./src/common/utils/trellisUtils.ts","webpack:///external \"@splunk/visualizations-shared/trellisUtils\""],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,mC;;;;;;;ACAA,qE;;;;;;;;;;;;;;;;;ACAA;;AAEA;;AAmBa,uBAAe,cAAf;AAEb;;;;;;;AAOG;;AACI,IAAM,qCAAqC,GAAG,SAAxC,qCAAwC,CAAC,UAAD,EAE/B;;;AAClB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,SAAS,GAAG,IAAhB;;AAEA,MAAI,MAAM,IAAI,MAAM,CAAC,MAArB,EAA6B;AACzB,oBAAgB,GAAG,EAAnB;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,MAAM,CAAC,MAA3B,EAAmC,CAAC,IAAI,CAAxC,EAA2C;AACvC,UAAM,SAAS,GAAI,MAAM,CAAC,CAAD,CAAN,CAAyB,IAA5C;;AACA,UAAI,EAAC,SAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAE,UAAX,CAAsB,GAAtB,CAAD,CAAJ,EAAiC;AAC7B,wBAAgB,CAAC,SAAD,CAAhB,GAA8B,wBAC1B,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CAD0B,CAA9B;AAGA,wBAAgB,CAAC,SAAD,CAAhB,CAA4B,OAA5B,CAAoC,IAApC,CAAyC,MAAzC,GAAkD,CAAC,MAAM,CAAC,CAAD,CAAP,CAAlD;AACA,wBAAgB,CAAC,SAAD,CAAhB,CAA4B,OAA5B,CAAoC,IAApC,CAAyC,OAAzC,GAAmD,CAAC,OAAO,CAAC,CAAD,CAAR,CAAnD;AACH;AACJ;AACJ,GAZD,MAYO;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CAxBM;;AAAM,gDAAqC,qCAArC;;AA0BN,IAAM,+CAA+C,GAAG,SAAlD,+CAAkD,CAAC,UAAD,EAEzC;;;AAClB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,aAAa,GAAG,EAApB;AACA,MAAI,SAAS,GAAG,IAAhB;;AAEA,MAAI,OAAO,MAAM,CAAC,CAAD,CAAb,KAAqB,QAAzB,EAAmC;AAC/B,iBAAa,GAAG,0DAAsC,MAAtC,CAAhB;AACH;;AAED,MAAI,aAAa,IAAI,aAAa,CAAC,MAAd,GAAuB,CAA5C,EAA+C;AAC3C,oBAAgB,GAAG,EAAnB;AACA,iBAAa,CAAC,OAAd,CAAsB,sBAAY,EAAG;AACjC,sBAAgB,CAAC,YAAD,CAAhB,GAAiC,wBAC7B,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CAD6B,CAAjC;AAGA,sBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,MAA5C,GAAqD,CAAC,MAAM,CAAC,CAAD,CAAP,CAArD;AACA,sBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,OAA5C,GAAsD,CAAC,OAAO,CAAC,CAAD,CAAR,CAAtD;AACA,YAAM,CAAC,OAAP,CAAe,UAAC,KAAD,EAAoB,GAApB,EAA2B;AACtC,YAAM,SAAS,GAAG,KAAK,SAAL,SAAK,WAAL,GAAK,MAAL,QAAK,CAAE,IAAzB;;AACA,YACI,SAAS,KAAK,OAAd,IACA,EAAC,SAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAE,UAAX,CAAsB,GAAtB,CAAD,CADA,IAEA,KAAK,CAAC,WAAN,KAAsB,YAH1B,EAIE;AACE,0BAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,MAA5C,CAAmD,IAAnD,CAAwD,KAAxD;AACA,0BAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,OAA5C,CAAoD,IAApD,CAAyD,OAAO,CAAC,GAAD,CAAhE;AACH;AACJ,OAVD;AAWH,KAjBD;AAkBH,GApBD,MAoBO,IAAI,CAAC,CAAC,aAAD,IAAkB,CAAC,aAAa,CAAC,MAAlC,KAA6C,MAAM,CAAC,MAAP,GAAgB,CAAjE,EAAoE;AACvE;AACA;AACA;AACA,oBAAgB,GAAG,EAAnB;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,MAAM,CAAC,MAA3B,EAAmC,CAAC,IAAI,CAAxC,EAA2C;AACvC,UAAM,SAAS,GAAI,MAAM,CAAC,CAAD,CAAN,CAAyB,IAA5C;;AACA,UAAI,EAAC,SAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAE,UAAX,CAAsB,GAAtB,CAAD,CAAJ,EAAiC;AAC7B,wBAAgB,CAAC,SAAD,CAAhB,GAA8B,wBAC1B,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CAD0B,CAA9B;AAGA,wBAAgB,CAAC,SAAD,CAAhB,CAA4B,OAA5B,CAAoC,IAApC,CAAyC,MAAzC,GAAkD,CAAC,MAAM,CAAC,CAAD,CAAP,EAAY,MAAM,CAAC,CAAD,CAAlB,CAAlD;AACA,wBAAgB,CAAC,SAAD,CAAhB,CAA4B,OAA5B,CAAoC,IAApC,CAAyC,OAAzC,GAAmD,CAAC,OAAO,CAAC,CAAD,CAAR,EAAa,OAAO,CAAC,CAAD,CAApB,CAAnD;AACH;AACJ;AACJ,GAfM,MAeA;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CApDM;;AAAM,0DAA+C,+CAA/C;;AAsDN,IAAM,mCAAmC,GAAG,SAAtC,mCAAsC,CAAC,UAAD,EAE7B;;;AAClB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,aAAa,GAAG,EAApB;AACA,MAAI,SAAS,GAAG,IAAhB;;AACA,MAAI,OAAO,MAAM,CAAC,CAAD,CAAb,KAAqB,QAAzB,EAAmC;AAC/B,iBAAa,GAAG,0DAAsC,MAAtC,CAAhB;AACH;;AAED,MAAI,aAAa,IAAI,aAAa,CAAC,MAAd,GAAuB,CAA5C,EAA+C;AAC3C,oBAAgB,GAAG,EAAnB;AACA,iBAAa,CAAC,OAAd,CAAsB,sBAAY,EAAG;AACjC,sBAAgB,CAAC,YAAD,CAAhB,GAAiC,wBAC7B,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CAD6B,CAAjC;AAGA,sBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,MAA5C,GAAqD,CAAC,MAAM,CAAC,CAAD,CAAP,CAArD;AACA,sBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,OAA5C,GAAsD,CAAC,OAAO,CAAC,CAAD,CAAR,CAAtD;AACA,UAAM,GAAG,GAAG,MAAM,CAAC,SAAP,CAAiB,eAAK;AAAA,eAAI,KAAK,CAAC,IAAN,KAAe,YAAnB;AAAA,OAAtB,CAAZ;;AACA,UAAI,GAAG,GAAG,CAAV,EAAa;AACT,wBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,MAA5C,CAAmD,IAAnD,CAAwD,MAAM,CAAC,GAAD,CAA9D;AACA,wBAAgB,CAAC,YAAD,CAAhB,CAA+B,OAA/B,CAAuC,IAAvC,CAA4C,OAA5C,CAAoD,IAApD,CAAyD,OAAO,CAAC,GAAD,CAAhE;AACH;AACJ,KAXD;AAYH,GAdD,MAcO;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CA9BM;;AAAM,8CAAmC,mCAAnC;;AAgCN,IAAM,+BAA+B,GAAG,SAAlC,+BAAkC,CAC3C,UAD2C,EAE3C,OAF2C,EAG1B;;;AACjB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,aAAa,GAAG,EAApB;AACA,MAAI,SAAS,GAAG,IAAhB;;AACA,MAAI,OAAO,MAAM,CAAC,CAAD,CAAb,KAAqB,QAAzB,EAAmC;AAC/B,iBAAa,GAAG,oDAAgC,MAAhC,CAAhB;AACH;;AACD,MAAI,aAAa,IAAI,aAAa,CAAC,OAAd,CAAsB,OAAtB,IAAiC,CAAC,CAAvD,EAA0D;AACtD,oBAAgB,GAAG,EAAnB;AACA,QAAM,cAAc,GAAG,0DAAsC,MAAtC,CAAvB;AACA,QAAM,SAAS,GAAG,EAAlB;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,MAAM,CAAC,MAA3B,EAAmC,CAAC,IAAI,CAAxC,EAA2C;AACvC;AACA,UAAI,EAAC,YAAM,CAAC,CAAD,CAAN,CAAU,IAAV,MAAc,IAAd,IAAc,aAAd,GAAc,MAAd,GAAc,GAAE,UAAF,CAAa,GAAb,CAAf,CAAJ,EAAsC;AAClC,iBAAS,CAAC,IAAV,CAAe,MAAM,CAAC,CAAD,CAAN,CAAU,aAAV,GAA0B,MAAM,CAAC,CAAD,CAAN,CAAU,aAApC,GAAoD,MAAM,CAAC,CAAD,CAAN,CAAU,IAA7E;AACH;AACJ;;AACD,aAAS,CAAC,OAAV,CAAkB,aAAG,EAAG;AACpB,sBAAgB,CAAC,GAAD,CAAhB,GAAwB,wBACpB,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CADoB,CAAxB;AAGA,sBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,IACI;AAAE,YAAI,EAAE,MAAM,CAAC,CAAD,CAAN,CAAU;AAAlB,OADJ,4BAEO,cAAc,CAAC,GAAf,CAAmB,WAAC;AAAA,eAAK;AACxB,cAAI,EAAE;AADkB,SAAL;AAAA,OAApB,CAFP;AAMA,sBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,GAA6C,oBAAK,OAAO,CAAC,CAAD,CAAZ,EAA7C;AACA,oBAAc,CAAC,OAAf,CAAuB,eAAK,EAAG;AAC3B,cAAM,CAAC,OAAP,CAAe,UAAC,KAAD,EAAQ,GAAR,EAAe;AAC1B,cAAI,KAAK,CAAC,WAAN,KAAsB,KAAtB,KAAgC,KAAK,CAAC,aAAN,KAAwB,GAAxB,IAA+B,KAAK,CAAC,IAAN,KAAe,GAA9E,CAAJ,EAAwF;AACpF,4BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,CAA2C,IAA3C,oBAAoD,OAAO,CAAC,GAAD,CAA3D;AACH;AACJ,SAJD;AAKH,OAND;AAOH,KAlBD;AAmBH,GA7BD,MA6BO;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CA7CM;;AAAM,0CAA+B,+BAA/B;;AA+CN,IAAM,2BAA2B,GAAG,SAA9B,2BAA8B,CACvC,UADuC,EAEvC,OAFuC,EAGtB;;;AACjB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,aAAa,GAAG,EAApB;AACA,MAAI,SAAS,GAAG,IAAhB;;AACA,MAAI,OAAO,MAAM,CAAC,CAAD,CAAb,KAAqB,QAAzB,EAAmC;AAC/B,iBAAa,GAAG,oDAAgC,MAAhC,CAAhB;AACH;;AACD,MAAI,aAAa,IAAI,aAAa,CAAC,OAAd,CAAsB,OAAtB,IAAiC,CAAC,CAAvD,EAA0D;AACtD,oBAAgB,GAAG,EAAnB;AACA,QAAM,eAAe,GAAG,aAAa,CAAC,SAAd,CAAwB,WAAC;AAAA,aAAI,CAAC,KAAK,OAAV;AAAA,KAAzB,CAAxB;AACA,QAAM,YAAY,GAAG,aAAa,CAAC,MAAd,CAAqB,WAAC;AAAA,aAAI,CAAC,KAAK,OAAV;AAAA,KAAtB,CAArB;AACA,QAAM,cAAc,GAAG,0DAAsC,MAAtC,CAAvB;AACA,QAAM,yBAAyB,GAAG,EAAlC;;AACA,QACI,CAAC,cAAc,CAAC,MAAhB,IACA,MAAM,CAAC,CAAD,CAAN,CAAU,YAAV,KAA2B,GAD3B,IAEA,MAAM,CAAC,MAFP,IAGA,CAAC,MAAM,CAAC,CAAD,CAAN,CAAU,YAJf,EAKE;AACE;;;;;;;;;;;;;;;;;;AAkBG;AAEH,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,MAAM,CAAC,MAA3B,EAAmC,CAAC,IAAI,CAAxC,EAA2C;AACvC,iCAAyB,CAAC,IAA1B,CAA+B,MAAM,CAAC,CAAD,CAAN,CAAU,IAAzC;AACH;AACJ;;AACD,QAAI,eAAe,KAAK,CAAxB,EAA2B;AACvB;AACA,UAAM,SAAS,GAAG,wBAAU,OAAO,CAAC,CAAD,CAAjB,CAAlB;AACA,eAAS,CAAC,OAAV,CAAkB,UAAC,GAAD,EAAM,GAAN,EAAa;AAC3B,wBAAgB,CAAC,GAAD,CAAhB,GAAwB,wBACpB,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CADoB,CAAxB;AAGA,wBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,GAA4C,EAA5C;;AACA,YAAI,YAAY,CAAC,MAAjB,EAAyB;AACrB,0BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,GAA4C,CAAC;AAAE,gBAAI,EAAE,YAAY,CAAC,CAAD;AAApB,WAAD,CAA5C,CADqB,CACoD;AAC5E;;AACD,YAAI,cAAc,CAAC,MAAnB,EAA2B;AAAA;AACvB,gBAAM,YAAY,GAAG,CAAC,EAAD,CAArB;AACA,4BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,gCACO,gBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAD1C,sBAEO,cAAc,CAAC,GAAf,CAAmB,WAAC;AAAA,qBAAK;AACxB,oBAAI,EAAE;AADkB,eAAL;AAAA,aAApB,CAFP;AAMA,0BAAc,CAAC,OAAf,CAAuB,YAAK;AACxB,0BAAY,CAAC,IAAb,CAAkB,EAAlB;AACH,aAFD;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAXuB,uCAmEd,EAnEc;AAoEnB,0BAAY,CAAC,CAAD,CAAZ,CAAgB,IAAhB,CACI,MAAM,CAAC,EAAD,CAAN,CAAU,aAAV,GAA0B,MAAM,CAAC,EAAD,CAAN,CAAU,aAApC,GAAoD,MAAM,CAAC,EAAD,CAAN,CAAU,IADlE;AAGA,4BAAc,CAAC,OAAf,CAAuB,UAAC,KAAD,EAAQ,MAAR,EAAkB;AACrC,oBAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAP,GAAgB,CAAjB,IAAsB,cAAc,CAAC,MAAjD,CADqC,CACoB;;AACzD,4BAAY,CAAC,MAAM,GAAG,CAAV,CAAZ,CAAyB,IAAzB,CAA8B,OAAO,CAAC,EAAC,GAAG,MAAM,GAAG,GAAd,CAAP,CAA0B,GAA1B,CAA9B;AACH,eAHD;AAvEmB;;AAmEvB,iBAAK,IAAI,EAAC,GAAG,CAAb,EAAgB,EAAC,IAAI,IAAI,CAAC,IAAL,CAAU,CAAC,MAAM,CAAC,MAAP,GAAgB,CAAjB,IAAsB,cAAc,CAAC,MAA/C,CAArB,EAA6E,EAAC,IAAI,CAAlF,EAAqF;AAAA,oBAA5E,EAA4E;AAQpF;;AACD,4BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,GAA6C,YAA7C;AA5EuB;AA6E1B,SA7ED,MA6EO,IAAI,yBAAyB,CAAC,MAA9B,EAAsC;AACzC;AACA;AACA;AACA;AACA;AACA,cAAM,YAAY,GAAG,EAArB;AACA,gBAAM,CAAC,OAAP,CAAe,UAAC,gBAAD,EAAmB,QAAnB,EAA+B;AAC1C,gBAAI,QAAQ,GAAG,CAAf,EAAkB;AACd,8BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,CAA0C,IAA1C,CAA+C,gBAA/C;AACA,0BAAY,CAAC,IAAb,CAAkB,CAAC,OAAO,CAAC,QAAD,CAAP,CAAkB,GAAlB,CAAD,CAAlB;AACH;AACJ,WALD;AAMA,0BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,GAA6C,YAA7C;AACH;AACJ,OApGD;AAqGH,KAxGD,MAwGO;AACH;AACA,UAAM,UAAS,GAAG,EAAlB;;AACA,WAAK,IAAI,GAAC,GAAG,CAAb,EAAgB,GAAC,GAAG,MAAM,CAAC,MAA3B,EAAmC,GAAC,IAAI,CAAxC,EAA2C;AACvC,kBAAS,CAAC,IAAV,CAAe,MAAM,CAAC,GAAD,CAAN,CAAU,aAAV,GAA0B,MAAM,CAAC,GAAD,CAAN,CAAU,aAApC,GAAoD,MAAM,CAAC,GAAD,CAAN,CAAU,IAA7E;AACH;;AACD,gBAAS,CAAC,OAAV,CAAkB,aAAG,EAAG;AACpB,wBAAgB,CAAC,GAAD,CAAhB,GAAwB,wBACpB,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CADoB,CAAxB;AAGA,wBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,IACI;AAAE,cAAI,EAAE,YAAY,CAAC,CAAD;AAApB,SADJ,4BAEO,cAAc,CAAC,GAAf,CAAmB,WAAC;AAAA,iBAAK;AACxB,gBAAI,EAAE;AADkB,WAAL;AAAA,SAApB,CAFP;AAMA,wBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,GAA6C,oBAAK,OAAO,CAAC,CAAD,CAAZ,EAA7C;AACA,sBAAc,CAAC,OAAf,CAAuB,eAAK,EAAG;AAC3B,gBAAM,CAAC,OAAP,CAAe,UAAC,KAAD,EAAQ,GAAR,EAAe;AAC1B,gBACI,KAAK,CAAC,WAAN,KAAsB,KAAtB,KACC,KAAK,CAAC,aAAN,KAAwB,GAAxB,IAA+B,KAAK,CAAC,IAAN,KAAe,GAD/C,CADJ,EAGE;AACE,8BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,CAA2C,IAA3C,oBAAoD,OAAO,CAAC,GAAD,CAA3D;AACH;AACJ,WAPD;AAQH,SATD;AAUH,OArBD;AAsBH;AACJ,GAzKD,MAyKO;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CAzLM;;AAAM,sCAA2B,2BAA3B;AA2Lb;;;AAGG;;AACI,IAAM,oCAAoC,GAAG,SAAvC,oCAAuC,CAChD,UADgD,EAEhD,OAFgD,EAGhD,SAHgD,EAI/B;;;AACjB,MAAM,MAAM,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,MAA1C;AACA,MAAM,OAAO,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAA3C;AACA,MAAI,gBAAgB,GAAG,IAAvB;AACA,MAAI,aAAa,GAAG,EAApB;AACA,MAAI,SAAS,GAAG,IAAhB;;AACA,MAAI,OAAO,MAAM,CAAC,CAAD,CAAb,KAAqB,QAAzB,EAAmC;AAC/B,iBAAa,GACT,SAAS,KAAK,sBAAd,GACM,iDAA6B,MAA7B,CADN,GAEM,mDAA+B,MAA/B,CAHV;AAIH;;AACD,MAAM,YAAY,GAAG,MAAM,SAAN,UAAM,WAAN,GAAM,MAAN,SAAM,CAAE,SAAR,CACjB,eAAK;AAAA,WAAI,KAAK,KAAK,OAAV,IAAsB,KAAoB,CAAC,IAArB,KAA8B,OAAxD;AAAA,GADY,CAArB;;AAGA,MAAI,aAAa,IAAI,aAAa,CAAC,OAAd,CAAsB,OAAtB,IAAiC,CAAC,CAAvD,EAA0D;AACtD,QAAM,aAAa,GAAG,sBAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,OAAZ,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,IAArB,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,MAAzB,GAAyB,GAAE,OAAF,CAAU,YAAV,CAA/C;AACA,oBAAgB,GAAG,EAAnB;AACA,iBAAa,CAAC,OAAd,CAAsB,UAAC,GAAD,EAAM,GAAN,EAAa;AAC/B,UAAI,CAAC,gBAAgB,CAAC,GAAD,CAArB,EAA4B;AACxB,wBAAgB,CAAC,GAAD,CAAhB,GAAwB,CAAC,GAAD,CAAxB;AACH,OAFD,MAEO;AACH,wBAAgB,CAAC,GAAD,CAAhB,CAAsB,IAAtB,CAA2B,GAA3B;AACH;AACJ,KAND;AAOA,QAAM,WAAW,GAAG,wBAAU,MAAV,CAApB;AACA,eAAW,CAAC,MAAZ,CAAmB,YAAnB,EAAiC,CAAjC;AACA,QAAM,SAAS,GAAG,MAAM,CAAC,IAAP,CAAY,gBAAZ,CAAlB;AACA,aAAS,CAAC,OAAV,CAAkB,aAAG,EAAG;AACpB,UAAM,UAAU,GAAG,wBAAU,gBAAgB,CAAC,GAAD,CAA1B,CAAnB;AACA,sBAAgB,CAAC,GAAD,CAAhB,GAAwB,wBACpB,mBAAK,UAAL,EAAiB,CAAC,qBAAD,EAAwB,sBAAxB,CAAjB,CADoB,CAAxB;AAGA,sBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,MAAnC,GAA4C,WAA5C;AACA,sBAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,GAA6C,EAA7C;AACA,aAAO,CAAC,OAAR,CAAgB,UAAC,GAAD,EAAM,GAAN,EAAa;AACzB,YAAI,GAAG,KAAK,YAAZ,EAA0B;AACtB,cAAM,MAAM,GAAG,UAAU,CAAC,GAAX,CAAe,gBAAM;AAAA,mBAAI,GAAG,CAAC,MAAD,CAAP;AAAA,WAArB,CAAf;AACA,0BAAgB,CAAC,GAAD,CAAhB,CAAsB,OAAtB,CAA8B,IAA9B,CAAmC,OAAnC,CAA2C,IAA3C,CAAgD,MAAhD;AACH;AACJ,OALD;AAMH,KAbD;AAcH,GA3BD,MA2BO;AACH,aAAS,GAAG,wBAAZ;AACH;;AACD,SAAO;AAAE,oBAAgB,EAAhB,gBAAF;AAAoB,aAAS,EAAT;AAApB,GAAP;AACH,CAlDM;;AAAM,+CAAoC,oCAApC;;AAoDN,IAAM,gCAAgC,GAAG,SAAnC,gCAAmC,CAC5C,SAD4C,EAE5C,WAF4C,EAG5C,cAH4C,EAI3B;AACjB,MAAI,MAAM,GAAoB,IAA9B;;AACA,MAAI;AACA,QAAI,SAAS,KAAK,wBAAlB,EAA6B;AACzB,YAAM,GACF,cAAc,KAAK,oBAAnB,GACM,6DAAgD,WAAhD,CADN,GAEM,6CAAgC,WAAhC,EAA6C,cAA7C,CAHV;AAIH,KALD,MAKO,IAAI,SAAS,KAAK,oBAAlB,EAAyB;AAC5B,YAAM,GACF,cAAc,KAAK,oBAAnB,GACM,iDAAoC,WAApC,CADN,GAEM,kDAAqC,WAArC,EAAkD,cAAlD,EAAkE,oBAAlE,CAHV;AAIH,KALM,MAKA,IAAI,SAAS,KAAK,oBAAlB,EAAyB;AAC5B,YAAM,GACF,cAAc,KAAK,oBAAnB,GACM,6DAAgD,WAAhD,CADN,GAEM,yCAA4B,WAA5B,EAAyC,cAAzC,CAHV;AAIH,KALM,MAKA,IAAI,SAAS,KAAK,sBAAlB,EAA2B;AAC9B,YAAM,GACF,cAAc,KAAK,oBAAnB,GACM,mDAAsC,WAAtC,CADN,GAEM,kDAAqC,WAArC,EAAkD,cAAlD,EAAkE,sBAAlE,CAHV;AAIH;AACJ,GAtBD,CAsBE,OAAO,EAAP,EAAW;AACT,WAAO,CAAC,KAAR,CAAc,mCAAd,EAAmD,EAAnD;AACA,UAAM,GAAG;AAAE,sBAAgB,EAAE,IAApB;AAA0B,eAAS,EAAE;AAArC,KAAT;AACH;;AACD,SAAO,MAAP;AACH,CAjCM;;AAAM,2CAAgC,gCAAhC,C;;;;;;;ACjbb,uE","file":"trellisUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","import { cloneDeep, omit } from 'lodash';\nimport { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport {\n DataSplitMode,\n CHART,\n TIMECHART,\n STATS,\n UNKNOWN,\n extractDataSourceAggregationKeysChart,\n extractDataSourceAggregationKeysStats,\n extractSplitByFieldsChartFields,\n extractSplitByFieldsForStats,\n extractSplitByFieldsForUnknown,\n} from '@splunk/visualizations-shared/trellisUtils';\nimport { DataSource } from '../interfaces/DataSource';\n\nexport type SplitDataSource = { [key: string]: { [name: string]: DataSource } };\nexport interface DataSplitResult {\n splitDataSources: SplitDataSource;\n errorCode: 'UNKNOWN_DATA_SPLIT_MODE' | 'INVALID_SPLIT_BY_FIELD' | 'UNKNOWN';\n}\nexport const AGGREGATIONS = 'aggregations';\n\n/**\n * There can be certain SPL cmds that can produce dataSource without a specific field meta info (like group_by_rank, split_by_field etc),\n * to categorize it,\n * Example1:- `index = \"_internal\" | chart count`\n * Example2:- `index=_internal | chart avg(count), max(count)`\n * Example3:- `index = \"_internal\" | stats count`\n * Example4:- `index=_internal | stats avg(count), max(count)`\n */\nexport const dataSourcesSplitByAggregationsUnknown = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let errorCode = null;\n\n if (fields && fields.length) {\n splitDataSources = {};\n for (let i = 0; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByAggregationsTimechartAndChart = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysChart(fields as FieldEntry[]);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n fields.forEach((field: FieldEntry, idx) => {\n const fieldName = field?.name;\n if (\n fieldName !== '_time' &&\n !fieldName?.startsWith('_') &&\n field.data_source === splitByField\n ) {\n splitDataSources[splitByField].primary.data.fields.push(field);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n });\n } else if ((!splitByFields || !splitByFields.length) && fields.length > 1) {\n // handle where data_source doesnot exist in fields\n // example1 :- index=_internal | timechart count\n // example2 :- index=_internal | timechart max(count) avg(count)\n splitDataSources = {};\n for (let i = 1; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[0], fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[0], columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByAggregationsStats = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysStats(fields as FieldEntry[]);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n const idx = fields.findIndex(field => field.name === splitByField);\n if (idx > 0) {\n splitDataSources[splitByField].primary.data.fields.push(fields[idx]);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeTimechart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields as FieldEntry[]);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n // not including internal fields\n if (!fields[i].name?.startsWith('_')) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: fields[0].name },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeChart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const splitByFieldIdx = splitByFields.findIndex(f => f === splitBy);\n const otherSplitBy = splitByFields.filter(f => f !== splitBy);\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const nonDataSourceAggregations = [];\n if (\n !dataSourceKeys.length &&\n fields[0].groupby_rank === '0' &&\n fields.length &&\n !fields[1].groupby_rank\n ) {\n /* check for another aggregation scenario where no key 'data_source' will be returned (applies for both chart and stats cmd)\n For example :-\n index=_internal | chart count by status\n index = \"_internal\" | chart max(count) avg(count) by status\n index = \"_internal\" | stats max(count) avg(count) by status\n where field meta info is in this format - \n \"fields\": [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"max(count)\"\n },\n {\n \"name\": \"avg(count)\"\n }\n ]\n */\n\n for (let i = 1; i < fields.length; i += 1) {\n nonDataSourceAggregations.push(fields[i].name);\n }\n }\n if (splitByFieldIdx === 0) {\n // if splitBy is the first field, split row wise\n const valueKeys = cloneDeep(columns[0]);\n valueKeys.forEach((val, idx) => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [];\n if (otherSplitBy.length) {\n splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }]; // there can only be one otherSplitBy for chart cmd\n }\n if (dataSourceKeys.length) {\n const columnValues = [[]];\n splitDataSources[val].primary.data.fields = [\n ...splitDataSources[val].primary.data.fields,\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n dataSourceKeys.forEach(() => {\n columnValues.push([]);\n });\n /**\n * There can be chart SPL cmd where there are multiple data_source keys in the field meta info. \n * For eg - index = \"_internal\" | chart avg(count) max(count) by status , user) can result in fields and columns as below where \"data_source\" keys are \"avg(count)\" and \"max(count)\"\n * 'fields' : [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"avg(count): userA\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"avg(count): userB\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"avg(count): userC\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n {\n \"name\": \"max(count): userA\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"max(count): userB\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"max(count): userC\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n ]\n 'columns' : [['200','303','304','400'], ['1','2','3','4'], ['10','20','30','40'], ['100','200','300','400'], ['5','6','7','8'], ['50','60','70','80'],['500','600','700','800']]\n\n In this case when we split row wise, the data_source keys for userA appears in indices [1, 4, ..], the data_source keys for userB appears in indices [2, 5, ..]\n The resulting dataSplit for status '200', will have the fields => ['user','avg(count)', 'max(count)'] columns => [['userA', 'userB', 'userC'],['1','10','100'], ['5', '50', '500'] ]\n\n For the example above for..loop below will iterate from i= 1 to 3 (Math.ceil((fields.length - 1) / dataSourceKeys.length)). Exclude i = 0 as first column is the splitBy input.\n Since there are 2 data_source keys 'avg(count)' and 'max(count)', dataSourceKeys.forEach loop will collect individual arrays specific to the columnValues[indx] as below. \n columnValues[0] = ['userA', 'userB', 'userC']\n columnValues[1] = ['1','10','100']\n columnValues[2] = ['5', '50', '500']\n */\n for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {\n columnValues[0].push(\n fields[i].splitby_value ? fields[i].splitby_value : fields[i].name\n );\n dataSourceKeys.forEach((dskey, dsIndx) => {\n const mul = (fields.length - 1) / dataSourceKeys.length; // This line does the index calculation\n columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);\n });\n }\n splitDataSources[val].primary.data.columns = columnValues;\n } else if (nonDataSourceAggregations.length) {\n // There can be SPL where data_source field metainfo is not available and needs special handling\n // For eg :-\n // index=_internal | chart count by status\n // index = \"_internal\" | chart max(count) avg(count) by status\n // index = \"_internal\" | stats max(count) avg(count) by status\n const columnValues = [];\n fields.forEach((aggregationField, fieldIdx) => {\n if (fieldIdx > 0) {\n splitDataSources[val].primary.data.fields.push(aggregationField);\n columnValues.push([columns[fieldIdx][idx]]);\n }\n });\n splitDataSources[val].primary.data.columns = columnValues;\n }\n });\n } else {\n // split column wise\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: otherSplitBy[0] },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (\n field.data_source === dsKey &&\n (field.splitby_value === val || field.name === val)\n ) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\n/**\n * This method does datasplitting for 'stats' and generic cmds('makeresults','table' etc - categoried as 'unknown' splitMode).\n * The main difference is for 'stats' cmd possible splitBy fields have 'group_by_rank' in field meta info, whereas for 'unknown' cmd it can be any fieldnames\n */\nexport const dataSourcesSplitByModeStatsorUnknown = (\n dataSource: { [name: string]: DataSource },\n splitBy: string,\n splitMode?: DataSplitMode\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields =\n splitMode !== UNKNOWN\n ? extractSplitByFieldsForStats(fields as FieldEntry[])\n : extractSplitByFieldsForUnknown(fields as FieldEntry[]);\n }\n const splitByIndex = fields?.findIndex(\n field => field === splitBy || (field as FieldEntry).name === splitBy\n );\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n const splitByColumn = dataSource?.primary?.data?.columns[splitByIndex];\n splitDataSources = {};\n splitByColumn.forEach((val, idx) => {\n if (!splitDataSources[val]) {\n splitDataSources[val] = [idx];\n } else {\n splitDataSources[val].push(idx);\n }\n });\n const cloneFields = cloneDeep(fields);\n cloneFields.splice(splitByIndex, 1);\n const valueKeys = Object.keys(splitDataSources);\n valueKeys.forEach(val => {\n const valIndices = cloneDeep(splitDataSources[val]);\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = cloneFields;\n splitDataSources[val].primary.data.columns = [];\n columns.forEach((col, idx) => {\n if (idx !== splitByIndex) {\n const newCol = valIndices.map(valIdx => col[valIdx]);\n splitDataSources[val].primary.data.columns.push(newCol);\n }\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const getTrellisDataSourcesBySplitMode = (\n splitMode: DataSplitMode,\n dataSources: { [name: string]: DataSource },\n trellisSplitBy: string\n): DataSplitResult => {\n let result: DataSplitResult = null;\n try {\n if (splitMode === TIMECHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeTimechart(dataSources, trellisSplitBy);\n } else if (splitMode === STATS) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsStats(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, STATS);\n } else if (splitMode === CHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeChart(dataSources, trellisSplitBy);\n } else if (splitMode === UNKNOWN) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsUnknown(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, UNKNOWN);\n }\n } catch (ex) {\n console.error('getTrellisDataSourcesBySplitMode ', ex);\n result = { splitDataSources: null, errorCode: 'UNKNOWN' };\n }\n return result;\n};\n","module.exports = require(\"@splunk/visualizations-shared/trellisUtils\");"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2018 Splunk Inc.
2
+ * Copyright © 2024 Splunk Inc.
3
3
  * SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
4
4
  * in part without a valid written license from Splunk Inc. is PROHIBITED.
5
5
  */
@@ -102,6 +102,7 @@ Object.defineProperty(exports, "__esModule", {
102
102
  value: true
103
103
  });
104
104
  exports.isValidUrl = void 0;
105
+
105
106
  var isValidUrl = function isValidUrl(value) {
106
107
  try {
107
108
  var url = new URL(value);
@@ -110,6 +111,7 @@ var isValidUrl = function isValidUrl(value) {
110
111
  return false;
111
112
  }
112
113
  };
114
+
113
115
  exports.isValidUrl = isValidUrl;
114
116
 
115
117
  /***/ })
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/utils/urlUtils.ts"],"names":["isValidUrl","value","url","URL","protocol","err","exports"],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;AClFO,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAa,EAAI;EACxC,IAAI;IACA,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,KAAK,CAAC;IAC1B,OAAO,CAAC,CAACC,GAAG,CAACE,QAAQ;GACxB,CAAC,OAAOC,GAAG,EAAE;IACV,OAAO,KAAK;;AAEpB,CAAC;AAPYC,OAAA,CAAAN,UAAU,GAAAA,UAAA,C","file":"urlUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 40);\n","export const isValidUrl = (value: string) => {\n try {\n const url = new URL(value);\n return !!url.protocol;\n } catch (err) {\n return false;\n }\n};\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/utils/urlUtils.ts"],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;AClFO,IAAM,UAAU,GAAG,SAAb,UAAa,CAAC,KAAD,EAAkB;AACxC,MAAI;AACA,QAAM,GAAG,GAAG,IAAI,GAAJ,CAAQ,KAAR,CAAZ;AACA,WAAO,CAAC,CAAC,GAAG,CAAC,QAAb;AACH,GAHD,CAGE,OAAO,GAAP,EAAY;AACV,WAAO,KAAP;AACH;AACJ,CAPM;;AAAM,qBAAU,UAAV,C","file":"urlUtils.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 40);\n","export const isValidUrl = (value: string) => {\n try {\n const url = new URL(value);\n return !!url.protocol;\n } catch (err) {\n return false;\n }\n};\n"],"sourceRoot":""}