@splunk/visualizations 24.2.0 → 24.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.loki/reference/chrome_docker_PureVisualizations_PureFillerGauge_Orientation_horizontal_height_90_show_placeholder.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureFillerGauge_Too_Small_to_Render.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_Tooltip_Dark.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_Tooltip_Hover.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_Tooltip_Light.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_base_map_light.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_basic.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_bubble_layer_dynamic_color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_bubble_layer_geostats_by.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_bubble_layer_static_color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_bubble_layer_static_color_with_no_seriesColors.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_center_seattle.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_marker_layer_dynamic_color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_marker_layer_static_color.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_marker_layer_static_color_with_no_seriesColors.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_scale_off.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_scale_unit_metric.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_zoom_9.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_duplicate_entries_from.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_duplicate_entries_to.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_invalid_entries_discontinuous_ranges.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_invalid_entries_from_equals_to_to.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_invalid_entries_from_is_larger_than_to.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Invalid_ranges_missing_entries.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Orientation_horizontal_width_150_show_placeholder.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMarkerGauge_Too_Small_to_Render.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureSankey_dimensions_less_than_minWidth_300_and_minHeight_200.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureSankey_invalid_columns_data.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Map_Editor.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Choropleth_Svg_Choropleth_Svg_Missing_Props_Message_When_No_Svg.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Filler_Gauge_Filler_Gauge_Orientation_horizontal_height_90_show_placeholder.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Basic_Map.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_GET.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_GET_Dynamic_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_By_Static_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Bubble_Layer_Geostats_Dynamic_Coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_Dynamic_coloring.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_Result_Limit_Set_To_3.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Marker_layer_with_geostats_data_No_render.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Map_Map_Set_Map_tiles.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Pie_Pie_Missing_Column.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Sankey_Sankey_Dimension_Too_Small.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Align_By_Type_Custom.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Align_Default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Align_Kitchen_Sink.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Align_Right.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Align_Single_Column.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Background_Color_light_blue.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Background_No_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Background_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Basic_Table.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Basic_Table_With_No_Click.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Cell_Types.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Column_Gradient.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Column_Override.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Column_Width.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Count_2.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Custom_Header_Colors.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Custom_Row_Colors.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Custom_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Dark_Background_No_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Dark_Background_Stripe.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Format_Number.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Format_Number_Adv.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Header_Visibility_fixed.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Header_Visibility_none.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Height_Percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Height_Percentage_100_no_paginator.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Invalid_Background_Color.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Multi_Value_Field.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_No_Stripes.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_No_Stripes_Row_Numbers.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Show_Internal_Fields_false.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Show_Internal_Fields_true_default.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Show_Row_Numbers_true.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Sparkline.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Sparkline_Custom.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Sparkline_Width.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Sparklines_Adv.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Table_Formatting.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Table_Gradient.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Time_Formatting.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Width_Height.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Width_Percentage.png +0 -0
- package/.loki/reference/chrome_docker_Visualizations_Table_Table_Width_Px.png +0 -0
- package/Area.config.js +15 -15
- package/Area.config.js.map +1 -1
- package/Area.js +108 -121
- package/Area.js.map +1 -1
- package/Bar.config.js +15 -15
- package/Bar.config.js.map +1 -1
- package/Bar.js +101 -114
- package/Bar.js.map +1 -1
- package/Bubble.config.js +8 -8
- package/Bubble.config.js.map +1 -1
- package/Bubble.js +94 -107
- package/Bubble.js.map +1 -1
- package/ChoroplethSvg.config.js +11 -9
- package/ChoroplethSvg.config.js.map +1 -1
- package/ChoroplethSvg.js +120 -131
- package/ChoroplethSvg.js.map +1 -1
- package/Column.config.js +15 -15
- package/Column.config.js.map +1 -1
- package/Column.js +101 -114
- package/Column.js.map +1 -1
- package/Ellipse.config.js +22 -2
- package/Ellipse.config.js.map +1 -1
- package/Ellipse.js +106 -99
- package/Ellipse.js.map +1 -1
- package/FillerGauge.config.js +8 -8
- package/FillerGauge.config.js.map +1 -1
- package/FillerGauge.js +107 -120
- package/FillerGauge.js.map +1 -1
- package/Image.js +81 -97
- package/Image.js.map +1 -1
- package/Line.config.js +8 -8
- package/Line.config.js.map +1 -1
- package/Line.js +101 -114
- package/Line.js.map +1 -1
- package/LinkGraph.config.js +4 -4
- package/LinkGraph.js +128 -141
- package/LinkGraph.js.map +1 -1
- package/Map.config.js +740 -0
- package/Map.config.js.map +1 -0
- package/Map.js +3137 -0
- package/Map.js.map +1 -0
- package/Markdown.config.js +12 -12
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +99 -115
- package/Markdown.js.map +1 -1
- package/MarkerGauge.config.js +6 -6
- package/MarkerGauge.config.js.map +1 -1
- package/MarkerGauge.js +2953 -3060
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.config.js +11 -11
- package/ParallelCoordinates.config.js.map +1 -1
- package/ParallelCoordinates.js +137 -139
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +13 -13
- package/Pie.config.js.map +1 -1
- package/Pie.js +912 -1019
- package/Pie.js.map +1 -1
- package/Punchcard.config.js +11 -11
- package/Punchcard.config.js.map +1 -1
- package/Punchcard.js +153 -155
- package/Punchcard.js.map +1 -1
- package/README.internal.md +36 -3
- package/README.md +7 -9
- package/Rectangle.config.js +32 -12
- package/Rectangle.config.js.map +1 -1
- package/Rectangle.js +187 -183
- package/Rectangle.js.map +1 -1
- package/Sankey.config.js +35 -25
- package/Sankey.config.js.map +1 -1
- package/Sankey.js +2964 -3079
- package/Sankey.js.map +1 -1
- package/Scatter.config.js +11 -11
- package/Scatter.config.js.map +1 -1
- package/Scatter.js +231 -247
- package/Scatter.js.map +1 -1
- package/SingleValue.config.js +23 -22
- package/SingleValue.config.js.map +1 -1
- package/SingleValue.js +423 -439
- package/SingleValue.js.map +1 -1
- package/SingleValueBasic.js +20 -20
- package/SingleValueBasic.js.map +1 -1
- package/SingleValueIcon.config.js +33 -34
- package/SingleValueIcon.config.js.map +1 -1
- package/SingleValueIcon.js +176 -181
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.config.js +22 -22
- package/SingleValueRadial.config.js.map +1 -1
- package/SingleValueRadial.js +389 -405
- package/SingleValueRadial.js.map +1 -1
- package/Table.config.js +19 -7
- package/Table.config.js.map +1 -1
- package/Table.js +522 -383
- package/Table.js.map +1 -1
- package/common/Charting.js +21 -22
- package/common/Charting.js.map +1 -1
- package/common/ChartingApi.js +2 -2
- package/common/ChartingApi.js.map +1 -1
- package/common/EventsDoc.js +14 -15
- package/common/EventsDoc.js.map +1 -1
- package/common/GaugeMajorTicks.js +2 -2
- package/common/GaugeMajorTicks.js.map +1 -1
- package/common/GaugeValueMarker.js +2 -2
- package/common/GaugeValueMarker.js.map +1 -1
- package/common/OptionsDoc.js +7 -8
- package/common/OptionsDoc.js.map +1 -1
- package/common/OverviewDoc.js +22 -22
- package/common/OverviewDoc.js.map +1 -1
- package/common/SplunkVisualization.js +4 -4
- package/common/SplunkVisualization.js.map +1 -1
- package/common/SplunkVisualizationApi.js +2 -2
- package/common/SplunkVisualizationApi.js.map +1 -1
- package/common/ThemesDoc.js +16 -16
- package/common/ThemesDoc.js.map +1 -1
- package/common/chartingUtils.js +4 -4
- package/common/chartingUtils.js.map +1 -1
- package/common/docUtils.js +4 -4
- package/common/docUtils.js.map +1 -1
- package/common/gaugeUtils.js +13 -13
- package/common/gaugeUtils.js.map +1 -1
- package/common/shapeUtils.js +8 -8
- package/common/shapeUtils.js.map +1 -1
- package/common/withDashboardViz.js +53 -68
- package/common/withDashboardViz.js.map +1 -1
- package/loki.config.js +2 -0
- package/package.json +19 -15
- package/common/version.js +0 -110
- package/common/version.js.map +0 -1
- package/scripts/generateVersion.js +0 -13
package/Map.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"lodash\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"styled-components\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/utils/hocUtils.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"@splunk/visualizations-shared/Message\"","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:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///external \"@babel/runtime/helpers/typeof\"","webpack:///./src/common/hooks/getSorting.ts","webpack:///./src/common/hooks/getPagination.ts","webpack:///./src/common/components/IconPlaceholder.tsx","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/common/withDashboardViz.tsx","webpack:///external \"@splunk/themes/getSettingsFromThemedProps\"","webpack:///external \"@splunk/visualization-encoding/Options\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","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/utils/JSONSchemaUtils.ts","webpack:///./src/common/components/MissingPropsMessage.tsx","webpack:///./src/common/hocs/withEditModeCover.tsx","webpack:///./src/common/hocs/withPlaceholder.tsx","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///external \"@babel/runtime/helpers/slicedToArray\"","webpack:///external \"d3-scale\"","webpack:///external \"@splunk/themes\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"maplibre-gl\"","webpack:///./src/Map/Map.tsx","webpack:///external \"@splunk/visualization-encoding/utils/types\"","webpack:///./src/Map/PureMap/PureMap.tsx","webpack:///external \"chroma-js\"","webpack:///external \"@splunk/visualization-context/MapContext\"","webpack:///./src/Map/PureMap/PureMapContainer.tsx","webpack:///external \"maplibre-gl/dist/maplibre-gl.css\"","webpack:///./src/Map/PureMap/MapUtils.ts","webpack:///./src/Map/PureMap/MarkerIcons.ts","webpack:///./src/Map/PureMap/Tooltip.tsx","webpack:///./src/Map/config.ts"],"names":[],"mappings":"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","file":"Map.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 = 189);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"lodash\");","module.exports = require(\"@splunk/ui-utils/i18n\");","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}\n","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\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 * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\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 return enhancedConfig;\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 isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { cloneDeep } from 'lodash';\nimport { 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\n/**\n * helper to deeply merge objects while preserving arrays in earlier source objects\n * deeply nested primitive keys are merged similarly to lodash's defaultsDeep, while keys with arrays will be preserved if already present in the resultant merged object\n * this prevents default arrays from appending values to user-defined arrays (this occurs if the default array is longer than the user-defined one)\n *\n * @method deepMergeWithArrayOverrides\n * @param {Object} initial - target object to merge values into\n * @param {Object[]} sources - other default options to be merged into the resultant object if no explicit value is provided, with earlier args taking precedence over later ones\n *\n * @returns {Object}\n */\nexport const deepMergeWithArrayOverrides = (initial, ...sources) => {\n const clone = cloneDeep(initial);\n sources.forEach(sourceToApply => {\n Object.keys(sourceToApply).forEach(sourceKey => {\n if (!Object.prototype.hasOwnProperty.call(clone, sourceKey)) {\n clone[sourceKey] = cloneDeep(sourceToApply[sourceKey]);\n }\n // object merging excluding arrays\n if (\n clone[sourceKey] &&\n typeof clone[sourceKey] === 'object' &&\n !Array.isArray(clone[sourceKey]) &&\n typeof sourceToApply[sourceKey] === 'object'\n ) {\n clone[sourceKey] = deepMergeWithArrayOverrides(clone[sourceKey], sourceToApply[sourceKey]);\n }\n });\n });\n return clone;\n};\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","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\");","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","import * as T from 'prop-types';\nimport { has, isFunction } 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 (isFunction(onRequestParamsChange)) {\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, isFunction, 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 && isFunction(onRequestParamsChange);\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: isFunction(onRequestParamsChange) ? onChangeHandler : noop,\n };\n};\n","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}\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};\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 } = props;\n if (icon) {\n return React.createElement(icon, {\n style: {\n left: '50%',\n top: '50%',\n color: 'grey',\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","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","import * as React from 'react';\nimport { camelCase, has, get, defaultsDeep } from 'lodash';\nimport getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\nimport { Options as Opts } from '@splunk/visualization-encoding/Options';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\n\nimport { withTheme } from 'styled-components';\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 { pickFieldFromJSONSchema } from './utils/JSONSchemaUtils';\nimport MissingPropsMessage, { missingKeys } from './components/MissingPropsMessage';\nimport withEditModeCover from './hocs/withEditModeCover';\nimport withPlaceholder from './hocs/withPlaceholder';\nimport { ChartingProps } from './Charting';\nimport { deepMergeWithArrayOverrides } from './utils/hocUtils';\n\ntype HOC = (props: DashboardVizProps) => React.ReactElement<DashboardVizProps>;\nexport interface DashboardVizOpts {\n ReactViz: React.ComponentType<ChartingProps | VizProps>; // we will wrap this in DashboardViz (see const DashboardViz = ...)\n vizConfig: VizConfig;\n computeVizProps?: (props) => any;\n disableEditModeCover?: boolean;\n useIconPlaceholder?: (\n dataSources: { [name: string]: DataSource },\n loading: boolean,\n options: Record<string, unknown>\n ) => boolean;\n}\n\n/**\n * hoc that wraps a pure react visualization in a Dashboard visualization\n * @param {DashboardVizOpts} opts\n * @returns {HOC}\n */\nconst withDashboardViz = (opts: DashboardVizOpts): HOC => {\n const {\n ReactViz,\n vizConfig,\n computeVizProps = () => {},\n disableEditModeCover,\n useIconPlaceholder,\n } = opts;\n\n // sanitizing props before sending them to reactviz.\n const SanitizedReactViz = withSanitizedProps(ReactViz);\n const defaultOptions = pickFieldFromJSONSchema(vizConfig.optionsSchema, 'default');\n\n const DashboardViz = (props: DashboardVizProps): React.ReactElement<DashboardVizProps> => {\n const {\n mode,\n hasEventHandlers,\n dataSources, // type of { [key: string]: DataSource }\n options,\n context = {},\n width,\n height,\n onComputedProps,\n onEventTrigger,\n theme,\n onRequestParamsChange,\n } = props;\n\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 evaluatedOptions = useDeepMemo((): Record<string, unknown> => {\n try {\n return Opts.evaluate(\n {\n context: defaultsDeep({}, context, vizConfig.defaultContext),\n options: deepMergeWithArrayOverrides({}, options, defaultOptions),\n },\n dataSources,\n themeFunc\n );\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`unexpected error evaluating options: + ${e.message}`);\n return {};\n }\n }, [currentThemeFamily, currentThemeColorScheme, currentThemeDensity, options, context, dataSources]);\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(evaluatedOptions);\n });\n\n // present warning message if any required props are missing\n const { requiredProps = [], supports } = vizConfig;\n const missing = missingKeys(requiredProps, evaluatedOptions);\n if (missing.length > 0 && supports.includes(VizBehavior.PLACEHOLDER)) {\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] = evaluatedOptions[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 // compute pure viz props which are not from options\n const computedVizProps = computeVizProps({\n ...props,\n ...evaluatedOptions,\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(evaluatedOptions, OptionKey) && evaluatedOptions[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 {...evaluatedOptions}\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/visualization-encoding/Options\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","/* 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","/**\n * represents the data in a raw columnar format, resulting from a splunk\n * query request.\n */\ninterface FieldEntry {\n name: string;\n}\n\nexport interface JsonColumnData {\n fields: FieldEntry[] | string[];\n columns: string[][];\n}\nexport interface Meta {\n totalCount: number;\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","/* eslint-disable no-param-reassign */\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { has, isEmpty, get } from 'lodash';\nimport { KV } from '../interfaces/Object';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\n\nexport const pickFieldFromJSONSchema = (\n optionsSchema: OptionsSchema | JSONSchema7Definition,\n fieldName = 'default'\n): KV =>\n Object.keys(optionsSchema).reduce((accum: Record<string, unknown>, k): Record<string, unknown> => {\n if (has(optionsSchema[k], fieldName)) {\n accum[k] = optionsSchema[k][fieldName];\n } else if (get(optionsSchema, [k, 'type']) === 'object' && has(optionsSchema[k], 'properties')) {\n const nestedSchema = pickFieldFromJSONSchema(optionsSchema[k].properties, fieldName);\n if (!isEmpty(nestedSchema)) {\n accum[k] = nestedSchema;\n }\n }\n return accum;\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 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 if (config.supports.includes(VizBehavior.PLACEHOLDER) && showPlaceholder) {\n return (\n <IconPlaceholder\n data-test=\"icon-placeholder\"\n icon={config.icon}\n width={width}\n height={height}\n backgroundColor={bgColorFromTheme}\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(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/visualization-color-palettes\");","module.exports = require(\"@splunk/visualization-icons\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"d3-scale\");","module.exports = require(\"@splunk/themes\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"maplibre-gl\");","import { sanitizeArrayOfColors } from '@splunk/visualizations-shared/colorUtils';\nimport { inferDataTypeFromData } from '@splunk/visualization-encoding/utils/types';\nimport PureMap from './PureMap/PureMap';\nimport config from './config';\nimport withDashboardViz from '../common/withDashboardViz';\n\nexport const computeVizProps = ({ themeFunc, theme, layers, dataSources }): any => {\n const themeColorVariables = ['controlBackgroundColor', 'controlForegroundColor'];\n const themeColors: Record<string, unknown> = {};\n themeColorVariables.forEach(variable => {\n themeColors[variable] = themeFunc(variable);\n });\n // Markers use different icons, Bubbles has different styles for light and dark theme\n // this prop is passed for that\n const themeColorScheme = theme?.splunkThemeV1 ? theme?.splunkThemeV1.colorScheme : 'dark';\n layers.forEach(l => {\n // add key `geobin` to the layer object if the data is returned from geostats commands\n // to distinguish geostats commands from table commands\n const dataSourceData = dataSources?.primary?.data ?? {};\n const geobinIdx = (dataSourceData.fields ?? [])\n .map(field => (typeof field === 'string' ? field : field.name))\n .indexOf('geobin');\n const layer = l;\n if (geobinIdx > -1) {\n layer.geobin = dataSourceData.columns[geobinIdx];\n }\n layer.bubbleSizeFields = (dataSourceData.fields ?? [])\n .map(field => (typeof field === 'string' ? field : field.name))\n .filter(\n (field, index) =>\n !['latitude', 'longitude', 'geobin'].includes(field) &&\n inferDataTypeFromData(dataSourceData.columns?.[index] ?? []) === 'number'\n );\n\n // Sanitize colors within layers\n layer.seriesColors = Array.isArray(layer.seriesColors)\n ? sanitizeArrayOfColors(layer.seriesColors)\n : undefined;\n layer.dataColors = Array.isArray(layer.dataColors)\n ? sanitizeArrayOfColors(layer.dataColors)\n : undefined;\n });\n return { ...themeColors, themeColorScheme, ...layers };\n};\n\nconst Map = withDashboardViz({\n ReactViz: PureMap,\n vizConfig: config,\n computeVizProps,\n disableEditModeCover: true,\n useIconPlaceholder: () => false,\n});\nconst { themes } = config;\nexport default Map;\nexport { themes, config, PureMap };\n","module.exports = require(\"@splunk/visualization-encoding/utils/types\");","import * as React from 'react';\nimport { omit, noop } from 'lodash';\nimport { useRef, useEffect, useCallback, useContext, useMemo } from 'react';\nimport * as T from 'prop-types';\nimport * as chroma from 'chroma-js';\nimport { Map, Marker, NavigationControl, ScaleControl } from 'maplibre-gl';\nimport type { Style } from 'maplibre-gl';\nimport MapContext from '@splunk/visualization-context/MapContext';\nimport type { MapContextInterface } from '@splunk/visualization-context/MapContext';\nimport { VizProps } from '../../common/interfaces/VizProps';\nimport PureMapContainer from './PureMapContainer';\nimport 'maplibre-gl/dist/maplibre-gl.css';\nimport {\n getTilePreset,\n getMapStyle,\n MAP_STYLE_VERSION_NUMBER,\n ClusterLayerType,\n renderMarkerLayer,\n bakeBubbleData,\n getStaticColors,\n updateBubbles,\n DEFAULT_SERIES_COLORS,\n} from './MapUtils';\nimport type { BubbleLayerType, MarkerLayerType } from './MapUtils';\nimport Tooltip, { TooltipProps } from './Tooltip';\n\nexport const DEFAULT_CENTER: [number, number] = [0, 0];\nexport const DEFAULT_CONTROL_BACKGROUND_COLOR = '#2b3033';\nexport const DEFAULT_CONTROL_FOREGROUND_COLOR = '#B5B5B5';\nexport const DEFAULT_SCALE_UNIT = 'imperial';\nexport const DEFAULT_SHOW_SCALE = true;\nexport const DEFAULT_ZOOM = 0;\ninterface PureMapProps extends VizProps {\n backgroundColor: string;\n baseLayerTileServer?: string;\n baseLayerTileServerType?: 'vector' | 'raster';\n center?: [number, number];\n controlBackgroundColor?: string;\n controlForegroundColor?: string;\n layers: ClusterLayerType[];\n scaleUnit?: 'imperial' | 'metric';\n showScale?: boolean;\n themeColorScheme?: string;\n zoom?: number;\n onMapLoad?: () => void;\n}\n\nexport interface HexColorObj {\n color: string;\n opacity: number;\n}\n\n// convert rgb/rgba/hex color to encoded color & opacity for SVG strings\nexport const formatColor = (color: string): HexColorObj => {\n const chromaColor = chroma(color);\n return {\n color: chroma(chromaColor.rgb()).hex().replace('#', '%23'),\n opacity: chromaColor.alpha(),\n };\n};\n\nPureMapContainer.displayName = 'PureMapContainer';\n\nconst PureMap = (props: PureMapProps): any => {\n const {\n width,\n height,\n backgroundColor,\n baseLayerTileServer,\n baseLayerTileServerType,\n center,\n controlBackgroundColor,\n controlForegroundColor,\n layers,\n scaleUnit,\n showScale,\n themeColorScheme,\n zoom,\n onMapLoad,\n } = props;\n const { defaultTileConfig, customTileConfig } = useContext<MapContextInterface>(MapContext);\n const basemapContainer = useRef<HTMLDivElement>(null);\n const map = useRef<Map>(null);\n const scaleControl = useRef<ScaleControl>(null);\n const zoomControl = useRef<NavigationControl>(null);\n\n const { tilePreset, defaultTileLight, defaultTileDark } = useMemo(\n () => getTilePreset({ defaultTileConfig, customTileConfig }),\n [defaultTileConfig, customTileConfig]\n );\n const [tooltipProps, setTooltipProps] = React.useState<TooltipProps>({});\n const lngLatCenter = useMemo(() => {\n return [center[1], center[0]] as [number, number];\n }, [center]);\n\n const initializeMap = useCallback(\n mapStyle => {\n map.current = new Map({\n container: basemapContainer.current,\n style: mapStyle,\n center: lngLatCenter,\n zoom,\n });\n // Fired immediately after all necessary resources have been downloaded\n // and the first visually complete rendering of the map has occurred.\n map.current.on('load', () => {\n onMapLoad();\n });\n\n // zoom\n zoomControl.current = new NavigationControl({ showCompass: false });\n map.current.addControl(zoomControl.current, 'top-left');\n },\n [lngLatCenter, zoom]\n );\n\n const initializeScale = useCallback(() => {\n scaleControl.current = new ScaleControl({\n maxWidth: 70,\n unit: scaleUnit,\n });\n map.current.addControl(scaleControl.current);\n }, [scaleUnit]);\n\n const updateScale = useCallback(() => {\n if (showScale) {\n scaleControl?.current?.setUnit(scaleUnit);\n }\n }, [scaleUnit, showScale]);\n\n useEffect(() => {\n if (map.current) {\n map.current.resize();\n }\n }, [width, height]);\n\n useEffect(() => {\n // do not render when defaultTileConfig, customTileConfig and tileset are not configured\n if (Object.keys(tilePreset).length === 0 && (!baseLayerTileServer || !baseLayerTileServerType)) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Map Tile Server configuration is missing or invalid. Please provide a valid configuration'\n );\n return;\n }\n\n const mapStyle = getMapStyle({\n baseLayerTileServer,\n baseLayerTileServerType,\n tilePreset,\n colorScheme: themeColorScheme,\n defaultTileLight,\n defaultTileDark,\n });\n\n mapStyle.version = MAP_STYLE_VERSION_NUMBER;\n\n // If the map has already been initialized, we update the styles\n if (map.current) {\n // Refer to https://maplibre.org/maplibre-gl-js-docs/api/map/#setstyle-example for options.diff (default is true)\n map.current.setStyle(omit(mapStyle, ['theme', 'name', 'key']) as Style);\n updateScale();\n } else {\n // initialize the map only once with a constructed style from user configured options\n // or default configs from the map context\n initializeMap(omit(mapStyle, ['theme', 'name', 'key']) as Style);\n initializeScale();\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return () => {\n // free resources\n map?.current.remove();\n map.current = undefined;\n };\n }, [\n tilePreset,\n initializeMap,\n initializeScale,\n updateScale,\n defaultTileLight,\n defaultTileDark,\n baseLayerTileServer,\n baseLayerTileServerType,\n themeColorScheme,\n ]);\n\n useEffect(() => {\n if (map.current) {\n map.current.flyTo({\n center: lngLatCenter,\n zoom,\n });\n }\n }, [lngLatCenter, zoom]);\n\n useEffect(() => {\n let cleanupLayer = () => {};\n let markers: Marker[] = [];\n let bubbles: Marker[] = [];\n if (map.current && layers && layers.length && map.current.isStyleLoaded) {\n if (layers[0].type === 'marker' && !('geobin' in layers[0])) {\n // support for only single layer\n const markerLayer = layers[0] as MarkerLayerType;\n markerLayer.seriesColors = markerLayer.seriesColors\n ? markerLayer.seriesColors\n : DEFAULT_SERIES_COLORS;\n cleanupLayer = () => {\n if (markers) {\n markers.forEach(marker => marker?.remove());\n markers = [];\n }\n };\n if (markerLayer) {\n // Remove any existing markers\n cleanupLayer();\n const renderedMarkerLayer = renderMarkerLayer(\n markerLayer,\n themeColorScheme,\n map,\n setTooltipProps\n );\n markers = renderedMarkerLayer && renderedMarkerLayer.markers;\n }\n }\n\n if (layers[0].type === 'bubble') {\n // support for only single layer\n const bubbleLayer = layers[0] as BubbleLayerType;\n bubbleLayer.seriesColors = bubbleLayer.seriesColors\n ? bubbleLayer.seriesColors\n : DEFAULT_SERIES_COLORS;\n // update bubbles on events\n cleanupLayer = () => {\n if (bubbles && bubbles.length) {\n bubbles.forEach(bubble => bubble.remove());\n bubbles = [];\n }\n };\n // render bubbles with data returned from geostats cmds\n if (bubbleLayer.geobin && bubbleLayer.bubbleSize) {\n bubbleLayer.seriesColors = bubbleLayer.seriesColors\n ? bubbleLayer.seriesColors\n : DEFAULT_SERIES_COLORS;\n const data = bakeBubbleData(bubbleLayer);\n const staticColors = getStaticColors(\n bubbleLayer.bubbleSize.length,\n bubbleLayer.seriesColors\n );\n if (data && staticColors && staticColors.length) {\n // render bubbles when layers options get update\n bubbles = updateBubbles(\n data,\n zoom,\n staticColors,\n bubbleLayer.dataColors,\n themeColorScheme,\n map,\n setTooltipProps\n );\n // render bubbles on zoom\n map.current.on('zoomend', () => {\n cleanupLayer();\n bubbles = updateBubbles(\n data,\n map.current.getZoom(),\n staticColors,\n bubbleLayer.dataColors,\n themeColorScheme,\n map,\n setTooltipProps\n );\n });\n }\n }\n }\n }\n\n return () => {\n cleanupLayer();\n };\n }, [layers, width, height, zoom, themeColorScheme]);\n\n const baseMapLayer = (\n <>\n <PureMapContainer\n className=\"puremap\"\n width={width}\n height={height}\n backgroundColor={backgroundColor}\n controlBackgroundColor={controlBackgroundColor}\n controlForegroundColor={controlForegroundColor}\n controlIconColorEncoded={formatColor(controlForegroundColor)}\n ref={basemapContainer}\n showScale={showScale}\n />\n <Tooltip {...tooltipProps} />\n </>\n );\n\n return baseMapLayer;\n};\n\nexport const isLatLng = (props: PureMapProps, propName: string, componentName: string): Error => {\n if (\n props[propName][0] >= -180 &&\n props[propName][0] <= 180 &&\n props[propName][1] >= -90 &&\n props[propName][1] <= 90\n ) {\n throw new Error(`${componentName} ${propName} may have reversed [lat, lon] ranges.`);\n }\n if (\n props[propName][0] < -90 ||\n props[propName][0] > 90 ||\n props[propName][1] < -180 ||\n props[propName][1] > 180\n ) {\n throw new Error(`${componentName} ${propName} incorrect [lat, lon] ranges.`);\n }\n return null;\n};\n\nPureMap.propTypes = {\n // eslint-disable-next-line react/no-unused-prop-types\n mode: T.string,\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n backgroundColor: T.string,\n baseLayerTileServer: T.string,\n baseLayerTileServerType: T.string,\n center: isLatLng,\n controlBackgroundColor: T.string,\n controlForegroundColor: T.string,\n layers: T.arrayOf(\n T.shape({\n type: T.string,\n latitude: T.arrayOf(T.number),\n longitude: T.arrayOf(T.number),\n label: T.string,\n showInLegend: T.bool,\n dataColors: T.oneOfType([T.string, T.arrayOf(T.string)]),\n seriesColors: T.arrayOf(T.string),\n tooltipFields: T.arrayOf(T.string),\n resultLimit: T.number,\n })\n ),\n scaleUnit: T.string,\n showScale: T.bool,\n themeColorScheme: T.string,\n zoom: T.number,\n onMapLoad: T.func,\n};\n\nPureMap.defaultProps = {\n mode: 'view',\n width: 800,\n height: 500,\n backgroundColor: '#0b0c0e',\n center: DEFAULT_CENTER,\n controlBackgroundColor: DEFAULT_CONTROL_BACKGROUND_COLOR,\n controlForegroundColor: DEFAULT_CONTROL_FOREGROUND_COLOR,\n scaleUnit: DEFAULT_SCALE_UNIT,\n showScale: DEFAULT_SHOW_SCALE,\n layers: [],\n themeColorScheme: 'dark',\n zoom: DEFAULT_ZOOM,\n onMapLoad: noop,\n};\n\nexport default PureMap;\n","module.exports = require(\"chroma-js\");","module.exports = require(\"@splunk/visualization-context/MapContext\");","import styled from 'styled-components';\nimport { pick } from 'lodash';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport { HexColorObj } from './PureMap';\n\nconst PureMapContainer = styled.div<{\n width: number | string;\n height: number | string;\n backgroundColor: string;\n controlBackgroundColor: string;\n controlForegroundColor: string;\n controlIconColorEncoded: HexColorObj;\n showScale: boolean;\n}>`\n overflow: hidden;\n position: relative;\n z-index: 0;\n background-color: ${props => props.backgroundColor};\n ${props => toDimension(pick(props, ['width', 'height']))};\n\n // custom marker class to override default markers\n .custom-marker {\n width: 22px;\n height: 28px;\n cursor: pointer;\n }\n\n .custom-bubble {\n cursor: pointer;\n }\n\n // overwrite maplibregl zoom control styles\n .maplibregl-ctrl-top-left {\n position: absolute;\n top: 12px;\n left: 16px;\n .maplibregl-ctrl-group {\n width: 40px !important;\n height: 87px !important;\n border-radius: 4px;\n margin: 8px 0px;\n background-color: ${props => props.controlBackgroundColor};\n box-shadow: 0px 26px 103px rgba(0, 0, 0, 0.64), 0px 11px 18px rgba(0, 0, 0, 0.32),\n 0px 3px 6px rgba(0, 0, 0, 0.3);\n & button {\n width: 40px;\n height: 43px;\n border-top: 0;\n }\n .mapboxgl-ctrl-zoom-in .maplibregl-ctrl-icon {\n background-image: url('data:image/svg+xml;charset=UTF-8,<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 1C9 0.447715 8.55229 0 8 0C7.44772 0 7 0.447715 7 1V7H1C0.447715 7 0 7.44772 0 8C0 8.55229 0.447715 9 1 9H7V15C7 15.5523 7.44772 16 8 16C8.55229 16 9 15.5523 9 15V9H15C15.5523 9 16 8.55229 16 8C16 7.44772 15.5523 7 15 7H9V1Z\" fill=\"${props =>\n props.controlIconColorEncoded.color}\" fill-opacity=\"${props =>\n props.controlIconColorEncoded.opacity}\" /></svg>');\n }\n\n .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {\n background-image: url('data:image/svg+xml;charset=UTF-8,<svg width=\"14\" height=\"3\" viewBox=\"0 0 14 3\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 1.99707C0 1.44479 0.447715 0.99707 1 0.99707H13C13.5523 0.99707 14 1.44479 14 1.99707C14 2.54936 13.5523 2.99707 13 2.99707H1C0.447715 2.99707 0 2.54936 0 1.99707Z\" fill=\"${props =>\n props.controlIconColorEncoded.color}\" fill-opacity=\"${props =>\n props.controlIconColorEncoded.opacity}\" /></svg>');\n }\n }\n }\n\n // overwrite maplibregl scale styles\n .maplibregl-ctrl-bottom-left {\n display: ${props => (props.showScale ? 'inline' : 'none')};\n position: absolute;\n z-index: 0;\n bottom: 16px;\n left: 12px;\n width: 86px;\n height: 29px;\n border-radius: 4px;\n margin: 0;\n background-color: ${props => props.controlBackgroundColor};\n box-shadow: 0px 26px 103px rgba(0, 0, 0, 0.13), 0px 11px 18px rgba(0, 0, 0, 0.06),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n .maplibregl-ctrl-scale {\n background-color: ${props => props.controlBackgroundColor};\n color: ${props => props.controlForegroundColor};\n border: 2px solid ${props => props.controlForegroundColor};\n border-top: 0;\n border-left: 0;\n border-right: 0;\n padding: 0;\n margin: 6px 8px 8px 8px;\n line-height: 13px;\n letter-spacing: 0.02em;\n font-family: sans-serif;\n font-size: 10px;\n }\n }\n`;\n\nexport default PureMapContainer;\n","module.exports = require(\"maplibre-gl/dist/maplibre-gl.css\");","import { Map, Marker } from 'maplibre-gl';\nimport { forEach, sum } from 'lodash';\nimport { scalePow } from 'd3-scale';\nimport type { MapContextInterface, BaseTileConfig } from '@splunk/visualization-context/MapContext';\nimport { isColor } from '@splunk/visualizations-shared/colorUtils';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { defaultMarkerDarkTheme, defaultMarkerLightTheme } from './MarkerIcons';\nimport type { TooltipProps } from './Tooltip';\n\nexport const DEFAULT_RESULT_LIMIT = 1000;\nexport const DEFAULT_CLUSTER_COLOR = '#909090';\nexport const DEFAULT_SERIES_COLORS = VIZ_CATEGORICAL;\n// MapLibre requires a map style specification number which is always 8\nexport const MAP_STYLE_VERSION_NUMBER = 8;\nexport const MIN_BUBBLE_RADIUS = 4;\nexport const MAX_BUBBLE_RADIUS = 50; // 58\n\nexport interface MarkerLayerType {\n type: string;\n latitude: number[];\n longitude: number[];\n dataColors?: string[];\n seriesColors: string[];\n tooltipFields: string[];\n resultLimit: number;\n}\n\nexport interface BubbleLayerType extends MarkerLayerType {\n bubbleSize?: number[][] | number[];\n bubbleSizeFields: string[];\n geobin?: string[];\n}\n\ninterface BubbleLayerDatumType {\n zoom: number;\n values: number[];\n coordinates: number[];\n}\n\ninterface BubbleLayerDataType {\n data: BubbleLayerDatumType[];\n dataRange: number[];\n isPie: boolean;\n resultLimit: number;\n transposedBubbleSize: number[][];\n bubbleSizeFields: string[];\n}\n\nexport type ClusterLayerType = BubbleLayerType | MarkerLayerType;\n\n// Returns marker background img with the requiref fillColor based on the theme\nexport const getMarkerSVGBackgroundImg = (color: string, theme: string) => {\n const fillColor = color.replace('#', '%23');\n return theme === 'light' ? defaultMarkerLightTheme(fillColor) : defaultMarkerDarkTheme(fillColor);\n};\n\n// Given a map instance and marker layer inputs, this method adds marker layers\n// Note :- Separated this as a util function for better testability\nexport const renderMarkerLayer = (\n markerLayer: MarkerLayerType,\n themeColorScheme: string,\n map: React.MutableRefObject<Map>,\n setTooltipProps: (tooltipProps: TooltipProps) => void\n): { markers: Marker[]; colors: string[] } => {\n if (\n !markerLayer ||\n !map ||\n !map.current ||\n !Array.isArray(markerLayer.latitude) ||\n !Array.isArray(markerLayer.longitude)\n ) {\n return null;\n }\n const lat = markerLayer.latitude;\n const lon = markerLayer.longitude;\n const isStaticColor = !markerLayer.dataColors;\n const limit = Math.min(\n lat.length,\n lon.length,\n markerLayer.resultLimit ? markerLayer.resultLimit : DEFAULT_RESULT_LIMIT\n );\n const markers = [];\n const colors = [];\n for (let i = 0; i < limit; i += 1) {\n const staticColor =\n markerLayer.seriesColors && isColor(markerLayer.seriesColors[0])\n ? markerLayer.seriesColors[0]\n : DEFAULT_CLUSTER_COLOR;\n const dynamicColor =\n markerLayer.dataColors && isColor(markerLayer.dataColors[i])\n ? markerLayer.dataColors[i]\n : DEFAULT_CLUSTER_COLOR;\n const color = isStaticColor ? staticColor : dynamicColor;\n colors.push(color);\n // create a HTML element for each marker\n const el = document.createElement('div');\n el.className = 'custom-marker';\n el.style.backgroundImage = `url('data:image/svg+xml;charset=UTF-8,${getMarkerSVGBackgroundImg(\n color,\n themeColorScheme\n )}')`;\n el.addEventListener('mouseover', () => {\n setTooltipProps({ anchor: el, longitude: lon[i], latitude: lat[i] });\n });\n el.addEventListener('mouseleave', () => {\n setTooltipProps({ longitude: lon[i], latitude: lat[i] });\n });\n // make a marker for each [lon,lat] and add to the map\n markers.push(new Marker(el).setLngLat([lon[i], lat[i]]).addTo(map.current));\n }\n return { markers, colors };\n};\n\n/**\n * Construct a tile preset {key: config} by combining the default + custom tile configs\n * Also returns the default tile config for each theme - light/dark\n * @param {MapContextInterface} args\n * @param {BaseTileConfig[]} args.defaultTileConfig\n * @param {BaseTileConfig[]} args.customTileConfig\n * @returns {Object} tile preset\n */\nexport const getTilePreset = ({\n defaultTileConfig = [],\n customTileConfig = [],\n}: MapContextInterface): {\n tilePreset: Record<string, BaseTileConfig>;\n defaultTileLight: BaseTileConfig;\n defaultTileDark: BaseTileConfig;\n} => {\n const tilePreset = {};\n let defaultTileLight = {};\n let defaultTileDark = {};\n const tileConfigs = [].concat(defaultTileConfig).concat(customTileConfig);\n forEach(tileConfigs, tileConfig => {\n const key = tileConfig?.key;\n const updatedConfig = { theme: 'all', ...tileConfig, version: MAP_STYLE_VERSION_NUMBER };\n tilePreset[key] = updatedConfig;\n });\n\n if (defaultTileConfig.length > 0) {\n defaultTileLight =\n defaultTileConfig.find(config => config.theme === 'light') ??\n defaultTileConfig.find(config => config.theme === undefined);\n defaultTileDark =\n defaultTileConfig.find(config => config.theme === 'dark') ??\n defaultTileConfig.find(config => config.theme === undefined);\n }\n\n return { tilePreset, defaultTileLight, defaultTileDark };\n};\n\n/**\n * Check if baseLayerTileServer is in tilePreset and config matches current theme, if yes, return.\n * If no, construct a mapStyle with baseLayerTilerServer and baseLayerTileServerType\n * Else return default tile config based on current theme\n * @param {Object} args\n * @param {BaseTileConfig[]} args.tilePreset\n * @param {String} args.baseLayerTilerServer\n * @param {String} args.baseLayerTileServerType\n * @param {String} args.colorScheme\n * @param {BaseTileConfig} args.defaultTileDark\n * @param {BaseTileConfig} args.defaultTileLight\n * @returns {BaseTileConfig} mapStyle\n */\nexport const getMapStyle = ({\n baseLayerTileServer = '',\n baseLayerTileServerType = '',\n tilePreset = {},\n colorScheme = 'light',\n defaultTileLight = {},\n defaultTileDark = {},\n}: {\n baseLayerTileServer?: string;\n baseLayerTileServerType?: string;\n tilePreset?: Record<string, BaseTileConfig>;\n colorScheme?: string;\n defaultTileLight?: BaseTileConfig;\n defaultTileDark?: BaseTileConfig;\n}): BaseTileConfig => {\n if (\n baseLayerTileServer &&\n tilePreset[baseLayerTileServer] &&\n (tilePreset[baseLayerTileServer].theme === colorScheme ||\n tilePreset[baseLayerTileServer].theme === 'all')\n ) {\n return tilePreset[baseLayerTileServer];\n }\n\n if (baseLayerTileServer && baseLayerTileServerType) {\n let tiles = [];\n /**\n * Tile Server URLs (eg: http://{s}.somedomain.com/blabla/{z}/{x}/{y}{r}.png) can specify the variable {s} which refers to a subdomain\n * Subdomains are used to help with browser parallel requests per domain limitation. These subdomains are typically single letters 'a', 'b' and 'c'\n * Refer to https://leafletjs.com/SlavaUkraini/reference.html#tilelayer and https://wiki.openstreetmap.org/wiki/Tile_servers\n */\n if (baseLayerTileServer.match(/^(https?):\\/\\/{(s|S)}\\../)) {\n /**\n * sXML (Leaflet) allows users to define their own tile server URLs + list of available subdomains\n * In order to preserve this behavior during conversion to splunk.map,\n * if the variable {s} or {S} is detected, replace it with 'a', 'b' and 'c' - default values for subdomains\n * TODO: in the future, add an additional prop - baseLayerTileServerSubdomains: ['x', 'y', 'z'], default being ['a', 'b', 'c']\n */\n tiles = [\n baseLayerTileServer.replace(/{(s|S)}/, 'a'),\n baseLayerTileServer.replace(/{(s|S)}/, 'b'),\n baseLayerTileServer.replace(/{(s|S)}/, 'c'),\n ];\n } else {\n tiles = [baseLayerTileServer];\n }\n // TODO: remove hardcoded style when we allow users to pass in layer style through Viz options\n const mapStyle = {\n version: MAP_STYLE_VERSION_NUMBER,\n sources: {\n 'base-tiles': {\n type: baseLayerTileServerType,\n tiles,\n tileSize: 256,\n },\n },\n layers: [\n {\n id: 'base-layer',\n type: 'raster',\n source: 'base-tiles',\n minzoom: 0,\n maxzoom: 10,\n },\n ],\n };\n return mapStyle;\n }\n\n // if tile server is not present in the preset AND we can't construct a mapStyle, fall back on defaults\n return colorScheme === 'light' ? defaultTileLight : defaultTileDark;\n};\n\nexport const getZoomLevelFromGeobin = (geobinStr: string): number => {\n if (!geobinStr) {\n return null;\n }\n // geostats cmds return geobin with zoom level 0-18, 0-99 in the geobinPattern covers the range\n const geobinPattern = /(?<=bin_id_zl_).([0-9]{0,2})?(?=_y_)/g;\n const match = geobinStr.match(geobinPattern);\n return match && parseInt(match[0], 10);\n};\n\n// Bubble colors - static\nexport const getStaticColors = (colorCount: number, colorArray: string[]): string[] => {\n if (colorCount < 0 || !colorCount) {\n return [DEFAULT_CLUSTER_COLOR];\n }\n if (!colorArray || !colorArray.length) {\n return [...Array(colorCount).keys()].map(i => DEFAULT_SERIES_COLORS[i]);\n }\n // loop through colorArray to pick the first $colorCount colors\n // start from begining again if colorCount > colorArray.length\n return [...Array(colorCount).keys()].map(i =>\n isColor(colorArray[i % colorArray.length]) ? colorArray[i % colorArray.length] : DEFAULT_CLUSTER_COLOR\n );\n};\n\n// Bubble size\nexport const matchSize = (dataRange: number[], data: number): any => {\n const size = scalePow().exponent(0.2).domain(dataRange).range([MIN_BUBBLE_RADIUS, MAX_BUBBLE_RADIUS])(\n data\n );\n\n if (size > MAX_BUBBLE_RADIUS) {\n return MAX_BUBBLE_RADIUS;\n }\n if (size < MIN_BUBBLE_RADIUS) {\n return MIN_BUBBLE_RADIUS;\n }\n return size;\n};\n\nexport const transposeArray = (array: number[][]): number[][] => {\n if (!array || !array.length || !array[0] || !array[0].length) {\n return [];\n }\n return array[0].map((_, i) => array.map(row => row[i]));\n};\n\nexport const bakeBubbleData = (layer: BubbleLayerType): BubbleLayerDataType => {\n if (\n !layer ||\n !layer.bubbleSize?.length ||\n !layer.geobin ||\n !layer.geobin.length ||\n !layer.latitude ||\n !layer.latitude.length ||\n !layer.longitude ||\n !layer.longitude.length\n ) {\n return null;\n }\n\n // if bubbleSize is passed as an array of single number array (data series)\n // e.g. [value0, value1, ...]\n // format each value as an array to unify data operations for data series and frames\n let transposedBubbleSize: number[][] = layer.bubbleSize.map(n => [n]);\n let isPie = false;\n // format array if bubbleSize is passed as an array of array (data frame)\n if (typeof layer.bubbleSize[0] !== 'number') {\n // one-time array transpose,\n // e.g. from [column0data, column0data] (multi series)\n // to [[column0datum0, column1datum0], [column0datum1, column1data1], ...]\n // or e.g. from [column0data] (single series)\n // to [[column0data]]\n // for easy access of values at each geo location,\n // and min max pie size computation\n transposedBubbleSize = transposeArray(layer.bubbleSize as number[][]);\n // if multiple series in the dataframe, set isPie to true\n if (layer.bubbleSize.length > 1) {\n isPie = true;\n }\n }\n if (!transposedBubbleSize || !transposedBubbleSize.length) {\n return null;\n }\n\n const data = layer.latitude.map((lat, i) => {\n return {\n zoom: getZoomLevelFromGeobin(layer.geobin[i]),\n values: transposedBubbleSize[i],\n coordinates: [layer.longitude[i], lat],\n };\n });\n // compute the min/max value to encode min/max pie or bubble size\n let min = sum(transposedBubbleSize[0]);\n let max = sum(transposedBubbleSize[1]);\n transposedBubbleSize.forEach(row => {\n const bubbleSize = sum(row);\n max = bubbleSize > max ? bubbleSize : max;\n min = bubbleSize < min ? bubbleSize : min;\n });\n return {\n data,\n dataRange: [min, max],\n isPie,\n resultLimit: layer.resultLimit,\n transposedBubbleSize,\n bubbleSizeFields: layer.bubbleSizeFields,\n };\n};\n\n// Update bubbles on each zoom level\nexport const updateBubbles = (\n dataObj: BubbleLayerDataType,\n zoomLevel: number,\n staticColors: string[],\n dynamicColors: string | string[],\n theme: string,\n map: React.MutableRefObject<Map>,\n setTooltipProps: (tooltipProps: TooltipProps) => void\n): Marker[] => {\n if (!dataObj || !dataObj.data.length || !map || !map.current) {\n return null;\n }\n const { data, dataRange, resultLimit, transposedBubbleSize, bubbleSizeFields, isPie } = dataObj;\n if (!data || !data.length || !dataRange || !dataRange.length) {\n return null;\n }\n const roundedZoom = Math.round(zoomLevel);\n const themeColor = theme === 'light' ? '#ffffff' : '#1a1c20';\n // filter data for the current zoom level and sort base on values\n const dataToRender = data\n .reduce((acc, datum, i) => {\n if (datum.zoom === roundedZoom) {\n acc.push({ data: datum, idx: i });\n }\n return acc;\n }, [])\n .slice(0, resultLimit || DEFAULT_RESULT_LIMIT)\n .sort((a, b) => sum(b.data.values) - sum(a.data.values));\n return dataToRender.map((datum, i) => {\n // create an HTML element for each bubble\n const colors = dynamicColors\n ? [\n dataToRender.map(obj =>\n isColor(dynamicColors[obj.idx]) ? dynamicColors[obj.idx] : DEFAULT_CLUSTER_COLOR\n )[i],\n ]\n : staticColors;\n const el = createPieChart(datum.data.values, dataRange, colors, themeColor, isPie);\n const [longitude, latitude] = datum.data.coordinates;\n const bubbleSize = transposedBubbleSize[i].map((count, index) => ({\n name: bubbleSizeFields[index],\n count,\n color: colors[index],\n }));\n el.addEventListener('mouseover', () => {\n setTooltipProps({ anchor: el, longitude, latitude, bubbleSize });\n });\n el.addEventListener('mouseleave', () => {\n setTooltipProps({ longitude, latitude, bubbleSize });\n });\n return new Marker({ element: el }).setLngLat(datum.data.coordinates).addTo(map.current);\n });\n};\n\n// Create an SVG pie from column values\nexport const createPieChart = (\n values: number[],\n valueRange: number[],\n colors: string[],\n themeColor: string,\n isPie: boolean\n): HTMLElement => {\n const offsets = [];\n let total = 0;\n values.forEach(count => {\n offsets.push(total);\n total += count;\n });\n\n const radius = matchSize(valueRange, total);\n const width = radius * 2;\n\n // create bubble svg\n let html = `<div>\n <svg width=\"${width}\" height=\"${width}\" viewbox=\"-3 -3 ${width + 6} ${width + 6}\" >`;\n // add border for pie\n if (isPie) {\n html += `<circle cx=${radius} cy=${radius} r=${radius} fill='none' stroke-width=\"2\" stroke=${themeColor} stroke-opacity=\"0.3\"/>`;\n }\n // create pie segments\n values.forEach((v, i) => {\n html += pieSegment(offsets[i] / total, (offsets[i] + v) / total, radius, colors[i], themeColor);\n });\n html += `</svg>\n </div>`;\n\n const el = document.createElement('div');\n el.className = 'custom-bubble';\n el.innerHTML = html;\n return el;\n};\n\n// Create a pie segment\nexport const pieSegment = (\n start: number,\n end: number,\n radius: number,\n color: string,\n themeColor: string\n): string => {\n if (end - start === 1) {\n return `<circle cx=${radius} cy=${radius} r=${\n radius - 1\n } fill=${color} fill-opacity=\"0.5\" stroke-width=\"1.5\" stroke=${color} />`;\n }\n const a0 = 2 * Math.PI * (start - 0.25);\n const a1 = 2 * Math.PI * (end - 0.25);\n const x0 = Math.cos(a0);\n const y0 = Math.sin(a0);\n const x1 = Math.cos(a1);\n const y1 = Math.sin(a1);\n const arc = end - start > 0.5 ? 1 : 0;\n\n return `<path d=\"M ${radius} ${radius} L ${radius + radius * x0} ${\n radius + radius * y0\n } A ${radius} ${radius} 0 ${arc} 1 ${radius + radius * x1} ${\n radius + radius * y1\n } L ${radius} ${radius} A 0 0 0 ${arc} 0 ${radius} ${radius}\" fill=\"${color}\" fill-opacity=\"0.8\" stroke=\"${themeColor}\" stroke-width=\"2\" stroke-opacity=\"0.3\" />`;\n};\n","export const defaultMarkerLightTheme = fillColor =>\n `<svg width=\"22\" height=\"28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" fill=\"${fillColor}\"/><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" stroke=\"%2308090A\"/><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" stroke=\"${fillColor}\" stroke-opacity=\".7\"/></svg>`;\n\nexport const defaultMarkerDarkTheme = fillColor =>\n `<svg width=\"22\" height=\"28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" fill=\"${fillColor}\"/><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" stroke=\"%2308090A\"/><path d=\"M11 .5C5.201.5.5 5.201.5 11c0 3.136 1.376 5.952 3.555 7.875 2.839 2.506 4.144 4.58 4.893 6.02.183.35.334.665.469.946l.014.03c.136.285.263.548.387.766.235.412.571.863 1.182.863.61 0 .947-.45 1.182-.863.124-.218.25-.48.387-.765l.014-.03c.135-.282.286-.597.469-.947.75-1.44 2.054-3.514 4.893-6.02A10.476 10.476 0 0 0 21.5 11C21.5 5.201 16.799.5 11 .5Z\" stroke=\"${fillColor}\" stroke-opacity=\".15\"/></svg>`;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nconst StyledPopover = styled(Popover)`\n width: 250px;\n font-size: 12px;\n`;\n\nconst StyledTable = styled.table`\n padding: 2px 6px 2px 6px;\n width: 100%;\n`;\n\nconst StyledTitleColumn = styled.td`\n opacity: 0.85;\n`;\n\nconst StyledValueColumn = styled.td`\n text-align: right;\n`;\n\nconst BubbleSizeColorBlock = styled.div`\n background-color: ${props => props.color};\n display: inline-block;\n margin-right: 4px;\n border-radius: 2px;\n width: 6px;\n height: 11px;\n transform: translateY(1px);\n`;\n\nexport const convertDegToDMS = (deg: number, type: 'latitude' | 'longitude'): string => {\n let direction: string;\n if (type === 'longitude') {\n direction = deg < 0 ? 'W' : 'E';\n } else if (type === 'latitude') {\n direction = deg < 0 ? 'S' : 'N';\n }\n let degrees = Math.floor(deg);\n const minfloat = Math.abs((deg - degrees) * 60);\n let minutes = Math.floor(minfloat);\n const secfloat = (minfloat - minutes) * 60;\n let seconds = Math.round(secfloat);\n degrees = Math.abs(degrees);\n\n if (seconds === 60) {\n minutes += 1;\n seconds = 0;\n }\n if (minutes === 60) {\n degrees += 1;\n minutes = 0;\n }\n return `${degrees}° ${minutes}' ${seconds}\" ${direction}`;\n};\n\nexport interface TooltipProps {\n anchor?: HTMLElement;\n latitude?: number;\n longitude?: number;\n bubbleSize?: Array<{ name: string; count: number; color: string }>;\n}\n\nconst Tooltip = ({ anchor, latitude, longitude, bubbleSize = [] }: TooltipProps): JSX.Element => (\n <StyledPopover open={!!anchor} anchor={anchor} data-test=\"map-marker-tooltip\" defaultPlacement=\"above\">\n <StyledTable>\n <tbody>\n <tr>\n <StyledTitleColumn>{_('Latitude')}</StyledTitleColumn>\n <StyledValueColumn data-test=\"latitude\">\n {convertDegToDMS(latitude, 'latitude')}\n </StyledValueColumn>\n </tr>\n <tr>\n <StyledTitleColumn>{_('Longitude')}</StyledTitleColumn>\n <StyledValueColumn data-test=\"longitude\">\n {convertDegToDMS(longitude, 'longitude')}\n </StyledValueColumn>\n </tr>\n {bubbleSize.map(({ name, count, color }) => (\n <tr key={color}>\n <StyledTitleColumn data-test=\"count-title\">\n <BubbleSizeColorBlock color={color} />\n {name}\n </StyledTitleColumn>\n <StyledValueColumn data-test=\"count-value\">{count}</StyledValueColumn>\n </tr>\n ))}\n </tbody>\n </StyledTable>\n </StyledPopover>\n);\n\nexport default Tooltip;\n","import { Map as MapIcon } from '@splunk/visualization-icons';\nimport { getPattern, COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport { pick, variables } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\n\nconst defaultContext: DefaultContext = {\n colorRangeConfig: [\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};\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: 800,\n initialHeight: 600,\n};\n\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color for the background. You may use a dataSource to apply the color. The default for enterprise light is \"#ffffff\". The default for enterprise dark is \"#000000\". The default for prisma dark is \"#0b0c0e\".',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n type: 'string',\n },\n center: {\n default: [37.7749, -122.4194],\n type: 'array',\n description:\n 'Specify the center of the map in coordinates, in the form of [latitude, longitude]. When not provided, will automatically calculate map center based on available location data. When no location data available will fall back to [37.7749, -122.4194].',\n items: { type: 'number' },\n },\n layers: {\n default: [\n {\n type: 'bubble',\n latitude: '> primary | seriesByName(\"latitude\")',\n longitude: '> primary | seriesByName(\"longitude\")',\n seriesColors: VIZ_CATEGORICAL,\n bubbleSize:\n '> primary | frameWithoutSeriesNames(\"geobin\", \"latitude\", \"longitude\") | frameBySeriesTypes(\"number\")',\n tooltipFields: [],\n },\n ],\n type: 'array',\n description:\n 'Specify the data visualization layers on top of the base map. Can be empty to only show the base map.',\n items: {\n anyOf: [\n {\n type: 'object',\n properties: {\n type: {\n description:\n 'Specify the type of data layer method to display points on the map. For example, “bubble” or “marker”.',\n type: 'string',\n pattern: getPattern(['marker']),\n default: 'marker',\n },\n latitude: {\n description:\n 'Specify a dataSource series to apply latitude coordinates for data points displayed on the map.',\n type: ['string', 'array'],\n default: '> primary | seriesByName(\"latitude\")',\n },\n longitude: {\n description:\n 'Specify a dataSource series to apply longitude coordinates for data points displayed on the map.',\n type: ['string', 'array'],\n default: '> primary | seriesByName(\"longitude\")',\n },\n dataColors: {\n description:\n 'Specify the colors used for data points. You may use an array of colors to be picked from, or you may use a dataSource to apply dynamic coloring. For example, “> primary | seriesByName(\"status\") | matchValue(colorMatchConfig)”. ',\n type: ['string', 'array'],\n },\n seriesColors: {\n default: VIZ_CATEGORICAL,\n description: 'Specify the colors used for data points.',\n type: 'array',\n items: { type: 'string', pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA },\n },\n tooltipFields: {\n description:\n 'Specify the fields to add to tooltips shown while hovering over data points. These fields and their corresponding values will be shown in addition to the ones displayed by default.',\n type: 'array',\n items: { type: 'string' },\n default: [],\n },\n resultLimit: {\n description:\n 'Specify the maximum number of data points rendered on the map to improve performance.',\n type: 'number',\n default: 1000,\n },\n },\n },\n {\n type: 'object',\n properties: {\n type: {\n description:\n 'Specify the type of data layer method to display points on the map. For example, “bubble” or “marker”.',\n type: 'string',\n pattern: getPattern(['bubble']),\n default: 'bubble',\n },\n bubbleSize: {\n description: 'Specify the data column to encode bubble size',\n type: ['string', 'array'],\n default:\n '> primary | frameWithoutSeriesNames(\"geobin\", \"latitude\", \"longitude\") | frameBySeriesTypes(\"number\")',\n },\n latitude: {\n description:\n 'Specify a dataSource series to apply latitude coordinates for data points displayed on the map.',\n type: ['string', 'array'],\n items: { type: 'number' },\n default: '> primary | seriesByName(\"latitude\")',\n },\n longitude: {\n description:\n 'Specify a dataSource series to apply longitude coordinates for data points displayed on the map.',\n type: ['string', 'array'],\n items: { type: 'number' },\n default: '> primary | seriesByName(\"longitude\")',\n },\n dataColors: {\n description:\n 'Specify the colors used for data points. You may use an array of colors to be picked from, or you may use a dataSource to apply dynamic coloring. For example, “> primary | seriesByName(\"status\") | matchValue(colorMatchConfig)”. ',\n type: ['string', 'array'],\n },\n seriesColors: {\n default: VIZ_CATEGORICAL,\n description: `Specify the colors used for data points. For example, [\"#FF0000\", \"#0000FF\", \"#008000\"].`,\n type: 'array',\n items: { type: 'string', pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA },\n },\n tooltipFields: {\n description:\n 'Specify the fields to add to tooltips shown while hovering over data points. These fields and their corresponding values will be shown in addition to the ones displayed by default.',\n type: 'array',\n items: { type: 'string' },\n default: [],\n },\n resultLimit: {\n description:\n 'Specify the maximum number of data points rendered on the map to improve performance.',\n type: 'number',\n default: 1000,\n },\n },\n },\n ],\n },\n },\n scaleUnit: {\n default: 'metric',\n type: 'string',\n description: 'Specify which scale unit to use.',\n pattern: getPattern(['metric', 'imperial']),\n },\n // TODO: choropleth map retain old design\n // showBaseLayer: {\n // default: true,\n // type: 'boolean',\n // description: 'Specify if showing the base map.',\n // },\n showScale: {\n default: true,\n type: 'boolean',\n description: 'Specify whether the scale on the bottom left is shown.',\n },\n baseLayerTileServer: {\n type: 'string',\n description: 'Specify the tile set URL for the base map.',\n },\n baseLayerTileServerType: {\n type: 'string',\n description: 'Specify the type of tile set for the base map.',\n pattern: getPattern(['vector', 'raster']),\n },\n zoom: {\n default: 5,\n description: 'Specify the zoom level of the map.',\n type: 'number',\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 controlBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray22(props),\n light: variables.white(props),\n },\n prisma: variables.backgroundColorPopup(props),\n })(props),\n controlForegroundColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data Layer Formatting'),\n layout: [\n [\n {\n label: _('Layer Type'),\n option: 'layers[0].type',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Marker'), value: 'marker' },\n { label: _('Bubble'), value: 'bubble' },\n ],\n },\n },\n ],\n [\n {\n label: _('Latitude'),\n option: 'layers[0].latitude',\n editor: 'editor.columnSelector',\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n [\n {\n label: _('Longitude'),\n option: 'layers[0].longitude',\n editor: 'editor.columnSelector',\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n [\n {\n label: _('Size'),\n option: 'layers[0].bubbleSize',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) =>\n options.layers && options.layers.length && options.layers[0].type === 'bubble',\n editorProps: {\n dataSourceKey: 'primary',\n },\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.map',\n /**\n * viz name\n */\n name: 'Map',\n category: VizCategory.CHOROPLETH,\n status: 'preview',\n /**\n * viz icon\n */\n icon: MapIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'map.load': {\n description: 'triggered when map is fully loaded',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n requiredProps: [],\n};\n\nexport default enhanceConfig(config);\n"],"sourceRoot":""}
|
package/Markdown.config.js
CHANGED
|
@@ -87,7 +87,7 @@ module.exports =
|
|
|
87
87
|
/******/
|
|
88
88
|
/******/
|
|
89
89
|
/******/ // Load entry module and return exports
|
|
90
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
90
|
+
/******/ return __webpack_require__(__webpack_require__.s = 51);
|
|
91
91
|
/******/ })
|
|
92
92
|
/************************************************************************/
|
|
93
93
|
/******/ ({
|
|
@@ -291,7 +291,7 @@ exports.generatePrecisionValues = generatePrecisionValues;
|
|
|
291
291
|
|
|
292
292
|
/***/ }),
|
|
293
293
|
|
|
294
|
-
/***/
|
|
294
|
+
/***/ 11:
|
|
295
295
|
/***/ (function(module, exports, __webpack_require__) {
|
|
296
296
|
|
|
297
297
|
"use strict";
|
|
@@ -329,6 +329,13 @@ module.exports = require("@babel/runtime/helpers/toConsumableArray");
|
|
|
329
329
|
|
|
330
330
|
/***/ }),
|
|
331
331
|
|
|
332
|
+
/***/ 17:
|
|
333
|
+
/***/ (function(module, exports) {
|
|
334
|
+
|
|
335
|
+
module.exports = require("@splunk/themes");
|
|
336
|
+
|
|
337
|
+
/***/ }),
|
|
338
|
+
|
|
332
339
|
/***/ 2:
|
|
333
340
|
/***/ (function(module, exports, __webpack_require__) {
|
|
334
341
|
|
|
@@ -367,13 +374,6 @@ var VizBehavior;
|
|
|
367
374
|
|
|
368
375
|
/***/ }),
|
|
369
376
|
|
|
370
|
-
/***/ 21:
|
|
371
|
-
/***/ (function(module, exports) {
|
|
372
|
-
|
|
373
|
-
module.exports = require("@splunk/themes");
|
|
374
|
-
|
|
375
|
-
/***/ }),
|
|
376
|
-
|
|
377
377
|
/***/ 3:
|
|
378
378
|
/***/ (function(module, exports) {
|
|
379
379
|
|
|
@@ -417,7 +417,7 @@ var VizCategory;
|
|
|
417
417
|
|
|
418
418
|
/***/ }),
|
|
419
419
|
|
|
420
|
-
/***/
|
|
420
|
+
/***/ 51:
|
|
421
421
|
/***/ (function(module, exports, __webpack_require__) {
|
|
422
422
|
|
|
423
423
|
"use strict";
|
|
@@ -429,7 +429,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
429
429
|
value: true
|
|
430
430
|
});
|
|
431
431
|
|
|
432
|
-
var themes_1 = __webpack_require__(
|
|
432
|
+
var themes_1 = __webpack_require__(17);
|
|
433
433
|
|
|
434
434
|
var i18n_1 = __webpack_require__(0);
|
|
435
435
|
|
|
@@ -441,7 +441,7 @@ var VizCategory_1 = __webpack_require__(5);
|
|
|
441
441
|
|
|
442
442
|
var configUtils_1 = __webpack_require__(1);
|
|
443
443
|
|
|
444
|
-
var BackgroundColor_1 = __webpack_require__(
|
|
444
|
+
var BackgroundColor_1 = __webpack_require__(11);
|
|
445
445
|
|
|
446
446
|
var dataContract = {
|
|
447
447
|
requiredDataSources: [],
|
package/Markdown.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/editorConfig/BackgroundColor.ts","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/themes\"","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"lodash\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/Markdown/config.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\""],"names":[],"mappings":"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","file":"Markdown.config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 50);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\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 * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\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 return enhancedConfig;\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 isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { EditorLayoutConfig } from '../interfaces/Editor';\nimport { ThemedDefaults } from '../interfaces/ThemedDefaults';\n\ninterface backgroundEditorProps {\n label?: string;\n themes: ThemedDefaults;\n labelPosition?: string;\n}\n\nconst background: ({ label, themes, labelPosition }: backgroundEditorProps) => EditorLayoutConfig[] = ({\n label,\n themes,\n labelPosition,\n}) => [\n {\n label: _(label || 'Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: labelPosition || 'top',\n themes,\n },\n },\n];\n\nexport default background;\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","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}\n","module.exports = require(\"@splunk/themes\");","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"lodash\");","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 { pick, variables } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport getBackgroundColorEditor from '../common/editorConfig/BackgroundColor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n // Note: SCP-14090 disable ui for optional datasources. We may need to add it back later\n // {\n // name: 'annotation',\n // description: 'DataSource that populate event annotations',\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\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n description: 'Specify the background color using a Hex code such as \"#FF0000\".',\n type: 'string',\n default: 'transparent',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n fontColor: {\n description:\n 'Specify the text color using Hex codes or RGBA values, such as \"#FF0000\" or \"rgba(25,12,13,0.1)\". The default for enterprise light is \"#3c444d\". The default for enterprise dark is \"#FFFFFF\". The default for prisma dark is \"rgba(255, 255, 255, 0.7)\".',\n type: 'string',\n default: '> themes.defaultFontColor',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n markdown: {\n description: 'Add text using basic markdown syntax.',\n type: 'string',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultFontColor: props =>\n pick({\n enterprise: {\n dark: variables.textColor(props),\n light: variables.textColor(props),\n },\n prisma: variables.contentColorDefault(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Markdown Settings'),\n open: true,\n layout: [\n [\n {\n label: '',\n option: 'markdown',\n editor: 'editor.markdown',\n },\n ],\n ],\n },\n {\n label: _('General'),\n open: true,\n layout: [\n [\n {\n label: _('Font Color'),\n option: 'fontColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: 'top',\n themes,\n },\n },\n ...getBackgroundColorEditor({ label: 'Background Color', themes }),\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.markdown',\n /**\n * viz name\n */\n name: 'Markdown',\n category: VizCategory.COMPARISONS,\n /**\n * viz icon\n */\n icon: null,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n supports: [VizBehavior.DYNAMIC_OPTIONS],\n themes,\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///./src/common/utils/configUtils.ts","webpack:///./src/common/editorConfig/BackgroundColor.ts","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/themes\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///external \"lodash\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///./src/Markdown/config.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\""],"names":[],"mappings":"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","file":"Markdown.config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 51);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\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 * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\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 return enhancedConfig;\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 isDynamicOption,\n getInitialPreset,\n generatePrecisionValues,\n};\n","import { _ } from '@splunk/ui-utils/i18n';\nimport { EditorLayoutConfig } from '../interfaces/Editor';\nimport { ThemedDefaults } from '../interfaces/ThemedDefaults';\n\ninterface backgroundEditorProps {\n label?: string;\n themes: ThemedDefaults;\n labelPosition?: string;\n}\n\nconst background: ({ label, themes, labelPosition }: backgroundEditorProps) => EditorLayoutConfig[] = ({\n label,\n themes,\n labelPosition,\n}) => [\n {\n label: _(label || 'Background'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: labelPosition || 'top',\n themes,\n },\n },\n];\n\nexport default background;\n","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/themes\");","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}\n","module.exports = require(\"@splunk/visualizations-shared/schemaUtils\");","module.exports = require(\"lodash\");","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 { pick, variables } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA } from '@splunk/visualizations-shared/schemaUtils';\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { OptionsSchema } from '../common/interfaces/OptionsSchema';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\nimport getBackgroundColorEditor from '../common/editorConfig/BackgroundColor';\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n // Note: SCP-14090 disable ui for optional datasources. We may need to add it back later\n // {\n // name: 'annotation',\n // description: 'DataSource that populate event annotations',\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\nconst optionsSchema: OptionsSchema = {\n backgroundColor: {\n description: 'Specify the background color using a Hex code such as \"#FF0000\".',\n type: 'string',\n default: 'transparent',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n fontColor: {\n description:\n 'Specify the text color using Hex codes or RGBA values, such as \"#FF0000\" or \"rgba(25,12,13,0.1)\". The default for enterprise light is \"#3c444d\". The default for enterprise dark is \"#FFFFFF\". The default for prisma dark is \"rgba(255, 255, 255, 0.7)\".',\n type: 'string',\n default: '> themes.defaultFontColor',\n pattern: COLOR_OR_TOKEN_PATTERN_WITH_RGBA,\n },\n markdown: {\n description: 'Add text using basic markdown syntax.',\n type: 'string',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultFontColor: props =>\n pick({\n enterprise: {\n dark: variables.textColor(props),\n light: variables.textColor(props),\n },\n prisma: variables.contentColorDefault(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Markdown Settings'),\n open: true,\n layout: [\n [\n {\n label: '',\n option: 'markdown',\n editor: 'editor.markdown',\n },\n ],\n ],\n },\n {\n label: _('General'),\n open: true,\n layout: [\n [\n {\n label: _('Font Color'),\n option: 'fontColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: 'top',\n themes,\n },\n },\n ...getBackgroundColorEditor({ label: 'Background Color', themes }),\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.markdown',\n /**\n * viz name\n */\n name: 'Markdown',\n category: VizCategory.COMPARISONS,\n /**\n * viz icon\n */\n icon: null,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n supports: [VizBehavior.DYNAMIC_OPTIONS],\n themes,\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");"],"sourceRoot":""}
|