@splunk/visualizations 25.7.0 → 25.7.2

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"lodash\"","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualization-context/FeatureFlagContext\"","webpack:///external \"@splunk/visualizations-shared/configUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/visualizations-shared/hocUtils\"","webpack:///external \"@splunk/visualizations-shared/JSONSchemaUtils\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///external \"@splunk/ui-utils/id\"","webpack:///./src/common/hooks/getSorting.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 \"@splunk/moment\"","webpack:///external \"@splunk/async-dynamic-options-evaluator\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/DataSource.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:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-color-palettes/editors/PresetPalettes\"","webpack:///./src/common/components/VizStyleWrapper.jsx","webpack:///./src/common/editorConfig/StaticBackgroundColorEditor.js","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.tsx","webpack:///./src/ChoroplethSvg/ChoroplethSvg.tsx","webpack:///external \"@splunk/visualization-context/ImageContext\"","webpack:///external \"@splunk/visualizations-shared/FileDownloader\"","webpack:///external \"@splunk/visualizations-shared/Downloader\"","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.tsx","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/SvgMutator.ts","webpack:///external \"xpath\"","webpack:///external \"@xmldom/xmldom\"","webpack:///external \"jexl\"","webpack:///./src/ChoroplethSvg/config.ts"],"names":["VizStyleWrapper","dataTestKey","props","StaticBackgroundColorEditor","label","_","option","editor","showEditor","options","isDynamicOption"],"mappings":"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","file":"ChoroplethSvg.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 = 181);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"lodash\");","module.exports = require(\"styled-components\");","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(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","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","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\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","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(\"@splunk/visualizations-shared/configUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","module.exports = require(\"@splunk/visualizations-shared/hocUtils\");","module.exports = require(\"@splunk/visualizations-shared/JSONSchemaUtils\");","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 });\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","module.exports = require(\"@splunk/ui-utils/id\");","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","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, cloneDeep } 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 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\nconst UUID = createGUID();\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(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\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} - ${UUID}`);\n\n const [useAsyncEvaluatedOptions, setUseAsyncEvaluatedOptions] = React.useState(\n Boolean(\n featureFlagContext &&\n featureFlagContext.visualizations_useWebWorkersForDSL &&\n typeof Worker !== 'undefined'\n )\n );\n\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(e => {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options - async: ${e.message}`);\n setUseAsyncEvaluatedOptions(false);\n });\n } else {\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc\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 const clonedEvaluatedOptions = cloneDeep(evaluatedOptionsToUse);\n if (\n isTrellisFeatureFlagOn &&\n vizConfig?.supports?.includes(VizBehavior.TRELLIS) &&\n clonedEvaluatedOptions?.splitByLayout === VizBehavior.TRELLIS\n ) {\n clonedEvaluatedOptions.backgroundColor = clonedEvaluatedOptions?.trellisBackgroundColor;\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 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 eventCallbackPropName = camelCase(`on.${eventName}`);\n eventCallbackProps[eventCallbackPropName] = null;\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n const { payloadKeys } = supportedEvents[eventName];\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 }\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 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(\"@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 { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\nexport interface Meta {\n totalCount: number;\n sid: string;\n app: string;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\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 { 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","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-color-palettes/editors/PresetPalettes\");","import styled from 'styled-components';\n\nconst VizStyleWrapper = styled.div.attrs(({ dataTestKey }) => ({\n 'data-test': dataTestKey,\n}))`\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: ${props => props.backgroundColor};\n`;\n\nVizStyleWrapper.displayName = 'VizStyleWrapper';\n\nexport default VizStyleWrapper;\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticBackgroundColorEditor = {\n label: _('Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.backgroundColor),\n};\n\nexport default StaticBackgroundColorEditor;\n","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","import * as React from 'react';\nimport { isEqual } from 'lodash';\nimport { SvgMutator } from './SvgMutator';\n\n/**\n * An instruction on how to perform animation via timed mutations of an SVG document\n */\nexport interface AnimationProps {\n /**\n * The ms with which to delay between binding rows of splunk data into the svg document via mutation. By inserting a delay between successive mutations, an animation effect is created.\n */\n delayMS: number;\n /**\n * Tells whether or not to loop the animation, or just do it once.\n */\n\n loop: boolean;\n}\n\n/**\n * An xPath which identifies which attributes to change in an SVG document, and a replacement value for said attributes. JEXL expressions are\n * used for the xPath and the value. The expressions may access any fields of the PureChoroplethSvgProps's data, as well as a special field\n * called '$i' whose value will be the ordinal (zero based) of the row of data currently being bound to the SVG.\n */\nexport interface SvgAttributeBinding {\n /**\n * A JEXL expression which, when evaluated, will yield an XPath which identifies one or more attributes in an svg document\n */\n xPath: string;\n /**\n * A JEXL expression which, when evaluated, will yield a value that will be used to replace the attribute values indicated by the xPath field\n */\n value: string;\n}\n\n/**\n * The Viz's react properties\n */\nexport interface SvgChoroplethDynamicProps {\n /**\n * An svg document in the form of a string\n */\n svg: string; // literal SVG\n /**\n * An object whose fields will all be added to the JEXL context, and consequently can be referenced from the JEXL expressions in the dataBinding. The fields of the object must be arrays of strings representing data 'columns'.\n */\n data?: { [key: string]: (string | number)[] };\n /**\n * An array of SvgAttributeDataBindings that will all be applied via JEXL to extract values from the data, and mutate attributes of the SVG with said values. The data object is added to the JEXL context.\n */\n dataBinding?: SvgAttributeBinding[]; // each DataBinding is an instruction on how splunk data should affect the SVG\n /**\n * If present causes the dataBindings to animate one at a time, rather than to be all computed en-mass and applied a single mutation\n */\n animation?: AnimationProps;\n /**\n * Width of the SVG document\n */\n width?: number;\n /**\n * height of the SVG document\n */\n height?: number;\n onAreaClick?: (...args: any[]) => void;\n}\n\ninterface SvgChoroplethState {\n svgNode: React.ReactNode;\n}\n\n/**\n * This react component simply take an SVG document, and mutates it by applying data to the document according to\n * dataBindings. The data (data prop) is processed by performing the mutation once for each 'row' of the data even though the data is formatted as columns.\n * If the data looks like {foo:['a', 'b', 'c'], bar:['x', 'y', 'z']} then mutation is performed three times, since the data has three rows.\n * The special $i variable is incremented for each row processed.\n * The first mutation has $i=0, the second has $1=1, the third has $i=2.\n * This allows for JEXL expressions to access the data in a row-like fashion via expressions such as 'foo[$i] + bar[$i]' which will return \"ax\" for the first row mutation, \"by\" for the second, and \"cz\" for the third mutation\n */\nexport default class SvgChoroplethDynamic extends React.Component<\n SvgChoroplethDynamicProps,\n SvgChoroplethState\n> {\n node: Node;\n\n public static defaultProps = {\n svg: '',\n };\n\n constructor(props, context) {\n super(props, context);\n this.state = { svgNode: null };\n this.node = null;\n }\n\n componentDidMount(): void {\n this.mutate();\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n return (\n nextProps.svg !== this.props.svg ||\n !isEqual(nextProps.data, this.props.data) || // must do deep equal on data because when no data is passed we do 'let data = { featureIDs: [], values: [], fill: [] };' in ChoroplethSVG which looks to react like different data every time\n nextState.svgNode !== this.state.svgNode ||\n !isEqual(nextProps.width, this.props.width) ||\n !isEqual(nextProps.height, this.props.height)\n );\n }\n\n componentDidUpdate(prevProps: Readonly<SvgChoroplethDynamicProps>): void {\n if (\n prevProps.svg !== this.props.svg ||\n !isEqual(prevProps.data, this.props.data) ||\n !isEqual(prevProps.width, this.props.width) ||\n !isEqual(prevProps.height, this.props.height)\n ) {\n this.mutate();\n }\n }\n\n componentWillUnmount() {\n if (this.node) {\n this.node.removeEventListener('areaClick', this.handleAreaClick);\n }\n }\n\n handleAreaClick = (ev: CustomEvent): void => {\n if (typeof this.props.onAreaClick === 'function') {\n this.props.onAreaClick({ ...ev, payload: ev.detail });\n }\n };\n\n areaClickRef = (node: Node): void => {\n if (!node) {\n return;\n }\n\n node.addEventListener('areaClick', (ev: CustomEvent) => this.handleAreaClick(ev));\n this.node = node;\n };\n\n mutate(): void {\n const { svg } = this.props;\n if (svg) {\n const m = new SvgMutator(this.props);\n try {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n this.setState({ svgNode: m.mutate() });\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n render(): JSX.Element {\n const { width = '100%', height = '100%' } = this.props;\n const { svgNode } = this.state;\n if (svgNode) {\n return (\n <div style={{ width, height }} ref={this.areaClickRef}>\n {svgNode}\n </div>\n );\n }\n return null;\n }\n}\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport ImageContext from '@splunk/visualization-context/ImageContext';\nimport { FileDownloader } from '@splunk/visualizations-shared/FileDownloader';\nimport { URLDownloader, ImageRegistryFetcher, IDownloader } from '@splunk/visualizations-shared/Downloader';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureChoroplethSvgComponent from './PureChoroplethSvg/PureChoroplethSvg';\nimport SvgChoroplethDynamic from './PureChoroplethSvg/SvgChoroplethDynamic';\nimport vizConfig from './config';\nimport { DataSource } from '../common/interfaces/DataSource';\nimport { shouldShowIconPlaceholder } from '../common/components/IconPlaceholder';\n\nexport const config = vizConfig;\nexport const PureChoroplethSvg = PureChoroplethSvgComponent;\n// todo: need remove when deleting @splunk/react-visualizations package\nexport const PureSvgChoroplethDynamic = SvgChoroplethDynamic;\n/**\n * This function generates the protocol handlers\n * by default, svg supports data and local handler\n * if feature flag enableSvgHttpDownloader is turned on, then http and https also added into handlers\n * @param {FeatureFlagContext} featureFlagContext\n * @param {ImageContext} imageContext\n * @returns {object}\n */\nexport const createProtocolHandlers = (\n featureFlagContext: FeatureFlagContext = {},\n imageContext: ImageContext\n): { [key: string]: IDownloader } => {\n const handlers: Record<string, any> = {\n data: new URLDownloader(),\n };\n if (imageContext) {\n imageContext.listProviders().forEach(({ type }): void => {\n handlers[type] = new ImageRegistryFetcher(imageContext);\n });\n }\n const { enableSvgHttpDownloader } = featureFlagContext;\n if (enableSvgHttpDownloader) {\n handlers.http = new URLDownloader();\n handlers.https = new URLDownloader();\n }\n\n return handlers;\n};\n\nconst ChoroplethSvg = ({ ...props }) => {\n const { svg } = props;\n // note that the FileDownloader will just immediately pass through literal (non-url) content in the case that\n // the svg argument is not a url.\n return (\n <ImageContext.Consumer>\n {(imageContext: ImageContext): React.ReactElement => (\n <FeatureFlagContext.Consumer>\n {(featureFlagContext: FeatureFlagContext): React.ReactElement => (\n <FileDownloader\n url={svg}\n protocolHandlers={createProtocolHandlers(featureFlagContext, imageContext)}\n renderContent={(svgString: string): React.ReactElement => {\n const pureVizProps = { ...props, svg: svgString };\n return <PureChoroplethSvg {...pureVizProps} />;\n }}\n />\n )}\n </FeatureFlagContext.Consumer>\n )}\n </ImageContext.Consumer>\n );\n};\n\nChoroplethSvg.propTypes = {\n svg: T.string,\n};\n\nexport function useIconPlaceholder(\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n): boolean {\n const svg = get(options, 'svg');\n const missingData = shouldShowIconPlaceholder(dataSources, loading);\n return missingData && !svg;\n}\n\nconst platformViz = withDashboardViz({\n ReactViz: ChoroplethSvg,\n vizConfig,\n useIconPlaceholder,\n} as DashboardVizOpts);\n// (platformViz as any).defaultProps.width = '100%';\n// (platformViz as any).defaultProps.height = '100%';\nexport default platformViz;\n","module.exports = require(\"@splunk/visualization-context/ImageContext\");","module.exports = require(\"@splunk/visualizations-shared/FileDownloader\");","module.exports = require(\"@splunk/visualizations-shared/Downloader\");","import * as React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport { pick, omit } from 'lodash';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport SvgChoroplethDynamic, { AnimationProps } from './SvgChoroplethDynamic';\nimport VizStyleWrapper from '../../common/components/VizStyleWrapper';\n\nconst Container = styled.div<{\n height: number;\n width: number;\n}>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nconst ChoroplethSvgWrapper = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n`;\n\ninterface PureChoroplethSvgProps {\n width?: number;\n height?: number;\n svg: string;\n backgroundColor?: string;\n areaIds?: string[];\n areaColors?: string[];\n areaValues?: (string | number)[];\n animation?: AnimationProps;\n onAreaClick?: (...args: any[]) => void;\n}\n\nexport const computeSvgDynamicProps = ({ ...props }) => {\n const data = {\n featureIDs: props.areaIds || [],\n values: props.areaValues || [],\n fill: props.areaColors || [],\n };\n // current implementation is limited to only setting the fill attribute\n const dataBinding = [\n {\n xPath: \"'//*[@id=\\\"'+featureIDs[$i]+'\\\"]/@fill'\", // fixme todo move to DO as \"xPath: areadIds | prepefix(`//*[@id=\"`)| suffix(`\"/@fill`) > \"\n value: 'fill[$i]',\n },\n ];\n return {\n ...omit(props, ['areaIds', 'areaValues', 'areaColors']),\n data,\n dataBinding,\n };\n};\n\nconst PureChoroplethSvg = ({ ...props }: PureChoroplethSvgProps) => {\n const { width, height, backgroundColor } = props;\n\n const renderVisualization = ({ width: containerWidth, height: containerHeight }) => {\n const svgProps = computeSvgDynamicProps({\n ...props,\n width: containerWidth,\n height: containerHeight,\n });\n return (\n <VizStyleWrapper backgroundColor={backgroundColor} dataTestKey=\"ChoroplethSvgWrapper\">\n <SvgChoroplethDynamic {...svgProps} />\n </VizStyleWrapper>\n );\n };\n return (\n <Container width={width} height={height}>\n <ChoroplethSvgWrapper>\n <SizeAwareWrapper>\n {containerDimension => renderVisualization(containerDimension)}\n </SizeAwareWrapper>\n </ChoroplethSvgWrapper>\n </Container>\n );\n};\n\nPureChoroplethSvg.defaultProps = {\n width: '100%',\n height: 250,\n onAreaClick: () => {},\n};\n\nexport default withTheme(PureChoroplethSvg as any);\n","/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport * as XPath from 'xpath';\nimport { DOMParser, XMLSerializer } from '@xmldom/xmldom';\nimport * as jexl from 'jexl';\nimport { SvgChoroplethDynamicProps, SvgAttributeBinding } from './SvgChoroplethDynamic';\n\n/**\n * An error message indicating that a mutation has attempted to target anything other than SVG attribute(s)\n * @type {string}\n */\nexport const ERROR_NON_ATTRIBUTE_MUTATION = 'mutations only allowed on attribute nodes';\n\n/**\n * This class takes columnar data and mutates an SVG document by applying rules defined in DataBindings. This class\n * includes capability to place delays between the mutations such that the data can be animated \"row by row\" with definable\n * animation delays. This class parses an SVG document into an internal dom (NOT THE BROWSER DOM), which is then\n * converted into a ReactNode.\n */\nexport class SvgMutator {\n private svgDoc: XMLDocument;\n\n private props: SvgChoroplethDynamicProps;\n\n /**\n * parses the svg and stores the parsed Document in a local field. Keeps a copy of the props.\n * @param {SvgChoroplethDynamicProps} props\n */\n constructor(props: SvgChoroplethDynamicProps) {\n const { svg } = props;\n this.svgDoc = new DOMParser().parseFromString(svg);\n this.props = { ...props };\n }\n\n /**\n * Applies all data mutations on a clone of this.svgDoc and returns a ReactNode\n * suitable for displaying the mutated content. Includes callback that can be used to get the actual\n * dom node.\n * @param {(node: Node) => void} refCallback\n * @returns {React.ReactNode}\n */\n mutate(refCallback: (node: Node) => void = () => {}): React.ReactElement {\n const content: Node = this.applyMutations(this.svgDoc);\n return SvgMutator.getSandboxedIframe(refCallback, content, this.props);\n }\n\n /**\n * This method forms a JEXL context from the data, and a special '$i' variable which tells which row is being processed.\n * The context is passed to JEXL which is used to find the XPathResult which we consider as \"hits\" in the search of the\n * SVG for attributes to mutate. Once we have these 'found' attribute hits, we mutate each one.\n * @param dataBinding\n * @param data\n * @param {number} i\n * @param {Node} target\n */\n private static applyMutation(dataBinding, data, i: number, target: Node): void {\n const { xPath } = dataBinding;\n if (!xPath) {\n throw new Error('xPath property not defined');\n }\n // use xpath expression to seek out places to make changes\n const hits = SvgMutator.evaluateXPath(xPath, target, { ...data, $i: i });\n\n let hit;\n for (hit = hits.iterateNext(); hit; hit = hits.iterateNext()) {\n SvgMutator.mutateNode(hit, dataBinding, data, i);\n }\n }\n\n /**\n * Clones the prototypical Node, applies all data mutations to the cloned target, and returns the mutated clone\n * @param {Node} prototypicalNode\n * @returns {Node}\n */\n private applyMutations(prototypicalNode: Node): Node {\n const { dataBinding, data } = this.props;\n const target = prototypicalNode.cloneNode(true);\n if (data) {\n const anyKey = Object.keys(data)[0];\n const len = data[anyKey].length;\n for (let i = 0; i < len; i += 1) {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n dataBinding.forEach(db => SvgMutator.applyMutation(db, data, i, target));\n }\n }\n return target;\n }\n\n /**\n *\n * @param {(node: Node) => void} refCallback called with actual iframe node in real DOM\n * @param {Node} node\n * @param width\n * @param height\n * @returns {React.ReactElement}\n */\n private static getSandboxedIframe(\n refCallback: (node: Node) => void, // fixme get rid of?\n node: Node,\n currentProps: any\n ): React.ReactElement {\n const svgNode: Node = SvgMutator.getSvgElementFromDoc(node);\n (svgNode as Element).setAttribute('width', currentProps.width || '100%');\n (svgNode as Element).setAttribute('height', currentProps.height || '100%');\n const NONCE = window.crypto.getRandomValues(new Uint32Array(4)).join('');\n const PARENT_ID = window.crypto.getRandomValues(new Uint32Array(4)).join('');\n const html = SvgMutator.getIframeHtml(NONCE, PARENT_ID, svgNode);\n /**\n * In the previous implementation, we encoded the html into base64 format and constructed a Data URI from it,\n * but Chrome has a size limit of 2MB for Data URIs, therefore SVGs of size > 2MB do not render (https://splunk.atlassian.net/browse/SCP-54560)\n * Alternatively, Chrome has a higher size limit for Blobs (500Mib? - https://source.chromium.org/chromium/chromium/src/+/main:storage/browser/blob/README.md)\n * and we can create Blob URLs via URL.createObjectURL(), using the URL API together with blobs via the File API\n */\n const blob = new Blob([html], { type: 'text/html' });\n const blobURL = URL.createObjectURL(blob);\n const iframe = React.createElement('iframe', {\n src: blobURL,\n style: {\n position: 'absolute',\n height: '100%',\n width: '100%',\n margin: '0',\n padding: '0',\n pointerEvents: 'auto', // if this isn't 'none' it absorbs all pointer events and none get to enclosing div (credit @hwerner)\n },\n frameBorder: 0,\n sandbox: 'allow-scripts',\n id: 'svgChoroplethIframe',\n });\n let intervalID = null;\n let messageListener = null;\n return React.createElement(\n 'div',\n {\n style: {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n position: 'absolute',\n },\n id: 'svgDiv',\n ref: div => {\n if (!div) {\n // called on unmount\n SvgMutator.removeIframeEventListener(div, messageListener, intervalID, refCallback);\n if (blobURL) {\n URL.revokeObjectURL(blobURL);\n }\n return;\n }\n messageListener = SvgMutator.createIframeMessageListener(NONCE, intervalID, div);\n window.addEventListener('message', messageListener);\n function sendSetupMessage() {\n const svgIframe = div.querySelector('#svgChoroplethIframe') as HTMLIFrameElement;\n // send single message to iframe content so that content can \"learn\" the targetOrigin for it's reply messages\n if (svgIframe) {\n svgIframe.contentWindow.postMessage({ parentIdentity: PARENT_ID }, '*');\n }\n }\n // continuously send an initialization message to the iframe until it ack's back\n intervalID = setInterval(sendSetupMessage, 500);\n refCallback(div);\n },\n },\n iframe // child of div\n );\n }\n\n private static getSvgElementFromDoc(node: Node): Node {\n if (node.nodeName === '#document') {\n const kids = node.childNodes;\n for (let i = 0; i < kids.length; i += 1) {\n node = kids.item(i);\n // re https://jira.splunk.com/browse/SPL-188348 DOCTYPE nodes that we want to skip would have\n // nodeName 'svg', but only the actualy <svg> element has nodeType 1 (ELEMENT_NODE)\n if (node.nodeName === 'svg' && node.nodeType && node.nodeType === 1) {\n break;\n }\n }\n }\n\n if (node.nodeName !== 'svg') {\n throw new Error(`Could not find an <svg> element`);\n }\n return node as Element;\n }\n\n /**\n * Runs JEXL to evaluate an expression that returns an XPath string, then evaluate the XPath string against the\n * svg document Node (i.e. 'search' the SVG document)\n * @param {string} xpathExpr\n * @param {Node} doc\n * @param {object} context\n * @returns {XPathResult}\n */\n private static evaluateXPath(xpathExpr: string, doc: Node, context = {}): XPathResult {\n const resolver: XPathNSResolver = {\n lookupNamespaceURI(): string | null {\n return 'http://www.w3.org/2000/svg';\n },\n };\n const xpath = jexl.evalSync(xpathExpr, context);\n return XPath.evaluate(xpath, doc, resolver, XPathResult.ANY_TYPE, null);\n }\n\n private static getTitle(data: any, i: number): string {\n let title = '';\n if (data.featureIDs && data.featureIDs[i]) {\n title += `name: ${data.featureIDs[i]}`;\n }\n if (data.values && data.values[i] !== undefined) {\n title += `\\nvalue: ${data.values[i]}`;\n }\n return title;\n }\n\n /**\n * At this point we have identified an SVG attribute Node that we wish to mutate. That node is passed in here along\n * with the data binding and the data. We have already used the dataBinding's xpath (that is how we found the\n * attribute Node. Now we use the dataBindings 'value' field, which is also an expression to extract a value from\n * the data itself. We then alter the attribute's value (it's nodeValue). If the data has a 'values' column, then we\n * also set data-value attribute of the node, and similarly for the data-name (coming from the data's featureId column)\n * @param {Node} n\n * @param {SvgAttributeBinding} dataBinding\n * @param {{[p: string]: string[]}} data\n * @param {number} i\n * @returns {any}\n */\n private static mutateNode(\n n: Node,\n dataBinding: SvgAttributeBinding,\n data: { [key: string]: string[] },\n i: number\n ): any {\n // eslint-disable-next-line eqeqeq\n if (n.nodeType && n.nodeType != Node.ATTRIBUTE_NODE) {\n throw new Error(ERROR_NON_ATTRIBUTE_MUTATION);\n }\n const context = { $oldValue: n.nodeValue, ...data, $i: i };\n let computed;\n try {\n computed = jexl.evalSync(dataBinding.value, context);\n } catch (error) {\n return;\n }\n // this is the actual mutation: we change the attributes value\n n.nodeValue = computed;\n (n as Attr).value = computed; // So you may ask...why do we set BOTH the nodeValue and the Attr value. The nodeValue seems to be the one that \"shows up\" as reflecting the change. We use nodeValue down in addSubtree. Yet XMLSerializer will only see the changes from Attr.value. So what the heck, we use BOTH\n\n // we also add data-* attributes to the node and a title that behaves like a hover\n const parent = (n as Attr).ownerElement;\n const title = SvgMutator.getTitle(data, i);\n if (data.featureIDs && data.featureIDs[i]) {\n parent.setAttribute('data-name', data.featureIDs[i]);\n }\n if (data.values && data.values[i] !== undefined) {\n parent.setAttribute('data-value', data.values[i]);\n }\n if (title !== '') {\n const titleElem = n.ownerDocument.createElementNS('http://www.w3.org/2000/svg', 'title');\n titleElem.textContent = title;\n parent.appendChild(titleElem);\n }\n if (data.featureIDs) {\n parent.setAttribute('data-name', data.featureIDs[i]);\n }\n // eslint-disable-next-line consistent-return\n return computed; // makes this method more testable to return the updated node value, though real callers don't need to use the returned value.\n }\n\n private static getCssResetStyle(): string {\n return `/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n */\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n }\n /* HTML5 display-role reset for older browsers */\n article, aside, details, figcaption, figure,\n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n body {\n line-height: 1;\n }\n ol, ul {\n list-style: none;\n }\n blockquote, q {\n quotes: none;\n }\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n svg {\n pointer-events:all;\n }`;\n }\n\n public static getCsp(nonce: string) {\n return `default-src 'self'; child-src 'none'; style-src 'self' 'unsafe-inline'; img-src data: ; script-src 'nonce-${nonce}'`;\n }\n\n private static serializer = new XMLSerializer();\n\n public static getIframeHtml(nonce: string, parentId: string, svgNode: Node) {\n return `<html><head>\n <meta http-equiv=\"Content-Security-Policy\" content=\"${this.getCsp(`${nonce}`)}\"/>\n <style>\n ${SvgMutator.getCssResetStyle()}\n </style>\n\n </head>\n <body>\n <div id=\"svgChoroplethSvgDiv\" style=\"position:absolute;height:100%;width:100%;overflow:hidden\">\n ${SvgMutator.serializer.serializeToString(svgNode)}\n </div>\n <script nonce=\"${nonce}\">\n\n let parentOrigin = null;\n let parentWindow = null;\n\n function sendMessage(m){\n\n if(!parentWindow){\n return; // don't send any messages until we know where to send them\n }\n m.nonce = '${nonce}'; // set nonce into message.\n parentWindow.postMessage(m,parentOrigin);\n }\n\n\n const parentSetupMessageListener = m =>{\n const {parentIdentity} = m.data;\n if(parentIdentity !== '${parentId}'){\n return;\n }\n //set parent origin\n parentOrigin = m.origin;\n if(parentOrigin === 'null'){ // yes, this is supposed to be a string 'null'\n parentOrigin = '*';\n }\n if(!m.source){\n return;\n }\n parentWindow = m.source;\n sendMessage({}); //acknowledge\n // we can now remove ourself since initial setup complete\n window.removeEventListener('message', parentSetupMessageListener);\n };\n\n function registerListeners(){\n\n //listen for a first message to establish the parent origin\n window.addEventListener('message', parentSetupMessageListener);\n\n ['mousemove', 'mouseover', 'mousedown', 'mouseup', 'click'].forEach(eventType => {\n const svgElement = document.getElementsByTagName('svg')[0];\n svgElement.addEventListener(eventType, (e)=> {\n const value = e.target.getAttribute('data-value');\n const name = e.target.getAttribute('data-name');\n sendMessage({\n nonce:'${nonce}',\n eventType,\n clientX:e.clientX,\n clientY:e.clientY,\n value,\n name,\n });\n });\n });\n\n\n }\n registerListeners();\n </script>\n </body></html>`;\n }\n\n static createIframeMessageListener(\n expectedNonce: string,\n intervalId: any,\n div: HTMLElement,\n jsdom = false\n ) {\n return m => {\n const { nonce, eventType, clientX, clientY, value, name } = m.data;\n if (nonce !== expectedNonce || (!jsdom && m.origin !== 'null')) {\n // yes, m.origin IS actually supposed to be a string 'null'. That is origin for opaque URL\n return; // If message did not contain expected nonce, then ignore (comms will not be stablished).\n }\n if (intervalId) {\n clearInterval(intervalId); // stop sending setup message\n }\n const boundingRect = div.getBoundingClientRect();\n if (eventType && clientX && clientY) {\n let mEvent;\n const realClientX = Math.round(clientX + boundingRect.left);\n const realClientY = Math.round(clientY + boundingRect.top);\n const eventSetting = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n // only dispatch customEvent for click because value and name are needed to bubble up\n if (eventType === 'click') {\n mEvent = new CustomEvent('areaClick', {\n detail: {\n clientX: realClientX,\n clientY: realClientY,\n value,\n name,\n },\n ...eventSetting,\n });\n } else {\n mEvent = new MouseEvent(eventType, {\n clientX: realClientX,\n clientY: realClientY,\n ...eventSetting,\n });\n }\n div.dispatchEvent(mEvent);\n }\n };\n }\n\n static removeIframeEventListener(element, messageListener, intervalID, refCallback): void {\n if (messageListener) {\n window.removeEventListener('message', messageListener);\n }\n if (intervalID) {\n clearInterval(intervalID); // stop sending setup message\n }\n refCallback(element);\n }\n}\n","module.exports = require(\"xpath\");","module.exports = require(\"@xmldom/xmldom\");","module.exports = require(\"jexl\");","import { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\nimport { defaultPalettesConfig } from '@splunk/visualization-color-palettes/editors/PresetPalettes';\nimport { ChoroplethSvg as ChoroplethSvgIcon } from '@splunk/visualization-icons';\nimport { ChoroplethSvg as ChoroplethSvgPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\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 { enhanceConfig } from '../common/utils/configUtils';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport StaticBackgroundColorEditor from '../common/editorConfig/StaticBackgroundColorEditor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n areaColorsGradientConfig: { colors: ['#7EEFDA', '#6484F6', '#C093F9', '#293873'] },\n areaColorsRangeConfig: [\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 areaColorsMatchConfig: [{ match: '', value: '#5C33FF' }],\n};\nconst optionsSchema: OptionsSchema = {\n areaColors: {\n default: '> areaValues|rangeValue(areaColorsRangeConfig)',\n description:\n 'Specify the dataSource field that should be used to set the svg fill attribute of identified areas.',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n areaIds: {\n default: '> primary|seriesByType(\"string\")',\n description:\n 'Specify the dataSource field that should be used to identify each area in the Choropleth svg, where the area has been tagged with an id field.',\n type: 'array',\n items: { type: 'string' },\n },\n areaValues: {\n default: '> primary|seriesByType(\"number\")',\n description: 'Specify the dataSource field that indicates the values for the areas.',\n type: 'array',\n items: { type: 'number' },\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description: 'the background color behind the SVG, title, and description.',\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n svg: {\n description: 'Literal svg, or svg data URI.',\n type: 'string',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: 'Area IDs',\n editor: 'editor.columnSelector',\n option: 'areaIds',\n context: 'areaIdContext', // todo: need refactor this\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n [\n {\n label: 'Area values',\n editor: 'editor.columnSelector',\n option: 'areaValues',\n context: 'areaValuesContext', // todo: need refactor this\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Areas'),\n option: 'areaColors',\n context: 'defaultContext',\n editor: 'editor.dynamicColor',\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: value'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n isDefault: true, // show it by default when open dynamic color flyout\n defaults: {\n areaValues: defaultContext.areaColorsRangeConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n areaValues: defaultContext.areaColorsMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Value'),\n value: 'areaValues',\n },\n ],\n defaultPalettesConfig,\n },\n },\n ],\n [\n {\n ...StaticBackgroundColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n ],\n },\n {\n label: _('SVG content'),\n layout: [\n [\n {\n label: _('SVG file'),\n option: 'svg',\n editor: 'editor.image',\n editorProps: {\n validMediaTypes: ['svg'],\n svgRenderAsDom: true,\n },\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.choropleth.svg',\n /**\n * viz name\n */\n name: 'Choropleth Svg',\n category: VizCategory.CHOROPLETH,\n /**\n * viz icon\n */\n icon: ChoroplethSvgIcon,\n placeholderIcon: ChoroplethSvgPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n requiredProps: ['svg'],\n editorConfig,\n events: {\n 'area.click': {\n description: 'trigger when user clicks one area',\n payloadKeys: ['value', 'name'],\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"prop-types\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"lodash\"","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/visualizations-shared/colorUtils\"","webpack:///./src/common/hocs/FixedSizeContainer.tsx","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"@splunk/visualization-context/FeatureFlagContext\"","webpack:///external \"@splunk/visualizations-shared/configUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualization-context/TimezoneContext\"","webpack:///external \"@splunk/visualizations-shared/hocUtils\"","webpack:///external \"@splunk/visualizations-shared/JSONSchemaUtils\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///external \"@splunk/ui-utils/id\"","webpack:///./src/common/hooks/getSorting.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 \"@splunk/moment\"","webpack:///external \"@splunk/async-dynamic-options-evaluator\"","webpack:///./src/common/SplunkVisualization.tsx","webpack:///./src/common/interfaces/VizActionHandler.ts","webpack:///./src/common/interfaces/DataSource.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:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@splunk/visualization-color-palettes/editors/PresetPalettes\"","webpack:///./src/common/components/VizStyleWrapper.jsx","webpack:///./src/common/editorConfig/StaticBackgroundColorEditor.js","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.tsx","webpack:///./src/ChoroplethSvg/ChoroplethSvg.tsx","webpack:///external \"@splunk/visualization-context/ImageContext\"","webpack:///external \"@splunk/visualizations-shared/FileDownloader\"","webpack:///external \"@splunk/visualizations-shared/Downloader\"","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.tsx","webpack:///./src/ChoroplethSvg/PureChoroplethSvg/SvgMutator.ts","webpack:///external \"xpath\"","webpack:///external \"@xmldom/xmldom\"","webpack:///external \"jexl\"","webpack:///./src/ChoroplethSvg/config.ts"],"names":["VizStyleWrapper","dataTestKey","props","StaticBackgroundColorEditor","label","_","option","editor","showEditor","options","isDynamicOption"],"mappings":"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","file":"ChoroplethSvg.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 = 181);\n","module.exports = require(\"react\");","module.exports = require(\"prop-types\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"lodash\");","module.exports = require(\"styled-components\");","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(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/visualizations-shared/colorUtils\");","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","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\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","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(\"@splunk/visualizations-shared/configUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualization-context/TimezoneContext\");","module.exports = require(\"@splunk/visualizations-shared/hocUtils\");","module.exports = require(\"@splunk/visualizations-shared/JSONSchemaUtils\");","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 });\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","module.exports = require(\"@splunk/ui-utils/id\");","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","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, cloneDeep } 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 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\nconst UUID = createGUID();\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(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\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} - ${UUID}`);\n\n const [useAsyncEvaluatedOptions, setUseAsyncEvaluatedOptions] = React.useState(\n Boolean(\n featureFlagContext &&\n featureFlagContext.visualizations_useWebWorkersForDSL &&\n typeof Worker !== 'undefined'\n )\n );\n\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(e => {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options - async: ${e.message}`);\n setUseAsyncEvaluatedOptions(false);\n });\n } else {\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayPrimitiveOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc\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 const clonedEvaluatedOptions = cloneDeep(evaluatedOptionsToUse);\n if (\n isTrellisFeatureFlagOn &&\n vizConfig?.supports?.includes(VizBehavior.TRELLIS) &&\n clonedEvaluatedOptions?.splitByLayout === VizBehavior.TRELLIS\n ) {\n clonedEvaluatedOptions.backgroundColor = clonedEvaluatedOptions?.trellisBackgroundColor;\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 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 eventCallbackPropName = camelCase(`on.${eventName}`);\n eventCallbackProps[eventCallbackPropName] = null;\n // todo: refactor single value and single value icon to send payload from viz\n // then remove these lines\n const { payloadKeys } = supportedEvents[eventName];\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 }\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 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(\"@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 { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\nexport interface Meta {\n totalCount: number;\n sid: string;\n app: string;\n}\n\nexport const validSortDirs = ['asc', 'desc', 'none'] as const;\nexport type SortDirType = typeof validSortDirs[number];\n\nexport interface RequestParams {\n count?: number;\n offset?: number;\n sort?: {\n [sortKey: string]: SortDirType;\n };\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 { 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","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@splunk/visualization-color-palettes/editors/PresetPalettes\");","import styled from 'styled-components';\n\nconst VizStyleWrapper = styled.div.attrs(({ dataTestKey }) => ({\n 'data-test': dataTestKey,\n}))`\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: ${props => props.backgroundColor};\n`;\n\nVizStyleWrapper.displayName = 'VizStyleWrapper';\n\nexport default VizStyleWrapper;\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\n\nconst StaticBackgroundColorEditor = {\n label: _('Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n showEditor: ({ options }) => !isDynamicOption(options.backgroundColor),\n};\n\nexport default StaticBackgroundColorEditor;\n","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","import * as React from 'react';\nimport { isEqual } from 'lodash';\nimport { SvgMutator } from './SvgMutator';\n\n/**\n * An instruction on how to perform animation via timed mutations of an SVG document\n */\nexport interface AnimationProps {\n /**\n * The ms with which to delay between binding rows of splunk data into the svg document via mutation. By inserting a delay between successive mutations, an animation effect is created.\n */\n delayMS: number;\n /**\n * Tells whether or not to loop the animation, or just do it once.\n */\n\n loop: boolean;\n}\n\n/**\n * An xPath which identifies which attributes to change in an SVG document, and a replacement value for said attributes. JEXL expressions are\n * used for the xPath and the value. The expressions may access any fields of the PureChoroplethSvgProps's data, as well as a special field\n * called '$i' whose value will be the ordinal (zero based) of the row of data currently being bound to the SVG.\n */\nexport interface SvgAttributeBinding {\n /**\n * A JEXL expression which, when evaluated, will yield an XPath which identifies one or more attributes in an svg document\n */\n xPath: string;\n /**\n * A JEXL expression which, when evaluated, will yield a value that will be used to replace the attribute values indicated by the xPath field\n */\n value: string;\n}\n\n/**\n * The Viz's react properties\n */\nexport interface SvgChoroplethDynamicProps {\n /**\n * An svg document in the form of a string\n */\n svg: string; // literal SVG\n /**\n * An object whose fields will all be added to the JEXL context, and consequently can be referenced from the JEXL expressions in the dataBinding. The fields of the object must be arrays of strings representing data 'columns'.\n */\n data?: { [key: string]: (string | number)[] };\n /**\n * An array of SvgAttributeDataBindings that will all be applied via JEXL to extract values from the data, and mutate attributes of the SVG with said values. The data object is added to the JEXL context.\n */\n dataBinding?: SvgAttributeBinding[]; // each DataBinding is an instruction on how splunk data should affect the SVG\n /**\n * If present causes the dataBindings to animate one at a time, rather than to be all computed en-mass and applied a single mutation\n */\n animation?: AnimationProps;\n /**\n * Width of the SVG document\n */\n width?: number;\n /**\n * height of the SVG document\n */\n height?: number;\n onAreaClick?: (...args: any[]) => void;\n}\n\ninterface SvgChoroplethState {\n svgNode: React.ReactNode;\n}\n\n/**\n * This react component simply take an SVG document, and mutates it by applying data to the document according to\n * dataBindings. The data (data prop) is processed by performing the mutation once for each 'row' of the data even though the data is formatted as columns.\n * If the data looks like {foo:['a', 'b', 'c'], bar:['x', 'y', 'z']} then mutation is performed three times, since the data has three rows.\n * The special $i variable is incremented for each row processed.\n * The first mutation has $i=0, the second has $1=1, the third has $i=2.\n * This allows for JEXL expressions to access the data in a row-like fashion via expressions such as 'foo[$i] + bar[$i]' which will return \"ax\" for the first row mutation, \"by\" for the second, and \"cz\" for the third mutation\n */\nexport default class SvgChoroplethDynamic extends React.Component<\n SvgChoroplethDynamicProps,\n SvgChoroplethState\n> {\n node: Node;\n\n public static defaultProps = {\n svg: '',\n };\n\n constructor(props, context) {\n super(props, context);\n this.state = { svgNode: null };\n this.node = null;\n }\n\n componentDidMount(): void {\n this.mutate();\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n return (\n nextProps.svg !== this.props.svg ||\n !isEqual(nextProps.data, this.props.data) || // must do deep equal on data because when no data is passed we do 'let data = { featureIDs: [], values: [], fill: [] };' in ChoroplethSVG which looks to react like different data every time\n nextState.svgNode !== this.state.svgNode ||\n !isEqual(nextProps.width, this.props.width) ||\n !isEqual(nextProps.height, this.props.height)\n );\n }\n\n componentDidUpdate(prevProps: Readonly<SvgChoroplethDynamicProps>): void {\n if (\n prevProps.svg !== this.props.svg ||\n !isEqual(prevProps.data, this.props.data) ||\n !isEqual(prevProps.width, this.props.width) ||\n !isEqual(prevProps.height, this.props.height)\n ) {\n this.mutate();\n }\n }\n\n componentWillUnmount() {\n if (this.node) {\n this.node.removeEventListener('areaClick', this.handleAreaClick);\n }\n }\n\n handleAreaClick = (ev: CustomEvent): void => {\n if (typeof this.props.onAreaClick === 'function') {\n this.props.onAreaClick({ ...ev, payload: ev.detail });\n }\n };\n\n areaClickRef = (node: Node): void => {\n if (!node) {\n return;\n }\n\n node.addEventListener('areaClick', (ev: CustomEvent) => this.handleAreaClick(ev));\n this.node = node;\n };\n\n mutate(): void {\n const { svg } = this.props;\n if (svg) {\n const m = new SvgMutator(this.props);\n try {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n this.setState({ svgNode: m.mutate() });\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n render(): JSX.Element {\n const { width = '100%', height = '100%' } = this.props;\n const { svgNode } = this.state;\n if (svgNode) {\n return (\n <div style={{ width, height }} ref={this.areaClickRef}>\n {svgNode}\n </div>\n );\n }\n return null;\n }\n}\n","import * as React from 'react';\nimport * as T from 'prop-types';\nimport { get } from 'lodash';\nimport FeatureFlagContext from '@splunk/visualization-context/FeatureFlagContext';\nimport ImageContext from '@splunk/visualization-context/ImageContext';\nimport { FileDownloader } from '@splunk/visualizations-shared/FileDownloader';\nimport { URLDownloader, ImageRegistryFetcher, IDownloader } from '@splunk/visualizations-shared/Downloader';\nimport withDashboardViz, { DashboardVizOpts } from '../common/withDashboardViz';\nimport PureChoroplethSvgComponent from './PureChoroplethSvg/PureChoroplethSvg';\nimport SvgChoroplethDynamic from './PureChoroplethSvg/SvgChoroplethDynamic';\nimport vizConfig from './config';\nimport { DataSource } from '../common/interfaces/DataSource';\nimport { shouldShowIconPlaceholder } from '../common/components/IconPlaceholder';\n\nexport const config = vizConfig;\nexport const PureChoroplethSvg = PureChoroplethSvgComponent;\n// todo: need remove when deleting @splunk/react-visualizations package\nexport const PureSvgChoroplethDynamic = SvgChoroplethDynamic;\n/**\n * This function generates the protocol handlers\n * by default, svg supports data and local handler\n * if feature flag enableSvgHttpDownloader is turned on, then http and https also added into handlers\n * @param {FeatureFlagContext} featureFlagContext\n * @param {ImageContext} imageContext\n * @returns {object}\n */\nexport const createProtocolHandlers = (\n featureFlagContext: FeatureFlagContext = {},\n imageContext: ImageContext\n): { [key: string]: IDownloader } => {\n const handlers: Record<string, any> = {\n data: new URLDownloader(),\n };\n if (imageContext) {\n imageContext.listProviders().forEach(({ type }): void => {\n handlers[type] = new ImageRegistryFetcher(imageContext);\n });\n }\n const { enableSvgHttpDownloader } = featureFlagContext;\n if (enableSvgHttpDownloader) {\n handlers.http = new URLDownloader();\n handlers.https = new URLDownloader();\n }\n\n return handlers;\n};\n\nconst ChoroplethSvg = ({ ...props }) => {\n const { svg } = props;\n // note that the FileDownloader will just immediately pass through literal (non-url) content in the case that\n // the svg argument is not a url.\n return (\n <ImageContext.Consumer>\n {(imageContext: ImageContext): React.ReactElement => (\n <FeatureFlagContext.Consumer>\n {(featureFlagContext: FeatureFlagContext): React.ReactElement => (\n <FileDownloader\n url={svg}\n protocolHandlers={createProtocolHandlers(featureFlagContext, imageContext)}\n renderContent={(svgString: string): React.ReactElement => {\n const pureVizProps = { ...props, svg: svgString };\n return <PureChoroplethSvg {...pureVizProps} />;\n }}\n />\n )}\n </FeatureFlagContext.Consumer>\n )}\n </ImageContext.Consumer>\n );\n};\n\nChoroplethSvg.propTypes = {\n svg: T.string,\n};\n\nexport function useIconPlaceholder(\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n): boolean {\n const svg = get(options, 'svg');\n const missingData = shouldShowIconPlaceholder(dataSources, loading);\n return missingData && !svg;\n}\n\nconst platformViz = withDashboardViz({\n ReactViz: ChoroplethSvg,\n vizConfig,\n useIconPlaceholder,\n} as DashboardVizOpts);\n// (platformViz as any).defaultProps.width = '100%';\n// (platformViz as any).defaultProps.height = '100%';\nexport default platformViz;\n","module.exports = require(\"@splunk/visualization-context/ImageContext\");","module.exports = require(\"@splunk/visualizations-shared/FileDownloader\");","module.exports = require(\"@splunk/visualizations-shared/Downloader\");","import * as React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport { pick, omit } from 'lodash';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport SvgChoroplethDynamic, { AnimationProps } from './SvgChoroplethDynamic';\nimport VizStyleWrapper from '../../common/components/VizStyleWrapper';\n\nconst Container = styled.div<{\n height: number;\n width: number;\n}>`\n position: relative;\n flex-direction: column;\n flex: 1;\n display: flex;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nconst ChoroplethSvgWrapper = styled.div`\n min-height: 0px;\n flex: 1;\n position: relative;\n`;\n\ninterface PureChoroplethSvgProps {\n width?: number;\n height?: number;\n svg: string;\n backgroundColor?: string;\n areaIds?: string[];\n areaColors?: string[];\n areaValues?: (string | number)[];\n animation?: AnimationProps;\n onAreaClick?: (...args: any[]) => void;\n}\n\nexport const computeSvgDynamicProps = ({ ...props }) => {\n const data = {\n featureIDs: props.areaIds || [],\n values: props.areaValues || [],\n fill: props.areaColors || [],\n };\n // current implementation is limited to only setting the fill attribute\n const dataBinding = [\n {\n xPath: \"'//*[@id=\\\"'+featureIDs[$i]+'\\\"]/@fill'\", // fixme todo move to DO as \"xPath: areadIds | prepefix(`//*[@id=\"`)| suffix(`\"/@fill`) > \"\n value: 'fill[$i]',\n },\n ];\n return {\n ...omit(props, ['areaIds', 'areaValues', 'areaColors']),\n data,\n dataBinding,\n };\n};\n\nconst PureChoroplethSvg = ({ ...props }: PureChoroplethSvgProps) => {\n const { width, height, backgroundColor } = props;\n\n const renderVisualization = ({ width: containerWidth, height: containerHeight }) => {\n const svgProps = computeSvgDynamicProps({\n ...props,\n width: containerWidth,\n height: containerHeight,\n });\n return (\n <VizStyleWrapper backgroundColor={backgroundColor} dataTestKey=\"ChoroplethSvgWrapper\">\n <SvgChoroplethDynamic {...svgProps} />\n </VizStyleWrapper>\n );\n };\n return (\n <Container width={width} height={height}>\n <ChoroplethSvgWrapper>\n <SizeAwareWrapper>\n {containerDimension => renderVisualization(containerDimension)}\n </SizeAwareWrapper>\n </ChoroplethSvgWrapper>\n </Container>\n );\n};\n\nPureChoroplethSvg.defaultProps = {\n width: '100%',\n height: 250,\n onAreaClick: () => {},\n};\n\nexport default withTheme(PureChoroplethSvg as any);\n","/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport * as XPath from 'xpath';\nimport { DOMParser, XMLSerializer } from '@xmldom/xmldom';\nimport * as jexl from 'jexl';\nimport { SvgChoroplethDynamicProps, SvgAttributeBinding } from './SvgChoroplethDynamic';\n\n/**\n * An error message indicating that a mutation has attempted to target anything other than SVG attribute(s)\n * @type {string}\n */\nexport const ERROR_NON_ATTRIBUTE_MUTATION = 'mutations only allowed on attribute nodes';\n\n/**\n * This class takes columnar data and mutates an SVG document by applying rules defined in DataBindings. This class\n * includes capability to place delays between the mutations such that the data can be animated \"row by row\" with definable\n * animation delays. This class parses an SVG document into an internal dom (NOT THE BROWSER DOM), which is then\n * converted into a ReactNode.\n */\nexport class SvgMutator {\n private svgDoc: XMLDocument;\n\n private props: SvgChoroplethDynamicProps;\n\n /**\n * parses the svg and stores the parsed Document in a local field. Keeps a copy of the props.\n * @param {SvgChoroplethDynamicProps} props\n */\n constructor(props: SvgChoroplethDynamicProps) {\n const { svg } = props;\n this.svgDoc = new DOMParser().parseFromString(svg);\n this.props = { ...props };\n }\n\n /**\n * Applies all data mutations on a clone of this.svgDoc and returns a ReactNode\n * suitable for displaying the mutated content. Includes callback that can be used to get the actual\n * dom node.\n * @param {(node: Node) => void} refCallback\n * @returns {React.ReactNode}\n */\n mutate(refCallback: (node: Node) => void = () => {}): React.ReactElement {\n const content: Node = this.applyMutations(this.svgDoc);\n return SvgMutator.getSandboxedIframe(refCallback, content, this.props);\n }\n\n /**\n * This method forms a JEXL context from the data, and a special '$i' variable which tells which row is being processed.\n * The context is passed to JEXL which is used to find the XPathResult which we consider as \"hits\" in the search of the\n * SVG for attributes to mutate. Once we have these 'found' attribute hits, we mutate each one.\n * @param dataBinding\n * @param data\n * @param {number} i\n * @param {Node} target\n */\n private static applyMutation(dataBinding, data, i: number, target: Node): void {\n const { xPath } = dataBinding;\n if (!xPath) {\n throw new Error('xPath property not defined');\n }\n // use xpath expression to seek out places to make changes\n const hits = SvgMutator.evaluateXPath(xPath, target, { ...data, $i: i });\n\n let hit;\n for (hit = hits.iterateNext(); hit; hit = hits.iterateNext()) {\n SvgMutator.mutateNode(hit, dataBinding, data, i);\n }\n }\n\n /**\n * Clones the prototypical Node, applies all data mutations to the cloned target, and returns the mutated clone\n * @param {Node} prototypicalNode\n * @returns {Node}\n */\n private applyMutations(prototypicalNode: Node): Node {\n const { dataBinding, data } = this.props;\n const target = prototypicalNode.cloneNode(true);\n if (data) {\n const anyKey = Object.keys(data)[0];\n const len = data[anyKey].length;\n for (let i = 0; i < len; i += 1) {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n dataBinding.forEach(db => SvgMutator.applyMutation(db, data, i, target));\n }\n }\n return target;\n }\n\n /**\n *\n * @param {(node: Node) => void} refCallback called with actual iframe node in real DOM\n * @param {Node} node\n * @param width\n * @param height\n * @returns {React.ReactElement}\n */\n private static getSandboxedIframe(\n refCallback: (node: Node) => void, // fixme get rid of?\n node: Node,\n currentProps: any\n ): React.ReactElement {\n const svgNode: Node = SvgMutator.getSvgElementFromDoc(node);\n (svgNode as Element).setAttribute('width', currentProps.width || '100%');\n (svgNode as Element).setAttribute('height', currentProps.height || '100%');\n const NONCE = window.crypto.getRandomValues(new Uint32Array(4)).join('');\n const PARENT_ID = window.crypto.getRandomValues(new Uint32Array(4)).join('');\n const html = SvgMutator.getIframeHtml(NONCE, PARENT_ID, svgNode);\n /**\n * In the previous implementation, we encoded the html into base64 format and constructed a Data URI from it,\n * but Chrome has a size limit of 2MB for Data URIs, therefore SVGs of size > 2MB do not render (https://splunk.atlassian.net/browse/SCP-54560)\n * Alternatively, Chrome has a higher size limit for Blobs (500Mib? - https://source.chromium.org/chromium/chromium/src/+/main:storage/browser/blob/README.md)\n * and we can create Blob URLs via URL.createObjectURL(), using the URL API together with blobs via the File API\n */\n const blob = new Blob([html], { type: 'text/html' });\n const blobURL = URL.createObjectURL(blob);\n const iframe = React.createElement('iframe', {\n src: blobURL,\n style: {\n position: 'absolute',\n height: '100%',\n width: '100%',\n margin: '0',\n padding: '0',\n pointerEvents: 'auto', // if this isn't 'none' it absorbs all pointer events and none get to enclosing div (credit @hwerner)\n colorScheme: 'light dark', // iframe adds a white background when using 'dark' theme, hacking to set 'light' as primary\n },\n frameBorder: 0,\n sandbox: 'allow-scripts',\n id: 'svgChoroplethIframe',\n });\n let intervalID = null;\n let messageListener = null;\n return React.createElement(\n 'div',\n {\n style: {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n position: 'absolute',\n },\n id: 'svgDiv',\n ref: div => {\n if (!div) {\n // called on unmount\n SvgMutator.removeIframeEventListener(div, messageListener, intervalID, refCallback);\n if (blobURL) {\n URL.revokeObjectURL(blobURL);\n }\n return;\n }\n messageListener = SvgMutator.createIframeMessageListener(NONCE, intervalID, div);\n window.addEventListener('message', messageListener);\n function sendSetupMessage() {\n const svgIframe = div.querySelector('#svgChoroplethIframe') as HTMLIFrameElement;\n // send single message to iframe content so that content can \"learn\" the targetOrigin for it's reply messages\n if (svgIframe) {\n svgIframe.contentWindow.postMessage({ parentIdentity: PARENT_ID }, '*');\n }\n }\n // continuously send an initialization message to the iframe until it ack's back\n intervalID = setInterval(sendSetupMessage, 500);\n refCallback(div);\n },\n },\n iframe // child of div\n );\n }\n\n private static getSvgElementFromDoc(node: Node): Node {\n if (node.nodeName === '#document') {\n const kids = node.childNodes;\n for (let i = 0; i < kids.length; i += 1) {\n node = kids.item(i);\n // re https://jira.splunk.com/browse/SPL-188348 DOCTYPE nodes that we want to skip would have\n // nodeName 'svg', but only the actualy <svg> element has nodeType 1 (ELEMENT_NODE)\n if (node.nodeName === 'svg' && node.nodeType && node.nodeType === 1) {\n break;\n }\n }\n }\n\n if (node.nodeName !== 'svg') {\n throw new Error(`Could not find an <svg> element`);\n }\n return node as Element;\n }\n\n /**\n * Runs JEXL to evaluate an expression that returns an XPath string, then evaluate the XPath string against the\n * svg document Node (i.e. 'search' the SVG document)\n * @param {string} xpathExpr\n * @param {Node} doc\n * @param {object} context\n * @returns {XPathResult}\n */\n private static evaluateXPath(xpathExpr: string, doc: Node, context = {}): XPathResult {\n const resolver: XPathNSResolver = {\n lookupNamespaceURI(): string | null {\n return 'http://www.w3.org/2000/svg';\n },\n };\n const xpath = jexl.evalSync(xpathExpr, context);\n return XPath.evaluate(xpath, doc, resolver, XPathResult.ANY_TYPE, null);\n }\n\n private static getTitle(data: any, i: number): string {\n let title = '';\n if (data.featureIDs && data.featureIDs[i]) {\n title += `name: ${data.featureIDs[i]}`;\n }\n if (data.values && data.values[i] !== undefined) {\n title += `\\nvalue: ${data.values[i]}`;\n }\n return title;\n }\n\n /**\n * At this point we have identified an SVG attribute Node that we wish to mutate. That node is passed in here along\n * with the data binding and the data. We have already used the dataBinding's xpath (that is how we found the\n * attribute Node. Now we use the dataBindings 'value' field, which is also an expression to extract a value from\n * the data itself. We then alter the attribute's value (it's nodeValue). If the data has a 'values' column, then we\n * also set data-value attribute of the node, and similarly for the data-name (coming from the data's featureId column)\n * @param {Node} n\n * @param {SvgAttributeBinding} dataBinding\n * @param {{[p: string]: string[]}} data\n * @param {number} i\n * @returns {any}\n */\n private static mutateNode(\n n: Node,\n dataBinding: SvgAttributeBinding,\n data: { [key: string]: string[] },\n i: number\n ): any {\n // eslint-disable-next-line eqeqeq\n if (n.nodeType && n.nodeType != Node.ATTRIBUTE_NODE) {\n throw new Error(ERROR_NON_ATTRIBUTE_MUTATION);\n }\n const context = { $oldValue: n.nodeValue, ...data, $i: i };\n let computed;\n try {\n computed = jexl.evalSync(dataBinding.value, context);\n } catch (error) {\n return;\n }\n // this is the actual mutation: we change the attributes value\n n.nodeValue = computed;\n (n as Attr).value = computed; // So you may ask...why do we set BOTH the nodeValue and the Attr value. The nodeValue seems to be the one that \"shows up\" as reflecting the change. We use nodeValue down in addSubtree. Yet XMLSerializer will only see the changes from Attr.value. So what the heck, we use BOTH\n\n // we also add data-* attributes to the node and a title that behaves like a hover\n const parent = (n as Attr).ownerElement;\n const title = SvgMutator.getTitle(data, i);\n if (data.featureIDs && data.featureIDs[i]) {\n parent.setAttribute('data-name', data.featureIDs[i]);\n }\n if (data.values && data.values[i] !== undefined) {\n parent.setAttribute('data-value', data.values[i]);\n }\n if (title !== '') {\n const titleElem = n.ownerDocument.createElementNS('http://www.w3.org/2000/svg', 'title');\n titleElem.textContent = title;\n parent.appendChild(titleElem);\n }\n if (data.featureIDs) {\n parent.setAttribute('data-name', data.featureIDs[i]);\n }\n // eslint-disable-next-line consistent-return\n return computed; // makes this method more testable to return the updated node value, though real callers don't need to use the returned value.\n }\n\n private static getCssResetStyle(): string {\n return `/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n */\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n }\n /* HTML5 display-role reset for older browsers */\n article, aside, details, figcaption, figure,\n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n body {\n line-height: 1;\n }\n ol, ul {\n list-style: none;\n }\n blockquote, q {\n quotes: none;\n }\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n svg {\n pointer-events:all;\n }`;\n }\n\n public static getCsp(nonce: string) {\n return `default-src 'self'; child-src 'none'; style-src 'self' 'unsafe-inline'; img-src data: ; script-src 'nonce-${nonce}'`;\n }\n\n private static serializer = new XMLSerializer();\n\n public static getIframeHtml(nonce: string, parentId: string, svgNode: Node) {\n return `<html><head>\n <meta http-equiv=\"Content-Security-Policy\" content=\"${this.getCsp(`${nonce}`)}\"/>\n <style>\n ${SvgMutator.getCssResetStyle()}\n </style>\n\n </head>\n <body>\n <div id=\"svgChoroplethSvgDiv\" style=\"position:absolute;height:100%;width:100%;overflow:hidden\">\n ${SvgMutator.serializer.serializeToString(svgNode)}\n </div>\n <script nonce=\"${nonce}\">\n\n let parentOrigin = null;\n let parentWindow = null;\n\n function sendMessage(m){\n\n if(!parentWindow){\n return; // don't send any messages until we know where to send them\n }\n m.nonce = '${nonce}'; // set nonce into message.\n parentWindow.postMessage(m,parentOrigin);\n }\n\n\n const parentSetupMessageListener = m =>{\n const {parentIdentity} = m.data;\n if(parentIdentity !== '${parentId}'){\n return;\n }\n //set parent origin\n parentOrigin = m.origin;\n if(parentOrigin === 'null'){ // yes, this is supposed to be a string 'null'\n parentOrigin = '*';\n }\n if(!m.source){\n return;\n }\n parentWindow = m.source;\n sendMessage({}); //acknowledge\n // we can now remove ourself since initial setup complete\n window.removeEventListener('message', parentSetupMessageListener);\n };\n\n function registerListeners(){\n\n //listen for a first message to establish the parent origin\n window.addEventListener('message', parentSetupMessageListener);\n\n ['mousemove', 'mouseover', 'mousedown', 'mouseup', 'click'].forEach(eventType => {\n const svgElement = document.getElementsByTagName('svg')[0];\n svgElement.addEventListener(eventType, (e)=> {\n const value = e.target.getAttribute('data-value');\n const name = e.target.getAttribute('data-name');\n sendMessage({\n nonce:'${nonce}',\n eventType,\n clientX:e.clientX,\n clientY:e.clientY,\n value,\n name,\n });\n });\n });\n\n\n }\n registerListeners();\n </script>\n </body></html>`;\n }\n\n static createIframeMessageListener(\n expectedNonce: string,\n intervalId: any,\n div: HTMLElement,\n jsdom = false\n ) {\n return m => {\n const { nonce, eventType, clientX, clientY, value, name } = m.data;\n if (nonce !== expectedNonce || (!jsdom && m.origin !== 'null')) {\n // yes, m.origin IS actually supposed to be a string 'null'. That is origin for opaque URL\n return; // If message did not contain expected nonce, then ignore (comms will not be stablished).\n }\n if (intervalId) {\n clearInterval(intervalId); // stop sending setup message\n }\n const boundingRect = div.getBoundingClientRect();\n if (eventType && clientX && clientY) {\n let mEvent;\n const realClientX = Math.round(clientX + boundingRect.left);\n const realClientY = Math.round(clientY + boundingRect.top);\n const eventSetting = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n // only dispatch customEvent for click because value and name are needed to bubble up\n if (eventType === 'click') {\n mEvent = new CustomEvent('areaClick', {\n detail: {\n clientX: realClientX,\n clientY: realClientY,\n value,\n name,\n },\n ...eventSetting,\n });\n } else {\n mEvent = new MouseEvent(eventType, {\n clientX: realClientX,\n clientY: realClientY,\n ...eventSetting,\n });\n }\n div.dispatchEvent(mEvent);\n }\n };\n }\n\n static removeIframeEventListener(element, messageListener, intervalID, refCallback): void {\n if (messageListener) {\n window.removeEventListener('message', messageListener);\n }\n if (intervalID) {\n clearInterval(intervalID); // stop sending setup message\n }\n refCallback(element);\n }\n}\n","module.exports = require(\"xpath\");","module.exports = require(\"@xmldom/xmldom\");","module.exports = require(\"jexl\");","import { _ } from '@splunk/ui-utils/i18n';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\nimport { defaultPalettesConfig } from '@splunk/visualization-color-palettes/editors/PresetPalettes';\nimport { ChoroplethSvg as ChoroplethSvgIcon } from '@splunk/visualization-icons';\nimport { ChoroplethSvg as ChoroplethSvgPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\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 { enhanceConfig } from '../common/utils/configUtils';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport StaticBackgroundColorEditor from '../common/editorConfig/StaticBackgroundColorEditor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 300,\n initialHeight: 300,\n};\n\nconst defaultContext: DefaultContext = {\n areaColorsGradientConfig: { colors: ['#7EEFDA', '#6484F6', '#C093F9', '#293873'] },\n areaColorsRangeConfig: [\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 areaColorsMatchConfig: [{ match: '', value: '#5C33FF' }],\n};\nconst optionsSchema: OptionsSchema = {\n areaColors: {\n default: '> areaValues|rangeValue(areaColorsRangeConfig)',\n description:\n 'Specify the dataSource field that should be used to set the svg fill attribute of identified areas.',\n type: 'array',\n items: {\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n },\n areaIds: {\n default: '> primary|seriesByType(\"string\")',\n description:\n 'Specify the dataSource field that should be used to identify each area in the Choropleth svg, where the area has been tagged with an id field.',\n type: 'array',\n items: { type: 'string' },\n },\n areaValues: {\n default: '> primary|seriesByType(\"number\")',\n description: 'Specify the dataSource field that indicates the values for the areas.',\n type: 'array',\n items: { type: 'number' },\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description: 'the background color behind the SVG, title, and description.',\n type: 'string',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n svg: {\n description: 'Literal svg, or svg data URI.',\n type: 'string',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: 'Area IDs',\n editor: 'editor.columnSelector',\n option: 'areaIds',\n context: 'areaIdContext', // todo: need refactor this\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n [\n {\n label: 'Area values',\n editor: 'editor.columnSelector',\n option: 'areaValues',\n context: 'areaValuesContext', // todo: need refactor this\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Areas'),\n option: 'areaColors',\n context: 'defaultContext',\n editor: 'editor.dynamicColor',\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: value'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n isDefault: true, // show it by default when open dynamic color flyout\n defaults: {\n areaValues: defaultContext.areaColorsRangeConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n areaValues: defaultContext.areaColorsMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Value'),\n value: 'areaValues',\n },\n ],\n defaultPalettesConfig,\n },\n },\n ],\n [\n {\n ...StaticBackgroundColorEditor,\n editorProps: {\n themes,\n },\n },\n ],\n ],\n },\n {\n label: _('SVG content'),\n layout: [\n [\n {\n label: _('SVG file'),\n option: 'svg',\n editor: 'editor.image',\n editorProps: {\n validMediaTypes: ['svg'],\n svgRenderAsDom: true,\n },\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.choropleth.svg',\n /**\n * viz name\n */\n name: 'Choropleth Svg',\n category: VizCategory.CHOROPLETH,\n /**\n * viz icon\n */\n icon: ChoroplethSvgIcon,\n placeholderIcon: ChoroplethSvgPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n requiredProps: ['svg'],\n editorConfig,\n events: {\n 'area.click': {\n description: 'trigger when user clicks one area',\n payloadKeys: ['value', 'name'],\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n};\n\nexport default enhanceConfig(config);\n"],"sourceRoot":""}