UNPKG

@contentful/rich-text-types

Version:

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

146 lines (145 loc) 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: Object.getOwnPropertyDescriptor(all, name).get }); } _export(exports, { get isBlock () { return isBlock; }, get isEmptyParagraph () { return isEmptyParagraph; }, get isInline () { return isInline; }, get isText () { return isText; }, get stripEmptyTrailingParagraphFromDocument () { return stripEmptyTrailingParagraphFromDocument; } }); var _blocks = require("./blocks.js"); var _inlines = require("./inlines.js"); 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; } 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; } function isInline(node) { return hasValue(_inlines.INLINES, node.nodeType); } function isBlock(node) { return hasValue(_blocks.BLOCKS, node.nodeType); } function isText(node) { return node.nodeType === 'text'; } function isEmptyParagraph(node) { if (node.nodeType !== _blocks.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; 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; }