@splunk/dashboard-toolbar 29.3.4 → 29.5.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.
- package/.storybook/index.ts +2 -0
- package/.storybook/withDashboardApiContext.tsx +18 -0
- package/.storybook/withDashboardContext.tsx +34 -0
- package/CollapsibleToolbar.js +22 -6
- package/CollapsibleToolbar.js.map +2 -2
- package/IconButton.js +1 -1
- package/IconButton.js.map +2 -2
- package/Item.js +1 -1
- package/Item.js.map +2 -2
- package/ItemGroup.js +1 -1
- package/ItemGroup.js.map +2 -2
- package/PopoverItemButton.js +1 -1
- package/PopoverItemButton.js.map +2 -2
- package/README.md +1 -1
- package/Toolbar.js +1 -1
- package/Toolbar.js.map +2 -2
- package/buttons/Charts.js +1 -1
- package/buttons/Charts.js.map +2 -2
- package/buttons/Config.js +1 -1
- package/buttons/Config.js.map +2 -2
- package/buttons/ContentExport.js +1 -1
- package/buttons/ContentExport.js.map +2 -2
- package/buttons/Data.js +1 -1
- package/buttons/Data.js.map +2 -2
- package/buttons/EmptyVisualization.js +1 -1
- package/buttons/EmptyVisualization.js.map +2 -2
- package/buttons/ExportDashboardButton.js +22 -9
- package/buttons/ExportDashboardButton.js.map +4 -4
- package/buttons/Fullscreen.js +43 -4
- package/buttons/Fullscreen.js.map +3 -3
- package/buttons/GridLineSwitch.js +1 -1
- package/buttons/GridLineSwitch.js.map +2 -2
- package/buttons/HelpButton.js +2 -2
- package/buttons/HelpButton.js.map +2 -2
- package/buttons/IconGallery.js +1 -1
- package/buttons/IconGallery.js.map +2 -2
- package/buttons/Image.js +1 -1
- package/buttons/Image.js.map +2 -2
- package/buttons/ImageGallery.js +1 -1
- package/buttons/ImageGallery.js.map +2 -2
- package/buttons/Inputs.js +1 -1
- package/buttons/Inputs.js.map +2 -2
- package/buttons/Markdown.js +1 -1
- package/buttons/Markdown.js.map +2 -2
- package/buttons/ModeSwitch.js +1 -1
- package/buttons/ModeSwitch.js.map +2 -2
- package/buttons/Redo.js +1 -1
- package/buttons/Redo.js.map +2 -2
- package/buttons/Shapes.js +1 -1
- package/buttons/Shapes.js.map +2 -2
- package/buttons/Source.js +1 -1
- package/buttons/Source.js.map +2 -2
- package/buttons/Undo.js +1 -1
- package/buttons/Undo.js.map +2 -2
- package/buttons/index.js +77 -13
- package/buttons/index.js.map +3 -3
- package/groups/ActionsGroup.js.map +2 -2
- package/groups/ControlGroup.js +52 -4
- package/groups/ControlGroup.js.map +3 -3
- package/groups/EditingGroup.js +15 -4
- package/groups/EditingGroup.js.map +3 -3
- package/groups/EditorGroup.js +10 -1
- package/groups/EditorGroup.js.map +3 -3
- package/groups/EditorsControlGroup.js +10 -1
- package/groups/EditorsControlGroup.js.map +3 -3
- package/groups/HistoryGroup.js +10 -1
- package/groups/HistoryGroup.js.map +3 -3
- package/groups/SidebarControlGroup.js +10 -1
- package/groups/SidebarControlGroup.js.map +3 -3
- package/groups/VisualizationGroup.js +10 -1
- package/groups/VisualizationGroup.js.map +3 -3
- package/groups/index.js +37 -7
- package/groups/index.js.map +3 -3
- package/index.js +98 -18
- package/index.js.map +3 -3
- package/module/CollapsibleToolbar.js +10 -10
- package/module/IconButton.js +5 -5
- package/module/Item.js +2 -2
- package/module/ItemGroup.js +6 -6
- package/module/PopoverItemButton.js +3 -3
- package/module/Toolbar.js +5 -5
- package/module/buttons/Charts.js +14 -14
- package/module/buttons/Config.js +8 -8
- package/module/buttons/ContentExport.js +8 -8
- package/module/buttons/Data.js +9 -9
- package/module/buttons/EmptyVisualization.js +8 -8
- package/module/buttons/ExportDashboardButton.js +7 -6
- package/module/buttons/Fullscreen.js +8 -8
- package/module/buttons/GridLineSwitch.js +7 -7
- package/module/buttons/HelpButton.js +10 -10
- package/module/buttons/IconGallery.js +10 -10
- package/module/buttons/Image.js +8 -8
- package/module/buttons/ImageGallery.js +11 -11
- package/module/buttons/Inputs.js +10 -10
- package/module/buttons/Markdown.js +7 -7
- package/module/buttons/ModeSwitch.js +8 -8
- package/module/buttons/Redo.js +7 -7
- package/module/buttons/Shapes.js +12 -12
- package/module/buttons/Source.js +8 -8
- package/module/buttons/Undo.js +7 -7
- package/module/buttons/index.js +39 -39
- package/module/chunks/{chunk-ODHRJQTV.js → chunk-2MOF5ZP7.js} +15 -7
- package/module/chunks/chunk-2MOF5ZP7.js.map +7 -0
- package/module/chunks/{chunk-VCWH2JHM.js → chunk-4SWPK2TU.js} +2 -2
- package/module/chunks/chunk-4SWPK2TU.js.map +7 -0
- package/module/chunks/{chunk-ZSBWP6MR.js → chunk-53UCFOI6.js} +13 -13
- package/module/chunks/chunk-53UCFOI6.js.map +7 -0
- package/module/chunks/{chunk-K4QITIOD.js → chunk-5DYPICGQ.js} +5 -5
- package/module/chunks/chunk-5DYPICGQ.js.map +7 -0
- package/module/chunks/{chunk-RQY6BB7F.js → chunk-6NLVLUCU.js} +1 -1
- package/module/chunks/chunk-6NLVLUCU.js.map +7 -0
- package/module/chunks/{chunk-XIZP3DYZ.js → chunk-C3GFY32L.js} +2 -2
- package/module/chunks/{chunk-JOFJS4UX.js → chunk-C7TXRFKI.js} +8 -8
- package/module/chunks/chunk-C7TXRFKI.js.map +7 -0
- package/module/chunks/{chunk-5FZAZ2XU.js → chunk-CMTNN2GG.js} +5 -5
- package/module/chunks/{chunk-PMZ2AWNS.js → chunk-COV2OGVE.js} +8 -8
- package/module/chunks/{chunk-MFIWFQAS.js → chunk-CS7TUOVQ.js} +6 -6
- package/module/chunks/{chunk-3MBRWVZS.js → chunk-DQPRUHAE.js} +9 -9
- package/module/chunks/chunk-DQPRUHAE.js.map +7 -0
- package/module/chunks/{chunk-FREEN2T3.js → chunk-EZJSIK72.js} +3 -3
- package/module/chunks/{chunk-C3NA7YCT.js → chunk-EZS4433X.js} +5 -5
- package/module/chunks/{chunk-PVT2JFAW.js → chunk-F3BPX66Z.js} +4 -4
- package/module/chunks/{chunk-QSKQE2FQ.js → chunk-FK3PXQBK.js} +64 -23
- package/module/chunks/chunk-FK3PXQBK.js.map +7 -0
- package/module/chunks/{chunk-4NRVBOUP.js → chunk-GD75KGSO.js} +5 -5
- package/module/chunks/{chunk-GFSNM45K.js → chunk-GMMN7SOC.js} +1 -1
- package/module/chunks/chunk-GMMN7SOC.js.map +7 -0
- package/module/chunks/{chunk-MWYPBMHI.js → chunk-GPLJNXKE.js} +10 -10
- package/module/chunks/chunk-GPLJNXKE.js.map +7 -0
- package/module/chunks/{chunk-KUPEYUWA.js → chunk-I6AJG47U.js} +1 -1
- package/module/chunks/chunk-I6AJG47U.js.map +7 -0
- package/module/chunks/{chunk-OSX3RDKV.js → chunk-IHFVJPGQ.js} +1 -1
- package/module/chunks/chunk-IHFVJPGQ.js.map +7 -0
- package/module/chunks/{chunk-MTPPRK4H.js → chunk-IWFH2PBS.js} +10 -10
- package/module/chunks/{chunk-56627Y63.js → chunk-J7M7QRC7.js} +9 -9
- package/module/chunks/chunk-J7M7QRC7.js.map +7 -0
- package/module/chunks/{chunk-GAXH7J77.js → chunk-JIIPUMEA.js} +1 -1
- package/module/chunks/chunk-JIIPUMEA.js.map +7 -0
- package/module/chunks/{chunk-6SUOFSGJ.js → chunk-JW4TMLMZ.js} +5 -5
- package/module/chunks/{chunk-VE4HUG27.js → chunk-KGSEQL62.js} +1 -1
- package/module/chunks/chunk-KGSEQL62.js.map +7 -0
- package/module/chunks/{chunk-WADWICSE.js → chunk-LEEGJTZT.js} +5 -5
- package/module/chunks/{chunk-X4VCE6GS.js → chunk-MUXHFVOC.js} +7 -7
- package/module/chunks/chunk-MUXHFVOC.js.map +7 -0
- package/module/chunks/{chunk-Q67T3UVN.js → chunk-NGEW5KQQ.js} +28 -8
- package/module/chunks/chunk-NGEW5KQQ.js.map +7 -0
- package/module/chunks/{chunk-ACSHFRXI.js → chunk-NNGZB36V.js} +4 -4
- package/module/chunks/{chunk-NKC5QFQ5.js.map → chunk-NNGZB36V.js.map} +3 -3
- package/module/chunks/{chunk-BSXRAEA2.js → chunk-NSCDFVBR.js} +6 -6
- package/module/chunks/chunk-NSCDFVBR.js.map +7 -0
- package/module/chunks/{chunk-6MLJBCIJ.js → chunk-NTQBWCZU.js} +7 -7
- package/module/chunks/{chunk-47MSCQAS.js → chunk-OC4QIR2D.js} +5 -5
- package/module/chunks/chunk-OC4QIR2D.js.map +7 -0
- package/module/chunks/{chunk-NKC5QFQ5.js → chunk-PFHSMP6M.js} +4 -4
- package/module/chunks/chunk-PFHSMP6M.js.map +7 -0
- package/module/chunks/{chunk-L3N7HHJU.js → chunk-PFKZCA73.js} +7 -7
- package/module/chunks/{chunk-5D7CUYUH.js → chunk-RFWUOGJ3.js} +1 -1
- package/module/chunks/chunk-RFWUOGJ3.js.map +7 -0
- package/module/chunks/{chunk-JGTSF7O4.js → chunk-RJ5FWZWY.js} +5 -5
- package/module/chunks/{chunk-2KBENXG3.js → chunk-RKJ7RKNK.js} +1 -1
- package/module/chunks/chunk-RKJ7RKNK.js.map +7 -0
- package/module/chunks/{chunk-IIPBKMJD.js → chunk-RPNGCVZL.js} +1 -1
- package/module/chunks/chunk-RPNGCVZL.js.map +7 -0
- package/module/chunks/{chunk-4Y6PRJOC.js → chunk-S6LWLEQ4.js} +4 -4
- package/module/chunks/chunk-S6LWLEQ4.js.map +7 -0
- package/module/chunks/{chunk-D27CPPHI.js → chunk-SFYQQARV.js} +3 -3
- package/module/chunks/{chunk-YMZGQ7CB.js → chunk-UCI2OCYF.js} +5 -5
- package/module/chunks/chunk-UCI2OCYF.js.map +7 -0
- package/module/chunks/{chunk-O74T4JNL.js → chunk-V3YGNO27.js} +2 -2
- package/module/chunks/chunk-V3YGNO27.js.map +7 -0
- package/module/chunks/{chunk-HOKI2CUB.js → chunk-VITMNUKV.js} +1 -1
- package/module/chunks/chunk-VITMNUKV.js.map +7 -0
- package/module/chunks/{chunk-UOT4CE2C.js → chunk-VSD7VGBN.js} +6 -6
- package/module/chunks/{chunk-RIR6YMJC.js → chunk-WLLGLYOO.js} +30 -14
- package/module/chunks/chunk-WLLGLYOO.js.map +7 -0
- package/module/chunks/{chunk-MRXRYL4Y.js → chunk-WSTQTULM.js} +3 -3
- package/module/chunks/{chunk-IITJ2NKO.js → chunk-XIT2UXG2.js} +5 -5
- package/module/chunks/chunk-XIT2UXG2.js.map +7 -0
- package/module/chunks/{chunk-2QBSLWJJ.js → chunk-XWRMHLAP.js} +1 -1
- package/module/chunks/chunk-XWRMHLAP.js.map +7 -0
- package/module/chunks/{chunk-LGNNSZ2O.js → chunk-YDVHOHRE.js} +10 -10
- package/module/chunks/{chunk-RZJ2PCV4.js → chunk-ZV4AQ5DL.js} +1 -1
- package/module/chunks/chunk-ZV4AQ5DL.js.map +7 -0
- package/module/groups/ActionsGroup.js +6 -6
- package/module/groups/ControlGroup.js +41 -41
- package/module/groups/EditingGroup.js +41 -41
- package/module/groups/EditorGroup.js +41 -41
- package/module/groups/EditorsControlGroup.js +41 -41
- package/module/groups/HistoryGroup.js +41 -41
- package/module/groups/SidebarControlGroup.js +41 -41
- package/module/groups/VisualizationGroup.js +41 -41
- package/module/groups/index.js +48 -48
- package/module/index.js +50 -50
- package/package.json +33 -32
- package/types/CollapsibleToolbar.d.ts.map +1 -1
- package/types/buttons/Display/Display.d.ts.map +1 -1
- package/types/buttons/ExportDashboardButton.d.ts.map +1 -1
- package/types/buttons/Fullscreen.d.ts.map +1 -1
- package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -1
- package/types/hooks/useToolbarButtonClick.d.ts +2 -0
- package/types/hooks/useToolbarButtonClick.d.ts.map +1 -0
- package/module/chunks/chunk-2KBENXG3.js.map +0 -7
- package/module/chunks/chunk-2QBSLWJJ.js.map +0 -7
- package/module/chunks/chunk-3MBRWVZS.js.map +0 -7
- package/module/chunks/chunk-47MSCQAS.js.map +0 -7
- package/module/chunks/chunk-4Y6PRJOC.js.map +0 -7
- package/module/chunks/chunk-56627Y63.js.map +0 -7
- package/module/chunks/chunk-5D7CUYUH.js.map +0 -7
- package/module/chunks/chunk-ACSHFRXI.js.map +0 -7
- package/module/chunks/chunk-BSXRAEA2.js.map +0 -7
- package/module/chunks/chunk-GAXH7J77.js.map +0 -7
- package/module/chunks/chunk-GFSNM45K.js.map +0 -7
- package/module/chunks/chunk-HOKI2CUB.js.map +0 -7
- package/module/chunks/chunk-IIPBKMJD.js.map +0 -7
- package/module/chunks/chunk-IITJ2NKO.js.map +0 -7
- package/module/chunks/chunk-JOFJS4UX.js.map +0 -7
- package/module/chunks/chunk-K4QITIOD.js.map +0 -7
- package/module/chunks/chunk-KUPEYUWA.js.map +0 -7
- package/module/chunks/chunk-MWYPBMHI.js.map +0 -7
- package/module/chunks/chunk-O74T4JNL.js.map +0 -7
- package/module/chunks/chunk-ODHRJQTV.js.map +0 -7
- package/module/chunks/chunk-OSX3RDKV.js.map +0 -7
- package/module/chunks/chunk-Q67T3UVN.js.map +0 -7
- package/module/chunks/chunk-QSKQE2FQ.js.map +0 -7
- package/module/chunks/chunk-RIR6YMJC.js.map +0 -7
- package/module/chunks/chunk-RQY6BB7F.js.map +0 -7
- package/module/chunks/chunk-RZJ2PCV4.js.map +0 -7
- package/module/chunks/chunk-VCWH2JHM.js.map +0 -7
- package/module/chunks/chunk-VE4HUG27.js.map +0 -7
- package/module/chunks/chunk-X4VCE6GS.js.map +0 -7
- package/module/chunks/chunk-YMZGQ7CB.js.map +0 -7
- package/module/chunks/chunk-ZSBWP6MR.js.map +0 -7
- /package/module/chunks/{chunk-XIZP3DYZ.js.map → chunk-C3GFY32L.js.map} +0 -0
- /package/module/chunks/{chunk-5FZAZ2XU.js.map → chunk-CMTNN2GG.js.map} +0 -0
- /package/module/chunks/{chunk-PMZ2AWNS.js.map → chunk-COV2OGVE.js.map} +0 -0
- /package/module/chunks/{chunk-MFIWFQAS.js.map → chunk-CS7TUOVQ.js.map} +0 -0
- /package/module/chunks/{chunk-FREEN2T3.js.map → chunk-EZJSIK72.js.map} +0 -0
- /package/module/chunks/{chunk-C3NA7YCT.js.map → chunk-EZS4433X.js.map} +0 -0
- /package/module/chunks/{chunk-PVT2JFAW.js.map → chunk-F3BPX66Z.js.map} +0 -0
- /package/module/chunks/{chunk-4NRVBOUP.js.map → chunk-GD75KGSO.js.map} +0 -0
- /package/module/chunks/{chunk-MTPPRK4H.js.map → chunk-IWFH2PBS.js.map} +0 -0
- /package/module/chunks/{chunk-6SUOFSGJ.js.map → chunk-JW4TMLMZ.js.map} +0 -0
- /package/module/chunks/{chunk-WADWICSE.js.map → chunk-LEEGJTZT.js.map} +0 -0
- /package/module/chunks/{chunk-6MLJBCIJ.js.map → chunk-NTQBWCZU.js.map} +0 -0
- /package/module/chunks/{chunk-L3N7HHJU.js.map → chunk-PFKZCA73.js.map} +0 -0
- /package/module/chunks/{chunk-JGTSF7O4.js.map → chunk-RJ5FWZWY.js.map} +0 -0
- /package/module/chunks/{chunk-D27CPPHI.js.map → chunk-SFYQQARV.js.map} +0 -0
- /package/module/chunks/{chunk-UOT4CE2C.js.map → chunk-VSD7VGBN.js.map} +0 -0
- /package/module/chunks/{chunk-MRXRYL4Y.js.map → chunk-WSTQTULM.js.map} +0 -0
- /package/module/chunks/{chunk-LGNNSZ2O.js.map → chunk-YDVHOHRE.js.map} +0 -0
package/buttons/Shapes.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/Shapes.tsx", "esm-externals:react", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/react-icons/Circle", "esm-externals:@splunk/react-icons/Square", "esm-externals:@splunk/react-icons/Line", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/ShapesVariety", "esm-externals:@splunk/react-ui/Button", "esm-externals:styled-components", "../src/components/StyledButton.tsx", "../src/hooks/useDropdown.ts", "../src/Item.tsx", "../src/PopoverItemButton.tsx", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "../src/IconButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback } from 'react';\nimport Menu from '@splunk/react-ui/Menu';\nimport Circle from '@splunk/react-icons/Circle';\nimport BoxUnchecked from '@splunk/react-icons/Square';\nimport Line from '@splunk/react-icons/Line';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AddShapeDropdown from '@splunk/react-icons/ShapesVariety';\nimport type {\n StructureItemType,\n VisualizationDefinition,\n} from '@splunk/dashboard-types';\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport PopoverItemButton from '../PopoverItemButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\n\nconst shapesDropdown = prepareIcon({\n Icon: AddShapeDropdown,\n screenReaderContent: _('Add shape'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"shapes-button\"\n icon={shapesDropdown}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst circleIcon = <Circle />;\nconst uncheckedBoxIcon = <BoxUnchecked />;\nconst lineIcon = <Line />;\n\n/**\n * Shapes button that has a dropdown menu.\n */\nconst Shapes = ({ dashboardApi, layoutType }: ToolbarButtonProps) => {\n const supportLine = layoutType === 'absolute';\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const handleCreateVizButtonClick = useCallback(\n (\n vizToCreate: VisualizationDefinition<Record<string, unknown>>,\n layoutItemType?: StructureItemType\n ) => {\n return () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: vizToCreate,\n layoutItemType,\n });\n dashboardApi?.openPanel({ activePanel: 'config' });\n };\n },\n [dashboardApi]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu data-test=\"shapes-dropdown-children-container\">\n <Menu.Item\n data-test=\"ellipse-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.ellipse',\n })}\n >\n <PopoverItemButton\n icon={circleIcon}\n label={_('Ellipse')}\n />\n </Menu.Item>\n <Menu.Item\n data-test=\"rectangle-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.rectangle',\n })}\n >\n <PopoverItemButton\n icon={uncheckedBoxIcon}\n label={_('Rectangle')}\n />\n </Menu.Item>\n {supportLine && (\n <Menu.Item\n data-test=\"line-button\"\n onClick={handleCreateVizButtonClick(\n {\n type: 'abslayout.line',\n },\n 'line'\n )}\n >\n <PopoverItemButton\n icon={lineIcon}\n label={_('Line')}\n />\n </Menu.Item>\n )}\n </Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Shapes;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Circle\";\nexport * from \"@splunk/react-icons/Circle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Line\";\nexport * from \"@splunk/react-icons/Line\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ShapesVariety\";\nexport * from \"@splunk/react-icons/ShapesVariety\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import Button from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\n\nexport const StyledDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n", "import type { DropdownRequestCloseHandler } from '@splunk/react-ui/Dropdown';\nimport { useCallback, useRef, useState } from 'react';\n\ninterface UseDropdownArgs {\n isContentClickClose?: boolean;\n}\n\ninterface UseDropdownReturn {\n isOpen: boolean;\n handleRequestClose: DropdownRequestCloseHandler;\n handleRequestOpen: () => void;\n handleForceClose: () => void;\n setHasChildModal: (value: boolean) => void;\n}\n\n/**\n * Custom React Hook for the controlled SUI Dropdown component.\n *\n * @param {Object} config\n * @param {Boolean} config.isContentClickClose Control if dropdown children onClick's will close the dropdown automatically\n * @returns {Object} value\n * @returns {Boolean} value.isOpen The only state of this hook\n * @returns {Function} value.handleRequestOpen Event handler to open the dropdown\n * @returns {Function} value.handleRequestClose Event handler that SUI Dropdown calls when requested to close\n * @returns {Function} value.handleForceClose Event handler to forcefully close the dropdown\n */\nconst useDropdown = ({\n isContentClickClose = true,\n}: UseDropdownArgs): UseDropdownReturn => {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildModal = useRef(false);\n\n const handleRequestClose = useCallback<DropdownRequestCloseHandler>(\n ({ reason }) => {\n if (reason === 'contentClick' && !isContentClickClose) {\n // This return results in the dropdown not closing.\n return;\n }\n\n // If there is a child modal then don't close the root on ESC press\n if (reason === 'escapeKey' && hasChildModal.current) {\n return;\n }\n\n setIsOpen(false);\n },\n [isContentClickClose]\n );\n\n const handleRequestOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleForceClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const setHasChildModal = useCallback((value: boolean) => {\n hasChildModal.current = value;\n }, []);\n\n return {\n isOpen,\n handleRequestOpen,\n handleRequestClose,\n handleForceClose,\n setHasChildModal,\n };\n};\n\nexport default useDropdown;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport styled from 'styled-components';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledContentWrapper = styled.span`\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n max-width: 100%;\n`;\n\nconst StyledIcon = styled.span`\n display: inline-block;\n padding-right: 8px;\n`;\n\nconst StyledLabel = styled.span`\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 0 1 auto;\n`;\n\nexport interface PopoverItemButtonProps extends ToolbarButtonProps {\n icon: JSX.Element;\n label?: string;\n}\n\n/**\n * Custom button component for popovers created for specific styling - aligning text to the left\n */\nconst PopoverItemButton = ({ icon, label }: PopoverItemButtonProps) => (\n <StyledContentWrapper>\n {icon && <StyledIcon>{icon}</StyledIcon>}\n {label && <StyledLabel data-test=\"label-title\">{label}</StyledLabel>}\n </StyledContentWrapper>\n);\n\nexport default PopoverItemButton;\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * 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;AAAA;;;ACAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import React, { useCallback } from 'react';\nimport Menu from '@splunk/react-ui/Menu';\nimport Circle from '@splunk/react-icons/Circle';\nimport BoxUnchecked from '@splunk/react-icons/Square';\nimport Line from '@splunk/react-icons/Line';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AddShapeDropdown from '@splunk/react-icons/ShapesVariety';\nimport type {\n StructureItemType,\n VisualizationDefinition,\n} from '@splunk/dashboard-types';\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport PopoverItemButton from '../PopoverItemButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\n\nconst shapesDropdown = prepareIcon({\n Icon: AddShapeDropdown,\n screenReaderContent: _('Add shape'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"shapes-button\"\n icon={shapesDropdown}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst circleIcon = <Circle />;\nconst uncheckedBoxIcon = <BoxUnchecked />;\nconst lineIcon = <Line />;\n\n/**\n * Shapes button that has a dropdown menu.\n */\nconst Shapes = ({ dashboardApi, layoutType }: ToolbarButtonProps) => {\n const supportLine = layoutType === 'absolute';\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const handleCreateVizButtonClick = useCallback(\n (\n vizToCreate: VisualizationDefinition<Record<string, unknown>>,\n layoutItemType?: StructureItemType\n ) => {\n return () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: vizToCreate,\n layoutItemType,\n });\n dashboardApi?.openPanel({ activePanel: 'config' });\n };\n },\n [dashboardApi]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu data-test=\"shapes-dropdown-children-container\">\n <Menu.Item\n data-test=\"ellipse-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.ellipse',\n })}\n >\n <PopoverItemButton\n icon={circleIcon}\n label={_('Ellipse')}\n />\n </Menu.Item>\n <Menu.Item\n data-test=\"rectangle-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.rectangle',\n })}\n >\n <PopoverItemButton\n icon={uncheckedBoxIcon}\n label={_('Rectangle')}\n />\n </Menu.Item>\n {supportLine && (\n <Menu.Item\n data-test=\"line-button\"\n onClick={handleCreateVizButtonClick(\n {\n type: 'abslayout.line',\n },\n 'line'\n )}\n >\n <PopoverItemButton\n icon={lineIcon}\n label={_('Line')}\n />\n </Menu.Item>\n )}\n </Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Shapes;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/Circle\";\nexport * from \"@splunk/react-icons/Circle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/Line\";\nexport * from \"@splunk/react-icons/Line\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ShapesVariety\";\nexport * from \"@splunk/react-icons/ShapesVariety\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import Button from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\n\nexport const StyledDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n", "import type { DropdownRequestCloseHandler } from '@splunk/react-ui/Dropdown';\nimport { useCallback, useRef, useState } from 'react';\n\ninterface UseDropdownArgs {\n isContentClickClose?: boolean;\n}\n\ninterface UseDropdownReturn {\n isOpen: boolean;\n handleRequestClose: DropdownRequestCloseHandler;\n handleRequestOpen: () => void;\n handleForceClose: () => void;\n setHasChildModal: (value: boolean) => void;\n}\n\n/**\n * Custom React Hook for the controlled SUI Dropdown component.\n *\n * @param {Object} config\n * @param {Boolean} config.isContentClickClose Control if dropdown children onClick's will close the dropdown automatically\n * @returns {Object} value\n * @returns {Boolean} value.isOpen The only state of this hook\n * @returns {Function} value.handleRequestOpen Event handler to open the dropdown\n * @returns {Function} value.handleRequestClose Event handler that SUI Dropdown calls when requested to close\n * @returns {Function} value.handleForceClose Event handler to forcefully close the dropdown\n */\nconst useDropdown = ({\n isContentClickClose = true,\n}: UseDropdownArgs): UseDropdownReturn => {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildModal = useRef(false);\n\n const handleRequestClose = useCallback<DropdownRequestCloseHandler>(\n ({ reason }) => {\n if (reason === 'contentClick' && !isContentClickClose) {\n // This return results in the dropdown not closing.\n return;\n }\n\n // If there is a child modal then don't close the root on ESC press\n if (reason === 'escapeKey' && hasChildModal.current) {\n return;\n }\n\n setIsOpen(false);\n },\n [isContentClickClose]\n );\n\n const handleRequestOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleForceClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const setHasChildModal = useCallback((value: boolean) => {\n hasChildModal.current = value;\n }, []);\n\n return {\n isOpen,\n handleRequestOpen,\n handleRequestClose,\n handleForceClose,\n setHasChildModal,\n };\n};\n\nexport default useDropdown;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport styled from 'styled-components';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledContentWrapper = styled.span`\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n max-width: 100%;\n`;\n\nconst StyledIcon = styled.span`\n display: inline-block;\n padding-right: 8px;\n`;\n\nconst StyledLabel = styled.span`\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 0 1 auto;\n`;\n\nexport interface PopoverItemButtonProps extends ToolbarButtonProps {\n icon: JSX.Element;\n label?: string;\n}\n\n/**\n * Custom button component for popovers created for specific styling - aligning text to the left\n */\nconst PopoverItemButton = ({ icon, label }: PopoverItemButtonProps) => (\n <StyledContentWrapper>\n {icon && <StyledIcon>{icon}</StyledIcon>}\n {label && <StyledLabel data-test=\"label-title\">{label}</StyledLabel>}\n </StyledContentWrapper>\n);\n\nexport default PopoverItemButton;\n", "import * 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": "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",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
|
|
7
7
|
}
|
package/buttons/Source.js
CHANGED
|
@@ -134,7 +134,7 @@ __export(styled_components_exports, {
|
|
|
134
134
|
});
|
|
135
135
|
var defaultImport8 = __toESM(require("styled-components"));
|
|
136
136
|
__reExport(styled_components_exports, require("styled-components"));
|
|
137
|
-
var styled_components_default =
|
|
137
|
+
var styled_components_default = defaultImport8.default;
|
|
138
138
|
|
|
139
139
|
// src/Item.tsx
|
|
140
140
|
var Item_default = styled_components_default.div``;
|
package/buttons/Source.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/Source.tsx", "esm-externals:react", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "esm-externals:@splunk/dashboard-context", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "esm-externals:styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport { useRestoreFocus, useToolbarRef } from '@splunk/dashboard-context';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface SourceProps extends ToolbarButtonProps {\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n disabled?: boolean;\n}\n\nconst icon = prepareIcon({\n Icon: SourceIcon,\n screenReaderContent: _('Source code'),\n});\n\n/**\n * Button that toggles source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => {\n const sourceButtonRef = useToolbarRef('source');\n const setReturnPoint = useRestoreFocus(sourceButtonRef);\n\n const onSourceClick = useCallback<ButtonClickHandler>(\n (event, data) => {\n if (onClick) {\n onClick(event, data);\n setReturnPoint();\n }\n },\n [onClick, setReturnPoint]\n );\n\n return (\n <IconButton\n testLabel=\"source-button\"\n onClick={onSourceClick}\n disabled={disabled}\n icon={icon}\n buttonRef={sourceButtonRef}\n />\n );\n};\n\nexport default Source;\n", "
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport { useRestoreFocus, useToolbarRef } from '@splunk/dashboard-context';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface SourceProps extends ToolbarButtonProps {\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n disabled?: boolean;\n}\n\nconst icon = prepareIcon({\n Icon: SourceIcon,\n screenReaderContent: _('Source code'),\n});\n\n/**\n * Button that toggles source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => {\n const sourceButtonRef = useToolbarRef('source');\n const setReturnPoint = useRestoreFocus(sourceButtonRef);\n\n const onSourceClick = useCallback<ButtonClickHandler>(\n (event, data) => {\n if (onClick) {\n onClick(event, data);\n setReturnPoint();\n }\n },\n [onClick, setReturnPoint]\n );\n\n return (\n <IconButton\n testLabel=\"source-button\"\n onClick={onSourceClick}\n disabled={disabled}\n icon={icon}\n buttonRef={sourceButtonRef}\n />\n );\n};\n\nexport default Source;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-context\";\nexport * from \"@splunk/dashboard-context\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\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": "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",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
|
|
7
7
|
}
|
package/buttons/Undo.js
CHANGED
|
@@ -125,7 +125,7 @@ __export(styled_components_exports, {
|
|
|
125
125
|
});
|
|
126
126
|
var defaultImport7 = __toESM(require("styled-components"));
|
|
127
127
|
__reExport(styled_components_exports, require("styled-components"));
|
|
128
|
-
var styled_components_default =
|
|
128
|
+
var styled_components_default = defaultImport7.default;
|
|
129
129
|
|
|
130
130
|
// src/Item.tsx
|
|
131
131
|
var Item_default = styled_components_default.div``;
|
package/buttons/Undo.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/Undo.tsx", "esm-externals:react", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/ArrowBowLeft", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "esm-externals:styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
|
|
4
|
-
"sourcesContent": ["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;AAAA;;;ACAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["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", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBowLeft\";\nexport * from \"@splunk/react-icons/ArrowBowLeft\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\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": "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",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
|
|
7
7
|
}
|
package/buttons/index.js
CHANGED
|
@@ -179,7 +179,7 @@ __export(styled_components_exports, {
|
|
|
179
179
|
});
|
|
180
180
|
var defaultImport8 = __toESM(require("styled-components"));
|
|
181
181
|
__reExport(styled_components_exports, require("styled-components"));
|
|
182
|
-
var styled_components_default =
|
|
182
|
+
var styled_components_default = defaultImport8.default;
|
|
183
183
|
|
|
184
184
|
// src/Item.tsx
|
|
185
185
|
var Item_default = styled_components_default.div``;
|
|
@@ -645,6 +645,9 @@ var Checkmark_default = "default" in defaultImport19 ? defaultImport19.default :
|
|
|
645
645
|
var menuStyle = {
|
|
646
646
|
minWidth: "150px"
|
|
647
647
|
};
|
|
648
|
+
var CheckmarkIcon = styled_components_default(Checkmark_default)`
|
|
649
|
+
color: ${themes_exports.variables.contentColorActive};
|
|
650
|
+
`;
|
|
648
651
|
var CheckmarkPlaceholder = styled_components_default.span`
|
|
649
652
|
display: inline-block;
|
|
650
653
|
width: 16px;
|
|
@@ -658,11 +661,23 @@ var Display = ({
|
|
|
658
661
|
const hasGlobalInputs = ((_a = globalInputs == null ? void 0 : globalInputs.length) != null ? _a : 0) > 0;
|
|
659
662
|
const areInputsCollapsed = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectAreGlobalItemsCollapsed);
|
|
660
663
|
const showInputs = !areInputsCollapsed;
|
|
664
|
+
const description = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectDescription);
|
|
665
|
+
const { showTitleAndDescription = true } = (0, dashboard_state_exports.useSelector)(
|
|
666
|
+
dashboard_state_exports.selectLayoutGlobalOptions
|
|
667
|
+
);
|
|
668
|
+
const hasDescription = !!description && showTitleAndDescription;
|
|
669
|
+
const isDescriptionCollapsed = (0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectIsDescriptionCollapsed);
|
|
670
|
+
const showDescription = !isDescriptionCollapsed;
|
|
661
671
|
const handleInputsToggle = (0, react_exports.useCallback)(() => {
|
|
662
672
|
dashboardApi == null ? void 0 : dashboardApi.setAreGlobalInputsCollapsed({
|
|
663
673
|
collapsed: !areInputsCollapsed
|
|
664
674
|
});
|
|
665
675
|
}, [dashboardApi, areInputsCollapsed]);
|
|
676
|
+
const handleDescriptionToggle = (0, react_exports.useCallback)(() => {
|
|
677
|
+
dashboardApi == null ? void 0 : dashboardApi.setIsDescriptionCollapsed({
|
|
678
|
+
collapsed: !isDescriptionCollapsed
|
|
679
|
+
});
|
|
680
|
+
}, [dashboardApi, isDescriptionCollapsed]);
|
|
666
681
|
const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
|
|
667
682
|
isContentClickClose: true
|
|
668
683
|
});
|
|
@@ -680,11 +695,28 @@ var Display = ({
|
|
|
680
695
|
),
|
|
681
696
|
[appearance]
|
|
682
697
|
);
|
|
683
|
-
const
|
|
684
|
-
return showInputs ? /* @__PURE__ */ react_default.createElement(
|
|
698
|
+
const inputsCheckmarkIcon = (0, react_exports.useMemo)(() => {
|
|
699
|
+
return showInputs ? /* @__PURE__ */ react_default.createElement(CheckmarkIcon, null) : /* @__PURE__ */ react_default.createElement(CheckmarkPlaceholder, null);
|
|
685
700
|
}, [showInputs]);
|
|
701
|
+
const descriptionCheckmarkIcon = (0, react_exports.useMemo)(() => {
|
|
702
|
+
return showDescription ? /* @__PURE__ */ react_default.createElement(CheckmarkIcon, null) : /* @__PURE__ */ react_default.createElement(CheckmarkPlaceholder, null);
|
|
703
|
+
}, [showDescription]);
|
|
686
704
|
const dropdownMenuChildren = (0, react_exports.useMemo)(() => {
|
|
687
705
|
const items = [];
|
|
706
|
+
if (hasDescription) {
|
|
707
|
+
items.push(
|
|
708
|
+
/* @__PURE__ */ react_default.createElement(
|
|
709
|
+
Menu_default.Item,
|
|
710
|
+
{
|
|
711
|
+
key: "description-item",
|
|
712
|
+
"data-test": "description-menu-item",
|
|
713
|
+
onClick: handleDescriptionToggle,
|
|
714
|
+
startAdornment: descriptionCheckmarkIcon
|
|
715
|
+
},
|
|
716
|
+
(0, i18n_exports._)("Dashboard description")
|
|
717
|
+
)
|
|
718
|
+
);
|
|
719
|
+
}
|
|
688
720
|
if (hasGlobalInputs) {
|
|
689
721
|
items.push(
|
|
690
722
|
/* @__PURE__ */ react_default.createElement(
|
|
@@ -693,14 +725,21 @@ var Display = ({
|
|
|
693
725
|
key: "inputs-item",
|
|
694
726
|
"data-test": "inputs-menu-item",
|
|
695
727
|
onClick: handleInputsToggle,
|
|
696
|
-
startAdornment:
|
|
728
|
+
startAdornment: inputsCheckmarkIcon
|
|
697
729
|
},
|
|
698
730
|
(0, i18n_exports._)("Inputs")
|
|
699
731
|
)
|
|
700
732
|
);
|
|
701
733
|
}
|
|
702
734
|
return items;
|
|
703
|
-
}, [
|
|
735
|
+
}, [
|
|
736
|
+
hasDescription,
|
|
737
|
+
hasGlobalInputs,
|
|
738
|
+
handleDescriptionToggle,
|
|
739
|
+
handleInputsToggle,
|
|
740
|
+
descriptionCheckmarkIcon,
|
|
741
|
+
inputsCheckmarkIcon
|
|
742
|
+
]);
|
|
704
743
|
if (dropdownMenuChildren.length === 0) {
|
|
705
744
|
return null;
|
|
706
745
|
}
|
|
@@ -766,6 +805,10 @@ var EmptyVisualization_default = EmptyVisualization;
|
|
|
766
805
|
|
|
767
806
|
// src/buttons/ExportDashboardButton.tsx
|
|
768
807
|
var downloadIcon = /* @__PURE__ */ react_default.createElement(ArrowBroadUnderbarDown_default, null);
|
|
808
|
+
var StyledButton = styled_components_default(Button_default)`
|
|
809
|
+
flex-shrink: 0;
|
|
810
|
+
flex-grow: 0;
|
|
811
|
+
`;
|
|
769
812
|
var ExportDashboardButton = ({
|
|
770
813
|
appearance = "secondary",
|
|
771
814
|
scale = 1
|
|
@@ -779,7 +822,7 @@ var ExportDashboardButton = ({
|
|
|
779
822
|
setOpen(false);
|
|
780
823
|
}, []);
|
|
781
824
|
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(
|
|
782
|
-
|
|
825
|
+
StyledButton,
|
|
783
826
|
{
|
|
784
827
|
elementRef: buttonRef,
|
|
785
828
|
icon: downloadIcon,
|
|
@@ -811,6 +854,24 @@ var defaultImport21 = __toESM(require("@splunk/react-icons/ChevronsOut"));
|
|
|
811
854
|
__reExport(ChevronsOut_exports, require("@splunk/react-icons/ChevronsOut"));
|
|
812
855
|
var ChevronsOut_default = "default" in defaultImport21 ? defaultImport21.default : defaultImport21;
|
|
813
856
|
|
|
857
|
+
// src/hooks/useToolbarButtonClick.ts
|
|
858
|
+
var useToolbarButtonClick = (event, onClick) => {
|
|
859
|
+
const dispatch = (0, dashboard_state_exports.useDispatch)();
|
|
860
|
+
return (0, react_exports.useCallback)(
|
|
861
|
+
(...args) => {
|
|
862
|
+
if (dispatch && event) {
|
|
863
|
+
dispatch(
|
|
864
|
+
(0, dashboard_state_exports.toolbarButtonClicked)({
|
|
865
|
+
event
|
|
866
|
+
})
|
|
867
|
+
);
|
|
868
|
+
}
|
|
869
|
+
onClick == null ? void 0 : onClick(...args);
|
|
870
|
+
},
|
|
871
|
+
[dispatch, event, onClick]
|
|
872
|
+
);
|
|
873
|
+
};
|
|
874
|
+
|
|
814
875
|
// src/buttons/Fullscreen.tsx
|
|
815
876
|
var icon3 = prepareIcon({
|
|
816
877
|
Icon: ChevronsOut_default,
|
|
@@ -818,9 +879,10 @@ var icon3 = prepareIcon({
|
|
|
818
879
|
});
|
|
819
880
|
var FullScreen = ({ dashboardApi }) => {
|
|
820
881
|
const isFullscreen = !!(0, dashboard_state_exports.useSelector)(dashboard_state_exports.selectFullscreenElement);
|
|
821
|
-
const
|
|
822
|
-
dashboardApi == null ? void 0 : dashboardApi.enterFullscreen();
|
|
823
|
-
}, [dashboardApi]);
|
|
882
|
+
const enterFullscreen = (0, react_exports.useCallback)(() => __async(null, null, function* () {
|
|
883
|
+
yield dashboardApi == null ? void 0 : dashboardApi.enterFullscreen();
|
|
884
|
+
}), [dashboardApi]);
|
|
885
|
+
const handleClick = useToolbarButtonClick("fullscreen", enterFullscreen);
|
|
824
886
|
return /* @__PURE__ */ react_default.createElement(
|
|
825
887
|
IconButton_default,
|
|
826
888
|
{
|
|
@@ -1020,7 +1082,7 @@ var HelpButton = ({ helpLinks = [] }) => {
|
|
|
1020
1082
|
}
|
|
1021
1083
|
return helpLinks.map((link) => {
|
|
1022
1084
|
const { label = "", description = "", url } = link;
|
|
1023
|
-
const key = label.
|
|
1085
|
+
const key = label.replaceAll(/\s/g, "");
|
|
1024
1086
|
return /* @__PURE__ */ react_default.createElement(
|
|
1025
1087
|
Menu_default.Item,
|
|
1026
1088
|
{
|
|
@@ -1890,13 +1952,15 @@ var StyledNumber = styled_components_default(Number_default)`
|
|
|
1890
1952
|
var StyledEndAdornment = styled_components_default.span`
|
|
1891
1953
|
color: ${themes_exports.variables.contentColorActive};
|
|
1892
1954
|
`;
|
|
1955
|
+
var percentAdornment = /* @__PURE__ */ react_default.createElement(StyledEndAdornment, null, "%");
|
|
1893
1956
|
var ZoomNumber = ({
|
|
1894
1957
|
currentScale,
|
|
1895
1958
|
onScaleChange
|
|
1896
1959
|
}) => {
|
|
1897
1960
|
const onValueChange = (0, react_exports.useCallback)(
|
|
1898
|
-
(
|
|
1899
|
-
|
|
1961
|
+
(_e, value = 100) => {
|
|
1962
|
+
const v = typeof value === "string" ? Number.parseInt(value, 10) : value;
|
|
1963
|
+
onScaleChange(v)();
|
|
1900
1964
|
},
|
|
1901
1965
|
[onScaleChange]
|
|
1902
1966
|
);
|
|
@@ -1916,7 +1980,7 @@ var ZoomNumber = ({
|
|
|
1916
1980
|
min: 1,
|
|
1917
1981
|
max: 1e4,
|
|
1918
1982
|
roundTo: 0,
|
|
1919
|
-
endAdornment:
|
|
1983
|
+
endAdornment: percentAdornment,
|
|
1920
1984
|
hideStepButtons: true,
|
|
1921
1985
|
"data-test": "zoom-number",
|
|
1922
1986
|
append: true
|