@splunk/dashboard-toolbar 29.5.2 → 29.7.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/CHANGELOG.md +1587 -0
- package/IconButton.js +18 -56
- package/IconButton.js.map +1 -1
- package/ItemGroup.js +6 -24
- package/ItemGroup.js.map +1 -1
- package/Toolbar.js +6 -14
- package/Toolbar.js.map +1 -1
- package/buttons/Charts.js +14 -47
- package/buttons/Charts.js.map +2 -2
- package/buttons/Config.js +21 -59
- package/buttons/Config.js.map +1 -1
- package/buttons/ContentExport.js +18 -56
- package/buttons/ContentExport.js.map +1 -1
- package/buttons/Data.js +21 -59
- package/buttons/Data.js.map +1 -1
- package/buttons/EmptyVisualization.js +22 -80
- package/buttons/EmptyVisualization.js.map +1 -1
- package/buttons/Fullscreen.js +22 -80
- package/buttons/Fullscreen.js.map +1 -1
- package/buttons/GridLineSwitch.js +2 -3
- package/buttons/GridLineSwitch.js.map +1 -1
- package/buttons/HelpButton.js +11 -44
- package/buttons/HelpButton.js.map +2 -2
- package/buttons/IconGallery.js +15 -68
- package/buttons/IconGallery.js.map +2 -2
- package/buttons/Image.js +22 -80
- package/buttons/Image.js.map +1 -1
- package/buttons/ImageGallery.js +15 -68
- package/buttons/ImageGallery.js.map +2 -2
- package/buttons/Inputs.js +19 -49
- package/buttons/Inputs.js.map +2 -2
- package/buttons/Markdown.js +20 -58
- package/buttons/Markdown.js.map +1 -1
- package/buttons/ModeSwitch.js +1 -1
- package/buttons/ModeSwitch.js.map +1 -1
- package/buttons/Redo.js +21 -63
- package/buttons/Redo.js.map +1 -1
- package/buttons/Shapes.js +13 -46
- package/buttons/Shapes.js.map +2 -2
- package/buttons/Source.js +18 -56
- package/buttons/Source.js.map +1 -1
- package/buttons/Undo.js +21 -63
- package/buttons/Undo.js.map +1 -1
- package/buttons/index.js +145 -170
- package/buttons/index.js.map +2 -2
- package/groups/ControlGroup.js +34 -99
- package/groups/ControlGroup.js.map +2 -2
- package/groups/EditingGroup.js +62 -78
- package/groups/EditingGroup.js.map +2 -2
- package/groups/EditorGroup.js +30 -78
- package/groups/EditorGroup.js.map +2 -2
- package/groups/EditorsControlGroup.js +39 -87
- package/groups/EditorsControlGroup.js.map +2 -2
- package/groups/HistoryGroup.js +36 -89
- package/groups/HistoryGroup.js.map +2 -2
- package/groups/SidebarControlGroup.js +39 -84
- package/groups/SidebarControlGroup.js.map +2 -2
- package/groups/VisualizationGroup.js +56 -118
- package/groups/VisualizationGroup.js.map +2 -2
- package/groups/index.js +124 -179
- package/groups/index.js.map +2 -2
- package/index.js +164 -207
- package/index.js.map +2 -2
- package/module/CollapsibleToolbar.js +11 -11
- package/module/IconButton.js +6 -6
- package/module/Item.js +3 -3
- package/module/ItemGroup.js +7 -7
- package/module/PopoverItemButton.js +4 -4
- package/module/Toolbar.js +6 -6
- package/module/buttons/Charts.js +15 -15
- package/module/buttons/Config.js +9 -9
- package/module/buttons/ContentExport.js +9 -9
- package/module/buttons/Data.js +10 -10
- package/module/buttons/EmptyVisualization.js +9 -9
- package/module/buttons/ExportDashboardButton.js +8 -8
- package/module/buttons/Fullscreen.js +9 -9
- package/module/buttons/GridLineSwitch.js +8 -8
- package/module/buttons/HelpButton.js +11 -11
- package/module/buttons/IconGallery.js +11 -11
- package/module/buttons/Image.js +9 -9
- package/module/buttons/ImageGallery.js +12 -12
- package/module/buttons/Inputs.js +11 -11
- package/module/buttons/Markdown.js +8 -8
- package/module/buttons/ModeSwitch.js +9 -9
- package/module/buttons/Redo.js +8 -8
- package/module/buttons/Shapes.js +13 -13
- package/module/buttons/Source.js +9 -9
- package/module/buttons/Undo.js +8 -8
- package/module/buttons/index.js +40 -40
- package/module/chunks/{chunk-YH3LWJKQ.js → chunk-2CIJZJRQ.js} +17 -17
- package/module/chunks/{chunk-YH3LWJKQ.js.map → chunk-2CIJZJRQ.js.map} +1 -1
- package/module/chunks/{chunk-FMSKWHRK.js → chunk-2REUP3TZ.js} +11 -14
- package/module/chunks/{chunk-FMSKWHRK.js.map → chunk-2REUP3TZ.js.map} +1 -1
- package/module/chunks/chunk-2WGGOMJE.js +34 -0
- package/module/chunks/{chunk-E7EUH33R.js.map → chunk-2WGGOMJE.js.map} +1 -1
- package/module/chunks/{chunk-KDWTCNVM.js → chunk-37TNXIHV.js} +8 -12
- package/module/chunks/{chunk-KDWTCNVM.js.map → chunk-37TNXIHV.js.map} +1 -1
- package/module/chunks/{chunk-GMMN7SOC.js → chunk-3PEWQDKC.js} +2 -2
- package/module/chunks/{chunk-ZV4AQ5DL.js → chunk-6C2NOEOI.js} +2 -2
- package/module/chunks/{chunk-VSD7VGBN.js → chunk-A4O2G7H7.js} +6 -6
- package/module/chunks/{chunk-RZWTF3BK.js → chunk-A4S4A2N5.js} +25 -39
- package/module/chunks/{chunk-RZWTF3BK.js.map → chunk-A4S4A2N5.js.map} +1 -1
- package/module/chunks/{chunk-6NLVLUCU.js → chunk-A6YRCP43.js} +2 -2
- package/module/chunks/{chunk-5IFDFRGD.js → chunk-ACVHX3RN.js} +8 -12
- package/module/chunks/{chunk-5IFDFRGD.js.map → chunk-ACVHX3RN.js.map} +1 -1
- package/module/chunks/chunk-AFH5LL74.js +26 -0
- package/module/chunks/{chunk-UCI2OCYF.js → chunk-B4IRCRYC.js} +12 -20
- package/module/chunks/{chunk-UCI2OCYF.js.map → chunk-B4IRCRYC.js.map} +1 -1
- package/module/chunks/{chunk-YMIK47DX.js → chunk-BNOIJ742.js} +14 -15
- package/module/chunks/{chunk-YMIK47DX.js.map → chunk-BNOIJ742.js.map} +1 -1
- package/module/chunks/{chunk-BDFUA6X7.js → chunk-CASUTGK5.js} +9 -14
- package/module/chunks/chunk-CASUTGK5.js.map +7 -0
- package/module/chunks/{chunk-DQZGTQ2Z.js → chunk-DIC6BJPJ.js} +9 -9
- package/module/chunks/{chunk-SJNT4MK5.js → chunk-DONX4ISJ.js} +6 -6
- package/module/chunks/{chunk-NTQBWCZU.js → chunk-EDGMTRPE.js} +8 -8
- package/module/chunks/{chunk-NTQBWCZU.js.map → chunk-EDGMTRPE.js.map} +1 -1
- package/module/chunks/{chunk-UNYHHA4F.js → chunk-EPMHIBVT.js} +10 -11
- package/module/chunks/{chunk-UNYHHA4F.js.map → chunk-EPMHIBVT.js.map} +1 -1
- package/module/chunks/{chunk-IHFVJPGQ.js → chunk-EVRV5ZFT.js} +2 -2
- package/module/chunks/{chunk-I6AJG47U.js → chunk-EZBGH5QE.js} +2 -2
- package/module/chunks/{chunk-DM27U6AI.js → chunk-F6RTO5OR.js} +18 -17
- package/module/chunks/{chunk-DM27U6AI.js.map → chunk-F6RTO5OR.js.map} +1 -1
- package/module/chunks/{chunk-TQIO5WSS.js → chunk-GGU3N3OR.js} +5 -5
- package/module/chunks/{chunk-RKJ7RKNK.js → chunk-GQJXWXKY.js} +2 -2
- package/module/chunks/{chunk-QH53L2XQ.js → chunk-GT7JERMF.js} +7 -10
- package/module/chunks/{chunk-QH53L2XQ.js.map → chunk-GT7JERMF.js.map} +1 -1
- package/module/chunks/{chunk-U5YCUIDK.js → chunk-HGF7R67S.js} +9 -12
- package/module/chunks/{chunk-U5YCUIDK.js.map → chunk-HGF7R67S.js.map} +1 -1
- package/module/chunks/{chunk-ZEITW5IL.js → chunk-HNLSR2U2.js} +10 -10
- package/module/chunks/{chunk-ZEITW5IL.js.map → chunk-HNLSR2U2.js.map} +1 -1
- package/module/chunks/{chunk-6RWX6HA7.js → chunk-HSIAXTEQ.js} +9 -12
- package/module/chunks/{chunk-6RWX6HA7.js.map → chunk-HSIAXTEQ.js.map} +1 -1
- package/module/chunks/{chunk-RFWUOGJ3.js → chunk-ICS6CLF6.js} +2 -2
- package/module/chunks/{chunk-C3GFY32L.js → chunk-KIWM3XWB.js} +2 -2
- package/module/chunks/{chunk-4SWPK2TU.js → chunk-KTJRF2VW.js} +3 -3
- package/module/chunks/{chunk-P5YTSVEV.js → chunk-L5IQTYSU.js} +9 -9
- package/module/chunks/{chunk-P5YTSVEV.js.map → chunk-L5IQTYSU.js.map} +1 -1
- package/module/chunks/{chunk-EUFLSUPO.js → chunk-LGEXZN3G.js} +14 -17
- package/module/chunks/{chunk-EUFLSUPO.js.map → chunk-LGEXZN3G.js.map} +1 -1
- package/module/chunks/{chunk-WSTQTULM.js → chunk-MDZOPP2X.js} +3 -3
- package/module/chunks/{chunk-VITMNUKV.js → chunk-MJ7HLEFT.js} +2 -2
- package/module/chunks/{chunk-HMQY5XLG.js → chunk-MTBEBUIU.js} +8 -12
- package/module/chunks/{chunk-HMQY5XLG.js.map → chunk-MTBEBUIU.js.map} +1 -1
- package/module/chunks/{chunk-RPNGCVZL.js → chunk-OBDH7GEY.js} +2 -2
- package/module/chunks/{chunk-2MOF5ZP7.js → chunk-OE5GQ3FG.js} +7 -7
- package/module/chunks/{chunk-XWRMHLAP.js → chunk-OOGFGU4X.js} +2 -2
- package/module/chunks/{chunk-E3IBH4RN.js → chunk-P23RJTRF.js} +10 -10
- package/module/chunks/{chunk-VGHYIDZA.js → chunk-P2G7HULR.js} +5 -8
- package/module/chunks/{chunk-VGHYIDZA.js.map → chunk-P2G7HULR.js.map} +1 -1
- package/module/chunks/{chunk-KMWIB6DC.js → chunk-P7X3KHUG.js} +6 -9
- package/module/chunks/{chunk-KMWIB6DC.js.map → chunk-P7X3KHUG.js.map} +1 -1
- package/module/chunks/{chunk-RJ5FWZWY.js → chunk-PKNBH4OS.js} +11 -18
- package/module/chunks/{chunk-RJ5FWZWY.js.map → chunk-PKNBH4OS.js.map} +1 -1
- package/module/chunks/{chunk-JIIPUMEA.js → chunk-PZA4F4AY.js} +2 -2
- package/module/chunks/{chunk-V3YGNO27.js → chunk-Q5OC2QQV.js} +2 -2
- package/module/chunks/{chunk-KGSEQL62.js → chunk-QQWQ2KSF.js} +2 -2
- package/module/chunks/{chunk-RZRB3MPG.js → chunk-RD6QZCUY.js} +90 -48
- package/module/chunks/chunk-RD6QZCUY.js.map +7 -0
- package/module/chunks/{chunk-MUXHFVOC.js → chunk-RL6UDJ3E.js} +10 -11
- package/module/chunks/{chunk-MUXHFVOC.js.map → chunk-RL6UDJ3E.js.map} +1 -1
- package/module/chunks/{chunk-SFYQQARV.js → chunk-SJBQOPBI.js} +3 -3
- package/module/chunks/{chunk-RS2VRN2X.js → chunk-VENUU6C7.js} +7 -7
- package/module/chunks/{chunk-RS2VRN2X.js.map → chunk-VENUU6C7.js.map} +1 -1
- package/module/chunks/chunk-X74ALD2D.js +25 -0
- package/module/chunks/{chunk-PUNHFOXB.js.map → chunk-X74ALD2D.js.map} +1 -1
- package/module/chunks/{chunk-UUMIWWJE.js → chunk-YDIFCM3E.js} +13 -13
- package/module/chunks/{chunk-UUMIWWJE.js.map → chunk-YDIFCM3E.js.map} +1 -1
- package/module/groups/ActionsGroup.js +7 -7
- package/module/groups/ControlGroup.js +42 -42
- package/module/groups/EditingGroup.js +42 -42
- package/module/groups/EditorGroup.js +42 -42
- package/module/groups/EditorsControlGroup.js +42 -42
- package/module/groups/HistoryGroup.js +42 -42
- package/module/groups/SidebarControlGroup.js +42 -42
- package/module/groups/VisualizationGroup.js +42 -42
- package/module/groups/index.js +49 -49
- package/module/index.js +51 -51
- package/package.json +29 -29
- package/types/buttons/Display/Display.d.ts +10 -1
- package/types/buttons/Display/Display.d.ts.map +1 -1
- package/types/buttons/Zoom/Zoom.d.ts.map +1 -1
- package/types/buttons/Zoom/ZoomNumber.d.ts +3 -1
- package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -1
- package/types/components/StyledButton.d.ts.map +1 -1
- package/module/chunks/chunk-BDFUA6X7.js.map +0 -7
- package/module/chunks/chunk-E7EUH33R.js +0 -40
- package/module/chunks/chunk-PUNHFOXB.js +0 -31
- package/module/chunks/chunk-RZRB3MPG.js.map +0 -7
- package/module/chunks/chunk-VQIRZ53C.js +0 -79
- package/types/groups/HistoryGroup.test.d.ts +0 -2
- package/types/groups/HistoryGroup.test.d.ts.map +0 -1
- /package/module/chunks/{chunk-GMMN7SOC.js.map → chunk-3PEWQDKC.js.map} +0 -0
- /package/module/chunks/{chunk-ZV4AQ5DL.js.map → chunk-6C2NOEOI.js.map} +0 -0
- /package/module/chunks/{chunk-VSD7VGBN.js.map → chunk-A4O2G7H7.js.map} +0 -0
- /package/module/chunks/{chunk-6NLVLUCU.js.map → chunk-A6YRCP43.js.map} +0 -0
- /package/module/chunks/{chunk-VQIRZ53C.js.map → chunk-AFH5LL74.js.map} +0 -0
- /package/module/chunks/{chunk-DQZGTQ2Z.js.map → chunk-DIC6BJPJ.js.map} +0 -0
- /package/module/chunks/{chunk-SJNT4MK5.js.map → chunk-DONX4ISJ.js.map} +0 -0
- /package/module/chunks/{chunk-IHFVJPGQ.js.map → chunk-EVRV5ZFT.js.map} +0 -0
- /package/module/chunks/{chunk-I6AJG47U.js.map → chunk-EZBGH5QE.js.map} +0 -0
- /package/module/chunks/{chunk-TQIO5WSS.js.map → chunk-GGU3N3OR.js.map} +0 -0
- /package/module/chunks/{chunk-RKJ7RKNK.js.map → chunk-GQJXWXKY.js.map} +0 -0
- /package/module/chunks/{chunk-RFWUOGJ3.js.map → chunk-ICS6CLF6.js.map} +0 -0
- /package/module/chunks/{chunk-C3GFY32L.js.map → chunk-KIWM3XWB.js.map} +0 -0
- /package/module/chunks/{chunk-4SWPK2TU.js.map → chunk-KTJRF2VW.js.map} +0 -0
- /package/module/chunks/{chunk-WSTQTULM.js.map → chunk-MDZOPP2X.js.map} +0 -0
- /package/module/chunks/{chunk-VITMNUKV.js.map → chunk-MJ7HLEFT.js.map} +0 -0
- /package/module/chunks/{chunk-RPNGCVZL.js.map → chunk-OBDH7GEY.js.map} +0 -0
- /package/module/chunks/{chunk-2MOF5ZP7.js.map → chunk-OE5GQ3FG.js.map} +0 -0
- /package/module/chunks/{chunk-XWRMHLAP.js.map → chunk-OOGFGU4X.js.map} +0 -0
- /package/module/chunks/{chunk-E3IBH4RN.js.map → chunk-P23RJTRF.js.map} +0 -0
- /package/module/chunks/{chunk-JIIPUMEA.js.map → chunk-PZA4F4AY.js.map} +0 -0
- /package/module/chunks/{chunk-V3YGNO27.js.map → chunk-Q5OC2QQV.js.map} +0 -0
- /package/module/chunks/{chunk-KGSEQL62.js.map → chunk-QQWQ2KSF.js.map} +0 -0
- /package/module/chunks/{chunk-SFYQQARV.js.map → chunk-SJBQOPBI.js.map} +0 -0
package/buttons/Image.js
CHANGED
|
@@ -6,34 +6,8 @@ var __create = Object.create;
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
9
|
var __getProtoOf = Object.getPrototypeOf;
|
|
11
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
13
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
14
|
-
var __spreadValues = (a, b) => {
|
|
15
|
-
for (var prop in b || (b = {}))
|
|
16
|
-
if (__hasOwnProp.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
if (__getOwnPropSymbols)
|
|
19
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
20
|
-
if (__propIsEnum.call(b, prop))
|
|
21
|
-
__defNormalProp(a, prop, b[prop]);
|
|
22
|
-
}
|
|
23
|
-
return a;
|
|
24
|
-
};
|
|
25
|
-
var __objRest = (source, exclude) => {
|
|
26
|
-
var target = {};
|
|
27
|
-
for (var prop in source)
|
|
28
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
-
target[prop] = source[prop];
|
|
30
|
-
if (source != null && __getOwnPropSymbols)
|
|
31
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
-
target[prop] = source[prop];
|
|
34
|
-
}
|
|
35
|
-
return target;
|
|
36
|
-
};
|
|
37
11
|
var __export = (target, all) => {
|
|
38
12
|
for (var name in all)
|
|
39
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -56,26 +30,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
56
30
|
mod
|
|
57
31
|
));
|
|
58
32
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
59
|
-
var __async = (__this, __arguments, generator) => {
|
|
60
|
-
return new Promise((resolve, reject) => {
|
|
61
|
-
var fulfilled = (value) => {
|
|
62
|
-
try {
|
|
63
|
-
step(generator.next(value));
|
|
64
|
-
} catch (e) {
|
|
65
|
-
reject(e);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
var rejected = (value) => {
|
|
69
|
-
try {
|
|
70
|
-
step(generator.throw(value));
|
|
71
|
-
} catch (e) {
|
|
72
|
-
reject(e);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
76
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
33
|
|
|
80
34
|
// src/buttons/Image.tsx
|
|
81
35
|
var Image_exports = {};
|
|
@@ -165,37 +119,25 @@ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
|
|
|
165
119
|
`;
|
|
166
120
|
var iconSize = 24;
|
|
167
121
|
var menuIconSize = 20;
|
|
168
|
-
var prepareIcon = (
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
"Icon",
|
|
175
|
-
"screenReaderContent",
|
|
176
|
-
"isMenu"
|
|
177
|
-
]);
|
|
122
|
+
var prepareIcon = ({
|
|
123
|
+
Icon,
|
|
124
|
+
screenReaderContent,
|
|
125
|
+
isMenu = false,
|
|
126
|
+
...props
|
|
127
|
+
}) => {
|
|
178
128
|
const size = isMenu ? menuIconSize : iconSize;
|
|
179
|
-
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon,
|
|
129
|
+
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, { width: size, height: size, ...props }), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
|
|
180
130
|
};
|
|
181
|
-
var IconButton = (
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
"icon",
|
|
192
|
-
"buttonRef",
|
|
193
|
-
"disabled",
|
|
194
|
-
"onClick",
|
|
195
|
-
"label",
|
|
196
|
-
"tooltipContent",
|
|
197
|
-
"testLabel"
|
|
198
|
-
]);
|
|
131
|
+
var IconButton = ({
|
|
132
|
+
icon: icon2,
|
|
133
|
+
buttonRef,
|
|
134
|
+
disabled = false,
|
|
135
|
+
onClick,
|
|
136
|
+
label,
|
|
137
|
+
tooltipContent,
|
|
138
|
+
testLabel,
|
|
139
|
+
...rest
|
|
140
|
+
}) => {
|
|
199
141
|
const button = /* @__PURE__ */ react_default.createElement(
|
|
200
142
|
Button_default,
|
|
201
143
|
{
|
|
@@ -209,7 +151,7 @@ var IconButton = (_a) => {
|
|
|
209
151
|
"data-clickable": true
|
|
210
152
|
}
|
|
211
153
|
);
|
|
212
|
-
return /* @__PURE__ */ react_default.createElement(Item_default,
|
|
154
|
+
return /* @__PURE__ */ react_default.createElement(Item_default, { ...rest }, tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button);
|
|
213
155
|
};
|
|
214
156
|
var IconButton_default = IconButton;
|
|
215
157
|
|
|
@@ -218,8 +160,8 @@ var icon = prepareIcon({
|
|
|
218
160
|
Icon: Picture_default
|
|
219
161
|
});
|
|
220
162
|
var Image = ({ dashboardApi }) => {
|
|
221
|
-
const handleClick = (0, react_exports.useCallback)(() =>
|
|
222
|
-
dashboardApi
|
|
163
|
+
const handleClick = (0, react_exports.useCallback)(async () => {
|
|
164
|
+
dashboardApi?.createVisualization({
|
|
223
165
|
visualizationDefinition: {
|
|
224
166
|
type: "splunk.image",
|
|
225
167
|
options: {
|
|
@@ -227,10 +169,10 @@ var Image = ({ dashboardApi }) => {
|
|
|
227
169
|
}
|
|
228
170
|
}
|
|
229
171
|
});
|
|
230
|
-
dashboardApi
|
|
172
|
+
dashboardApi?.openPanel({
|
|
231
173
|
activePanel: "config"
|
|
232
174
|
});
|
|
233
|
-
}
|
|
175
|
+
}, [dashboardApi]);
|
|
234
176
|
return /* @__PURE__ */ react_default.createElement(
|
|
235
177
|
IconButton_default,
|
|
236
178
|
{
|
package/buttons/Image.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/Image.tsx", "esm-externals:react", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/Picture", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "esm-externals:@splunk/react-ui/Tooltip", "esm-externals:styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
|
|
4
4
|
"sourcesContent": ["import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Picture from '@splunk/react-icons/Picture';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: Picture,\n});\n\n/**\n * Button that create a empty image\n */\nconst Image = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"image-button\"\n onClick={handleClick}\n icon={icon}\n tooltipContent={_('Add image')}\n />\n );\n};\n\nexport default Image;\n", "import * 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/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\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 \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\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 Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAA,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAsB;;;ACA7B,IAAO,eAAQ,0BAAO;;;ACQtB,IAAM,qBAAqB,0BAAO,iBAAY;AAAA;AAAA;AAIvC,IAAM,WAAW;AACjB,IAAM,eAAe;AAoBrB,IAAM,cAAc,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACP,MAAwB;AACpB,QAAM,OAAO,SAAS,eAAe;AACrC,SACI,0EACI,4CAAC,QAAK,OAAO,MAAM,QAAQ,MAAO,GAAG,OAAO,GAC3C,UACG,4CAAC,sBAAmB,SAAQ,UAAS,OAAO,GAAG,QAAQ,MAAM,GAEhE,uBACG,4CAAC,mCAAqB,mBAAoB,CAElD;AAER;AAYA,IAAM,aAAa,CAAC;AAAA,EAChB,MAAAC;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAoC;AAChC,QAAM,SACF;AAAA,IAAC;AAAA;AAAA,MACG,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,YAAW;AAAA,MACX,MAAMA;AAAA,MACN;AAAA,MACA,aAAW;AAAA,MACX,kBAAc;AAAA;AAAA,EAClB;AAGJ,SACI,4CAAC,gBAAa,GAAG,QACZ,iBACG,4CAAC,mBAAQ,qBAAoB,SAAQ,SAAS,kBACzC,MACL,IAEA,MAER;AAER;AAEA,IAAO,qBAAQ;;;AV7Ff,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AACV,CAAC;AAKD,IAAM,QAAQ,CAAC,EAAE,aAAa,MAA0B;AACpD,QAAM,kBAAc,2BAAY,YAAY;AACxC,kBAAc,oBAAoB;AAAA,MAC9B,yBAAyB;AAAA,QACrB,MAAM;AAAA,QACN,SAAS;AAAA,UACL,qBAAqB;AAAA,QACzB;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,kBAAc,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB,CAAC;AAAA,EACL,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT;AAAA,MACA,oBAAgB,gBAAE,WAAW;AAAA;AAAA,EACjC;AAER;AAEA,IAAO,gBAAQ;",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
|
|
7
7
|
}
|
package/buttons/ImageGallery.js
CHANGED
|
@@ -4,39 +4,10 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
|
|
|
4
4
|
"use strict";
|
|
5
5
|
var __create = Object.create;
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
|
-
var __defProps = Object.defineProperties;
|
|
8
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
10
8
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
9
|
var __getProtoOf = Object.getPrototypeOf;
|
|
13
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
-
var __spreadValues = (a, b) => {
|
|
17
|
-
for (var prop in b || (b = {}))
|
|
18
|
-
if (__hasOwnProp.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
if (__getOwnPropSymbols)
|
|
21
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
22
|
-
if (__propIsEnum.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
}
|
|
25
|
-
return a;
|
|
26
|
-
};
|
|
27
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
|
-
var __objRest = (source, exclude) => {
|
|
29
|
-
var target = {};
|
|
30
|
-
for (var prop in source)
|
|
31
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
32
|
-
target[prop] = source[prop];
|
|
33
|
-
if (source != null && __getOwnPropSymbols)
|
|
34
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
35
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
36
|
-
target[prop] = source[prop];
|
|
37
|
-
}
|
|
38
|
-
return target;
|
|
39
|
-
};
|
|
40
11
|
var __export = (target, all) => {
|
|
41
12
|
for (var name in all)
|
|
42
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -59,26 +30,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
59
30
|
mod
|
|
60
31
|
));
|
|
61
32
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
62
|
-
var __async = (__this, __arguments, generator) => {
|
|
63
|
-
return new Promise((resolve, reject) => {
|
|
64
|
-
var fulfilled = (value) => {
|
|
65
|
-
try {
|
|
66
|
-
step(generator.next(value));
|
|
67
|
-
} catch (e) {
|
|
68
|
-
reject(e);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var rejected = (value) => {
|
|
72
|
-
try {
|
|
73
|
-
step(generator.throw(value));
|
|
74
|
-
} catch (e) {
|
|
75
|
-
reject(e);
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
79
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
33
|
|
|
83
34
|
// src/buttons/ImageGallery.tsx
|
|
84
35
|
var ImageGallery_exports = {};
|
|
@@ -163,13 +114,13 @@ var Tooltip_default = "default" in defaultImport8 ? defaultImport8.default : def
|
|
|
163
114
|
var BaseDropdownButton = styled_components_default(Button_default)`
|
|
164
115
|
max-width: '50px';
|
|
165
116
|
`;
|
|
166
|
-
var StyledDropdownButton = react_default.forwardRef((
|
|
167
|
-
var _b = _a, { tooltipContent } = _b, props = __objRest(_b, ["tooltipContent"]);
|
|
117
|
+
var StyledDropdownButton = react_default.forwardRef(({ tooltipContent, ...props }, ref) => {
|
|
168
118
|
const button = /* @__PURE__ */ react_default.createElement(
|
|
169
119
|
BaseDropdownButton,
|
|
170
|
-
|
|
120
|
+
{
|
|
121
|
+
...props,
|
|
171
122
|
elementRef: ref
|
|
172
|
-
}
|
|
123
|
+
}
|
|
173
124
|
);
|
|
174
125
|
return tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button;
|
|
175
126
|
});
|
|
@@ -238,18 +189,14 @@ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
|
|
|
238
189
|
`;
|
|
239
190
|
var iconSize = 24;
|
|
240
191
|
var menuIconSize = 20;
|
|
241
|
-
var prepareIcon = (
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
"Icon",
|
|
248
|
-
"screenReaderContent",
|
|
249
|
-
"isMenu"
|
|
250
|
-
]);
|
|
192
|
+
var prepareIcon = ({
|
|
193
|
+
Icon,
|
|
194
|
+
screenReaderContent,
|
|
195
|
+
isMenu = false,
|
|
196
|
+
...props
|
|
197
|
+
}) => {
|
|
251
198
|
const size = isMenu ? menuIconSize : iconSize;
|
|
252
|
-
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon,
|
|
199
|
+
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, { width: size, height: size, ...props }), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
|
|
253
200
|
};
|
|
254
201
|
|
|
255
202
|
// src/buttons/ImageGallery.tsx
|
|
@@ -283,8 +230,8 @@ var ImageGallery = ({ dashboardApi }) => {
|
|
|
283
230
|
isContentClickClose: false
|
|
284
231
|
});
|
|
285
232
|
const handlePanelClick = (0, react_exports.useCallback)(
|
|
286
|
-
(imageUrl) =>
|
|
287
|
-
dashboardApi
|
|
233
|
+
async (imageUrl) => {
|
|
234
|
+
dashboardApi?.createVisualization({
|
|
288
235
|
visualizationDefinition: {
|
|
289
236
|
type: "splunk.image",
|
|
290
237
|
options: {
|
|
@@ -293,11 +240,11 @@ var ImageGallery = ({ dashboardApi }) => {
|
|
|
293
240
|
}
|
|
294
241
|
}
|
|
295
242
|
});
|
|
296
|
-
dashboardApi
|
|
243
|
+
dashboardApi?.openPanel({
|
|
297
244
|
activePanel: "config"
|
|
298
245
|
});
|
|
299
246
|
handleForceClose();
|
|
300
|
-
}
|
|
247
|
+
},
|
|
301
248
|
[dashboardApi, handleForceClose]
|
|
302
249
|
);
|
|
303
250
|
return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/ImageGallery.tsx", "esm-externals:react", "esm-externals:styled-components", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/Picture", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/react-ui/Button", "esm-externals:@splunk/react-ui/Tooltip", "../src/components/StyledButton.tsx", "../src/Item.tsx", "../src/hooks/useDropdown.ts", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "../src/IconButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport AddImage from '@splunk/react-icons/Picture';\n\nimport { ImageGallery as ImageGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst imageGalleryDropdown = prepareIcon({\n Icon: AddImage,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"image-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={imageGalleryDropdown}\n tooltipContent={_('Add image')}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\n/**\n * Image Gallery button that has as a dropdown menu.\n */\nconst ImageGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const handlePanelClick = useCallback(\n async (imageUrl: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n src: imageUrl,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <MenusContainer>\n <ImageGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default ImageGallery;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import * as defaultImport from \"@splunk/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/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-ui\";\nexport * from \"@splunk/dashboard-ui\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React from 'react';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\n\nconst BaseDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n\nexport interface StyledDropdownButtonProps\n extends Pick<ButtonPropsBase, 'appearance' | 'icon' | 'disabled'> {\n children?: React.ReactNode;\n className?: string;\n 'data-clickable'?: boolean;\n 'data-test'?: string;\n tooltipContent?: string;\n}\n\nexport const StyledDropdownButton = React.forwardRef<\n HTMLButtonElement,\n StyledDropdownButtonProps\n>(({ tooltipContent, ...props }, ref): JSX.Element => {\n const button = (\n <BaseDropdownButton\n {...props}\n elementRef={ref as React.RefObject<HTMLButtonElement>}\n />\n );\n\n return tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n );\n});\n", "import styled from 'styled-components';\n\nexport default styled.div``;\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 * 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 Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport AddImage from '@splunk/react-icons/Picture';\n\nimport { ImageGallery as ImageGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst imageGalleryDropdown = prepareIcon({\n Icon: AddImage,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"image-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={imageGalleryDropdown}\n tooltipContent={_('Add image')}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\n/**\n * Image Gallery button that has as a dropdown menu.\n */\nconst ImageGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const handlePanelClick = useCallback(\n async (imageUrl: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n src: imageUrl,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <MenusContainer>\n <ImageGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default ImageGallery;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import * as defaultImport from \"@splunk/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/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-ui\";\nexport * from \"@splunk/dashboard-ui\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React from 'react';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\n\nconst BaseDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n\nexport interface StyledDropdownButtonProps extends Pick<\n ButtonPropsBase,\n 'appearance' | 'icon' | 'disabled'\n> {\n children?: React.ReactNode;\n className?: string;\n 'data-clickable'?: boolean;\n 'data-test'?: string;\n tooltipContent?: string;\n}\n\nexport const StyledDropdownButton = React.forwardRef<\n HTMLButtonElement,\n StyledDropdownButtonProps\n>(({ tooltipContent, ...props }, ref): JSX.Element => {\n const button = (\n <BaseDropdownButton\n {...props}\n elementRef={ref as React.RefObject<HTMLButtonElement>}\n />\n );\n\n return tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n );\n});\n", "import styled from 'styled-components';\n\nexport default styled.div``;\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 * 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 Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "ImageGalleryPanel"]
|
|
7
7
|
}
|
package/buttons/Inputs.js
CHANGED
|
@@ -4,39 +4,10 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
|
|
|
4
4
|
"use strict";
|
|
5
5
|
var __create = Object.create;
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
|
-
var __defProps = Object.defineProperties;
|
|
8
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
10
8
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
9
|
var __getProtoOf = Object.getPrototypeOf;
|
|
13
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
-
var __spreadValues = (a, b) => {
|
|
17
|
-
for (var prop in b || (b = {}))
|
|
18
|
-
if (__hasOwnProp.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
if (__getOwnPropSymbols)
|
|
21
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
22
|
-
if (__propIsEnum.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
}
|
|
25
|
-
return a;
|
|
26
|
-
};
|
|
27
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
|
-
var __objRest = (source, exclude) => {
|
|
29
|
-
var target = {};
|
|
30
|
-
for (var prop in source)
|
|
31
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
32
|
-
target[prop] = source[prop];
|
|
33
|
-
if (source != null && __getOwnPropSymbols)
|
|
34
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
35
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
36
|
-
target[prop] = source[prop];
|
|
37
|
-
}
|
|
38
|
-
return target;
|
|
39
|
-
};
|
|
40
11
|
var __export = (target, all) => {
|
|
41
12
|
for (var name in all)
|
|
42
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -161,13 +132,13 @@ var styled_components_default = defaultImport10.default;
|
|
|
161
132
|
var BaseDropdownButton = styled_components_default(Button_default)`
|
|
162
133
|
max-width: '50px';
|
|
163
134
|
`;
|
|
164
|
-
var StyledDropdownButton = react_default.forwardRef((
|
|
165
|
-
var _b = _a, { tooltipContent } = _b, props = __objRest(_b, ["tooltipContent"]);
|
|
135
|
+
var StyledDropdownButton = react_default.forwardRef(({ tooltipContent, ...props }, ref) => {
|
|
166
136
|
const button = /* @__PURE__ */ react_default.createElement(
|
|
167
137
|
BaseDropdownButton,
|
|
168
|
-
|
|
138
|
+
{
|
|
139
|
+
...props,
|
|
169
140
|
elementRef: ref
|
|
170
|
-
}
|
|
141
|
+
}
|
|
171
142
|
);
|
|
172
143
|
return tooltipContent ? /* @__PURE__ */ react_default.createElement(Tooltip_default, { contentRelationship: "label", content: tooltipContent }, button) : button;
|
|
173
144
|
});
|
|
@@ -236,18 +207,14 @@ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
|
|
|
236
207
|
`;
|
|
237
208
|
var iconSize = 24;
|
|
238
209
|
var menuIconSize = 20;
|
|
239
|
-
var prepareIcon = (
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"Icon",
|
|
246
|
-
"screenReaderContent",
|
|
247
|
-
"isMenu"
|
|
248
|
-
]);
|
|
210
|
+
var prepareIcon = ({
|
|
211
|
+
Icon,
|
|
212
|
+
screenReaderContent,
|
|
213
|
+
isMenu = false,
|
|
214
|
+
...props
|
|
215
|
+
}) => {
|
|
249
216
|
const size = isMenu ? menuIconSize : iconSize;
|
|
250
|
-
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon,
|
|
217
|
+
return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, { width: size, height: size, ...props }), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
|
|
251
218
|
};
|
|
252
219
|
|
|
253
220
|
// src/buttons/Inputs.tsx
|
|
@@ -280,13 +247,16 @@ var onCreateInputClickFactory = ({
|
|
|
280
247
|
if (!dashboardApi) {
|
|
281
248
|
return;
|
|
282
249
|
}
|
|
283
|
-
const newConfig =
|
|
250
|
+
const newConfig = {
|
|
251
|
+
...defaultConfig,
|
|
284
252
|
type,
|
|
285
|
-
options:
|
|
286
|
-
|
|
253
|
+
options: {
|
|
254
|
+
...defaultConfig.options
|
|
255
|
+
}
|
|
256
|
+
};
|
|
287
257
|
if (showToken) {
|
|
288
258
|
newConfig.options.token = dashboard_definition_exports.DashboardDefinition.fromJSON(
|
|
289
|
-
dashboardApi
|
|
259
|
+
dashboardApi?.getDefinition()
|
|
290
260
|
).nextTokenId(tokenPrefix);
|
|
291
261
|
}
|
|
292
262
|
dashboardApi.addInput(newConfig);
|
|
@@ -301,7 +271,7 @@ var Inputs = ({
|
|
|
301
271
|
});
|
|
302
272
|
const InputTypeButtons = (0, react_exports.useMemo)(() => {
|
|
303
273
|
const buttons = [];
|
|
304
|
-
const inputs = preset
|
|
274
|
+
const inputs = preset?.inputs;
|
|
305
275
|
(0, lodash_exports.each)(inputs, (InputImpl, type) => {
|
|
306
276
|
const {
|
|
307
277
|
baseShape = {},
|
package/buttons/Inputs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/buttons/Inputs.tsx", "esm-externals:react", "esm-externals:lodash", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/react-icons/SlidersTripleHorizontal", "esm-externals:@splunk/dashboard-definition", "esm-externals:@splunk/react-ui/Button", "esm-externals:@splunk/react-ui/Tooltip", "esm-externals:styled-components", "../src/components/StyledButton.tsx", "../src/hooks/useDropdown.ts", "../src/Item.tsx", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "../src/IconButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { each } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Input from '@splunk/react-icons/SlidersTripleHorizontal';\nimport { DashboardDefinition } from '@splunk/dashboard-definition';\nimport type {\n PresetMap,\n InputConfig,\n DashboardApi,\n} from '@splunk/dashboard-types';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\nconst addInputIcon = prepareIcon({\n Icon: Input,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"inputs-button\"\n icon={addInputIcon}\n tooltipContent={_('Add input')}\n />\n);\n\ninterface AddInputFactoryArgs {\n type: string;\n defaultConfig: {\n options?: Record<string, unknown>;\n [x: string]: unknown;\n };\n tokenPrefix: string;\n showToken: boolean;\n dashboardApi?: DashboardApi;\n}\n\n// click handler factory\nconst onCreateInputClickFactory =\n ({\n type,\n defaultConfig,\n tokenPrefix,\n showToken,\n dashboardApi,\n }: AddInputFactoryArgs) =>\n () => {\n if (!dashboardApi) {\n return;\n }\n\n const newConfig = {\n ...defaultConfig,\n type,\n options: {\n ...defaultConfig.options,\n },\n };\n // showToken flags whether or not the input has a token assigned on creation\n if (showToken) {\n newConfig.options.token = DashboardDefinition.fromJSON(\n dashboardApi?.getDefinition()\n ).nextTokenId(tokenPrefix);\n }\n dashboardApi.addInput(newConfig);\n dashboardApi.openPanel({ activePanel: 'config' });\n };\n\n/**\n * Add Input button that has a dropdown menu.\n */\nconst Inputs = ({\n dashboardApi,\n preset = DEFAULT_PRESET_MAP,\n}: ToolbarButtonProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const InputTypeButtons = useMemo(() => {\n const buttons = [];\n\n const inputs = preset?.inputs as Record<\n string,\n {\n config: InputConfig;\n }\n >;\n\n each(inputs, (InputImpl, type) => {\n const {\n baseShape = {},\n label = _(`${type} Input`),\n description = '',\n tokenPrefix = 'token',\n includeInToolbar = true,\n icon: Icon = Input,\n // showToken flags whether or not the input has a token assigned on creation\n showToken = true,\n } = InputImpl.config || {};\n\n if (!includeInToolbar) {\n return;\n }\n\n const handleClick = onCreateInputClickFactory({\n type,\n defaultConfig: baseShape,\n tokenPrefix,\n showToken,\n dashboardApi,\n });\n\n const inputIcon = <Icon width=\"24px\" height=\"24px\" />;\n\n buttons.push(\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={handleClick}\n startAdornment={inputIcon}\n description={description}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n });\n\n if (buttons.length === 0) {\n buttons.push(\n <Menu.Item\n data-test=\"no-inputs-in-preset\"\n key=\"no-inputs-in-preset\"\n disabled\n >\n {_('No Inputs')}\n </Menu.Item>\n );\n }\n\n return buttons;\n }, [preset, dashboardApi]);\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{InputTypeButtons}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Inputs;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport * from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-definition\";\nexport * from \"@splunk/dashboard-definition\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * 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 \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\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 React from 'react';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\n\nconst BaseDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n\nexport interface StyledDropdownButtonProps\n extends Pick<ButtonPropsBase, 'appearance' | 'icon' | 'disabled'> {\n children?: React.ReactNode;\n className?: string;\n 'data-clickable'?: boolean;\n 'data-test'?: string;\n tooltipContent?: string;\n}\n\nexport const StyledDropdownButton = React.forwardRef<\n HTMLButtonElement,\n StyledDropdownButtonProps\n>(({ tooltipContent, ...props }, ref): JSX.Element => {\n const button = (\n <BaseDropdownButton\n {...props}\n elementRef={ref as React.RefObject<HTMLButtonElement>}\n />\n );\n\n return tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n );\n});\n", "import 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 * 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 Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { each } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Input from '@splunk/react-icons/SlidersTripleHorizontal';\nimport { DashboardDefinition } from '@splunk/dashboard-definition';\nimport type {\n PresetMap,\n InputConfig,\n DashboardApi,\n} from '@splunk/dashboard-types';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\nconst addInputIcon = prepareIcon({\n Icon: Input,\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"inputs-button\"\n icon={addInputIcon}\n tooltipContent={_('Add input')}\n />\n);\n\ninterface AddInputFactoryArgs {\n type: string;\n defaultConfig: {\n options?: Record<string, unknown>;\n [x: string]: unknown;\n };\n tokenPrefix: string;\n showToken: boolean;\n dashboardApi?: DashboardApi;\n}\n\n// click handler factory\nconst onCreateInputClickFactory =\n ({\n type,\n defaultConfig,\n tokenPrefix,\n showToken,\n dashboardApi,\n }: AddInputFactoryArgs) =>\n () => {\n if (!dashboardApi) {\n return;\n }\n\n const newConfig = {\n ...defaultConfig,\n type,\n options: {\n ...defaultConfig.options,\n },\n };\n // showToken flags whether or not the input has a token assigned on creation\n if (showToken) {\n newConfig.options.token = DashboardDefinition.fromJSON(\n dashboardApi?.getDefinition()\n ).nextTokenId(tokenPrefix);\n }\n dashboardApi.addInput(newConfig);\n dashboardApi.openPanel({ activePanel: 'config' });\n };\n\n/**\n * Add Input button that has a dropdown menu.\n */\nconst Inputs = ({\n dashboardApi,\n preset = DEFAULT_PRESET_MAP,\n}: ToolbarButtonProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const InputTypeButtons = useMemo(() => {\n const buttons = [];\n\n const inputs = preset?.inputs as Record<\n string,\n {\n config: InputConfig;\n }\n >;\n\n each(inputs, (InputImpl, type) => {\n const {\n baseShape = {},\n label = _(`${type} Input`),\n description = '',\n tokenPrefix = 'token',\n includeInToolbar = true,\n icon: Icon = Input,\n // showToken flags whether or not the input has a token assigned on creation\n showToken = true,\n } = InputImpl.config || {};\n\n if (!includeInToolbar) {\n return;\n }\n\n const handleClick = onCreateInputClickFactory({\n type,\n defaultConfig: baseShape,\n tokenPrefix,\n showToken,\n dashboardApi,\n });\n\n const inputIcon = <Icon width=\"24px\" height=\"24px\" />;\n\n buttons.push(\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={handleClick}\n startAdornment={inputIcon}\n description={description}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n });\n\n if (buttons.length === 0) {\n buttons.push(\n <Menu.Item\n data-test=\"no-inputs-in-preset\"\n key=\"no-inputs-in-preset\"\n disabled\n >\n {_('No Inputs')}\n </Menu.Item>\n );\n }\n\n return buttons;\n }, [preset, dashboardApi]);\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{InputTypeButtons}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Inputs;\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport * from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-definition\";\nexport * from \"@splunk/dashboard-definition\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * 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 \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\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 React from 'react';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\n\nconst BaseDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n\nexport interface StyledDropdownButtonProps extends Pick<\n ButtonPropsBase,\n 'appearance' | 'icon' | 'disabled'\n> {\n children?: React.ReactNode;\n className?: string;\n 'data-clickable'?: boolean;\n 'data-test'?: string;\n tooltipContent?: string;\n}\n\nexport const StyledDropdownButton = React.forwardRef<\n HTMLButtonElement,\n StyledDropdownButtonProps\n>(({ tooltipContent, ...props }, ref): JSX.Element => {\n const button = (\n <BaseDropdownButton\n {...props}\n elementRef={ref as React.RefObject<HTMLButtonElement>}\n />\n );\n\n return tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n );\n});\n", "import 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 * 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 Tooltip from '@splunk/react-ui/Tooltip';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n tooltipContent?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n tooltipContent,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n const button = (\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n );\n\n return (\n <ToolbarItem {...rest}>\n {tooltipContent ? (\n <Tooltip contentRelationship=\"label\" content={tooltipContent}>\n {button}\n </Tooltip>\n ) : (\n button\n )}\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
|
|
7
7
|
}
|