@splunk/visualizations 23.2.0 → 23.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/Area.config.js +36 -30
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +243 -203
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +29 -23
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +233 -193
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +36 -23
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +247 -196
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +15 -12
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +201 -148
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +29 -23
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +235 -194
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +23 -20
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +176 -123
  24. package/Ellipse.js.map +1 -1
  25. package/FillerGauge.config.js +803 -0
  26. package/FillerGauge.config.js.map +1 -0
  27. package/FillerGauge.js +3634 -0
  28. package/FillerGauge.js.map +1 -0
  29. package/Image.config.js +13 -6
  30. package/Image.config.js.map +1 -1
  31. package/Image.js +260 -200
  32. package/Image.js.map +1 -1
  33. package/LICENSE.md +14 -0
  34. package/Line.config.js +40 -31
  35. package/Line.config.js.map +1 -1
  36. package/Line.js +248 -202
  37. package/Line.js.map +1 -1
  38. package/LinkGraph.config.js +107 -123
  39. package/LinkGraph.config.js.map +1 -1
  40. package/LinkGraph.js +241 -193
  41. package/LinkGraph.js.map +1 -1
  42. package/Markdown.config.js +95 -3
  43. package/Markdown.config.js.map +1 -1
  44. package/Markdown.js +272 -118
  45. package/Markdown.js.map +1 -1
  46. package/MarkerGauge.config.js +750 -0
  47. package/MarkerGauge.config.js.map +1 -0
  48. package/MarkerGauge.js +3758 -0
  49. package/MarkerGauge.js.map +1 -0
  50. package/ParallelCoordinates.config.js +52 -46
  51. package/ParallelCoordinates.config.js.map +1 -1
  52. package/ParallelCoordinates.js +257 -164
  53. package/ParallelCoordinates.js.map +1 -1
  54. package/Pie.config.js +61 -46
  55. package/Pie.config.js.map +1 -1
  56. package/Pie.js +254 -186
  57. package/Pie.js.map +1 -1
  58. package/Punchcard.config.js +279 -39
  59. package/Punchcard.config.js.map +1 -1
  60. package/Punchcard.js +825 -193
  61. package/Punchcard.js.map +1 -1
  62. package/README.external.md +45 -0
  63. package/README.md +18 -3
  64. package/Rectangle.config.js +89 -107
  65. package/Rectangle.config.js.map +1 -1
  66. package/Rectangle.js +204 -145
  67. package/Rectangle.js.map +1 -1
  68. package/Sankey.config.js +29 -22
  69. package/Sankey.config.js.map +1 -1
  70. package/Sankey.js +250 -186
  71. package/Sankey.js.map +1 -1
  72. package/Scatter.config.js +39 -28
  73. package/Scatter.config.js.map +1 -1
  74. package/Scatter.js +2375 -2434
  75. package/Scatter.js.map +1 -1
  76. package/SingleValue.config.js +37 -29
  77. package/SingleValue.config.js.map +1 -1
  78. package/SingleValue.js +3108 -3174
  79. package/SingleValue.js.map +1 -1
  80. package/SingleValueBasic.js +37 -23
  81. package/SingleValueBasic.js.map +1 -1
  82. package/SingleValueIcon.config.js +36 -28
  83. package/SingleValueIcon.config.js.map +1 -1
  84. package/SingleValueIcon.js +279 -210
  85. package/SingleValueIcon.js.map +1 -1
  86. package/SingleValueRadial.config.js +15 -13
  87. package/SingleValueRadial.config.js.map +1 -1
  88. package/SingleValueRadial.js +299 -253
  89. package/SingleValueRadial.js.map +1 -1
  90. package/Table.config.js +26 -10
  91. package/Table.config.js.map +1 -1
  92. package/Table.js +382 -265
  93. package/Table.js.map +1 -1
  94. package/common/Charting.js +33 -30
  95. package/common/Charting.js.map +1 -1
  96. package/common/ChartingApi.js +4 -4
  97. package/common/ChartingApi.js.map +1 -1
  98. package/common/EventsDoc.js +36 -34
  99. package/common/EventsDoc.js.map +1 -1
  100. package/common/GaugeMajorTicks.js +386 -0
  101. package/common/GaugeMajorTicks.js.map +1 -0
  102. package/common/GaugeValueMarker.js +333 -0
  103. package/common/GaugeValueMarker.js.map +1 -0
  104. package/common/OptionsDoc.js +47 -33
  105. package/common/OptionsDoc.js.map +1 -1
  106. package/common/OverviewDoc.js +376 -0
  107. package/common/OverviewDoc.js.map +1 -0
  108. package/common/SplunkVisualization.js +6 -6
  109. package/common/SplunkVisualization.js.map +1 -1
  110. package/common/SplunkVisualizationApi.js +10 -10
  111. package/common/SplunkVisualizationApi.js.map +1 -1
  112. package/common/ThemesDoc.js +55 -72
  113. package/common/ThemesDoc.js.map +1 -1
  114. package/common/chartingUtils.js +15 -13
  115. package/common/chartingUtils.js.map +1 -1
  116. package/common/docUtils.js +4 -4
  117. package/common/docUtils.js.map +1 -1
  118. package/common/gaugeUtils.js +893 -0
  119. package/common/gaugeUtils.js.map +1 -0
  120. package/common/shapeUtils.js +8 -8
  121. package/common/shapeUtils.js.map +1 -1
  122. package/common/utils/JSONSchemaUtils.js.map +1 -1
  123. package/common/utils/configUtils.js.map +1 -1
  124. package/common/utils/hocUtils.js +57 -3
  125. package/common/utils/hocUtils.js.map +1 -1
  126. package/common/utils/singleValueUtils.js +24 -10
  127. package/common/utils/singleValueUtils.js.map +1 -1
  128. package/common/withDashboardViz.js +158 -95
  129. package/common/withDashboardViz.js.map +1 -1
  130. package/package.json +18 -14
  131. package/common/utils/eventUtils.js +0 -115
  132. package/common/utils/eventUtils.js.map +0 -1
@@ -87,11 +87,18 @@ module.exports =
87
87
  /******/
88
88
  /******/
89
89
  /******/ // Load entry module and return exports
90
- /******/ return __webpack_require__(__webpack_require__.s = 49);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 55);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ({
94
94
 
95
+ /***/ 0:
96
+ /***/ (function(module, exports) {
97
+
98
+ module.exports = require("@splunk/ui-utils/i18n");
99
+
100
+ /***/ }),
101
+
95
102
  /***/ 1:
96
103
  /***/ (function(module, exports, __webpack_require__) {
97
104
 
@@ -284,6 +291,44 @@ exports.generatePrecisionValues = generatePrecisionValues;
284
291
 
285
292
  /***/ }),
286
293
 
294
+ /***/ 10:
295
+ /***/ (function(module, exports, __webpack_require__) {
296
+
297
+ "use strict";
298
+
299
+
300
+ Object.defineProperty(exports, "__esModule", {
301
+ value: true
302
+ });
303
+
304
+ var i18n_1 = __webpack_require__(0);
305
+
306
+ var background = function background(_ref) {
307
+ var label = _ref.label,
308
+ themes = _ref.themes,
309
+ labelPosition = _ref.labelPosition;
310
+ return [{
311
+ label: i18n_1._(label || 'Background'),
312
+ option: 'backgroundColor',
313
+ editor: 'editor.color',
314
+ editorProps: {
315
+ labelPosition: labelPosition || 'top',
316
+ themes: themes
317
+ }
318
+ }];
319
+ };
320
+
321
+ exports.default = background;
322
+
323
+ /***/ }),
324
+
325
+ /***/ 11:
326
+ /***/ (function(module, exports) {
327
+
328
+ module.exports = require("@splunk/visualization-color-palettes");
329
+
330
+ /***/ }),
331
+
287
332
  /***/ 2:
288
333
  /***/ (function(module, exports, __webpack_require__) {
289
334
 
@@ -336,7 +381,36 @@ module.exports = require("lodash");
336
381
 
337
382
  /***/ }),
338
383
 
339
- /***/ 49:
384
+ /***/ 5:
385
+ /***/ (function(module, exports, __webpack_require__) {
386
+
387
+ "use strict";
388
+
389
+
390
+ Object.defineProperty(exports, "__esModule", {
391
+ value: true
392
+ });
393
+ exports.VizCategory = void 0;
394
+ var VizCategory;
395
+
396
+ (function (VizCategory) {
397
+ VizCategory["SINGLE_VALUE"] = "Single Value";
398
+ VizCategory["TRENDS"] = "Trends";
399
+ VizCategory["COMPARISONS"] = "Comparisons";
400
+ VizCategory["TABLE"] = "Table";
401
+ VizCategory["GAUGE"] = "Gauge";
402
+ VizCategory["DISTRIBUTIONS"] = "Distributions";
403
+ VizCategory["CHOROPLETH"] = "Choropleth Maps";
404
+ VizCategory["SHAPES"] = "Shapes";
405
+ VizCategory["MISC"] = "misc";
406
+ VizCategory["FLOW"] = "Flow";
407
+ VizCategory["CORRELATION"] = "Correlation";
408
+ VizCategory["SPATIAL"] = "Spatial";
409
+ })(VizCategory = exports.VizCategory || (exports.VizCategory = {}));
410
+
411
+ /***/ }),
412
+
413
+ /***/ 55:
340
414
  /***/ (function(module, exports, __webpack_require__) {
341
415
 
342
416
  "use strict";
@@ -346,13 +420,17 @@ Object.defineProperty(exports, "__esModule", {
346
420
  value: true
347
421
  });
348
422
 
423
+ var i18n_1 = __webpack_require__(0);
424
+
349
425
  var schemaUtils_1 = __webpack_require__(3);
350
426
 
351
- var visualization_icons_1 = __webpack_require__(7);
427
+ var visualization_icons_1 = __webpack_require__(9);
352
428
 
353
- var pick_1 = __webpack_require__(8);
429
+ var visualization_color_palettes_1 = __webpack_require__(11);
354
430
 
355
- var variables_1 = __webpack_require__(9);
431
+ var pick_1 = __webpack_require__(7);
432
+
433
+ var variables_1 = __webpack_require__(8);
356
434
 
357
435
  var VizBehavior_1 = __webpack_require__(2);
358
436
 
@@ -360,6 +438,8 @@ var VizCategory_1 = __webpack_require__(5);
360
438
 
361
439
  var configUtils_1 = __webpack_require__(1);
362
440
 
441
+ var BackgroundColor_1 = __webpack_require__(10);
442
+
363
443
  var dataContract = {
364
444
  requiredDataSources: [{
365
445
  name: 'primary',
@@ -382,7 +462,11 @@ var size = {
382
462
  initialWidth: 300,
383
463
  initialHeight: 300
384
464
  };
385
- var defaultContext = {};
465
+ var defaultContext = {
466
+ bubbleColorConfig: {
467
+ colors: ['rgba(123,86,219,0.4)', 'rgba(123,86,219,1)']
468
+ }
469
+ };
386
470
  var optionsSchema = {
387
471
  x: {
388
472
  default: '> primary | seriesByIndex(0)',
@@ -442,6 +526,79 @@ var optionsSchema = {
442
526
  pattern: schemaUtils_1.COLOR_OR_TOKEN_PATTERN,
443
527
  type: 'string'
444
528
  },
529
+ bubbleColor: {
530
+ default: '> size | gradient(bubbleColorConfig)',
531
+ description: 'Specify the coloring method used for the bubbles when the colorMode “dynamic” is specified. For example “> size | gradient(bubbleColorConfig)".',
532
+ type: ['string', 'array']
533
+ },
534
+ bubbleLabelDisplay: {
535
+ default: 'all',
536
+ description: 'Specify whether all bubble labels, the max value bubble labels, or none of the bubble labels should be displayed.',
537
+ pattern: schemaUtils_1.getPattern(['all', 'max', 'off']),
538
+ type: 'string'
539
+ },
540
+ bubbleRadiusMax: {
541
+ default: 15,
542
+ description: 'Specify the max radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',
543
+ type: 'number'
544
+ },
545
+ bubbleRadiusMin: {
546
+ default: 1,
547
+ description: 'Specify the min radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',
548
+ type: 'number'
549
+ },
550
+ bubbleRowScale: {
551
+ default: 'global',
552
+ description: 'Specify how bubbles are scaled relative to other rows.',
553
+ pattern: schemaUtils_1.getPattern(['global', 'row']),
554
+ type: 'string'
555
+ },
556
+ bubbleSizeMax: {
557
+ default: 1,
558
+ description: 'Specify the max percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',
559
+ type: 'number'
560
+ },
561
+ bubbleSizeMin: {
562
+ default: 0.25,
563
+ description: 'Specify the min percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',
564
+ type: 'number'
565
+ },
566
+ bubbleSizeMethod: {
567
+ default: 'area',
568
+ description: 'Specify whether bubble area or diameter corresponds to the size value.',
569
+ pattern: schemaUtils_1.getPattern(['radius', 'area']),
570
+ type: 'string'
571
+ },
572
+ colorMode: {
573
+ default: 'dynamic',
574
+ description: 'Specify the coloring method used for the bubbles.',
575
+ pattern: schemaUtils_1.getPattern(['categorical', 'dynamic']),
576
+ type: 'string'
577
+ },
578
+ legendDisplay: {
579
+ default: 'right',
580
+ description: 'Specify the location of the legend on the panel.',
581
+ pattern: schemaUtils_1.getPattern(['right', 'off']),
582
+ type: 'string'
583
+ },
584
+ seriesColors: {
585
+ default: visualization_color_palettes_1.VIZ_CATEGORICAL,
586
+ description: 'Specify the colors used for a series. For example, "#FF0000", "#0000FF", "#008000".',
587
+ type: 'array',
588
+ items: {
589
+ type: 'string'
590
+ }
591
+ },
592
+ showDefaultSort: {
593
+ default: false,
594
+ description: 'Specify whether axes should be sorted based on order of time, digits and strings.',
595
+ type: 'boolean'
596
+ },
597
+ showDynamicBubbleSize: {
598
+ default: true,
599
+ description: 'Specify whether the bubble size should be dynamic or fixed.',
600
+ type: 'boolean'
601
+ },
445
602
  showMaxValuePulsation: {
446
603
  default: true,
447
604
  description: 'Specify whether the max value bubble should pulsate.',
@@ -459,7 +616,116 @@ var themes = {
459
616
  })(props);
460
617
  }
461
618
  };
462
- var editorConfig = [];
619
+ var editorConfig = [{
620
+ label: i18n_1._('General'),
621
+ open: true,
622
+ layout: [[{
623
+ label: i18n_1._('Pulsate Max Value'),
624
+ option: 'showMaxValuePulsation',
625
+ editor: 'editor.toggle'
626
+ }], [{
627
+ label: i18n_1._('Show Bubble Labels'),
628
+ option: 'bubbleLabelDisplay',
629
+ editor: 'editor.radioBar',
630
+ editorProps: {
631
+ values: [{
632
+ label: i18n_1._('All'),
633
+ value: 'all'
634
+ }, {
635
+ label: i18n_1._('Max'),
636
+ value: 'max'
637
+ }, {
638
+ label: i18n_1._('Off'),
639
+ value: 'off'
640
+ }]
641
+ }
642
+ }], [{
643
+ label: i18n_1._('Bubble Row Scale'),
644
+ option: 'bubbleRowScale',
645
+ editor: 'editor.radioBar',
646
+ editorProps: {
647
+ values: [{
648
+ label: i18n_1._('Global'),
649
+ value: 'global'
650
+ }, {
651
+ label: i18n_1._('By Row'),
652
+ value: 'row'
653
+ }]
654
+ }
655
+ }], [{
656
+ label: i18n_1._('Bubble Scale'),
657
+ option: 'bubbleSizeMethod',
658
+ editor: 'editor.radioBar',
659
+ editorProps: {
660
+ values: [{
661
+ label: i18n_1._('Radius'),
662
+ value: 'radius'
663
+ }, {
664
+ label: i18n_1._('Area'),
665
+ value: 'area'
666
+ }]
667
+ }
668
+ }]]
669
+ }, {
670
+ label: i18n_1._('Coloring'),
671
+ open: true,
672
+ layout: [[{
673
+ label: i18n_1._('Color Mode'),
674
+ option: 'colorMode',
675
+ editor: 'editor.radioBar',
676
+ editorProps: {
677
+ values: [{
678
+ label: i18n_1._('Dynamic'),
679
+ value: 'dynamic'
680
+ }, {
681
+ label: i18n_1._('Categorical'),
682
+ value: 'categorical'
683
+ }]
684
+ }
685
+ }], [// This should be hidden in categorical color mode
686
+ {
687
+ label: i18n_1._('Color by Field'),
688
+ editor: 'editor.columnSelector',
689
+ option: 'bubbleColor',
690
+ context: 'bubbleColorConfig',
691
+ showEditor: function showEditor(_ref) {
692
+ var options = _ref.options;
693
+ return options.colorMode === 'dynamic' || options.colorMode === undefined;
694
+ },
695
+ editorProps: {
696
+ dataSourceKey: 'primary',
697
+ prepareValue: function prepareValue(definition) {
698
+ var bubbleColor = definition.options.bubbleColor;
699
+ return {
700
+ context: {},
701
+ options: {
702
+ bubbleColor: "".concat(bubbleColor, " | gradient(bubbleColorConfig)")
703
+ }
704
+ };
705
+ }
706
+ }
707
+ }], BackgroundColor_1.default({
708
+ themes: themes,
709
+ labelPosition: 'left'
710
+ }), [{
711
+ label: i18n_1._('Legend Display'),
712
+ option: 'legendDisplay',
713
+ editor: 'editor.select',
714
+ editorProps: {
715
+ values: [{
716
+ label: i18n_1._('Right'),
717
+ value: 'right'
718
+ }, {
719
+ label: i18n_1._('Off'),
720
+ value: 'off'
721
+ }]
722
+ },
723
+ showEditor: function showEditor(_ref2) {
724
+ var options = _ref2.options;
725
+ return options.colorMode === 'categorical';
726
+ }
727
+ }]]
728
+ }];
463
729
  /**
464
730
  * visualization configuration
465
731
  */
@@ -474,7 +740,7 @@ var config = {
474
740
  * viz name
475
741
  */
476
742
  name: 'Punchcard',
477
- category: VizCategory_1.VizCategory.DISTRIBUTIONS,
743
+ category: VizCategory_1.VizCategory.COMPARISONS,
478
744
 
479
745
  /**
480
746
  * viz icon
@@ -494,39 +760,13 @@ var config = {
494
760
  }
495
761
  },
496
762
  supports: [VizBehavior_1.VizBehavior.DYNAMIC_OPTIONS, VizBehavior_1.VizBehavior.PLACEHOLDER, VizBehavior_1.VizBehavior.EVENTS],
497
- themes: themes
763
+ themes: themes,
764
+ requiredProps: ['x', 'y', 'size']
498
765
  };
499
766
  exports.default = configUtils_1.enhanceConfig(config);
500
767
 
501
768
  /***/ }),
502
769
 
503
- /***/ 5:
504
- /***/ (function(module, exports, __webpack_require__) {
505
-
506
- "use strict";
507
-
508
-
509
- Object.defineProperty(exports, "__esModule", {
510
- value: true
511
- });
512
- exports.VizCategory = void 0;
513
- var VizCategory;
514
-
515
- (function (VizCategory) {
516
- VizCategory["SINGLE_VALUE"] = "Single Value";
517
- VizCategory["TRENDS"] = "Trends";
518
- VizCategory["COMPARISONS"] = "Comparisons";
519
- VizCategory["TABLE"] = "Table";
520
- VizCategory["GAUGE"] = "Gauge";
521
- VizCategory["DISTRIBUTIONS"] = "Distributions";
522
- VizCategory["CHOROPLETH"] = "Choropleth Maps";
523
- VizCategory["SHAPES"] = "Shapes";
524
- VizCategory["MISC"] = "misc";
525
- VizCategory["FLOW"] = "Flow";
526
- })(VizCategory = exports.VizCategory || (exports.VizCategory = {}));
527
-
528
- /***/ }),
529
-
530
770
  /***/ 6:
531
771
  /***/ (function(module, exports) {
532
772
 
@@ -537,21 +777,21 @@ module.exports = require("@babel/runtime/helpers/defineProperty");
537
777
  /***/ 7:
538
778
  /***/ (function(module, exports) {
539
779
 
540
- module.exports = require("@splunk/visualization-icons");
780
+ module.exports = require("@splunk/themes/pick");
541
781
 
542
782
  /***/ }),
543
783
 
544
784
  /***/ 8:
545
785
  /***/ (function(module, exports) {
546
786
 
547
- module.exports = require("@splunk/themes/pick");
787
+ module.exports = require("@splunk/themes/variables");
548
788
 
549
789
  /***/ }),
550
790
 
551
791
  /***/ 9:
552
792
  /***/ (function(module, exports) {
553
793
 
554
- module.exports = require("@splunk/themes/variables");
794
+ module.exports = require("@splunk/visualization-icons");
555
795
 
556
796
  /***/ })
557
797
 
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"lodash\"","webpack:///./src/Punchcard/config.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/themes/variables\""],"names":[],"mappings":"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","file":"Punchcard.config.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 = 49);\n","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { JSONSchema7Definition } from 'json-schema';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((key): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [key]: patternProperties[key] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = vizConfig;\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n return enhancedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n}\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"lodash\");","import { COLOR_OR_TOKEN_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport { Punchcard as PunchcardIcon } from '@splunk/visualization-icons';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [\n // Note: SCP-14090 disable ui for optional datasources. We may need to add it back later\n // {\n // name: 'annotation',\n // description: 'DataSource that populate event annotations',\n // },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {};\n\nconst optionsSchema: OptionsSchema = {\n x: {\n default: '> primary | seriesByIndex(0)',\n description: 'Specify the dataSource applied to the x-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n y: {\n default: '> primary | seriesByIndex(1)',\n description: 'Specify the dataSource applied to the y-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n category: {\n default: '> primary | seriesByIndex(3)',\n description: 'Specify the dataSource to apply series categories.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n size: {\n default: '> primary | seriesByIndex(2)',\n description: 'Specify the dataSource to apply bubble size in the chart.',\n type: 'array',\n items: { type: 'number' },\n },\n xField: {\n default: '> x | getField()',\n description: 'Specify the field that should be mapped to the x-axis.',\n type: 'string',\n },\n yField: {\n default: '> y | getField()',\n description: 'Specify the field that should be mapped to the y-axis.',\n type: 'string',\n },\n categoryField: {\n default: '> category | getField()',\n description: 'Specify the field that should be mapped to the series categories.',\n type: 'string',\n },\n sizeField: {\n default: '> size | getField()',\n description: 'Specify the field that should be mapped to the bubble size in the chart.',\n type: 'string',\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color used for the background. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN,\n type: 'string',\n },\n showMaxValuePulsation: {\n default: true,\n description: 'Specify whether the max value bubble should pulsate.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.punchcard',\n /**\n * viz name\n */\n name: 'Punchcard',\n category: VizCategory.DISTRIBUTIONS,\n /**\n * viz icon\n */\n icon: PunchcardIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'legend.click': {\n description: 'Triggered when user clicks a chart legend',\n },\n 'point.click': {\n description: 'Triggered when user clicks a data point',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.PLACEHOLDER, VizBehavior.EVENTS],\n themes,\n};\n\nexport default enhanceConfig(config);\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n}\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/themes/variables\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/editorConfig/BackgroundColor.ts","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"lodash\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/Punchcard/config.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/visualization-icons\""],"names":[],"mappings":"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","file":"Punchcard.config.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 = 55);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport type { JSONSchema7Definition } from 'json-schema';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((key): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [key]: patternProperties[key] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = vizConfig;\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n return enhancedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { EditorLayoutConfig } from '../interfaces/Editor';\nimport { ThemedDefaults } from '../interfaces/ThemedDefaults';\n\ninterface backgroundEditorProps {\n label?: string;\n themes: ThemedDefaults;\n labelPosition?: string;\n}\n\nconst background: ({ label, themes, labelPosition }: backgroundEditorProps) => EditorLayoutConfig[] = ({\n label,\n themes,\n labelPosition,\n}) => [\n {\n label: _(label || 'Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: labelPosition || 'top',\n themes,\n },\n },\n];\n\nexport default background;\n","module.exports = require(\"@splunk/visualization-color-palettes\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n}\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"lodash\");","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { COLOR_OR_TOKEN_PATTERN, getPattern } from '@splunk/visualizations-shared/schemaUtils';\nimport { Punchcard as PunchcardIcon } from '@splunk/visualization-icons';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport getBackgroundColorEditor from '../common/editorConfig/BackgroundColor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [\n // Note: SCP-14090 disable ui for optional datasources. We may need to add it back later\n // {\n // name: 'annotation',\n // description: 'DataSource that populate event annotations',\n // },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n bubbleColorConfig: {\n colors: ['rgba(123,86,219,0.4)', 'rgba(123,86,219,1)'],\n },\n};\n\nconst optionsSchema: OptionsSchema = {\n x: {\n default: '> primary | seriesByIndex(0)',\n description: 'Specify the dataSource applied to the x-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n y: {\n default: '> primary | seriesByIndex(1)',\n description: 'Specify the dataSource applied to the y-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n category: {\n default: '> primary | seriesByIndex(3)',\n description: 'Specify the dataSource to apply series categories.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n size: {\n default: '> primary | seriesByIndex(2)',\n description: 'Specify the dataSource to apply bubble size in the chart.',\n type: 'array',\n items: { type: 'number' },\n },\n xField: {\n default: '> x | getField()',\n description: 'Specify the field that should be mapped to the x-axis.',\n type: 'string',\n },\n yField: {\n default: '> y | getField()',\n description: 'Specify the field that should be mapped to the y-axis.',\n type: 'string',\n },\n categoryField: {\n default: '> category | getField()',\n description: 'Specify the field that should be mapped to the series categories.',\n type: 'string',\n },\n sizeField: {\n default: '> size | getField()',\n description: 'Specify the field that should be mapped to the bubble size in the chart.',\n type: 'string',\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color used for the background. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN,\n type: 'string',\n },\n bubbleColor: {\n default: '> size | gradient(bubbleColorConfig)',\n description:\n 'Specify the coloring method used for the bubbles when the colorMode “dynamic” is specified. For example “> size | gradient(bubbleColorConfig)\".',\n type: ['string', 'array'],\n },\n bubbleLabelDisplay: {\n default: 'all',\n description:\n 'Specify whether all bubble labels, the max value bubble labels, or none of the bubble labels should be displayed.',\n pattern: getPattern(['all', 'max', 'off']),\n type: 'string',\n },\n bubbleRadiusMax: {\n default: 15,\n description:\n 'Specify the max radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRadiusMin: {\n default: 1,\n description:\n 'Specify the min radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRowScale: {\n default: 'global',\n description: 'Specify how bubbles are scaled relative to other rows.',\n pattern: getPattern(['global', 'row']),\n type: 'string',\n },\n bubbleSizeMax: {\n default: 1,\n description:\n 'Specify the max percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMin: {\n default: 0.25,\n description:\n 'Specify the min percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMethod: {\n default: 'area',\n description: 'Specify whether bubble area or diameter corresponds to the size value.',\n pattern: getPattern(['radius', 'area']),\n type: 'string',\n },\n colorMode: {\n default: 'dynamic',\n description: 'Specify the coloring method used for the bubbles.',\n pattern: getPattern(['categorical', 'dynamic']),\n type: 'string',\n },\n legendDisplay: {\n default: 'right',\n description: 'Specify the location of the legend on the panel.',\n pattern: getPattern(['right', 'off']),\n type: 'string',\n },\n seriesColors: {\n default: VIZ_CATEGORICAL,\n description: 'Specify the colors used for a series. For example, \"#FF0000\", \"#0000FF\", \"#008000\".',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n showDefaultSort: {\n default: false,\n description: 'Specify whether axes should be sorted based on order of time, digits and strings.',\n type: 'boolean',\n },\n showDynamicBubbleSize: {\n default: true,\n description: 'Specify whether the bubble size should be dynamic or fixed.',\n type: 'boolean',\n },\n showMaxValuePulsation: {\n default: true,\n description: 'Specify whether the max value bubble should pulsate.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('General'),\n open: true,\n layout: [\n [\n {\n label: _('Pulsate Max Value'),\n option: 'showMaxValuePulsation',\n editor: 'editor.toggle',\n },\n ],\n [\n {\n label: _('Show Bubble Labels'),\n option: 'bubbleLabelDisplay',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('All'), value: 'all' },\n { label: _('Max'), value: 'max' },\n { label: _('Off'), value: 'off' },\n ],\n },\n },\n ],\n [\n {\n label: _('Bubble Row Scale'),\n option: 'bubbleRowScale',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Global'), value: 'global' },\n { label: _('By Row'), value: 'row' },\n ],\n },\n },\n ],\n [\n {\n label: _('Bubble Scale'),\n option: 'bubbleSizeMethod',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Radius'), value: 'radius' },\n { label: _('Area'), value: 'area' },\n ],\n },\n },\n ],\n ],\n },\n {\n label: _('Coloring'),\n open: true,\n layout: [\n [\n {\n label: _('Color Mode'),\n option: 'colorMode',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Dynamic'), value: 'dynamic' },\n { label: _('Categorical'), value: 'categorical' },\n ],\n },\n },\n ],\n [\n // This should be hidden in categorical color mode\n {\n label: _('Color by Field'),\n editor: 'editor.columnSelector',\n option: 'bubbleColor',\n context: 'bubbleColorConfig',\n showEditor: ({ options }) =>\n options.colorMode === 'dynamic' || options.colorMode === undefined,\n editorProps: {\n dataSourceKey: 'primary',\n prepareValue: (\n definition\n ): { context: Record<string, any>; options: Record<string, any> } => {\n const {\n options: { bubbleColor },\n } = definition;\n return {\n context: {},\n options: {\n bubbleColor: `${bubbleColor} | gradient(bubbleColorConfig)`,\n },\n };\n },\n },\n },\n ],\n getBackgroundColorEditor({ themes, labelPosition: 'left' }),\n [\n {\n label: _('Legend Display'),\n option: 'legendDisplay',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Right'), value: 'right' },\n { label: _('Off'), value: 'off' },\n ],\n },\n showEditor: ({ options }) => options.colorMode === 'categorical',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.punchcard',\n /**\n * viz name\n */\n name: 'Punchcard',\n category: VizCategory.COMPARISONS,\n /**\n * viz icon\n */\n icon: PunchcardIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'legend.click': {\n description: 'Triggered when user clicks a chart legend',\n },\n 'point.click': {\n description: 'Triggered when user clicks a data point',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.PLACEHOLDER, VizBehavior.EVENTS],\n themes,\n requiredProps: ['x', 'y', 'size'],\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/visualization-icons\");"],"sourceRoot":""}