@splunk/visualizations 26.2.1 → 26.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/Area.config.js +92 -595
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +296 -801
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +93 -562
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +299 -770
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +84 -483
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +286 -687
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +77 -202
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +272 -400
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +93 -600
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +299 -808
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +82 -200
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +233 -356
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +62 -283
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +326 -530
  28. package/Events.js.map +1 -1
  29. package/FillerGauge.config.js +91 -220
  30. package/FillerGauge.config.js.map +1 -1
  31. package/FillerGauge.js +267 -401
  32. package/FillerGauge.js.map +1 -1
  33. package/Image.config.js +61 -157
  34. package/Image.config.js.map +1 -1
  35. package/Image.js +217 -327
  36. package/Image.js.map +1 -1
  37. package/Line.config.js +92 -607
  38. package/Line.config.js.map +1 -1
  39. package/Line.js +297 -814
  40. package/Line.js.map +1 -1
  41. package/LinkGraph.config.js +75 -257
  42. package/LinkGraph.config.js.map +1 -1
  43. package/LinkGraph.js +1755 -17415
  44. package/LinkGraph.js.map +1 -1
  45. package/MIGRATION.md +6 -0
  46. package/Map.config.js +128 -1123
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +470 -782
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +62 -189
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +272 -401
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +138 -298
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +309 -470
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +72 -192
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +333 -442
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +77 -241
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +336 -471
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +72 -306
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +356 -583
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +211 -347
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +371 -509
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +72 -214
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +343 -475
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +86 -464
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +1118 -1493
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +124 -411
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +522 -789
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +73 -61
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +123 -380
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +508 -745
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +121 -385
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +1642 -1885
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +39 -39
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +82 -496
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +416 -825
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +37 -57
  103. package/common/Charting.js.map +1 -1
  104. package/common/DocExampleWithVizSandbox.js +21 -21
  105. package/common/DocExampleWithVizSandbox.js.map +1 -1
  106. package/common/EventsDoc.js +18 -18
  107. package/common/EventsDoc.js.map +1 -1
  108. package/common/GaugeMajorTicks.js +4 -4
  109. package/common/GaugeMajorTicks.js.map +1 -1
  110. package/common/GaugeValueMarker.js +2 -2
  111. package/common/GaugeValueMarker.js.map +1 -1
  112. package/common/OptionsDoc.js +4 -4
  113. package/common/OptionsDoc.js.map +1 -1
  114. package/common/OverviewDoc.js +39 -40
  115. package/common/OverviewDoc.js.map +1 -1
  116. package/common/SplunkVisualization.js +2 -2
  117. package/common/SplunkVisualization.js.map +1 -1
  118. package/common/SplunkVisualizationApi.js +2 -2
  119. package/common/SplunkVisualizationApi.js.map +1 -1
  120. package/common/ThemesDoc.js +19 -19
  121. package/common/ThemesDoc.js.map +1 -1
  122. package/common/chartingUtils.js +2 -2
  123. package/common/chartingUtils.js.map +1 -1
  124. package/common/gaugeUtils.js +10 -10
  125. package/common/gaugeUtils.js.map +1 -1
  126. package/common/shapeUtils.js +10 -10
  127. package/common/shapeUtils.js.map +1 -1
  128. package/common/utils/configUtils.js +25 -155
  129. package/common/utils/configUtils.js.map +1 -1
  130. package/common/utils/dataUtils.js +87 -105
  131. package/common/utils/dataUtils.js.map +1 -1
  132. package/common/utils/featureFlagUtils.js +4 -4
  133. package/common/utils/featureFlagUtils.js.map +1 -1
  134. package/common/utils/hocUtils.js +2 -2
  135. package/common/utils/hocUtils.js.map +1 -1
  136. package/common/utils/mapUtils.js +51 -54
  137. package/common/utils/mapUtils.js.map +1 -1
  138. package/common/utils/singleValueUtils.js +30 -18
  139. package/common/utils/singleValueUtils.js.map +1 -1
  140. package/common/utils/testHelper.js +7 -36
  141. package/common/utils/testHelper.js.map +1 -1
  142. package/common/utils/trellisUtils.js +7 -6
  143. package/common/utils/trellisUtils.js.map +1 -1
  144. package/common/utils/urlUtils.js +2 -2
  145. package/common/utils/urlUtils.js.map +1 -1
  146. package/common/withDashboardViz.js +93 -101
  147. package/common/withDashboardViz.js.map +1 -1
  148. package/package.json +48 -50
  149. package/common/utils/layoutUtils.js +0 -115
  150. package/common/utils/layoutUtils.js.map +0 -1
@@ -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 \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///./src/common/utils/dataUtils.ts","webpack:///./src/common/interfaces/DataSource.ts","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/ChartingApi.ts","webpack:///./src/common/hooks/usePrevious.ts","webpack:///./src/common/interfaces/index.ts","webpack:///./src/common/interfaces/DataContract.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\"","webpack:///./src/common/hooks/useEventCallback.tsx"],"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 = 74);\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(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n DOWNSAMPLING = 'downsampling',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/visualizations-shared/Message\");","import type { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport { startsWithNumber } from '@splunk/visualizations-shared/numberUtils';\nimport type { DashboardVizProps, DataSource, VizConfig } from '../interfaces';\nimport { VizBehavior } from '../interfaces';\nimport { ChartEvent } from '../interfaces/ChartEvent';\n\n// TODO: utilize this fn in ParallelCoordinates\n\nexport const convertToArrOfObjects = (columns: (string | any[])[], fields: any[]): any[] => {\n if (!columns || !columns[0] || !columns[0].length) return [];\n\n const data = [];\n\n for (let i = 0; i < columns[0].length; i += 1) {\n const newObj = {};\n fields.forEach((field, index) => {\n const fieldName = typeof field === 'string' ? field : field.name;\n if (columns[index][i] === '') {\n newObj[fieldName] = null;\n } else {\n newObj[fieldName] = columns[index][i];\n }\n });\n data.push(newObj);\n }\n\n return data;\n};\n\n// LTTB algorithm which can be used to downsample time series data while striving to maintain\n// the spikes and overall shape of the chart\n// Copied from https://github.com/sveinn-steinarsson/flot-downsample/blob/0815010016fc94b1bbc6a010afb8aad13ada6d0d/jquery.flot.downsample.js\n// Modifications include:\n// 1) Convert to modern JavaScript(use const, let, and use array.push to push to last element of array)\n// 2) Convert to camel case\n// 3) Convert to TS and also return the indices of the points that are in the downsampled result.\n// 4) Add a new parameter preferredDownsampleIndices that correspond to the indices of points\n// that should be used in case of a tie of the max area in a bucket\nconst largestTriangleThreeBuckets = (\n data: [Date | number, number][],\n threshold: number,\n preferredDownsampleIndices: Set<number>\n): { downsampledData: [Date | number, number][]; downsampledIndices: number[] } => {\n const dataLength = data.length;\n const downsampledIndices = [];\n if (threshold >= dataLength || threshold === 0) {\n const allIndices = data.map((values, index) => index);\n return { downsampledData: data, downsampledIndices: allIndices }; // Nothing to do\n }\n\n const sampled: [Date | number, number][] = [];\n let sampledIndex = 0;\n\n // Bucket size. Leave room for start and end data points\n const every = (dataLength - 2) / (threshold - 2);\n\n let a = 0; // Initially a is the first point in the triangle\n let maxAreaPoint: [Date | number, number];\n let maxArea: number | undefined;\n let area: number | undefined;\n let nextA: number | undefined;\n\n sampled.push(data[a]); // Always add the first point\n downsampledIndices.push(0);\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < threshold - 2; i++) {\n // Calculate point average for next bucket (containing c)\n let avgX = 0;\n let avgY = 0;\n let avgRangeStart = Math.floor((i + 1) * every) + 1;\n let avgRangeEnd = Math.floor((i + 2) * every) + 1;\n avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;\n\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n // eslint-disable-next-line no-plusplus\n for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {\n avgX += Number(data[avgRangeStart][0]); // * 1 enforces Number (value may be Date)\n avgY += data[avgRangeStart][1] * 1;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n\n // Get the range for this bucket\n let rangeOffs = Math.floor((i + 0) * every) + 1;\n const rangeTo = Math.floor((i + 1) * every) + 1;\n\n // Point a\n const pointAX = Number(data[a][0]); // Enforce Number (value may be Date)\n const pointAY = data[a][1] * 1;\n\n // eslint-disable-next-line no-multi-assign\n maxArea = area = -1;\n let maxAreaIndex = rangeOffs;\n\n // eslint-disable-next-line no-plusplus\n for (; rangeOffs < rangeTo; rangeOffs++) {\n // Calculate triangle area over three buckets\n area =\n Math.abs(\n (pointAX - avgX) * (data[rangeOffs][1] - pointAY) -\n (pointAX - Number(data[rangeOffs][0])) * (avgY - pointAY)\n ) * 0.5;\n // Modification: try to downsample the least amount of points possible when there are multiple series\n // If all points in a bucket have the same area, prioritize the one with an x index\n // that also existed from another series so we don't add another point unnecessarily.\n // By default LTTB picks the leftmost point in the bucket\n if (area > maxArea || (area === maxArea && preferredDownsampleIndices.has(rangeOffs))) {\n maxArea = area;\n maxAreaPoint = data[rangeOffs];\n nextA = rangeOffs; // Next a is this b\n // Modification: save the index of the point with the most area\n maxAreaIndex = rangeOffs;\n }\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = maxAreaPoint; // Pick this point from the bucket\n downsampledIndices.push(maxAreaIndex);\n a = nextA; // This a is the next a (chosen b)\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = data[dataLength - 1]; // Always add last\n downsampledIndices.push(dataLength - 1);\n\n return { downsampledData: sampled, downsampledIndices };\n};\n\nexport type DownsampleOptions = { threshold: number } & Pick<DashboardVizProps, 'dataSources' | 'options'>;\n\ntype CoerceYColumnResult = {\n canDownsampleColumn: boolean;\n canLooselyCoerceSomeValues: boolean;\n coercedColumn: number[];\n};\n\n/**\n * Strictly coerces the entire column to numbers if it only consists of numeric strings or numbers. Also determines\n * if at least one of the values in the column can be loosely coerced to a number.\n * If the column cannot be strictly downsampled (if it contains nulls or non-numeric strings), returns an empty array and\n * returns that it cannot downsample the column.\n */\nconst strictlyCoerceYColumn = (column: string[] | number[]): CoerceYColumnResult => {\n // Splunk charting allows for numbers in formats such as negative hex that\n // Number() does not support and also allows loose coercion of hex numbers (but not other formats)\n // We want to identify columns which contain at least one value that can be loosely coerced\n const canLooselyCoerceSomeValues = column.findIndex(value => startsWithNumber(`${value}`)) >= 0;\n\n // If not all values in column can be strictly coerced to a number, we do not downsample\n const coercedColumn: number[] = [];\n const canDownsampleColumn = !column.some(value => {\n const coercedValue = Number(value);\n // if it can't be parsed or isn't safe, fail\n if (\n Number.isNaN(coercedValue) ||\n coercedValue <= Number.MIN_SAFE_INTEGER ||\n coercedValue >= Number.MAX_SAFE_INTEGER ||\n (typeof value !== 'string' && typeof value !== 'number')\n ) {\n return true;\n }\n // save value and continue to next\n coercedColumn.push(coercedValue);\n return false;\n });\n\n return {\n canDownsampleColumn,\n canLooselyCoerceSomeValues,\n coercedColumn: canDownsampleColumn ? coercedColumn : [],\n };\n};\n\n/**\n * Tries to coerce the x-column to numbers or dates, if it is eligible for downsampling.\n * Only strictly increasing x-columns are eligible for downsampling.\n * If the column is not eligible for downsampling, returns an empty array.\n */\nconst strictlyCoerceXColumn = (column: string[], fieldType: string): Date[] | number[] => {\n if (fieldType === 'number') {\n const coercedXColumn = column.map(xValue => Number(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n } else if (fieldType === 'time') {\n const coercedXColumn = column.map(xValue => new Date(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n }\n return [];\n};\n\nexport const isDownsamplingEnabledForViz = ({ vizConfig }: { vizConfig: VizConfig }) => {\n return vizConfig.supports?.includes(VizBehavior.DOWNSAMPLING);\n};\n\nexport const calculateThresholdOnRangeSelect = ({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n}: Pick<DashboardVizProps, 'dataSources'> & {\n firstIndex: number;\n lastIndex: number;\n width: number | string;\n}): number => {\n const window = lastIndex - firstIndex + 1;\n const ratio = Math.round(Number(dataSources?.primary?.data?.columns[0]?.length / window) * 10) / 10;\n return Math.round(ratio * Number(width));\n};\n\n/**\n * Calculates the downsampling threshold based on the range selection. If search zoom is enabled or there is no selection,\n * then returns the width of the visualization.\n *\n * Otherwise calculates the threshold based on the ratio of the window selected compared to the size of the non-downsampled\n * data sources. Returns null if the chart event's dataset does not match the passed in primary data source or if the chart is zoomed\n * in for a categorical chart.\n */\nexport const calculateDownsamplingThreshold = ({\n enableSearchZoom,\n dataSources,\n selectChartEvent,\n width,\n xField,\n y2Fields,\n}: {\n enableSearchZoom: boolean;\n dataSources: Record<string, DataSource> | null;\n selectChartEvent: ChartEvent<'chartRangeSelect'> | null;\n width: number;\n xField: string;\n y2Fields?: string[];\n}): number | null => {\n if (enableSearchZoom || !selectChartEvent) {\n return Number(width);\n }\n\n const primaryDataSource = dataSources?.primary;\n if (!primaryDataSource) {\n return null;\n }\n\n const { startXIndex, endXIndex, currentTarget } = selectChartEvent;\n\n try {\n const xFieldIndex = primaryDataSource?.data?.fields.findIndex((field: { name: string }) => {\n return field.name === xField;\n });\n const downsampledXFieldIndex = currentTarget.dataSet?.fields.findIndex(field => field === xField);\n\n if (xFieldIndex === -1 || downsampledXFieldIndex === -1) {\n return null;\n }\n\n const fullSeries = primaryDataSource?.data?.columns[xFieldIndex];\n const downsampledSeries = currentTarget.dataSet.seriesList[downsampledXFieldIndex];\n\n const firstIndex = fullSeries.findIndex(x => {\n return downsampledSeries[startXIndex] === x;\n });\n const lastIndex = fullSeries.findIndex(x => {\n return downsampledSeries[endXIndex] === x;\n });\n\n // For charts with categorical x-axis (charts with an xField that isn't _time), do not support\n // re-calculating downsampling threshold if the chart is zoomed in until SPL-259458 is fixed\n // Also do not support re-calculating downsampling threshold for zoomed-in charts with y2\n // until SPL-259611 is fixed\n if (xField !== '_time' || y2Fields?.length) {\n return firstIndex === 0 && lastIndex === fullSeries.length - 1 ? width : null;\n }\n\n if (firstIndex >= 0 && lastIndex >= 0 && firstIndex <= lastIndex) {\n return calculateThresholdOnRangeSelect({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n });\n }\n } catch (e) {\n console.error('Error occurred while setting downsample threshold on range select event', e);\n }\n\n return null;\n};\n\nconst isColumnStrictlyIncreasing = (column: (number | Date)[], fieldType: 'number' | 'time') => {\n return column.every((value, index) => {\n if (fieldType === 'number') {\n if (Number.isNaN(value)) {\n return false;\n }\n }\n\n if (fieldType === 'time') {\n if (Number.isNaN((value as Date).getTime())) {\n return false;\n }\n }\n if (index === 0) {\n return true;\n }\n return value > column[index - 1];\n });\n};\n\n/**\n * Verifies that all of the columns that are displayed in a chart can be downsampled. Valid columns that can be\n * displayed are those that contain at least one number. We can only downsample columns that only consist of numbers.\n *\n * If all columns can be downsampled, returns the x column coerced to time/number and y columns coerced to numbers.\n * If not all columns can be downsampled, then returns empty arrays for both x and y\n */\nconst tryToCoerceAllDisplayedFields = (\n ds: DataSource,\n xField: string,\n yFields: Set<string>,\n fieldTypes: string[]\n): { xColumn: Date[] | number[]; yColumns: number[][] } => {\n let xColumn: Date[] | number[] = [];\n const yColumns: number[][] = [];\n\n const canDownsample = !ds.data.fields.some((field, index) => {\n const fieldName = (field as FieldEntry).name ?? field;\n const fieldType = fieldTypes[index] ?? 'unknown';\n const column = ds.data.columns[index];\n let hasDisplayedColumnThatCantBeDownsampled = false;\n\n if (fieldName === xField) {\n xColumn = strictlyCoerceXColumn(column, fieldType);\n } else if (yFields.has(fieldName)) {\n const { coercedColumn, canLooselyCoerceSomeValues, canDownsampleColumn } = strictlyCoerceYColumn(\n ds.data.columns[index]\n );\n // do not perform downsampling if a column can possibly be displayed but cannot\n // be downsampled using LTTB\n hasDisplayedColumnThatCantBeDownsampled = canLooselyCoerceSomeValues && !canDownsampleColumn;\n if (hasDisplayedColumnThatCantBeDownsampled) {\n return true;\n }\n if (canDownsampleColumn) {\n yColumns.push(coercedColumn);\n }\n }\n return false;\n });\n\n if (canDownsample) {\n return { xColumn, yColumns };\n }\n return { xColumn: [], yColumns: [] };\n};\n\nconst pickIndicesFromDataSource = (ds: DataSource, indices: Set<number>): DataSource => {\n const sortedIndices = Array.from(indices).sort((a: number, b: number) => a - b);\n const slicedColumns = [];\n ds.data.columns.forEach(column => {\n const slicedColumn = [];\n sortedIndices.forEach(index => {\n slicedColumn.push(column[index]);\n });\n slicedColumns.push(slicedColumn);\n });\n\n // update data columns with downsampled columns\n return {\n ...ds,\n data: {\n ...ds.data,\n columns: slicedColumns,\n },\n };\n};\n\nexport const downsampleDataSources = ({ dataSources, threshold, options }: DownsampleOptions) => {\n const primaryDS = dataSources?.primary;\n // only downsample time series when number of data points are over threshold\n const numPoints = primaryDS?.data?.columns[0]?.length ?? 0;\n if (Number.isNaN(threshold) || numPoints <= threshold || threshold < 2) {\n return dataSources;\n }\n\n const { xField, yFields, fieldTypes } = options;\n if (!xField || !yFields?.length || !fieldTypes?.length) {\n return dataSources;\n }\n\n const nonInternalYFields = new Set<string>(yFields.filter(yField => !yField.startsWith('_')));\n const maxPointsInDownsample = Math.min(nonInternalYFields.size * threshold, numPoints);\n\n // Do not try to downsample if there are too many downsampled pts\n // At the worst case, each series has non-overlapping downsampled pts\n // which will mean that all points will be included in the downsampled result\n // This will just lead to additional overhead due to coercing each\n // x and y field to number\n if (maxPointsInDownsample >= numPoints) {\n return dataSources;\n }\n\n const { xColumn, yColumns } = tryToCoerceAllDisplayedFields(\n primaryDS,\n xField,\n nonInternalYFields,\n fieldTypes\n );\n\n if (!yColumns.length || !xColumn.length) {\n return dataSources;\n }\n\n const downsampledDataSources = { ...dataSources };\n const downsampledIndices = new Set<number>();\n\n yColumns.forEach((yColumn, columnIndex) => {\n // perform LTTB downsampling for current series, LTTB takes an [x, y] pair\n const xyPair: [Date | number, number][] = yColumn.map((yValue, index) => {\n return [xColumn[index], yValue];\n });\n\n try {\n const { downsampledIndices: downsampledIndicesForSeries } = largestTriangleThreeBuckets(\n xyPair,\n threshold,\n downsampledIndices\n );\n downsampledIndicesForSeries.forEach(downsampleIndex => downsampledIndices.add(downsampleIndex));\n } catch (e) {\n console.error(`Error occurred while downsampling column ${columnIndex}`, e);\n }\n });\n // update data columns with downsampled columns\n downsampledDataSources.primary = pickIndicesFromDataSource(primaryDS, downsampledIndices);\n\n return downsampledDataSources;\n};\n","import { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\n\nexport type HighlightedSourceMap = Record<string, Record<string, boolean>>;\nexport type TagsMap = Record<string, Record<string, string[]>>;\n\nexport interface Meta {\n totalCount: number;\n sid: string;\n app: string;\n highlighted?: HighlightedSourceMap;\n tags?: TagsMap;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\nexport const validSegmentationModes = ['none', 'inner'] as const;\nexport type SegmentationType = typeof validSegmentationModes[number];\nexport const validOutputModes = ['json_cols', 'json'] as const;\nexport type OutputModeType = typeof validOutputModes[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\n segmentation?: SegmentationType;\n // eslint-disable-next-line camelcase\n output_mode?: OutputModeType;\n}\n\nexport interface DataSource {\n requestParams: Partial<RequestParams>;\n onRequestParamsChange?: (p: Record<string, unknown>) => void;\n data: JsonColumnData;\n error?: { level: string; message: string };\n meta: Partial<Meta>;\n}\n\nexport interface DataSourceMeta {\n requestParams: Partial<RequestParams>;\n meta: Partial<Meta>;\n onRequestParamsChange: (payload: RequestParams) => void;\n}\n","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","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","import { useEffect, useRef } from 'react';\n\nexport default function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","export * from './DashboardVizProps';\nexport * from './DataContract';\nexport * from './DataSource';\nexport * from './DefaultContext';\nexport * from './Editor';\nexport * from './ExtendedDashViz';\nexport * from './Object';\nexport * from './OptionsSchema';\nexport * from './Overview';\nexport * from './ThemedDefaults';\nexport * from './VizActionHandler';\nexport * from './VizBehavior';\nexport * from './VizCategory';\nexport * from './VizConfig';\nexport * from './VizEvent';\nexport * from './VizProps';\nexport * from './VizRegistry';\nexport * from './VizSize';\nexport * from './VizStatus';\n","/**\n * A data structure used at runtime to wire up a visualization.\n */\n\ninterface InitialRequestParams {\n [key: string]: Record<string, unknown> | ((options?: Record<string, unknown>) => Record<string, unknown>);\n}\nexport interface DataContract {\n requiredDataSources: {\n name: string;\n description: string;\n }[];\n optionalDataSources?: {\n name: string;\n description: string;\n }[];\n initialRequestParams: InitialRequestParams; // TODO define better than object?\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';\nimport usePrevious from './hooks/usePrevious';\nimport useEventCallback from './hooks/useEventCallback';\nimport { DataSource } from './interfaces';\nimport { calculateDownsamplingThreshold } from './utils/dataUtils';\nimport type { ChartEvent } from './interfaces/ChartEvent';\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\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\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\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 // The non-downsampled data sources used by this chart. Passed in if downsampling\n // is enabled for this chart.\n originalDataSources?: Record<string, DataSource> | null;\n // Callback for when downsampling threshold changes. Passed in if downsampling\n // is enabled for this chart.\n onDownsamplingThresholdChange?: (threshold: number) => void | null;\n // The xField for this chart if it is an axis chart\n xField?: string;\n // The y2Fields for this chart if it is specified and it is an axis chart\n y2Fields?: 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 originalDataSources: T.object,\n onDownsamplingThresholdChange: T.func,\n xField: T.string,\n y2Fields: T.array,\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 const selectChartEvent = useRef<ChartEvent<'chartRangeSelect'>>(null);\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 originalDataSources,\n onDownsamplingThresholdChange,\n xField,\n y2Fields,\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 enableSearchZoom = chartData?.chartDataOptions?.enableSearchZoom ?? false;\n const recalculateDownsamplingThreshold = React.useCallback(() => {\n if (!onDownsamplingThresholdChange || !xField) {\n return;\n }\n\n const newThreshold = calculateDownsamplingThreshold({\n enableSearchZoom,\n dataSources: originalDataSources,\n width: Number(width),\n selectChartEvent: selectChartEvent.current,\n xField,\n y2Fields,\n });\n\n if (Number.isFinite(newThreshold)) {\n onDownsamplingThresholdChange(newThreshold);\n }\n }, [enableSearchZoom, originalDataSources, onDownsamplingThresholdChange, width, xField, y2Fields]);\n\n React.useEffect(() => {\n recalculateDownsamplingThreshold();\n }, [recalculateDownsamplingThreshold]);\n\n // useEventCallback is used for these handlers to make sure that they are a stable reference and\n // we always use the latest version of the callback\n // Since chart drawing is debounced, there is a race condition where a stale callback may be called\n // if a prop changes and the event handler is called before the chart redraws. This means that\n // it will use the old callback rather than the newer one, which can lead to inaccurate results\n const handleSelect = useEventCallback((chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n selectChartEvent.current = chartEvent;\n recalculateDownsamplingThreshold();\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 = useEventCallback(\n (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\n const handlePointMouseOver = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOver'>, type: VizChartEventType): 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\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 (prevOptions[key] && 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 if (\n Math.round(chart.current.height) !== Math.round(computedHeight) ||\n Math.round(chart.current.width) !== Math.round(computedWidth)\n ) {\n chart.current.resize(computedWidth, computedHeight);\n }\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 // 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 needsRedraw.current = true;\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 onDownsamplingThresholdChange: null,\n originalDataSources: null,\n xField: null,\n y2Fields: [],\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\");","import { useRef, useLayoutEffect, useCallback } from 'react';\n\n/**\n * This is an escape hatch for the case where an event handler function depends on some states that changes too often thus the event handle is recreated frequently which causes bugs in some edge cases.\n *\n * For example if an old callback is called, it may not use the most recent props, but the previous props when that callback was created.\n */\n\ntype Fn<ARGS extends any[], R> = (...args: ARGS) => R;\nconst useEventCallback = <A extends any[], R>(fn: Fn<A, R>): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => ref.current(...args), []);\n};\n\nexport default useEventCallback;\n"],"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 \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///./src/common/utils/dataUtils.ts","webpack:///./src/common/interfaces/DataSource.ts","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/ChartingApi.ts","webpack:///./src/common/hooks/usePrevious.ts","webpack:///./src/common/interfaces/index.ts","webpack:///./src/common/interfaces/DataContract.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\"","webpack:///./src/common/hooks/useEventCallback.tsx"],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,uC;;;;;;ACAA,8C;;;;;;ACAA,mC;;;;;;ACAA,kE;;;;;;ACAA,kD;;;;;;;ACAA,+D;;;;;;;ACAA,sE;;;;;;;;;;;;;;;;;;;;;;ICaa,uB;;;;;;;WACT,iBAAK,CACD;AACH;;;WAED,oBAAQ;AACJ,aAAO,IAAP,CADI,CACS;AAChB;;;;;;AAPL,0D;;;;;;;;;;;;;;;;ACbA,IAAY,WAAZ;;AAAA,WAAY,WAAZ,EAAuB;AACnB;;;;;;;;;;AAUG;AACH;AACA;AACA;AACA;;;;AAIG;;AACH;AACA;AACA;AACH,CAvBD,EAAY,WAAW,GAAX,8CAAW,EAAX,CAAZ,E;;;;;;;;;;;;;ACAA,IAAY,WAAZ;;AAAA,WAAY,WAAZ,EAAuB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH,CAbD,EAAY,WAAW,GAAX,8CAAW,EAAX,CAAZ,E;;;;;;;;;;ACAA,kE;;;;;;;;;;;;;;ACCA;;AAEA,2C,CAGA;;;AAEO,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAAC,OAAD,EAA8B,MAA9B,EAAsD;AACvF,MAAI,CAAC,OAAD,IAAY,CAAC,OAAO,CAAC,CAAD,CAApB,IAA2B,CAAC,OAAO,CAAC,CAAD,CAAP,CAAW,MAA3C,EAAmD,OAAO,EAAP;AAEnD,MAAM,IAAI,GAAG,EAAb;;AAHuF,6BAK9E,CAL8E;AAMnF,QAAM,MAAM,GAAG,EAAf;AACA,UAAM,CAAC,OAAP,CAAe,UAAC,KAAD,EAAQ,KAAR,EAAiB;AAC5B,UAAM,SAAS,GAAG,OAAO,KAAP,KAAiB,QAAjB,GAA4B,KAA5B,GAAoC,KAAK,CAAC,IAA5D;;AACA,UAAI,OAAO,CAAC,KAAD,CAAP,CAAe,CAAf,MAAsB,EAA1B,EAA8B;AAC1B,cAAM,CAAC,SAAD,CAAN,GAAoB,IAApB;AACH,OAFD,MAEO;AACH,cAAM,CAAC,SAAD,CAAN,GAAoB,OAAO,CAAC,KAAD,CAAP,CAAe,CAAf,CAApB;AACH;AACJ,KAPD;AAQA,QAAI,CAAC,IAAL,CAAU,MAAV;AAfmF;;AAKvF,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,OAAO,CAAC,CAAD,CAAP,CAAW,MAA/B,EAAuC,CAAC,IAAI,CAA5C,EAA+C;AAAA,UAAtC,CAAsC;AAW9C;;AAED,SAAO,IAAP;AACH,CAnBM;;AAAM,gCAAqB,qBAArB,C,CAqBb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAM,2BAA2B,GAAG,SAA9B,2BAA8B,CAChC,IADgC,EAEhC,SAFgC,EAGhC,0BAHgC,EAI8C;AAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAxB;AACA,MAAM,kBAAkB,GAAG,EAA3B;;AACA,MAAI,SAAS,IAAI,UAAb,IAA2B,SAAS,KAAK,CAA7C,EAAgD;AAC5C,QAAM,UAAU,GAAG,IAAI,CAAC,GAAL,CAAS,UAAC,MAAD,EAAS,KAAT;AAAA,aAAmB,KAAnB;AAAA,KAAT,CAAnB;AACA,WAAO;AAAE,qBAAe,EAAE,IAAnB;AAAyB,wBAAkB,EAAE;AAA7C,KAAP,CAF4C,CAEsB;AACrE;;AAED,MAAM,OAAO,GAA8B,EAA3C;AACA,MAAI,YAAY,GAAG,CAAnB,CAT8E,CAW9E;;AACA,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,CAAd,KAAoB,SAAS,GAAG,CAAhC,CAAd;AAEA,MAAI,CAAC,GAAG,CAAR,CAd8E,CAcnE;;AACX,MAAI,YAAJ;AACA,MAAI,OAAJ;AACA,MAAI,IAAJ;AACA,MAAI,KAAJ;AAEA,SAAO,CAAC,IAAR,CAAa,IAAI,CAAC,CAAD,CAAjB,EApB8E,CAoBvD;;AACvB,oBAAkB,CAAC,IAAnB,CAAwB,CAAxB,EArB8E,CAuB9E;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,SAAS,GAAG,CAAhC,EAAmC,CAAC,EAApC,EAAwC;AACpC;AACA,QAAI,IAAI,GAAG,CAAX;AACA,QAAI,IAAI,GAAG,CAAX;AACA,QAAI,aAAa,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,CAAC,GAAG,CAAL,IAAU,KAArB,IAA8B,CAAlD;AACA,QAAI,WAAW,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,CAAC,GAAG,CAAL,IAAU,KAArB,IAA8B,CAAhD;AACA,eAAW,GAAG,WAAW,GAAG,UAAd,GAA2B,WAA3B,GAAyC,UAAvD;AAEA,QAAM,cAAc,GAAG,WAAW,GAAG,aAArC,CARoC,CAUpC;;AACA,WAAO,aAAa,GAAG,WAAvB,EAAoC,aAAa,EAAjD,EAAqD;AACjD,UAAI,IAAI,MAAM,CAAC,IAAI,CAAC,aAAD,CAAJ,CAAoB,CAApB,CAAD,CAAd,CADiD,CACT;;AACxC,UAAI,IAAI,IAAI,CAAC,aAAD,CAAJ,CAAoB,CAApB,IAAyB,CAAjC;AACH;;AACD,QAAI,IAAI,cAAR;AACA,QAAI,IAAI,cAAR,CAhBoC,CAkBpC;;AACA,QAAI,SAAS,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,CAAC,GAAG,CAAL,IAAU,KAArB,IAA8B,CAA9C;AACA,QAAM,OAAO,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,CAAC,GAAG,CAAL,IAAU,KAArB,IAA8B,CAA9C,CApBoC,CAsBpC;;AACA,QAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAD,CAAtB,CAvBoC,CAuBA;;AACpC,QAAM,OAAO,GAAG,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,IAAa,CAA7B,CAxBoC,CA0BpC;;AACA,WAAO,GAAG,IAAI,GAAG,CAAC,CAAlB;AACA,QAAI,YAAY,GAAG,SAAnB,CA5BoC,CA8BpC;;AACA,WAAO,SAAS,GAAG,OAAnB,EAA4B,SAAS,EAArC,EAAyC;AACrC;AACA,UAAI,GACA,IAAI,CAAC,GAAL,CACI,CAAC,OAAO,GAAG,IAAX,KAAoB,IAAI,CAAC,SAAD,CAAJ,CAAgB,CAAhB,IAAqB,OAAzC,IACI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAD,CAAJ,CAAgB,CAAhB,CAAD,CAAjB,KAA0C,IAAI,GAAG,OAAjD,CAFR,IAGI,GAJR,CAFqC,CAOrC;AACA;AACA;AACA;;AACA,UAAI,IAAI,GAAG,OAAP,IAAmB,IAAI,KAAK,OAAT,IAAoB,0BAA0B,CAAC,GAA3B,CAA+B,SAA/B,CAA3C,EAAuF;AACnF,eAAO,GAAG,IAAV;AACA,oBAAY,GAAG,IAAI,CAAC,SAAD,CAAnB;AACA,aAAK,GAAG,SAAR,CAHmF,CAGhE;AACnB;;AACA,oBAAY,GAAG,SAAf;AACH;AACJ,KAjDmC,CAmDpC;;;AACA,WAAO,CAAC,YAAY,EAAb,CAAP,GAA0B,YAA1B,CApDoC,CAoDI;;AACxC,sBAAkB,CAAC,IAAnB,CAAwB,YAAxB;AACA,KAAC,GAAG,KAAJ,CAtDoC,CAsDzB;AACd,GA/E6E,CAiF9E;;;AACA,SAAO,CAAC,YAAY,EAAb,CAAP,GAA0B,IAAI,CAAC,UAAU,GAAG,CAAd,CAA9B,CAlF8E,CAkF9B;;AAChD,oBAAkB,CAAC,IAAnB,CAAwB,UAAU,GAAG,CAArC;AAEA,SAAO;AAAE,mBAAe,EAAE,OAAnB;AAA4B,sBAAkB,EAAlB;AAA5B,GAAP;AACH,CA1FD;AAoGA;;;;;AAKG;;;AACH,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAC1B,MAD0B,EAE1B,OAF0B,EAGL;AACrB,MAAM,qBAAqB,GAAG,OAAO,CAAC,gBAAR,KAA6B,MAA3D,CADqB,CAErB;AACA;AACA;;AACA,MAAM,0BAA0B,GAC5B,MAAM,CAAC,SAAP,CACI,eAAK;AAAA,WAAI,8CAAoB,KAApB,MAAiC,qBAAqB,IAAI,KAAK,KAAK,IAAxE;AAAA,GADT,KAEK,CAHT,CALqB,CAUrB;;AACA,MAAM,aAAa,GAAa,EAAhC;AACA,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,IAAP,CAAY,eAAK,EAAG;AAC7C,QAAM,YAAY,GAAG,MAAM,CAAC,KAAD,CAA3B;AACA,QAAM,iBAAiB,GAAG,qBAAqB,IAAI,KAAK,KAAK,IAA7D,CAF6C,CAI7C;;AACA,QACI,MAAM,CAAC,KAAP,CAAa,YAAb,KACA,YAAY,IAAI,MAAM,CAAC,gBADvB,IAEA,YAAY,IAAI,MAAM,CAAC,gBAFvB,IAGC,OAAO,KAAP,KAAiB,QAAjB,IAA6B,OAAO,KAAP,KAAiB,QAA9C,IAA0D,CAAC,iBAJhE,EAKE;AACE,aAAO,IAAP;AACH,KAZ4C,CAa7C;;;AACA,iBAAa,CAAC,IAAd,CAAmB,YAAnB;AACA,WAAO,KAAP;AACH,GAhB4B,CAA7B;AAkBA,SAAO;AACH,uBAAmB,EAAnB,mBADG;AAEH,8BAA0B,EAA1B,0BAFG;AAGH,iBAAa,EAAE,mBAAmB,GAAG,aAAH,GAAmB;AAHlD,GAAP;AAKH,CAtCD;AAwCA;;;;AAIG;;;AACH,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAAC,MAAD,EAAmB,SAAnB,EAA2D;AACrF,MAAI,SAAS,KAAK,QAAlB,EAA4B;AACxB,QAAM,cAAc,GAAG,MAAM,CAAC,GAAP,CAAW,gBAAM;AAAA,aAAI,MAAM,CAAC,MAAD,CAAV;AAAA,KAAjB,CAAvB;;AACA,QAAI,0BAA0B,CAAC,cAAD,EAAiB,SAAjB,CAA9B,EAA2D;AACvD,aAAO,cAAP;AACH;AACJ,GALD,MAKO,IAAI,SAAS,KAAK,MAAlB,EAA0B;AAC7B,QAAM,eAAc,GAAG,MAAM,CAAC,GAAP,CAAW,gBAAM;AAAA,aAAI,IAAI,IAAJ,CAAS,MAAT,CAAJ;AAAA,KAAjB,CAAvB;;AACA,QAAI,0BAA0B,CAAC,eAAD,EAAiB,SAAjB,CAA9B,EAA2D;AACvD,aAAO,eAAP;AACH;AACJ;;AACD,SAAO,EAAP;AACH,CAbD;;AAeO,IAAM,2BAA2B,GAAG,SAA9B,2BAA8B,OAA4C;AAAA,MAAzC,SAAyC,QAAzC,SAAyC;;;;AACnF,SAAO,eAAS,CAAC,QAAV,MAAkB,IAAlB,IAAkB,aAAlB,GAAkB,MAAlB,GAAkB,GAAE,QAAF,CAAW,yBAAY,YAAvB,CAAzB;AACH,CAFM;;AAAM,sCAA2B,2BAA3B;;AAIN,IAAM,+BAA+B,GAAG,SAAlC,+BAAkC,QASlC;AAAA,MART,UAQS,SART,UAQS;AAAA,MAPT,SAOS,SAPT,SAOS;AAAA,MANT,WAMS,SANT,WAMS;AAAA,MALT,KAKS,SALT,KAKS;;;;AACT,MAAM,MAAM,GAAG,SAAS,GAAG,UAAZ,GAAyB,CAAxC;AACA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,8BAAW,SAAX,eAAW,WAAX,GAAW,MAAX,cAAW,CAAE,OAAb,MAAoB,IAApB,IAAoB,aAApB,GAAoB,MAApB,GAAoB,GAAE,IAAtB,MAA0B,IAA1B,IAA0B,aAA1B,GAA0B,MAA1B,GAA0B,GAAE,OAAF,CAAU,CAAV,CAA1B,MAAsC,IAAtC,IAAsC,aAAtC,GAAsC,MAAtC,GAAsC,GAAE,MAAxC,IAAiD,MAAlD,CAAN,GAAkE,EAA7E,IAAmF,EAAjG;AACA,SAAO,IAAI,CAAC,KAAL,CAAW,KAAK,GAAG,MAAM,CAAC,KAAD,CAAzB,CAAP;AACH,CAbM;;AAAM,0CAA+B,+BAA/B;AAeb;;;;;;;AAOG;;AACI,IAAM,8BAA8B,GAAG,SAAjC,8BAAiC,QAY1B;AAAA,MAXhB,gBAWgB,SAXhB,gBAWgB;AAAA,MAVhB,WAUgB,SAVhB,WAUgB;AAAA,MAThB,gBASgB,SAThB,gBASgB;AAAA,MARhB,KAQgB,SARhB,KAQgB;AAAA,MAPhB,MAOgB,SAPhB,MAOgB;;;;AAChB,MAAI,gBAAgB,IAAI,CAAC,gBAAzB,EAA2C;AACvC,WAAO,MAAM,CAAC,KAAD,CAAb;AACH;;AAED,MAAM,iBAAiB,GAAG,WAAW,SAAX,eAAW,WAAX,GAAW,MAAX,cAAW,CAAE,OAAvC;;AACA,MAAI,CAAC,iBAAL,EAAwB;AACpB,WAAO,IAAP;AACH;;AARe,MAUR,WAVQ,GAUkC,gBAVlC,CAUR,WAVQ;AAAA,MAUK,SAVL,GAUkC,gBAVlC,CAUK,SAVL;AAAA,MAUgB,aAVhB,GAUkC,gBAVlC,CAUgB,aAVhB;;AAYhB,MAAI;AACA,QAAM,WAAW,GAAG,uBAAiB,SAAjB,qBAAiB,WAAjB,GAAiB,MAAjB,oBAAiB,CAAE,IAAnB,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,MAAvB,GAAuB,GAAE,MAAF,CAAS,SAAT,CAAmB,UAAC,KAAD,EAA4B;AACtF,aAAO,KAAK,CAAC,IAAN,KAAe,MAAtB;AACH,KAF0C,CAA3C;AAGA,QAAM,sBAAsB,GAAG,mBAAa,CAAC,OAAd,MAAqB,IAArB,IAAqB,aAArB,GAAqB,MAArB,GAAqB,GAAE,MAAF,CAAS,SAAT,CAAmB,eAAK;AAAA,aAAI,KAAK,KAAK,MAAd;AAAA,KAAxB,CAApD;;AAEA,QAAI,WAAW,KAAK,CAAC,CAAjB,IAAsB,sBAAsB,KAAK,CAAC,CAAtD,EAAyD;AACrD,aAAO,IAAP;AACH;;AAED,QAAM,UAAU,GAAG,uBAAiB,SAAjB,qBAAiB,WAAjB,GAAiB,MAAjB,oBAAiB,CAAE,IAAnB,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,MAAvB,GAAuB,GAAE,OAAF,CAAU,WAAV,CAA1C;AACA,QAAM,iBAAiB,GAAG,aAAa,CAAC,OAAd,CAAsB,UAAtB,CAAiC,sBAAjC,CAA1B;AAEA,QAAM,UAAU,GAAG,UAAU,CAAC,SAAX,CAAqB,WAAC,EAAG;AACxC,aAAO,iBAAiB,CAAC,WAAD,CAAjB,KAAmC,CAA1C;AACH,KAFkB,CAAnB;AAGA,QAAM,SAAS,GAAG,UAAU,CAAC,SAAX,CAAqB,WAAC,EAAG;AACvC,aAAO,iBAAiB,CAAC,SAAD,CAAjB,KAAiC,CAAxC;AACH,KAFiB,CAAlB;;AAIA,QAAI,UAAU,IAAI,CAAd,IAAmB,SAAS,IAAI,CAAhC,IAAqC,UAAU,IAAI,SAAvD,EAAkE;AAC9D,aAAO,6CAAgC;AACnC,kBAAU,EAAV,UADmC;AAEnC,iBAAS,EAAT,SAFmC;AAGnC,mBAAW,EAAX,WAHmC;AAInC,aAAK,EAAL;AAJmC,OAAhC,CAAP;AAMH;AACJ,GA5BD,CA4BE,OAAO,CAAP,EAAU;AACR;AACA,WAAO,CAAC,KAAR,CAAc,yEAAd,EAAyF,CAAzF;AACH;;AAED,SAAO,IAAP;AACH,CA1DM;;AAAM,yCAA8B,8BAA9B;;AA4Db,IAAM,0BAA0B,GAAG,SAA7B,0BAA6B,CAAC,MAAD,EAA4B,SAA5B,EAA4D;AAC3F,SAAO,MAAM,CAAC,KAAP,CAAa,UAAC,KAAD,EAAQ,KAAR,EAAiB;AACjC,QAAI,SAAS,KAAK,QAAlB,EAA4B;AACxB,UAAI,MAAM,CAAC,KAAP,CAAa,KAAb,CAAJ,EAAyB;AACrB,eAAO,KAAP;AACH;AACJ;;AAED,QAAI,SAAS,KAAK,MAAlB,EAA0B;AACtB,UAAI,MAAM,CAAC,KAAP,CAAc,KAAc,CAAC,OAAf,EAAd,CAAJ,EAA6C;AACzC,eAAO,KAAP;AACH;AACJ;;AACD,QAAI,KAAK,KAAK,CAAd,EAAiB;AACb,aAAO,IAAP;AACH;;AACD,WAAO,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAT,CAArB;AACH,GAhBM,CAAP;AAiBH,CAlBD;AAoBA;;;;;;AAMG;;;AACH,IAAM,6BAA6B,GAAG,SAAhC,6BAAgC,CAClC,EADkC,EAElC,MAFkC,EAGlC,OAHkC,EAIlC,UAJkC,EAKlC,OALkC,EAMoB;AACtD,MAAI,OAAO,GAAsB,EAAjC;AACA,MAAM,QAAQ,GAAe,EAA7B;AAEA,MAAM,aAAa,GAAG,CAAC,EAAE,CAAC,IAAH,CAAQ,MAAR,CAAe,IAAf,CAAoB,UAAC,KAAD,EAAQ,KAAR,EAAiB;;;AACxD,QAAM,SAAS,GAAG,MAAC,KAAoB,CAAC,IAAtB,MAA0B,IAA1B,IAA0B,aAA1B,GAA0B,EAA1B,GAA8B,KAAhD;AACA,QAAM,SAAS,GAAG,gBAAU,CAAC,KAAD,CAAV,MAAiB,IAAjB,IAAiB,aAAjB,GAAiB,EAAjB,GAAqB,SAAvC;AACA,QAAM,MAAM,GAAG,EAAE,CAAC,IAAH,CAAQ,OAAR,CAAgB,KAAhB,CAAf;AACA,QAAI,uCAAuC,GAAG,KAA9C;;AAEA,QAAI,SAAS,KAAK,MAAlB,EAA0B;AACtB,aAAO,GAAG,qBAAqB,CAAC,MAAD,EAAS,SAAT,CAA/B;AACH,KAFD,MAEO,IAAI,OAAO,CAAC,GAAR,CAAY,SAAZ,CAAJ,EAA4B;AAAA,kCAC4C,qBAAqB,CAC5F,EAAE,CAAC,IAAH,CAAQ,OAAR,CAAgB,KAAhB,CAD4F,EAE5F,OAF4F,CADjE;AAAA,UACvB,aADuB,yBACvB,aADuB;AAAA,UACR,0BADQ,yBACR,0BADQ;AAAA,UACoB,mBADpB,yBACoB,mBADpB,EAK/B;AACA;;;AACA,6CAAuC,GAAG,0BAA0B,IAAI,CAAC,mBAAzE;;AACA,UAAI,uCAAJ,EAA6C;AACzC,eAAO,IAAP;AACH;;AACD,UAAI,mBAAJ,EAAyB;AACrB,gBAAQ,CAAC,IAAT,CAAc,aAAd;AACH;AACJ;;AACD,WAAO,KAAP;AACH,GAxBsB,CAAvB;;AA0BA,MAAI,aAAJ,EAAmB;AACf,WAAO;AAAE,aAAO,EAAP,OAAF;AAAW,cAAQ,EAAR;AAAX,KAAP;AACH;;AACD,SAAO;AAAE,WAAO,EAAE,EAAX;AAAe,YAAQ,EAAE;AAAzB,GAAP;AACH,CAxCD;;AA0CA,IAAM,yBAAyB,GAAG,SAA5B,yBAA4B,CAAC,EAAD,EAAiB,OAAjB,EAAqD;AACnF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAN,CAAW,OAAX,EAAoB,IAApB,CAAyB,UAAC,CAAD,EAAY,CAAZ;AAAA,WAA0B,CAAC,GAAG,CAA9B;AAAA,GAAzB,CAAtB;AACA,MAAM,aAAa,GAAG,EAAtB;AACA,IAAE,CAAC,IAAH,CAAQ,OAAR,CAAgB,OAAhB,CAAwB,gBAAM,EAAG;AAC7B,QAAM,YAAY,GAAG,EAArB;AACA,iBAAa,CAAC,OAAd,CAAsB,eAAK,EAAG;AAC1B,kBAAY,CAAC,IAAb,CAAkB,MAAM,CAAC,KAAD,CAAxB;AACH,KAFD;AAGA,iBAAa,CAAC,IAAd,CAAmB,YAAnB;AACH,GAND,EAHmF,CAWnF;;AACA,yCACO,EADP,GACS;AACL,QAAI,kCACG,EAAE,CAAC,IADN,GACU;AACV,aAAO,EAAE;AADC,KADV;AADC,GADT;AAOH,CAnBD;;AAqBO,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,QAA2D;AAAA,MAAxD,WAAwD,SAAxD,WAAwD;AAAA,MAA3C,SAA2C,SAA3C,SAA2C;AAAA,MAAhC,OAAgC,SAAhC,OAAgC;;;;AAC5F,MAAM,SAAS,GAAG,WAAW,SAAX,eAAW,WAAX,GAAW,MAAX,cAAW,CAAE,OAA/B,CAD4F,CAE5F;;AACA,MAAM,SAAS,GAAG,2BAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAE,IAAX,MAAe,IAAf,IAAe,aAAf,GAAe,MAAf,GAAe,GAAE,OAAF,CAAU,CAAV,CAAf,MAA2B,IAA3B,IAA2B,aAA3B,GAA2B,MAA3B,GAA2B,GAAE,MAA7B,MAAmC,IAAnC,IAAmC,aAAnC,GAAmC,EAAnC,GAAuC,CAAzD;;AACA,MAAI,MAAM,CAAC,KAAP,CAAa,SAAb,KAA2B,SAAS,IAAI,SAAxC,IAAqD,SAAS,GAAG,CAArE,EAAwE;AACpE,WAAO,WAAP;AACH;;AAN2F,MAQpF,MARoF,GAQpD,OARoD,CAQpF,MARoF;AAAA,MAQ5E,OAR4E,GAQpD,OARoD,CAQ5E,OAR4E;AAAA,MAQnE,UARmE,GAQpD,OARoD,CAQnE,UARmE;;AAS5F,MAAI,CAAC,MAAD,IAAW,EAAC,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAE,MAAV,CAAX,IAA+B,EAAC,UAAU,SAAV,cAAU,WAAV,GAAU,MAAV,aAAU,CAAE,MAAb,CAAnC,EAAwD;AACpD,WAAO,WAAP;AACH;;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAJ,CAAgB,OAAO,CAAC,MAAR,CAAe,gBAAM;AAAA,WAAI,CAAC,MAAM,CAAC,UAAP,CAAkB,GAAlB,CAAL;AAAA,GAArB,CAAhB,CAA3B;AACA,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAL,CAAS,kBAAkB,CAAC,IAAnB,GAA0B,SAAnC,EAA8C,SAA9C,CAA9B,CAd4F,CAgB5F;AACA;AACA;AACA;AACA;;AACA,MAAI,qBAAqB,IAAI,SAA7B,EAAwC;AACpC,WAAO,WAAP;AACH;;AAvB2F,8BAyB9D,6BAA6B,CACvD,SADuD,EAEvD,MAFuD,EAGvD,kBAHuD,EAIvD,UAJuD,EAKvD,OALuD,CAzBiC;AAAA,MAyBpF,OAzBoF,yBAyBpF,OAzBoF;AAAA,MAyB3E,QAzB2E,yBAyB3E,QAzB2E;;AAiC5F,MAAI,CAAC,QAAQ,CAAC,MAAV,IAAoB,CAAC,OAAO,CAAC,MAAjC,EAAyC;AACrC,WAAO,WAAP;AACH;;AAED,MAAM,sBAAsB,qBAAQ,WAAR,CAA5B;AACA,MAAM,kBAAkB,GAAG,IAAI,GAAJ,EAA3B;AAEA,UAAQ,CAAC,OAAT,CAAiB,UAAC,OAAD,EAAU,WAAV,EAAyB;AACtC;AACA,QAAM,MAAM,GAA8B,OAAO,CAAC,GAAR,CAAY,UAAC,MAAD,EAAS,KAAT,EAAkB;AACpE,aAAO,CAAC,OAAO,CAAC,KAAD,CAAR,EAAiB,MAAjB,CAAP;AACH,KAFyC,CAA1C;;AAIA,QAAI;AAAA,kCAC4D,2BAA2B,CACnF,MADmF,EAEnF,SAFmF,EAGnF,kBAHmF,CADvF;AAAA,UAC4B,2BAD5B,yBACQ,kBADR;;AAMA,iCAA2B,CAAC,OAA5B,CAAoC,yBAAe;AAAA,eAAI,kBAAkB,CAAC,GAAnB,CAAuB,eAAvB,CAAJ;AAAA,OAAnD;AACH,KAPD,CAOE,OAAO,CAAP,EAAU;AACR;AACA,aAAO,CAAC,KAAR,oDAA0D,WAA1D,GAAyE,CAAzE;AACH;AACJ,GAjBD,EAxC4F,CA0D5F;;AACA,wBAAsB,CAAC,OAAvB,GAAiC,yBAAyB,CAAC,SAAD,EAAY,kBAAZ,CAA1D;AAEA,SAAO,sBAAP;AACH,CA9DM;;AAAM,gCAAqB,qBAArB,C;;;;;;;;;;;;;AC1WA,wBAAgB,CAAC,KAAD,EAAQ,MAAR,EAAgB,MAAhB,CAAhB;AAGA,2BAAmB,CAAC,WAAD,EAAc,MAAd,CAAnB,C;;;;;;;ACtBb,0E;;;;;;ACAA,gE;;;;;;;;;;;;;;;;;;ICoBa,qB;AACT;AACA,iCAAoB,QAApB,EAAiC;AAAA;;AAAb;AAAiB;AAErC;;;;AAIG;;;;;WACH,qBAAwE;AAAA,qFAA9B;AAAE,cAAM,EAAE,EAAV;AAAc,kBAAU,EAAE;AAA1B,OAA8B;AAAA,UAA5D,MAA4D,QAA5D,MAA4D;AAAA,UAApD,UAAoD,QAApD,UAAoD;;AACpE,WAAK,QAAL,GAAgB,SAAhB,CAA0B,MAA1B,EAAkC,UAAlC;AACH;AAED;;;;AAIG;;;;WACH,uBAAW;AACP,WAAK,QAAL,GAAgB,WAAhB;AACH,K,CAED;;;;WACA,oBAAQ;;;AACJ,aAAO,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAtB;AACH;;;;;;AAzBL,sD;;;;;;;;;;;;;ACpBA;;AAEA,SAAwB,WAAxB,CAAuC,KAAvC,EAA+C;AAC3C,MAAM,GAAG,GAAG,qBAAZ;AACA,yBAAU,YAAK;AACX,OAAG,CAAC,OAAJ,GAAc,KAAd;AACH,GAFD;AAGA,SAAO,GAAG,CAAC,OAAX;AACH;;AAND,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA,+C;;;;;;;;;;;;;;;;;;;ACjBA;;AAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFH;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA,wB,CAA6C;;;AAC7C;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAGa,2BAAmB,CAC5B,OAD4B,EAE5B,mBAF4B,EAG5B,oBAH4B,EAI5B,aAJ4B,EAK5B,kBAL4B,CAAnB;;AAQN,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,UAAD,EAAkC,WAAlC;AAAA,SAC1B,MAAM,CAAC,IAAP,CAAY,UAAZ,EACK,MADL,CACY,aAAG;AAAA,WAAI,EAAE,GAAG,IAAI,WAAT,CAAJ;AAAA,GADf,EAEK,MAFL,CAGQ,MAAM,CAAC,IAAP,CAAY,WAAZ,EAAyB,MAAzB,CACI,aAAG;AAAA,WAAI,EAAE,GAAG,IAAI,UAAT,KAAwB,UAAU,CAAC,GAAD,CAAV,KAAoB,WAAW,CAAC,GAAD,CAA3D;AAAA,GADP,CAHR,CAD0B;AAAA,CAAvB;;AAAM,yBAAc,cAAd;;AASN,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAC5B,UAD4B,EAE5B,WAF4B,EAGnB;AACT;AACA;AACA,MAAI,CAAC,UAAD,IAAe,CAAC,WAApB,EAAiC;AAC7B,WAAO,KAAP;AACH;;AACD,SACI,CAAC,yBAAiB,IAAjB,CAAsB,WAAC;AAAA,WAAI,UAAU,CAAC,CAAD,CAAV,KAAkB,WAAW,CAAC,CAAD,CAAjC;AAAA,GAAvB,CAAD,IACA,CAAC,4BAAe,UAAf,EAA2B,WAA3B,EAAwC,IAAxC,CAA6C,WAAC;AAAA,WAAI,CAAC,CAAC,WAAF,GAAgB,QAAhB,CAAyB,OAAzB,CAAJ;AAAA,GAA9C,CAFL;AAIH,CAbM;;AAAM,2BAAgB,gBAAhB,C,CAeb;AACA;;AACO,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAC5B,oBAD4B,EAE5B,OAF4B,EAGP;AACrB,QAAM,CAAC,IAAP,CAAY,oBAAoB,IAAI,EAApC,EAAwC,OAAxC,CAAgD,aAAG,EAAG;AAClD;AACA,WAAO,WAAI,GAAJ,YAAP,GAA0B,oBAAoB,CAAC,GAAD,CAA9C;AACH,GAHD;AAKA,SAAO,OAAP;AACH,CAVM;;AAAM,2BAAgB,gBAAhB;AAiBb,IAAK,iBAAL;;AAAA,WAAK,iBAAL,EAAsB;AAClB;AACA;AACA;AACA;AACH,CALD,EAAK,iBAAiB,KAAjB,iBAAiB,MAAtB,E,CAOA;AACA;AACA;AACA;;;AACA,IAAM,iBAAiB,GAAG,4BAAO,GAAP,CAAW,KAAX,CAAiB,UAAC,KAAD;AAAA,SAA4B;AACnE,iBAAa,oBADsD;AAEnE,SAAK,EAAE,KAAK,CAAC,KAFsD;AAGnE,UAAM,EAAE,KAAK,CAAC;AAHqD,GAA5B;AAAA,CAAjB,CAAH;AAAA;AAAA;AAAA,wGAUjB,eAAK;AAAA,SAAI,yBAAY,mBAAK,KAAL,EAAY,CAAC,OAAD,EAAU,QAAV,CAAZ,CAAZ,CAAJ;AAAA,CAVY,CAAvB;AA6CA,IAAM,SAAS,GAAkD;AAC7D,OAAK,EAAE,CAAC,CAAC,SAAF,CAAY,CAAC,CAAC,CAAC,MAAH,EAAW,CAAC,CAAC,MAAb,CAAZ,CADsD;AAE7D,QAAM,EAAE,CAAC,CAAC,SAAF,CAAY,CAAC,CAAC,CAAC,MAAH,EAAW,CAAC,CAAC,MAAb,CAAZ,CAFqD;AAG7D,SAAO,EAAE,CAAC,CAAC,MAHkD;AAI7D,WAAS,EAAE,CAAC,CAAC,MAJgD;AAK7D,gBAAc,EAAE,CAAC,CAAC,IAL2C;AAM7D,SAAO,EAAE,CAAC,CAAC,IANkD;AAO7D,UAAQ,EAAE,CAAC,CAAC,IAPiD;AAQ7D,kBAAgB,EAAE,CAAC,CAAC,IARyC;AAS7D,iBAAe,EAAE,CAAC,CAAC,IAT0C;AAU7D,OAAK,EAAE,CAAC,CAAC,MAVoD;AAW7D,cAAY,EAAE,CAAC,CAAC,KAX6C;AAY7D,qBAAmB,EAAE,CAAC,CAAC,IAZsC;AAa7D,UAAQ,EAAE,CAAC,CAAC,MAbiD;AAc7D,qBAAmB,EAAE,CAAC,CAAC,MAdsC;AAe7D,+BAA6B,EAAE,CAAC,CAAC,IAf4B;AAgB7D,QAAM,EAAE,CAAC,CAAC,MAhBmD;AAiB7D,UAAQ,EAAE,CAAC,CAAC;AAjBiD,CAAjE;;AAoBA,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,KAAD,EAA6C;;;AAC1D,MAAM,SAAS,GAAG,oBAAuB,IAAvB,CAAlB;AACA,MAAM,SAAS,GAAG,oBAAgB,IAAhB,CAAlB;AACA,MAAM,KAAK,GAAG,qBAAd;AACA,MAAM,WAAW,GAAG,oBAAgB,IAAhB,CAApB;AACA,MAAM,GAAG,GAAG,oBAAO,IAAI,mCAAJ,CAA0B,KAA1B,CAAP,CAAZ;AACA,MAAM,QAAQ,GAAG,wBAAqC,yBAArC,CAAjB;AACA,MAAM,gBAAgB,GAAG,oBAAuC,IAAvC,CAAzB;;AAEA,MAAM,mBAAmB,GAAG,SAAtB,mBAAsB,GAAK;AAC7B,QAAI,SAAS,CAAC,OAAd,EAAuB;AACnB,UAAM,IAAI,GAAG,SAAS,CAAC,OAAV,CAAkB,qBAAlB,EAAb;AACA,aAAO;AACH,cAAM,EAAE,IAAI,CAAC,MADV;AAEH,aAAK,EAAE,IAAI,CAAC;AAFT,OAAP;AAIH;;AACD,WAAO,EAAP;AACH,GATD;;AAUA,MAAM,WAAW,GAAG,+BAApB;AACA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAN,GAAiB,KAAK,CAAC,QAAvB,GAAkC,sCAAoB;AAAE,iBAAa,EAAE;AAAjB,GAApB,CAAnD;AApB0D,MAsBtD,KAtBsD,GAoCtD,KApCsD,CAsBtD,KAtBsD;AAAA,MAuBtD,MAvBsD,GAoCtD,KApCsD,CAuBtD,MAvBsD;AAAA,MAwBtD,KAxBsD,GAoCtD,KApCsD,CAwBtD,KAxBsD;AAAA,MAyBtD,SAzBsD,GAoCtD,KApCsD,CAyBtD,SAzBsD;AAAA,MA0BtD,OA1BsD,GAoCtD,KApCsD,CA0BtD,OA1BsD;AAAA,MA2BtD,YA3BsD,GAoCtD,KApCsD,CA2BtD,YA3BsD;AAAA,MA4BtD,OA5BsD,GAoCtD,KApCsD,CA4BtD,OA5BsD;AAAA,MA6BtD,QA7BsD,GAoCtD,KApCsD,CA6BtD,QA7BsD;AAAA,MA8BtD,eA9BsD,GAoCtD,KApCsD,CA8BtD,eA9BsD;AAAA,MA+BtD,gBA/BsD,GAoCtD,KApCsD,CA+BtD,gBA/BsD;AAAA,MAgCtD,cAhCsD,GAoCtD,KApCsD,CAgCtD,cAhCsD;AAAA,MAiCtD,mBAjCsD,GAoCtD,KApCsD,CAiCtD,mBAjCsD;AAAA,MAkCtD,6BAlCsD,GAoCtD,KApCsD,CAkCtD,6BAlCsD;AAAA,MAmCtD,MAnCsD,GAoCtD,KApCsD,CAmCtD,MAnCsD;AAqC1D,MAAM,WAAW,GAAG,2BAAY,OAAZ,CAApB;AACA,MAAM,YAAY,GAAG,2BAAY,QAAZ,CAArB;;AAEA,MAAM,WAAW,GAAG,SAAd,WAAc,CAChB,UADgB,EAEhB,IAFgB,EAGV;AACN,QAAI,OAAO,GAAsD,mBAC7D,UAD6D,EAE7D,OAF6D,EAG7D,QAH6D,EAI7D,OAJ6D,EAK7D,aAL6D,CAAjE;AAQA,WAAO,CAAC,IAAR,GAAe,OAAO,CAAC,KAAvB;AACA,WAAO,OAAO,CAAC,KAAf;;AAEA,QAAI,IAAI,KAAK,iBAAiB,CAAC,WAA/B,EAA4C;AACxC,aAAO,CAAC,KAAR,GAAgB,OAAO,CAAC,MAAxB;AACA,aAAO,OAAO,CAAC,MAAf;AAEA,aAAO,GAAG,8BAAiB,UAAU,CAAC,UAA5B,EAAwC,OAAxC,CAAV;AACH;;AAED,WAAO,CAAC;AACJ,UAAI,EAAJ,IADI;AAEJ,mBAAa,EAAE,UAFX;AAGJ,aAAO,EAAP;AAHI,KAAD,CAAP;AAKH,GA3BD;;AA6BA,MAAM,YAAY,GAAG,SAAf,YAAe,GAAW;AAC5B,QAAI,KAAK,CAAC,OAAV,EAAmB;AACf,WAAK,CAAC,OAAN,CAAc,OAAd;AACA,WAAK,CAAC,OAAN,GAAgB,IAAhB;AACH;;AACD,eAAW,CAAC,OAAZ,GAAsB,IAAtB;AACA,aAAS,CAAC,OAAV,GAAoB,IAApB;AACH,GAPD;;AASA,MAAM,gBAAgB,GAAG,qBAAS,SAAT,aAAS,WAAT,GAAS,MAAT,YAAS,CAAE,gBAAX,MAA2B,IAA3B,IAA2B,aAA3B,GAA2B,MAA3B,GAA2B,GAAE,gBAA7B,MAA6C,IAA7C,IAA6C,aAA7C,GAA6C,EAA7C,GAAiD,KAA1E;AACA,MAAM,gCAAgC,GAAG,KAAK,CAAC,WAAN,CAAkB,YAAK;AAC5D,QAAI,CAAC,6BAAD,IAAkC,CAAC,MAAvC,EAA+C;AAC3C;AACH;;AAED,QAAM,YAAY,GAAG,gDAA+B;AAChD,sBAAgB,EAAhB,gBADgD;AAEhD,iBAAW,EAAE,mBAFmC;AAGhD,WAAK,EAAE,MAAM,CAAC,KAAD,CAHmC;AAIhD,sBAAgB,EAAE,gBAAgB,CAAC,OAJa;AAKhD,YAAM,EAAN;AALgD,KAA/B,CAArB;;AAQA,QAAI,MAAM,CAAC,QAAP,CAAgB,YAAhB,CAAJ,EAAmC;AAC/B,mCAA6B,CAAC,YAAD,CAA7B;AACH;AACJ,GAhBwC,EAgBtC,CAAC,gBAAD,EAAmB,mBAAnB,EAAwC,6BAAxC,EAAuE,KAAvE,EAA8E,MAA9E,CAhBsC,CAAzC;AAkBA,OAAK,CAAC,SAAN,CAAgB,YAAK;AACjB,oCAAgC;AACnC,GAFD,EAEG,CAAC,gCAAD,CAFH,EAjG0D,CAqG1D;AACA;AACA;AACA;AACA;;AACA,MAAM,YAAY,GAAG,gCAAiB,UAAC,UAAD,EAAqD;AACvF,oBAAgB,CAAC,OAAjB,GAA2B,UAA3B;AACA,oCAAgC,GAFuD,CAGvF;;AACA,QAAI,QAAQ,IAAI,OAAO,QAAP,KAAoB,UAApC,EAAgD;AAC5C,cAAQ,CAAC;AACL,YAAI,EAAE,cADD;AAEL,qBAAa,EAAE,UAFV;AAGL,eAAO,EAAE,mBAAK,UAAL,EAAiB,aAAjB,EAAgC,WAAhC,EAA6C,aAA7C,EAA4D,WAA5D;AAHJ,OAAD,CAAR;AAMA;AACH,KAZsF,CAcvF;;;AACA,kBAAc,CAAC;AACX,UAAI,EAAE,cADK;AAEX,mBAAa,EAAE,UAFJ;AAGX,aAAO,EAAE,mBAAK,UAAL,EAAiB,aAAjB,EAAgC,WAAhC,EAA6C,aAA7C,EAA4D,WAA5D;AAHE,KAAD,CAAd;AAKH,GApBoB,CAArB;AAsBA,MAAM,mBAAmB,GAAG,gCACxB,UAAC,UAAD,EAA0C,IAA1C,EAA2E;AACvE,QAAI,OAAO,GAAyC,mBAChD,UADgD,EAEhD,OAFgD,EAGhD,QAHgD,EAIhD,OAJgD,EAKhD,aALgD,EAMhD,gBANgD,CAApD;AASA,WAAO,CAAC,IAAR,GAAe,OAAO,CAAC,KAAvB;AACA,WAAO,OAAO,CAAC,KAAf;AACA,WAAO,CAAC,KAAR,GAAgB,OAAO,CAAC,MAAxB;AACA,WAAO,OAAO,CAAC,MAAf;AAEA,WAAO,GAAG,8BAAiB,UAAU,CAAC,UAA5B,EAAwC,OAAxC,CAAV;AAEA,mBAAe,CAAC;AACZ,UAAI,EAAJ,IADY;AAEZ,mBAAa,EAAE,UAFH;AAGZ,aAAO,EAAP;AAHY,KAAD,CAAf;AAKH,GAvBuB,CAA5B;AA0BA,MAAM,oBAAoB,GAAG,gCACzB,UAAC,UAAD,EAA2C,IAA3C,EAA4E;AACxE,QAAI,OAAO,GAA0C,mBACjD,UADiD,EAEjD,OAFiD,EAGjD,QAHiD,EAIjD,OAJiD,EAKjD,aALiD,EAMjD,gBANiD,CAArD;AASA,WAAO,CAAC,IAAR,GAAe,OAAO,CAAC,KAAvB;AACA,WAAO,OAAO,CAAC,KAAf;AACA,WAAO,CAAC,KAAR,GAAgB,OAAO,CAAC,MAAxB;AACA,WAAO,OAAO,CAAC,MAAf;AAEA,WAAO,GAAG,8BAAiB,UAAU,CAAC,UAA5B,EAAwC,OAAxC,CAAV;AAEA,oBAAgB,CAAC;AACb,UAAI,EAAJ,IADa;AAEb,mBAAa,EAAE,UAFF;AAGb,aAAO,EAAP;AAHa,KAAD,CAAhB;AAKH,GAvBwB,CAA7B;;AA0BA,MAAM,SAAS,GAAG,SAAZ,SAAY,GAAW;AACzB,QAAM,cAAc,mCAAQ,OAAR,GAAe;AAAE,+BAAyB,EAAE;AAA7B,KAAf,CAApB;AACA,QAAM,iBAAiB,GAAG,mBAAmB,EAA7C;AACA,QAAM,aAAa,GAAG,iBAAiB,CAAC,KAAxC;AACA,QAAM,cAAc,GAAG,iBAAiB,CAAC,MAAzC;AACA,QAAM,kBAAkB,GAAG,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,kBAArC;AACA,QAAM,YAAY,GAAG,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,YAA/B;AACA,QAAM,SAAS,GAAG,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,SAA5B;;AACA,QAAI,CAAC,aAAD,IAAkB,CAAC,cAAvB,EAAuC;AACnC;AACH;;AACD,QAAI,CAAC,SAAD,IAAc,CAAC,MAAM,CAAC,IAAP,CAAY,SAAZ,EAAuB,MAA1C,EAAkD;AAC9C;AACH,KAbwB,CAezB;AACA;AACA;;;AACA,QAAI,WAAJ,EAAiB;AACb,YAAM,CAAC,IAAP,CAAY,WAAZ,EAAyB,OAAzB,CAAiC,aAAG,EAAG;AACnC,YAAI,WAAW,CAAC,GAAD,CAAX,IAAoB,cAAc,CAAC,GAAD,CAAd,KAAwB,SAAhD,EAA2D;AACvD,wBAAc,CAAC,GAAD,CAAd,GAAsB,EAAtB;AACH;AACJ,OAJD;AAKH;;AAED,QAAI;AACA,UAAI,SAAS,CAAC,OAAd,EAAuB;AACnB,oBAAY;AACZ,kCAAW,QAAX,CAAoB,QAApB;;AACA,YAAI,YAAY,CAAC,MAAb,GAAsB,CAA1B,EAA6B;AACzB,oCAAW,eAAX,CAA2B,YAA3B;AACH;;AACD,aAAK,CAAC,OAAN,GAAgB,0BAAW,WAAX,CAAuB,SAAS,CAAC,OAAjC,EAAwC,0EACjD,cADiD,GACnC;AACjB,mBAAS,EAAE;AADM,SADmC,GAGhD,OAAO,kBAAP,KAA8B,QAA9B,IAA0C;AAC1C,+BAAqB;AADqB,SAHM,GAMhD,OAAO,YAAP,KAAwB,QAAxB,IAAoC;AACpC,+BAAqB;AADe,SANY,GAShD,OAAO,SAAP,KAAqB,QAArB,IAAiC;AACjC,iCAAuB;AADU,SATe,CAAxC,CAAhB,CANmB,CAmBnB;;AACA,aAAK,CAAC,OAAN,CAAc,EAAd,CAAiB,YAAjB,EAA+B,WAAC,EAAG;AAC/B,qBAAW,CAAC,CAAD,EAAI,iBAAiB,CAAC,WAAtB,CAAX;AACH,SAFD;AAGA,aAAK,CAAC,OAAN,CAAc,EAAd,CAAiB,gBAAjB,EAAmC,WAAC,EAAG;AACnC,8BAAoB,CAAC,CAAD,EAAI,iBAAiB,CAAC,gBAAtB,CAApB;AACH,SAFD;AAGA,aAAK,CAAC,OAAN,CAAc,EAAd,CAAiB,eAAjB,EAAkC,WAAC,EAAG;AAClC,6BAAmB,CAAC,CAAD,EAAI,iBAAiB,CAAC,eAAtB,CAAnB;AACH,SAFD;AAGA,aAAK,CAAC,OAAN,CAAc,EAAd,CAAiB,aAAjB,EAAgC,WAAC,EAAG;AAChC,qBAAW,CAAC,CAAD,EAAI,iBAAiB,CAAC,YAAtB,CAAX;AACH,SAFD;AAGA,aAAK,CAAC,OAAN,CAAc,EAAd,CAAiB,kBAAjB,EAAqC,YAArC;AACH;;AACD,UAAI,WAAW,CAAC,OAAhB,EAAyB;AACrB,kCAAW,QAAX,CAAoB,QAApB;;AACA,YAAI,YAAY,CAAC,MAAb,GAAsB,CAA1B,EAA6B;AACzB,oCAAW,eAAX,CAA2B,YAA3B;AACH;;AACD,aAAK,CAAC,OAAN,CAAc,cAAd,CAA6B,SAA7B,EAAwC,cAAxC,EAAwD,YAAK,CAAG,CAAhE;AACH;;AACD,UAAI,KAAK,CAAC,OAAV,EAAmB;AACf,YACI,IAAI,CAAC,KAAL,CAAW,KAAK,CAAC,OAAN,CAAc,MAAzB,MAAqC,IAAI,CAAC,KAAL,CAAW,cAAX,CAArC,IACA,IAAI,CAAC,KAAL,CAAW,KAAK,CAAC,OAAN,CAAc,KAAzB,MAAoC,IAAI,CAAC,KAAL,CAAW,aAAX,CAFxC,EAGE;AACE,eAAK,CAAC,OAAN,CAAc,MAAd,CAAqB,aAArB,EAAoC,cAApC;AACH;AACJ;;AACD,eAAS,CAAC,OAAV,GAAoB,KAApB;AACA,iBAAW,CAAC,OAAZ,GAAsB,KAAtB;AACH,KApDD,CAoDE,OAAO,CAAP,EAAU;AACR,YAAM,CAAC,OAAP,CAAe,KAAf,CAAqB,+BAArB,EAAsD,CAAtD;AACH;AACJ,GAjFD;;AAmFA,MAAM,kBAAkB,GAAG,uBAAS,SAAT,EAAoB,CAApB,CAA3B;;AAEA,MAAM,gBAAgB,GAAG,SAAnB,gBAAmB,kBAAiB,EAAG;AACzC,aAAS,CAAC,OAAV,GAAoB,iBAApB;AACA,sBAAkB;AACrB,GAHD;;AAKA,MAAM,SAAS,GAAG,2BAAY,QAAZ,CAAlB;AACA,MAAM,WAAW,GAAG,2BAAY,OAAZ,CAApB;AAEA,yBAAU,YAAK;AACX,sBAAkB;AAClB,SAAK,CAAC,mBAAN,CAA0B,GAAG,CAAC,OAA9B;AACA,WAAO,YAAK;AACR,WAAK,CAAC,mBAAN,CAA0B,IAA1B;AACA,kBAAY;AACf,KAHD;AAIH,GAPD,EAOG,EAPH;AASA,yBAAU,YAAK;AACX;AACA;AACA,QACI,CAAC,KAAK,CAAC,OAAP,IACA,CAAC,8BAAiB,WAAjB,EAA8B,OAA9B,CADD,IAEA;AACA,QAAI,CAAC,SAAL,CAAe,YAAf,MAAiC,IAAI,CAAC,SAAL,CAAe,QAAf,CAHjC,IAIC,CAAC,KAAK,CAAC,QAAP,IAAmB,SAAS,KAAK,QAJlC,IAKA,WAAW,KAAK,OANpB,EAOE;AACE,eAAS,CAAC,OAAV,GAAoB,IAApB;AACH,KAZU,CAaX;AACA;;;AACA,eAAW,CAAC,OAAZ,GAAsB,IAAtB;AACA,aAAS;AACZ,GAjBD,EAiBG,CACC,IAAI,CAAC,SAAL,CAAe,OAAf,CADD,EAEC,IAAI,CAAC,SAAL,CAAe,SAAS,CAAC,MAAV,EAAf,CAFD,EAGC,IAAI,CAAC,SAAL,CAAe,SAAS,CAAC,WAAzB,CAHD,EAIC,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,YAJX,EAKC,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,SALX,EAMC,QAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,kBANX,EAOC,QAPD,EAQC,OARD,CAjBH;AA2BA,SACI,oBAAC,iBAAD,EAAkB;AAAC,SAAK,EAAE,KAAR;AAAe,OAAG,EAAE,gBAApB;AAAsC,SAAK,EAAE,KAA7C;AAAoD,UAAM,EAAE;AAA5D,GAAlB,EACI,oBAAC,8BAAD,EAAc;AAAC,UAAM,EAAE,MAAT;AAAiB,YAAQ,EAAE;AAA3B,GAAd,CADJ,CADJ;AAKH,CA1TD;;AA4TA,IAAM,YAAY,GAAqC;AACnD,OAAK,EAAE,MAD4C;AAEnD,QAAM,EAAE,GAF2C;AAGnD,SAAO,EAAE,EAH0C;AAInD,OAAK,EAAE,EAJ4C;AAKnD;AACA,gBAAc,EAAE,aANmC;AAOnD,SAAO,EAAE,aAP0C;AAQnD,UAAQ,EAAE,aARyC;AASnD,kBAAgB,EAAE,aATiC;AAUnD,iBAAe,EAAE,aAVkC;AAWnD,cAAY,EAAE,8CAXqC;AAYnD,qBAAmB,EAAE,aAZ8B;AAanD,WAAS,EAAE,IAbwC;AAcnD,UAAQ,EAAE,IAdyC;AAenD,+BAA6B,EAAE,IAfoB;AAgBnD,qBAAmB,EAAE,IAhB8B;AAiBnD,QAAM,EAAE,IAjB2C;AAkBnD,UAAQ,EAAE;AAlByC,CAAvD;AAqBA,QAAQ,CAAC,SAAT,GAAqB,SAArB;AACA,QAAQ,CAAC,YAAT,GAAwB,YAAxB,C,CAEA;;AACA,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAAC,KAAD,EAAkD;AAC5E,MAAM,OAAO,GAAG,SAAV,OAAU,CAAC,KAAD,EAA6C;AAAA,QACjD,SADiD,GACnC,KADmC,CACjD,SADiD;;AAGzD,QAAI,CAAC,SAAL,EAAgB;AACZ,aAAO,oBAAC,iBAAD,EAAQ;AAAC,eAAO,EAAE,cAAE,eAAF,CAAV;AAA8B,aAAK,EAAC;AAApC,OAAR,CAAP;AACH;;AAED,QAAI,SAAS,IAAI,CAAC,MAAM,CAAC,IAAP,CAAY,SAAZ,EAAuB,MAAzC,EAAiD;AAC7C,aAAO,oBAAC,iBAAD,EAAQ;AAAC,eAAO,EAAE,cAAE,WAAF,CAAV;AAA0B,aAAK,EAAC;AAAhC,OAAR,CAAP;AACH;;AAED,WAAO,oBAAC,KAAD,EAAM,kBAAK,KAAL,CAAN,CAAP;AACH,GAZD;;AAcA,SAAO,CAAC,WAAR,GAAsB,iBAAtB;AACA,SAAO,CAAC,SAAR,GAAoB,SAApB;AACA,SAAO,CAAC,YAAR,GAAuB,YAAvB;AACA,SAAO,OAAP;AACH,CAnBD,C,CAqBA;;;AACA,kBAAe,qBAAqB,CAAC,QAAD,CAApC,C;;;;;;ACjgBA,iE;;;;;;ACAA,iD;;;;;;ACAA,+D;;;;;;ACAA,oD;;;;;;ACAA,0D;;;;;;ACAA,qE;;;;;;;;;;;;;ACAA;;AASA,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAqB,EAArB,EAA+C;AACpE,MAAM,GAAG,GAAG,oBAAiB,EAAjB,CAAZ;AACA,+BAAgB,YAAK;AACjB,OAAG,CAAC,OAAJ,GAAc,EAAd;AACH,GAFD;AAGA,SAAO,yBAAY;AAAA,WAAmB,GAAG,CAAC,OAAJ,UAAG,YAAtB;AAAA,GAAZ,EAAqD,EAArD,CAAP;AACH,CAND;;AAQA,kBAAe,gBAAf,C","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 = 73);\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(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","/* eslint-disable class-methods-use-this */\nexport interface VizActionHandler {\n /**\n * put focus on the visualization\n */\n focus(): void;\n\n /**\n * compute snapshot of this visualization\n */\n snapshot(): Record<string, unknown>; // (This is for pdf export)\n}\n\nexport class DefaultVizActionHandler {\n focus(): void {\n // noop\n }\n\n snapshot(): Record<string, unknown> {\n return null; // noop\n }\n}\n","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n DOWNSAMPLING = 'downsampling',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/visualizations-shared/Message\");","import type { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport { startsWithNumber } from '@splunk/visualizations-shared/numberUtils';\nimport type { DashboardVizProps, DataSource, VizConfig } from '../interfaces';\nimport { VizBehavior } from '../interfaces';\nimport { ChartEvent } from '../interfaces/ChartEvent';\n\n// TODO: utilize this fn in ParallelCoordinates\n\nexport const convertToArrOfObjects = (columns: (string | any[])[], fields: any[]): any[] => {\n if (!columns || !columns[0] || !columns[0].length) return [];\n\n const data = [];\n\n for (let i = 0; i < columns[0].length; i += 1) {\n const newObj = {};\n fields.forEach((field, index) => {\n const fieldName = typeof field === 'string' ? field : field.name;\n if (columns[index][i] === '') {\n newObj[fieldName] = null;\n } else {\n newObj[fieldName] = columns[index][i];\n }\n });\n data.push(newObj);\n }\n\n return data;\n};\n\n// LTTB algorithm which can be used to downsample time series data while striving to maintain\n// the spikes and overall shape of the chart\n// Copied from https://github.com/sveinn-steinarsson/flot-downsample/blob/0815010016fc94b1bbc6a010afb8aad13ada6d0d/jquery.flot.downsample.js\n// Modifications include:\n// 1) Convert to modern JavaScript(use const, let, and use array.push to push to last element of array)\n// 2) Convert to camel case\n// 3) Convert to TS and also return the indices of the points that are in the downsampled result.\n// 4) Add a new parameter preferredDownsampleIndices that correspond to the indices of points\n// that should be used in case of a tie of the max area in a bucket\nconst largestTriangleThreeBuckets = (\n data: [Date | number, number][],\n threshold: number,\n preferredDownsampleIndices: Set<number>\n): { downsampledData: [Date | number, number][]; downsampledIndices: number[] } => {\n const dataLength = data.length;\n const downsampledIndices = [];\n if (threshold >= dataLength || threshold === 0) {\n const allIndices = data.map((values, index) => index);\n return { downsampledData: data, downsampledIndices: allIndices }; // Nothing to do\n }\n\n const sampled: [Date | number, number][] = [];\n let sampledIndex = 0;\n\n // Bucket size. Leave room for start and end data points\n const every = (dataLength - 2) / (threshold - 2);\n\n let a = 0; // Initially a is the first point in the triangle\n let maxAreaPoint: [Date | number, number];\n let maxArea: number | undefined;\n let area: number | undefined;\n let nextA: number | undefined;\n\n sampled.push(data[a]); // Always add the first point\n downsampledIndices.push(0);\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < threshold - 2; i++) {\n // Calculate point average for next bucket (containing c)\n let avgX = 0;\n let avgY = 0;\n let avgRangeStart = Math.floor((i + 1) * every) + 1;\n let avgRangeEnd = Math.floor((i + 2) * every) + 1;\n avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;\n\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n // eslint-disable-next-line no-plusplus\n for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {\n avgX += Number(data[avgRangeStart][0]); // * 1 enforces Number (value may be Date)\n avgY += data[avgRangeStart][1] * 1;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n\n // Get the range for this bucket\n let rangeOffs = Math.floor((i + 0) * every) + 1;\n const rangeTo = Math.floor((i + 1) * every) + 1;\n\n // Point a\n const pointAX = Number(data[a][0]); // Enforce Number (value may be Date)\n const pointAY = data[a][1] * 1;\n\n // eslint-disable-next-line no-multi-assign\n maxArea = area = -1;\n let maxAreaIndex = rangeOffs;\n\n // eslint-disable-next-line no-plusplus\n for (; rangeOffs < rangeTo; rangeOffs++) {\n // Calculate triangle area over three buckets\n area =\n Math.abs(\n (pointAX - avgX) * (data[rangeOffs][1] - pointAY) -\n (pointAX - Number(data[rangeOffs][0])) * (avgY - pointAY)\n ) * 0.5;\n // Modification: try to downsample the least amount of points possible when there are multiple series\n // If all points in a bucket have the same area, prioritize the one with an x index\n // that also existed from another series so we don't add another point unnecessarily.\n // By default LTTB picks the leftmost point in the bucket\n if (area > maxArea || (area === maxArea && preferredDownsampleIndices.has(rangeOffs))) {\n maxArea = area;\n maxAreaPoint = data[rangeOffs];\n nextA = rangeOffs; // Next a is this b\n // Modification: save the index of the point with the most area\n maxAreaIndex = rangeOffs;\n }\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = maxAreaPoint; // Pick this point from the bucket\n downsampledIndices.push(maxAreaIndex);\n a = nextA; // This a is the next a (chosen b)\n }\n\n // eslint-disable-next-line no-plusplus\n sampled[sampledIndex++] = data[dataLength - 1]; // Always add last\n downsampledIndices.push(dataLength - 1);\n\n return { downsampledData: sampled, downsampledIndices };\n};\n\nexport type DownsampleOptions = { threshold: number } & Pick<DashboardVizProps, 'dataSources' | 'options'>;\n\ntype CoerceYColumnResult = {\n canDownsampleColumn: boolean;\n canLooselyCoerceSomeValues: boolean;\n coercedColumn: number[];\n};\n\n/**\n * Strictly coerces the entire column to numbers if it only consists of numeric strings or numbers. Also determines\n * if at least one of the values in the column can be loosely coerced to a number.\n * If the column cannot be strictly downsampled (if it contains nulls or non-numeric strings), returns an empty array and\n * returns that it cannot downsample the column.\n */\nconst strictlyCoerceYColumn = (\n column: string[] | number[],\n options: DownsampleOptions['options']\n): CoerceYColumnResult => {\n const isNullCoercionEnabled = options.nullValueDisplay === 'zero';\n // Splunk charting allows for numbers in formats such as negative hex that\n // Number() does not support and also allows loose coercion of hex numbers (but not other formats)\n // We want to identify columns which contain at least one value that can be loosely coerced\n const canLooselyCoerceSomeValues =\n column.findIndex(\n value => startsWithNumber(`${value}`) || (isNullCoercionEnabled && value === null)\n ) >= 0;\n\n // If not all values in column can be strictly coerced to a number, we do not downsample\n const coercedColumn: number[] = [];\n const canDownsampleColumn = !column.some(value => {\n const coercedValue = Number(value);\n const coerceValueToZero = isNullCoercionEnabled && value === null;\n\n // if it can't be parsed or isn't safe, fail\n if (\n Number.isNaN(coercedValue) ||\n coercedValue <= Number.MIN_SAFE_INTEGER ||\n coercedValue >= Number.MAX_SAFE_INTEGER ||\n (typeof value !== 'string' && typeof value !== 'number' && !coerceValueToZero)\n ) {\n return true;\n }\n // save value and continue to next\n coercedColumn.push(coercedValue);\n return false;\n });\n\n return {\n canDownsampleColumn,\n canLooselyCoerceSomeValues,\n coercedColumn: canDownsampleColumn ? coercedColumn : [],\n };\n};\n\n/**\n * Tries to coerce the x-column to numbers or dates, if it is eligible for downsampling.\n * Only strictly increasing x-columns are eligible for downsampling.\n * If the column is not eligible for downsampling, returns an empty array.\n */\nconst strictlyCoerceXColumn = (column: string[], fieldType: string): Date[] | number[] => {\n if (fieldType === 'number') {\n const coercedXColumn = column.map(xValue => Number(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n } else if (fieldType === 'time') {\n const coercedXColumn = column.map(xValue => new Date(xValue));\n if (isColumnStrictlyIncreasing(coercedXColumn, fieldType)) {\n return coercedXColumn;\n }\n }\n return [];\n};\n\nexport const isDownsamplingEnabledForViz = ({ vizConfig }: { vizConfig: VizConfig }) => {\n return vizConfig.supports?.includes(VizBehavior.DOWNSAMPLING);\n};\n\nexport const calculateThresholdOnRangeSelect = ({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n}: Pick<DashboardVizProps, 'dataSources'> & {\n firstIndex: number;\n lastIndex: number;\n width: number | string;\n}): number => {\n const window = lastIndex - firstIndex + 1;\n const ratio = Math.round(Number(dataSources?.primary?.data?.columns[0]?.length / window) * 10) / 10;\n return Math.round(ratio * Number(width));\n};\n\n/**\n * Calculates the downsampling threshold based on the range selection. If search zoom is enabled or there is no selection,\n * then returns the width of the visualization.\n *\n * Otherwise calculates the threshold based on the ratio of the window selected compared to the size of the non-downsampled\n * data sources. Returns null if the chart event's dataset does not match the passed in primary data source or if the chart is zoomed\n * in for a categorical chart.\n */\nexport const calculateDownsamplingThreshold = ({\n enableSearchZoom,\n dataSources,\n selectChartEvent,\n width,\n xField,\n}: {\n enableSearchZoom: boolean;\n dataSources: Record<string, DataSource> | null;\n selectChartEvent: ChartEvent<'chartRangeSelect'> | null;\n width: number;\n xField: string;\n}): number | null => {\n if (enableSearchZoom || !selectChartEvent) {\n return Number(width);\n }\n\n const primaryDataSource = dataSources?.primary;\n if (!primaryDataSource) {\n return null;\n }\n\n const { startXIndex, endXIndex, currentTarget } = selectChartEvent;\n\n try {\n const xFieldIndex = primaryDataSource?.data?.fields.findIndex((field: { name: string }) => {\n return field.name === xField;\n });\n const downsampledXFieldIndex = currentTarget.dataSet?.fields.findIndex(field => field === xField);\n\n if (xFieldIndex === -1 || downsampledXFieldIndex === -1) {\n return null;\n }\n\n const fullSeries = primaryDataSource?.data?.columns[xFieldIndex];\n const downsampledSeries = currentTarget.dataSet.seriesList[downsampledXFieldIndex];\n\n const firstIndex = fullSeries.findIndex(x => {\n return downsampledSeries[startXIndex] === x;\n });\n const lastIndex = fullSeries.findIndex(x => {\n return downsampledSeries[endXIndex] === x;\n });\n\n if (firstIndex >= 0 && lastIndex >= 0 && firstIndex <= lastIndex) {\n return calculateThresholdOnRangeSelect({\n firstIndex,\n lastIndex,\n dataSources,\n width,\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error occurred while setting downsample threshold on range select event', e);\n }\n\n return null;\n};\n\nconst isColumnStrictlyIncreasing = (column: (number | Date)[], fieldType: 'number' | 'time') => {\n return column.every((value, index) => {\n if (fieldType === 'number') {\n if (Number.isNaN(value)) {\n return false;\n }\n }\n\n if (fieldType === 'time') {\n if (Number.isNaN((value as Date).getTime())) {\n return false;\n }\n }\n if (index === 0) {\n return true;\n }\n return value > column[index - 1];\n });\n};\n\n/**\n * Verifies that all of the columns that are displayed in a chart can be downsampled. Valid columns that can be\n * displayed are those that contain at least one number. We can only downsample columns that only consist of numbers.\n *\n * If all columns can be downsampled, returns the x column coerced to time/number and y columns coerced to numbers.\n * If not all columns can be downsampled, then returns empty arrays for both x and y\n */\nconst tryToCoerceAllDisplayedFields = (\n ds: DataSource,\n xField: string,\n yFields: Set<string>,\n fieldTypes: string[],\n options: DownsampleOptions['options']\n): { xColumn: Date[] | number[]; yColumns: number[][] } => {\n let xColumn: Date[] | number[] = [];\n const yColumns: number[][] = [];\n\n const canDownsample = !ds.data.fields.some((field, index) => {\n const fieldName = (field as FieldEntry).name ?? field;\n const fieldType = fieldTypes[index] ?? 'unknown';\n const column = ds.data.columns[index];\n let hasDisplayedColumnThatCantBeDownsampled = false;\n\n if (fieldName === xField) {\n xColumn = strictlyCoerceXColumn(column, fieldType);\n } else if (yFields.has(fieldName)) {\n const { coercedColumn, canLooselyCoerceSomeValues, canDownsampleColumn } = strictlyCoerceYColumn(\n ds.data.columns[index],\n options\n );\n // do not perform downsampling if a column can possibly be displayed but cannot\n // be downsampled using LTTB\n hasDisplayedColumnThatCantBeDownsampled = canLooselyCoerceSomeValues && !canDownsampleColumn;\n if (hasDisplayedColumnThatCantBeDownsampled) {\n return true;\n }\n if (canDownsampleColumn) {\n yColumns.push(coercedColumn);\n }\n }\n return false;\n });\n\n if (canDownsample) {\n return { xColumn, yColumns };\n }\n return { xColumn: [], yColumns: [] };\n};\n\nconst pickIndicesFromDataSource = (ds: DataSource, indices: Set<number>): DataSource => {\n const sortedIndices = Array.from(indices).sort((a: number, b: number) => a - b);\n const slicedColumns = [];\n ds.data.columns.forEach(column => {\n const slicedColumn = [];\n sortedIndices.forEach(index => {\n slicedColumn.push(column[index]);\n });\n slicedColumns.push(slicedColumn);\n });\n\n // update data columns with downsampled columns\n return {\n ...ds,\n data: {\n ...ds.data,\n columns: slicedColumns,\n },\n };\n};\n\nexport const downsampleDataSources = ({ dataSources, threshold, options }: DownsampleOptions) => {\n const primaryDS = dataSources?.primary;\n // only downsample time series when number of data points are over threshold\n const numPoints = primaryDS?.data?.columns[0]?.length ?? 0;\n if (Number.isNaN(threshold) || numPoints <= threshold || threshold < 2) {\n return dataSources;\n }\n\n const { xField, yFields, fieldTypes } = options;\n if (!xField || !yFields?.length || !fieldTypes?.length) {\n return dataSources;\n }\n\n const nonInternalYFields = new Set<string>(yFields.filter(yField => !yField.startsWith('_')));\n const maxPointsInDownsample = Math.min(nonInternalYFields.size * threshold, numPoints);\n\n // Do not try to downsample if there are too many downsampled pts\n // At the worst case, each series has non-overlapping downsampled pts\n // which will mean that all points will be included in the downsampled result\n // This will just lead to additional overhead due to coercing each\n // x and y field to number\n if (maxPointsInDownsample >= numPoints) {\n return dataSources;\n }\n\n const { xColumn, yColumns } = tryToCoerceAllDisplayedFields(\n primaryDS,\n xField,\n nonInternalYFields,\n fieldTypes,\n options\n );\n\n if (!yColumns.length || !xColumn.length) {\n return dataSources;\n }\n\n const downsampledDataSources = { ...dataSources };\n const downsampledIndices = new Set<number>();\n\n yColumns.forEach((yColumn, columnIndex) => {\n // perform LTTB downsampling for current series, LTTB takes an [x, y] pair\n const xyPair: [Date | number, number][] = yColumn.map((yValue, index) => {\n return [xColumn[index], yValue];\n });\n\n try {\n const { downsampledIndices: downsampledIndicesForSeries } = largestTriangleThreeBuckets(\n xyPair,\n threshold,\n downsampledIndices\n );\n downsampledIndicesForSeries.forEach(downsampleIndex => downsampledIndices.add(downsampleIndex));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`Error occurred while downsampling column ${columnIndex}`, e);\n }\n });\n // update data columns with downsampled columns\n downsampledDataSources.primary = pickIndicesFromDataSource(primaryDS, downsampledIndices);\n\n return downsampledDataSources;\n};\n","import { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport { validSegmentationModes } from '@splunk/visualization-schemas';\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\n\nexport type HighlightedSourceMap = Record<string, Record<string, boolean>>;\nexport type TagsMap = Record<string, Record<string, string[]>>;\n\nexport interface Meta {\n totalCount: number;\n sid: string;\n app: string;\n highlighted?: HighlightedSourceMap;\n tags?: TagsMap;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\nexport type SegmentationType = typeof validSegmentationModes[number];\nexport const validOutputModes = ['json_cols', 'json'] as const;\nexport type OutputModeType = typeof validOutputModes[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\n segmentation?: SegmentationType;\n // eslint-disable-next-line camelcase\n output_mode?: OutputModeType;\n}\n\nexport interface DataSource {\n requestParams: Partial<RequestParams>;\n onRequestParamsChange?: (p: Record<string, unknown>) => void;\n data: JsonColumnData;\n error?: { level: string; message: string };\n meta: Partial<Meta>;\n}\n\nexport interface DataSourceMeta {\n requestParams: Partial<RequestParams>;\n meta: Partial<Meta>;\n onRequestParamsChange: (payload: RequestParams) => void;\n}\n","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","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","import { useEffect, useRef } from 'react';\n\nexport default function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","export * from './DashboardVizProps';\nexport * from './DataContract';\nexport * from './DataSource';\nexport * from './DefaultContext';\nexport * from './Editor';\nexport * from './ExtendedDashViz';\nexport * from './Object';\nexport * from './Overview';\nexport * from './ThemedDefaults';\nexport * from './VizActionHandler';\nexport * from './VizBehavior';\nexport * from './VizCategory';\nexport * from './VizConfig';\nexport * from './VizEvent';\nexport * from './VizProps';\nexport * from './VizRegistry';\nexport * from './VizSize';\nexport * from './VizStatus';\n","/**\n * A data structure used at runtime to wire up a visualization.\n */\n\ninterface InitialRequestParams {\n [key: string]: Record<string, unknown> | ((options?: Record<string, unknown>) => Record<string, unknown>);\n}\nexport interface DataContract {\n requiredDataSources: {\n name: string;\n description: string;\n }[];\n optionalDataSources?: {\n name: string;\n description: string;\n }[];\n initialRequestParams: InitialRequestParams; // TODO define better than object?\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';\nimport usePrevious from './hooks/usePrevious';\nimport useEventCallback from './hooks/useEventCallback';\nimport { DataSource } from './interfaces';\nimport { calculateDownsamplingThreshold } from './utils/dataUtils';\nimport type { ChartEvent } from './interfaces/ChartEvent';\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\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\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\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 // The non-downsampled data sources used by this chart. Passed in if downsampling\n // is enabled for this chart.\n originalDataSources?: Record<string, DataSource> | null;\n // Callback for when downsampling threshold changes. Passed in if downsampling\n // is enabled for this chart.\n onDownsamplingThresholdChange?: (threshold: number) => void | null;\n // The xField for this chart if it is an axis chart\n xField?: string;\n // The y2Fields for this chart if it is specified and it is an axis chart\n y2Fields?: 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 originalDataSources: T.object,\n onDownsamplingThresholdChange: T.func,\n xField: T.string,\n y2Fields: T.array,\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 const selectChartEvent = useRef<ChartEvent<'chartRangeSelect'>>(null);\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 originalDataSources,\n onDownsamplingThresholdChange,\n xField,\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 enableSearchZoom = chartData?.chartDataOptions?.enableSearchZoom ?? false;\n const recalculateDownsamplingThreshold = React.useCallback(() => {\n if (!onDownsamplingThresholdChange || !xField) {\n return;\n }\n\n const newThreshold = calculateDownsamplingThreshold({\n enableSearchZoom,\n dataSources: originalDataSources,\n width: Number(width),\n selectChartEvent: selectChartEvent.current,\n xField,\n });\n\n if (Number.isFinite(newThreshold)) {\n onDownsamplingThresholdChange(newThreshold);\n }\n }, [enableSearchZoom, originalDataSources, onDownsamplingThresholdChange, width, xField]);\n\n React.useEffect(() => {\n recalculateDownsamplingThreshold();\n }, [recalculateDownsamplingThreshold]);\n\n // useEventCallback is used for these handlers to make sure that they are a stable reference and\n // we always use the latest version of the callback\n // Since chart drawing is debounced, there is a race condition where a stale callback may be called\n // if a prop changes and the event handler is called before the chart redraws. This means that\n // it will use the old callback rather than the newer one, which can lead to inaccurate results\n const handleSelect = useEventCallback((chartEvent: ChartEvent<'chartRangeSelect'>): void => {\n selectChartEvent.current = chartEvent;\n recalculateDownsamplingThreshold();\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 = useEventCallback(\n (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\n const handlePointMouseOver = useEventCallback(\n (chartEvent: ChartEvent<'pointMouseOver'>, type: VizChartEventType): 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\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 (prevOptions[key] && 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 if (\n Math.round(chart.current.height) !== Math.round(computedHeight) ||\n Math.round(chart.current.width) !== Math.round(computedWidth)\n ) {\n chart.current.resize(computedWidth, computedHeight);\n }\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 // 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 needsRedraw.current = true;\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 onDownsamplingThresholdChange: null,\n originalDataSources: null,\n xField: null,\n y2Fields: [],\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\");","import { useRef, useLayoutEffect, useCallback } from 'react';\n\n/**\n * This is an escape hatch for the case where an event handler function depends on some states that changes too often thus the event handle is recreated frequently which causes bugs in some edge cases.\n *\n * For example if an old callback is called, it may not use the most recent props, but the previous props when that callback was created.\n */\n\ntype Fn<ARGS extends any[], R> = (...args: ARGS) => R;\nconst useEventCallback = <A extends any[], R>(fn: Fn<A, R>): Fn<A, R> => {\n const ref = useRef<Fn<A, R>>(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return useCallback((...args: A): R => ref.current(...args), []);\n};\n\nexport default useEventCallback;\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 = 48);
90
+ /******/ return __webpack_require__(__webpack_require__.s = 47);
91
91
  /******/ })
92
92
  /************************************************************************/
93
93
  /******/ ({
@@ -311,7 +311,7 @@ module.exports = require("@splunk/react-docs/UtilPage");
311
311
 
312
312
  /***/ }),
313
313
 
314
- /***/ 48:
314
+ /***/ 47:
315
315
  /***/ (function(module, exports, __webpack_require__) {
316
316
 
317
317
  "use strict";
@@ -325,21 +325,21 @@ Object.defineProperty(exports, "__esModule", {
325
325
 
326
326
  var React = __webpack_require__(0);
327
327
 
328
- var DocExample_1 = __webpack_require__(49);
328
+ var DocExample_1 = __webpack_require__(48);
329
329
 
330
- var Button_1 = __webpack_require__(50);
330
+ var Button_1 = __webpack_require__(49);
331
331
 
332
- var Code_1 = __webpack_require__(51);
332
+ var Code_1 = __webpack_require__(50);
333
333
 
334
- var TransitionOpen_1 = __webpack_require__(52);
334
+ var TransitionOpen_1 = __webpack_require__(51);
335
335
 
336
- var SquaresLayered_1 = __webpack_require__(53);
336
+ var SquaresLayered_1 = __webpack_require__(52);
337
337
 
338
- var Checkmark_1 = __webpack_require__(54);
338
+ var Checkmark_1 = __webpack_require__(53);
339
339
 
340
- var EyeSlashed_1 = __webpack_require__(55);
340
+ var EyeSlashed_1 = __webpack_require__(54);
341
341
 
342
- var WindowChevronsSlash_1 = __webpack_require__(56);
342
+ var WindowChevronsSlash_1 = __webpack_require__(55);
343
343
 
344
344
  var i18n_1 = __webpack_require__(5);
345
345
 
@@ -453,63 +453,63 @@ exports.default = DocExampleWithVizSandbox;
453
453
 
454
454
  /***/ }),
455
455
 
456
- /***/ 49:
456
+ /***/ 48:
457
457
  /***/ (function(module, exports) {
458
458
 
459
459
  module.exports = require("@splunk/react-docs/DocExample");
460
460
 
461
461
  /***/ }),
462
462
 
463
- /***/ 5:
463
+ /***/ 49:
464
464
  /***/ (function(module, exports) {
465
465
 
466
- module.exports = require("@splunk/ui-utils/i18n");
466
+ module.exports = require("@splunk/react-ui/Button");
467
467
 
468
468
  /***/ }),
469
469
 
470
- /***/ 50:
470
+ /***/ 5:
471
471
  /***/ (function(module, exports) {
472
472
 
473
- module.exports = require("@splunk/react-ui/Button");
473
+ module.exports = require("@splunk/ui-utils/i18n");
474
474
 
475
475
  /***/ }),
476
476
 
477
- /***/ 51:
477
+ /***/ 50:
478
478
  /***/ (function(module, exports) {
479
479
 
480
480
  module.exports = require("@splunk/react-ui/Code");
481
481
 
482
482
  /***/ }),
483
483
 
484
- /***/ 52:
484
+ /***/ 51:
485
485
  /***/ (function(module, exports) {
486
486
 
487
487
  module.exports = require("@splunk/react-ui/TransitionOpen");
488
488
 
489
489
  /***/ }),
490
490
 
491
- /***/ 53:
491
+ /***/ 52:
492
492
  /***/ (function(module, exports) {
493
493
 
494
494
  module.exports = require("@splunk/react-icons/SquaresLayered");
495
495
 
496
496
  /***/ }),
497
497
 
498
- /***/ 54:
498
+ /***/ 53:
499
499
  /***/ (function(module, exports) {
500
500
 
501
501
  module.exports = require("@splunk/react-icons/Checkmark");
502
502
 
503
503
  /***/ }),
504
504
 
505
- /***/ 55:
505
+ /***/ 54:
506
506
  /***/ (function(module, exports) {
507
507
 
508
508
  module.exports = require("@splunk/react-icons/EyeSlashed");
509
509
 
510
510
  /***/ }),
511
511
 
512
- /***/ 56:
512
+ /***/ 55:
513
513
  /***/ (function(module, exports) {
514
514
 
515
515
  module.exports = require("@splunk/react-icons/WindowChevronsSlash");
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///./src/common/docUtils.tsx","webpack:///external \"@splunk/react-docs/UtilPage\"","webpack:///./src/common/DocExampleWithVizSandbox.tsx","webpack:///external \"@splunk/react-docs/DocExample\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/react-ui/Button\"","webpack:///external \"@splunk/react-ui/Code\"","webpack:///external \"@splunk/react-ui/TransitionOpen\"","webpack:///external \"@splunk/react-icons/SquaresLayered\"","webpack:///external \"@splunk/react-icons/Checkmark\"","webpack:///external \"@splunk/react-icons/EyeSlashed\"","webpack:///external \"@splunk/react-icons/WindowChevronsSlash\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\""],"names":[],"mappings":"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","file":"DocExampleWithVizSandbox.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\");","import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary ? { dataSources: { primary: { type: 'ds.test', options: primary } } } : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n","module.exports = require(\"@splunk/react-docs/UtilPage\");","import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n}\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"toggle\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n","module.exports = require(\"@splunk/react-docs/DocExample\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/react-ui/Code\");","module.exports = require(\"@splunk/react-ui/TransitionOpen\");","module.exports = require(\"@splunk/react-icons/SquaresLayered\");","module.exports = require(\"@splunk/react-icons/Checkmark\");","module.exports = require(\"@splunk/react-icons/EyeSlashed\");","module.exports = require(\"@splunk/react-icons/WindowChevronsSlash\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///./src/common/docUtils.tsx","webpack:///external \"@splunk/react-docs/UtilPage\"","webpack:///./src/common/DocExampleWithVizSandbox.tsx","webpack:///external \"@splunk/react-docs/DocExample\"","webpack:///external \"@splunk/react-ui/Button\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/react-ui/Code\"","webpack:///external \"@splunk/react-ui/TransitionOpen\"","webpack:///external \"@splunk/react-icons/SquaresLayered\"","webpack:///external \"@splunk/react-icons/Checkmark\"","webpack:///external \"@splunk/react-icons/EyeSlashed\"","webpack:///external \"@splunk/react-icons/WindowChevronsSlash\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\""],"names":[],"mappings":"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","file":"DocExampleWithVizSandbox.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\");","import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = ['getField', 'getType', 'min', 'max'];\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.find(sharedSelector => name === sharedSelector) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs[docs.length - 1];\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return (\n <UtilPage\n title={`${className}#${doc.name}`}\n status={1}\n docs={[classHeaderDoc, doc, fileDoc]}\n />\n );\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replace(/\"/g, '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replace(/'/g, '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replace(/`/g, \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary ? { dataSources: { primary: { type: 'ds.test', options: primary } } } : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n","module.exports = require(\"@splunk/react-docs/UtilPage\");","import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n}\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"toggle\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n","module.exports = require(\"@splunk/react-docs/DocExample\");","module.exports = require(\"@splunk/react-ui/Button\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/react-ui/Code\");","module.exports = require(\"@splunk/react-ui/TransitionOpen\");","module.exports = require(\"@splunk/react-icons/SquaresLayered\");","module.exports = require(\"@splunk/react-icons/Checkmark\");","module.exports = require(\"@splunk/react-icons/EyeSlashed\");","module.exports = require(\"@splunk/react-icons/WindowChevronsSlash\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");"],"sourceRoot":""}