@splunk/dashboard-toolbar 29.3.4 → 29.4.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 (249) hide show
  1. package/.storybook/index.ts +2 -0
  2. package/.storybook/withDashboardApiContext.tsx +18 -0
  3. package/.storybook/withDashboardContext.tsx +34 -0
  4. package/CollapsibleToolbar.js +22 -6
  5. package/CollapsibleToolbar.js.map +2 -2
  6. package/IconButton.js +1 -1
  7. package/IconButton.js.map +2 -2
  8. package/Item.js +1 -1
  9. package/Item.js.map +2 -2
  10. package/ItemGroup.js +1 -1
  11. package/ItemGroup.js.map +2 -2
  12. package/PopoverItemButton.js +1 -1
  13. package/PopoverItemButton.js.map +2 -2
  14. package/Toolbar.js +1 -1
  15. package/Toolbar.js.map +2 -2
  16. package/buttons/Charts.js +1 -1
  17. package/buttons/Charts.js.map +2 -2
  18. package/buttons/Config.js +1 -1
  19. package/buttons/Config.js.map +2 -2
  20. package/buttons/ContentExport.js +1 -1
  21. package/buttons/ContentExport.js.map +2 -2
  22. package/buttons/Data.js +1 -1
  23. package/buttons/Data.js.map +2 -2
  24. package/buttons/EmptyVisualization.js +1 -1
  25. package/buttons/EmptyVisualization.js.map +2 -2
  26. package/buttons/ExportDashboardButton.js +22 -9
  27. package/buttons/ExportDashboardButton.js.map +4 -4
  28. package/buttons/Fullscreen.js +43 -4
  29. package/buttons/Fullscreen.js.map +3 -3
  30. package/buttons/GridLineSwitch.js +1 -1
  31. package/buttons/GridLineSwitch.js.map +2 -2
  32. package/buttons/HelpButton.js +2 -2
  33. package/buttons/HelpButton.js.map +2 -2
  34. package/buttons/IconGallery.js +1 -1
  35. package/buttons/IconGallery.js.map +2 -2
  36. package/buttons/Image.js +1 -1
  37. package/buttons/Image.js.map +2 -2
  38. package/buttons/ImageGallery.js +1 -1
  39. package/buttons/ImageGallery.js.map +2 -2
  40. package/buttons/Inputs.js +1 -1
  41. package/buttons/Inputs.js.map +2 -2
  42. package/buttons/Markdown.js +1 -1
  43. package/buttons/Markdown.js.map +2 -2
  44. package/buttons/ModeSwitch.js +1 -1
  45. package/buttons/ModeSwitch.js.map +2 -2
  46. package/buttons/Redo.js +1 -1
  47. package/buttons/Redo.js.map +2 -2
  48. package/buttons/Shapes.js +1 -1
  49. package/buttons/Shapes.js.map +2 -2
  50. package/buttons/Source.js +1 -1
  51. package/buttons/Source.js.map +2 -2
  52. package/buttons/Undo.js +1 -1
  53. package/buttons/Undo.js.map +2 -2
  54. package/buttons/index.js +74 -11
  55. package/buttons/index.js.map +3 -3
  56. package/groups/ActionsGroup.js.map +2 -2
  57. package/groups/ControlGroup.js +52 -4
  58. package/groups/ControlGroup.js.map +3 -3
  59. package/groups/EditingGroup.js +12 -2
  60. package/groups/EditingGroup.js.map +3 -3
  61. package/groups/EditorGroup.js +10 -1
  62. package/groups/EditorGroup.js.map +3 -3
  63. package/groups/EditorsControlGroup.js +10 -1
  64. package/groups/EditorsControlGroup.js.map +3 -3
  65. package/groups/HistoryGroup.js +10 -1
  66. package/groups/HistoryGroup.js.map +3 -3
  67. package/groups/SidebarControlGroup.js +10 -1
  68. package/groups/SidebarControlGroup.js.map +3 -3
  69. package/groups/VisualizationGroup.js +10 -1
  70. package/groups/VisualizationGroup.js.map +3 -3
  71. package/groups/index.js +34 -5
  72. package/groups/index.js.map +3 -3
  73. package/index.js +95 -16
  74. package/index.js.map +3 -3
  75. package/module/CollapsibleToolbar.js +10 -10
  76. package/module/IconButton.js +5 -5
  77. package/module/Item.js +2 -2
  78. package/module/ItemGroup.js +6 -6
  79. package/module/PopoverItemButton.js +3 -3
  80. package/module/Toolbar.js +5 -5
  81. package/module/buttons/Charts.js +14 -14
  82. package/module/buttons/Config.js +8 -8
  83. package/module/buttons/ContentExport.js +8 -8
  84. package/module/buttons/Data.js +9 -9
  85. package/module/buttons/EmptyVisualization.js +8 -8
  86. package/module/buttons/ExportDashboardButton.js +7 -6
  87. package/module/buttons/Fullscreen.js +8 -8
  88. package/module/buttons/GridLineSwitch.js +7 -7
  89. package/module/buttons/HelpButton.js +10 -10
  90. package/module/buttons/IconGallery.js +10 -10
  91. package/module/buttons/Image.js +8 -8
  92. package/module/buttons/ImageGallery.js +11 -11
  93. package/module/buttons/Inputs.js +10 -10
  94. package/module/buttons/Markdown.js +7 -7
  95. package/module/buttons/ModeSwitch.js +8 -8
  96. package/module/buttons/Redo.js +7 -7
  97. package/module/buttons/Shapes.js +12 -12
  98. package/module/buttons/Source.js +8 -8
  99. package/module/buttons/Undo.js +7 -7
  100. package/module/buttons/index.js +39 -39
  101. package/module/chunks/{chunk-ODHRJQTV.js → chunk-2MOF5ZP7.js} +15 -7
  102. package/module/chunks/chunk-2MOF5ZP7.js.map +7 -0
  103. package/module/chunks/{chunk-VCWH2JHM.js → chunk-4SWPK2TU.js} +2 -2
  104. package/module/chunks/chunk-4SWPK2TU.js.map +7 -0
  105. package/module/chunks/{chunk-ZSBWP6MR.js → chunk-53UCFOI6.js} +13 -13
  106. package/module/chunks/chunk-53UCFOI6.js.map +7 -0
  107. package/module/chunks/{chunk-K4QITIOD.js → chunk-5DYPICGQ.js} +5 -5
  108. package/module/chunks/chunk-5DYPICGQ.js.map +7 -0
  109. package/module/chunks/{chunk-RQY6BB7F.js → chunk-6NLVLUCU.js} +1 -1
  110. package/module/chunks/chunk-6NLVLUCU.js.map +7 -0
  111. package/module/chunks/{chunk-QSKQE2FQ.js → chunk-AYEBOQ6B.js} +61 -21
  112. package/module/chunks/chunk-AYEBOQ6B.js.map +7 -0
  113. package/module/chunks/{chunk-XIZP3DYZ.js → chunk-C3GFY32L.js} +2 -2
  114. package/module/chunks/{chunk-JOFJS4UX.js → chunk-C7TXRFKI.js} +8 -8
  115. package/module/chunks/chunk-C7TXRFKI.js.map +7 -0
  116. package/module/chunks/{chunk-5FZAZ2XU.js → chunk-CMTNN2GG.js} +5 -5
  117. package/module/chunks/{chunk-3MBRWVZS.js → chunk-DQPRUHAE.js} +9 -9
  118. package/module/chunks/chunk-DQPRUHAE.js.map +7 -0
  119. package/module/chunks/{chunk-FREEN2T3.js → chunk-EZJSIK72.js} +3 -3
  120. package/module/chunks/{chunk-C3NA7YCT.js → chunk-EZS4433X.js} +5 -5
  121. package/module/chunks/{chunk-PVT2JFAW.js → chunk-F3BPX66Z.js} +4 -4
  122. package/module/chunks/{chunk-4NRVBOUP.js → chunk-GD75KGSO.js} +5 -5
  123. package/module/chunks/{chunk-GFSNM45K.js → chunk-GMMN7SOC.js} +1 -1
  124. package/module/chunks/chunk-GMMN7SOC.js.map +7 -0
  125. package/module/chunks/{chunk-MWYPBMHI.js → chunk-GPLJNXKE.js} +10 -10
  126. package/module/chunks/chunk-GPLJNXKE.js.map +7 -0
  127. package/module/chunks/{chunk-KUPEYUWA.js → chunk-I6AJG47U.js} +1 -1
  128. package/module/chunks/chunk-I6AJG47U.js.map +7 -0
  129. package/module/chunks/{chunk-OSX3RDKV.js → chunk-IHFVJPGQ.js} +1 -1
  130. package/module/chunks/chunk-IHFVJPGQ.js.map +7 -0
  131. package/module/chunks/{chunk-MTPPRK4H.js → chunk-IWFH2PBS.js} +10 -10
  132. package/module/chunks/{chunk-56627Y63.js → chunk-J7M7QRC7.js} +9 -9
  133. package/module/chunks/chunk-J7M7QRC7.js.map +7 -0
  134. package/module/chunks/{chunk-GAXH7J77.js → chunk-JIIPUMEA.js} +1 -1
  135. package/module/chunks/chunk-JIIPUMEA.js.map +7 -0
  136. package/module/chunks/{chunk-6SUOFSGJ.js → chunk-JW4TMLMZ.js} +5 -5
  137. package/module/chunks/{chunk-VE4HUG27.js → chunk-KGSEQL62.js} +1 -1
  138. package/module/chunks/chunk-KGSEQL62.js.map +7 -0
  139. package/module/chunks/{chunk-WADWICSE.js → chunk-LEEGJTZT.js} +5 -5
  140. package/module/chunks/{chunk-X4VCE6GS.js → chunk-MUXHFVOC.js} +7 -7
  141. package/module/chunks/chunk-MUXHFVOC.js.map +7 -0
  142. package/module/chunks/{chunk-Q67T3UVN.js → chunk-NGEW5KQQ.js} +28 -8
  143. package/module/chunks/chunk-NGEW5KQQ.js.map +7 -0
  144. package/module/chunks/{chunk-ACSHFRXI.js → chunk-NNGZB36V.js} +4 -4
  145. package/module/chunks/{chunk-NKC5QFQ5.js.map → chunk-NNGZB36V.js.map} +3 -3
  146. package/module/chunks/{chunk-BSXRAEA2.js → chunk-NSCDFVBR.js} +6 -6
  147. package/module/chunks/chunk-NSCDFVBR.js.map +7 -0
  148. package/module/chunks/{chunk-6MLJBCIJ.js → chunk-NTQBWCZU.js} +7 -7
  149. package/module/chunks/{chunk-47MSCQAS.js → chunk-OC4QIR2D.js} +5 -5
  150. package/module/chunks/chunk-OC4QIR2D.js.map +7 -0
  151. package/module/chunks/{chunk-NKC5QFQ5.js → chunk-PFHSMP6M.js} +4 -4
  152. package/module/chunks/chunk-PFHSMP6M.js.map +7 -0
  153. package/module/chunks/{chunk-L3N7HHJU.js → chunk-QEDHGXUU.js} +7 -7
  154. package/module/chunks/{chunk-5D7CUYUH.js → chunk-RFWUOGJ3.js} +1 -1
  155. package/module/chunks/chunk-RFWUOGJ3.js.map +7 -0
  156. package/module/chunks/{chunk-JGTSF7O4.js → chunk-RJ5FWZWY.js} +5 -5
  157. package/module/chunks/{chunk-2KBENXG3.js → chunk-RKJ7RKNK.js} +1 -1
  158. package/module/chunks/chunk-RKJ7RKNK.js.map +7 -0
  159. package/module/chunks/{chunk-MFIWFQAS.js → chunk-RP26L2VP.js} +6 -6
  160. package/module/chunks/{chunk-IIPBKMJD.js → chunk-RPNGCVZL.js} +1 -1
  161. package/module/chunks/chunk-RPNGCVZL.js.map +7 -0
  162. package/module/chunks/{chunk-4Y6PRJOC.js → chunk-S6LWLEQ4.js} +4 -4
  163. package/module/chunks/chunk-S6LWLEQ4.js.map +7 -0
  164. package/module/chunks/{chunk-D27CPPHI.js → chunk-SFYQQARV.js} +3 -3
  165. package/module/chunks/{chunk-YMZGQ7CB.js → chunk-UCI2OCYF.js} +5 -5
  166. package/module/chunks/chunk-UCI2OCYF.js.map +7 -0
  167. package/module/chunks/{chunk-PMZ2AWNS.js → chunk-UDFZF6TG.js} +8 -8
  168. package/module/chunks/{chunk-O74T4JNL.js → chunk-V3YGNO27.js} +2 -2
  169. package/module/chunks/chunk-V3YGNO27.js.map +7 -0
  170. package/module/chunks/{chunk-HOKI2CUB.js → chunk-VITMNUKV.js} +1 -1
  171. package/module/chunks/chunk-VITMNUKV.js.map +7 -0
  172. package/module/chunks/{chunk-UOT4CE2C.js → chunk-VSD7VGBN.js} +6 -6
  173. package/module/chunks/{chunk-RIR6YMJC.js → chunk-WLLGLYOO.js} +30 -14
  174. package/module/chunks/chunk-WLLGLYOO.js.map +7 -0
  175. package/module/chunks/{chunk-MRXRYL4Y.js → chunk-WSTQTULM.js} +3 -3
  176. package/module/chunks/{chunk-IITJ2NKO.js → chunk-XIT2UXG2.js} +5 -5
  177. package/module/chunks/chunk-XIT2UXG2.js.map +7 -0
  178. package/module/chunks/{chunk-2QBSLWJJ.js → chunk-XWRMHLAP.js} +1 -1
  179. package/module/chunks/chunk-XWRMHLAP.js.map +7 -0
  180. package/module/chunks/{chunk-LGNNSZ2O.js → chunk-YDVHOHRE.js} +10 -10
  181. package/module/chunks/{chunk-RZJ2PCV4.js → chunk-ZV4AQ5DL.js} +1 -1
  182. package/module/chunks/chunk-ZV4AQ5DL.js.map +7 -0
  183. package/module/groups/ActionsGroup.js +6 -6
  184. package/module/groups/ControlGroup.js +41 -41
  185. package/module/groups/EditingGroup.js +41 -41
  186. package/module/groups/EditorGroup.js +41 -41
  187. package/module/groups/EditorsControlGroup.js +41 -41
  188. package/module/groups/HistoryGroup.js +41 -41
  189. package/module/groups/SidebarControlGroup.js +41 -41
  190. package/module/groups/VisualizationGroup.js +41 -41
  191. package/module/groups/index.js +48 -48
  192. package/module/index.js +50 -50
  193. package/package.json +29 -29
  194. package/types/CollapsibleToolbar.d.ts.map +1 -1
  195. package/types/buttons/Display/Display.d.ts.map +1 -1
  196. package/types/buttons/ExportDashboardButton.d.ts.map +1 -1
  197. package/types/buttons/Fullscreen.d.ts.map +1 -1
  198. package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -1
  199. package/types/hooks/useToolbarButtonClick.d.ts +2 -0
  200. package/types/hooks/useToolbarButtonClick.d.ts.map +1 -0
  201. package/module/chunks/chunk-2KBENXG3.js.map +0 -7
  202. package/module/chunks/chunk-2QBSLWJJ.js.map +0 -7
  203. package/module/chunks/chunk-3MBRWVZS.js.map +0 -7
  204. package/module/chunks/chunk-47MSCQAS.js.map +0 -7
  205. package/module/chunks/chunk-4Y6PRJOC.js.map +0 -7
  206. package/module/chunks/chunk-56627Y63.js.map +0 -7
  207. package/module/chunks/chunk-5D7CUYUH.js.map +0 -7
  208. package/module/chunks/chunk-ACSHFRXI.js.map +0 -7
  209. package/module/chunks/chunk-BSXRAEA2.js.map +0 -7
  210. package/module/chunks/chunk-GAXH7J77.js.map +0 -7
  211. package/module/chunks/chunk-GFSNM45K.js.map +0 -7
  212. package/module/chunks/chunk-HOKI2CUB.js.map +0 -7
  213. package/module/chunks/chunk-IIPBKMJD.js.map +0 -7
  214. package/module/chunks/chunk-IITJ2NKO.js.map +0 -7
  215. package/module/chunks/chunk-JOFJS4UX.js.map +0 -7
  216. package/module/chunks/chunk-K4QITIOD.js.map +0 -7
  217. package/module/chunks/chunk-KUPEYUWA.js.map +0 -7
  218. package/module/chunks/chunk-MWYPBMHI.js.map +0 -7
  219. package/module/chunks/chunk-O74T4JNL.js.map +0 -7
  220. package/module/chunks/chunk-ODHRJQTV.js.map +0 -7
  221. package/module/chunks/chunk-OSX3RDKV.js.map +0 -7
  222. package/module/chunks/chunk-Q67T3UVN.js.map +0 -7
  223. package/module/chunks/chunk-QSKQE2FQ.js.map +0 -7
  224. package/module/chunks/chunk-RIR6YMJC.js.map +0 -7
  225. package/module/chunks/chunk-RQY6BB7F.js.map +0 -7
  226. package/module/chunks/chunk-RZJ2PCV4.js.map +0 -7
  227. package/module/chunks/chunk-VCWH2JHM.js.map +0 -7
  228. package/module/chunks/chunk-VE4HUG27.js.map +0 -7
  229. package/module/chunks/chunk-X4VCE6GS.js.map +0 -7
  230. package/module/chunks/chunk-YMZGQ7CB.js.map +0 -7
  231. package/module/chunks/chunk-ZSBWP6MR.js.map +0 -7
  232. /package/module/chunks/{chunk-XIZP3DYZ.js.map → chunk-C3GFY32L.js.map} +0 -0
  233. /package/module/chunks/{chunk-5FZAZ2XU.js.map → chunk-CMTNN2GG.js.map} +0 -0
  234. /package/module/chunks/{chunk-FREEN2T3.js.map → chunk-EZJSIK72.js.map} +0 -0
  235. /package/module/chunks/{chunk-C3NA7YCT.js.map → chunk-EZS4433X.js.map} +0 -0
  236. /package/module/chunks/{chunk-PVT2JFAW.js.map → chunk-F3BPX66Z.js.map} +0 -0
  237. /package/module/chunks/{chunk-4NRVBOUP.js.map → chunk-GD75KGSO.js.map} +0 -0
  238. /package/module/chunks/{chunk-MTPPRK4H.js.map → chunk-IWFH2PBS.js.map} +0 -0
  239. /package/module/chunks/{chunk-6SUOFSGJ.js.map → chunk-JW4TMLMZ.js.map} +0 -0
  240. /package/module/chunks/{chunk-WADWICSE.js.map → chunk-LEEGJTZT.js.map} +0 -0
  241. /package/module/chunks/{chunk-6MLJBCIJ.js.map → chunk-NTQBWCZU.js.map} +0 -0
  242. /package/module/chunks/{chunk-L3N7HHJU.js.map → chunk-QEDHGXUU.js.map} +0 -0
  243. /package/module/chunks/{chunk-JGTSF7O4.js.map → chunk-RJ5FWZWY.js.map} +0 -0
  244. /package/module/chunks/{chunk-MFIWFQAS.js.map → chunk-RP26L2VP.js.map} +0 -0
  245. /package/module/chunks/{chunk-D27CPPHI.js.map → chunk-SFYQQARV.js.map} +0 -0
  246. /package/module/chunks/{chunk-PMZ2AWNS.js.map → chunk-UDFZF6TG.js.map} +0 -0
  247. /package/module/chunks/{chunk-UOT4CE2C.js.map → chunk-VSD7VGBN.js.map} +0 -0
  248. /package/module/chunks/{chunk-MRXRYL4Y.js.map → chunk-WSTQTULM.js.map} +0 -0
  249. /package/module/chunks/{chunk-LGNNSZ2O.js.map → chunk-YDVHOHRE.js.map} +0 -0
@@ -3,24 +3,24 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  ItemSeparator_default
6
- } from "./chunk-MRXRYL4Y.js";
6
+ } from "./chunk-WSTQTULM.js";
7
7
  import {
8
8
  i18n_exports
9
- } from "./chunk-GAXH7J77.js";
9
+ } from "./chunk-JIIPUMEA.js";
10
10
  import {
11
11
  dashboard_state_exports
12
- } from "./chunk-RZJ2PCV4.js";
12
+ } from "./chunk-ZV4AQ5DL.js";
13
13
  import {
14
14
  themes_exports
15
- } from "./chunk-IIPBKMJD.js";
15
+ } from "./chunk-RPNGCVZL.js";
16
16
  import {
17
17
  react_default,
18
18
  react_exports
19
- } from "./chunk-2QBSLWJJ.js";
19
+ } from "./chunk-XWRMHLAP.js";
20
20
  import {
21
21
  styled_components_default,
22
22
  styled_components_exports
23
- } from "./chunk-O74T4JNL.js";
23
+ } from "./chunk-V3YGNO27.js";
24
24
  import {
25
25
  __export,
26
26
  __reExport
@@ -80,4 +80,4 @@ var GridLineSwitch_default = GridLineSwitch;
80
80
  export {
81
81
  GridLineSwitch_default
82
82
  };
83
- //# sourceMappingURL=chunk-X4VCE6GS.js.map
83
+ //# sourceMappingURL=chunk-MUXHFVOC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-ui/Switch", "../../src/buttons/GridLineSwitch.tsx"],
4
+ "sourcesContent": ["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"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,6BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;;;ACUrE,IAAM,kBAAkB,0BAAO;AAAA;AAAA;AAAA;AAAA,WAIpB,yBAAU,YAAY;AAAA;AAOjC,IAAM,iBAAiB,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAA2B;AA5B3B;AA6BI,QAAM,YAAW,8CAAY,iDAAyB,MAArC,YAA0C;AAE3D,QAAM,kBAAc,2BAAY,MAAM;AAClC,iDAAc,gBAAgB,CAAC;AAAA,EACnC,GAAG,CAAC,cAAc,QAAQ,CAAC;AAE3B,QAAM,gBAAY;AAAA,IACd,MAAO,gBAAgB,4CAAC,yBAAc,KAAI,kBAAiB,IAAK;AAAA,IAChE,CAAC,aAAa;AAAA,EAClB;AAEA,MAAI,CAAC,gBAAgB,SAAS,UAAU,eAAe,QAAQ;AAC3D,WAAO;AAAA,EACX;AAEA,SACI,4CAAC,mBAAgB,KAAI,sBACjB;AAAA,IAAC;AAAA;AAAA,MACG,SAAS;AAAA,MACT,UAAU;AAAA,MACV,mBAAe,gBAAE,qBAAqB;AAAA,MACtC,qBAAiB,gBAAE,yBAAyB;AAAA,MAC5C,YAAW;AAAA,MACX,aAAU;AAAA,MACV,kBAAc;AAAA;AAAA,QAEb,gBAAE,WAAW;AAAA,EAClB,GACC,SACL;AAER;AAEA,IAAO,yBAAQ;",
6
+ "names": []
7
+ }
@@ -3,19 +3,20 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  i18n_exports
6
- } from "./chunk-GAXH7J77.js";
6
+ } from "./chunk-JIIPUMEA.js";
7
7
  import {
8
8
  IconButton_default,
9
9
  prepareIcon
10
- } from "./chunk-47MSCQAS.js";
10
+ } from "./chunk-OC4QIR2D.js";
11
11
  import {
12
12
  dashboard_state_exports
13
- } from "./chunk-RZJ2PCV4.js";
13
+ } from "./chunk-ZV4AQ5DL.js";
14
14
  import {
15
15
  react_default,
16
16
  react_exports
17
- } from "./chunk-2QBSLWJJ.js";
17
+ } from "./chunk-XWRMHLAP.js";
18
18
  import {
19
+ __async,
19
20
  __export,
20
21
  __reExport
21
22
  } from "./chunk-VQIRZ53C.js";
@@ -30,6 +31,24 @@ import * as defaultImport from "@splunk/react-icons/ChevronsOut";
30
31
  import * as ChevronsOut_star from "@splunk/react-icons/ChevronsOut";
31
32
  var ChevronsOut_default = "default" in defaultImport ? defaultImport.default : defaultImport;
32
33
 
34
+ // src/hooks/useToolbarButtonClick.ts
35
+ var useToolbarButtonClick = (event, onClick) => {
36
+ const dispatch = (0, dashboard_state_exports.useDispatch)();
37
+ return (0, react_exports.useCallback)(
38
+ (...args) => {
39
+ if (dispatch && event) {
40
+ dispatch(
41
+ (0, dashboard_state_exports.toolbarButtonClicked)({
42
+ event
43
+ })
44
+ );
45
+ }
46
+ onClick == null ? void 0 : onClick(...args);
47
+ },
48
+ [dispatch, event, onClick]
49
+ );
50
+ };
51
+
33
52
  // src/buttons/Fullscreen.tsx
34
53
  var icon = prepareIcon({
35
54
  Icon: ChevronsOut_default,
@@ -37,9 +56,10 @@ var icon = prepareIcon({
37
56
  });
38
57
  var FullScreen = ({ dashboardApi }) => {
39
58
  const isFullscreen = !!(0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectFullscreenElement);
40
- const handleClick = (0, react_exports.useCallback)(() => {
41
- dashboardApi == null ? void 0 : dashboardApi.enterFullscreen();
42
- }, [dashboardApi]);
59
+ const enterFullscreen = (0, react_exports.useCallback)(() => __async(null, null, function* () {
60
+ yield dashboardApi == null ? void 0 : dashboardApi.enterFullscreen();
61
+ }), [dashboardApi]);
62
+ const handleClick = useToolbarButtonClick("fullscreen", enterFullscreen);
43
63
  return /* @__PURE__ */ react_default.createElement(
44
64
  IconButton_default,
45
65
  {
@@ -55,4 +75,4 @@ var Fullscreen_default = FullScreen;
55
75
  export {
56
76
  Fullscreen_default
57
77
  };
58
- //# sourceMappingURL=chunk-Q67T3UVN.js.map
78
+ //# sourceMappingURL=chunk-NGEW5KQQ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/ChevronsOut", "../../src/hooks/useToolbarButtonClick.ts", "../../src/buttons/Fullscreen.tsx"],
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/react-icons/ChevronsOut\";\nexport * from \"@splunk/react-icons/ChevronsOut\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { useCallback } from 'react';\nimport { useDispatch, toolbarButtonClicked } from '@splunk/dashboard-state';\n\nexport const useToolbarButtonClick = <T extends unknown[]>(\n event?: string,\n onClick?: (...args: T) => void\n) => {\n const dispatch = useDispatch();\n\n return useCallback(\n (...args: T) => {\n if (dispatch && event) {\n dispatch(\n toolbarButtonClicked({\n event,\n })\n );\n }\n onClick?.(...args);\n },\n [dispatch, event, onClick]\n );\n};\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 screenReaderContent: _('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 />\n );\n};\n\nexport default FullScreen;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,kCAAc;AACd,IAAO,sBAAS,aAAa,gBAA8B,wBAAU;;;ACC9D,IAAM,wBAAwB,CACjC,OACA,YACC;AACD,QAAM,eAAW,qCAAY;AAE7B,aAAO;AAAA,IACH,IAAI,SAAY;AACZ,UAAI,YAAY,OAAO;AACnB;AAAA,cACI,8CAAqB;AAAA,YACjB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AACA,yCAAU,GAAG;AAAA,IACjB;AAAA,IACA,CAAC,UAAU,OAAO,OAAO;AAAA,EAC7B;AACJ;;;ACZA,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,YAAY;AACvC,CAAC;AAKD,IAAM,aAAa,CAAC,EAAE,aAAa,MAA0B;AACzD,QAAM,eAAe,CAAC,KAAC,qCAAY,+CAAuB;AAE1D,QAAM,sBAAkB,2BAAY,MAAY;AAC5C,UAAM,6CAAc;AAAA,EACxB,IAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,cAAc,sBAAsB,cAAc,eAAe;AAEvE,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,qBAAQ;",
6
+ "names": []
7
+ }
@@ -3,15 +3,15 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  i18n_exports
6
- } from "./chunk-GAXH7J77.js";
6
+ } from "./chunk-JIIPUMEA.js";
7
7
  import {
8
8
  IconButton_default,
9
9
  prepareIcon
10
- } from "./chunk-47MSCQAS.js";
10
+ } from "./chunk-OC4QIR2D.js";
11
11
  import {
12
12
  react_default,
13
13
  react_exports
14
- } from "./chunk-2QBSLWJJ.js";
14
+ } from "./chunk-XWRMHLAP.js";
15
15
  import {
16
16
  __export,
17
17
  __reExport
@@ -74,4 +74,4 @@ var Redo_default = Redo;
74
74
  export {
75
75
  Redo_default
76
76
  };
77
- //# sourceMappingURL=chunk-ACSHFRXI.js.map
77
+ //# sourceMappingURL=chunk-NNGZB36V.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["esm-externals:@splunk/react-icons/ArrowBowLeft", "../../src/buttons/Undo.tsx"],
4
- "sourcesContent": ["\nimport * 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 screenReaderContent: _('Undo'),\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 />\n );\n};\n\nexport default Undo;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAEA;AADA,YAAY,mBAAmB;AAC/B,mCAAc;AACd,IAAO,uBAAS,aAAa,gBAA8B,wBAAU;;;ACGrE,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,MAAM;AACjC,CAAC;AAED,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AAGnD,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC1B,MAAG;AAfX;AAec,gEAAc,cAAd,YAA2B;AAAA;AAAA,EACrC;AAEA,QAAM,yBAAqB,2BAAY,MAAM;AAlBjD;AAmBQ,gBAAW,kDAAc,cAAd,YAA2B,KAAK;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,+BAAU,MAAM;AACZ,QAAI,EAAC,6CAAc,iBAAgB;AAC/B,aAAO,MAAM;AAAA,IACjB;AAEA,WAAO,aAAa,eAAe,UAAU;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,kBAAc,2BAAY,MAAM;AAClC,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,iBAAa,KAAK,EAAE,QAAQ,UAAU,CAAC;AAAA,EAC3C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,eAAQ;",
3
+ "sources": ["esm-externals:@splunk/react-icons/ArrowBowRight", "../../src/buttons/Redo.tsx"],
4
+ "sourcesContent": ["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 screenReaderContent: _('Redo'),\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 />\n );\n};\n\nexport default Redo;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,oCAAc;AACd,IAAO,wBAAS,aAAa,gBAA8B,wBAAU;;;ACIrE,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,MAAM;AACjC,CAAC;AAED,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AAGnD,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC1B,MAAG;AAfX;AAec,gEAAc,cAAd,YAA2B;AAAA;AAAA,EACrC;AAEA,QAAM,yBAAqB,2BAAY,MAAM;AAlBjD;AAmBQ,gBAAW,kDAAc,cAAd,YAA2B,KAAK;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,+BAAU,MAAM;AACZ,QAAI,EAAC,6CAAc,iBAAgB;AAC/B,aAAO,MAAM;AAAA,IACjB;AAEA,WAAO,aAAa,eAAe,UAAU;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,kBAAc,2BAAY,MAAM;AAClC,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,iBAAa,KAAK,EAAE,QAAQ,UAAU,CAAC;AAAA,EAC3C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,eAAQ;",
6
6
  "names": []
7
7
  }
@@ -3,21 +3,21 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  dashboard_context_exports
6
- } from "./chunk-HOKI2CUB.js";
6
+ } from "./chunk-VITMNUKV.js";
7
7
  import {
8
8
  i18n_exports
9
- } from "./chunk-GAXH7J77.js";
9
+ } from "./chunk-JIIPUMEA.js";
10
10
  import {
11
11
  IconButton_default,
12
12
  prepareIcon
13
- } from "./chunk-47MSCQAS.js";
13
+ } from "./chunk-OC4QIR2D.js";
14
14
  import {
15
15
  dashboard_state_exports
16
- } from "./chunk-RZJ2PCV4.js";
16
+ } from "./chunk-ZV4AQ5DL.js";
17
17
  import {
18
18
  react_default,
19
19
  react_exports
20
- } from "./chunk-2QBSLWJJ.js";
20
+ } from "./chunk-XWRMHLAP.js";
21
21
  import {
22
22
  __export,
23
23
  __reExport
@@ -71,4 +71,4 @@ var Data_default = Data;
71
71
  export {
72
72
  Data_default
73
73
  };
74
- //# sourceMappingURL=chunk-BSXRAEA2.js.map
74
+ //# sourceMappingURL=chunk-NSCDFVBR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/CylinderMulti", "../../src/buttons/Data.tsx"],
4
+ "sourcesContent": ["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 screenReaderContent: _('Data source overview'),\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 />\n );\n};\n\nexport default Data;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,oCAAc;AACd,IAAO,wBAAS,aAAa,gBAA8B,wBAAU;;;ACSrE,IAAM,gBAAgB,YAAY;AAAA,EAC9B,MAAM;AAAA,EACN,yBAAqB,gBAAE,sBAAsB;AACjD,CAAC;AAKD,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AACnD,QAAM,oBAAgB,yCAAc,cAAc;AAElD,QAAM,kBAAc,2BAAY,MAAM;AAClC,UAAM,UAAS,6CAAc,sBAAqB;AAClD,QAAI,QAAQ;AACR,mBAAa,WAAW;AAAA,IAC5B,OAAO;AACH,yCAAM,MAAM;AAER,qDAAc,oBAAoB,CAAC;AAEnC,qDAAc,UAAU;AAAA,UACpB,aAAa;AAAA,UACb,YAAY;AAAA,YACR,aAAa;AAAA,UACjB;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM;AAAA;AAAA,EACV;AAER;AAEA,IAAO,eAAQ;",
6
+ "names": []
7
+ }
@@ -3,24 +3,24 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  dashboard_context_exports
6
- } from "./chunk-HOKI2CUB.js";
6
+ } from "./chunk-VITMNUKV.js";
7
7
  import {
8
8
  i18n_exports
9
- } from "./chunk-GAXH7J77.js";
9
+ } from "./chunk-JIIPUMEA.js";
10
10
  import {
11
11
  Button_default,
12
12
  Button_exports
13
- } from "./chunk-5D7CUYUH.js";
13
+ } from "./chunk-RFWUOGJ3.js";
14
14
  import {
15
15
  Item_default
16
- } from "./chunk-XIZP3DYZ.js";
16
+ } from "./chunk-C3GFY32L.js";
17
17
  import {
18
18
  dashboard_state_exports
19
- } from "./chunk-RZJ2PCV4.js";
19
+ } from "./chunk-ZV4AQ5DL.js";
20
20
  import {
21
21
  react_default,
22
22
  react_exports
23
- } from "./chunk-2QBSLWJJ.js";
23
+ } from "./chunk-XWRMHLAP.js";
24
24
 
25
25
  // src/buttons/ModeSwitch.tsx
26
26
  var ModeSwitch = () => {
@@ -49,4 +49,4 @@ var ModeSwitch_default = ModeSwitch;
49
49
  export {
50
50
  ModeSwitch_default
51
51
  };
52
- //# sourceMappingURL=chunk-6MLJBCIJ.js.map
52
+ //# sourceMappingURL=chunk-NTQBWCZU.js.map
@@ -4,18 +4,18 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  Button_default,
6
6
  Button_exports
7
- } from "./chunk-5D7CUYUH.js";
7
+ } from "./chunk-RFWUOGJ3.js";
8
8
  import {
9
9
  Item_default
10
- } from "./chunk-XIZP3DYZ.js";
10
+ } from "./chunk-C3GFY32L.js";
11
11
  import {
12
12
  react_default,
13
13
  react_exports
14
- } from "./chunk-2QBSLWJJ.js";
14
+ } from "./chunk-XWRMHLAP.js";
15
15
  import {
16
16
  styled_components_default,
17
17
  styled_components_exports
18
- } from "./chunk-O74T4JNL.js";
18
+ } from "./chunk-V3YGNO27.js";
19
19
  import {
20
20
  __export,
21
21
  __objRest,
@@ -102,4 +102,4 @@ export {
102
102
  prepareIcon,
103
103
  IconButton_default
104
104
  };
105
- //# sourceMappingURL=chunk-47MSCQAS.js.map
105
+ //# sourceMappingURL=chunk-OC4QIR2D.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "../../src/IconButton.tsx"],
4
+ "sourcesContent": ["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 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 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 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 testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\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 </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,gCAAc;AACd,IAAO,oBAAS,aAAa,gBAA8B,wBAAU;;;ACFrE;AAAA;AAAA;AAAA;AACA;AADA,YAAYA,oBAAmB;AAC/B,0CAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACOrE,IAAM,qBAAqB,0BAAO,iBAAY;AAAA;AAAA;AAIvC,IAAM,WAAW;AACjB,IAAM,eAAe;AAoBrB,IAAM,cAAc,CAAC,OAKJ;AALI,eACxB;AAAA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EArCb,IAkC4B,IAIrB,kBAJqB,IAIrB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,OAAO,SAAS,eAAe;AACrC,SACI,0EACI,4CAAC,uBAAK,OAAO,MAAM,QAAQ,QAAU,MAAO,GAC3C,UACG,4CAAC,sBAAmB,SAAQ,UAAS,OAAO,GAAG,QAAQ,MAAM,GAEhE,uBACG,4CAAC,mCAAqB,mBAAoB,CAElD;AAER;AAWA,IAAM,aAAa,CAAC,OAQgB;AARhB,eAChB;AAAA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EArEJ,IA+DoB,IAOb,iBAPa,IAOb;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACI,4CAAC,iCAAgB,OACb;AAAA,IAAC;AAAA;AAAA,MACG,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,YAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,aAAW;AAAA,MACX,kBAAc;AAAA;AAAA,EAClB,CACJ;AAER;AAEA,IAAO,qBAAQ;",
6
+ "names": ["defaultImport"]
7
+ }
@@ -3,15 +3,15 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  i18n_exports
6
- } from "./chunk-GAXH7J77.js";
6
+ } from "./chunk-JIIPUMEA.js";
7
7
  import {
8
8
  IconButton_default,
9
9
  prepareIcon
10
- } from "./chunk-47MSCQAS.js";
10
+ } from "./chunk-OC4QIR2D.js";
11
11
  import {
12
12
  react_default,
13
13
  react_exports
14
- } from "./chunk-2QBSLWJJ.js";
14
+ } from "./chunk-XWRMHLAP.js";
15
15
  import {
16
16
  __export,
17
17
  __reExport
@@ -74,4 +74,4 @@ var Undo_default = Undo;
74
74
  export {
75
75
  Undo_default
76
76
  };
77
- //# sourceMappingURL=chunk-NKC5QFQ5.js.map
77
+ //# sourceMappingURL=chunk-PFHSMP6M.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/ArrowBowLeft", "../../src/buttons/Undo.tsx"],
4
+ "sourcesContent": ["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 screenReaderContent: _('Undo'),\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 />\n );\n};\n\nexport default Undo;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,mCAAc;AACd,IAAO,uBAAS,aAAa,gBAA8B,wBAAU;;;ACIrE,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,MAAM;AACjC,CAAC;AAED,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AAGnD,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC1B,MAAG;AAfX;AAec,gEAAc,cAAd,YAA2B;AAAA;AAAA,EACrC;AAEA,QAAM,yBAAqB,2BAAY,MAAM;AAlBjD;AAmBQ,gBAAW,kDAAc,cAAd,YAA2B,KAAK;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,+BAAU,MAAM;AACZ,QAAI,EAAC,6CAAc,iBAAgB;AAC/B,aAAO,MAAM;AAAA,IACjB;AAEA,WAAO,aAAa,eAAe,UAAU;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,kBAAc,2BAAY,MAAM;AAClC,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,iBAAa,KAAK,EAAE,QAAQ,UAAU,CAAC;AAAA,EAC3C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,eAAQ;",
6
+ "names": []
7
+ }
@@ -3,23 +3,23 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  Zoom
6
- } from "./chunk-QSKQE2FQ.js";
6
+ } from "./chunk-AYEBOQ6B.js";
7
7
  import {
8
8
  ModeSwitch_default
9
- } from "./chunk-6MLJBCIJ.js";
9
+ } from "./chunk-NTQBWCZU.js";
10
10
  import {
11
11
  GridLineSwitch_default
12
- } from "./chunk-X4VCE6GS.js";
12
+ } from "./chunk-MUXHFVOC.js";
13
13
  import {
14
14
  ItemGroup_default
15
- } from "./chunk-JGTSF7O4.js";
15
+ } from "./chunk-RJ5FWZWY.js";
16
16
  import {
17
17
  themes_exports
18
- } from "./chunk-IIPBKMJD.js";
18
+ } from "./chunk-RPNGCVZL.js";
19
19
  import {
20
20
  react_default,
21
21
  react_exports
22
- } from "./chunk-2QBSLWJJ.js";
22
+ } from "./chunk-XWRMHLAP.js";
23
23
  import {
24
24
  __spreadProps,
25
25
  __spreadValues
@@ -45,4 +45,4 @@ var EditingGroup_default = EditingGroup;
45
45
  export {
46
46
  EditingGroup_default
47
47
  };
48
- //# sourceMappingURL=chunk-L3N7HHJU.js.map
48
+ //# sourceMappingURL=chunk-QEDHGXUU.js.map
@@ -20,4 +20,4 @@ export {
20
20
  Button_default,
21
21
  Button_exports
22
22
  };
23
- //# sourceMappingURL=chunk-5D7CUYUH.js.map
23
+ //# sourceMappingURL=chunk-RFWUOGJ3.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-ui/Button"],
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": ";;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,6BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;",
6
+ "names": []
7
+ }
@@ -3,18 +3,18 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  dashboard_utils_exports
6
- } from "./chunk-OSX3RDKV.js";
6
+ } from "./chunk-IHFVJPGQ.js";
7
7
  import {
8
8
  ItemSeparator_default
9
- } from "./chunk-MRXRYL4Y.js";
9
+ } from "./chunk-WSTQTULM.js";
10
10
  import {
11
11
  react_default,
12
12
  react_exports
13
- } from "./chunk-2QBSLWJJ.js";
13
+ } from "./chunk-XWRMHLAP.js";
14
14
  import {
15
15
  styled_components_default,
16
16
  styled_components_exports
17
- } from "./chunk-O74T4JNL.js";
17
+ } from "./chunk-V3YGNO27.js";
18
18
  import {
19
19
  __objRest
20
20
  } from "./chunk-VQIRZ53C.js";
@@ -49,4 +49,4 @@ var ItemGroup_default = ItemGroup;
49
49
  export {
50
50
  ItemGroup_default
51
51
  };
52
- //# sourceMappingURL=chunk-JGTSF7O4.js.map
52
+ //# sourceMappingURL=chunk-RJ5FWZWY.js.map
@@ -20,4 +20,4 @@ export {
20
20
  Square_default,
21
21
  Square_exports
22
22
  };
23
- //# sourceMappingURL=chunk-2KBENXG3.js.map
23
+ //# sourceMappingURL=chunk-RKJ7RKNK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/Square"],
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": ";;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,6BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;",
6
+ "names": []
7
+ }
@@ -3,20 +3,20 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  TokenManager
6
- } from "./chunk-QSKQE2FQ.js";
6
+ } from "./chunk-AYEBOQ6B.js";
7
7
  import {
8
8
  Config_default
9
- } from "./chunk-IITJ2NKO.js";
9
+ } from "./chunk-XIT2UXG2.js";
10
10
  import {
11
11
  Data_default
12
- } from "./chunk-BSXRAEA2.js";
12
+ } from "./chunk-NSCDFVBR.js";
13
13
  import {
14
14
  ItemGroup_default
15
- } from "./chunk-JGTSF7O4.js";
15
+ } from "./chunk-RJ5FWZWY.js";
16
16
  import {
17
17
  react_default,
18
18
  react_exports
19
- } from "./chunk-2QBSLWJJ.js";
19
+ } from "./chunk-XWRMHLAP.js";
20
20
  import {
21
21
  __spreadValues
22
22
  } from "./chunk-VQIRZ53C.js";
@@ -28,4 +28,4 @@ var SidebarControlGroup_default = SidebarControlGroup;
28
28
  export {
29
29
  SidebarControlGroup_default
30
30
  };
31
- //# sourceMappingURL=chunk-MFIWFQAS.js.map
31
+ //# sourceMappingURL=chunk-RP26L2VP.js.map
@@ -19,4 +19,4 @@ var themes_default = "default" in defaultImport ? defaultImport.default : defaul
19
19
  export {
20
20
  themes_exports
21
21
  };
22
- //# sourceMappingURL=chunk-IIPBKMJD.js.map
22
+ //# sourceMappingURL=chunk-RPNGCVZL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/themes"],
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": ";;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,6BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;",
6
+ "names": []
7
+ }
@@ -3,15 +3,15 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  i18n_exports
6
- } from "./chunk-GAXH7J77.js";
6
+ } from "./chunk-JIIPUMEA.js";
7
7
  import {
8
8
  IconButton_default,
9
9
  prepareIcon
10
- } from "./chunk-47MSCQAS.js";
10
+ } from "./chunk-OC4QIR2D.js";
11
11
  import {
12
12
  react_default,
13
13
  react_exports
14
- } from "./chunk-2QBSLWJJ.js";
14
+ } from "./chunk-XWRMHLAP.js";
15
15
  import {
16
16
  __export,
17
17
  __reExport
@@ -60,4 +60,4 @@ var Markdown_default2 = Markdown;
60
60
  export {
61
61
  Markdown_default2 as Markdown_default
62
62
  };
63
- //# sourceMappingURL=chunk-4Y6PRJOC.js.map
63
+ //# sourceMappingURL=chunk-S6LWLEQ4.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/react-icons/Markdown", "../../src/buttons/Markdown.tsx"],
4
+ "sourcesContent": ["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 screenReaderContent: _('Add markdown text'),\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 />\n );\n};\n\nexport default Markdown;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,+BAAc;AACd,IAAO,mBAAS,aAAa,gBAA8B,wBAAU;;;ACIrE,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,mBAAmB;AAC9C,CAAC;AAKD,IAAM,WAAW,CAAC,EAAE,aAAa,MAAuC;AACpE,QAAM,kBAAc,2BAAY,MAAM;AAClC,iDAAc,oBAAoB;AAAA,MAC9B,yBAAyB;AAAA,QACrB,MAAM;AAAA,QACN,SAAS;AAAA,UACL,UAAU;AAAA,QACd;AAAA,MACJ;AAAA,IACJ;AACA,iDAAc,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT;AAAA;AAAA,EACJ;AAER;AAEA,IAAOA,oBAAQ;",
6
+ "names": ["Markdown_default"]
7
+ }
@@ -4,11 +4,11 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  react_default,
6
6
  react_exports
7
- } from "./chunk-2QBSLWJJ.js";
7
+ } from "./chunk-XWRMHLAP.js";
8
8
  import {
9
9
  styled_components_default,
10
10
  styled_components_exports
11
- } from "./chunk-O74T4JNL.js";
11
+ } from "./chunk-V3YGNO27.js";
12
12
 
13
13
  // src/PopoverItemButton.tsx
14
14
  var StyledContentWrapper = styled_components_default.span`
@@ -33,4 +33,4 @@ var PopoverItemButton_default = PopoverItemButton;
33
33
  export {
34
34
  PopoverItemButton_default
35
35
  };
36
- //# sourceMappingURL=chunk-D27CPPHI.js.map
36
+ //# sourceMappingURL=chunk-SFYQQARV.js.map
@@ -3,18 +3,18 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  dashboard_state_exports
6
- } from "./chunk-RZJ2PCV4.js";
6
+ } from "./chunk-ZV4AQ5DL.js";
7
7
  import {
8
8
  themes_exports
9
- } from "./chunk-IIPBKMJD.js";
9
+ } from "./chunk-RPNGCVZL.js";
10
10
  import {
11
11
  react_default,
12
12
  react_exports
13
- } from "./chunk-2QBSLWJJ.js";
13
+ } from "./chunk-XWRMHLAP.js";
14
14
  import {
15
15
  styled_components_default,
16
16
  styled_components_exports
17
- } from "./chunk-O74T4JNL.js";
17
+ } from "./chunk-V3YGNO27.js";
18
18
  import {
19
19
  __export,
20
20
  __reExport
@@ -140,4 +140,4 @@ var Toolbar_default = Toolbar;
140
140
  export {
141
141
  Toolbar_default
142
142
  };
143
- //# sourceMappingURL=chunk-YMZGQ7CB.js.map
143
+ //# sourceMappingURL=chunk-UCI2OCYF.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["esm-externals:@splunk/themes/mixins", "../../src/Toolbar.tsx"],
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/themes/mixins\";\nexport * from \"@splunk/themes/mixins\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport styled from 'styled-components';\nimport { variables } from '@splunk/themes';\nimport { reset } from '@splunk/themes/mixins';\nimport { selectLayoutType, useSelector } from '@splunk/dashboard-state';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst ToolbarWrapper = styled.div`\n ${reset('flex')};\n justify-content: space-between;\n color: ${variables.contentColorDefault};\n padding: 5px 5px 5px 8px;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: ${variables.borderColor};\n flex-wrap: wrap;\n flex-shrink: 0;\n background-color: ${variables.backgroundColorNavigation};\n`;\n\nconst LeftAlignItems = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: row;\n gap: ${variables.spacingSmall};\n`;\n\nconst RightAlignItems = styled.div`\n flex-basis: auto;\n display: flex;\n flex-direction: row;\n gap: ${variables.spacingSmall};\n margin-inline-end: ${variables.spacingSmall};\n`;\n\nexport type ToolbarProps = ToolbarButtonProps & {\n toolbarItems: React.ReactElement[];\n};\n\n/**\n * Dashboard Toolbar\n */\nconst Toolbar = ({\n activePanel,\n dashboardApi,\n mode,\n preset,\n toolbarItems,\n}: ToolbarProps) => {\n const layoutType = useSelector(selectLayoutType);\n const toolbarRef = useRef<HTMLDivElement | null>(null);\n\n /**\n * merge dashboard props with current item props\n * so that item have access to dashboard api and other stuff\n */\n const injectDashboardProps = useCallback(\n (items: React.ReactElement[]): React.ReactElement[] => {\n const buttonProps: ToolbarButtonProps = {\n activePanel,\n dashboardApi,\n layoutType,\n mode,\n preset,\n };\n\n return items.map((item) => React.cloneElement(item, buttonProps));\n },\n [activePanel, dashboardApi, layoutType, mode, preset]\n );\n\n const leftAlignItems = useMemo(() => {\n const items = toolbarItems.filter(\n (item) => item.props?.align !== 'right'\n );\n return injectDashboardProps(items);\n }, [toolbarItems, injectDashboardProps]);\n\n const rightAlignItems = useMemo(() => {\n const items = toolbarItems.filter(\n (item) => item.props?.align === 'right'\n );\n return injectDashboardProps(items);\n }, [toolbarItems, injectDashboardProps]);\n\n const observerRef = useRef<MutationObserver | null>(null);\n const isFirstRender = useRef(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return undefined;\n }\n\n observerRef.current = new MutationObserver(() => {\n const firstFocusableButton = toolbarRef.current?.querySelector(\n 'button:not([disabled]):not([aria-disabled=\"true\"]):not([tabindex=\"-1\"])'\n ) as HTMLButtonElement;\n\n firstFocusableButton?.focus();\n observerRef.current?.disconnect();\n });\n\n if (toolbarRef.current) {\n observerRef.current.observe(toolbarRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n return () => {\n observerRef.current?.disconnect();\n };\n }, [mode]);\n\n if (!toolbarItems.length) {\n return null;\n }\n\n return (\n <ToolbarWrapper data-test=\"dashboard-toolbar\" ref={toolbarRef}>\n <LeftAlignItems key=\"left-align-items\" data-test=\"left-align-items\">\n {leftAlignItems}\n </LeftAlignItems>\n <RightAlignItems\n key=\"right-align-items\"\n data-test=\"right-align-items\"\n >\n {rightAlignItems}\n </RightAlignItems>\n </ToolbarWrapper>\n );\n};\n\nToolbar.displayName = 'Toolbar';\nexport default Toolbar;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AACA;AADA,YAAY,mBAAmB;AAC/B,6BAAc;AACd,IAAO,iBAAS,aAAa,gBAA8B,wBAAU;;;ACKrE,IAAM,iBAAiB,0BAAO;AAAA,UACxB,sBAAM,MAAM,CAAC;AAAA;AAAA,aAEN,yBAAU,mBAAmB;AAAA;AAAA;AAAA;AAAA,2BAIf,yBAAU,WAAW;AAAA;AAAA;AAAA,wBAGxB,yBAAU,yBAAyB;AAAA;AAG3D,IAAM,iBAAiB,0BAAO;AAAA;AAAA;AAAA;AAAA,WAInB,yBAAU,YAAY;AAAA;AAGjC,IAAM,kBAAkB,0BAAO;AAAA;AAAA;AAAA;AAAA,WAIpB,yBAAU,YAAY;AAAA,yBACR,yBAAU,YAAY;AAAA;AAU/C,IAAM,UAAU,CAAC;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAoB;AAChB,QAAM,iBAAa,qCAAY,wCAAgB;AAC/C,QAAM,iBAAa,sBAA8B,IAAI;AAMrD,QAAM,2BAAuB;AAAA,IACzB,CAAC,UAAsD;AACnD,YAAM,cAAkC;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAEA,aAAO,MAAM,IAAI,CAAC,SAAS,cAAM,aAAa,MAAM,WAAW,CAAC;AAAA,IACpE;AAAA,IACA,CAAC,aAAa,cAAc,YAAY,MAAM,MAAM;AAAA,EACxD;AAEA,QAAM,qBAAiB,uBAAQ,MAAM;AACjC,UAAM,QAAQ,aAAa;AAAA,MACvB,CAAC,SAAM;AAzEnB;AAyEsB,2BAAK,UAAL,mBAAY,WAAU;AAAA;AAAA,IACpC;AACA,WAAO,qBAAqB,KAAK;AAAA,EACrC,GAAG,CAAC,cAAc,oBAAoB,CAAC;AAEvC,QAAM,sBAAkB,uBAAQ,MAAM;AAClC,UAAM,QAAQ,aAAa;AAAA,MACvB,CAAC,SAAM;AAhFnB;AAgFsB,2BAAK,UAAL,mBAAY,WAAU;AAAA;AAAA,IACpC;AACA,WAAO,qBAAqB,KAAK;AAAA,EACrC,GAAG,CAAC,cAAc,oBAAoB,CAAC;AAEvC,QAAM,kBAAc,sBAAgC,IAAI;AACxD,QAAM,oBAAgB,sBAAO,IAAI;AAEjC,+BAAU,MAAM;AACZ,QAAI,cAAc,SAAS;AACvB,oBAAc,UAAU;AACxB,aAAO;AAAA,IACX;AAEA,gBAAY,UAAU,IAAI,iBAAiB,MAAM;AA9FzD;AA+FY,YAAM,wBAAuB,gBAAW,YAAX,mBAAoB;AAAA,QAC7C;AAAA;AAGJ,mEAAsB;AACtB,wBAAY,YAAZ,mBAAqB;AAAA,IACzB,CAAC;AAED,QAAI,WAAW,SAAS;AACpB,kBAAY,QAAQ,QAAQ,WAAW,SAAS;AAAA,QAC5C,WAAW;AAAA,QACX,SAAS;AAAA,MACb,CAAC;AAAA,IACL;AAEA,WAAO,MAAM;AA9GrB;AA+GY,wBAAY,YAAZ,mBAAqB;AAAA,IACzB;AAAA,EACJ,GAAG,CAAC,IAAI,CAAC;AAET,MAAI,CAAC,aAAa,QAAQ;AACtB,WAAO;AAAA,EACX;AAEA,SACI,4CAAC,kBAAe,aAAU,qBAAoB,KAAK,cAC/C,4CAAC,kBAAe,KAAI,oBAAmB,aAAU,sBAC5C,cACL,GACA;AAAA,IAAC;AAAA;AAAA,MACG,KAAI;AAAA,MACJ,aAAU;AAAA;AAAA,IAET;AAAA,EACL,CACJ;AAER;AAEA,QAAQ,cAAc;AACtB,IAAO,kBAAQ;",
6
+ "names": []
7
+ }