@splunk/visualizations 24.0.0 → 24.1.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/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Background_Color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Field_Order.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Field_Order_First_And_Last.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Field_Order_Some.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Fields_Columns.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Handles_Large_Data_Set.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Link_Color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Link_Width.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Height.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Highlight_Color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Spacing_X.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Spacing_Y.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Node_Width.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Result_Limit.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Show_Node_Counts_False.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Show_Value_Counts_False.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureLinkGraph_Width_Height.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Line_Line_Basic_Line_with_offset_IANA_timezone.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Line_Line_Basic_Line_with_offset_serialized_timezone.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Line_Line_Basic_Line_with_offset_utc_timezone.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Basic_LinkGraph.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_First_and_Last_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_From_the_First_to_the_Last_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Field_Order_From_the_Last_to_the_First_Fields.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Node_Text_Color.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Node_Text_Highlight_Color.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_LinkGraph_LinkGraph_Result_Limit_3.png +0 -0
- package/Area.config.js +4 -0
- package/Area.config.js.map +1 -1
- package/Area.js +57 -44
- package/Area.js.map +1 -1
- package/Bar.js +46 -37
- package/Bar.js.map +1 -1
- package/Bubble.js +39 -30
- package/Bubble.js.map +1 -1
- package/ChoroplethSvg.js +40 -39
- package/ChoroplethSvg.js.map +1 -1
- package/Column.js +46 -37
- package/Column.js.map +1 -1
- package/Ellipse.config.js +0 -4
- package/Ellipse.config.js.map +1 -1
- package/Ellipse.js +20 -23
- package/Ellipse.js.map +1 -1
- package/FillerGauge.js +24 -23
- package/FillerGauge.js.map +1 -1
- package/Image.js +12 -12
- package/Image.js.map +1 -1
- package/Line.js +46 -37
- package/Line.js.map +1 -1
- package/LinkGraph.config.js +48 -1
- package/LinkGraph.config.js.map +1 -1
- package/LinkGraph.js +118 -54
- package/LinkGraph.js.map +1 -1
- package/Markdown.config.js +0 -4
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +11 -15
- package/Markdown.js.map +1 -1
- package/MarkerGauge.js +26 -25
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.js +29 -28
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +0 -4
- package/Pie.config.js.map +1 -1
- package/Pie.js +36 -31
- package/Pie.js.map +1 -1
- package/Punchcard.js +51 -50
- package/Punchcard.js.map +1 -1
- package/Rectangle.config.js +0 -4
- package/Rectangle.config.js.map +1 -1
- package/Rectangle.js +26 -30
- package/Rectangle.js.map +1 -1
- package/Sankey.js +51 -50
- package/Sankey.js.map +1 -1
- package/Scatter.js +168 -158
- package/Scatter.js.map +1 -1
- package/SingleValue.js +67 -67
- package/SingleValue.js.map +1 -1
- package/SingleValueBasic.js +8 -8
- package/SingleValueBasic.js.map +1 -1
- package/SingleValueIcon.js +55 -54
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.js +85 -85
- package/SingleValueRadial.js.map +1 -1
- package/Table.js +66 -66
- package/Table.js.map +1 -1
- package/common/Charting.js +19 -10
- package/common/Charting.js.map +1 -1
- package/common/EventsDoc.js +3 -2
- package/common/EventsDoc.js.map +1 -1
- package/common/GaugeMajorTicks.js +2 -2
- package/common/GaugeMajorTicks.js.map +1 -1
- package/common/GaugeValueMarker.js +2 -2
- package/common/GaugeValueMarker.js.map +1 -1
- package/common/OptionsDoc.js +9 -8
- package/common/OptionsDoc.js.map +1 -1
- package/common/OverviewDoc.js +22 -22
- package/common/OverviewDoc.js.map +1 -1
- package/common/SplunkVisualizationApi.js +2 -2
- package/common/SplunkVisualizationApi.js.map +1 -1
- package/common/ThemesDoc.js +2 -2
- package/common/ThemesDoc.js.map +1 -1
- package/common/chartingUtils.js +2 -2
- package/common/chartingUtils.js.map +1 -1
- package/common/docUtils.js +4 -4
- package/common/docUtils.js.map +1 -1
- package/common/gaugeUtils.js +7 -7
- package/common/gaugeUtils.js.map +1 -1
- package/common/shapeUtils.js +8 -8
- package/common/shapeUtils.js.map +1 -1
- package/common/withDashboardViz.js +29 -28
- package/common/withDashboardViz.js.map +1 -1
- package/package.json +9 -9
package/common/Charting.js
CHANGED
|
@@ -248,8 +248,6 @@ exports.ChartingApiFunctional = ChartingApiFunctional;
|
|
|
248
248
|
"use strict";
|
|
249
249
|
|
|
250
250
|
|
|
251
|
-
var _this = this;
|
|
252
|
-
|
|
253
251
|
Object.defineProperty(exports, "__esModule", {
|
|
254
252
|
value: true
|
|
255
253
|
});
|
|
@@ -275,15 +273,17 @@ __webpack_require__(42); // fixme, @splunk/charting should be refactor to use lo
|
|
|
275
273
|
|
|
276
274
|
var charting_bundle_1 = __webpack_require__(43);
|
|
277
275
|
|
|
276
|
+
var TimezoneContext_1 = __webpack_require__(44);
|
|
277
|
+
|
|
278
278
|
var style_1 = __webpack_require__(21);
|
|
279
279
|
|
|
280
280
|
var styled_components_1 = __webpack_require__(2);
|
|
281
281
|
|
|
282
282
|
var Message_1 = __webpack_require__(18);
|
|
283
283
|
|
|
284
|
-
var useSplunkTheme_1 = __webpack_require__(
|
|
284
|
+
var useSplunkTheme_1 = __webpack_require__(45);
|
|
285
285
|
|
|
286
|
-
var themeUtils_1 = __webpack_require__(
|
|
286
|
+
var themeUtils_1 = __webpack_require__(46);
|
|
287
287
|
|
|
288
288
|
var ChartingApi_1 = __webpack_require__(22);
|
|
289
289
|
|
|
@@ -381,6 +381,7 @@ var Charting = function Charting(props) {
|
|
|
381
381
|
var chart = react_1.useRef();
|
|
382
382
|
var needsRedraw = react_1.useRef(true);
|
|
383
383
|
var api = react_1.useRef(new ChartingApi_1.ChartingApiFunctional(chart));
|
|
384
|
+
var timezone = react_1.useContext(TimezoneContext_1.default);
|
|
384
385
|
|
|
385
386
|
var computeChartingSize = function computeChartingSize() {
|
|
386
387
|
if (container.current) {
|
|
@@ -410,6 +411,7 @@ var Charting = function Charting(props) {
|
|
|
410
411
|
onPointMouseOver = props.onPointMouseOver,
|
|
411
412
|
onEventTrigger = props.onEventTrigger;
|
|
412
413
|
var prevOptions = usePrevious(options);
|
|
414
|
+
var prevTimezone = usePrevious(timezone);
|
|
413
415
|
|
|
414
416
|
var handleClick = function handleClick(chartEvent, type) {
|
|
415
417
|
var payload = lodash_1.pick(chartEvent, 'name2', 'value2', '_span', 'modifierKey');
|
|
@@ -493,9 +495,9 @@ var Charting = function Charting(props) {
|
|
|
493
495
|
var computedChartSize = computeChartingSize();
|
|
494
496
|
var computedWidth = computedChartSize.width;
|
|
495
497
|
var computedHeight = computedChartSize.height;
|
|
496
|
-
var serializedTimezone =
|
|
497
|
-
var ianaTimezone =
|
|
498
|
-
var utcOffset =
|
|
498
|
+
var serializedTimezone = timezone === null || timezone === void 0 ? void 0 : timezone.serializedTimezone;
|
|
499
|
+
var ianaTimezone = timezone === null || timezone === void 0 ? void 0 : timezone.ianaTimezone;
|
|
500
|
+
var utcOffset = timezone === null || timezone === void 0 ? void 0 : timezone.utcOffset;
|
|
499
501
|
|
|
500
502
|
if (!computedWidth || !computedHeight) {
|
|
501
503
|
return;
|
|
@@ -591,7 +593,8 @@ var Charting = function Charting(props) {
|
|
|
591
593
|
react_1.useEffect(function () {
|
|
592
594
|
// TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme
|
|
593
595
|
// seems like redraw doesn't suffice to update the background colors
|
|
594
|
-
if (!chart.current || !exports.canUpdateInPlace(prevOptions, options) ||
|
|
596
|
+
if (!chart.current || !exports.canUpdateInPlace(prevOptions, options) || // timezone is a simple object so this comparison should be fast
|
|
597
|
+
JSON.stringify(prevTimezone) !== JSON.stringify(timezone) || !props.themeKey && prevTheme !== themeKey || prevOnClick !== onClick) {
|
|
595
598
|
needsInit.current = true;
|
|
596
599
|
}
|
|
597
600
|
|
|
@@ -599,7 +602,7 @@ var Charting = function Charting(props) {
|
|
|
599
602
|
// otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change
|
|
600
603
|
|
|
601
604
|
drawChart();
|
|
602
|
-
}, [JSON.stringify(options), JSON.stringify(chartData.toJSON()), JSON.stringify(chartData.annotations), themeKey, onClick]);
|
|
605
|
+
}, [JSON.stringify(options), JSON.stringify(chartData.toJSON()), JSON.stringify(chartData.annotations), timezone === null || timezone === void 0 ? void 0 : timezone.ianaTimezone, timezone === null || timezone === void 0 ? void 0 : timezone.utcOffset, timezone === null || timezone === void 0 ? void 0 : timezone.serializedTimezone, themeKey, onClick]);
|
|
603
606
|
return React.createElement(ChartingContainer, {
|
|
604
607
|
style: style,
|
|
605
608
|
ref: onContainerMount,
|
|
@@ -688,12 +691,18 @@ module.exports = require("@splunk/charting-bundle");
|
|
|
688
691
|
/* 44 */
|
|
689
692
|
/***/ (function(module, exports) {
|
|
690
693
|
|
|
691
|
-
module.exports = require("@splunk/
|
|
694
|
+
module.exports = require("@splunk/visualization-context/TimezoneContext");
|
|
692
695
|
|
|
693
696
|
/***/ }),
|
|
694
697
|
/* 45 */
|
|
695
698
|
/***/ (function(module, exports) {
|
|
696
699
|
|
|
700
|
+
module.exports = require("@splunk/themes/useSplunkTheme");
|
|
701
|
+
|
|
702
|
+
/***/ }),
|
|
703
|
+
/* 46 */
|
|
704
|
+
/***/ (function(module, exports) {
|
|
705
|
+
|
|
697
706
|
module.exports = require("@splunk/visualizations-shared/themeUtils");
|
|
698
707
|
|
|
699
708
|
/***/ })
|
package/common/Charting.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"styled-components\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/ChartingApi.ts","webpack:///./src/common/Charting.tsx","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///external \"react-event-listener\"","webpack:///external \"@splunk/visualizations-shared/i18n\"","webpack:///external \"@splunk/charting-bundle\"","webpack:///external \"@splunk/themes/useSplunkTheme\"","webpack:///external \"@splunk/visualizations-shared/themeUtils\""],"names":[],"mappings":"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","file":"Charting.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 = 39);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/visualizations-shared/style\");","import jsCharting from '@splunk/charting-bundle';\n\ninterface Point {\n /**\n * Valid xValue of the chart\n *\n * @type {string|number}\n * @memberof Point\n */\n xValue?: string | number;\n\n /**\n * Valid seriesName for a chart\n *\n * @type {string}\n * @memberof Point\n */\n seriesName?: string;\n}\n\nexport class ChartingApiFunctional {\n // eslint-disable-next-line no-useless-constructor\n constructor(private chartRef: any) {}\n\n /**\n * Allows users to programmatically highlight a point on the chart\n *\n * @memberof ChartingApiFunctional\n */\n highlight({ xValue, seriesName }: Point = { xValue: '', seriesName: '' }): void {\n this.getChart().highlight(xValue, seriesName);\n }\n\n /**\n * Allows users to programmatically unhighlight all points on the chart\n *\n * @memberof ChartingApiFunctional\n */\n unHighlight(): void {\n this.getChart().unHighlight();\n }\n\n // returns chart object\n getChart(): jsCharting {\n return this.chartRef?.current;\n }\n}\n","/* eslint-disable react/no-unused-prop-types */\nimport { pick, debounce, get, noop } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { useEffect, useRef } from 'react';\nimport * as React from 'react';\nimport * as T from 'prop-types';\nimport EventListener from 'react-event-listener';\nimport '@splunk/visualizations-shared/i18n'; // fixme, @splunk/charting should be refactor to use locale & timezone instead of i18n functions\nimport jsCharting from '@splunk/charting-bundle';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport styled from 'styled-components';\nimport Message from '@splunk/visualizations-shared/Message';\nimport useSplunkTheme from '@splunk/themes/useSplunkTheme';\nimport { getChartingThemeKey } from '@splunk/visualizations-shared/themeUtils';\nimport { ChartingApiFunctional } from './ChartingApi';\n\nexport const NO_INPLACE_PROPS = [\n 'chart',\n 'chart.orientation',\n 'layout.splitSeries',\n 'chart.style',\n 'legend.placement',\n];\n\nexport const changedOptions = (curOptions: Record<string, any>, nextOptions: Record<string, any>): string[] =>\n Object.keys(curOptions)\n .filter(key => !(key in nextOptions))\n .concat(\n Object.keys(nextOptions).filter(\n key => !(key in curOptions) || curOptions[key] !== nextOptions[key]\n )\n );\n\njsCharting.enableScaledEvents();\n\nfunction usePrevious(value): Record<string, any> {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport const canUpdateInPlace = (\n curOptions: Record<string, any>,\n nextOptions: Record<string, any>\n): boolean => {\n // if either of the options are undefined\n // it cannot update in place.\n if (!curOptions || !nextOptions) {\n return false;\n }\n return (\n !NO_INPLACE_PROPS.some(p => curOptions[p] !== nextOptions[p]) &&\n !changedOptions(curOptions, nextOptions).some(p => p.toLowerCase().endsWith('color'))\n );\n};\n\n// create 'row' payloads from 'rowContext' in the flattened format:\n// row.<fieldname>.value\nexport const updateRowPayload = (\n chartEventRowContext: Record<string, any>,\n payload: Record<string, any>\n): Record<string, any> => {\n Object.keys(chartEventRowContext || {}).forEach(key => {\n // eslint-disable-next-line no-param-reassign\n payload[`${key}.value`] = chartEventRowContext[key];\n });\n\n return payload;\n};\n\nexport interface ContainerProps {\n width: string | number;\n height: string | number;\n}\n\ntype ChartEventType = 'pointClick' | 'pointMouseOver' | 'pointMouseOut' | 'chartRangeSelect' | 'legendClick';\nenum VizChartEventType {\n POINT_CLICK = 'point.click',\n POINT_MOUSE_OUT = 'point.mouseout',\n POINT_MOUSE_OVER = 'point.mouseover',\n LEGEND_CLICK = 'legend.click',\n}\n\ninterface ChartEvent<T extends ChartEventType> extends Event {\n name: string;\n name2: string;\n value?: unknown;\n value2?: unknown;\n rowContext?: Record<string, any>;\n span?: number;\n type: T;\n}\n\n// @TODO(pwied): remove after HC upgrade to 8+\n// .highcharts-a11y-proxy-container rule addresses a HighCharts < 8 bug\n// caused by the accessibility plugin\n// https://github.com/highcharts/highcharts/issues/12883\nconst ChartingContainer = styled.div.attrs((props: ContainerProps) => ({\n 'data-test': 'charting-container',\n width: props.width,\n height: props.height,\n}))`\n & .highcharts-a11y-proxy-container {\n pointer-events: none;\n }\n overflow: hidden;\n position: relative;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nexport interface ChartingProps {\n // width in pixel or string, defaults to 100%\n width: string | number;\n // height in pixel or string\n height: string | number;\n // visualization formatting options\n options?: Record<string, any>;\n // charting dataset from jsCharting.extractChartReadyData\n chartData: Record<string, any>;\n // callbacks to trigger event\n onEventTrigger?: (...args: any[]) => void;\n onSelect?: (...args: any[]) => void;\n onClick?: (...args: any[]) => void;\n onPointMouseOver?: (...args: any[]) => void;\n onPointMouseOut?: (...args: any[]) => void;\n // Custom style on visualization\n style?: Record<string, any>;\n colorPalette?: Array<string>;\n visualizationApiRef?: (...args: any[]) => void;\n themeKey?: string;\n}\n\nconst propTypes: Record<keyof ChartingProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n options: T.object,\n chartData: T.object,\n onEventTrigger: T.func,\n onClick: T.func,\n onSelect: T.func,\n onPointMouseOver: T.func,\n onPointMouseOut: T.func,\n style: T.object,\n colorPalette: T.array,\n visualizationApiRef: T.func,\n themeKey: T.string,\n};\n\nconst Charting = (props: ChartingProps): React.ReactElement => {\n const container = useRef<HTMLDivElement>(null);\n const needsInit = useRef<boolean>(true);\n const chart = useRef<jsCharting>();\n const needsRedraw = useRef<boolean>(true);\n const api = useRef(new ChartingApiFunctional(chart));\n\n const computeChartingSize = () => {\n if (container.current) {\n const rect = container.current.getBoundingClientRect();\n return {\n height: rect.height,\n width: rect.width,\n };\n }\n return {};\n };\n const splunkTheme = useSplunkTheme();\n const themeKey = props.themeKey ? props.themeKey : getChartingThemeKey({ splunkThemeV1: splunkTheme });\n const {\n width,\n height,\n style,\n chartData,\n options,\n colorPalette,\n onClick,\n onSelect,\n onPointMouseOut,\n onPointMouseOver,\n onEventTrigger,\n } = props;\n const prevOptions = usePrevious(options);\n\n const handleClick = (\n chartEvent: ChartEvent<'pointClick' | 'legendClick'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointClick' | 'legendClick'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n\n if (type === VizChartEventType.POINT_CLICK) {\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n }\n\n onClick({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const destroyChart = (): void => {\n if (chart.current) {\n chart.current.destroy();\n chart.current = null;\n }\n needsRedraw.current = true;\n needsInit.current = true;\n };\n\n const handleSelect = (chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n // todo: need change this after breaking all visualizations\n if (onSelect && typeof onSelect === 'function') {\n onSelect({\n type: 'range.select',\n originalEvent: chartEvent,\n payload: pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue'),\n });\n\n return;\n }\n\n // the chartEvent here is a jQuery event\n onEventTrigger({\n type: 'range.select',\n originalEvent: chartEvent,\n payload: pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue'),\n });\n };\n\n const handlePointMouseOut = (chartEvent: ChartEvent<'pointMouseOut'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOut'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n\n onPointMouseOut({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const handlePointMouseOver = (\n chartEvent: ChartEvent<'pointMouseOver'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointMouseOver'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n\n onPointMouseOver({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const drawChart = (): void => {\n const updatedOptions = { ...options, shouldColorizeTooltipData: false };\n const computedChartSize = computeChartingSize();\n const computedWidth = computedChartSize.width;\n const computedHeight = computedChartSize.height;\n const serializedTimezone = get(this, ['context', 'serializedTimezone']);\n const ianaTimezone = get(this, ['context', 'ianaTimezone']);\n const utcOffset = get(this, ['context', 'utcOffset']);\n if (!computedWidth || !computedHeight) {\n return;\n }\n if (!chartData || !Object.keys(chartData).length) {\n return;\n }\n\n // splunk-charting layers configuration option updates.\n // when an option is removed it needs to be set to an empty string\n // to override the previous configuration\n if (prevOptions) {\n Object.keys(prevOptions).forEach(key => {\n if (updatedOptions[key] === undefined) {\n updatedOptions[key] = '';\n }\n });\n }\n\n try {\n if (needsInit.current) {\n destroyChart();\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current = jsCharting.createChart(container.current, {\n ...updatedOptions,\n drilldown: 'all',\n ...(typeof serializedTimezone === 'string' && {\n 'time.serializedTz': serializedTimezone,\n }),\n ...(typeof ianaTimezone === 'string' && {\n 'time.ianaTimezone': ianaTimezone,\n }),\n ...(typeof utcOffset === 'number' && {\n 'time.timezoneOffset': utcOffset,\n }),\n });\n // bind event handlers\n chart.current.on('pointClick', e => {\n handleClick(e, VizChartEventType.POINT_CLICK);\n });\n chart.current.on('pointMouseOver', e => {\n handlePointMouseOver(e, VizChartEventType.POINT_MOUSE_OVER);\n });\n chart.current.on('pointMouseOut', e => {\n handlePointMouseOut(e, VizChartEventType.POINT_MOUSE_OUT);\n });\n chart.current.on('legendClick', e => {\n handleClick(e, VizChartEventType.LEGEND_CLICK);\n });\n chart.current.on('chartRangeSelect', handleSelect);\n }\n if (needsRedraw.current) {\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current.prepareAndDraw(chartData, updatedOptions, () => {});\n }\n if (chart.current) {\n chart.current.resize(computedWidth, computedHeight);\n }\n needsInit.current = false;\n needsRedraw.current = false;\n } catch (e) {\n window.console.error('Caught error rendering chart:', e);\n }\n };\n\n const debouncedDrawChart = debounce(drawChart, 5);\n\n const onContainerMount = chartingContainer => {\n container.current = chartingContainer;\n debouncedDrawChart();\n };\n\n const prevTheme = usePrevious(themeKey);\n const prevOnClick = usePrevious(onClick);\n\n useEffect(() => {\n debouncedDrawChart();\n props.visualizationApiRef(api.current);\n return () => {\n props.visualizationApiRef(null);\n destroyChart();\n };\n }, []);\n\n useEffect(() => {\n // TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme\n // seems like redraw doesn't suffice to update the background colors\n if (\n !chart.current ||\n !canUpdateInPlace(prevOptions, options) ||\n (!props.themeKey && prevTheme !== themeKey) ||\n prevOnClick !== onClick\n ) {\n needsInit.current = true;\n }\n needsRedraw.current = true;\n // need to immediately call drawChart upon an option or chartData change\n // otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change\n drawChart();\n }, [\n JSON.stringify(options),\n JSON.stringify(chartData.toJSON()),\n JSON.stringify(chartData.annotations),\n themeKey,\n onClick,\n ]);\n return (\n <ChartingContainer style={style} ref={onContainerMount} width={width} height={height}>\n <EventListener target={window} onResize={debouncedDrawChart} />\n </ChartingContainer>\n );\n};\n\nconst defaultProps: Record<keyof ChartingProps, any> = {\n width: '100%',\n height: 250,\n options: {},\n style: {},\n // todo: need remove it\n onEventTrigger: noop,\n onClick: noop,\n onSelect: noop,\n onPointMouseOver: noop,\n onPointMouseOut: noop,\n colorPalette: VIZ_CATEGORICAL,\n visualizationApiRef: noop,\n chartData: null,\n themeKey: null,\n};\n\nCharting.propTypes = propTypes;\nCharting.defaultProps = defaultProps;\n\n// allow for early return in case of empty chartData while still following hook rules\nconst withEmptyChartMessage = (Chart): React.FunctionComponent<ChartingProps> => {\n const Wrapper = (props: ChartingProps): React.ReactElement => {\n const { chartData } = props;\n\n if (!chartData) {\n return <Message message={_('No DataSource')} level=\"warning\" />;\n }\n\n if (chartData && !Object.keys(chartData).length) {\n return <Message message={_('No Result')} level=\"info\" />;\n }\n\n return <Chart {...props} />;\n };\n\n Wrapper.displayName = 'ChartingWrapper';\n Wrapper.propTypes = propTypes;\n Wrapper.defaultProps = defaultProps;\n return Wrapper;\n};\n\n// export default Charting;\nexport default withEmptyChartMessage(Charting as any);\n","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"react-event-listener\");","module.exports = require(\"@splunk/visualizations-shared/i18n\");","module.exports = require(\"@splunk/charting-bundle\");","module.exports = require(\"@splunk/themes/useSplunkTheme\");","module.exports = require(\"@splunk/visualizations-shared/themeUtils\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"styled-components\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/ChartingApi.ts","webpack:///./src/common/Charting.tsx","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///external \"react-event-listener\"","webpack:///external \"@splunk/visualizations-shared/i18n\"","webpack:///external \"@splunk/charting-bundle\"","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/themes/useSplunkTheme\"","webpack:///external \"@splunk/visualizations-shared/themeUtils\""],"names":[],"mappings":"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","file":"Charting.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 = 39);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/visualizations-shared/style\");","import jsCharting from '@splunk/charting-bundle';\n\ninterface Point {\n /**\n * Valid xValue of the chart\n *\n * @type {string|number}\n * @memberof Point\n */\n xValue?: string | number;\n\n /**\n * Valid seriesName for a chart\n *\n * @type {string}\n * @memberof Point\n */\n seriesName?: string;\n}\n\nexport class ChartingApiFunctional {\n // eslint-disable-next-line no-useless-constructor\n constructor(private chartRef: any) {}\n\n /**\n * Allows users to programmatically highlight a point on the chart\n *\n * @memberof ChartingApiFunctional\n */\n highlight({ xValue, seriesName }: Point = { xValue: '', seriesName: '' }): void {\n this.getChart().highlight(xValue, seriesName);\n }\n\n /**\n * Allows users to programmatically unhighlight all points on the chart\n *\n * @memberof ChartingApiFunctional\n */\n unHighlight(): void {\n this.getChart().unHighlight();\n }\n\n // returns chart object\n getChart(): jsCharting {\n return this.chartRef?.current;\n }\n}\n","/* eslint-disable react/no-unused-prop-types */\nimport { pick, debounce, noop } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { useEffect, useRef, useContext } from 'react';\nimport * as React from 'react';\nimport * as T from 'prop-types';\nimport EventListener from 'react-event-listener';\nimport '@splunk/visualizations-shared/i18n'; // fixme, @splunk/charting should be refactor to use locale & timezone instead of i18n functions\nimport jsCharting from '@splunk/charting-bundle';\nimport TimezoneContext, { TimezoneContextInterface } from '@splunk/visualization-context/TimezoneContext';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport styled from 'styled-components';\nimport Message from '@splunk/visualizations-shared/Message';\nimport useSplunkTheme from '@splunk/themes/useSplunkTheme';\nimport { getChartingThemeKey } from '@splunk/visualizations-shared/themeUtils';\nimport { ChartingApiFunctional } from './ChartingApi';\n\nexport const NO_INPLACE_PROPS = [\n 'chart',\n 'chart.orientation',\n 'layout.splitSeries',\n 'chart.style',\n 'legend.placement',\n];\n\nexport const changedOptions = (curOptions: Record<string, any>, nextOptions: Record<string, any>): string[] =>\n Object.keys(curOptions)\n .filter(key => !(key in nextOptions))\n .concat(\n Object.keys(nextOptions).filter(\n key => !(key in curOptions) || curOptions[key] !== nextOptions[key]\n )\n );\n\njsCharting.enableScaledEvents();\n\nfunction usePrevious(value): Record<string, any> {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport const canUpdateInPlace = (\n curOptions: Record<string, any>,\n nextOptions: Record<string, any>\n): boolean => {\n // if either of the options are undefined\n // it cannot update in place.\n if (!curOptions || !nextOptions) {\n return false;\n }\n return (\n !NO_INPLACE_PROPS.some(p => curOptions[p] !== nextOptions[p]) &&\n !changedOptions(curOptions, nextOptions).some(p => p.toLowerCase().endsWith('color'))\n );\n};\n\n// create 'row' payloads from 'rowContext' in the flattened format:\n// row.<fieldname>.value\nexport const updateRowPayload = (\n chartEventRowContext: Record<string, any>,\n payload: Record<string, any>\n): Record<string, any> => {\n Object.keys(chartEventRowContext || {}).forEach(key => {\n // eslint-disable-next-line no-param-reassign\n payload[`${key}.value`] = chartEventRowContext[key];\n });\n\n return payload;\n};\n\nexport interface ContainerProps {\n width: string | number;\n height: string | number;\n}\n\ntype ChartEventType = 'pointClick' | 'pointMouseOver' | 'pointMouseOut' | 'chartRangeSelect' | 'legendClick';\nenum VizChartEventType {\n POINT_CLICK = 'point.click',\n POINT_MOUSE_OUT = 'point.mouseout',\n POINT_MOUSE_OVER = 'point.mouseover',\n LEGEND_CLICK = 'legend.click',\n}\n\ninterface ChartEvent<T extends ChartEventType> extends Event {\n name: string;\n name2: string;\n value?: unknown;\n value2?: unknown;\n rowContext?: Record<string, any>;\n span?: number;\n type: T;\n}\n\n// @TODO(pwied): remove after HC upgrade to 8+\n// .highcharts-a11y-proxy-container rule addresses a HighCharts < 8 bug\n// caused by the accessibility plugin\n// https://github.com/highcharts/highcharts/issues/12883\nconst ChartingContainer = styled.div.attrs((props: ContainerProps) => ({\n 'data-test': 'charting-container',\n width: props.width,\n height: props.height,\n}))`\n & .highcharts-a11y-proxy-container {\n pointer-events: none;\n }\n overflow: hidden;\n position: relative;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nexport interface ChartingProps {\n // width in pixel or string, defaults to 100%\n width: string | number;\n // height in pixel or string\n height: string | number;\n // visualization formatting options\n options?: Record<string, any>;\n // charting dataset from jsCharting.extractChartReadyData\n chartData: Record<string, any>;\n // callbacks to trigger event\n onEventTrigger?: (...args: any[]) => void;\n onSelect?: (...args: any[]) => void;\n onClick?: (...args: any[]) => void;\n onPointMouseOver?: (...args: any[]) => void;\n onPointMouseOut?: (...args: any[]) => void;\n // Custom style on visualization\n style?: Record<string, any>;\n colorPalette?: Array<string>;\n visualizationApiRef?: (...args: any[]) => void;\n themeKey?: string;\n}\n\nconst propTypes: Record<keyof ChartingProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n options: T.object,\n chartData: T.object,\n onEventTrigger: T.func,\n onClick: T.func,\n onSelect: T.func,\n onPointMouseOver: T.func,\n onPointMouseOut: T.func,\n style: T.object,\n colorPalette: T.array,\n visualizationApiRef: T.func,\n themeKey: T.string,\n};\n\nconst Charting = (props: ChartingProps): React.ReactElement => {\n const container = useRef<HTMLDivElement>(null);\n const needsInit = useRef<boolean>(true);\n const chart = useRef<jsCharting>();\n const needsRedraw = useRef<boolean>(true);\n const api = useRef(new ChartingApiFunctional(chart));\n const timezone = useContext<TimezoneContextInterface>(TimezoneContext);\n\n const computeChartingSize = () => {\n if (container.current) {\n const rect = container.current.getBoundingClientRect();\n return {\n height: rect.height,\n width: rect.width,\n };\n }\n return {};\n };\n const splunkTheme = useSplunkTheme();\n const themeKey = props.themeKey ? props.themeKey : getChartingThemeKey({ splunkThemeV1: splunkTheme });\n const {\n width,\n height,\n style,\n chartData,\n options,\n colorPalette,\n onClick,\n onSelect,\n onPointMouseOut,\n onPointMouseOver,\n onEventTrigger,\n } = props;\n const prevOptions = usePrevious(options);\n const prevTimezone = usePrevious(timezone);\n\n const handleClick = (\n chartEvent: ChartEvent<'pointClick' | 'legendClick'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointClick' | 'legendClick'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n\n if (type === VizChartEventType.POINT_CLICK) {\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n }\n\n onClick({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const destroyChart = (): void => {\n if (chart.current) {\n chart.current.destroy();\n chart.current = null;\n }\n needsRedraw.current = true;\n needsInit.current = true;\n };\n\n const handleSelect = (chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n // todo: need change this after breaking all visualizations\n if (onSelect && typeof onSelect === 'function') {\n onSelect({\n type: 'range.select',\n originalEvent: chartEvent,\n payload: pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue'),\n });\n\n return;\n }\n\n // the chartEvent here is a jQuery event\n onEventTrigger({\n type: 'range.select',\n originalEvent: chartEvent,\n payload: pick(chartEvent, 'startXIndex', 'endXIndex', 'startXValue', 'endXValue'),\n });\n };\n\n const handlePointMouseOut = (chartEvent: ChartEvent<'pointMouseOut'>, type: VizChartEventType): void => {\n let payload: Partial<ChartEvent<'pointMouseOut'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n\n onPointMouseOut({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const handlePointMouseOver = (\n chartEvent: ChartEvent<'pointMouseOver'>,\n type: VizChartEventType\n ): void => {\n let payload: Partial<ChartEvent<'pointMouseOver'>> = pick(\n chartEvent,\n 'name2',\n 'value2',\n '_span',\n 'modifierKey',\n 'tooltipContext'\n );\n\n payload.name = payload.name2;\n delete payload.name2;\n payload.value = payload.value2;\n delete payload.value2;\n\n payload = updateRowPayload(chartEvent.rowContext, payload);\n\n onPointMouseOver({\n type,\n originalEvent: chartEvent,\n payload,\n });\n };\n\n const drawChart = (): void => {\n const updatedOptions = { ...options, shouldColorizeTooltipData: false };\n const computedChartSize = computeChartingSize();\n const computedWidth = computedChartSize.width;\n const computedHeight = computedChartSize.height;\n const serializedTimezone = timezone?.serializedTimezone;\n const ianaTimezone = timezone?.ianaTimezone;\n const utcOffset = timezone?.utcOffset;\n if (!computedWidth || !computedHeight) {\n return;\n }\n if (!chartData || !Object.keys(chartData).length) {\n return;\n }\n\n // splunk-charting layers configuration option updates.\n // when an option is removed it needs to be set to an empty string\n // to override the previous configuration\n if (prevOptions) {\n Object.keys(prevOptions).forEach(key => {\n if (updatedOptions[key] === undefined) {\n updatedOptions[key] = '';\n }\n });\n }\n\n try {\n if (needsInit.current) {\n destroyChart();\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current = jsCharting.createChart(container.current, {\n ...updatedOptions,\n drilldown: 'all',\n ...(typeof serializedTimezone === 'string' && {\n 'time.serializedTz': serializedTimezone,\n }),\n ...(typeof ianaTimezone === 'string' && {\n 'time.ianaTimezone': ianaTimezone,\n }),\n ...(typeof utcOffset === 'number' && {\n 'time.timezoneOffset': utcOffset,\n }),\n });\n // bind event handlers\n chart.current.on('pointClick', e => {\n handleClick(e, VizChartEventType.POINT_CLICK);\n });\n chart.current.on('pointMouseOver', e => {\n handlePointMouseOver(e, VizChartEventType.POINT_MOUSE_OVER);\n });\n chart.current.on('pointMouseOut', e => {\n handlePointMouseOut(e, VizChartEventType.POINT_MOUSE_OUT);\n });\n chart.current.on('legendClick', e => {\n handleClick(e, VizChartEventType.LEGEND_CLICK);\n });\n chart.current.on('chartRangeSelect', handleSelect);\n }\n if (needsRedraw.current) {\n jsCharting.setTheme(themeKey);\n if (colorPalette.length > 0) {\n jsCharting.setColorPalette(colorPalette);\n }\n chart.current.prepareAndDraw(chartData, updatedOptions, () => {});\n }\n if (chart.current) {\n chart.current.resize(computedWidth, computedHeight);\n }\n needsInit.current = false;\n needsRedraw.current = false;\n } catch (e) {\n window.console.error('Caught error rendering chart:', e);\n }\n };\n\n const debouncedDrawChart = debounce(drawChart, 5);\n\n const onContainerMount = chartingContainer => {\n container.current = chartingContainer;\n debouncedDrawChart();\n };\n\n const prevTheme = usePrevious(themeKey);\n const prevOnClick = usePrevious(onClick);\n\n useEffect(() => {\n debouncedDrawChart();\n props.visualizationApiRef(api.current);\n return () => {\n props.visualizationApiRef(null);\n destroyChart();\n };\n }, []);\n\n useEffect(() => {\n // TODO: figure out why re-init is needed for functional components (i.e. PlatformViz) when changing theme\n // seems like redraw doesn't suffice to update the background colors\n if (\n !chart.current ||\n !canUpdateInPlace(prevOptions, options) ||\n // timezone is a simple object so this comparison should be fast\n JSON.stringify(prevTimezone) !== JSON.stringify(timezone) ||\n (!props.themeKey && prevTheme !== themeKey) ||\n prevOnClick !== onClick\n ) {\n needsInit.current = true;\n }\n needsRedraw.current = true;\n // need to immediately call drawChart upon an option or chartData change\n // otherwise a noop would occur if the onContainerMount drawChart is re-invoked when dimensions change\n drawChart();\n }, [\n JSON.stringify(options),\n JSON.stringify(chartData.toJSON()),\n JSON.stringify(chartData.annotations),\n timezone?.ianaTimezone,\n timezone?.utcOffset,\n timezone?.serializedTimezone,\n themeKey,\n onClick,\n ]);\n return (\n <ChartingContainer style={style} ref={onContainerMount} width={width} height={height}>\n <EventListener target={window} onResize={debouncedDrawChart} />\n </ChartingContainer>\n );\n};\n\nconst defaultProps: Record<keyof ChartingProps, any> = {\n width: '100%',\n height: 250,\n options: {},\n style: {},\n // todo: need remove it\n onEventTrigger: noop,\n onClick: noop,\n onSelect: noop,\n onPointMouseOver: noop,\n onPointMouseOut: noop,\n colorPalette: VIZ_CATEGORICAL,\n visualizationApiRef: noop,\n chartData: null,\n themeKey: null,\n};\n\nCharting.propTypes = propTypes;\nCharting.defaultProps = defaultProps;\n\n// allow for early return in case of empty chartData while still following hook rules\nconst withEmptyChartMessage = (Chart): React.FunctionComponent<ChartingProps> => {\n const Wrapper = (props: ChartingProps): React.ReactElement => {\n const { chartData } = props;\n\n if (!chartData) {\n return <Message message={_('No DataSource')} level=\"warning\" />;\n }\n\n if (chartData && !Object.keys(chartData).length) {\n return <Message message={_('No Result')} level=\"info\" />;\n }\n\n return <Chart {...props} />;\n };\n\n Wrapper.displayName = 'ChartingWrapper';\n Wrapper.propTypes = propTypes;\n Wrapper.defaultProps = defaultProps;\n return Wrapper;\n};\n\n// export default Charting;\nexport default withEmptyChartMessage(Charting as any);\n","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"react-event-listener\");","module.exports = require(\"@splunk/visualizations-shared/i18n\");","module.exports = require(\"@splunk/charting-bundle\");","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","module.exports = require(\"@splunk/themes/useSplunkTheme\");","module.exports = require(\"@splunk/visualizations-shared/themeUtils\");"],"sourceRoot":""}
|
package/common/EventsDoc.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 = 47);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ([
|
|
@@ -207,7 +207,8 @@ module.exports = require("@splunk/react-ui/JSONTree");
|
|
|
207
207
|
/* 43 */,
|
|
208
208
|
/* 44 */,
|
|
209
209
|
/* 45 */,
|
|
210
|
-
/* 46
|
|
210
|
+
/* 46 */,
|
|
211
|
+
/* 47 */
|
|
211
212
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
212
213
|
|
|
213
214
|
"use strict";
|
package/common/EventsDoc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/react-ui/Heading\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/react-ui/Markdown\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@splunk/react-ui/JSONTree\"","webpack:///./src/common/EventsDoc.jsx"],"names":["EventTester","styled","Event","EventName","EventItem","name","desc","marginLeft","T","string","EventsDesc","events","Object","description","isRequired","VisExample","options","Visualization","dsState","onEventTrigger","PureComponent","func","EventExample","event","eventToDisplay","object","EventsDoc","e","handleEvent","Component","any"],"mappings":"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","file":"EventsDoc.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 = 46);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/react-ui/Heading\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/react-ui/Markdown\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@splunk/react-ui/JSONTree\");","/* eslint-disable react/no-multi-comp */\n/* eslint-disable max-classes-per-file */\nimport React, { Component, PureComponent } from 'react';\nimport T from 'prop-types';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport JSONTree from '@splunk/react-ui/JSONTree';\nimport styled from 'styled-components';\n\nconst EventTester = styled.div`\n margin-top: 50px;\n`;\n\nconst Event = styled.div`\n margin-top: 20px;\n`;\nconst EventName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\n\nconst EventItem = ({ name, desc }) => (\n <Event>\n <EventName>{name}</EventName>\n <Markdown style={{ marginLeft: 40 }} text={desc} />\n </Event>\n);\n\nEventItem.propTypes = {\n name: T.string,\n desc: T.string,\n};\n\nconst EventsDesc = ({ events }) => (\n <div>\n <Heading level={4}>{Object.keys(events).length === 0 ? 'No Events' : 'Events'}</Heading>\n {Object.keys(events).map(eventName => (\n <EventItem key={eventName} name={eventName} desc={events[eventName].description} />\n ))}\n </div>\n);\n\nEventsDesc.propTypes = {\n events: T.object.isRequired,\n};\n\nclass VisExample extends PureComponent {\n render() {\n const { options = {}, Visualization, dsState, onEventTrigger } = this.props;\n return (\n <EventTester>\n <Heading level={4}>Test Visualization</Heading>\n <Visualization\n options={options}\n dataSources={dsState}\n onEventTrigger={onEventTrigger}\n hasEventHandlers\n />\n </EventTester>\n );\n }\n}\n\nVisExample.propTypes = {\n options: T.object,\n Visualization: T.any,\n dsState: T.object,\n onEventTrigger: T.func,\n};\n\nconst EventExample = ({ event }) => {\n const eventToDisplay = {\n ...event,\n };\n if (eventToDisplay.originalEvent != null) {\n eventToDisplay.originalEvent = '...Original Event instance...';\n }\n\n return (\n <React.Fragment>\n <Heading level={4}>Event Monitor</Heading>\n <div>\n <JSONTree json={eventToDisplay} expandChildren />\n </div>\n </React.Fragment>\n );\n};\n\nEventExample.propTypes = {\n event: T.object,\n};\n\nclass EventsDoc extends Component {\n constructor(props, context) {\n super(props, context);\n this.state = {\n e: null,\n };\n }\n\n handleEvent = e => {\n this.setState({\n e,\n });\n };\n\n render() {\n return (\n <div>\n <EventsDesc events={this.props.events} />\n <VisExample {...this.props} onEventTrigger={this.handleEvent} />\n <EventExample event={this.state.e} />\n </div>\n );\n }\n}\n\nEventsDoc.propTypes = {\n options: T.object,\n events: T.object,\n dsState: T.object,\n Visualization: T.any,\n};\n\nexport default EventsDoc;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/react-ui/Heading\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/react-ui/Markdown\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@splunk/react-ui/JSONTree\"","webpack:///./src/common/EventsDoc.jsx"],"names":["EventTester","styled","Event","EventName","EventItem","name","desc","marginLeft","T","string","EventsDesc","events","Object","description","isRequired","VisExample","options","Visualization","dsState","onEventTrigger","PureComponent","func","EventExample","event","eventToDisplay","object","EventsDoc","e","handleEvent","Component","any"],"mappings":"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","file":"EventsDoc.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 = 47);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/react-ui/Heading\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/react-ui/Markdown\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@splunk/react-ui/JSONTree\");","/* eslint-disable react/no-multi-comp */\n/* eslint-disable max-classes-per-file */\nimport React, { Component, PureComponent } from 'react';\nimport T from 'prop-types';\nimport Heading from '@splunk/react-ui/Heading';\nimport Markdown from '@splunk/react-ui/Markdown';\nimport JSONTree from '@splunk/react-ui/JSONTree';\nimport styled from 'styled-components';\n\nconst EventTester = styled.div`\n margin-top: 50px;\n`;\n\nconst Event = styled.div`\n margin-top: 20px;\n`;\nconst EventName = styled.div`\n color: #5ca300;\n padding-bottom: 5px;\n`;\n\nconst EventItem = ({ name, desc }) => (\n <Event>\n <EventName>{name}</EventName>\n <Markdown style={{ marginLeft: 40 }} text={desc} />\n </Event>\n);\n\nEventItem.propTypes = {\n name: T.string,\n desc: T.string,\n};\n\nconst EventsDesc = ({ events }) => (\n <div>\n <Heading level={4}>{Object.keys(events).length === 0 ? 'No Events' : 'Events'}</Heading>\n {Object.keys(events).map(eventName => (\n <EventItem key={eventName} name={eventName} desc={events[eventName].description} />\n ))}\n </div>\n);\n\nEventsDesc.propTypes = {\n events: T.object.isRequired,\n};\n\nclass VisExample extends PureComponent {\n render() {\n const { options = {}, Visualization, dsState, onEventTrigger } = this.props;\n return (\n <EventTester>\n <Heading level={4}>Test Visualization</Heading>\n <Visualization\n options={options}\n dataSources={dsState}\n onEventTrigger={onEventTrigger}\n hasEventHandlers\n />\n </EventTester>\n );\n }\n}\n\nVisExample.propTypes = {\n options: T.object,\n Visualization: T.any,\n dsState: T.object,\n onEventTrigger: T.func,\n};\n\nconst EventExample = ({ event }) => {\n const eventToDisplay = {\n ...event,\n };\n if (eventToDisplay.originalEvent != null) {\n eventToDisplay.originalEvent = '...Original Event instance...';\n }\n\n return (\n <React.Fragment>\n <Heading level={4}>Event Monitor</Heading>\n <div>\n <JSONTree json={eventToDisplay} expandChildren />\n </div>\n </React.Fragment>\n );\n};\n\nEventExample.propTypes = {\n event: T.object,\n};\n\nclass EventsDoc extends Component {\n constructor(props, context) {\n super(props, context);\n this.state = {\n e: null,\n };\n }\n\n handleEvent = e => {\n this.setState({\n e,\n });\n };\n\n render() {\n return (\n <div>\n <EventsDesc events={this.props.events} />\n <VisExample {...this.props} onEventTrigger={this.handleEvent} />\n <EventExample event={this.state.e} />\n </div>\n );\n }\n}\n\nEventsDoc.propTypes = {\n options: T.object,\n events: T.object,\n dsState: T.object,\n Visualization: T.any,\n};\n\nexport default EventsDoc;\n"],"sourceRoot":""}
|
|
@@ -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 = 48);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ({
|
|
@@ -120,7 +120,7 @@ module.exports = require("styled-components");
|
|
|
120
120
|
|
|
121
121
|
/***/ }),
|
|
122
122
|
|
|
123
|
-
/***/
|
|
123
|
+
/***/ 48:
|
|
124
124
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
125
125
|
|
|
126
126
|
"use strict";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeMajorTicks.jsx","webpack:///external \"@babel/runtime/helpers/extends\""],"names":["DEFAULT_NUM_OF_TICKS","TICK_LENGTH_DELTA","TICK_LABEL_PADDING_FACTOR","MajorTickLine","styled","props","MajorTickLabel","MajorTick","index","x1","y1","x2","y2","showLabels","label","labelX","labelY","majorTickStrokeColor","majorTickFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","string","positionMajorTick","width","height","startX","startY","orientation","numOfTicks","i","y","x","MajorTicks","min","max","majorUnit","usePercentageRange","range","Number","majorTicks","parseInt","extraNumOfTicks","Math"],"mappings":"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","file":"GaugeMajorTicks.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 = 47);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { isNumerial, formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst DEFAULT_NUM_OF_TICKS = 5;\nconst TICK_LENGTH_DELTA = 5;\nconst TICK_LABEL_PADDING_FACTOR = 3.2;\n\nconst MajorTickLine = styled.line`\n stroke: ${props => props.majorTickStrokeColor};\n stroke-width: 2px;\n stroke-dasharray: ${props => (props.index === 0 ? 0 : 3)};\n`;\n\nconst MajorTickLabel = styled.text`\n font-size: 12px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 19px;\n fill: ${props => props.majorTickFillColor};\n text-anchor: middle;\n text-align: center;\n`;\n\nexport const MajorTick = ({\n index,\n x1,\n y1,\n x2,\n y2,\n showLabels,\n label,\n labelX,\n labelY,\n majorTickStrokeColor,\n majorTickFillColor,\n}) => (\n <g>\n <MajorTickLine\n index={index}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n {showLabels && (\n <MajorTickLabel x={labelX} y={labelY} majorTickFillColor={majorTickFillColor}>\n {isNumerial(label)\n ? formatNumber(label, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })\n : label}\n </MajorTickLabel>\n )}\n </g>\n);\n\nMajorTick.propTypes = {\n index: T.number,\n x1: T.number,\n y1: T.number,\n x2: T.number,\n y2: T.number,\n showLabels: T.bool,\n label: T.oneOfType([T.string, T.number]),\n labelX: T.number,\n labelY: T.number,\n majorTickStrokeColor: T.string,\n majorTickFillColor: T.string,\n};\n\n/**\n * calculate position for each major tick\n * @method positionMajorTick\n * @param {Object} input\n * @param {Number} input.width\n * @param {Number} input.height\n * @param {Number} input.startX start x for rendering the first major tick\n * @param {Number} input.startY start y for rendering the first major tick\n * @param {String} input.orientation\n * @param {Number} input.numOfTicks how many ticks need to render\n * @param {Number} input.i index of major tick\n * @return {Object} MajorTick positions\n */\nexport const positionMajorTick = ({ width, height, startX, startY, orientation, numOfTicks, i }) => {\n let x1 = startX;\n let y1 = startY;\n let x2 = startX;\n let y2 = startY;\n let labelX = startX;\n let labelY;\n\n if (orientation === 'vertical') {\n const y = (height / numOfTicks) * (numOfTicks - i) + startY;\n x1 -= TICK_LENGTH_DELTA;\n y1 = y;\n x2 += width + TICK_LENGTH_DELTA;\n y2 = y;\n labelX += width + TICK_LENGTH_DELTA * TICK_LABEL_PADDING_FACTOR;\n labelY = y;\n } else {\n const x = (width / numOfTicks) * i + startX;\n x1 = x;\n y1 -= TICK_LENGTH_DELTA;\n x2 = x;\n y2 += height + TICK_LENGTH_DELTA;\n labelX = x;\n labelY = y2 + 16;\n }\n\n return { x1, y1, x2, y2, labelX, labelY };\n};\n\nconst MajorTicks = ({ ...props }) => {\n const {\n width,\n height,\n startX,\n startY,\n min,\n max,\n majorUnit,\n orientation,\n showLabels,\n usePercentageRange,\n majorTickFillColor,\n majorTickStrokeColor,\n } = props;\n\n const range = max - min;\n const numOfTicks =\n majorUnit === 'auto' || Number.isNaN(Number(majorUnit)) || majorUnit <= 0\n ? DEFAULT_NUM_OF_TICKS\n : range / majorUnit;\n const majorTicks = [];\n\n for (let i = 0; i <= numOfTicks; i += 1) {\n const { x1, y1, x2, y2, labelX, labelY } = positionMajorTick({\n width,\n height,\n startX,\n startY,\n orientation,\n numOfTicks,\n i,\n });\n const label = usePercentageRange\n ? `${parseInt((i / numOfTicks - min / range) * 100, 10)}%`\n : parseInt(min + (range / numOfTicks) * i, 10);\n\n majorTicks.push(\n <MajorTick\n key={i}\n index={i}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n showLabels={showLabels}\n label={label}\n labelX={labelX}\n labelY={labelY}\n majorTickFillColor={majorTickFillColor}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n );\n }\n\n // if the gauge is not divided evenly, put the last tick at the end of the gauge\n if (!Number.isInteger(numOfTicks)) {\n const extraNumOfTicks = Math.ceil(numOfTicks);\n const { x1, y1, x2, y2, labelX, labelY } = positionMajorTick({\n width,\n height,\n startX,\n startY,\n orientation,\n numOfTicks: extraNumOfTicks,\n i: extraNumOfTicks,\n });\n\n majorTicks.push(\n <MajorTick\n key={extraNumOfTicks}\n id={extraNumOfTicks}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n showLabels={showLabels}\n label={usePercentageRange ? '100%' : max}\n labelX={labelX}\n labelY={labelY}\n majorTickFillColor={majorTickFillColor}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n );\n }\n\n return <g>{majorTicks}</g>;\n};\n\nMajorTicks.propTypes = {\n width: T.number,\n height: T.number,\n startX: T.number,\n startY: T.number,\n min: T.number,\n max: T.number,\n majorUnit: T.oneOfType([T.string, T.number]),\n orientation: T.string,\n showLabels: T.bool,\n usePercentageRange: T.bool,\n majorTickFillColor: T.string,\n majorTickStrokeColor: T.string,\n};\n\nMajorTicks.defaultProps = {\n min: 0,\n max: 100,\n majorUnit: 'auto',\n orientation: 'horizontal',\n showLabels: true,\n usePercentageRange: false,\n};\n\nexport default MajorTicks;\n","module.exports = require(\"@babel/runtime/helpers/extends\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeMajorTicks.jsx","webpack:///external \"@babel/runtime/helpers/extends\""],"names":["DEFAULT_NUM_OF_TICKS","TICK_LENGTH_DELTA","TICK_LABEL_PADDING_FACTOR","MajorTickLine","styled","props","MajorTickLabel","MajorTick","index","x1","y1","x2","y2","showLabels","label","labelX","labelY","majorTickStrokeColor","majorTickFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","string","positionMajorTick","width","height","startX","startY","orientation","numOfTicks","i","y","x","MajorTicks","min","max","majorUnit","usePercentageRange","range","Number","majorTicks","parseInt","extraNumOfTicks","Math"],"mappings":"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","file":"GaugeMajorTicks.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 = 48);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { isNumerial, formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst DEFAULT_NUM_OF_TICKS = 5;\nconst TICK_LENGTH_DELTA = 5;\nconst TICK_LABEL_PADDING_FACTOR = 3.2;\n\nconst MajorTickLine = styled.line`\n stroke: ${props => props.majorTickStrokeColor};\n stroke-width: 2px;\n stroke-dasharray: ${props => (props.index === 0 ? 0 : 3)};\n`;\n\nconst MajorTickLabel = styled.text`\n font-size: 12px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 19px;\n fill: ${props => props.majorTickFillColor};\n text-anchor: middle;\n text-align: center;\n`;\n\nexport const MajorTick = ({\n index,\n x1,\n y1,\n x2,\n y2,\n showLabels,\n label,\n labelX,\n labelY,\n majorTickStrokeColor,\n majorTickFillColor,\n}) => (\n <g>\n <MajorTickLine\n index={index}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n {showLabels && (\n <MajorTickLabel x={labelX} y={labelY} majorTickFillColor={majorTickFillColor}>\n {isNumerial(label)\n ? formatNumber(label, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })\n : label}\n </MajorTickLabel>\n )}\n </g>\n);\n\nMajorTick.propTypes = {\n index: T.number,\n x1: T.number,\n y1: T.number,\n x2: T.number,\n y2: T.number,\n showLabels: T.bool,\n label: T.oneOfType([T.string, T.number]),\n labelX: T.number,\n labelY: T.number,\n majorTickStrokeColor: T.string,\n majorTickFillColor: T.string,\n};\n\n/**\n * calculate position for each major tick\n * @method positionMajorTick\n * @param {Object} input\n * @param {Number} input.width\n * @param {Number} input.height\n * @param {Number} input.startX start x for rendering the first major tick\n * @param {Number} input.startY start y for rendering the first major tick\n * @param {String} input.orientation\n * @param {Number} input.numOfTicks how many ticks need to render\n * @param {Number} input.i index of major tick\n * @return {Object} MajorTick positions\n */\nexport const positionMajorTick = ({ width, height, startX, startY, orientation, numOfTicks, i }) => {\n let x1 = startX;\n let y1 = startY;\n let x2 = startX;\n let y2 = startY;\n let labelX = startX;\n let labelY;\n\n if (orientation === 'vertical') {\n const y = (height / numOfTicks) * (numOfTicks - i) + startY;\n x1 -= TICK_LENGTH_DELTA;\n y1 = y;\n x2 += width + TICK_LENGTH_DELTA;\n y2 = y;\n labelX += width + TICK_LENGTH_DELTA * TICK_LABEL_PADDING_FACTOR;\n labelY = y;\n } else {\n const x = (width / numOfTicks) * i + startX;\n x1 = x;\n y1 -= TICK_LENGTH_DELTA;\n x2 = x;\n y2 += height + TICK_LENGTH_DELTA;\n labelX = x;\n labelY = y2 + 16;\n }\n\n return { x1, y1, x2, y2, labelX, labelY };\n};\n\nconst MajorTicks = ({ ...props }) => {\n const {\n width,\n height,\n startX,\n startY,\n min,\n max,\n majorUnit,\n orientation,\n showLabels,\n usePercentageRange,\n majorTickFillColor,\n majorTickStrokeColor,\n } = props;\n\n const range = max - min;\n const numOfTicks =\n majorUnit === 'auto' || Number.isNaN(Number(majorUnit)) || majorUnit <= 0\n ? DEFAULT_NUM_OF_TICKS\n : range / majorUnit;\n const majorTicks = [];\n\n for (let i = 0; i <= numOfTicks; i += 1) {\n const { x1, y1, x2, y2, labelX, labelY } = positionMajorTick({\n width,\n height,\n startX,\n startY,\n orientation,\n numOfTicks,\n i,\n });\n const label = usePercentageRange\n ? `${parseInt((i / numOfTicks - min / range) * 100, 10)}%`\n : parseInt(min + (range / numOfTicks) * i, 10);\n\n majorTicks.push(\n <MajorTick\n key={i}\n index={i}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n showLabels={showLabels}\n label={label}\n labelX={labelX}\n labelY={labelY}\n majorTickFillColor={majorTickFillColor}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n );\n }\n\n // if the gauge is not divided evenly, put the last tick at the end of the gauge\n if (!Number.isInteger(numOfTicks)) {\n const extraNumOfTicks = Math.ceil(numOfTicks);\n const { x1, y1, x2, y2, labelX, labelY } = positionMajorTick({\n width,\n height,\n startX,\n startY,\n orientation,\n numOfTicks: extraNumOfTicks,\n i: extraNumOfTicks,\n });\n\n majorTicks.push(\n <MajorTick\n key={extraNumOfTicks}\n id={extraNumOfTicks}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n showLabels={showLabels}\n label={usePercentageRange ? '100%' : max}\n labelX={labelX}\n labelY={labelY}\n majorTickFillColor={majorTickFillColor}\n majorTickStrokeColor={majorTickStrokeColor}\n />\n );\n }\n\n return <g>{majorTicks}</g>;\n};\n\nMajorTicks.propTypes = {\n width: T.number,\n height: T.number,\n startX: T.number,\n startY: T.number,\n min: T.number,\n max: T.number,\n majorUnit: T.oneOfType([T.string, T.number]),\n orientation: T.string,\n showLabels: T.bool,\n usePercentageRange: T.bool,\n majorTickFillColor: T.string,\n majorTickStrokeColor: T.string,\n};\n\nMajorTicks.defaultProps = {\n min: 0,\n max: 100,\n majorUnit: 'auto',\n orientation: 'horizontal',\n showLabels: true,\n usePercentageRange: false,\n};\n\nexport default MajorTicks;\n","module.exports = require(\"@babel/runtime/helpers/extends\");"],"sourceRoot":""}
|
|
@@ -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 = 49);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ({
|
|
@@ -120,7 +120,7 @@ module.exports = require("styled-components");
|
|
|
120
120
|
|
|
121
121
|
/***/ }),
|
|
122
122
|
|
|
123
|
-
/***/
|
|
123
|
+
/***/ 49:
|
|
124
124
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
125
125
|
|
|
126
126
|
"use strict";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeValueMarker.jsx","webpack:///external \"@babel/runtime/helpers/extends\""],"names":["MARKER_THICKNESS","MARKER_INNER_LENGTH","MARKER_LABEL_WIDTH","MARKER_LABEL_HEIGHT","RADIUS","DELTA_LENGTH","ValueMarkerRect","styled","props","ValueMarkerLabelRect","ValueMarkerLabel","positionValueMarkerRect","x","y","orientation","valueMarkerRectLength","hLength","vLength","markerStartX","markerStartY","innerHLength","innerVLength","innerStartX","innerStartY","positionLabel","length","labelRectX","labelRectY","labelX","labelY","ValueMarker","min","max","value","showValue","usePercentageValue","valueMarkerFillColor","valueMarkerLabelFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","string"],"mappings":"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","file":"GaugeValueMarker.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 = 48);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst MARKER_THICKNESS = 15;\nconst MARKER_INNER_LENGTH = 30;\n\nconst MARKER_LABEL_WIDTH = 60;\nconst MARKER_LABEL_HEIGHT = 25;\nconst RADIUS = 2;\nconst DELTA_LENGTH = 12;\n\nconst ValueMarkerRect = styled.path`\n stroke-width: 2px;\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabelRect = styled.rect`\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabel = styled.text`\n fill: ${props => props.valueMarkerLabelFillColor};\n font-size: 14px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 16px;\n text-anchor: middle;\n text-align: center;\n dominant-baseline: middle;\n`;\n\n/**\n * calculate the path of Value Marker shape\n * @method positionValueMarkerRect\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {String} input.orientation\n * @param {Number} input.valueMarkerRectLength\n * @return {String} d containing a series of path commands that define the path to be\n */\nexport const positionValueMarkerRect = ({ x, y, orientation, valueMarkerRectLength }) => {\n let hLength = MARKER_THICKNESS;\n let vLength = valueMarkerRectLength;\n let markerStartX = x - MARKER_THICKNESS;\n const markerStartY = y;\n\n let innerHLength = hLength / 3;\n let innerVLength = MARKER_INNER_LENGTH;\n let innerStartX = markerStartX + innerHLength;\n let innerStartY = markerStartY + 7;\n\n if (orientation === 'vertical') {\n hLength = valueMarkerRectLength;\n vLength = MARKER_THICKNESS;\n markerStartX = x;\n\n innerHLength = MARKER_INNER_LENGTH;\n innerVLength = vLength / 3;\n innerStartX = markerStartX + 7;\n innerStartY = markerStartY + innerVLength;\n }\n\n return (\n `M${markerStartX},${markerStartY}h${hLength}a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${RADIUS}v${\n vLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${RADIUS}h${-hLength}a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${-RADIUS}v${\n 2 * RADIUS - vLength\n }a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${-RADIUS}z` +\n `M${innerStartX},${innerStartY}v${\n innerVLength - RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${RADIUS}h${\n innerHLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${-RADIUS}v${\n RADIUS - innerVLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${-RADIUS}h${\n 2 * RADIUS - innerHLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${RADIUS}z`\n );\n};\n\n/**\n * calculate the position of value marker label\n * @method positionLabel\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {Number} input.length gauge thickness\n * @param {String} input.orientation\n * @return {Object} positions\n * @return {Number} positions.labelRectX x of value marker label rect\n * @return {Number} positions.labelRectY y of value marker label rect\n * @return {Number} positions.labelX x of value marker label text\n * @return {Number} positions.labelY y of value marker label text\n */\nexport const positionLabel = ({ x, y, length, orientation }) => {\n // for horizontal view\n let labelRectX = x - MARKER_THICKNESS / 2 - MARKER_LABEL_WIDTH / 2;\n let labelRectY = y + length;\n if (orientation === 'vertical') {\n labelRectX = x + length;\n labelRectY = y - (MARKER_LABEL_HEIGHT - MARKER_THICKNESS) / 2;\n }\n const labelX = labelRectX + MARKER_LABEL_WIDTH / 2;\n const labelY = labelRectY + MARKER_LABEL_HEIGHT / 2;\n return { labelRectX, labelRectY, labelX, labelY };\n};\n\nconst ValueMarker = ({ ...props }) => {\n const {\n x,\n y,\n length,\n min,\n max,\n value,\n orientation,\n showValue,\n usePercentageValue,\n valueMarkerFillColor,\n valueMarkerLabelFillColor,\n } = props;\n\n const valueMarkerRectLength = length + DELTA_LENGTH;\n const { labelRectX, labelRectY, labelX, labelY } = positionLabel({\n x,\n y,\n length,\n orientation,\n });\n\n return (\n <g>\n <ValueMarkerRect\n data-test=\"value-marker-rect\"\n d={positionValueMarkerRect({ x, y, orientation, valueMarkerRectLength })}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n {showValue && (\n <g>\n <ValueMarkerLabelRect\n data-test=\"value-marker-label-rect\"\n x={labelRectX}\n y={labelRectY}\n width={MARKER_LABEL_WIDTH}\n height={MARKER_LABEL_HEIGHT}\n rx={RADIUS}\n ry={RADIUS}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n <ValueMarkerLabel\n data-test=\"value-marker-label\"\n x={labelX}\n y={labelY}\n valueMarkerLabelFillColor={valueMarkerLabelFillColor}\n >\n {usePercentageValue\n ? `${((value / (max - min)) * 100).toFixed(2)}%`\n : formatNumber(value, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })}\n </ValueMarkerLabel>\n </g>\n )}\n </g>\n );\n};\n\nValueMarker.propTypes = {\n x: T.number,\n y: T.number,\n length: T.number,\n min: T.number,\n max: T.number,\n value: T.number,\n orientation: T.string,\n showValue: T.bool,\n usePercentageValue: T.bool,\n valueMarkerFillColor: T.string,\n valueMarkerLabelFillColor: T.string,\n};\n\nValueMarker.defaultProps = {\n min: 0,\n max: 100,\n orientation: 'horizontal',\n showValue: true,\n usePercentageValue: false,\n};\n\nexport default ValueMarker;\n","module.exports = require(\"@babel/runtime/helpers/extends\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"styled-components\"","webpack:///./src/common/GaugeValueMarker.jsx","webpack:///external \"@babel/runtime/helpers/extends\""],"names":["MARKER_THICKNESS","MARKER_INNER_LENGTH","MARKER_LABEL_WIDTH","MARKER_LABEL_HEIGHT","RADIUS","DELTA_LENGTH","ValueMarkerRect","styled","props","ValueMarkerLabelRect","ValueMarkerLabel","positionValueMarkerRect","x","y","orientation","valueMarkerRectLength","hLength","vLength","markerStartX","markerStartY","innerHLength","innerVLength","innerStartX","innerStartY","positionLabel","length","labelRectX","labelRectY","labelX","labelY","ValueMarker","min","max","value","showValue","usePercentageValue","valueMarkerFillColor","valueMarkerLabelFillColor","formatNumber","useThousandSeparators","useTrendUnits","T","string"],"mappings":"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","file":"GaugeValueMarker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 49);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"styled-components\");","import React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport { formatNumber } from '@splunk/visualizations-shared/numberUtils';\n\nconst MARKER_THICKNESS = 15;\nconst MARKER_INNER_LENGTH = 30;\n\nconst MARKER_LABEL_WIDTH = 60;\nconst MARKER_LABEL_HEIGHT = 25;\nconst RADIUS = 2;\nconst DELTA_LENGTH = 12;\n\nconst ValueMarkerRect = styled.path`\n stroke-width: 2px;\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabelRect = styled.rect`\n fill: ${props => props.valueMarkerFillColor};\n`;\n\nconst ValueMarkerLabel = styled.text`\n fill: ${props => props.valueMarkerLabelFillColor};\n font-size: 14px;\n font-family: Splunk Platform Sans, sans-serif;\n line-height: 16px;\n text-anchor: middle;\n text-align: center;\n dominant-baseline: middle;\n`;\n\n/**\n * calculate the path of Value Marker shape\n * @method positionValueMarkerRect\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {String} input.orientation\n * @param {Number} input.valueMarkerRectLength\n * @return {String} d containing a series of path commands that define the path to be\n */\nexport const positionValueMarkerRect = ({ x, y, orientation, valueMarkerRectLength }) => {\n let hLength = MARKER_THICKNESS;\n let vLength = valueMarkerRectLength;\n let markerStartX = x - MARKER_THICKNESS;\n const markerStartY = y;\n\n let innerHLength = hLength / 3;\n let innerVLength = MARKER_INNER_LENGTH;\n let innerStartX = markerStartX + innerHLength;\n let innerStartY = markerStartY + 7;\n\n if (orientation === 'vertical') {\n hLength = valueMarkerRectLength;\n vLength = MARKER_THICKNESS;\n markerStartX = x;\n\n innerHLength = MARKER_INNER_LENGTH;\n innerVLength = vLength / 3;\n innerStartX = markerStartX + 7;\n innerStartY = markerStartY + innerVLength;\n }\n\n return (\n `M${markerStartX},${markerStartY}h${hLength}a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${RADIUS}v${\n vLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${RADIUS}h${-hLength}a${RADIUS},${RADIUS} 0 0 1 ${-RADIUS},${-RADIUS}v${\n 2 * RADIUS - vLength\n }a${RADIUS},${RADIUS} 0 0 1 ${RADIUS},${-RADIUS}z` +\n `M${innerStartX},${innerStartY}v${\n innerVLength - RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${RADIUS}h${\n innerHLength - 2 * RADIUS\n }a${RADIUS},${RADIUS} 0 0 0 ${RADIUS},${-RADIUS}v${\n RADIUS - innerVLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${-RADIUS}h${\n 2 * RADIUS - innerHLength\n }a${RADIUS},${RADIUS} 0 0 0 ${-RADIUS},${RADIUS}z`\n );\n};\n\n/**\n * calculate the position of value marker label\n * @method positionLabel\n * @param {Object} input\n * @param {Number} input.x\n * @param {Number} input.y\n * @param {Number} input.length gauge thickness\n * @param {String} input.orientation\n * @return {Object} positions\n * @return {Number} positions.labelRectX x of value marker label rect\n * @return {Number} positions.labelRectY y of value marker label rect\n * @return {Number} positions.labelX x of value marker label text\n * @return {Number} positions.labelY y of value marker label text\n */\nexport const positionLabel = ({ x, y, length, orientation }) => {\n // for horizontal view\n let labelRectX = x - MARKER_THICKNESS / 2 - MARKER_LABEL_WIDTH / 2;\n let labelRectY = y + length;\n if (orientation === 'vertical') {\n labelRectX = x + length;\n labelRectY = y - (MARKER_LABEL_HEIGHT - MARKER_THICKNESS) / 2;\n }\n const labelX = labelRectX + MARKER_LABEL_WIDTH / 2;\n const labelY = labelRectY + MARKER_LABEL_HEIGHT / 2;\n return { labelRectX, labelRectY, labelX, labelY };\n};\n\nconst ValueMarker = ({ ...props }) => {\n const {\n x,\n y,\n length,\n min,\n max,\n value,\n orientation,\n showValue,\n usePercentageValue,\n valueMarkerFillColor,\n valueMarkerLabelFillColor,\n } = props;\n\n const valueMarkerRectLength = length + DELTA_LENGTH;\n const { labelRectX, labelRectY, labelX, labelY } = positionLabel({\n x,\n y,\n length,\n orientation,\n });\n\n return (\n <g>\n <ValueMarkerRect\n data-test=\"value-marker-rect\"\n d={positionValueMarkerRect({ x, y, orientation, valueMarkerRectLength })}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n {showValue && (\n <g>\n <ValueMarkerLabelRect\n data-test=\"value-marker-label-rect\"\n x={labelRectX}\n y={labelRectY}\n width={MARKER_LABEL_WIDTH}\n height={MARKER_LABEL_HEIGHT}\n rx={RADIUS}\n ry={RADIUS}\n valueMarkerFillColor={valueMarkerFillColor}\n />\n <ValueMarkerLabel\n data-test=\"value-marker-label\"\n x={labelX}\n y={labelY}\n valueMarkerLabelFillColor={valueMarkerLabelFillColor}\n >\n {usePercentageValue\n ? `${((value / (max - min)) * 100).toFixed(2)}%`\n : formatNumber(value, 0, {\n useThousandSeparators: true,\n useTrendUnits: true,\n })}\n </ValueMarkerLabel>\n </g>\n )}\n </g>\n );\n};\n\nValueMarker.propTypes = {\n x: T.number,\n y: T.number,\n length: T.number,\n min: T.number,\n max: T.number,\n value: T.number,\n orientation: T.string,\n showValue: T.bool,\n usePercentageValue: T.bool,\n valueMarkerFillColor: T.string,\n valueMarkerLabelFillColor: T.string,\n};\n\nValueMarker.defaultProps = {\n min: 0,\n max: 100,\n orientation: 'horizontal',\n showValue: true,\n usePercentageValue: false,\n};\n\nexport default ValueMarker;\n","module.exports = require(\"@babel/runtime/helpers/extends\");"],"sourceRoot":""}
|