@splunk/visualizations 27.1.0 → 27.2.1
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.js +2 -2
- package/Bar.js +2 -2
- package/Bubble.js +2 -2
- package/ChoroplethSvg.js +6 -9
- package/ChoroplethSvg.js.map +3 -3
- package/Column.js +2 -2
- package/Ellipse.js +2 -2
- package/Events.js +106 -491
- package/Events.js.map +4 -4
- package/FillerGauge.js +3 -3
- package/FillerGauge.js.map +3 -3
- package/Image.js +2 -2
- package/Line.js +2 -2
- package/LinkGraph.js +23 -18
- package/LinkGraph.js.map +2 -2
- package/Map.config.js +114 -72
- package/Map.config.js.map +4 -4
- package/Map.js +139 -86
- package/Map.js.map +4 -4
- package/Markdown.js +2 -2
- package/MarkerGauge.js +2 -2
- package/ParallelCoordinates.js +3 -3
- package/ParallelCoordinates.js.map +3 -3
- package/Pie.js +2 -2
- package/Punchcard.js +199 -26
- package/Punchcard.js.map +4 -4
- package/Rectangle.js +2 -2
- package/Sankey.js +2 -2
- package/Scatter.js +2 -2
- package/SingleValue.js +19 -9
- package/SingleValue.js.map +3 -3
- package/SingleValueBasic.js +1 -1
- package/SingleValueBasic.js.map +3 -3
- package/SingleValueIcon.js +380 -117
- package/SingleValueIcon.js.map +4 -4
- package/SingleValueRadial.js +16 -9
- package/SingleValueRadial.js.map +3 -3
- package/SparkLine.js +1 -1
- package/SparkLine.js.map +3 -3
- package/Table.js +15 -10
- package/Table.js.map +3 -3
- package/Timeline.config.js +418 -0
- package/Timeline.config.js.map +7 -0
- package/Timeline.js +3074 -0
- package/Timeline.js.map +7 -0
- package/common/OptionsDoc.js +2 -2
- package/common/OptionsDoc.js.map +1 -1
- package/common/utils/mapUtils.js.map +2 -2
- package/common/utils/singleValueUtils.js +18 -8
- package/common/utils/singleValueUtils.js.map +2 -2
- package/common/withDashboardViz.js +2 -2
- package/package.json +43 -31
package/Map.config.js
CHANGED
|
@@ -54,68 +54,77 @@ __export(config_exports, {
|
|
|
54
54
|
});
|
|
55
55
|
module.exports = __toCommonJS(config_exports);
|
|
56
56
|
|
|
57
|
-
// esm-externals:@splunk/
|
|
58
|
-
var
|
|
59
|
-
__export(
|
|
60
|
-
default: () =>
|
|
57
|
+
// esm-externals:@splunk/ui-utils/i18n
|
|
58
|
+
var i18n_exports = {};
|
|
59
|
+
__export(i18n_exports, {
|
|
60
|
+
default: () => i18n_default
|
|
61
61
|
});
|
|
62
|
-
var defaultImport = __toESM(require("@splunk/
|
|
63
|
-
__reExport(
|
|
64
|
-
var
|
|
62
|
+
var defaultImport = __toESM(require("@splunk/ui-utils/i18n"));
|
|
63
|
+
__reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
|
|
64
|
+
var i18n_default = "default" in defaultImport ? defaultImport.default : defaultImport;
|
|
65
65
|
|
|
66
|
-
// esm-externals:@splunk/
|
|
67
|
-
var
|
|
68
|
-
__export(
|
|
69
|
-
default: () =>
|
|
66
|
+
// esm-externals:@splunk/themes
|
|
67
|
+
var themes_exports = {};
|
|
68
|
+
__export(themes_exports, {
|
|
69
|
+
default: () => themes_default
|
|
70
70
|
});
|
|
71
|
-
var defaultImport2 = __toESM(require("@splunk/
|
|
72
|
-
__reExport(
|
|
73
|
-
var
|
|
71
|
+
var defaultImport2 = __toESM(require("@splunk/themes"));
|
|
72
|
+
__reExport(themes_exports, require("@splunk/themes"));
|
|
73
|
+
var themes_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
|
|
74
|
+
|
|
75
|
+
// esm-externals:@splunk/visualization-color-palettes/editors/PresetPalettes
|
|
76
|
+
var PresetPalettes_exports = {};
|
|
77
|
+
__export(PresetPalettes_exports, {
|
|
78
|
+
default: () => PresetPalettes_default
|
|
79
|
+
});
|
|
80
|
+
var defaultImport3 = __toESM(require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
|
|
81
|
+
__reExport(PresetPalettes_exports, require("@splunk/visualization-color-palettes/editors/PresetPalettes"));
|
|
82
|
+
var PresetPalettes_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
|
|
74
83
|
|
|
75
84
|
// esm-externals:@splunk/visualization-schemas
|
|
76
85
|
var visualization_schemas_exports = {};
|
|
77
86
|
__export(visualization_schemas_exports, {
|
|
78
87
|
default: () => visualization_schemas_default
|
|
79
88
|
});
|
|
80
|
-
var
|
|
89
|
+
var defaultImport4 = __toESM(require("@splunk/visualization-schemas"));
|
|
81
90
|
__reExport(visualization_schemas_exports, require("@splunk/visualization-schemas"));
|
|
82
|
-
var visualization_schemas_default = "default" in
|
|
91
|
+
var visualization_schemas_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
|
|
83
92
|
|
|
84
|
-
// esm-externals:@splunk/
|
|
85
|
-
var
|
|
86
|
-
__export(
|
|
87
|
-
default: () =>
|
|
93
|
+
// esm-externals:@splunk/visualization-icons
|
|
94
|
+
var visualization_icons_exports = {};
|
|
95
|
+
__export(visualization_icons_exports, {
|
|
96
|
+
default: () => visualization_icons_default
|
|
88
97
|
});
|
|
89
|
-
var
|
|
90
|
-
__reExport(
|
|
91
|
-
var
|
|
98
|
+
var defaultImport5 = __toESM(require("@splunk/visualization-icons"));
|
|
99
|
+
__reExport(visualization_icons_exports, require("@splunk/visualization-icons"));
|
|
100
|
+
var visualization_icons_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
|
|
92
101
|
|
|
93
|
-
// esm-externals:@splunk/
|
|
94
|
-
var
|
|
95
|
-
__export(
|
|
96
|
-
default: () =>
|
|
102
|
+
// esm-externals:@splunk/visualization-icons/placeholders
|
|
103
|
+
var placeholders_exports = {};
|
|
104
|
+
__export(placeholders_exports, {
|
|
105
|
+
default: () => placeholders_default
|
|
97
106
|
});
|
|
98
|
-
var
|
|
99
|
-
__reExport(
|
|
100
|
-
var
|
|
107
|
+
var defaultImport6 = __toESM(require("@splunk/visualization-icons/placeholders"));
|
|
108
|
+
__reExport(placeholders_exports, require("@splunk/visualization-icons/placeholders"));
|
|
109
|
+
var placeholders_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
|
|
101
110
|
|
|
102
111
|
// esm-externals:lodash
|
|
103
112
|
var lodash_exports = {};
|
|
104
113
|
__export(lodash_exports, {
|
|
105
114
|
default: () => lodash_default
|
|
106
115
|
});
|
|
107
|
-
var
|
|
116
|
+
var defaultImport7 = __toESM(require("lodash"));
|
|
108
117
|
__reExport(lodash_exports, require("lodash"));
|
|
109
|
-
var lodash_default = "default" in
|
|
118
|
+
var lodash_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
|
|
110
119
|
|
|
111
120
|
// esm-externals:@splunk/visualizations-shared/configUtils
|
|
112
121
|
var configUtils_exports = {};
|
|
113
122
|
__export(configUtils_exports, {
|
|
114
123
|
default: () => configUtils_default
|
|
115
124
|
});
|
|
116
|
-
var
|
|
125
|
+
var defaultImport8 = __toESM(require("@splunk/visualizations-shared/configUtils"));
|
|
117
126
|
__reExport(configUtils_exports, require("@splunk/visualizations-shared/configUtils"));
|
|
118
|
-
var configUtils_default = "default" in
|
|
127
|
+
var configUtils_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
|
|
119
128
|
|
|
120
129
|
// src/common/utils/configUtils.ts
|
|
121
130
|
function enhanceConfig(vizConfig) {
|
|
@@ -154,7 +163,8 @@ var defaultContext = {
|
|
|
154
163
|
{ from: 40, to: 60, value: "#CBA700" },
|
|
155
164
|
{ from: 60, to: 80, value: "#669922" },
|
|
156
165
|
{ from: 80, value: "#118832" }
|
|
157
|
-
]
|
|
166
|
+
],
|
|
167
|
+
colorMatchConfig: [{ match: "", value: "#5C33FF" }]
|
|
158
168
|
};
|
|
159
169
|
var dataContract = {
|
|
160
170
|
requiredDataSources: [],
|
|
@@ -212,8 +222,11 @@ var themes = {
|
|
|
212
222
|
}
|
|
213
223
|
})(props)
|
|
214
224
|
};
|
|
215
|
-
var
|
|
216
|
-
var
|
|
225
|
+
var isChoroplethLayer = (options) => {
|
|
226
|
+
var _a, _b;
|
|
227
|
+
return ((_b = (_a = options.layers) == null ? void 0 : _a[0]) == null ? void 0 : _b.type) === visualization_schemas_exports.LAYER_TYPE.Choropleth;
|
|
228
|
+
};
|
|
229
|
+
var isLocalChoroplethLayer = (options) => isChoroplethLayer(options) && (options.layers[0].source === "geo://default/us" || options.layers[0].source === "geo://default/world");
|
|
217
230
|
var EDITOR_LABEL_WIDTH = 140;
|
|
218
231
|
var editorConfig = [
|
|
219
232
|
{
|
|
@@ -238,7 +251,7 @@ var editorConfig = [
|
|
|
238
251
|
label: (0, i18n_exports._)("Area IDs"),
|
|
239
252
|
option: "layers[0].areaIds",
|
|
240
253
|
editor: "editor.columnSelector",
|
|
241
|
-
showEditor: ({ options }) =>
|
|
254
|
+
showEditor: ({ options }) => isChoroplethLayer(options),
|
|
242
255
|
editorProps: {
|
|
243
256
|
dataSourceKey: "primary",
|
|
244
257
|
shouldShowInternalFields: false,
|
|
@@ -251,7 +264,7 @@ var editorConfig = [
|
|
|
251
264
|
label: (0, i18n_exports._)("Area values"),
|
|
252
265
|
option: "layers[0].areaValues",
|
|
253
266
|
editor: "editor.columnSelector",
|
|
254
|
-
showEditor: ({ options }) =>
|
|
267
|
+
showEditor: ({ options }) => isChoroplethLayer(options),
|
|
255
268
|
editorProps: {
|
|
256
269
|
dataSourceKey: "primary",
|
|
257
270
|
shouldShowInternalFields: false,
|
|
@@ -264,7 +277,7 @@ var editorConfig = [
|
|
|
264
277
|
label: (0, i18n_exports._)("Latitude"),
|
|
265
278
|
option: "layers[0].latitude",
|
|
266
279
|
editor: "editor.columnSelector",
|
|
267
|
-
showEditor: ({ options }) => !(options
|
|
280
|
+
showEditor: ({ options }) => !isChoroplethLayer(options),
|
|
268
281
|
editorProps: {
|
|
269
282
|
dataSourceKey: "primary",
|
|
270
283
|
shouldShowInternalFields: false
|
|
@@ -276,7 +289,7 @@ var editorConfig = [
|
|
|
276
289
|
label: (0, i18n_exports._)("Longitude"),
|
|
277
290
|
option: "layers[0].longitude",
|
|
278
291
|
editor: "editor.columnSelector",
|
|
279
|
-
showEditor: ({ options }) => !(options
|
|
292
|
+
showEditor: ({ options }) => !isChoroplethLayer(options),
|
|
280
293
|
editorProps: {
|
|
281
294
|
dataSourceKey: "primary",
|
|
282
295
|
shouldShowInternalFields: false
|
|
@@ -308,7 +321,7 @@ var editorConfig = [
|
|
|
308
321
|
label: (0, i18n_exports._)("Result limit"),
|
|
309
322
|
option: "layers[0].resultLimit",
|
|
310
323
|
editor: "editor.number",
|
|
311
|
-
showEditor: ({ options }) => !
|
|
324
|
+
showEditor: ({ options }) => !isLocalChoroplethLayer(options),
|
|
312
325
|
editorProps: {
|
|
313
326
|
themes,
|
|
314
327
|
labelPosition: "top",
|
|
@@ -400,46 +413,75 @@ var editorConfig = [
|
|
|
400
413
|
{
|
|
401
414
|
label: (0, i18n_exports._)("Color and style"),
|
|
402
415
|
layout: [
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
416
|
+
[
|
|
417
|
+
{
|
|
418
|
+
label: (0, i18n_exports._)("Data colors"),
|
|
419
|
+
option: "layers[0].dataColors",
|
|
420
|
+
context: "colorRangeConfig",
|
|
421
|
+
editor: "editor.dynamicColorWithPrecedence",
|
|
422
|
+
editorProps: {
|
|
423
|
+
labelPosition: "top",
|
|
424
|
+
flyoutTitle: (0, i18n_exports._)("Dynamic coloring: value"),
|
|
425
|
+
formatters: [
|
|
426
|
+
{
|
|
427
|
+
label: (0, i18n_exports._)("Ranges"),
|
|
428
|
+
value: "rangeValue",
|
|
429
|
+
isDefault: true,
|
|
430
|
+
defaults: {
|
|
431
|
+
dataValues: defaultContext.colorRangeConfig
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
label: (0, i18n_exports._)("Matches"),
|
|
436
|
+
value: "matchValue",
|
|
437
|
+
defaults: {
|
|
438
|
+
dataValues: defaultContext.colorMatchConfig
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
],
|
|
442
|
+
dataSelectors: [
|
|
443
|
+
{
|
|
444
|
+
label: (0, i18n_exports._)("Data values"),
|
|
445
|
+
value: "dataValues"
|
|
446
|
+
}
|
|
447
|
+
],
|
|
448
|
+
defaultPalettesConfig: PresetPalettes_exports.defaultPalettesConfig
|
|
449
|
+
},
|
|
450
|
+
showEditor: ({ options }) => !isChoroplethLayer(options)
|
|
451
|
+
}
|
|
452
|
+
],
|
|
453
|
+
[
|
|
454
|
+
{
|
|
455
|
+
label: (0, i18n_exports._)("Data values"),
|
|
456
|
+
editor: "editor.columnSelector",
|
|
457
|
+
option: "layers[0].dataValues",
|
|
458
|
+
showEditor: ({ options }) => {
|
|
459
|
+
var _a, _b;
|
|
460
|
+
return !isChoroplethLayer(options) && ((_b = (_a = options.layers) == null ? void 0 : _a[0]) == null ? void 0 : _b.dataColors);
|
|
461
|
+
},
|
|
462
|
+
editorProps: {
|
|
463
|
+
dataSourceKey: "primary",
|
|
464
|
+
filterByTypes: ["number"]
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
],
|
|
417
468
|
[
|
|
418
469
|
{
|
|
419
470
|
label: (0, i18n_exports._)("Series colors"),
|
|
420
471
|
option: "layers[0].seriesColors",
|
|
421
472
|
editor: "editor.seriesColors",
|
|
422
|
-
showEditor: ({ options }) =>
|
|
473
|
+
showEditor: ({ options }) => {
|
|
474
|
+
var _a, _b;
|
|
475
|
+
return !isChoroplethLayer(options) && !((_b = (_a = options.layers) == null ? void 0 : _a[0]) == null ? void 0 : _b.dataColors);
|
|
476
|
+
}
|
|
423
477
|
}
|
|
424
478
|
],
|
|
425
|
-
// TODO: add editor for data colors
|
|
426
|
-
// [
|
|
427
|
-
// {
|
|
428
|
-
// label: _('Data colors'),
|
|
429
|
-
// option: 'layers[0].dataColors',
|
|
430
|
-
// editor: 'editor.text',
|
|
431
|
-
// editorProps: {
|
|
432
|
-
// themes,
|
|
433
|
-
// labelPosition: 'top',
|
|
434
|
-
// },
|
|
435
|
-
// },
|
|
436
|
-
// ],
|
|
437
479
|
[
|
|
438
480
|
{
|
|
439
481
|
label: (0, i18n_exports._)("Choropleth empty area"),
|
|
440
482
|
option: "layers[0].choroplethEmptyAreaColor",
|
|
441
483
|
editor: "editor.color",
|
|
442
|
-
showEditor: ({ options }) =>
|
|
484
|
+
showEditor: ({ options }) => isLocalChoroplethLayer(options),
|
|
443
485
|
editorProps: {
|
|
444
486
|
themes
|
|
445
487
|
}
|
|
@@ -450,7 +492,7 @@ var editorConfig = [
|
|
|
450
492
|
label: (0, i18n_exports._)("Choropleth stroke"),
|
|
451
493
|
option: "layers[0].choroplethStrokeColor",
|
|
452
494
|
editor: "editor.color",
|
|
453
|
-
showEditor: ({ options }) =>
|
|
495
|
+
showEditor: ({ options }) => isChoroplethLayer(options),
|
|
454
496
|
editorProps: {
|
|
455
497
|
themes
|
|
456
498
|
}
|
|
@@ -461,7 +503,7 @@ var editorConfig = [
|
|
|
461
503
|
label: (0, i18n_exports._)("Choropleth opacity (%)"),
|
|
462
504
|
option: "layers[0].choroplethOpacity",
|
|
463
505
|
editor: "editor.percent",
|
|
464
|
-
showEditor: ({ options }) =>
|
|
506
|
+
showEditor: ({ options }) => isChoroplethLayer(options),
|
|
465
507
|
editorProps: {
|
|
466
508
|
themes,
|
|
467
509
|
min: 0
|
package/Map.config.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["src/Map/config.ts", "esm-externals:@splunk/
|
|
4
|
-
"sourcesContent": ["import { Map as MapIcon } from '@splunk/visualization-icons';\nimport { Map as MapPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\nimport { mapOptionsSchema as optionsSchema, LAYER_TYPE } from '@splunk/visualization-schemas';\nimport { pick, variables } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\nimport { ThemedDefaults } from '../common/interfaces/ThemedDefaults';\nimport { VizBehavior } from '../common/interfaces/VizBehavior';\nimport { VizCategory } from '../common/interfaces/VizCategory';\nimport { VizConfig } from '../common/interfaces/VizConfig';\nimport { VizSize } from '../common/interfaces/VizSize';\nimport { enhanceConfig } from '../common/utils/configUtils';\n\nimport getBackgroundColorEditor from '../common/editorConfig/BackgroundColor';\n\nconst defaultContext: DefaultContext = {\n colorRangeConfig: [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n ],\n};\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization.',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 800,\n initialHeight: 600,\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n controlBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray22(props),\n light: variables.white(props),\n },\n prisma: variables.backgroundColorPopup(props),\n })(props),\n controlForegroundColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n defaultChoroplethEmptyAreaColor: props =>\n pick({\n enterprise: {\n dark: variables.gray22(props),\n light: variables.gray92(props),\n },\n prisma: {\n dark: variables.interactiveColorBackground(props),\n light: variables.neutral300(props),\n },\n })(props),\n defaultGradientMigrationConfig: props =>\n pick({\n enterprise: {\n dark: ['#4D4A5D', variables.syntaxPurple(props)],\n light: ['#D2CFDC', variables.syntaxPurple(props)],\n },\n prisma: {\n dark: ['#484558', variables.syntaxPurple(props)],\n light: ['#D8D4E1', variables.syntaxPurple(props)],\n },\n })(props),\n};\n\nconst checkTypeIsChoropleth = options =>\n options.layers && options.layers.length && options.layers[0].type === LAYER_TYPE.Choropleth;\n\nconst checkTypeIsLocalChoropleth = options =>\n options.layers &&\n options.layers.length &&\n options.layers[0].type === LAYER_TYPE.Choropleth &&\n (options.layers[0].source === 'geo://default/us' || options.layers[0].source === 'geo://default/world');\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: _('Layer type'),\n option: 'layers[0].type',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Bubble'), value: LAYER_TYPE.Bubble },\n { label: _('Marker'), value: LAYER_TYPE.Marker },\n { label: _('Choropleth'), value: LAYER_TYPE.Choropleth },\n ],\n },\n },\n ],\n [\n {\n label: _('Area IDs'),\n option: 'layers[0].areaIds',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => checkTypeIsChoropleth(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n filterByTypes: ['string'],\n },\n },\n ],\n [\n {\n label: _('Area values'),\n option: 'layers[0].areaValues',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => checkTypeIsChoropleth(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n filterByTypes: ['number'],\n },\n },\n ],\n [\n {\n label: _('Latitude'),\n option: 'layers[0].latitude',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) =>\n !(options.layers && options.layers.length && options.layers[0].type === 'choropleth'),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n },\n },\n ],\n [\n {\n label: _('Longitude'),\n option: 'layers[0].longitude',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) =>\n !(options.layers && options.layers.length && options.layers[0].type === 'choropleth'),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n },\n },\n ],\n [\n {\n label: _('Bubble size'),\n option: 'layers[0].bubbleSize',\n editor: 'editor.columnMultiSelector',\n showEditor: ({ options }) =>\n !(\n options.layers &&\n options.layers.length &&\n (options.layers[0].type === 'marker' || options.layers[0].type === 'choropleth')\n ),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n excludeByNames: ['latitude', 'longitude', 'geobin'],\n },\n },\n ],\n [\n {\n label: _('Additional tooltip fields'),\n option: 'layers[0].additionalTooltipFields',\n editor: 'editor.columnMultiSelectionByFieldNameEditor',\n },\n ],\n [\n {\n label: _('Result limit'),\n option: 'layers[0].resultLimit',\n editor: 'editor.number',\n showEditor: ({ options }) => !checkTypeIsLocalChoropleth(options),\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n },\n },\n ],\n ],\n },\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Latitude (initial map location)'),\n option: 'center[0]',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: -90,\n max: 90,\n },\n },\n ],\n [\n {\n label: _('Longitude (initial map location)'),\n option: 'center[1]',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: -180,\n max: 180,\n },\n },\n ],\n [\n {\n label: _('Zoom (initial map location)'),\n option: 'zoom',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Show zoom controls'),\n option: 'showZoomControls',\n editor: 'editor.checkbox',\n editorProps: {\n labelPosition: 'right',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Show scale'),\n option: 'showScale',\n editor: 'editor.toggle',\n editorProps: {\n labelPosition: 'right',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Scale unit'),\n option: 'scaleUnit',\n editor: 'editor.radioBar',\n showEditor: ({ options }) => options.showScale !== false,\n editorProps: {\n values: [\n { label: _('Metric'), value: 'metric' },\n { label: _('Imperial'), value: 'imperial' },\n ],\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n // TODO: add support for color mode option and its corresponding editor\n // [\n // {\n // label: _('Color mode'),\n // option: 'colorMode',\n // editor: 'editor.radioBar',\n // editorProps: {\n // values: [\n // { label: _('Static'), value: 'static' },\n // { label: _('Dynamic'), value: 'dynamic' },\n // ],\n // },\n // },\n // ],\n [\n {\n label: _('Series colors'),\n option: 'layers[0].seriesColors',\n editor: 'editor.seriesColors',\n showEditor: ({ options }) =>\n !(options.layers && options.layers.length && options.layers[0].type === 'choropleth'),\n },\n ],\n // TODO: add editor for data colors\n // [\n // {\n // label: _('Data colors'),\n // option: 'layers[0].dataColors',\n // editor: 'editor.text',\n // editorProps: {\n // themes,\n // labelPosition: 'top',\n // },\n // },\n // ],\n [\n {\n label: _('Choropleth empty area'),\n option: 'layers[0].choroplethEmptyAreaColor',\n editor: 'editor.color',\n showEditor: ({ options }) => checkTypeIsLocalChoropleth(options),\n editorProps: {\n themes,\n },\n },\n ],\n [\n {\n label: _('Choropleth stroke'),\n option: 'layers[0].choroplethStrokeColor',\n editor: 'editor.color',\n showEditor: ({ options }) => checkTypeIsChoropleth(options),\n editorProps: {\n themes,\n },\n },\n ],\n [\n {\n label: _('Choropleth opacity (%)'),\n option: 'layers[0].choroplethOpacity',\n editor: 'editor.percent',\n showEditor: ({ options }) => checkTypeIsChoropleth(options),\n editorProps: {\n themes,\n min: 0,\n },\n },\n ],\n // TODO: add support for seriesColorsByField option\n // [\n // {\n // label: _('Series colors by field name'),\n // option: 'seriesColorsByField',\n // editor: 'editor.seriesColorsByField',\n // },\n // ],\n getBackgroundColorEditor({ themes }),\n [\n {\n label: _('Show base layer'),\n option: 'showBaseLayer',\n editor: 'editor.toggle',\n },\n ],\n [\n {\n label: _('Base layer tile server'),\n option: 'baseLayerTileServer',\n editor: 'editor.text',\n showEditor: ({ options }) => options.showBaseLayer !== false,\n },\n ],\n [\n {\n label: _('Base layer tile server type'),\n option: 'baseLayerTileServerType',\n editor: 'editor.radioBar',\n showEditor: ({ options }) =>\n options.showBaseLayer === false\n ? false\n : !(\n typeof options.baseLayerTileServer === 'undefined' ||\n options.baseLayerTileServer === ''\n ),\n editorProps: {\n values: [\n { label: _('Vector'), value: 'vector' },\n { label: _('Raster'), value: 'raster' },\n ],\n },\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.map',\n /**\n * viz name\n */\n name: _('Map'),\n category: VizCategory.SPATIAL,\n status: 'preview',\n /**\n * viz icon\n */\n icon: MapIcon,\n placeholderIcon: MapPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'map.load': {\n description: 'triggered when map is fully loaded',\n parentKeys: ['exec'],\n },\n 'map.click': {\n description: 'trigger when user clicks map layer',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n requiredProps: [],\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons\";\nexport * from \"@splunk/visualization-icons\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons/placeholders\";\nexport * from \"@splunk/visualization-icons/placeholders\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\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\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\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 { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\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", "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 color'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: labelPosition || 'top',\n themes,\n },\n },\n];\n\nexport default background;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,
|
|
6
|
-
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "config", "themes", "MapIcon", "MapPlaceholderIcon", "optionsSchema"]
|
|
3
|
+
"sources": ["src/Map/config.ts", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/themes", "esm-externals:@splunk/visualization-color-palettes/editors/PresetPalettes", "esm-externals:@splunk/visualization-schemas", "esm-externals:@splunk/visualization-icons", "esm-externals:@splunk/visualization-icons/placeholders", "esm-externals:lodash", "esm-externals:@splunk/visualizations-shared/configUtils", "src/common/utils/configUtils.ts", "src/common/editorConfig/BackgroundColor.ts"],
|
|
4
|
+
"sourcesContent": ["import { _ } from '@splunk/ui-utils/i18n';\nimport { pick, variables } from '@splunk/themes';\nimport { defaultPalettesConfig } from '@splunk/visualization-color-palettes/editors/PresetPalettes';\nimport { mapOptionsSchema as optionsSchema, LAYER_TYPE } from '@splunk/visualization-schemas';\nimport { Map as MapIcon } from '@splunk/visualization-icons';\nimport { Map as MapPlaceholderIcon } from '@splunk/visualization-icons/placeholders';\n\nimport { DataContract } from '../common/interfaces/DataContract';\nimport { DefaultContext } from '../common/interfaces/DefaultContext';\nimport { EditorConfig } from '../common/interfaces/Editor';\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 defaultContext: DefaultContext = {\n colorRangeConfig: [\n { to: 20, value: '#D41F1F' },\n { from: 20, to: 40, value: '#D94E17' },\n { from: 40, to: 60, value: '#CBA700' },\n { from: 60, to: 80, value: '#669922' },\n { from: 80, value: '#118832' },\n ],\n colorMatchConfig: [{ match: '', value: '#5C33FF' }],\n};\n\nconst dataContract: DataContract = {\n requiredDataSources: [],\n optionalDataSources: [\n {\n name: 'primary',\n description: 'DataSource that powers the visualization.',\n },\n ],\n initialRequestParams: {\n primary: { offset: 0, count: 10000 },\n },\n};\n\nconst size: VizSize = {\n initialWidth: 800,\n initialHeight: 600,\n};\n\nconst themes: ThemedDefaults = {\n defaultBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.black(props),\n light: variables.backgroundColor(props),\n },\n prisma: variables.backgroundColorSidebar(props),\n })(props),\n controlBackgroundColor: props =>\n pick({\n enterprise: {\n dark: variables.gray22(props),\n light: variables.white(props),\n },\n prisma: variables.backgroundColorPopup(props),\n })(props),\n controlForegroundColor: props =>\n pick({\n enterprise: variables.textColor(props),\n prisma: variables.contentColorDefault(props),\n })(props),\n defaultChoroplethEmptyAreaColor: props =>\n pick({\n enterprise: {\n dark: variables.gray22(props),\n light: variables.gray92(props),\n },\n prisma: {\n dark: variables.interactiveColorBackground(props),\n light: variables.neutral300(props),\n },\n })(props),\n defaultGradientMigrationConfig: props =>\n pick({\n enterprise: {\n dark: ['#4D4A5D', variables.syntaxPurple(props)],\n light: ['#D2CFDC', variables.syntaxPurple(props)],\n },\n prisma: {\n dark: ['#484558', variables.syntaxPurple(props)],\n light: ['#D8D4E1', variables.syntaxPurple(props)],\n },\n })(props),\n};\n\nconst isChoroplethLayer = options => options.layers?.[0]?.type === LAYER_TYPE.Choropleth;\n\nconst isLocalChoroplethLayer = options =>\n isChoroplethLayer(options) &&\n (options.layers[0].source === 'geo://default/us' || options.layers[0].source === 'geo://default/world');\n\nconst EDITOR_LABEL_WIDTH = 140;\nconst editorConfig: EditorConfig[] = [\n {\n label: _('Data configurations'),\n layout: [\n [\n {\n label: _('Layer type'),\n option: 'layers[0].type',\n editor: 'editor.select',\n editorProps: {\n values: [\n { label: _('Bubble'), value: LAYER_TYPE.Bubble },\n { label: _('Marker'), value: LAYER_TYPE.Marker },\n { label: _('Choropleth'), value: LAYER_TYPE.Choropleth },\n ],\n },\n },\n ],\n [\n {\n label: _('Area IDs'),\n option: 'layers[0].areaIds',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => isChoroplethLayer(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n filterByTypes: ['string'],\n },\n },\n ],\n [\n {\n label: _('Area values'),\n option: 'layers[0].areaValues',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => isChoroplethLayer(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n filterByTypes: ['number'],\n },\n },\n ],\n [\n {\n label: _('Latitude'),\n option: 'layers[0].latitude',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => !isChoroplethLayer(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n },\n },\n ],\n [\n {\n label: _('Longitude'),\n option: 'layers[0].longitude',\n editor: 'editor.columnSelector',\n showEditor: ({ options }) => !isChoroplethLayer(options),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n },\n },\n ],\n [\n {\n label: _('Bubble size'),\n option: 'layers[0].bubbleSize',\n editor: 'editor.columnMultiSelector',\n showEditor: ({ options }) =>\n !(\n options.layers &&\n options.layers.length &&\n (options.layers[0].type === 'marker' || options.layers[0].type === 'choropleth')\n ),\n editorProps: {\n dataSourceKey: 'primary',\n shouldShowInternalFields: false,\n excludeByNames: ['latitude', 'longitude', 'geobin'],\n },\n },\n ],\n [\n {\n label: _('Additional tooltip fields'),\n option: 'layers[0].additionalTooltipFields',\n editor: 'editor.columnMultiSelectionByFieldNameEditor',\n },\n ],\n [\n {\n label: _('Result limit'),\n option: 'layers[0].resultLimit',\n editor: 'editor.number',\n showEditor: ({ options }) => !isLocalChoroplethLayer(options),\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n },\n },\n ],\n ],\n },\n {\n label: _('Data display'),\n layout: [\n [\n {\n label: _('Latitude (initial map location)'),\n option: 'center[0]',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: -90,\n max: 90,\n },\n },\n ],\n [\n {\n label: _('Longitude (initial map location)'),\n option: 'center[1]',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: -180,\n max: 180,\n },\n },\n ],\n [\n {\n label: _('Zoom (initial map location)'),\n option: 'zoom',\n editor: 'editor.number',\n editorProps: {\n themes,\n labelPosition: 'top',\n min: 0,\n },\n },\n ],\n [\n {\n label: _('Show zoom controls'),\n option: 'showZoomControls',\n editor: 'editor.checkbox',\n editorProps: {\n labelPosition: 'right',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Show scale'),\n option: 'showScale',\n editor: 'editor.toggle',\n editorProps: {\n labelPosition: 'right',\n labelWidth: EDITOR_LABEL_WIDTH,\n },\n },\n ],\n [\n {\n label: _('Scale unit'),\n option: 'scaleUnit',\n editor: 'editor.radioBar',\n showEditor: ({ options }) => options.showScale !== false,\n editorProps: {\n values: [\n { label: _('Metric'), value: 'metric' },\n { label: _('Imperial'), value: 'imperial' },\n ],\n },\n },\n ],\n ],\n },\n {\n label: _('Color and style'),\n layout: [\n [\n {\n label: _('Data colors'),\n option: 'layers[0].dataColors',\n context: 'colorRangeConfig',\n editor: 'editor.dynamicColorWithPrecedence',\n editorProps: {\n labelPosition: 'top',\n flyoutTitle: _('Dynamic coloring: value'),\n formatters: [\n {\n label: _('Ranges'),\n value: 'rangeValue',\n isDefault: true,\n defaults: {\n dataValues: defaultContext.colorRangeConfig,\n },\n },\n {\n label: _('Matches'),\n value: 'matchValue',\n defaults: {\n dataValues: defaultContext.colorMatchConfig,\n },\n },\n ],\n dataSelectors: [\n {\n label: _('Data values'),\n value: 'dataValues',\n },\n ],\n defaultPalettesConfig,\n },\n showEditor: ({ options }) => !isChoroplethLayer(options),\n },\n ],\n [\n {\n label: _('Data values'),\n editor: 'editor.columnSelector',\n option: 'layers[0].dataValues',\n showEditor: ({ options }) =>\n !isChoroplethLayer(options) && options.layers?.[0]?.dataColors,\n editorProps: {\n dataSourceKey: 'primary',\n filterByTypes: ['number'],\n },\n },\n ],\n [\n {\n label: _('Series colors'),\n option: 'layers[0].seriesColors',\n editor: 'editor.seriesColors',\n showEditor: ({ options }) =>\n !isChoroplethLayer(options) && !options.layers?.[0]?.dataColors,\n },\n ],\n [\n {\n label: _('Choropleth empty area'),\n option: 'layers[0].choroplethEmptyAreaColor',\n editor: 'editor.color',\n showEditor: ({ options }) => isLocalChoroplethLayer(options),\n editorProps: {\n themes,\n },\n },\n ],\n [\n {\n label: _('Choropleth stroke'),\n option: 'layers[0].choroplethStrokeColor',\n editor: 'editor.color',\n showEditor: ({ options }) => isChoroplethLayer(options),\n editorProps: {\n themes,\n },\n },\n ],\n [\n {\n label: _('Choropleth opacity (%)'),\n option: 'layers[0].choroplethOpacity',\n editor: 'editor.percent',\n showEditor: ({ options }) => isChoroplethLayer(options),\n editorProps: {\n themes,\n min: 0,\n },\n },\n ],\n // TODO: add support for seriesColorsByField option\n // [\n // {\n // label: _('Series colors by field name'),\n // option: 'seriesColorsByField',\n // editor: 'editor.seriesColorsByField',\n // },\n // ],\n getBackgroundColorEditor({ themes }),\n [\n {\n label: _('Show base layer'),\n option: 'showBaseLayer',\n editor: 'editor.toggle',\n },\n ],\n [\n {\n label: _('Base layer tile server'),\n option: 'baseLayerTileServer',\n editor: 'editor.text',\n showEditor: ({ options }) => options.showBaseLayer !== false,\n },\n ],\n [\n {\n label: _('Base layer tile server type'),\n option: 'baseLayerTileServerType',\n editor: 'editor.radioBar',\n showEditor: ({ options }) =>\n options.showBaseLayer === false\n ? false\n : !(\n typeof options.baseLayerTileServer === 'undefined' ||\n options.baseLayerTileServer === ''\n ),\n editorProps: {\n values: [\n { label: _('Vector'), value: 'vector' },\n { label: _('Raster'), value: 'raster' },\n ],\n },\n },\n ],\n ],\n },\n];\n\n/**\n * visualization configuration\n */\nconst config: VizConfig = {\n /**\n * unique viz key\n */\n key: 'splunk.map',\n /**\n * viz name\n */\n name: _('Map'),\n category: VizCategory.SPATIAL,\n status: 'preview',\n /**\n * viz icon\n */\n icon: MapIcon,\n placeholderIcon: MapPlaceholderIcon,\n dataContract,\n size,\n defaultContext,\n optionsSchema,\n editorConfig,\n events: {\n 'map.load': {\n description: 'triggered when map is fully loaded',\n parentKeys: ['exec'],\n },\n 'map.click': {\n description: 'trigger when user clicks map layer',\n },\n },\n supports: [VizBehavior.DYNAMIC_OPTIONS, VizBehavior.EVENTS, VizBehavior.PLACEHOLDER],\n themes,\n requiredProps: [],\n};\n\nexport default enhanceConfig(config);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport * from \"@splunk/visualization-color-palettes/editors/PresetPalettes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-schemas\";\nexport * from \"@splunk/visualization-schemas\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons\";\nexport * from \"@splunk/visualization-icons\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/visualization-icons/placeholders\";\nexport * from \"@splunk/visualization-icons/placeholders\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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/configUtils\";\nexport * from \"@splunk/visualizations-shared/configUtils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { get, range } from 'lodash';\nimport { isDynamicOption } from '@splunk/visualizations-shared/configUtils';\nimport { VizConfig } from '../interfaces/VizConfig';\nimport { EditorLayoutConfig, EditorConfig } from '../interfaces/Editor';\n\n// included for backwards compatibility\nexport { enhanceOptionsSchemaWithDynamicOptions } from '@splunk/visualization-schemas';\n\nexport interface PresetEntry {\n name: string;\n value: any;\n label: string;\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\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\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 { enhanceConfig, getInitialPreset, generatePrecisionValues, uncollapseEditorConfig, isDynamicOption };\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", "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 color'),\n option: 'backgroundColor',\n editor: 'editor.color',\n editorProps: {\n labelPosition: labelPosition || 'top',\n themes,\n },\n },\n];\n\nexport default background;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "config", "themes", "MapIcon", "MapPlaceholderIcon", "optionsSchema"]
|
|
7
7
|
}
|