@splunk/visualizations 26.1.1 → 26.2.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 (159) hide show
  1. package/Area.config.js +2 -1
  2. package/Area.config.js.map +1 -1
  3. package/Area.js +1562 -433
  4. package/Area.js.map +1 -1
  5. package/Bar.config.js +1 -0
  6. package/Bar.config.js.map +1 -1
  7. package/Bar.js +1555 -430
  8. package/Bar.js.map +1 -1
  9. package/Bubble.config.js +1 -0
  10. package/Bubble.config.js.map +1 -1
  11. package/Bubble.js +1580 -455
  12. package/Bubble.js.map +1 -1
  13. package/ChoroplethSvg.config.js +1 -0
  14. package/ChoroplethSvg.config.js.map +1 -1
  15. package/ChoroplethSvg.js +1418 -351
  16. package/ChoroplethSvg.js.map +1 -1
  17. package/Column.config.js +2 -1
  18. package/Column.config.js.map +1 -1
  19. package/Column.js +1564 -435
  20. package/Column.js.map +1 -1
  21. package/Ellipse.config.js +1 -0
  22. package/Ellipse.config.js.map +1 -1
  23. package/Ellipse.js +1342 -297
  24. package/Ellipse.js.map +1 -1
  25. package/Events.config.js +4 -0
  26. package/Events.config.js.map +1 -1
  27. package/Events.js +1503 -489
  28. package/Events.js.map +1 -1
  29. package/FEATUREFLAGS.md +3 -0
  30. package/FillerGauge.config.js +1 -0
  31. package/FillerGauge.config.js.map +1 -1
  32. package/FillerGauge.js +1406 -345
  33. package/FillerGauge.js.map +1 -1
  34. package/Image.config.js +1 -0
  35. package/Image.config.js.map +1 -1
  36. package/Image.js +2355 -1183
  37. package/Image.js.map +1 -1
  38. package/Line.config.js +2 -1
  39. package/Line.config.js.map +1 -1
  40. package/Line.js +1562 -433
  41. package/Line.js.map +1 -1
  42. package/LinkGraph.config.js +1 -0
  43. package/LinkGraph.config.js.map +1 -1
  44. package/LinkGraph.js +2013 -968
  45. package/LinkGraph.js.map +1 -1
  46. package/Map.config.js +1 -0
  47. package/Map.config.js.map +1 -1
  48. package/Map.js +2556 -1527
  49. package/Map.js.map +1 -1
  50. package/Markdown.config.js +1 -0
  51. package/Markdown.config.js.map +1 -1
  52. package/Markdown.js +1952 -883
  53. package/Markdown.js.map +1 -1
  54. package/MarkerGauge.config.js +1 -0
  55. package/MarkerGauge.config.js.map +1 -1
  56. package/MarkerGauge.js +4049 -2965
  57. package/MarkerGauge.js.map +1 -1
  58. package/ParallelCoordinates.config.js +1 -0
  59. package/ParallelCoordinates.config.js.map +1 -1
  60. package/ParallelCoordinates.js +3286 -2215
  61. package/ParallelCoordinates.js.map +1 -1
  62. package/Pie.config.js +1 -0
  63. package/Pie.config.js.map +1 -1
  64. package/Pie.js +2187 -1036
  65. package/Pie.js.map +1 -1
  66. package/Punchcard.config.js +1 -0
  67. package/Punchcard.config.js.map +1 -1
  68. package/Punchcard.js +3397 -2299
  69. package/Punchcard.js.map +1 -1
  70. package/Rectangle.config.js +1 -0
  71. package/Rectangle.config.js.map +1 -1
  72. package/Rectangle.js +2181 -1112
  73. package/Rectangle.js.map +1 -1
  74. package/Sankey.config.js +1 -0
  75. package/Sankey.config.js.map +1 -1
  76. package/Sankey.js +3275 -2199
  77. package/Sankey.js.map +1 -1
  78. package/Scatter.config.js +1 -0
  79. package/Scatter.config.js.map +1 -1
  80. package/Scatter.js +3551 -2400
  81. package/Scatter.js.map +1 -1
  82. package/SingleValue.config.js +27 -0
  83. package/SingleValue.config.js.map +1 -1
  84. package/SingleValue.js +5551 -4397
  85. package/SingleValue.js.map +1 -1
  86. package/SingleValueBasic.js +1227 -1209
  87. package/SingleValueBasic.js.map +1 -1
  88. package/SingleValueIcon.config.js +27 -0
  89. package/SingleValueIcon.config.js.map +1 -1
  90. package/SingleValueIcon.js +2850 -1696
  91. package/SingleValueIcon.js.map +1 -1
  92. package/SingleValueRadial.config.js +1 -0
  93. package/SingleValueRadial.config.js.map +1 -1
  94. package/SingleValueRadial.js +6334 -5215
  95. package/SingleValueRadial.js.map +1 -1
  96. package/SparkLine.js +96 -96
  97. package/SparkLine.js.map +1 -1
  98. package/Table.config.js +172 -7
  99. package/Table.config.js.map +1 -1
  100. package/Table.js +3517 -2212
  101. package/Table.js.map +1 -1
  102. package/common/Charting.js +1009 -82
  103. package/common/Charting.js.map +1 -1
  104. package/common/ChartingApi.js +4 -4
  105. package/common/ChartingApi.js.map +1 -1
  106. package/common/DocExampleWithVizSandbox.js +54 -57
  107. package/common/DocExampleWithVizSandbox.js.map +1 -1
  108. package/common/EventsDoc.js +40 -40
  109. package/common/EventsDoc.js.map +1 -1
  110. package/common/GaugeMajorTicks.js +15 -13
  111. package/common/GaugeMajorTicks.js.map +1 -1
  112. package/common/GaugeValueMarker.js +12 -12
  113. package/common/GaugeValueMarker.js.map +1 -1
  114. package/common/OptionsDoc.js +34 -34
  115. package/common/OptionsDoc.js.map +1 -1
  116. package/common/OverviewDoc.js +124 -103
  117. package/common/OverviewDoc.js.map +1 -1
  118. package/common/SplunkVisualization.js +49 -49
  119. package/common/SplunkVisualization.js.map +1 -1
  120. package/common/SplunkVisualizationApi.js +4 -4
  121. package/common/SplunkVisualizationApi.js.map +1 -1
  122. package/common/ThemesDoc.js +31 -31
  123. package/common/ThemesDoc.js.map +1 -1
  124. package/common/chartingUtils.js +24 -8
  125. package/common/chartingUtils.js.map +1 -1
  126. package/common/docUtils.js +4 -4
  127. package/common/docUtils.js.map +1 -1
  128. package/common/gaugeUtils.js +16 -16
  129. package/common/gaugeUtils.js.map +1 -1
  130. package/common/shapeUtils.js +36 -36
  131. package/common/shapeUtils.js.map +1 -1
  132. package/common/utils/configUtils.js +48 -47
  133. package/common/utils/configUtils.js.map +1 -1
  134. package/common/utils/dataUtils.js +832 -6
  135. package/common/utils/dataUtils.js.map +1 -1
  136. package/common/utils/featureFlagUtils.js +139 -0
  137. package/common/utils/featureFlagUtils.js.map +1 -0
  138. package/common/utils/hocUtils.js +2 -2
  139. package/common/utils/hocUtils.js.map +1 -1
  140. package/common/utils/layoutUtils.js +2 -2
  141. package/common/utils/layoutUtils.js.map +1 -1
  142. package/common/utils/mapUtils.js +77 -54
  143. package/common/utils/mapUtils.js.map +1 -1
  144. package/common/utils/singleValueUtils.js +28 -19
  145. package/common/utils/singleValueUtils.js.map +1 -1
  146. package/common/utils/testHelper.js +10 -10
  147. package/common/utils/testHelper.js.map +1 -1
  148. package/common/utils/trellisUtils.js +6 -6
  149. package/common/utils/trellisUtils.js.map +1 -1
  150. package/common/utils/urlUtils.js +2 -2
  151. package/common/utils/urlUtils.js.map +1 -1
  152. package/common/withDashboardViz.js +1313 -235
  153. package/common/withDashboardViz.js.map +1 -1
  154. package/package.json +13 -12
  155. package/__mocks__/fileMock.js +0 -2
  156. package/__mocks__/styleMock.js +0 -2
  157. package/babel.config.js +0 -11
  158. package/jest.config.js +0 -8
  159. package/loki.config.js +0 -14
package/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/react-ui/Table\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///external \"@splunk/react-ui/Message\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///./src/Table/consts.ts","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/Table/Table.tsx","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualization-context/FeatureFlagContext\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/visualizations-shared/hocUtils\"","webpack:///external \"@splunk/visualizations-shared/JSONSchemaUtils\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///./src/common/hooks/getSorting.ts","webpack:///./src/common/interfaces/DataSource.ts","webpack:///./src/common/hooks/getPagination.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/common/withDashboardViz.tsx","webpack:///external \"@splunk/themes/getSettingsFromThemedProps\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///external \"styled-components\"","webpack:///external \"@splunk/moment\"","webpack:///external \"@splunk/async-dynamic-options-evaluator\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/hooks/useDeepMemo.ts","webpack:///./src/common/components/MissingPropsMessage.tsx","webpack:///./src/common/hocs/withEditModeCover.tsx","webpack:///./src/common/hocs/withPlaceholder.tsx","webpack:///./src/Table/index.ts","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///./src/Table/config.ts","webpack:///./src/Table/PureTable.tsx","webpack:///./src/Table/hooks.tsx","webpack:///./src/Table/cells/index.ts","webpack:///./src/Table/cells/SwitchTableCell.tsx","webpack:///./src/Table/cells/TextCell.tsx","webpack:///./src/Table/cells/ArrayCell.tsx","webpack:///./src/Table/cells/SparklineCell.tsx","webpack:///external \"lodash/debounce\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@babel/runtime/helpers/taggedTemplateLiteral\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/react-ui/Paginator\"","webpack:///./src/SparkLine/SparkLine.jsx"],"names":["StyledSvg","styled","StyledTooltip","SparkLine","rest","anchor","el","currentPointX","open","rectArea","tooltip","createDOMID","data","acceptNull","yMax","dataMax","max","yMin","dataMin","min","width","xUnit","xMargin","Math","height","maxValue","minValue","yUnit","yMargin","lines","currentLine","isNull","points","value","x","idx","y","p","i","fillOpacity","e","fillColor","isArea","segments","s","fill","strokeWidth","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","stroke","strokeLinecap","strokeDasharray","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","point","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","elementRef","showTooltip","showEndDot","endDotCount","title","dotsToShow","omit","keys","_","Component","PropTypes","isArray","props","string"],"mappings":"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","file":"Table.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 = 479);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/react-ui/Table\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","module.exports = require(\"@splunk/react-ui/Message\");","import * as React from 'react';\nimport styled from 'styled-components';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport { toPx } from '@splunk/visualizations-shared/style';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\ninterface ItemProps {\n backgroundColor?: string;\n width?: string | number;\n}\n\nconst Item = styled.div.attrs<ItemProps>(({ width }) => ({\n style: {\n width: toPx(width),\n },\n}))<ItemProps>`\n position: relative;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\ninterface FixSizeItemProps {\n backgroundColor?: string;\n height?: string | number;\n width?: string | number;\n}\n\n// Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291\nconst FixSizeItem = styled.div.attrs<FixSizeItemProps>(({ width, height }): {\n style: { width?: string; height?: string };\n} => ({\n style: {\n ...(width && { width: toPx(width) }),\n ...(height && { height: toPx(height) }),\n },\n}))<FixSizeItemProps>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\nconst ItemContent = styled.div`\n position: relative;\n min-height: 100px;\n width: 100%;\n`;\n\nconst FixSizeItemContent = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n box-sizing: border-box;\n`;\n\ninterface HeightAndWidthProps {\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n}\n\nconst withFixedSizeContainer = <P extends HeightAndWidthProps>(\n Viz: React.ComponentType<P>\n): React.ComponentType<P> => {\n const FixedSizeContainer = (props: P): React.ReactElement => {\n const { width, height, backgroundColor } = props;\n\n if (!height) {\n return (\n <Item data-test=\"item\" width={width} backgroundColor={backgroundColor}>\n <ItemContent>\n <Viz {...props} />\n </ItemContent>\n </Item>\n );\n }\n return (\n <FixSizeItem\n data-test=\"fix-size-item\"\n data-splunk-visualization-version={__VISION_VERSION__}\n width={width}\n height={height}\n backgroundColor={backgroundColor}\n >\n <FixSizeItemContent>\n <SizeAwareWrapper>\n {({ width: newWidth, height: newHeight }): React.ReactElement => (\n <Viz {...props} width={newWidth} height={newHeight} />\n )}\n </SizeAwareWrapper>\n </FixSizeItemContent>\n </FixSizeItem>\n );\n };\n FixedSizeContainer.displayName = 'withFixedSizeContainer';\n return FixedSizeContainer;\n};\n\nexport default withFixedSizeContainer;\n","export const validCellRenderers = ['TextCell', 'ArrayCell', 'SparklineCell'] as const;\nexport type CellRenderers = typeof validCellRenderers[number];\nexport const validSparklineTypes = ['line', 'area'] as const;\nexport type SparklineType = typeof validSparklineTypes[number];\nexport const validHeaderVisibilities = ['none', 'fixed', 'inline'] as const;\nexport type TableHeaderVisibility = typeof validHeaderVisibilities[number];\nexport const validAlignments = ['left', 'center', 'right'] as const;\nexport type TableAlignment = typeof validAlignments[number];\nexport const validTextOverflows = ['anywhere', 'break-word', 'ellipsis'] as const;\nexport type TextOverflow = typeof validTextOverflows[number];\nexport const validFontSizes = ['extraSmall', 'small', 'default', 'large'] as const;\nexport type FontSize = typeof validFontSizes[number];\n","module.exports = require(\"@splunk/visualizations-shared/style\");","import { DashboardVizProps } from '../interfaces/DashboardVizProps';\n\nexport type DashboardVizType = React.ComponentType<DashboardVizProps>;\n\n/**\n * @method extendStaticWrapperProps\n * @param {Object} props\n * @param {DashboardVizType} props.Wrapper\n * @param {DashboardVizType} props.Visualization\n */\nexport const extendStaticWrapperProps = ({\n Wrapper,\n Visualization,\n}: {\n [key: string]: DashboardVizType;\n}): void => {\n const extendProperties = ['propTypes', 'defaultProps', 'config'];\n extendProperties.forEach((prop: string): void => {\n if (Visualization[prop]) {\n // eslint-disable-next-line no-param-reassign\n Wrapper[prop] = Visualization[prop];\n }\n });\n};\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","import { get } from 'lodash';\nimport { sanitizeArrayOfColors } from '@splunk/visualizations-shared/colorUtils';\nimport config from './config';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureTable from './PureTable';\nimport type { ColumnFormat } from './hooks';\n\nexport const computeVizProps = ({ ...props }): Record<string, unknown> => {\n const vizProps = { ...props };\n if (vizProps.columnFormat) {\n const columns: Partial<ColumnFormat> = vizProps.columnFormat;\n\n const themeRowBackgroundColorOdd = vizProps.themeFunc('rowBackgroundColorOdd');\n const themeRowBackgroundColorEven = vizProps.themeFunc('rowBackgroundColorEven');\n const themeTextColor = vizProps.themeFunc('textColor');\n\n // `columns` looks like { `column title`: { rowBackgroundColors, rowColors... }}\n Object.entries(columns).forEach(([columnKey, columnProperties]) => {\n let rowBackgroundColors;\n let rowColors;\n\n // If columns have `rowBackgroundColors` or `rowColors` arrays defined, sanitize them. If there are undefined values after sanitization, these\n // elements are populated with the default values provided by the theme.\n if (columnProperties.rowBackgroundColors) {\n rowBackgroundColors = sanitizeArrayOfColors(columnProperties.rowBackgroundColors).map(\n (color, i) =>\n // using (i + 1) % 2 because 'odd' refers to row number, so index 0 -> row 1 -> odd colored\n color ||\n ((i + 1) % 2 === 0 ? themeRowBackgroundColorEven : themeRowBackgroundColorOdd)\n );\n }\n if (columnProperties.rowColors) {\n rowColors = sanitizeArrayOfColors(columnProperties.rowColors).map(\n color => color || themeTextColor\n );\n }\n\n vizProps.columnFormat[columnKey] = {\n ...vizProps.columnFormat[columnKey],\n ...(columnProperties.rowBackgroundColors && { rowBackgroundColors }),\n ...(columnProperties.rowColors && { rowColors }),\n };\n });\n }\n\n if (vizProps.onOptionsChange) {\n const handleColumnFormatChange = updatedColumnFormat => {\n const cloneOfExistingColumnFormat = { ...vizProps?.options?.columnFormat } ?? {};\n const keys = Object.keys(updatedColumnFormat);\n const values = Object.values(updatedColumnFormat);\n keys.forEach((key: string, index: number) => {\n if (!cloneOfExistingColumnFormat[key]) {\n cloneOfExistingColumnFormat[key] = {};\n }\n const newWidth = get(values[index], 'width');\n cloneOfExistingColumnFormat[key] = {\n ...cloneOfExistingColumnFormat[key],\n width: newWidth,\n };\n });\n vizProps.onOptionsChange({\n columnFormat: cloneOfExistingColumnFormat,\n });\n };\n vizProps.onColumnFormatChange = handleColumnFormatChange;\n }\n\n return vizProps;\n};\n\nconst Table = withDashboardViz({\n ReactViz: PureTable,\n vizConfig: config,\n disableEditModeCover: true,\n computeVizProps,\n} as DashboardVizOpts);\nconst { themes } = config;\n\nexport { themes, PureTable, config };\nexport default Table;\n","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","module.exports = require(\"@splunk/ui-utils/i18n\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"@splunk/visualization-context/FeatureFlagContext\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","module.exports = require(\"@splunk/visualizations-shared/hocUtils\");","module.exports = require(\"@splunk/visualizations-shared/JSONSchemaUtils\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/visualization-encoding/Options\");","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport { DataSource } from '../interfaces/DataSource';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method shouldShowIconPlaceholder\n * @param {object} dataSources\n * @param {boolean} loading\n * @returns {boolean}\n */\nexport const shouldShowIconPlaceholder = (\n dataSources: { [name: string]: DataSource },\n loading = false\n): boolean => {\n const data = get(dataSources, 'primary.data.columns[0]', undefined);\n const noData = data === undefined;\n const fields = get(dataSources, 'primary.data.fields[0]', undefined);\n const noFields = fields === undefined;\n return loading || noData || noFields;\n};\n\nexport interface IconPlaceholderProps {\n icon?: React.ComponentClass<any>;\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n iconColor?: string;\n}\n\nconst propTypes: Record<keyof IconPlaceholderProps, T.Validator<any>> = {\n icon: T.func,\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n iconColor: T.string,\n};\n\n/**\n * @method IconPlaceholder\n * @param {IconPlaceholderProps} props\n * @returns {React.ReactElement}\n */\nconst IconPlaceholder = (props: IconPlaceholderProps): React.ReactElement => {\n const { width, height, icon, iconColor } = props;\n if (icon) {\n return React.createElement(icon, {\n style: {\n left: '50%',\n top: '50%',\n color: iconColor,\n opacity: 0.15,\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n },\n width: '50%',\n height: '50%',\n 'data-test': 'icon-placeholder',\n });\n }\n\n return <Message width={width} height={height} level=\"warning\" message={_('No DataSource Connected')} />;\n};\n\nIconPlaceholder.propTypes = propTypes;\nIconPlaceholder.defaultProps = {\n width: '100%',\n height: 250,\n};\n\nexport default withFixedSizeContainer(IconPlaceholder);\n","import * as T from 'prop-types';\nimport { has } from 'lodash';\nimport { DataSourceMeta, SortDirType, validSortDirs } from '../interfaces/DataSource';\n\nexport interface SortParams {\n currentSortKey?: undefined | string;\n currentSortDir?: undefined | SortDirType;\n onSort?: (e: MouseEvent, { sortKey, sortDir }: { sortKey: string; sortDir: SortDirType }) => void;\n}\n\nexport const SortParamsPropTypes = T.shape({\n currentSortKey: T.string,\n currentSortDir: T.oneOf(validSortDirs),\n onSort: T.func,\n});\n\nexport const getSortingParams = ({ requestParams, onRequestParamsChange }: DataSourceMeta): SortParams => {\n let currentSortKey;\n let currentSortDir;\n\n const nextSortDirMap = {\n asc: 'desc',\n desc: 'asc',\n none: 'asc',\n };\n\n let onSort;\n if (typeof onRequestParamsChange === 'function') {\n if (requestParams && has(requestParams, 'sort')) {\n currentSortKey = Object.keys(requestParams.sort).shift();\n currentSortDir = requestParams.sort[currentSortKey];\n }\n\n // undid memoization since there is a dependency on requestParams, which is a deeply nested object\n onSort = (e, { sortKey, sortDir }): void => {\n if (typeof sortKey === 'string') {\n const nextSortDir = has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';\n onRequestParamsChange({\n ...requestParams,\n ...{ offset: 0, sort: { [sortKey]: nextSortDir } },\n });\n } else {\n onRequestParamsChange(requestParams);\n }\n };\n }\n\n return {\n currentSortKey,\n currentSortDir,\n onSort,\n };\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","import * as T from 'prop-types';\nimport { cloneDeep, noop } from 'lodash';\nimport { DataSourceMeta, RequestParams } from '../interfaces/DataSource';\n\nexport interface OnChangeParams {\n page?: number;\n count?: number;\n}\nexport interface PaginatorParams {\n isPaging?: boolean;\n current?: number;\n totalPages?: number;\n onChange?: (e: MouseEvent, x: OnChangeParams) => void;\n}\n\nexport const PaginatorParamsPropTypes = T.shape({\n isPaging: T.bool,\n current: T.number,\n totalPages: T.number,\n onChange: T.func,\n});\n\nexport const getPaginationParams = ({\n requestParams,\n meta,\n onRequestParamsChange,\n}: DataSourceMeta): PaginatorParams => {\n const totalCount = (meta && meta.totalCount) || 0;\n const offset = (requestParams && requestParams.offset) || 0;\n const count = requestParams && requestParams.count;\n const totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;\n const current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;\n const isPaging = totalPages > 1 && typeof onRequestParamsChange === 'function';\n\n const onChangeHandler = (e, { page, count: countArg }: OnChangeParams): void => {\n const newParams: RequestParams = cloneDeep(requestParams);\n\n if (typeof countArg === 'number') {\n newParams.count = countArg;\n newParams.offset = 0;\n }\n\n const pageCount = typeof newParams.count === 'number' ? newParams.count : 10;\n if (typeof page === 'number' && page > 0) {\n newParams.count = pageCount;\n newParams.offset = (page - 1) * pageCount;\n }\n\n onRequestParamsChange(newParams);\n };\n\n return {\n isPaging,\n current,\n totalPages,\n onChange: typeof onRequestParamsChange === 'function' ? onChangeHandler : noop,\n };\n};\n","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import * as React from 'react';\nimport { camelCase, has, get, defaultsDeep } from 'lodash';\nimport getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\nimport type { TimezoneContextInterface } from '@splunk/visualization-context/TimezoneContext';\nimport TimezoneContext from '@splunk/visualization-context/TimezoneContext';\nimport moment from '@splunk/moment';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport { withTheme } from 'styled-components';\nimport { deepMergeWithArrayPrimitiveOverrides } from '@splunk/visualizations-shared/hocUtils';\nimport { pickFieldFromJSONSchema } from '@splunk/visualizations-shared/JSONSchemaUtils';\nimport AsyncDynamicOptionsEvaluator, {\n AsyncDynamicOptionsEvaluatorParams,\n} from '@splunk/async-dynamic-options-evaluator';\nimport { createGUID } from '@splunk/ui-utils/id';\nimport SplunkVisualization from './SplunkVisualization';\nimport type { DashboardVizProps, DataSource, VizConfig, VizProps } from './interfaces';\nimport { VizBehavior } from './interfaces/VizBehavior';\nimport { getSortingParams } from './hooks/getSorting';\nimport { getPaginationParams } from './hooks/getPagination';\nimport { useDeepMemo } from './hooks/useDeepMemo';\nimport MissingPropsMessage, { missingKeys } from './components/MissingPropsMessage';\nimport withEditModeCover from './hocs/withEditModeCover';\nimport withPlaceholder from './hocs/withPlaceholder';\nimport { ChartingProps } from './Charting';\n\ntype HOC = (props: DashboardVizProps) => React.ReactElement<DashboardVizProps>;\nexport interface DashboardVizOpts {\n ReactViz: React.ComponentType<ChartingProps | VizProps>; // we will wrap this in DashboardViz (see const DashboardViz = ...)\n vizConfig: VizConfig;\n computeVizProps?: (props) => any;\n disableEditModeCover?: boolean;\n useIconPlaceholder?: (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n ) => boolean;\n}\n\n/**\n * hoc that wraps a pure react visualization in a Dashboard visualization\n * @param {DashboardVizOpts} opts\n * @returns {HOC}\n */\nconst withDashboardViz = (opts: DashboardVizOpts): HOC => {\n const {\n ReactViz,\n vizConfig,\n computeVizProps = () => {},\n disableEditModeCover,\n useIconPlaceholder,\n } = opts;\n\n // sanitizing props before sending them to reactviz.\n const SanitizedReactViz = withSanitizedProps(ReactViz);\n const defaultOptions = pickFieldFromJSONSchema(vizConfig.optionsSchema, 'default');\n\n const DashboardViz = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const {\n mode,\n hasEventHandlers,\n dataSources, // type of { [key: string]: DataSource }\n options,\n context = {},\n width,\n height,\n onComputedProps,\n onEventTrigger,\n theme,\n onRequestParamsChange,\n } = props;\n const { serializedTimezone } = React.useContext<TimezoneContextInterface>(TimezoneContext);\n if (serializedTimezone) {\n /*\n @splunk/moment currently does not allow us to customize the timezone on a per visualization basis.\n This ensures that if a timezone was provided via TimezoneContext @splunk/moment time formatting\n will use it.\n\n @TODO(pwied):\n - remove when we moved away from @splunk/moment\n - provide timezone context to dynamic option evaluation phase\n */\n if (!moment.getDefaultSplunkTimezone()) {\n moment.setDefaultSplunkTimezone(serializedTimezone);\n }\n }\n\n const themeFunc = themeVar => vizConfig.themes[themeVar]?.(props);\n const bgColorFromTheme = themeFunc('defaultBackgroundColor');\n const {\n family: currentThemeFamily,\n colorScheme: currentThemeColorScheme,\n density: currentThemeDensity,\n } = getSettingsFromThemedProps({ theme });\n let evaluatedOptions: Opts = {}; // evaluatedOptions need to be initialized as an empty object\n const [evaluatedOptionsAsync, setEvaluatedOptionsAsync] = React.useState({}); // evaluatedOptions need to be initialized as an empty object\n const featureFlagContext = React.useContext<FeatureFlagContext>(FeatureFlagContext);\n\n const [visualizationID] = React.useState(`${vizConfig.name} - ${createGUID()}`);\n\n const [dataSourcesInState, setDataSourcesInState] = React.useState({});\n const [dataFramesInState, setDataFramesInState] = React.useState();\n\n const [useAsyncEvaluatedOptions, setUseAsyncEvaluatedOptions] = React.useState(\n Boolean(featureFlagContext?.visualizations_useWebWorkersForDSL)\n );\n\n const isMounted = React.useRef(true);\n evaluatedOptions = useDeepMemo((): Record<string, unknown> => {\n try {\n if (useAsyncEvaluatedOptions) {\n const optionsToEvaluate = {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n };\n const asyncDynamicOptionsEvaluatorParams: AsyncDynamicOptionsEvaluatorParams = {\n visualizationID,\n props,\n options: optionsToEvaluate,\n dataSources,\n theme: vizConfig.themes,\n };\n AsyncDynamicOptionsEvaluator.evaluate(asyncDynamicOptionsEvaluatorParams)\n .then(results => {\n setEvaluatedOptionsAsync(results.results);\n })\n .catch(() => {\n if (isMounted.current) {\n setUseAsyncEvaluatedOptions(false);\n }\n });\n } else {\n let dataFrames = dataFramesInState;\n if (dataSources !== dataSourcesInState) {\n setDataSourcesInState(dataSources);\n dataFrames = Opts.dataFrameFromDataSource(dataSources);\n setDataFramesInState(dataFrames);\n }\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc,\n dataFrames\n );\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options: ${e.message}`);\n return {};\n }\n return {};\n }, [\n currentThemeFamily,\n currentThemeColorScheme,\n currentThemeDensity,\n options,\n context,\n dataSources,\n serializedTimezone,\n useAsyncEvaluatedOptions,\n ]);\n\n const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;\n\n // trellis specific backgroundColor update for onComputedProps\n // if trellis is enabled following these three criteria - 1) trellis feature flag is enabled 2) vizConfig supports array has 'trellis' 3) option 'splitByLayout' is set to 'trellis\n // onComputedProps api should return back trellisBackgroundColor value for backgroundColor option to support coloring of sibling panels (for eg:- title/ description on UDF side)\n const isTrellisFeatureFlagOn = Boolean(\n featureFlagContext && featureFlagContext.visualizations_enableTrellis\n );\n let clonedEvaluatedOptions = evaluatedOptionsToUse;\n if (\n isTrellisFeatureFlagOn &&\n vizConfig?.supports?.includes(VizBehavior.TRELLIS) &&\n clonedEvaluatedOptions?.splitByLayout === VizBehavior.TRELLIS\n ) {\n clonedEvaluatedOptions = {\n ...evaluatedOptionsToUse,\n backgroundColor: clonedEvaluatedOptions?.trellisBackgroundColor,\n };\n }\n // useEffect hook needs to be initialized before any early returns\n // this is in accordance with the order of hook calls being the same on each render https://reactjs.org/docs/hooks-rules.html#explanation\n React.useEffect((): void => {\n onComputedProps(clonedEvaluatedOptions);\n });\n\n React.useEffect((): (() => void) => {\n return () => {\n if (useAsyncEvaluatedOptions) {\n isMounted.current = false;\n AsyncDynamicOptionsEvaluator.reset(visualizationID);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // present warning message if any required props are missing\n const { requiredProps = [], supports } = vizConfig;\n const missing = missingKeys(requiredProps, evaluatedOptionsToUse);\n if (\n missing.length > 0 &&\n supports.includes(VizBehavior.PLACEHOLDER) &&\n vizConfig.key !== 'splunk.singlevalue' // For SV missing props msg is not displayed if required props majorValue is missing, instead this will be handled from the component, instead handled within component\n ) {\n return (\n <MissingPropsMessage\n data-test=\"missing-props-message\"\n width={width}\n height={height}\n missingProps={missing}\n backgroundColor={bgColorFromTheme}\n />\n );\n }\n\n // events\n const eventCallbackProps = {};\n if (hasEventHandlers && mode === 'view' && vizConfig.supports.indexOf(VizBehavior.EVENTS) > -1) {\n const supportedEvents = vizConfig.events;\n Object.keys(supportedEvents).forEach((eventName): void => {\n const { parentKeys, payloadKeys } = supportedEvents[eventName];\n const eventCallbackPropName = camelCase(`on.${eventName}`);\n\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n let payload = {};\n if (Array.isArray(payloadKeys) && payloadKeys.length) {\n payloadKeys.forEach(p => {\n payload[p] = evaluatedOptionsToUse[p];\n });\n }\n\n eventCallbackProps[eventCallbackPropName] = (ev): Record<string, unknown> => {\n if (ev && ev.payload) {\n payload = ev.payload;\n }\n\n return onEventTrigger({ originalEvent: ev, payload, type: eventName });\n };\n\n if (parentKeys) {\n for (let i = parentKeys.length - 1; i >= 0; i -= 1) {\n const newObject = {};\n newObject[parentKeys[i]] = eventCallbackProps[eventCallbackPropName];\n eventCallbackProps[eventCallbackPropName] = newObject;\n }\n }\n });\n }\n\n // compute pure viz props which are not from options\n const computedVizProps = computeVizProps({\n ...props,\n ...evaluatedOptionsToUse,\n ...eventCallbackProps,\n themeFunc,\n });\n\n /**\n * PAGE_AND_SORT behavior\n *\n * Some visualizations, like table, requires metadata about the datasource,\n * like total number of results, current count, offset, and sort, for rendering\n * paginator and sorting direction. In this approach, the visualization\n * allow users to set 'paginateDataSourceKey' to select which datasource\n * should the visualization extract the metadata from. It defaults to 'primary' datasource.\n * The visualization config should set the PAGE_AND_SORT behavior to receive\n * 'requestParams', 'meta' and onRequestParams callback as props.\n *\n * In future, we could automatically detect which all datasources are being used\n * and bind those magically to pagination/sorting behavior.\n */\n let dataSourceMetadata = {};\n const OptionKey = 'paginateDataSourceKey';\n const paginateDataSourceKey =\n (has(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey]) || 'primary';\n if (\n vizConfig.supports.indexOf(VizBehavior.PAGE_AND_SORT) > -1 &&\n has(dataSources, paginateDataSourceKey)\n ) {\n const requestParams = get(dataSources, [paginateDataSourceKey, 'requestParams'], {});\n const meta = get(dataSources, [paginateDataSourceKey, 'meta'], {});\n const handleRequestParamsChange = (payload: Record<string, unknown>): void =>\n onRequestParamsChange(paginateDataSourceKey, payload);\n\n const sortParams = getSortingParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n const paginatorParams = getPaginationParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n dataSourceMetadata = {\n sortParams,\n paginatorParams,\n };\n }\n\n // if were using webworkers and this is the first render we dont want to show a viz with missing data so we return null\n if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {\n return null;\n }\n\n return (\n <SanitizedReactViz\n mode={mode}\n width={width}\n height={height}\n {...evaluatedOptionsToUse}\n {...computedVizProps}\n {...eventCallbackProps}\n {...dataSourceMetadata}\n />\n );\n };\n\n DashboardViz.propTypes = {\n ...SplunkVisualization.propTypes,\n ...ReactViz.propTypes,\n };\n\n DashboardViz.defaultProps = {\n ...SplunkVisualization.defaultProps,\n ...ReactViz.defaultProps,\n // using withTheme requires component to receive theme prop. In case the consumer did not provide ThemeProvider, a default empty object will prevent warnings.\n theme: {},\n };\n // attach viz config\n DashboardViz.config = vizConfig;\n\n // @ts-ignore: TODO fix sc upgrade TS issues\n return withTheme(\n withPlaceholder(withEditModeCover(DashboardViz, disableEditModeCover), useIconPlaceholder)\n );\n};\n\nexport default withDashboardViz;\n","module.exports = require(\"@splunk/themes/getSettingsFromThemedProps\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","module.exports = require(\"styled-components\");","module.exports = require(\"@splunk/moment\");","module.exports = require(\"@splunk/async-dynamic-options-evaluator\");","/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n static defaultProps: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n","/* 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","import { useRef } from 'react';\nimport { isEqual } from 'lodash';\n\n/**\n * This hook evaluates and stores the result of a passed function and only\n * re-evaluates the function when passed dependencies change.\n *\n * It is different from the internal React useMemo in the following aspects:\n * - it only stores the last evaluated result\n * - it uses a deep equality check to determine if dependencies have changed\n *\n * Inspired by apollo-client's useDeepMemo\n *\n * @param fn the function to be executed and\n * @param dependencies an array of dependencies\n */\nexport const useDeepMemo = <FnReturnType, DepType>(\n fn: () => FnReturnType,\n dependencies: DepType\n): FnReturnType => {\n const ref = useRef<{ dependencies: DepType; value: FnReturnType }>();\n if (!ref.current || !isEqual(dependencies, ref.current.dependencies)) {\n ref.current = {\n dependencies,\n value: fn(),\n };\n }\n return ref.current.value;\n};\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method isMissing\n * @param {any} v\n * @returns {boolean} true if the input value === null or undefined\n */\nexport const isMissing = (v): boolean => {\n return v === null || v === undefined;\n};\n\n/**\n * @method misskingKeys\n * @param {string[]} keys\n * @param {object} target\n * @returns {string[]} the keys of missing required props\n */\nexport const missingKeys = (keys: string[], target: Record<string, unknown>): string[] =>\n keys.filter(k => isMissing(target[k]));\n\nexport interface MissingPropsProps {\n width?: string | number;\n height?: string | number;\n missingProps: string[];\n backgroundColor?: string;\n}\n\nconst propTypes: Record<keyof MissingPropsProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n missingProps: T.arrayOf(T.string),\n};\n\n/**\n * @method MissingPropsMessage\n * @param {MissingPropsProps} props\n * @returns {React.ReactElement}\n */\nexport const MissingPropsMessage = (props: MissingPropsProps): React.ReactElement => {\n const { width, height, missingProps } = props;\n return (\n <Message\n data-test=\"message\"\n width={width}\n height={height}\n message={_(`Missing property: ${missingProps.join(', ')}`)}\n />\n );\n};\n\nMissingPropsMessage.propTypes = propTypes;\nMissingPropsMessage.defaultProps = {\n width: '100%',\n height: 250,\n};\nexport default withFixedSizeContainer(MissingPropsMessage);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\nconst Cover = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n`;\n\nconst Blocker = styled.div.attrs({\n 'data-splunk-visualization-version': __VISION_VERSION__,\n})`\n position: relative;\n width: 100%;\n height: 100%;\n`;\n\n/**\n * HOC that renders a cover layer in edit mode\n * @method withEditModeCover\n * @param {ExtendedDashViz} Visualization\n * @returns {ExtendedDashViz} Wrapper\n */\nconst withEditModeCover = (\n Visualization: ExtendedDashViz,\n disableEditModeCover?: boolean\n): ExtendedDashViz => {\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { mode } = props;\n const showEditCover = mode === 'edit' && !disableEditModeCover;\n\n return (\n <Blocker>\n <Visualization {...props} />\n {showEditCover && <Cover data-test=\"edit-mode-cover\" />}\n </Blocker>\n );\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withEditModeCover;\n","import * as React from 'react';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport variables from '@splunk/themes/variables';\nimport IconPlaceholder, { shouldShowIconPlaceholder } from '../components/IconPlaceholder';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { DataSource } from '../interfaces/DataSource';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\ntype useIconPlaceholderType = (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n) => boolean;\n\nconst withPlaceholder = (\n Visualization: ExtendedDashViz,\n useIconPlaceholder: useIconPlaceholderType = shouldShowIconPlaceholder\n): ExtendedDashViz => {\n const { config } = Visualization;\n const { themes } = config;\n\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { dataSources, loading, options, height, width } = props;\n\n const showPlaceholder = useIconPlaceholder(dataSources, loading, options);\n const bgColorFromTheme = isColor(options?.backgroundColor)\n ? options?.backgroundColor\n : themes?.defaultBackgroundColor?.(props);\n\n const icon = config.placeholderIcon ?? config.icon;\n const iconColor = variables.contentColorActive(props);\n\n if (config.supports.includes(VizBehavior.PLACEHOLDER) && showPlaceholder) {\n return (\n <IconPlaceholder\n data-test=\"icon-placeholder\"\n icon={icon}\n width={width}\n height={height}\n backgroundColor={bgColorFromTheme}\n iconColor={iconColor}\n />\n );\n }\n\n return <Visualization {...props} />;\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withPlaceholder;\n","// NOTE: wildcard syntax only works for named exports\n// for some reason, omitting the default export worked before TS v4\n// see: https://stackoverflow.com/a/34445175\nexport * from './Table';\nexport { default } from './Table';\n","module.exports = require(\"@babel/runtime/helpers/extends\");","import { _ } from '@splunk/ui-utils/i18n';\nimport { map, get } from 'lodash';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA, getPattern } from '@splunk/visualizations-shared/schemaUtils';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { Table as TableIcon } from '@splunk/visualization-icons';\nimport { Table as TablePlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport variables from '@splunk/themes/variables';\nimport pick from '@splunk/themes/pick';\nimport { enhanceConfig, generatePrecisionValues } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport {\n validHeaderVisibilities,\n validAlignments,\n validTextOverflows,\n validCellRenderers,\n validSparklineTypes,\n validFontSizes,\n} from './consts';\nimport { VizCategory } from '../common/interfaces/VizCategory';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: (options: { count?: number } = {}): Record<string, unknown> => ({\n offset: 0,\n count: options.count ? options.count : 10,\n requestTotalCount: true,\n }),\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n tableAlignByType: [\n { match: 'string', value: 'left' },\n { match: 'number', value: 'right' },\n { match: 'time', value: 'left' },\n { match: 'color', value: 'left' },\n { match: 'array', value: 'left' },\n { match: 'sparkline', value: 'center' },\n { match: 'unknown', value: 'left' },\n { match: 'null', value: 'left' },\n ],\n tableCellTypeByType: [\n { match: 'string', value: 'TextCell' },\n { match: 'number', value: 'TextCell' },\n { match: 'time', value: 'TextCell' },\n { match: 'color', value: 'TextCell' },\n { match: 'array', value: 'ArrayCell' },\n { match: 'sparkline', value: 'SparklineCell' },\n { match: 'unknown', value: 'TextCell' },\n { match: 'null', value: 'TextCell' },\n ],\n\n // NOTE: These contexts are used by the table background color editor.\n // Please be careful removing/renaming/altering them.\n // There are unit tests and visual test that will capture breakages.\n tableRowColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n tableRowBackgroundColorEvenConfig: {\n channel: 'hsv.v',\n value: '*0.96',\n },\n tableHeaderBackgroundColorConfig: {\n channel: 'hsv.v',\n value: '*0.9',\n },\n tableRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd'],\n tableAltRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd', '> themes.rowBackgroundColorEven'],\n tableRowBackgroundColorsByBackgroundColor: ['> backgroundColor'],\n tableAltRowBackgroundColorsByBackgroundColor: [\n '> backgroundColor',\n '> backgroundColor | setColorChannel(tableRowBackgroundColorEvenConfig)',\n ],\n};\n\nconst unitPositionConfig = {\n label: _('Units position'),\n editor: 'editor.select',\n option: 'unitPosition',\n editorProps: {\n values: [\n { label: _('Before'), value: 'before' },\n { label: _('After'), value: 'after' },\n ],\n },\n};\n\nconst unitLabelConfig = {\n label: _('Unit label'),\n option: 'unit',\n editor: 'editor.text',\n};\n\nconst timeFormattingConfig = {\n label: _('Date & Time formatting'),\n option: 'format',\n editor: 'editor.text',\n editorProps: {\n tooltip: _('For example: DD-MM-YYYY'),\n },\n};\n\nconst sequentialColorConfig = [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n];\n\nconst matchColorConfig = [{ match: '', value: '#5C33FF' }];\n\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You might use a data source to apply the color. The default for enterprise light is \"#FFFFFF\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0B0C0E\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n columnFormat: {\n description:\n 'Lets you format an individual column in a table. Specify a column in a table as a field, followed by a property. For more information, see the Column Format Align - Left example on the Examples page.',\n type: 'object',\n patternProperties: {\n '.*': {\n description: 'Customization for column property',\n type: 'object',\n properties: {\n align: {\n description:\n 'Specify the alignment for each cell in a column. Valid alignments include \"left\", \"center\", and \"right\".',\n type: 'array',\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n },\n cellTypes: {\n description:\n 'Specify how to render data in cells. Valid cell renders include \"TextCell\", \"ArrayCell\", \"SparklineCell\".',\n type: 'array',\n items: {\n type: 'string',\n enum: validCellRenderers.concat(),\n },\n },\n data: {\n description: 'Specify data points to be displayed in the cells of a column.',\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n rowBackgroundColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the background color of each column of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n rowColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the text color of the cells of a column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineAreaColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline area of each column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline stroke of each column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineTypes: {\n description:\n 'Choose either area or line formatting for the Sparkline. Valid sparkline types include \"line\" and \"area\".',\n type: 'array',\n items: {\n type: 'string',\n enum: validSparklineTypes.concat(),\n },\n },\n textOverflow: {\n description:\n 'Controls how the text should be truncated within a particular column. Valid types include \"anywhere\", \"break-word\", \"ellipsis\". Columns are \"break-word\" styled by default when \"textOverflow\" is not configured.',\n type: 'string',\n pattern: getPattern(validTextOverflows),\n enum: validTextOverflows.concat(),\n },\n width: {\n description:\n 'Specify, in pixels, the width of the column. The default displays a minimum width of at least 90, unless the table needs to filled further. The minimum width is 30px.',\n type: 'number',\n minimum: 30,\n },\n },\n },\n },\n },\n count: {\n description: 'Specify the maximum number of rows to display.',\n type: 'number',\n default: 10,\n },\n font: {\n default: 'proportional',\n description: 'Specify the font style to use for table content.',\n type: 'string',\n pattern: getPattern(['proportional', 'monospace']),\n },\n fontSize: {\n default: 'default',\n description:\n 'Specify the font size to use for table content. Font sizes range from extra small (10px) to large (16px) with the default being 14px.',\n type: 'string',\n pattern: getPattern(validFontSizes),\n },\n headers: {\n default: '> table | getField()',\n description:\n \"Specify an array of headers to display on the table. Though these can be statically listed, it's best to use the dynamic default, as it will return the fields of your search.\",\n type: 'array',\n items: {\n type: 'string',\n },\n },\n headerVisibility: {\n default: 'inline',\n description: 'Specify how to display the table header row.',\n pattern: getPattern(validHeaderVisibilities),\n enum: validHeaderVisibilities.concat(),\n type: 'string',\n },\n paginateDataSourceKey: {\n default: 'primary',\n description: 'Specify the data source key for pagination and sorting.',\n type: 'string',\n },\n showInternalFields: {\n default: true,\n description:\n 'Specify whether to show internal fields that start with an underscore. The _time field will still be shown if false.',\n type: 'boolean',\n },\n showRowNumbers: {\n default: false,\n description: 'Show row numbers in the first column.',\n type: 'boolean',\n },\n table: {\n default: '> primary',\n description: 'Two dimensional array of data to be displayed in the table.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n },\n tableFormat: {\n description: 'Lets you set global options for a table.',\n type: 'object',\n properties: {\n align: {\n default: '> table | type() | matchValue(tableAlignByType)',\n description:\n 'Specify alignment for each cell in the table. Valid alignments include \"left\", \"center\", and \"right\".',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n },\n },\n cellTypes: {\n default: '> table | type() | matchValue(tableCellTypeByType)',\n description:\n 'Specify how to render data in cells. Valid cell renders include \"TextCell\", \"ArrayCell\", \"SparklineCell\".',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validCellRenderers.concat(),\n },\n },\n },\n data: {\n description:\n 'Two dimensional data to be displayed in the table. This is usually formatted data instead of raw data from search.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n },\n headerBackgroundColor: {\n default: '> themes.defaultHeaderBackgroundColor',\n description:\n 'Specify the table header background color using a hexadecimal code. For example, \"#FFFFFF\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n headerColor: {\n description:\n 'Specify the table header text color using a hexadecimal code. For example, \"#FFFFFF\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n rowBackgroundColors: {\n default: '> table | seriesByIndex(0) | pick(tableAltRowBackgroundColorsByTheme)',\n description:\n 'Specify a list of colors, in hexadecimal code, for the background color of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n rowColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the text color of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineAreaColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline area of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline stroke of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineTypes: {\n description: 'Choose either area or line formatting for the Sparkline.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validSparklineTypes.concat(),\n },\n },\n },\n },\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultHeaderBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray20(props),\n light: variables.gray92(props),\n },\n prisma: variables.backgroundColor(props),\n })(props),\n rowBackgroundColorEven: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorPage(props),\n })(props),\n rowBackgroundColorOdd: props =>\n pick({\n enterprise: {\n dark: '#0D1012',\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\nconst EDITOR_LABEL_WIDTH = 100;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Rows displayed'),\n option: 'count',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Row numbers'),\n option: 'showRowNumbers',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Internal fields'),\n option: 'showInternalFields',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Header row'),\n option: 'headerVisibility',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Inline'), value: 'inline' },\n { label: _('Fixed'), value: 'fixed' },\n { label: _('Hidden'), value: 'none' },\n ],\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n key: 'backgroundColor',\n editor: 'editor.tableBackgroundColor',\n editorProps: {\n themes,\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n option: 'font',\n label: _('Font'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Proportional (Default)'), value: 'proportional' },\n { label: _('Monospace'), value: 'monospace' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n option: 'fontSize',\n label: _('Font size'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Extra Small (font 10px, row 24px)'), value: 'extraSmall' },\n { label: _('Small (font 12px, row 24px)'), value: 'small' },\n { label: _('Default (font 14px, row 32px)'), value: 'default' },\n { label: _('Large (font 16px, row 36px)'), value: 'large' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Column-specific formatting'),\n editor: 'editor.tableColumnFormatter',\n editorProps: {\n // Table column coloring does not adhere to same DSL structure as other dynamically colored options\n // we use the FormatterEditor directly and not the DynamicColorEditor's provided DSL builders\n columnColoringConfig: {\n coloringTypes: [\n {\n label: _('Text'),\n value: 'rowColors',\n },\n {\n label: _('Background'),\n value: 'rowBackgroundColors',\n },\n ],\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n rowBackgroundColors: sequentialColorConfig,\n rowColors: sequentialColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n rowBackgroundColors: matchColorConfig,\n rowColors: matchColorConfig,\n },\n },\n ],\n themes,\n },\n defaultOptionsByType: {\n number: {\n thousandSeparated: false,\n unitPosition: 'after',\n },\n string: {\n unitPosition: 'after',\n },\n },\n flyoutConfig: {\n number: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n [\n {\n label: _('Precision'),\n option: 'precision',\n editor: 'editor.select',\n editorProps: {\n values: generatePrecisionValues(20),\n },\n },\n {\n label: _('Thousand separators'),\n option: 'thousandSeparated',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Off'), value: false },\n { label: _('On'), value: true },\n ],\n },\n },\n ],\n ],\n // TODO(fkurniawan): fill in with proper editor components\n sparkline: [],\n string: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n ],\n time: [\n [\n {\n ...timeFormattingConfig,\n },\n ],\n ],\n },\n value: ({ context, options }) => {\n return {\n context,\n columnFormat: options.columnFormat,\n tableFormat: options.tableFormat,\n };\n },\n },\n key: 'TableColumnFormatterEditor',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.table',\n /**\n * viz name\n */\n name: _('Table'),\n category: VizCategory.TABLE,\n /**\n * viz icon\n */\n icon: TableIcon,\n placeholderIcon: TablePlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'cell.click': {\n description: 'triggered when user clicks a table cell',\n },\n },\n supports: [\n VizBehavior.DYNAMIC_OPTIONS,\n VizBehavior.EVENTS,\n VizBehavior.PAGE_AND_SORT,\n VizBehavior.PLACEHOLDER,\n ],\n themes,\n};\n\nexport default enhanceConfig(config);\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { cloneDeep, noop } from 'lodash';\nimport styled, { css } from 'styled-components';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SUITable from '@splunk/react-ui/Table';\nimport Paginator from '@splunk/react-ui/Paginator';\nimport Message from '@splunk/react-ui/Message';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nimport {\n TableCellValueType,\n TableRowCell,\n useTable,\n TableHeaderStyle,\n TableBody,\n TableHeader,\n TableFormat,\n ColumnFormat,\n} from './hooks';\n\nimport {\n validAlignments,\n TableHeaderVisibility,\n validHeaderVisibilities,\n validCellRenderers,\n validSparklineTypes,\n} from './consts';\n\nimport { SwitchTableCell, TextCell, ArrayCell, SparklineCell } from './cells';\nimport { PaginatorParamsPropTypes, PaginatorParams } from '../common/hooks/getPagination';\nimport { SortParamsPropTypes, SortParams } from '../common/hooks/getSorting';\nimport withFixedSizeContainer from '../common/hocs/FixedSizeContainer';\n\n// debounce was imported this way due to typing\n// eslint-disable-next-line import/order\nimport debounce = require('lodash/debounce');\n\nexport const MINIMUM_COLUMN_SIZE = 30;\nexport const INITIAL_UNSET_COLUMN_WIDTH = 90;\ninterface TableCellClickPayload {\n /* user should be able to use value to drilldown */\n value: string | number;\n // other details user can use to for building complex drilldown/tokens\n\n /* nth - column. starts at 0. row number column is ignored */\n cellIndex: number;\n\n /* nth - row */\n rowIndex: number;\n\n /* field name from the table header */\n fieldValue: string;\n name: string;\n\n /* displayed table cell value. This could be formatted data */\n cellValue: TableCellValueType;\n\n /* Raw unformatted data */\n cellRawValue: TableCellValueType;\n\n /* cell values of all cells of clicked row with the field and value - in shape row.<field>.value */\n [key: string]: TableCellValueType | TableCellValueType[];\n}\n\nexport interface PureTableProps {\n backgroundColor?: string;\n count?: number;\n mode?: string;\n width?: number;\n height?: number;\n headers?: string[];\n table?: TableCellValueType[][];\n headerVisibility?: TableHeaderVisibility;\n showRowNumbers?: boolean;\n showInternalFields?: boolean;\n tableBody?: TableBody;\n tableHeader?: TableHeader;\n tableFormat?: Partial<TableFormat>;\n columnFormat?: Partial<ColumnFormat>;\n sortParams?: SortParams;\n paginatorParams?: PaginatorParams;\n onCellClick?: ({ e, payload }: { e: Event; payload: TableCellClickPayload }) => void;\n onColumnFormatChange?: (columnFormat: Partial<ColumnFormat>) => void;\n font?: string;\n fontSize?: string;\n}\n\nconst NonVisibleTableHead = styled(SUITable.Head)`\n pointer-events: none;\n & [data-test='head-cell'] > div {\n height: 0;\n padding: 0;\n margin: 0;\n }\n`;\n\nconst FixedTableHead = styled(SUITable.Head)`\n position: sticky;\n top: 0;\n`;\n\nconst TableHeadCell = styled(SUITable.HeadCell)`\n div > span {\n word-break: inherit;\n word-wrap: inherit;\n white-space: ${({ textOverflowType }) => (textOverflowType === 'ellipsis' ? 'nowrap' : 'inherit')};\n display: inline;\n }\n`;\n\nconst VizTableContainer = styled.div<{ backgroundColor: string; isCellClickable: boolean }>`\n box-sizing: border-box;\n padding: ${pick({\n enterprise: variables.spacingHalf,\n prisma: variables.spacingSmall,\n })};\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor};\n display: flex;\n flex-flow: column nowrap;\n overflow: hidden;\n\n td,\n * > td:hover {\n color: ${({ isCellClickable }) => (isCellClickable ? variables.linkColor : variables.textColor)};\n }\n`;\nVizTableContainer.displayName = 'VizTableContainer';\n\nconst PAGINATOR_CONTAINER_HEIGHT = 38;\nconst PAGINATOR_SPACING = 5;\nconst SUITableContainer = styled.div<{\n headerStyle?: TableHeaderStyle;\n width: string | number;\n height: string | number;\n isPaging: boolean;\n font: string;\n fontSize: string;\n lineHeight: string;\n isFullyFixed: boolean;\n}>`\n & * {\n font-family: ${(props): string => props.font};\n font-size: ${(props): string => props.fontSize};\n line-height: ${(props): string => props.lineHeight};\n }\n box-sizing: border-box;\n flex-grow: 1;\n overflow: hidden;\n ${({ width, height, isPaging, theme }: any): string => {\n const padding = pick({\n enterprise: variables.spacingHalf({ theme }),\n prisma: variables.spacingSmall({ theme }),\n })({ theme }) as string;\n const paddingOffset = parseInt(padding, 10) * 2;\n return toDimension({\n width: width - paddingOffset,\n height: isPaging\n ? height - PAGINATOR_CONTAINER_HEIGHT - PAGINATOR_SPACING - paddingOffset\n : height - paddingOffset,\n });\n }};\n\n ${({ isPaging }): string =>\n isPaging &&\n `\n margin-bottom: ${PAGINATOR_SPACING}px;\n `};\n\n /* TODO: Replace unsupported hacky style overrides */\n ${({ headerStyle }) =>\n headerStyle &&\n headerStyle.backgroundColor &&\n css`\n & [data-test='head-cell'] {\n background-color: ${headerStyle.backgroundColor};\n }\n `}\n\n ${({ headerStyle }) =>\n headerStyle &&\n headerStyle.color &&\n css`\n & [data-test='head-cell'] > div > span {\n color: ${headerStyle.color};\n }\n `}\n\n /* To accomodate custom logic that diverges from default resizableFillLayout behavior - allows the columns to shrink beneath Table width when columns are fixed */\n [data-test=\"main-table\"] {\n ${({ isFullyFixed }) =>\n isFullyFixed &&\n css`\n width: fit-content;\n min-width: unset;\n `}\n td {\n white-space: pre-wrap; // css override to render text with newline/ line-breaks and tabs/ spaces properly\n }\n }\n` as any;\nSUITableContainer.displayName = 'SUITableContainer';\n\nconst PaginatorContainer = styled.div`\n position: relative;\n text-align: right;\n height: ${PAGINATOR_CONTAINER_HEIGHT}px;\n`;\nPaginatorContainer.displayName = 'PaginatorContainer';\n\n// allow for early return in case of empty tableBody while still following hook rules\nconst withEmptyTableMessage = (Viz): React.FunctionComponent<PureTableProps> => {\n // TODO(fkurniawan): add omit type to differentiate WrapperProps from PureTableProps\n const Wrapper = (props: PureTableProps): React.ReactElement => {\n const {\n headers,\n table,\n headerVisibility,\n showRowNumbers,\n showInternalFields,\n tableFormat,\n columnFormat,\n paginatorParams,\n count,\n } = props;\n const { tableHeader, tableBody } = useTable({\n headers,\n table,\n headerVisibility,\n showRowNumbers,\n showInternalFields,\n tableFormat: {\n ...tableFormat,\n ...(tableFormat?.align && { align: cloneDeep(tableFormat.align) }),\n ...(tableFormat?.cellTypes && { cellTypes: cloneDeep(tableFormat.cellTypes) }),\n ...(tableFormat?.data && { data: cloneDeep(tableFormat.data) }),\n },\n columnFormat,\n paginationOffset: paginatorParams?.current,\n count,\n });\n\n if (tableBody.rows.length === 0) {\n return <Message type=\"warning\">{_('No data!')}</Message>;\n }\n\n return <Viz {...props} tableHeader={tableHeader} tableBody={tableBody} />;\n };\n\n Wrapper.displayName = 'PureTableWrapper';\n return Wrapper;\n};\n\nconst useTableHead = (visibility: TableHeaderVisibility) => {\n if (visibility === 'none') {\n return NonVisibleTableHead;\n }\n\n if (visibility === 'fixed') {\n return FixedTableHead;\n }\n\n return SUITable.Head;\n};\n\nconst HeadCell = ({ value, ...props }: any) => {\n const cellRef = React.useRef(null);\n return (\n <TableHeadCell elementRef={cellRef} {...props}>\n {value}\n </TableHeadCell>\n );\n};\n\nconst fontMap: Record<string, string> = {\n proportional: 'Splunk Platform Sans',\n monospace: 'Splunk Platform Mono',\n};\n\nconst fontSizeMap: Record<string, string> = {\n extraSmall: '10px',\n small: '12px',\n default: '14px',\n large: '16px',\n};\n\nconst rowHeightMap: Record<string, string> = {\n extraSmall: '12px',\n small: '12px',\n default: '20px',\n large: '24px',\n};\n\nconst tableInnerStyle = { height: '100%' };\n\nconst PureTable = (props: PureTableProps): React.ReactElement => {\n const {\n count,\n width,\n height,\n backgroundColor,\n tableHeader,\n tableBody,\n showRowNumbers,\n sortParams: { currentSortKey, currentSortDir, onSort },\n paginatorParams: { isPaging, onChange: paginatorOnChange, ...paginatorProps },\n onCellClick,\n onColumnFormatChange,\n columnFormat,\n mode,\n headerVisibility,\n font,\n fontSize,\n } = props;\n const [columns, setColumns] = React.useState(columnFormat);\n const containerRef = React.useRef(null);\n const containerRefInner = React.useRef(null);\n // this state avoids unncessary column sorting when column resize ends\n const [isResizing, setResizing] = React.useState(false);\n\n const firstRenderCount = React.useRef(count);\n React.useEffect((): void => {\n if (firstRenderCount.current !== count) {\n firstRenderCount.current = count;\n paginatorOnChange(null, { count });\n }\n }, [count, paginatorProps]);\n\n const stringifiedColumnFormat = JSON.stringify(columnFormat);\n const columnFormatRef = React.useRef(stringifiedColumnFormat);\n const modeRef = React.useRef(mode);\n React.useEffect((): void => {\n if (modeRef.current !== mode || columnFormatRef.current !== stringifiedColumnFormat) {\n columnFormatRef.current = stringifiedColumnFormat;\n modeRef.current = mode;\n setColumns(columnFormat);\n }\n }, [mode, stringifiedColumnFormat]);\n\n const TableHead = useTableHead(headerVisibility);\n\n const tableCellClickHandler = React.useCallback(\n e => {\n setResizing(false); // The resizing state will be set back to false on any cell click\n return onCellClick ? drilldownHandler(e) : noop;\n },\n [onCellClick, showRowNumbers, tableHeader, tableBody]\n );\n\n const debouncedDrilldown = debounce(\n (e: MouseEvent | KeyboardEvent, payload: TableCellClickPayload): void => {\n if (window.getSelection().toString() === '' || e?.ctrlKey || e?.metaKey) {\n if (typeof onCellClick === 'function') {\n onCellClick({ e, payload });\n }\n }\n },\n 200\n );\n\n const drilldownHandler = (e: React.SyntheticEvent): void => {\n const element = e.target as HTMLElement;\n const row = element.getAttribute('data-row-index');\n const col = element.getAttribute('data-col-index');\n const arrayIndex = element.getAttribute('data-array-index') || -1;\n if (row && col) {\n const cellRefIndex = +col;\n let cellIndex = cellRefIndex;\n const rowIndex = +row;\n const fieldValue = tableHeader.cells[cellRefIndex].value;\n const cellValue = tableBody.rows[rowIndex].cells[cellRefIndex].value;\n const cellRawValue = tableBody.rows[rowIndex].cells[cellRefIndex].value;\n\n const value = arrayIndex === -1 ? cellValue : cellRawValue[+arrayIndex];\n\n // Wish we did not have these if statements for\n // showRowNumbers\n if (showRowNumbers === true) {\n if (cellIndex === 0) {\n // no click event for row numbers\n return;\n }\n cellIndex -= 1;\n }\n\n const payload = {\n cellIndex,\n rowIndex,\n fieldValue,\n cellValue,\n cellRawValue,\n value,\n name: fieldValue,\n };\n\n tableBody.rows[rowIndex].cells.forEach((c: TableRowCell, index: number) => {\n const rowToken = `row.${tableHeader.cells[index].value}.value`;\n payload[rowToken] = c.value;\n });\n debouncedDrilldown(e.nativeEvent as MouseEvent | KeyboardEvent, payload);\n }\n };\n\n const debouncedOnColumnFormatChange = React.useMemo(\n () =>\n debounce((newFormat: Partial<ColumnFormat>): void => {\n onColumnFormatChange(newFormat);\n }, 300),\n [onColumnFormatChange]\n );\n\n const handleEventClick = e => {\n // Hack to target the resize handlers, since the only button within a HeadCell is the resize handlers\n if (e.target.tagName.toLowerCase() === 'button') {\n e.stopPropagation();\n }\n };\n const handleKeyDown = e => {\n if (e.keyCode !== 13) {\n return;\n }\n drilldownHandler(e);\n };\n\n const handleResizeColumn = (_event, payload) => {\n setResizing(true);\n const updatedCF = columns;\n const field = payload.columnId;\n updatedCF[field] = {\n ...updatedCF[field],\n width: Math.max(payload.width, MINIMUM_COLUMN_SIZE),\n };\n setColumns({ ...updatedCF });\n\n // Updates column json in edit mode\n if (mode === 'edit') {\n debouncedOnColumnFormatChange(updatedCF);\n }\n };\n\n const fontMapped = fontMap[font] || fontMap.proportional;\n const fontSizeMapped = fontSizeMap[fontSize] || fontSizeMap.default;\n const rowHeightMapped = rowHeightMap[fontSize] || rowHeightMap.default;\n const tableOuterStyle = React.useMemo(\n () => ({ height: '100%', cursor: onCellClick ? 'pointer' : 'unset' }),\n [onCellClick]\n );\n\n const visibleHeaderCells = tableHeader.cells.filter(c => c.showCell);\n const numberOfFixedHeaders = visibleHeaderCells.filter(({ value }) => {\n return columns[value]?.width && columns[value]?.width !== 'auto';\n }).length;\n\n const isFullyFixed = visibleHeaderCells.length === numberOfFixedHeaders;\n const isHeaderHidden = headerVisibility === 'none';\n\n return (\n <VizTableContainer\n isCellClickable={Boolean(onCellClick)}\n backgroundColor={backgroundColor}\n ref={containerRef}\n data-test=\"table-container\"\n >\n <SUITableContainer\n ref={containerRefInner}\n width={width}\n height={height}\n isPaging={isPaging}\n headerStyle={tableHeader.style}\n font={fontMapped}\n fontSize={fontSizeMapped}\n lineHeight={rowHeightMapped}\n isFullyFixed={isFullyFixed}\n >\n <SUITable\n resizableFillLayout\n headType={isHeaderHidden ? undefined : 'inline'}\n innerStyle={tableInnerStyle}\n outerStyle={tableOuterStyle}\n onClick={tableCellClickHandler}\n onKeyDown={onCellClick ? handleKeyDown : noop}\n onRequestResizeColumn={handleResizeColumn}\n >\n <TableHead>\n {visibleHeaderCells.map(\n ({ key, value, sortKey, style, ...rest }): React.ReactElement => {\n return (\n <HeadCell\n key={key}\n columnId={value}\n sortDir={sortKey === currentSortKey ? currentSortDir : 'none'}\n width={columns[value]?.width ?? INITIAL_UNSET_COLUMN_WIDTH}\n onMouseDown={handleEventClick}\n value={value}\n onSort={\n isResizing || (showRowNumbers && value === '#') || isHeaderHidden\n ? null\n : onSort\n }\n resizable={!isHeaderHidden}\n style={\n showRowNumbers && value === '#'\n ? { ...style, cursor: 'auto' }\n : style\n }\n headerVisibility={headerVisibility}\n {...{ sortKey, ...rest }}\n />\n );\n }\n )}\n </TableHead>\n <SUITable.Body>\n {tableBody.rows.map(\n (row): React.ReactElement => (\n <SUITable.Row key={row.key}>\n {row.cells\n .filter(c => c.showCell)\n .map(\n (cell): React.ReactElement => {\n return (\n <SwitchTableCell key={cell.key} type={cell.cellType}>\n <TextCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n />\n <SparklineCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n width={columns[cell.header]?.width ?? 'auto'}\n />\n <ArrayCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n />\n </SwitchTableCell>\n );\n }\n )}\n </SUITable.Row>\n )\n )}\n </SUITable.Body>\n </SUITable>\n </SUITableContainer>\n {isPaging ? (\n <PaginatorContainer>\n <Paginator onChange={paginatorOnChange} {...paginatorProps} />\n </PaginatorContainer>\n ) : null}\n </VizTableContainer>\n );\n};\n\nconst cellDataType = T.oneOfType([T.string, T.number, T.arrayOf(T.oneOfType([T.string, T.number]))]);\n\nPureTable.propTypes = {\n backgroundColor: T.string,\n count: T.number,\n columnFormat: T.objectOf(\n T.shape({\n align: T.arrayOf(T.oneOf(validAlignments)),\n cellTypes: T.arrayOf(T.oneOf(validCellRenderers)),\n data: T.arrayOf(cellDataType),\n rowBackgroundColors: T.arrayOf(T.string),\n rowColors: T.arrayOf(T.string),\n sparklineAreaColors: T.arrayOf(T.string),\n sparklineColors: T.arrayOf(T.string),\n sparklineTypes: T.arrayOf(T.oneOf(validSparklineTypes)),\n })\n ),\n headers: T.arrayOf(T.string),\n headerVisibility: T.oneOf(validHeaderVisibilities),\n height: T.oneOfType([T.number]),\n mode: T.string,\n onCellClick: T.func,\n paginatorParams: PaginatorParamsPropTypes,\n showRowNumbers: T.bool,\n sortParams: SortParamsPropTypes,\n table: T.arrayOf(T.arrayOf(cellDataType)),\n tableFormat: T.shape({\n align: T.arrayOf(T.arrayOf(T.oneOf(validAlignments))),\n cellTypes: T.arrayOf(T.arrayOf(T.oneOf(validCellRenderers))),\n data: T.arrayOf(T.arrayOf(cellDataType)),\n headerBackgroundColor: T.string,\n headerColor: T.string,\n rowBackgroundColors: T.oneOfType([T.arrayOf(T.string), T.arrayOf(T.arrayOf(T.string))]),\n rowColors: T.oneOfType([T.arrayOf(T.string), T.arrayOf(T.arrayOf(T.string))]),\n sparklineAreaColors: T.arrayOf(T.arrayOf(T.string)),\n sparklineColors: T.arrayOf(T.arrayOf(T.string)),\n sparklineTypes: T.arrayOf(T.arrayOf(T.oneOf(validSparklineTypes))),\n }),\n theme: T.any,\n width: T.oneOfType([T.number]),\n onColumnFormatChange: T.func,\n font: T.string,\n fontSize: T.string,\n};\n\nPureTable.defaultProps = {\n columnFormat: {},\n headers: [],\n headerVisibility: 'inline' as const,\n height: 300,\n mode: 'view',\n onCellClick: null,\n paginatorParams: {\n isPaging: false,\n onChange: noop,\n },\n showRowNumbers: false,\n sortParams: {\n onSort: noop,\n },\n table: [],\n tableFormat: {},\n theme: {},\n width: 300,\n onColumnFormatChange: noop,\n font: fontMap.proportional,\n fontSize: fontSizeMap.default,\n};\nPureTable.displayName = 'VizTable';\n\nexport default withEmptyTableMessage(withFixedSizeContainer(PureTable)) as any;\n","import { has, includes, get } from 'lodash';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport {\n validHeaderVisibilities,\n validAlignments,\n TextOverflow,\n TableHeaderVisibility,\n TableAlignment,\n CellRenderers,\n validCellRenderers,\n SparklineType,\n validSparklineTypes,\n} from './consts';\n\nconst isArray = (v: any): boolean => Array.isArray(v);\n\ninterface TextOverFlowStyles {\n maxWidth?: string;\n overflow?: string;\n overflowWrap?: string;\n textOverflow?: string;\n whiteSpace?: string;\n wordBreak?: string;\n wordWrap?: string;\n}\ninterface TableHeaderCell {\n /* unique key for the table header cell */\n key: string;\n /* value to be displayed in the table header cell */\n value: string;\n /* key that will be used for sorting */\n sortKey: string;\n truncate?: boolean;\n width?: number;\n style?: TextOverFlowStyles;\n textOverflowType?: string;\n showCell: boolean;\n}\nexport interface TableHeaderStyle extends TextOverFlowStyles {\n backgroundColor?: string;\n color?: string;\n}\nexport interface TableHeader {\n /* header visiibility control */\n visibility: TableHeaderVisibility;\n /* array containing table header cells */\n cells: TableHeaderCell[];\n /* styles to be applied to table */\n style: TableHeaderStyle;\n}\n\nexport type TableCellValueType = string | number | (string | number)[];\n\ninterface TableRowStyles extends TextOverFlowStyles {\n backgroundColor?: string;\n color?: string;\n width?: number | 'auto';\n}\nexport interface TableRowCell {\n /* unique key for the row cell */\n key: string;\n /* value to be displayed in the row cell. This is a layered value columnFormat.[FieldName].data > tableFormat.data > table options */\n value: TableCellValueType;\n /* always the value from table options */\n rawValue: TableCellValueType;\n align: TableAlignment;\n cellType: CellRenderers;\n columnIndex: number;\n rowIndex: number;\n sparklineAreaColor?: string;\n sparklineColor?: string;\n sparklineType: SparklineType;\n header: string;\n style: TableRowStyles;\n showCell: boolean;\n}\n\ninterface TableRow {\n /* unique key for each row */\n key: string;\n /* row index */\n index: number;\n /* array of table cells to be displayed in the row */\n cells: TableRowCell[];\n}\n\nexport interface TableBody {\n /* collection of table rows */\n rows: TableRow[];\n}\n\nexport interface TableStructure {\n tableHeader: TableHeader;\n tableBody: TableBody;\n}\n\nexport interface TableFormat {\n align: TableAlignment[][];\n cellTypes: CellRenderers[][];\n data: TableCellValueType[][];\n /* header background color. NOTE: react table does not support background color for individual column headers */\n headerBackgroundColor: string;\n /* header text color. NOTE: react table does not support text color for individual column headers */\n headerColor: string;\n /* array of colors for the background color of each table row */\n rowBackgroundColors: string[] | string[][];\n /* array of colors for the text color of each table row */\n rowColors: string[] | string[][];\n sparklineAreaColors: string[][];\n sparklineColors: string[][];\n sparklineTypes: SparklineType[][];\n}\n\ninterface ColumnFormatter {\n align: TableAlignment[];\n cellTypes: CellRenderers[];\n data: TableCellValueType[];\n rowBackgroundColors: string[];\n rowColors: string[];\n sparklineAreaColors: string[];\n sparklineColors: string[];\n sparklineTypes: SparklineType[];\n width: number | 'auto';\n textOverflow: TextOverflow;\n}\nexport interface ColumnFormat {\n [k: string]: Partial<ColumnFormatter>;\n}\n\nexport interface UseTableArgs {\n /* array of headers to be displayed */\n headers?: string[];\n /* 2 dimensional array of table data to be displayed */\n table?: TableCellValueType[][];\n /* header visibility control */\n headerVisibility?: TableHeaderVisibility;\n /* adds row number column */\n showRowNumbers?: boolean;\n /* shows or hides internal fields */\n showInternalFields?: boolean;\n /* table wide formatting options */\n tableFormat?: Partial<TableFormat>;\n /* column format for individual columns */\n columnFormat?: Partial<ColumnFormat>;\n /* pagination offset */\n paginationOffset?: number;\n /* count */\n count?: number;\n}\n\ninterface GetOverflowStylesArgs {\n textOverflow: TextOverflow;\n}\n\nconst textOverflowStyles = {\n anywhere: {\n wordBreak: 'break-all',\n },\n 'break-word': {\n wordBreak: 'break-word',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n ellipsis: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n};\n\nconst empty = {};\n\nexport const getOverflowStyles = ({ textOverflow }: GetOverflowStylesArgs): TextOverFlowStyles => {\n return textOverflowStyles[textOverflow] || empty;\n};\n\nconst generateKey = (value = '', i: string | number): string => `${i}-${value}`;\n\nexport const getTextOverflowType = (columnFormat: Partial<ColumnFormat>, currentColumn: string): string =>\n get(columnFormat, [`${currentColumn}`, 'textOverflow']);\n\nconst generateHeader = (\n value: string,\n i: number,\n columnFormat: Partial<ColumnFormat>,\n showInternalFields: boolean\n): TableHeaderCell => {\n const ret: TableHeaderCell = {\n key: generateKey(value, i),\n value,\n sortKey: value,\n showCell: true,\n };\n if (!showInternalFields && value.charAt(0) === '_' && value !== '_time') {\n ret.showCell = false;\n }\n\n const textOverflowType = getTextOverflowType(columnFormat, value);\n const textOverflowStyle = getOverflowStyles({\n textOverflow: textOverflowType as TextOverflow,\n });\n ret.truncate = true;\n ret.textOverflowType = textOverflowType;\n ret.style = textOverflowStyle;\n\n return ret;\n};\n\nconst getColumnFormatAlign = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): TableAlignment | undefined => {\n const alignOption = get(columnFormat, [currentColumn.value, 'align']);\n let align;\n if (isArray(alignOption) && includes(validAlignments, alignOption[currentRow])) {\n align = alignOption[currentRow];\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `columnFormat.${currentColumn.value}.align should be an array containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return align;\n};\n\nconst getColumnFormatCellType = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): CellRenderers | undefined => {\n const cellTypes = get(columnFormat, [currentColumn.value, 'cellTypes']);\n let cellType;\n if (isArray(cellTypes) && includes(validCellRenderers, cellTypes[currentRow])) {\n cellType = cellTypes[currentRow];\n } else if (typeof cellTypes !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.value\n }.cellType should be an array containing (${validCellRenderers.join(' | ')}). ${JSON.stringify(\n cellTypes\n )} provided`\n );\n }\n return cellType;\n};\n\nconst getColumnFormatSparklineType = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): SparklineType | undefined => {\n const types = get(columnFormat, [currentColumn.value, 'sparklineTypes']);\n let sparklineType;\n if (isArray(types) && includes(validSparklineTypes, types[currentRow])) {\n sparklineType = types[currentRow];\n } else if (typeof types !== 'undefined') {\n console.warn(\n `columnFormat.${currentColumn.value}.sparklineTypes should be one of (${validSparklineTypes.join(\n ' | '\n )}). ${JSON.stringify(types)} provided`\n );\n }\n return sparklineType;\n};\n\nconst getColumnFormatData = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n const data = get(columnFormat, [currentColumn.value, 'data']);\n let datum;\n if (isArray(data)) {\n datum = data[currentRow];\n } else if (typeof data !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.value\n }.data should be an array containing formatted data. ${typeof data} provided`\n );\n }\n return datum;\n};\n\nconst getColumnFormatColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number,\n field: string\n): string | undefined => {\n const colors = get(columnFormat, [currentColumn.value, field]);\n let color;\n if (isArray(colors) && isColor(colors[currentRow])) {\n color = colors[currentRow];\n } else if (typeof colors !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.value\n }.${field} should be an array containing valid colors. ${JSON.stringify(colors)} provided`\n );\n }\n return color;\n};\n\nconst getColumnFormatRowColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'rowColors');\n};\n\nconst getColumnFormatRowBgColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'rowBackgroundColors');\n};\n\nconst getColumnFormatSparklineColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'sparklineColors');\n};\n\nconst getColumnFormatSparklineAreaColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'sparklineAreaColors');\n};\n\nconst getTableFormatAlign = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): TableAlignment | undefined => {\n const alignOption = get(tableFormat, 'align');\n let align;\n if (\n isArray(alignOption) &&\n isArray(alignOption[currentColumn]) &&\n includes(validAlignments, alignOption[currentColumn][currentRow])\n ) {\n align = alignOption[currentColumn][currentRow];\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `tableFormat.align should be a 2 dimensional array containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return align;\n};\n\nconst getTableFormatCellType = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): CellRenderers | undefined => {\n const cellTypes = get(tableFormat, 'cellTypes');\n let cellType;\n if (\n isArray(cellTypes) &&\n isArray(cellTypes[currentColumn]) &&\n includes(validCellRenderers, cellTypes[currentColumn][currentRow])\n ) {\n cellType = cellTypes[currentColumn][currentRow];\n } else if (typeof cellTypes !== 'undefined') {\n console.warn(\n `tableFormat.cellType should be a 2 dimensional array containing (${validCellRenderers.join(\n ' | '\n )}). ${JSON.stringify(cellTypes)} provided`\n );\n }\n return cellType;\n};\n\nconst getTableFormatSparklineType = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): SparklineType | undefined => {\n const types = get(tableFormat, 'sparklineTypes');\n let sparklineType;\n if (\n isArray(types) &&\n isArray(types[currentColumn]) &&\n includes(validSparklineTypes, types[currentColumn][currentRow])\n ) {\n sparklineType = types[currentColumn][currentRow];\n } else if (typeof types !== 'undefined') {\n console.warn(\n `tableFormat.sparklineTypes should be a 2 dimensional array containing one of (${validSparklineTypes.join(\n ' | '\n )}). ${JSON.stringify(types)} provided`\n );\n }\n return sparklineType;\n};\n\nconst getTableFormatColor = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number,\n field: string\n): string | undefined => {\n const colors = get(tableFormat, field);\n let color;\n if (isArray(colors) && isArray(colors[currentColumn]) && isColor(colors[currentColumn][currentRow])) {\n color = colors[currentColumn][currentRow];\n } else if (isArray(colors) && isColor(colors[currentRow])) {\n color = colors[currentRow];\n } else if (\n typeof colors !== 'undefined' &&\n isArray(colors) &&\n isArray(colors[currentColumn]) &&\n colors[currentColumn][currentRow] !== undefined\n ) {\n console.warn(\n `tableFormat.${field} needs to be an array of colors, provided ${JSON.stringify(\n colors\n )}. Current value at [${currentColumn}][${currentRow}] is ${JSON.stringify(colors[currentRow])}`\n );\n }\n return color;\n};\n\nconst getTableFormatRowColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'rowColors');\n};\n\nconst getTableFormatRowBgColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'rowBackgroundColors');\n};\n\nconst getTableFormatSparklineColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'sparklineColors');\n};\n\nconst getTableFormatSparklineAreaColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'sparklineAreaColors');\n};\n\nconst getTableFormatData = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n const data = get(tableFormat, 'data');\n let datum;\n if (isArray(data) && isArray(data[currentCol])) {\n datum = data[currentCol][currentRow];\n } else if (typeof data !== 'undefined') {\n console.warn(\n `tableFormat.data should be a 2 dimensional array containing formatted data to be displayed. ${typeof data} provided`\n );\n }\n return datum;\n};\n\nconst validValueSelector = (\n v1: TableCellValueType,\n v2: TableCellValueType,\n v3: TableCellValueType,\n defaultValue: TableCellValueType\n): TableCellValueType => {\n const validTypes = ['string', 'number'];\n if (validTypes.includes(typeof v1) || isArray(v1)) {\n return v1;\n }\n if (validTypes.includes(typeof v2) || isArray(v2)) {\n return v2;\n }\n if (validTypes.includes(typeof v3) || isArray(v3)) {\n return v3;\n }\n return defaultValue;\n};\n\nexport const useTable = (tableArgs: UseTableArgs = {}): TableStructure => {\n let { table = [], headers = [] } = tableArgs;\n const {\n headerVisibility = 'inline',\n showRowNumbers = false,\n showInternalFields = true,\n tableFormat = {},\n columnFormat = {},\n paginationOffset = 0,\n count = 0,\n } = tableArgs;\n\n const longestColumnLength: number = Math.max(...table.map((column): number => column.length));\n\n if (showRowNumbers) {\n const correctedPaginationOffset = Math.max(0, (paginationOffset - 1) * count);\n\n headers = ['#', ...headers];\n table = [\n Array.from({ length: longestColumnLength }, (v, i): number => correctedPaginationOffset + i + 1),\n ...table,\n ];\n if (isArray(tableFormat.align)) {\n tableFormat.align = [new Array(longestColumnLength).fill('left'), ...tableFormat.align];\n }\n if (isArray(tableFormat.cellTypes)) {\n tableFormat.cellTypes = [\n new Array(longestColumnLength).fill('TextCell'),\n ...tableFormat.cellTypes,\n ];\n }\n if (isArray(tableFormat.data)) {\n tableFormat.data = [\n Array.from({ length: longestColumnLength }, (v, i): string => `${i + 1}`),\n ...tableFormat.data,\n ];\n }\n if (isArray(tableFormat.rowBackgroundColors)) {\n if (tableFormat.rowBackgroundColors.length > 0 && isArray(tableFormat.rowBackgroundColors[0])) {\n tableFormat.rowBackgroundColors = [\n new Array(longestColumnLength),\n ...tableFormat.rowBackgroundColors,\n ] as string[][];\n }\n }\n if (isArray(tableFormat.rowColors)) {\n if (tableFormat.rowColors.length > 0 && isArray(tableFormat.rowColors[0])) {\n tableFormat.rowColors = [\n new Array(longestColumnLength),\n ...tableFormat.rowColors,\n ] as string[][];\n }\n }\n if (isArray(tableFormat.sparklineColors)) {\n tableFormat.sparklineColors = [new Array(longestColumnLength), ...tableFormat.sparklineColors];\n }\n if (isArray(tableFormat.sparklineAreaColors)) {\n tableFormat.sparklineAreaColors = [\n new Array(longestColumnLength),\n ...tableFormat.sparklineAreaColors,\n ];\n }\n if (isArray(tableFormat.sparklineTypes)) {\n tableFormat.sparklineTypes = [\n new Array(longestColumnLength).fill('area'),\n ...tableFormat.sparklineTypes,\n ];\n }\n }\n\n const tableHeader: TableHeader = {\n visibility:\n validHeaderVisibilities.indexOf(headerVisibility as TableHeaderVisibility) >= 0\n ? (headerVisibility as TableHeaderVisibility)\n : 'inline',\n cells: table.map(\n (f, i): TableHeaderCell => {\n if (i < headers.length) {\n return generateHeader(headers[i], i, columnFormat, showInternalFields);\n }\n return generateHeader('', i, columnFormat, showInternalFields);\n }\n ),\n style: {\n backgroundColor:\n (has(tableFormat, 'headerBackgroundColor') &&\n isColor(tableFormat.headerBackgroundColor) &&\n tableFormat.headerBackgroundColor) ||\n undefined,\n color:\n (has(tableFormat, 'headerColor') &&\n isColor(tableFormat.headerColor) &&\n tableFormat.headerColor) ||\n undefined,\n },\n };\n\n const tableBody: TableBody = {\n rows: [],\n };\n\n for (let currentRow = 0; currentRow < longestColumnLength; currentRow += 1) {\n const row: TableRow = {\n key: `row-${currentRow}`,\n index: currentRow,\n cells: [],\n };\n\n table.forEach((column, i): void => {\n const currentHeader = tableHeader.cells[i];\n\n const value = validValueSelector(\n getColumnFormatData(columnFormat, currentHeader, currentRow),\n getTableFormatData(tableFormat, i, currentRow),\n column[currentRow],\n ''\n );\n\n const rawValue = column[currentRow];\n\n const rowBackgroundColor =\n getColumnFormatRowBgColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatRowBgColor(tableFormat, i, currentRow) ||\n undefined;\n\n const rowColor =\n getColumnFormatRowColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatRowColor(tableFormat, i, currentRow) ||\n undefined;\n\n const align =\n getColumnFormatAlign(columnFormat, currentHeader, currentRow) ||\n getTableFormatAlign(tableFormat, i, currentRow) ||\n 'left';\n\n const cellType =\n getColumnFormatCellType(columnFormat, currentHeader, currentRow) ||\n getTableFormatCellType(tableFormat, i, currentRow) ||\n 'TextCell';\n\n const sparklineColor =\n getColumnFormatSparklineColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineColor(tableFormat, i, currentRow) ||\n undefined;\n\n const sparklineAreaColor =\n getColumnFormatSparklineAreaColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineAreaColor(tableFormat, i, currentRow) ||\n undefined;\n\n const sparklineType =\n getColumnFormatSparklineType(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineType(tableFormat, i, currentRow) ||\n 'area';\n\n const key = generateKey(value as string, `${currentRow}-${i}`);\n\n let additionalStyles = {};\n const textOverflowType = getTextOverflowType(columnFormat, currentHeader.value);\n const textOverflowStyle = getOverflowStyles({\n textOverflow: textOverflowType as TextOverflow,\n });\n additionalStyles = {\n ...additionalStyles,\n ...textOverflowStyle,\n };\n\n let showCell = true;\n if (\n !showInternalFields &&\n currentHeader.value.charAt(0) === '_' &&\n currentHeader.value !== '_time'\n ) {\n showCell = false;\n }\n row.cells.push({\n key,\n value,\n rawValue,\n align,\n cellType,\n rowIndex: currentRow,\n columnIndex: i,\n sparklineColor,\n sparklineAreaColor,\n sparklineType,\n header: currentHeader.value,\n style: {\n backgroundColor: rowBackgroundColor,\n color: rowColor,\n ...additionalStyles,\n },\n showCell,\n });\n });\n\n tableBody.rows.push(row);\n }\n\n return {\n tableHeader,\n tableBody,\n };\n};\n","export * from './SwitchTableCell';\nexport * from './TextCell';\nexport * from './ArrayCell';\nexport * from './SparklineCell';\n","export const SwitchTableCell = ({ type, children }): React.ReactElement =>\n children.filter((child): boolean => child.type.displayName === type);\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport { TableRowCell } from '../hooks';\n\ninterface TextCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n}\nconst noop = () => undefined;\n\nexport const TextCell = ({ cell, useMouseOverEffect }: TextCellProps): React.ReactElement => {\n const cellStyle = React.useMemo(() => ({ ...cell.style }), [cell.style]);\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n data-test-cell-type=\"TextCell\"\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {cell.value.toString()}\n </SUITable.Cell>\n );\n};\n\nTextCell.displayName = 'TextCell';\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport { TableRowCell } from '../hooks';\n\ninterface ArrayCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n}\n\nconst noop = () => undefined;\n\nexport const ArrayCell = ({ cell, useMouseOverEffect }: ArrayCellProps): React.ReactElement => {\n const value = React.useMemo(() => (Array.isArray(cell.value) ? cell.value : [cell.value]), [cell.value]);\n const cellStyle = React.useMemo(() => ({ ...cell.style }), [cell.style]);\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n data-test-cell-type=\"ArrayCell\"\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {value.map(\n (v, i): React.ReactElement => (\n <div\n key={v.toString()}\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n data-array-index={i}\n >\n {v.toString()}\n </div>\n )\n )}\n </SUITable.Cell>\n );\n};\nArrayCell.displayName = 'ArrayCell';\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport SparkLine from '../../SparkLine/SparkLine';\nimport { TableRowCell, TableCellValueType } from '../hooks';\n\ninterface SparklineCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n width: number | 'auto';\n}\n\nconst paddingLeftRight = 5;\nconst paddingTopBottom = 3;\n\nconst parseSparklineData = (data: TableCellValueType): (number | null)[] =>\n (Array.isArray(data) ? data : [data])\n .map((d): number => parseInt(d.toString(), 10))\n .map((d): number | null => (isNaN(d) ? null : d)); // eslint-disable-line no-restricted-globals\n\nexport const validSparklineTypes = ['line', 'area'] as const;\nexport type SparklineType = typeof validSparklineTypes[number];\n\nconst noop = () => undefined;\nconst svgStyle = { height: 0 };\nconst dummySVG = <svg style={svgStyle} />;\n\nexport const SparklineCell = ({\n cell,\n useMouseOverEffect,\n width,\n}: SparklineCellProps): React.ReactElement => {\n const [cellEl, setEl] = React.useState<HTMLTableCellElement>();\n const [height, setHeight] = React.useState<number>();\n let data = React.useMemo<number[]>(() => parseSparklineData(cell.value), [cell.value]);\n if (cell.value[0] === '##__SPARKLINE__##') {\n data = data.slice(1);\n }\n\n React.useLayoutEffect(() => {\n setHeight(cellEl?.offsetHeight);\n }, [cellEl]);\n\n const cellStyle = React.useMemo(\n () => ({\n ...cell.style,\n padding: 0,\n margin: 0,\n width,\n height: `${height}px`,\n }),\n [cell.style, width, height]\n );\n\n const lineStyle = React.useMemo(\n () => ({\n paddingLeft: `${paddingLeftRight}px`,\n paddingTop: `${paddingTopBottom}px`,\n width: width === 'auto' ? `${cellEl?.offsetWidth - paddingLeftRight * 2}px` : `${width}px`,\n height: `${height - paddingTopBottom * 2}px`,\n }),\n [height, width, cellEl]\n );\n\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n elementRef={setEl}\n data-test-cell-type=\"SparklineCell\"\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {height ? (\n <SparkLine\n style={lineStyle}\n data={data}\n width={cellEl?.offsetWidth - paddingLeftRight * 2}\n height={height - paddingTopBottom * 2}\n isArea={cell.sparklineType === 'area'}\n acceptNull\n lineColor={cell.sparklineColor}\n fillColor={cell.sparklineAreaColor}\n />\n ) : (\n dummySVG\n )}\n </SUITable.Cell>\n );\n};\n\nSparklineCell.displayName = 'SparklineCell';\n","module.exports = require(\"lodash/debounce\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@babel/runtime/helpers/taggedTemplateLiteral\");","export enum VizBehavior {\n /**\n * Dynamic Options Behavior.\n * This allows visualization options to be powered by data\n *\n * **Example**\n *\n * sparklineValues: \">primary|seriesByIndex(0)\"\n * would configure sparklineValues with an array of data points\n * coming from the first series in the primary datasource\n *\n */\n DYNAMIC_OPTIONS = 'dynamic-options',\n EVENTS = 'events',\n /**\n * Placeholder behavior: visualization will display a placeholder rather than fail if any of the `requiredProps` is\n * missing.\n * @type {string}\n */\n PLACEHOLDER = 'placeholder',\n PAGE_AND_SORT = 'page-and-sort',\n TRELLIS = 'trellis',\n}\n","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/react-ui/Paginator\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///external \"@splunk/visualizations-shared/numberUtils\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///external \"@splunk/react-ui/Paginator\"","webpack:///./src/SparkLine/SparkLine.jsx","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/react-ui/Table\"","webpack:///./src/common/utils/dataUtils.ts","webpack:///external \"@splunk/react-ui/Message\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///./src/Table/consts.ts","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/interfaces/DataSource.ts","webpack:///./src/Table/Table.tsx","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualization-context/FeatureFlagContext\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///./src/common/hooks/usePrevious.ts","webpack:///external \"@splunk/visualizations-shared/hocUtils\"","webpack:///external \"@splunk/visualizations-shared/JSONSchemaUtils\"","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///./src/common/hooks/getSorting.ts","webpack:///./src/common/hooks/getPagination.ts","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/index.ts","webpack:///./src/common/interfaces/DataContract.ts","webpack:///./src/Table/index.ts","webpack:///./src/Table/config.ts","webpack:///external \"@splunk/react-icons/TextAlignCenter\"","webpack:///external \"@splunk/react-icons/TextAlignLeft\"","webpack:///external \"@splunk/react-icons/TextAlignRight\"","webpack:///./src/Table/PureTable.tsx","webpack:///./src/Table/hooks.tsx","webpack:///./src/Table/cells/index.ts","webpack:///./src/Table/cells/SwitchTableCell.tsx","webpack:///./src/Table/cells/TextCell.tsx","webpack:///./src/Table/cells/ArrayCell.tsx","webpack:///./src/Table/cells/SparklineCell.tsx","webpack:///external \"lodash/debounce\"","webpack:///./src/common/withDashboardViz.tsx","webpack:///external \"@splunk/themes/getSettingsFromThemedProps\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///external \"@splunk/moment\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/async-dynamic-options-evaluator\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/hooks/useDeepMemo.ts","webpack:///./src/common/components/MissingPropsMessage.tsx","webpack:///./src/common/hocs/withEditModeCover.tsx","webpack:///./src/common/hocs/withPlaceholder.tsx","webpack:///./src/common/hooks/useDownsampleDataSources.tsx","webpack:///./src/common/hooks/useGetXAndYFields.tsx","webpack:///./src/common/utils/featureFlagUtils.ts","webpack:///external \"@splunk/visualization-context/FeatureFlags\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@babel/runtime/helpers/taggedTemplateLiteral\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\""],"names":["StyledSvg","styled","StyledTooltip","SparkLine","rest","anchor","el","currentPointX","open","rectArea","tooltip","createDOMID","data","acceptNull","yMax","dataMax","max","yMin","dataMin","min","width","xUnit","xMargin","Math","height","maxValue","minValue","yUnit","yMargin","lines","currentLine","isNull","points","value","x","idx","y","p","i","fillOpacity","e","fillColor","isArea","segments","s","fill","strokeWidth","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","stroke","strokeLinecap","strokeDasharray","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","point","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","elementRef","showTooltip","showEndDot","endDotCount","title","dotsToShow","omit","keys","_","Component","PropTypes","isArray","props","string"],"mappings":"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","file":"Table.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 = 501);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"@splunk/visualizations-shared/numberUtils\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","module.exports = require(\"@splunk/react-ui/Paginator\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/react-ui/Table\");","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","module.exports = require(\"@splunk/react-ui/Message\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","export const validCellRenderers = ['TextCell', 'ArrayCell', 'SparklineCell'] as const;\nexport type CellRenderers = typeof validCellRenderers[number];\nexport const validSparklineTypes = ['line', 'area'] as const;\nexport type SparklineType = typeof validSparklineTypes[number];\nexport const validHeaderVisibilities = ['none', 'fixed', 'inline'] as const;\nexport type TableHeaderVisibility = typeof validHeaderVisibilities[number];\nexport const validAlignments = ['left', 'center', 'right'] as const;\nexport type TableAlignment = typeof validAlignments[number];\nexport const validTextOverflows = ['anywhere', 'break-word', 'ellipsis'] as const;\nexport type TextOverflow = typeof validTextOverflows[number];\nexport const validFontSizes = ['extraSmall', 'small', 'default', 'large'] as const;\nexport type FontSize = typeof validFontSizes[number];\n","module.exports = require(\"@splunk/visualization-encoding/Options\");","import * as React from 'react';\nimport styled from 'styled-components';\nimport { toPx } from '@splunk/visualizations-shared/style';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\ninterface ItemProps {\n backgroundColor?: string;\n width?: string | number;\n}\n\nconst Item = styled.div.attrs<ItemProps>(({ width }) => ({\n style: {\n width: toPx(width),\n },\n}))<ItemProps>`\n position: relative;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\ninterface FixSizeItemProps {\n backgroundColor?: string;\n height?: string | number;\n width?: string | number;\n}\n\n// Use `.attrs()` for highly dynamic styles. Ref: https://github.com/styled-components/styled-components/issues/134#issuecomment-312415291\nconst FixSizeItem = styled.div.attrs<FixSizeItemProps>(({ width, height }): {\n style: { width?: string; height?: string };\n} => ({\n style: {\n ...(width && { width: toPx(width) }),\n ...(height && { height: toPx(height) }),\n },\n}))<FixSizeItemProps>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor}};\n`;\n\nconst ItemContent = styled.div`\n position: relative;\n min-height: 100px;\n width: 100%;\n`;\n\nconst FixSizeItemContent = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n box-sizing: border-box;\n`;\n\ninterface HeightAndWidthProps {\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n}\n\nconst withFixedSizeContainer = <P extends HeightAndWidthProps>(\n Viz: React.ComponentType<P>\n): React.ComponentType<P> => {\n const FixedSizeContainer = (props: P): React.ReactElement => {\n const { width, height, backgroundColor } = props;\n const cachedHandleResize = React.useCallback((w, h) => {\n setContainerWidth(w);\n setContainerHeight(h);\n }, []);\n const [containerWidth, setContainerWidth] = React.useState<number>(Number(props.width));\n const [containerHeight, setContainerHeight] = React.useState<number>(Number(props.height));\n if (!height) {\n return (\n <Item data-test=\"item\" width={width} backgroundColor={backgroundColor}>\n <ItemContent>\n <Viz {...props} />\n </ItemContent>\n </Item>\n );\n }\n return (\n <FixSizeItem\n data-test=\"fix-size-item\"\n data-splunk-visualization-version={__VISION_VERSION__}\n width={width}\n height={height}\n backgroundColor={backgroundColor}\n >\n <FixSizeItemContent>\n <SizeAwareWrapper width={width} height={height} onResize={cachedHandleResize} />\n <Viz {...props} width={containerWidth} height={containerHeight} />\n </FixSizeItemContent>\n </FixSizeItem>\n );\n };\n FixedSizeContainer.displayName = 'withFixedSizeContainer';\n return FixedSizeContainer;\n};\n\nexport default withFixedSizeContainer;\n","module.exports = require(\"@splunk/visualizations-shared/style\");","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","import { get } from 'lodash';\nimport { sanitizeArrayOfColors } from '@splunk/visualizations-shared/colorUtils';\nimport config from './config';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureTable from './PureTable';\nimport type { ColumnFormat } from './hooks';\n\nexport const computeVizProps = ({ ...props }): Record<string, unknown> => {\n const vizProps = { ...props };\n if (vizProps.columnFormat) {\n const columns: Partial<ColumnFormat> = vizProps.columnFormat;\n\n const themeRowBackgroundColorOdd = vizProps.themeFunc('rowBackgroundColorOdd');\n const themeRowBackgroundColorEven = vizProps.themeFunc('rowBackgroundColorEven');\n const themeTextColor = vizProps.themeFunc('textColor');\n\n // `columns` looks like { `column title`: { rowBackgroundColors, rowColors... }}\n Object.entries(columns).forEach(([columnKey, columnProperties]) => {\n let rowBackgroundColors;\n let rowColors;\n\n // If columns have `rowBackgroundColors` or `rowColors` arrays defined, sanitize them. If there are undefined values after sanitization, these\n // elements are populated with the default values provided by the theme.\n if (columnProperties.rowBackgroundColors) {\n rowBackgroundColors = sanitizeArrayOfColors(columnProperties.rowBackgroundColors).map(\n (color, i) =>\n // using (i + 1) % 2 because 'odd' refers to row number, so index 0 -> row 1 -> odd colored\n color ||\n ((i + 1) % 2 === 0 ? themeRowBackgroundColorEven : themeRowBackgroundColorOdd)\n );\n }\n if (columnProperties.rowColors) {\n rowColors = sanitizeArrayOfColors(columnProperties.rowColors).map(\n color => color || themeTextColor\n );\n }\n\n vizProps.columnFormat[columnKey] = {\n ...vizProps.columnFormat[columnKey],\n ...(columnProperties.rowBackgroundColors && { rowBackgroundColors }),\n ...(columnProperties.rowColors && { rowColors }),\n };\n });\n\n vizProps.columnIds =\n vizProps.dataSources?.primary?.data?.fields.map(field => field.name ?? field) ?? [];\n if (vizProps.columnIds.length === 0) {\n vizProps.columnIds = vizProps.headers;\n }\n }\n\n if (vizProps.onOptionsChange) {\n const handleColumnFormatChange = updatedColumnFormat => {\n const cloneOfExistingColumnFormat = { ...vizProps?.options?.columnFormat } ?? {};\n const keys = Object.keys(updatedColumnFormat);\n const values = Object.values(updatedColumnFormat);\n keys.forEach((key: string, index: number) => {\n if (!cloneOfExistingColumnFormat[key]) {\n cloneOfExistingColumnFormat[key] = {};\n }\n const newWidth = get(values[index], 'width');\n cloneOfExistingColumnFormat[key] = {\n ...cloneOfExistingColumnFormat[key],\n width: newWidth,\n };\n });\n vizProps.onOptionsChange({\n columnFormat: cloneOfExistingColumnFormat,\n });\n };\n vizProps.onColumnFormatChange = handleColumnFormatChange;\n }\n\n return vizProps;\n};\n\nconst Table = withDashboardViz({\n ReactViz: PureTable,\n vizConfig: config,\n disableEditModeCover: true,\n computeVizProps,\n} as DashboardVizOpts);\nconst { themes } = config;\n\nexport { themes, PureTable, config };\nexport default Table;\n","module.exports = require(\"@splunk/ui-utils/i18n\");","/* 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 VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import { DashboardVizProps } from '../interfaces/DashboardVizProps';\n\nexport type DashboardVizType = React.ComponentType<DashboardVizProps>;\n\n/**\n * @method extendStaticWrapperProps\n * @param {Object} props\n * @param {DashboardVizType} props.Wrapper\n * @param {DashboardVizType} props.Visualization\n */\nexport const extendStaticWrapperProps = ({\n Wrapper,\n Visualization,\n}: {\n [key: string]: DashboardVizType;\n}): void => {\n const extendProperties = ['propTypes', 'defaultProps', 'config'];\n extendProperties.forEach((prop: string): void => {\n if (Visualization[prop]) {\n // eslint-disable-next-line no-param-reassign\n Wrapper[prop] = Visualization[prop];\n }\n });\n};\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"@splunk/visualization-context/FeatureFlagContext\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","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","module.exports = require(\"@splunk/visualizations-shared/hocUtils\");","module.exports = require(\"@splunk/visualizations-shared/JSONSchemaUtils\");","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport { DataSource } from '../interfaces/DataSource';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method shouldShowIconPlaceholder\n * @param {object} dataSources\n * @param {boolean} loading\n * @returns {boolean}\n */\nexport const shouldShowIconPlaceholder = (\n dataSources: { [name: string]: DataSource },\n loading = false\n): boolean => {\n const data = get(dataSources, 'primary.data.columns[0]', undefined);\n const noData = data === undefined;\n const fields = get(dataSources, 'primary.data.fields[0]', undefined);\n const noFields = fields === undefined;\n return loading || noData || noFields;\n};\n\nexport interface IconPlaceholderProps {\n icon?: React.ComponentClass<any>;\n width?: string | number;\n height?: string | number;\n backgroundColor?: string;\n iconColor?: string;\n}\n\nconst propTypes: Record<keyof IconPlaceholderProps, T.Validator<any>> = {\n icon: T.func,\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n iconColor: T.string,\n};\n\n/**\n * @method IconPlaceholder\n * @param {IconPlaceholderProps} props\n * @returns {React.ReactElement}\n */\nconst IconPlaceholder = (props: IconPlaceholderProps): React.ReactElement => {\n const { width, height, icon, iconColor } = props;\n if (icon) {\n return React.createElement(icon, {\n style: {\n left: '50%',\n top: '50%',\n color: iconColor,\n opacity: 0.15,\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n },\n width: '50%',\n height: '50%',\n 'data-test': 'icon-placeholder',\n });\n }\n\n return <Message width={width} height={height} level=\"warning\" message={_('No DataSource Connected')} />;\n};\n\nIconPlaceholder.propTypes = propTypes;\nIconPlaceholder.defaultProps = {\n width: '100%',\n height: 250,\n};\n\nexport default withFixedSizeContainer(IconPlaceholder);\n","import * as T from 'prop-types';\nimport { has } from 'lodash';\nimport { DataSourceMeta, SortDirType, validSortDirs } from '../interfaces/DataSource';\n\nexport interface SortParams {\n currentSortKey?: undefined | string;\n currentSortDir?: undefined | SortDirType;\n onSort?: (e: MouseEvent, { sortKey, sortDir }: { sortKey: string; sortDir: SortDirType }) => void;\n}\n\nexport const SortParamsPropTypes = T.shape({\n currentSortKey: T.string,\n currentSortDir: T.oneOf(validSortDirs),\n onSort: T.func,\n});\n\nexport const getSortingParams = ({ requestParams, onRequestParamsChange }: DataSourceMeta): SortParams => {\n let currentSortKey;\n let currentSortDir;\n\n const nextSortDirMap = {\n asc: 'desc',\n desc: 'asc',\n none: 'asc',\n };\n\n let onSort;\n if (typeof onRequestParamsChange === 'function') {\n if (requestParams && has(requestParams, 'sort')) {\n currentSortKey = Object.keys(requestParams.sort).shift();\n currentSortDir = requestParams.sort[currentSortKey];\n }\n\n // undid memoization since there is a dependency on requestParams, which is a deeply nested object\n onSort = (e, { sortKey, sortDir }): void => {\n if (typeof sortKey === 'string') {\n const nextSortDir = has(nextSortDirMap, sortDir) ? nextSortDirMap[sortDir] : 'none';\n onRequestParamsChange({\n ...requestParams,\n ...{ offset: 0, sort: { [sortKey]: nextSortDir } },\n });\n } else {\n onRequestParamsChange(requestParams);\n }\n };\n }\n\n return {\n currentSortKey,\n currentSortDir,\n onSort,\n };\n};\n","import * as T from 'prop-types';\nimport { cloneDeep, noop } from 'lodash';\nimport { DataSourceMeta, RequestParams } from '../interfaces/DataSource';\n\nexport interface OnChangeParams {\n page?: number;\n count?: number;\n}\nexport interface PaginatorParams {\n isPaging?: boolean;\n current?: number;\n totalPages?: number;\n onChange?: (e: MouseEvent, x: OnChangeParams) => void;\n}\n\nexport const PaginatorParamsPropTypes = T.shape({\n isPaging: T.bool,\n current: T.number,\n totalPages: T.number,\n onChange: T.func,\n});\n\nexport const getPaginationParams = ({\n requestParams,\n meta,\n onRequestParamsChange,\n}: DataSourceMeta): PaginatorParams => {\n const totalCount = (meta && meta.totalCount) || 0;\n const offset = (requestParams && requestParams.offset) || 0;\n const count = requestParams && requestParams.count;\n const totalPages = typeof count === 'number' && count > 0 ? Math.ceil(totalCount / count) : 0;\n const current = typeof count === 'number' && count > 0 ? Math.floor(offset / count) + 1 : 0;\n const isPaging = totalPages > 1 && typeof onRequestParamsChange === 'function';\n\n const onChangeHandler = (e, { page, count: countArg }: OnChangeParams): void => {\n const newParams: RequestParams = cloneDeep(requestParams);\n\n if (typeof countArg === 'number') {\n newParams.count = countArg;\n newParams.offset = 0;\n }\n\n const pageCount = typeof newParams.count === 'number' ? newParams.count : 10;\n if (typeof page === 'number' && page > 0) {\n newParams.count = pageCount;\n newParams.offset = (page - 1) * pageCount;\n }\n\n onRequestParamsChange(newParams);\n };\n\n return {\n isPaging,\n current,\n totalPages,\n onChange: typeof onRequestParamsChange === 'function' ? onChangeHandler : noop,\n };\n};\n","module.exports = require(\"styled-components\");","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","// NOTE: wildcard syntax only works for named exports\n// for some reason, omitting the default export worked before TS v4\n// see: https://stackoverflow.com/a/34445175\nexport * from './Table';\nexport { default } from './Table';\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { map, get } from 'lodash';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA, getPattern } from '@splunk/visualizations-shared/schemaUtils';\nimport { COLOR_EDITOR_PALETTE } from '@splunk/visualizations-shared/colorConstants';\nimport { Table as TableIcon } from '@splunk/visualization-icons';\nimport { Table as TablePlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport variables from '@splunk/themes/variables';\nimport pick from '@splunk/themes/pick';\nimport TextAlignCenter from '@splunk/react-icons/TextAlignCenter';\nimport TextAlignLeft from '@splunk/react-icons/TextAlignLeft';\nimport TextAlignRight from '@splunk/react-icons/TextAlignRight';\n\nimport { enhanceConfig, generatePrecisionValues } from '../common/utils/configUtils';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport {\n validHeaderVisibilities,\n validAlignments,\n validTextOverflows,\n validCellRenderers,\n validSparklineTypes,\n validFontSizes,\n} from './consts';\nimport { VizCategory } from '../common/interfaces/VizCategory';\n\nconst dataContract: DataContract = {\n requiredDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n optionalDataSources: [],\n initialRequestParams: {\n primary: (options: { count?: number } = {}): Record<string, unknown> => ({\n offset: 0,\n count: options.count ? options.count : 10,\n requestTotalCount: true,\n }),\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n tableAlignByType: [\n { match: 'string', value: 'left' },\n { match: 'number', value: 'right' },\n { match: 'time', value: 'left' },\n { match: 'color', value: 'left' },\n { match: 'array', value: 'left' },\n { match: 'sparkline', value: 'center' },\n { match: 'unknown', value: 'left' },\n { match: 'null', value: 'left' },\n ],\n tableCellTypeByType: [\n { match: 'string', value: 'TextCell' },\n { match: 'number', value: 'TextCell' },\n { match: 'time', value: 'TextCell' },\n { match: 'color', value: 'TextCell' },\n { match: 'array', value: 'ArrayCell' },\n { match: 'sparkline', value: 'SparklineCell' },\n { match: 'unknown', value: 'TextCell' },\n { match: 'null', value: 'TextCell' },\n ],\n\n // NOTE: These contexts are used by the table background color editor.\n // Please be careful removing/renaming/altering them.\n // There are unit tests and visual test that will capture breakages.\n tableRowColorMaxContrast: {\n colors: ['> themes.textColor', '> themes.inverseTextColor'],\n default: '> themes.textColor',\n },\n tableRowBackgroundColorEvenConfig: {\n channel: 'hsv.v',\n value: '*0.96',\n },\n tableHeaderBackgroundColorConfig: {\n channel: 'hsv.v',\n value: '*0.9',\n },\n tableRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd'],\n tableAltRowBackgroundColorsByTheme: ['> themes.rowBackgroundColorOdd', '> themes.rowBackgroundColorEven'],\n tableRowBackgroundColorsByBackgroundColor: ['> backgroundColor'],\n tableAltRowBackgroundColorsByBackgroundColor: [\n '> backgroundColor',\n '> backgroundColor | setColorChannel(tableRowBackgroundColorEvenConfig)',\n ],\n};\n\nconst headerAlignConfigTable = {\n label: _('Header alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.headerAlign',\n editorProps: {\n values: [\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst headerAlignConfigColumn = {\n ...headerAlignConfigTable,\n option: 'headerAlign',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textOverflowConfigColumn = {\n label: _('Text wrapping'),\n editor: 'editor.radioBar',\n option: 'textOverflow',\n editorProps: {\n values: [\n { label: _('Standard'), value: 'break-word' },\n { label: _('Anywhere'), value: 'anywhere' },\n { label: _('Trim'), value: 'ellipsis' },\n ],\n },\n};\n\nconst textAlignConfigTable = {\n label: _('Cells alignment'),\n editor: 'editor.radioBar',\n option: 'tableFormat.align',\n editorProps: {\n values: [\n { label: _('Auto'), value: '> table | type() | matchValue(tableAlignByType)' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst textAlignConfigColumn = {\n ...textAlignConfigTable,\n option: 'align',\n editorProps: {\n values: [\n { label: _('Auto'), value: 'auto' },\n { label: _('Left'), value: 'left', icon: TextAlignLeft },\n { label: _('Center'), value: 'center', icon: TextAlignCenter },\n { label: _('Right'), value: 'right', icon: TextAlignRight },\n ],\n },\n};\n\nconst unitPositionConfig = {\n label: _('Units position'),\n editor: 'editor.select',\n option: 'unitPosition',\n editorProps: {\n values: [\n { label: _('Before'), value: 'before' },\n { label: _('After'), value: 'after' },\n ],\n },\n};\n\nconst unitLabelConfig = {\n label: _('Unit label'),\n option: 'unit',\n editor: 'editor.text',\n};\n\nconst timeFormattingConfig = {\n label: _('Date & Time formatting'),\n option: 'format',\n editor: 'editor.text',\n editorProps: {\n tooltip: _('For example: DD-MM-YYYY'),\n },\n};\n\nconst sequentialColorConfig = [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n];\n\nconst matchColorConfig = [{ match: '', value: '#5C33FF' }];\n\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You might use a data source to apply the color. The default for enterprise light is \"#FFFFFF\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0B0C0E\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n columnFormat: {\n description:\n 'Lets you format an individual column in a table. Specify a column in a table as a field, followed by a property. For more information, see the Column Format Align - Left example on the Examples page.',\n type: 'object',\n patternProperties: {\n '.*': {\n description: 'Customization for column property',\n type: 'object',\n properties: {\n align: {\n description:\n 'Specify the alignment for the whole column. Valid alignments include \"left\", \"center\", and \"right\". You can also pass an array to specify the alignment of each cell. When set to \"auto\", the column will use the same configuration as tableFormat.align.',\n type: ['string', 'array'],\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n default: 'auto',\n },\n cellTypes: {\n description:\n 'Specify how to render data in cells. Valid cell renders include \"TextCell\", \"ArrayCell\", \"SparklineCell\".',\n type: 'array',\n items: {\n type: 'string',\n enum: validCellRenderers.concat(),\n },\n },\n data: {\n description: 'Specify data points to be displayed in the cells of a column.',\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n headerAlign: {\n description:\n 'Specify the heaader alignment for the whole column. Valid alignments include \"left\", \"center\", and \"right\". When set to \"auto\", the column will use the same configuration as tableFormat.headerAlign',\n type: 'string',\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n default: 'auto',\n },\n rowBackgroundColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the background color of each column of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n rowColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the text color of the cells of a column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineAreaColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline area of each column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline stroke of each column. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n sparklineTypes: {\n description:\n 'Choose either area or line formatting for the Sparkline. Valid sparkline types include \"line\" and \"area\".',\n type: 'array',\n items: {\n type: 'string',\n enum: validSparklineTypes.concat(),\n },\n },\n textOverflow: {\n description:\n 'Controls how the text should be truncated within a particular column. Valid types include \"anywhere\", \"break-word\", \"ellipsis\". Columns are \"break-word\" styled by default when \"textOverflow\" is not configured.',\n type: 'string',\n pattern: getPattern(validTextOverflows),\n enum: validTextOverflows.concat(),\n },\n width: {\n description:\n 'Specify, in pixels, the width of the column. The default displays a minimum width of at least 90, unless the table needs to filled further. The minimum width is 30px.',\n type: 'number',\n minimum: 30,\n },\n },\n },\n },\n },\n count: {\n description: 'Specify the maximum number of rows to display.',\n type: 'number',\n default: 10,\n },\n font: {\n default: 'proportional',\n description: 'Specify the font style to use for table content.',\n type: 'string',\n pattern: getPattern(['proportional', 'monospace']),\n },\n fontSize: {\n default: 'default',\n description:\n 'Specify the font size to use for table content. Font sizes range from extra small (10px) to large (16px) with the default being 14px.',\n type: 'string',\n pattern: getPattern(validFontSizes),\n },\n headers: {\n default: '> table | getField()',\n description:\n \"Specify an array of headers to display on the table. Though these can be statically listed, it's best to use the dynamic default, as it will return the fields of your search.\",\n type: 'array',\n items: {\n type: 'string',\n },\n },\n headerVisibility: {\n default: 'inline',\n description: 'Specify how to display the table header row.',\n pattern: getPattern(validHeaderVisibilities),\n enum: validHeaderVisibilities.concat(),\n type: 'string',\n },\n paginateDataSourceKey: {\n default: 'primary',\n description: 'Specify the data source key for pagination and sorting.',\n type: 'string',\n },\n showInternalFields: {\n default: true,\n description:\n 'Specify whether to show internal fields that start with an underscore. The _time field will still be shown if false.',\n type: 'boolean',\n },\n showRowNumbers: {\n default: false,\n description: 'Show row numbers in the first column.',\n type: 'boolean',\n },\n table: {\n default: '> primary',\n description: 'Two dimensional array of data to be displayed in the table.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n },\n tableFormat: {\n description: 'Lets you set global options for a table.',\n type: 'object',\n properties: {\n align: {\n default: '> table | type() | matchValue(tableAlignByType)',\n description:\n 'Specify alignment for the whole table. Valid alignments include \"left\", \"center\", and \"right\". You can also pass a 2 dimensional array to specify the alignment of each cell. By default, the table will be aligned by type.',\n type: ['string', 'array'],\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n },\n },\n cellTypes: {\n default: '> table | type() | matchValue(tableCellTypeByType)',\n description:\n 'Specify how to render data in cells. Valid cell renders include \"TextCell\", \"ArrayCell\", \"SparklineCell\".',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validCellRenderers.concat(),\n },\n },\n },\n data: {\n description:\n 'Two dimensional data to be displayed in the table. This is usually formatted data instead of raw data from search.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'array', items: { type: ['string', 'number'] } },\n ],\n },\n },\n },\n headerAlign: {\n description:\n 'Specify the header alignment for the whole table. Valid alignments include \"left\", \"center\", and \"right\".',\n type: 'string',\n items: {\n type: 'string',\n enum: validAlignments.concat(),\n },\n default: 'left',\n },\n headerBackgroundColor: {\n default: '> themes.defaultHeaderBackgroundColor',\n description:\n 'Specify the table header background color using a hexadecimal code. For example, \"#FFFFFF\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n headerColor: {\n description:\n 'Specify the table header text color using a hexadecimal code. For example, \"#FFFFFF\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n rowBackgroundColors: {\n default: '> table | seriesByIndex(0) | pick(tableAltRowBackgroundColorsByTheme)',\n description:\n 'Specify a list of colors, in hexadecimal code, for the background color of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n rowColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the text color of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineAreaColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline area of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineColors: {\n description:\n 'Specify a list of colors, in hexadecimal code, for the sparkline stroke of each row of the table. For example, [\"#2C333B\", \"32373D\"].',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n },\n sparklineTypes: {\n description: 'Choose either area or line formatting for the Sparkline.',\n type: 'array',\n items: {\n type: 'array',\n items: {\n type: 'string',\n enum: validSparklineTypes.concat(),\n },\n },\n },\n textOverflow: {\n description:\n 'Specify the text overflow for the whole column. Valid overflows include \"break-word\", \"anywhere\", and \"ellipsis\".',\n type: 'string',\n items: {\n type: 'string',\n enum: validTextOverflows.concat(),\n },\n default: 'break-word',\n },\n },\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n defaultHeaderBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray20(props),\n light: variables.gray92(props),\n },\n prisma: variables.backgroundColor(props),\n })(props),\n rowBackgroundColorEven: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.gray96(props),\n },\n prisma: variables.backgroundColorPage(props),\n })(props),\n rowBackgroundColorOdd: props =>\n pick({\n enterprise: {\n dark: '#0D1012',\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n textColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n inverseTextColor: props =>\n pick({\n enterprise: {\n dark: variables.contentColorInverted(props), // equal to textColor in enterprise\n light: variables.white(props), // equal to textColor in enterpriseDark\n },\n prisma: variables.contentColorInverted(props),\n })(props),\n};\n\nconst backgroundColorPaletteSet = new Set([\n ...COLOR_EDITOR_PALETTE,\n ...map(themes, (t): string => get(t, 'defaultBackgroundColor')),\n]);\nconst EDITOR_LABEL_WIDTH = 100;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Rows displayed'),\n option: 'count',\n editor: 'editor.number',\n editorProps: {\n min: 0,\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Row numbers'),\n option: 'showRowNumbers',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Internal fields'),\n option: 'showInternalFields',\n editor: 'editor.checkbox',\n editorProps: {\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Header row'),\n option: 'headerVisibility',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Inline'), value: 'inline' },\n { label: _('Fixed'), value: 'fixed' },\n { label: _('Hidden'), value: 'none' },\n ],\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n key: 'backgroundColor',\n editor: 'editor.tableBackgroundColor',\n editorProps: {\n themes,\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n palette: [...backgroundColorPaletteSet],\n },\n },\n ],\n [\n {\n option: 'font',\n label: _('Font'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Proportional (Default)'), value: 'proportional' },\n { label: _('Monospace'), value: 'monospace' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n option: 'fontSize',\n label: _('Font size'),\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Extra Small (font 10px, row 24px)'), value: 'extraSmall' },\n { label: _('Small (font 12px, row 24px)'), value: 'small' },\n { label: _('Default (font 14px, row 32px)'), value: 'default' },\n { label: _('Large (font 16px, row 36px)'), value: 'large' },\n ],\n labelPosition: 'top',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n ...headerAlignConfigTable,\n },\n ],\n [\n {\n ...textAlignConfigTable,\n },\n ],\n [\n {\n label: _('Column-specific formatting'),\n editor: 'editor.tableColumnFormatter',\n editorProps: {\n // popover: {sections: [textFormatConfig, formatByTypeConfig, columnColoringConfig]}\n // Table column coloring does not adhere to same DSL structure as other dynamically colored options\n // we use the FormatterEditor directly and not the DynamicColorEditor's provided DSL builders\n columnColoringConfig: {\n coloringTypes: [\n {\n label: _('Text'),\n value: 'rowColors',\n },\n {\n label: _('Background'),\n value: 'rowBackgroundColors',\n },\n ],\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n defaults: {\n rowBackgroundColors: sequentialColorConfig,\n rowColors: sequentialColorConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n rowBackgroundColors: matchColorConfig,\n rowColors: matchColorConfig,\n },\n },\n ],\n themes,\n },\n defaultOptionsByType: {\n number: {\n thousandSeparated: false,\n unitPosition: 'after',\n },\n string: {\n unitPosition: 'after',\n },\n text: {\n align: 'auto',\n headerAlign: 'auto',\n textOverflow: 'break-word',\n },\n },\n textFormatConfig: [\n [\n {\n ...headerAlignConfigColumn,\n },\n ],\n [\n {\n ...textAlignConfigColumn,\n },\n ],\n [\n {\n ...textOverflowConfigColumn,\n },\n ],\n ],\n flyoutConfig: {\n number: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n [\n {\n label: _('Precision'),\n option: 'precision',\n editor: 'editor.select',\n editorProps: {\n values: generatePrecisionValues(20),\n },\n },\n {\n label: _('Thousand separators'),\n option: 'thousandSeparated',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Off'), value: false },\n { label: _('On'), value: true },\n ],\n },\n },\n ],\n ],\n // TODO(fkurniawan): fill in with proper editor components\n sparkline: [],\n string: [\n [\n {\n ...unitPositionConfig,\n },\n {\n ...unitLabelConfig,\n },\n ],\n ],\n time: [\n [\n {\n ...timeFormattingConfig,\n },\n ],\n ],\n },\n value: ({ context, options }) => {\n return {\n context,\n columnFormat: options.columnFormat,\n tableFormat: options.tableFormat,\n };\n },\n },\n key: 'TableColumnFormatterEditor',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.table',\n /**\n * viz name\n */\n name: _('Table'),\n category: VizCategory.TABLE,\n /**\n * viz icon\n */\n icon: TableIcon,\n placeholderIcon: TablePlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'cell.click': {\n description: 'triggered when user clicks a table cell',\n },\n },\n supports: [\n VizBehavior.DYNAMIC_OPTIONS,\n VizBehavior.EVENTS,\n VizBehavior.PAGE_AND_SORT,\n VizBehavior.PLACEHOLDER,\n ],\n themes,\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@splunk/react-icons/TextAlignCenter\");","module.exports = require(\"@splunk/react-icons/TextAlignLeft\");","module.exports = require(\"@splunk/react-icons/TextAlignRight\");","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { cloneDeep, noop } from 'lodash';\nimport styled, { css } from 'styled-components';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SUITable from '@splunk/react-ui/Table';\nimport Paginator from '@splunk/react-ui/Paginator';\nimport Message from '@splunk/react-ui/Message';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\nimport {\n TableCellValueType,\n TableRowCell,\n useTable,\n TableHeaderStyle,\n TableBody,\n TableHeader,\n TableFormat,\n ColumnFormat,\n} from './hooks';\n\nimport {\n validAlignments,\n TableHeaderVisibility,\n validHeaderVisibilities,\n validCellRenderers,\n validSparklineTypes,\n} from './consts';\n\nimport { SwitchTableCell, TextCell, ArrayCell, SparklineCell } from './cells';\nimport { PaginatorParamsPropTypes, PaginatorParams } from '../common/hooks/getPagination';\nimport { SortParamsPropTypes, SortParams } from '../common/hooks/getSorting';\nimport withFixedSizeContainer from '../common/hocs/FixedSizeContainer';\n\n// debounce was imported this way due to typing\n// eslint-disable-next-line import/order\nimport debounce = require('lodash/debounce');\n\nexport const MINIMUM_COLUMN_SIZE = 30;\nexport const INITIAL_UNSET_COLUMN_WIDTH = 90;\ninterface TableCellClickPayload {\n /* user should be able to use value to drilldown */\n value: string | number;\n // other details user can use to for building complex drilldown/tokens\n\n /* nth - column. starts at 0. row number column is ignored */\n cellIndex: number;\n\n /* nth - row */\n rowIndex: number;\n\n /* field name from the table header */\n fieldValue: string;\n name: string;\n\n /* displayed table cell value. This could be formatted data */\n cellValue: TableCellValueType;\n\n /* Raw unformatted data */\n cellRawValue: TableCellValueType;\n\n /* cell values of all cells of clicked row with the field and value - in shape row.<field>.value */\n [key: string]: TableCellValueType | TableCellValueType[];\n}\n\nexport interface PureTableProps {\n backgroundColor?: string;\n count?: number;\n mode?: string;\n width?: number;\n height?: number;\n headers?: string[];\n columnIds?: string[];\n table?: TableCellValueType[][];\n headerVisibility?: TableHeaderVisibility;\n showRowNumbers?: boolean;\n showInternalFields?: boolean;\n tableBody?: TableBody;\n tableHeader?: TableHeader;\n tableFormat?: Partial<TableFormat>;\n columnFormat?: Partial<ColumnFormat>;\n sortParams?: SortParams;\n paginatorParams?: PaginatorParams;\n onCellClick?: ({ e, payload }: { e: Event; payload: TableCellClickPayload }) => void;\n onColumnFormatChange?: (columnFormat: Partial<ColumnFormat>) => void;\n font?: string;\n fontSize?: string;\n}\n\nconst NonVisibleTableHead = styled(SUITable.Head)`\n pointer-events: none;\n & [data-test='head-cell'] > div {\n height: 0;\n padding: 0;\n margin: 0;\n }\n`;\n\nconst FixedTableHead = styled(SUITable.Head)`\n position: sticky;\n top: 0;\n`;\n\nconst TableHeadCell = styled(SUITable.HeadCell)`\n div > span {\n word-break: inherit;\n word-wrap: inherit;\n white-space: ${({ textOverflowType }) => (textOverflowType === 'ellipsis' ? 'nowrap' : 'inherit')};\n display: inline;\n }\n`;\n\nconst VizTableContainer = styled.div<{ backgroundColor: string; isCellClickable: boolean }>`\n box-sizing: border-box;\n padding: ${pick({\n enterprise: variables.spacingHalf,\n prisma: variables.spacingSmall,\n })};\n background-color: ${(props): string =>\n (isColor(props.backgroundColor) && props.backgroundColor) || props.theme.defaultBackgroundColor};\n display: flex;\n flex-flow: column nowrap;\n overflow: hidden;\n\n td,\n * > td:hover {\n color: ${({ isCellClickable }) => (isCellClickable ? variables.linkColor : variables.textColor)};\n }\n`;\nVizTableContainer.displayName = 'VizTableContainer';\n\nconst PAGINATOR_CONTAINER_HEIGHT = 38;\nconst PAGINATOR_SPACING = 5;\nconst SUITableContainer = styled.div<{\n headerStyle?: TableHeaderStyle;\n width: string | number;\n height: string | number;\n isPaging: boolean;\n font: string;\n fontSize: string;\n lineHeight: string;\n isFullyFixed: boolean;\n}>`\n & * {\n font-family: ${(props): string => props.font};\n font-size: ${(props): string => props.fontSize};\n line-height: ${(props): string => props.lineHeight};\n }\n box-sizing: border-box;\n flex-grow: 1;\n overflow: hidden;\n ${({ width, height, isPaging, theme }: any): string => {\n const padding = pick({\n enterprise: variables.spacingHalf({ theme }),\n prisma: variables.spacingSmall({ theme }),\n })({ theme }) as string;\n const paddingOffset = parseInt(padding, 10) * 2;\n return toDimension({\n width: width - paddingOffset,\n height: isPaging\n ? height - PAGINATOR_CONTAINER_HEIGHT - PAGINATOR_SPACING - paddingOffset\n : height - paddingOffset,\n });\n }};\n\n ${({ isPaging }): string =>\n isPaging &&\n `\n margin-bottom: ${PAGINATOR_SPACING}px;\n `};\n\n /* TODO: Replace unsupported hacky style overrides */\n ${({ headerStyle }) =>\n headerStyle &&\n headerStyle.backgroundColor &&\n css`\n & [data-test='head-cell'] {\n background-color: ${headerStyle.backgroundColor};\n }\n `}\n\n ${({ headerStyle }) =>\n headerStyle &&\n headerStyle.color &&\n css`\n & [data-test='head-cell'] > div > span {\n color: ${headerStyle.color};\n }\n `}\n\n /* To accomodate custom logic that diverges from default resizableFillLayout behavior - allows the columns to shrink beneath Table width when columns are fixed */\n [data-test=\"main-table\"] {\n ${({ isFullyFixed }) =>\n isFullyFixed &&\n css`\n width: fit-content;\n min-width: unset;\n `}\n td {\n white-space: pre-wrap; // css override to render text with newline/ line-breaks and tabs/ spaces properly\n }\n }\n` as any;\nSUITableContainer.displayName = 'SUITableContainer';\n\nconst PaginatorContainer = styled.div`\n position: relative;\n text-align: right;\n height: ${PAGINATOR_CONTAINER_HEIGHT}px;\n`;\nPaginatorContainer.displayName = 'PaginatorContainer';\n\n// allow for early return in case of empty tableBody while still following hook rules\nconst withEmptyTableMessage = (Viz): React.FunctionComponent<PureTableProps> => {\n // TODO(fkurniawan): add omit type to differentiate WrapperProps from PureTableProps\n const Wrapper = (props: PureTableProps): React.ReactElement => {\n const {\n headers,\n columnIds,\n table,\n headerVisibility,\n showRowNumbers,\n showInternalFields,\n tableFormat,\n columnFormat,\n paginatorParams,\n count,\n } = props;\n const { tableHeader, tableBody } = useTable({\n headers,\n columnIds,\n table,\n headerVisibility,\n showRowNumbers,\n showInternalFields,\n tableFormat: {\n ...tableFormat,\n ...(tableFormat?.headerAlign && { headerAlign: cloneDeep(tableFormat.headerAlign) }),\n ...(tableFormat?.align && { align: cloneDeep(tableFormat.align) }),\n ...(tableFormat?.cellTypes && { cellTypes: cloneDeep(tableFormat.cellTypes) }),\n ...(tableFormat?.data && { data: cloneDeep(tableFormat.data) }),\n },\n columnFormat,\n paginationOffset: paginatorParams?.current,\n count,\n });\n\n if (tableBody.rows.length === 0) {\n return <Message type=\"warning\">{_('No data!')}</Message>;\n }\n\n return <Viz {...props} tableHeader={tableHeader} tableBody={tableBody} />;\n };\n\n Wrapper.displayName = 'PureTableWrapper';\n return Wrapper;\n};\n\nconst useTableHead = (visibility: TableHeaderVisibility) => {\n if (visibility === 'none') {\n return NonVisibleTableHead;\n }\n\n if (visibility === 'fixed') {\n return FixedTableHead;\n }\n\n return SUITable.Head;\n};\n\nconst HeadCell = ({ value, ...props }: any) => {\n const cellRef = React.useRef(null);\n return (\n <TableHeadCell elementRef={cellRef} {...props}>\n {value}\n </TableHeadCell>\n );\n};\n\nconst fontMap: Record<string, string> = {\n proportional: 'Splunk Platform Sans',\n monospace: 'Splunk Platform Mono',\n};\n\nconst fontSizeMap: Record<string, string> = {\n extraSmall: '10px',\n small: '12px',\n default: '14px',\n large: '16px',\n};\n\nconst rowHeightMap: Record<string, string> = {\n extraSmall: '12px',\n small: '12px',\n default: '20px',\n large: '24px',\n};\n\nconst tableInnerStyle = { height: '100%' };\n\nconst PureTable = (props: PureTableProps): React.ReactElement => {\n const {\n count,\n width,\n height,\n backgroundColor,\n tableHeader,\n tableBody,\n showRowNumbers,\n sortParams: { currentSortKey, currentSortDir, onSort },\n paginatorParams: { isPaging, onChange: paginatorOnChange, ...paginatorProps },\n onCellClick,\n onColumnFormatChange,\n columnFormat,\n mode,\n headerVisibility,\n font,\n fontSize,\n } = props;\n const [columns, setColumns] = React.useState(columnFormat);\n const containerRef = React.useRef(null);\n const containerRefInner = React.useRef(null);\n // this state avoids unncessary column sorting when column resize ends\n const [isResizing, setResizing] = React.useState(false);\n\n const firstRenderCount = React.useRef(count);\n React.useEffect((): void => {\n if (firstRenderCount.current !== count) {\n firstRenderCount.current = count;\n paginatorOnChange(null, { count });\n }\n }, [count, paginatorProps]);\n\n const stringifiedColumnFormat = JSON.stringify(columnFormat);\n const columnFormatRef = React.useRef(stringifiedColumnFormat);\n const modeRef = React.useRef(mode);\n React.useEffect((): void => {\n if (modeRef.current !== mode || columnFormatRef.current !== stringifiedColumnFormat) {\n columnFormatRef.current = stringifiedColumnFormat;\n modeRef.current = mode;\n setColumns(columnFormat);\n }\n }, [mode, stringifiedColumnFormat]);\n\n const TableHead = useTableHead(headerVisibility);\n\n const debouncedDrilldown = React.useMemo(\n () =>\n debounce((e: MouseEvent | KeyboardEvent, payload: TableCellClickPayload): void => {\n if (window.getSelection().toString() === '' || e?.ctrlKey || e?.metaKey) {\n if (typeof onCellClick === 'function') {\n onCellClick({ e, payload });\n }\n }\n }, 200),\n [onCellClick]\n );\n\n const drilldownHandler = React.useCallback(\n (e: React.SyntheticEvent): void => {\n const element = e.target as HTMLElement;\n const row = element.getAttribute('data-row-index');\n const col = element.getAttribute('data-col-index');\n const arrayIndex = element.getAttribute('data-array-index') || -1;\n if (row && col) {\n const cellRefIndex = +col;\n let cellIndex = cellRefIndex;\n const rowIndex = +row;\n const fieldValue = tableHeader.cells[cellRefIndex].value;\n const cellValue = tableBody.rows[rowIndex].cells[cellRefIndex].value;\n const cellRawValue = tableBody.rows[rowIndex].cells[cellRefIndex].value;\n\n const value = arrayIndex === -1 ? cellValue : cellRawValue[+arrayIndex];\n\n // Wish we did not have these if statements for\n // showRowNumbers\n if (showRowNumbers === true) {\n if (cellIndex === 0) {\n // no click event for row numbers\n return;\n }\n cellIndex -= 1;\n }\n\n const payload = {\n cellIndex,\n rowIndex,\n fieldValue,\n cellValue,\n cellRawValue,\n value,\n name: fieldValue,\n };\n\n tableBody.rows[rowIndex].cells.forEach((c: TableRowCell, index: number) => {\n const rowToken = `row.${tableHeader.cells[index].value}.value`;\n payload[rowToken] = c.value;\n });\n debouncedDrilldown(e.nativeEvent as MouseEvent | KeyboardEvent, payload);\n }\n },\n [tableHeader.cells, tableBody.rows, showRowNumbers, debouncedDrilldown]\n );\n\n const tableCellClickHandler = React.useCallback(\n e => {\n setResizing(false); // The resizing state will be set back to false on any cell click\n return onCellClick ? drilldownHandler(e) : noop;\n },\n [onCellClick, drilldownHandler]\n );\n\n const debouncedOnColumnFormatChange = React.useMemo(\n () =>\n debounce((newFormat: Partial<ColumnFormat>): void => {\n onColumnFormatChange(newFormat);\n }, 300),\n [onColumnFormatChange]\n );\n\n const handleEventClick = e => {\n // Hack to target the resize handlers, since the only button within a HeadCell is the resize handlers\n if (e.target.tagName.toLowerCase() === 'hr') {\n e.stopPropagation();\n }\n };\n const handleKeyDown = e => {\n if (e.keyCode !== 13) {\n return;\n }\n drilldownHandler(e);\n };\n\n const handleResizeColumn = (_event, payload) => {\n setResizing(true);\n const updatedCF = columns;\n const field = payload.columnId;\n updatedCF[field] = {\n ...updatedCF[field],\n width: Math.max(payload.width, MINIMUM_COLUMN_SIZE),\n };\n setColumns({ ...updatedCF });\n\n // Updates column json in edit mode\n if (mode === 'edit') {\n debouncedOnColumnFormatChange(updatedCF);\n }\n };\n\n const fontMapped = fontMap[font] || fontMap.proportional;\n const fontSizeMapped = fontSizeMap[fontSize] || fontSizeMap.default;\n const rowHeightMapped = rowHeightMap[fontSize] || rowHeightMap.default;\n const tableOuterStyle = React.useMemo(\n () => ({ height: '100%', cursor: onCellClick ? 'pointer' : 'unset' }),\n [onCellClick]\n );\n\n const visibleHeaderCells = tableHeader.cells.filter(c => c.showCell);\n const numberOfFixedHeaders = visibleHeaderCells.filter(({ value }) => {\n return columns[value]?.width && columns[value]?.width !== 'auto';\n }).length;\n\n const isFullyFixed = visibleHeaderCells.length === numberOfFixedHeaders;\n const isHeaderHidden = headerVisibility === 'none';\n\n return (\n <VizTableContainer\n isCellClickable={Boolean(onCellClick)}\n backgroundColor={backgroundColor}\n ref={containerRef}\n data-test=\"table-container\"\n >\n <SUITableContainer\n ref={containerRefInner}\n width={width}\n height={height}\n isPaging={isPaging}\n headerStyle={tableHeader.style}\n font={fontMapped}\n fontSize={fontSizeMapped}\n lineHeight={rowHeightMapped}\n isFullyFixed={isFullyFixed}\n >\n <SUITable\n resizableFillLayout\n headType={isHeaderHidden ? undefined : 'inline'}\n innerStyle={tableInnerStyle}\n outerStyle={tableOuterStyle}\n onClick={tableCellClickHandler}\n onKeyDown={onCellClick ? handleKeyDown : noop}\n onRequestResizeColumn={handleResizeColumn}\n >\n <TableHead>\n {visibleHeaderCells.map(\n ({\n key,\n value,\n sortKey,\n style,\n align,\n textOverflowType,\n ...rest\n }): React.ReactElement => {\n return (\n <HeadCell\n {...{ sortKey, ...rest }}\n align={align}\n data-test-align-value={align}\n data-test-text-overflow-value={textOverflowType}\n key={key}\n columnId={value}\n sortDir={sortKey === currentSortKey ? currentSortDir : 'none'}\n width={columns[value]?.width ?? INITIAL_UNSET_COLUMN_WIDTH}\n onMouseDown={handleEventClick}\n value={value}\n onSort={\n isResizing || (showRowNumbers && value === '#') || isHeaderHidden\n ? null\n : onSort\n }\n resizable={!isHeaderHidden}\n style={\n showRowNumbers && value === '#'\n ? { ...style, cursor: 'auto' }\n : style\n }\n headerVisibility={headerVisibility}\n />\n );\n }\n )}\n </TableHead>\n <SUITable.Body>\n {tableBody.rows.map(\n (row): React.ReactElement => (\n <SUITable.Row key={row.key}>\n {row.cells\n .filter(c => c.showCell)\n .map(\n (cell): React.ReactElement => {\n return (\n <SwitchTableCell key={cell.key} type={cell.cellType}>\n <TextCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n />\n <SparklineCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n width={columns[cell.header]?.width ?? 'auto'}\n />\n <ArrayCell\n cell={cell}\n useMouseOverEffect={!!onCellClick}\n />\n </SwitchTableCell>\n );\n }\n )}\n </SUITable.Row>\n )\n )}\n </SUITable.Body>\n </SUITable>\n </SUITableContainer>\n {isPaging ? (\n <PaginatorContainer>\n <Paginator onChange={paginatorOnChange} {...paginatorProps} />\n </PaginatorContainer>\n ) : null}\n </VizTableContainer>\n );\n};\n\nconst cellDataType = T.oneOfType([T.string, T.number, T.arrayOf(T.oneOfType([T.string, T.number]))]);\n\nPureTable.propTypes = {\n backgroundColor: T.string,\n count: T.number,\n columnFormat: T.objectOf(\n T.shape({\n align: T.oneOfType([T.arrayOf(T.oneOf(validAlignments)), T.oneOf(validAlignments)]),\n cellTypes: T.arrayOf(T.oneOf(validCellRenderers)),\n data: T.arrayOf(cellDataType),\n headerAlign: T.oneOf(validAlignments),\n rowBackgroundColors: T.arrayOf(T.string),\n rowColors: T.arrayOf(T.string),\n sparklineAreaColors: T.arrayOf(T.string),\n sparklineColors: T.arrayOf(T.string),\n sparklineTypes: T.arrayOf(T.oneOf(validSparklineTypes)),\n })\n ),\n headers: T.arrayOf(T.string),\n headerVisibility: T.oneOf(validHeaderVisibilities),\n height: T.oneOfType([T.number]),\n mode: T.string,\n onCellClick: T.func,\n paginatorParams: PaginatorParamsPropTypes,\n showRowNumbers: T.bool,\n sortParams: SortParamsPropTypes,\n table: T.arrayOf(T.arrayOf(cellDataType)),\n tableFormat: T.shape({\n align: T.oneOfType([T.arrayOf(T.arrayOf(T.oneOf(validAlignments))), T.oneOf(validAlignments)]),\n cellTypes: T.arrayOf(T.arrayOf(T.oneOf(validCellRenderers))),\n data: T.arrayOf(T.arrayOf(cellDataType)),\n headerAlign: T.oneOf(validAlignments),\n headerBackgroundColor: T.string,\n headerColor: T.string,\n rowBackgroundColors: T.oneOfType([T.arrayOf(T.string), T.arrayOf(T.arrayOf(T.string))]),\n rowColors: T.oneOfType([T.arrayOf(T.string), T.arrayOf(T.arrayOf(T.string))]),\n sparklineAreaColors: T.arrayOf(T.arrayOf(T.string)),\n sparklineColors: T.arrayOf(T.arrayOf(T.string)),\n sparklineTypes: T.arrayOf(T.arrayOf(T.oneOf(validSparklineTypes))),\n }),\n theme: T.any,\n width: T.oneOfType([T.number]),\n onColumnFormatChange: T.func,\n font: T.string,\n fontSize: T.string,\n};\n\nPureTable.defaultProps = {\n columnFormat: {},\n headers: [],\n headerVisibility: 'inline' as const,\n height: 300,\n mode: 'view',\n onCellClick: null,\n paginatorParams: {\n isPaging: false,\n onChange: noop,\n },\n showRowNumbers: false,\n sortParams: {\n onSort: noop,\n },\n table: [],\n tableFormat: {},\n theme: {},\n width: 300,\n onColumnFormatChange: noop,\n font: fontMap.proportional,\n fontSize: fontSizeMap.default,\n};\nPureTable.displayName = 'VizTable';\n\nexport default withEmptyTableMessage(withFixedSizeContainer(PureTable)) as any;\n","import { has, includes, get } from 'lodash';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport {\n validHeaderVisibilities,\n validAlignments,\n TextOverflow,\n TableHeaderVisibility,\n TableAlignment,\n CellRenderers,\n validCellRenderers,\n SparklineType,\n validSparklineTypes,\n} from './consts';\n\nconst isArray = (v: any): boolean => Array.isArray(v);\n\ninterface TextOverFlowStyles {\n maxWidth?: string;\n overflow?: string;\n overflowWrap?: string;\n textOverflow?: string;\n whiteSpace?: string;\n wordBreak?: string;\n wordWrap?: string;\n}\ninterface TableHeaderCell {\n /* unique key for the table header cell */\n key: string;\n /* value to be displayed in the table header cell */\n value: string;\n /* header align control */\n align: TableAlignment;\n /* original column field name, used for formatting */\n columnId: string;\n /* key that will be used for sorting */\n sortKey: string;\n truncate?: boolean;\n width?: number;\n style?: TextOverFlowStyles;\n textOverflowType?: string;\n showCell: boolean;\n}\nexport interface TableHeaderStyle extends TextOverFlowStyles {\n backgroundColor?: string;\n color?: string;\n}\nexport interface TableHeader {\n /* header visiibility control */\n visibility: TableHeaderVisibility;\n /* array containing table header cells */\n cells: TableHeaderCell[];\n /* styles to be applied to table */\n style: TableHeaderStyle;\n}\n\nexport type TableCellValueType = string | number | (string | number)[];\n\ninterface TableRowStyles extends TextOverFlowStyles {\n backgroundColor?: string;\n color?: string;\n width?: number | 'auto';\n}\nexport interface TableRowCell {\n /* unique key for the row cell */\n key: string;\n /* value to be displayed in the row cell. This is a layered value columnFormat.[FieldName].data > tableFormat.data > table options */\n value: TableCellValueType;\n /* always the value from table options */\n rawValue: TableCellValueType;\n align: TableAlignment;\n cellType: CellRenderers;\n columnIndex: number;\n rowIndex: number;\n sparklineAreaColor?: string;\n sparklineColor?: string;\n sparklineType: SparklineType;\n header: string;\n style: TableRowStyles;\n showCell: boolean;\n}\n\ninterface TableRow {\n /* unique key for each row */\n key: string;\n /* row index */\n index: number;\n /* array of table cells to be displayed in the row */\n cells: TableRowCell[];\n}\n\nexport interface TableBody {\n /* collection of table rows */\n rows: TableRow[];\n}\n\nexport interface TableStructure {\n tableHeader: TableHeader;\n tableBody: TableBody;\n}\n\nexport interface TableFormat {\n align: TableAlignment[][] | TableAlignment;\n cellTypes: CellRenderers[][];\n data: TableCellValueType[][];\n headerAlign: TableAlignment;\n /* header background color. NOTE: react table does not support background color for individual column headers */\n headerBackgroundColor: string;\n /* header text color. NOTE: react table does not support text color for individual column headers */\n headerColor: string;\n /* array of colors for the background color of each table row */\n rowBackgroundColors: string[] | string[][];\n /* array of colors for the text color of each table row */\n rowColors: string[] | string[][];\n sparklineAreaColors: string[][];\n sparklineColors: string[][];\n sparklineTypes: SparklineType[][];\n}\n\ninterface ColumnFormatter {\n align: TableAlignment[] | TableAlignment | 'auto';\n cellTypes: CellRenderers[];\n data: TableCellValueType[];\n headerAlign: TableAlignment | 'auto';\n rowBackgroundColors: string[];\n rowColors: string[];\n sparklineAreaColors: string[];\n sparklineColors: string[];\n sparklineTypes: SparklineType[];\n width: number | 'auto';\n textOverflow: TextOverflow;\n}\nexport interface ColumnFormat {\n [k: string]: Partial<ColumnFormatter>;\n}\n\nexport interface UseTableArgs {\n /* array of headers to be displayed */\n headers?: string[];\n /* array of original data columns */\n columnIds?: string[];\n /* 2 dimensional array of table data to be displayed */\n table?: TableCellValueType[][];\n /* header visibility control */\n headerVisibility?: TableHeaderVisibility;\n /* adds row number column */\n showRowNumbers?: boolean;\n /* shows or hides internal fields */\n showInternalFields?: boolean;\n /* table wide formatting options */\n tableFormat?: Partial<TableFormat>;\n /* column format for individual columns */\n columnFormat?: Partial<ColumnFormat>;\n /* pagination offset */\n paginationOffset?: number;\n /* count */\n count?: number;\n}\n\ninterface GetOverflowStylesArgs {\n textOverflow: TextOverflow;\n}\n\nconst textOverflowStyles = {\n anywhere: {\n wordBreak: 'break-all',\n },\n 'break-word': {\n wordBreak: 'break-word',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n ellipsis: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n};\n\nconst empty = {};\n\nexport const getOverflowStyles = ({ textOverflow }: GetOverflowStylesArgs): TextOverFlowStyles => {\n return textOverflowStyles[textOverflow] || empty;\n};\n\nconst generateKey = (value = '', i: string | number): string => `${i}-${value}`;\n\nexport const getTextOverflowType = (\n columnFormat: Partial<ColumnFormat>,\n columnId: string,\n currentColumn?: string\n): string => getAttributeFromColumnFormat('textOverflow', columnFormat, columnId, currentColumn);\n\nconst generateHeader = (\n value: string,\n columnId: string,\n i: number,\n columnFormat: Partial<ColumnFormat>,\n tableFormat: Partial<TableFormat>,\n showInternalFields: boolean\n): TableHeaderCell => {\n const ret: TableHeaderCell = {\n key: generateKey(value, i),\n value,\n align: 'left',\n columnId,\n sortKey: value,\n showCell: true,\n };\n if (!showInternalFields && value.charAt(0) === '_' && value !== '_time') {\n ret.showCell = false;\n }\n\n const headerAlign =\n getColumnFormatHeaderAlign(columnFormat, columnId, value) ||\n getTableFormatHeaderAlign(tableFormat) ||\n 'left';\n const textOverflowType = getTextOverflowType(columnFormat, columnId, value);\n const textOverflowStyle = getOverflowStyles({\n textOverflow: textOverflowType as TextOverflow,\n });\n ret.align = headerAlign;\n ret.truncate = true;\n ret.textOverflowType = textOverflowType;\n ret.style = textOverflowStyle;\n\n return ret;\n};\n\nconst getColumnFormatAlign = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): TableAlignment | undefined => {\n let align;\n const alignOption = getAttributeFromColumnFormat(\n 'align',\n columnFormat,\n currentColumn.columnId,\n currentColumn.value\n );\n\n if (isArray(alignOption) && includes(validAlignments, alignOption[currentRow])) {\n align = alignOption[currentRow];\n } else if (typeof alignOption === 'string' && alignOption === 'auto') {\n align = undefined;\n } else if (typeof alignOption === 'string' && includes(validAlignments, alignOption)) {\n align = alignOption;\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.columnId\n }.align should be a string or an array containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return align;\n};\n\nconst getColumnFormatCellType = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): CellRenderers | undefined => {\n let cellType;\n const cellTypes = getAttributeFromColumnFormat(\n 'cellTypes',\n columnFormat,\n currentColumn.columnId,\n currentColumn.value\n );\n\n if (isArray(cellTypes) && includes(validCellRenderers, cellTypes[currentRow])) {\n cellType = cellTypes[currentRow];\n } else if (typeof cellTypes !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.value\n }.cellType should be an array containing (${validCellRenderers.join(' | ')}). ${JSON.stringify(\n cellTypes\n )} provided`\n );\n }\n return cellType;\n};\n\nconst getColumnFormatSparklineType = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): SparklineType | undefined => {\n let sparklineType;\n const types = getAttributeFromColumnFormat(\n 'sparklineTypes',\n columnFormat,\n currentColumn.columnId,\n currentColumn.value\n );\n\n if (isArray(types) && includes(validSparklineTypes, types[currentRow])) {\n sparklineType = types[currentRow];\n } else if (typeof types !== 'undefined') {\n console.warn(\n `columnFormat.${currentColumn.value}.sparklineTypes should be one of (${validSparklineTypes.join(\n ' | '\n )}). ${JSON.stringify(types)} provided`\n );\n }\n return sparklineType;\n};\n\nconst getColumnFormatData = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n let datum;\n const data = getAttributeFromColumnFormat(\n 'data',\n columnFormat,\n currentColumn.columnId,\n currentColumn.value\n );\n\n if (isArray(data)) {\n datum = data[currentRow];\n } else if (typeof data !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.value\n }.data should be an array containing formatted data. ${typeof data} provided`\n );\n }\n return datum;\n};\n\nconst getColumnFormatColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number,\n field: string\n): string | undefined => {\n let color;\n const colors = getAttributeFromColumnFormat(\n field,\n columnFormat,\n currentColumn.columnId,\n currentColumn.value\n );\n\n if (isArray(colors) && isColor(colors[currentRow])) {\n color = colors[currentRow];\n } else if (typeof colors !== 'undefined') {\n console.warn(\n `columnFormat.${\n currentColumn.columnId\n }.${field} should be an array containing valid colors. ${JSON.stringify(colors)} provided`\n );\n }\n return color;\n};\n\nconst getColumnFormatRowColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'rowColors');\n};\n\nconst getColumnFormatRowBgColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'rowBackgroundColors');\n};\n\nconst getColumnFormatSparklineColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'sparklineColors');\n};\n\nconst getColumnFormatSparklineAreaColor = (\n columnFormat: ColumnFormat,\n currentColumn: TableHeaderCell,\n currentRow: number\n): string | undefined => {\n return getColumnFormatColor(columnFormat, currentColumn, currentRow, 'sparklineAreaColors');\n};\n\nconst getColumnFormatHeaderAlign = (\n columnFormat: ColumnFormat,\n columnId: string,\n columnValue: string\n): TableAlignment | undefined => {\n let headerAlign;\n const alignOption = getAttributeFromColumnFormat('headerAlign', columnFormat, columnId, columnValue);\n\n if (typeof alignOption === 'string' && alignOption === 'auto') {\n return undefined;\n }\n if (typeof alignOption === 'string' && includes(validAlignments, alignOption)) {\n headerAlign = alignOption;\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `columnFormat.${columnId}.headerAlign should be a string containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return headerAlign;\n};\n\nconst getTableFormatAlign = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): TableAlignment | undefined => {\n const alignOption = get(tableFormat, 'align');\n let align;\n if (\n isArray(alignOption) &&\n isArray(alignOption[currentColumn]) &&\n includes(validAlignments, alignOption[currentColumn][currentRow])\n ) {\n align = alignOption[currentColumn][currentRow];\n } else if (typeof alignOption === 'string' && includes(validAlignments, alignOption)) {\n align = alignOption;\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `tableFormat.align should be a string or a 2 dimensional array containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return align;\n};\n\nconst getTableFormatCellType = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): CellRenderers | undefined => {\n const cellTypes = get(tableFormat, 'cellTypes');\n let cellType;\n if (\n isArray(cellTypes) &&\n isArray(cellTypes[currentColumn]) &&\n includes(validCellRenderers, cellTypes[currentColumn][currentRow])\n ) {\n cellType = cellTypes[currentColumn][currentRow];\n } else if (typeof cellTypes !== 'undefined') {\n console.warn(\n `tableFormat.cellType should be a 2 dimensional array containing (${validCellRenderers.join(\n ' | '\n )}). ${JSON.stringify(cellTypes)} provided`\n );\n }\n return cellType;\n};\n\nconst getTableFormatSparklineType = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number\n): SparklineType | undefined => {\n const types = get(tableFormat, 'sparklineTypes');\n let sparklineType;\n if (\n isArray(types) &&\n isArray(types[currentColumn]) &&\n includes(validSparklineTypes, types[currentColumn][currentRow])\n ) {\n sparklineType = types[currentColumn][currentRow];\n } else if (typeof types !== 'undefined') {\n console.warn(\n `tableFormat.sparklineTypes should be a 2 dimensional array containing one of (${validSparklineTypes.join(\n ' | '\n )}). ${JSON.stringify(types)} provided`\n );\n }\n return sparklineType;\n};\n\nconst getTableFormatColor = (\n tableFormat: Partial<TableFormat>,\n currentColumn: number,\n currentRow: number,\n field: string\n): string | undefined => {\n const colors = get(tableFormat, field);\n let color;\n if (isArray(colors) && isArray(colors[currentColumn]) && isColor(colors[currentColumn][currentRow])) {\n color = colors[currentColumn][currentRow];\n } else if (isArray(colors) && isColor(colors[currentRow])) {\n color = colors[currentRow];\n } else if (\n typeof colors !== 'undefined' &&\n isArray(colors) &&\n isArray(colors[currentColumn]) &&\n colors[currentColumn][currentRow] !== undefined\n ) {\n console.warn(\n `tableFormat.${field} needs to be an array of colors, provided ${JSON.stringify(\n colors\n )}. Current value at [${currentColumn}][${currentRow}] is ${JSON.stringify(colors[currentRow])}`\n );\n }\n return color;\n};\n\nconst getTableFormatRowColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'rowColors');\n};\n\nconst getTableFormatRowBgColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'rowBackgroundColors');\n};\n\nconst getTableFormatSparklineColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'sparklineColors');\n};\n\nconst getTableFormatSparklineAreaColor = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n return getTableFormatColor(tableFormat, currentCol, currentRow, 'sparklineAreaColors');\n};\n\nconst getTableFormatData = (\n tableFormat: Partial<TableFormat>,\n currentCol: number,\n currentRow: number\n): string | undefined => {\n const data = get(tableFormat, 'data');\n let datum;\n if (isArray(data) && isArray(data[currentCol])) {\n datum = data[currentCol][currentRow];\n } else if (typeof data !== 'undefined') {\n console.warn(\n `tableFormat.data should be a 2 dimensional array containing formatted data to be displayed. ${typeof data} provided`\n );\n }\n return datum;\n};\n\nconst getTableFormatHeaderAlign = (tableFormat: Partial<TableFormat>): TableAlignment | undefined => {\n const alignOption = get(tableFormat, 'headerAlign');\n let headerAlign;\n if (typeof alignOption === 'string' && validAlignments.includes(alignOption)) {\n headerAlign = alignOption;\n } else if (typeof alignOption !== 'undefined') {\n console.warn(\n `tableFormat.headerAlign should be a string containing (${validAlignments.join(\n ' | '\n )}). ${JSON.stringify(alignOption)} provided`\n );\n }\n return headerAlign;\n};\n\nconst getAttributeFromColumnFormat = (attribute, columnFormat, columnId, columnValue) =>\n get(columnFormat, [columnId, attribute]) || get(columnFormat, [columnValue, attribute]);\n\nconst validValueSelector = (\n v1: TableCellValueType,\n v2: TableCellValueType,\n v3: TableCellValueType,\n defaultValue: TableCellValueType\n): TableCellValueType => {\n const validTypes = ['string', 'number'];\n if (validTypes.includes(typeof v1) || isArray(v1)) {\n return v1;\n }\n if (validTypes.includes(typeof v2) || isArray(v2)) {\n return v2;\n }\n if (validTypes.includes(typeof v3) || isArray(v3)) {\n return v3;\n }\n return defaultValue;\n};\n\nexport const useTable = (tableArgs: UseTableArgs = {}): TableStructure => {\n let { table = [], headers = [], columnIds = [] } = tableArgs;\n const {\n headerVisibility = 'inline',\n showRowNumbers = false,\n showInternalFields = true,\n tableFormat = {},\n columnFormat = {},\n paginationOffset = 0,\n count = 0,\n } = tableArgs;\n\n const longestColumnLength: number = Math.max(...table.map((column): number => column.length));\n\n if (showRowNumbers) {\n const correctedPaginationOffset = Math.max(0, (paginationOffset - 1) * count);\n\n headers = ['#', ...headers];\n columnIds = ['#', ...columnIds];\n table = [\n Array.from({ length: longestColumnLength }, (v, i): number => correctedPaginationOffset + i + 1),\n ...table,\n ];\n if (isArray(tableFormat.align)) {\n tableFormat.align = [\n new Array(longestColumnLength).fill('left'),\n ...(tableFormat.align as TableAlignment[][]),\n ];\n }\n if (isArray(tableFormat.cellTypes)) {\n tableFormat.cellTypes = [\n new Array(longestColumnLength).fill('TextCell'),\n ...tableFormat.cellTypes,\n ];\n }\n if (isArray(tableFormat.data)) {\n tableFormat.data = [\n Array.from({ length: longestColumnLength }, (v, i): string => `${i + 1}`),\n ...tableFormat.data,\n ];\n }\n if (isArray(tableFormat.rowBackgroundColors)) {\n if (tableFormat.rowBackgroundColors.length > 0 && isArray(tableFormat.rowBackgroundColors[0])) {\n tableFormat.rowBackgroundColors = [\n new Array(longestColumnLength),\n ...tableFormat.rowBackgroundColors,\n ] as string[][];\n }\n }\n if (isArray(tableFormat.rowColors)) {\n if (tableFormat.rowColors.length > 0 && isArray(tableFormat.rowColors[0])) {\n tableFormat.rowColors = [\n new Array(longestColumnLength),\n ...tableFormat.rowColors,\n ] as string[][];\n }\n }\n if (isArray(tableFormat.sparklineColors)) {\n tableFormat.sparklineColors = [new Array(longestColumnLength), ...tableFormat.sparklineColors];\n }\n if (isArray(tableFormat.sparklineAreaColors)) {\n tableFormat.sparklineAreaColors = [\n new Array(longestColumnLength),\n ...tableFormat.sparklineAreaColors,\n ];\n }\n if (isArray(tableFormat.sparklineTypes)) {\n tableFormat.sparklineTypes = [\n new Array(longestColumnLength).fill('area'),\n ...tableFormat.sparklineTypes,\n ];\n }\n }\n\n const tableHeader: TableHeader = {\n visibility:\n validHeaderVisibilities.indexOf(headerVisibility as TableHeaderVisibility) >= 0\n ? (headerVisibility as TableHeaderVisibility)\n : 'inline',\n cells: table.map(\n (f, i): TableHeaderCell => {\n if (i < headers.length) {\n return generateHeader(\n headers[i],\n columnIds[i],\n i,\n columnFormat,\n tableFormat,\n showInternalFields\n );\n }\n return generateHeader('', '', i, columnFormat, tableFormat, showInternalFields);\n }\n ),\n style: {\n backgroundColor:\n (has(tableFormat, 'headerBackgroundColor') &&\n isColor(tableFormat.headerBackgroundColor) &&\n tableFormat.headerBackgroundColor) ||\n undefined,\n color:\n (has(tableFormat, 'headerColor') &&\n isColor(tableFormat.headerColor) &&\n tableFormat.headerColor) ||\n undefined,\n },\n };\n\n const tableBody: TableBody = {\n rows: [],\n };\n\n for (let currentRow = 0; currentRow < longestColumnLength; currentRow += 1) {\n const row: TableRow = {\n key: `row-${currentRow}`,\n index: currentRow,\n cells: [],\n };\n\n table.forEach((column, i): void => {\n const currentHeader = tableHeader.cells[i];\n\n const value = validValueSelector(\n getColumnFormatData(columnFormat, currentHeader, currentRow),\n getTableFormatData(tableFormat, i, currentRow),\n column[currentRow],\n ''\n );\n\n const rawValue = column[currentRow];\n\n const rowBackgroundColor =\n getColumnFormatRowBgColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatRowBgColor(tableFormat, i, currentRow) ||\n undefined;\n\n const rowColor =\n getColumnFormatRowColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatRowColor(tableFormat, i, currentRow) ||\n undefined;\n\n const align =\n getColumnFormatAlign(columnFormat, currentHeader, currentRow) ||\n getTableFormatAlign(tableFormat, i, currentRow) ||\n 'left';\n\n const cellType =\n getColumnFormatCellType(columnFormat, currentHeader, currentRow) ||\n getTableFormatCellType(tableFormat, i, currentRow) ||\n 'TextCell';\n\n const sparklineColor =\n getColumnFormatSparklineColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineColor(tableFormat, i, currentRow) ||\n undefined;\n\n const sparklineAreaColor =\n getColumnFormatSparklineAreaColor(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineAreaColor(tableFormat, i, currentRow) ||\n undefined;\n\n const sparklineType =\n getColumnFormatSparklineType(columnFormat, currentHeader, currentRow) ||\n getTableFormatSparklineType(tableFormat, i, currentRow) ||\n 'area';\n\n const key = generateKey(value as string, `${currentRow}-${i}`);\n\n let additionalStyles = {};\n const textOverflowType = getTextOverflowType(columnFormat, columnIds[i], currentHeader.value);\n const textOverflowStyle = getOverflowStyles({\n textOverflow: textOverflowType as TextOverflow,\n });\n additionalStyles = {\n ...additionalStyles,\n ...textOverflowStyle,\n };\n\n let showCell = true;\n if (\n !showInternalFields &&\n currentHeader.value.charAt(0) === '_' &&\n currentHeader.value !== '_time'\n ) {\n showCell = false;\n }\n row.cells.push({\n key,\n value,\n rawValue,\n align,\n cellType,\n rowIndex: currentRow,\n columnIndex: i,\n sparklineColor,\n sparklineAreaColor,\n sparklineType,\n header: currentHeader.value,\n style: {\n backgroundColor: rowBackgroundColor,\n color: rowColor,\n ...additionalStyles,\n },\n showCell,\n });\n });\n\n tableBody.rows.push(row);\n }\n\n return {\n tableHeader,\n tableBody,\n };\n};\n","export * from './SwitchTableCell';\nexport * from './TextCell';\nexport * from './ArrayCell';\nexport * from './SparklineCell';\n","export const SwitchTableCell = ({ type, children }): React.ReactElement =>\n children.filter((child): boolean => child.type.displayName === type);\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport { TableRowCell } from '../hooks';\n\ninterface TextCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n}\nconst noop = () => undefined;\n\nexport const TextCell = ({ cell, useMouseOverEffect }: TextCellProps): React.ReactElement => {\n const cellStyle = React.useMemo(() => ({ ...cell.style }), [cell.style]);\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n data-test-cell-type=\"TextCell\"\n data-test-align-value={cell.align}\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {cell.value.toString()}\n </SUITable.Cell>\n );\n};\n\nTextCell.displayName = 'TextCell';\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport { TableRowCell } from '../hooks';\n\ninterface ArrayCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n}\n\nconst noop = () => undefined;\n\nexport const ArrayCell = ({ cell, useMouseOverEffect }: ArrayCellProps): React.ReactElement => {\n const value = React.useMemo(() => (Array.isArray(cell.value) ? cell.value : [cell.value]), [cell.value]);\n const cellStyle = React.useMemo(() => ({ ...cell.style }), [cell.style]);\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n data-test-align-value={cell.align}\n data-test-cell-type=\"ArrayCell\"\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {value.map(\n (v, i): React.ReactElement => (\n <div\n key={v.toString()}\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n data-array-index={i}\n >\n {v.toString()}\n </div>\n )\n )}\n </SUITable.Cell>\n );\n};\nArrayCell.displayName = 'ArrayCell';\n","import * as React from 'react';\nimport SUITable from '@splunk/react-ui/Table';\nimport SparkLine from '../../SparkLine/SparkLine';\nimport { TableRowCell, TableCellValueType } from '../hooks';\n\ninterface SparklineCellProps {\n cell: TableRowCell;\n useMouseOverEffect: boolean;\n width: number | 'auto';\n}\n\nconst paddingLeftRight = 5;\nconst paddingTopBottom = 3;\n\nconst parseSparklineData = (data: TableCellValueType): (number | null)[] =>\n (Array.isArray(data) ? data : [data])\n .map((d): number => parseInt(d.toString(), 10))\n .map((d): number | null => (isNaN(d) ? null : d)); // eslint-disable-line no-restricted-globals\n\nexport const validSparklineTypes = ['line', 'area'] as const;\nexport type SparklineType = typeof validSparklineTypes[number];\n\nconst noop = () => undefined;\nconst svgStyle = { height: 0 };\nconst dummySVG = <svg style={svgStyle} />;\n\nexport const SparklineCell = ({\n cell,\n useMouseOverEffect,\n width,\n}: SparklineCellProps): React.ReactElement => {\n const [cellEl, setEl] = React.useState<HTMLTableCellElement>();\n const [height, setHeight] = React.useState<number>();\n let data = React.useMemo<number[]>(() => parseSparklineData(cell.value), [cell.value]);\n if (cell.value[0] === '##__SPARKLINE__##') {\n data = data.slice(1);\n }\n\n React.useLayoutEffect(() => {\n setHeight(cellEl?.offsetHeight);\n }, [cellEl]);\n\n const cellStyle = React.useMemo(\n () => ({\n ...cell.style,\n padding: 0,\n margin: 0,\n width,\n height: `${height}px`,\n }),\n [cell.style, width, height]\n );\n\n const lineStyle = React.useMemo(\n () => ({\n paddingLeft: `${paddingLeftRight}px`,\n paddingTop: `${paddingTopBottom}px`,\n width: width === 'auto' ? `${cellEl?.offsetWidth - paddingLeftRight * 2}px` : `${width}px`,\n height: `${height - paddingTopBottom * 2}px`,\n }),\n [height, width, cellEl]\n );\n\n return (\n <SUITable.Cell\n style={cellStyle}\n align={cell.align}\n elementRef={setEl}\n data-test-align-value={cell.align}\n data-test-cell-type=\"SparklineCell\"\n data-row-index={cell.rowIndex}\n data-col-index={cell.columnIndex}\n onClick={useMouseOverEffect ? noop : undefined}\n >\n {height ? (\n <SparkLine\n style={lineStyle}\n data={data}\n width={cellEl?.offsetWidth - paddingLeftRight * 2}\n height={height - paddingTopBottom * 2}\n isArea={cell.sparklineType === 'area'}\n acceptNull\n lineColor={cell.sparklineColor}\n fillColor={cell.sparklineAreaColor}\n />\n ) : (\n dummySVG\n )}\n </SUITable.Cell>\n );\n};\n\nSparklineCell.displayName = 'SparklineCell';\n","module.exports = require(\"lodash/debounce\");","import * as React from 'react';\nimport { camelCase, has, get, defaultsDeep } from 'lodash';\nimport getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\nimport type { TimezoneContextInterface } from '@splunk/visualization-context/TimezoneContext';\nimport TimezoneContext from '@splunk/visualization-context/TimezoneContext';\nimport moment from '@splunk/moment';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport { withTheme } from 'styled-components';\nimport { deepMergeWithArrayPrimitiveOverrides } from '@splunk/visualizations-shared/hocUtils';\nimport { pickFieldFromJSONSchema } from '@splunk/visualizations-shared/JSONSchemaUtils';\nimport AsyncDynamicOptionsEvaluator, {\n AsyncDynamicOptionsEvaluatorParams,\n} from '@splunk/async-dynamic-options-evaluator';\nimport { createGUID } from '@splunk/ui-utils/id';\nimport SplunkVisualization from './SplunkVisualization';\nimport type { DashboardVizProps, DataSource, VizConfig, VizProps } from './interfaces';\nimport { VizBehavior } from './interfaces/VizBehavior';\nimport { getSortingParams } from './hooks/getSorting';\nimport { getPaginationParams } from './hooks/getPagination';\nimport { useDeepMemo } from './hooks/useDeepMemo';\nimport MissingPropsMessage, { missingKeys } from './components/MissingPropsMessage';\nimport withEditModeCover from './hocs/withEditModeCover';\nimport withPlaceholder from './hocs/withPlaceholder';\nimport { ChartingProps } from './Charting';\nimport useDownsampleDataSources from './hooks/useDownsampleDataSources';\nimport { isDownsamplingEnabledForViz } from './utils/dataUtils';\nimport { getFeatureFlag } from '../common/utils/featureFlagUtils';\n\ntype HOC = (props: DashboardVizProps) => React.ReactElement<DashboardVizProps>;\nexport interface DashboardVizOpts {\n ReactViz: React.ComponentType<ChartingProps | VizProps>; // we will wrap this in DashboardViz (see const DashboardViz = ...)\n vizConfig: VizConfig;\n computeVizProps?: (props) => any;\n disableEditModeCover?: boolean;\n useIconPlaceholder?: (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n ) => boolean;\n}\n\n/**\n * hoc that wraps a pure react visualization in a Dashboard visualization\n * @param {DashboardVizOpts} opts\n * @returns {HOC}\n */\nconst withDashboardViz = (opts: DashboardVizOpts): HOC => {\n const {\n ReactViz,\n vizConfig,\n computeVizProps = () => {},\n disableEditModeCover,\n useIconPlaceholder,\n } = opts;\n\n // sanitizing props before sending them to reactviz.\n const SanitizedReactViz = withSanitizedProps(ReactViz);\n const defaultOptions = pickFieldFromJSONSchema(vizConfig.optionsSchema, 'default');\n\n const DashboardViz = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const {\n mode,\n hasEventHandlers,\n dataSources, // type of { [key: string]: DataSource }\n options,\n context = {},\n width,\n height,\n onComputedProps,\n onEventTrigger,\n theme,\n onRequestParamsChange,\n } = props;\n const { serializedTimezone } = React.useContext<TimezoneContextInterface>(TimezoneContext);\n if (serializedTimezone) {\n /*\n @splunk/moment currently does not allow us to customize the timezone on a per visualization basis.\n This ensures that if a timezone was provided via TimezoneContext @splunk/moment time formatting\n will use it.\n\n @TODO(pwied):\n - remove when we moved away from @splunk/moment\n - provide timezone context to dynamic option evaluation phase\n */\n if (!moment.getDefaultSplunkTimezone()) {\n moment.setDefaultSplunkTimezone(serializedTimezone);\n }\n }\n\n const themeFunc = themeVar => vizConfig.themes[themeVar]?.(props);\n const bgColorFromTheme = themeFunc('defaultBackgroundColor');\n const {\n family: currentThemeFamily,\n colorScheme: currentThemeColorScheme,\n density: currentThemeDensity,\n } = getSettingsFromThemedProps({ theme });\n let evaluatedOptions: Opts = {}; // evaluatedOptions need to be initialized as an empty object\n const [evaluatedOptionsAsync, setEvaluatedOptionsAsync] = React.useState({}); // evaluatedOptions need to be initialized as an empty object\n const featureFlagContext = React.useContext<FeatureFlagContext>(FeatureFlagContext);\n\n const [visualizationID] = React.useState(`${vizConfig.name} - ${createGUID()}`);\n\n const [dataSourcesInState, setDataSourcesInState] = React.useState({});\n const [dataFramesInState, setDataFramesInState] = React.useState();\n\n const [useAsyncEvaluatedOptions, setUseAsyncEvaluatedOptions] = React.useState(\n Boolean(getFeatureFlag(featureFlagContext, 'visualizations_useWebWorkersForDSL'))\n );\n const isDownsamplingEnabledByFeatureFlag = Boolean(\n featureFlagContext?.visualizations_enableDownsampling\n );\n\n const isMounted = React.useRef(true);\n const optionsToEvaluate = React.useMemo(\n () => ({\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n }),\n [options, context]\n );\n const [threshold, setThreshold] = React.useState(Number(width));\n const onDownsamplingThresholdChange = React.useCallback((newThreshold: number) => {\n setThreshold(newThreshold);\n }, []);\n const isDownsamplingEnabled = React.useMemo(() => {\n return isDownsamplingEnabledByFeatureFlag && isDownsamplingEnabledForViz({ vizConfig });\n }, [isDownsamplingEnabledByFeatureFlag]);\n\n const downsamplingProps = React.useMemo(() => {\n if (!isDownsamplingEnabled) {\n return {};\n }\n return {\n onDownsamplingThresholdChange,\n originalDataSources: dataSources,\n };\n }, [dataSources, isDownsamplingEnabled, onDownsamplingThresholdChange]);\n const downsampledDataSources = useDownsampleDataSources({\n options: optionsToEvaluate.options,\n context: optionsToEvaluate.context,\n dataSources,\n threshold,\n isDownsamplingEnabled,\n });\n\n evaluatedOptions = useDeepMemo((): Record<string, unknown> => {\n try {\n if (useAsyncEvaluatedOptions) {\n const asyncDynamicOptionsEvaluatorParams: AsyncDynamicOptionsEvaluatorParams = {\n visualizationID,\n props,\n options: optionsToEvaluate,\n dataSources: downsampledDataSources,\n theme: vizConfig.themes,\n bypassCloneDeepOptionScope: Boolean(\n getFeatureFlag(featureFlagContext, 'visualizations_bypassCloneDeepOptionScope')\n ),\n lazyLoadingDataFrame: Boolean(\n getFeatureFlag(featureFlagContext, 'visualizations_lazyLoadingDataFrame')\n ),\n };\n AsyncDynamicOptionsEvaluator.evaluate(asyncDynamicOptionsEvaluatorParams)\n .then(results => {\n setEvaluatedOptionsAsync(results.results);\n })\n .catch(() => {\n if (isMounted.current) {\n setUseAsyncEvaluatedOptions(false);\n }\n });\n } else {\n let dataFrames = dataFramesInState;\n if (downsampledDataSources !== dataSourcesInState) {\n setDataSourcesInState(downsampledDataSources);\n dataFrames = Opts.dataFrameFromDataSource(\n downsampledDataSources,\n getFeatureFlag(featureFlagContext, 'visualizations_lazyLoadingDataFrame')\n );\n setDataFramesInState(dataFrames);\n }\n const result = Opts.evaluate(\n optionsToEvaluate,\n downsampledDataSources,\n themeFunc,\n dataFrames,\n getFeatureFlag(featureFlagContext, 'visualizations_bypassCloneDeepOptionScope')\n );\n return result;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options: ${e.message}`);\n return {};\n }\n return {};\n }, [\n currentThemeFamily,\n currentThemeColorScheme,\n currentThemeDensity,\n optionsToEvaluate,\n downsampledDataSources,\n serializedTimezone,\n useAsyncEvaluatedOptions,\n ]);\n\n const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;\n\n // trellis specific backgroundColor update for onComputedProps\n // if trellis is enabled following these three criteria - 1) trellis feature flag is enabled 2) vizConfig supports array has 'trellis' 3) option 'splitByLayout' is set to 'trellis\n // onComputedProps api should return back trellisBackgroundColor value for backgroundColor option to support coloring of sibling panels (for eg:- title/ description on UDF side)\n const isTrellisFeatureFlagOn = Boolean(\n featureFlagContext && featureFlagContext.visualizations_enableTrellis\n );\n let clonedEvaluatedOptions = evaluatedOptionsToUse;\n if (\n isTrellisFeatureFlagOn &&\n vizConfig?.supports?.includes(VizBehavior.TRELLIS) &&\n clonedEvaluatedOptions?.splitByLayout === VizBehavior.TRELLIS\n ) {\n clonedEvaluatedOptions = {\n ...evaluatedOptionsToUse,\n backgroundColor: clonedEvaluatedOptions?.trellisBackgroundColor,\n };\n }\n // useEffect hook needs to be initialized before any early returns\n // this is in accordance with the order of hook calls being the same on each render https://reactjs.org/docs/hooks-rules.html#explanation\n React.useEffect((): void => {\n onComputedProps(clonedEvaluatedOptions);\n });\n\n React.useEffect((): (() => void) => {\n return () => {\n if (useAsyncEvaluatedOptions) {\n isMounted.current = false;\n AsyncDynamicOptionsEvaluator.reset(visualizationID);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // present warning message if any required props are missing\n const { requiredProps = [], supports } = vizConfig;\n const missing = missingKeys(requiredProps, evaluatedOptionsToUse);\n if (\n missing.length > 0 &&\n supports.includes(VizBehavior.PLACEHOLDER) &&\n vizConfig.key !== 'splunk.singlevalue' // For SV missing props msg is not displayed if required props majorValue is missing, instead this will be handled from the component, instead handled within component\n ) {\n return (\n <MissingPropsMessage\n data-test=\"missing-props-message\"\n width={width}\n height={height}\n missingProps={missing}\n backgroundColor={bgColorFromTheme}\n />\n );\n }\n\n // events\n const eventCallbackProps = {};\n if (hasEventHandlers && mode === 'view' && vizConfig.supports.indexOf(VizBehavior.EVENTS) > -1) {\n const supportedEvents = vizConfig.events;\n Object.keys(supportedEvents).forEach((eventName): void => {\n const { parentKeys, payloadKeys } = supportedEvents[eventName];\n const eventCallbackPropName = camelCase(`on.${eventName}`);\n\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n let payload = {};\n if (Array.isArray(payloadKeys) && payloadKeys.length) {\n payloadKeys.forEach(p => {\n payload[p] = evaluatedOptionsToUse[p];\n });\n }\n\n eventCallbackProps[eventCallbackPropName] = (ev): Record<string, unknown> => {\n if (ev && ev.payload) {\n payload = ev.payload;\n }\n\n return onEventTrigger({ originalEvent: ev, payload, type: eventName });\n };\n\n if (parentKeys) {\n for (let i = parentKeys.length - 1; i >= 0; i -= 1) {\n const newObject = {};\n newObject[parentKeys[i]] = eventCallbackProps[eventCallbackPropName];\n eventCallbackProps[eventCallbackPropName] = newObject;\n }\n }\n });\n }\n\n // compute pure viz props which are not from options\n const computedVizProps = computeVizProps({\n ...props,\n ...evaluatedOptionsToUse,\n ...eventCallbackProps,\n themeFunc,\n });\n\n /**\n * PAGE_AND_SORT behavior\n *\n * Some visualizations, like table, requires metadata about the datasource,\n * like total number of results, current count, offset, and sort, for rendering\n * paginator and sorting direction. In this approach, the visualization\n * allow users to set 'paginateDataSourceKey' to select which datasource\n * should the visualization extract the metadata from. It defaults to 'primary' datasource.\n * The visualization config should set the PAGE_AND_SORT behavior to receive\n * 'requestParams', 'meta' and onRequestParams callback as props.\n *\n * In future, we could automatically detect which all datasources are being used\n * and bind those magically to pagination/sorting behavior.\n */\n let dataSourceMetadata = {};\n const OptionKey = 'paginateDataSourceKey';\n const paginateDataSourceKey =\n (has(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey]) || 'primary';\n if (\n vizConfig.supports.indexOf(VizBehavior.PAGE_AND_SORT) > -1 &&\n has(dataSources, paginateDataSourceKey)\n ) {\n const requestParams = get(dataSources, [paginateDataSourceKey, 'requestParams'], {});\n const meta = get(dataSources, [paginateDataSourceKey, 'meta'], {});\n const handleRequestParamsChange = (payload: Record<string, unknown>): void =>\n onRequestParamsChange(paginateDataSourceKey, payload);\n\n const sortParams = getSortingParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n const paginatorParams = getPaginationParams({\n requestParams,\n meta,\n onRequestParamsChange: handleRequestParamsChange,\n });\n\n dataSourceMetadata = {\n sortParams,\n paginatorParams,\n };\n }\n\n // if were using webworkers and this is the first render we dont want to show a viz with missing data so we return null\n if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {\n return null;\n }\n\n return (\n <SanitizedReactViz\n mode={mode}\n width={width}\n height={height}\n {...downsamplingProps}\n {...evaluatedOptionsToUse}\n {...computedVizProps}\n {...eventCallbackProps}\n {...dataSourceMetadata}\n />\n );\n };\n\n DashboardViz.propTypes = {\n ...SplunkVisualization.propTypes,\n ...ReactViz.propTypes,\n };\n\n DashboardViz.defaultProps = {\n ...SplunkVisualization.defaultProps,\n ...ReactViz.defaultProps,\n // using withTheme requires component to receive theme prop. In case the consumer did not provide ThemeProvider, a default empty object will prevent warnings.\n theme: {},\n };\n // attach viz config\n DashboardViz.config = vizConfig;\n\n // @ts-ignore: TODO fix sc upgrade TS issues\n return withTheme(\n withPlaceholder(withEditModeCover(DashboardViz, disableEditModeCover), useIconPlaceholder)\n );\n};\n\nexport default withDashboardViz;\n","module.exports = require(\"@splunk/themes/getSettingsFromThemedProps\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","module.exports = require(\"@splunk/moment\");","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","module.exports = require(\"@splunk/async-dynamic-options-evaluator\");","/* eslint-disable react/no-unused-prop-types,react/prefer-stateless-function */\nimport * as T from 'prop-types';\nimport { noop } from 'lodash';\nimport { DashboardVizProps } from './interfaces/DashboardVizProps';\nimport { DefaultVizActionHandler } from './interfaces/VizActionHandler';\n\n// this is identical to the initial height and width we use in BaseVisualization in dashboard-visualizations\nexport const INITIAL_WIDTH = 250;\nexport const INITIAL_HEIGHT = 250;\n\n/**\n * A Splunk visualization\n */\nclass SplunkVisualization {\n static propTypes: Record<keyof DashboardVizProps, T.Validator<any>> = {\n /**\n * display mode\n */\n mode: T.oneOf(['view', 'edit', 'export']).isRequired,\n /**\n * width in pixel or string, defaults to 100%\n */\n width: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * height in pixel or string\n */\n height: T.oneOfType([T.string, T.number]).isRequired,\n /**\n * visualization context used for dynamic option evaluation\n */\n context: T.object,\n /**\n * visualization formatting options\n */\n options: T.object,\n /**\n * A callback to update formatting options\n */\n onOptionsChange: T.func,\n /**\n * datasource state which include data and request params, object key indicate the datasource type.\n */\n dataSources: T.objectOf(\n T.shape({\n /**\n * current request params\n */\n requestParams: T.object,\n /**\n * current dataset\n */\n data: T.shape({\n fields: T.array,\n columns: T.array,\n }),\n /**\n * error\n */\n error: T.shape({\n level: T.string,\n message: T.string,\n }),\n /**\n * meta data that came with the dataset\n */\n meta: T.object,\n })\n ),\n /**\n * A callback to trigger event\n */\n onEventTrigger: T.func,\n /**\n * Inform viz if there are handlers listening to events\n */\n hasEventHandlers: T.bool,\n /**\n * A callback to communicate computed props to a consumer\n */\n onComputedProps: T.func,\n /**\n * A callback to obtain visualization api\n */\n vizActionHandlerRef: T.func,\n\n loading: T.bool,\n theme: T.object,\n /**\n * A callback to request new data with updated request params\n */\n onRequestParamsChange: T.func,\n };\n\n /**\n *\n */\n static defaultProps: DashboardVizProps = {\n // BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height\n width: '100%',\n height: INITIAL_HEIGHT,\n dataSources: {},\n onEventTrigger: (): Record<string, unknown> => ({}),\n mode: 'view',\n hasEventHandlers: false,\n options: {},\n context: {},\n onOptionsChange: (): Record<string, unknown> => ({}),\n vizActionHandlerRef: (): DefaultVizActionHandler => new DefaultVizActionHandler(),\n onComputedProps: (): Record<string, unknown> => ({}),\n loading: false,\n onRequestParamsChange: noop,\n };\n}\n\nexport default SplunkVisualization;\n","import { useRef } from 'react';\nimport { isEqual } from 'lodash';\n\n/**\n * This hook evaluates and stores the result of a passed function and only\n * re-evaluates the function when passed dependencies change.\n *\n * It is different from the internal React useMemo in the following aspects:\n * - it only stores the last evaluated result\n * - it uses a deep equality check to determine if dependencies have changed\n *\n * Inspired by apollo-client's useDeepMemo\n *\n * @param fn the function to be executed and\n * @param dependencies an array of dependencies\n */\nexport const useDeepMemo = <FnReturnType, DepType>(\n fn: () => FnReturnType,\n dependencies: DepType\n): FnReturnType => {\n const ref = useRef<{ dependencies: DepType; value: FnReturnType }>();\n if (!ref.current || !isEqual(dependencies, ref.current.dependencies)) {\n ref.current = {\n dependencies,\n value: fn(),\n };\n }\n return ref.current.value;\n};\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Message from '@splunk/visualizations-shared/Message';\nimport withFixedSizeContainer from '../hocs/FixedSizeContainer';\n\n/**\n * @method isMissing\n * @param {any} v\n * @returns {boolean} true if the input value === null or undefined\n */\nexport const isMissing = (v): boolean => {\n return v === null || v === undefined;\n};\n\n/**\n * @method misskingKeys\n * @param {string[]} keys\n * @param {object} target\n * @returns {string[]} the keys of missing required props\n */\nexport const missingKeys = (keys: string[], target: Record<string, unknown>): string[] =>\n keys.filter(k => isMissing(target[k]));\n\nexport interface MissingPropsProps {\n width?: string | number;\n height?: string | number;\n missingProps: string[];\n backgroundColor?: string;\n}\n\nconst propTypes: Record<keyof MissingPropsProps, T.Validator<any>> = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n backgroundColor: T.string,\n missingProps: T.arrayOf(T.string),\n};\n\n/**\n * @method MissingPropsMessage\n * @param {MissingPropsProps} props\n * @returns {React.ReactElement}\n */\nexport const MissingPropsMessage = (props: MissingPropsProps): React.ReactElement => {\n const { width, height, missingProps } = props;\n return (\n <Message\n data-test=\"message\"\n width={width}\n height={height}\n message={_(`Missing property: ${missingProps.join(', ')}`)}\n />\n );\n};\n\nMissingPropsMessage.propTypes = propTypes;\nMissingPropsMessage.defaultProps = {\n width: '100%',\n height: 250,\n};\nexport default withFixedSizeContainer(MissingPropsMessage);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\n// Global provided via webpack\n// eslint-disable-next-line no-underscore-dangle\ndeclare const __VISION_VERSION__: string;\n\nconst Cover = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n`;\n\nconst Blocker = styled.div.attrs({\n 'data-splunk-visualization-version': __VISION_VERSION__,\n})`\n position: relative;\n width: 100%;\n height: 100%;\n`;\n\n/**\n * HOC that renders a cover layer in edit mode\n * @method withEditModeCover\n * @param {ExtendedDashViz} Visualization\n * @returns {ExtendedDashViz} Wrapper\n */\nconst withEditModeCover = (\n Visualization: ExtendedDashViz,\n disableEditModeCover?: boolean\n): ExtendedDashViz => {\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { mode } = props;\n const showEditCover = mode === 'edit' && !disableEditModeCover;\n\n return (\n <Blocker>\n <Visualization {...props} />\n {showEditCover && <Cover data-test=\"edit-mode-cover\" />}\n </Blocker>\n );\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withEditModeCover;\n","import * as React from 'react';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport variables from '@splunk/themes/variables';\nimport IconPlaceholder, { shouldShowIconPlaceholder } from '../components/IconPlaceholder';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { DashboardVizProps } from '../interfaces/DashboardVizProps';\nimport { DataSource } from '../interfaces/DataSource';\nimport { ExtendedDashViz } from '../interfaces/ExtendedDashViz';\nimport { extendStaticWrapperProps } from '../utils/hocUtils';\n\ntype useIconPlaceholderType = (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n) => boolean;\n\nconst withPlaceholder = (\n Visualization: ExtendedDashViz,\n useIconPlaceholder: useIconPlaceholderType = shouldShowIconPlaceholder\n): ExtendedDashViz => {\n const { config } = Visualization;\n const { themes } = config;\n\n const Wrapper = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const { dataSources, loading, options, height, width } = props;\n\n const showPlaceholder = useIconPlaceholder(dataSources, loading, options);\n const bgColorFromTheme = isColor(options?.backgroundColor)\n ? options?.backgroundColor\n : themes?.defaultBackgroundColor?.(props);\n\n const icon = config.placeholderIcon ?? config.icon;\n const iconColor = variables.contentColorActive(props);\n\n if (config.supports.includes(VizBehavior.PLACEHOLDER) && showPlaceholder) {\n return (\n <IconPlaceholder\n data-test=\"icon-placeholder\"\n icon={icon}\n width={width}\n height={height}\n backgroundColor={bgColorFromTheme}\n iconColor={iconColor}\n />\n );\n }\n\n return <Visualization {...props} />;\n };\n extendStaticWrapperProps({ Wrapper, Visualization });\n return Wrapper as ExtendedDashViz;\n};\n\nexport default withPlaceholder;\n","import { useRef, useMemo, useEffect, useState } from 'react';\nimport { debounce, isEqual } from 'lodash';\nimport type { DashboardVizProps } from '../interfaces';\nimport type { DownsampleOptions } from '../utils/dataUtils';\nimport { downsampleDataSources } from '../utils/dataUtils';\nimport usePrevious from './usePrevious';\nimport useGetXAndYFields from './useGetXAndYFields';\n\nconst useDownsampleDataSources = ({\n dataSources,\n options,\n context,\n threshold,\n isDownsamplingEnabled,\n}: Pick<DashboardVizProps, 'dataSources' | 'options' | 'context'> & {\n threshold: number;\n isDownsamplingEnabled?: boolean;\n}) => {\n const isFirstUseEffectCall = useRef(true);\n\n const xAndYFieldsWithTypes = useGetXAndYFields({\n shouldEvaluateDSL: isDownsamplingEnabled,\n options,\n context,\n dataSources,\n });\n const previousXAndYFieldsWithTypes = usePrevious(xAndYFieldsWithTypes);\n const previousDataSources = usePrevious(dataSources);\n const previousThreshold = usePrevious(threshold);\n\n const [downsampledDataSources, setDownsampledDataSources] = useState(() => {\n return isDownsamplingEnabled\n ? downsampleDataSources({\n dataSources,\n threshold,\n options: xAndYFieldsWithTypes,\n })\n : dataSources;\n });\n\n const debouncedDownsampleDataSources = useMemo(() => {\n return debounce(\n (downsampleOptions: DownsampleOptions) => {\n const downsampledResult = downsampleDataSources(downsampleOptions);\n setDownsampledDataSources(downsampledResult);\n },\n 100,\n { trailing: true }\n );\n }, []);\n\n useEffect(() => {\n // don't downsample again on the use effect call that happened due to the initial render\n // this is since we already downsampled as part of the useState call\n if (isFirstUseEffectCall.current) {\n isFirstUseEffectCall.current = false;\n return;\n }\n\n if (!isDownsamplingEnabled) {\n setDownsampledDataSources(dataSources);\n return;\n }\n\n if (\n isEqual(previousXAndYFieldsWithTypes, xAndYFieldsWithTypes) &&\n previousDataSources === dataSources &&\n previousThreshold === threshold\n ) {\n return;\n }\n\n // Debounce the downsampling so we don't have to downsample and execute DSL multiple times\n // while the viz is being resized\n debouncedDownsampleDataSources({\n dataSources,\n options: xAndYFieldsWithTypes,\n threshold,\n });\n\n // need to detect if this runs as part of the initial render\n }, [\n dataSources,\n debouncedDownsampleDataSources,\n xAndYFieldsWithTypes,\n threshold,\n isDownsamplingEnabled,\n previousXAndYFieldsWithTypes,\n previousDataSources,\n previousThreshold,\n ]);\n\n return downsampledDataSources;\n};\n\nexport default useDownsampleDataSources;\n","import { useMemo } from 'react';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport type { DashboardVizProps } from '../interfaces';\n\n/**\n * Hook that evaluates the DSL for subset of a viz's options needed to determine\n * its x and y fields as well as the types of all its fields.\n */\nconst useGetXAndYFields = ({\n shouldEvaluateDSL,\n options,\n context,\n dataSources,\n}: Pick<DashboardVizProps, 'dataSources' | 'options' | 'context'> & { shouldEvaluateDSL: boolean }) => {\n const { dataSourcesWithOnlyOnePoint, dataFrameWithOnlyOnePoint } = useMemo(() => {\n if (!shouldEvaluateDSL) {\n return {\n dataSourcesWithOnlyOnePoint: null,\n dataFrameWithOnlyOnePoint: null,\n };\n }\n\n if (!dataSources?.primary?.data?.columns?.length) {\n return {\n dataSourcesWithOnlyOnePoint: null,\n dataFrameWithOnlyOnePoint: null,\n };\n }\n const { primary: primaryDS } = dataSources;\n\n const columnsWithOnlyOnePoint = primaryDS.data.columns.map(column => {\n return [column[0]];\n });\n\n const filteredDataSources = {\n primary: {\n ...primaryDS,\n data: {\n ...primaryDS.data,\n columns: columnsWithOnlyOnePoint,\n },\n },\n };\n\n return {\n dataSourcesWithOnlyOnePoint: filteredDataSources,\n dataFrameWithOnlyOnePoint: Opts.dataFrameFromDataSource(filteredDataSources),\n };\n }, [dataSources, shouldEvaluateDSL]);\n\n const xAndYFieldsWithTypes = useMemo(() => {\n try {\n if (!dataSourcesWithOnlyOnePoint || !dataFrameWithOnlyOnePoint) {\n return options;\n }\n\n if (!options?.x || (!options?.y && !options?.y2)) {\n return options;\n }\n\n const optionsToEvaluate = {\n x: options.x,\n xField: '> x | getField()',\n y: options.y,\n yFields: options.y ? '> y | getField()' : undefined,\n y2: options.y2,\n y2Fields: options.y2 ? '> y2 | getField()' : undefined,\n fieldTypes: '> primary | getType()',\n };\n\n const { xField = '', yFields = [], y2Fields = [], fieldTypes } = Opts.evaluate(\n { options: optionsToEvaluate, context },\n dataSourcesWithOnlyOnePoint,\n () => {},\n dataFrameWithOnlyOnePoint\n );\n return {\n xField,\n yFields: [...yFields, ...y2Fields],\n fieldTypes,\n };\n } catch (e) {\n return {\n xField: undefined,\n yFields: [],\n fieldTypes: [],\n };\n }\n }, [options, context, dataSourcesWithOnlyOnePoint, dataFrameWithOnlyOnePoint]);\n\n return xAndYFieldsWithTypes;\n};\n\nexport default useGetXAndYFields;\n","import * as React from 'react';\nimport FeatureFlags from '@splunk/visualization-context/FeatureFlags';\n\nexport const getFeatureFlag = (context: React.Context<any> | null | undefined, flagName: string): boolean => {\n // look for feature flag in context first\n if (context && Object.keys(context).find(key => key === flagName)) {\n return context[flagName];\n }\n\n // fall back to defaults\n if (Object.keys(FeatureFlags).find(key => key === flagName)) {\n return FeatureFlags[flagName];\n }\n\n // fall back to false\n return false;\n};\n","module.exports = require(\"@splunk/visualization-context/FeatureFlags\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@babel/runtime/helpers/taggedTemplateLiteral\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");"],"sourceRoot":""}