@splunk/visualizations 26.3.0 → 26.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Area.config.js +1 -1
- package/Area.config.js.map +1 -1
- package/Area.js +288 -288
- package/Area.js.map +1 -1
- package/Bar.config.js +1 -1
- package/Bar.config.js.map +1 -1
- package/Bar.js +291 -291
- package/Bar.js.map +1 -1
- package/Bubble.config.js +1 -1
- package/Bubble.config.js.map +1 -1
- package/Bubble.js +280 -280
- package/Bubble.js.map +1 -1
- package/ChoroplethSvg.config.js +1 -1
- package/ChoroplethSvg.config.js.map +1 -1
- package/ChoroplethSvg.js +262 -260
- package/ChoroplethSvg.js.map +1 -1
- package/Column.config.js +1 -1
- package/Column.config.js.map +1 -1
- package/Column.js +291 -291
- package/Column.js.map +1 -1
- package/Ellipse.js +220 -218
- package/Ellipse.js.map +1 -1
- package/Events.config.js +1 -1
- package/Events.config.js.map +1 -1
- package/Events.js +285 -283
- package/Events.js.map +1 -1
- package/FillerGauge.config.js +1 -1
- package/FillerGauge.config.js.map +1 -1
- package/FillerGauge.js +250 -248
- package/FillerGauge.js.map +1 -1
- package/Image.js +212 -210
- package/Image.js.map +1 -1
- package/Line.config.js +1 -1
- package/Line.config.js.map +1 -1
- package/Line.js +289 -289
- package/Line.js.map +1 -1
- package/LinkGraph.config.js +1 -1
- package/LinkGraph.config.js.map +1 -1
- package/LinkGraph.js +1725 -17201
- package/LinkGraph.js.map +1 -1
- package/MIGRATION.md +6 -0
- package/Map.config.js +1 -1
- package/Map.config.js.map +1 -1
- package/Map.js +465 -406
- package/Map.js.map +1 -1
- package/Markdown.config.js +1 -1
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +281 -277
- package/Markdown.js.map +1 -1
- package/MarkerGauge.config.js +1 -1
- package/MarkerGauge.config.js.map +1 -1
- package/MarkerGauge.js +926 -922
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.config.js +1 -1
- package/ParallelCoordinates.config.js.map +1 -1
- package/ParallelCoordinates.js +336 -320
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +5 -1
- package/Pie.config.js.map +1 -1
- package/Pie.js +362 -330
- package/Pie.js.map +1 -1
- package/Punchcard.config.js +1 -1
- package/Punchcard.config.js.map +1 -1
- package/Punchcard.js +342 -338
- package/Punchcard.js.map +1 -1
- package/Rectangle.js +260 -256
- package/Rectangle.js.map +1 -1
- package/Sankey.config.js +1 -1
- package/Sankey.config.js.map +1 -1
- package/Sankey.js +339 -335
- package/Sankey.js.map +1 -1
- package/Scatter.config.js +1 -1
- package/Scatter.config.js.map +1 -1
- package/Scatter.js +339 -337
- package/Scatter.js.map +1 -1
- package/SingleValue.config.js +10 -2
- package/SingleValue.config.js.map +1 -1
- package/SingleValue.js +455 -427
- package/SingleValue.js.map +1 -1
- package/SingleValueBasic.js +65 -53
- package/SingleValueBasic.js.map +1 -1
- package/SingleValueIcon.config.js +10 -2
- package/SingleValueIcon.config.js.map +1 -1
- package/SingleValueIcon.js +449 -421
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.config.js +11 -3
- package/SingleValueRadial.config.js.map +1 -1
- package/SingleValueRadial.js +1580 -1552
- package/SingleValueRadial.js.map +1 -1
- package/SparkLine.js +33 -33
- package/SparkLine.js.map +1 -1
- package/Table.config.js +8 -0
- package/Table.config.js.map +1 -1
- package/Table.js +366 -357
- package/Table.js.map +1 -1
- package/common/Charting.js +15 -23
- package/common/Charting.js.map +1 -1
- package/common/utils/dataUtils.js +12 -18
- package/common/utils/dataUtils.js.map +1 -1
- package/common/utils/singleValueUtils.js +23 -11
- package/common/utils/singleValueUtils.js.map +1 -1
- package/common/withDashboardViz.js +31 -27
- package/common/withDashboardViz.js.map +1 -1
- package/package.json +17 -16
package/SparkLine.js
CHANGED
|
@@ -87,7 +87,7 @@ module.exports =
|
|
|
87
87
|
/******/
|
|
88
88
|
/******/
|
|
89
89
|
/******/ // Load entry module and return exports
|
|
90
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
90
|
+
/******/ return __webpack_require__(__webpack_require__.s = 114);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ({
|
|
@@ -95,58 +95,58 @@ module.exports =
|
|
|
95
95
|
/***/ 0:
|
|
96
96
|
/***/ (function(module, exports) {
|
|
97
97
|
|
|
98
|
-
module.exports = require("
|
|
98
|
+
module.exports = require("prop-types");
|
|
99
99
|
|
|
100
100
|
/***/ }),
|
|
101
101
|
|
|
102
102
|
/***/ 1:
|
|
103
103
|
/***/ (function(module, exports) {
|
|
104
104
|
|
|
105
|
-
module.exports = require("
|
|
105
|
+
module.exports = require("react");
|
|
106
106
|
|
|
107
107
|
/***/ }),
|
|
108
108
|
|
|
109
|
-
/***/
|
|
109
|
+
/***/ 108:
|
|
110
110
|
/***/ (function(module, exports) {
|
|
111
111
|
|
|
112
112
|
module.exports = require("@babel/runtime/helpers/assertThisInitialized");
|
|
113
113
|
|
|
114
114
|
/***/ }),
|
|
115
115
|
|
|
116
|
-
/***/
|
|
116
|
+
/***/ 114:
|
|
117
117
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
118
118
|
|
|
119
119
|
"use strict";
|
|
120
120
|
__webpack_require__.r(__webpack_exports__);
|
|
121
|
-
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
121
|
+
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68);
|
|
122
122
|
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);
|
|
123
|
-
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
123
|
+
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
|
|
124
124
|
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);
|
|
125
|
-
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
125
|
+
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
|
|
126
126
|
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);
|
|
127
|
-
/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
127
|
+
/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(108);
|
|
128
128
|
/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__);
|
|
129
|
-
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
129
|
+
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(91);
|
|
130
130
|
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__);
|
|
131
|
-
/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
131
|
+
/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(92);
|
|
132
132
|
/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__);
|
|
133
|
-
/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
133
|
+
/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(82);
|
|
134
134
|
/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__);
|
|
135
|
-
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
|
|
135
|
+
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12);
|
|
136
136
|
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7__);
|
|
137
|
-
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
|
|
137
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(0);
|
|
138
138
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
|
|
139
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
139
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1);
|
|
140
140
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
|
|
141
|
-
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
|
|
141
|
+
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2);
|
|
142
142
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_10__);
|
|
143
143
|
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4);
|
|
144
144
|
/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_11__);
|
|
145
|
-
/* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(
|
|
145
|
+
/* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(81);
|
|
146
146
|
/* harmony import */ var _splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_ui_Popover__WEBPACK_IMPORTED_MODULE_12__);
|
|
147
|
-
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
|
|
147
|
+
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(3);
|
|
148
148
|
/* harmony import */ var _splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_splunk_ui_utils_i18n__WEBPACK_IMPORTED_MODULE_13__);
|
|
149
|
-
/* harmony import */ var _splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(
|
|
149
|
+
/* harmony import */ var _splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(30);
|
|
150
150
|
/* harmony import */ var _splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_splunk_ui_utils_id__WEBPACK_IMPORTED_MODULE_14__);
|
|
151
151
|
|
|
152
152
|
|
|
@@ -755,7 +755,7 @@ _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(Spa
|
|
|
755
755
|
|
|
756
756
|
/***/ }),
|
|
757
757
|
|
|
758
|
-
/***/
|
|
758
|
+
/***/ 12:
|
|
759
759
|
/***/ (function(module, exports) {
|
|
760
760
|
|
|
761
761
|
module.exports = require("@babel/runtime/helpers/defineProperty");
|
|
@@ -765,11 +765,11 @@ module.exports = require("@babel/runtime/helpers/defineProperty");
|
|
|
765
765
|
/***/ 2:
|
|
766
766
|
/***/ (function(module, exports) {
|
|
767
767
|
|
|
768
|
-
module.exports = require("
|
|
768
|
+
module.exports = require("lodash");
|
|
769
769
|
|
|
770
770
|
/***/ }),
|
|
771
771
|
|
|
772
|
-
/***/
|
|
772
|
+
/***/ 24:
|
|
773
773
|
/***/ (function(module, exports) {
|
|
774
774
|
|
|
775
775
|
module.exports = require("@babel/runtime/helpers/createClass");
|
|
@@ -779,11 +779,11 @@ module.exports = require("@babel/runtime/helpers/createClass");
|
|
|
779
779
|
/***/ 3:
|
|
780
780
|
/***/ (function(module, exports) {
|
|
781
781
|
|
|
782
|
-
module.exports = require("
|
|
782
|
+
module.exports = require("@splunk/ui-utils/i18n");
|
|
783
783
|
|
|
784
784
|
/***/ }),
|
|
785
785
|
|
|
786
|
-
/***/
|
|
786
|
+
/***/ 30:
|
|
787
787
|
/***/ (function(module, exports) {
|
|
788
788
|
|
|
789
789
|
module.exports = require("@splunk/ui-utils/id");
|
|
@@ -797,42 +797,42 @@ module.exports = require("styled-components");
|
|
|
797
797
|
|
|
798
798
|
/***/ }),
|
|
799
799
|
|
|
800
|
-
/***/
|
|
800
|
+
/***/ 68:
|
|
801
801
|
/***/ (function(module, exports) {
|
|
802
802
|
|
|
803
803
|
module.exports = require("@babel/runtime/helpers/extends");
|
|
804
804
|
|
|
805
805
|
/***/ }),
|
|
806
806
|
|
|
807
|
-
/***/
|
|
807
|
+
/***/ 8:
|
|
808
808
|
/***/ (function(module, exports) {
|
|
809
809
|
|
|
810
|
-
module.exports = require("@
|
|
810
|
+
module.exports = require("@babel/runtime/helpers/classCallCheck");
|
|
811
811
|
|
|
812
812
|
/***/ }),
|
|
813
813
|
|
|
814
|
-
/***/
|
|
814
|
+
/***/ 81:
|
|
815
815
|
/***/ (function(module, exports) {
|
|
816
816
|
|
|
817
|
-
module.exports = require("@
|
|
817
|
+
module.exports = require("@splunk/react-ui/Popover");
|
|
818
818
|
|
|
819
819
|
/***/ }),
|
|
820
820
|
|
|
821
|
-
/***/
|
|
821
|
+
/***/ 82:
|
|
822
822
|
/***/ (function(module, exports) {
|
|
823
823
|
|
|
824
|
-
module.exports = require("@babel/runtime/helpers/
|
|
824
|
+
module.exports = require("@babel/runtime/helpers/getPrototypeOf");
|
|
825
825
|
|
|
826
826
|
/***/ }),
|
|
827
827
|
|
|
828
|
-
/***/
|
|
828
|
+
/***/ 91:
|
|
829
829
|
/***/ (function(module, exports) {
|
|
830
830
|
|
|
831
831
|
module.exports = require("@babel/runtime/helpers/inherits");
|
|
832
832
|
|
|
833
833
|
/***/ }),
|
|
834
834
|
|
|
835
|
-
/***/
|
|
835
|
+
/***/ 92:
|
|
836
836
|
/***/ (function(module, exports) {
|
|
837
837
|
|
|
838
838
|
module.exports = require("@babel/runtime/helpers/possibleConstructorReturn");
|
package/SparkLine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///./src/SparkLine/SparkLine.jsx","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\""],"names":["StyledSvg","styled","StyledTooltip","SparkLine","rest","anchor","el","currentPointX","open","rectArea","tooltip","createDOMID","data","acceptNull","yMax","dataMax","max","yMin","dataMin","min","width","xUnit","xMargin","Math","height","maxValue","minValue","yUnit","yMargin","lines","currentLine","isNull","points","value","x","idx","y","p","i","fillOpacity","e","fillColor","isArea","segments","s","fill","strokeWidth","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","stroke","strokeLinecap","strokeDasharray","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","point","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","elementRef","showTooltip","showEndDot","endDotCount","title","dotsToShow","omit","keys","_","Component","PropTypes","isArray","props","string"],"mappings":"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","file":"SparkLine.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 = 115);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///./src/SparkLine/SparkLine.jsx","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\""],"names":["StyledSvg","styled","StyledTooltip","SparkLine","rest","anchor","el","currentPointX","open","rectArea","tooltip","createDOMID","data","acceptNull","yMax","dataMax","max","yMin","dataMin","min","width","xUnit","xMargin","Math","height","maxValue","minValue","yUnit","yMargin","lines","currentLine","isNull","points","value","x","idx","y","p","i","fillOpacity","e","fillColor","isArea","segments","s","fill","strokeWidth","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","stroke","strokeLinecap","strokeDasharray","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","point","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","elementRef","showTooltip","showEndDot","endDotCount","title","dotsToShow","omit","keys","_","Component","PropTypes","isArray","props","string"],"mappings":"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","file":"SparkLine.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 = 114);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");"],"sourceRoot":""}
|
package/Table.config.js
CHANGED
|
@@ -479,6 +479,11 @@ var defaultContext = {
|
|
|
479
479
|
match: 'null',
|
|
480
480
|
value: 'TextCell'
|
|
481
481
|
}],
|
|
482
|
+
tableDataFormatByType: {
|
|
483
|
+
time: {
|
|
484
|
+
format: 'YYYY-MM-DD HH:mm:ss'
|
|
485
|
+
}
|
|
486
|
+
},
|
|
482
487
|
// NOTE: These contexts are used by the table background color editor.
|
|
483
488
|
// Please be careful removing/renaming/altering them.
|
|
484
489
|
// There are unit tests and visual test that will capture breakages.
|
|
@@ -842,6 +847,9 @@ var editorConfig = [{
|
|
|
842
847
|
align: 'auto',
|
|
843
848
|
headerAlign: 'auto',
|
|
844
849
|
textOverflow: 'break-word'
|
|
850
|
+
},
|
|
851
|
+
time: {
|
|
852
|
+
format: 'YYYY-MM-DD HH:mm:ss'
|
|
845
853
|
}
|
|
846
854
|
},
|
|
847
855
|
textFormatConfig: [[Object.assign({}, headerAlignConfigColumn)], [Object.assign({}, textAlignConfigColumn)], [Object.assign({}, textOverflowConfigColumn)]],
|
package/Table.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-schemas\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"lodash\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/Table/config.ts","webpack:///external \"@splunk/react-icons/TextAlignCenter\"","webpack:///external \"@splunk/react-icons/TextAlignLeft\"","webpack:///external \"@splunk/react-icons/TextAlignRight\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/themes/variables\""],"names":[],"mappings":"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","file":"Table.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 = 73);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-schemas\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\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 { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"lodash\");","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 DOWNSAMPLING = 'downsampling',\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 TRELLIS = 'trellis',\n}\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 CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { map, get } from 'lodash';\nimport { tableOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { Table as TableIcon } from '@splunk/visualization-icons';\nimport { Table as TablePlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport variables from '@splunk/themes/variables';\nimport pick from '@splunk/themes/pick';\nimport TextAlignCenter from '@splunk/react-icons/TextAlignCenter';\nimport TextAlignLeft from '@splunk/react-icons/TextAlignLeft';\nimport TextAlignRight from '@splunk/react-icons/TextAlignRight';\n\nimport { enhanceConfig, generatePrecisionValues } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizCategory } from '../common/interfaces/VizCategory';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: (options: { count?: number } = {}): Record<string, unknown> => ({\n offset: 0,\n count: options.count ? options.count : 10,\n requestTotalCount: true,\n }),\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n tableAlignByType: [\n { match: 'string', value: 'left' },\n { match: 'number', value: 'right' },\n { match: 'time', value: 'left' },\n { match: 'color', value: 'left' },\n { match: 'array', value: 'left' },\n { match: 'sparkline', value: 'center' },\n { match: 'unknown', value: 'left' },\n { match: 'null', value: 'left' },\n ],\n tableCellTypeByType: [\n { match: 'string', value: 'TextCell' },\n { match: 'number', value: 'TextCell' },\n { match: 'time', value: 'TextCell' },\n { match: 'color', value: 'TextCell' },\n { match: 'array', value: 'ArrayCell' },\n { match: 'sparkline', value: 'SparklineCell' },\n { match: 'unknown', value: 'TextCell' },\n { match: 'null', value: 'TextCell' },\n ],\n\n // NOTE: These contexts are used by the table background color editor.\n // Please be careful removing/renaming/altering them.\n // There are unit tests and visual test that will capture breakages.\n tableRowColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n tableRowBackgroundColorEvenConfig: {\n channel: 'hsv.v',\n value: '*0.96',\n },\n tableHeaderBackgroundColorConfig: {\n channel: 'hsv.v',\n value: '*0.9',\n },\n tableRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd'],\n tableAltRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd', '> themes.rowBackgroundColorEven'],\n tableRowBackgroundColorsByBackgroundColor: ['> backgroundColor'],\n tableAltRowBackgroundColorsByBackgroundColor: [\n '> backgroundColor',\n '> backgroundColor | setColorChannel(tableRowBackgroundColorEvenConfig)',\n ],\n};\n\nconst headerAlignConfigTable = {\n label: _('Header alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.headerAlign',\n editorProps: {\n values: [\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst headerAlignConfigColumn = {\n ...headerAlignConfigTable,\n option: 'headerAlign',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textOverflowConfigColumn = {\n label: _('Text wrapping'),\n editor: 'editor.radioBar',\n option: 'textOverflow',\n editorProps: {\n values: [\n { label: _('Standard'), value: 'break-word' },\n { label: _('Anywhere'), value: 'anywhere' },\n { label: _('Trim'), value: 'ellipsis' },\n ],\n },\n};\n\nconst textAlignConfigTable = {\n label: _('Cells alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.align',\n editorProps: {\n values: [\n { label: _('Auto'), value: '> table | type() | matchValue(tableAlignByType)' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textAlignConfigColumn = {\n ...textAlignConfigTable,\n option: 'align',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst unitPositionConfig = {\n label: _('Units position'),\n editor: 'editor.select',\n option: 'unitPosition',\n editorProps: {\n values: [\n { label: _('Before'), value: 'before' },\n { label: _('After'), value: 'after' },\n ],\n },\n};\n\nconst unitLabelConfig = {\n label: _('Unit label'),\n option: 'unit',\n editor: 'editor.text',\n};\n\nconst timeFormattingConfig = {\n label: _('Date & Time formatting'),\n option: 'format',\n editor: 'editor.text',\n editorProps: {\n tooltip: _('For example: DD-MM-YYYY'),\n },\n};\n\nconst sequentialColorConfig = [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n];\n\nconst matchColorConfig = [{ match: '', value: '#5C33FF' }];\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 defaultHeaderBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray20(props),\n light: variables.gray92(props),\n },\n prisma: variables.backgroundColor(props),\n })(props),\n rowBackgroundColorEven: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorPage(props),\n })(props),\n rowBackgroundColorOdd: props =>\n pick({\n enterprise: {\n dark: '#0D1012',\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\nconst EDITOR_LABEL_WIDTH = 100;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Rows displayed'),\n option: 'count',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Row numbers'),\n option: 'showRowNumbers',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Internal fields'),\n option: 'showInternalFields',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Header row'),\n option: 'headerVisibility',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Inline'), value: 'inline' },\n { label: _('Fixed'), value: 'fixed' },\n { label: _('Hidden'), value: 'none' },\n ],\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n key: 'backgroundColor',\n editor: 'editor.tableBackgroundColor',\n editorProps: {\n themes,\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n option: 'font',\n label: _('Font'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Proportional (Default)'), value: 'proportional' },\n { label: _('Monospace'), value: 'monospace' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n option: 'fontSize',\n label: _('Font size'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Extra Small (font 10px, row 24px)'), value: 'extraSmall' },\n { label: _('Small (font 12px, row 24px)'), value: 'small' },\n { label: _('Default (font 14px, row 32px)'), value: 'default' },\n { label: _('Large (font 16px, row 36px)'), value: 'large' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n ...headerAlignConfigTable,\n },\n ],\n [\n {\n ...textAlignConfigTable,\n },\n ],\n [\n {\n label: _('Column-specific formatting'),\n editor: 'editor.tableColumnFormatter',\n editorProps: {\n // popover: {sections: [textFormatConfig, formatByTypeConfig, columnColoringConfig]}\n // Table column coloring does not adhere to same DSL structure as other dynamically colored options\n // we use the FormatterEditor directly and not the DynamicColorEditor's provided DSL builders\n columnColoringConfig: {\n coloringTypes: [\n {\n label: _('Text'),\n value: 'rowColors',\n },\n {\n label: _('Background'),\n value: 'rowBackgroundColors',\n },\n ],\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n rowBackgroundColors: sequentialColorConfig,\n rowColors: sequentialColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n rowBackgroundColors: matchColorConfig,\n rowColors: matchColorConfig,\n },\n },\n ],\n themes,\n },\n defaultOptionsByType: {\n number: {\n thousandSeparated: false,\n unitPosition: 'after',\n },\n string: {\n unitPosition: 'after',\n },\n text: {\n align: 'auto',\n headerAlign: 'auto',\n textOverflow: 'break-word',\n },\n },\n textFormatConfig: [\n [\n {\n ...headerAlignConfigColumn,\n },\n ],\n [\n {\n ...textAlignConfigColumn,\n },\n ],\n [\n {\n ...textOverflowConfigColumn,\n },\n ],\n ],\n flyoutConfig: {\n number: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n [\n {\n label: _('Precision'),\n option: 'precision',\n editor: 'editor.select',\n editorProps: {\n values: generatePrecisionValues(20),\n },\n },\n {\n label: _('Thousand separators'),\n option: 'thousandSeparated',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Off'), value: false },\n { label: _('On'), value: true },\n ],\n },\n },\n ],\n ],\n // TODO(fkurniawan): fill in with proper editor components\n sparkline: [],\n string: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n ],\n time: [\n [\n {\n ...timeFormattingConfig,\n },\n ],\n ],\n },\n value: ({ context, options }) => {\n return {\n context,\n columnFormat: options.columnFormat,\n tableFormat: options.tableFormat,\n };\n },\n },\n key: 'TableColumnFormatterEditor',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.table',\n /**\n * viz name\n */\n name: _('Table'),\n category: VizCategory.TABLE,\n /**\n * viz icon\n */\n icon: TableIcon,\n placeholderIcon: TablePlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'cell.click': {\n description: 'triggered when user clicks a table cell',\n },\n },\n supports: [\n VizBehavior.DYNAMIC_OPTIONS,\n VizBehavior.EVENTS,\n VizBehavior.PAGE_AND_SORT,\n VizBehavior.PLACEHOLDER,\n ],\n themes,\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@splunk/react-icons/TextAlignCenter\");","module.exports = require(\"@splunk/react-icons/TextAlignLeft\");","module.exports = require(\"@splunk/react-icons/TextAlignRight\");","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:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-schemas\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"lodash\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/Table/config.ts","webpack:///external \"@splunk/react-icons/TextAlignCenter\"","webpack:///external \"@splunk/react-icons/TextAlignLeft\"","webpack:///external \"@splunk/react-icons/TextAlignRight\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/themes/variables\""],"names":[],"mappings":"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","file":"Table.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 = 73);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-schemas\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\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 { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"lodash\");","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 DOWNSAMPLING = 'downsampling',\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 TRELLIS = 'trellis',\n}\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 CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { map, get } from 'lodash';\nimport { tableOptionsSchema as optionsSchema } from '@splunk/visualization-schemas';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { Table as TableIcon } from '@splunk/visualization-icons';\nimport { Table as TablePlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport variables from '@splunk/themes/variables';\nimport pick from '@splunk/themes/pick';\nimport TextAlignCenter from '@splunk/react-icons/TextAlignCenter';\nimport TextAlignLeft from '@splunk/react-icons/TextAlignLeft';\nimport TextAlignRight from '@splunk/react-icons/TextAlignRight';\n\nimport { enhanceConfig, generatePrecisionValues } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizCategory } from '../common/interfaces/VizCategory';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: (options: { count?: number } = {}): Record<string, unknown> => ({\n offset: 0,\n count: options.count ? options.count : 10,\n requestTotalCount: true,\n }),\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n tableAlignByType: [\n { match: 'string', value: 'left' },\n { match: 'number', value: 'right' },\n { match: 'time', value: 'left' },\n { match: 'color', value: 'left' },\n { match: 'array', value: 'left' },\n { match: 'sparkline', value: 'center' },\n { match: 'unknown', value: 'left' },\n { match: 'null', value: 'left' },\n ],\n tableCellTypeByType: [\n { match: 'string', value: 'TextCell' },\n { match: 'number', value: 'TextCell' },\n { match: 'time', value: 'TextCell' },\n { match: 'color', value: 'TextCell' },\n { match: 'array', value: 'ArrayCell' },\n { match: 'sparkline', value: 'SparklineCell' },\n { match: 'unknown', value: 'TextCell' },\n { match: 'null', value: 'TextCell' },\n ],\n tableDataFormatByType: {\n time: {\n format: 'YYYY-MM-DD HH:mm:ss',\n },\n },\n\n // NOTE: These contexts are used by the table background color editor.\n // Please be careful removing/renaming/altering them.\n // There are unit tests and visual test that will capture breakages.\n tableRowColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n tableRowBackgroundColorEvenConfig: {\n channel: 'hsv.v',\n value: '*0.96',\n },\n tableHeaderBackgroundColorConfig: {\n channel: 'hsv.v',\n value: '*0.9',\n },\n tableRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd'],\n tableAltRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd', '> themes.rowBackgroundColorEven'],\n tableRowBackgroundColorsByBackgroundColor: ['> backgroundColor'],\n tableAltRowBackgroundColorsByBackgroundColor: [\n '> backgroundColor',\n '> backgroundColor | setColorChannel(tableRowBackgroundColorEvenConfig)',\n ],\n};\n\nconst headerAlignConfigTable = {\n label: _('Header alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.headerAlign',\n editorProps: {\n values: [\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst headerAlignConfigColumn = {\n ...headerAlignConfigTable,\n option: 'headerAlign',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textOverflowConfigColumn = {\n label: _('Text wrapping'),\n editor: 'editor.radioBar',\n option: 'textOverflow',\n editorProps: {\n values: [\n { label: _('Standard'), value: 'break-word' },\n { label: _('Anywhere'), value: 'anywhere' },\n { label: _('Trim'), value: 'ellipsis' },\n ],\n },\n};\n\nconst textAlignConfigTable = {\n label: _('Cells alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.align',\n editorProps: {\n values: [\n { label: _('Auto'), value: '> table | type() | matchValue(tableAlignByType)' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textAlignConfigColumn = {\n ...textAlignConfigTable,\n option: 'align',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst unitPositionConfig = {\n label: _('Units position'),\n editor: 'editor.select',\n option: 'unitPosition',\n editorProps: {\n values: [\n { label: _('Before'), value: 'before' },\n { label: _('After'), value: 'after' },\n ],\n },\n};\n\nconst unitLabelConfig = {\n label: _('Unit label'),\n option: 'unit',\n editor: 'editor.text',\n};\n\nconst timeFormattingConfig = {\n label: _('Date & Time formatting'),\n option: 'format',\n editor: 'editor.text',\n editorProps: {\n tooltip: _('For example: DD-MM-YYYY'),\n },\n};\n\nconst sequentialColorConfig = [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n];\n\nconst matchColorConfig = [{ match: '', value: '#5C33FF' }];\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 defaultHeaderBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray20(props),\n light: variables.gray92(props),\n },\n prisma: variables.backgroundColor(props),\n })(props),\n rowBackgroundColorEven: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorPage(props),\n })(props),\n rowBackgroundColorOdd: props =>\n pick({\n enterprise: {\n dark: '#0D1012',\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\nconst EDITOR_LABEL_WIDTH = 100;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Rows displayed'),\n option: 'count',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Row numbers'),\n option: 'showRowNumbers',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Internal fields'),\n option: 'showInternalFields',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Header row'),\n option: 'headerVisibility',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Inline'), value: 'inline' },\n { label: _('Fixed'), value: 'fixed' },\n { label: _('Hidden'), value: 'none' },\n ],\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n key: 'backgroundColor',\n editor: 'editor.tableBackgroundColor',\n editorProps: {\n themes,\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n option: 'font',\n label: _('Font'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Proportional (Default)'), value: 'proportional' },\n { label: _('Monospace'), value: 'monospace' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n option: 'fontSize',\n label: _('Font size'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Extra Small (font 10px, row 24px)'), value: 'extraSmall' },\n { label: _('Small (font 12px, row 24px)'), value: 'small' },\n { label: _('Default (font 14px, row 32px)'), value: 'default' },\n { label: _('Large (font 16px, row 36px)'), value: 'large' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n ...headerAlignConfigTable,\n },\n ],\n [\n {\n ...textAlignConfigTable,\n },\n ],\n [\n {\n label: _('Column-specific formatting'),\n editor: 'editor.tableColumnFormatter',\n editorProps: {\n // popover: {sections: [textFormatConfig, formatByTypeConfig, columnColoringConfig]}\n // Table column coloring does not adhere to same DSL structure as other dynamically colored options\n // we use the FormatterEditor directly and not the DynamicColorEditor's provided DSL builders\n columnColoringConfig: {\n coloringTypes: [\n {\n label: _('Text'),\n value: 'rowColors',\n },\n {\n label: _('Background'),\n value: 'rowBackgroundColors',\n },\n ],\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n rowBackgroundColors: sequentialColorConfig,\n rowColors: sequentialColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n rowBackgroundColors: matchColorConfig,\n rowColors: matchColorConfig,\n },\n },\n ],\n themes,\n },\n defaultOptionsByType: {\n number: {\n thousandSeparated: false,\n unitPosition: 'after',\n },\n string: {\n unitPosition: 'after',\n },\n text: {\n align: 'auto',\n headerAlign: 'auto',\n textOverflow: 'break-word',\n },\n time: {\n format: 'YYYY-MM-DD HH:mm:ss',\n },\n },\n textFormatConfig: [\n [\n {\n ...headerAlignConfigColumn,\n },\n ],\n [\n {\n ...textAlignConfigColumn,\n },\n ],\n [\n {\n ...textOverflowConfigColumn,\n },\n ],\n ],\n flyoutConfig: {\n number: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n [\n {\n label: _('Precision'),\n option: 'precision',\n editor: 'editor.select',\n editorProps: {\n values: generatePrecisionValues(20),\n },\n },\n {\n label: _('Thousand separators'),\n option: 'thousandSeparated',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Off'), value: false },\n { label: _('On'), value: true },\n ],\n },\n },\n ],\n ],\n // TODO(fkurniawan): fill in with proper editor components\n sparkline: [],\n string: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n ],\n time: [\n [\n {\n ...timeFormattingConfig,\n },\n ],\n ],\n },\n value: ({ context, options }) => {\n return {\n context,\n columnFormat: options.columnFormat,\n tableFormat: options.tableFormat,\n };\n },\n },\n key: 'TableColumnFormatterEditor',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.table',\n /**\n * viz name\n */\n name: _('Table'),\n category: VizCategory.TABLE,\n /**\n * viz icon\n */\n icon: TableIcon,\n placeholderIcon: TablePlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'cell.click': {\n description: 'triggered when user clicks a table cell',\n },\n },\n supports: [\n VizBehavior.DYNAMIC_OPTIONS,\n VizBehavior.EVENTS,\n VizBehavior.PAGE_AND_SORT,\n VizBehavior.PLACEHOLDER,\n ],\n themes,\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@splunk/react-icons/TextAlignCenter\");","module.exports = require(\"@splunk/react-icons/TextAlignLeft\");","module.exports = require(\"@splunk/react-icons/TextAlignRight\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/themes/variables\");"],"sourceRoot":""}
|