UNPKG

@storybook/react

Version:
682 lines (673 loc) • 37.1 kB
import { __commonJS, __toESM } from "./chunk-SL3VIQZ3.js"; // ../../node_modules/@base2/pretty-print-object/dist/index.js var require_dist = __commonJS({ "../../node_modules/@base2/pretty-print-object/dist/index.js"(exports) { "use strict"; var __assign = exports && exports.__assign || function() { return __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]); } return t; }, __assign.apply(this, arguments); }, __spreadArrays = exports && exports.__spreadArrays || function() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: !0 }); var seen = []; function isObj(value) { var type = typeof value; return value !== null && (type === "object" || type === "function"); } function isRegexp(value) { return Object.prototype.toString.call(value) === "[object RegExp]"; } function getOwnEnumPropSymbols(object) { return Object.getOwnPropertySymbols(object).filter(function(keySymbol) { return Object.prototype.propertyIsEnumerable.call(object, keySymbol); }); } function prettyPrint2(input, options, pad) { pad === void 0 && (pad = ""); var defaultOptions = { indent: " ", singleQuotes: !0 }, combinedOptions = __assign(__assign({}, defaultOptions), options), tokens; combinedOptions.inlineCharacterLimit === void 0 ? tokens = { newLine: ` `, newLineOrSpace: ` `, pad, indent: pad + combinedOptions.indent } : tokens = { newLine: "@@__PRETTY_PRINT_NEW_LINE__@@", newLineOrSpace: "@@__PRETTY_PRINT_NEW_LINE_OR_SPACE__@@", pad: "@@__PRETTY_PRINT_PAD__@@", indent: "@@__PRETTY_PRINT_INDENT__@@" }; var expandWhiteSpace = function(string) { if (combinedOptions.inlineCharacterLimit === void 0) return string; var oneLined = string.replace(new RegExp(tokens.newLine, "g"), "").replace(new RegExp(tokens.newLineOrSpace, "g"), " ").replace(new RegExp(tokens.pad + "|" + tokens.indent, "g"), ""); return oneLined.length <= combinedOptions.inlineCharacterLimit ? oneLined : string.replace(new RegExp(tokens.newLine + "|" + tokens.newLineOrSpace, "g"), ` `).replace(new RegExp(tokens.pad, "g"), pad).replace(new RegExp(tokens.indent, "g"), pad + combinedOptions.indent); }; if (seen.indexOf(input) !== -1) return '"[Circular]"'; if (input == null || typeof input == "number" || typeof input == "boolean" || typeof input == "function" || typeof input == "symbol" || isRegexp(input)) return String(input); if (input instanceof Date) return "new Date('" + input.toISOString() + "')"; if (Array.isArray(input)) { if (input.length === 0) return "[]"; seen.push(input); var ret = "[" + tokens.newLine + input.map(function(el, i) { var eol = input.length - 1 === i ? tokens.newLine : "," + tokens.newLineOrSpace, value = prettyPrint2(el, combinedOptions, pad + combinedOptions.indent); return combinedOptions.transform && (value = combinedOptions.transform(input, i, value)), tokens.indent + value + eol; }).join("") + tokens.pad + "]"; return seen.pop(), expandWhiteSpace(ret); } if (isObj(input)) { var objKeys_1 = __spreadArrays(Object.keys(input), getOwnEnumPropSymbols(input)); if (combinedOptions.filter && (objKeys_1 = objKeys_1.filter(function(el) { return combinedOptions.filter && combinedOptions.filter(input, el); })), objKeys_1.length === 0) return "{}"; seen.push(input); var ret = "{" + tokens.newLine + objKeys_1.map(function(el, i) { var eol = objKeys_1.length - 1 === i ? tokens.newLine : "," + tokens.newLineOrSpace, isSymbol = typeof el == "symbol", isClassic = !isSymbol && /^[a-z$_][a-z$_0-9]*$/i.test(el.toString()), key = isSymbol || isClassic ? el : prettyPrint2(el, combinedOptions), value = prettyPrint2(input[el], combinedOptions, pad + combinedOptions.indent); return combinedOptions.transform && (value = combinedOptions.transform(input, el, value)), tokens.indent + String(key) + ": " + value + eol; }).join("") + tokens.pad + "}"; return seen.pop(), expandWhiteSpace(ret); } return input = String(input).replace(/[\r\n]/g, function(x) { return x === ` ` ? "\\n" : "\\r"; }), combinedOptions.singleQuotes ? (input = input.replace(/\\?'/g, "\\'"), "'" + input + "'") : (input = input.replace(/"/g, '\\"'), '"' + input + '"'); } exports.prettyPrint = prettyPrint2; } }); // ../../node_modules/react-element-to-jsx-string/node_modules/react-is/cjs/react-is.production.min.js var require_react_is_production_min = __commonJS({ "../../node_modules/react-element-to-jsx-string/node_modules/react-is/cjs/react-is.production.min.js"(exports) { "use strict"; var b = Symbol.for("react.element"), c = Symbol.for("react.portal"), d = Symbol.for("react.fragment"), e = Symbol.for("react.strict_mode"), f = Symbol.for("react.profiler"), g = Symbol.for("react.provider"), h = Symbol.for("react.context"), k = Symbol.for("react.server_context"), l = Symbol.for("react.forward_ref"), m = Symbol.for("react.suspense"), n = Symbol.for("react.suspense_list"), p = Symbol.for("react.memo"), q = Symbol.for("react.lazy"), t = Symbol.for("react.offscreen"), u; u = Symbol.for("react.module.reference"); function v(a) { if (typeof a == "object" && a !== null) { var r = a.$$typeof; switch (r) { case b: switch (a = a.type, a) { case d: case f: case e: case m: case n: return a; default: switch (a = a && a.$$typeof, a) { case k: case h: case l: case q: case p: case g: return a; default: return r; } } case c: return r; } } } exports.ContextConsumer = h; exports.ContextProvider = g; exports.Element = b; exports.ForwardRef = l; exports.Fragment = d; exports.Lazy = q; exports.Memo = p; exports.Portal = c; exports.Profiler = f; exports.StrictMode = e; exports.Suspense = m; exports.SuspenseList = n; exports.isAsyncMode = function() { return !1; }; exports.isConcurrentMode = function() { return !1; }; exports.isContextConsumer = function(a) { return v(a) === h; }; exports.isContextProvider = function(a) { return v(a) === g; }; exports.isElement = function(a) { return typeof a == "object" && a !== null && a.$$typeof === b; }; exports.isForwardRef = function(a) { return v(a) === l; }; exports.isFragment = function(a) { return v(a) === d; }; exports.isLazy = function(a) { return v(a) === q; }; exports.isMemo = function(a) { return v(a) === p; }; exports.isPortal = function(a) { return v(a) === c; }; exports.isProfiler = function(a) { return v(a) === f; }; exports.isStrictMode = function(a) { return v(a) === e; }; exports.isSuspense = function(a) { return v(a) === m; }; exports.isSuspenseList = function(a) { return v(a) === n; }; exports.isValidElementType = function(a) { return typeof a == "string" || typeof a == "function" || a === d || a === f || a === e || a === m || a === n || a === t || typeof a == "object" && a !== null && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || a.getModuleId !== void 0); }; exports.typeOf = v; } }); // ../../node_modules/react-element-to-jsx-string/node_modules/react-is/cjs/react-is.development.js var require_react_is_development = __commonJS({ "../../node_modules/react-element-to-jsx-string/node_modules/react-is/cjs/react-is.development.js"(exports) { "use strict"; process.env.NODE_ENV !== "production" && (function() { "use strict"; var enableScopeAPI = !1, enableCacheElement = !1, enableTransitionTracing = !1, enableLegacyHidden = !1, enableDebugTracing = !1, REACT_ELEMENT_TYPE = Symbol.for("react.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_PROVIDER_TYPE = Symbol.for("react.provider"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_SERVER_CONTEXT_TYPE = Symbol.for("react.server_context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"), REACT_MODULE_REFERENCE; REACT_MODULE_REFERENCE = Symbol.for("react.module.reference"); function isValidElementType(type) { return !!(typeof type == "string" || typeof type == "function" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing || typeof type == "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object // types supported by any Flight configuration anywhere since // we don't know which Flight build this will end up being used // with. type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== void 0)); } function typeOf(object) { if (typeof object == "object" && object !== null) { var $$typeof = object.$$typeof; switch ($$typeof) { case REACT_ELEMENT_TYPE: var type = object.type; switch (type) { case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: case REACT_SUSPENSE_LIST_TYPE: return type; default: var $$typeofType = type && type.$$typeof; switch ($$typeofType) { case REACT_SERVER_CONTEXT_TYPE: case REACT_CONTEXT_TYPE: case REACT_FORWARD_REF_TYPE: case REACT_LAZY_TYPE: case REACT_MEMO_TYPE: case REACT_PROVIDER_TYPE: return $$typeofType; default: return $$typeof; } } case REACT_PORTAL_TYPE: return $$typeof; } } } var ContextConsumer = REACT_CONTEXT_TYPE, ContextProvider = REACT_PROVIDER_TYPE, Element = REACT_ELEMENT_TYPE, ForwardRef2 = REACT_FORWARD_REF_TYPE, Fragment2 = REACT_FRAGMENT_TYPE, Lazy = REACT_LAZY_TYPE, Memo2 = REACT_MEMO_TYPE, Portal = REACT_PORTAL_TYPE, Profiler = REACT_PROFILER_TYPE, StrictMode = REACT_STRICT_MODE_TYPE, Suspense = REACT_SUSPENSE_TYPE, SuspenseList = REACT_SUSPENSE_LIST_TYPE, hasWarnedAboutDeprecatedIsAsyncMode = !1, hasWarnedAboutDeprecatedIsConcurrentMode = !1; function isAsyncMode(object) { return hasWarnedAboutDeprecatedIsAsyncMode || (hasWarnedAboutDeprecatedIsAsyncMode = !0, console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 18+.")), !1; } function isConcurrentMode(object) { return hasWarnedAboutDeprecatedIsConcurrentMode || (hasWarnedAboutDeprecatedIsConcurrentMode = !0, console.warn("The ReactIs.isConcurrentMode() alias has been deprecated, and will be removed in React 18+.")), !1; } function isContextConsumer2(object) { return typeOf(object) === REACT_CONTEXT_TYPE; } function isContextProvider2(object) { return typeOf(object) === REACT_PROVIDER_TYPE; } function isElement(object) { return typeof object == "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; } function isForwardRef3(object) { return typeOf(object) === REACT_FORWARD_REF_TYPE; } function isFragment(object) { return typeOf(object) === REACT_FRAGMENT_TYPE; } function isLazy2(object) { return typeOf(object) === REACT_LAZY_TYPE; } function isMemo3(object) { return typeOf(object) === REACT_MEMO_TYPE; } function isPortal(object) { return typeOf(object) === REACT_PORTAL_TYPE; } function isProfiler2(object) { return typeOf(object) === REACT_PROFILER_TYPE; } function isStrictMode2(object) { return typeOf(object) === REACT_STRICT_MODE_TYPE; } function isSuspense2(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } function isSuspenseList(object) { return typeOf(object) === REACT_SUSPENSE_LIST_TYPE; } exports.ContextConsumer = ContextConsumer, exports.ContextProvider = ContextProvider, exports.Element = Element, exports.ForwardRef = ForwardRef2, exports.Fragment = Fragment2, exports.Lazy = Lazy, exports.Memo = Memo2, exports.Portal = Portal, exports.Profiler = Profiler, exports.StrictMode = StrictMode, exports.Suspense = Suspense, exports.SuspenseList = SuspenseList, exports.isAsyncMode = isAsyncMode, exports.isConcurrentMode = isConcurrentMode, exports.isContextConsumer = isContextConsumer2, exports.isContextProvider = isContextProvider2, exports.isElement = isElement, exports.isForwardRef = isForwardRef3, exports.isFragment = isFragment, exports.isLazy = isLazy2, exports.isMemo = isMemo3, exports.isPortal = isPortal, exports.isProfiler = isProfiler2, exports.isStrictMode = isStrictMode2, exports.isSuspense = isSuspense2, exports.isSuspenseList = isSuspenseList, exports.isValidElementType = isValidElementType, exports.typeOf = typeOf; })(); } }); // ../../node_modules/react-element-to-jsx-string/node_modules/react-is/index.js var require_react_is = __commonJS({ "../../node_modules/react-element-to-jsx-string/node_modules/react-is/index.js"(exports, module) { "use strict"; process.env.NODE_ENV === "production" ? module.exports = require_react_is_production_min() : module.exports = require_react_is_development(); } }); // src/docs/lib/componentTypes.ts var isMemo = (component) => component.$$typeof === Symbol.for("react.memo"), isForwardRef = (component) => component.$$typeof === Symbol.for("react.forward_ref"); // ../../node_modules/is-plain-object/dist/is-plain-object.mjs function isObject(o) { return Object.prototype.toString.call(o) === "[object Object]"; } function isPlainObject(o) { var ctor, prot; return isObject(o) === !1 ? !1 : (ctor = o.constructor, ctor === void 0 ? !0 : (prot = ctor.prototype, !(isObject(prot) === !1 || prot.hasOwnProperty("isPrototypeOf") === !1))); } // ../../node_modules/react-element-to-jsx-string/dist/esm/index.js var import_pretty_print_object = __toESM(require_dist()), import_react_is = __toESM(require_react_is()); import * as React from "react"; import React__default, { Fragment, isValidElement as isValidElement2 } from "react"; var spacer = (function(times, tabStop) { return times === 0 ? "" : new Array(times * tabStop).fill(" ").join(""); }); function _arrayLikeToArray(r, a) { (a == null || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _iterableToArray(r) { if (typeof Symbol < "u" && r[Symbol.iterator] != null || r["@@iterator"] != null) return Array.from(r); } function _nonIterableSpread() { throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function(r2) { return Object.getOwnPropertyDescriptor(e, r2).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r] != null ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function(r2) { _defineProperty(e, r2, t[r2]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); }); } return e; } function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _toPrimitive(t, r) { if (typeof t != "object" || !t) return t; var e = t[Symbol.toPrimitive]; if (e !== void 0) { var i = e.call(t, r || "default"); if (typeof i != "object") return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return (r === "string" ? String : Number)(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return typeof i == "symbol" ? i : i + ""; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(o2) { return typeof o2; } : function(o2) { return o2 && typeof Symbol == "function" && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; }, _typeof(o); } function _unsupportedIterableToArray(r, a) { if (r) { if (typeof r == "string") return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return t === "Object" && r.constructor && (t = r.constructor.name), t === "Map" || t === "Set" ? Array.from(r) : t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function safeSortObject(value, seen) { if (value === null || _typeof(value) !== "object" || value instanceof Date || value instanceof RegExp) return value; if (React.isValidElement(value)) { var copyObj = _objectSpread2({}, value); return delete copyObj._owner, copyObj; } return seen.add(value), Array.isArray(value) ? value.map(function(v) { return safeSortObject(v, seen); }) : Object.keys(value).sort().reduce(function(result, key) { return key === "current" || seen.has(value[key]) ? result[key] = "[Circular]" : result[key] = safeSortObject(value[key], seen), result; }, {}); } function sortObject(value) { return safeSortObject(value, /* @__PURE__ */ new WeakSet()); } var createStringTreeNode = function(value) { return { type: "string", value }; }, createNumberTreeNode = function(value) { return { type: "number", value }; }, createReactElementTreeNode = function(displayName, props, defaultProps, childrens) { return { type: "ReactElement", displayName, props, defaultProps, childrens }; }, createReactFragmentTreeNode = function(key, childrens) { return { type: "ReactFragment", key, childrens }; }, supportFragment = !!Fragment, getFunctionTypeName = function(functionType) { return !functionType.name || functionType.name === "_default" ? "No Display Name" : functionType.name; }, _getWrappedComponentDisplayName = function(Component) { switch (!0) { case !!Component.displayName: return Component.displayName; case Component.$$typeof === import_react_is.Memo: return _getWrappedComponentDisplayName(Component.type); case Component.$$typeof === import_react_is.ForwardRef: return _getWrappedComponentDisplayName(Component.render); default: return getFunctionTypeName(Component); } }, getReactElementDisplayName = function(element) { switch (!0) { case typeof element.type == "string": return element.type; case typeof element.type == "function": return element.type.displayName ? element.type.displayName : getFunctionTypeName(element.type); case (0, import_react_is.isForwardRef)(element): case (0, import_react_is.isMemo)(element): return _getWrappedComponentDisplayName(element.type); case (0, import_react_is.isContextConsumer)(element): return "".concat(element.type._context.displayName || "Context", ".Consumer"); case (0, import_react_is.isContextProvider)(element): return "".concat(element.type._context.displayName || "Context", ".Provider"); case (0, import_react_is.isLazy)(element): return "Lazy"; case (0, import_react_is.isProfiler)(element): return "Profiler"; case (0, import_react_is.isStrictMode)(element): return "StrictMode"; case (0, import_react_is.isSuspense)(element): return "Suspense"; default: return "UnknownElementType"; } }, noChildren = function(propsValue, propName) { return propName !== "children"; }, onlyMeaningfulChildren = function(children) { return children !== !0 && children !== !1 && children !== null && children !== ""; }, filterProps = function(originalProps, cb) { var filteredProps = {}; return Object.keys(originalProps).filter(function(key) { return cb(originalProps[key], key); }).forEach(function(key) { return filteredProps[key] = originalProps[key]; }), filteredProps; }, _parseReactElement = function(element, options) { var _options$displayName = options.displayName, displayNameFn = _options$displayName === void 0 ? getReactElementDisplayName : _options$displayName; if (typeof element == "string") return createStringTreeNode(element); if (typeof element == "number") return createNumberTreeNode(element); if (!React__default.isValidElement(element)) throw new Error("react-element-to-jsx-string: Expected a React.Element, got `".concat(_typeof(element), "`")); var displayName = displayNameFn(element), props = filterProps(element.props, noChildren); element.ref !== null && (props.ref = element.ref); var key = element.key; typeof key == "string" && key.search(/^\./) && (props.key = key); var defaultProps = filterProps(element.type.defaultProps || {}, noChildren), childrens = React__default.Children.toArray(element.props.children).filter(onlyMeaningfulChildren).map(function(child) { return _parseReactElement(child, options); }); return supportFragment && element.type === Fragment ? createReactFragmentTreeNode(key, childrens) : createReactElementTreeNode(displayName, props, defaultProps, childrens); }; function noRefCheck() { } var inlineFunction = function(fn) { return fn.toString().split(` `).map(function(line) { return line.trim(); }).join(""); }; var defaultFunctionValue = inlineFunction, formatFunction = (function(fn, options) { var _options$functionValu = options.functionValue, functionValue = _options$functionValu === void 0 ? defaultFunctionValue : _options$functionValu, showFunctions = options.showFunctions; return functionValue(!showFunctions && functionValue === defaultFunctionValue ? noRefCheck : fn); }), formatComplexDataStructure = (function(value, inline, lvl, options) { var normalizedValue = sortObject(value), stringifiedValue = (0, import_pretty_print_object.prettyPrint)(normalizedValue, { transform: function(currentObj, prop, originalResult) { var currentValue = currentObj[prop]; return currentValue && isValidElement2(currentValue) ? formatTreeNode(_parseReactElement(currentValue, options), !0, lvl, options) : typeof currentValue == "function" ? formatFunction(currentValue, options) : originalResult; } }); return inline ? stringifiedValue.replace(/\s+/g, " ").replace(/{ /g, "{").replace(/ }/g, "}").replace(/\[ /g, "[").replace(/ ]/g, "]") : stringifiedValue.replace(/\t/g, spacer(1, options.tabStop)).replace(/\n([^$])/g, ` `.concat(spacer(lvl + 1, options.tabStop), "$1")); }), escape$1 = function(s) { return s.replace(/"/g, "&quot;"); }, formatPropValue = function(propValue, inline, lvl, options) { if (typeof propValue == "number") return "{".concat(String(propValue), "}"); if (typeof propValue == "string") return '"'.concat(escape$1(propValue), '"'); if (_typeof(propValue) === "symbol") { var symbolDescription = propValue.valueOf().toString().replace(/Symbol\((.*)\)/, "$1"); return symbolDescription ? "{Symbol('".concat(symbolDescription, "')}") : "{Symbol()}"; } return typeof propValue == "function" ? "{".concat(formatFunction(propValue, options), "}") : isValidElement2(propValue) ? "{".concat(formatTreeNode(_parseReactElement(propValue, options), !0, lvl, options), "}") : propValue instanceof Date ? isNaN(propValue.valueOf()) ? "{new Date(NaN)}" : '{new Date("'.concat(propValue.toISOString(), '")}') : isPlainObject(propValue) || Array.isArray(propValue) ? "{".concat(formatComplexDataStructure(propValue, inline, lvl, options), "}") : "{".concat(String(propValue), "}"); }, formatProp = (function(name, hasValue, value, hasDefaultValue, defaultValue, inline, lvl, options) { if (!hasValue && !hasDefaultValue) throw new Error('The prop "'.concat(name, '" has no value and no default: could not be formatted')); var usedValue = hasValue ? value : defaultValue, useBooleanShorthandSyntax = options.useBooleanShorthandSyntax, tabStop = options.tabStop, formattedPropValue = formatPropValue(usedValue, inline, lvl, options), attributeFormattedInline = " ", attributeFormattedMultiline = ` `.concat(spacer(lvl + 1, tabStop)), isMultilineAttribute = formattedPropValue.includes(` `); return useBooleanShorthandSyntax && formattedPropValue === "{false}" && !hasDefaultValue ? (attributeFormattedInline = "", attributeFormattedMultiline = "") : useBooleanShorthandSyntax && formattedPropValue === "{true}" ? (attributeFormattedInline += "".concat(name), attributeFormattedMultiline += "".concat(name)) : (attributeFormattedInline += "".concat(name, "=").concat(formattedPropValue), attributeFormattedMultiline += "".concat(name, "=").concat(formattedPropValue)), { attributeFormattedInline, attributeFormattedMultiline, isMultilineAttribute }; }), mergeSiblingPlainStringChildrenReducer = (function(previousNodes, currentNode) { var nodes = previousNodes.slice(0, previousNodes.length > 0 ? previousNodes.length - 1 : 0), previousNode = previousNodes[previousNodes.length - 1]; return previousNode && (currentNode.type === "string" || currentNode.type === "number") && (previousNode.type === "string" || previousNode.type === "number") ? nodes.push(createStringTreeNode(String(previousNode.value) + String(currentNode.value))) : (previousNode && nodes.push(previousNode), nodes.push(currentNode)), nodes; }), isKeyOrRefProps = function(propName) { return ["key", "ref"].includes(propName); }, sortPropsByNames = (function(shouldSortUserProps) { return function(props) { var haveKeyProp = props.includes("key"), haveRefProp = props.includes("ref"), userPropsOnly = props.filter(function(oneProp) { return !isKeyOrRefProps(oneProp); }), sortedProps = _toConsumableArray(shouldSortUserProps ? userPropsOnly.sort() : userPropsOnly); return haveRefProp && sortedProps.unshift("ref"), haveKeyProp && sortedProps.unshift("key"), sortedProps; }; }); function createPropFilter(props, filter) { return Array.isArray(filter) ? function(key) { return filter.indexOf(key) === -1; } : function(key) { return filter(props[key], key); }; } var compensateMultilineStringElementIndentation = function(element, formattedElement, inline, lvl, options) { var tabStop = options.tabStop; return element.type === "string" ? formattedElement.split(` `).map(function(line, offset) { return offset === 0 ? line : "".concat(spacer(lvl, tabStop)).concat(line); }).join(` `) : formattedElement; }, formatOneChildren = function(inline, lvl, options) { return function(element) { return compensateMultilineStringElementIndentation(element, formatTreeNode(element, inline, lvl, options), inline, lvl, options); }; }, onlyPropsWithOriginalValue = function(defaultProps, props) { return function(propName) { var haveDefaultValue = Object.keys(defaultProps).includes(propName); return !haveDefaultValue || haveDefaultValue && defaultProps[propName] !== props[propName]; }; }, isInlineAttributeTooLong = function(attributes, inlineAttributeString, lvl, tabStop, maxInlineAttributesLineLength) { return maxInlineAttributesLineLength ? spacer(lvl, tabStop).length + inlineAttributeString.length > maxInlineAttributesLineLength : attributes.length > 1; }, shouldRenderMultilineAttr = function(attributes, inlineAttributeString, containsMultilineAttr, inline, lvl, tabStop, maxInlineAttributesLineLength) { return (isInlineAttributeTooLong(attributes, inlineAttributeString, lvl, tabStop, maxInlineAttributesLineLength) || containsMultilineAttr) && !inline; }, formatReactElementNode = (function(node, inline, lvl, options) { var type = node.type, _node$displayName = node.displayName, displayName = _node$displayName === void 0 ? "" : _node$displayName, childrens = node.childrens, _node$props = node.props, props = _node$props === void 0 ? {} : _node$props, _node$defaultProps = node.defaultProps, defaultProps = _node$defaultProps === void 0 ? {} : _node$defaultProps; if (type !== "ReactElement") throw new Error('The "formatReactElementNode" function could only format node of type "ReactElement". Given: '.concat(type)); var filterProps3 = options.filterProps, maxInlineAttributesLineLength = options.maxInlineAttributesLineLength, showDefaultProps = options.showDefaultProps, sortProps = options.sortProps, tabStop = options.tabStop, out = "<".concat(displayName), outInlineAttr = out, outMultilineAttr = out, containsMultilineAttr = !1, visibleAttributeNames = [], propFilter = createPropFilter(props, filterProps3); Object.keys(props).filter(propFilter).filter(onlyPropsWithOriginalValue(defaultProps, props)).forEach(function(propName) { return visibleAttributeNames.push(propName); }), Object.keys(defaultProps).filter(propFilter).filter(function() { return showDefaultProps; }).filter(function(defaultPropName) { return !visibleAttributeNames.includes(defaultPropName); }).forEach(function(defaultPropName) { return visibleAttributeNames.push(defaultPropName); }); var attributes = sortPropsByNames(sortProps)(visibleAttributeNames); if (attributes.forEach(function(attributeName) { var _formatProp = formatProp(attributeName, Object.keys(props).includes(attributeName), props[attributeName], Object.keys(defaultProps).includes(attributeName), defaultProps[attributeName], inline, lvl, options), attributeFormattedInline = _formatProp.attributeFormattedInline, attributeFormattedMultiline = _formatProp.attributeFormattedMultiline, isMultilineAttribute = _formatProp.isMultilineAttribute; isMultilineAttribute && (containsMultilineAttr = !0), outInlineAttr += attributeFormattedInline, outMultilineAttr += attributeFormattedMultiline; }), outMultilineAttr += ` `.concat(spacer(lvl, tabStop)), shouldRenderMultilineAttr(attributes, outInlineAttr, containsMultilineAttr, inline, lvl, tabStop, maxInlineAttributesLineLength) ? out = outMultilineAttr : out = outInlineAttr, childrens && childrens.length > 0) { var newLvl = lvl + 1; out += ">", inline || (out += ` `, out += spacer(newLvl, tabStop)), out += childrens.reduce(mergeSiblingPlainStringChildrenReducer, []).map(formatOneChildren(inline, newLvl, options)).join(inline ? "" : ` `.concat(spacer(newLvl, tabStop))), inline || (out += ` `, out += spacer(newLvl - 1, tabStop)), out += "</".concat(displayName, ">"); } else isInlineAttributeTooLong(attributes, outInlineAttr, lvl, tabStop, maxInlineAttributesLineLength) || (out += " "), out += "/>"; return out; }), REACT_FRAGMENT_TAG_NAME_SHORT_SYNTAX = "", REACT_FRAGMENT_TAG_NAME_EXPLICIT_SYNTAX = "React.Fragment", toReactElementTreeNode = function(displayName, key, childrens) { var props = {}; return key && (props = { key }), { type: "ReactElement", displayName, props, defaultProps: {}, childrens }; }, isKeyedFragment = function(_ref) { var key = _ref.key; return !!key; }, hasNoChildren = function(_ref2) { var childrens = _ref2.childrens; return childrens.length === 0; }, formatReactFragmentNode = (function(node, inline, lvl, options) { var type = node.type, key = node.key, childrens = node.childrens; if (type !== "ReactFragment") throw new Error('The "formatReactFragmentNode" function could only format node of type "ReactFragment". Given: '.concat(type)); var useFragmentShortSyntax = options.useFragmentShortSyntax, displayName; return useFragmentShortSyntax ? hasNoChildren(node) || isKeyedFragment(node) ? displayName = REACT_FRAGMENT_TAG_NAME_EXPLICIT_SYNTAX : displayName = REACT_FRAGMENT_TAG_NAME_SHORT_SYNTAX : displayName = REACT_FRAGMENT_TAG_NAME_EXPLICIT_SYNTAX, formatReactElementNode(toReactElementTreeNode(displayName, key, childrens), inline, lvl, options); }), jsxStopChars = ["<", ">", "{", "}"], shouldBeEscaped = function(s) { return jsxStopChars.some(function(jsxStopChar) { return s.includes(jsxStopChar); }); }, escape2 = function(s) { return shouldBeEscaped(s) ? "{`".concat(s, "`}") : s; }, preserveTrailingSpace = function(s) { var result = s; return result.endsWith(" ") && (result = result.replace(/^(.*?)(\s+)$/, "$1{'$2'}")), result.startsWith(" ") && (result = result.replace(/^(\s+)(.*)$/, "{'$1'}$2")), result; }, formatTreeNode = (function(node, inline, lvl, options) { if (node.type === "number") return String(node.value); if (node.type === "string") return node.value ? "".concat(preserveTrailingSpace(escape2(String(node.value)))) : ""; if (node.type === "ReactElement") return formatReactElementNode(node, inline, lvl, options); if (node.type === "ReactFragment") return formatReactFragmentNode(node, inline, lvl, options); throw new TypeError('Unknow format type "'.concat(node.type, '"')); }), formatTree = (function(node, options) { return formatTreeNode(node, !1, 0, options); }), reactElementToJsxString = function(element) { var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref$filterProps = _ref.filterProps, filterProps3 = _ref$filterProps === void 0 ? [] : _ref$filterProps, _ref$showDefaultProps = _ref.showDefaultProps, showDefaultProps = _ref$showDefaultProps === void 0 ? !0 : _ref$showDefaultProps, _ref$showFunctions = _ref.showFunctions, showFunctions = _ref$showFunctions === void 0 ? !1 : _ref$showFunctions, functionValue = _ref.functionValue, _ref$tabStop = _ref.tabStop, tabStop = _ref$tabStop === void 0 ? 2 : _ref$tabStop, _ref$useBooleanShorth = _ref.useBooleanShorthandSyntax, useBooleanShorthandSyntax = _ref$useBooleanShorth === void 0 ? !0 : _ref$useBooleanShorth, _ref$useFragmentShort = _ref.useFragmentShortSyntax, useFragmentShortSyntax = _ref$useFragmentShort === void 0 ? !0 : _ref$useFragmentShort, _ref$sortProps = _ref.sortProps, sortProps = _ref$sortProps === void 0 ? !0 : _ref$sortProps, maxInlineAttributesLineLength = _ref.maxInlineAttributesLineLength, displayName = _ref.displayName; if (!element) throw new Error("react-element-to-jsx-string: Expected a ReactElement"); var options = { filterProps: filterProps3, showDefaultProps, showFunctions, functionValue, tabStop, useBooleanShorthandSyntax, useFragmentShortSyntax, sortProps, maxInlineAttributesLineLength, displayName }; return formatTree(_parseReactElement(element, options), options); }; export { isMemo, isForwardRef, reactElementToJsxString };