UNPKG

@uiw/react-json-view

Version:
116 lines (115 loc) 4.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.NestedOpen = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _KeyValues = require("./KeyValues"); var _Expands = require("../store/Expands"); var _store = require("../store"); var _Copied = require("./Copied"); var _CountInfoExtra = require("../section/CountInfoExtra"); var _CountInfo = require("../section/CountInfo"); var _symbol = require("../symbol/"); var _Ellipsis = require("../section/Ellipsis"); var _types = require("../types/"); var _jsxRuntime = require("react/jsx-runtime"); var NestedOpen = exports.NestedOpen = function NestedOpen(props) { var _expands$expandKey; var keyName = props.keyName, expandKey = props.expandKey, _props$keys = props.keys, keys = _props$keys === void 0 ? [] : _props$keys, initialValue = props.initialValue, value = props.value, parentValue = props.parentValue, level = props.level; var expands = (0, _Expands.useExpandsStore)(); var dispatchExpands = (0, _Expands.useExpandsDispatch)(); var _useStore = (0, _store.useStore)(), onExpand = _useStore.onExpand, collapsed = _useStore.collapsed, shouldExpandNodeInitially = _useStore.shouldExpandNodeInitially; var isArray = Array.isArray(value); var isMySet = value instanceof Set; var defaultExpanded = typeof collapsed === 'boolean' ? collapsed : typeof collapsed === 'number' ? level > collapsed : false; var isObject = (0, _typeof2["default"])(value) === 'object'; 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) { isExpanded = !shouldExpand; } var click = function click() { var opt = { expand: !isExpanded, value: value, keyid: expandKey, keyName: keyName }; onExpand && onExpand(opt); dispatchExpands((0, _defineProperty2["default"])({}, expandKey, opt.expand)); }; var style = { display: 'inline-flex', alignItems: 'center' }; var arrowStyle = { transform: "rotate(".concat(!isExpanded ? '0' : '-90', "deg)"), transition: 'all 0.3s' }; var len = Object.keys(value).length; var showArrow = len !== 0 && (isArray || isMySet || isObject); var reset = { style: style }; if (showArrow) { reset.onClick = click; } var compProps = { keyName: keyName, value: value, keys: keys, parentValue: parentValue }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, { children: [showArrow && /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.Arrow, (0, _objectSpread2["default"])({ style: arrowStyle, expandKey: expandKey }, compProps)), (keyName || typeof keyName === 'number') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyValues.KayName, (0, _objectSpread2["default"])({}, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.SetComp, { value: initialValue, keyName: keyName }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_types.MapComp, { value: initialValue, keyName: keyName }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsOpen, (0, _objectSpread2["default"])({ isBrackets: isArray || isMySet }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Ellipsis.EllipsisComp, { keyName: keyName, value: value, isExpanded: isExpanded }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_symbol.BracketsClose, (0, _objectSpread2["default"])({ isVisiable: isExpanded || !showArrow, isBrackets: isArray || isMySet }, compProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfo.CountInfoComp, { value: value, keyName: keyName }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CountInfoExtra.CountInfoExtraComps, { value: value, keyName: keyName }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Copied.Copied, { keyName: keyName, value: value, expandKey: expandKey, parentValue: parentValue, keys: keys })] })); }; NestedOpen.displayName = 'JVR.NestedOpen';