diff -r 34716fd837a4 -r be944660c56a wp/wp-includes/js/dist/annotations.js --- 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"]; }()); /***/ })