@20minutes/draft-convert
Version:
Extensibly serialize & deserialize Draft.js ContentState
34 lines (33 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
const _splitReactElement = /*#__PURE__*/ _interop_require_default(require("./splitReactElement.js"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const getElementTagLength = (element, type = 'start')=>{
if (/*#__PURE__*/ _react.default.isValidElement(element)) {
const splitElement = (0, _splitReactElement.default)(element);
if (typeof splitElement === 'string') {
return 0;
}
const { length } = splitElement[type];
const child = _react.default.Children.toArray(element.props.children)[0];
return length + (child && /*#__PURE__*/ _react.default.isValidElement(child) ? getElementTagLength(child, type) : 0);
}
if (typeof element === 'object') {
return element[type] ? element[type].length : 0;
}
return 0;
};
const _default = getElementTagLength;