@splunk/visualizations 25.3.2 → 25.3.4
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_PureEvents_FieldSummaryTooltip_Actions_Simulated_Instance.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureEvents_FieldSummaryTooltip_Actions_for_Numeric_Field_Simulated_Instance.png +0 -0
- package/.loki/reference/chrome_docker_PureVisualizations_PureMap_custom_base_layer_tile_server.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_ChoroplethSvg_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Ellipse_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_FillerGauge_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_LinkGraph_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Map_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Markdown_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_MarkerGauge_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Parallel_Coordinates_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Pie_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Punchcard_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Rectangle_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Sankey_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Icon_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Single_Value_Radial_Editor.png +0 -0
- package/.loki/reference/chrome_docker_VisualizationEditors_Editors_Table_Editor.png +0 -0
- package/Area.js +2 -2
- package/Bar.js +2 -2
- package/Bubble.js +2 -2
- package/ChoroplethSvg.config.js +6 -6
- package/ChoroplethSvg.config.js.map +1 -1
- package/ChoroplethSvg.js +10 -9
- package/ChoroplethSvg.js.map +1 -1
- package/Column.js +2 -2
- package/Ellipse.config.js +38 -41
- package/Ellipse.config.js.map +1 -1
- package/Ellipse.js +40 -43
- package/Ellipse.js.map +1 -1
- package/Events.js +3 -2
- package/Events.js.map +1 -1
- package/FillerGauge.config.js +8 -8
- package/FillerGauge.config.js.map +1 -1
- package/FillerGauge.js +10 -10
- package/FillerGauge.js.map +1 -1
- package/Image.js +2 -2
- package/Line.js +2 -2
- package/LinkGraph.config.js +13 -13
- package/LinkGraph.config.js.map +1 -1
- package/LinkGraph.js +15 -15
- package/LinkGraph.js.map +1 -1
- package/Map.config.js +7 -6
- package/Map.config.js.map +1 -1
- package/Map.js +9 -8
- package/Map.js.map +1 -1
- package/Markdown.config.js +6 -6
- package/Markdown.config.js.map +1 -1
- package/Markdown.js +8 -8
- package/Markdown.js.map +1 -1
- package/MarkerGauge.config.js +5 -5
- package/MarkerGauge.config.js.map +1 -1
- package/MarkerGauge.js +7 -7
- package/MarkerGauge.js.map +1 -1
- package/ParallelCoordinates.config.js +3 -3
- package/ParallelCoordinates.config.js.map +1 -1
- package/ParallelCoordinates.js +5 -5
- package/ParallelCoordinates.js.map +1 -1
- package/Pie.config.js +10 -16
- package/Pie.config.js.map +1 -1
- package/Pie.js +12 -18
- package/Pie.js.map +1 -1
- package/Punchcard.config.js +23 -24
- package/Punchcard.config.js.map +1 -1
- package/Punchcard.js +25 -26
- package/Punchcard.js.map +1 -1
- package/Rectangle.config.js +41 -44
- package/Rectangle.config.js.map +1 -1
- package/Rectangle.js +43 -46
- package/Rectangle.js.map +1 -1
- package/Sankey.config.js +6 -6
- package/Sankey.config.js.map +1 -1
- package/Sankey.js +8 -8
- package/Sankey.js.map +1 -1
- package/Scatter.js +2 -2
- package/SingleValue.config.js +17 -17
- package/SingleValue.config.js.map +1 -1
- package/SingleValue.js +19 -19
- package/SingleValue.js.map +1 -1
- package/SingleValueIcon.config.js +20 -20
- package/SingleValueIcon.config.js.map +1 -1
- package/SingleValueIcon.js +22 -22
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.config.js +15 -15
- package/SingleValueRadial.config.js.map +1 -1
- package/SingleValueRadial.js +17 -17
- package/SingleValueRadial.js.map +1 -1
- package/Table.config.js +11 -11
- package/Table.config.js.map +1 -1
- package/Table.js +22 -13
- package/Table.js.map +1 -1
- package/common/withDashboardViz.js +2 -2
- package/package.json +12 -10
package/Punchcard.config.js
CHANGED
|
@@ -663,13 +663,9 @@ var themes = {
|
|
|
663
663
|
}
|
|
664
664
|
};
|
|
665
665
|
var editorConfig = [{
|
|
666
|
-
label: i18n_1._('
|
|
666
|
+
label: i18n_1._('Data display'),
|
|
667
667
|
layout: [[{
|
|
668
|
-
label: i18n_1._('
|
|
669
|
-
option: 'showMaxValuePulsation',
|
|
670
|
-
editor: 'editor.toggle'
|
|
671
|
-
}], [{
|
|
672
|
-
label: i18n_1._('Show Bubble Labels'),
|
|
668
|
+
label: i18n_1._('Show bubble labels'),
|
|
673
669
|
option: 'bubbleLabelDisplay',
|
|
674
670
|
editor: 'editor.radioBar',
|
|
675
671
|
editorProps: {
|
|
@@ -685,36 +681,40 @@ var editorConfig = [{
|
|
|
685
681
|
}]
|
|
686
682
|
}
|
|
687
683
|
}], [{
|
|
688
|
-
label: i18n_1._('
|
|
689
|
-
option: '
|
|
684
|
+
label: i18n_1._('Pulsate max value'),
|
|
685
|
+
option: 'showMaxValuePulsation',
|
|
686
|
+
editor: 'editor.toggle'
|
|
687
|
+
}], [{
|
|
688
|
+
label: i18n_1._('Bubble scale'),
|
|
689
|
+
option: 'bubbleSizeMethod',
|
|
690
690
|
editor: 'editor.radioBar',
|
|
691
691
|
editorProps: {
|
|
692
692
|
values: [{
|
|
693
|
-
label: i18n_1._('
|
|
694
|
-
value: '
|
|
693
|
+
label: i18n_1._('Radius'),
|
|
694
|
+
value: 'radius'
|
|
695
695
|
}, {
|
|
696
|
-
label: i18n_1._('
|
|
697
|
-
value: '
|
|
696
|
+
label: i18n_1._('Area'),
|
|
697
|
+
value: 'area'
|
|
698
698
|
}]
|
|
699
699
|
}
|
|
700
700
|
}], [{
|
|
701
|
-
label: i18n_1._('Bubble
|
|
702
|
-
option: '
|
|
701
|
+
label: i18n_1._('Bubble row scale'),
|
|
702
|
+
option: 'bubbleRowScale',
|
|
703
703
|
editor: 'editor.radioBar',
|
|
704
704
|
editorProps: {
|
|
705
705
|
values: [{
|
|
706
|
-
label: i18n_1._('
|
|
707
|
-
value: '
|
|
706
|
+
label: i18n_1._('Global'),
|
|
707
|
+
value: 'global'
|
|
708
708
|
}, {
|
|
709
|
-
label: i18n_1._('
|
|
710
|
-
value: '
|
|
709
|
+
label: i18n_1._('By Row'),
|
|
710
|
+
value: 'row'
|
|
711
711
|
}]
|
|
712
712
|
}
|
|
713
713
|
}]]
|
|
714
714
|
}, {
|
|
715
|
-
label: i18n_1._('
|
|
715
|
+
label: i18n_1._('Color and style'),
|
|
716
716
|
layout: [[{
|
|
717
|
-
label: i18n_1._('Color
|
|
717
|
+
label: i18n_1._('Color mode'),
|
|
718
718
|
option: 'colorMode',
|
|
719
719
|
editor: 'editor.radioBar',
|
|
720
720
|
editorProps: {
|
|
@@ -728,7 +728,7 @@ var editorConfig = [{
|
|
|
728
728
|
}
|
|
729
729
|
}], [// This should be hidden in categorical color mode
|
|
730
730
|
{
|
|
731
|
-
label: i18n_1._('Color by
|
|
731
|
+
label: i18n_1._('Color by field'),
|
|
732
732
|
editor: 'editor.columnSelector',
|
|
733
733
|
option: 'bubbleColor',
|
|
734
734
|
context: 'bubbleColorConfig',
|
|
@@ -749,10 +749,9 @@ var editorConfig = [{
|
|
|
749
749
|
}
|
|
750
750
|
}
|
|
751
751
|
}], BackgroundColor_1.default({
|
|
752
|
-
themes: themes
|
|
753
|
-
labelPosition: 'left'
|
|
752
|
+
themes: themes
|
|
754
753
|
}), [{
|
|
755
|
-
label: i18n_1._('Legend
|
|
754
|
+
label: i18n_1._('Legend display'),
|
|
756
755
|
option: 'legendDisplay',
|
|
757
756
|
editor: 'editor.select',
|
|
758
757
|
editorProps: {
|
package/Punchcard.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///./src/common/editorConfig/BackgroundColor.ts","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"lodash\"","webpack:///./src/Punchcard/config.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/themes/pick\""],"names":[],"mappings":"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","file":"Punchcard.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 = 65);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","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(\"@splunk/visualization-color-palettes\");","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\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"lodash\");","import { _ } from '@splunk/ui-utils/i18n';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA, getPattern } from '@splunk/visualizations-shared/schemaUtils';\nimport { Punchcard as PunchcardIcon } from '@splunk/visualization-icons';\nimport { Punchcard as PunchcardPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\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 {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\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 bubbleColorConfig: {\n colors: ['rgba(123,86,219,0.4)', 'rgba(123,86,219,1)'],\n },\n};\n\nconst optionsSchema: OptionsSchema = {\n x: {\n default: '> primary | seriesByIndex(0)',\n description: 'Specify the dataSource applied to the x-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n y: {\n default: '> primary | seriesByIndex(1)',\n description: 'Specify the dataSource applied to the y-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n category: {\n default: '> primary | seriesByIndex(3)',\n description: 'Specify the dataSource to apply series categories.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n size: {\n default: '> primary | seriesByIndex(2)',\n description: 'Specify the dataSource to apply bubble size in the chart.',\n type: 'array',\n items: { type: 'number' },\n },\n xField: {\n default: '> x | getField()',\n description: 'Specify the field that should be mapped to the x-axis.',\n type: 'string',\n },\n yField: {\n default: '> y | getField()',\n description: 'Specify the field that should be mapped to the y-axis.',\n type: 'string',\n },\n categoryField: {\n default: '> category | getField()',\n description: 'Specify the field that should be mapped to the series categories.',\n type: 'string',\n },\n sizeField: {\n default: '> size | getField()',\n description: 'Specify the field that should be mapped to the bubble size in the chart.',\n type: 'string',\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color used for the background. 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 bubbleColor: {\n default: '> size | gradient(bubbleColorConfig)',\n description:\n 'Specify the coloring method used for the bubbles when the colorMode “dynamic” is specified. For example “> size | gradient(bubbleColorConfig)\".',\n type: ['string', 'array'],\n },\n bubbleLabelDisplay: {\n default: 'all',\n description:\n 'Specify whether all bubble labels, the max value bubble labels, or none of the bubble labels should be displayed.',\n pattern: getPattern(['all', 'max', 'off']),\n type: 'string',\n },\n bubbleRadiusMax: {\n default: 15,\n description:\n 'Specify the max radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRadiusMin: {\n default: 1,\n description:\n 'Specify the min radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRowScale: {\n default: 'global',\n description: 'Specify how bubbles are scaled relative to other rows.',\n pattern: getPattern(['global', 'row']),\n type: 'string',\n },\n bubbleSizeMax: {\n default: 1,\n description:\n 'Specify the max percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMin: {\n default: 0.25,\n description:\n 'Specify the min percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMethod: {\n default: 'area',\n description: 'Specify whether bubble area or diameter corresponds to the size value.',\n pattern: getPattern(['radius', 'area']),\n type: 'string',\n },\n colorMode: {\n default: 'dynamic',\n description: 'Specify the coloring method used for the bubbles.',\n pattern: getPattern(['categorical', 'dynamic']),\n type: 'string',\n },\n legendDisplay: {\n default: 'right',\n description: 'Specify the location of the legend on the panel.',\n pattern: getPattern(['right', 'off']),\n type: 'string',\n },\n seriesColors: {\n default: VIZ_CATEGORICAL,\n description: 'Specify the colors used for a series. For example, \"#FF0000\", \"#0000FF\", \"#008000\".',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n showDefaultSort: {\n default: false,\n description: 'Specify whether axes should be sorted based on order of time, digits and strings.',\n type: 'boolean',\n },\n showDynamicBubbleSize: {\n default: true,\n description: 'Specify whether the bubble size should be dynamic or fixed.',\n type: 'boolean',\n },\n showMaxValuePulsation: {\n default: true,\n description: 'Specify whether the max value bubble should pulsate.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('General'),\n layout: [\n [\n {\n label: _('Pulsate Max Value'),\n option: 'showMaxValuePulsation',\n editor: 'editor.toggle',\n },\n ],\n [\n {\n label: _('Show Bubble Labels'),\n option: 'bubbleLabelDisplay',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('All'), value: 'all' },\n { label: _('Max'), value: 'max' },\n { label: _('Off'), value: 'off' },\n ],\n },\n },\n ],\n [\n {\n label: _('Bubble Row Scale'),\n option: 'bubbleRowScale',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Global'), value: 'global' },\n { label: _('By Row'), value: 'row' },\n ],\n },\n },\n ],\n [\n {\n label: _('Bubble Scale'),\n option: 'bubbleSizeMethod',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Radius'), value: 'radius' },\n { label: _('Area'), value: 'area' },\n ],\n },\n },\n ],\n ],\n },\n {\n label: _('Coloring'),\n layout: [\n [\n {\n label: _('Color Mode'),\n option: 'colorMode',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Dynamic'), value: 'dynamic' },\n { label: _('Categorical'), value: 'categorical' },\n ],\n },\n },\n ],\n [\n // This should be hidden in categorical color mode\n {\n label: _('Color by Field'),\n editor: 'editor.columnSelector',\n option: 'bubbleColor',\n context: 'bubbleColorConfig',\n showEditor: ({ options }) =>\n options.colorMode === 'dynamic' || options.colorMode === undefined,\n editorProps: {\n dataSourceKey: 'primary',\n prepareValue: (\n definition\n ): { context: Record<string, any>; options: Record<string, any> } => {\n const {\n options: { bubbleColor },\n } = definition;\n return {\n context: {},\n options: {\n bubbleColor: `${bubbleColor} | gradient(bubbleColorConfig)`,\n },\n };\n },\n },\n },\n ],\n getBackgroundColorEditor({ themes, labelPosition: 'left' }),\n [\n {\n label: _('Legend Display'),\n option: 'legendDisplay',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Right'), value: 'right' },\n { label: _('Off'), value: 'off' },\n ],\n },\n showEditor: ({ options }) => options.colorMode === 'categorical',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.punchcard',\n /**\n * viz name\n */\n name: 'Punchcard',\n category: VizCategory.COMPARISONS,\n /**\n * viz icon\n */\n icon: PunchcardIcon,\n placeholderIcon: PunchcardPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'legend.click': {\n description: 'Triggered when user clicks a chart legend',\n },\n 'point.click': {\n description: 'Triggered when user clicks a data point',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.PLACEHOLDER, VizBehavior.EVENTS],\n themes,\n requiredProps: ['x', 'y', 'size'],\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/themes/pick\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/visualization-icons/placeholders\"","webpack:///external \"@splunk/visualization-icons\"","webpack:///./src/common/editorConfig/BackgroundColor.ts","webpack:///external \"@splunk/visualization-color-palettes\"","webpack:///./src/common/interfaces/VizBehavior.ts","webpack:///external \"@splunk/visualizations-shared/schemaUtils\"","webpack:///./src/common/utils/configUtils.ts","webpack:///external \"lodash\"","webpack:///./src/Punchcard/config.ts","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///./src/common/interfaces/VizCategory.ts","webpack:///external \"@splunk/themes/pick\""],"names":[],"mappings":"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","file":"Punchcard.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 = 65);\n","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/visualization-icons/placeholders\");","module.exports = require(\"@splunk/visualization-icons\");","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(\"@splunk/visualization-color-palettes\");","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\");","import { get, range } from 'lodash';\nimport { DYNAMIC_OPTIONS_DSL_PATTERN } from '@splunk/visualizations-shared/schemaUtils';\nimport type { JSONSchema7Definition } from 'json-schema';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizBehavior } from '../interfaces/VizBehavior';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { OptionsSchema } from '../interfaces/OptionsSchema';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\n}\n\nconst dynamicOptionsDSLType = {\n type: 'string',\n pattern: DYNAMIC_OPTIONS_DSL_PATTERN,\n} as const;\n\n/**\n * Helper function to extend an options schema with dynamic options DSL\n * @param optionsSchema a visualization's options schema\n * @returns an updated options schema that additionally allows strings starting with > for each option\n */\nfunction enhanceOptionsSchemaWithDynamicOptions(\n optionsSchema: OptionsSchema | JSONSchema7Definition\n): OptionsSchema {\n const enhancedOptionsSchema: OptionsSchema = {};\n Object.keys(optionsSchema).forEach((key): void => {\n const {\n // The next a few are schema annotations, we should leave them as is.\n // Note: in reality we don't use `readOnly`, `writeOnly` or `examples`, but they are listed here for completeness.\n // Ref: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01\n title,\n description,\n readOnly,\n writeOnly,\n examples,\n default: defaultValue,\n // The next a few need special care\n type,\n properties,\n patternProperties,\n // The rest should be handled together\n ...remainingSchemaEntry\n } = optionsSchema[key];\n\n const annotations = {\n ...(title !== undefined && { title }),\n ...(description !== undefined && { description }),\n ...(readOnly !== undefined && { readOnly }),\n ...(writeOnly !== undefined && { writeOnly }),\n ...(examples !== undefined && { examples }),\n ...(defaultValue !== undefined && { default: defaultValue }),\n };\n\n if (type === 'object') {\n enhancedOptionsSchema[key] = {\n ...remainingSchemaEntry,\n ...annotations,\n type,\n ...(properties && { properties: enhanceOptionsSchemaWithDynamicOptions(properties) }),\n };\n if (patternProperties) {\n let enhancedPatternProperties = {};\n Object.keys(patternProperties).forEach((opt): void => {\n enhancedPatternProperties = {\n ...enhancedPatternProperties,\n ...enhanceOptionsSchemaWithDynamicOptions({ [opt]: patternProperties[opt] }),\n };\n });\n enhancedOptionsSchema[key].patternProperties = enhancedPatternProperties;\n }\n } else {\n enhancedOptionsSchema[key] = {\n ...annotations,\n anyOf: [\n // we can't assume `type` is always there because there are `enum` and `const`.\n { ...(type !== undefined && { type }), ...remainingSchemaEntry },\n dynamicOptionsDSLType,\n ],\n };\n }\n });\n return enhancedOptionsSchema;\n}\n\n/**\n * Helper function to enhance a Visualization Config as needed based on behaviors specified in supports block\n * this function also collapse all editor panels\n * @param vizConfig a Visualization Config\n * @returns an enhanced Visualization Config containing updated config entries based on behaviors it supports\n * and containing `open: false` for all editor panels in editorConfig\n */\nfunction enhanceConfig(vizConfig: VizConfig): VizConfig {\n const enhancedConfig: VizConfig = { ...vizConfig };\n if (vizConfig.supports.indexOf(VizBehavior.DYNAMIC_OPTIONS) !== -1) {\n enhancedConfig.optionsSchema = enhanceOptionsSchemaWithDynamicOptions(vizConfig.optionsSchema);\n }\n enhancedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: config.open || false };\n }\n );\n return enhancedConfig;\n}\n\n/**\n * Helper function to uncollapse all editor panels by adding `open: true` to the editorConfig\n * Created for editor unit tests\n * @param vizConfig a Visualization Config\n * @returns a Visualization Config containing `open: true` for all editor panels in editorConfig\n */\nfunction uncollapseEditorConfig(vizConfig: VizConfig): VizConfig {\n const editorPanelUncollapsedConfig: VizConfig = { ...vizConfig };\n editorPanelUncollapsedConfig.editorConfig = vizConfig.editorConfig.map(\n (config: EditorConfig): EditorConfig => {\n return { ...config, open: true };\n }\n );\n return editorPanelUncollapsedConfig;\n}\n\nfunction isDynamicOption(option?: string): boolean {\n return (option && typeof option === 'string' && option.trim().startsWith('>')) || false;\n}\n\n// private helpers to improve readability of getInitialPreset\n// this shouldn't be tested since this util isn't something that we expect to use outside of getInitialPreset\n\n/**\n * this checks to make sure that all values within vizContext are compatible with the given preset's context to determine the initialPreset\n * if a preset has explicitly specified a key as being undefined, the vizContext must also has that key as undefined, or else this CANNOT be the initialPreset\n * the inverse is true; if a preset has key is NOT undefined, it must also be NOT undefined in the corresponding vizContext\n * the internal config contents are irrelevant (as the user could customize them in source), just as long as the presence of `undefined`s match up\n *\n * Since the presetConfigs have explicit undefined keys to override the existing config, we need to explicitly check the undefined values\n */\nfunction hasCompatibleContexts(\n vizContext: { [configKey: string]: any },\n presetContext: { [configKey: string]: any }\n): boolean {\n const presetContextKeys = Object.keys(presetContext);\n return presetContextKeys.every(\n (contextKey): boolean =>\n (presetContext[contextKey] === undefined && vizContext[contextKey] === undefined) ||\n (presetContext[contextKey] !== undefined && vizContext[contextKey] !== undefined)\n );\n}\n\n/**\n * Checks to make sure that dynamic (non-dynamic) options in a given preset are also dynamic (non-dynamic) in the vizOptions\n */\nfunction hasCompatibleOptions(\n vizOptions: { [configKey: string]: any },\n presetOptions: { [configKey: string]: any }\n): boolean {\n const presetOptionKeys = Object.keys(presetOptions);\n return presetOptionKeys.every(\n (optionKey): boolean =>\n isDynamicOption(presetOptions[optionKey]) === isDynamicOption(vizOptions[optionKey])\n );\n}\n\n/**\n * Evaluates whether there is an initialPreset that fits the current state of vizContext + vizOptions\n * This function ignores extraneous vizOptions or vizContext keys, as they could be outside the scope of what the preset is intended to configure\n *\n * @param {Object} vizContext - the current vizContext definition\n * @param {Object} vizOptions - the current vizOptions definition\n * @param {PresetEntry[]} presets - the list of presets, one of which can be considered an initialPreset\n */\nfunction getInitialPreset(\n vizContext: { [configKey: string]: any },\n vizOptions: { [configKey: string]: any },\n presets: PresetEntry[]\n): PresetEntry | null {\n return presets.find((preset): boolean => {\n const presetContext = get(preset, ['value', 'context'], {});\n const presetOptions = get(preset, ['value', 'options'], {});\n const presetContextKeys = Object.keys(presetContext);\n const presetOptionKeys = Object.keys(presetOptions);\n\n // all presets have to explicitly specify which options to reset (i.e. need explicitly undefined keys)\n // if not, then the preset is invalid in config.ts\n if (presetContextKeys.length === 0 || presetOptionKeys.length === 0) return false;\n\n return (\n hasCompatibleContexts(vizContext, presetContext) &&\n hasCompatibleOptions(vizOptions, presetOptions)\n );\n });\n}\n\ninterface PrecisionOption {\n label: string;\n value: number;\n}\n\n/**\n * generates number precision values for a Select editor\n *\n * @param {Number} numPrecisionValues - number of integer precision values to generate\n * @returns {{ label: string; value; string }[]} array of { label, value } tuples\n */\nfunction generatePrecisionValues(numPrecisionValues: number): PrecisionOption[] {\n return range(0, numPrecisionValues + 1).map(\n (i): PrecisionOption => ({\n label: `${i} (0${i > 0 ? '.' : ''}${'0'.repeat(i)})`, // e.g. 0.000 for numPrecisionValues = 3\n value: i,\n })\n );\n}\n\nexport {\n enhanceConfig,\n enhanceOptionsSchemaWithDynamicOptions,\n getInitialPreset,\n generatePrecisionValues,\n uncollapseEditorConfig,\n isDynamicOption,\n};\n\n/**\n * insert layout in layout array, return a new layout array instead of updating the original\n *\n * @param {EditorLayoutConfig[][]} layout - editor layout\n * @param {Number} index - the index to insert layout item(s)\n * @param {EditorLayoutConfig[][]} layoutItems - the item(s) to insert\n * @returns {EditorLayoutConfig[][]} new editor layout with insertion\n */\nexport const insertLayout = (\n layout: EditorLayoutConfig[][],\n index: number,\n ...layoutItems: EditorLayoutConfig[][]\n): EditorLayoutConfig[][] => [\n // copy part of the array before the specified index\n ...layout.slice(0, index),\n // inserted layout item\n ...layoutItems,\n // copy part of the array after the specified index\n ...layout.slice(index),\n];\n","module.exports = require(\"lodash\");","import { _ } from '@splunk/ui-utils/i18n';\nimport { COLOR_OR_TOKEN_PATTERN_WITH_RGBA, getPattern } from '@splunk/visualizations-shared/schemaUtils';\nimport { Punchcard as PunchcardIcon } from '@splunk/visualization-icons';\nimport { Punchcard as PunchcardPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { VIZ_CATEGORICAL } from '@splunk/visualization-color-palettes';\nimport pick from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\n\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 {\n name: 'primary',\n description: 'DataSource that powers the visualization',\n },\n ],\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 bubbleColorConfig: {\n colors: ['rgba(123,86,219,0.4)', 'rgba(123,86,219,1)'],\n },\n};\n\nconst optionsSchema: OptionsSchema = {\n x: {\n default: '> primary | seriesByIndex(0)',\n description: 'Specify the dataSource applied to the x-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n y: {\n default: '> primary | seriesByIndex(1)',\n description: 'Specify the dataSource applied to the y-axis.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n category: {\n default: '> primary | seriesByIndex(3)',\n description: 'Specify the dataSource to apply series categories.',\n type: 'array',\n items: { type: ['string', 'number'] },\n },\n size: {\n default: '> primary | seriesByIndex(2)',\n description: 'Specify the dataSource to apply bubble size in the chart.',\n type: 'array',\n items: { type: 'number' },\n },\n xField: {\n default: '> x | getField()',\n description: 'Specify the field that should be mapped to the x-axis.',\n type: 'string',\n },\n yField: {\n default: '> y | getField()',\n description: 'Specify the field that should be mapped to the y-axis.',\n type: 'string',\n },\n categoryField: {\n default: '> category | getField()',\n description: 'Specify the field that should be mapped to the series categories.',\n type: 'string',\n },\n sizeField: {\n default: '> size | getField()',\n description: 'Specify the field that should be mapped to the bubble size in the chart.',\n type: 'string',\n },\n backgroundColor: {\n default: '> themes.defaultBackgroundColor',\n description:\n 'Specify the color used for the background. 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 bubbleColor: {\n default: '> size | gradient(bubbleColorConfig)',\n description:\n 'Specify the coloring method used for the bubbles when the colorMode “dynamic” is specified. For example “> size | gradient(bubbleColorConfig)\".',\n type: ['string', 'array'],\n },\n bubbleLabelDisplay: {\n default: 'all',\n description:\n 'Specify whether all bubble labels, the max value bubble labels, or none of the bubble labels should be displayed.',\n pattern: getPattern(['all', 'max', 'off']),\n type: 'string',\n },\n bubbleRadiusMax: {\n default: 15,\n description:\n 'Specify the max radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRadiusMin: {\n default: 1,\n description:\n 'Specify the min radius (in pixels) of the bubbles when showDynamicBubbleSize option is false. Greater than 0.',\n type: 'number',\n },\n bubbleRowScale: {\n default: 'global',\n description: 'Specify how bubbles are scaled relative to other rows.',\n pattern: getPattern(['global', 'row']),\n type: 'string',\n },\n bubbleSizeMax: {\n default: 1,\n description:\n 'Specify the max percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMin: {\n default: 0.25,\n description:\n 'Specify the min percentage (in decimal format) of space a bubble should take up within a cell when showDynamicBubbleSize option is true. The number specified must be between 0 and 1.',\n type: 'number',\n },\n bubbleSizeMethod: {\n default: 'area',\n description: 'Specify whether bubble area or diameter corresponds to the size value.',\n pattern: getPattern(['radius', 'area']),\n type: 'string',\n },\n colorMode: {\n default: 'dynamic',\n description: 'Specify the coloring method used for the bubbles.',\n pattern: getPattern(['categorical', 'dynamic']),\n type: 'string',\n },\n legendDisplay: {\n default: 'right',\n description: 'Specify the location of the legend on the panel.',\n pattern: getPattern(['right', 'off']),\n type: 'string',\n },\n seriesColors: {\n default: VIZ_CATEGORICAL,\n description: 'Specify the colors used for a series. For example, \"#FF0000\", \"#0000FF\", \"#008000\".',\n type: 'array',\n items: {\n type: 'string',\n },\n },\n showDefaultSort: {\n default: false,\n description: 'Specify whether axes should be sorted based on order of time, digits and strings.',\n type: 'boolean',\n },\n showDynamicBubbleSize: {\n default: true,\n description: 'Specify whether the bubble size should be dynamic or fixed.',\n type: 'boolean',\n },\n showMaxValuePulsation: {\n default: true,\n description: 'Specify whether the max value bubble should pulsate.',\n type: 'boolean',\n },\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n};\n\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Show bubble labels'),\n option: 'bubbleLabelDisplay',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('All'), value: 'all' },\n { label: _('Max'), value: 'max' },\n { label: _('Off'), value: 'off' },\n ],\n },\n },\n ],\n [\n {\n label: _('Pulsate max value'),\n option: 'showMaxValuePulsation',\n editor: 'editor.toggle',\n },\n ],\n [\n {\n label: _('Bubble scale'),\n option: 'bubbleSizeMethod',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Radius'), value: 'radius' },\n { label: _('Area'), value: 'area' },\n ],\n },\n },\n ],\n [\n {\n label: _('Bubble row scale'),\n option: 'bubbleRowScale',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Global'), value: 'global' },\n { label: _('By Row'), value: 'row' },\n ],\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Color mode'),\n option: 'colorMode',\n editor: 'editor.radioBar',\n editorProps: {\n values: [\n { label: _('Dynamic'), value: 'dynamic' },\n { label: _('Categorical'), value: 'categorical' },\n ],\n },\n },\n ],\n [\n // This should be hidden in categorical color mode\n {\n label: _('Color by field'),\n editor: 'editor.columnSelector',\n option: 'bubbleColor',\n context: 'bubbleColorConfig',\n showEditor: ({ options }) =>\n options.colorMode === 'dynamic' || options.colorMode === undefined,\n editorProps: {\n dataSourceKey: 'primary',\n prepareValue: (\n definition\n ): { context: Record<string, any>; options: Record<string, any> } => {\n const {\n options: { bubbleColor },\n } = definition;\n return {\n context: {},\n options: {\n bubbleColor: `${bubbleColor} | gradient(bubbleColorConfig)`,\n },\n };\n },\n },\n },\n ],\n getBackgroundColorEditor({ themes }),\n [\n {\n label: _('Legend display'),\n option: 'legendDisplay',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Right'), value: 'right' },\n { label: _('Off'), value: 'off' },\n ],\n },\n showEditor: ({ options }) => options.colorMode === 'categorical',\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.punchcard',\n /**\n * viz name\n */\n name: 'Punchcard',\n category: VizCategory.COMPARISONS,\n /**\n * viz icon\n */\n icon: PunchcardIcon,\n placeholderIcon: PunchcardPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'legend.click': {\n description: 'Triggered when user clicks a chart legend',\n },\n 'point.click': {\n description: 'Triggered when user clicks a data point',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.PLACEHOLDER, VizBehavior.EVENTS],\n themes,\n requiredProps: ['x', 'y', 'size'],\n};\n\nexport default enhanceConfig(config);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","export enum VizCategory {\n SINGLE_VALUE = 'Single Value',\n TRENDS = 'Trends',\n COMPARISONS = 'Comparisons',\n TABLE = 'Table',\n GAUGE = 'Gauge',\n DISTRIBUTIONS = 'Distributions',\n CHOROPLETH = 'Choropleth Maps',\n SHAPES = 'Shapes',\n MISC = 'misc',\n FLOW = 'Flow',\n CORRELATION = 'Correlation',\n SPATIAL = 'Spatial',\n}\n","module.exports = require(\"@splunk/themes/pick\");"],"sourceRoot":""}
|
package/Punchcard.js
CHANGED
|
@@ -216,7 +216,7 @@ var withFixedSizeContainer = function withFixedSizeContainer(Viz) {
|
|
|
216
216
|
|
|
217
217
|
return React.createElement(FixSizeItem, {
|
|
218
218
|
"data-test": "fix-size-item",
|
|
219
|
-
"data-splunk-visualization-version": "25.3.
|
|
219
|
+
"data-splunk-visualization-version": "25.3.4 - 9a3837dad",
|
|
220
220
|
width: width,
|
|
221
221
|
height: height,
|
|
222
222
|
backgroundColor: backgroundColor
|
|
@@ -1482,7 +1482,7 @@ var Cover = styled_components_1.default.div.withConfig({
|
|
|
1482
1482
|
componentId: "sc-1gsbnxb-0"
|
|
1483
1483
|
})(["position:absolute;left:0;right:0;top:0;bottom:0;"]);
|
|
1484
1484
|
var Blocker = styled_components_1.default.div.attrs({
|
|
1485
|
-
'data-splunk-visualization-version': "25.3.
|
|
1485
|
+
'data-splunk-visualization-version': "25.3.4 - 9a3837dad"
|
|
1486
1486
|
}).withConfig({
|
|
1487
1487
|
displayName: "withEditModeCover__Blocker",
|
|
1488
1488
|
componentId: "sc-1gsbnxb-1"
|
|
@@ -1802,13 +1802,9 @@ var themes = {
|
|
|
1802
1802
|
}
|
|
1803
1803
|
};
|
|
1804
1804
|
var editorConfig = [{
|
|
1805
|
-
label: i18n_1._('
|
|
1805
|
+
label: i18n_1._('Data display'),
|
|
1806
1806
|
layout: [[{
|
|
1807
|
-
label: i18n_1._('
|
|
1808
|
-
option: 'showMaxValuePulsation',
|
|
1809
|
-
editor: 'editor.toggle'
|
|
1810
|
-
}], [{
|
|
1811
|
-
label: i18n_1._('Show Bubble Labels'),
|
|
1807
|
+
label: i18n_1._('Show bubble labels'),
|
|
1812
1808
|
option: 'bubbleLabelDisplay',
|
|
1813
1809
|
editor: 'editor.radioBar',
|
|
1814
1810
|
editorProps: {
|
|
@@ -1824,36 +1820,40 @@ var editorConfig = [{
|
|
|
1824
1820
|
}]
|
|
1825
1821
|
}
|
|
1826
1822
|
}], [{
|
|
1827
|
-
label: i18n_1._('
|
|
1828
|
-
option: '
|
|
1823
|
+
label: i18n_1._('Pulsate max value'),
|
|
1824
|
+
option: 'showMaxValuePulsation',
|
|
1825
|
+
editor: 'editor.toggle'
|
|
1826
|
+
}], [{
|
|
1827
|
+
label: i18n_1._('Bubble scale'),
|
|
1828
|
+
option: 'bubbleSizeMethod',
|
|
1829
1829
|
editor: 'editor.radioBar',
|
|
1830
1830
|
editorProps: {
|
|
1831
1831
|
values: [{
|
|
1832
|
-
label: i18n_1._('
|
|
1833
|
-
value: '
|
|
1832
|
+
label: i18n_1._('Radius'),
|
|
1833
|
+
value: 'radius'
|
|
1834
1834
|
}, {
|
|
1835
|
-
label: i18n_1._('
|
|
1836
|
-
value: '
|
|
1835
|
+
label: i18n_1._('Area'),
|
|
1836
|
+
value: 'area'
|
|
1837
1837
|
}]
|
|
1838
1838
|
}
|
|
1839
1839
|
}], [{
|
|
1840
|
-
label: i18n_1._('Bubble
|
|
1841
|
-
option: '
|
|
1840
|
+
label: i18n_1._('Bubble row scale'),
|
|
1841
|
+
option: 'bubbleRowScale',
|
|
1842
1842
|
editor: 'editor.radioBar',
|
|
1843
1843
|
editorProps: {
|
|
1844
1844
|
values: [{
|
|
1845
|
-
label: i18n_1._('
|
|
1846
|
-
value: '
|
|
1845
|
+
label: i18n_1._('Global'),
|
|
1846
|
+
value: 'global'
|
|
1847
1847
|
}, {
|
|
1848
|
-
label: i18n_1._('
|
|
1849
|
-
value: '
|
|
1848
|
+
label: i18n_1._('By Row'),
|
|
1849
|
+
value: 'row'
|
|
1850
1850
|
}]
|
|
1851
1851
|
}
|
|
1852
1852
|
}]]
|
|
1853
1853
|
}, {
|
|
1854
|
-
label: i18n_1._('
|
|
1854
|
+
label: i18n_1._('Color and style'),
|
|
1855
1855
|
layout: [[{
|
|
1856
|
-
label: i18n_1._('Color
|
|
1856
|
+
label: i18n_1._('Color mode'),
|
|
1857
1857
|
option: 'colorMode',
|
|
1858
1858
|
editor: 'editor.radioBar',
|
|
1859
1859
|
editorProps: {
|
|
@@ -1867,7 +1867,7 @@ var editorConfig = [{
|
|
|
1867
1867
|
}
|
|
1868
1868
|
}], [// This should be hidden in categorical color mode
|
|
1869
1869
|
{
|
|
1870
|
-
label: i18n_1._('Color by
|
|
1870
|
+
label: i18n_1._('Color by field'),
|
|
1871
1871
|
editor: 'editor.columnSelector',
|
|
1872
1872
|
option: 'bubbleColor',
|
|
1873
1873
|
context: 'bubbleColorConfig',
|
|
@@ -1888,10 +1888,9 @@ var editorConfig = [{
|
|
|
1888
1888
|
}
|
|
1889
1889
|
}
|
|
1890
1890
|
}], BackgroundColor_1.default({
|
|
1891
|
-
themes: themes
|
|
1892
|
-
labelPosition: 'left'
|
|
1891
|
+
themes: themes
|
|
1893
1892
|
}), [{
|
|
1894
|
-
label: i18n_1._('Legend
|
|
1893
|
+
label: i18n_1._('Legend display'),
|
|
1895
1894
|
option: 'legendDisplay',
|
|
1896
1895
|
editor: 'editor.select',
|
|
1897
1896
|
editorProps: {
|