aboutsummaryrefslogtreecommitdiff
path: root/srcs/wordpress/wp-includes/js/dist/rich-text.js
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/wordpress/wp-includes/js/dist/rich-text.js')
-rw-r--r--srcs/wordpress/wp-includes/js/dist/rich-text.js5293
1 files changed, 5293 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-includes/js/dist/rich-text.js b/srcs/wordpress/wp-includes/js/dist/rich-text.js
new file mode 100644
index 0000000..dac7c8f
--- /dev/null
+++ b/srcs/wordpress/wp-includes/js/dist/rich-text.js
@@ -0,0 +1,5293 @@
+this["wp"] = this["wp"] || {}; this["wp"]["richText"] =
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 346);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["element"]; }());
+
+/***/ }),
+
+/***/ 10:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
+function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+}
+
+/***/ }),
+
+/***/ 11:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
+function _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);
+ }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+}
+
+/***/ }),
+
+/***/ 12:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
+function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+}
+
+/***/ }),
+
+/***/ 13:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
+/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31);
+/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
+
+
+function _possibleConstructorReturn(self, call) {
+ if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
+ return call;
+ }
+
+ return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
+}
+
+/***/ }),
+
+/***/ 14:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
+function _getPrototypeOf(o) {
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
+ return o.__proto__ || Object.getPrototypeOf(o);
+ };
+ return _getPrototypeOf(o);
+}
+
+/***/ }),
+
+/***/ 15:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
+function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; });
+
+function _inherits(subClass, superClass) {
+ if (typeof superClass !== "function" && superClass !== null) {
+ throw new TypeError("Super expression must either be null or a function");
+ }
+
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
+ constructor: {
+ value: subClass,
+ writable: true,
+ configurable: true
+ }
+ });
+ if (superClass) _setPrototypeOf(subClass, superClass);
+}
+
+/***/ }),
+
+/***/ 16:
+/***/ (function(module, exports, __webpack_require__) {
+
+var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
+ Copyright (c) 2017 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+/* global define */
+
+(function () {
+ 'use strict';
+
+ var hasOwn = {}.hasOwnProperty;
+
+ function classNames () {
+ var classes = [];
+
+ for (var i = 0; i < arguments.length; i++) {
+ var arg = arguments[i];
+ if (!arg) continue;
+
+ var argType = typeof arg;
+
+ if (argType === 'string' || argType === 'number') {
+ classes.push(arg);
+ } else if (Array.isArray(arg) && arg.length) {
+ var inner = classNames.apply(null, arg);
+ if (inner) {
+ classes.push(inner);
+ }
+ } else if (argType === 'object') {
+ for (var key in arg) {
+ if (hasOwn.call(arg, key) && arg[key]) {
+ classes.push(key);
+ }
+ }
+ }
+ }
+
+ return classes.join(' ');
+ }
+
+ if ( true && module.exports) {
+ classNames.default = classNames;
+ module.exports = classNames;
+ } else if (true) {
+ // register as 'classnames', consistent with npm package name
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
+ return classNames;
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+}());
+
+
+/***/ }),
+
+/***/ 17:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) {
+ for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
+ arr2[i] = arr[i];
+ }
+
+ return arr2;
+ }
+}
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+var iterableToArray = __webpack_require__(30);
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance");
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; });
+
+
+
+function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread();
+}
+
+/***/ }),
+
+/***/ 18:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
+function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+}
+
+/***/ }),
+
+/***/ 19:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["keycodes"]; }());
+
+/***/ }),
+
+/***/ 2:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["lodash"]; }());
+
+/***/ }),
+
+/***/ 21:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
+function _objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+
+ return target;
+}
+// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
+
+function _objectWithoutProperties(source, excluded) {
+ if (source == null) return {};
+ var target = _objectWithoutPropertiesLoose(source, excluded);
+ var key, i;
+
+ if (Object.getOwnPropertySymbols) {
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
+ key = sourceSymbolKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
+ target[key] = source[key];
+ }
+ }
+
+ return target;
+}
+
+/***/ }),
+
+/***/ 27:
+/***/ (function(module, exports) {
+
+(function() { module.exports = this["wp"]["hooks"]; }());
+
+/***/ }),
+
+/***/ 30:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
+function _iterableToArray(iter) {
+ if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
+}
+
+/***/ }),
+
+/***/ 31:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
+function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
+
+function _typeof(obj) {
+ if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
+ _typeof = function _typeof(obj) {
+ return _typeof2(obj);
+ };
+ } else {
+ _typeof = function _typeof(obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
+ };
+ }
+
+ return _typeof(obj);
+}
+
+/***/ }),
+
+/***/ 346:
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+var selectors_namespaceObject = {};
+__webpack_require__.r(selectors_namespaceObject);
+__webpack_require__.d(selectors_namespaceObject, "getFormatTypes", function() { return getFormatTypes; });
+__webpack_require__.d(selectors_namespaceObject, "getFormatType", function() { return getFormatType; });
+__webpack_require__.d(selectors_namespaceObject, "getFormatTypeForBareElement", function() { return getFormatTypeForBareElement; });
+__webpack_require__.d(selectors_namespaceObject, "getFormatTypeForClassName", function() { return getFormatTypeForClassName; });
+var actions_namespaceObject = {};
+__webpack_require__.r(actions_namespaceObject);
+__webpack_require__.d(actions_namespaceObject, "addFormatTypes", function() { return addFormatTypes; });
+__webpack_require__.d(actions_namespaceObject, "removeFormatTypes", function() { return removeFormatTypes; });
+
+// EXTERNAL MODULE: external {"this":["wp","data"]}
+var external_this_wp_data_ = __webpack_require__(4);
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js
+var objectSpread = __webpack_require__(7);
+
+// EXTERNAL MODULE: external "lodash"
+var external_lodash_ = __webpack_require__(2);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/reducer.js
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Reducer managing the format types
+ *
+ * @param {Object} state Current state.
+ * @param {Object} action Dispatched action.
+ *
+ * @return {Object} Updated state.
+ */
+
+function reducer_formatTypes() {
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var action = arguments.length > 1 ? arguments[1] : undefined;
+
+ switch (action.type) {
+ case 'ADD_FORMAT_TYPES':
+ return Object(objectSpread["a" /* default */])({}, state, Object(external_lodash_["keyBy"])(action.formatTypes, 'name'));
+
+ case 'REMOVE_FORMAT_TYPES':
+ return Object(external_lodash_["omit"])(state, action.names);
+ }
+
+ return state;
+}
+/* harmony default export */ var reducer = (Object(external_this_wp_data_["combineReducers"])({
+ formatTypes: reducer_formatTypes
+}));
+
+// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
+var rememo = __webpack_require__(36);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/selectors.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Returns all the available format types.
+ *
+ * @param {Object} state Data state.
+ *
+ * @return {Array} Format types.
+ */
+
+var getFormatTypes = Object(rememo["a" /* default */])(function (state) {
+ return Object.values(state.formatTypes);
+}, function (state) {
+ return [state.formatTypes];
+});
+/**
+ * Returns a format type by name.
+ *
+ * @param {Object} state Data state.
+ * @param {string} name Format type name.
+ *
+ * @return {Object?} Format type.
+ */
+
+function getFormatType(state, name) {
+ return state.formatTypes[name];
+}
+/**
+ * Gets the format type, if any, that can handle a bare element (without a
+ * data-format-type attribute), given the tag name of this element.
+ *
+ * @param {Object} state Data state.
+ * @param {string} bareElementTagName The tag name of the element to find a
+ * format type for.
+ * @return {?Object} Format type.
+ */
+
+function getFormatTypeForBareElement(state, bareElementTagName) {
+ return Object(external_lodash_["find"])(getFormatTypes(state), function (_ref) {
+ var className = _ref.className,
+ tagName = _ref.tagName;
+ return className === null && bareElementTagName === tagName;
+ });
+}
+/**
+ * Gets the format type, if any, that can handle an element, given its classes.
+ *
+ * @param {Object} state Data state.
+ * @param {string} elementClassName The classes of the element to find a format
+ * type for.
+ * @return {?Object} Format type.
+ */
+
+function getFormatTypeForClassName(state, elementClassName) {
+ return Object(external_lodash_["find"])(getFormatTypes(state), function (_ref2) {
+ var className = _ref2.className;
+
+ if (className === null) {
+ return false;
+ }
+
+ return " ".concat(elementClassName, " ").indexOf(" ".concat(className, " ")) >= 0;
+ });
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/actions.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Returns an action object used in signalling that format types have been
+ * added.
+ *
+ * @param {Array|Object} formatTypes Format types received.
+ *
+ * @return {Object} Action object.
+ */
+
+function addFormatTypes(formatTypes) {
+ return {
+ type: 'ADD_FORMAT_TYPES',
+ formatTypes: Object(external_lodash_["castArray"])(formatTypes)
+ };
+}
+/**
+ * Returns an action object used to remove a registered format type.
+ *
+ * @param {string|Array} names Format name.
+ *
+ * @return {Object} Action object.
+ */
+
+function removeFormatTypes(names) {
+ return {
+ type: 'REMOVE_FORMAT_TYPES',
+ names: Object(external_lodash_["castArray"])(names)
+ };
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/index.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+Object(external_this_wp_data_["registerStore"])('core/rich-text', {
+ reducer: reducer,
+ selectors: selectors_namespaceObject,
+ actions: actions_namespaceObject
+});
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
+var toConsumableArray = __webpack_require__(17);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-format-equal.js
+/**
+ * Optimised equality check for format objects.
+ *
+ * @param {?Object} format1 Format to compare.
+ * @param {?Object} format2 Format to compare.
+ *
+ * @return {boolean} True if formats are equal, false if not.
+ */
+function isFormatEqual(format1, format2) {
+ // Both not defined.
+ if (format1 === format2) {
+ return true;
+ } // Either not defined.
+
+
+ if (!format1 || !format2) {
+ return false;
+ }
+
+ if (format1.type !== format2.type) {
+ return false;
+ }
+
+ var attributes1 = format1.attributes;
+ var attributes2 = format2.attributes; // Both not defined.
+
+ if (attributes1 === attributes2) {
+ return true;
+ } // Either not defined.
+
+
+ if (!attributes1 || !attributes2) {
+ return false;
+ }
+
+ var keys1 = Object.keys(attributes1);
+ var keys2 = Object.keys(attributes2);
+
+ if (keys1.length !== keys2.length) {
+ return false;
+ }
+
+ var length = keys1.length; // Optimise for speed.
+
+ for (var i = 0; i < length; i++) {
+ var name = keys1[i];
+
+ if (attributes1[name] !== attributes2[name]) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/normalise-formats.js
+
+
+/**
+ * Internal dependencies
+ */
+
+/**
+ * Normalises formats: ensures subsequent adjacent equal formats have the same
+ * reference.
+ *
+ * @param {Object} value Value to normalise formats of.
+ *
+ * @return {Object} New value with normalised formats.
+ */
+
+function normaliseFormats(value) {
+ var newFormats = value.formats.slice();
+ newFormats.forEach(function (formatsAtIndex, index) {
+ var formatsAtPreviousIndex = newFormats[index - 1];
+
+ if (formatsAtPreviousIndex) {
+ var newFormatsAtIndex = formatsAtIndex.slice();
+ newFormatsAtIndex.forEach(function (format, formatIndex) {
+ var previousFormat = formatsAtPreviousIndex[formatIndex];
+
+ if (isFormatEqual(format, previousFormat)) {
+ newFormatsAtIndex[formatIndex] = previousFormat;
+ }
+ });
+ newFormats[index] = newFormatsAtIndex;
+ }
+ });
+ return Object(objectSpread["a" /* default */])({}, value, {
+ formats: newFormats
+ });
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/apply-format.js
+
+
+
+/**
+ * External dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+function replace(array, index, value) {
+ array = array.slice();
+ array[index] = value;
+ return array;
+}
+/**
+ * Apply a format object to a Rich Text value from the given `startIndex` to the
+ * given `endIndex`. Indices are retrieved from the selection if none are
+ * provided.
+ *
+ * @param {Object} value Value to modify.
+ * @param {Object} format Format to apply.
+ * @param {number} [startIndex] Start index.
+ * @param {number} [endIndex] End index.
+ *
+ * @return {Object} A new value with the format applied.
+ */
+
+
+function applyFormat(value, format) {
+ var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.start;
+ var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : value.end;
+ var formats = value.formats,
+ activeFormats = value.activeFormats;
+ var newFormats = formats.slice(); // The selection is collapsed.
+
+ if (startIndex === endIndex) {
+ var startFormat = Object(external_lodash_["find"])(newFormats[startIndex], {
+ type: format.type
+ }); // If the caret is at a format of the same type, expand start and end to
+ // the edges of the format. This is useful to apply new attributes.
+
+ if (startFormat) {
+ var index = newFormats[startIndex].indexOf(startFormat);
+
+ while (newFormats[startIndex] && newFormats[startIndex][index] === startFormat) {
+ newFormats[startIndex] = replace(newFormats[startIndex], index, format);
+ startIndex--;
+ }
+
+ endIndex++;
+
+ while (newFormats[endIndex] && newFormats[endIndex][index] === startFormat) {
+ newFormats[endIndex] = replace(newFormats[endIndex], index, format);
+ endIndex++;
+ }
+ }
+ } else {
+ // Determine the highest position the new format can be inserted at.
+ var position = +Infinity;
+
+ for (var _index = startIndex; _index < endIndex; _index++) {
+ if (newFormats[_index]) {
+ newFormats[_index] = newFormats[_index].filter(function (_ref) {
+ var type = _ref.type;
+ return type !== format.type;
+ });
+ var length = newFormats[_index].length;
+
+ if (length < position) {
+ position = length;
+ }
+ } else {
+ newFormats[_index] = [];
+ position = 0;
+ }
+ }
+
+ for (var _index2 = startIndex; _index2 < endIndex; _index2++) {
+ newFormats[_index2].splice(position, 0, format);
+ }
+ }
+
+ return normaliseFormats(Object(objectSpread["a" /* default */])({}, value, {
+ formats: newFormats,
+ // Always revise active formats. This serves as a placeholder for new
+ // inputs with the format so new input appears with the format applied,
+ // and ensures a format of the same type uses the latest values.
+ activeFormats: [].concat(Object(toConsumableArray["a" /* default */])(Object(external_lodash_["reject"])(activeFormats, {
+ type: format.type
+ })), [format])
+ }));
+}
+
+// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
+var esm_typeof = __webpack_require__(31);
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create-element.js
+/**
+ * Parse the given HTML into a body element.
+ *
+ * Note: The current implementation will return a shared reference, reset on
+ * each call to `createElement`. Therefore, you should not hold a reference to
+ * the value to operate upon asynchronously, as it may have unexpected results.
+ *
+ * @param {HTMLDocument} document The HTML document to use to parse.
+ * @param {string} html The HTML to parse.
+ *
+ * @return {HTMLBodyElement} Body element with parsed HTML.
+ */
+function createElement(_ref, html) {
+ var implementation = _ref.implementation;
+
+ // Because `createHTMLDocument` is an expensive operation, and with this
+ // function being internal to `rich-text` (full control in avoiding a risk
+ // of asynchronous operations on the shared reference), a single document
+ // is reused and reset for each call to the function.
+ if (!createElement.body) {
+ createElement.body = implementation.createHTMLDocument('').body;
+ }
+
+ createElement.body.innerHTML = html;
+ return createElement.body;
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/special-characters.js
+/**
+ * Line separator character, used for multiline text.
+ */
+var LINE_SEPARATOR = "\u2028";
+/**
+ * Object replacement character, used as a placeholder for objects.
+ */
+
+var OBJECT_REPLACEMENT_CHARACTER = "\uFFFC";
+/**
+ * Zero width non-breaking space, used as padding in the editable DOM tree when
+ * it is empty otherwise.
+ */
+
+var ZWNBSP = "\uFEFF";
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create.js
+
+
+
+
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
+
+
+
+
+/**
+ * Browser dependencies
+ */
+
+var _window$Node = window.Node,
+ TEXT_NODE = _window$Node.TEXT_NODE,
+ ELEMENT_NODE = _window$Node.ELEMENT_NODE;
+
+function createEmptyValue() {
+ return {
+ formats: [],
+ replacements: [],
+ text: ''
+ };
+}
+
+function simpleFindKey(object, value) {
+ for (var key in object) {
+ if (object[key] === value) {
+ return key;
+ }
+ }
+}
+
+function toFormat(_ref) {
+ var type = _ref.type,
+ attributes = _ref.attributes;
+ var formatType;
+
+ if (attributes && attributes.class) {
+ formatType = Object(external_this_wp_data_["select"])('core/rich-text').getFormatTypeForClassName(attributes.class);
+
+ if (formatType) {
+ // Preserve any additional classes.
+ attributes.class = " ".concat(attributes.class, " ").replace(" ".concat(formatType.className, " "), ' ').trim();
+
+ if (!attributes.class) {
+ delete attributes.class;
+ }
+ }
+ }
+
+ if (!formatType) {
+ formatType = Object(external_this_wp_data_["select"])('core/rich-text').getFormatTypeForBareElement(type);
+ }
+
+ if (!formatType) {
+ return attributes ? {
+ type: type,
+ attributes: attributes
+ } : {
+ type: type
+ };
+ }
+
+ if (formatType.__experimentalCreatePrepareEditableTree && !formatType.__experimentalCreateOnChangeEditableValue) {
+ return null;
+ }
+
+ if (!attributes) {
+ return {
+ type: formatType.name
+ };
+ }
+
+ var registeredAttributes = {};
+ var unregisteredAttributes = {};
+
+ for (var name in attributes) {
+ var key = simpleFindKey(formatType.attributes, name);
+
+ if (key) {
+ registeredAttributes[key] = attributes[name];
+ } else {
+ unregisteredAttributes[name] = attributes[name];
+ }
+ }
+
+ return {
+ type: formatType.name,
+ attributes: registeredAttributes,
+ unregisteredAttributes: unregisteredAttributes
+ };
+}
+/**
+ * Create a RichText value from an `Element` tree (DOM), an HTML string or a
+ * plain text string, with optionally a `Range` object to set the selection. If
+ * called without any input, an empty value will be created. If
+ * `multilineTag` is provided, any content of direct children whose type matches
+ * `multilineTag` will be separated by two newlines. The optional functions can
+ * be used to filter out content.
+ *
+ * A value will have the following shape, which you are strongly encouraged not
+ * to modify without the use of helper functions:
+ *
+ * ```js
+ * {
+ * text: string,
+ * formats: Array,
+ * replacements: Array,
+ * ?start: number,
+ * ?end: number,
+ * }
+ * ```
+ *
+ * As you can see, text and formatting are separated. `text` holds the text,
+ * including any replacement characters for objects and lines. `formats`,
+ * `objects` and `lines` are all sparse arrays of the same length as `text`. It
+ * holds information about the formatting at the relevant text indices. Finally
+ * `start` and `end` state which text indices are selected. They are only
+ * provided if a `Range` was given.
+ *
+ * @param {Object} [$1] Optional named arguments.
+ * @param {Element} [$1.element] Element to create value from.
+ * @param {string} [$1.text] Text to create value from.
+ * @param {string} [$1.html] HTML to create value from.
+ * @param {Range} [$1.range] Range to create value from.
+ * @param {string} [$1.multilineTag] Multiline tag if the structure is
+ * multiline.
+ * @param {Array} [$1.multilineWrapperTags] Tags where lines can be found if
+ * nesting is possible.
+ *
+ * @return {Object} A rich text value.
+ */
+
+
+function create() {
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ element = _ref2.element,
+ text = _ref2.text,
+ html = _ref2.html,
+ range = _ref2.range,
+ multilineTag = _ref2.multilineTag,
+ multilineWrapperTags = _ref2.multilineWrapperTags,
+ isEditableTree = _ref2.__unstableIsEditableTree;
+
+ if (typeof text === 'string' && text.length > 0) {
+ return {
+ formats: Array(text.length),
+ replacements: Array(text.length),
+ text: text
+ };
+ }
+
+ if (typeof html === 'string' && html.length > 0) {
+ element = createElement(document, html);
+ }
+
+ if (Object(esm_typeof["a" /* default */])(element) !== 'object') {
+ return createEmptyValue();
+ }
+
+ if (!multilineTag) {
+ return createFromElement({
+ element: element,
+ range: range,
+ isEditableTree: isEditableTree
+ });
+ }
+
+ return createFromMultilineElement({
+ element: element,
+ range: range,
+ multilineTag: multilineTag,
+ multilineWrapperTags: multilineWrapperTags,
+ isEditableTree: isEditableTree
+ });
+}
+/**
+ * Helper to accumulate the value's selection start and end from the current
+ * node and range.
+ *
+ * @param {Object} accumulator Object to accumulate into.
+ * @param {Node} node Node to create value with.
+ * @param {Range} range Range to create value with.
+ * @param {Object} value Value that is being accumulated.
+ */
+
+function accumulateSelection(accumulator, node, range, value) {
+ if (!range) {
+ return;
+ }
+
+ var parentNode = node.parentNode;
+ var startContainer = range.startContainer,
+ startOffset = range.startOffset,
+ endContainer = range.endContainer,
+ endOffset = range.endOffset;
+ var currentLength = accumulator.text.length; // Selection can be extracted from value.
+
+ if (value.start !== undefined) {
+ accumulator.start = currentLength + value.start; // Range indicates that the current node has selection.
+ } else if (node === startContainer && node.nodeType === TEXT_NODE) {
+ accumulator.start = currentLength + startOffset; // Range indicates that the current node is selected.
+ } else if (parentNode === startContainer && node === startContainer.childNodes[startOffset]) {
+ accumulator.start = currentLength; // Range indicates that the selection is after the current node.
+ } else if (parentNode === startContainer && node === startContainer.childNodes[startOffset - 1]) {
+ accumulator.start = currentLength + value.text.length; // Fallback if no child inside handled the selection.
+ } else if (node === startContainer) {
+ accumulator.start = currentLength;
+ } // Selection can be extracted from value.
+
+
+ if (value.end !== undefined) {
+ accumulator.end = currentLength + value.end; // Range indicates that the current node has selection.
+ } else if (node === endContainer && node.nodeType === TEXT_NODE) {
+ accumulator.end = currentLength + endOffset; // Range indicates that the current node is selected.
+ } else if (parentNode === endContainer && node === endContainer.childNo