--- a/wp/wp-includes/js/dist/annotations.js Tue Dec 15 15:52:01 2020 +0100
+++ b/wp/wp-includes/js/dist/annotations.js Wed Sep 21 18:19:35 2022 +0200
@@ -82,180 +82,765 @@
/******/
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 448);
+/******/ return __webpack_require__(__webpack_require__.s = "23Y4");
/******/ })
/************************************************************************/
/******/ ({
-/***/ 1:
+/***/ "1ZqX":
/***/ (function(module, exports) {
-(function() { module.exports = this["wp"]["i18n"]; }());
+(function() { module.exports = window["wp"]["data"]; }());
/***/ }),
-/***/ 15:
+/***/ "23Y4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
-/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "store", function() { return /* reexport */ store; });
+
+// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/selectors.js
+var selectors_namespaceObject = {};
+__webpack_require__.r(selectors_namespaceObject);
+__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotationsForBlock", function() { return __experimentalGetAnnotationsForBlock; });
+__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAllAnnotationsForBlock", function() { return __experimentalGetAllAnnotationsForBlock; });
+__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotationsForRichText", function() { return __experimentalGetAnnotationsForRichText; });
+__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotations", function() { return __experimentalGetAnnotations; });
+
+// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/actions.js
+var actions_namespaceObject = {};
+__webpack_require__.r(actions_namespaceObject);
+__webpack_require__.d(actions_namespaceObject, "__experimentalAddAnnotation", function() { return __experimentalAddAnnotation; });
+__webpack_require__.d(actions_namespaceObject, "__experimentalRemoveAnnotation", function() { return __experimentalRemoveAnnotation; });
+__webpack_require__.d(actions_namespaceObject, "__experimentalUpdateAnnotationRange", function() { return __experimentalUpdateAnnotationRange; });
+__webpack_require__.d(actions_namespaceObject, "__experimentalRemoveAnnotationsBySource", function() { return __experimentalRemoveAnnotationsBySource; });
+
+// EXTERNAL MODULE: external ["wp","richText"]
+var external_wp_richText_ = __webpack_require__("qRz9");
+
+// EXTERNAL MODULE: external ["wp","i18n"]
+var external_wp_i18n_ = __webpack_require__("l3Sj");
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/constants.js
+/**
+ * The identifier for the data store.
+ *
+ * @type {string}
+ */
+const STORE_NAME = 'core/annotations';
-function _objectWithoutProperties(source, excluded) {
- if (source == null) return {};
- var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(source, excluded);
- var key, i;
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/annotation.js
+/**
+ * WordPress dependencies
+ */
+
+
+const FORMAT_NAME = 'core/annotation';
+const ANNOTATION_ATTRIBUTE_PREFIX = 'annotation-text-';
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Applies given annotations to the given record.
+ *
+ * @param {Object} record The record to apply annotations to.
+ * @param {Array} annotations The annotation to apply.
+ * @return {Object} A record with the annotations applied.
+ */
+
+function applyAnnotations(record, annotations = []) {
+ annotations.forEach(annotation => {
+ let {
+ start,
+ end
+ } = annotation;
+
+ if (start > record.text.length) {
+ start = record.text.length;
+ }
+
+ if (end > record.text.length) {
+ end = record.text.length;
+ }
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+ const className = ANNOTATION_ATTRIBUTE_PREFIX + annotation.source;
+ const id = ANNOTATION_ATTRIBUTE_PREFIX + annotation.id;
+ record = Object(external_wp_richText_["applyFormat"])(record, {
+ type: FORMAT_NAME,
+ attributes: {
+ className,
+ id
+ }
+ }, start, end);
+ });
+ return record;
+}
+/**
+ * Removes annotations from the given record.
+ *
+ * @param {Object} record Record to remove annotations from.
+ * @return {Object} The cleaned record.
+ */
+
+function removeAnnotations(record) {
+ return Object(external_wp_richText_["removeFormat"])(record, 'core/annotation', 0, record.text.length);
+}
+/**
+ * Retrieves the positions of annotations inside an array of formats.
+ *
+ * @param {Array} formats Formats with annotations in there.
+ * @return {Object} ID keyed positions of annotations.
+ */
+
+function retrieveAnnotationPositions(formats) {
+ const positions = {};
+ formats.forEach((characterFormats, i) => {
+ characterFormats = characterFormats || [];
+ characterFormats = characterFormats.filter(format => format.type === FORMAT_NAME);
+ characterFormats.forEach(format => {
+ let {
+ id
+ } = format.attributes;
+ id = id.replace(ANNOTATION_ATTRIBUTE_PREFIX, '');
- 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];
+ if (!positions.hasOwnProperty(id)) {
+ positions[id] = {
+ start: i
+ };
+ } // Annotations refer to positions between characters.
+ // Formats refer to the character themselves.
+ // So we need to adjust for that here.
+
+
+ positions[id].end = i + 1;
+ });
+ });
+ return positions;
+}
+/**
+ * Updates annotations in the state based on positions retrieved from RichText.
+ *
+ * @param {Array} annotations The annotations that are currently applied.
+ * @param {Array} positions The current positions of the given annotations.
+ * @param {Object} actions
+ * @param {Function} actions.removeAnnotation Function to remove an annotation from the state.
+ * @param {Function} actions.updateAnnotationRange Function to update an annotation range in the state.
+ */
+
+
+function updateAnnotationsWithPositions(annotations, positions, {
+ removeAnnotation,
+ updateAnnotationRange
+}) {
+ annotations.forEach(currentAnnotation => {
+ const position = positions[currentAnnotation.id]; // If we cannot find an annotation, delete it.
+
+ if (!position) {
+ // Apparently the annotation has been removed, so remove it from the state:
+ // Remove...
+ removeAnnotation(currentAnnotation.id);
+ return;
}
- }
- return target;
+ const {
+ start,
+ end
+ } = currentAnnotation;
+
+ if (start !== position.start || end !== position.end) {
+ updateAnnotationRange(currentAnnotation.id, position.start, position.end);
+ }
+ });
}
-/***/ }),
+const annotation_annotation = {
+ name: FORMAT_NAME,
+ title: Object(external_wp_i18n_["__"])('Annotation'),
+ tagName: 'mark',
+ className: 'annotation-text',
+ attributes: {
+ className: 'class',
+ id: 'id'
+ },
+
+ edit() {
+ return null;
+ },
+
+ __experimentalGetPropsForEditableTreePreparation(select, {
+ richTextIdentifier,
+ blockClientId
+ }) {
+ return {
+ annotations: select(STORE_NAME).__experimentalGetAnnotationsForRichText(blockClientId, richTextIdentifier)
+ };
+ },
+
+ __experimentalCreatePrepareEditableTree({
+ annotations
+ }) {
+ return (formats, text) => {
+ if (annotations.length === 0) {
+ return formats;
+ }
+
+ let record = {
+ formats,
+ text
+ };
+ record = applyAnnotations(record, annotations);
+ return record.formats;
+ };
+ },
+
+ __experimentalGetPropsForEditableTreeChangeHandler(dispatch) {
+ return {
+ removeAnnotation: dispatch(STORE_NAME).__experimentalRemoveAnnotation,
+ updateAnnotationRange: dispatch(STORE_NAME).__experimentalUpdateAnnotationRange
+ };
+ },
-/***/ 18:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+ __experimentalCreateOnChangeEditableValue(props) {
+ return formats => {
+ const positions = retrieveAnnotationPositions(formats);
+ const {
+ removeAnnotation,
+ updateAnnotationRange,
+ annotations
+ } = props;
+ updateAnnotationsWithPositions(annotations, positions, {
+ removeAnnotation,
+ updateAnnotationRange
+ });
+ };
+ }
+
+};
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/index.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
+
-"use strict";
+const {
+ name: format_name,
+ ...settings
+} = annotation_annotation;
+Object(external_wp_richText_["registerFormatType"])(format_name, settings);
+
+// EXTERNAL MODULE: external ["wp","hooks"]
+var external_wp_hooks_ = __webpack_require__("g56x");
+
+// EXTERNAL MODULE: external ["wp","data"]
+var external_wp_data_ = __webpack_require__("1ZqX");
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/block/index.js
+/**
+ * WordPress dependencies
+ */
+
+
+/**
+ * Internal dependencies
+ */
+
+
+/**
+ * Adds annotation className to the block-list-block component.
+ *
+ * @param {Object} OriginalComponent The original BlockListBlock component.
+ * @return {Object} The enhanced component.
+ */
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _toConsumableArray; });
+const addAnnotationClassName = OriginalComponent => {
+ return Object(external_wp_data_["withSelect"])((select, {
+ clientId,
+ className
+ }) => {
+ const annotations = select(STORE_NAME).__experimentalGetAnnotationsForBlock(clientId);
+
+ return {
+ className: annotations.map(annotation => {
+ return 'is-annotated-by-' + annotation.source;
+ }).concat(className).filter(Boolean).join(' ')
+ };
+ })(OriginalComponent);
+};
+
+Object(external_wp_hooks_["addFilter"])('editor.BlockListBlock', 'core/annotations', addAnnotationClassName);
+
+// EXTERNAL MODULE: external "lodash"
+var external_lodash_ = __webpack_require__("YLtl");
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/reducer.js
+/**
+ * External dependencies
+ */
+
+/**
+ * Filters an array based on the predicate, but keeps the reference the same if
+ * the array hasn't changed.
+ *
+ * @param {Array} collection The collection to filter.
+ * @param {Function} predicate Function that determines if the item should stay
+ * in the array.
+ * @return {Array} Filtered array.
+ */
+
+function filterWithReference(collection, predicate) {
+ const filteredCollection = collection.filter(predicate);
+ return collection.length === filteredCollection.length ? collection : filteredCollection;
+}
+/**
+ * Verifies whether the given annotations is a valid annotation.
+ *
+ * @param {Object} annotation The annotation to verify.
+ * @return {boolean} Whether the given annotation is valid.
+ */
+
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
-var arrayLikeToArray = __webpack_require__(26);
+function isValidAnnotationRange(annotation) {
+ return Object(external_lodash_["isNumber"])(annotation.start) && Object(external_lodash_["isNumber"])(annotation.end) && annotation.start <= annotation.end;
+}
+/**
+ * Reducer managing annotations.
+ *
+ * @param {Object} state The annotations currently shown in the editor.
+ * @param {Object} action Dispatched action.
+ *
+ * @return {Array} Updated state.
+ */
+
+
+function reducer_annotations(state = {}, action) {
+ var _state$blockClientId;
+
+ switch (action.type) {
+ case 'ANNOTATION_ADD':
+ const blockClientId = action.blockClientId;
+ const newAnnotation = {
+ id: action.id,
+ blockClientId,
+ richTextIdentifier: action.richTextIdentifier,
+ source: action.source,
+ selector: action.selector,
+ range: action.range
+ };
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+ if (newAnnotation.selector === 'range' && !isValidAnnotationRange(newAnnotation.range)) {
+ return state;
+ }
+
+ const previousAnnotationsForBlock = (_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : [];
+ return { ...state,
+ [blockClientId]: [...previousAnnotationsForBlock, newAnnotation]
+ };
+
+ case 'ANNOTATION_REMOVE':
+ return Object(external_lodash_["mapValues"])(state, annotationsForBlock => {
+ return filterWithReference(annotationsForBlock, annotation => {
+ return annotation.id !== action.annotationId;
+ });
+ });
+
+ case 'ANNOTATION_UPDATE_RANGE':
+ return Object(external_lodash_["mapValues"])(state, annotationsForBlock => {
+ let hasChangedRange = false;
+ const newAnnotations = annotationsForBlock.map(annotation => {
+ if (annotation.id === action.annotationId) {
+ hasChangedRange = true;
+ return { ...annotation,
+ range: {
+ start: action.start,
+ end: action.end
+ }
+ };
+ }
+
+ return annotation;
+ });
+ return hasChangedRange ? newAnnotations : annotationsForBlock;
+ });
-function _arrayWithoutHoles(arr) {
- if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
+ case 'ANNOTATION_REMOVE_SOURCE':
+ return Object(external_lodash_["mapValues"])(state, annotationsForBlock => {
+ return filterWithReference(annotationsForBlock, annotation => {
+ return annotation.source !== action.source;
+ });
+ });
+ }
+
+ return state;
}
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
-var iterableToArray = __webpack_require__(35);
+/* harmony default export */ var reducer = (reducer_annotations);
+
+// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
+var rememo = __webpack_require__("pPDe");
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/selectors.js
+/**
+ * External dependencies
+ */
+
+
+/**
+ * Shared reference to an empty array for cases where it is important to avoid
+ * returning a new array reference on every invocation, as in a connected or
+ * other pure component which performs `shouldComponentUpdate` check on props.
+ * This should be used as a last resort, since the normalized data should be
+ * maintained by the reducer result in state.
+ *
+ * @type {Array}
+ */
+
+const EMPTY_ARRAY = [];
+/**
+ * Returns the annotations for a specific client ID.
+ *
+ * @param {Object} state Editor state.
+ * @param {string} clientId The ID of the block to get the annotations for.
+ *
+ * @return {Array} The annotations applicable to this block.
+ */
+
+const __experimentalGetAnnotationsForBlock = Object(rememo["a" /* default */])((state, blockClientId) => {
+ var _state$blockClientId;
+
+ return ((_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : []).filter(annotation => {
+ return annotation.selector === 'block';
+ });
+}, (state, blockClientId) => {
+ var _state$blockClientId2;
+
+ return [(_state$blockClientId2 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId2 !== void 0 ? _state$blockClientId2 : EMPTY_ARRAY];
+});
+function __experimentalGetAllAnnotationsForBlock(state, blockClientId) {
+ var _state$blockClientId3;
+
+ return (_state$blockClientId3 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId3 !== void 0 ? _state$blockClientId3 : EMPTY_ARRAY;
+}
+/**
+ * Returns the annotations that apply to the given RichText instance.
+ *
+ * Both a blockClientId and a richTextIdentifier are required. This is because
+ * a block might have multiple `RichText` components. This does mean that every
+ * block needs to implement annotations itself.
+ *
+ * @param {Object} state Editor state.
+ * @param {string} blockClientId The client ID for the block.
+ * @param {string} richTextIdentifier Unique identifier that identifies the given RichText.
+ * @return {Array} All the annotations relevant for the `RichText`.
+ */
+
+const __experimentalGetAnnotationsForRichText = Object(rememo["a" /* default */])((state, blockClientId, richTextIdentifier) => {
+ var _state$blockClientId4;
+
+ return ((_state$blockClientId4 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId4 !== void 0 ? _state$blockClientId4 : []).filter(annotation => {
+ return annotation.selector === 'range' && richTextIdentifier === annotation.richTextIdentifier;
+ }).map(annotation => {
+ const {
+ range,
+ ...other
+ } = annotation;
+ return { ...range,
+ ...other
+ };
+ });
+}, (state, blockClientId) => {
+ var _state$blockClientId5;
+
+ return [(_state$blockClientId5 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId5 !== void 0 ? _state$blockClientId5 : EMPTY_ARRAY];
+});
+/**
+ * Returns all annotations in the editor state.
+ *
+ * @param {Object} state Editor state.
+ * @return {Array} All annotations currently applied.
+ */
+
+function __experimentalGetAnnotations(state) {
+ return Object(external_lodash_["flatMap"])(state, annotations => {
+ return annotations;
+ });
+}
+
+// EXTERNAL MODULE: ./node_modules/uuid/dist/esm-browser/v4.js + 4 modules
+var v4 = __webpack_require__("7Cbv");
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
-var unsupportedIterableToArray = __webpack_require__(29);
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/actions.js
+/**
+ * External dependencies
+ */
+
+/**
+ * @typedef WPAnnotationRange
+ *
+ * @property {number} start The offset where the annotation should start.
+ * @property {number} end The offset where the annotation should end.
+ */
+
+/**
+ * Adds an annotation to a block.
+ *
+ * The `block` attribute refers to a block ID that needs to be annotated.
+ * `isBlockAnnotation` controls whether or not the annotation is a block
+ * annotation. The `source` is the source of the annotation, this will be used
+ * to identity groups of annotations.
+ *
+ * The `range` property is only relevant if the selector is 'range'.
+ *
+ * @param {Object} annotation The annotation to add.
+ * @param {string} annotation.blockClientId The blockClientId to add the annotation to.
+ * @param {string} annotation.richTextIdentifier Identifier for the RichText instance the annotation applies to.
+ * @param {WPAnnotationRange} annotation.range The range at which to apply this annotation.
+ * @param {string} [annotation.selector="range"] The way to apply this annotation.
+ * @param {string} [annotation.source="default"] The source that added the annotation.
+ * @param {string} [annotation.id] The ID the annotation should have. Generates a UUID by default.
+ *
+ * @return {Object} Action object.
+ */
+
+function __experimentalAddAnnotation({
+ blockClientId,
+ richTextIdentifier = null,
+ range = null,
+ selector = 'range',
+ source = 'default',
+ id = Object(v4["a" /* default */])()
+}) {
+ const action = {
+ type: 'ANNOTATION_ADD',
+ id,
+ blockClientId,
+ richTextIdentifier,
+ source,
+ selector
+ };
+
+ if (selector === 'range') {
+ action.range = range;
+ }
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
-function _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.");
+ return action;
+}
+/**
+ * Removes an annotation with a specific ID.
+ *
+ * @param {string} annotationId The annotation to remove.
+ *
+ * @return {Object} Action object.
+ */
+
+function __experimentalRemoveAnnotation(annotationId) {
+ return {
+ type: 'ANNOTATION_REMOVE',
+ annotationId
+ };
}
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+/**
+ * Updates the range of an annotation.
+ *
+ * @param {string} annotationId ID of the annotation to update.
+ * @param {number} start The start of the new range.
+ * @param {number} end The end of the new range.
+ *
+ * @return {Object} Action object.
+ */
+
+function __experimentalUpdateAnnotationRange(annotationId, start, end) {
+ return {
+ type: 'ANNOTATION_UPDATE_RANGE',
+ annotationId,
+ start,
+ end
+ };
+}
+/**
+ * Removes all annotations of a specific source.
+ *
+ * @param {string} source The source to remove.
+ *
+ * @return {Object} Action object.
+ */
+
+function __experimentalRemoveAnnotationsBySource(source) {
+ return {
+ type: 'ANNOTATION_REMOVE_SOURCE',
+ source
+ };
+}
+
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/index.js
+/**
+ * WordPress dependencies
+ */
+
+/**
+ * Internal dependencies
+ */
-function _toConsumableArray(arr) {
- return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
-}
+/**
+ * Module Constants
+ */
+
+
+/**
+ * Store definition for the annotations namespace.
+ *
+ * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
+ *
+ * @type {Object}
+ */
-/***/ }),
+const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, {
+ reducer: reducer,
+ selectors: selectors_namespaceObject,
+ actions: actions_namespaceObject
+});
+Object(external_wp_data_["register"])(store);
-/***/ 2:
-/***/ (function(module, exports) {
+// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/index.js
+/**
+ * Internal dependencies
+ */
-(function() { module.exports = this["lodash"]; }());
+
+
+
/***/ }),
-/***/ 25:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["richText"]; }());
-
-/***/ }),
-
-/***/ 26:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
-function _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;
-}
-
-/***/ }),
-
-/***/ 29:
+/***/ "7Cbv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
-/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
+
+// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
+// Unique ID creation requires a high quality random # generator. In the browser we therefore
+// require the crypto API and do not support built-in fallback to lower quality random number
+// generators (like Math.random()).
+var getRandomValues;
+var rnds8 = new Uint8Array(16);
+function rng() {
+ // lazy load so that environments that need to polyfill have a chance to do so
+ if (!getRandomValues) {
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
+ // find the complete implementation of crypto (msCrypto) on IE11.
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);
+
+ if (!getRandomValues) {
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
+ }
+ }
-function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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 Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
+ return getRandomValues(rnds8);
+}
+// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
+/* harmony default export */ var regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
+// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js
+
+
+function validate(uuid) {
+ return typeof uuid === 'string' && regex.test(uuid);
+}
+
+/* harmony default export */ var esm_browser_validate = (validate);
+// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
+
+/**
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ */
+
+var byteToHex = [];
+
+for (var stringify_i = 0; stringify_i < 256; ++stringify_i) {
+ byteToHex.push((stringify_i + 0x100).toString(16).substr(1));
}
-/***/ }),
+function stringify(arr) {
+ var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ // Note: Be careful editing this code! It's been tuned for performance
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
+ var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
+ // of the following:
+ // - One or more input array values don't map to a hex octet (leading to
+ // "undefined" in the uuid)
+ // - Invalid input values for the RFC `version` or `variant` fields
+
+ if (!esm_browser_validate(uuid)) {
+ throw TypeError('Stringified UUID is invalid');
+ }
+
+ return uuid;
+}
+
+/* harmony default export */ var esm_browser_stringify = (stringify);
+// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
+
+
-/***/ 32:
-/***/ (function(module, exports) {
+function v4(options, buf, offset) {
+ options = options || {};
+ var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+
+ rnds[6] = rnds[6] & 0x0f | 0x40;
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
+
+ if (buf) {
+ offset = offset || 0;
-(function() { module.exports = this["wp"]["hooks"]; }());
+ for (var i = 0; i < 16; ++i) {
+ buf[offset + i] = rnds[i];
+ }
+
+ return buf;
+ }
+
+ return esm_browser_stringify(rnds);
+}
+
+/* harmony default export */ var esm_browser_v4 = __webpack_exports__["a"] = (v4);
/***/ }),
-/***/ 35:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
-function _iterableToArray(iter) {
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
-}
-
-/***/ }),
-
-/***/ 4:
+/***/ "YLtl":
/***/ (function(module, exports) {
-(function() { module.exports = this["wp"]["data"]; }());
+(function() { module.exports = window["lodash"]; }());
/***/ }),
-/***/ 41:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ "g56x":
+/***/ (function(module, exports) {
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
-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;
-}
+(function() { module.exports = window["wp"]["hooks"]; }());
/***/ }),
-/***/ 42:
+/***/ "l3Sj":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["i18n"]; }());
+
+/***/ }),
+
+/***/ "pPDe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -537,701 +1122,10 @@
/***/ }),
-/***/ 448:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-// ESM COMPAT FLAG
-__webpack_require__.r(__webpack_exports__);
-
-// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/selectors.js
-var selectors_namespaceObject = {};
-__webpack_require__.r(selectors_namespaceObject);
-__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotationsForBlock", function() { return __experimentalGetAnnotationsForBlock; });
-__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAllAnnotationsForBlock", function() { return __experimentalGetAllAnnotationsForBlock; });
-__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotationsForRichText", function() { return __experimentalGetAnnotationsForRichText; });
-__webpack_require__.d(selectors_namespaceObject, "__experimentalGetAnnotations", function() { return __experimentalGetAnnotations; });
-
-// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/actions.js
-var actions_namespaceObject = {};
-__webpack_require__.r(actions_namespaceObject);
-__webpack_require__.d(actions_namespaceObject, "__experimentalAddAnnotation", function() { return __experimentalAddAnnotation; });
-__webpack_require__.d(actions_namespaceObject, "__experimentalRemoveAnnotation", function() { return __experimentalRemoveAnnotation; });
-__webpack_require__.d(actions_namespaceObject, "__experimentalUpdateAnnotationRange", function() { return __experimentalUpdateAnnotationRange; });
-__webpack_require__.d(actions_namespaceObject, "__experimentalRemoveAnnotationsBySource", function() { return __experimentalRemoveAnnotationsBySource; });
-
-// EXTERNAL MODULE: external {"this":["wp","data"]}
-var external_this_wp_data_ = __webpack_require__(4);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
-var toConsumableArray = __webpack_require__(18);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
-var defineProperty = __webpack_require__(5);
-
-// EXTERNAL MODULE: external {"this":"lodash"}
-var external_this_lodash_ = __webpack_require__(2);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/reducer.js
-
-
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-/**
- * External dependencies
- */
-
-/**
- * Filters an array based on the predicate, but keeps the reference the same if
- * the array hasn't changed.
- *
- * @param {Array} collection The collection to filter.
- * @param {Function} predicate Function that determines if the item should stay
- * in the array.
- * @return {Array} Filtered array.
- */
-
-function filterWithReference(collection, predicate) {
- var filteredCollection = collection.filter(predicate);
- return collection.length === filteredCollection.length ? collection : filteredCollection;
-}
-/**
- * Verifies whether the given annotations is a valid annotation.
- *
- * @param {Object} annotation The annotation to verify.
- * @return {boolean} Whether the given annotation is valid.
- */
-
-
-function isValidAnnotationRange(annotation) {
- return Object(external_this_lodash_["isNumber"])(annotation.start) && Object(external_this_lodash_["isNumber"])(annotation.end) && annotation.start <= annotation.end;
-}
-/**
- * Reducer managing annotations.
- *
- * @param {Object} state The annotations currently shown in the editor.
- * @param {Object} action Dispatched action.
- *
- * @return {Array} Updated state.
- */
-
-
-function reducer_annotations() {
- var _state$blockClientId;
-
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var action = arguments.length > 1 ? arguments[1] : undefined;
-
- switch (action.type) {
- case 'ANNOTATION_ADD':
- var blockClientId = action.blockClientId;
- var newAnnotation = {
- id: action.id,
- blockClientId: blockClientId,
- richTextIdentifier: action.richTextIdentifier,
- source: action.source,
- selector: action.selector,
- range: action.range
- };
-
- if (newAnnotation.selector === 'range' && !isValidAnnotationRange(newAnnotation.range)) {
- return state;
- }
-
- var previousAnnotationsForBlock = (_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : [];
- return _objectSpread({}, state, Object(defineProperty["a" /* default */])({}, blockClientId, [].concat(Object(toConsumableArray["a" /* default */])(previousAnnotationsForBlock), [newAnnotation])));
-
- case 'ANNOTATION_REMOVE':
- return Object(external_this_lodash_["mapValues"])(state, function (annotationsForBlock) {
- return filterWithReference(annotationsForBlock, function (annotation) {
- return annotation.id !== action.annotationId;
- });
- });
-
- case 'ANNOTATION_UPDATE_RANGE':
- return Object(external_this_lodash_["mapValues"])(state, function (annotationsForBlock) {
- var hasChangedRange = false;
- var newAnnotations = annotationsForBlock.map(function (annotation) {
- if (annotation.id === action.annotationId) {
- hasChangedRange = true;
- return _objectSpread({}, annotation, {
- range: {
- start: action.start,
- end: action.end
- }
- });
- }
-
- return annotation;
- });
- return hasChangedRange ? newAnnotations : annotationsForBlock;
- });
-
- case 'ANNOTATION_REMOVE_SOURCE':
- return Object(external_this_lodash_["mapValues"])(state, function (annotationsForBlock) {
- return filterWithReference(annotationsForBlock, function (annotation) {
- return annotation.source !== action.source;
- });
- });
- }
-
- return state;
-}
-/* harmony default export */ var reducer = (reducer_annotations);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
-var objectWithoutProperties = __webpack_require__(15);
-
-// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
-var rememo = __webpack_require__(42);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/selectors.js
-
-
-
-function selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-/**
- * External dependencies
- */
-
-
-/**
- * Shared reference to an empty array for cases where it is important to avoid
- * returning a new array reference on every invocation, as in a connected or
- * other pure component which performs `shouldComponentUpdate` check on props.
- * This should be used as a last resort, since the normalized data should be
- * maintained by the reducer result in state.
- *
- * @type {Array}
- */
-
-var EMPTY_ARRAY = [];
-/**
- * Returns the annotations for a specific client ID.
- *
- * @param {Object} state Editor state.
- * @param {string} clientId The ID of the block to get the annotations for.
- *
- * @return {Array} The annotations applicable to this block.
- */
-
-var __experimentalGetAnnotationsForBlock = Object(rememo["a" /* default */])(function (state, blockClientId) {
- var _state$blockClientId;
-
- return ((_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : []).filter(function (annotation) {
- return annotation.selector === 'block';
- });
-}, function (state, blockClientId) {
- var _state$blockClientId2;
-
- return [(_state$blockClientId2 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId2 !== void 0 ? _state$blockClientId2 : EMPTY_ARRAY];
-});
-function __experimentalGetAllAnnotationsForBlock(state, blockClientId) {
- var _state$blockClientId3;
-
- return (_state$blockClientId3 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId3 !== void 0 ? _state$blockClientId3 : EMPTY_ARRAY;
-}
-/**
- * Returns the annotations that apply to the given RichText instance.
- *
- * Both a blockClientId and a richTextIdentifier are required. This is because
- * a block might have multiple `RichText` components. This does mean that every
- * block needs to implement annotations itself.
- *
- * @param {Object} state Editor state.
- * @param {string} blockClientId The client ID for the block.
- * @param {string} richTextIdentifier Unique identifier that identifies the given RichText.
- * @return {Array} All the annotations relevant for the `RichText`.
- */
-
-var __experimentalGetAnnotationsForRichText = Object(rememo["a" /* default */])(function (state, blockClientId, richTextIdentifier) {
- var _state$blockClientId4;
-
- return ((_state$blockClientId4 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId4 !== void 0 ? _state$blockClientId4 : []).filter(function (annotation) {
- return annotation.selector === 'range' && richTextIdentifier === annotation.richTextIdentifier;
- }).map(function (annotation) {
- var range = annotation.range,
- other = Object(objectWithoutProperties["a" /* default */])(annotation, ["range"]);
-
- return selectors_objectSpread({}, range, {}, other);
- });
-}, function (state, blockClientId) {
- var _state$blockClientId5;
-
- return [(_state$blockClientId5 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId5 !== void 0 ? _state$blockClientId5 : EMPTY_ARRAY];
-});
-/**
- * Returns all annotations in the editor state.
- *
- * @param {Object} state Editor state.
- * @return {Array} All annotations currently applied.
- */
-
-function __experimentalGetAnnotations(state) {
- return Object(external_this_lodash_["flatMap"])(state, function (annotations) {
- return annotations;
- });
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/rng.js
-// Unique ID creation requires a high quality random # generator. In the browser we therefore
-// require the crypto API and do not support built-in fallback to lower quality random number
-// generators (like Math.random()).
-// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
-// find the complete implementation of crypto (msCrypto) on IE11.
-var getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);
-var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
-
-function rng() {
- if (!getRandomValues) {
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
- }
-
- return getRandomValues(rnds8);
-}
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/bytesToUuid.js
-/**
- * Convert array of 16 byte values to UUID string format of the form:
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- */
-var byteToHex = [];
-
-for (var bytesToUuid_i = 0; bytesToUuid_i < 256; ++bytesToUuid_i) {
- byteToHex[bytesToUuid_i] = (bytesToUuid_i + 0x100).toString(16).substr(1);
-}
-
-function bytesToUuid(buf, offset) {
- var i = offset || 0;
- var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
-
- return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');
-}
-
-/* harmony default export */ var esm_browser_bytesToUuid = (bytesToUuid);
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/v4.js
-
-
-
-function v4(options, buf, offset) {
- var i = buf && offset || 0;
-
- if (typeof options == 'string') {
- buf = options === 'binary' ? new Array(16) : null;
- options = null;
- }
-
- options = options || {};
- var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
-
- rnds[6] = rnds[6] & 0x0f | 0x40;
- rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
-
- if (buf) {
- for (var ii = 0; ii < 16; ++ii) {
- buf[i + ii] = rnds[ii];
- }
- }
-
- return buf || esm_browser_bytesToUuid(rnds);
-}
-
-/* harmony default export */ var esm_browser_v4 = (v4);
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/actions.js
-/**
- * External dependencies
- */
-
-/**
- * @typedef WPAnnotationRange
- *
- * @property {number} start The offset where the annotation should start.
- * @property {number} end The offset where the annotation should end.
- */
-
-/**
- * Adds an annotation to a block.
- *
- * The `block` attribute refers to a block ID that needs to be annotated.
- * `isBlockAnnotation` controls whether or not the annotation is a block
- * annotation. The `source` is the source of the annotation, this will be used
- * to identity groups of annotations.
- *
- * The `range` property is only relevant if the selector is 'range'.
- *
- * @param {Object} annotation The annotation to add.
- * @param {string} annotation.blockClientId The blockClientId to add the annotation to.
- * @param {string} annotation.richTextIdentifier Identifier for the RichText instance the annotation applies to.
- * @param {WPAnnotationRange} annotation.range The range at which to apply this annotation.
- * @param {string} [annotation.selector="range"] The way to apply this annotation.
- * @param {string} [annotation.source="default"] The source that added the annotation.
- * @param {string} [annotation.id] The ID the annotation should have. Generates a UUID by default.
- *
- * @return {Object} Action object.
- */
+/***/ "qRz9":
+/***/ (function(module, exports) {
-function __experimentalAddAnnotation(_ref) {
- var blockClientId = _ref.blockClientId,
- _ref$richTextIdentifi = _ref.richTextIdentifier,
- richTextIdentifier = _ref$richTextIdentifi === void 0 ? null : _ref$richTextIdentifi,
- _ref$range = _ref.range,
- range = _ref$range === void 0 ? null : _ref$range,
- _ref$selector = _ref.selector,
- selector = _ref$selector === void 0 ? 'range' : _ref$selector,
- _ref$source = _ref.source,
- source = _ref$source === void 0 ? 'default' : _ref$source,
- _ref$id = _ref.id,
- id = _ref$id === void 0 ? esm_browser_v4() : _ref$id;
- var action = {
- type: 'ANNOTATION_ADD',
- id: id,
- blockClientId: blockClientId,
- richTextIdentifier: richTextIdentifier,
- source: source,
- selector: selector
- };
-
- if (selector === 'range') {
- action.range = range;
- }
-
- return action;
-}
-/**
- * Removes an annotation with a specific ID.
- *
- * @param {string} annotationId The annotation to remove.
- *
- * @return {Object} Action object.
- */
-
-function __experimentalRemoveAnnotation(annotationId) {
- return {
- type: 'ANNOTATION_REMOVE',
- annotationId: annotationId
- };
-}
-/**
- * Updates the range of an annotation.
- *
- * @param {string} annotationId ID of the annotation to update.
- * @param {number} start The start of the new range.
- * @param {number} end The end of the new range.
- *
- * @return {Object} Action object.
- */
-
-function __experimentalUpdateAnnotationRange(annotationId, start, end) {
- return {
- type: 'ANNOTATION_UPDATE_RANGE',
- annotationId: annotationId,
- start: start,
- end: end
- };
-}
-/**
- * Removes all annotations of a specific source.
- *
- * @param {string} source The source to remove.
- *
- * @return {Object} Action object.
- */
-
-function __experimentalRemoveAnnotationsBySource(source) {
- return {
- type: 'ANNOTATION_REMOVE_SOURCE',
- source: source
- };
-}
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/index.js
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-
-/**
- * Module Constants
- */
-
-var MODULE_KEY = 'core/annotations';
-var store = Object(external_this_wp_data_["registerStore"])(MODULE_KEY, {
- reducer: reducer,
- selectors: selectors_namespaceObject,
- actions: actions_namespaceObject
-});
-/* harmony default export */ var build_module_store = (store);
-
-// EXTERNAL MODULE: external {"this":["wp","richText"]}
-var external_this_wp_richText_ = __webpack_require__(25);
-
-// EXTERNAL MODULE: external {"this":["wp","i18n"]}
-var external_this_wp_i18n_ = __webpack_require__(1);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/annotation.js
-/**
- * WordPress dependencies
- */
-
-
-var FORMAT_NAME = 'core/annotation';
-var ANNOTATION_ATTRIBUTE_PREFIX = 'annotation-text-';
-var STORE_KEY = 'core/annotations';
-/**
- * Applies given annotations to the given record.
- *
- * @param {Object} record The record to apply annotations to.
- * @param {Array} annotations The annotation to apply.
- * @return {Object} A record with the annotations applied.
- */
-
-function applyAnnotations(record) {
- var annotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
- annotations.forEach(function (annotation) {
- var start = annotation.start,
- end = annotation.end;
-
- if (start > record.text.length) {
- start = record.text.length;
- }
-
- if (end > record.text.length) {
- end = record.text.length;
- }
-
- var className = ANNOTATION_ATTRIBUTE_PREFIX + annotation.source;
- var id = ANNOTATION_ATTRIBUTE_PREFIX + annotation.id;
- record = Object(external_this_wp_richText_["applyFormat"])(record, {
- type: FORMAT_NAME,
- attributes: {
- className: className,
- id: id
- }
- }, start, end);
- });
- return record;
-}
-/**
- * Removes annotations from the given record.
- *
- * @param {Object} record Record to remove annotations from.
- * @return {Object} The cleaned record.
- */
-
-function removeAnnotations(record) {
- return Object(external_this_wp_richText_["removeFormat"])(record, 'core/annotation', 0, record.text.length);
-}
-/**
- * Retrieves the positions of annotations inside an array of formats.
- *
- * @param {Array} formats Formats with annotations in there.
- * @return {Object} ID keyed positions of annotations.
- */
-
-function retrieveAnnotationPositions(formats) {
- var positions = {};
- formats.forEach(function (characterFormats, i) {
- characterFormats = characterFormats || [];
- characterFormats = characterFormats.filter(function (format) {
- return format.type === FORMAT_NAME;
- });
- characterFormats.forEach(function (format) {
- var id = format.attributes.id;
- id = id.replace(ANNOTATION_ATTRIBUTE_PREFIX, '');
-
- if (!positions.hasOwnProperty(id)) {
- positions[id] = {
- start: i
- };
- } // Annotations refer to positions between characters.
- // Formats refer to the character themselves.
- // So we need to adjust for that here.
-
-
- positions[id].end = i + 1;
- });
- });
- return positions;
-}
-/**
- * Updates annotations in the state based on positions retrieved from RichText.
- *
- * @param {Array} annotations The annotations that are currently applied.
- * @param {Array} positions The current positions of the given annotations.
- * @param {Object} actions
- * @param {Function} actions.removeAnnotation Function to remove an annotation from the state.
- * @param {Function} actions.updateAnnotationRange Function to update an annotation range in the state.
- */
-
-
-function updateAnnotationsWithPositions(annotations, positions, _ref) {
- var removeAnnotation = _ref.removeAnnotation,
- updateAnnotationRange = _ref.updateAnnotationRange;
- annotations.forEach(function (currentAnnotation) {
- var position = positions[currentAnnotation.id]; // If we cannot find an annotation, delete it.
-
- if (!position) {
- // Apparently the annotation has been removed, so remove it from the state:
- // Remove...
- removeAnnotation(currentAnnotation.id);
- return;
- }
-
- var start = currentAnnotation.start,
- end = currentAnnotation.end;
-
- if (start !== position.start || end !== position.end) {
- updateAnnotationRange(currentAnnotation.id, position.start, position.end);
- }
- });
-}
-
-var annotation_annotation = {
- name: FORMAT_NAME,
- title: Object(external_this_wp_i18n_["__"])('Annotation'),
- tagName: 'mark',
- className: 'annotation-text',
- attributes: {
- className: 'class',
- id: 'id'
- },
- edit: function edit() {
- return null;
- },
- __experimentalGetPropsForEditableTreePreparation: function __experimentalGetPropsForEditableTreePreparation(select, _ref2) {
- var richTextIdentifier = _ref2.richTextIdentifier,
- blockClientId = _ref2.blockClientId;
- return {
- annotations: select(STORE_KEY).__experimentalGetAnnotationsForRichText(blockClientId, richTextIdentifier)
- };
- },
- __experimentalCreatePrepareEditableTree: function __experimentalCreatePrepareEditableTree(_ref3) {
- var annotations = _ref3.annotations;
- return function (formats, text) {
- if (annotations.length === 0) {
- return formats;
- }
-
- var record = {
- formats: formats,
- text: text
- };
- record = applyAnnotations(record, annotations);
- return record.formats;
- };
- },
- __experimentalGetPropsForEditableTreeChangeHandler: function __experimentalGetPropsForEditableTreeChangeHandler(dispatch) {
- return {
- removeAnnotation: dispatch(STORE_KEY).__experimentalRemoveAnnotation,
- updateAnnotationRange: dispatch(STORE_KEY).__experimentalUpdateAnnotationRange
- };
- },
- __experimentalCreateOnChangeEditableValue: function __experimentalCreateOnChangeEditableValue(props) {
- return function (formats) {
- var positions = retrieveAnnotationPositions(formats);
- var removeAnnotation = props.removeAnnotation,
- updateAnnotationRange = props.updateAnnotationRange,
- annotations = props.annotations;
- updateAnnotationsWithPositions(annotations, positions, {
- removeAnnotation: removeAnnotation,
- updateAnnotationRange: updateAnnotationRange
- });
- };
- }
-};
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/index.js
-
-
-/**
- * WordPress dependencies
- */
-
-/**
- * Internal dependencies
- */
-
-
-
-var format_name = annotation_annotation.name,
- settings = Object(objectWithoutProperties["a" /* default */])(annotation_annotation, ["name"]);
-
-Object(external_this_wp_richText_["registerFormatType"])(format_name, settings);
-
-// EXTERNAL MODULE: external {"this":["wp","hooks"]}
-var external_this_wp_hooks_ = __webpack_require__(32);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/block/index.js
-/**
- * WordPress dependencies
- */
-
-
-/**
- * Adds annotation className to the block-list-block component.
- *
- * @param {Object} OriginalComponent The original BlockListBlock component.
- * @return {Object} The enhanced component.
- */
-
-var block_addAnnotationClassName = function addAnnotationClassName(OriginalComponent) {
- return Object(external_this_wp_data_["withSelect"])(function (select, _ref) {
- var clientId = _ref.clientId,
- className = _ref.className;
-
- var annotations = select('core/annotations').__experimentalGetAnnotationsForBlock(clientId);
-
- return {
- className: annotations.map(function (annotation) {
- return 'is-annotated-by-' + annotation.source;
- }).concat(className).filter(Boolean).join(' ')
- };
- })(OriginalComponent);
-};
-
-Object(external_this_wp_hooks_["addFilter"])('editor.BlockListBlock', 'core/annotations', block_addAnnotationClassName);
-
-// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/index.js
-/**
- * Internal dependencies
- */
-
-
-
-
-
-/***/ }),
-
-/***/ 5:
-/***/ (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;
-}
+(function() { module.exports = window["wp"]["richText"]; }());
/***/ })