@splunk/dashboard-toolbar 29.5.2 → 29.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/IconButton.js +18 -56
  2. package/IconButton.js.map +1 -1
  3. package/ItemGroup.js +6 -24
  4. package/ItemGroup.js.map +1 -1
  5. package/Toolbar.js +6 -14
  6. package/Toolbar.js.map +1 -1
  7. package/buttons/Charts.js +14 -47
  8. package/buttons/Charts.js.map +1 -1
  9. package/buttons/Config.js +21 -59
  10. package/buttons/Config.js.map +1 -1
  11. package/buttons/ContentExport.js +18 -56
  12. package/buttons/ContentExport.js.map +1 -1
  13. package/buttons/Data.js +21 -59
  14. package/buttons/Data.js.map +1 -1
  15. package/buttons/EmptyVisualization.js +22 -80
  16. package/buttons/EmptyVisualization.js.map +1 -1
  17. package/buttons/Fullscreen.js +22 -80
  18. package/buttons/Fullscreen.js.map +1 -1
  19. package/buttons/GridLineSwitch.js +2 -3
  20. package/buttons/GridLineSwitch.js.map +1 -1
  21. package/buttons/HelpButton.js +11 -44
  22. package/buttons/HelpButton.js.map +1 -1
  23. package/buttons/IconGallery.js +15 -68
  24. package/buttons/IconGallery.js.map +1 -1
  25. package/buttons/Image.js +22 -80
  26. package/buttons/Image.js.map +1 -1
  27. package/buttons/ImageGallery.js +15 -68
  28. package/buttons/ImageGallery.js.map +1 -1
  29. package/buttons/Inputs.js +19 -49
  30. package/buttons/Inputs.js.map +1 -1
  31. package/buttons/Markdown.js +20 -58
  32. package/buttons/Markdown.js.map +1 -1
  33. package/buttons/ModeSwitch.js +1 -1
  34. package/buttons/ModeSwitch.js.map +1 -1
  35. package/buttons/Redo.js +21 -63
  36. package/buttons/Redo.js.map +1 -1
  37. package/buttons/Shapes.js +13 -46
  38. package/buttons/Shapes.js.map +1 -1
  39. package/buttons/Source.js +18 -56
  40. package/buttons/Source.js.map +1 -1
  41. package/buttons/Undo.js +21 -63
  42. package/buttons/Undo.js.map +1 -1
  43. package/buttons/index.js +87 -157
  44. package/buttons/index.js.map +1 -1
  45. package/groups/ControlGroup.js +34 -99
  46. package/groups/ControlGroup.js.map +1 -1
  47. package/groups/EditingGroup.js +30 -69
  48. package/groups/EditingGroup.js.map +1 -1
  49. package/groups/EditorGroup.js +30 -78
  50. package/groups/EditorGroup.js.map +1 -1
  51. package/groups/EditorsControlGroup.js +39 -87
  52. package/groups/EditorsControlGroup.js.map +1 -1
  53. package/groups/HistoryGroup.js +36 -89
  54. package/groups/HistoryGroup.js.map +1 -1
  55. package/groups/SidebarControlGroup.js +39 -84
  56. package/groups/SidebarControlGroup.js.map +1 -1
  57. package/groups/VisualizationGroup.js +56 -118
  58. package/groups/VisualizationGroup.js.map +1 -1
  59. package/groups/index.js +92 -170
  60. package/groups/index.js.map +1 -1
  61. package/index.js +106 -194
  62. package/index.js.map +1 -1
  63. package/module/CollapsibleToolbar.js +11 -11
  64. package/module/IconButton.js +6 -6
  65. package/module/Item.js +3 -3
  66. package/module/ItemGroup.js +7 -7
  67. package/module/PopoverItemButton.js +4 -4
  68. package/module/Toolbar.js +6 -6
  69. package/module/buttons/Charts.js +15 -15
  70. package/module/buttons/Config.js +9 -9
  71. package/module/buttons/ContentExport.js +9 -9
  72. package/module/buttons/Data.js +10 -10
  73. package/module/buttons/EmptyVisualization.js +9 -9
  74. package/module/buttons/ExportDashboardButton.js +8 -8
  75. package/module/buttons/Fullscreen.js +9 -9
  76. package/module/buttons/GridLineSwitch.js +8 -8
  77. package/module/buttons/HelpButton.js +11 -11
  78. package/module/buttons/IconGallery.js +11 -11
  79. package/module/buttons/Image.js +9 -9
  80. package/module/buttons/ImageGallery.js +12 -12
  81. package/module/buttons/Inputs.js +11 -11
  82. package/module/buttons/Markdown.js +8 -8
  83. package/module/buttons/ModeSwitch.js +9 -9
  84. package/module/buttons/Redo.js +8 -8
  85. package/module/buttons/Shapes.js +13 -13
  86. package/module/buttons/Source.js +9 -9
  87. package/module/buttons/Undo.js +8 -8
  88. package/module/buttons/index.js +40 -40
  89. package/module/chunks/{chunk-KDWTCNVM.js → chunk-37TNXIHV.js} +8 -12
  90. package/module/chunks/{chunk-KDWTCNVM.js.map → chunk-37TNXIHV.js.map} +1 -1
  91. package/module/chunks/{chunk-GMMN7SOC.js → chunk-3PEWQDKC.js} +2 -2
  92. package/module/chunks/{chunk-ZV4AQ5DL.js → chunk-6C2NOEOI.js} +2 -2
  93. package/module/chunks/{chunk-VSD7VGBN.js → chunk-A4O2G7H7.js} +6 -6
  94. package/module/chunks/{chunk-RZWTF3BK.js → chunk-A4S4A2N5.js} +25 -39
  95. package/module/chunks/{chunk-RZWTF3BK.js.map → chunk-A4S4A2N5.js.map} +1 -1
  96. package/module/chunks/{chunk-6NLVLUCU.js → chunk-A6YRCP43.js} +2 -2
  97. package/module/chunks/chunk-AFH5LL74.js +26 -0
  98. package/module/chunks/{chunk-UCI2OCYF.js → chunk-B4IRCRYC.js} +12 -20
  99. package/module/chunks/{chunk-UCI2OCYF.js.map → chunk-B4IRCRYC.js.map} +1 -1
  100. package/module/chunks/{chunk-SJNT4MK5.js → chunk-DONX4ISJ.js} +6 -6
  101. package/module/chunks/{chunk-NTQBWCZU.js → chunk-EDGMTRPE.js} +8 -8
  102. package/module/chunks/{chunk-NTQBWCZU.js.map → chunk-EDGMTRPE.js.map} +1 -1
  103. package/module/chunks/chunk-EGORPP2V.js +34 -0
  104. package/module/chunks/{chunk-E7EUH33R.js.map → chunk-EGORPP2V.js.map} +1 -1
  105. package/module/chunks/{chunk-UNYHHA4F.js → chunk-EPMHIBVT.js} +10 -11
  106. package/module/chunks/{chunk-UNYHHA4F.js.map → chunk-EPMHIBVT.js.map} +1 -1
  107. package/module/chunks/{chunk-EUFLSUPO.js → chunk-ETTOVWKF.js} +14 -17
  108. package/module/chunks/{chunk-EUFLSUPO.js.map → chunk-ETTOVWKF.js.map} +1 -1
  109. package/module/chunks/{chunk-IHFVJPGQ.js → chunk-EVRV5ZFT.js} +2 -2
  110. package/module/chunks/{chunk-I6AJG47U.js → chunk-EZBGH5QE.js} +2 -2
  111. package/module/chunks/{chunk-TQIO5WSS.js → chunk-GGU3N3OR.js} +5 -5
  112. package/module/chunks/{chunk-RKJ7RKNK.js → chunk-GQJXWXKY.js} +2 -2
  113. package/module/chunks/{chunk-U5YCUIDK.js → chunk-HGF7R67S.js} +9 -12
  114. package/module/chunks/{chunk-U5YCUIDK.js.map → chunk-HGF7R67S.js.map} +1 -1
  115. package/module/chunks/{chunk-ZEITW5IL.js → chunk-HNLSR2U2.js} +10 -10
  116. package/module/chunks/{chunk-ZEITW5IL.js.map → chunk-HNLSR2U2.js.map} +1 -1
  117. package/module/chunks/{chunk-6RWX6HA7.js → chunk-HSIAXTEQ.js} +9 -12
  118. package/module/chunks/{chunk-6RWX6HA7.js.map → chunk-HSIAXTEQ.js.map} +1 -1
  119. package/module/chunks/{chunk-RZRB3MPG.js → chunk-I3Y2YMOQ.js} +32 -35
  120. package/module/chunks/{chunk-RZRB3MPG.js.map → chunk-I3Y2YMOQ.js.map} +1 -1
  121. package/module/chunks/{chunk-RFWUOGJ3.js → chunk-ICS6CLF6.js} +2 -2
  122. package/module/chunks/{chunk-5IFDFRGD.js → chunk-JMJ4YG2J.js} +8 -12
  123. package/module/chunks/{chunk-5IFDFRGD.js.map → chunk-JMJ4YG2J.js.map} +1 -1
  124. package/module/chunks/{chunk-QH53L2XQ.js → chunk-K4W7W6HJ.js} +7 -10
  125. package/module/chunks/{chunk-QH53L2XQ.js.map → chunk-K4W7W6HJ.js.map} +1 -1
  126. package/module/chunks/{chunk-C3GFY32L.js → chunk-KIWM3XWB.js} +2 -2
  127. package/module/chunks/{chunk-UUMIWWJE.js → chunk-KLSA6FGU.js} +13 -13
  128. package/module/chunks/{chunk-UUMIWWJE.js.map → chunk-KLSA6FGU.js.map} +1 -1
  129. package/module/chunks/{chunk-4SWPK2TU.js → chunk-KTJRF2VW.js} +3 -3
  130. package/module/chunks/{chunk-P5YTSVEV.js → chunk-L5IQTYSU.js} +9 -9
  131. package/module/chunks/{chunk-P5YTSVEV.js.map → chunk-L5IQTYSU.js.map} +1 -1
  132. package/module/chunks/{chunk-WSTQTULM.js → chunk-MDZOPP2X.js} +3 -3
  133. package/module/chunks/{chunk-VITMNUKV.js → chunk-MJ7HLEFT.js} +2 -2
  134. package/module/chunks/{chunk-HMQY5XLG.js → chunk-MTBEBUIU.js} +8 -12
  135. package/module/chunks/{chunk-HMQY5XLG.js.map → chunk-MTBEBUIU.js.map} +1 -1
  136. package/module/chunks/{chunk-YMIK47DX.js → chunk-O3KEDXFD.js} +14 -15
  137. package/module/chunks/{chunk-YMIK47DX.js.map → chunk-O3KEDXFD.js.map} +1 -1
  138. package/module/chunks/{chunk-RPNGCVZL.js → chunk-OBDH7GEY.js} +2 -2
  139. package/module/chunks/{chunk-2MOF5ZP7.js → chunk-OE5GQ3FG.js} +7 -7
  140. package/module/chunks/{chunk-XWRMHLAP.js → chunk-OOGFGU4X.js} +2 -2
  141. package/module/chunks/{chunk-DM27U6AI.js → chunk-OUC7QEXH.js} +18 -17
  142. package/module/chunks/{chunk-DM27U6AI.js.map → chunk-OUC7QEXH.js.map} +1 -1
  143. package/module/chunks/{chunk-E3IBH4RN.js → chunk-P23RJTRF.js} +10 -10
  144. package/module/chunks/{chunk-VGHYIDZA.js → chunk-P2G7HULR.js} +5 -8
  145. package/module/chunks/{chunk-VGHYIDZA.js.map → chunk-P2G7HULR.js.map} +1 -1
  146. package/module/chunks/{chunk-KMWIB6DC.js → chunk-P7X3KHUG.js} +6 -9
  147. package/module/chunks/{chunk-KMWIB6DC.js.map → chunk-P7X3KHUG.js.map} +1 -1
  148. package/module/chunks/{chunk-BDFUA6X7.js → chunk-PDTV2ZHG.js} +9 -14
  149. package/module/chunks/{chunk-BDFUA6X7.js.map → chunk-PDTV2ZHG.js.map} +1 -1
  150. package/module/chunks/{chunk-RJ5FWZWY.js → chunk-PKNBH4OS.js} +11 -18
  151. package/module/chunks/{chunk-RJ5FWZWY.js.map → chunk-PKNBH4OS.js.map} +1 -1
  152. package/module/chunks/{chunk-JIIPUMEA.js → chunk-PZA4F4AY.js} +2 -2
  153. package/module/chunks/{chunk-V3YGNO27.js → chunk-Q5OC2QQV.js} +2 -2
  154. package/module/chunks/{chunk-KGSEQL62.js → chunk-QQWQ2KSF.js} +2 -2
  155. package/module/chunks/{chunk-MUXHFVOC.js → chunk-RL6UDJ3E.js} +10 -11
  156. package/module/chunks/{chunk-MUXHFVOC.js.map → chunk-RL6UDJ3E.js.map} +1 -1
  157. package/module/chunks/{chunk-SFYQQARV.js → chunk-SJBQOPBI.js} +3 -3
  158. package/module/chunks/{chunk-RS2VRN2X.js → chunk-VENUU6C7.js} +7 -7
  159. package/module/chunks/{chunk-RS2VRN2X.js.map → chunk-VENUU6C7.js.map} +1 -1
  160. package/module/chunks/{chunk-DQZGTQ2Z.js → chunk-WOYP7J2K.js} +9 -9
  161. package/module/chunks/chunk-X74ALD2D.js +25 -0
  162. package/module/chunks/{chunk-PUNHFOXB.js.map → chunk-X74ALD2D.js.map} +1 -1
  163. package/module/chunks/{chunk-YH3LWJKQ.js → chunk-Y4MM4UJB.js} +17 -17
  164. package/module/chunks/{chunk-YH3LWJKQ.js.map → chunk-Y4MM4UJB.js.map} +1 -1
  165. package/module/chunks/{chunk-FMSKWHRK.js → chunk-YK4XZUC2.js} +11 -14
  166. package/module/chunks/{chunk-FMSKWHRK.js.map → chunk-YK4XZUC2.js.map} +1 -1
  167. package/module/groups/ActionsGroup.js +7 -7
  168. package/module/groups/ControlGroup.js +42 -42
  169. package/module/groups/EditingGroup.js +42 -42
  170. package/module/groups/EditorGroup.js +42 -42
  171. package/module/groups/EditorsControlGroup.js +42 -42
  172. package/module/groups/HistoryGroup.js +42 -42
  173. package/module/groups/SidebarControlGroup.js +42 -42
  174. package/module/groups/VisualizationGroup.js +42 -42
  175. package/module/groups/index.js +49 -49
  176. package/module/index.js +51 -51
  177. package/package.json +22 -22
  178. package/module/chunks/chunk-E7EUH33R.js +0 -40
  179. package/module/chunks/chunk-PUNHFOXB.js +0 -31
  180. package/module/chunks/chunk-VQIRZ53C.js +0 -79
  181. package/types/groups/HistoryGroup.test.d.ts +0 -2
  182. package/types/groups/HistoryGroup.test.d.ts.map +0 -1
  183. /package/module/chunks/{chunk-GMMN7SOC.js.map → chunk-3PEWQDKC.js.map} +0 -0
  184. /package/module/chunks/{chunk-ZV4AQ5DL.js.map → chunk-6C2NOEOI.js.map} +0 -0
  185. /package/module/chunks/{chunk-VSD7VGBN.js.map → chunk-A4O2G7H7.js.map} +0 -0
  186. /package/module/chunks/{chunk-6NLVLUCU.js.map → chunk-A6YRCP43.js.map} +0 -0
  187. /package/module/chunks/{chunk-VQIRZ53C.js.map → chunk-AFH5LL74.js.map} +0 -0
  188. /package/module/chunks/{chunk-SJNT4MK5.js.map → chunk-DONX4ISJ.js.map} +0 -0
  189. /package/module/chunks/{chunk-IHFVJPGQ.js.map → chunk-EVRV5ZFT.js.map} +0 -0
  190. /package/module/chunks/{chunk-I6AJG47U.js.map → chunk-EZBGH5QE.js.map} +0 -0
  191. /package/module/chunks/{chunk-TQIO5WSS.js.map → chunk-GGU3N3OR.js.map} +0 -0
  192. /package/module/chunks/{chunk-RKJ7RKNK.js.map → chunk-GQJXWXKY.js.map} +0 -0
  193. /package/module/chunks/{chunk-RFWUOGJ3.js.map → chunk-ICS6CLF6.js.map} +0 -0
  194. /package/module/chunks/{chunk-C3GFY32L.js.map → chunk-KIWM3XWB.js.map} +0 -0
  195. /package/module/chunks/{chunk-4SWPK2TU.js.map → chunk-KTJRF2VW.js.map} +0 -0
  196. /package/module/chunks/{chunk-WSTQTULM.js.map → chunk-MDZOPP2X.js.map} +0 -0
  197. /package/module/chunks/{chunk-VITMNUKV.js.map → chunk-MJ7HLEFT.js.map} +0 -0
  198. /package/module/chunks/{chunk-RPNGCVZL.js.map → chunk-OBDH7GEY.js.map} +0 -0
  199. /package/module/chunks/{chunk-2MOF5ZP7.js.map → chunk-OE5GQ3FG.js.map} +0 -0
  200. /package/module/chunks/{chunk-XWRMHLAP.js.map → chunk-OOGFGU4X.js.map} +0 -0
  201. /package/module/chunks/{chunk-E3IBH4RN.js.map → chunk-P23RJTRF.js.map} +0 -0
  202. /package/module/chunks/{chunk-JIIPUMEA.js.map → chunk-PZA4F4AY.js.map} +0 -0
  203. /package/module/chunks/{chunk-V3YGNO27.js.map → chunk-Q5OC2QQV.js.map} +0 -0
  204. /package/module/chunks/{chunk-KGSEQL62.js.map → chunk-QQWQ2KSF.js.map} +0 -0
  205. /package/module/chunks/{chunk-SFYQQARV.js.map → chunk-SJBQOPBI.js.map} +0 -0
  206. /package/module/chunks/{chunk-DQZGTQ2Z.js.map → chunk-WOYP7J2K.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/groups/SidebarControlGroup.tsx", "esm-externals:react", "esm-externals:styled-components", "esm-externals:@splunk/dashboard-utils", "esm-externals:@splunk/themes", "../src/components/ItemSeparator.tsx", "../src/ItemGroup.tsx", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/dashboard-context", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Tooltip", "../src/Item.tsx", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/react-icons/ChartColumn", "esm-externals:@splunk/dashboard-state", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "../src/IconButton.tsx", "../src/components/StyledButton.tsx", "../src/buttons/Charts.tsx", "esm-externals:@splunk/react-icons/Cog", "../src/buttons/Config.tsx", "esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown", "../src/buttons/ContentExport.tsx", "esm-externals:@splunk/react-icons/CylinderMulti", "../src/buttons/Data.tsx", "esm-externals:@splunk/react-icons/Checkmark", "../src/buttons/Display/Display.tsx", "esm-externals:@splunk/react-icons/Square", "../src/buttons/EmptyVisualization.tsx", "../src/buttons/ExportDashboardButton.tsx", "esm-externals:@splunk/react-icons/ChevronsOut", "../src/buttons/Fullscreen.tsx", "esm-externals:@splunk/react-ui/Switch", "../src/buttons/GridLineSwitch.tsx", "esm-externals:@splunk/react-icons/ChartSingleValueIcon", "../src/buttons/IconGallery.tsx", "esm-externals:@splunk/react-icons/QuestionCircle", "../src/buttons/HelpButton.tsx", "esm-externals:@splunk/react-icons/Picture", "../src/buttons/Image.tsx", "../src/buttons/ImageGallery.tsx", "esm-externals:lodash", "esm-externals:@splunk/react-icons/SlidersTripleHorizontal", "esm-externals:@splunk/dashboard-definition", "../src/buttons/Inputs.tsx", "esm-externals:@splunk/react-icons/Markdown", "../src/buttons/Markdown.tsx", "esm-externals:@splunk/react-icons/ArrowBowRight", "../src/buttons/Redo.tsx", "esm-externals:@splunk/react-icons/Circle", "esm-externals:@splunk/react-icons/Line", "esm-externals:@splunk/react-icons/ShapesVariety", "../src/PopoverItemButton.tsx", "../src/buttons/Shapes.tsx", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "../src/buttons/Source.tsx", "esm-externals:@splunk/react-icons/ListToken", "../src/buttons/tokenManager/TokenManager.tsx", "esm-externals:@splunk/react-icons/ArrowBowLeft", "../src/buttons/Undo.tsx", "esm-externals:@splunk/ui-utils/format", "esm-externals:@splunk/react-ui/Number", "../src/buttons/Zoom/ZoomNumber.tsx", "../src/buttons/Zoom/Zoom.tsx"],
4
4
  "sourcesContent": ["import React from 'react';\nimport ItemGroup from '../ItemGroup';\nimport { Config, Data, TokenManager } from '../buttons';\n\n/**\n * group that controls dashboard sidebar\n */\nconst SidebarControlGroup = (props: React.ComponentProps<typeof ItemGroup>) => (\n <ItemGroup {...props}>\n <Config />\n <Data />\n <TokenManager />\n </ItemGroup>\n);\n\nexport default SidebarControlGroup;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import * as defaultImport from \"@splunk/dashboard-utils\";\nexport * from \"@splunk/dashboard-utils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\nimport { variables } from '@splunk/themes';\n\nconst ItemSeparator = styled.div`\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: ${variables.interactiveColorBorder};\n width: 0px;\n height: ${variables.inputHeight};\n`;\n\nexport default ItemSeparator;\n", "import React from 'react';\nimport styled from 'styled-components';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\nimport { toPx } from '@splunk/dashboard-utils';\nimport type { ToolbarButtonProps } from './types/common';\nimport ItemSeparator from './components/ItemSeparator';\n\nconst Group = styled.div.attrs({\n 'data-test': 'toolbar-item-group',\n})<{ gap: string }>`\n display: flex;\n flex-direction: row;\n gap: ${(props) => props.gap};\n`;\n\nexport type ItemGroupProps = {\n borders?: boolean;\n children?: React.ReactNode;\n align?: 'left' | 'right';\n sourceButtonOnClick?: ButtonClickHandler;\n gap?: number | string;\n [key: string]: unknown;\n} & ToolbarButtonProps;\n\nconst ItemGroup = ({\n children,\n borders = true,\n gap,\n ...rest\n}: ItemGroupProps) => {\n const items = React.Children.map(\n children,\n (child) => child && React.cloneElement(child as JSX.Element, rest)\n );\n const separator = borders ? <ItemSeparator /> : null;\n return (\n <>\n <Group gap={toPx(gap, 2)}>{items}</Group>\n {separator}\n </>\n );\n};\n\nexport default ItemGroup;\n", "import * as defaultImport from \"@splunk/dashboard-ui\";\nexport * from \"@splunk/dashboard-ui\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-context\";\nexport * from \"@splunk/dashboard-context\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ChartColumn\";\nexport * from \"@splunk/react-icons/ChartColumn\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-state\";\nexport * from \"@splunk/dashboard-state\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n", "import React from 'react';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\n\nconst BaseDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n\nexport interface StyledDropdownButtonProps\n extends Pick<ButtonPropsBase, 'appearance' | 'icon' | 'disabled'> {\n children?: React.ReactNode;\n className?: string;\n 'data-clickable'?: boolean;\n 'data-test'?: string;\n tooltipContent?: string;\n}\n\nexport const StyledDropdownButton = React.forwardRef<\n HTMLButtonElement,\n StyledDropdownButtonProps\n>(({ tooltipContent, ...props }, ref): JSX.Element => {\n const button = (\n <BaseDropdownButton\n {...props}\n elementRef={ref as React.RefObject<HTMLButtonElement>}\n />\n );\n\n return tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n );\n});\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport styled from 'styled-components';\nimport Dropdown, {\n type DropdownChildrenRenderer,\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { SplunkThemeProvider, useSplunkTheme } from '@splunk/themes';\n\nimport AddChartDropdown from '@splunk/react-icons/ChartColumn';\n\nimport { VisualizationFilter, type Taxonomy } from '@splunk/dashboard-ui';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\ninterface ScrollableMenuProps {\n maxHeight?: number | null;\n}\n\nconst ScrollableMenu = styled(Menu).attrs<ScrollableMenuProps>(\n ({ maxHeight }) => ({\n style: {\n maxHeight: maxHeight ?? undefined,\n },\n })\n)<ScrollableMenuProps>`\n overflow-y: auto;\n`;\n\nconst chartsDropdown = prepareIcon({\n Icon: AddChartDropdown,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"charts-button\"\n data-clickable\n appearance=\"subtle\"\n icon={chartsDropdown}\n tooltipContent={_('Add chart')}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\ntype Visualizations = Taxonomy[number]['visualizations'];\n\n/**\n * export for unit testing\n * @private\n */\nexport const getVisualizationListFromTaxonomy = ({\n taxonomy,\n handleCreateVisualization,\n}: {\n taxonomy: Taxonomy;\n handleCreateVisualization: (opt: {\n type: string;\n options: Record<string, unknown>;\n }) => () => void;\n}): JSX.Element[] =>\n taxonomy.reduce(\n (list: React.ReactElement[], { visualizations, category }) => {\n const availableVisualizations: Visualizations =\n visualizations.filter((props) => props.includeInToolbar);\n\n if (availableVisualizations.length === 0) {\n return list;\n }\n\n list.push(<Menu.Divider key={`menu-divider-${category}`} />);\n\n return list.concat(\n availableVisualizations.map((vizProps) => {\n const { label, type, initialOptions } = vizProps;\n const Icon = vizProps.icon as React.JSXElementConstructor<\n Record<string, unknown>\n > | null;\n\n if (!type) {\n return null;\n }\n\n const onClick = handleCreateVisualization({\n type,\n options: initialOptions as Record<string, unknown>,\n });\n\n return (\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={onClick}\n startAdornment={!!Icon && <Icon size=\"18px\" />}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n }) as JSX.Element[]\n );\n },\n []\n );\n\n/**\n * Charts button that has a dropdown menu.\n */\nconst Charts = ({ dashboardApi, preset }: ToolbarButtonProps): JSX.Element => {\n const { showNewDataForViz = true } = useFeatureFlags();\n\n const { family } = useSplunkTheme();\n const { handleForceClose, handleRequestClose, handleRequestOpen, isOpen } =\n useDropdown({\n isContentClickClose: false,\n });\n\n const taxonomy: Taxonomy = useMemo(\n () => new VisualizationFilter(preset).taxonomy,\n [preset]\n );\n\n const handleCreateVisualization = useCallback(\n ({\n type,\n options,\n }: {\n type: string;\n options: Record<string, unknown>;\n }) =>\n () => {\n batch(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: { type, options },\n });\n\n if (showNewDataForViz) {\n dashboardApi?.openPanel({\n activePanel: 'connectData',\n panelProps: {\n bindingType: 'primary',\n from: {\n activePanel: 'config',\n },\n },\n });\n }\n });\n\n handleForceClose();\n },\n [dashboardApi, showNewDataForViz, handleForceClose]\n );\n\n const visualizationList = useMemo(\n () =>\n getVisualizationListFromTaxonomy({\n taxonomy,\n handleCreateVisualization,\n }),\n [taxonomy, handleCreateVisualization]\n );\n\n const renderScrollableMenu = useCallback<DropdownChildrenRenderer>(\n ({ maxHeight }) => (\n <SplunkThemeProvider\n density={family === 'enterprise' ? 'comfortable' : 'compact'}\n >\n <ScrollableMenu\n maxHeight={maxHeight}\n data-test=\"add-chart-menu\"\n >\n {visualizationList}\n </ScrollableMenu>\n </SplunkThemeProvider>\n ),\n [family, visualizationList]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n {renderScrollableMenu}\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Charts;\n", "import * as defaultImport from \"@splunk/react-icons/Cog\";\nexport * from \"@splunk/react-icons/Cog\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Configuration from '@splunk/react-icons/Cog';\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst configurationIcon = prepareIcon({\n Icon: Configuration,\n});\n\n/**\n * Button that toggle open config panel\n */\nconst Config = ({ dashboardApi }: ToolbarButtonProps) => {\n const configButtonRef = useToolbarRef('config');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'config';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open config panel\n dashboardApi?.openPanel({\n activePanel: 'config',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={configButtonRef}\n testLabel=\"config-button\"\n onClick={handleClick}\n icon={configurationIcon}\n tooltipContent={_('Configuration')}\n />\n );\n};\n\nexport default Config;\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport * from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ArrowBroadUnderbarDown from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface ContentExportProps extends ToolbarButtonProps {\n disabled?: boolean;\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n}\n\nconst icon = prepareIcon({\n Icon: ArrowBroadUnderbarDown,\n});\n\nconst ContentExport = ({ disabled, onClick }: ContentExportProps) => (\n <IconButton\n testLabel=\"content-export-button\"\n onClick={onClick}\n disabled={!!disabled}\n icon={icon}\n tooltipContent={_('Export')}\n />\n);\n\nexport default ContentExport;\n", "import * as defaultImport from \"@splunk/react-icons/CylinderMulti\";\nexport * from \"@splunk/react-icons/CylinderMulti\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport DataInput from '@splunk/react-icons/CylinderMulti';\n\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst dataInputIcon = prepareIcon({\n Icon: DataInput,\n});\n\n/**\n * Button that toggle data overview panel\n */\nconst Data = ({ dashboardApi }: ToolbarButtonProps) => {\n const dataButtonRef = useToolbarRef('dataOverview');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'dataOverview';\n if (isOpen) {\n dashboardApi.closePanel();\n } else {\n batch(() => {\n // Deselect all selected visualizations\n dashboardApi?.selectVisualization([]);\n // Open data overview panel\n dashboardApi?.openPanel({\n activePanel: 'dataOverview',\n panelProps: {\n focusOnOpen: true,\n },\n });\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={dataButtonRef}\n testLabel=\"data-button\"\n onClick={handleClick}\n icon={dataInputIcon}\n tooltipContent={_('Data source overview')}\n />\n );\n};\n\nexport default Data;\n", "import * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport {\n selectAreGlobalItemsCollapsed,\n selectGlobalInputs,\n selectDescription,\n selectIsDescriptionCollapsed,\n selectLayoutGlobalOptions,\n useSelector,\n} from '@splunk/dashboard-state';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport { variables } from '@splunk/themes';\nimport styled from 'styled-components';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst menuStyle = {\n minWidth: '150px',\n};\n\nconst CheckmarkIcon = styled(Checkmark)`\n color: ${variables.contentColorActive};\n`;\n\nconst CheckmarkPlaceholder = styled.span`\n display: inline-block;\n width: 16px;\n`;\n\ninterface DisplayProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n}\n\nexport const Display = ({\n appearance = 'default',\n dashboardApi,\n}: DisplayProps): JSX.Element | null => {\n const globalInputs = useSelector(selectGlobalInputs);\n const hasGlobalInputs = (globalInputs?.length ?? 0) > 0;\n const areInputsCollapsed = useSelector(selectAreGlobalItemsCollapsed);\n const showInputs = !areInputsCollapsed;\n const description = useSelector(selectDescription);\n const { showTitleAndDescription = true } = useSelector(\n selectLayoutGlobalOptions\n );\n const hasDescription = !!description && showTitleAndDescription;\n const isDescriptionCollapsed = useSelector(selectIsDescriptionCollapsed);\n const showDescription = !isDescriptionCollapsed;\n\n const handleInputsToggle = useCallback(() => {\n dashboardApi?.setAreGlobalInputsCollapsed({\n collapsed: !areInputsCollapsed,\n });\n }, [dashboardApi, areInputsCollapsed]);\n\n const handleDescriptionToggle = useCallback(() => {\n dashboardApi?.setIsDescriptionCollapsed({\n collapsed: !isDescriptionCollapsed,\n });\n }, [dashboardApi, isDescriptionCollapsed]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = useMemo(\n () => (\n <Button\n data-clickable\n data-test=\"display-dropdown-button\"\n appearance={appearance}\n isMenu\n aria-label={_('Display options')}\n >\n {_('Display')}\n </Button>\n ),\n [appearance]\n );\n\n const inputsCheckmarkIcon = useMemo(() => {\n return showInputs ? <CheckmarkIcon /> : <CheckmarkPlaceholder />;\n }, [showInputs]);\n\n const descriptionCheckmarkIcon = useMemo(() => {\n return showDescription ? <CheckmarkIcon /> : <CheckmarkPlaceholder />;\n }, [showDescription]);\n\n const dropdownMenuChildren = useMemo(() => {\n const items = [];\n\n if (hasDescription) {\n items.push(\n <Menu.Item\n key=\"description-item\"\n data-test=\"description-menu-item\"\n onClick={handleDescriptionToggle}\n startAdornment={descriptionCheckmarkIcon}\n >\n {_('Dashboard description')}\n </Menu.Item>\n );\n }\n\n if (hasGlobalInputs) {\n items.push(\n <Menu.Item\n key=\"inputs-item\"\n data-test=\"inputs-menu-item\"\n onClick={handleInputsToggle}\n startAdornment={inputsCheckmarkIcon}\n >\n {_('Inputs')}\n </Menu.Item>\n );\n }\n\n return items;\n }, [\n hasDescription,\n hasGlobalInputs,\n handleDescriptionToggle,\n handleInputsToggle,\n descriptionCheckmarkIcon,\n inputsCheckmarkIcon,\n ]);\n\n if (dropdownMenuChildren.length === 0) {\n return null;\n }\n\n return (\n <Tooltip contentRelationship=\"label\" content={_('Display')}>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Display options')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n </Tooltip>\n );\n};\n", "import * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BoxUnchecked from '@splunk/react-icons/Square';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: BoxUnchecked,\n});\n\n/**\n * Button that creates a empty viz\n */\nconst EmptyVisualization = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.rectangle',\n options: {\n fillColor: 'transparent',\n strokeColor: 'transparent',\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"empty-viz-button\"\n onClick={handleClick}\n icon={icon}\n tooltipContent={_('Add rectangle')}\n />\n );\n};\n\nexport default EmptyVisualization;\n", "import React, { useCallback, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Download from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport { ExportDashboardModal } from '@splunk/dashboard-ui';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Button from '@splunk/react-ui/Button';\nimport type { ToolbarButtonProps } from '../types/common';\n\n// this icon should be sized consistent with the adjacent text, it does not need screenreader content\nconst downloadIcon = <Download />;\n\nconst StyledButton = styled(Button)`\n flex-shrink: 0;\n flex-grow: 0;\n`;\n\nexport interface ExportDashboardButtonProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n scale?: number;\n}\n\nconst ExportDashboardButton = ({\n appearance = 'secondary',\n scale = 1,\n}: ExportDashboardButtonProps) => {\n const [open, setOpen] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <>\n <StyledButton\n elementRef={buttonRef}\n icon={downloadIcon}\n key=\"export-dashboard-button\"\n data-clickable\n data-test=\"export-dashboard-button\"\n label={_('Download')}\n appearance={appearance || 'secondary'}\n onClick={handleOpen}\n />\n <ExportDashboardModal\n open={open}\n onModalClose={handleClose}\n scale={scale}\n returnFocus={buttonRef}\n />\n </>\n );\n};\n\nexport default ExportDashboardButton;\n", "import * as defaultImport from \"@splunk/react-icons/ChevronsOut\";\nexport * from \"@splunk/react-icons/ChevronsOut\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Fullscreen from '@splunk/react-icons/ChevronsOut';\nimport { selectFullscreenElement, useSelector } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { useToolbarButtonClick } from '../hooks/useToolbarButtonClick';\n\nconst icon = prepareIcon({\n Icon: Fullscreen,\n});\n\n/**\n * Button that toggle fullscreen mode\n */\nconst FullScreen = ({ dashboardApi }: ToolbarButtonProps) => {\n const isFullscreen = !!useSelector(selectFullscreenElement);\n\n const enterFullscreen = useCallback(async () => {\n await dashboardApi?.enterFullscreen();\n }, [dashboardApi]);\n\n const handleClick = useToolbarButtonClick('fullscreen', enterFullscreen);\n\n return (\n <IconButton\n testLabel=\"fullscreen-button\"\n onClick={handleClick}\n disabled={isFullscreen}\n icon={icon}\n tooltipContent={_('Fullscreen')}\n />\n );\n};\n\nexport default FullScreen;\n", "import * as defaultImport from \"@splunk/react-ui/Switch\";\nexport * from \"@splunk/react-ui/Switch\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Switch from '@splunk/react-ui/Switch';\nimport {\n selectAreGridLinesEnabled,\n useSelector,\n} from '@splunk/dashboard-state';\nimport { variables } from '@splunk/themes';\nimport ItemSeparator from '../components/ItemSeparator';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst SwitchContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: ${variables.spacingSmall};\n`;\n\nexport interface GridLineSwitchProps extends ToolbarButtonProps {\n showSeparator?: boolean;\n}\n\nconst GridLineSwitch = ({\n dashboardApi,\n mode,\n showSeparator,\n layoutType,\n}: GridLineSwitchProps) => {\n const showGrid = useSelector(selectAreGridLinesEnabled) ?? false;\n\n const handleClick = useCallback(() => {\n dashboardApi?.toggleGridLines(!showGrid);\n }, [dashboardApi, showGrid]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n if (!dashboardApi || mode !== 'edit' || layoutType === 'grid') {\n return null;\n }\n\n return (\n <SwitchContainer key=\"grid-line-switch\">\n <Switch\n onClick={handleClick}\n selected={showGrid}\n selectedLabel={_('Gridlines displayed')}\n unselectedLabel={_('Gridlines not displayed')}\n appearance=\"toggle\"\n data-test=\"gridline-toggle\"\n data-clickable\n >\n {_('Gridlines')}\n </Switch>\n {separator}\n </SwitchContainer>\n );\n};\n\nexport default GridLineSwitch;\n", "import * as defaultImport from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport * from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\n\nimport AddIconDropdown from '@splunk/react-icons/ChartSingleValueIcon';\nimport { IconGallery as IconGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst iconGalleryDropdown = prepareIcon({\n Icon: AddIconDropdown,\n isMenu: true,\n});\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\n/**\n * Icon Gallery button that has as a dropdown menu.\n */\nconst IconGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const ButtonToggle = useMemo(\n () => (\n <StyledDropdownButton\n data-test=\"icon-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={iconGalleryDropdown}\n tooltipContent={_('Add icon')}\n />\n ),\n []\n );\n const handlePanelClick = useCallback(\n async (iconURL: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.singlevalueicon',\n options: {\n showValue: false,\n icon: iconURL,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <MenusContainer data-test=\"icon-menu\" data-open={isOpen}>\n <IconGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default IconGallery;\n", "import * as defaultImport from \"@splunk/react-icons/QuestionCircle\";\nexport * from \"@splunk/react-icons/QuestionCircle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport Help from '@splunk/react-icons/QuestionCircle';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\nexport interface ToolbarHelpLink {\n label: string;\n description?: string;\n url: string;\n}\n\ninterface HelpProps extends ToolbarButtonProps {\n helpLinks?: ToolbarHelpLink[];\n}\n\nconst HelpIcon = prepareIcon({\n Icon: Help,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"help-button\"\n icon={HelpIcon}\n tooltipContent={_('Help links')}\n />\n);\n\n/**\n * Help button which expands dropdown full of links\n */\nconst HelpButton = ({ helpLinks = [] }: HelpProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const HelpLinks = useMemo(() => {\n if (helpLinks.length === 0) {\n return [\n <Menu.Item\n data-test=\"no-links-provided\"\n key=\"no-links-provided\"\n disabled\n >\n {_('No Links')}\n </Menu.Item>,\n ];\n }\n\n return helpLinks.map((link: ToolbarHelpLink) => {\n const { label = '', description = '', url } = link;\n const key = label.replaceAll(/\\s/g, '');\n\n return (\n <Menu.Item\n data-test=\"help-link\"\n data-test-clickable\n to={url}\n description={description}\n key={`help-link-${key}`}\n openInNewContext\n >\n {label}\n </Menu.Item>\n );\n });\n }, [helpLinks]);\n\n return (\n <ToolbarItem>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{HelpLinks}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default HelpButton;\n", "import * as defaultImport from \"@splunk/react-icons/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Picture from '@splunk/react-icons/Picture';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: Picture,\n});\n\n/**\n * Button that create a empty image\n */\nconst Image = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"image-button\"\n onClick={handleClick}\n icon={icon}\n tooltipContent={_('Add image')}\n />\n );\n};\n\nexport default Image;\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport AddImage from '@splunk/react-icons/Picture';\n\nimport { ImageGallery as ImageGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst imageGalleryDropdown = prepareIcon({\n Icon: AddImage,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"image-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={imageGalleryDropdown}\n tooltipContent={_('Add image')}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\n/**\n * Image Gallery button that has as a dropdown menu.\n */\nconst ImageGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const handlePanelClick = useCallback(\n async (imageUrl: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n src: imageUrl,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <MenusContainer>\n <ImageGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default ImageGallery;\n", "import * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport * from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-definition\";\nexport * from \"@splunk/dashboard-definition\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport { each } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Input from '@splunk/react-icons/SlidersTripleHorizontal';\nimport { DashboardDefinition } from '@splunk/dashboard-definition';\nimport type {\n PresetMap,\n InputConfig,\n DashboardApi,\n} from '@splunk/dashboard-types';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\nconst addInputIcon = prepareIcon({\n Icon: Input,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"inputs-button\"\n icon={addInputIcon}\n tooltipContent={_('Add input')}\n />\n);\n\ninterface AddInputFactoryArgs {\n type: string;\n defaultConfig: {\n options?: Record<string, unknown>;\n [x: string]: unknown;\n };\n tokenPrefix: string;\n showToken: boolean;\n dashboardApi?: DashboardApi;\n}\n\n// click handler factory\nconst onCreateInputClickFactory =\n ({\n type,\n defaultConfig,\n tokenPrefix,\n showToken,\n dashboardApi,\n }: AddInputFactoryArgs) =>\n () => {\n if (!dashboardApi) {\n return;\n }\n\n const newConfig = {\n ...defaultConfig,\n type,\n options: {\n ...defaultConfig.options,\n },\n };\n // showToken flags whether or not the input has a token assigned on creation\n if (showToken) {\n newConfig.options.token = DashboardDefinition.fromJSON(\n dashboardApi?.getDefinition()\n ).nextTokenId(tokenPrefix);\n }\n dashboardApi.addInput(newConfig);\n dashboardApi.openPanel({ activePanel: 'config' });\n };\n\n/**\n * Add Input button that has a dropdown menu.\n */\nconst Inputs = ({\n dashboardApi,\n preset = DEFAULT_PRESET_MAP,\n}: ToolbarButtonProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const InputTypeButtons = useMemo(() => {\n const buttons = [];\n\n const inputs = preset?.inputs as Record<\n string,\n {\n config: InputConfig;\n }\n >;\n\n each(inputs, (InputImpl, type) => {\n const {\n baseShape = {},\n label = _(`${type} Input`),\n description = '',\n tokenPrefix = 'token',\n includeInToolbar = true,\n icon: Icon = Input,\n // showToken flags whether or not the input has a token assigned on creation\n showToken = true,\n } = InputImpl.config || {};\n\n if (!includeInToolbar) {\n return;\n }\n\n const handleClick = onCreateInputClickFactory({\n type,\n defaultConfig: baseShape,\n tokenPrefix,\n showToken,\n dashboardApi,\n });\n\n const inputIcon = <Icon width=\"24px\" height=\"24px\" />;\n\n buttons.push(\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={handleClick}\n startAdornment={inputIcon}\n description={description}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n });\n\n if (buttons.length === 0) {\n buttons.push(\n <Menu.Item\n data-test=\"no-inputs-in-preset\"\n key=\"no-inputs-in-preset\"\n disabled\n >\n {_('No Inputs')}\n </Menu.Item>\n );\n }\n\n return buttons;\n }, [preset, dashboardApi]);\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{InputTypeButtons}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Inputs;\n", "import * as defaultImport from \"@splunk/react-icons/Markdown\";\nexport * from \"@splunk/react-icons/Markdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport MarkdownIcon from '@splunk/react-icons/Markdown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: MarkdownIcon,\n});\n\n/**\n * Button that creates a empty markdown viz\n */\nconst Markdown = ({ dashboardApi }: ToolbarButtonProps): JSX.Element => {\n const handleClick = useCallback(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.markdown',\n options: {\n markdown: '',\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"markdown-button\"\n onClick={handleClick}\n icon={icon}\n tooltipContent={_('Add markdown text')}\n />\n );\n};\n\nexport default Markdown;\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBowRight\";\nexport * from \"@splunk/react-icons/ArrowBowRight\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useState, useEffect } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport RedoIcon from '@splunk/react-icons/ArrowBowRight';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: RedoIcon,\n});\n\nconst Redo = ({ dashboardApi }: ToolbarButtonProps) => {\n // TODO: replace when history management is done in redux\n // mode changes can cause the button to mount while there is a redo state\n const [canRedo, setCanRedo] = useState(\n () => dashboardApi?.canRedo() ?? false\n );\n\n const onDefinitionChange = useCallback(() => {\n setCanRedo(dashboardApi?.canRedo() ?? false);\n }, [dashboardApi]);\n\n useEffect(() => {\n if (!dashboardApi?.historyManager) {\n return () => undefined;\n }\n // Dirty hack to get the history manager.\n return dashboardApi.historyManager.subscribe({\n onAdd: onDefinitionChange,\n onUndo: onDefinitionChange,\n onRedo: onDefinitionChange,\n });\n }, [dashboardApi, onDefinitionChange]);\n\n const handleClick = useCallback(() => {\n if (!dashboardApi) {\n return;\n }\n\n dashboardApi.redo({ source: 'toolbar' });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"redo-button\"\n onClick={handleClick}\n disabled={!canRedo}\n icon={icon}\n tooltipContent={_('Redo')}\n />\n );\n};\n\nexport default Redo;\n", "import * as defaultImport from \"@splunk/react-icons/Circle\";\nexport * from \"@splunk/react-icons/Circle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/Line\";\nexport * from \"@splunk/react-icons/Line\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ShapesVariety\";\nexport * from \"@splunk/react-icons/ShapesVariety\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React from 'react';\nimport styled from 'styled-components';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledContentWrapper = styled.span`\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n max-width: 100%;\n`;\n\nconst StyledIcon = styled.span`\n display: inline-block;\n padding-right: 8px;\n`;\n\nconst StyledLabel = styled.span`\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 0 1 auto;\n`;\n\nexport interface PopoverItemButtonProps extends ToolbarButtonProps {\n icon: JSX.Element;\n label?: string;\n}\n\n/**\n * Custom button component for popovers created for specific styling - aligning text to the left\n */\nconst PopoverItemButton = ({ icon, label }: PopoverItemButtonProps) => (\n <StyledContentWrapper>\n {icon && <StyledIcon>{icon}</StyledIcon>}\n {label && <StyledLabel data-test=\"label-title\">{label}</StyledLabel>}\n </StyledContentWrapper>\n);\n\nexport default PopoverItemButton;\n", "import React, { useCallback } from 'react';\nimport Menu from '@splunk/react-ui/Menu';\nimport Circle from '@splunk/react-icons/Circle';\nimport BoxUnchecked from '@splunk/react-icons/Square';\nimport Line from '@splunk/react-icons/Line';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AddShapeDropdown from '@splunk/react-icons/ShapesVariety';\nimport type {\n StructureItemType,\n VisualizationDefinition,\n} from '@splunk/dashboard-types';\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport PopoverItemButton from '../PopoverItemButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\n\nconst shapesDropdown = prepareIcon({\n Icon: AddShapeDropdown,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"shapes-button\"\n icon={shapesDropdown}\n tooltipContent={_('Add shape')}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst circleIcon = <Circle />;\nconst uncheckedBoxIcon = <BoxUnchecked />;\nconst lineIcon = <Line />;\n\n/**\n * Shapes button that has a dropdown menu.\n */\nconst Shapes = ({ dashboardApi, layoutType }: ToolbarButtonProps) => {\n const supportLine = layoutType === 'absolute';\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const handleCreateVizButtonClick = useCallback(\n (\n vizToCreate: VisualizationDefinition<Record<string, unknown>>,\n layoutItemType?: StructureItemType\n ) => {\n return () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: vizToCreate,\n layoutItemType,\n });\n dashboardApi?.openPanel({ activePanel: 'config' });\n };\n },\n [dashboardApi]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu data-test=\"shapes-dropdown-children-container\">\n <Menu.Item\n data-test=\"ellipse-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.ellipse',\n })}\n >\n <PopoverItemButton\n icon={circleIcon}\n label={_('Ellipse')}\n />\n </Menu.Item>\n <Menu.Item\n data-test=\"rectangle-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.rectangle',\n })}\n >\n <PopoverItemButton\n icon={uncheckedBoxIcon}\n label={_('Rectangle')}\n />\n </Menu.Item>\n {supportLine && (\n <Menu.Item\n data-test=\"line-button\"\n onClick={handleCreateVizButtonClick(\n {\n type: 'abslayout.line',\n },\n 'line'\n )}\n >\n <PopoverItemButton\n icon={lineIcon}\n label={_('Line')}\n />\n </Menu.Item>\n )}\n </Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Shapes;\n", "import * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport { useRestoreFocus, useToolbarRef } from '@splunk/dashboard-context';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface SourceProps extends ToolbarButtonProps {\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n disabled?: boolean;\n}\n\nconst icon = prepareIcon({\n Icon: SourceIcon,\n});\n\n/**\n * Button that toggles source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => {\n const sourceButtonRef = useToolbarRef('source');\n const setReturnPoint = useRestoreFocus(sourceButtonRef);\n\n const onSourceClick = useCallback<ButtonClickHandler>(\n (event, data) => {\n if (onClick) {\n onClick(event, data);\n setReturnPoint();\n }\n },\n [onClick, setReturnPoint]\n );\n\n return (\n <IconButton\n testLabel=\"source-button\"\n onClick={onSourceClick}\n disabled={disabled}\n icon={icon}\n buttonRef={sourceButtonRef}\n tooltipContent={_('Source code')}\n />\n );\n};\n\nexport default Source;\n", "import * as defaultImport from \"@splunk/react-icons/ListToken\";\nexport * from \"@splunk/react-icons/ListToken\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ListToken from '@splunk/react-icons/ListToken';\nimport IconButton, { prepareIcon } from '../../IconButton';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst tokenManagerIcon = prepareIcon({\n Icon: ListToken,\n});\n\n/**\n * Button that toggles open token manager panel\n */\nexport const TokenManager = ({ dashboardApi }: ToolbarButtonProps) => {\n const { showTokenManager } = useFeatureFlags();\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'tokenManager';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open tokens panel\n dashboardApi?.openPanel({\n activePanel: 'tokenManager',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n if (!showTokenManager) {\n return null;\n }\n\n return (\n <IconButton\n testLabel=\"token-manager-button\"\n onClick={handleClick}\n icon={tokenManagerIcon}\n tooltipContent={_('Token manager')}\n />\n );\n};\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBowLeft\";\nexport * from \"@splunk/react-icons/ArrowBowLeft\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useEffect, useState } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport UndoIcon from '@splunk/react-icons/ArrowBowLeft';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: UndoIcon,\n});\n\nconst Undo = ({ dashboardApi }: ToolbarButtonProps) => {\n // TODO: replace when history management is done in redux\n // mode changes can cause the button to mount while there is an undo state\n const [canUndo, setCanUndo] = useState(\n () => dashboardApi?.canUndo() ?? false\n );\n\n const onDefinitionChange = useCallback(() => {\n setCanUndo(dashboardApi?.canUndo() ?? false);\n }, [dashboardApi]);\n\n useEffect(() => {\n if (!dashboardApi?.historyManager) {\n return () => undefined;\n }\n // Dirty hack to get the history manager.\n return dashboardApi.historyManager.subscribe({\n onAdd: onDefinitionChange,\n onUndo: onDefinitionChange,\n onRedo: onDefinitionChange,\n });\n }, [dashboardApi, onDefinitionChange]);\n\n const handleClick = useCallback(() => {\n if (!dashboardApi) {\n return;\n }\n\n dashboardApi.undo({ source: 'toolbar' });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"undo-button\"\n onClick={handleClick}\n disabled={!canUndo}\n icon={icon}\n tooltipContent={_('Undo')}\n />\n );\n};\n\nexport default Undo;\n", "import * as defaultImport from \"@splunk/ui-utils/format\";\nexport * from \"@splunk/ui-utils/format\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Number\";\nexport * from \"@splunk/react-ui/Number\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport SUINumber from '@splunk/react-ui/Number';\nimport { variables } from '@splunk/themes';\nimport { useNumberInput, type OnValueChangeType } from '@splunk/dashboard-ui';\n\nconst StyledNumber = styled(SUINumber)`\n padding-right: ${variables.spacingSmall};\n & > input {\n text-align: right;\n }\n`;\n\nconst StyledEndAdornment = styled.span`\n color: ${variables.contentColorActive};\n`;\n\ninterface ZoomNumberProps {\n currentScale: number;\n onScaleChange: (scale: number) => () => void;\n}\n\nconst percentAdornment = <StyledEndAdornment>%</StyledEndAdornment>;\n\nexport const ZoomNumber = ({\n currentScale,\n onScaleChange,\n}: ZoomNumberProps) => {\n const onValueChange = useCallback<OnValueChangeType>(\n (_e, value = 100) => {\n const v =\n typeof value === 'string' ? Number.parseInt(value, 10) : value;\n onScaleChange(v)();\n },\n [onScaleChange]\n );\n const { handleChange, handleBlur, handleFocus, handleKeyPress } =\n useNumberInput({\n value: currentScale,\n onValueChange,\n });\n\n return (\n <StyledNumber\n value={currentScale}\n onChange={handleChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n onFocus={handleFocus}\n step={5}\n min={1}\n max={10000}\n roundTo={0}\n endAdornment={percentAdornment}\n hideStepButtons\n data-test=\"zoom-number\"\n append\n />\n );\n};\n", "import React, { useCallback, useMemo, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { debounce } from 'lodash';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\n\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport {\n selectActiveTab,\n useSelector,\n useDispatch,\n zoomLevelChanged,\n} from '@splunk/dashboard-state';\n\nimport type { ToolbarButtonProps } from '../../types/common';\nimport ItemSeparator from '../../components/ItemSeparator';\nimport { ZoomMenu } from './ZoomMenu';\nimport { ZoomNumber } from './ZoomNumber';\n\nconst Container = styled.div`\n margin-inline-end: 0;\n display: flex;\n min-width: 96px;\n gap: ${variables.spacingSmall};\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n width: 90px;\n & span {\n display: flex;\n }\n`;\n\nexport interface ZoomProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n showSeparator?: boolean;\n}\n\nexport const Zoom = ({\n showSeparator = true,\n appearance = 'default',\n mode = 'view',\n}: ZoomProps): JSX.Element => {\n const [currentScale, setCurrentScale] = useState(100);\n const [scaleType, setScaleType] = useState<'auto' | 'fit' | null>(null);\n const dashboardApi = useDashboardApi();\n const dispatch = useDispatch();\n\n const handleZoom = useCallback((level?: number) => {\n if (level) {\n setCurrentScale(Math.round(level * 100));\n }\n }, []);\n\n const debouncedDispatch = useMemo(\n () => debounce(dispatch, 500),\n [dispatch]\n );\n\n useEffect(() => {\n debouncedDispatch(\n zoomLevelChanged({\n scale: currentScale,\n scaleType,\n mode,\n })\n );\n }, [currentScale, scaleType, mode, debouncedDispatch]);\n\n const activeTabId = useSelector(selectActiveTab);\n useEffect(() => {\n const subscription = dashboardApi\n ?.getZoomLevel()\n ?.subscribe({ next: handleZoom });\n\n return () => {\n subscription?.unsubscribe();\n };\n }, [dashboardApi, activeTabId, handleZoom]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [dashboardApi]\n );\n\n return (\n <Container>\n <StyledTooltip\n contentRelationship=\"label\"\n content={_('Zoom level')}\n >\n <ZoomNumber\n currentScale={currentScale}\n onScaleChange={handleScaleChange}\n />\n <ZoomMenu\n dashboardApi={dashboardApi}\n appearance={appearance}\n currentScale={currentScale}\n setCurrentScale={setCurrentScale}\n scaleType={scaleType}\n setScaleType={setScaleType}\n />\n </StyledTooltip>\n {separator}\n </Container>\n );\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon", "defaultImport", "icon", "defaultImport", "defaultImport", "defaultImport", "ButtonToggle", "defaultImport", "icon", "MenusContainer", "ButtonToggle", "defaultImport", "defaultImport", "defaultImport", "ButtonToggle", "defaultImport", "icon", "defaultImport", "icon", "defaultImport", "defaultImport", "defaultImport", "ButtonToggle", "defaultImport", "icon", "defaultImport", "defaultImport", "icon", "defaultImport", "defaultImport"]
7
7
  }
@@ -4,39 +4,10 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  "use strict";
5
5
  var __create = Object.create;
6
6
  var __defProp = Object.defineProperty;
7
- var __defProps = Object.defineProperties;
8
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
8
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
9
  var __getProtoOf = Object.getPrototypeOf;
13
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
- var __spreadValues = (a, b) => {
17
- for (var prop in b || (b = {}))
18
- if (__hasOwnProp.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- if (__getOwnPropSymbols)
21
- for (var prop of __getOwnPropSymbols(b)) {
22
- if (__propIsEnum.call(b, prop))
23
- __defNormalProp(a, prop, b[prop]);
24
- }
25
- return a;
26
- };
27
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
28
- var __objRest = (source, exclude) => {
29
- var target = {};
30
- for (var prop in source)
31
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
32
- target[prop] = source[prop];
33
- if (source != null && __getOwnPropSymbols)
34
- for (var prop of __getOwnPropSymbols(source)) {
35
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
36
- target[prop] = source[prop];
37
- }
38
- return target;
39
- };
40
11
  var __export = (target, all) => {
41
12
  for (var name in all)
42
13
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -59,26 +30,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
59
30
  mod
60
31
  ));
61
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
62
- var __async = (__this, __arguments, generator) => {
63
- return new Promise((resolve, reject) => {
64
- var fulfilled = (value) => {
65
- try {
66
- step(generator.next(value));
67
- } catch (e) {
68
- reject(e);
69
- }
70
- };
71
- var rejected = (value) => {
72
- try {
73
- step(generator.throw(value));
74
- } catch (e) {
75
- reject(e);
76
- }
77
- };
78
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
79
- step((generator = generator.apply(__this, __arguments)).next());
80
- });
81
- };
82
33
 
83
34
  // src/groups/VisualizationGroup.tsx
84
35
  var VisualizationGroup_exports = {};
@@ -141,16 +92,12 @@ var Group = styled_components_default.div.attrs({
141
92
  flex-direction: row;
142
93
  gap: ${(props) => props.gap};
143
94
  `;
144
- var ItemGroup = (_a) => {
145
- var _b = _a, {
146
- children,
147
- borders = true,
148
- gap
149
- } = _b, rest = __objRest(_b, [
150
- "children",
151
- "borders",
152
- "gap"
153
- ]);
95
+ var ItemGroup = ({
96
+ children,
97
+ borders = true,
98
+ gap,
99
+ ...rest
100
+ }) => {
154
101
  const items = react_default.Children.map(
155
102
  children,
156
103
  (child) => child && react_default.cloneElement(child, rest)
@@ -305,37 +252,25 @@ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
305
252
  `;
306
253
  var iconSize = 24;
307
254
  var menuIconSize = 20;
308
- var prepareIcon = (_a) => {
309
- var _b = _a, {
310
- Icon,
311
- screenReaderContent,
312
- isMenu = false
313
- } = _b, props = __objRest(_b, [
314
- "Icon",
315
- "screenReaderContent",
316
- "isMenu"
317
- ]);
255
+ var prepareIcon = ({
256
+ Icon,
257
+ screenReaderContent,
258
+ isMenu = false,
259
+ ...props
260
+ }) => {
318
261
  const size = isMenu ? menuIconSize : iconSize;
319
- return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, __spreadValues({ width: size, height: size }, props)), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
262
+ return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, { width: size, height: size, ...props }), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
320
263
  };
321
- var IconButton = (_a) => {
322
- var _b = _a, {
323
- icon: icon9,
324
- buttonRef,
325
- disabled = false,
326
- onClick,
327
- label,
328
- tooltipContent,
329
- testLabel
330
- } = _b, rest = __objRest(_b, [
331
- "icon",
332
- "buttonRef",
333
- "disabled",
334
- "onClick",
335
- "label",
336
- "tooltipContent",
337
- "testLabel"
338
- ]);
264
+ var IconButton = ({
265
+ icon: icon9,
266
+ buttonRef,
267
+ disabled = false,
268
+ onClick,
269
+ label,
270
+ tooltipContent,
271
+ testLabel,
272
+ ...rest
273
+ }) => {
339
274
  const button = /* @__PURE__ */ react_default.createElement(
340
275
  Button_default,
341
276
  {
@@ -349,7 +284,7 @@ var IconButton = (_a) => {
349
284
  "data-clickable": true
350
285
  }
351
286
  );
352
- return /* @__PURE__ */ react_default.createElement(Item_default, __spreadValues({}, rest), tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button);
287
+ return /* @__PURE__ */ react_default.createElement(Item_default, { ...rest }, tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button);
353
288
  };
354
289
  var IconButton_default = IconButton;
355
290
 
@@ -357,13 +292,13 @@ var IconButton_default = IconButton;
357
292
  var BaseDropdownButton = styled_components_default(Button_default)`
358
293
  max-width: '50px';
359
294
  `;
360
- var StyledDropdownButton = react_default.forwardRef((_a, ref) => {
361
- var _b = _a, { tooltipContent } = _b, props = __objRest(_b, ["tooltipContent"]);
295
+ var StyledDropdownButton = react_default.forwardRef(({ tooltipContent, ...props }, ref) => {
362
296
  const button = /* @__PURE__ */ react_default.createElement(
363
297
  BaseDropdownButton,
364
- __spreadProps(__spreadValues({}, props), {
298
+ {
299
+ ...props,
365
300
  elementRef: ref
366
- })
301
+ }
367
302
  );
368
303
  return tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button;
369
304
  });
@@ -372,7 +307,7 @@ var StyledDropdownButton = react_default.forwardRef((_a, ref) => {
372
307
  var ScrollableMenu = styled_components_default(Menu_default).attrs(
373
308
  ({ maxHeight }) => ({
374
309
  style: {
375
- maxHeight: maxHeight != null ? maxHeight : void 0
310
+ maxHeight: maxHeight ?? void 0
376
311
  }
377
312
  })
378
313
  )`
@@ -449,11 +384,11 @@ var Charts = ({ dashboardApi, preset }) => {
449
384
  options
450
385
  }) => () => {
451
386
  (0, dashboard_state_exports.batch)(() => {
452
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
387
+ dashboardApi?.createVisualization({
453
388
  visualizationDefinition: { type, options }
454
389
  });
455
390
  if (showNewDataForViz) {
456
- dashboardApi == null ? void 0 : dashboardApi.openPanel({
391
+ dashboardApi?.openPanel({
457
392
  activePanel: "connectData",
458
393
  panelProps: {
459
394
  bindingType: "primary",
@@ -580,8 +515,8 @@ var icon2 = prepareIcon({
580
515
  Icon: Square_default
581
516
  });
582
517
  var EmptyVisualization = ({ dashboardApi }) => {
583
- const handleClick = (0, react_exports.useCallback)(() => __async(null, null, function* () {
584
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
518
+ const handleClick = (0, react_exports.useCallback)(async () => {
519
+ dashboardApi?.createVisualization({
585
520
  visualizationDefinition: {
586
521
  type: "splunk.rectangle",
587
522
  options: {
@@ -590,10 +525,10 @@ var EmptyVisualization = ({ dashboardApi }) => {
590
525
  }
591
526
  }
592
527
  });
593
- dashboardApi == null ? void 0 : dashboardApi.openPanel({
528
+ dashboardApi?.openPanel({
594
529
  activePanel: "config"
595
530
  });
596
- }), [dashboardApi]);
531
+ }, [dashboardApi]);
597
532
  return /* @__PURE__ */ react_default.createElement(
598
533
  IconButton_default,
599
534
  {
@@ -689,8 +624,8 @@ var IconGallery = ({ dashboardApi }) => {
689
624
  []
690
625
  );
691
626
  const handlePanelClick = (0, react_exports.useCallback)(
692
- (iconURL) => __async(null, null, function* () {
693
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
627
+ async (iconURL) => {
628
+ dashboardApi?.createVisualization({
694
629
  visualizationDefinition: {
695
630
  type: "splunk.singlevalueicon",
696
631
  options: {
@@ -699,11 +634,11 @@ var IconGallery = ({ dashboardApi }) => {
699
634
  }
700
635
  }
701
636
  });
702
- dashboardApi == null ? void 0 : dashboardApi.openPanel({
637
+ dashboardApi?.openPanel({
703
638
  activePanel: "config"
704
639
  });
705
640
  handleForceClose();
706
- }),
641
+ },
707
642
  [dashboardApi, handleForceClose]
708
643
  );
709
644
  return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
@@ -765,8 +700,8 @@ var icon4 = prepareIcon({
765
700
  Icon: Picture_default
766
701
  });
767
702
  var Image = ({ dashboardApi }) => {
768
- const handleClick = (0, react_exports.useCallback)(() => __async(null, null, function* () {
769
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
703
+ const handleClick = (0, react_exports.useCallback)(async () => {
704
+ dashboardApi?.createVisualization({
770
705
  visualizationDefinition: {
771
706
  type: "splunk.image",
772
707
  options: {
@@ -774,10 +709,10 @@ var Image = ({ dashboardApi }) => {
774
709
  }
775
710
  }
776
711
  });
777
- dashboardApi == null ? void 0 : dashboardApi.openPanel({
712
+ dashboardApi?.openPanel({
778
713
  activePanel: "config"
779
714
  });
780
- }), [dashboardApi]);
715
+ }, [dashboardApi]);
781
716
  return /* @__PURE__ */ react_default.createElement(
782
717
  IconButton_default,
783
718
  {
@@ -867,13 +802,16 @@ var onCreateInputClickFactory = ({
867
802
  if (!dashboardApi) {
868
803
  return;
869
804
  }
870
- const newConfig = __spreadProps(__spreadValues({}, defaultConfig), {
805
+ const newConfig = {
806
+ ...defaultConfig,
871
807
  type,
872
- options: __spreadValues({}, defaultConfig.options)
873
- });
808
+ options: {
809
+ ...defaultConfig.options
810
+ }
811
+ };
874
812
  if (showToken) {
875
813
  newConfig.options.token = dashboard_definition_exports.DashboardDefinition.fromJSON(
876
- dashboardApi == null ? void 0 : dashboardApi.getDefinition()
814
+ dashboardApi?.getDefinition()
877
815
  ).nextTokenId(tokenPrefix);
878
816
  }
879
817
  dashboardApi.addInput(newConfig);
@@ -888,7 +826,7 @@ var Inputs = ({
888
826
  });
889
827
  const InputTypeButtons = (0, react_exports.useMemo)(() => {
890
828
  const buttons = [];
891
- const inputs = preset == null ? void 0 : preset.inputs;
829
+ const inputs = preset?.inputs;
892
830
  (0, lodash_exports.each)(inputs, (InputImpl, type) => {
893
831
  const {
894
832
  baseShape = {},
@@ -970,7 +908,7 @@ var icon5 = prepareIcon({
970
908
  });
971
909
  var Markdown = ({ dashboardApi }) => {
972
910
  const handleClick = (0, react_exports.useCallback)(() => {
973
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
911
+ dashboardApi?.createVisualization({
974
912
  visualizationDefinition: {
975
913
  type: "splunk.markdown",
976
914
  options: {
@@ -978,7 +916,7 @@ var Markdown = ({ dashboardApi }) => {
978
916
  }
979
917
  }
980
918
  });
981
- dashboardApi == null ? void 0 : dashboardApi.openPanel({
919
+ dashboardApi?.openPanel({
982
920
  activePanel: "config"
983
921
  });
984
922
  }, [dashboardApi]);
@@ -1085,11 +1023,11 @@ var Shapes = ({ dashboardApi, layoutType }) => {
1085
1023
  const handleCreateVizButtonClick = (0, react_exports.useCallback)(
1086
1024
  (vizToCreate, layoutItemType) => {
1087
1025
  return () => {
1088
- dashboardApi == null ? void 0 : dashboardApi.createVisualization({
1026
+ dashboardApi?.createVisualization({
1089
1027
  visualizationDefinition: vizToCreate,
1090
1028
  layoutItemType
1091
1029
  });
1092
- dashboardApi == null ? void 0 : dashboardApi.openPanel({ activePanel: "config" });
1030
+ dashboardApi?.openPanel({ activePanel: "config" });
1093
1031
  };
1094
1032
  },
1095
1033
  [dashboardApi]
@@ -1262,7 +1200,7 @@ var VisualizationGroup = (props) => {
1262
1200
  /* @__PURE__ */ react_default.createElement(Markdown_default2, { key: "markdown" })
1263
1201
  ];
1264
1202
  }, [props.layoutType]);
1265
- return /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), buttons);
1203
+ return /* @__PURE__ */ react_default.createElement(ItemGroup_default, { ...props }, buttons);
1266
1204
  };
1267
1205
  var VisualizationGroup_default = VisualizationGroup;
1268
1206
  //# sourceMappingURL=VisualizationGroup.js.map