2022-04-11 14:04:30 +02:00
/******/ ( function ( ) { // webpackBootstrap
/******/ "use strict" ;
/******/ // The require scope
/******/ var _ _webpack _require _ _ = { } ;
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ ! function ( ) {
/******/ // define getter functions for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , definition ) {
/******/ for ( var key in definition ) {
/******/ if ( _ _webpack _require _ _ . o ( definition , key ) && ! _ _webpack _require _ _ . o ( exports , key ) ) {
/******/ Object . defineProperty ( exports , key , { enumerable : true , get : definition [ key ] } ) ;
/******/ }
/******/ }
/******/ } ;
/******/ } ( ) ;
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ ! function ( ) {
/******/ _ _webpack _require _ _ . o = function ( obj , prop ) { return Object . prototype . hasOwnProperty . call ( obj , prop ) ; }
/******/ } ( ) ;
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ ! function ( ) {
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
2018-12-17 05:52:00 +01:00
/******/ } ;
2022-04-11 14:04:30 +02:00
/******/ } ( ) ;
/******/
2018-12-17 05:52:00 +01:00
/************************************************************************/
2022-04-11 14:04:30 +02:00
var _ _webpack _exports _ _ = { } ;
2021-05-20 14:20:04 +02:00
// ESM COMPAT FLAG
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
2018-12-17 05:52:00 +01:00
2021-05-20 14:20:04 +02:00
// EXPORTS
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
"store" : function ( ) { return /* reexport */ store ; }
} ) ;
2018-12-17 05:52:00 +01:00
2021-05-20 14:20:04 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/selectors.js
var selectors _namespaceObject = { } ;
_ _webpack _require _ _ . r ( selectors _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( selectors _namespaceObject , {
"__experimentalGetAllAnnotationsForBlock" : function ( ) { return _ _experimentalGetAllAnnotationsForBlock ; } ,
"__experimentalGetAnnotations" : function ( ) { return _ _experimentalGetAnnotations ; } ,
"__experimentalGetAnnotationsForBlock" : function ( ) { return _ _experimentalGetAnnotationsForBlock ; } ,
"__experimentalGetAnnotationsForRichText" : function ( ) { return _ _experimentalGetAnnotationsForRichText ; }
} ) ;
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/actions.js
var actions _namespaceObject = { } ;
_ _webpack _require _ _ . r ( actions _namespaceObject ) ;
2022-04-11 14:04:30 +02:00
_ _webpack _require _ _ . d ( actions _namespaceObject , {
"__experimentalAddAnnotation" : function ( ) { return _ _experimentalAddAnnotation ; } ,
"__experimentalRemoveAnnotation" : function ( ) { return _ _experimentalRemoveAnnotation ; } ,
"__experimentalRemoveAnnotationsBySource" : function ( ) { return _ _experimentalRemoveAnnotationsBySource ; } ,
"__experimentalUpdateAnnotationRange" : function ( ) { return _ _experimentalUpdateAnnotationRange ; }
} ) ;
2020-01-22 23:06:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: external ["wp","richText"]
var external _wp _richText _namespaceObject = window [ "wp" ] [ "richText" ] ;
; // CONCATENATED MODULE: external ["wp","i18n"]
var external _wp _i18n _namespaceObject = window [ "wp" ] [ "i18n" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/constants.js
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* The identifier for the data store .
2020-01-22 23:06:21 +01:00
*
2021-05-20 14:20:04 +02:00
* @ type { string }
2020-01-22 23:06:21 +01:00
* /
2021-05-20 14:20:04 +02:00
const STORE _NAME = 'core/annotations' ;
2020-01-22 23:06:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/annotation.js
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* WordPress dependencies
2020-01-22 23:06:21 +01:00
* /
2021-05-20 14:20:04 +02:00
const FORMAT _NAME = 'core/annotation' ;
const ANNOTATION _ATTRIBUTE _PREFIX = 'annotation-text-' ;
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* Internal dependencies
2020-01-22 23:06:21 +01:00
* /
2021-05-20 14:20:04 +02:00
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* Applies given annotations to the given record .
2020-01-22 23:06:21 +01:00
*
2021-11-08 15:29:21 +01:00
* @ param { Object } record The record to apply annotations to .
* @ param { Array } annotations The annotation to apply .
2021-05-20 14:20:04 +02:00
* @ return { Object } A record with the annotations applied .
2020-01-22 23:06:21 +01:00
* /
2021-11-15 13:50:17 +01:00
function applyAnnotations ( record ) {
let annotations = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : [ ] ;
2021-05-20 14:20:04 +02:00
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 ;
}
const className = ANNOTATION _ATTRIBUTE _PREFIX + annotation . source ;
const id = ANNOTATION _ATTRIBUTE _PREFIX + annotation . id ;
2022-04-11 14:04:30 +02:00
record = ( 0 , external _wp _richText _namespaceObject . applyFormat ) ( record , {
2021-05-20 14:20:04 +02:00
type : FORMAT _NAME ,
attributes : {
className ,
id
}
} , start , end ) ;
} ) ;
return record ;
}
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* Removes annotations from the given record .
2020-01-22 23:06:21 +01:00
*
2021-05-20 14:20:04 +02:00
* @ param { Object } record Record to remove annotations from .
* @ return { Object } The cleaned record .
2020-01-22 23:06:21 +01:00
* /
2021-05-20 14:20:04 +02:00
function removeAnnotations ( record ) {
2022-04-11 14:04:30 +02:00
return removeFormat ( record , 'core/annotation' , 0 , record . text . length ) ;
2020-01-22 23:06:21 +01:00
}
/ * *
2021-05-20 14:20:04 +02:00
* Retrieves the positions of annotations inside an array of formats .
2020-01-22 23:06:21 +01:00
*
2021-05-20 14:20:04 +02:00
* @ param { Array } formats Formats with annotations in there .
* @ return { Object } ID keyed positions of annotations .
2020-01-22 23:06:21 +01:00
* /
2021-05-20 14:20:04 +02:00
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 , '' ) ;
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
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.
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
positions [ id ] . end = i + 1 ;
} ) ;
} ) ;
return positions ;
}
2020-01-22 23:06:21 +01:00
/ * *
2021-05-20 14:20:04 +02:00
* Updates annotations in the state based on positions retrieved from RichText .
2020-01-22 23:06:21 +01:00
*
2021-05-20 14:20:04 +02:00
* @ 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 .
2020-01-22 23:06:21 +01:00
* /
2021-11-15 13:50:17 +01:00
function updateAnnotationsWithPositions ( annotations , positions , _ref ) {
let {
removeAnnotation ,
updateAnnotationRange
} = _ref ;
2021-05-20 14:20:04 +02:00
annotations . forEach ( currentAnnotation => {
const position = positions [ currentAnnotation . id ] ; // If we cannot find an annotation, delete it.
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
if ( ! position ) {
// Apparently the annotation has been removed, so remove it from the state:
// Remove...
removeAnnotation ( currentAnnotation . id ) ;
return ;
}
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
const {
start ,
end
} = currentAnnotation ;
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
if ( start !== position . start || end !== position . end ) {
updateAnnotationRange ( currentAnnotation . id , position . start , position . end ) ;
}
} ) ;
}
2020-01-22 23:06:21 +01:00
2022-04-11 14:04:30 +02:00
const annotation = {
2021-05-20 14:20:04 +02:00
name : FORMAT _NAME ,
2022-04-11 14:04:30 +02:00
title : ( 0 , external _wp _i18n _namespaceObject . _ _ ) ( 'Annotation' ) ,
2021-05-20 14:20:04 +02:00
tagName : 'mark' ,
className : 'annotation-text' ,
attributes : {
className : 'class' ,
id : 'id'
} ,
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
edit ( ) {
return null ;
} ,
2020-01-22 23:06:21 +01:00
2021-11-15 13:50:17 +01:00
_ _experimentalGetPropsForEditableTreePreparation ( select , _ref2 ) {
let {
richTextIdentifier ,
blockClientId
} = _ref2 ;
2021-05-20 14:20:04 +02:00
return {
annotations : select ( STORE _NAME ) . _ _experimentalGetAnnotationsForRichText ( blockClientId , richTextIdentifier )
} ;
} ,
2020-01-22 23:06:21 +01:00
2021-11-15 13:50:17 +01:00
_ _experimentalCreatePrepareEditableTree ( _ref3 ) {
let {
annotations
} = _ref3 ;
2021-05-20 14:20:04 +02:00
return ( formats , text ) => {
if ( annotations . length === 0 ) {
return formats ;
}
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
let record = {
formats ,
text
} ;
record = applyAnnotations ( record , annotations ) ;
return record . formats ;
} ;
} ,
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
_ _experimentalGetPropsForEditableTreeChangeHandler ( dispatch ) {
return {
removeAnnotation : dispatch ( STORE _NAME ) . _ _experimentalRemoveAnnotation ,
updateAnnotationRange : dispatch ( STORE _NAME ) . _ _experimentalUpdateAnnotationRange
} ;
} ,
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
_ _experimentalCreateOnChangeEditableValue ( props ) {
return formats => {
const positions = retrieveAnnotationPositions ( formats ) ;
const {
removeAnnotation ,
updateAnnotationRange ,
annotations
} = props ;
updateAnnotationsWithPositions ( annotations , positions , {
removeAnnotation ,
updateAnnotationRange
} ) ;
} ;
}
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
} ;
2020-01-22 23:06:21 +01:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/index.js
2021-05-20 14:20:04 +02:00
/ * *
* WordPress dependencies
* /
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
/ * *
* Internal dependencies
* /
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
const {
name : format _name ,
... settings
2022-04-11 14:04:30 +02:00
} = annotation ;
( 0 , external _wp _richText _namespaceObject . registerFormatType ) ( format _name , settings ) ;
; // CONCATENATED MODULE: external ["wp","hooks"]
var external _wp _hooks _namespaceObject = window [ "wp" ] [ "hooks" ] ;
; // CONCATENATED MODULE: external ["wp","data"]
var external _wp _data _namespaceObject = window [ "wp" ] [ "data" ] ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/block/index.js
2021-05-20 14:20:04 +02:00
/ * *
* WordPress dependencies
* /
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
/ * *
* Internal dependencies
* /
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
/ * *
* Adds annotation className to the block - list - block component .
*
* @ param { Object } OriginalComponent The original BlockListBlock component .
* @ return { Object } The enhanced component .
* /
2020-01-22 23:06:21 +01:00
2021-05-20 14:20:04 +02:00
const addAnnotationClassName = OriginalComponent => {
2022-04-11 14:04:30 +02:00
return ( 0 , external _wp _data _namespaceObject . withSelect ) ( ( select , _ref ) => {
2021-11-15 13:50:17 +01:00
let {
clientId ,
className
} = _ref ;
2021-05-20 14:20:04 +02:00
const annotations = select ( STORE _NAME ) . _ _experimentalGetAnnotationsForBlock ( clientId ) ;
2021-05-07 13:48:27 +02:00
2021-05-20 14:20:04 +02:00
return {
className : annotations . map ( annotation => {
return 'is-annotated-by-' + annotation . source ;
} ) . concat ( className ) . filter ( Boolean ) . join ( ' ' )
} ;
} ) ( OriginalComponent ) ;
} ;
2021-05-19 17:09:27 +02:00
2022-04-11 14:04:30 +02:00
( 0 , external _wp _hooks _namespaceObject . addFilter ) ( 'editor.BlockListBlock' , 'core/annotations' , addAnnotationClassName ) ;
2021-05-19 17:09:27 +02:00
2022-04-11 14:04:30 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/reducer.js
2021-05-20 14:20:04 +02:00
/ * *
* 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 ;
2021-05-19 17:09:27 +02:00
}
2022-09-20 17:43:29 +02:00
/ * *
* Creates a new object with the same keys , but with ` callback() ` called as
* a transformer function on each of the values .
*
* @ param { Object } obj The object to transform .
* @ param { Function } callback The function to transform each object value .
* @ return { Array } Transformed object .
* /
const mapValues = ( obj , callback ) => Object . entries ( obj ) . reduce ( ( acc , _ref ) => {
let [ key , value ] = _ref ;
return { ... acc ,
[ key ] : callback ( value )
} ;
} , { } ) ;
2021-05-19 17:09:27 +02:00
/ * *
2021-05-20 14:20:04 +02:00
* Verifies whether the given annotations is a valid annotation .
*
* @ param { Object } annotation The annotation to verify .
* @ return { boolean } Whether the given annotation is valid .
2021-05-19 17:09:27 +02:00
* /
2021-05-20 14:20:04 +02:00
function isValidAnnotationRange ( annotation ) {
2022-09-20 17:43:29 +02:00
return typeof annotation . start === 'number' && typeof annotation . end === 'number' && annotation . start <= annotation . end ;
2021-05-19 17:09:27 +02:00
}
2021-05-20 14:20:04 +02:00
/ * *
* Reducer managing annotations .
*
* @ param { Object } state The annotations currently shown in the editor .
* @ param { Object } action Dispatched action .
*
* @ return { Array } Updated state .
* /
2021-05-19 17:09:27 +02:00
2022-04-11 14:04:30 +02:00
function annotations ( ) {
2021-05-20 14:20:04 +02:00
var _state$blockClientId ;
2021-05-19 17:09:27 +02:00
2021-11-15 13:50:17 +01:00
let state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
let action = arguments . length > 1 ? arguments [ 1 ] : undefined ;
2021-05-20 14:20:04 +02:00
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
} ;
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
if ( newAnnotation . selector === 'range' && ! isValidAnnotationRange ( newAnnotation . range ) ) {
return state ;
}
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
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 ]
} ;
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
case 'ANNOTATION_REMOVE' :
2022-09-20 17:43:29 +02:00
return mapValues ( state , annotationsForBlock => {
2021-05-20 14:20:04 +02:00
return filterWithReference ( annotationsForBlock , annotation => {
return annotation . id !== action . annotationId ;
} ) ;
} ) ;
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
case 'ANNOTATION_UPDATE_RANGE' :
2022-09-20 17:43:29 +02:00
return mapValues ( state , annotationsForBlock => {
2021-05-20 14:20:04 +02:00
let hasChangedRange = false ;
const newAnnotations = annotationsForBlock . map ( annotation => {
if ( annotation . id === action . annotationId ) {
hasChangedRange = true ;
return { ... annotation ,
range : {
start : action . start ,
end : action . end
}
} ;
}
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
return annotation ;
} ) ;
return hasChangedRange ? newAnnotations : annotationsForBlock ;
} ) ;
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
case 'ANNOTATION_REMOVE_SOURCE' :
2022-09-20 17:43:29 +02:00
return mapValues ( state , annotationsForBlock => {
2021-05-20 14:20:04 +02:00
return filterWithReference ( annotationsForBlock , annotation => {
return annotation . source !== action . source ;
} ) ;
} ) ;
2020-10-13 15:10:30 +02:00
}
2021-05-20 14:20:04 +02:00
return state ;
2020-10-13 15:10:30 +02:00
}
2022-04-11 14:04:30 +02:00
/* harmony default export */ var reducer = ( annotations ) ;
2020-10-13 15:10:30 +02:00
2022-09-20 17:43:29 +02:00
; // CONCATENATED MODULE: ./node_modules/rememo/rememo.js
2018-12-17 05:52:00 +01:00
2020-02-06 22:03:31 +01:00
2022-09-20 17:43:29 +02:00
/** @typedef {(...args: any[]) => *[]} GetDependants */
/** @typedef {() => void} Clear */
2018-12-17 05:52:00 +01:00
/ * *
2022-09-20 17:43:29 +02:00
* @ typedef { {
* getDependants : GetDependants ,
* clear : Clear
* } } EnhancedSelector
* /
/ * *
* Internal cache entry .
*
* @ typedef CacheNode
2021-01-28 03:04:13 +01:00
*
2022-09-20 17:43:29 +02:00
* @ property { ? CacheNode | undefined } [ prev ] Previous node .
* @ property { ? CacheNode | undefined } [ next ] Next node .
* @ property { * [ ] } args Function arguments for cache entry .
* @ property { * } val Function result .
2018-12-17 05:52:00 +01:00
* /
/ * *
2022-09-20 17:43:29 +02:00
* @ typedef Cache
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ property { Clear } clear Function to clear cache .
* @ property { boolean } [ isUniqueByDependants ] Whether dependants are valid in
* considering cache uniqueness . A cache is unique if dependents are all arrays
* or objects .
* @ property { CacheNode ? } [ head ] Cache head .
* @ property { * [ ] } [ lastDependants ] Dependants from previous invocation .
2018-12-17 05:52:00 +01:00
* /
2022-09-20 17:43:29 +02:00
/ * *
* Arbitrary value used as key for referencing cache object in WeakMap tree .
*
* @ type { { } }
* /
var LEAF _KEY = { } ;
2018-12-17 05:52:00 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns the first argument as the sole entry in an array .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ template T
*
* @ param { T } value Value to return .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ return { [ T ] } Value returned as entry in array .
2021-05-20 14:20:04 +02:00
* /
2022-09-20 17:43:29 +02:00
function arrayOf ( value ) {
return [ value ] ;
2018-12-17 05:52:00 +01:00
}
2021-05-20 14:20:04 +02:00
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns true if the value passed is object - like , or false otherwise . A value
* is object - like if it can support property assignment , e . g . object or array .
2021-05-20 14:20:04 +02:00
*
2022-04-11 14:04:30 +02:00
* @ param { * } value Value to test .
2021-05-20 14:20:04 +02:00
*
2022-04-11 14:04:30 +02:00
* @ return { boolean } Whether value is object - like .
2021-01-28 03:04:13 +01:00
* /
2022-09-20 17:43:29 +02:00
function isObjectLike ( value ) {
return ! ! value && 'object' === typeof value ;
2021-05-20 14:20:04 +02:00
}
2021-05-19 17:09:27 +02:00
2021-05-20 14:20:04 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Creates and returns a new cache object .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ return { Cache } Cache object .
2021-05-20 14:20:04 +02:00
* /
2022-04-11 14:04:30 +02:00
function createCache ( ) {
2022-09-20 17:43:29 +02:00
/** @type {Cache} */
2022-04-11 14:04:30 +02:00
var cache = {
2022-09-20 17:43:29 +02:00
clear : function ( ) {
2022-04-11 14:04:30 +02:00
cache . head = null ;
} ,
} ;
2021-05-19 17:09:27 +02:00
2022-04-11 14:04:30 +02:00
return cache ;
2021-05-20 14:20:04 +02:00
}
2022-04-11 14:04:30 +02:00
2021-05-20 14:20:04 +02:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns true if entries within the two arrays are strictly equal by
* reference from a starting index .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ param { * [ ] } a First array .
* @ param { * [ ] } b Second array .
2022-04-11 14:04:30 +02:00
* @ param { number } fromIndex Index from which to start comparison .
2021-05-20 14:20:04 +02:00
*
2022-04-11 14:04:30 +02:00
* @ return { boolean } Whether arrays are shallowly equal .
2021-01-28 03:04:13 +01:00
* /
2022-09-20 17:43:29 +02:00
function isShallowEqual ( a , b , fromIndex ) {
2022-04-11 14:04:30 +02:00
var i ;
2021-01-28 03:04:13 +01:00
2022-09-20 17:43:29 +02:00
if ( a . length !== b . length ) {
2022-04-11 14:04:30 +02:00
return false ;
}
2021-01-28 03:04:13 +01:00
2022-09-20 17:43:29 +02:00
for ( i = fromIndex ; i < a . length ; i ++ ) {
if ( a [ i ] !== b [ i ] ) {
2022-04-11 14:04:30 +02:00
return false ;
}
}
2021-01-28 03:04:13 +01:00
2022-04-11 14:04:30 +02:00
return true ;
}
2021-01-28 03:04:13 +01:00
/ * *
2022-04-11 14:04:30 +02:00
* Returns a memoized selector function . The getDependants function argument is
* called before the memoized selector and is expected to return an immutable
* reference or array of references on which the selector depends for computing
* its own return value . The memoize cache is preserved only as long as those
* dependant references remain the same . If getDependants returns a different
* reference ( s ) , the cache is cleared and the selector value regenerated .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ template { ( ... args : * [ ] ) => * } S
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ param { S } selector Selector function .
* @ param { GetDependants = } getDependants Dependant getter returning an array of
* references used in cache bust consideration .
2021-01-28 03:04:13 +01:00
* /
2022-09-20 17:43:29 +02:00
/* harmony default export */ function rememo ( selector , getDependants ) {
/** @type {WeakMap<*,*>} */
var rootCache ;
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
2022-09-20 17:43:29 +02:00
/** @type {GetDependants} */
var normalizedGetDependants = getDependants ? getDependants : arrayOf ;
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
2021-05-20 14:20:04 +02:00
/ * *
* Returns the cache for a given dependants array . When possible , a WeakMap
* will be used to create a unique cache for each set of dependants . This
* is feasible due to the nature of WeakMap in allowing garbage collection
* to occur on entries where the key object is no longer referenced . Since
* WeakMap requires the key to be an object , this is only possible when the
* dependant is object - like . The root cache is created as a hierarchy where
* each top - level key is the first entry in a dependants set , the value a
* WeakMap where each key is the next dependant , and so on . This continues
* so long as the dependants are object - like . If no dependants are object -
* like , then the cache is shared across all invocations .
*
* @ see isObjectLike
*
2022-09-20 17:43:29 +02:00
* @ param { * [ ] } dependants Selector dependants .
2021-05-20 14:20:04 +02:00
*
2022-09-20 17:43:29 +02:00
* @ return { Cache } Cache object .
2021-05-20 14:20:04 +02:00
* /
2022-09-20 17:43:29 +02:00
function getCache ( dependants ) {
2021-05-20 14:20:04 +02:00
var caches = rootCache ,
isUniqueByDependants = true ,
2022-09-20 17:43:29 +02:00
i ,
dependant ,
map ,
cache ;
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
2022-09-20 17:43:29 +02:00
for ( i = 0 ; i < dependants . length ; i ++ ) {
dependant = dependants [ i ] ;
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
2021-05-20 14:20:04 +02:00
// Can only compose WeakMap from object-like key.
2022-09-20 17:43:29 +02:00
if ( ! isObjectLike ( dependant ) ) {
2021-05-20 14:20:04 +02:00
isUniqueByDependants = false ;
break ;
}
Block Editor: Update `@wordpress` dependencies to match Gutenberg 4.5.1.
- Update the annotations, api-fetch, block-library, blocks, components, compose, core-data, data, date, dom, edit-post, editor, element, format-library, html-entities, i18n, jest-console, jest-preset-default, keycodes, list-reusable-blocks, notices, nux, plugins, rich-text, scripts, token-lists, url, viewport packages.
- Upgrades React from 16.5.2 to 16.6.3.
- Adds a missing `wp-date` dependency to the editor script.
- Updates changed dependencies in `script-loader.php`.
- Fixes undefined notices in some blocks.
- Removes incorrect `gutenberg` textdomain.
Merges [43891], [43903], and [43919] to trunk.
Props atimmer, aduth, youknowriad, danielbachhuber.
See #45145.
Built from https://develop.svn.wordpress.org/trunk@44262
git-svn-id: http://core.svn.wordpress.org/trunk@44092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 16:37:00 +01:00
2021-05-20 14:20:04 +02:00
// Does current segment of cache already have a WeakMap?
2022-09-20 17:43:29 +02:00
if ( caches . has ( dependant ) ) {
2021-05-20 14:20:04 +02:00
// Traverse into nested WeakMap.
2022-09-20 17:43:29 +02:00
caches = caches . get ( dependant ) ;
2021-05-20 14:20:04 +02:00
} else {
// Create, set, and traverse into a new one.
map = new WeakMap ( ) ;
2022-09-20 17:43:29 +02:00
caches . set ( dependant , map ) ;
2021-05-20 14:20:04 +02:00
caches = map ;
}
}
2019-10-15 17:37:08 +02:00
2021-05-20 14:20:04 +02:00
// We use an arbitrary (but consistent) object as key for the last item
// in the WeakMap to serve as our running cache.
2022-09-20 17:43:29 +02:00
if ( ! caches . has ( LEAF _KEY ) ) {
2021-05-20 14:20:04 +02:00
cache = createCache ( ) ;
cache . isUniqueByDependants = isUniqueByDependants ;
2022-09-20 17:43:29 +02:00
caches . set ( LEAF _KEY , cache ) ;
2021-05-20 14:20:04 +02:00
}
2018-12-17 05:52:00 +01:00
2022-09-20 17:43:29 +02:00
return caches . get ( LEAF _KEY ) ;
2021-05-20 14:20:04 +02:00
}
2018-12-17 05:52:00 +01:00
2021-05-20 14:20:04 +02:00
/ * *
* Resets root memoization cache .
* /
function clear ( ) {
2022-09-20 17:43:29 +02:00
rootCache = new WeakMap ( ) ;
2021-05-20 14:20:04 +02:00
}
2022-09-20 17:43:29 +02:00
/* eslint-disable jsdoc/check-param-names */
2021-05-20 14:20:04 +02:00
/ * *
* The augmented selector call , considering first whether dependants have
* changed before passing it to underlying memoize function .
*
2022-09-20 17:43:29 +02:00
* @ param { * } source Source object for derivation .
* @ param { ... * } extraArgs Additional arguments to pass to selector .
2021-05-20 14:20:04 +02:00
*
* @ return { * } Selector result .
* /
2022-09-20 17:43:29 +02:00
/* eslint-enable jsdoc/check-param-names */
function callSelector ( /* source, ...extraArgs */ ) {
2021-05-20 14:20:04 +02:00
var len = arguments . length ,
2022-09-20 17:43:29 +02:00
cache ,
node ,
i ,
args ,
dependants ;
2021-05-20 14:20:04 +02:00
// Create copy of arguments (avoid leaking deoptimization).
2022-09-20 17:43:29 +02:00
args = new Array ( len ) ;
for ( i = 0 ; i < len ; i ++ ) {
args [ i ] = arguments [ i ] ;
2021-05-20 14:20:04 +02:00
}
2022-09-20 17:43:29 +02:00
dependants = normalizedGetDependants . apply ( null , args ) ;
cache = getCache ( dependants ) ;
// If not guaranteed uniqueness by dependants (primitive type), shallow
// compare against last dependants and, if references have changed,
// destroy cache to recalculate result.
if ( ! cache . isUniqueByDependants ) {
if (
cache . lastDependants &&
! isShallowEqual ( dependants , cache . lastDependants , 0 )
) {
2021-05-20 14:20:04 +02:00
cache . clear ( ) ;
}
cache . lastDependants = dependants ;
}
node = cache . head ;
2022-09-20 17:43:29 +02:00
while ( node ) {
2021-05-20 14:20:04 +02:00
// Check whether node arguments match arguments
2022-09-20 17:43:29 +02:00
if ( ! isShallowEqual ( node . args , args , 1 ) ) {
2021-05-20 14:20:04 +02:00
node = node . next ;
continue ;
}
// At this point we can assume we've found a match
// Surface matched node to head if not already
2022-09-20 17:43:29 +02:00
if ( node !== cache . head ) {
2021-05-20 14:20:04 +02:00
// Adjust siblings to point to each other.
2022-09-20 17:43:29 +02:00
/** @type {CacheNode} */ ( node . prev ) . next = node . next ;
if ( node . next ) {
2021-05-20 14:20:04 +02:00
node . next . prev = node . prev ;
}
node . next = cache . head ;
node . prev = null ;
2022-09-20 17:43:29 +02:00
/** @type {CacheNode} */ ( cache . head ) . prev = node ;
2021-05-20 14:20:04 +02:00
cache . head = node ;
}
// Return immediately
return node . val ;
}
// No cached value found. Continue to insertion phase:
2018-12-17 05:52:00 +01:00
2022-09-20 17:43:29 +02:00
node = /** @type {CacheNode} */ ( {
2021-05-20 14:20:04 +02:00
// Generate the result from original function
2022-09-20 17:43:29 +02:00
val : selector . apply ( null , args ) ,
} ) ;
2018-12-17 05:52:00 +01:00
2021-05-20 14:20:04 +02:00
// Avoid including the source object in the cache.
2022-09-20 17:43:29 +02:00
args [ 0 ] = null ;
2021-05-20 14:20:04 +02:00
node . args = args ;
// Don't need to check whether node is already head, since it would
// have been returned above already if it was
// Shift existing head down list
2022-09-20 17:43:29 +02:00
if ( cache . head ) {
2021-05-20 14:20:04 +02:00
cache . head . prev = node ;
node . next = cache . head ;
}
2018-12-17 05:52:00 +01:00
2021-05-20 14:20:04 +02:00
cache . head = node ;
return node . val ;
}
2022-09-20 17:43:29 +02:00
callSelector . getDependants = normalizedGetDependants ;
2021-05-20 14:20:04 +02:00
callSelector . clear = clear ;
clear ( ) ;
2022-09-20 17:43:29 +02:00
return /** @type {S & EnhancedSelector} */ ( callSelector ) ;
2022-04-11 14:04:30 +02:00
}
; // 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 = rememo ( ( 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 ] ;
2021-05-20 14:20:04 +02:00
} ) ;
2022-04-11 14:04:30 +02:00
function _ _experimentalGetAllAnnotationsForBlock ( state , blockClientId ) {
var _state$blockClientId3 ;
2021-05-20 14:20:04 +02:00
2022-04-11 14:04:30 +02:00
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 = rememo ( ( 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 ) {
2022-09-20 17:43:29 +02:00
return Object . values ( state ) . flat ( ) ;
2022-04-11 14:04:30 +02:00
}
2022-09-23 22:04:13 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/rng.js
2022-04-11 14:04:30 +02:00
// 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()).
2022-09-23 22:04:13 +02:00
var getRandomValues ;
var rnds8 = new Uint8Array ( 16 ) ;
2022-04-11 14:04:30 +02:00
function rng ( ) {
// lazy load so that environments that need to polyfill have a chance to do so
if ( ! getRandomValues ) {
2022-09-23 22:04:13 +02:00
// 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 ) ;
2022-04-11 14:04:30 +02:00
if ( ! getRandomValues ) {
throw new Error ( 'crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported' ) ;
}
}
return getRandomValues ( rnds8 ) ;
}
2022-09-23 22:04:13 +02:00
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/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/@wordpress/annotations/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/@wordpress/annotations/node_modules/uuid/dist/esm-browser/stringify.js
2022-04-11 14:04:30 +02:00
/ * *
* Convert array of 16 byte values to UUID string format of the form :
* XXXXXXXX - XXXX - XXXX - XXXX - XXXXXXXXXXXX
* /
2022-09-23 22:04:13 +02:00
var byteToHex = [ ] ;
2022-04-11 14:04:30 +02:00
2022-09-23 22:04:13 +02:00
for ( var i = 0 ; i < 256 ; ++ i ) {
byteToHex . push ( ( i + 0x100 ) . toString ( 16 ) . substr ( 1 ) ) ;
2022-04-11 14:04:30 +02:00
}
2022-09-23 22:04:13 +02:00
function stringify ( arr ) {
var offset = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 0 ;
2022-04-11 14:04:30 +02:00
// 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
2022-09-23 22:04:13 +02:00
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
2022-04-11 14:04:30 +02:00
// 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
2022-09-23 22:04:13 +02:00
if ( ! esm _browser _validate ( uuid ) ) {
2022-04-11 14:04:30 +02:00
throw TypeError ( 'Stringified UUID is invalid' ) ;
}
return uuid ;
}
2022-09-23 22:04:13 +02:00
/* harmony default export */ var esm _browser _stringify = ( stringify ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/v4.js
2022-04-11 14:04:30 +02:00
2022-09-23 21:55:30 +02:00
2022-04-11 14:04:30 +02:00
function v4 ( options , buf , offset ) {
options = options || { } ;
2022-09-23 22:04:13 +02:00
var rnds = options . random || ( options . rng || rng ) ( ) ; // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
2022-04-11 14:04:30 +02:00
rnds [ 6 ] = rnds [ 6 ] & 0x0f | 0x40 ;
rnds [ 8 ] = rnds [ 8 ] & 0x3f | 0x80 ; // Copy bytes to buffer, if provided
if ( buf ) {
offset = offset || 0 ;
2022-09-23 22:04:13 +02:00
for ( var i = 0 ; i < 16 ; ++ i ) {
2022-04-11 14:04:30 +02:00
buf [ offset + i ] = rnds [ i ] ;
}
return buf ;
}
2022-09-23 22:04:13 +02:00
return esm _browser _stringify ( rnds ) ;
2022-04-11 14:04:30 +02:00
}
/* 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 .
* /
2021-05-20 14:20:04 +02:00
2022-04-11 14:04:30 +02:00
/ * *
* 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 ( _ref ) {
let {
blockClientId ,
richTextIdentifier = null ,
range = null ,
selector = 'range' ,
source = 'default' ,
id = esm _browser _v4 ( )
} = _ref ;
const action = {
type : 'ANNOTATION_ADD' ,
id ,
blockClientId ,
richTextIdentifier ,
source ,
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
} ;
}
/ * *
* 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
* /
/ * *
* 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 = ( 0 , external _wp _data _namespaceObject . createReduxStore ) ( STORE _NAME , {
reducer : reducer ,
selectors : selectors _namespaceObject ,
actions : actions _namespaceObject
} ) ;
( 0 , external _wp _data _namespaceObject . register ) ( store ) ;
; // CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/index.js
/ * *
* Internal dependencies
* /
2021-05-20 14:20:04 +02:00
2018-12-17 05:52:00 +01:00
2022-04-11 14:04:30 +02:00
( window . wp = window . wp || { } ) . annotations = _ _webpack _exports _ _ ;
/******/ } ) ( )
;