@splunk/visualizations 27.5.0 → 28.0.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/Area.config.js +19 -21
- package/Area.config.js.map +3 -3
- package/Area.js +54 -32
- package/Area.js.map +3 -3
- package/Bar.config.js +18 -21
- package/Bar.config.js.map +3 -3
- package/Bar.js +48 -31
- package/Bar.js.map +3 -3
- package/Bubble.config.js +39 -44
- package/Bubble.config.js.map +4 -4
- package/Bubble.js +69 -51
- package/Bubble.js.map +4 -4
- package/CHANGELOG.external.md +35 -7
- package/ChoroplethSvg.config.js +47 -43
- package/ChoroplethSvg.config.js.map +4 -4
- package/ChoroplethSvg.js +72 -45
- package/ChoroplethSvg.js.map +4 -4
- package/Column.config.js +15 -20
- package/Column.config.js.map +3 -3
- package/Column.js +42 -29
- package/Column.js.map +3 -3
- package/Ellipse.config.js +16 -7
- package/Ellipse.config.js.map +2 -2
- package/Ellipse.js +45 -19
- package/Ellipse.js.map +2 -2
- package/Events.config.js +38 -27
- package/Events.config.js.map +4 -4
- package/Events.js +113 -97
- package/Events.js.map +4 -4
- package/FEATUREFLAGS.md +9 -9
- package/FillerGauge.config.js +20 -13
- package/FillerGauge.config.js.map +3 -3
- package/FillerGauge.js +76 -27
- package/FillerGauge.js.map +4 -4
- package/Image.config.js +5 -6
- package/Image.config.js.map +2 -2
- package/Image.js +29 -14
- package/Image.js.map +2 -2
- package/Line.config.js +15 -20
- package/Line.config.js.map +3 -3
- package/Line.js +50 -31
- package/Line.js.map +3 -3
- package/LinkGraph.config.js +39 -46
- package/LinkGraph.config.js.map +3 -3
- package/LinkGraph.js +70 -50
- package/LinkGraph.js.map +3 -3
- package/MIGRATION.md +169 -40
- package/Map.config.js +36 -13
- package/Map.config.js.map +4 -4
- package/Map.js +170 -105
- package/Map.js.map +4 -4
- package/Markdown.config.js +4 -5
- package/Markdown.config.js.map +2 -2
- package/Markdown.js +117 -72
- package/Markdown.js.map +3 -3
- package/MarkerGauge.config.js +14 -12
- package/MarkerGauge.config.js.map +3 -3
- package/MarkerGauge.js +107 -69
- package/MarkerGauge.js.map +4 -4
- package/ParallelCoordinates.config.js +14 -12
- package/ParallelCoordinates.config.js.map +3 -3
- package/ParallelCoordinates.js +113 -59
- package/ParallelCoordinates.js.map +3 -3
- package/Pie.config.js +51 -38
- package/Pie.config.js.map +4 -4
- package/Pie.js +109 -85
- package/Pie.js.map +4 -4
- package/Punchcard.config.js +36 -34
- package/Punchcard.config.js.map +4 -4
- package/Punchcard.js +153 -87
- package/Punchcard.js.map +4 -4
- package/README.internal.md +15 -15
- package/README.md +10 -10
- package/Rectangle.config.js +16 -7
- package/Rectangle.config.js.map +2 -2
- package/Rectangle.js +45 -19
- package/Rectangle.js.map +2 -2
- package/Sankey.config.js +69 -17
- package/Sankey.config.js.map +4 -4
- package/Sankey.js +178 -49
- package/Sankey.js.map +4 -4
- package/Scatter.config.js +37 -42
- package/Scatter.config.js.map +3 -3
- package/Scatter.js +70 -53
- package/Scatter.js.map +3 -3
- package/SingleValue.config.js +32 -18
- package/SingleValue.config.js.map +4 -4
- package/SingleValue.js +237 -93
- package/SingleValue.js.map +4 -4
- package/SingleValueBasic.js +1 -0
- package/SingleValueBasic.js.map +2 -2
- package/SingleValueIcon.config.js +22 -11
- package/SingleValueIcon.config.js.map +2 -2
- package/SingleValueIcon.js +84 -28
- package/SingleValueIcon.js.map +2 -2
- package/SingleValueRadial.config.js +34 -23
- package/SingleValueRadial.config.js.map +3 -3
- package/SingleValueRadial.js +89 -48
- package/SingleValueRadial.js.map +4 -4
- package/SparkLine.js +153 -49
- package/SparkLine.js.map +2 -2
- package/Table.config.js +71 -51
- package/Table.config.js.map +3 -3
- package/Table.js +282 -145
- package/Table.js.map +3 -3
- package/Timeline.config.js +36 -34
- package/Timeline.config.js.map +4 -4
- package/Timeline.js +67 -59
- package/Timeline.js.map +4 -4
- package/common/Charting.js +1 -0
- package/common/Charting.js.map +2 -2
- package/common/ChartingApi.js +1 -0
- package/common/ChartingApi.js.map +1 -1
- package/common/DocExampleWithVizSandbox.js +7 -2
- package/common/DocExampleWithVizSandbox.js.map +2 -2
- package/common/EventsDoc.js +31 -5
- package/common/EventsDoc.js.map +4 -4
- package/common/GaugeMajorTicks.js +4 -1
- package/common/GaugeMajorTicks.js.map +2 -2
- package/common/GaugeValueMarker.js +31 -3
- package/common/GaugeValueMarker.js.map +4 -4
- package/common/OptionsDoc.js +4 -1
- package/common/OptionsDoc.js.map +2 -2
- package/common/OverviewDoc.js +66 -50
- package/common/OverviewDoc.js.map +4 -4
- package/common/SplunkVisualization.js +1 -0
- package/common/SplunkVisualization.js.map +1 -1
- package/common/SplunkVisualizationApi.js +1 -0
- package/common/SplunkVisualizationApi.js.map +1 -1
- package/common/ThemedDefaults.js +67 -0
- package/common/ThemedDefaults.js.map +7 -0
- package/common/ThemesDoc.js +6 -9
- package/common/ThemesDoc.js.map +2 -2
- package/common/chartingUtils.js +1 -0
- package/common/chartingUtils.js.map +2 -2
- package/common/docUtils.js +6 -1
- package/common/docUtils.js.map +2 -2
- package/common/gaugeUtils.js +6 -1
- package/common/gaugeUtils.js.map +2 -2
- package/common/shapeUtils.js +6 -4
- package/common/shapeUtils.js.map +2 -2
- package/common/utils/configUtils.js +4 -5
- package/common/utils/configUtils.js.map +2 -2
- package/common/utils/dataUtils.js +1 -0
- package/common/utils/dataUtils.js.map +2 -2
- package/common/utils/featureFlagUtils.js +1 -0
- package/common/utils/featureFlagUtils.js.map +1 -1
- package/common/utils/hocUtils.js +1 -0
- package/common/utils/hocUtils.js.map +1 -1
- package/common/utils/mapUtils.js +35 -22
- package/common/utils/mapUtils.js.map +4 -4
- package/common/utils/singleValueUtils.js +8 -2
- package/common/utils/singleValueUtils.js.map +2 -2
- package/common/utils/styleUtils.js +1 -0
- package/common/utils/styleUtils.js.map +1 -1
- package/common/utils/testHelper.js +1 -0
- package/common/utils/testHelper.js.map +1 -1
- package/common/utils/trellisUtils.js +1 -0
- package/common/utils/trellisUtils.js.map +1 -1
- package/common/utils/urlUtils.js +1 -0
- package/common/utils/urlUtils.js.map +1 -1
- package/common/withDashboardViz.js +25 -8
- package/common/withDashboardViz.js.map +2 -2
- package/package.json +37 -35
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/common/utils/testHelper.tsx", "esm-externals:react", "esm-externals:@testing-library/react", "esm-externals:@splunk/themes/SplunkThemeProvider"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nimport { render, RenderResult } from '@testing-library/react';\nimport SplunkThemeProvider from '@splunk/themes/SplunkThemeProvider';\n\nexport const renderWithTheme = (Component: React.ReactElement, themeToTest = {}): RenderResult =>\n render(\n <SplunkThemeProvider\n additionalThemeProperties={{ ...themeToTest }}\n colorScheme=\"light\"\n density=\"comfortable\"\n family=\"enterprise\"\n >\n {Component}\n </SplunkThemeProvider>\n );\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@testing-library/react\";\nexport * from \"@testing-library/react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes/SplunkThemeProvider\";\nexport * from \"@splunk/themes/SplunkThemeProvider\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE,IAAAA,iBAAA;AAAA,SAAAA,gBAAA;AAAA,iBAAAC;AAAA;AACA,IAAAC,iBAA+B;AAC/B,WAAAC,gBAAc;AACd,IAAOC,iBAAS,aAAaF,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAG,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;AHC9D,IAAM,kBAAkB,CAAC,WAA+B,cAAc,CAAC,UAC1E;AAAA,EACI;AAAA,IAAC;AAAA;AAAA,MACG,2BAA2B,mBAAK;AAAA,MAChC,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,QAAO;AAAA;AAAA,IAEN;AAAA,EACL;AACJ;",
|
|
6
6
|
"names": ["react_exports", "react_default", "defaultImport", "react_exports", "react_default", "defaultImport"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* Copyright © 2020 Splunk Inc.
|
|
2
2
|
SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
|
|
3
3
|
in part without a valid written license from Splunk Inc. is PROHIBITED. */
|
|
4
|
+
"use strict";
|
|
4
5
|
var __create = Object.create;
|
|
5
6
|
var __defProp = Object.defineProperty;
|
|
6
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/common/utils/trellisUtils.ts", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/trellisUtils"],
|
|
4
4
|
"sourcesContent": ["import { cloneDeep, omit } from 'lodash';\nimport { FieldEntry } from '@splunk/visualizations-shared/dataSourceUtils';\nimport {\n DataSplitMode,\n CHART,\n TIMECHART,\n STATS,\n UNKNOWN,\n extractDataSourceAggregationKeysChart,\n extractDataSourceAggregationKeysStats,\n extractSplitByFieldsChartFields,\n extractSplitByFieldsForStats,\n extractSplitByFieldsForUnknown,\n} from '@splunk/visualizations-shared/trellisUtils';\nimport { DataSource } from '../interfaces/DataSource';\n\nexport type SplitDataSource = { [key: string]: { [name: string]: DataSource } };\nexport interface DataSplitResult {\n splitDataSources: SplitDataSource;\n errorCode: 'UNKNOWN_DATA_SPLIT_MODE' | 'INVALID_SPLIT_BY_FIELD' | 'UNKNOWN';\n}\nexport const AGGREGATIONS = 'aggregations';\n\n/**\n * There can be certain SPL cmds that can produce dataSource without a specific field meta info (like group_by_rank, split_by_field etc),\n * to categorize it,\n * Example1:- `index = \"_internal\" | chart count`\n * Example2:- `index=_internal | chart avg(count), max(count)`\n * Example3:- `index = \"_internal\" | stats count`\n * Example4:- `index=_internal | stats avg(count), max(count)`\n */\nexport const dataSourcesSplitByAggregationsUnknown = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let errorCode = null;\n\n if (fields && fields.length) {\n splitDataSources = {};\n for (let i = 0; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nconst toFieldEntries = (fields: FieldEntry[] | string[]): FieldEntry[] => {\n return fields.map(field => {\n if (typeof field === 'string') {\n return { name: field };\n }\n return field;\n });\n};\n\nexport const dataSourcesSplitByAggregationsTimechartAndChart = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = toFieldEntries(dataSource?.primary?.data?.fields);\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysChart(fields);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n fields.forEach((field: FieldEntry, idx) => {\n const fieldName = field?.name;\n if (\n fieldName !== '_time' &&\n !fieldName?.startsWith('_') &&\n field.data_source === splitByField\n ) {\n splitDataSources[splitByField].primary.data.fields.push(field);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n });\n } else if ((!splitByFields || !splitByFields.length) && fields.length > 1) {\n // handle where data_source doesnot exist in fields\n // example1 :- index=_internal | timechart count\n // example2 :- index=_internal | timechart max(count) avg(count)\n splitDataSources = {};\n for (let i = 1; i < fields.length; i += 1) {\n const fieldName = (fields[i] as FieldEntry).name;\n if (!fieldName?.startsWith('_')) {\n splitDataSources[fieldName] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[fieldName].primary.data.fields = [fields[0], fields[i]];\n splitDataSources[fieldName].primary.data.columns = [columns[0], columns[i]];\n }\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByAggregationsStats = (dataSource: {\n [name: string]: DataSource;\n}): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractDataSourceAggregationKeysStats(fields as FieldEntry[]);\n }\n\n if (splitByFields && splitByFields.length > 0) {\n splitDataSources = {};\n splitByFields.forEach(splitByField => {\n splitDataSources[splitByField] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[splitByField].primary.data.fields = [fields[0]];\n splitDataSources[splitByField].primary.data.columns = [columns[0]];\n const idx = fields.findIndex(field => field.name === splitByField);\n if (idx > 0) {\n splitDataSources[splitByField].primary.data.fields.push(fields[idx]);\n splitDataSources[splitByField].primary.data.columns.push(columns[idx]);\n }\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeTimechart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields as FieldEntry[]);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n // not including internal fields\n if (!fields[i].name?.startsWith('_')) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: fields[0].name },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const dataSourcesSplitByModeChart = (\n dataSource: { [name: string]: DataSource },\n splitBy: string\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields as FieldEntry[];\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields = extractSplitByFieldsChartFields(fields);\n }\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n splitDataSources = {};\n const splitByFieldIdx = splitByFields.findIndex(f => f === splitBy);\n const otherSplitBy = splitByFields.filter(f => f !== splitBy);\n const dataSourceKeys = extractDataSourceAggregationKeysChart(fields);\n const nonDataSourceAggregations = [];\n if (\n !dataSourceKeys.length &&\n fields[0].groupby_rank === '0' &&\n fields.length &&\n !fields[1].groupby_rank\n ) {\n /* check for another aggregation scenario where no key 'data_source' will be returned (applies for both chart and stats cmd)\n For example :-\n index=_internal | chart count by status\n index = \"_internal\" | chart max(count) avg(count) by status\n index = \"_internal\" | stats max(count) avg(count) by status\n where field meta info is in this format -\n \"fields\": [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"max(count)\"\n },\n {\n \"name\": \"avg(count)\"\n }\n ]\n */\n\n for (let i = 1; i < fields.length; i += 1) {\n nonDataSourceAggregations.push(fields[i].name);\n }\n }\n if (splitByFieldIdx === 0) {\n // if splitBy is the first field, split row wise\n const valueKeys = cloneDeep(columns[0]);\n valueKeys.forEach((val, idx) => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [];\n if (otherSplitBy.length) {\n splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }]; // there can only be one otherSplitBy for chart cmd\n }\n if (dataSourceKeys.length) {\n const columnValues = [[]];\n splitDataSources[val].primary.data.fields = [\n ...splitDataSources[val].primary.data.fields,\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n dataSourceKeys.forEach(() => {\n columnValues.push([]);\n });\n /**\n * There can be chart SPL cmd where there are multiple data_source keys in the field meta info.\n * For eg - index = \"_internal\" | chart avg(count) max(count) by status , user) can result in fields and columns as below where \"data_source\" keys are \"avg(count)\" and \"max(count)\"\n * 'fields' : [\n {\n \"name\": \"status\",\n \"groupby_rank\": \"0\"\n },\n {\n \"name\": \"avg(count): userA\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"avg(count): userB\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"avg(count): userC\",\n \"data_source\": \"avg(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n {\n \"name\": \"max(count): userA\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userA\"\n },\n {\n \"name\": \"max(count): userB\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userB\"\n },\n {\n \"name\": \"max(count): userC\",\n \"data_source\": \"max(count)\",\n \"splitby_field\": \"user\",\n \"splitby_value\": \"userC\"\n },\n ]\n 'columns' : [['200','303','304','400'], ['1','2','3','4'], ['10','20','30','40'], ['100','200','300','400'], ['5','6','7','8'], ['50','60','70','80'],['500','600','700','800']]\n\n In this case when we split row wise, the data_source keys for userA appears in indices [1, 4, ..], the data_source keys for userB appears in indices [2, 5, ..]\n The resulting dataSplit for status '200', will have the fields => ['user','avg(count)', 'max(count)'] columns => [['userA', 'userB', 'userC'],['1','10','100'], ['5', '50', '500'] ]\n\n For the example above for..loop below will iterate from i= 1 to 3 (Math.ceil((fields.length - 1) / dataSourceKeys.length)). Exclude i = 0 as first column is the splitBy input.\n Since there are 2 data_source keys 'avg(count)' and 'max(count)', dataSourceKeys.forEach loop will collect individual arrays specific to the columnValues[indx] as below.\n columnValues[0] = ['userA', 'userB', 'userC']\n columnValues[1] = ['1','10','100']\n columnValues[2] = ['5', '50', '500']\n */\n for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {\n columnValues[0].push(\n fields[i].splitby_value ? fields[i].splitby_value : fields[i].name\n );\n dataSourceKeys.forEach((dskey, dsIndx) => {\n const mul = (fields.length - 1) / dataSourceKeys.length; // This line does the index calculation\n columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);\n });\n }\n splitDataSources[val].primary.data.columns = columnValues;\n } else if (nonDataSourceAggregations.length) {\n // There can be SPL where data_source field metainfo is not available and needs special handling\n // For eg :-\n // index=_internal | chart count by status\n // index = \"_internal\" | chart max(count) avg(count) by status\n // index = \"_internal\" | stats max(count) avg(count) by status\n const columnValues = [];\n fields.forEach((aggregationField, fieldIdx) => {\n if (fieldIdx > 0) {\n splitDataSources[val].primary.data.fields.push(aggregationField);\n columnValues.push([columns[fieldIdx][idx]]);\n }\n });\n splitDataSources[val].primary.data.columns = columnValues;\n }\n });\n } else {\n // split column wise\n const valueKeys = [];\n for (let i = 1; i < fields.length; i += 1) {\n valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);\n }\n valueKeys.forEach(val => {\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = [\n { name: otherSplitBy[0] },\n ...dataSourceKeys.map(k => ({\n name: k,\n })),\n ];\n splitDataSources[val].primary.data.columns = [[...columns[0]]];\n dataSourceKeys.forEach(dsKey => {\n fields.forEach((field, idx) => {\n if (\n field.data_source === dsKey &&\n (field.splitby_value === val || field.name === val)\n ) {\n splitDataSources[val].primary.data.columns.push([...columns[idx]]);\n }\n });\n });\n });\n }\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\n/**\n * This method does datasplitting for 'stats' and generic cmds('makeresults','table' etc - categoried as 'unknown' splitMode).\n * The main difference is for 'stats' cmd possible splitBy fields have 'group_by_rank' in field meta info, whereas for 'unknown' cmd it can be any fieldnames\n */\nexport const dataSourcesSplitByModeStatsorUnknown = (\n dataSource: { [name: string]: DataSource },\n splitBy: string,\n splitMode?: DataSplitMode\n): DataSplitResult => {\n const fields = dataSource?.primary?.data?.fields;\n const columns = dataSource?.primary?.data?.columns;\n let splitDataSources = null;\n let splitByFields = [];\n let errorCode = null;\n if (typeof fields[0] !== 'string') {\n splitByFields =\n splitMode !== UNKNOWN\n ? extractSplitByFieldsForStats(fields as FieldEntry[])\n : extractSplitByFieldsForUnknown(fields as FieldEntry[]);\n }\n const splitByIndex = fields?.findIndex(\n field => field === splitBy || (field as FieldEntry).name === splitBy\n );\n if (splitByFields && splitByFields.indexOf(splitBy) > -1) {\n const splitByColumn = dataSource?.primary?.data?.columns[splitByIndex];\n splitDataSources = {};\n splitByColumn.forEach((val, idx) => {\n if (!splitDataSources[val]) {\n splitDataSources[val] = [idx];\n } else {\n splitDataSources[val].push(idx);\n }\n });\n const cloneFields = cloneDeep(fields);\n cloneFields.splice(splitByIndex, 1);\n const valueKeys = Object.keys(splitDataSources);\n valueKeys.forEach(val => {\n const valIndices = cloneDeep(splitDataSources[val]);\n splitDataSources[val] = cloneDeep(\n omit(dataSource, ['primary.data.fields', 'primary.data.columns'])\n );\n splitDataSources[val].primary.data.fields = cloneFields;\n splitDataSources[val].primary.data.columns = [];\n columns.forEach((col, idx) => {\n if (idx !== splitByIndex) {\n const newCol = valIndices.map(valIdx => col[valIdx]);\n splitDataSources[val].primary.data.columns.push(newCol);\n }\n });\n });\n } else {\n errorCode = 'INVALID_SPLIT_BY_FIELD';\n }\n return { splitDataSources, errorCode };\n};\n\nexport const getTrellisDataSourcesBySplitMode = (\n splitMode: DataSplitMode,\n dataSources: { [name: string]: DataSource },\n trellisSplitBy: string\n): DataSplitResult => {\n let result: DataSplitResult = null;\n try {\n if (splitMode === TIMECHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeTimechart(dataSources, trellisSplitBy);\n } else if (splitMode === STATS) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsStats(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, STATS);\n } else if (splitMode === CHART) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources)\n : dataSourcesSplitByModeChart(dataSources, trellisSplitBy);\n } else if (splitMode === UNKNOWN) {\n result =\n trellisSplitBy === AGGREGATIONS\n ? dataSourcesSplitByAggregationsUnknown(dataSources)\n : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, UNKNOWN);\n }\n } catch (ex) {\n // eslint-disable-next-line no-console\n console.error('getTrellisDataSourcesBySplitMode ', ex);\n result = { splitDataSources: null, errorCode: 'UNKNOWN' };\n }\n return result;\n};\n\n/**\n * sets legendDisplay to off when a visualization is in trellis mode and not set by the user\n * @param {Boolean} isTrellisOn\n * @param {DashboardVizOpts} options\n * @param {DashboardVizOpts} defaultOptions\n * @returns { {'legendDisplay', 'off'} or {} }\n */\nexport const turnOffLegendDisplayWhenTrellisIsOn = (\n isTrellisOn: boolean,\n options: Record<string, any>\n): Record<string, string> => {\n if (isTrellisOn && !options.legendDisplay) {\n return {\n legendDisplay: 'off',\n };\n }\n return {};\n};\n\n/**\n * helper fn that calculates shared min and max from the split data in trellis mode\n * @param {splitData} SplitDataSource\n * @returns {Array<number>} [min, max]\n */\nconst calculateSharedMinMax = (splitData: SplitDataSource): Array<number> => {\n let max = -Infinity;\n let min = Infinity;\n\n Object.keys(splitData).forEach(splitByKey => {\n const datasources = splitData[splitByKey];\n Object.keys(datasources).forEach(datasourceName => {\n const dataColumns = datasources[datasourceName].data.columns;\n dataColumns.forEach(column => {\n column.forEach(point => {\n // Convert the string to a number. Non-numeric strings are converted to 'nan' and will be ignored.\n const pointNumber = Number(point);\n if (pointNumber > max) {\n max = pointNumber;\n }\n if (pointNumber < min) {\n min = pointNumber;\n }\n });\n });\n });\n });\n\n return [min, max];\n};\n\n/**\n * determines min and max to use in trellis mode\n * @param {splitData} SplitDataSource\n * @returns {Array<number | string>} [min, max]\n */\nexport const determineMinMax = (\n splitData: SplitDataSource,\n trellisSharedScale: boolean,\n yAxisMin: number | string,\n yAxisMax: number | string,\n stackMode?: string\n) => {\n if (!trellisSharedScale || stackMode === 'stacked100' || (yAxisMin !== 'auto' && yAxisMax !== 'auto'))\n return [yAxisMin, yAxisMax];\n\n const [sharedMin, sharedMax] = calculateSharedMinMax(splitData);\n\n const shouldUseSharedMax = sharedMax !== -Infinity && yAxisMax === 'auto';\n const shouldUseSharedMin = sharedMin !== Infinity && yAxisMin === 'auto';\n\n return [shouldUseSharedMin ? sharedMin : yAxisMin, shouldUseSharedMax ? sharedMax : yAxisMax];\n};\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualizations-shared/trellisUtils\";\nexport * from \"@splunk/visualizations-shared/trellisUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["trellisUtils_exports", "defaultImport"]
|
|
7
7
|
}
|
package/common/utils/urlUtils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* Copyright © 2020 Splunk Inc.
|
|
2
2
|
SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
|
|
3
3
|
in part without a valid written license from Splunk Inc. is PROHIBITED. */
|
|
4
|
+
"use strict";
|
|
4
5
|
var __defProp = Object.defineProperty;
|
|
5
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
7
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/common/utils/urlUtils.ts"],
|
|
4
4
|
"sourcesContent": ["export const isValidUrl = (value: string) => {\n try {\n const url = new URL(value);\n return !!url.protocol;\n } catch (err) {\n return false;\n }\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,aAAa,CAAC,UAAkB;AACzC,MAAI;AACA,UAAM,MAAM,IAAI,IAAI,KAAK;AACzB,WAAO,CAAC,CAAC,IAAI;AAAA,EACjB,SAAS,KAAK;AACV,WAAO;AAAA,EACX;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* Copyright © 2020 Splunk Inc.
|
|
2
2
|
SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
|
|
3
3
|
in part without a valid written license from Splunk Inc. is PROHIBITED. */
|
|
4
|
+
"use strict";
|
|
4
5
|
var __create = Object.create;
|
|
5
6
|
var __defProp = Object.defineProperty;
|
|
6
7
|
var __defProps = Object.defineProperties;
|
|
@@ -435,9 +436,14 @@ var Item = styled_components_default.div.attrs(({ width }) => ({
|
|
|
435
436
|
position: relative;
|
|
436
437
|
background-color: ${(props) => (0, colorUtils_exports.isColor)(props.backgroundColor) && props.backgroundColor || props.theme.defaultBackgroundColor}};
|
|
437
438
|
`;
|
|
438
|
-
var FixSizeItem = styled_components_default.div.attrs(
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
var FixSizeItem = styled_components_default.div.attrs(
|
|
440
|
+
({
|
|
441
|
+
width,
|
|
442
|
+
height
|
|
443
|
+
}) => ({
|
|
444
|
+
style: __spreadValues(__spreadValues({}, width && { width: (0, style_exports.toPx)(width) }), height && { height: (0, style_exports.toPx)(height) })
|
|
445
|
+
})
|
|
446
|
+
)`
|
|
441
447
|
position: relative;
|
|
442
448
|
flex-direction: column;
|
|
443
449
|
flex: 1;
|
|
@@ -471,7 +477,7 @@ var withFixedSizeContainer = (Viz) => {
|
|
|
471
477
|
FixSizeItem,
|
|
472
478
|
{
|
|
473
479
|
"data-test": "fix-size-item",
|
|
474
|
-
"data-splunk-visualization-version": "
|
|
480
|
+
"data-splunk-visualization-version": "28.0.0 - 0c5f07712",
|
|
475
481
|
width,
|
|
476
482
|
height,
|
|
477
483
|
backgroundColor
|
|
@@ -537,7 +543,7 @@ var Cover = styled_components_default.div`
|
|
|
537
543
|
bottom: 0;
|
|
538
544
|
`;
|
|
539
545
|
var Blocker = styled_components_default.div.attrs({
|
|
540
|
-
"data-splunk-visualization-version": "
|
|
546
|
+
"data-splunk-visualization-version": "28.0.0 - 0c5f07712"
|
|
541
547
|
})`
|
|
542
548
|
position: relative;
|
|
543
549
|
width: 100%;
|
|
@@ -915,7 +921,12 @@ var useGetXAndYFields = ({
|
|
|
915
921
|
y2Fields: options.y2 ? "> y2 | getField()" : void 0,
|
|
916
922
|
fieldTypes: "> primary | getType()"
|
|
917
923
|
};
|
|
918
|
-
const {
|
|
924
|
+
const {
|
|
925
|
+
xField = "",
|
|
926
|
+
yFields = [],
|
|
927
|
+
y2Fields = [],
|
|
928
|
+
fieldTypes
|
|
929
|
+
} = Options_exports.Options.evaluate(
|
|
919
930
|
{ options: optionsToEvaluate, context },
|
|
920
931
|
dataSourcesWithOnlyOnePoint,
|
|
921
932
|
() => {
|
|
@@ -1196,7 +1207,9 @@ var withDashboardViz = (opts) => {
|
|
|
1196
1207
|
return result;
|
|
1197
1208
|
}
|
|
1198
1209
|
} catch (e) {
|
|
1199
|
-
|
|
1210
|
+
if (e instanceof Error) {
|
|
1211
|
+
console.error(`unexpected error evaluating options: ${e.message}`);
|
|
1212
|
+
}
|
|
1200
1213
|
return {};
|
|
1201
1214
|
}
|
|
1202
1215
|
return {};
|
|
@@ -1255,7 +1268,11 @@ var withDashboardViz = (opts) => {
|
|
|
1255
1268
|
if (ev && ev.payload) {
|
|
1256
1269
|
payload = ev.payload;
|
|
1257
1270
|
}
|
|
1258
|
-
return onEventTrigger({
|
|
1271
|
+
return onEventTrigger({
|
|
1272
|
+
originalEvent: ev,
|
|
1273
|
+
payload,
|
|
1274
|
+
type: eventName
|
|
1275
|
+
});
|
|
1259
1276
|
};
|
|
1260
1277
|
if (parentKeys) {
|
|
1261
1278
|
for (let i = parentKeys.length - 1; i >= 0; i -= 1) {
|