UNPKG

@contentful/rich-text-types

Version:

Type definitions and constants for the Contentful rich text field type.

119 lines (118 loc) 4.01 kB
function _define_property(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 _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _type_of(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } import { BLOCKS } from './blocks.mjs'; import { INLINES } from './inlines.mjs'; function hasValue(obj, value) { var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; try { for(var _iterator = Object.keys(obj)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ var key = _step.value; if (value === obj[key]) { return true; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally{ try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally{ if (_didIteratorError) { throw _iteratorError; } } } return false; } export function isInline(node) { return hasValue(INLINES, node.nodeType); } export function isBlock(node) { return hasValue(BLOCKS, node.nodeType); } export function isText(node) { return node.nodeType === 'text'; } export function isEmptyParagraph(node) { if (node.nodeType !== BLOCKS.PARAGRAPH) { return false; } if (node.content.length !== 1) { return false; } var textNode = node.content[0]; return textNode.nodeType === 'text' && textNode.value === ''; } function isValidDocument(document) { return document != null && (typeof document === "undefined" ? "undefined" : _type_of(document)) === 'object' && 'content' in document && Array.isArray(document.content); } var MIN_NODES_FOR_STRIPPING = 2; export function stripEmptyTrailingParagraphFromDocument(document) { if (!isValidDocument(document) || document.content.length < MIN_NODES_FOR_STRIPPING) { return document; } var lastNode = document.content[document.content.length - 1]; if (isEmptyParagraph(lastNode)) { return _object_spread_props(_object_spread({}, document), { content: document.content.slice(0, -1) }); } return document; }