UNPKG

@uiw/react-json-view

Version:
194 lines (193 loc) 7.78 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.KeyValuesItem = exports.KeyValues = exports.KayName = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _store = require("../store"); var _Expands = require("../store/Expands"); var _ShowTools = require("../store/ShowTools"); var _Value = require("./Value"); var _KeyName = require("../section/KeyName"); var _Row = require("../section/Row"); var _Container = require("../Container"); var _symbol = require("../symbol/"); var _useHighlight = require("../utils/useHighlight"); var _Copied = require("../comps/Copied"); var _useIdCompat = require("../comps/useIdCompat"); var _jsxRuntime = require("react/jsx-runtime"); var KeyValues = exports.KeyValues = function KeyValues(props) { var _expands$expandKey; var value = props.value, _props$expandKey = props.expandKey, expandKey = _props$expandKey === void 0 ? '' : _props$expandKey, level = props.level, _props$keys = props.keys, keys = _props$keys === void 0 ? [] : _props$keys; var expands = (0, _Expands.useExpandsStore)(); var _useStore = (0, _store.useStore)(), objectSortKeys = _useStore.objectSortKeys, indentWidth = _useStore.indentWidth, collapsed = _useStore.collapsed, shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially; var isMyArray = Array.isArray(value); var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false; var isExpanded = (_expands$expandKey = expands[expandKey]) !== null && _expands$expandKey !== void 0 ? _expands$expandKey : defaultExpanded; var shouldExpand = shouldExpandNodeInitially && shouldExpandNodeInitially(!isExpanded, { value: value, keys: keys, level: level }); if (expands[expandKey] === undefined && shouldExpandNodeInitially && !shouldExpand) { return null; } if (isExpanded) { return null; } // object var entries = isMyArray ? Object.entries(value).map(function (m) { return [Number(m[0]), m[1]]; }) : Object.entries(value); if (objectSortKeys) { entries = objectSortKeys === true ? entries.sort(function (_ref, _ref2) { var _ref3 = (0, _slicedToArray2["default"])(_ref, 1), a = _ref3[0]; var _ref4 = (0, _slicedToArray2["default"])(_ref2, 1), b = _ref4[0]; return typeof a === 'string' && typeof b === 'string' ? a.localeCompare(b) : 0; }) : entries.sort(function (_ref5, _ref6) { var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2), a = _ref7[0], valA = _ref7[1]; var _ref8 = (0, _slicedToArray2["default"])(_ref6, 2), b = _ref8[0], valB = _ref8[1]; return typeof a === 'string' && typeof b === 'string' ? objectSortKeys(a, b, valA, valB) : 0; }); } var style = { borderLeft: 'var(--w-rjv-border-left-width, 1px) var(--w-rjv-line-style, solid) var(--w-rjv-line-color, #ebebeb)', paddingLeft: indentWidth, marginLeft: 6 }; return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "w-rjv-wrap", style: style, children: entries.map(function (_ref9, idx) { var _ref0 = (0, _slicedToArray2["default"])(_ref9, 2), key = _ref0[0], val = _ref0[1]; return /*#__PURE__*/(0, _jsxRuntime.jsx)(KeyValuesItem, { parentValue: value, keyName: key, keys: [].concat((0, _toConsumableArray2["default"])(keys), [key]), value: val, level: level }, idx); }) }); }; KeyValues.displayName = 'JVR.KeyValues'; var KayName = exports.KayName = function KayName(props) { var keyName = props.keyName, parentValue = props.parentValue, keys = props.keys, value = props.value; var _useStore2 = (0, _store.useStore)(), highlightUpdates = _useStore2.highlightUpdates; var isNumber = typeof keyName === 'number'; var highlightContainer = (0, _react.useRef)(null); (0, _useHighlight.useHighlight)({ value: value, highlightUpdates: highlightUpdates, highlightContainer: highlightContainer }); var compProps = { keyName: keyName, value: value, keys: keys, parentValue: parentValue }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { ref: highlightContainer, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({ isNumber: isNumber, "data-placement": "left" }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyName.KeyNameComp, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, compProps), {}, { children: keyName })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Quote, (0, _objectSpread2["default"])({ isNumber: isNumber, "data-placement": "right" }, compProps))] }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Colon, (0, _objectSpread2["default"])({}, compProps))] }); }; KayName.displayName = 'JVR.KayName'; var KeyValuesItem = exports.KeyValuesItem = function KeyValuesItem(props) { var keyName = props.keyName, value = props.value, parentValue = props.parentValue, _props$level = props.level, level = _props$level === void 0 ? 0 : _props$level, _props$keys2 = props.keys, keys = _props$keys2 === void 0 ? [] : _props$keys2; var dispatch = (0, _ShowTools.useShowToolsDispatch)(); var subkeyid = (0, _useIdCompat.useIdCompat)(); var isMyArray = Array.isArray(value); var isMySet = value instanceof Set; var isMyMap = value instanceof Map; var isDate = value instanceof Date; var isUrl = value instanceof URL; var isMyObject = value && (0, _typeof2["default"])(value) === 'object' && !isMyArray && !isMySet && !isMyMap && !isDate && !isUrl; var isNested = isMyObject || isMyArray || isMySet || isMyMap; if (isNested) { var myValue = isMySet ? Array.from(value) : isMyMap ? Object.fromEntries(value) : value; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Container.Container, { keyName: keyName, value: myValue, parentValue: parentValue, initialValue: value, keys: keys, level: level + 1 }); } var reset = { onMouseEnter: function onMouseEnter() { return dispatch((0, _defineProperty2["default"])({}, subkeyid, true)); }, onMouseLeave: function onMouseLeave() { return dispatch((0, _defineProperty2["default"])({}, subkeyid, false)); } }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Row.RowComp, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({ className: "w-rjv-line", value: value, keyName: keyName, keys: keys, parentValue: parentValue }, reset), {}, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(KayName, { keyName: keyName, value: value, keys: keys, parentValue: parentValue }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Value.Value, { keyName: keyName, value: value }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Copied.Copied, { keyName: keyName, value: value, keys: keys, parentValue: parentValue, expandKey: subkeyid })] })); }; KeyValuesItem.displayName = 'JVR.KeyValuesItem';