@splunk/react-field-summary 0.11.0 → 27.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/components/FieldList/FieldList.js +155 -115
  2. package/components/FieldList/FieldList.js.map +7 -0
  3. package/components/FieldList/index.js +160 -16
  4. package/components/FieldList/index.js.map +7 -0
  5. package/components/FieldSummary/Abbreviate.js +58 -26
  6. package/components/FieldSummary/Abbreviate.js.map +7 -0
  7. package/components/FieldSummary/FieldActions.js +105 -70
  8. package/components/FieldSummary/FieldActions.js.map +7 -0
  9. package/components/FieldSummary/FieldStats.js +102 -96
  10. package/components/FieldSummary/FieldStats.js.map +7 -0
  11. package/components/FieldSummary/FieldSummary.js +554 -238
  12. package/components/FieldSummary/FieldSummary.js.map +7 -0
  13. package/components/FieldSummary/FieldSummaryTable.js +188 -217
  14. package/components/FieldSummary/FieldSummaryTable.js.map +7 -0
  15. package/components/FieldSummary/SelectionButtons.js +157 -74
  16. package/components/FieldSummary/SelectionButtons.js.map +7 -0
  17. package/components/FieldSummary/SplitButton.js +166 -113
  18. package/components/FieldSummary/SplitButton.js.map +7 -0
  19. package/components/FieldSummary/index.js +589 -37
  20. package/components/FieldSummary/index.js.map +7 -0
  21. package/components/FieldSummaryList/FieldSummaryList.js +698 -148
  22. package/components/FieldSummaryList/FieldSummaryList.js.map +7 -0
  23. package/components/FieldSummaryList/index.js +729 -9
  24. package/components/FieldSummaryList/index.js.map +7 -0
  25. package/index.js +735 -0
  26. package/index.js.map +7 -0
  27. package/package.json +65 -20
  28. package/{components → types/components}/FieldList/FieldList.d.ts +2 -2
  29. package/{components → types/components}/FieldSummary/FieldActions.d.ts +1 -1
  30. package/{components → types/components}/FieldSummary/FieldSummary.d.ts +1 -1
  31. package/{components → types/components}/FieldSummary/FieldSummaryTable.d.ts +8 -6
  32. package/{components → types/components}/FieldSummary/SelectionButtons.d.ts +1 -1
  33. package/{components → types/components}/FieldSummary/SplitButton.d.ts +1 -1
  34. package/types/index.d.ts +1 -0
  35. package/components/FieldSummaryList/tests/FieldSummaryList.stories.d.ts +0 -6
  36. package/components/FieldSummaryList/tests/FieldSummaryList.unit.d.ts +0 -1
  37. /package/{components → types/components}/FieldList/index.d.ts +0 -0
  38. /package/{components → types/components}/FieldSummary/Abbreviate.d.ts +0 -0
  39. /package/{components → types/components}/FieldSummary/FieldStats.d.ts +0 -0
  40. /package/{components → types/components}/FieldSummary/index.d.ts +0 -0
  41. /package/{components → types/components}/FieldSummaryList/FieldSummaryList.d.ts +0 -0
  42. /package/{components → types/components}/FieldSummaryList/index.d.ts +0 -0
@@ -1,285 +1,601 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "FieldValue", {
9
- enumerable: true,
10
- get: function () {
11
- return _FieldSummaryTable.FieldValue;
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, { get: all[name], enumerable: true });
39
+ };
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
45
  }
46
+ return to;
47
+ };
48
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
49
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
50
+ // If the importer is in node compatibility mode or this is not an ESM
51
+ // file that has been converted to a CommonJS file using a Babel-
52
+ // compatible transform (i.e. "__esModule" has not been set), then set
53
+ // "default" to the CommonJS "module.exports" for node compatibility.
54
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
55
+ mod
56
+ ));
57
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
+
59
+ // src/components/FieldSummary/FieldSummary.tsx
60
+ var FieldSummary_exports = {};
61
+ __export(FieldSummary_exports, {
62
+ default: () => FieldSummary_default
13
63
  });
14
- exports.default = void 0;
15
-
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
-
18
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
-
20
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
64
+ module.exports = __toCommonJS(FieldSummary_exports);
21
65
 
22
- var _react = _interopRequireWildcard(require("react"));
23
-
24
- var _styledComponents = _interopRequireDefault(require("styled-components"));
25
-
26
- var _i18n = require("@splunk/ui-utils/i18n");
27
-
28
- var _themes = require("@splunk/themes");
66
+ // esm-externals:react
67
+ var react_exports = {};
68
+ __export(react_exports, {
69
+ default: () => react_default
70
+ });
71
+ var defaultImport = __toESM(require("react"));
72
+ __reExport(react_exports, require("react"));
73
+ var react_default = "default" in defaultImport ? defaultImport.default : defaultImport;
74
+
75
+ // esm-externals:styled-components
76
+ var styled_components_exports = {};
77
+ __export(styled_components_exports, {
78
+ default: () => styled_components_default
79
+ });
80
+ var defaultImport2 = __toESM(require("styled-components"));
81
+ __reExport(styled_components_exports, require("styled-components"));
82
+ var styled_components_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
83
+
84
+ // esm-externals:@splunk/ui-utils/i18n
85
+ var i18n_exports = {};
86
+ __export(i18n_exports, {
87
+ default: () => i18n_default
88
+ });
89
+ var defaultImport3 = __toESM(require("@splunk/ui-utils/i18n"));
90
+ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
91
+ var i18n_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
92
+
93
+ // esm-externals:@splunk/themes
94
+ var themes_exports = {};
95
+ __export(themes_exports, {
96
+ default: () => themes_default
97
+ });
98
+ var defaultImport4 = __toESM(require("@splunk/themes"));
99
+ __reExport(themes_exports, require("@splunk/themes"));
100
+ var themes_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
101
+
102
+ // esm-externals:@splunk/react-icons/enterprise/Number
103
+ var Number_exports = {};
104
+ __export(Number_exports, {
105
+ default: () => Number_default
106
+ });
107
+ var defaultImport5 = __toESM(require("@splunk/react-icons/enterprise/Number"));
108
+ __reExport(Number_exports, require("@splunk/react-icons/enterprise/Number"));
109
+ var Number_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
110
+
111
+ // esm-externals:@splunk/react-icons/enterprise/String
112
+ var String_exports = {};
113
+ __export(String_exports, {
114
+ default: () => String_default
115
+ });
116
+ var defaultImport6 = __toESM(require("@splunk/react-icons/enterprise/String"));
117
+ __reExport(String_exports, require("@splunk/react-icons/enterprise/String"));
118
+ var String_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
119
+
120
+ // src/components/FieldList/FieldList.tsx
121
+ var Container = styled_components_default.ol`
122
+ list-style-type: none;
123
+ margin: 0;
124
+ padding: 0;
125
+ svg {
126
+ padding-right: ${themes_exports.variables.spacingXSmall};
127
+ color: ${themes_exports.variables.contentColorMuted};
128
+ }
29
129
 
30
- var _FieldList = require("../FieldList");
130
+ button {
131
+ display: flex;
132
+ align-items: baseline;
133
+ border: none;
134
+ text-align: left;
135
+ width: 100%;
136
+ height: 100%;
137
+ color: ${themes_exports.variables.contentColorDefault};
138
+ font-size: ${themes_exports.variables.fontSize};
139
+ padding: calc(${themes_exports.variables.spacingXSmall} / 2) ${themes_exports.variables.spacingXSmall};
140
+ margin: 0;
141
+ background-color: inherit;
142
+ }
31
143
 
32
- var _Abbreviate = _interopRequireWildcard(require("./Abbreviate"));
144
+ button:not([disabled]) {
145
+ cursor: pointer;
146
+ color: ${themes_exports.variables.linkColor};
147
+ }
33
148
 
34
- var _FieldActions = _interopRequireDefault(require("./FieldActions"));
149
+ li {
150
+ background-color: inherit;
35
151
 
36
- var _FieldStats = _interopRequireDefault(require("./FieldStats"));
152
+ padding: 0;
153
+ margin: 0;
154
+ }
37
155
 
38
- var _FieldSummaryTable = _interopRequireWildcard(require("./FieldSummaryTable"));
156
+ button:not([disabled]):hover,
157
+ button[aria-pressed='true'] {
158
+ background-color: ${(0, themes_exports.pick)({
159
+ enterprise: themes_exports.variables.backgroundColorHover,
160
+ prisma: themes_exports.variables.interactiveColorOverlayHover
161
+ })};
162
+ }
39
163
 
40
- var _SplitButton = _interopRequireDefault(require("./SplitButton"));
164
+ button:not([disabled]):focus {
165
+ outline: 0;
166
+ box-shadow: ${themes_exports.variables.focusShadowInset};
41
167
 
42
- const _excluded = ["field", "eventCount", "actionsForField", "onActionClicked", "onFieldValueClicked"];
168
+ ::-moz-focus-inner {
169
+ border: 0;
170
+ }
171
+ }
172
+ `;
173
+ var Name = styled_components_default.span`
174
+ min-width: 0;
175
+ flex-shrink: 2;
176
+ overflow: hidden;
177
+ text-overflow: ellipsis;
178
+ white-space: nowrap;
179
+ `;
180
+ var Count = styled_components_default.span`
181
+ padding-left: ${themes_exports.variables.spacingXSmall};
182
+ color: ${themes_exports.variables.contentColorMuted};
183
+ `;
184
+ var isNumeric = (field) => field.numericCount && Number(field.numericCount) / Number(field.count) > 0.7;
185
+
186
+ // esm-externals:@splunk/ui-utils/format
187
+ var format_exports = {};
188
+ __export(format_exports, {
189
+ default: () => format_default
190
+ });
191
+ var defaultImport7 = __toESM(require("@splunk/ui-utils/format"));
192
+ __reExport(format_exports, require("@splunk/ui-utils/format"));
193
+ var format_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
194
+
195
+ // src/components/FieldSummary/Abbreviate.tsx
196
+ var formatNumber = new Intl.NumberFormat().format;
197
+ var Abbreviate = ({ value }) => /* @__PURE__ */ react_default.createElement("span", { title: formatNumber(value) }, (0, format_exports.abbreviateNumber)(value));
198
+ var Abbreviate_default = Abbreviate;
199
+
200
+ // esm-externals:@splunk/react-ui/Link
201
+ var Link_exports = {};
202
+ __export(Link_exports, {
203
+ default: () => Link_default
204
+ });
205
+ var defaultImport8 = __toESM(require("@splunk/react-ui/Link"));
206
+ __reExport(Link_exports, require("@splunk/react-ui/Link"));
207
+ var Link_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
208
+
209
+ // src/components/FieldSummary/FieldActions.tsx
210
+ var StyledActions = styled_components_default.div`
211
+ padding-left: ${themes_exports.variables.spacingMedium};
212
+
213
+ h3 {
214
+ font-size: ${themes_exports.variables.fontSize};
215
+ margin: 0;
216
+ padding: 1px;
217
+ margin-top: 2px;
218
+ }
43
219
 
44
- var _jsxFileName = "/Users/ccoats/Developer/ui-platform/projects/lib/search-components/react-field-summary/src/components/FieldSummary/FieldSummary.tsx",
45
- _templateObject,
46
- _templateObject2,
47
- _templateObject3;
220
+ ul {
221
+ list-style-type: none;
222
+ padding: 0;
223
+ margin: 0;
48
224
 
49
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
225
+ button {
226
+ line-height: calc(${themes_exports.variables.lineHeight} * 0.8);
227
+ margin-bottom: ${themes_exports.variables.spacingXSmall};
228
+ }
229
+ }
230
+ `;
231
+ var Actions = ({ field, actions, selected, onActionClicked }) => actions && actions.length > 0 ? /* @__PURE__ */ react_default.createElement(StyledActions, null, /* @__PURE__ */ react_default.createElement("h3", null, (0, i18n_exports._)("Actions")), /* @__PURE__ */ react_default.createElement("ul", null, actions.map(({ name, label, requiresSelection }) => /* @__PURE__ */ react_default.createElement("li", { key: name }, /* @__PURE__ */ react_default.createElement(
232
+ Link_default,
233
+ {
234
+ disabled: !onActionClicked || requiresSelection && selected.length === 0,
235
+ onClick: (e) => onActionClicked(e, { action: name, field, selected })
236
+ },
237
+ label
238
+ ))))) : null;
239
+ var FieldActions_default = Actions;
240
+
241
+ // src/components/FieldSummary/FieldStats.tsx
242
+ var DL = styled_components_default.dl`
243
+ color: ${themes_exports.variables.contentColorDefault};
244
+ margin-top: ${themes_exports.variables.spacingSmall};
245
+ margin-bottom: ${themes_exports.variables.spacingSmall};
246
+ dt {
247
+ display: inline-block;
248
+ font-weight: bold;
249
+ }
250
+ dt::after {
251
+ content: ':';
252
+ }
253
+ dd {
254
+ display: inline-block;
255
+ margin-left: ${themes_exports.variables.spacingXSmall};
256
+ margin-right: ${themes_exports.variables.spacingSmall};
257
+ }
258
+ `;
259
+ var Stat = ({ label, value }) => /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement("dt", null, label), /* @__PURE__ */ react_default.createElement("dd", null, /* @__PURE__ */ react_default.createElement(Abbreviate_default, { value })));
260
+ var FieldStats = ({ mean, min, max, stdev }) => typeof mean !== "number" ? null : /* @__PURE__ */ react_default.createElement(DL, null, /* @__PURE__ */ react_default.createElement(Stat, { label: (0, i18n_exports._)("Min"), value: min }), /* @__PURE__ */ react_default.createElement(Stat, { label: (0, i18n_exports._)("Max"), value: max }), /* @__PURE__ */ react_default.createElement(Stat, { label: (0, i18n_exports._)("Avg"), value: mean }), /* @__PURE__ */ react_default.createElement(Stat, { label: (0, i18n_exports._)("Std Dev"), value: stdev }));
261
+ var FieldStats_default = FieldStats;
262
+
263
+ // esm-externals:@splunk/react-ui/Switch
264
+ var Switch_exports = {};
265
+ __export(Switch_exports, {
266
+ default: () => Switch_default
267
+ });
268
+ var defaultImport9 = __toESM(require("@splunk/react-ui/Switch"));
269
+ __reExport(Switch_exports, require("@splunk/react-ui/Switch"));
270
+ var Switch_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
271
+
272
+ // esm-externals:@splunk/ui-utils/id
273
+ var id_exports = {};
274
+ __export(id_exports, {
275
+ default: () => id_default
276
+ });
277
+ var defaultImport10 = __toESM(require("@splunk/ui-utils/id"));
278
+ __reExport(id_exports, require("@splunk/ui-utils/id"));
279
+ var id_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
280
+
281
+ // src/components/FieldSummary/FieldSummaryTable.tsx
282
+ var BAR_WIDTH = "100px";
283
+ var BarContainer = styled_components_default.div`
284
+ width: ${BAR_WIDTH};
285
+ background-color: ${(0, themes_exports.pick)({
286
+ enterprise: themes_exports.variables.backgroundColorHover,
287
+ prisma: themes_exports.variables.interactiveColorOverlayHover
288
+ })};
289
+ `;
290
+ var Bar = styled_components_default.div`
291
+ height: ${themes_exports.variables.lineHeight};
292
+ background-color: ${(0, themes_exports.pick)({
293
+ enterprise: themes_exports.variables.accentColor,
294
+ prisma: themes_exports.variables.interactiveColorPrimary
295
+ })};
296
+ `;
297
+ var StyledSwitch = styled_components_default(Switch_default)`
298
+ margin: 0 ${themes_exports.variables.spacingXSmall} 0 0;
299
+ padding: 0;
300
+ `;
301
+ var NumericCell = styled_components_default.td`
302
+ text-align: right;
303
+ `;
304
+ var ValueCell = styled_components_default.td`
305
+ width: 100%;
306
+ `;
307
+ var NumericHeading = styled_components_default.th`
308
+ text-align: right;
309
+ `;
310
+ var Truncated = styled_components_default.span`
311
+ text-overflow: ellipsis;
312
+ min-width: 0;
313
+ display: -webkit-box;
314
+ -webkit-line-clamp: 1;
315
+ -webkit-box-orient: vertical;
316
+ overflow: hidden;
317
+ word-wrap: anywhere;
318
+ word-break: break-all;
319
+ `;
320
+ var Table = styled_components_default.table`
321
+ tbody {
322
+ td {
323
+ font-family: ${themes_exports.variables.monoFontFamily};
324
+ button {
325
+ font-family: ${themes_exports.variables.monoFontFamily};
326
+ }
327
+ }
328
+
329
+ th:last-child {
330
+ width: ${BAR_WIDTH};
331
+ }
332
+ }
333
+ `;
334
+ var FieldSummaryTable = ({
335
+ total,
336
+ values,
337
+ selected,
338
+ onFieldValueSelected,
339
+ onFieldValueClicked
340
+ }) => {
341
+ const firstColSpan = onFieldValueSelected ? 2 : 1;
342
+ return /* @__PURE__ */ react_default.createElement(Table, null, /* @__PURE__ */ react_default.createElement("thead", null, /* @__PURE__ */ react_default.createElement("tr", null, /* @__PURE__ */ react_default.createElement("th", { colSpan: firstColSpan }, (0, i18n_exports._)("Top Values")), /* @__PURE__ */ react_default.createElement(NumericHeading, null, (0, i18n_exports._)("Count")), /* @__PURE__ */ react_default.createElement("th", null))), /* @__PURE__ */ react_default.createElement("tbody", null, values.map(({ count, value }) => {
343
+ const percent = count < total ? count / total * 100 : 100;
344
+ const percentOfEvents = (0, format_exports.sprintf)((0, i18n_exports._)("%(percent)s%% of %(total)s events"), {
345
+ percent: formatNumber(percent),
346
+ total: formatNumber(total)
347
+ });
348
+ const labelId = (0, id_exports.createDOMID)();
349
+ return /* @__PURE__ */ react_default.createElement("tr", { key: value }, onFieldValueSelected && /* @__PURE__ */ react_default.createElement("td", null, /* @__PURE__ */ react_default.createElement(
350
+ StyledSwitch,
351
+ {
352
+ key: value,
353
+ value,
354
+ selected: selected.indexOf(value) >= 0,
355
+ appearance: "checkbox",
356
+ onClick: onFieldValueSelected,
357
+ labelledBy: labelId
358
+ }
359
+ )), /* @__PURE__ */ react_default.createElement(ValueCell, { title: value }, onFieldValueClicked ? /* @__PURE__ */ react_default.createElement(
360
+ Link_default,
361
+ {
362
+ onClick: (e) => onFieldValueClicked(e, { value })
363
+ },
364
+ /* @__PURE__ */ react_default.createElement(Truncated, { id: labelId }, value)
365
+ ) : /* @__PURE__ */ react_default.createElement(Truncated, { id: labelId }, value)), /* @__PURE__ */ react_default.createElement(NumericCell, { title: percentOfEvents }, formatNumber(count)), /* @__PURE__ */ react_default.createElement("td", { title: percentOfEvents }, /* @__PURE__ */ react_default.createElement(BarContainer, null, /* @__PURE__ */ react_default.createElement(Bar, { style: { width: `${percent}%` } }))));
366
+ })));
367
+ };
368
+ var FieldSummaryTable_default = FieldSummaryTable;
50
369
 
51
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
370
+ // esm-externals:@splunk/react-icons/enterprise/Caret
371
+ var Caret_exports = {};
372
+ __export(Caret_exports, {
373
+ default: () => Caret_default
374
+ });
375
+ var defaultImport11 = __toESM(require("@splunk/react-icons/enterprise/Caret"));
376
+ __reExport(Caret_exports, require("@splunk/react-icons/enterprise/Caret"));
377
+ var Caret_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
378
+
379
+ // esm-externals:@splunk/react-ui/Menu
380
+ var Menu_exports = {};
381
+ __export(Menu_exports, {
382
+ default: () => Menu_default
383
+ });
384
+ var defaultImport12 = __toESM(require("@splunk/react-ui/Menu"));
385
+ __reExport(Menu_exports, require("@splunk/react-ui/Menu"));
386
+ var Menu_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
387
+
388
+ // esm-externals:@splunk/react-ui/Button
389
+ var Button_exports = {};
390
+ __export(Button_exports, {
391
+ default: () => Button_default
392
+ });
393
+ var defaultImport13 = __toESM(require("@splunk/react-ui/Button"));
394
+ __reExport(Button_exports, require("@splunk/react-ui/Button"));
395
+ var Button_default = "default" in defaultImport13 ? defaultImport13.default : defaultImport13;
396
+
397
+ // esm-externals:@splunk/react-ui/ButtonGroup
398
+ var ButtonGroup_exports = {};
399
+ __export(ButtonGroup_exports, {
400
+ default: () => ButtonGroup_default
401
+ });
402
+ var defaultImport14 = __toESM(require("@splunk/react-ui/ButtonGroup"));
403
+ __reExport(ButtonGroup_exports, require("@splunk/react-ui/ButtonGroup"));
404
+ var ButtonGroup_default = "default" in defaultImport14 ? defaultImport14.default : defaultImport14;
405
+
406
+ // esm-externals:@splunk/react-ui/Dropdown
407
+ var Dropdown_exports = {};
408
+ __export(Dropdown_exports, {
409
+ default: () => Dropdown_default
410
+ });
411
+ var defaultImport15 = __toESM(require("@splunk/react-ui/Dropdown"));
412
+ __reExport(Dropdown_exports, require("@splunk/react-ui/Dropdown"));
413
+ var Dropdown_default = "default" in defaultImport15 ? defaultImport15.default : defaultImport15;
414
+
415
+ // src/components/FieldSummary/SplitButton.tsx
416
+ var SplitButton = (_a) => {
417
+ var _b = _a, {
418
+ actions,
419
+ selectionCount,
420
+ onActionClicked
421
+ } = _b, otherProps = __objRest(_b, [
422
+ "actions",
423
+ "selectionCount",
424
+ "onActionClicked"
425
+ ]);
426
+ if (actions.length === 0) {
427
+ return null;
428
+ }
429
+ const [first, ...rest] = actions;
430
+ const clickHandler = onActionClicked ? (action) => (e) => onActionClicked(e, { action }) : () => void 0;
431
+ let popup = null;
432
+ if (rest.length > 0) {
433
+ const toggle = /* @__PURE__ */ react_default.createElement(
434
+ Button_default,
435
+ {
436
+ prepend: true,
437
+ key: "more-actions",
438
+ "data-test": "more-actions",
439
+ icon: /* @__PURE__ */ react_default.createElement(Caret_default, { screenReaderText: (0, i18n_exports._)("More Actions") }),
440
+ appearance: "toggle",
441
+ disabled: selectionCount === 0
442
+ }
443
+ );
444
+ popup = /* @__PURE__ */ react_default.createElement(Dropdown_default, { toggle }, /* @__PURE__ */ react_default.createElement(Menu_default, null, rest.map((action) => /* @__PURE__ */ react_default.createElement(
445
+ Menu_default.Item,
446
+ {
447
+ key: action.name,
448
+ "data-test": action.name,
449
+ onClick: clickHandler(action.name)
450
+ },
451
+ action.label,
452
+ " "
453
+ ))));
454
+ }
455
+ return /* @__PURE__ */ react_default.createElement(ButtonGroup_default, __spreadValues({ "data-test": "split-button" }, otherProps), /* @__PURE__ */ react_default.createElement(
456
+ Button_default,
457
+ {
458
+ key: first.name,
459
+ "data-test": first.name,
460
+ label: first.label,
461
+ appearance: "toggle",
462
+ onClick: clickHandler(first.name),
463
+ disabled: selectionCount === 0
464
+ }
465
+ ), popup);
466
+ };
467
+ var SplitButton_default = SplitButton;
52
468
 
53
- const defaultActionsForField = (field, actionsForField) => {
469
+ // src/components/FieldSummary/FieldSummary.tsx
470
+ var defaultActionsForField = (field, actionsForField) => {
54
471
  const actions = [];
55
-
56
- if ((0, _FieldList.isNumeric)(field)) {
57
- actions.push({
58
- name: 'avgByTime',
59
- label: (0, _i18n._)('Average over time')
60
- });
61
- actions.push({
62
- name: 'maxByTime',
63
- label: (0, _i18n._)('Maximum value over time')
64
- });
65
- actions.push({
66
- name: 'minByTime',
67
- label: (0, _i18n._)('Minimum value over time')
68
- });
472
+ if (isNumeric(field)) {
473
+ actions.push({ name: "avgByTime", label: (0, i18n_exports._)("Average over time") });
474
+ actions.push({ name: "maxByTime", label: (0, i18n_exports._)("Maximum value over time") });
475
+ actions.push({ name: "minByTime", label: (0, i18n_exports._)("Minimum value over time") });
69
476
  }
70
-
71
- actions.push({
72
- name: 'topValues',
73
- label: (0, _i18n._)('Top values')
74
- });
477
+ actions.push({ name: "topValues", label: (0, i18n_exports._)("Top values") });
478
+ actions.push({ name: "topValuesByTime", label: (0, i18n_exports._)("Top values by time") });
479
+ actions.push({ name: "rareValues", label: (0, i18n_exports._)("Rare values") });
480
+ actions.push({ name: "allValues", label: (0, i18n_exports._)("Events with this field") });
75
481
  actions.push({
76
- name: 'topValuesByTime',
77
- label: (0, _i18n._)('Top values by time')
78
- });
79
- actions.push({
80
- name: 'rareValues',
81
- label: (0, _i18n._)('Rare values')
82
- });
83
- actions.push({
84
- name: 'allValues',
85
- label: (0, _i18n._)('Events with this field')
86
- });
87
- actions.push({
88
- name: 'includeValues',
89
- label: (0, _i18n._)('Include Selected'),
482
+ name: "includeValues",
483
+ label: (0, i18n_exports._)("Include Selected"),
90
484
  requiresSelection: true
91
485
  });
92
486
  actions.push({
93
- name: 'excludeValues',
94
- label: (0, _i18n._)('Exclude Selected'),
487
+ name: "excludeValues",
488
+ label: (0, i18n_exports._)("Exclude Selected"),
95
489
  requiresSelection: true
96
490
  });
97
491
  return actionsForField ? actionsForField(field, actions) : actions;
98
492
  };
493
+ var Name2 = styled_components_default.h2`
494
+ font-size: ${themes_exports.variables.fontSizeXLarge};
495
+ margin: ${themes_exports.variables.spacingSmall} 0;
496
+ text-overflow: ellipsis;
497
+ overflow: hidden;
498
+ `;
499
+ var StyledCoverage = styled_components_default.div`
500
+ color: ${themes_exports.variables.contentColorDefault};
501
+ margin-bottom: ${themes_exports.variables.spacingSmall};
502
+ `;
503
+ var TableAndActions = styled_components_default.div`
504
+ display: flex;
505
+
506
+ & > div:nth-child(1) {
507
+ flex: 1 1;
508
+ table {
509
+ width: 100%;
510
+ }
511
+ }
99
512
 
100
- const Name = _styledComponents.default.h2(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", ";\n margin: ", " 0;\n text-overflow: ellipsis;\n overflow: hidden;\n"])), _themes.variables.fontSizeXLarge, _themes.variables.spacingSmall);
101
-
102
- const StyledCoverage = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n margin-bottom: ", ";\n"])), _themes.variables.contentColorDefault, _themes.variables.spacingSmall);
103
-
104
- const TableAndActions = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n\n & > div:nth-child(1) {\n flex: 1 1;\n table {\n width: 100%;\n }\n }\n\n & > div:nth-child(2) {\n width: 150px;\n }\n"])));
105
-
106
- const Coverage = ({
513
+ & > div:nth-child(2) {
514
+ width: 150px;
515
+ }
516
+ `;
517
+ var Coverage = ({
107
518
  distinctCount,
108
519
  count,
109
520
  eventCount
110
521
  }) => {
111
- const content = [/*#__PURE__*/_react.default.createElement(_Abbreviate.default, {
112
- key: "values",
113
- value: distinctCount,
114
- __self: void 0,
115
- __source: {
116
- fileName: _jsxFileName,
117
- lineNumber: 131,
118
- columnNumber: 22
119
- }
120
- }), (0, _i18n._)(' values')];
121
-
522
+ const content = [/* @__PURE__ */ react_default.createElement(Abbreviate_default, { key: "values", value: distinctCount }), (0, i18n_exports._)(" values")];
122
523
  if (eventCount) {
123
- content.push((0, _i18n._)(' in '));
124
- content.push((0, _Abbreviate.formatNumber)(count / eventCount * 100) + "%");
125
- content.push((0, _i18n._)(' of '));
126
- content.push( /*#__PURE__*/_react.default.createElement(_Abbreviate.default, {
127
- key: "events",
128
- value: eventCount,
129
- __self: void 0,
130
- __source: {
131
- fileName: _jsxFileName,
132
- lineNumber: 136,
133
- columnNumber: 22
134
- }
135
- }));
136
- content.push((0, _i18n._)(' events'));
524
+ content.push((0, i18n_exports._)(" in "));
525
+ content.push(`${formatNumber(count / eventCount * 100)}%`);
526
+ content.push((0, i18n_exports._)(" of "));
527
+ content.push(/* @__PURE__ */ react_default.createElement(Abbreviate_default, { key: "events", value: eventCount }));
528
+ content.push((0, i18n_exports._)(" events"));
137
529
  }
138
-
139
- return /*#__PURE__*/_react.default.createElement(StyledCoverage, {
140
- __self: void 0,
141
- __source: {
142
- fileName: _jsxFileName,
143
- lineNumber: 139,
144
- columnNumber: 12
145
- }
146
- }, content);
530
+ return /* @__PURE__ */ react_default.createElement(StyledCoverage, null, content);
147
531
  };
148
-
149
- const FieldSummary = _ref => {
150
- let {
532
+ var FieldSummary = (_a) => {
533
+ var _b = _a, {
151
534
  field,
152
535
  eventCount,
153
536
  actionsForField,
154
537
  onActionClicked,
155
538
  onFieldValueClicked
156
- } = _ref,
157
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
158
- const [selected, setSelected] = (0, _react.useState)([]);
159
- const handleSelectValue = (0, _react.useCallback)((e, {
160
- value
161
- }) => {
162
- setSelected(prev => {
163
- const filtered = prev.filter(x => x !== value);
164
-
165
- if (prev.length !== filtered.length) {
166
- return filtered;
167
- }
168
-
169
- return [...filtered, value];
170
- });
171
- }, []);
172
- const actions = (0, _react.useMemo)(() => defaultActionsForField(field, actionsForField), [field, actionsForField]);
173
- const selectionActions = (0, _react.useMemo)(() => actions.filter(action => action.requiresSelection), [actions]);
174
- const nonSelectionActions = (0, _react.useMemo)(() => actions.filter(action => !action.requiresSelection), [actions]);
175
- const handleActionClicked = (0, _react.useMemo)(() => {
539
+ } = _b, rest = __objRest(_b, [
540
+ "field",
541
+ "eventCount",
542
+ "actionsForField",
543
+ "onActionClicked",
544
+ "onFieldValueClicked"
545
+ ]);
546
+ const [selected, setSelected] = (0, react_exports.useState)([]);
547
+ const handleSelectValue = (0, react_exports.useCallback)(
548
+ (e, data) => {
549
+ setSelected((prev) => {
550
+ const filtered = prev.filter((x) => x !== data.value);
551
+ if (prev.length !== filtered.length) {
552
+ return filtered;
553
+ }
554
+ return [...filtered, data.value];
555
+ });
556
+ },
557
+ []
558
+ );
559
+ const actions = (0, react_exports.useMemo)(() => defaultActionsForField(field, actionsForField), [field, actionsForField]);
560
+ const selectionActions = (0, react_exports.useMemo)(() => actions.filter((action) => action.requiresSelection), [actions]);
561
+ const nonSelectionActions = (0, react_exports.useMemo)(() => actions.filter((action) => !action.requiresSelection), [actions]);
562
+ const handleActionClicked = (0, react_exports.useMemo)(() => {
176
563
  if (!onActionClicked) {
177
- return undefined;
564
+ return void 0;
178
565
  }
179
-
180
- return (e, {
181
- action
182
- }) => onActionClicked(e, {
183
- action,
184
- field: field.name,
185
- selected
186
- });
566
+ return (e, { action }) => onActionClicked(e, { action, field: field.name, selected });
187
567
  }, [onActionClicked, field.name, selected]);
188
- const handleFieldValueClicked = (0, _react.useMemo)(() => {
568
+ const handleFieldValueClicked = (0, react_exports.useMemo)(() => {
189
569
  if (!onFieldValueClicked) {
190
- return undefined;
570
+ return void 0;
191
571
  }
192
-
193
- return (e, {
194
- value
195
- }) => onFieldValueClicked(e, {
196
- field: field.name,
197
- value
198
- });
572
+ return (e, { value }) => onFieldValueClicked(e, { field: field.name, value });
199
573
  }, [onFieldValueClicked, field.name]);
200
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
201
- "data-test": "field-summary"
202
- }, rest, {
203
- __self: void 0,
204
- __source: {
205
- fileName: _jsxFileName,
206
- lineNumber: 186,
207
- columnNumber: 9
208
- }
209
- }), /*#__PURE__*/_react.default.createElement(Name, {
210
- title: field.name,
211
- __self: void 0,
212
- __source: {
213
- fileName: _jsxFileName,
214
- lineNumber: 187,
215
- columnNumber: 13
216
- }
217
- }, field.name), /*#__PURE__*/_react.default.createElement(Coverage, {
218
- distinctCount: field.distinctCount,
219
- count: field.count,
220
- eventCount: eventCount,
221
- __self: void 0,
222
- __source: {
223
- fileName: _jsxFileName,
224
- lineNumber: 188,
225
- columnNumber: 13
226
- }
227
- }), /*#__PURE__*/_react.default.createElement(_FieldStats.default, (0, _extends2.default)({}, field, {
228
- __self: void 0,
229
- __source: {
230
- fileName: _jsxFileName,
231
- lineNumber: 189,
232
- columnNumber: 13
233
- }
234
- })), /*#__PURE__*/_react.default.createElement(_SplitButton.default, {
235
- actions: selectionActions,
236
- selectionCount: selected.length,
237
- onActionClicked: handleActionClicked,
238
- __self: void 0,
239
- __source: {
240
- fileName: _jsxFileName,
241
- lineNumber: 190,
242
- columnNumber: 13
574
+ return /* @__PURE__ */ react_default.createElement("div", __spreadValues({ "data-test": "field-summary" }, rest), /* @__PURE__ */ react_default.createElement(Name2, { title: field.name }, field.name), /* @__PURE__ */ react_default.createElement(Coverage, { distinctCount: field.distinctCount, count: field.count, eventCount }), /* @__PURE__ */ react_default.createElement(FieldStats_default, __spreadValues({}, field)), /* @__PURE__ */ react_default.createElement(
575
+ SplitButton_default,
576
+ {
577
+ actions: selectionActions,
578
+ selectionCount: selected.length,
579
+ onActionClicked: handleActionClicked
243
580
  }
244
- }), /*#__PURE__*/_react.default.createElement(TableAndActions, {
245
- __self: void 0,
246
- __source: {
247
- fileName: _jsxFileName,
248
- lineNumber: 195,
249
- columnNumber: 13
581
+ ), /* @__PURE__ */ react_default.createElement(TableAndActions, null, /* @__PURE__ */ react_default.createElement("div", null, /* @__PURE__ */ react_default.createElement(
582
+ FieldSummaryTable_default,
583
+ {
584
+ total: field.count,
585
+ values: field.modes,
586
+ selected,
587
+ onFieldValueSelected: selectionActions.length > 0 ? handleSelectValue : void 0,
588
+ onFieldValueClicked: handleFieldValueClicked
250
589
  }
251
- }, /*#__PURE__*/_react.default.createElement("div", {
252
- __self: void 0,
253
- __source: {
254
- fileName: _jsxFileName,
255
- lineNumber: 196,
256
- columnNumber: 17
257
- }
258
- }, /*#__PURE__*/_react.default.createElement(_FieldSummaryTable.default, {
259
- total: field.count,
260
- values: field.modes,
261
- selected: selected,
262
- onFieldValueSelected: selectionActions.length > 0 ? handleSelectValue : undefined,
263
- onFieldValueClicked: handleFieldValueClicked,
264
- __self: void 0,
265
- __source: {
266
- fileName: _jsxFileName,
267
- lineNumber: 197,
268
- columnNumber: 21
269
- }
270
- })), /*#__PURE__*/_react.default.createElement(_FieldActions.default, {
271
- field: field.name,
272
- actions: nonSelectionActions,
273
- selected: selected,
274
- onActionClicked: onActionClicked,
275
- __self: void 0,
276
- __source: {
277
- fileName: _jsxFileName,
278
- lineNumber: 205,
279
- columnNumber: 17
590
+ )), /* @__PURE__ */ react_default.createElement(
591
+ FieldActions_default,
592
+ {
593
+ field: field.name,
594
+ actions: nonSelectionActions,
595
+ selected,
596
+ onActionClicked
280
597
  }
281
- })));
598
+ )));
282
599
  };
283
-
284
- var _default = FieldSummary;
285
- exports.default = _default;
600
+ var FieldSummary_default = FieldSummary;
601
+ //# sourceMappingURL=FieldSummary.js.map