@wordpress/element
Version:
Element React module for WordPress.
420 lines (381 loc) • 9.26 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Children", {
enumerable: true,
get: function () {
return _react.Children;
}
});
Object.defineProperty(exports, "Component", {
enumerable: true,
get: function () {
return _react.Component;
}
});
Object.defineProperty(exports, "Fragment", {
enumerable: true,
get: function () {
return _react.Fragment;
}
});
Object.defineProperty(exports, "PureComponent", {
enumerable: true,
get: function () {
return _react.PureComponent;
}
});
Object.defineProperty(exports, "StrictMode", {
enumerable: true,
get: function () {
return _react.StrictMode;
}
});
Object.defineProperty(exports, "Suspense", {
enumerable: true,
get: function () {
return _react.Suspense;
}
});
Object.defineProperty(exports, "cloneElement", {
enumerable: true,
get: function () {
return _react.cloneElement;
}
});
exports.concatChildren = concatChildren;
Object.defineProperty(exports, "createContext", {
enumerable: true,
get: function () {
return _react.createContext;
}
});
Object.defineProperty(exports, "createElement", {
enumerable: true,
get: function () {
return _react.createElement;
}
});
Object.defineProperty(exports, "createRef", {
enumerable: true,
get: function () {
return _react.createRef;
}
});
Object.defineProperty(exports, "forwardRef", {
enumerable: true,
get: function () {
return _react.forwardRef;
}
});
Object.defineProperty(exports, "isValidElement", {
enumerable: true,
get: function () {
return _react.isValidElement;
}
});
Object.defineProperty(exports, "lazy", {
enumerable: true,
get: function () {
return _react.lazy;
}
});
Object.defineProperty(exports, "memo", {
enumerable: true,
get: function () {
return _react.memo;
}
});
Object.defineProperty(exports, "startTransition", {
enumerable: true,
get: function () {
return _react.startTransition;
}
});
exports.switchChildrenNodeName = switchChildrenNodeName;
Object.defineProperty(exports, "useCallback", {
enumerable: true,
get: function () {
return _react.useCallback;
}
});
Object.defineProperty(exports, "useContext", {
enumerable: true,
get: function () {
return _react.useContext;
}
});
Object.defineProperty(exports, "useDebugValue", {
enumerable: true,
get: function () {
return _react.useDebugValue;
}
});
Object.defineProperty(exports, "useDeferredValue", {
enumerable: true,
get: function () {
return _react.useDeferredValue;
}
});
Object.defineProperty(exports, "useEffect", {
enumerable: true,
get: function () {
return _react.useEffect;
}
});
Object.defineProperty(exports, "useId", {
enumerable: true,
get: function () {
return _react.useId;
}
});
Object.defineProperty(exports, "useImperativeHandle", {
enumerable: true,
get: function () {
return _react.useImperativeHandle;
}
});
Object.defineProperty(exports, "useInsertionEffect", {
enumerable: true,
get: function () {
return _react.useInsertionEffect;
}
});
Object.defineProperty(exports, "useLayoutEffect", {
enumerable: true,
get: function () {
return _react.useLayoutEffect;
}
});
Object.defineProperty(exports, "useMemo", {
enumerable: true,
get: function () {
return _react.useMemo;
}
});
Object.defineProperty(exports, "useReducer", {
enumerable: true,
get: function () {
return _react.useReducer;
}
});
Object.defineProperty(exports, "useRef", {
enumerable: true,
get: function () {
return _react.useRef;
}
});
Object.defineProperty(exports, "useState", {
enumerable: true,
get: function () {
return _react.useState;
}
});
Object.defineProperty(exports, "useSyncExternalStore", {
enumerable: true,
get: function () {
return _react.useSyncExternalStore;
}
});
Object.defineProperty(exports, "useTransition", {
enumerable: true,
get: function () {
return _react.useTransition;
}
});
var _react = require("react");
/**
* External dependencies
*/
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
/**
* Object containing a React element.
*/
/**
* Object containing a React component.
*/
/**
* Object containing a React synthetic event.
*/
/**
* Object containing a React ref object.
*/
/**
* Object containing a React ref callback.
*/
/**
* Object containing a React ref.
*/
/**
* Object that provides utilities for dealing with React children.
*/
/**
* Creates a copy of an element with extended props.
*
* @param {Element} element Element
* @param {?Object} props Props to apply to cloned element
*
* @return {Element} Cloned element.
*/
/**
* A base class to create WordPress Components (Refs, state and lifecycle hooks)
*/
/**
* Creates a context object containing two components: a provider and consumer.
*
* @param {Object} defaultValue A default data stored in the context.
*
* @return {Object} Context object.
*/
/**
* Returns a new element of given type. Type can be either a string tag name or
* another function which itself returns an element.
*
* @param {?(string|Function)} type Tag name or element creator
* @param {Object} props Element properties, either attribute
* set to apply to DOM node or values to
* pass through to element creator
* @param {...Element} children Descendant elements
*
* @return {Element} Element.
*/
/**
* Returns an object tracking a reference to a rendered element via its
* `current` property as either a DOMElement or Element, dependent upon the
* type of element rendered with the ref attribute.
*
* @return {Object} Ref object.
*/
/**
* Component enhancer used to enable passing a ref to its wrapped component.
* Pass a function argument which receives `props` and `ref` as its arguments,
* returning an element using the forwarded ref. The return value is a new
* component which forwards its ref.
*
* @param {Function} forwarder Function passed `props` and `ref`, expected to
* return an element.
*
* @return {Component} Enhanced component.
*/
/**
* A component which renders its children without any wrapping element.
*/
/**
* Checks if an object is a valid React Element.
*
* @param {Object} objectToCheck The object to be checked.
*
* @return {boolean} true if objectToTest is a valid React Element and false otherwise.
*/
/**
* @see https://react.dev/reference/react/memo
*/
/**
* Component that activates additional checks and warnings for its descendants.
*/
/**
* @see https://react.dev/reference/react/useCallback
*/
/**
* @see https://react.dev/reference/react/useContext
*/
/**
* @see https://react.dev/reference/react/useDebugValue
*/
/**
* @see https://react.dev/reference/react/useDeferredValue
*/
/**
* @see https://react.dev/reference/react/useEffect
*/
/**
* @see https://react.dev/reference/react/useId
*/
/**
* @see https://react.dev/reference/react/useImperativeHandle
*/
/**
* @see https://react.dev/reference/react/useInsertionEffect
*/
/**
* @see https://react.dev/reference/react/useLayoutEffect
*/
/**
* @see https://react.dev/reference/react/useMemo
*/
/**
* @see https://react.dev/reference/react/useReducer
*/
/**
* @see https://react.dev/reference/react/useRef
*/
/**
* @see https://react.dev/reference/react/useState
*/
/**
* @see https://react.dev/reference/react/useSyncExternalStore
*/
/**
* @see https://react.dev/reference/react/useTransition
*/
/**
* @see https://react.dev/reference/react/startTransition
*/
/**
* @see https://react.dev/reference/react/lazy
*/
/**
* @see https://react.dev/reference/react/Suspense
*/
/**
* @see https://react.dev/reference/react/PureComponent
*/
/**
* Concatenate two or more React children objects.
*
* @param childrenArguments - Array of children arguments (array of arrays/strings/objects) to concatenate.
* @return The concatenated value.
*/
function concatChildren(...childrenArguments) {
return childrenArguments.reduce((accumulator, children, i) => {
_react.Children.forEach(children, (child, j) => {
if ((0, _react.isValidElement)(child) && typeof child !== 'string') {
child = (0, _react.cloneElement)(child, {
key: [i, j].join()
});
}
accumulator.push(child);
});
return accumulator;
}, []);
}
/**
* Switches the nodeName of all the elements in the children object.
*
* @param children Children object.
* @param nodeName Node name.
*
* @return The updated children object.
*/
function switchChildrenNodeName(children, nodeName) {
return children && _react.Children.map(children, (elt, index) => {
if (typeof elt?.valueOf() === 'string') {
return (0, _react.createElement)(nodeName, {
key: index
}, elt);
}
if (!(0, _react.isValidElement)(elt)) {
return elt;
}
const {
children: childrenProp,
...props
} = elt.props;
return (0, _react.createElement)(nodeName, {
key: index,
...props
}, childrenProp);
});
}
//# sourceMappingURL=react.js.map