Files
GNX-mailEnterprise/frontend/node_modules/react-query/lib/devtools/Explorer.js
Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00

235 lines
7.9 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.chunkArray = chunkArray;
exports.default = Explorer;
exports.DefaultRenderer = exports.Expander = exports.Info = exports.SubEntries = exports.Value = exports.ExpandButton = exports.LabelButton = exports.Label = exports.Entry = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _utils = require("./utils");
var Entry = (0, _utils.styled)('div', {
fontFamily: 'Menlo, monospace',
fontSize: '1em',
lineHeight: '1.7',
outline: 'none',
wordBreak: 'break-word'
});
exports.Entry = Entry;
var Label = (0, _utils.styled)('span', {
color: 'white'
});
exports.Label = Label;
var LabelButton = (0, _utils.styled)('button', {
cursor: 'pointer',
color: 'white'
});
exports.LabelButton = LabelButton;
var ExpandButton = (0, _utils.styled)('button', {
cursor: 'pointer',
color: 'inherit',
font: 'inherit',
outline: 'inherit',
background: 'transparent',
border: 'none',
padding: 0
});
exports.ExpandButton = ExpandButton;
var Value = (0, _utils.styled)('span', function (_props, theme) {
return {
color: theme.danger
};
});
exports.Value = Value;
var SubEntries = (0, _utils.styled)('div', {
marginLeft: '.1em',
paddingLeft: '1em',
borderLeft: '2px solid rgba(0,0,0,.15)'
});
exports.SubEntries = SubEntries;
var Info = (0, _utils.styled)('span', {
color: 'grey',
fontSize: '.7em'
});
exports.Info = Info;
var Expander = function Expander(_ref) {
var expanded = _ref.expanded,
_ref$style = _ref.style,
style = _ref$style === void 0 ? {} : _ref$style;
return /*#__PURE__*/_react.default.createElement("span", {
style: (0, _extends2.default)({
display: 'inline-block',
transition: 'all .1s ease',
transform: "rotate(" + (expanded ? 90 : 0) + "deg) " + (style.transform || '')
}, style)
}, "\u25B6");
};
exports.Expander = Expander;
/**
* Chunk elements in the array by size
*
* when the array cannot be chunked evenly by size, the last chunk will be
* filled with the remaining elements
*
* @example
* chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
*/
function chunkArray(array, size) {
if (size < 1) return [];
var i = 0;
var result = [];
while (i < array.length) {
result.push(array.slice(i, i + size));
i = i + size;
}
return result;
}
var DefaultRenderer = function DefaultRenderer(_ref2) {
var HandleEntry = _ref2.HandleEntry,
label = _ref2.label,
value = _ref2.value,
_ref2$subEntries = _ref2.subEntries,
subEntries = _ref2$subEntries === void 0 ? [] : _ref2$subEntries,
_ref2$subEntryPages = _ref2.subEntryPages,
subEntryPages = _ref2$subEntryPages === void 0 ? [] : _ref2$subEntryPages,
type = _ref2.type,
_ref2$expanded = _ref2.expanded,
expanded = _ref2$expanded === void 0 ? false : _ref2$expanded,
toggleExpanded = _ref2.toggleExpanded,
pageSize = _ref2.pageSize;
var _React$useState = _react.default.useState([]),
expandedPages = _React$useState[0],
setExpandedPages = _React$useState[1];
return /*#__PURE__*/_react.default.createElement(Entry, {
key: label
}, (subEntryPages == null ? void 0 : subEntryPages.length) ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ExpandButton, {
onClick: function onClick() {
return toggleExpanded();
}
}, /*#__PURE__*/_react.default.createElement(Expander, {
expanded: expanded
}), " ", label, ' ', /*#__PURE__*/_react.default.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/_react.default.createElement(SubEntries, null, subEntries.map(function (entry) {
return /*#__PURE__*/_react.default.createElement(HandleEntry, {
key: entry.label,
entry: entry
});
})) : /*#__PURE__*/_react.default.createElement(SubEntries, null, subEntryPages.map(function (entries, index) {
return /*#__PURE__*/_react.default.createElement("div", {
key: index
}, /*#__PURE__*/_react.default.createElement(Entry, null, /*#__PURE__*/_react.default.createElement(LabelButton, {
onClick: function onClick() {
return setExpandedPages(function (old) {
return old.includes(index) ? old.filter(function (d) {
return d !== index;
}) : [].concat(old, [index]);
});
}
}, /*#__PURE__*/_react.default.createElement(Expander, {
expanded: expanded
}), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/_react.default.createElement(SubEntries, null, entries.map(function (entry) {
return /*#__PURE__*/_react.default.createElement(HandleEntry, {
key: entry.label,
entry: entry
});
})) : null));
})) : null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, null, label, ":"), " ", /*#__PURE__*/_react.default.createElement(Value, null, (0, _utils.displayValue)(value))));
};
exports.DefaultRenderer = DefaultRenderer;
function isIterable(x) {
return Symbol.iterator in x;
}
function Explorer(_ref3) {
var value = _ref3.value,
defaultExpanded = _ref3.defaultExpanded,
_ref3$renderer = _ref3.renderer,
renderer = _ref3$renderer === void 0 ? DefaultRenderer : _ref3$renderer,
_ref3$pageSize = _ref3.pageSize,
pageSize = _ref3$pageSize === void 0 ? 100 : _ref3$pageSize,
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref3, ["value", "defaultExpanded", "renderer", "pageSize"]);
var _React$useState2 = _react.default.useState(Boolean(defaultExpanded)),
expanded = _React$useState2[0],
setExpanded = _React$useState2[1];
var toggleExpanded = _react.default.useCallback(function () {
return setExpanded(function (old) {
return !old;
});
}, []);
var type = typeof value;
var subEntries = [];
var makeProperty = function makeProperty(sub) {
var _ref4;
var subDefaultExpanded = defaultExpanded === true ? (_ref4 = {}, _ref4[sub.label] = true, _ref4) : defaultExpanded == null ? void 0 : defaultExpanded[sub.label];
return (0, _extends2.default)({}, sub, {
defaultExpanded: subDefaultExpanded
});
};
if (Array.isArray(value)) {
type = 'array';
subEntries = value.map(function (d, i) {
return makeProperty({
label: i.toString(),
value: d
});
});
} else if (value !== null && typeof value === 'object' && isIterable(value) && typeof value[Symbol.iterator] === 'function') {
type = 'Iterable';
subEntries = Array.from(value, function (val, i) {
return makeProperty({
label: i.toString(),
value: val
});
});
} else if (typeof value === 'object' && value !== null) {
type = 'object';
subEntries = Object.entries(value).map(function (_ref5) {
var key = _ref5[0],
val = _ref5[1];
return makeProperty({
label: key,
value: val
});
});
}
var subEntryPages = chunkArray(subEntries, pageSize);
return renderer((0, _extends2.default)({
HandleEntry: function HandleEntry(_ref6) {
var entry = _ref6.entry;
return /*#__PURE__*/_react.default.createElement(Explorer, (0, _extends2.default)({
value: value,
renderer: renderer
}, rest, entry));
},
type: type,
subEntries: subEntries,
subEntryPages: subEntryPages,
value: value,
expanded: expanded,
toggleExpanded: toggleExpanded,
pageSize: pageSize
}, rest));
}