@splunk/dashboard-toolbar 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CollapsibleToolbar.js +261 -0
  2. package/CollapsibleToolbar.js.map +7 -0
  3. package/IconButton.js +168 -0
  4. package/IconButton.js.map +7 -0
  5. package/Item.js +52 -0
  6. package/Item.js.map +7 -0
  7. package/ItemGroup.js +127 -0
  8. package/ItemGroup.js.map +7 -0
  9. package/LICENSE.md +14 -0
  10. package/PopoverItemButton.js +78 -0
  11. package/PopoverItemButton.js.map +7 -0
  12. package/README.md +9 -0
  13. package/Toolbar.js +192 -0
  14. package/Toolbar.js.map +7 -0
  15. package/buttons/Charts.js +384 -0
  16. package/buttons/Charts.js.map +7 -0
  17. package/buttons/Config.js +224 -0
  18. package/buttons/Config.js.map +7 -0
  19. package/buttons/ContentExport.js +199 -0
  20. package/buttons/ContentExport.js.map +7 -0
  21. package/buttons/Data.js +236 -0
  22. package/buttons/Data.js.map +7 -0
  23. package/buttons/EmptyVisualization.js +234 -0
  24. package/buttons/EmptyVisualization.js.map +7 -0
  25. package/buttons/ExportDashboardButton.js +130 -0
  26. package/buttons/ExportDashboardButton.js.map +7 -0
  27. package/buttons/Fullscreen.js +214 -0
  28. package/buttons/Fullscreen.js.map +7 -0
  29. package/buttons/GridLineSwitch.js +145 -0
  30. package/buttons/GridLineSwitch.js.map +7 -0
  31. package/buttons/HelpButton.js +277 -0
  32. package/buttons/HelpButton.js.map +7 -0
  33. package/buttons/IconGallery.js +303 -0
  34. package/buttons/IconGallery.js.map +7 -0
  35. package/buttons/Image.js +233 -0
  36. package/buttons/Image.js.map +7 -0
  37. package/buttons/ImageGallery.js +300 -0
  38. package/buttons/ImageGallery.js.map +7 -0
  39. package/buttons/Inputs.js +348 -0
  40. package/buttons/Inputs.js.map +7 -0
  41. package/buttons/Markdown.js +213 -0
  42. package/buttons/Markdown.js.map +7 -0
  43. package/buttons/ModeSwitch.js +121 -0
  44. package/buttons/ModeSwitch.js.map +7 -0
  45. package/buttons/Redo.js +227 -0
  46. package/buttons/Redo.js.map +7 -0
  47. package/buttons/Shapes.js +357 -0
  48. package/buttons/Shapes.js.map +7 -0
  49. package/buttons/Source.js +199 -0
  50. package/buttons/Source.js.map +7 -0
  51. package/buttons/Undo.js +227 -0
  52. package/buttons/Undo.js.map +7 -0
  53. package/buttons/index.js +1857 -0
  54. package/buttons/index.js.map +7 -0
  55. package/groups/ActionsGroup.js +153 -0
  56. package/groups/ActionsGroup.js.map +7 -0
  57. package/groups/ControlGroup.js +701 -0
  58. package/groups/ControlGroup.js.map +7 -0
  59. package/groups/EditingGroup.js +1029 -0
  60. package/groups/EditingGroup.js.map +7 -0
  61. package/groups/EditorGroup.js +698 -0
  62. package/groups/EditorGroup.js.map +7 -0
  63. package/groups/EditorsControlGroup.js +753 -0
  64. package/groups/EditorsControlGroup.js.map +7 -0
  65. package/groups/HistoryGroup.js +761 -0
  66. package/groups/HistoryGroup.js.map +7 -0
  67. package/groups/SidebarControlGroup.js +740 -0
  68. package/groups/SidebarControlGroup.js.map +7 -0
  69. package/groups/VisualizationGroup.js +1218 -0
  70. package/groups/VisualizationGroup.js.map +7 -0
  71. package/groups/index.js +1778 -0
  72. package/groups/index.js.map +7 -0
  73. package/index.js +2245 -0
  74. package/index.js.map +7 -0
  75. package/module/CollapsibleToolbar.js +20 -0
  76. package/module/CollapsibleToolbar.js.map +7 -0
  77. package/module/IconButton.js +21 -0
  78. package/module/IconButton.js.map +7 -0
  79. package/module/Item.js +12 -0
  80. package/module/Item.js.map +7 -0
  81. package/module/ItemGroup.js +16 -0
  82. package/module/ItemGroup.js.map +7 -0
  83. package/module/PopoverItemButton.js +13 -0
  84. package/module/PopoverItemButton.js.map +7 -0
  85. package/module/Toolbar.js +15 -0
  86. package/module/Toolbar.js.map +7 -0
  87. package/module/buttons/Charts.js +26 -0
  88. package/module/buttons/Charts.js.map +7 -0
  89. package/module/buttons/Config.js +18 -0
  90. package/module/buttons/Config.js.map +7 -0
  91. package/module/buttons/ContentExport.js +18 -0
  92. package/module/buttons/ContentExport.js.map +7 -0
  93. package/module/buttons/Data.js +19 -0
  94. package/module/buttons/Data.js.map +7 -0
  95. package/module/buttons/EmptyVisualization.js +18 -0
  96. package/module/buttons/EmptyVisualization.js.map +7 -0
  97. package/module/buttons/ExportDashboardButton.js +17 -0
  98. package/module/buttons/ExportDashboardButton.js.map +7 -0
  99. package/module/buttons/Fullscreen.js +18 -0
  100. package/module/buttons/Fullscreen.js.map +7 -0
  101. package/module/buttons/GridLineSwitch.js +17 -0
  102. package/module/buttons/GridLineSwitch.js.map +7 -0
  103. package/module/buttons/HelpButton.js +20 -0
  104. package/module/buttons/HelpButton.js.map +7 -0
  105. package/module/buttons/IconGallery.js +20 -0
  106. package/module/buttons/IconGallery.js.map +7 -0
  107. package/module/buttons/Image.js +18 -0
  108. package/module/buttons/Image.js.map +7 -0
  109. package/module/buttons/ImageGallery.js +21 -0
  110. package/module/buttons/ImageGallery.js.map +7 -0
  111. package/module/buttons/Inputs.js +20 -0
  112. package/module/buttons/Inputs.js.map +7 -0
  113. package/module/buttons/Markdown.js +17 -0
  114. package/module/buttons/Markdown.js.map +7 -0
  115. package/module/buttons/ModeSwitch.js +18 -0
  116. package/module/buttons/ModeSwitch.js.map +7 -0
  117. package/module/buttons/Redo.js +17 -0
  118. package/module/buttons/Redo.js.map +7 -0
  119. package/module/buttons/Shapes.js +22 -0
  120. package/module/buttons/Shapes.js.map +7 -0
  121. package/module/buttons/Source.js +17 -0
  122. package/module/buttons/Source.js.map +7 -0
  123. package/module/buttons/Undo.js +17 -0
  124. package/module/buttons/Undo.js.map +7 -0
  125. package/module/buttons/index.js +108 -0
  126. package/module/buttons/index.js.map +7 -0
  127. package/module/chunks/chunk-2QMHWIV5.js +175 -0
  128. package/module/chunks/chunk-2QMHWIV5.js.map +7 -0
  129. package/module/chunks/chunk-4OLWQA6K.js +83 -0
  130. package/module/chunks/chunk-4OLWQA6K.js.map +7 -0
  131. package/module/chunks/chunk-52TYQW2Y.js +23 -0
  132. package/module/chunks/chunk-52TYQW2Y.js.map +7 -0
  133. package/module/chunks/chunk-72YLBMXL.js +199 -0
  134. package/module/chunks/chunk-72YLBMXL.js.map +7 -0
  135. package/module/chunks/chunk-734QWOYU.js +56 -0
  136. package/module/chunks/chunk-734QWOYU.js.map +7 -0
  137. package/module/chunks/chunk-A3BAVEME.js +77 -0
  138. package/module/chunks/chunk-A3BAVEME.js.map +7 -0
  139. package/module/chunks/chunk-AWNWXBE4.js +68 -0
  140. package/module/chunks/chunk-AWNWXBE4.js.map +7 -0
  141. package/module/chunks/chunk-B2LPQWLD.js +74 -0
  142. package/module/chunks/chunk-B2LPQWLD.js.map +7 -0
  143. package/module/chunks/chunk-BLXVTG4B.js +65 -0
  144. package/module/chunks/chunk-BLXVTG4B.js.map +7 -0
  145. package/module/chunks/chunk-BRGYD3MR.js +23 -0
  146. package/module/chunks/chunk-BRGYD3MR.js.map +7 -0
  147. package/module/chunks/chunk-BSMCGXVQ.js +22 -0
  148. package/module/chunks/chunk-BSMCGXVQ.js.map +7 -0
  149. package/module/chunks/chunk-CFGNNO2V.js +143 -0
  150. package/module/chunks/chunk-CFGNNO2V.js.map +7 -0
  151. package/module/chunks/chunk-E2DI77AU.js +15 -0
  152. package/module/chunks/chunk-E2DI77AU.js.map +7 -0
  153. package/module/chunks/chunk-ECEBJH6K.js +112 -0
  154. package/module/chunks/chunk-ECEBJH6K.js.map +7 -0
  155. package/module/chunks/chunk-ETJ5YPF3.js +31 -0
  156. package/module/chunks/chunk-ETJ5YPF3.js.map +7 -0
  157. package/module/chunks/chunk-FSOMEJXM.js +49 -0
  158. package/module/chunks/chunk-FSOMEJXM.js.map +7 -0
  159. package/module/chunks/chunk-FVGABOJM.js +37 -0
  160. package/module/chunks/chunk-FVGABOJM.js.map +7 -0
  161. package/module/chunks/chunk-G6N5OMKL.js +22 -0
  162. package/module/chunks/chunk-G6N5OMKL.js.map +7 -0
  163. package/module/chunks/chunk-GRIJP4FT.js +172 -0
  164. package/module/chunks/chunk-GRIJP4FT.js.map +7 -0
  165. package/module/chunks/chunk-GWAXQYWY.js +105 -0
  166. package/module/chunks/chunk-GWAXQYWY.js.map +7 -0
  167. package/module/chunks/chunk-HIICL66H.js +22 -0
  168. package/module/chunks/chunk-HIICL66H.js.map +7 -0
  169. package/module/chunks/chunk-HXY4TSUO.js +22 -0
  170. package/module/chunks/chunk-HXY4TSUO.js.map +7 -0
  171. package/module/chunks/chunk-IAEE4XLH.js +58 -0
  172. package/module/chunks/chunk-IAEE4XLH.js.map +7 -0
  173. package/module/chunks/chunk-IGGLU44N.js +22 -0
  174. package/module/chunks/chunk-IGGLU44N.js.map +7 -0
  175. package/module/chunks/chunk-IQG5GSSX.js +77 -0
  176. package/module/chunks/chunk-IQG5GSSX.js.map +7 -0
  177. package/module/chunks/chunk-J2TRUM5N.js +23 -0
  178. package/module/chunks/chunk-J2TRUM5N.js.map +7 -0
  179. package/module/chunks/chunk-J5CY2G3T.js +52 -0
  180. package/module/chunks/chunk-J5CY2G3T.js.map +7 -0
  181. package/module/chunks/chunk-JILFF3WY.js +122 -0
  182. package/module/chunks/chunk-JILFF3WY.js.map +7 -0
  183. package/module/chunks/chunk-JLYV2H24.js +21 -0
  184. package/module/chunks/chunk-JLYV2H24.js.map +7 -0
  185. package/module/chunks/chunk-JXPIKVRZ.js +48 -0
  186. package/module/chunks/chunk-JXPIKVRZ.js.map +7 -0
  187. package/module/chunks/chunk-KEARZQAT.js +57 -0
  188. package/module/chunks/chunk-KEARZQAT.js.map +7 -0
  189. package/module/chunks/chunk-KJLRQLFH.js +28 -0
  190. package/module/chunks/chunk-KJLRQLFH.js.map +7 -0
  191. package/module/chunks/chunk-L4ZPYLUY.js +25 -0
  192. package/module/chunks/chunk-L4ZPYLUY.js.map +7 -0
  193. package/module/chunks/chunk-NCPTJ5RB.js +185 -0
  194. package/module/chunks/chunk-NCPTJ5RB.js.map +7 -0
  195. package/module/chunks/chunk-NIACHGAA.js +25 -0
  196. package/module/chunks/chunk-NIACHGAA.js.map +7 -0
  197. package/module/chunks/chunk-NJF2IOVV.js +22 -0
  198. package/module/chunks/chunk-NJF2IOVV.js.map +7 -0
  199. package/module/chunks/chunk-NWVLNDCF.js +23 -0
  200. package/module/chunks/chunk-NWVLNDCF.js.map +7 -0
  201. package/module/chunks/chunk-OIQNUT2X.js +36 -0
  202. package/module/chunks/chunk-OIQNUT2X.js.map +7 -0
  203. package/module/chunks/chunk-OSDOIGWB.js +23 -0
  204. package/module/chunks/chunk-OSDOIGWB.js.map +7 -0
  205. package/module/chunks/chunk-OTGQ73VF.js +63 -0
  206. package/module/chunks/chunk-OTGQ73VF.js.map +7 -0
  207. package/module/chunks/chunk-QU7RW3YZ.js +39 -0
  208. package/module/chunks/chunk-QU7RW3YZ.js.map +7 -0
  209. package/module/chunks/chunk-RODBPKID.js +64 -0
  210. package/module/chunks/chunk-RODBPKID.js.map +7 -0
  211. package/module/chunks/chunk-SIFZZCPT.js +439 -0
  212. package/module/chunks/chunk-SIFZZCPT.js.map +7 -0
  213. package/module/chunks/chunk-UPZBDSS7.js +59 -0
  214. package/module/chunks/chunk-UPZBDSS7.js.map +7 -0
  215. package/module/chunks/chunk-UVD66GCR.js +4 -0
  216. package/module/chunks/chunk-UVD66GCR.js.map +7 -0
  217. package/module/chunks/chunk-VQIRZ53C.js +79 -0
  218. package/module/chunks/chunk-VQIRZ53C.js.map +7 -0
  219. package/module/chunks/chunk-WFAY6ABE.js +28 -0
  220. package/module/chunks/chunk-WFAY6ABE.js.map +7 -0
  221. package/module/chunks/chunk-X2HLBQUA.js +64 -0
  222. package/module/chunks/chunk-X2HLBQUA.js.map +7 -0
  223. package/module/chunks/chunk-X7ATHE2S.js +23 -0
  224. package/module/chunks/chunk-X7ATHE2S.js.map +7 -0
  225. package/module/chunks/chunk-XUK4ZKWN.js +52 -0
  226. package/module/chunks/chunk-XUK4ZKWN.js.map +7 -0
  227. package/module/chunks/chunk-YKT3CRI6.js +23 -0
  228. package/module/chunks/chunk-YKT3CRI6.js.map +7 -0
  229. package/module/chunks/chunk-YPVMTO2L.js +111 -0
  230. package/module/chunks/chunk-YPVMTO2L.js.map +7 -0
  231. package/module/groups/ActionsGroup.js +16 -0
  232. package/module/groups/ActionsGroup.js.map +7 -0
  233. package/module/groups/ControlGroup.js +51 -0
  234. package/module/groups/ControlGroup.js.map +7 -0
  235. package/module/groups/EditingGroup.js +51 -0
  236. package/module/groups/EditingGroup.js.map +7 -0
  237. package/module/groups/EditorGroup.js +51 -0
  238. package/module/groups/EditorGroup.js.map +7 -0
  239. package/module/groups/EditorsControlGroup.js +51 -0
  240. package/module/groups/EditorsControlGroup.js.map +7 -0
  241. package/module/groups/HistoryGroup.js +51 -0
  242. package/module/groups/HistoryGroup.js.map +7 -0
  243. package/module/groups/SidebarControlGroup.js +51 -0
  244. package/module/groups/SidebarControlGroup.js.map +7 -0
  245. package/module/groups/VisualizationGroup.js +51 -0
  246. package/module/groups/VisualizationGroup.js.map +7 -0
  247. package/module/groups/index.js +80 -0
  248. package/module/groups/index.js.map +7 -0
  249. package/module/index.js +163 -0
  250. package/module/index.js.map +7 -0
  251. package/module/package.json +1 -0
  252. package/package.json +68 -0
  253. package/tsconfig.json +9 -0
  254. package/types/CollapsibleToolbar.d.ts +12 -0
  255. package/types/CollapsibleToolbar.d.ts.map +1 -0
  256. package/types/IconButton.d.ts +35 -0
  257. package/types/IconButton.d.ts.map +1 -0
  258. package/types/Item.d.ts +3 -0
  259. package/types/Item.d.ts.map +1 -0
  260. package/types/ItemGroup.d.ts +14 -0
  261. package/types/ItemGroup.d.ts.map +1 -0
  262. package/types/PopoverItemButton.d.ts +12 -0
  263. package/types/PopoverItemButton.d.ts.map +1 -0
  264. package/types/Toolbar.d.ts +14 -0
  265. package/types/Toolbar.d.ts.map +1 -0
  266. package/types/buttons/Charts.d.ts +19 -0
  267. package/types/buttons/Charts.d.ts.map +1 -0
  268. package/types/buttons/Config.d.ts +8 -0
  269. package/types/buttons/Config.d.ts.map +1 -0
  270. package/types/buttons/ContentExport.d.ts +10 -0
  271. package/types/buttons/ContentExport.d.ts.map +1 -0
  272. package/types/buttons/Data.d.ts +8 -0
  273. package/types/buttons/Data.d.ts.map +1 -0
  274. package/types/buttons/EmptyVisualization.d.ts +8 -0
  275. package/types/buttons/EmptyVisualization.d.ts.map +1 -0
  276. package/types/buttons/ExportDashboardButton.d.ts +10 -0
  277. package/types/buttons/ExportDashboardButton.d.ts.map +1 -0
  278. package/types/buttons/Fullscreen.d.ts +8 -0
  279. package/types/buttons/Fullscreen.d.ts.map +1 -0
  280. package/types/buttons/GridLineSwitch.d.ts +8 -0
  281. package/types/buttons/GridLineSwitch.d.ts.map +1 -0
  282. package/types/buttons/HelpButton.d.ts +16 -0
  283. package/types/buttons/HelpButton.d.ts.map +1 -0
  284. package/types/buttons/IconGallery.d.ts +8 -0
  285. package/types/buttons/IconGallery.d.ts.map +1 -0
  286. package/types/buttons/Image.d.ts +8 -0
  287. package/types/buttons/Image.d.ts.map +1 -0
  288. package/types/buttons/ImageGallery.d.ts +8 -0
  289. package/types/buttons/ImageGallery.d.ts.map +1 -0
  290. package/types/buttons/Inputs.d.ts +8 -0
  291. package/types/buttons/Inputs.d.ts.map +1 -0
  292. package/types/buttons/Markdown.d.ts +7 -0
  293. package/types/buttons/Markdown.d.ts.map +1 -0
  294. package/types/buttons/ModeSwitch.d.ts +7 -0
  295. package/types/buttons/ModeSwitch.d.ts.map +1 -0
  296. package/types/buttons/Redo.d.ts +5 -0
  297. package/types/buttons/Redo.d.ts.map +1 -0
  298. package/types/buttons/Shapes.d.ts +8 -0
  299. package/types/buttons/Shapes.d.ts.map +1 -0
  300. package/types/buttons/Source.d.ts +13 -0
  301. package/types/buttons/Source.d.ts.map +1 -0
  302. package/types/buttons/Undo.d.ts +5 -0
  303. package/types/buttons/Undo.d.ts.map +1 -0
  304. package/types/buttons/Zoom/Zoom.d.ts +8 -0
  305. package/types/buttons/Zoom/Zoom.d.ts.map +1 -0
  306. package/types/buttons/Zoom/ZoomMenu.d.ts +12 -0
  307. package/types/buttons/Zoom/ZoomMenu.d.ts.map +1 -0
  308. package/types/buttons/Zoom/ZoomNumber.d.ts +8 -0
  309. package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -0
  310. package/types/buttons/Zoom/index.d.ts +2 -0
  311. package/types/buttons/Zoom/index.d.ts.map +1 -0
  312. package/types/buttons/index.d.ts +26 -0
  313. package/types/buttons/index.d.ts.map +1 -0
  314. package/types/buttons/tokenManager/TokenManager.d.ts +7 -0
  315. package/types/buttons/tokenManager/TokenManager.d.ts.map +1 -0
  316. package/types/buttons/tokenManager/index.d.ts +2 -0
  317. package/types/buttons/tokenManager/index.d.ts.map +1 -0
  318. package/types/components/ItemSeparator.d.ts +3 -0
  319. package/types/components/ItemSeparator.d.ts.map +1 -0
  320. package/types/components/StyledButton.d.ts +2 -0
  321. package/types/components/StyledButton.d.ts.map +1 -0
  322. package/types/groups/ActionsGroup.d.ts +10 -0
  323. package/types/groups/ActionsGroup.d.ts.map +1 -0
  324. package/types/groups/ControlGroup.d.ts +8 -0
  325. package/types/groups/ControlGroup.d.ts.map +1 -0
  326. package/types/groups/EditingGroup.d.ts +11 -0
  327. package/types/groups/EditingGroup.d.ts.map +1 -0
  328. package/types/groups/EditorGroup.d.ts +8 -0
  329. package/types/groups/EditorGroup.d.ts.map +1 -0
  330. package/types/groups/EditorsControlGroup.d.ts +8 -0
  331. package/types/groups/EditorsControlGroup.d.ts.map +1 -0
  332. package/types/groups/HistoryGroup.d.ts +8 -0
  333. package/types/groups/HistoryGroup.d.ts.map +1 -0
  334. package/types/groups/HistoryGroup.test.d.ts +2 -0
  335. package/types/groups/HistoryGroup.test.d.ts.map +1 -0
  336. package/types/groups/SidebarControlGroup.d.ts +8 -0
  337. package/types/groups/SidebarControlGroup.d.ts.map +1 -0
  338. package/types/groups/VisualizationGroup.d.ts +8 -0
  339. package/types/groups/VisualizationGroup.d.ts.map +1 -0
  340. package/types/groups/index.d.ts +11 -0
  341. package/types/groups/index.d.ts.map +1 -0
  342. package/types/hooks/useDropdown.d.ts +25 -0
  343. package/types/hooks/useDropdown.d.ts.map +1 -0
  344. package/types/index.d.ts +16 -0
  345. package/types/index.d.ts.map +1 -0
  346. package/types/types/common.d.ts +13 -0
  347. package/types/types/common.d.ts.map +1 -0
@@ -0,0 +1,1778 @@
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
5
+ var __create = Object.create;
6
+ var __defProp = Object.defineProperty;
7
+ var __defProps = Object.defineProperties;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __getProtoOf = Object.getPrototypeOf;
13
+ 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
+ var __export = (target, all) => {
41
+ for (var name in all)
42
+ __defProp(target, name, { get: all[name], enumerable: true });
43
+ };
44
+ var __copyProps = (to, from, except, desc) => {
45
+ if (from && typeof from === "object" || typeof from === "function") {
46
+ for (let key of __getOwnPropNames(from))
47
+ if (!__hasOwnProp.call(to, key) && key !== except)
48
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
49
+ }
50
+ return to;
51
+ };
52
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
53
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
54
+ // If the importer is in node compatibility mode or this is not an ESM
55
+ // file that has been converted to a CommonJS file using a Babel-
56
+ // compatible transform (i.e. "__esModule" has not been set), then set
57
+ // "default" to the CommonJS "module.exports" for node compatibility.
58
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
59
+ mod
60
+ ));
61
+ 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
+
83
+ // src/groups/index.ts
84
+ var groups_exports = {};
85
+ __export(groups_exports, {
86
+ ActionsGroup: () => ActionsGroup_default,
87
+ ControlGroup: () => ControlGroup_default,
88
+ EditingGroup: () => EditingGroup_default,
89
+ EditorGroup: () => EditorGroup_default,
90
+ EditorsControlGroup: () => EditorsControlGroup_default,
91
+ HistoryGroup: () => HistoryGroup_default,
92
+ SidebarControlGroup: () => SidebarControlGroup_default,
93
+ VisualizationGroup: () => VisualizationGroup_default
94
+ });
95
+ module.exports = __toCommonJS(groups_exports);
96
+
97
+ // esm-externals:react
98
+ var react_exports = {};
99
+ __export(react_exports, {
100
+ default: () => react_default
101
+ });
102
+ var defaultImport = __toESM(require("react"));
103
+ __reExport(react_exports, require("react"));
104
+ var react_default = "default" in defaultImport ? defaultImport.default : defaultImport;
105
+
106
+ // esm-externals:@splunk/ui-utils/i18n
107
+ var i18n_exports = {};
108
+ __export(i18n_exports, {
109
+ default: () => i18n_default
110
+ });
111
+ var defaultImport2 = __toESM(require("@splunk/ui-utils/i18n"));
112
+ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
113
+ var i18n_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
114
+
115
+ // esm-externals:@splunk/react-ui/Dropdown
116
+ var Dropdown_exports = {};
117
+ __export(Dropdown_exports, {
118
+ default: () => Dropdown_default
119
+ });
120
+ var defaultImport3 = __toESM(require("@splunk/react-ui/Dropdown"));
121
+ __reExport(Dropdown_exports, require("@splunk/react-ui/Dropdown"));
122
+ var Dropdown_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
123
+
124
+ // esm-externals:@splunk/react-ui/Menu
125
+ var Menu_exports = {};
126
+ __export(Menu_exports, {
127
+ default: () => Menu_default
128
+ });
129
+ var defaultImport4 = __toESM(require("@splunk/react-ui/Menu"));
130
+ __reExport(Menu_exports, require("@splunk/react-ui/Menu"));
131
+ var Menu_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
132
+
133
+ // esm-externals:@splunk/react-ui/Button
134
+ var Button_exports = {};
135
+ __export(Button_exports, {
136
+ default: () => Button_default
137
+ });
138
+ var defaultImport5 = __toESM(require("@splunk/react-ui/Button"));
139
+ __reExport(Button_exports, require("@splunk/react-ui/Button"));
140
+ var Button_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
141
+
142
+ // src/hooks/useDropdown.ts
143
+ var useDropdown = ({
144
+ isContentClickClose = true
145
+ }) => {
146
+ const [isOpen, setIsOpen] = (0, react_exports.useState)(false);
147
+ const hasChildModal = (0, react_exports.useRef)(false);
148
+ const handleRequestClose = (0, react_exports.useCallback)(
149
+ ({ reason }) => {
150
+ if (reason === "contentClick" && !isContentClickClose) {
151
+ return;
152
+ }
153
+ if (reason === "escapeKey" && hasChildModal.current) {
154
+ return;
155
+ }
156
+ setIsOpen(false);
157
+ },
158
+ [isContentClickClose]
159
+ );
160
+ const handleRequestOpen = (0, react_exports.useCallback)(() => {
161
+ setIsOpen(true);
162
+ }, []);
163
+ const handleForceClose = (0, react_exports.useCallback)(() => {
164
+ setIsOpen(false);
165
+ }, []);
166
+ const setHasChildModal = (0, react_exports.useCallback)((value) => {
167
+ hasChildModal.current = value;
168
+ }, []);
169
+ return {
170
+ isOpen,
171
+ handleRequestOpen,
172
+ handleRequestClose,
173
+ handleForceClose,
174
+ setHasChildModal
175
+ };
176
+ };
177
+ var useDropdown_default = useDropdown;
178
+
179
+ // src/groups/ActionsGroup.tsx
180
+ var menuStyle = {
181
+ width: "180px"
182
+ };
183
+ var buttonToggle = /* @__PURE__ */ react_default.createElement(
184
+ Button_default,
185
+ {
186
+ "data-clickable": true,
187
+ label: (0, i18n_exports._)("Actions"),
188
+ "data-test": "actions-dropdown-button",
189
+ isMenu: true,
190
+ appearance: "subtle"
191
+ }
192
+ );
193
+ var ActionsGroup = ({ children }) => {
194
+ const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
195
+ isContentClickClose: true
196
+ });
197
+ return /* @__PURE__ */ react_default.createElement(
198
+ Dropdown_default,
199
+ {
200
+ onRequestClose: handleRequestClose,
201
+ onRequestOpen: handleRequestOpen,
202
+ open: isOpen,
203
+ toggle: buttonToggle
204
+ },
205
+ /* @__PURE__ */ react_default.createElement(Menu_default, { style: menuStyle }, children)
206
+ );
207
+ };
208
+ var ActionsGroup_default = ActionsGroup;
209
+
210
+ // esm-externals:styled-components
211
+ var styled_components_exports = {};
212
+ __export(styled_components_exports, {
213
+ default: () => styled_components_default
214
+ });
215
+ var defaultImport6 = __toESM(require("styled-components"));
216
+ __reExport(styled_components_exports, require("styled-components"));
217
+ var styled_components_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
218
+
219
+ // esm-externals:@splunk/dashboard-utils
220
+ var dashboard_utils_exports = {};
221
+ __export(dashboard_utils_exports, {
222
+ default: () => dashboard_utils_default
223
+ });
224
+ var defaultImport7 = __toESM(require("@splunk/dashboard-utils"));
225
+ __reExport(dashboard_utils_exports, require("@splunk/dashboard-utils"));
226
+ var dashboard_utils_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
227
+
228
+ // esm-externals:@splunk/themes
229
+ var themes_exports = {};
230
+ __export(themes_exports, {
231
+ default: () => themes_default
232
+ });
233
+ var defaultImport8 = __toESM(require("@splunk/themes"));
234
+ __reExport(themes_exports, require("@splunk/themes"));
235
+ var themes_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
236
+
237
+ // src/components/ItemSeparator.tsx
238
+ var ItemSeparator = styled_components_default.div`
239
+ border-left-width: 1px;
240
+ border-left-style: solid;
241
+ border-left-color: ${themes_exports.variables.interactiveColorBorder};
242
+ width: 0px;
243
+ height: ${themes_exports.variables.inputHeight};
244
+ `;
245
+ var ItemSeparator_default = ItemSeparator;
246
+
247
+ // src/ItemGroup.tsx
248
+ var Group = styled_components_default.div.attrs({
249
+ "data-test": "toolbar-item-group"
250
+ })`
251
+ display: flex;
252
+ flex-direction: row;
253
+ gap: ${(props) => props.gap};
254
+ `;
255
+ var ItemGroup = (_a) => {
256
+ var _b = _a, {
257
+ children,
258
+ borders = true,
259
+ gap
260
+ } = _b, rest = __objRest(_b, [
261
+ "children",
262
+ "borders",
263
+ "gap"
264
+ ]);
265
+ const items = react_default.Children.map(
266
+ children,
267
+ (child) => child && react_default.cloneElement(child, rest)
268
+ );
269
+ const separator = borders ? /* @__PURE__ */ react_default.createElement(ItemSeparator_default, null) : null;
270
+ return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Group, { gap: (0, dashboard_utils_exports.toPx)(gap, 2) }, items), separator);
271
+ };
272
+ var ItemGroup_default = ItemGroup;
273
+
274
+ // esm-externals:@splunk/react-icons/ChartColumn
275
+ var ChartColumn_exports = {};
276
+ __export(ChartColumn_exports, {
277
+ default: () => ChartColumn_default
278
+ });
279
+ var defaultImport9 = __toESM(require("@splunk/react-icons/ChartColumn"));
280
+ __reExport(ChartColumn_exports, require("@splunk/react-icons/ChartColumn"));
281
+ var ChartColumn_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
282
+
283
+ // esm-externals:@splunk/dashboard-ui
284
+ var dashboard_ui_exports = {};
285
+ __export(dashboard_ui_exports, {
286
+ default: () => dashboard_ui_default
287
+ });
288
+ var defaultImport10 = __toESM(require("@splunk/dashboard-ui"));
289
+ __reExport(dashboard_ui_exports, require("@splunk/dashboard-ui"));
290
+ var dashboard_ui_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
291
+
292
+ // esm-externals:@splunk/dashboard-context
293
+ var dashboard_context_exports = {};
294
+ __export(dashboard_context_exports, {
295
+ default: () => dashboard_context_default
296
+ });
297
+ var defaultImport11 = __toESM(require("@splunk/dashboard-context"));
298
+ __reExport(dashboard_context_exports, require("@splunk/dashboard-context"));
299
+ var dashboard_context_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
300
+
301
+ // esm-externals:@splunk/dashboard-state
302
+ var dashboard_state_exports = {};
303
+ __export(dashboard_state_exports, {
304
+ default: () => dashboard_state_default
305
+ });
306
+ var defaultImport12 = __toESM(require("@splunk/dashboard-state"));
307
+ __reExport(dashboard_state_exports, require("@splunk/dashboard-state"));
308
+ var dashboard_state_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
309
+
310
+ // src/Item.tsx
311
+ var Item_default = styled_components_default.div``;
312
+
313
+ // esm-externals:@splunk/react-icons/CaretDown
314
+ var CaretDown_exports = {};
315
+ __export(CaretDown_exports, {
316
+ default: () => CaretDown_default
317
+ });
318
+ var defaultImport13 = __toESM(require("@splunk/react-icons/CaretDown"));
319
+ __reExport(CaretDown_exports, require("@splunk/react-icons/CaretDown"));
320
+ var CaretDown_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
321
+
322
+ // esm-externals:@splunk/react-ui/ScreenReaderContent
323
+ var ScreenReaderContent_exports = {};
324
+ __export(ScreenReaderContent_exports, {
325
+ default: () => ScreenReaderContent_default
326
+ });
327
+ var defaultImport14 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
328
+ __reExport(ScreenReaderContent_exports, require("@splunk/react-ui/ScreenReaderContent"));
329
+ var ScreenReaderContent_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
330
+
331
+ // src/IconButton.tsx
332
+ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
333
+ margin-left: -5px;
334
+ `;
335
+ var iconSize = 24;
336
+ var menuIconSize = 20;
337
+ var prepareIcon = (_a) => {
338
+ var _b = _a, {
339
+ Icon,
340
+ screenReaderContent,
341
+ isMenu = false
342
+ } = _b, props = __objRest(_b, [
343
+ "Icon",
344
+ "screenReaderContent",
345
+ "isMenu"
346
+ ]);
347
+ const size = isMenu ? menuIconSize : iconSize;
348
+ 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));
349
+ };
350
+ var IconButton = (_a) => {
351
+ var _b = _a, {
352
+ icon: icon9,
353
+ buttonRef,
354
+ disabled = false,
355
+ onClick,
356
+ label,
357
+ testLabel
358
+ } = _b, rest = __objRest(_b, [
359
+ "icon",
360
+ "buttonRef",
361
+ "disabled",
362
+ "onClick",
363
+ "label",
364
+ "testLabel"
365
+ ]);
366
+ return /* @__PURE__ */ react_default.createElement(Item_default, __spreadValues({}, rest), /* @__PURE__ */ react_default.createElement(
367
+ Button_default,
368
+ {
369
+ elementRef: buttonRef,
370
+ onClick,
371
+ disabled,
372
+ appearance: "subtle",
373
+ icon: icon9,
374
+ label,
375
+ "data-test": testLabel,
376
+ "data-clickable": true
377
+ }
378
+ ));
379
+ };
380
+ var IconButton_default = IconButton;
381
+
382
+ // src/components/StyledButton.tsx
383
+ var StyledDropdownButton = styled_components_default(Button_default)`
384
+ max-width: '50px';
385
+ `;
386
+
387
+ // src/buttons/Charts.tsx
388
+ var ScrollableMenu = styled_components_default(Menu_default).attrs(
389
+ ({ maxHeight }) => ({
390
+ style: {
391
+ maxHeight: maxHeight != null ? maxHeight : void 0
392
+ }
393
+ })
394
+ )`
395
+ overflow-y: auto;
396
+ `;
397
+ var chartsDropdown = prepareIcon({
398
+ Icon: ChartColumn_default,
399
+ isMenu: true,
400
+ screenReaderContent: (0, i18n_exports._)("Add chart")
401
+ });
402
+ var ButtonToggle = /* @__PURE__ */ react_default.createElement(
403
+ StyledDropdownButton,
404
+ {
405
+ "data-test": "charts-button",
406
+ "data-clickable": true,
407
+ appearance: "subtle",
408
+ icon: chartsDropdown
409
+ }
410
+ );
411
+ var focusToggleReasons = [];
412
+ var getVisualizationListFromTaxonomy = ({
413
+ taxonomy,
414
+ handleCreateVisualization
415
+ }) => taxonomy.reduce(
416
+ (list, { visualizations, category }) => {
417
+ const availableVisualizations = visualizations.filter((props) => props.includeInToolbar);
418
+ if (availableVisualizations.length === 0) {
419
+ return list;
420
+ }
421
+ list.push(/* @__PURE__ */ react_default.createElement(Menu_default.Divider, { key: `menu-divider-${category}` }));
422
+ return list.concat(
423
+ availableVisualizations.map((vizProps) => {
424
+ const { label, type, initialOptions } = vizProps;
425
+ const Icon = vizProps.icon;
426
+ if (!type) {
427
+ return null;
428
+ }
429
+ const onClick = handleCreateVisualization({
430
+ type,
431
+ options: initialOptions
432
+ });
433
+ return /* @__PURE__ */ react_default.createElement(
434
+ Menu_default.Item,
435
+ {
436
+ "data-test": `add-${type}-button`,
437
+ "data-test-clickable": true,
438
+ onClick,
439
+ startAdornment: !!Icon && /* @__PURE__ */ react_default.createElement(Icon, { size: "18px" }),
440
+ key: `add-${type}-button`
441
+ },
442
+ label
443
+ );
444
+ })
445
+ );
446
+ },
447
+ []
448
+ );
449
+ var Charts = ({ dashboardApi, preset }) => {
450
+ const { showNewDataForViz = true } = (0, dashboard_context_exports.useFeatureFlags)();
451
+ const { family } = (0, themes_exports.useSplunkTheme)();
452
+ const { handleForceClose, handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
453
+ isContentClickClose: false
454
+ });
455
+ const taxonomy = (0, react_exports.useMemo)(
456
+ () => new dashboard_ui_exports.VisualizationFilter(preset).taxonomy,
457
+ [preset]
458
+ );
459
+ const handleCreateVisualization = (0, react_exports.useCallback)(
460
+ ({
461
+ type,
462
+ options
463
+ }) => () => {
464
+ (0, dashboard_state_exports.batch)(() => {
465
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
466
+ visualizationDefinition: { type, options }
467
+ });
468
+ if (showNewDataForViz) {
469
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
470
+ activePanel: "connectData",
471
+ panelProps: {
472
+ bindingType: "primary",
473
+ from: {
474
+ activePanel: "config"
475
+ }
476
+ }
477
+ });
478
+ }
479
+ });
480
+ handleForceClose();
481
+ },
482
+ [dashboardApi, showNewDataForViz, handleForceClose]
483
+ );
484
+ const visualizationList = (0, react_exports.useMemo)(
485
+ () => getVisualizationListFromTaxonomy({
486
+ taxonomy,
487
+ handleCreateVisualization
488
+ }),
489
+ [taxonomy, handleCreateVisualization]
490
+ );
491
+ const renderScrollableMenu = (0, react_exports.useCallback)(
492
+ ({ maxHeight }) => /* @__PURE__ */ react_default.createElement(
493
+ themes_exports.SplunkThemeProvider,
494
+ {
495
+ density: family === "enterprise" ? "comfortable" : "compact"
496
+ },
497
+ /* @__PURE__ */ react_default.createElement(
498
+ ScrollableMenu,
499
+ {
500
+ maxHeight,
501
+ "data-test": "add-chart-menu"
502
+ },
503
+ visualizationList
504
+ )
505
+ ),
506
+ [family, visualizationList]
507
+ );
508
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
509
+ Dropdown_default,
510
+ {
511
+ focusToggleReasons,
512
+ onRequestClose: handleRequestClose,
513
+ onRequestOpen: handleRequestOpen,
514
+ open: isOpen,
515
+ toggle: ButtonToggle
516
+ },
517
+ renderScrollableMenu
518
+ ));
519
+ };
520
+ var Charts_default = Charts;
521
+
522
+ // esm-externals:@splunk/react-icons/Cog
523
+ var Cog_exports = {};
524
+ __export(Cog_exports, {
525
+ default: () => Cog_default
526
+ });
527
+ var defaultImport15 = __toESM(require("@splunk/react-icons/Cog"));
528
+ __reExport(Cog_exports, require("@splunk/react-icons/Cog"));
529
+ var Cog_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
530
+
531
+ // src/buttons/Config.tsx
532
+ var configurationIcon = prepareIcon({
533
+ Icon: Cog_default,
534
+ screenReaderContent: (0, i18n_exports._)("Configuration")
535
+ });
536
+ var Config = ({ dashboardApi }) => {
537
+ const configButtonRef = (0, dashboard_context_exports.useToolbarRef)("config");
538
+ const handleClick = (0, react_exports.useCallback)(() => {
539
+ const isOpen = (dashboardApi == null ? void 0 : dashboardApi.getOpenedPanel()) === "config";
540
+ if (isOpen) {
541
+ dashboardApi == null ? void 0 : dashboardApi.closePanel();
542
+ } else {
543
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
544
+ activePanel: "config",
545
+ panelProps: {
546
+ focusOnOpen: true
547
+ }
548
+ });
549
+ }
550
+ }, [dashboardApi]);
551
+ return /* @__PURE__ */ react_default.createElement(
552
+ IconButton_default,
553
+ {
554
+ buttonRef: configButtonRef,
555
+ testLabel: "config-button",
556
+ onClick: handleClick,
557
+ icon: configurationIcon
558
+ }
559
+ );
560
+ };
561
+ var Config_default = Config;
562
+
563
+ // esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown
564
+ var ArrowBroadUnderbarDown_exports = {};
565
+ __export(ArrowBroadUnderbarDown_exports, {
566
+ default: () => ArrowBroadUnderbarDown_default
567
+ });
568
+ var defaultImport16 = __toESM(require("@splunk/react-icons/ArrowBroadUnderbarDown"));
569
+ __reExport(ArrowBroadUnderbarDown_exports, require("@splunk/react-icons/ArrowBroadUnderbarDown"));
570
+ var ArrowBroadUnderbarDown_default = "default" in defaultImport16 ? defaultImport16.default : defaultImport16;
571
+
572
+ // src/buttons/ContentExport.tsx
573
+ var icon = prepareIcon({
574
+ Icon: ArrowBroadUnderbarDown_default,
575
+ screenReaderContent: (0, i18n_exports._)("Export")
576
+ });
577
+
578
+ // esm-externals:@splunk/react-icons/CylinderMulti
579
+ var CylinderMulti_exports = {};
580
+ __export(CylinderMulti_exports, {
581
+ default: () => CylinderMulti_default
582
+ });
583
+ var defaultImport17 = __toESM(require("@splunk/react-icons/CylinderMulti"));
584
+ __reExport(CylinderMulti_exports, require("@splunk/react-icons/CylinderMulti"));
585
+ var CylinderMulti_default = "default" in defaultImport17 ? defaultImport17.default : defaultImport17;
586
+
587
+ // src/buttons/Data.tsx
588
+ var dataInputIcon = prepareIcon({
589
+ Icon: CylinderMulti_default,
590
+ screenReaderContent: (0, i18n_exports._)("Data source overview")
591
+ });
592
+ var Data = ({ dashboardApi }) => {
593
+ const dataButtonRef = (0, dashboard_context_exports.useToolbarRef)("dataOverview");
594
+ const handleClick = (0, react_exports.useCallback)(() => {
595
+ const isOpen = (dashboardApi == null ? void 0 : dashboardApi.getOpenedPanel()) === "dataOverview";
596
+ if (isOpen) {
597
+ dashboardApi.closePanel();
598
+ } else {
599
+ (0, dashboard_state_exports.batch)(() => {
600
+ dashboardApi == null ? void 0 : dashboardApi.selectVisualization([]);
601
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
602
+ activePanel: "dataOverview",
603
+ panelProps: {
604
+ focusOnOpen: true
605
+ }
606
+ });
607
+ });
608
+ }
609
+ }, [dashboardApi]);
610
+ return /* @__PURE__ */ react_default.createElement(
611
+ IconButton_default,
612
+ {
613
+ buttonRef: dataButtonRef,
614
+ testLabel: "data-button",
615
+ onClick: handleClick,
616
+ icon: dataInputIcon
617
+ }
618
+ );
619
+ };
620
+ var Data_default = Data;
621
+
622
+ // esm-externals:@splunk/react-icons/Square
623
+ var Square_exports = {};
624
+ __export(Square_exports, {
625
+ default: () => Square_default
626
+ });
627
+ var defaultImport18 = __toESM(require("@splunk/react-icons/Square"));
628
+ __reExport(Square_exports, require("@splunk/react-icons/Square"));
629
+ var Square_default = "default" in defaultImport18 ? defaultImport18.default : defaultImport18;
630
+
631
+ // src/buttons/EmptyVisualization.tsx
632
+ var icon2 = prepareIcon({
633
+ Icon: Square_default,
634
+ screenReaderContent: (0, i18n_exports._)("Add rectangle")
635
+ });
636
+ var EmptyVisualization = ({ dashboardApi }) => {
637
+ const handleClick = (0, react_exports.useCallback)(() => __async(void 0, null, function* () {
638
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
639
+ visualizationDefinition: {
640
+ type: "splunk.rectangle",
641
+ options: {
642
+ fillColor: "transparent",
643
+ strokeColor: "transparent"
644
+ }
645
+ }
646
+ });
647
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
648
+ activePanel: "config"
649
+ });
650
+ }), [dashboardApi]);
651
+ return /* @__PURE__ */ react_default.createElement(
652
+ IconButton_default,
653
+ {
654
+ testLabel: "empty-viz-button",
655
+ onClick: handleClick,
656
+ icon: icon2
657
+ }
658
+ );
659
+ };
660
+ var EmptyVisualization_default = EmptyVisualization;
661
+
662
+ // esm-externals:@splunk/react-icons/ChevronsOut
663
+ var ChevronsOut_exports = {};
664
+ __export(ChevronsOut_exports, {
665
+ default: () => ChevronsOut_default
666
+ });
667
+ var defaultImport19 = __toESM(require("@splunk/react-icons/ChevronsOut"));
668
+ __reExport(ChevronsOut_exports, require("@splunk/react-icons/ChevronsOut"));
669
+ var ChevronsOut_default = "default" in defaultImport19 ? defaultImport19.default : defaultImport19;
670
+
671
+ // src/buttons/Fullscreen.tsx
672
+ var icon3 = prepareIcon({
673
+ Icon: ChevronsOut_default,
674
+ screenReaderContent: (0, i18n_exports._)("Fullscreen")
675
+ });
676
+ var FullScreen = ({ dashboardApi }) => {
677
+ const isFullscreen = !!(0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectFullscreenElement);
678
+ const handleClick = (0, react_exports.useCallback)(() => {
679
+ dashboardApi == null ? void 0 : dashboardApi.enterFullscreen();
680
+ }, [dashboardApi]);
681
+ return /* @__PURE__ */ react_default.createElement(
682
+ IconButton_default,
683
+ {
684
+ testLabel: "fullscreen-button",
685
+ onClick: handleClick,
686
+ disabled: isFullscreen,
687
+ icon: icon3
688
+ }
689
+ );
690
+ };
691
+ var Fullscreen_default = FullScreen;
692
+
693
+ // esm-externals:@splunk/react-ui/Switch
694
+ var Switch_exports = {};
695
+ __export(Switch_exports, {
696
+ default: () => Switch_default
697
+ });
698
+ var defaultImport20 = __toESM(require("@splunk/react-ui/Switch"));
699
+ __reExport(Switch_exports, require("@splunk/react-ui/Switch"));
700
+ var Switch_default = "default" in defaultImport20 ? defaultImport20.default : defaultImport20;
701
+
702
+ // src/buttons/GridLineSwitch.tsx
703
+ var SwitchContainer = styled_components_default.div`
704
+ display: flex;
705
+ align-items: center;
706
+ flex-direction: row;
707
+ gap: ${themes_exports.variables.spacingSmall};
708
+ `;
709
+ var GridLineSwitch = ({
710
+ dashboardApi,
711
+ mode,
712
+ showSeparator,
713
+ layoutType
714
+ }) => {
715
+ var _a;
716
+ const showGrid = (_a = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectAreGridLinesEnabled)) != null ? _a : false;
717
+ const handleClick = (0, react_exports.useCallback)(() => {
718
+ dashboardApi == null ? void 0 : dashboardApi.toggleGridLines(!showGrid);
719
+ }, [dashboardApi, showGrid]);
720
+ const separator = (0, react_exports.useMemo)(
721
+ () => showSeparator ? /* @__PURE__ */ react_default.createElement(ItemSeparator_default, { key: "item-separator" }) : null,
722
+ [showSeparator]
723
+ );
724
+ if (!dashboardApi || mode !== "edit" || layoutType === "grid") {
725
+ return null;
726
+ }
727
+ return /* @__PURE__ */ react_default.createElement(SwitchContainer, { key: "grid-line-switch" }, /* @__PURE__ */ react_default.createElement(
728
+ Switch_default,
729
+ {
730
+ onClick: handleClick,
731
+ selected: showGrid,
732
+ selectedLabel: (0, i18n_exports._)("Gridlines displayed"),
733
+ unselectedLabel: (0, i18n_exports._)("Gridlines not displayed"),
734
+ appearance: "toggle",
735
+ "data-test": "gridline-toggle",
736
+ "data-clickable": true
737
+ },
738
+ (0, i18n_exports._)("Gridlines")
739
+ ), separator);
740
+ };
741
+ var GridLineSwitch_default = GridLineSwitch;
742
+
743
+ // esm-externals:@splunk/react-icons/ChartSingleValueIcon
744
+ var ChartSingleValueIcon_exports = {};
745
+ __export(ChartSingleValueIcon_exports, {
746
+ default: () => ChartSingleValueIcon_default
747
+ });
748
+ var defaultImport21 = __toESM(require("@splunk/react-icons/ChartSingleValueIcon"));
749
+ __reExport(ChartSingleValueIcon_exports, require("@splunk/react-icons/ChartSingleValueIcon"));
750
+ var ChartSingleValueIcon_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
751
+
752
+ // src/buttons/IconGallery.tsx
753
+ var MenusContainer = styled_components_default.div`
754
+ display: flex;
755
+ padding: 5px;
756
+ `;
757
+ var iconGalleryDropdown = prepareIcon({
758
+ Icon: ChartSingleValueIcon_default,
759
+ screenReaderContent: (0, i18n_exports._)("Add icon"),
760
+ isMenu: true
761
+ });
762
+ var focusToggleReasons2 = [];
763
+ var IconGallery = ({ dashboardApi }) => {
764
+ const {
765
+ handleForceClose,
766
+ handleRequestClose,
767
+ handleRequestOpen,
768
+ setHasChildModal,
769
+ isOpen
770
+ } = useDropdown_default({
771
+ isContentClickClose: false
772
+ });
773
+ const ButtonToggle4 = (0, react_exports.useMemo)(
774
+ () => /* @__PURE__ */ react_default.createElement(
775
+ StyledDropdownButton,
776
+ {
777
+ "data-test": "icon-gallery-button",
778
+ "data-clickable": true,
779
+ appearance: "subtle",
780
+ icon: iconGalleryDropdown
781
+ }
782
+ ),
783
+ []
784
+ );
785
+ const handlePanelClick = (0, react_exports.useCallback)(
786
+ (iconURL) => __async(void 0, null, function* () {
787
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
788
+ visualizationDefinition: {
789
+ type: "splunk.singlevalueicon",
790
+ options: {
791
+ showValue: false,
792
+ icon: iconURL
793
+ }
794
+ }
795
+ });
796
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
797
+ activePanel: "config"
798
+ });
799
+ handleForceClose();
800
+ }),
801
+ [dashboardApi, handleForceClose]
802
+ );
803
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
804
+ Dropdown_default,
805
+ {
806
+ focusToggleReasons: focusToggleReasons2,
807
+ onRequestClose: handleRequestClose,
808
+ onRequestOpen: handleRequestOpen,
809
+ open: isOpen,
810
+ toggle: ButtonToggle4
811
+ },
812
+ /* @__PURE__ */ react_default.createElement(MenusContainer, { "data-test": "icon-menu", "data-open": isOpen }, /* @__PURE__ */ react_default.createElement(
813
+ dashboard_ui_exports.IconGallery,
814
+ {
815
+ onClick: handlePanelClick,
816
+ setHasChildModal
817
+ }
818
+ ))
819
+ ));
820
+ };
821
+ var IconGallery_default = IconGallery;
822
+
823
+ // esm-externals:@splunk/react-icons/QuestionCircle
824
+ var QuestionCircle_exports = {};
825
+ __export(QuestionCircle_exports, {
826
+ default: () => QuestionCircle_default
827
+ });
828
+ var defaultImport22 = __toESM(require("@splunk/react-icons/QuestionCircle"));
829
+ __reExport(QuestionCircle_exports, require("@splunk/react-icons/QuestionCircle"));
830
+ var QuestionCircle_default = "default" in defaultImport22 ? defaultImport22.default : defaultImport22;
831
+
832
+ // src/buttons/HelpButton.tsx
833
+ var HelpIcon = prepareIcon({
834
+ Icon: QuestionCircle_default,
835
+ screenReaderContent: (0, i18n_exports._)("Help links"),
836
+ isMenu: true
837
+ });
838
+
839
+ // esm-externals:@splunk/react-icons/Picture
840
+ var Picture_exports = {};
841
+ __export(Picture_exports, {
842
+ default: () => Picture_default
843
+ });
844
+ var defaultImport23 = __toESM(require("@splunk/react-icons/Picture"));
845
+ __reExport(Picture_exports, require("@splunk/react-icons/Picture"));
846
+ var Picture_default = "default" in defaultImport23 ? defaultImport23.default : defaultImport23;
847
+
848
+ // src/buttons/Image.tsx
849
+ var icon4 = prepareIcon({
850
+ Icon: Picture_default,
851
+ screenReaderContent: (0, i18n_exports._)("Add image")
852
+ });
853
+ var Image = ({ dashboardApi }) => {
854
+ const handleClick = (0, react_exports.useCallback)(() => __async(void 0, null, function* () {
855
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
856
+ visualizationDefinition: {
857
+ type: "splunk.image",
858
+ options: {
859
+ preserveAspectRatio: true
860
+ }
861
+ }
862
+ });
863
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
864
+ activePanel: "config"
865
+ });
866
+ }), [dashboardApi]);
867
+ return /* @__PURE__ */ react_default.createElement(
868
+ IconButton_default,
869
+ {
870
+ testLabel: "image-button",
871
+ onClick: handleClick,
872
+ icon: icon4
873
+ }
874
+ );
875
+ };
876
+ var Image_default = Image;
877
+
878
+ // src/buttons/ImageGallery.tsx
879
+ var MenusContainer2 = styled_components_default.div`
880
+ display: flex;
881
+ padding: 5px;
882
+ `;
883
+ var imageGalleryDropdown = prepareIcon({
884
+ Icon: Picture_default,
885
+ screenReaderContent: (0, i18n_exports._)("Add image"),
886
+ isMenu: true
887
+ });
888
+
889
+ // esm-externals:lodash
890
+ var lodash_exports = {};
891
+ __export(lodash_exports, {
892
+ default: () => lodash_default
893
+ });
894
+ var defaultImport24 = __toESM(require("lodash"));
895
+ __reExport(lodash_exports, require("lodash"));
896
+ var lodash_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
897
+
898
+ // esm-externals:@splunk/react-icons/SlidersTripleHorizontal
899
+ var SlidersTripleHorizontal_exports = {};
900
+ __export(SlidersTripleHorizontal_exports, {
901
+ default: () => SlidersTripleHorizontal_default
902
+ });
903
+ var defaultImport25 = __toESM(require("@splunk/react-icons/SlidersTripleHorizontal"));
904
+ __reExport(SlidersTripleHorizontal_exports, require("@splunk/react-icons/SlidersTripleHorizontal"));
905
+ var SlidersTripleHorizontal_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
906
+
907
+ // esm-externals:@splunk/dashboard-definition
908
+ var dashboard_definition_exports = {};
909
+ __export(dashboard_definition_exports, {
910
+ default: () => dashboard_definition_default
911
+ });
912
+ var defaultImport26 = __toESM(require("@splunk/dashboard-definition"));
913
+ __reExport(dashboard_definition_exports, require("@splunk/dashboard-definition"));
914
+ var dashboard_definition_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
915
+
916
+ // src/buttons/Inputs.tsx
917
+ var focusToggleReasons3 = [];
918
+ var DEFAULT_PRESET_MAP = Object.freeze({});
919
+ var addInputIcon = prepareIcon({
920
+ Icon: SlidersTripleHorizontal_default,
921
+ screenReaderContent: (0, i18n_exports._)("Add input"),
922
+ isMenu: true
923
+ });
924
+ var ButtonToggle2 = /* @__PURE__ */ react_default.createElement(
925
+ StyledDropdownButton,
926
+ {
927
+ appearance: "subtle",
928
+ "data-clickable": true,
929
+ "data-test": "inputs-button",
930
+ icon: addInputIcon
931
+ }
932
+ );
933
+ var onCreateInputClickFactory = ({
934
+ type,
935
+ defaultConfig,
936
+ tokenPrefix,
937
+ showToken,
938
+ dashboardApi
939
+ }) => () => {
940
+ if (!dashboardApi) {
941
+ return;
942
+ }
943
+ const newConfig = __spreadProps(__spreadValues({}, defaultConfig), {
944
+ type,
945
+ options: __spreadValues({}, defaultConfig.options)
946
+ });
947
+ if (showToken) {
948
+ newConfig.options.token = dashboard_definition_exports.DashboardDefinition.fromJSON(
949
+ dashboardApi == null ? void 0 : dashboardApi.getDefinition()
950
+ ).nextTokenId(tokenPrefix);
951
+ }
952
+ dashboardApi.addInput(newConfig);
953
+ dashboardApi.openPanel({ activePanel: "config" });
954
+ };
955
+ var Inputs = ({
956
+ dashboardApi,
957
+ preset = DEFAULT_PRESET_MAP
958
+ }) => {
959
+ const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
960
+ isContentClickClose: true
961
+ });
962
+ const InputTypeButtons = (0, react_exports.useMemo)(() => {
963
+ const buttons = [];
964
+ const inputs = preset == null ? void 0 : preset.inputs;
965
+ (0, lodash_exports.each)(inputs, (InputImpl, type) => {
966
+ const {
967
+ baseShape = {},
968
+ label = (0, i18n_exports._)(`${type} Input`),
969
+ description = "",
970
+ tokenPrefix = "token",
971
+ includeInToolbar = true,
972
+ icon: Icon = SlidersTripleHorizontal_default,
973
+ // showToken flags whether or not the input has a token assigned on creation
974
+ showToken = true
975
+ } = InputImpl.config || {};
976
+ if (!includeInToolbar) {
977
+ return;
978
+ }
979
+ const handleClick = onCreateInputClickFactory({
980
+ type,
981
+ defaultConfig: baseShape,
982
+ tokenPrefix,
983
+ showToken,
984
+ dashboardApi
985
+ });
986
+ const inputIcon = /* @__PURE__ */ react_default.createElement(Icon, { width: "24px", height: "24px" });
987
+ buttons.push(
988
+ /* @__PURE__ */ react_default.createElement(
989
+ Menu_default.Item,
990
+ {
991
+ "data-test": `add-${type}-button`,
992
+ "data-test-clickable": true,
993
+ onClick: handleClick,
994
+ startAdornment: inputIcon,
995
+ description,
996
+ key: `add-${type}-button`
997
+ },
998
+ label
999
+ )
1000
+ );
1001
+ });
1002
+ if (buttons.length === 0) {
1003
+ buttons.push(
1004
+ /* @__PURE__ */ react_default.createElement(
1005
+ Menu_default.Item,
1006
+ {
1007
+ "data-test": "no-inputs-in-preset",
1008
+ key: "no-inputs-in-preset",
1009
+ disabled: true
1010
+ },
1011
+ (0, i18n_exports._)("No Inputs")
1012
+ )
1013
+ );
1014
+ }
1015
+ return buttons;
1016
+ }, [preset, dashboardApi]);
1017
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
1018
+ Dropdown_default,
1019
+ {
1020
+ focusToggleReasons: focusToggleReasons3,
1021
+ onRequestClose: handleRequestClose,
1022
+ onRequestOpen: handleRequestOpen,
1023
+ open: isOpen,
1024
+ toggle: ButtonToggle2
1025
+ },
1026
+ /* @__PURE__ */ react_default.createElement(Menu_default, null, InputTypeButtons)
1027
+ ));
1028
+ };
1029
+ var Inputs_default = Inputs;
1030
+
1031
+ // esm-externals:@splunk/react-icons/Markdown
1032
+ var Markdown_exports = {};
1033
+ __export(Markdown_exports, {
1034
+ default: () => Markdown_default
1035
+ });
1036
+ var defaultImport27 = __toESM(require("@splunk/react-icons/Markdown"));
1037
+ __reExport(Markdown_exports, require("@splunk/react-icons/Markdown"));
1038
+ var Markdown_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
1039
+
1040
+ // src/buttons/Markdown.tsx
1041
+ var icon5 = prepareIcon({
1042
+ Icon: Markdown_default,
1043
+ screenReaderContent: (0, i18n_exports._)("Add markdown text")
1044
+ });
1045
+ var Markdown = ({ dashboardApi }) => {
1046
+ const handleClick = (0, react_exports.useCallback)(() => {
1047
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
1048
+ visualizationDefinition: {
1049
+ type: "splunk.markdown",
1050
+ options: {
1051
+ markdown: ""
1052
+ }
1053
+ }
1054
+ });
1055
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({
1056
+ activePanel: "config"
1057
+ });
1058
+ }, [dashboardApi]);
1059
+ return /* @__PURE__ */ react_default.createElement(
1060
+ IconButton_default,
1061
+ {
1062
+ testLabel: "markdown-button",
1063
+ onClick: handleClick,
1064
+ icon: icon5
1065
+ }
1066
+ );
1067
+ };
1068
+ var Markdown_default2 = Markdown;
1069
+
1070
+ // src/buttons/ModeSwitch.tsx
1071
+ var ModeSwitch = () => {
1072
+ const mode = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectMode);
1073
+ const dashboardApi = (0, dashboard_context_exports.useDashboardApi)();
1074
+ const appearance = mode === "edit" ? "secondary" : "primary";
1075
+ const label = mode === "edit" ? (0, i18n_exports._)("View") : (0, i18n_exports._)("Edit");
1076
+ const handleClick = (0, react_exports.useCallback)(() => {
1077
+ dashboardApi == null ? void 0 : dashboardApi.switchMode(mode === "edit" ? "view" : "edit");
1078
+ }, [mode, dashboardApi]);
1079
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
1080
+ Button_default,
1081
+ {
1082
+ key: "mode-button",
1083
+ "data-clickable": true,
1084
+ "data-test": "mode-button",
1085
+ inline: false,
1086
+ label,
1087
+ appearance,
1088
+ onClick: handleClick
1089
+ }
1090
+ ));
1091
+ };
1092
+ var ModeSwitch_default = ModeSwitch;
1093
+
1094
+ // esm-externals:@splunk/react-icons/ArrowBowRight
1095
+ var ArrowBowRight_exports = {};
1096
+ __export(ArrowBowRight_exports, {
1097
+ default: () => ArrowBowRight_default
1098
+ });
1099
+ var defaultImport28 = __toESM(require("@splunk/react-icons/ArrowBowRight"));
1100
+ __reExport(ArrowBowRight_exports, require("@splunk/react-icons/ArrowBowRight"));
1101
+ var ArrowBowRight_default = "default" in defaultImport28 ? defaultImport28.default : defaultImport28;
1102
+
1103
+ // src/buttons/Redo.tsx
1104
+ var icon6 = prepareIcon({
1105
+ Icon: ArrowBowRight_default,
1106
+ screenReaderContent: (0, i18n_exports._)("Redo")
1107
+ });
1108
+ var Redo = ({ dashboardApi }) => {
1109
+ const [canRedo, setCanRedo] = (0, react_exports.useState)(
1110
+ () => {
1111
+ var _a;
1112
+ return (_a = dashboardApi == null ? void 0 : dashboardApi.canRedo()) != null ? _a : false;
1113
+ }
1114
+ );
1115
+ const onDefinitionChange = (0, react_exports.useCallback)(() => {
1116
+ var _a;
1117
+ setCanRedo((_a = dashboardApi == null ? void 0 : dashboardApi.canRedo()) != null ? _a : false);
1118
+ }, [dashboardApi]);
1119
+ (0, react_exports.useEffect)(() => {
1120
+ if (!(dashboardApi == null ? void 0 : dashboardApi.historyManager)) {
1121
+ return () => void 0;
1122
+ }
1123
+ return dashboardApi.historyManager.subscribe({
1124
+ onAdd: onDefinitionChange,
1125
+ onUndo: onDefinitionChange,
1126
+ onRedo: onDefinitionChange
1127
+ });
1128
+ }, [dashboardApi, onDefinitionChange]);
1129
+ const handleClick = (0, react_exports.useCallback)(() => {
1130
+ if (!dashboardApi) {
1131
+ return;
1132
+ }
1133
+ dashboardApi.redo({ source: "toolbar" });
1134
+ }, [dashboardApi]);
1135
+ return /* @__PURE__ */ react_default.createElement(
1136
+ IconButton_default,
1137
+ {
1138
+ testLabel: "redo-button",
1139
+ onClick: handleClick,
1140
+ disabled: !canRedo,
1141
+ icon: icon6
1142
+ }
1143
+ );
1144
+ };
1145
+ var Redo_default = Redo;
1146
+
1147
+ // esm-externals:@splunk/react-icons/Circle
1148
+ var Circle_exports = {};
1149
+ __export(Circle_exports, {
1150
+ default: () => Circle_default
1151
+ });
1152
+ var defaultImport29 = __toESM(require("@splunk/react-icons/Circle"));
1153
+ __reExport(Circle_exports, require("@splunk/react-icons/Circle"));
1154
+ var Circle_default = "default" in defaultImport29 ? defaultImport29.default : defaultImport29;
1155
+
1156
+ // esm-externals:@splunk/react-icons/Line
1157
+ var Line_exports = {};
1158
+ __export(Line_exports, {
1159
+ default: () => Line_default
1160
+ });
1161
+ var defaultImport30 = __toESM(require("@splunk/react-icons/Line"));
1162
+ __reExport(Line_exports, require("@splunk/react-icons/Line"));
1163
+ var Line_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
1164
+
1165
+ // esm-externals:@splunk/react-icons/ShapesVariety
1166
+ var ShapesVariety_exports = {};
1167
+ __export(ShapesVariety_exports, {
1168
+ default: () => ShapesVariety_default
1169
+ });
1170
+ var defaultImport31 = __toESM(require("@splunk/react-icons/ShapesVariety"));
1171
+ __reExport(ShapesVariety_exports, require("@splunk/react-icons/ShapesVariety"));
1172
+ var ShapesVariety_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
1173
+
1174
+ // src/PopoverItemButton.tsx
1175
+ var StyledContentWrapper = styled_components_default.span`
1176
+ display: flex;
1177
+ flex-direction: row;
1178
+ justify-content: left;
1179
+ align-items: center;
1180
+ max-width: 100%;
1181
+ `;
1182
+ var StyledIcon = styled_components_default.span`
1183
+ display: inline-block;
1184
+ padding-right: 8px;
1185
+ `;
1186
+ var StyledLabel = styled_components_default.span`
1187
+ text-overflow: ellipsis;
1188
+ overflow: hidden;
1189
+ flex: 0 1 auto;
1190
+ `;
1191
+ var PopoverItemButton = ({ icon: icon9, label }) => /* @__PURE__ */ react_default.createElement(StyledContentWrapper, null, icon9 && /* @__PURE__ */ react_default.createElement(StyledIcon, null, icon9), label && /* @__PURE__ */ react_default.createElement(StyledLabel, { "data-test": "label-title" }, label));
1192
+ var PopoverItemButton_default = PopoverItemButton;
1193
+
1194
+ // src/buttons/Shapes.tsx
1195
+ var shapesDropdown = prepareIcon({
1196
+ Icon: ShapesVariety_default,
1197
+ screenReaderContent: (0, i18n_exports._)("Add shape"),
1198
+ isMenu: true
1199
+ });
1200
+ var ButtonToggle3 = /* @__PURE__ */ react_default.createElement(
1201
+ StyledDropdownButton,
1202
+ {
1203
+ appearance: "subtle",
1204
+ "data-clickable": true,
1205
+ "data-test": "shapes-button",
1206
+ icon: shapesDropdown
1207
+ }
1208
+ );
1209
+ var focusToggleReasons4 = [];
1210
+ var circleIcon = /* @__PURE__ */ react_default.createElement(Circle_default, null);
1211
+ var uncheckedBoxIcon = /* @__PURE__ */ react_default.createElement(Square_default, null);
1212
+ var lineIcon = /* @__PURE__ */ react_default.createElement(Line_default, null);
1213
+ var Shapes = ({ dashboardApi, layoutType }) => {
1214
+ const supportLine = layoutType === "absolute";
1215
+ const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
1216
+ isContentClickClose: true
1217
+ });
1218
+ const handleCreateVizButtonClick = (0, react_exports.useCallback)(
1219
+ (vizToCreate, layoutItemType) => {
1220
+ return () => {
1221
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
1222
+ visualizationDefinition: vizToCreate,
1223
+ layoutItemType
1224
+ });
1225
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({ activePanel: "config" });
1226
+ };
1227
+ },
1228
+ [dashboardApi]
1229
+ );
1230
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
1231
+ Dropdown_default,
1232
+ {
1233
+ focusToggleReasons: focusToggleReasons4,
1234
+ onRequestClose: handleRequestClose,
1235
+ onRequestOpen: handleRequestOpen,
1236
+ open: isOpen,
1237
+ toggle: ButtonToggle3
1238
+ },
1239
+ /* @__PURE__ */ react_default.createElement(Menu_default, { "data-test": "shapes-dropdown-children-container" }, /* @__PURE__ */ react_default.createElement(
1240
+ Menu_default.Item,
1241
+ {
1242
+ "data-test": "ellipse-button",
1243
+ onClick: handleCreateVizButtonClick({
1244
+ type: "splunk.ellipse"
1245
+ })
1246
+ },
1247
+ /* @__PURE__ */ react_default.createElement(
1248
+ PopoverItemButton_default,
1249
+ {
1250
+ icon: circleIcon,
1251
+ label: (0, i18n_exports._)("Ellipse")
1252
+ }
1253
+ )
1254
+ ), /* @__PURE__ */ react_default.createElement(
1255
+ Menu_default.Item,
1256
+ {
1257
+ "data-test": "rectangle-button",
1258
+ onClick: handleCreateVizButtonClick({
1259
+ type: "splunk.rectangle"
1260
+ })
1261
+ },
1262
+ /* @__PURE__ */ react_default.createElement(
1263
+ PopoverItemButton_default,
1264
+ {
1265
+ icon: uncheckedBoxIcon,
1266
+ label: (0, i18n_exports._)("Rectangle")
1267
+ }
1268
+ )
1269
+ ), supportLine && /* @__PURE__ */ react_default.createElement(
1270
+ Menu_default.Item,
1271
+ {
1272
+ "data-test": "line-button",
1273
+ onClick: handleCreateVizButtonClick(
1274
+ {
1275
+ type: "abslayout.line"
1276
+ },
1277
+ "line"
1278
+ )
1279
+ },
1280
+ /* @__PURE__ */ react_default.createElement(
1281
+ PopoverItemButton_default,
1282
+ {
1283
+ icon: lineIcon,
1284
+ label: (0, i18n_exports._)("Line")
1285
+ }
1286
+ )
1287
+ ))
1288
+ ));
1289
+ };
1290
+ var Shapes_default = Shapes;
1291
+
1292
+ // esm-externals:@splunk/react-icons/WindowChevronsSlash
1293
+ var WindowChevronsSlash_exports = {};
1294
+ __export(WindowChevronsSlash_exports, {
1295
+ default: () => WindowChevronsSlash_default
1296
+ });
1297
+ var defaultImport32 = __toESM(require("@splunk/react-icons/WindowChevronsSlash"));
1298
+ __reExport(WindowChevronsSlash_exports, require("@splunk/react-icons/WindowChevronsSlash"));
1299
+ var WindowChevronsSlash_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
1300
+
1301
+ // src/buttons/Source.tsx
1302
+ var icon7 = prepareIcon({
1303
+ Icon: WindowChevronsSlash_default,
1304
+ screenReaderContent: (0, i18n_exports._)("Source code")
1305
+ });
1306
+ var Source = ({ disabled = false, onClick }) => /* @__PURE__ */ react_default.createElement(
1307
+ IconButton_default,
1308
+ {
1309
+ testLabel: "source-button",
1310
+ onClick,
1311
+ disabled,
1312
+ icon: icon7
1313
+ }
1314
+ );
1315
+ var Source_default = Source;
1316
+
1317
+ // esm-externals:@splunk/react-icons/ListToken
1318
+ var ListToken_exports = {};
1319
+ __export(ListToken_exports, {
1320
+ default: () => ListToken_default
1321
+ });
1322
+ var defaultImport33 = __toESM(require("@splunk/react-icons/ListToken"));
1323
+ __reExport(ListToken_exports, require("@splunk/react-icons/ListToken"));
1324
+ var ListToken_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
1325
+
1326
+ // esm-externals:@splunk/react-ui/Tooltip
1327
+ var Tooltip_exports = {};
1328
+ __export(Tooltip_exports, {
1329
+ default: () => Tooltip_default
1330
+ });
1331
+ var defaultImport34 = __toESM(require("@splunk/react-ui/Tooltip"));
1332
+ __reExport(Tooltip_exports, require("@splunk/react-ui/Tooltip"));
1333
+ var Tooltip_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
1334
+
1335
+ // src/buttons/tokenManager/TokenManager.tsx
1336
+ var tokenManagerIcon = prepareIcon({
1337
+ Icon: ListToken_default,
1338
+ screenReaderContent: (0, i18n_exports._)("Token manager")
1339
+ });
1340
+
1341
+ // esm-externals:@splunk/react-icons/ArrowBowLeft
1342
+ var ArrowBowLeft_exports = {};
1343
+ __export(ArrowBowLeft_exports, {
1344
+ default: () => ArrowBowLeft_default
1345
+ });
1346
+ var defaultImport35 = __toESM(require("@splunk/react-icons/ArrowBowLeft"));
1347
+ __reExport(ArrowBowLeft_exports, require("@splunk/react-icons/ArrowBowLeft"));
1348
+ var ArrowBowLeft_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
1349
+
1350
+ // src/buttons/Undo.tsx
1351
+ var icon8 = prepareIcon({
1352
+ Icon: ArrowBowLeft_default,
1353
+ screenReaderContent: (0, i18n_exports._)("Undo")
1354
+ });
1355
+ var Undo = ({ dashboardApi }) => {
1356
+ const [canUndo, setCanUndo] = (0, react_exports.useState)(
1357
+ () => {
1358
+ var _a;
1359
+ return (_a = dashboardApi == null ? void 0 : dashboardApi.canUndo()) != null ? _a : false;
1360
+ }
1361
+ );
1362
+ const onDefinitionChange = (0, react_exports.useCallback)(() => {
1363
+ var _a;
1364
+ setCanUndo((_a = dashboardApi == null ? void 0 : dashboardApi.canUndo()) != null ? _a : false);
1365
+ }, [dashboardApi]);
1366
+ (0, react_exports.useEffect)(() => {
1367
+ if (!(dashboardApi == null ? void 0 : dashboardApi.historyManager)) {
1368
+ return () => void 0;
1369
+ }
1370
+ return dashboardApi.historyManager.subscribe({
1371
+ onAdd: onDefinitionChange,
1372
+ onUndo: onDefinitionChange,
1373
+ onRedo: onDefinitionChange
1374
+ });
1375
+ }, [dashboardApi, onDefinitionChange]);
1376
+ const handleClick = (0, react_exports.useCallback)(() => {
1377
+ if (!dashboardApi) {
1378
+ return;
1379
+ }
1380
+ dashboardApi.undo({ source: "toolbar" });
1381
+ }, [dashboardApi]);
1382
+ return /* @__PURE__ */ react_default.createElement(
1383
+ IconButton_default,
1384
+ {
1385
+ testLabel: "undo-button",
1386
+ onClick: handleClick,
1387
+ disabled: !canUndo,
1388
+ icon: icon8
1389
+ }
1390
+ );
1391
+ };
1392
+ var Undo_default = Undo;
1393
+
1394
+ // esm-externals:@splunk/dashboard-telemetry
1395
+ var dashboard_telemetry_exports = {};
1396
+ __export(dashboard_telemetry_exports, {
1397
+ default: () => dashboard_telemetry_default
1398
+ });
1399
+ var defaultImport36 = __toESM(require("@splunk/dashboard-telemetry"));
1400
+ __reExport(dashboard_telemetry_exports, require("@splunk/dashboard-telemetry"));
1401
+ var dashboard_telemetry_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
1402
+
1403
+ // esm-externals:@splunk/ui-utils/format
1404
+ var format_exports = {};
1405
+ __export(format_exports, {
1406
+ default: () => format_default
1407
+ });
1408
+ var defaultImport37 = __toESM(require("@splunk/ui-utils/format"));
1409
+ __reExport(format_exports, require("@splunk/ui-utils/format"));
1410
+ var format_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
1411
+
1412
+ // src/buttons/Zoom/ZoomMenu.tsx
1413
+ var zoomLevels = [25, 50, 100, 150, 200];
1414
+ var buttonStyle = {
1415
+ borderTopLeftRadius: 0,
1416
+ borderBottomLeftRadius: 0
1417
+ };
1418
+ var menuStyle2 = {
1419
+ width: "200px"
1420
+ };
1421
+ var ZoomMenu = ({
1422
+ dashboardApi,
1423
+ appearance = "default",
1424
+ currentScale,
1425
+ setCurrentScale,
1426
+ scaleType,
1427
+ setScaleType
1428
+ }) => {
1429
+ const handleZoomOutClick = (0, react_exports.useCallback)(() => {
1430
+ setScaleType(null);
1431
+ dashboardApi == null ? void 0 : dashboardApi.zoomOut();
1432
+ }, [setScaleType, dashboardApi]);
1433
+ const handleZoomInClick = (0, react_exports.useCallback)(() => {
1434
+ setScaleType(null);
1435
+ dashboardApi == null ? void 0 : dashboardApi.zoomIn();
1436
+ }, [setScaleType, dashboardApi]);
1437
+ const handleScaleChange = (0, react_exports.useCallback)(
1438
+ (scale) => () => {
1439
+ setCurrentScale(scale);
1440
+ setScaleType(null);
1441
+ dashboardApi == null ? void 0 : dashboardApi.setScale({ scale: scale / 100 });
1442
+ },
1443
+ [setScaleType, setCurrentScale, dashboardApi]
1444
+ );
1445
+ const handleFitToWidthClick = (0, react_exports.useCallback)(() => {
1446
+ setScaleType("fit");
1447
+ dashboardApi == null ? void 0 : dashboardApi.fitToWidth();
1448
+ }, [setScaleType, dashboardApi]);
1449
+ const handleAutoClick = (0, react_exports.useCallback)(() => {
1450
+ setScaleType("auto");
1451
+ dashboardApi == null ? void 0 : dashboardApi.fitToWidth({ maxScale: 1 });
1452
+ }, [setScaleType, dashboardApi]);
1453
+ const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
1454
+ isContentClickClose: true
1455
+ });
1456
+ const buttonToggle2 = /* @__PURE__ */ react_default.createElement(
1457
+ Button_default,
1458
+ {
1459
+ "data-clickable": true,
1460
+ "data-test": "zoom-dropdown-button",
1461
+ style: buttonStyle,
1462
+ appearance,
1463
+ isMenu: true,
1464
+ "aria-label": (0, format_exports.sprintf)((0, i18n_exports._)("Zoom level, %(currentScale)s%%"), {
1465
+ currentScale
1466
+ })
1467
+ }
1468
+ );
1469
+ const isMacOS = (0, react_exports.useMemo)(() => (0, dashboard_utils_exports.isMac)(), []);
1470
+ const dropdownMenuChildren = (0, react_exports.useMemo)(() => {
1471
+ const zoomButtons = zoomLevels.map((percent) => {
1472
+ return /* @__PURE__ */ react_default.createElement(
1473
+ Menu_default.Item,
1474
+ {
1475
+ "data-test": `${percent}-percent`,
1476
+ onClick: handleScaleChange(percent),
1477
+ key: percent,
1478
+ selectable: true,
1479
+ selected: currentScale === percent && !scaleType
1480
+ },
1481
+ `${percent}%`
1482
+ );
1483
+ });
1484
+ return [
1485
+ /* @__PURE__ */ react_default.createElement(
1486
+ Menu_default.Item,
1487
+ {
1488
+ "data-test": "auto",
1489
+ onClick: handleAutoClick,
1490
+ key: "auto",
1491
+ selectable: true,
1492
+ selected: scaleType === "auto"
1493
+ },
1494
+ (0, i18n_exports._)("Auto")
1495
+ ),
1496
+ /* @__PURE__ */ react_default.createElement(
1497
+ Menu_default.Item,
1498
+ {
1499
+ "data-test": "fit-to-width",
1500
+ onClick: handleFitToWidthClick,
1501
+ key: "fit-to-width",
1502
+ description: isMacOS ? (0, i18n_exports._)("Ctrl Cmd 0") : (0, i18n_exports._)("Ctrl Alt 0"),
1503
+ descriptionPosition: "right",
1504
+ selectable: true,
1505
+ selected: scaleType === "fit"
1506
+ },
1507
+ (0, i18n_exports._)("Fit")
1508
+ ),
1509
+ /* @__PURE__ */ react_default.createElement(Menu_default.Divider, { key: "menu-divider-1" }),
1510
+ ...zoomButtons,
1511
+ /* @__PURE__ */ react_default.createElement(Menu_default.Divider, { key: "menu-divider-2" }),
1512
+ /* @__PURE__ */ react_default.createElement(
1513
+ Menu_default.Item,
1514
+ {
1515
+ "data-test": "zoom-in",
1516
+ onClick: handleZoomInClick,
1517
+ key: "zoom-in",
1518
+ description: isMacOS ? (0, i18n_exports._)("Ctrl Cmd =") : (0, i18n_exports._)("Ctrl Alt ="),
1519
+ descriptionPosition: "right",
1520
+ selectable: true
1521
+ },
1522
+ (0, i18n_exports._)("Zoom in")
1523
+ ),
1524
+ /* @__PURE__ */ react_default.createElement(
1525
+ Menu_default.Item,
1526
+ {
1527
+ "data-test": "zoom-out",
1528
+ onClick: handleZoomOutClick,
1529
+ key: "zoom-out",
1530
+ description: isMacOS ? (0, i18n_exports._)("Ctrl Cmd -") : (0, i18n_exports._)("Ctrl Alt -"),
1531
+ descriptionPosition: "right",
1532
+ selectable: true
1533
+ },
1534
+ (0, i18n_exports._)("Zoom out")
1535
+ )
1536
+ ];
1537
+ }, [
1538
+ currentScale,
1539
+ handleAutoClick,
1540
+ scaleType,
1541
+ handleFitToWidthClick,
1542
+ isMacOS,
1543
+ handleZoomInClick,
1544
+ handleZoomOutClick,
1545
+ handleScaleChange
1546
+ ]);
1547
+ return /* @__PURE__ */ react_default.createElement(
1548
+ Dropdown_default,
1549
+ {
1550
+ onRequestClose: handleRequestClose,
1551
+ onRequestOpen: handleRequestOpen,
1552
+ open: isOpen,
1553
+ toggle: buttonToggle2,
1554
+ retainFocus: true
1555
+ },
1556
+ /* @__PURE__ */ react_default.createElement(
1557
+ Menu_default,
1558
+ {
1559
+ style: menuStyle2,
1560
+ focusMode: "normal",
1561
+ "aria-label": (0, i18n_exports._)("Zoom level")
1562
+ },
1563
+ dropdownMenuChildren
1564
+ )
1565
+ );
1566
+ };
1567
+
1568
+ // esm-externals:@splunk/react-ui/Number
1569
+ var Number_exports = {};
1570
+ __export(Number_exports, {
1571
+ default: () => Number_default
1572
+ });
1573
+ var defaultImport38 = __toESM(require("@splunk/react-ui/Number"));
1574
+ __reExport(Number_exports, require("@splunk/react-ui/Number"));
1575
+ var Number_default = "default" in defaultImport38 ? defaultImport38.default : defaultImport38;
1576
+
1577
+ // src/buttons/Zoom/ZoomNumber.tsx
1578
+ var StyledNumber = styled_components_default(Number_default)`
1579
+ padding-right: ${themes_exports.variables.spacingSmall};
1580
+ & > input {
1581
+ text-align: right;
1582
+ }
1583
+ `;
1584
+ var StyledEndAdornment = styled_components_default.span`
1585
+ color: ${themes_exports.variables.contentColorActive};
1586
+ `;
1587
+ var ZoomNumber = ({
1588
+ currentScale,
1589
+ onScaleChange
1590
+ }) => {
1591
+ const onValueChange = (0, react_exports.useCallback)(
1592
+ (e, value = 100) => {
1593
+ onScaleChange(value)();
1594
+ },
1595
+ [onScaleChange]
1596
+ );
1597
+ const { handleChange, handleBlur, handleFocus, handleKeyPress } = (0, dashboard_ui_exports.useNumberInput)({
1598
+ value: currentScale,
1599
+ onValueChange
1600
+ });
1601
+ return /* @__PURE__ */ react_default.createElement(
1602
+ StyledNumber,
1603
+ {
1604
+ value: currentScale,
1605
+ onChange: handleChange,
1606
+ onKeyDown: handleKeyPress,
1607
+ onBlur: handleBlur,
1608
+ onFocus: handleFocus,
1609
+ step: 5,
1610
+ min: 1,
1611
+ max: 1e4,
1612
+ roundTo: 0,
1613
+ endAdornment: /* @__PURE__ */ react_default.createElement(StyledEndAdornment, null, "%"),
1614
+ hideStepButtons: true,
1615
+ "data-test": "zoom-number",
1616
+ append: true
1617
+ }
1618
+ );
1619
+ };
1620
+
1621
+ // src/buttons/Zoom/Zoom.tsx
1622
+ var Container = styled_components_default.div`
1623
+ margin-inline-end: 0;
1624
+ display: flex;
1625
+ min-width: 96px;
1626
+ gap: ${themes_exports.variables.spacingSmall};
1627
+ `;
1628
+ var StyledTooltip = styled_components_default(Tooltip_default)`
1629
+ width: 110px;
1630
+ & span {
1631
+ display: flex;
1632
+ }
1633
+ `;
1634
+ var Zoom = ({
1635
+ showSeparator = true,
1636
+ appearance = "default",
1637
+ mode = "view"
1638
+ }) => {
1639
+ const [currentScale, setCurrentScale] = (0, react_exports.useState)(100);
1640
+ const [scaleType, setScaleType] = (0, react_exports.useState)(null);
1641
+ const telemetry = (0, dashboard_telemetry_exports.useTelemetryApi)();
1642
+ const dashboardApi = (0, dashboard_context_exports.useDashboardApi)();
1643
+ const handleZoom = (0, react_exports.useCallback)((level) => {
1644
+ if (level) {
1645
+ setCurrentScale(Math.round(level * 100));
1646
+ }
1647
+ }, []);
1648
+ const emitTelemetry = (0, react_exports.useMemo)(
1649
+ () => (0, lodash_exports.debounce)(telemetry.emit.bind(telemetry), 500),
1650
+ [telemetry]
1651
+ );
1652
+ (0, react_exports.useEffect)(() => {
1653
+ emitTelemetry({
1654
+ pageAction: "dashboard.zoom",
1655
+ source: "toolbar",
1656
+ event: "dashboard.zoom_level_change",
1657
+ metadata: {
1658
+ scale: currentScale,
1659
+ scaleType,
1660
+ mode
1661
+ }
1662
+ });
1663
+ }, [currentScale, scaleType, emitTelemetry, mode]);
1664
+ const activeTabId = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectActiveTab);
1665
+ (0, react_exports.useEffect)(() => {
1666
+ var _a;
1667
+ const subscription = (_a = dashboardApi == null ? void 0 : dashboardApi.getZoomLevel()) == null ? void 0 : _a.subscribe({ next: handleZoom });
1668
+ return () => {
1669
+ subscription == null ? void 0 : subscription.unsubscribe();
1670
+ };
1671
+ }, [dashboardApi, activeTabId, handleZoom]);
1672
+ const separator = (0, react_exports.useMemo)(
1673
+ () => showSeparator ? /* @__PURE__ */ react_default.createElement(ItemSeparator_default, { key: "item-separator" }) : null,
1674
+ [showSeparator]
1675
+ );
1676
+ const handleScaleChange = (0, react_exports.useCallback)(
1677
+ (scale) => () => {
1678
+ setCurrentScale(scale);
1679
+ setScaleType(null);
1680
+ dashboardApi == null ? void 0 : dashboardApi.setScale({ scale: scale / 100 });
1681
+ },
1682
+ [dashboardApi]
1683
+ );
1684
+ return /* @__PURE__ */ react_default.createElement(Container, null, /* @__PURE__ */ react_default.createElement(
1685
+ StyledTooltip,
1686
+ {
1687
+ contentRelationship: "label",
1688
+ content: (0, i18n_exports._)("Zoom level")
1689
+ },
1690
+ /* @__PURE__ */ react_default.createElement(
1691
+ ZoomNumber,
1692
+ {
1693
+ currentScale,
1694
+ onScaleChange: handleScaleChange
1695
+ }
1696
+ ),
1697
+ /* @__PURE__ */ react_default.createElement(
1698
+ ZoomMenu,
1699
+ {
1700
+ dashboardApi,
1701
+ appearance,
1702
+ currentScale,
1703
+ setCurrentScale,
1704
+ scaleType,
1705
+ setScaleType
1706
+ }
1707
+ )
1708
+ ), separator);
1709
+ };
1710
+
1711
+ // src/groups/ControlGroup.tsx
1712
+ var ControlGroup = (props) => /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), /* @__PURE__ */ react_default.createElement(Fullscreen_default, null));
1713
+ var ControlGroup_default = ControlGroup;
1714
+
1715
+ // src/groups/EditingGroup.tsx
1716
+ var EditingGroup = (props) => {
1717
+ const { enableModeSwitch = true, borders = true, layoutType } = props;
1718
+ const { spacingSmall } = (0, themes_exports.useSplunkTheme)();
1719
+ const modeSwitch = (0, react_exports.useMemo)(() => {
1720
+ if (!enableModeSwitch) {
1721
+ return null;
1722
+ }
1723
+ return /* @__PURE__ */ react_default.createElement(ModeSwitch_default, null);
1724
+ }, [enableModeSwitch]);
1725
+ const zoomControl = (0, react_exports.useMemo)(() => {
1726
+ return layoutType === "absolute" ? [/* @__PURE__ */ react_default.createElement(Zoom, { key: "zoom", showSeparator: borders })] : null;
1727
+ }, [layoutType, borders]);
1728
+ return /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadProps(__spreadValues({}, props), { borders: false, gap: spacingSmall }), /* @__PURE__ */ react_default.createElement(GridLineSwitch_default, { showSeparator: enableModeSwitch && borders }), zoomControl, modeSwitch);
1729
+ };
1730
+ var EditingGroup_default = EditingGroup;
1731
+
1732
+ // src/groups/EditorGroup.tsx
1733
+ var EditorGroup = (props) => {
1734
+ var _a;
1735
+ return /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({ borders: false }, props), /* @__PURE__ */ react_default.createElement(Source_default, { onClick: (_a = props.sourceButtonOnClick) != null ? _a : dashboard_utils_exports.noop }));
1736
+ };
1737
+ var EditorGroup_default = EditorGroup;
1738
+
1739
+ // src/groups/EditorsControlGroup.tsx
1740
+ var EditorsControlGroup = (props) => {
1741
+ var _a;
1742
+ return /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({ borders: false }, props), /* @__PURE__ */ react_default.createElement(Config_default, null), /* @__PURE__ */ react_default.createElement(Data_default, null), /* @__PURE__ */ react_default.createElement(Source_default, { onClick: (_a = props.sourceButtonOnClick) != null ? _a : dashboard_utils_exports.noop }));
1743
+ };
1744
+ var EditorsControlGroup_default = EditorsControlGroup;
1745
+
1746
+ // src/groups/HistoryGroup.tsx
1747
+ var HistoryGroup = (props) => /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), /* @__PURE__ */ react_default.createElement(Undo_default, null), /* @__PURE__ */ react_default.createElement(Redo_default, null));
1748
+ var HistoryGroup_default = HistoryGroup;
1749
+
1750
+ // src/groups/SidebarControlGroup.tsx
1751
+ var SidebarControlGroup = (props) => /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), /* @__PURE__ */ react_default.createElement(Config_default, null), /* @__PURE__ */ react_default.createElement(Data_default, null));
1752
+ var SidebarControlGroup_default = SidebarControlGroup;
1753
+
1754
+ // src/groups/VisualizationGroup.tsx
1755
+ var VisualizationGroup = (props) => {
1756
+ const buttons = (0, react_exports.useMemo)(() => {
1757
+ if (props.layoutType === "grid") {
1758
+ return [
1759
+ /* @__PURE__ */ react_default.createElement(Charts_default, { key: "charts" }),
1760
+ /* @__PURE__ */ react_default.createElement(Inputs_default, { key: "inputs" }),
1761
+ /* @__PURE__ */ react_default.createElement(EmptyVisualization_default, { key: "empty-viz" }),
1762
+ /* @__PURE__ */ react_default.createElement(Image_default, { key: "images" }),
1763
+ /* @__PURE__ */ react_default.createElement(Markdown_default2, { key: "markdown" })
1764
+ ];
1765
+ }
1766
+ return [
1767
+ /* @__PURE__ */ react_default.createElement(Charts_default, { key: "charts" }),
1768
+ /* @__PURE__ */ react_default.createElement(Inputs_default, { key: "inputs" }),
1769
+ /* @__PURE__ */ react_default.createElement(IconGallery_default, { key: "icon-gallery" }),
1770
+ /* @__PURE__ */ react_default.createElement(Shapes_default, { key: "shapes" }),
1771
+ /* @__PURE__ */ react_default.createElement(Image_default, { key: "images" }),
1772
+ /* @__PURE__ */ react_default.createElement(Markdown_default2, { key: "markdown" })
1773
+ ];
1774
+ }, [props.layoutType]);
1775
+ return /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), buttons);
1776
+ };
1777
+ var VisualizationGroup_default = VisualizationGroup;
1778
+ //# sourceMappingURL=index.js.map