UNPKG

@zohodesk/components

Version:

Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development

56 lines (41 loc) 3.28 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function setRef(refFunc, value) { if (typeof refFunc === 'function') { refFunc(value); } else if (refFunc instanceof Object) { refFunc.current = value; } } var DOMRefWrapper = /*#__PURE__*/(0, _react.forwardRef)(function (props, refFunc) { var ele = _react.Children.only(props.children); var _props$domRefKey = props.domRefKey, domRefKey = _props$domRefKey === void 0 ? 'eleRef' : _props$domRefKey; // NOTE: need to check for forward Ref function, Because in Froward Ref case refKey is "ref" var refKey = typeof ele.type !== 'string' ? domRefKey : 'ref'; // const setAttribute = useCallback(node => { var eleRealRefFunc = ele.props[refKey]; var setAttribute = (0, _react.useCallback)(function (ref) { setRef(refFunc, ref); setRef(eleRealRefFunc, ref); }, [refFunc, eleRealRefFunc]); // let refKey = typeof ele.type === 'string' ? 'ref' : 'eleRef'; var childProps = _defineProperty({}, refKey, setAttribute); return /*#__PURE__*/(0, _react.cloneElement)(ele, childProps); }); DOMRefWrapper.defaultProps = { domRefKey: 'eleRef' }; DOMRefWrapper.propTypes = { domRefKey: _propTypes["default"].any, children: _propTypes["default"].any }; var _default = DOMRefWrapper; exports["default"] = _default;