@splunk/dashboard-toolbar 29.1.0 → 29.2.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 (221) hide show
  1. package/CollapsibleToolbar.js +7 -13
  2. package/CollapsibleToolbar.js.map +2 -2
  3. package/IconButton.js +4 -5
  4. package/IconButton.js.map +1 -1
  5. package/ItemGroup.js +2 -3
  6. package/ItemGroup.js.map +1 -1
  7. package/PopoverItemButton.js +1 -2
  8. package/PopoverItemButton.js.map +1 -1
  9. package/Toolbar.js +2 -3
  10. package/Toolbar.js.map +1 -1
  11. package/buttons/Charts.js +8 -9
  12. package/buttons/Charts.js.map +1 -1
  13. package/buttons/Config.js +6 -7
  14. package/buttons/Config.js.map +1 -1
  15. package/buttons/ContentExport.js +6 -7
  16. package/buttons/ContentExport.js.map +1 -1
  17. package/buttons/Data.js +6 -7
  18. package/buttons/Data.js.map +1 -1
  19. package/buttons/EmptyVisualization.js +6 -7
  20. package/buttons/EmptyVisualization.js.map +1 -1
  21. package/buttons/ExportDashboardButton.js +2 -3
  22. package/buttons/ExportDashboardButton.js.map +1 -1
  23. package/buttons/Fullscreen.js +6 -7
  24. package/buttons/Fullscreen.js.map +1 -1
  25. package/buttons/GridLineSwitch.js +2 -3
  26. package/buttons/GridLineSwitch.js.map +1 -1
  27. package/buttons/HelpButton.js +6 -7
  28. package/buttons/HelpButton.js.map +1 -1
  29. package/buttons/IconGallery.js +6 -7
  30. package/buttons/IconGallery.js.map +1 -1
  31. package/buttons/Image.js +6 -7
  32. package/buttons/Image.js.map +1 -1
  33. package/buttons/ImageGallery.js +6 -7
  34. package/buttons/ImageGallery.js.map +1 -1
  35. package/buttons/Inputs.js +8 -9
  36. package/buttons/Inputs.js.map +1 -1
  37. package/buttons/Markdown.js +6 -7
  38. package/buttons/Markdown.js.map +1 -1
  39. package/buttons/ModeSwitch.js +2 -3
  40. package/buttons/ModeSwitch.js.map +1 -1
  41. package/buttons/Redo.js +6 -7
  42. package/buttons/Redo.js.map +1 -1
  43. package/buttons/Shapes.js +7 -8
  44. package/buttons/Shapes.js.map +1 -1
  45. package/buttons/Source.js +6 -7
  46. package/buttons/Source.js.map +1 -1
  47. package/buttons/Undo.js +6 -7
  48. package/buttons/Undo.js.map +1 -1
  49. package/buttons/index.js +219 -187
  50. package/buttons/index.js.map +4 -4
  51. package/groups/ActionsGroup.js +4 -5
  52. package/groups/ActionsGroup.js.map +1 -1
  53. package/groups/ControlGroup.js +97 -107
  54. package/groups/ControlGroup.js.map +4 -4
  55. package/groups/EditingGroup.js +115 -128
  56. package/groups/EditingGroup.js.map +4 -4
  57. package/groups/EditorGroup.js +98 -108
  58. package/groups/EditorGroup.js.map +4 -4
  59. package/groups/EditorsControlGroup.js +115 -125
  60. package/groups/EditorsControlGroup.js.map +4 -4
  61. package/groups/HistoryGroup.js +99 -109
  62. package/groups/HistoryGroup.js.map +4 -4
  63. package/groups/SidebarControlGroup.js +101 -111
  64. package/groups/SidebarControlGroup.js.map +4 -4
  65. package/groups/VisualizationGroup.js +117 -127
  66. package/groups/VisualizationGroup.js.map +4 -4
  67. package/groups/index.js +146 -159
  68. package/groups/index.js.map +4 -4
  69. package/index.js +201 -174
  70. package/index.js.map +4 -4
  71. package/module/CollapsibleToolbar.js +11 -11
  72. package/module/IconButton.js +6 -6
  73. package/module/Item.js +3 -3
  74. package/module/ItemGroup.js +7 -7
  75. package/module/PopoverItemButton.js +4 -4
  76. package/module/Toolbar.js +6 -6
  77. package/module/buttons/Charts.js +15 -15
  78. package/module/buttons/Config.js +9 -9
  79. package/module/buttons/ContentExport.js +9 -9
  80. package/module/buttons/Data.js +10 -10
  81. package/module/buttons/EmptyVisualization.js +9 -9
  82. package/module/buttons/ExportDashboardButton.js +8 -8
  83. package/module/buttons/Fullscreen.js +9 -9
  84. package/module/buttons/GridLineSwitch.js +8 -8
  85. package/module/buttons/HelpButton.js +11 -11
  86. package/module/buttons/IconGallery.js +11 -11
  87. package/module/buttons/Image.js +9 -9
  88. package/module/buttons/ImageGallery.js +12 -12
  89. package/module/buttons/Inputs.js +11 -11
  90. package/module/buttons/Markdown.js +8 -8
  91. package/module/buttons/ModeSwitch.js +9 -9
  92. package/module/buttons/Redo.js +8 -8
  93. package/module/buttons/Shapes.js +13 -13
  94. package/module/buttons/Source.js +8 -8
  95. package/module/buttons/Undo.js +8 -8
  96. package/module/buttons/index.js +42 -40
  97. package/module/chunks/{chunk-E5POXMHH.js → chunk-2KANDQBI.js} +11 -12
  98. package/module/chunks/{chunk-E5POXMHH.js.map → chunk-2KANDQBI.js.map} +1 -1
  99. package/module/chunks/{chunk-HTZYYFJO.js → chunk-2KBENXG3.js} +2 -2
  100. package/module/chunks/{chunk-ZCC73T4R.js → chunk-2OAGCVHC.js} +7 -8
  101. package/module/chunks/{chunk-ZCC73T4R.js.map → chunk-2OAGCVHC.js.map} +1 -1
  102. package/module/chunks/{chunk-CXXSJOFS.js → chunk-2QBSLWJJ.js} +2 -2
  103. package/module/chunks/{chunk-AD6EIRYL.js → chunk-47MSCQAS.js} +10 -11
  104. package/module/chunks/{chunk-AD6EIRYL.js.map → chunk-47MSCQAS.js.map} +1 -1
  105. package/module/chunks/{chunk-LKIWD6NR.js → chunk-4CPQH3IK.js} +11 -12
  106. package/module/chunks/{chunk-LKIWD6NR.js.map → chunk-4CPQH3IK.js.map} +1 -1
  107. package/module/chunks/chunk-4NRVBOUP.js +28 -0
  108. package/module/chunks/{chunk-2G23SAZZ.js.map → chunk-4NRVBOUP.js.map} +1 -1
  109. package/module/chunks/{chunk-UERW7LTA.js → chunk-4Y6PRJOC.js} +7 -8
  110. package/module/chunks/{chunk-UERW7LTA.js.map → chunk-4Y6PRJOC.js.map} +1 -1
  111. package/module/chunks/{chunk-SMDUMR2P.js → chunk-56627Y63.js} +12 -13
  112. package/module/chunks/{chunk-SMDUMR2P.js.map → chunk-56627Y63.js.map} +1 -1
  113. package/module/chunks/{chunk-3QT355V5.js → chunk-5D7CUYUH.js} +2 -2
  114. package/module/chunks/{chunk-AG73TP3S.js → chunk-6MLJBCIJ.js} +9 -12
  115. package/module/chunks/{chunk-AG73TP3S.js.map → chunk-6MLJBCIJ.js.map} +1 -1
  116. package/module/chunks/{chunk-GIXERSIF.js → chunk-6SUOFSGJ.js} +9 -10
  117. package/module/chunks/{chunk-GIXERSIF.js.map → chunk-6SUOFSGJ.js.map} +1 -1
  118. package/module/chunks/{chunk-3NDLE64O.js → chunk-ACSHFRXI.js} +7 -8
  119. package/module/chunks/{chunk-3NDLE64O.js.map → chunk-ACSHFRXI.js.map} +1 -1
  120. package/module/chunks/{chunk-Q4EASNDZ.js → chunk-BSXRAEA2.js} +9 -10
  121. package/module/chunks/{chunk-Q4EASNDZ.js.map → chunk-BSXRAEA2.js.map} +1 -1
  122. package/module/chunks/{chunk-SELLU76G.js → chunk-C3NA7YCT.js} +7 -10
  123. package/module/chunks/{chunk-SELLU76G.js.map → chunk-C3NA7YCT.js.map} +1 -1
  124. package/module/chunks/{chunk-LATZ7CUV.js → chunk-D27CPPHI.js} +4 -7
  125. package/module/chunks/{chunk-LATZ7CUV.js.map → chunk-D27CPPHI.js.map} +1 -1
  126. package/module/chunks/{chunk-HXK4QHPR.js → chunk-FREEN2T3.js} +3 -3
  127. package/module/chunks/{chunk-I7XN7DKU.js → chunk-GAXH7J77.js} +2 -2
  128. package/module/chunks/{chunk-5TGHI5GV.js → chunk-GFSNM45K.js} +2 -2
  129. package/module/chunks/{chunk-GUWB2JIP.js → chunk-H7C24E7Q.js} +10 -11
  130. package/module/chunks/{chunk-GUWB2JIP.js.map → chunk-H7C24E7Q.js.map} +1 -1
  131. package/module/chunks/{chunk-L2MCGOFY.js → chunk-HOKI2CUB.js} +2 -2
  132. package/module/chunks/{chunk-QPUZLO5O.js → chunk-IIPBKMJD.js} +2 -2
  133. package/module/chunks/{chunk-JHFAWC4B.js → chunk-IITJ2NKO.js} +8 -9
  134. package/module/chunks/{chunk-JHFAWC4B.js.map → chunk-IITJ2NKO.js.map} +1 -1
  135. package/module/chunks/{chunk-HPEHWRJP.js → chunk-ILJYO5B3.js} +97 -63
  136. package/module/chunks/chunk-ILJYO5B3.js.map +7 -0
  137. package/module/chunks/{chunk-KDMM6KX4.js → chunk-JGTSF7O4.js} +8 -9
  138. package/module/chunks/{chunk-KDMM6KX4.js.map → chunk-JGTSF7O4.js.map} +1 -1
  139. package/module/chunks/{chunk-3R73WRRN.js → chunk-JOFJS4UX.js} +13 -14
  140. package/module/chunks/{chunk-3R73WRRN.js.map → chunk-JOFJS4UX.js.map} +1 -1
  141. package/module/chunks/{chunk-DU4JCIM3.js → chunk-KUPEYUWA.js} +2 -2
  142. package/module/chunks/{chunk-YBGLF5LF.js → chunk-LGNNSZ2O.js} +13 -14
  143. package/module/chunks/{chunk-YBGLF5LF.js.map → chunk-LGNNSZ2O.js.map} +1 -1
  144. package/module/chunks/chunk-LLLZNICJ.js +31 -0
  145. package/module/chunks/{chunk-FLMBGMR4.js.map → chunk-LLLZNICJ.js.map} +1 -1
  146. package/module/chunks/{chunk-BDLV2ADM.js → chunk-MRXRYL4Y.js} +3 -3
  147. package/module/chunks/{chunk-2GRHFRZD.js → chunk-MTPPRK4H.js} +14 -15
  148. package/module/chunks/{chunk-2GRHFRZD.js.map → chunk-MTPPRK4H.js.map} +1 -1
  149. package/module/chunks/{chunk-ANTP4L4N.js → chunk-MWYPBMHI.js} +13 -14
  150. package/module/chunks/{chunk-ANTP4L4N.js.map → chunk-MWYPBMHI.js.map} +1 -1
  151. package/module/chunks/{chunk-WPBXWBTX.js → chunk-NKC5QFQ5.js} +7 -8
  152. package/module/chunks/{chunk-WPBXWBTX.js.map → chunk-NKC5QFQ5.js.map} +1 -1
  153. package/module/chunks/{chunk-4L4BWEM7.js → chunk-O74T4JNL.js} +2 -2
  154. package/module/chunks/{chunk-AIH4ILPH.js → chunk-OQXE7KAJ.js} +9 -12
  155. package/module/chunks/{chunk-AIH4ILPH.js.map → chunk-OQXE7KAJ.js.map} +1 -1
  156. package/module/chunks/{chunk-PMXVITCC.js → chunk-OSX3RDKV.js} +2 -2
  157. package/module/chunks/{chunk-5CXOMUN4.js → chunk-PVT2JFAW.js} +6 -7
  158. package/module/chunks/{chunk-5CXOMUN4.js.map → chunk-PVT2JFAW.js.map} +1 -1
  159. package/module/chunks/{chunk-3DNLXDXA.js → chunk-Q67T3UVN.js} +8 -9
  160. package/module/chunks/{chunk-3DNLXDXA.js.map → chunk-Q67T3UVN.js.map} +1 -1
  161. package/module/chunks/{chunk-TLNR3NED.js → chunk-QPL25LDX.js} +8 -9
  162. package/module/chunks/{chunk-TLNR3NED.js.map → chunk-QPL25LDX.js.map} +1 -1
  163. package/module/chunks/{chunk-N3HJVTLY.js → chunk-RIR6YMJC.js} +17 -23
  164. package/module/chunks/chunk-RIR6YMJC.js.map +7 -0
  165. package/module/chunks/{chunk-BXDA2XH4.js → chunk-RQY6BB7F.js} +2 -2
  166. package/module/chunks/{chunk-6L4PTRMO.js → chunk-RZJ2PCV4.js} +2 -2
  167. package/module/chunks/{chunk-7CJM54O3.js → chunk-UOT4CE2C.js} +8 -11
  168. package/module/chunks/{chunk-7CJM54O3.js.map → chunk-UOT4CE2C.js.map} +1 -1
  169. package/module/chunks/{chunk-4PUMQWA5.js → chunk-VCWH2JHM.js} +5 -6
  170. package/module/chunks/{chunk-4PUMQWA5.js.map → chunk-VCWH2JHM.js.map} +1 -1
  171. package/module/chunks/{chunk-PHOUPWEN.js → chunk-VE4HUG27.js} +2 -2
  172. package/module/chunks/{chunk-B5OBVUF5.js → chunk-VQIRZ53C.js} +1 -3
  173. package/module/chunks/{chunk-SRI3BMZH.js → chunk-WADWICSE.js} +9 -10
  174. package/module/chunks/{chunk-SRI3BMZH.js.map → chunk-WADWICSE.js.map} +1 -1
  175. package/module/chunks/{chunk-AROBR6WM.js → chunk-X4VCE6GS.js} +10 -11
  176. package/module/chunks/{chunk-AROBR6WM.js.map → chunk-X4VCE6GS.js.map} +1 -1
  177. package/module/chunks/{chunk-6VIKADMF.js → chunk-XIZP3DYZ.js} +2 -2
  178. package/module/chunks/{chunk-BR42RPXM.js → chunk-YMZGQ7CB.js} +8 -9
  179. package/module/chunks/{chunk-BR42RPXM.js.map → chunk-YMZGQ7CB.js.map} +1 -1
  180. package/module/chunks/{chunk-SPVRIPCR.js → chunk-ZSBWP6MR.js} +18 -19
  181. package/module/chunks/{chunk-SPVRIPCR.js.map → chunk-ZSBWP6MR.js.map} +1 -1
  182. package/module/groups/ActionsGroup.js +7 -7
  183. package/module/groups/ControlGroup.js +42 -42
  184. package/module/groups/EditingGroup.js +42 -42
  185. package/module/groups/EditorGroup.js +42 -42
  186. package/module/groups/EditorsControlGroup.js +42 -42
  187. package/module/groups/HistoryGroup.js +42 -42
  188. package/module/groups/SidebarControlGroup.js +42 -42
  189. package/module/groups/VisualizationGroup.js +42 -42
  190. package/module/groups/index.js +49 -49
  191. package/module/index.js +53 -51
  192. package/package.json +19 -21
  193. package/types/CollapsibleToolbar.d.ts.map +1 -1
  194. package/types/buttons/AIAssistant/AIAssistant.d.ts +3 -0
  195. package/types/buttons/AIAssistant/AIAssistant.d.ts.map +1 -0
  196. package/types/buttons/AIAssistant/index.d.ts +2 -0
  197. package/types/buttons/AIAssistant/index.d.ts.map +1 -0
  198. package/types/buttons/Zoom/Zoom.d.ts.map +1 -1
  199. package/types/buttons/index.d.ts +1 -0
  200. package/types/buttons/index.d.ts.map +1 -1
  201. package/module/chunks/chunk-2G23SAZZ.js +0 -29
  202. package/module/chunks/chunk-FLMBGMR4.js +0 -32
  203. package/module/chunks/chunk-HPEHWRJP.js.map +0 -7
  204. package/module/chunks/chunk-N3HJVTLY.js.map +0 -7
  205. /package/module/chunks/{chunk-HTZYYFJO.js.map → chunk-2KBENXG3.js.map} +0 -0
  206. /package/module/chunks/{chunk-CXXSJOFS.js.map → chunk-2QBSLWJJ.js.map} +0 -0
  207. /package/module/chunks/{chunk-3QT355V5.js.map → chunk-5D7CUYUH.js.map} +0 -0
  208. /package/module/chunks/{chunk-HXK4QHPR.js.map → chunk-FREEN2T3.js.map} +0 -0
  209. /package/module/chunks/{chunk-I7XN7DKU.js.map → chunk-GAXH7J77.js.map} +0 -0
  210. /package/module/chunks/{chunk-5TGHI5GV.js.map → chunk-GFSNM45K.js.map} +0 -0
  211. /package/module/chunks/{chunk-L2MCGOFY.js.map → chunk-HOKI2CUB.js.map} +0 -0
  212. /package/module/chunks/{chunk-QPUZLO5O.js.map → chunk-IIPBKMJD.js.map} +0 -0
  213. /package/module/chunks/{chunk-DU4JCIM3.js.map → chunk-KUPEYUWA.js.map} +0 -0
  214. /package/module/chunks/{chunk-BDLV2ADM.js.map → chunk-MRXRYL4Y.js.map} +0 -0
  215. /package/module/chunks/{chunk-4L4BWEM7.js.map → chunk-O74T4JNL.js.map} +0 -0
  216. /package/module/chunks/{chunk-PMXVITCC.js.map → chunk-OSX3RDKV.js.map} +0 -0
  217. /package/module/chunks/{chunk-BXDA2XH4.js.map → chunk-RQY6BB7F.js.map} +0 -0
  218. /package/module/chunks/{chunk-6L4PTRMO.js.map → chunk-RZJ2PCV4.js.map} +0 -0
  219. /package/module/chunks/{chunk-PHOUPWEN.js.map → chunk-VE4HUG27.js.map} +0 -0
  220. /package/module/chunks/{chunk-B5OBVUF5.js.map → chunk-VQIRZ53C.js.map} +0 -0
  221. /package/module/chunks/{chunk-6VIKADMF.js.map → chunk-XIZP3DYZ.js.map} +0 -0
@@ -1,32 +0,0 @@
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
- import {
5
- TokenManager
6
- } from "./chunk-HPEHWRJP.js";
7
- import {
8
- Config_default
9
- } from "./chunk-JHFAWC4B.js";
10
- import {
11
- Data_default
12
- } from "./chunk-Q4EASNDZ.js";
13
- import {
14
- ItemGroup_default
15
- } from "./chunk-KDMM6KX4.js";
16
- import {
17
- react_default,
18
- react_exports
19
- } from "./chunk-CXXSJOFS.js";
20
- import {
21
- __name,
22
- __spreadValues
23
- } from "./chunk-B5OBVUF5.js";
24
-
25
- // src/groups/SidebarControlGroup.tsx
26
- var SidebarControlGroup = /* @__PURE__ */ __name((props) => /* @__PURE__ */ react_default.createElement(ItemGroup_default, __spreadValues({}, props), /* @__PURE__ */ react_default.createElement(Config_default, null), /* @__PURE__ */ react_default.createElement(Data_default, null), /* @__PURE__ */ react_default.createElement(TokenManager, null)), "SidebarControlGroup");
27
- var SidebarControlGroup_default = SidebarControlGroup;
28
-
29
- export {
30
- SidebarControlGroup_default
31
- };
32
- //# sourceMappingURL=chunk-FLMBGMR4.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["esm-externals:@splunk/react-icons/ListToken", "esm-externals:@splunk/react-ui/Tooltip", "../../src/buttons/tokenManager/TokenManager.tsx", "esm-externals:@splunk/dashboard-telemetry", "esm-externals:@splunk/ui-utils/format", "../../src/buttons/Zoom/ZoomMenu.tsx", "esm-externals:@splunk/react-ui/Number", "../../src/buttons/Zoom/ZoomNumber.tsx", "../../src/buttons/Zoom/Zoom.tsx"],
4
- "sourcesContent": ["\nimport * as defaultImport from \"@splunk/react-icons/ListToken\";\nexport * from \"@splunk/react-icons/ListToken\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ListToken from '@splunk/react-icons/ListToken';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport IconButton, { prepareIcon } from '../../IconButton';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst tokenManagerIcon = prepareIcon({\n Icon: ListToken,\n screenReaderContent: _('Token manager'),\n});\n\n/**\n * Button that toggles open token manager panel\n */\nexport const TokenManager = ({ dashboardApi }: ToolbarButtonProps) => {\n const { showTokenManager } = useFeatureFlags();\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'tokenManager';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open tokens panel\n dashboardApi?.openPanel({\n activePanel: 'tokenManager',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n if (!showTokenManager) {\n return null;\n }\n\n return (\n <Tooltip\n contentRelationship=\"label\"\n content={_('Token manager')}\n data-test-label=\"token-manager-button\"\n >\n <IconButton\n testLabel=\"token-manager-button\"\n onClick={handleClick}\n icon={tokenManagerIcon}\n />\n </Tooltip>\n );\n};\n", "\nimport * as defaultImport from \"@splunk/dashboard-telemetry\";\nexport * from \"@splunk/dashboard-telemetry\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/format\";\nexport * from \"@splunk/ui-utils/format\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport { isMac } from '@splunk/dashboard-utils';\nimport { sprintf } from '@splunk/ui-utils/format';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst zoomLevels = [25, 50, 100, 150, 200];\n\nconst buttonStyle = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n};\n\nconst menuStyle = {\n width: '200px',\n};\n\nexport interface ZoomMenuProps {\n appearance?: ButtonPropsBase['appearance'];\n dashboardApi: ToolbarButtonProps['dashboardApi'];\n currentScale: number;\n setCurrentScale: (scale: number) => void;\n scaleType: 'auto' | 'fit' | null;\n setScaleType: (type: 'auto' | 'fit' | null) => void;\n}\n\nexport const ZoomMenu = ({\n dashboardApi,\n appearance = 'default',\n currentScale,\n setCurrentScale,\n scaleType,\n setScaleType,\n}: ZoomMenuProps): JSX.Element => {\n const handleZoomOutClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomOut();\n }, [setScaleType, dashboardApi]);\n\n const handleZoomInClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomIn();\n }, [setScaleType, dashboardApi]);\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [setScaleType, setCurrentScale, dashboardApi]\n );\n\n const handleFitToWidthClick = useCallback(() => {\n setScaleType('fit');\n dashboardApi?.fitToWidth();\n }, [setScaleType, dashboardApi]);\n\n const handleAutoClick = useCallback(() => {\n setScaleType('auto');\n dashboardApi?.fitToWidth({ maxScale: 1 });\n }, [setScaleType, dashboardApi]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = (\n <Button\n data-clickable\n data-test=\"zoom-dropdown-button\"\n style={buttonStyle}\n appearance={appearance}\n isMenu\n aria-label={sprintf(_('Zoom level, %(currentScale)s%%'), {\n currentScale,\n })}\n />\n );\n\n const isMacOS = useMemo(() => isMac(), []);\n\n const dropdownMenuChildren = useMemo(() => {\n const zoomButtons = zoomLevels.map((percent) => {\n return (\n <Menu.Item\n data-test={`${percent}-percent`}\n onClick={handleScaleChange(percent)}\n key={percent}\n selectable\n selected={currentScale === percent && !scaleType}\n >\n {`${percent}%`}\n </Menu.Item>\n );\n });\n return [\n <Menu.Item\n data-test=\"auto\"\n onClick={handleAutoClick}\n key=\"auto\"\n selectable\n selected={scaleType === 'auto'}\n >\n {_('Auto')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"fit-to-width\"\n onClick={handleFitToWidthClick}\n key=\"fit-to-width\"\n description={isMacOS ? _('Ctrl Cmd 0') : _('Ctrl Alt 0')}\n descriptionPosition=\"right\"\n selectable\n selected={scaleType === 'fit'}\n >\n {_('Fit')}\n </Menu.Item>,\n <Menu.Divider key=\"menu-divider-1\" />,\n ...zoomButtons,\n <Menu.Divider key=\"menu-divider-2\" />,\n <Menu.Item\n data-test=\"zoom-in\"\n onClick={handleZoomInClick}\n key=\"zoom-in\"\n description={isMacOS ? _('Ctrl Cmd =') : _('Ctrl Alt =')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom in')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"zoom-out\"\n onClick={handleZoomOutClick}\n key=\"zoom-out\"\n description={isMacOS ? _('Ctrl Cmd -') : _('Ctrl Alt -')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom out')}\n </Menu.Item>,\n ];\n }, [\n currentScale,\n handleAutoClick,\n scaleType,\n handleFitToWidthClick,\n isMacOS,\n handleZoomInClick,\n handleZoomOutClick,\n handleScaleChange,\n ]);\n\n return (\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n retainFocus\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Zoom level')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n );\n};\n", "\nimport * as defaultImport from \"@splunk/react-ui/Number\";\nexport * from \"@splunk/react-ui/Number\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport Number from '@splunk/react-ui/Number';\nimport { variables } from '@splunk/themes';\nimport { useNumberInput, type OnValueChangeType } from '@splunk/dashboard-ui';\n\nconst StyledNumber = styled(Number)`\n padding-right: ${variables.spacingSmall};\n & > input {\n text-align: right;\n }\n`;\n\nconst StyledEndAdornment = styled.span`\n color: ${variables.contentColorActive};\n`;\n\ninterface ZoomNumberProps {\n currentScale: number;\n onScaleChange: (scale: number) => () => void;\n}\n\nexport const ZoomNumber = ({\n currentScale,\n onScaleChange,\n}: ZoomNumberProps) => {\n const onValueChange = useCallback<OnValueChangeType>(\n (e, value = 100) => {\n onScaleChange(value as number)();\n },\n [onScaleChange]\n );\n const { handleChange, handleBlur, handleFocus, handleKeyPress } =\n useNumberInput({\n value: currentScale,\n onValueChange,\n });\n\n return (\n <StyledNumber\n value={currentScale}\n onChange={handleChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n onFocus={handleFocus}\n step={5}\n min={1}\n max={10000}\n roundTo={0}\n endAdornment={<StyledEndAdornment>%</StyledEndAdornment>}\n hideStepButtons\n data-test=\"zoom-number\"\n append\n />\n );\n};\n", "import React, { useCallback, useMemo, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { debounce } from 'lodash';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\n\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport { useTelemetryApi } from '@splunk/dashboard-telemetry';\nimport { selectActiveTab, useSelector } from '@splunk/dashboard-state';\n\nimport type { ToolbarButtonProps } from '../../types/common';\nimport ItemSeparator from '../../components/ItemSeparator';\nimport { ZoomMenu } from './ZoomMenu';\nimport { ZoomNumber } from './ZoomNumber';\n\nconst Container = styled.div`\n margin-inline-end: 0;\n display: flex;\n min-width: 96px;\n gap: ${variables.spacingSmall};\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n width: 110px;\n & span {\n display: flex;\n }\n`;\n\nexport interface ZoomProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n showSeparator?: boolean;\n}\n\nexport const Zoom = ({\n showSeparator = true,\n appearance = 'default',\n mode = 'view',\n}: ZoomProps): JSX.Element => {\n const [currentScale, setCurrentScale] = useState(100);\n const [scaleType, setScaleType] = useState<'auto' | 'fit' | null>(null);\n const telemetry = useTelemetryApi();\n const dashboardApi = useDashboardApi();\n\n const handleZoom = useCallback((level?: number) => {\n if (level) {\n setCurrentScale(Math.round(level * 100));\n }\n }, []);\n\n const emitTelemetry = useMemo(\n () => debounce(telemetry.emit.bind(telemetry), 500),\n [telemetry]\n );\n\n useEffect(() => {\n emitTelemetry({\n pageAction: 'dashboard.zoom',\n source: 'toolbar',\n event: 'dashboard.zoom_level_change',\n metadata: {\n scale: currentScale,\n scaleType,\n mode,\n },\n });\n }, [currentScale, scaleType, emitTelemetry, mode]);\n\n const activeTabId = useSelector(selectActiveTab);\n useEffect(() => {\n const subscription = dashboardApi\n ?.getZoomLevel()\n ?.subscribe({ next: handleZoom });\n\n return () => {\n subscription?.unsubscribe();\n };\n }, [dashboardApi, activeTabId, handleZoom]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [dashboardApi]\n );\n\n return (\n <Container>\n <StyledTooltip\n contentRelationship=\"label\"\n content={_('Zoom level')}\n >\n <ZoomNumber\n currentScale={currentScale}\n onScaleChange={handleScaleChange}\n />\n <ZoomMenu\n dashboardApi={dashboardApi}\n appearance={appearance}\n currentScale={currentScale}\n setCurrentScale={setCurrentScale}\n scaleType={scaleType}\n setScaleType={setScaleType}\n />\n </StyledTooltip>\n {separator}\n </Container>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["esm-externals:@splunk/react-ui/TransitionOpen", "esm-externals:@splunk/react-icons/ChevronRight", "esm-externals:@splunk/react-icons/ChevronLeft", "../../src/CollapsibleToolbar.tsx"],
4
- "sourcesContent": ["\nimport * as defaultImport from \"@splunk/react-ui/TransitionOpen\";\nexport * from \"@splunk/react-ui/TransitionOpen\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ChevronRight\";\nexport * from \"@splunk/react-icons/ChevronRight\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ChevronLeft\";\nexport * from \"@splunk/react-icons/ChevronLeft\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, {\n useState,\n useCallback,\n cloneElement,\n useMemo,\n useEffect,\n} from 'react';\nimport { useApiRegistry } from '@splunk/dashboard-context';\nimport styled, { css } from 'styled-components';\nimport Button from '@splunk/react-ui/Button';\nimport TransitionOpen from '@splunk/react-ui/TransitionOpen';\nimport { variables } from '@splunk/themes';\nimport ChevronRight from '@splunk/react-icons/ChevronRight';\nimport ChevronLeft from '@splunk/react-icons/ChevronLeft';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { selectLayoutType, useSelector } from '@splunk/dashboard-state';\nimport type { PresetMap } from '@splunk/dashboard-types';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport type { CommonToolbarBaseProps } from './types/common';\nimport { iconSize } from './IconButton';\n\nconst TOOLBAR_HEIGHT = 48;\n\nconst ToolbarWrapper = styled.div`\n display: flex;\n align-items: center;\n position: absolute;\n right: 0;\n z-index: 6;\n height: ${TOOLBAR_HEIGHT}px;\n background-color: ${variables.backgroundColorNavigation};\n color: ${variables.contentColorDefault};\n box-shadow: ${variables.overlayShadow};\n border-radius: 0 0 0 20px;\n`;\n\nconst StyledTransitionOpen = styled(TransitionOpen)`\n border-right: ${({ open }) => (open ? 'solid' : 'none')};\n border-width: 0 1px 0 0;\n border-color: ${variables.interactiveColorBorder};\n`;\n\nconst ToolbarItemsWrapper = styled.div`\n display: flex;\n padding: 2px 4px 2px 8px;\n gap: ${variables.spacingSmall};\n margin-inline-end: ${variables.spacingSmall};\n`;\n\n// Keep the button and toolbar container animating at the same speed\nconst transition = css`\n transition-duration: 0.2s;\n transition-timing-function: ease-in-out;\n`;\nconst ExpandButton = styled(Button)<{\n expanded: boolean;\n}>`\n // To get specific enough to override the default Button styling\n && {\n // We shrink the button a bit when the toolbar is expanded since it\n // switches to a circle button and needs a bit more space to breath\n height: ${({ expanded }) =>\n expanded ? `${TOOLBAR_HEIGHT - 4}px` : `${TOOLBAR_HEIGHT}px`};\n width: ${({ expanded }) =>\n expanded ? `${TOOLBAR_HEIGHT - 4}px` : `${TOOLBAR_HEIGHT}px`};\n margin: ${({ expanded }) => (expanded ? '0 4px 0 4px' : '0')};\n padding: 0;\n border: none;\n box-shadow: none;\n background-color: ${variables.backgroundColorNavigation};\n border-radius: ${(props) => (props.expanded ? '40px' : '0 0 0 20px')};\n transition-property: border-radius, height, width, margin-right;\n ${transition}\n }\n`;\n\nconst expandedIcon = (\n <>\n <ChevronRight width={iconSize} height={iconSize} />\n <ScreenReaderContent>{_('Expanded')}</ScreenReaderContent>\n </>\n);\n\nconst collapsedIcon = (\n <>\n <ChevronLeft width={iconSize} height={iconSize} />\n <ScreenReaderContent>{_('Collapsed')}</ScreenReaderContent>\n </>\n);\n\nexport type CollapsibleToolbarProps = CommonToolbarBaseProps & {\n initialExpanded?: boolean;\n toolbarItems?: React.ReactElement[];\n};\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\n\nconst CollapsibleToolbar = ({\n preset = DEFAULT_PRESET_MAP,\n dashboardApi,\n initialExpanded = true,\n mode = 'view',\n toolbarItems = [],\n}: CollapsibleToolbarProps): React.ReactElement | null => {\n const apiRegistry = useApiRegistry();\n const [expanded, setExpanded] = useState(initialExpanded);\n const handleExpandToggle = useCallback(\n () => setExpanded((prevExpanded) => !prevExpanded),\n []\n );\n\n const layoutType = useSelector(selectLayoutType);\n\n const injectedToolbarItems = useMemo(\n () =>\n toolbarItems.map((item) =>\n cloneElement(item, {\n mode,\n preset,\n layoutType,\n dashboardApi,\n borders: false,\n })\n ),\n [toolbarItems, mode, preset, dashboardApi, layoutType]\n );\n\n const ExpandButtonIcon = useMemo(\n () => (expanded ? expandedIcon : collapsedIcon),\n [expanded]\n );\n\n useEffect(() => {\n const toolbarApiRef = {\n toggle: () => handleExpandToggle(),\n expand: () => setExpanded(true),\n collapse: () => setExpanded(false),\n };\n\n apiRegistry.registerToolbarApi(toolbarApiRef);\n\n return () => {\n apiRegistry.removeToolbarApi();\n };\n }, [apiRegistry, handleExpandToggle]);\n\n return (\n <ToolbarWrapper data-test=\"dashboard-toolbar\">\n <StyledTransitionOpen animation=\"slideFromRight\" open={expanded}>\n <ToolbarItemsWrapper data-test=\"toolbar-items\">\n {injectedToolbarItems}\n </ToolbarItemsWrapper>\n </StyledTransitionOpen>\n <ExpandButton\n data-test=\"expand-button\"\n expanded={expanded}\n onClick={handleExpandToggle}\n icon={ExpandButtonIcon}\n data-clickable\n />\n </ToolbarWrapper>\n );\n};\n\nCollapsibleToolbar.displayName = 'CollapsibleToolbar';\n\nexport default CollapsibleToolbar;\n"],
5
- "mappings": "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",
6
- "names": ["defaultImport", "defaultImport"]
7
- }