{"version":3,"sources":["jsdelivr-header.js","/node_modules/wix-redraft/lib/helpers/arrayEqual.js","/node_modules/wix-redraft/lib/ContentNode.js","/node_modules/wix-redraft/lib/RawParser.js","/node_modules/wix-redraft/lib/createStyleRenderer.js","/node_modules/wix-redraft/lib/createBlockRenderer.js","/node_modules/wix-redraft/lib/helpers/warn.js","/node_modules/wix-redraft/lib/helpers/checkCleanup.js","/node_modules/wix-redraft/lib/helpers/getKeyGenerator.js","/node_modules/wix-redraft/lib/helpers/checkJoin.js","/node_modules/wix-redraft/lib/helpers/pushString.js","/node_modules/wix-redraft/lib/defaultOptions.js","/node_modules/wix-redraft/lib/helpers/CompositeDecorator.js","/node_modules/wix-redraft/lib/helpers/MultiDecorator.js","/node_modules/wix-redraft/lib/helpers/stubContentBlock.js","/node_modules/wix-redraft/lib/withDecorators.js","/node_modules/wix-redraft/lib/render.js","/node_modules/wix-redraft/lib/index.js","/npm/wix-rich-content-viewer@9.18.4/src/utils/textUtils.js","/npm/wix-rich-content-viewer@9.18.4/src/utils/paywallSeo.ts","/npm/wix-rich-content-viewer@9.18.4/src/utils/combineMappers.ts","/npm/wix-rich-content-viewer@9.18.4/src/utils/getInteractionWrapper.js","/npm/wix-rich-content-viewer@9.18.4/src/withInteraction.jsx","/npm/wix-rich-content-viewer@9.18.4/src/List.jsx","/npm/wix-rich-content-viewer@9.18.4/src/utils/draftUtils.ts","/npm/wix-rich-content-viewer@9.18.4/src/components/Anchor.tsx","/npm/wix-rich-content-viewer@9.18.4/src/components/ErrorBoundary.tsx","/npm/wix-rich-content-viewer@9.18.4/src/getPluginViewers.jsx","/npm/wix-rich-content-viewer@9.18.4/src/inlineStyleMapper.tsx","/npm/wix-rich-content-viewer@9.18.4/src/utils/convertContentState.tsx","/npm/wix-rich-content-viewer@9.18.4/src/RichContentViewer.tsx","/npm/wix-rich-content-viewer@9.18.4/src/I18nRichContentViewer.tsx"],"names":[],"mappings":"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","file":"/npm/wix-rich-content-viewer@9.18.4/dist/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/wix-rich-content-viewer@9.18.4/dist/cjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Very simple array comparison\n */\nvar arraysEqual = function arraysEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  } // defining for loops with airbnb config is a pain maybe should disable some rules\n  // eslint-disable-next-line\n\n\n  for (var i = 0; i < arr1.length; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\nvar _default = arraysEqual;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _arrayEqual = _interopRequireDefault(require(\"./helpers/arrayEqual\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ContentNode = /*#__PURE__*/function () {\n  function ContentNode(props) {\n    _classCallCheck(this, ContentNode);\n\n    this.content = props.content || [];\n    this.start = typeof props.start !== 'undefined' ? props.start : null;\n    this.end = typeof props.end !== 'undefined' ? props.end : null;\n    this.entity = typeof props.entity !== 'undefined' ? props.entity : null;\n    this.decorator = typeof props.decorator !== 'undefined' ? props.decorator : null;\n    this.decoratorProps = props.decoratorProps || null;\n    this.decoratedText = typeof props.decoratedText !== 'undefined' ? props.decoratedText : null;\n    this.contentState = props.contentState;\n    this.style = props.style || null;\n    this.styles = props.styles || null;\n    this.block = props.block || {};\n  }\n\n  _createClass(ContentNode, [{\n    key: \"getCurrentContent\",\n    value: function getCurrentContent() {\n      return this.content[this.content.length - 1];\n    }\n  }, {\n    key: \"addToCurrentContent\",\n    value: function addToCurrentContent(string) {\n      this.content[this.content.length - 1] = this.content[this.content.length - 1] + string;\n    }\n  }, {\n    key: \"handleFlatPush\",\n    value: function handleFlatPush(string, stack) {\n      var current = this.getCurrentContent(); // if the stacks are equal just add the string to the current node\n\n      if (current instanceof ContentNode && (0, _arrayEqual[\"default\"])(stack, current.styles)) {\n        current.addToCurrentContent(string);\n        return;\n      } // create a node with whole styles stack\n\n\n      var newNode = new ContentNode({\n        styles: _toConsumableArray(stack),\n        content: [string]\n      });\n      this.content.push(newNode);\n    }\n  }, {\n    key: \"pushContent\",\n    value: function pushContent(string) {\n      var stack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n      var flat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n      // we can just concat strings when both the pushed item\n      // and the last element of the content array is a string\n      if (!stack || stack.length < 1) {\n        if (typeof string === 'string' && typeof this.getCurrentContent() === 'string') {\n          this.addToCurrentContent(string);\n        } else {\n          this.content.push(string);\n        }\n\n        return this;\n      } // handle flat structure\n\n\n      if (flat) {\n        this.handleFlatPush(string, stack);\n        return this;\n      }\n\n      var _stack = _toArray(stack),\n          head = _stack[0],\n          rest = _stack.slice(1);\n\n      var current = this.getCurrentContent();\n\n      if (current instanceof ContentNode && current.style === head) {\n        current.pushContent(string, rest, flat);\n      } else {\n        var newNode = new ContentNode({\n          style: head\n        });\n        newNode.pushContent(string, rest, flat);\n        this.content.push(newNode);\n      }\n\n      return this;\n    }\n  }]);\n\n  return ContentNode;\n}();\n\nvar _default = ContentNode;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _punycode = _interopRequireDefault(require(\"punycode\"));\n\nvar _ContentNode = _interopRequireDefault(require(\"./ContentNode\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Slices the decoded ucs2 array and encodes the result back to a string representation\n */\nvar getString = function getString(array, from, to) {\n  return _punycode[\"default\"].ucs2.encode(array.slice(from, to));\n};\n/**\n * creates nodes with entity keys and the endOffset\n */\n\n\nfunction createNodes(entityRanges) {\n  var decoratorRanges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var textArray = arguments.length > 2 ? arguments[2] : undefined;\n  var block = arguments.length > 3 ? arguments[3] : undefined;\n  var lastIndex = 0;\n  var mergedRanges = [].concat(_toConsumableArray(entityRanges), _toConsumableArray(decoratorRanges)).sort(function (a, b) {\n    return a.offset - b.offset;\n  });\n  var nodes = []; // if thers no entities will return just a single item\n\n  if (mergedRanges.length < 1) {\n    nodes.push(new _ContentNode[\"default\"]({\n      block: block,\n      start: 0,\n      end: textArray.length\n    }));\n    return nodes;\n  }\n\n  mergedRanges.forEach(function (range) {\n    // create an empty node for content between previous and this entity\n    if (range.offset > lastIndex) {\n      nodes.push(new _ContentNode[\"default\"]({\n        block: block,\n        start: lastIndex,\n        end: range.offset\n      }));\n    } // push the node for the entity\n\n\n    nodes.push(new _ContentNode[\"default\"]({\n      block: block,\n      entity: range.key,\n      decorator: range.component,\n      decoratorProps: range.decoratorProps,\n      decoratedText: range.component ? getString(textArray, range.offset, range.offset + range.length) : undefined,\n      start: range.offset,\n      end: range.offset + range.length,\n      contentState: range.contentState\n    }));\n    lastIndex = range.offset + range.length;\n  }); // finaly add a node for the remaining text if any\n\n  if (lastIndex < textArray.length) {\n    nodes.push(new _ContentNode[\"default\"]({\n      block: block,\n      start: lastIndex,\n      end: textArray.length\n    }));\n  }\n\n  return nodes;\n}\n\nfunction addIndexes(indexes, ranges) {\n  ranges.forEach(function (range) {\n    indexes.push(range.offset);\n    indexes.push(range.offset + range.length);\n  });\n  return indexes;\n}\n/**\n * Creates an array of sorted char indexes to avoid iterating over every single character\n */\n\n\nfunction getRelevantIndexes(text, inlineRanges) {\n  var entityRanges = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  var decoratorRanges = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n  var relevantIndexes = []; // set indexes to corresponding keys to ensure uniquenes\n\n  relevantIndexes = addIndexes(relevantIndexes, inlineRanges);\n  relevantIndexes = addIndexes(relevantIndexes, entityRanges);\n  relevantIndexes = addIndexes(relevantIndexes, decoratorRanges); // add text start and end to relevant indexes\n\n  relevantIndexes.push(0);\n  relevantIndexes.push(text.length);\n  var uniqueRelevantIndexes = relevantIndexes.filter(function (value, index, self) {\n    return self.indexOf(value) === index;\n  }); // and sort it\n\n  return uniqueRelevantIndexes.sort(function (aa, bb) {\n    return aa - bb;\n  });\n}\n\nvar RawParser = /*#__PURE__*/function () {\n  function RawParser(_ref) {\n    var _ref$flat = _ref.flat,\n        flat = _ref$flat === void 0 ? false : _ref$flat;\n\n    _classCallCheck(this, RawParser);\n\n    this.flat = flat;\n  }\n\n  _createClass(RawParser, [{\n    key: \"relevantStyles\",\n    value: function relevantStyles(offset) {\n      var styles = this.ranges.filter(function (range) {\n        return offset >= range.offset && offset < range.offset + range.length;\n      });\n      return styles.map(function (style) {\n        return style.style;\n      });\n    }\n    /**\n     * Loops over relevant text indexes\n     */\n\n  }, {\n    key: \"nodeIterator\",\n    value: function nodeIterator(node, start, end) {\n      var _this = this;\n\n      var indexes = this.relevantIndexes.slice(this.relevantIndexes.indexOf(start), this.relevantIndexes.indexOf(end)); // loops while next index is smaller than the endOffset\n\n      indexes.forEach(function (index, key) {\n        // figure out what styles this char and the next char need\n        // (regardless of whether there *is* a next char or not)\n        var characterStyles = _this.relevantStyles(index); // calculate distance or set it to 1 if thers no next index\n\n\n        var distance = indexes[key + 1] ? indexes[key + 1] - index : 1; // add all the chars up to next relevantIndex\n\n        var text = getString(_this.textArray, index, index + distance);\n        node.pushContent(text, characterStyles, _this.flat); // if thers no next index and thers more text left to push\n\n        if (!indexes[key + 1] && index < end) {\n          node.pushContent(getString(_this.textArray, index + 1, end), _this.relevantStyles(end - 1), _this.flat);\n        }\n      });\n      return node;\n    }\n    /**\n     * Converts raw block to object with nested style objects,\n     * while it returns an object not a string\n     * the idea is still mostly same as backdraft.js (https://github.com/evanc/backdraft-js)\n     */\n\n  }, {\n    key: \"parse\",\n    value: function parse(block) {\n      var _this2 = this;\n\n      var text = block.text,\n          ranges = block.inlineStyleRanges,\n          entityRanges = block.entityRanges,\n          _block$decoratorRange = block.decoratorRanges,\n          decoratorRanges = _block$decoratorRange === void 0 ? [] : _block$decoratorRange; // Some unicode charactes actualy have length of more than 1\n      // this creates an array of code points using es6 string iterator\n\n      this.textArray = _punycode[\"default\"].ucs2.decode(text);\n      this.ranges = ranges;\n      this.iterator = 0; // get all the relevant indexes for whole block\n\n      this.relevantIndexes = getRelevantIndexes(text, ranges, entityRanges, decoratorRanges); // create entity or empty nodes to place the inline styles in\n\n      var nodes = createNodes(entityRanges, decoratorRanges, this.textArray, block);\n      var parsedNodes = nodes.map(function (node) {\n        return _this2.nodeIterator(node, node.start, node.end);\n      });\n      return new _ContentNode[\"default\"]({\n        block: block,\n        content: parsedNodes\n      });\n    }\n  }]);\n\n  return RawParser;\n}();\n\nexports[\"default\"] = RawParser;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Returns a single style object provided styleArray and stylesMap\n */\nvar reduceStyles = function reduceStyles(styleArray, stylesMap) {\n  return styleArray.map(function (style) {\n    return stylesMap[style];\n  }).reduce(function (prev, next) {\n    var mergedStyles = {};\n\n    if (next !== undefined) {\n      var key = 'text-decoration' in next ? 'text-decoration' : 'textDecoration';\n\n      if (next[key] !== prev[key]) {\n        // .trim() is necessary for IE9/10/11 and Edge\n        mergedStyles[key] = [prev[key], next[key]].join(' ').trim();\n      }\n    }\n\n    return Object.assign(prev, next, mergedStyles);\n  }, {});\n};\n/**\n * Returns a styleRenderer from a customStyleMap and a wrapper callback (Component)\n */\n\n\nvar createStyleRenderer = function createStyleRenderer(wrapper, stylesMap) {\n  return function (children, styleArray, params) {\n    var style = reduceStyles(styleArray, stylesMap);\n    return wrapper(Object.assign({}, {\n      children: children\n    }, params, {\n      style: style\n    }));\n  };\n};\n\nvar _default = createStyleRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar KEY_DELIMITER = ','; // Return either a single key if present or joined keys array from props;\n\nvar getKey = function getKey(_ref, key) {\n  var keys = _ref.keys;\n\n  if (key) {\n    return key;\n  }\n\n  if (!keys) {\n    return undefined;\n  }\n\n  return keys.join(KEY_DELIMITER);\n}; // Call the wrapper with element, props, and spread children\n// this order is specific to React.createElement\n\n\nvar getBlock = function getBlock(element, wrapper, withDepth) {\n  return function (children, properties, key) {\n    var props = Object.assign({}, properties);\n\n    if (!withDepth) {\n      delete props.depth;\n    }\n\n    return wrapper.apply(void 0, [element, Object.assign({}, props, {\n      key: getKey(props, key)\n    })].concat(_toConsumableArray(children)));\n  };\n}; // Handle blocks with wrapper element defined\n\n\nvar getWrappedChildren = function getWrappedChildren(callback, block, _ref2) {\n  var children = _ref2.children,\n      props = _ref2.props,\n      key = _ref2.key;\n  var wrapperBlockFn = getBlock(block.wrapper, callback);\n  var blockFn = getBlock(block.element, callback, true);\n  return wrapperBlockFn(children.map(function (child, ii) {\n    return blockFn(child, {}, props.keys && props.keys[ii]);\n  }), props, key);\n};\n/**\n* Returns a blockRenderer crated from a blockRendererMap using a callback ie. React.createElement\n*/\n\n\nvar createBlockRenderer = function createBlockRenderer(callback, blockMap) {\n  var renderer = {};\n  Object.keys(blockMap).forEach(function (item) {\n    var block = blockMap[item]; // If wrapper is present children need to be nested inside\n\n    if (block.wrapper) {\n      renderer[item] = function (children, props, key) {\n        return getWrappedChildren(callback, block, {\n          children: children,\n          props: props,\n          key: key\n        });\n      };\n\n      return;\n    } // Wrapper is not present\n\n\n    renderer[item] = getBlock(block.element, callback);\n  });\n  return renderer;\n};\n\nvar _default = createBlockRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Logs a warning message if not in production\n */\nvar warn = function warn(msg) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn(\"Redraft: \".concat(msg)); // eslint-disable-line no-console\n  }\n};\n\nvar _default = warn;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Check if block has any text, respects trim setting\n */\nvar hasText = function hasText(text, _ref) {\n  var trim = _ref.trim;\n  return !!(trim ? text.trim() : text);\n};\n/**\n * Check if block has any data like text, metadata or entities\n */\n\n\nvar hasData = function hasData(block, options) {\n  if (hasText(block.text, options)) {\n    return true;\n  }\n\n  if (block.data && Object.keys(block.data).length) {\n    return true;\n  }\n\n  if (block.entityRanges && block.entityRanges.length) {\n    return true;\n  }\n\n  return false;\n};\n/**\n * Checks if current block is empty and if it should be ommited according to passed settings\n */\n\n\nvar checkCleanup = function checkCleanup(block, prevType, _ref2) {\n  var cleanup = _ref2.cleanup;\n\n  if (!cleanup || hasData(block, cleanup)) {\n    return false;\n  } // Check if cleanup is enabled after prev type\n\n\n  if (cleanup.after && cleanup.after !== 'all' && !cleanup.after.includes(prevType)) {\n    return false;\n  } // Handle the except array if passed\n\n\n  if (cleanup.except && !cleanup.except.includes(block.type)) {\n    return true;\n  } // Finaly if cleanup is enabled for current type\n\n\n  if (cleanup.types && (cleanup.types === 'all' || cleanup.types.includes(block.type))) {\n    return true;\n  }\n\n  return false;\n};\n\nvar _default = checkCleanup;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n// return a new generator wich produces sequential keys for nodes\nvar getKeyGenerator = function getKeyGenerator() {\n  var key = 0;\n\n  var keyGenerator = function keyGenerator() {\n    var current = key;\n    key += 1;\n    return current; // eslint-disable-line no-plusplus\n  };\n\n  return keyGenerator;\n};\n\nvar _default = getKeyGenerator;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Joins the input if the joinOutput option is enabled\n */\nvar checkJoin = function checkJoin(input, options) {\n  if (Array.isArray(input) && options.joinOutput) {\n    return input.join('');\n  }\n\n  return input;\n};\n\nvar _default = checkJoin;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Concats or insets a string at given array index\n */\nvar pushString = function pushString(string, array, index) {\n  var tempArray = array;\n\n  if (!array[index]) {\n    tempArray[index] = string;\n  } else {\n    tempArray[index] += string;\n  }\n\n  return tempArray;\n};\n\nvar _default = pushString;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar defaultOptions = {\n  joinOutput: false,\n  cleanup: {\n    after: ['atomic'],\n    types: ['unstyled'],\n    trim: false,\n    split: true\n  }\n};\nvar _default = defaultOptions;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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; }\n\n/**\n * This is only slighly modified version of draft-js CompositeDraftDecorator\n * https://github.com/facebook/draft-js/blob/dc27624caaaede4dad9d182ff9918a5da8f83c99/src/model/decorators/CompositeDraftDecorator.js\n *\n * Basicly it just swaps the Immutable.js List with own ListStub\n *\n * \n */\n// eslint-disable-next-line import/no-extraneous-dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\nvar DELIMITER = '.';\n/**\n * Determine whether we can occupy the specified slice of the decorations\n * array.\n */\n\nfunction canOccupySlice(decorations, start, end) {\n  // eslint-disable-next-line no-plusplus\n  for (var ii = start; ii < end; ii++) {\n    if (decorations[ii] != null) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * Splice the specified component into our decoration array at the desired\n * range.\n */\n\n\nfunction occupySlice(targetArr, start, end, componentKey) {\n  // eslint-disable-next-line no-plusplus\n  for (var ii = start; ii < end; ii++) {\n    // eslint-disable-next-line no-param-reassign\n    targetArr[ii] = componentKey;\n  }\n}\n/**\n * A CompositeDraftDecorator traverses through a list of DraftDecorator\n * instances to identify sections of a ContentBlock that should be rendered\n * in a \"decorated\" manner. For example, hashtags, mentions, and links may\n * be intended to stand out visually, be rendered as anchors, etc.\n *\n * The list of decorators supplied to the constructor will be used in the\n * order they are provided. This allows the caller to specify a priority for\n * string matching, in case of match collisions among decorators.\n *\n * For instance, I may have a link with a `#` in its text. Though this section\n * of text may match our hashtag decorator, it should not be treated as a\n * hashtag. I should therefore list my link DraftDecorator\n * before my hashtag DraftDecorator when constructing this composite\n * decorator instance.\n *\n * Thus, when a collision like this is encountered, the earlier match is\n * preserved and the new match is discarded.\n */\n\n\nvar CompositeDraftDecorator = /*#__PURE__*/function () {\n  function CompositeDraftDecorator(decorators) {\n    _classCallCheck(this, CompositeDraftDecorator);\n\n    _defineProperty(this, \"decorators\", void 0);\n\n    // Copy the decorator array, since we use this array order to determine\n    // precedence of decoration matching. If the array is mutated externally,\n    // we don't want to be affected here.\n    this.decorators = decorators.slice();\n  }\n\n  _createClass(CompositeDraftDecorator, [{\n    key: \"getDecorations\",\n    value: function getDecorations(block, contentState) {\n      var decorations = Array(block.getText().length).fill(null);\n      this.decorators.forEach(function (\n      /* object*/\n      decorator,\n      /* number*/\n      ii) {\n        var counter = 0;\n        var strategy = decorator.strategy;\n\n        var callback = function callback(\n        /* number*/\n        start,\n        /* number*/\n        end) {\n          // Find out if any of our matching range is already occupied\n          // by another decorator. If so, discard the match. Otherwise, store\n          // the component key for rendering.\n          if (canOccupySlice(decorations, start, end)) {\n            occupySlice(decorations, start, end, ii + DELIMITER + counter); // eslint-disable-next-line no-plusplus\n\n            counter++;\n          }\n        };\n\n        strategy(block, callback, contentState);\n      });\n      return decorations;\n    }\n  }, {\n    key: \"getComponentForKey\",\n    value: function getComponentForKey(key) {\n      var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n      return this.decorators[componentKey].component;\n    }\n  }, {\n    key: \"getPropsForKey\",\n    value: function getPropsForKey(key) {\n      var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n      return this.decorators[componentKey].props;\n    }\n  }]);\n\n  return CompositeDraftDecorator;\n}();\n\nvar _default = CompositeDraftDecorator;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar KEY_SEPARATOR = '-';\n\nvar MultiDecorator = /*#__PURE__*/function () {\n  function MultiDecorator(decorators) {\n    _classCallCheck(this, MultiDecorator);\n\n    this.decorators = decorators;\n  }\n  /**\n   * Return list of decoration IDs per character\n   *\n   * @param {ContentBlock} block\n   * @return {List<String>}\n   */\n\n\n  _createClass(MultiDecorator, [{\n    key: \"getDecorations\",\n    value: function getDecorations(block, contentState) {\n      var decorations = new Array(block.getText().length).fill(null);\n      this.decorators.forEach(function (decorator, i) {\n        var subDecorations = decorator.getDecorations(block, contentState);\n        subDecorations.forEach(function (key, offset) {\n          if (!key) {\n            return;\n          }\n\n          decorations[offset] = i + KEY_SEPARATOR + key;\n        });\n      });\n      return decorations;\n    }\n    /**\n     * Return component to render a decoration\n     *\n     * @param {String} key\n     * @return {Function}\n     */\n\n  }, {\n    key: \"getComponentForKey\",\n    value: function getComponentForKey(key) {\n      var decorator = this.getDecoratorForKey(key);\n      return decorator.getComponentForKey(MultiDecorator.getInnerKey(key));\n    }\n    /**\n     * Return props to render a decoration\n     *\n     * @param {String} key\n     * @return {Object}\n     */\n\n  }, {\n    key: \"getPropsForKey\",\n    value: function getPropsForKey(key) {\n      var decorator = this.getDecoratorForKey(key);\n      return decorator.getPropsForKey(MultiDecorator.getInnerKey(key));\n    }\n    /**\n     * Return a decorator for a specific key\n     *\n     * @param {String} key\n     * @return {Decorator}\n     */\n\n  }, {\n    key: \"getDecoratorForKey\",\n    value: function getDecoratorForKey(key) {\n      var parts = key.split(KEY_SEPARATOR);\n      var index = Number(parts[0]);\n      return this.decorators[index];\n    }\n    /**\n     * Return inner key for a decorator\n     *\n     * @param {String} key\n     * @return {String}\n     */\n\n  }], [{\n    key: \"getInnerKey\",\n    value: function getInnerKey(key) {\n      var parts = key.split(KEY_SEPARATOR);\n      return parts.slice(1).join(KEY_SEPARATOR);\n    }\n  }]);\n\n  return MultiDecorator;\n}();\n\nvar _default = MultiDecorator;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * This is a simple replacement for draft-js ContentBlock,\n * CharacterList or any related methods are not implented here\n */\nvar ContentBlockStub = /*#__PURE__*/function () {\n  function ContentBlockStub(block) {\n    _classCallCheck(this, ContentBlockStub);\n\n    Object.assign(this, block);\n  }\n\n  _createClass(ContentBlockStub, [{\n    key: \"get\",\n    value: function get(name) {\n      return this[name];\n    }\n  }, {\n    key: \"getText\",\n    value: function getText() {\n      return this.text;\n    }\n  }, {\n    key: \"getType\",\n    value: function getType() {\n      return this.type;\n    }\n  }, {\n    key: \"getKey\",\n    value: function getKey() {\n      return this.key;\n    }\n  }, {\n    key: \"getLength\",\n    value: function getLength() {\n      return this.text.length;\n    }\n  }, {\n    key: \"getDepth\",\n    value: function getDepth() {\n      return this.depth;\n    }\n  }, {\n    key: \"getData\",\n    value: function getData() {\n      return this.data;\n    }\n  }]);\n\n  return ContentBlockStub;\n}();\n\nvar stubContentBlock = function stubContentBlock(block) {\n  return new ContentBlockStub(block);\n};\n\nvar _default = stubContentBlock;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _punycode = _interopRequireDefault(require(\"punycode\"));\n\nvar _CompositeDecorator = _interopRequireDefault(require(\"./helpers/CompositeDecorator\"));\n\nvar _MultiDecorator = _interopRequireDefault(require(\"./helpers/MultiDecorator\"));\n\nvar _stubContentBlock = _interopRequireDefault(require(\"./helpers/stubContentBlock\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Use CompositeDecorator to build decoratorRanges with ranges, components, and props\n */\n// This offsets or rather recalculates ranges for decorators\n// with punycode.ucs2.decode\nvar offsetRanges = function offsetRanges(ranges, block) {\n  // if there are no decorator skip this step\n  ranges.forEach(function (range) {\n    var pre = block.text.substring(0, range.offset);\n    var decorated = block.text.substring(range.offset, range.offset + range.length); // eslint-disable-next-line no-param-reassign\n\n    range.offset = _punycode[\"default\"].ucs2.decode(pre).length; // eslint-disable-next-line no-param-reassign\n\n    range.length = _punycode[\"default\"].ucs2.decode(decorated).length;\n  });\n  return ranges;\n}; // Return true if decorator implements the DraftDecoratorType interface\n// @see https://github.com/facebook/draft-js/blob/master/src/model/decorators/DraftDecoratorType.js\n\n\nvar decoratorIsCustom = function decoratorIsCustom(decorator) {\n  return typeof decorator.getDecorations === 'function' && typeof decorator.getComponentForKey === 'function' && typeof decorator.getPropsForKey === 'function';\n};\n\nvar resolveDecorators = function resolveDecorators(decorators) {\n  var compositeDecorator = new _CompositeDecorator[\"default\"](decorators.filter(function (decorator) {\n    return !decoratorIsCustom(decorator);\n  }));\n  var customDecorators = decorators.filter(function (decorator) {\n    return decoratorIsCustom(decorator);\n  });\n  var decor = [].concat(_toConsumableArray(customDecorators), [compositeDecorator]);\n  return new _MultiDecorator[\"default\"](decor);\n};\n\nvar decorateBlock = function decorateBlock(block, decorators, contentState, _ref) {\n  var createContentBlock = _ref.createContentBlock;\n  var decoratorRanges = []; // create a Decorator instance\n\n  var decorator = resolveDecorators(decorators); // create ContentBlock or a stub\n\n  var contentBlock = createContentBlock ? createContentBlock(block) : (0, _stubContentBlock[\"default\"])(block); // Get decorations from CompositeDecorator instance\n\n  var decorations = decorator.getDecorations(contentBlock, contentState); // Keep track of offset for current key\n\n  var offset = 0;\n  decorations.forEach(function (key, index) {\n    // If no key just move the offset\n    if (!key) {\n      offset += 1;\n      return;\n    } // get next key\n\n\n    var nextIndex = index + 1;\n    var next = decorations[nextIndex]; // if thers no next key or the key chages build a decoratorRange entry\n\n    if (!next || next !== key) {\n      decoratorRanges.push({\n        offset: offset,\n        length: nextIndex - offset,\n        component: decorator.getComponentForKey(key),\n        decoratorProps: decorator.getPropsForKey(key) || {},\n        // save reference to contentState\n        contentState: contentState\n      }); // reset the offset to next index\n\n      offset = nextIndex;\n    }\n  }); // merge the block with decoratorRanges\n\n  return Object.assign({}, block, {\n    decoratorRanges: offsetRanges(decoratorRanges, block)\n  });\n};\n\nvar withDecorators = function withDecorators(raw, decorators, options) {\n  var contentState = options.convertFromRaw && options.convertFromRaw(raw);\n  return raw.blocks.map(function (block) {\n    return decorateBlock(block, decorators, contentState, options || {});\n  });\n};\n\nvar _default = withDecorators;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.render = exports.renderNode = void 0;\n\nvar _RawParser = _interopRequireDefault(require(\"./RawParser\"));\n\nvar _warn = _interopRequireDefault(require(\"./helpers/warn\"));\n\nvar _checkCleanup = _interopRequireDefault(require(\"./helpers/checkCleanup\"));\n\nvar _getKeyGenerator = _interopRequireDefault(require(\"./helpers/getKeyGenerator\"));\n\nvar _checkJoin = _interopRequireDefault(require(\"./helpers/checkJoin\"));\n\nvar _pushString = _interopRequireDefault(require(\"./helpers/pushString\"));\n\nvar _defaultOptions = _interopRequireDefault(require(\"./defaultOptions\"));\n\nvar _withDecorators = _interopRequireDefault(require(\"./withDecorators\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar KEY_DELIMITER = '.';\nvar ATOMIC_BLOCK_TYPE = 'atomic';\n/**\n * Recursively renders a node with nested nodes with given callbacks\n */\n\nvar renderNode = function renderNode(node, inlineRenderers, entityRenderers, styleRenderers, entityMap, options, keyGenerator) {\n  if (node.styles && styleRenderers) {\n    return styleRenderers((0, _checkJoin[\"default\"])(node.content, options), node.styles, {\n      key: keyGenerator()\n    });\n  }\n\n  var children = [];\n  var index = 0;\n  node.content.forEach(function (part) {\n    if (typeof part === 'string') {\n      children = (0, _pushString[\"default\"])(part, children, index);\n    } else {\n      index += 1;\n      children[index] = renderNode(part, inlineRenderers, entityRenderers, styleRenderers, entityMap, options, keyGenerator);\n      index += 1;\n    }\n  });\n\n  if (node.style && inlineRenderers[node.style]) {\n    return inlineRenderers[node.style]((0, _checkJoin[\"default\"])(children, options), {\n      key: keyGenerator()\n    });\n  }\n\n  if (node.entity !== null) {\n    var entity = entityMap[node.entity];\n    var entityRenderer = entity && (entityRenderers[entity.type] || node.block.type === ATOMIC_BLOCK_TYPE && entityRenderers.atomicFallbackRenderer);\n\n    if (entityRenderer) {\n      return entityRenderer((0, _checkJoin[\"default\"])(children, options), entity.data, {\n        key: node.entity,\n        block: node.block\n      }, entity.type);\n    }\n  }\n\n  if (node.decorator !== null) {\n    // FIXME: few props are missing see https://github.com/facebook/draft-js/blob/0c609d9d3671fdbbe2a290ed160a0537f846f08e/src/component/contents/DraftEditorBlock.react.js#L196-L205\n    var decoratorOffsetKey = [node.block.key, node.start, 0].join(KEY_DELIMITER);\n    return node.decorator(Object.assign({\n      children: (0, _checkJoin[\"default\"])(children, options),\n      decoratedText: node.decoratedText,\n      contentState: node.contentState,\n      entityKey: node.entity,\n      offsetKey: decoratorOffsetKey,\n      key: decoratorOffsetKey\n    }, node.decoratorProps));\n  }\n\n  return children;\n};\n/**\n * Nests blocks by depth as children\n */\n\n\nexports.renderNode = renderNode;\n\nvar byDepth = function byDepth(blocks) {\n  var group = [];\n  var depthStack = [];\n  var prevDepth = 0;\n\n  var unwind = function unwind(targetDepth) {\n    var i = prevDepth - targetDepth; // in case depthStack is too short for target depth\n\n    if (depthStack.length < i) {\n      i = depthStack.length;\n    }\n\n    for (i; i > 0; i -= 1) {\n      var tmp = group;\n      group = depthStack.pop();\n      group[group.length - 1].children = tmp;\n    }\n  };\n\n  blocks.forEach(function (block) {\n    // if type of the block has changed render the block and clear group\n    if (prevDepth < block.depth) {\n      depthStack.push(group);\n      group = [];\n    } else if (prevDepth > block.depth) {\n      unwind(block.depth);\n    }\n\n    prevDepth = block.depth;\n    group.push(block);\n  });\n\n  if (prevDepth !== 0) {\n    unwind(0);\n  }\n\n  return group;\n};\n/**\n * Conditionaly render a group if its not empty,\n * pass all the params to the renderers\n */\n\n\nvar renderGroup = function renderGroup(group, blockRenderers, rendered, params) {\n  var type = params.prevType,\n      depth = params.prevDepth,\n      keys = params.prevKeys,\n      data = params.prevData; // in case current group is empty it should not be rendered\n\n  if (group.length === 0) {\n    return;\n  }\n\n  if (blockRenderers[type]) {\n    var props = {\n      depth: depth,\n      keys: keys\n    };\n\n    if (data && data.some(function (item) {\n      return !!item;\n    })) {\n      props.data = data;\n    }\n\n    rendered.push(blockRenderers[type](group, props));\n    return;\n  }\n\n  rendered.push(group);\n};\n/**\n * Renders blocks grouped by type using provided blockStyleRenderers\n */\n\n\nvar renderBlocks = function renderBlocks(blocks) {\n  var inlineRenderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var blockRenderers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var entityRenderers = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var stylesRenderer = arguments.length > 4 ? arguments[4] : undefined;\n  var entityMap = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n  var userOptions = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n  // initialize\n  var options = Object.assign({}, _defaultOptions[\"default\"], userOptions);\n  var rendered = [];\n  var group = [];\n  var prevType = null;\n  var prevDepth = 0;\n  var prevKeys = [];\n  var prevData = [];\n  var splitGroup = false;\n  var Parser = new _RawParser[\"default\"]({\n    flat: !!stylesRenderer\n  });\n  blocks.forEach(function (block) {\n    if ((0, _checkCleanup[\"default\"])(block, prevType, options)) {\n      // Set the split flag if enabled\n      if (options.cleanup.split === true) {\n        splitGroup = true;\n      }\n\n      return;\n    }\n\n    var node = Parser.parse(block);\n    var renderedNode = renderNode(node, inlineRenderers, entityRenderers, stylesRenderer, entityMap, options, (0, _getKeyGenerator[\"default\"])()); // if type of the block has changed or the split flag is set\n    // render and clear group\n\n    if (prevType && prevType !== block.type || splitGroup) {\n      renderGroup(group, blockRenderers, rendered, {\n        prevType: prevType,\n        prevDepth: prevDepth,\n        prevKeys: prevKeys,\n        prevData: prevData\n      }); // reset group vars\n      // IDEA: might be worth to group those into an instance and just newup a new one\n\n      prevData = [];\n      prevKeys = [];\n      group = [];\n      splitGroup = false;\n    } // handle children\n\n\n    if (block.children) {\n      var children = renderBlocks(block.children, inlineRenderers, blockRenderers, entityRenderers, stylesRenderer, entityMap, options);\n      renderedNode.push(children);\n    } // push current node to group\n\n\n    group.push(renderedNode); // lastly save current type for refference\n\n    prevType = block.type;\n    prevDepth = block.depth;\n    prevKeys.push(block.key);\n    prevData.push(block.data);\n  }); // render last group\n\n  renderGroup(group, blockRenderers, rendered, {\n    prevType: prevType,\n    prevDepth: prevDepth,\n    prevKeys: prevKeys,\n    prevData: prevData\n  });\n  return (0, _checkJoin[\"default\"])(rendered, options);\n};\n/**\n * Converts and renders each block of Draft.js rawState\n */\n\n\nvar render = function render(raw) {\n  var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (!raw || !Array.isArray(raw.blocks)) {\n    (0, _warn[\"default\"])('invalid raw object');\n    return null;\n  } // If the lenght of the blocks array is 0 its should not log a warning but still return a null\n\n\n  if (!raw.blocks.length) {\n    return null;\n  }\n\n  var inlineRenderers = renderers.inline,\n      blockRenderers = renderers.blocks,\n      entityRenderers = renderers.entities,\n      stylesRenderer = renderers.styles,\n      decorators = renderers.decorators; // If decorators are present, they are maped with the blocks array\n\n  var blocksWithDecorators = decorators ? (0, _withDecorators[\"default\"])(raw, decorators, options) : raw.blocks; // Nest blocks by depth\n\n  var blocks = byDepth(blocksWithDecorators);\n  return renderBlocks(blocks, inlineRenderers, blockRenderers, entityRenderers, stylesRenderer, raw.entityMap, options);\n};\n\nexports.render = render;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"RawParser\", {\n  enumerable: true,\n  get: function get() {\n    return _RawParser[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"createStylesRenderer\", {\n  enumerable: true,\n  get: function get() {\n    return _createStyleRenderer[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"createBlockRenderer\", {\n  enumerable: true,\n  get: function get() {\n    return _createBlockRenderer[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"renderNode\", {\n  enumerable: true,\n  get: function get() {\n    return _render.renderNode;\n  }\n});\nObject.defineProperty(exports, \"CompositeDecorator\", {\n  enumerable: true,\n  get: function get() {\n    return _CompositeDecorator[\"default\"];\n  }\n});\nexports[\"default\"] = void 0;\n\nvar _RawParser = _interopRequireDefault(require(\"./RawParser\"));\n\nvar _createStyleRenderer = _interopRequireDefault(require(\"./createStyleRenderer\"));\n\nvar _createBlockRenderer = _interopRequireDefault(require(\"./createBlockRenderer\"));\n\nvar _render = require(\"./render\");\n\nvar _CompositeDecorator = _interopRequireDefault(require(\"./helpers/CompositeDecorator\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _render.render;\nexports[\"default\"] = _default;","const kebabToCamel = s => s.replace(/-([a-z])/, (_, p1) => p1.toUpperCase());\n\nexport const kebabToCamelObjectKeys = (obj = {}) =>\n  Object.keys(obj).reduce((result, key) => {\n    result[kebabToCamel(key)] = obj[key];\n    return result;\n  }, {});\n\n// eslint-disable-next-line no-unused-vars\nexport const hasText = child => {\n  if (!child) {\n    return false;\n  }\n  if (typeof child === 'string') {\n    return child.trim().length > 0;\n  }\n  if (Array.isArray(child)) {\n    return hasText(child[0]) || hasText(child[1]);\n  } else if (typeof child === 'object') {\n    return hasText(child.props.children);\n  } else {\n    return false;\n  }\n};\n\nexport const safariOrFirefox = () =>\n  /^((?!chrome).)*safari|firefox|fxios/i.test(global.navigator?.userAgent);\n","import type { SEOSettings } from 'wix-rich-content-common';\n\nexport const getPaywallSeoClass = ({ className = 'paywall', index = 3 }, blockIndex: number) =>\n  blockIndex < index && className;\n\nexport const isPaywallSeo = (seoMode: SEOSettings) =>\n  typeof seoMode === 'object' && typeof seoMode.paywall === 'object';\n","import type { PluginTypeMapper, PluginMapping } from 'wix-rich-content-common';\n\nexport const combineMappers = (mappers: PluginTypeMapper[], ...args): PluginMapping => {\n  if (!mappers || !mappers.length || mappers.some(resolver => typeof resolver !== 'function')) {\n    console.warn(`${mappers} is expected to be a function array`); // eslint-disable-line no-console\n    return {};\n  }\n  return mappers.reduce<PluginMapping>((map, mapper) => Object.assign(map, mapper(...args)), {});\n};\n","import React from 'react';\nimport { combineMappers } from './combineMappers';\n\nexport const DefaultInteractionWrapper = ({ children }) => children;\n\nexport const getInteractionWrapper =\n  ({ interactions, context }) =>\n  ({ children }) => {\n    const { config } = context;\n    const { contentInteractionMappers = [], onPreviewExpand = () => {} } = config.PREVIEW || {};\n    const interactionMap = combineMappers(contentInteractionMappers, onPreviewExpand);\n    return interactions.reduce((child, { type, settings }) => {\n      const Interaction = interactionMap[type] || DefaultInteractionWrapper;\n      return (\n        <Interaction {...settings} {...context}>\n          {child}\n        </Interaction>\n      );\n    }, children);\n  };\n","import React from 'react';\nimport { isArray } from 'lodash';\nimport { getInteractionWrapper } from './utils/getInteractionWrapper';\n\nexport const withInteraction = (element, interactions, context) => {\n  const { config } = context;\n  if (\n    !config.PREVIEW?.contentInteractionMappers?.length ||\n    !config.PREVIEW.onPreviewExpand ||\n    !isArray(interactions)\n  ) {\n    return element;\n  }\n  const BlockInteractionWrapper = getInteractionWrapper({ interactions, context });\n  return <BlockInteractionWrapper>{element}</BlockInteractionWrapper>;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { hasText } from './utils/textUtils';\nimport { isPaywallSeo, getPaywallSeoClass } from './utils/paywallSeo';\nimport { getDirectionFromAlignmentAndTextDirection } from 'wix-rich-content-common';\nimport styles from '../statics/rich-content-viewer.scss';\nimport { withInteraction } from './withInteraction';\n\nconst draftPublic = 'public-DraftStyleDefault';\nconst draftClassNames = (listType, depth, textDirection) => [\n  `${draftPublic}-${listType}ListItem`,\n  `${draftPublic}-depth${depth}`,\n  `${draftPublic}-list-${textDirection}`,\n];\n\nconst getBlockClassName = (direction, listType, depth, { isNewList }) => {\n  return [\n    ...draftClassNames(listType, depth, direction),\n    'fixed-tab-size',\n    ...(isNewList ? [`${draftPublic}-reset`] : []),\n  ].join(' ');\n};\n\nconst List = ({\n  ordered,\n  items,\n  mergedStyles,\n  textDirection,\n  blockProps,\n  getBlockStyleClasses,\n  blockDataToStyle,\n  context,\n}) => {\n  const Component = ordered ? 'ol' : 'ul';\n  const listType = ordered ? 'ordered' : 'unordered';\n  const containerClassName = `${draftPublic}-${Component}`;\n  const listItemTypeClassName = `${listType}List`;\n  let prevDepth = 0;\n  return (\n    <Component className={containerClassName}>\n      {items.map((children, childIndex) => {\n        // NOTE: list block data is an array of data entries per list item\n        const dataEntry = blockProps.data.length > childIndex ? blockProps.data[childIndex] : {};\n\n        const { interactions } = blockProps.data[childIndex];\n\n        let paragraphGroup = [];\n        const result = [];\n        const alignment = dataEntry?.textAlignment || context.textAlignment;\n        const textClassName = getBlockStyleClasses(\n          mergedStyles,\n          textDirection || dataEntry.textDirection,\n          alignment\n        );\n        const hasJustifyText = alignment === 'justify' && hasText(children);\n\n        const blockStyle = blockDataToStyle(blockProps.data[childIndex]);\n        const elementProps = key => ({\n          className: classNames(mergedStyles.elementSpacing, textClassName, {\n            [styles.hasJustifyText]: hasJustifyText,\n            [styles.contentCenterAlignment]: alignment === 'center',\n          }),\n          style: { lineHeight: blockStyle.lineHeight },\n          key,\n        });\n\n        React.Children.forEach(children, (child, i) => {\n          if (child) {\n            if (typeof child.type === 'string' && /h\\d/.exec(child.type)) {\n              if (paragraphGroup.length) {\n                result.push(<p {...elementProps(i)}>{paragraphGroup}</p>);\n                paragraphGroup = [];\n              }\n              result.push(React.cloneElement(child, elementProps(i)));\n            } else {\n              paragraphGroup.push(child);\n            }\n          }\n        });\n        if (paragraphGroup.length) {\n          result.push(<p {...elementProps('just_some_key')}>{paragraphGroup}</p>);\n        }\n\n        const depth = dataEntry.depth;\n        const listItemDirection = getDirectionFromAlignmentAndTextDirection(\n          alignment,\n          textDirection || dataEntry.textDirection\n        );\n        const className = getBlockClassName(listItemDirection, listType, depth, {\n          isNewList: childIndex === 0 || depth > prevDepth,\n        });\n        prevDepth = depth;\n        const blockIndex = dataEntry.index;\n        const wrappedBlock = withInteraction(\n          result.length === 0 ? ' ' : result,\n          interactions,\n          context\n        );\n        return (\n          <li\n            id={`viewer-${blockProps.keys[childIndex]}`}\n            className={classNames(\n              context.theme[listItemTypeClassName],\n              styles[listItemTypeClassName],\n              styles[alignment],\n              getBlockStyleClasses(mergedStyles, listItemDirection, alignment, className, true),\n              isPaywallSeo(context.seoMode) &&\n                getPaywallSeoClass(context.seoMode.paywall, blockIndex),\n              blockStyle.lineHeight && styles.lineHeightFix\n            )}\n            key={blockProps.keys[childIndex]}\n            style={blockDataToStyle(blockProps.data[childIndex])}\n          >\n            {wrappedBlock}\n          </li>\n        );\n      })}\n    </Component>\n  );\n};\n\nList.propTypes = {\n  blockDataToStyle: PropTypes.func,\n  blockProps: PropTypes.object,\n  getBlockStyleClasses: PropTypes.func,\n  items: PropTypes.array,\n  mergedStyles: PropTypes.object,\n  ordered: PropTypes.bool,\n  textDirection: PropTypes.oneOf(['rtl', 'ltr']),\n  context: PropTypes.shape({\n    theme: PropTypes.object.isRequired,\n    experiments: PropTypes.object,\n    anchorTarget: PropTypes.string.isRequired,\n    relValue: PropTypes.string.isRequired,\n    config: PropTypes.object.isRequired,\n    isMobile: PropTypes.bool.isRequired,\n    helpers: PropTypes.object.isRequired,\n    t: PropTypes.func.isRequired,\n    locale: PropTypes.string.isRequired,\n    disabled: PropTypes.bool,\n    seoMode: PropTypes.bool,\n    contentState: PropTypes.object,\n    disableRightClick: PropTypes.bool,\n    textAlignment: PropTypes.oneOf(['left', 'right']),\n  }).isRequired,\n};\n\nexport default List;\n","import type { DraftContent } from 'wix-rich-content-common';\n\nexport const getBlockIndex = (content: DraftContent, blockKey: string) =>\n  content.blocks.findIndex(block => block.key === blockKey);\n","import React from 'react';\n\nconst Anchor = React.memo<{\n  anchorKey: string;\n  type?: string;\n}>(({ anchorKey, type }) => (\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  <div key={anchorKey} type={type} data-hook={anchorKey} /> //'type' attribute is for wix corvid\n));\n\nexport default Anchor;\n","import React from 'react';\n\nexport class ErrorBoundary extends React.Component<\n  { children: React.ReactNode },\n  { hasError: boolean }\n> {\n  constructor(props) {\n    super(props);\n    this.state = { hasError: false };\n  }\n\n  static getDerivedStateFromError(error) {\n    return { hasError: true };\n  }\n\n  render() {\n    if (this.state.hasError) {\n      return null;\n    }\n\n    return this.props.children;\n  }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { isFunction, isNumber } from 'lodash';\nimport { isPaywallSeo, getPaywallSeoClass } from './utils/paywallSeo';\nimport {\n  sizeClassName,\n  alignmentClassName,\n  textWrapClassName,\n  normalizeHref,\n  TABLE_TYPE,\n  IMAGE_TYPE,\n  HTML_TYPE,\n  ACTION_BUTTON_TYPE,\n  LINK_BUTTON_TYPE,\n  MAP_TYPE,\n  getRelValue,\n} from 'wix-rich-content-common';\nimport { getBlockIndex } from './utils/draftUtils';\nimport RichContentViewer from './RichContentViewer';\nimport { withInteraction } from './withInteraction';\nimport Anchor from './components/Anchor.tsx';\nimport { ErrorBoundary } from './components/ErrorBoundary';\nclass PluginViewer extends PureComponent {\n  getContainerClassNames = () => {\n    const {\n      pluginComponent,\n      componentData,\n      styles,\n      context: { theme, isMobile },\n      type,\n    } = this.props;\n    const { size, alignment, textWrap, custom } = pluginComponent.classNameStrategies || {};\n    const hasLink = this.componentHasLink();\n    const { html } = componentData;\n    return classNames(\n      styles.pluginContainerReadOnly,\n      {\n        [styles.pluginContainerMobile]: isMobile,\n        [styles.anchor]: hasLink,\n        [theme.anchor]: hasLink && theme.anchor,\n        [styles.embed]: hasLink && html,\n        [styles.horizontalScrollbar]: pluginComponent.withHorizontalScroll,\n      },\n      isFunction(alignment)\n        ? alignment(componentData, theme, styles, isMobile)\n        : alignmentClassName(componentData, theme, styles, isMobile),\n      isFunction(size)\n        ? size(componentData, theme, styles, isMobile)\n        : sizeClassName(componentData, theme, styles, isMobile),\n      isFunction(textWrap)\n        ? textWrap(componentData, theme, styles, isMobile)\n        : textWrapClassName(componentData, theme, styles, isMobile),\n      isFunction(custom) ? custom(componentData, theme, styles, isMobile) : null\n    );\n  };\n\n  componentHasLink = () => {\n    return this.props?.componentData?.config?.link?.url;\n  };\n\n  componentHasAnchor = () => {\n    return this.props?.componentData?.config?.link?.anchor;\n  };\n\n  innerRCV = ({ contentState, textAlignment, direction, renderedIn }) => {\n    const { innerRCEViewerProps } = this.props;\n    const renderedInTable = renderedIn === TABLE_TYPE;\n    return (\n      <RichContentViewer\n        initialState={contentState}\n        textAlignment={textAlignment}\n        direction={direction}\n        {...innerRCEViewerProps}\n        isInnerRcv\n        renderedInTable={renderedInTable}\n      />\n    );\n  };\n\n  /* eslint-disable complexity */\n  render() {\n    const {\n      id,\n      type,\n      pluginComponent,\n      componentData,\n      children,\n      styles,\n      entityIndex,\n      context,\n      blockIndex,\n      SpoilerViewerWrapper,\n      blockKey,\n    } = this.props;\n    const { component: Component, elementType } = pluginComponent;\n    const { container } = pluginComponent.classNameStrategies || {};\n    const { anchorTarget, config, theme, isMobile } = context;\n    const settings = config?.[type] || {};\n    const componentProps = {\n      type,\n      componentData,\n      settings,\n      children,\n      entityIndex,\n      ...context,\n      innerRCV: this.innerRCV,\n      blockKey,\n    };\n\n    if (Component) {\n      if (elementType !== 'inline') {\n        const { config = {} } = componentData;\n        const hasLink = this.componentHasLink();\n        const hasAnchor = this.componentHasAnchor();\n        const ContainerElement = hasLink || hasAnchor ? 'a' : 'div';\n        let containerProps = {};\n        if (hasLink) {\n          const { url, target = anchorTarget, rel } = config.link;\n          containerProps = {\n            href: normalizeHref(url),\n            target,\n            rel: getRelValue(rel),\n          };\n        }\n        if (hasAnchor) {\n          const { anchor } = config.link;\n          const href = `#viewer-${anchor}`;\n          containerProps = {\n            href,\n            target: '_self',\n          };\n        }\n\n        // TODO: more generic logic?\n        let customStyles;\n        if (config.size === 'inline' || type === HTML_TYPE || type === MAP_TYPE) {\n          customStyles = { width: config.width };\n        }\n        if (type === IMAGE_TYPE) {\n          const { src = {} } = componentData;\n          const { size } = config;\n          if (\n            src.width &&\n            (size === 'original' ||\n              (isMobile && size === 'inline' && config.width && config.width > 150))\n          ) {\n            customStyles = { width: src.width, maxWidth: '100%' };\n          }\n        }\n\n        if ((type === ACTION_BUTTON_TYPE || type === LINK_BUTTON_TYPE) && isNumber(config.width)) {\n          componentProps.style = { width: config.width };\n        }\n        if (customStyles) {\n          containerProps.style = customStyles;\n        }\n        const ContainerClassName = this.getContainerClassNames();\n\n        const ContainerComponent = (\n          <ContainerElement className={ContainerClassName} {...containerProps}>\n            {isFunction(container) ? (\n              <div className={container(theme)}>\n                <Component {...componentProps} />\n              </div>\n            ) : (\n              <Component {...componentProps} />\n            )}\n          </ContainerElement>\n        );\n\n        return (\n          <div\n            id={id}\n            className={classNames(\n              styles.atomic,\n              isPaywallSeo(context.seoMode) &&\n                getPaywallSeoClass(context.seoMode.paywall, blockIndex)\n            )}\n          >\n            {SpoilerViewerWrapper ? (\n              <SpoilerViewerWrapper\n                {...componentProps}\n                className={ContainerClassName}\n                width={containerProps?.style?.width}\n              >\n                {ContainerComponent}\n              </SpoilerViewerWrapper>\n            ) : (\n              ContainerComponent\n            )}\n          </div>\n        );\n      } else {\n        return SpoilerViewerWrapper ? (\n          <SpoilerViewerWrapper {...componentProps}>\n            <Component {...componentProps} />\n          </SpoilerViewerWrapper>\n        ) : (\n          <Component {...componentProps} />\n        );\n      }\n    }\n    return null;\n  }\n  /* eslint-enable complexity */\n}\n\nPluginViewer.propTypes = {\n  SpoilerViewerWrapper: PropTypes.func,\n  id: PropTypes.string.isRequired,\n  type: PropTypes.string.isRequired,\n  componentData: PropTypes.object.isRequired,\n  pluginComponent: PropTypes.object.isRequired,\n  entityIndex: PropTypes.number.isRequired,\n  children: PropTypes.node,\n  styles: PropTypes.object,\n  context: PropTypes.shape({\n    theme: PropTypes.object.isRequired,\n    anchorTarget: PropTypes.string.isRequired,\n    config: PropTypes.object.isRequired,\n    isMobile: PropTypes.bool.isRequired,\n    helpers: PropTypes.object.isRequired,\n    t: PropTypes.func.isRequired,\n    locale: PropTypes.string.isRequired,\n    disabled: PropTypes.bool,\n    seoMode: PropTypes.bool,\n    iframeSandboxDomain: PropTypes.string,\n    disableRightClick: PropTypes.bool,\n  }).isRequired,\n  innerRCEViewerProps: PropTypes.object,\n  blockIndex: PropTypes.number,\n  blockKey: PropTypes.string,\n};\n\nPluginViewer.defaultProps = {\n  styles: {},\n};\n\n//return a list of types with a function that wraps the viewer\nconst getPluginViewers = (\n  SpoilerViewerWrapper,\n  typeMappers,\n  context,\n  styles,\n  addAnchorsPrefix,\n  innerRCEViewerProps\n) => {\n  const res = {};\n  Object.keys(typeMappers).forEach((type, i) => {\n    res[type] = (children, entity, { key, block }) => {\n      const pluginComponent = typeMappers[type];\n      const isInline = pluginComponent.elementType === 'inline';\n      const { interactions } = entity;\n\n      const pluginViewer = (\n        <PluginViewer\n          id={`viewer-${block.key}`}\n          type={type}\n          pluginComponent={pluginComponent}\n          componentData={entity}\n          entityIndex={key}\n          context={context}\n          styles={styles}\n          blockIndex={getBlockIndex(context.contentState, block.key)}\n          typeMap={typeMappers}\n          innerRCEViewerProps={innerRCEViewerProps}\n          SpoilerViewerWrapper={SpoilerViewerWrapper}\n          withHorizontalScroll\n          blockKey={block.key}\n        >\n          {isInline ? children : null}\n        </PluginViewer>\n      );\n\n      const wrappedPluginViewer = withInteraction(pluginViewer, interactions, context);\n\n      let anchorElement;\n      if (addAnchorsPrefix && !isInline) {\n        const anchorType = type.replace('wix-draft-plugin-', '').toLowerCase();\n        const anchorKey = `${addAnchorsPrefix}${block.data.index + 1}`;\n        anchorElement = <Anchor type={anchorType} anchorKey={anchorKey} />;\n      }\n      return (\n        <ErrorBoundary key={`${i}_${key}`}>\n          {wrappedPluginViewer}\n          {anchorElement}\n        </ErrorBoundary>\n      );\n    };\n  });\n  return res;\n};\n\nexport default getPluginViewers;\n","import React from 'react';\nimport {\n  RICOS_FONT_SIZE_TYPE,\n  RICOS_TEXT_COLOR_TYPE,\n  RICOS_TEXT_HIGHLIGHT_TYPE,\n  getDynamicInlineStyleMapper,\n} from 'wix-rich-content-common';\n\nconst textColorInlineStyleMapper = getDynamicInlineStyleMapper(RICOS_TEXT_COLOR_TYPE);\n\nconst textHighlightInlineStyleMapper = getDynamicInlineStyleMapper(RICOS_TEXT_HIGHLIGHT_TYPE);\n\nconst fontSizeInlineStyleMapper = getDynamicInlineStyleMapper(RICOS_FONT_SIZE_TYPE);\n\nconst staticInlineStyleMapper = mergedStyles => ({\n  BOLD: (children, { key }) => <strong key={key}>{children}</strong>,\n  ITALIC: (children, { key }) => <em key={key}>{children}</em>,\n  UNDERLINE: (children, { key }) => (\n    <u key={key} className={mergedStyles.underline}>\n      {children}\n    </u>\n  ),\n  CODE: (children, { key }) => (\n    <span key={key} className={mergedStyles.code}>\n      {children}\n    </span>\n  ),\n  NOT_BOLD: (children, { key }) => (\n    <span style={{ fontWeight: 'normal' }} key={key}>\n      {children}\n    </span>\n  ),\n  NOT_ITALIC: (children, { key }) => (\n    <span style={{ fontStyle: 'normal' }} key={key}>\n      {children}\n    </span>\n  ),\n});\n\nexport const getViewerInlineStyleMappers = (contentState, config) => [\n  staticInlineStyleMapper,\n  fontSizeInlineStyleMapper({}, contentState),\n  textColorInlineStyleMapper(config, contentState),\n  textHighlightInlineStyleMapper(config, contentState),\n];\n","import React from 'react';\nimport type {\n  DraftContent,\n  TextDirection,\n  PluginMapping,\n  ViewerContextType,\n  Decorator,\n  PluginTypeMapper,\n  LegacyViewerPluginConfig,\n  InlineStyleMapperFunction,\n  DocumentStyle,\n} from 'wix-rich-content-common';\nimport {\n  BLOCK_TYPES,\n  depthClassName,\n  getTextDirection,\n  getDirectionFromAlignmentAndTextDirection,\n  DOC_STYLE_TYPES,\n} from 'wix-rich-content-common';\nimport redraft from 'wix-redraft';\nimport classNames from 'classnames';\nimport { endsWith, isEmpty } from 'lodash';\nimport List from '../List';\nimport { isPaywallSeo, getPaywallSeoClass } from './paywallSeo';\nimport getPluginViewers from '../getPluginViewers';\nimport { kebabToCamelObjectKeys, hasText } from './textUtils';\nimport { getViewerInlineStyleMappers } from '../inlineStyleMapper';\nimport { combineMappers } from './combineMappers';\nimport Anchor from '../components/Anchor';\nimport styles from '../../statics/rich-content-viewer.scss';\nimport { withInteraction } from '../withInteraction';\nimport { ErrorBoundary } from '../components/ErrorBoundary';\n\nconst isEmptyContentState = (raw?: DraftContent) =>\n  !raw ||\n  !raw.blocks ||\n  (raw.blocks.length === 1 && raw.blocks[0].text === '' && raw.blocks[0].type === 'unstyled');\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nconst isEmptyBlock = ([_, data]) => data && data.length === 0;\n\nconst getBlockStyleClasses = (\n  mergedStyles: Record<string, string>,\n  textDirection: TextDirection,\n  textAlignment: 'left' | 'right',\n  classes?: string,\n  isListItem?: boolean\n) => {\n  const rtl = textDirection === 'rtl';\n  const defaultTextAlignment = rtl ? 'right' : 'left';\n  const languageDirection = textDirection || 'ltr';\n  const alignmentClass = textAlignment || defaultTextAlignment;\n  const directionRTL = isListItem ? rtl : languageDirection !== 'ltr';\n  const directionClass = directionRTL ? mergedStyles.rtl : mergedStyles.ltr;\n\n  return classNames(classes, directionClass, mergedStyles[alignmentClass]);\n};\n\nconst blockDataToStyle = ({ dynamicStyles }) => kebabToCamelObjectKeys(dynamicStyles);\n\nconst getInline = (contentState, config, inlineStyleMappers, mergedStyles) =>\n  combineMappers(\n    [...inlineStyleMappers, ...getViewerInlineStyleMappers(contentState, config)],\n    mergedStyles\n  );\n\nconst getBlocks = (mergedStyles, textDirection, context, addAnchorsPrefix, documentStyle) => {\n  const getList = ordered => (items, blockProps) => {\n    const fixedItems = items.map(item => (item.length ? item : [' ']));\n\n    const props = {\n      key: blockProps.keys[0],\n      items: fixedItems,\n      ordered,\n      mergedStyles,\n      textDirection,\n      blockProps,\n      getBlockStyleClasses,\n      blockDataToStyle: ({ dynamicStyles }) => {\n        return {\n          ...kebabToCamelObjectKeys(documentStyle?.[DOC_STYLE_TYPES.P]),\n          ...blockDataToStyle({ dynamicStyles }),\n        };\n      },\n      context,\n    };\n    return <List {...props} />;\n  };\n\n  const blockFactory = (type, style) => {\n    return (children, blockProps) =>\n      children.map((child, i) => {\n        const alignment = blockProps.data[i]?.textAlignment || context.textAlignment;\n        const depth = blockProps.data[i].depth;\n        const blockDirection = getDirectionFromAlignmentAndTextDirection(\n          alignment,\n          textDirection || blockProps.data[i]?.textDirection\n        );\n\n        const hasJustifyText = alignment === 'justify' && hasText(child);\n        const directionBlockClassName = `public-DraftStyleDefault-text-${blockDirection}`;\n        const directionTextClassName = `public-DraftStyleDefault-${\n          textDirection || blockProps.data[i]?.textDirection || 'ltr'\n        }`;\n\n        const ChildTag = typeof type === 'string' ? type : type(child);\n        const blockIndex = blockProps.data[i].index;\n        const { interactions } = blockProps.data[i];\n\n        const _child = isEmptyBlock(child) ? <br role=\"presentation\" /> : child;\n\n        const nodeStyle = documentStyle?.[style === 'text' ? DOC_STYLE_TYPES.P : style];\n        const parsedNodeStyle = kebabToCamelObjectKeys(nodeStyle);\n        let content = _child;\n        if (style === 'text' || Object.values(DOC_STYLE_TYPES).includes(style)) {\n          content = isEmpty(nodeStyle) ? (\n            <span>{content}</span>\n          ) : (\n            <span className={nodeStyle.color && styles.overrideLinkColor} style={parsedNodeStyle}>\n              {content}\n            </span>\n          );\n        }\n\n        const inner = (\n          <React.Fragment key={blockProps.keys[i]}>\n            <ChildTag\n              id={`viewer-${blockProps.keys[i]}`}\n              className={classNames(\n                getBlockStyleClasses(\n                  mergedStyles,\n                  textDirection || blockProps.data[i]?.textDirection,\n                  alignment,\n                  mergedStyles[style]\n                ),\n                depthClassName(depth),\n                'fixed-tab-size',\n                directionBlockClassName,\n                isPaywallSeo(context.seoMode) &&\n                  getPaywallSeoClass(context.seoMode.paywall, blockIndex)\n              )}\n              style={blockDataToStyle(blockProps.data[i])}\n            >\n              <span\n                className={classNames(\n                  styles.child,\n                  directionTextClassName,\n                  hasJustifyText && styles.hasJustifyText\n                )}\n              >\n                {content}\n              </span>\n            </ChildTag>\n          </React.Fragment>\n        );\n\n        const wrappedBlock = withInteraction(inner, interactions, context);\n        const wrapperKey = `${blockProps.keys[i]}_wrap`;\n        let resultBlock = <React.Fragment key={wrapperKey}>{wrappedBlock}</React.Fragment>;\n\n        const getAnchorType = () => {\n          if (isEmptyBlock(child)) {\n            return 'empty-line';\n          }\n          return typeof type === 'string' ? type : 'paragraph';\n        };\n\n        if (addAnchorsPrefix) {\n          const anchorKey = `${addAnchorsPrefix}${blockIndex + 1}`;\n          resultBlock = (\n            <React.Fragment key={wrapperKey}>\n              {wrappedBlock}\n              <Anchor type={getAnchorType()} key={anchorKey} anchorKey={anchorKey} />\n            </React.Fragment>\n          );\n        }\n\n        return <ErrorBoundary key={`error-${wrapperKey}`}>{resultBlock}</ErrorBoundary>;\n      });\n  };\n\n  return {\n    unstyled: blockFactory(child => (isEmptyBlock(child) ? 'div' : 'p'), 'text'),\n    blockquote: blockFactory('blockquote', 'quote'),\n    'header-one': blockFactory('h1', 'headerOne'),\n    'header-two': blockFactory('h2', 'headerTwo'),\n    'header-three': blockFactory('h3', 'headerThree'),\n    'header-four': blockFactory('h4', 'headerFour'),\n    'header-five': blockFactory('h5', 'headerFive'),\n    'header-six': blockFactory('h6', 'headerSix'),\n    'code-block': blockFactory('pre', 'codeBlock'),\n    'unordered-list-item': getList(false),\n    'ordered-list-item': getList(true),\n  };\n};\n\nconst getEntities = (\n  typeMappers,\n  context,\n  styles,\n  addAnchorsPrefix,\n  innerRCEViewerProps,\n  SpoilerViewerWrapper\n) => {\n  const emojiViewerFn = (emojiUnicode, data, { key }) => {\n    return (\n      <span key={key} style={{ fontFamily: 'cursive' }}>\n        {emojiUnicode}\n      </span>\n    );\n  };\n\n  return {\n    EMOJI_TYPE: emojiViewerFn,\n    ...getPluginViewers(\n      SpoilerViewerWrapper,\n      typeMappers,\n      context,\n      styles,\n      addAnchorsPrefix,\n      innerRCEViewerProps\n    ),\n  };\n};\n\nconst normalizeContentState = (contentState: DraftContent): DraftContent => ({\n  ...contentState,\n  blocks: contentState.blocks.map((block, index) => {\n    if (block.type === 'atomic') {\n      return {\n        ...block,\n        data: { index },\n      };\n    }\n\n    const textDirection = getTextDirection(block.text);\n    const data = {\n      ...block.data,\n      depth: block.depth,\n      index,\n      ...(textDirection === 'rtl' && { textDirection }),\n    };\n\n    let text = block.text;\n    if (endsWith(text, '\\n')) {\n      text += '\\n';\n    }\n\n    return {\n      ...block,\n      depth: 0,\n      data,\n      text,\n    };\n  }),\n});\n\nconst redraftOptions = {\n  cleanup: {\n    after: BLOCK_TYPES.filter(t => t.indexOf('header') === -1),\n    split: true,\n    except: [\n      'unordered-list-item',\n      'ordered-list-item',\n      'unstyled',\n      'header-one',\n      'header-two',\n      'header-three',\n      'header-four',\n      'header-five',\n      'header-six',\n    ],\n  },\n  convertFromRaw: contentState => contentState,\n};\n\nconst convertToReact = (\n  mergedStyles: Record<string, string>,\n  textDirection: TextDirection | undefined,\n  typeMappers: PluginMapping,\n  context: ViewerContextType,\n  decorators: Decorator[],\n  inlineStyleMappers: InlineStyleMapperFunction[],\n  config: LegacyViewerPluginConfig,\n  initSpoilers: (content?: DraftContent) => DraftContent | undefined,\n  SpoilerViewerWrapper: unknown,\n  options: { addAnchors?: boolean | string; [key: string]: unknown } = {},\n  innerRCEViewerProps?: {\n    typeMappers: PluginTypeMapper[];\n    inlineStyleMappers: InlineStyleMapperFunction[];\n    decorators: Decorator[];\n    config: LegacyViewerPluginConfig;\n    documentStyle?: DocumentStyle;\n  },\n  externalDocumentStyle?: DocumentStyle\n) => {\n  if (isEmptyContentState(context.contentState)) {\n    return null;\n  }\n  const { addAnchors, ...restOptions } = options;\n  const normalizedContentState = context.contentState\n    ? normalizeContentState(context.contentState)\n    : context.contentState;\n  const newContentState = initSpoilers\n    ? initSpoilers(normalizedContentState)\n    : normalizedContentState;\n\n  const addAnchorsPrefix = addAnchors && (addAnchors === true ? 'rcv-block' : addAnchors);\n  const documentStyle = externalDocumentStyle || newContentState?.documentStyle;\n\n  let result = redraft(\n    newContentState,\n    {\n      inline: getInline(newContentState, config, inlineStyleMappers, mergedStyles),\n      blocks: getBlocks(mergedStyles, textDirection, context, addAnchorsPrefix, documentStyle),\n      entities: getEntities(\n        typeMappers,\n        context,\n        mergedStyles,\n        addAnchorsPrefix,\n        { ...innerRCEViewerProps, documentStyle },\n        SpoilerViewerWrapper\n      ),\n      decorators,\n    },\n    { ...redraftOptions, ...restOptions }\n  );\n  if (addAnchors) {\n    const firstAnchorKey = `${addAnchorsPrefix}-first`;\n    const lastAnchorKey = `${addAnchorsPrefix}-last`;\n    result = (\n      <>\n        <Anchor type={'first'} anchorKey={firstAnchorKey} />\n        {result}\n        <Anchor type={'last'} anchorKey={lastAnchorKey} />\n      </>\n    );\n  }\n  return result;\n};\n\n// renderToStaticMarkup param should be imported 'react-dom/server' (in order reduce viewer bundle size and probably not used anyhow)\n// TODO: need to check if it's been used\nconst convertToHTML = (reactOutput, renderToStaticMarkup) => {\n  if (!reactOutput) {\n    return null;\n  }\n  return reactOutput.reduce((html, blocks) => {\n    const blocksArr = blocks instanceof Array ? blocks : [blocks];\n    blocksArr.forEach(c => (html += renderToStaticMarkup(c))); //eslint-disable-line no-param-reassign\n    return html;\n  }, '');\n};\n\nexport { convertToReact, convertToHTML };\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/aria-props */\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport type { TextAlignment } from 'ricos-types';\nimport type {\n  DraftContent,\n  TranslationFunction,\n  SEOSettings,\n  Helpers,\n  PluginTypeMapper,\n  Decorator,\n  RichContentTheme,\n  AnchorTarget,\n  RelValue,\n  CustomAnchorScroll,\n  LegacyViewerPluginConfig,\n  OnErrorFunction,\n  NormalizeConfig,\n  PluginMapping,\n  TextDirection,\n  ViewerContextType,\n  InlineStyleMapperFunction,\n  AvailableExperiments,\n  DocumentStyle,\n} from 'wix-rich-content-common';\nimport {\n  mergeStyles,\n  AccessibilityListener,\n  normalizeInitialState,\n  getLangDir,\n  SPOILER_TYPE,\n  GlobalContext,\n  Version,\n  IMAGE_TYPE,\n  GALLERY_TYPE,\n  VIDEO_TYPE,\n  createJustificationFixDecorator,\n} from 'wix-rich-content-common';\nimport draftDefaultStyles from 'wix-rich-content-common/dist/statics/styles/draftDefault.rtlignore.scss';\nimport { convertToReact } from './utils/convertContentState';\nimport viewerStyles from '../statics/rich-content-viewer.scss';\nimport viewerAlignmentStyles from '../statics/rich-content-viewer-alignment.rtlignore.scss';\nimport rtlStyle from '../statics/rich-content-viewer-rtl.rtlignore.scss';\nimport { deprecateHelpers } from 'wix-rich-content-common/libs/deprecateHelpers';\nimport { combineMappers } from './utils/combineMappers';\n\nexport interface RichContentViewerProps {\n  /** This is a legacy API, changes should be made also in the new Ricos Viewer API **/\n  onLoad?: (any) => void;\n  initialState?: DraftContent;\n  isMobile?: boolean;\n  renderStaticHtml?: boolean;\n  helpers?: Helpers;\n  platform?: string;\n  locale: string;\n  typeMappers: PluginTypeMapper[];\n  inlineStyleMappers: InlineStyleMapperFunction[];\n  decorators: Decorator[];\n  t: TranslationFunction;\n  theme: RichContentTheme;\n  anchorTarget?: AnchorTarget;\n  relValue?: RelValue;\n  customAnchorScroll?: CustomAnchorScroll;\n  config: LegacyViewerPluginConfig;\n  textDirection?: TextDirection;\n  direction?: TextDirection;\n  textAlignment?: TextAlignment;\n  disabled?: boolean;\n  seoMode?: SEOSettings;\n  iframeSandboxDomain?: string;\n  onError: OnErrorFunction;\n  addAnchors?: boolean | string;\n  normalize: NormalizeConfig;\n  localeResource?: Record<string, string>;\n  experiments?: AvailableExperiments;\n  isInnerRcv?: boolean;\n  renderedInTable?: boolean;\n  onHover?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  setRef?: React.RefObject<any>;\n  onMouseOver?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n  documentStyle?: DocumentStyle;\n  /** This is a legacy API, changes should be made also in the new Ricos Viewer API **/\n}\n\nclass RichContentViewer extends Component<\n  RichContentViewerProps,\n  {\n    raw?: DraftContent;\n    error?: string;\n    context: {\n      experiments: AvailableExperiments;\n      isMobile: boolean;\n      t?: TranslationFunction;\n    };\n  }\n> {\n  styles: Record<string, string>;\n\n  typeMappers: PluginMapping;\n\n  static defaultProps: Partial<RichContentViewerProps> = {\n    theme: {},\n    decorators: [],\n    typeMappers: [],\n    inlineStyleMappers: [],\n    locale: 'en',\n    normalize: {},\n    config: {},\n  };\n\n  constructor(props) {\n    super(props);\n    const { experiments = {}, isMobile = false, t } = props;\n    const styles = { ...viewerStyles, ...viewerAlignmentStyles, ...rtlStyle };\n    this.styles = experiments?.ricosViewerNext?.enabled\n      ? styles\n      : mergeStyles({ styles, theme: props.theme });\n    this.typeMappers = combineMappers(props.typeMappers);\n    this.state = {\n      context: { experiments, isMobile, t },\n    };\n  }\n\n  static getInitialState = (props: RichContentViewerProps) => {\n    const {\n      initialState,\n      anchorTarget,\n      relValue,\n      normalize: { disableInlineImages = false, removeInvalidInlinePlugins = false },\n      config,\n    } = props;\n    const { uiSettings } = config;\n    const disableImagesExpand = config[IMAGE_TYPE]?.disableExpand;\n    const disableGalleryExpand = config[GALLERY_TYPE]?.disableExpand;\n    const disableDownload =\n      config[VIDEO_TYPE]?.disableDownload ||\n      uiSettings?.disableRightClick ||\n      uiSettings?.disableDownload;\n\n    return initialState\n      ? normalizeInitialState(initialState, {\n          anchorTarget,\n          relValue,\n          disableInlineImages,\n          removeInvalidInlinePlugins,\n          disableDownload,\n          disableImagesExpand,\n          disableGalleryExpand,\n        })\n      : undefined;\n  };\n\n  getContextualData = (\n    {\n      t,\n      theme,\n      isMobile = false,\n      anchorTarget,\n      relValue,\n      customAnchorScroll,\n      config,\n      helpers = {},\n      locale,\n      disabled,\n      seoMode,\n      iframeSandboxDomain,\n      textAlignment,\n      experiments,\n    }: RichContentViewerProps,\n    contentState?: DraftContent\n  ): ViewerContextType => {\n    deprecateHelpers(helpers, config);\n    return {\n      t,\n      theme,\n      isMobile,\n      anchorTarget,\n      relValue,\n      customAnchorScroll,\n      config,\n      helpers,\n      locale,\n      disabled,\n      seoMode,\n      contentState,\n      iframeSandboxDomain,\n      disableRightClick: config?.uiSettings?.disableRightClick,\n      textAlignment,\n      experiments,\n    };\n  };\n\n  static getDerivedStateFromProps(props: RichContentViewerProps) {\n    return {\n      raw: RichContentViewer.getInitialState(props),\n    };\n  }\n\n  componentDidMount() {\n    this.reportDebuggingInfo();\n  }\n\n  reportDebuggingInfo() {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    if (/ricos-debug/i.test(window.location.search) && !window.__RICOS_INFO__) {\n      import(\n        /* webpackChunkName: \"debugging-info\" */\n        'wix-rich-content-common/libs/debugging-info'\n      ).then(({ reportDebuggingInfo }) => {\n        reportDebuggingInfo({\n          version: Version.currentVersion,\n          reporter: 'Rich Content Viewer',\n          plugins: Object.keys(this.typeMappers),\n          getContent: () => this.props.initialState,\n          getConfig: () => this.props.config,\n        });\n      });\n    }\n  }\n\n  render() {\n    const {\n      config = {},\n      onHover,\n      isMobile,\n      isInnerRcv,\n      textDirection,\n      direction,\n      inlineStyleMappers,\n      locale,\n      addAnchors,\n      renderedInTable,\n      platform,\n      t,\n      typeMappers,\n      setRef = () => {},\n      onMouseOver = () => {},\n      experiments = {},\n    } = this.props;\n    const decorators = [...this.props.decorators, createJustificationFixDecorator()];\n    const { styles } = this;\n    const wrapperClassName = classNames(styles.wrapper, {\n      [styles.desktop]: !platform || platform === 'desktop',\n    });\n    const tableClassNames = classNames(\n      styles.renderedInTable,\n      viewerStyles.renderedInTable,\n      draftDefaultStyles.renderedInTable\n    );\n\n    const editorClassName = classNames(styles.editor, renderedInTable && tableClassNames, {\n      [styles.rtl]: textDirection === 'rtl',\n    });\n\n    const initSpoilers = config[SPOILER_TYPE]?.initSpoilersContentState;\n    const SpoilerViewerWrapper = config[SPOILER_TYPE]?.SpoilerViewerWrapper;\n    const contextualData = this.getContextualData(this.props, this.state.raw);\n    const innerRCEViewerProps = {\n      typeMappers,\n      inlineStyleMappers,\n      decorators,\n      config,\n      t,\n      renderedInTable,\n      isMobile,\n    };\n\n    const output = convertToReact(\n      styles,\n      textDirection,\n      this.typeMappers,\n      contextualData,\n      decorators,\n      inlineStyleMappers,\n      config,\n      initSpoilers,\n      SpoilerViewerWrapper,\n      { addAnchors },\n      innerRCEViewerProps,\n      this.props.documentStyle\n    );\n\n    const dataId = isInnerRcv ? {} : { 'data-id': 'rich-content-viewer' };\n    return (\n      <GlobalContext.Provider value={this.state.context}>\n        {/* eslint-disable-next-line jsx-a11y/mouse-events-have-key-events*/}\n        <div\n          className={wrapperClassName}\n          dir={direction || getLangDir(locale)}\n          onMouseEnter={e => onHover && onHover(e)}\n          ref={setRef}\n          onMouseOver={onMouseOver}\n          {...dataId}\n        >\n          <div className={editorClassName} data-query={'media'}>\n            {output}\n          </div>\n          <AccessibilityListener isMobile={isMobile} />\n        </div>\n      </GlobalContext.Provider>\n    );\n  }\n}\n\nexport default RichContentViewer;\n","import React, { Component } from 'react';\nimport englishResources from 'wix-rich-content-common/dist/statics/viewer/locale/messages_en.json';\n// import englishResources from 'wix-rich-content-common/dist/statics/locale/messages_en.json';\n\nimport { withI18n } from 'wix-rich-content-common';\nimport type { RichContentViewerProps } from './RichContentViewer';\nimport RichContentViewer from './RichContentViewer';\n\nconst WrappedViewer = withI18n<RichContentViewer, Partial<RichContentViewerProps>>(\n  RichContentViewer,\n  englishResources,\n  { forceRemount: false }\n);\n\nexport default class I18nRichContentViewer extends Component<Partial<RichContentViewerProps>> {\n  static displayName = 'RichContentViewer';\n\n  render() {\n    return <WrappedViewer {...this.props} />;\n  }\n}\n"]}