@splunk/visualizations 28.9.0 → 28.9.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.
Files changed (46) hide show
  1. package/Area.js +2 -2
  2. package/Bar.js +2 -2
  3. package/Bubble.js +2 -2
  4. package/CHANGELOG.external.md +28 -16
  5. package/ChoroplethSvg.js +2 -2
  6. package/Column.js +2 -2
  7. package/Ellipse.js +2 -2
  8. package/Events.js +2 -2
  9. package/FillerGauge.js +2 -2
  10. package/Image.js +2 -2
  11. package/Line.js +2 -2
  12. package/LinkGraph.js +2 -2
  13. package/Map/PureMap/ChoroplethLayer.d.ts.map +1 -1
  14. package/Map/PureMap/PureMap.d.ts.map +1 -1
  15. package/Map/PureMap/mapWorker.d.ts +2 -0
  16. package/Map/PureMap/mapWorker.d.ts.map +1 -0
  17. package/Map.js +79 -26
  18. package/Map.js.map +3 -3
  19. package/Markdown.js +2 -2
  20. package/MarkerGauge.js +2 -2
  21. package/NetworkGraph.js +2 -2
  22. package/ParallelCoordinates.js +2 -2
  23. package/Pie.js +2 -2
  24. package/ProcessTree.js +2 -2
  25. package/Punchcard.js +2 -2
  26. package/Rectangle.js +2 -2
  27. package/RichText.js +2 -2
  28. package/Sankey.js +2 -2
  29. package/Scatter.js +2 -2
  30. package/SingleValue.js +2 -2
  31. package/SingleValueIcon.js +2 -2
  32. package/SingleValueRadial.js +2 -2
  33. package/Table.js +2 -2
  34. package/Timeline.js +2 -2
  35. package/Treemap.js +2 -2
  36. package/common/DocExampleWithVizSandbox.d.ts +2 -0
  37. package/common/DocExampleWithVizSandbox.d.ts.map +1 -1
  38. package/common/DocExampleWithVizSandbox.js +51 -3
  39. package/common/DocExampleWithVizSandbox.js.map +2 -2
  40. package/common/OverviewDoc.js +51 -3
  41. package/common/OverviewDoc.js.map +2 -2
  42. package/common/utils/mapUtils.js +3 -3
  43. package/common/utils/mapUtils.js.map +2 -2
  44. package/common/withDashboardViz.js +2 -2
  45. package/docs-llm/map/examples-react.md +39 -39
  46. package/package.json +23 -20
package/Markdown.js CHANGED
@@ -566,7 +566,7 @@ var Cover = styled_components_default.div`
566
566
  bottom: 0;
567
567
  `;
568
568
  var Blocker = styled_components_default.div.attrs({
569
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
569
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
570
570
  })`
571
571
  position: relative;
572
572
  width: 100%;
@@ -656,7 +656,7 @@ var withFixedSizeContainer = (Viz) => {
656
656
  FixSizeItem,
657
657
  {
658
658
  "data-test": "fix-size-item",
659
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
659
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
660
660
  width,
661
661
  height,
662
662
  backgroundColor
package/MarkerGauge.js CHANGED
@@ -1947,7 +1947,7 @@ var Cover = styled_components_default.div`
1947
1947
  bottom: 0;
1948
1948
  `;
1949
1949
  var Blocker = styled_components_default.div.attrs({
1950
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1950
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1951
1951
  })`
1952
1952
  position: relative;
1953
1953
  width: 100%;
@@ -2037,7 +2037,7 @@ var withFixedSizeContainer = (Viz) => {
2037
2037
  FixSizeItem,
2038
2038
  {
2039
2039
  "data-test": "fix-size-item",
2040
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
2040
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
2041
2041
  width,
2042
2042
  height,
2043
2043
  backgroundColor
package/NetworkGraph.js CHANGED
@@ -1682,7 +1682,7 @@ var Cover = styled_components_default.div`
1682
1682
  bottom: 0;
1683
1683
  `;
1684
1684
  var Blocker = styled_components_default.div.attrs({
1685
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1685
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1686
1686
  })`
1687
1687
  position: relative;
1688
1688
  width: 100%;
@@ -1803,7 +1803,7 @@ var withFixedSizeContainer = (Viz) => {
1803
1803
  FixSizeItem,
1804
1804
  {
1805
1805
  "data-test": "fix-size-item",
1806
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1806
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
1807
1807
  width,
1808
1808
  height,
1809
1809
  backgroundColor
@@ -1111,7 +1111,7 @@ var Cover = styled_components_default.div`
1111
1111
  bottom: 0;
1112
1112
  `;
1113
1113
  var Blocker = styled_components_default.div.attrs({
1114
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1114
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1115
1115
  })`
1116
1116
  position: relative;
1117
1117
  width: 100%;
@@ -1210,7 +1210,7 @@ var withFixedSizeContainer = (Viz) => {
1210
1210
  FixSizeItem,
1211
1211
  {
1212
1212
  "data-test": "fix-size-item",
1213
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1213
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
1214
1214
  width,
1215
1215
  height,
1216
1216
  backgroundColor
package/Pie.js CHANGED
@@ -1776,7 +1776,7 @@ var Cover = styled_components_default.div`
1776
1776
  bottom: 0;
1777
1777
  `;
1778
1778
  var Blocker = styled_components_default.div.attrs({
1779
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1779
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1780
1780
  })`
1781
1781
  position: relative;
1782
1782
  width: 100%;
@@ -1857,7 +1857,7 @@ var withFixedSizeContainer = (Viz) => {
1857
1857
  FixSizeItem,
1858
1858
  {
1859
1859
  "data-test": "fix-size-item",
1860
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1860
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
1861
1861
  width,
1862
1862
  height,
1863
1863
  backgroundColor
package/ProcessTree.js CHANGED
@@ -687,7 +687,7 @@ var Cover = styled_components_default.div`
687
687
  bottom: 0;
688
688
  `;
689
689
  var Blocker = styled_components_default.div.attrs({
690
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
690
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
691
691
  })`
692
692
  position: relative;
693
693
  width: 100%;
@@ -798,7 +798,7 @@ var withFixedSizeContainer = (Viz) => {
798
798
  FixSizeItem,
799
799
  {
800
800
  "data-test": "fix-size-item",
801
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
801
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
802
802
  width,
803
803
  height,
804
804
  backgroundColor
package/Punchcard.js CHANGED
@@ -758,7 +758,7 @@ var Cover = styled_components_default.div`
758
758
  bottom: 0;
759
759
  `;
760
760
  var Blocker = styled_components_default.div.attrs({
761
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
761
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
762
762
  })`
763
763
  position: relative;
764
764
  width: 100%;
@@ -857,7 +857,7 @@ var withFixedSizeContainer = (Viz) => {
857
857
  FixSizeItem,
858
858
  {
859
859
  "data-test": "fix-size-item",
860
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
860
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
861
861
  width,
862
862
  height,
863
863
  backgroundColor
package/Rectangle.js CHANGED
@@ -481,7 +481,7 @@ var Cover = styled_components_default.div`
481
481
  bottom: 0;
482
482
  `;
483
483
  var Blocker = styled_components_default.div.attrs({
484
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
484
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
485
485
  })`
486
486
  position: relative;
487
487
  width: 100%;
@@ -589,7 +589,7 @@ var withFixedSizeContainer = (Viz) => {
589
589
  FixSizeItem,
590
590
  {
591
591
  "data-test": "fix-size-item",
592
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
592
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
593
593
  width,
594
594
  height,
595
595
  backgroundColor
package/RichText.js CHANGED
@@ -693,7 +693,7 @@ var Cover = styled_components_default.div`
693
693
  bottom: 0;
694
694
  `;
695
695
  var Blocker = styled_components_default.div.attrs({
696
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
696
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
697
697
  })`
698
698
  position: relative;
699
699
  width: 100%;
@@ -792,7 +792,7 @@ var withFixedSizeContainer = (Viz) => {
792
792
  FixSizeItem,
793
793
  {
794
794
  "data-test": "fix-size-item",
795
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
795
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
796
796
  width,
797
797
  height,
798
798
  backgroundColor
package/Sankey.js CHANGED
@@ -502,7 +502,7 @@ var Cover = styled_components_default.div`
502
502
  bottom: 0;
503
503
  `;
504
504
  var Blocker = styled_components_default.div.attrs({
505
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
505
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
506
506
  })`
507
507
  position: relative;
508
508
  width: 100%;
@@ -601,7 +601,7 @@ var withFixedSizeContainer = (Viz) => {
601
601
  FixSizeItem,
602
602
  {
603
603
  "data-test": "fix-size-item",
604
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
604
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
605
605
  width,
606
606
  height,
607
607
  backgroundColor
package/Scatter.js CHANGED
@@ -2603,7 +2603,7 @@ var Cover = styled_components_default.div`
2603
2603
  bottom: 0;
2604
2604
  `;
2605
2605
  var Blocker = styled_components_default.div.attrs({
2606
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
2606
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
2607
2607
  })`
2608
2608
  position: relative;
2609
2609
  width: 100%;
@@ -2693,7 +2693,7 @@ var withFixedSizeContainer = (Viz) => {
2693
2693
  FixSizeItem,
2694
2694
  {
2695
2695
  "data-test": "fix-size-item",
2696
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
2696
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
2697
2697
  width,
2698
2698
  height,
2699
2699
  backgroundColor
package/SingleValue.js CHANGED
@@ -2409,7 +2409,7 @@ var Cover = styled_components_default.div`
2409
2409
  bottom: 0;
2410
2410
  `;
2411
2411
  var Blocker = styled_components_default.div.attrs({
2412
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
2412
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
2413
2413
  })`
2414
2414
  position: relative;
2415
2415
  width: 100%;
@@ -2508,7 +2508,7 @@ var withFixedSizeContainer = (Viz) => {
2508
2508
  FixSizeItem,
2509
2509
  {
2510
2510
  "data-test": "fix-size-item",
2511
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
2511
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
2512
2512
  width,
2513
2513
  height,
2514
2514
  backgroundColor
@@ -1763,7 +1763,7 @@ var Cover = styled_components_default.div`
1763
1763
  bottom: 0;
1764
1764
  `;
1765
1765
  var Blocker = styled_components_default.div.attrs({
1766
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1766
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1767
1767
  })`
1768
1768
  position: relative;
1769
1769
  width: 100%;
@@ -1862,7 +1862,7 @@ var withFixedSizeContainer = (Viz) => {
1862
1862
  FixSizeItem,
1863
1863
  {
1864
1864
  "data-test": "fix-size-item",
1865
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1865
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
1866
1866
  width,
1867
1867
  height,
1868
1868
  backgroundColor
@@ -2122,7 +2122,7 @@ var Cover = styled_components_default.div`
2122
2122
  bottom: 0;
2123
2123
  `;
2124
2124
  var Blocker = styled_components_default.div.attrs({
2125
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
2125
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
2126
2126
  })`
2127
2127
  position: relative;
2128
2128
  width: 100%;
@@ -2212,7 +2212,7 @@ var withFixedSizeContainer = (Viz) => {
2212
2212
  FixSizeItem,
2213
2213
  {
2214
2214
  "data-test": "fix-size-item",
2215
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
2215
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
2216
2216
  width,
2217
2217
  height,
2218
2218
  backgroundColor
package/Table.js CHANGED
@@ -1206,7 +1206,7 @@ var Cover = styled_components_default.div`
1206
1206
  bottom: 0;
1207
1207
  `;
1208
1208
  var Blocker = styled_components_default.div.attrs({
1209
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
1209
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
1210
1210
  })`
1211
1211
  position: relative;
1212
1212
  width: 100%;
@@ -1296,7 +1296,7 @@ var withFixedSizeContainer = (Viz) => {
1296
1296
  FixSizeItem,
1297
1297
  {
1298
1298
  "data-test": "fix-size-item",
1299
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
1299
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
1300
1300
  width,
1301
1301
  height,
1302
1302
  backgroundColor
package/Timeline.js CHANGED
@@ -878,7 +878,7 @@ var Cover = styled_components_default.div`
878
878
  bottom: 0;
879
879
  `;
880
880
  var Blocker = styled_components_default.div.attrs({
881
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
881
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
882
882
  })`
883
883
  position: relative;
884
884
  width: 100%;
@@ -968,7 +968,7 @@ var withFixedSizeContainer = (Viz) => {
968
968
  FixSizeItem,
969
969
  {
970
970
  "data-test": "fix-size-item",
971
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
971
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
972
972
  width,
973
973
  height,
974
974
  backgroundColor
package/Treemap.js CHANGED
@@ -493,7 +493,7 @@ var Cover = styled_components_default.div`
493
493
  bottom: 0;
494
494
  `;
495
495
  var Blocker = styled_components_default.div.attrs({
496
- "data-splunk-visualization-version": "28.9.0 - 96b03188d"
496
+ "data-splunk-visualization-version": "28.9.1 - fba477a41"
497
497
  })`
498
498
  position: relative;
499
499
  width: 100%;
@@ -601,7 +601,7 @@ var withFixedSizeContainer = (Viz) => {
601
601
  FixSizeItem,
602
602
  {
603
603
  "data-test": "fix-size-item",
604
- "data-splunk-visualization-version": "28.9.0 - 96b03188d",
604
+ "data-splunk-visualization-version": "28.9.1 - fba477a41",
605
605
  width,
606
606
  height,
607
607
  backgroundColor
@@ -7,6 +7,7 @@ interface DocExampleWithVizSandboxProps {
7
7
  example: () => React.ReactElement;
8
8
  hideSandbox?: boolean;
9
9
  description?: string;
10
+ showMapAttribution?: boolean;
10
11
  }
11
12
  declare const DocExampleWithVizSandbox: {
12
13
  (props: DocExampleWithVizSandboxProps): React.ReactElement;
@@ -16,6 +17,7 @@ declare const DocExampleWithVizSandbox: {
16
17
  code: T.Requireable<string>;
17
18
  example: T.Requireable<(...args: any[]) => any>;
18
19
  hideSandbox: T.Requireable<boolean>;
20
+ showMapAttribution: T.Requireable<boolean>;
19
21
  };
20
22
  };
21
23
  export default DocExampleWithVizSandbox;
@@ -1 +1 @@
1
- {"version":3,"file":"DocExampleWithVizSandbox.d.ts","sourceRoot":"","sources":["../src/common/DocExampleWithVizSandbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,UAAU,6BAA6B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,wBAAwB;YAAW,6BAA6B,GAAG,KAAK,CAAC,YAAY;;;;;;;;CA0E1F,CAAC;AAUF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DocExampleWithVizSandbox.d.ts","sourceRoot":"","sources":["../src/common/DocExampleWithVizSandbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,UAAU,6BAA6B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AA0DD,QAAA,MAAM,wBAAwB;YAAW,6BAA6B,GAAG,KAAK,CAAC,YAAY;;;;;;;;;CAqF1F,CAAC;AAWF,eAAe,wBAAwB,CAAC"}
@@ -247,11 +247,57 @@ var convertToDashboardJSON = (codeString, type) => {
247
247
  };
248
248
 
249
249
  // src/common/DocExampleWithVizSandbox.tsx
250
+ var MAP_DOCS_EXAMPLE_WRAPPER_STYLE = {
251
+ position: "relative",
252
+ display: "inline-block",
253
+ width: "fit-content",
254
+ maxWidth: "100%",
255
+ verticalAlign: "top"
256
+ };
257
+ var MAP_DOCS_ATTRIBUTION_STYLE = {
258
+ position: "absolute",
259
+ right: "16px",
260
+ bottom: "16px",
261
+ zIndex: 4,
262
+ padding: "4px 8px",
263
+ borderRadius: "4px",
264
+ background: "rgba(255, 255, 255, 0.92)",
265
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.2)",
266
+ fontSize: "11px",
267
+ lineHeight: "14px",
268
+ pointerEvents: "auto"
269
+ };
270
+ var MAP_DOCS_ATTRIBUTION_LINK_STYLE = {
271
+ color: "#136CBE",
272
+ textDecoration: "none"
273
+ };
274
+ var shouldRenderMapDocsAttribution = (type, code) => type === "splunk.map" && (code.includes("basemaps.cartocdn.com") || code.includes("MapDocsExample") || code.includes("docsTileConfig") || code.includes("testTileConfig")) && !code.includes("showBaseLayer: false");
275
+ var MapDocsAttribution = () => /* @__PURE__ */ react_exports.createElement("div", { "data-test": "map-docs-attribution", style: MAP_DOCS_ATTRIBUTION_STYLE }, /* @__PURE__ */ react_exports.createElement(
276
+ "a",
277
+ {
278
+ href: "https://www.openstreetmap.org/copyright",
279
+ rel: "noopener noreferrer",
280
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
281
+ target: "_blank"
282
+ },
283
+ "\xA9 OpenStreetMap contributors"
284
+ ), " ", /* @__PURE__ */ react_exports.createElement(
285
+ "a",
286
+ {
287
+ href: "https://carto.com/attributions/",
288
+ rel: "noopener noreferrer",
289
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
290
+ target: "_blank"
291
+ },
292
+ "\xA9 CARTO"
293
+ ));
250
294
  var DocExampleWithVizSandbox = (props) => {
251
- const { type, title, code, example, hideSandbox = false, description } = props;
295
+ const { type, title, code, example, hideSandbox = false, description, showMapAttribution } = props;
252
296
  const [isCopied, setIsCopied] = react_exports.useState(false);
253
297
  const [showCode, setShowCode] = react_exports.useState(false);
254
298
  const isMounted = react_exports.useRef(true);
299
+ const ExampleComponent = example;
300
+ const showMapDocsAttribution = !code.includes("showBaseLayer: false") && (showMapAttribution != null ? showMapAttribution : shouldRenderMapDocsAttribution(type, code));
255
301
  const toggleShowCode = react_exports.useCallback(() => {
256
302
  setShowCode((state) => !state);
257
303
  }, []);
@@ -287,13 +333,14 @@ var DocExampleWithVizSandbox = (props) => {
287
333
  }
288
334
  )
289
335
  ];
336
+ const renderExample = () => /* @__PURE__ */ react_exports.createElement("div", { style: MAP_DOCS_EXAMPLE_WRAPPER_STYLE }, /* @__PURE__ */ react_exports.createElement(ExampleComponent, null), showMapDocsAttribution && /* @__PURE__ */ react_exports.createElement(MapDocsAttribution, null));
290
337
  return /* @__PURE__ */ react_exports.createElement(
291
338
  DocExample_default,
292
339
  {
293
340
  renderAdditionalActions,
294
341
  title,
295
342
  code,
296
- example,
343
+ example: showMapDocsAttribution ? renderExample : example,
297
344
  description
298
345
  },
299
346
  /* @__PURE__ */ react_exports.createElement(
@@ -323,7 +370,8 @@ DocExampleWithVizSandbox.propTypes = {
323
370
  title: prop_types_exports.string,
324
371
  code: prop_types_exports.string,
325
372
  example: prop_types_exports.func,
326
- hideSandbox: prop_types_exports.bool
373
+ hideSandbox: prop_types_exports.bool,
374
+ showMapAttribution: prop_types_exports.bool
327
375
  };
328
376
  var DocExampleWithVizSandbox_default = DocExampleWithVizSandbox;
329
377
  //# sourceMappingURL=DocExampleWithVizSandbox.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/common/DocExampleWithVizSandbox.tsx", "esm-externals:react", "esm-externals:@splunk/react-docs/DocExample", "esm-externals:@splunk/react-ui/Button", "esm-externals:@splunk/react-ui/Code", "esm-externals:@splunk/react-ui/TransitionOpen", "esm-externals:@splunk/react-icons/SquaresLayered", "esm-externals:@splunk/react-icons/Checkmark", "esm-externals:@splunk/react-icons/EyeSlashed", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:prop-types", "esm-externals:@splunk/react-docs/UtilPage", "../src/common/docUtils.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n}\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"secondary\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/DocExample\";\nexport * from \"@splunk/react-docs/DocExample\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Code\";\nexport * from \"@splunk/react-ui/Code\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/TransitionOpen\";\nexport * from \"@splunk/react-ui/TransitionOpen\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/SquaresLayered\";\nexport * from \"@splunk/react-icons/SquaresLayered\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/EyeSlashed\";\nexport * from \"@splunk/react-icons/EyeSlashed\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\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 \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/UtilPage\";\nexport * from \"@splunk/react-docs/UtilPage\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = new Set([\n 'average',\n 'count',\n 'getField',\n 'getType',\n 'min',\n 'max',\n 'percentile',\n 'sum',\n]);\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.has(name) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs.at(-1);\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return <UtilPage title={`${className}#${doc.name}`} docs={[classHeaderDoc, doc, fileDoc]} />;\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replaceAll('\"', '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replaceAll(\"'\", '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replaceAll('`', \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary\n ? {\n dataSources: {\n primary: { type: 'ds.test', options: primary },\n },\n }\n : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nimport DocExample from '@splunk/react-docs/DocExample';\nimport Button from '@splunk/react-ui/Button';\nimport Code from '@splunk/react-ui/Code';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport SquaresLayered from '@splunk/react-icons/SquaresLayered';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport EyeSlashed from '@splunk/react-icons/EyeSlashed';\nimport WindowChevronsSlash from '@splunk/react-icons/WindowChevronsSlash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport * as T from 'prop-types';\nimport { convertToDashboardJSON } from './docUtils';\n\ninterface DocExampleWithVizSandboxProps {\n type: string;\n title: string;\n code: string;\n example: () => React.ReactElement;\n hideSandbox?: boolean;\n description?: string;\n showMapAttribution?: boolean;\n}\n\nconst MAP_DOCS_EXAMPLE_WRAPPER_STYLE: React.CSSProperties = {\n position: 'relative',\n display: 'inline-block',\n width: 'fit-content',\n maxWidth: '100%',\n verticalAlign: 'top',\n};\n\nconst MAP_DOCS_ATTRIBUTION_STYLE: React.CSSProperties = {\n position: 'absolute',\n right: '16px',\n bottom: '16px',\n zIndex: 4,\n padding: '4px 8px',\n borderRadius: '4px',\n background: 'rgba(255, 255, 255, 0.92)',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.2)',\n fontSize: '11px',\n lineHeight: '14px',\n pointerEvents: 'auto',\n};\n\nconst MAP_DOCS_ATTRIBUTION_LINK_STYLE: React.CSSProperties = {\n color: '#136CBE',\n textDecoration: 'none',\n};\n\nconst shouldRenderMapDocsAttribution = (type: string, code: string): boolean =>\n type === 'splunk.map' &&\n (code.includes('basemaps.cartocdn.com') ||\n code.includes('MapDocsExample') ||\n code.includes('docsTileConfig') ||\n code.includes('testTileConfig')) &&\n !code.includes('showBaseLayer: false');\n\nconst MapDocsAttribution = (): React.ReactElement => (\n <div data-test=\"map-docs-attribution\" style={MAP_DOCS_ATTRIBUTION_STYLE}>\n <a\n href=\"https://www.openstreetmap.org/copyright\"\n rel=\"noopener noreferrer\"\n style={MAP_DOCS_ATTRIBUTION_LINK_STYLE}\n target=\"_blank\"\n >\n \u00A9 OpenStreetMap contributors\n </a>{' '}\n <a\n href=\"https://carto.com/attributions/\"\n rel=\"noopener noreferrer\"\n style={MAP_DOCS_ATTRIBUTION_LINK_STYLE}\n target=\"_blank\"\n >\n \u00A9 CARTO\n </a>\n </div>\n);\n\nconst DocExampleWithVizSandbox = (props: DocExampleWithVizSandboxProps): React.ReactElement => {\n const { type, title, code, example, hideSandbox = false, description, showMapAttribution } = props;\n const [isCopied, setIsCopied] = React.useState(false);\n const [showCode, setShowCode] = React.useState(false);\n const isMounted = React.useRef(true);\n const ExampleComponent = example;\n const showMapDocsAttribution =\n !code.includes('showBaseLayer: false') &&\n (showMapAttribution ?? shouldRenderMapDocsAttribution(type, code));\n\n const toggleShowCode = React.useCallback(() => {\n setShowCode(state => !state);\n }, []);\n\n React.useEffect((): (() => void) => {\n return () => {\n isMounted.current = false;\n setIsCopied(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (hideSandbox) return <DocExample title={title} code={code} example={example} />;\n\n const objDefn = convertToDashboardJSON(code, type);\n // set spacing level to 4\n const prettyJson = JSON.stringify(objDefn, null, 4);\n\n const copyToClipBoard = () => {\n if ('clipboard' in navigator) {\n navigator.clipboard.writeText(prettyJson);\n setIsCopied(true);\n }\n setTimeout(() => {\n if (isMounted.current) {\n setIsCopied(false);\n }\n }, 5000);\n };\n\n const renderAdditionalActions = () => [\n <Button\n key=\"show-dashboard-definition\"\n appearance=\"secondary\"\n onClick={toggleShowCode}\n icon={showCode ? <EyeSlashed /> : <WindowChevronsSlash />}\n label={showCode ? _('Hide dashboard definition') : _('Show dashboard definition')}\n />,\n ];\n\n const renderExample = () => (\n <div style={MAP_DOCS_EXAMPLE_WRAPPER_STYLE}>\n <ExampleComponent />\n {showMapDocsAttribution && <MapDocsAttribution />}\n </div>\n );\n\n return (\n <DocExample\n renderAdditionalActions={renderAdditionalActions}\n title={title}\n code={code}\n example={showMapDocsAttribution ? renderExample : example}\n description={description}\n >\n <TransitionOpen\n animation=\"slideFromTop\"\n open={showCode}\n retainFocus={false}\n takeFocus={false}\n renderChildrenWhenCollapsed={false}\n animateOnMount={false}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Code value={prettyJson} language=\"json\" />\n <Button\n onClick={copyToClipBoard}\n icon={isCopied ? <Checkmark /> : <SquaresLayered />}\n label={isCopied ? _('Copied') : _('Copy to clipboard')}\n style={{ height: '30px', maxWidth: '164px' }}\n />\n </div>\n </TransitionOpen>\n </DocExample>\n );\n};\n\nDocExampleWithVizSandbox.propTypes = {\n type: T.string,\n title: T.string,\n code: T.string,\n example: T.func,\n hideSandbox: T.bool,\n showMapAttribution: T.bool,\n};\n\nexport default DocExampleWithVizSandbox;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/DocExample\";\nexport * from \"@splunk/react-docs/DocExample\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Code\";\nexport * from \"@splunk/react-ui/Code\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/TransitionOpen\";\nexport * from \"@splunk/react-ui/TransitionOpen\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/SquaresLayered\";\nexport * from \"@splunk/react-icons/SquaresLayered\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/EyeSlashed\";\nexport * from \"@splunk/react-icons/EyeSlashed\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\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 \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-docs/UtilPage\";\nexport * from \"@splunk/react-docs/UtilPage\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as React from 'react';\nimport UtilPage from '@splunk/react-docs/UtilPage';\n\n// https://github.com/jsdoc2md/jsdoc-api#synopsis\ninterface JsDoc {\n access?: string;\n classdesc?: string;\n comment: string;\n kind: string;\n longname: string;\n meta: Record<string, unknown>;\n member: string;\n name: string;\n scope: string;\n}\n\nconst sharedSelectors = new Set([\n 'average',\n 'count',\n 'getField',\n 'getType',\n 'min',\n 'max',\n 'percentile',\n 'sum',\n]);\n\nconst formatSidebarItemName = (name: string, className: string): string => {\n return sharedSelectors.has(name) ? `${className}#${name}` : name;\n};\n\nconst removePrependedClassName = (longname = ''): string => longname.slice(longname.indexOf('#') + 1);\n\nconst formatDSLSelectorDocs = (docs: JsDoc[]): JsDoc[] =>\n docs.map(doc => ({\n ...doc,\n longname: removePrependedClassName(doc.longname),\n }));\n\nexport const getFormatterClassdesc = (\n formatterDocs: JsDoc[],\n name: string\n): { name: string; markdown: string } => ({\n name,\n markdown: `# ${name}\\n ${formatterDocs.find(doc => doc.name === name && doc.kind === 'class').classdesc}`,\n});\n\nexport const extractDocItems = (\n docs: JsDoc[],\n className: string\n): { name: string; component: (...args: any[]) => any }[] => {\n const classHeaderDoc = docs[0];\n const fileDoc = docs.at(-1);\n const filteredDocs = formatDSLSelectorDocs(docs).filter(\n ({ access, comment }) => access === 'public' && comment\n );\n\n return filteredDocs\n .map(doc => ({\n name: formatSidebarItemName(doc.name, className),\n component: function UtilDoc() {\n // named function so linter doesnt raise react/display-name error\n return <UtilPage title={`${className}#${doc.name}`} docs={[classHeaderDoc, doc, fileDoc]} />;\n },\n }))\n .sort((a, b) => a.name.localeCompare(b.name));\n};\n\nexport const formatCodeStringToObject = (codeString: string, regexMatch: RegExp): any => {\n const match = regexMatch.exec(codeString);\n if (!match) return null;\n\n const stringToParse = `{${match[1]}}`;\n\n // remove trailing commas\n const removedCommas = stringToParse.replace(/,(?!\\s*?[-{[\"'\\w])/g, '');\n\n // convert double quotes (which only occur inside strings) to back quotes\n const backQuotes = removedCommas.replaceAll('\"', '`');\n // replace single quotes with double quotes\n const doubleQuotes = backQuotes.replaceAll(\"'\", '\"');\n // replace back quotes with single quotes\n const singleQuotes = doubleQuotes.replaceAll('`', \"'\");\n\n // add quotes around keys\n const quotesAroundKeys = singleQuotes.replace(/\\b(\\w+)\\s*:(?=\\s)/g, '\"$1\":');\n\n let retval = null;\n try {\n retval = JSON.parse(quotesAroundKeys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n return retval;\n};\n\nexport const extractDataFromReactCode = (codeString: string): any => {\n const primaryRegex = /dataSources={{([\\s\\S]*?primary:[\\s\\S]*?)}}/;\n const { primary } = formatCodeStringToObject(codeString, primaryRegex) ?? {};\n\n const optionsRegex = /options={{([\\s\\S]*?)}}/;\n const options = formatCodeStringToObject(codeString, optionsRegex);\n\n const contextRegex = /context={{([\\s\\S]*?)}}/;\n const context = formatCodeStringToObject(codeString, contextRegex);\n\n return { primary, options, context };\n};\n\n// Takes a stringified react viz example and a viz type\n// Returns a dashboard definition object.\n// e.g. codeString: '<Area dataSources={{}} options={{}} />'\n// type: 'splunk.area'\nexport const convertToDashboardJSON = (codeString: string, type: string): any => {\n const { options, primary, context } = extractDataFromReactCode(codeString);\n\n return {\n visualizations: {\n test_viz: {\n type,\n ...(options ? { options } : {}),\n ...(primary ? { dataSources: { primary: 'primary' } } : {}),\n ...(context ? { context } : {}),\n },\n },\n ...(primary\n ? {\n dataSources: {\n primary: { type: 'ds.test', options: primary },\n },\n }\n : {}),\n defaults: {\n dataSources: {\n global: {\n options: {\n queryParameters: {\n latest: '$global_time.latest$',\n earliest: '$global_time.earliest$',\n },\n },\n },\n },\n },\n inputs: {\n input_global_trp: {\n type: 'input.timerange',\n options: {\n token: 'global_time',\n defaultValue: '-24h@h,now',\n },\n title: 'Global Time Range',\n },\n },\n layout: {\n type: 'absolute',\n options: {},\n structure: [\n {\n item: 'test_viz',\n type: 'block',\n position: {\n x: 0,\n y: 0,\n w: 800,\n h: 500,\n },\n },\n ],\n globalInputs: ['input_global_trp'],\n },\n };\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -346,11 +346,57 @@ var convertToDashboardJSON = (codeString, type) => {
346
346
  };
347
347
 
348
348
  // src/common/DocExampleWithVizSandbox.tsx
349
+ var MAP_DOCS_EXAMPLE_WRAPPER_STYLE = {
350
+ position: "relative",
351
+ display: "inline-block",
352
+ width: "fit-content",
353
+ maxWidth: "100%",
354
+ verticalAlign: "top"
355
+ };
356
+ var MAP_DOCS_ATTRIBUTION_STYLE = {
357
+ position: "absolute",
358
+ right: "16px",
359
+ bottom: "16px",
360
+ zIndex: 4,
361
+ padding: "4px 8px",
362
+ borderRadius: "4px",
363
+ background: "rgba(255, 255, 255, 0.92)",
364
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.2)",
365
+ fontSize: "11px",
366
+ lineHeight: "14px",
367
+ pointerEvents: "auto"
368
+ };
369
+ var MAP_DOCS_ATTRIBUTION_LINK_STYLE = {
370
+ color: "#136CBE",
371
+ textDecoration: "none"
372
+ };
373
+ var shouldRenderMapDocsAttribution = (type, code) => type === "splunk.map" && (code.includes("basemaps.cartocdn.com") || code.includes("MapDocsExample") || code.includes("docsTileConfig") || code.includes("testTileConfig")) && !code.includes("showBaseLayer: false");
374
+ var MapDocsAttribution = () => /* @__PURE__ */ react_exports.createElement("div", { "data-test": "map-docs-attribution", style: MAP_DOCS_ATTRIBUTION_STYLE }, /* @__PURE__ */ react_exports.createElement(
375
+ "a",
376
+ {
377
+ href: "https://www.openstreetmap.org/copyright",
378
+ rel: "noopener noreferrer",
379
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
380
+ target: "_blank"
381
+ },
382
+ "\xA9 OpenStreetMap contributors"
383
+ ), " ", /* @__PURE__ */ react_exports.createElement(
384
+ "a",
385
+ {
386
+ href: "https://carto.com/attributions/",
387
+ rel: "noopener noreferrer",
388
+ style: MAP_DOCS_ATTRIBUTION_LINK_STYLE,
389
+ target: "_blank"
390
+ },
391
+ "\xA9 CARTO"
392
+ ));
349
393
  var DocExampleWithVizSandbox = (props) => {
350
- const { type, title, code, example, hideSandbox = false, description } = props;
394
+ const { type, title, code, example, hideSandbox = false, description, showMapAttribution } = props;
351
395
  const [isCopied, setIsCopied] = react_exports.useState(false);
352
396
  const [showCode, setShowCode] = react_exports.useState(false);
353
397
  const isMounted = react_exports.useRef(true);
398
+ const ExampleComponent = example;
399
+ const showMapDocsAttribution = !code.includes("showBaseLayer: false") && (showMapAttribution != null ? showMapAttribution : shouldRenderMapDocsAttribution(type, code));
354
400
  const toggleShowCode = react_exports.useCallback(() => {
355
401
  setShowCode((state) => !state);
356
402
  }, []);
@@ -386,13 +432,14 @@ var DocExampleWithVizSandbox = (props) => {
386
432
  }
387
433
  )
388
434
  ];
435
+ const renderExample = () => /* @__PURE__ */ react_exports.createElement("div", { style: MAP_DOCS_EXAMPLE_WRAPPER_STYLE }, /* @__PURE__ */ react_exports.createElement(ExampleComponent, null), showMapDocsAttribution && /* @__PURE__ */ react_exports.createElement(MapDocsAttribution, null));
389
436
  return /* @__PURE__ */ react_exports.createElement(
390
437
  DocExample_default,
391
438
  {
392
439
  renderAdditionalActions,
393
440
  title,
394
441
  code,
395
- example,
442
+ example: showMapDocsAttribution ? renderExample : example,
396
443
  description
397
444
  },
398
445
  /* @__PURE__ */ react_exports.createElement(
@@ -422,7 +469,8 @@ DocExampleWithVizSandbox.propTypes = {
422
469
  title: prop_types_exports.string,
423
470
  code: prop_types_exports.string,
424
471
  example: prop_types_exports.func,
425
- hideSandbox: prop_types_exports.bool
472
+ hideSandbox: prop_types_exports.bool,
473
+ showMapAttribution: prop_types_exports.bool
426
474
  };
427
475
  var DocExampleWithVizSandbox_default = DocExampleWithVizSandbox;
428
476