2018-12-14 05:41:57 +01:00
this [ "wp" ] = this [ "wp" ] || { } ; this [ "wp" ] [ "richText" ] =
/******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _webpack _require _ _ . m = modules ;
/******/
/******/ // expose the module cache
/******/ _ _webpack _require _ _ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , name , getter ) {
/******/ if ( ! _ _webpack _require _ _ . o ( exports , name ) ) {
/******/ Object . defineProperty ( exports , name , { enumerable : true , get : getter } ) ;
/******/ }
/******/ } ;
/******/
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ _ _webpack _require _ _ . t = function ( value , mode ) {
/******/ if ( mode & 1 ) value = _ _webpack _require _ _ ( value ) ;
/******/ if ( mode & 8 ) return value ;
/******/ if ( ( mode & 4 ) && typeof value === 'object' && value && value . _ _esModule ) return value ;
/******/ var ns = Object . create ( null ) ;
/******/ _ _webpack _require _ _ . r ( ns ) ;
/******/ Object . defineProperty ( ns , 'default' , { enumerable : true , value : value } ) ;
/******/ if ( mode & 2 && typeof value != 'string' ) for ( var key in value ) _ _webpack _require _ _ . d ( ns , key , function ( key ) { return value [ key ] ; } . bind ( null , key ) ) ;
/******/ return ns ;
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ _ _webpack _require _ _ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ _ _webpack _require _ _ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ _ _webpack _require _ _ . p = "" ;
/******/
/******/
/******/ // Load entry module and return exports
2019-03-21 13:48:00 +01:00
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = 361 ) ;
2018-12-14 05:41:57 +01:00
/******/ } )
/************************************************************************/
/******/ ( {
2018-12-18 04:14:52 +01:00
/***/ 0 :
/***/ ( function ( module , exports ) {
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
( function ( ) { module . exports = this [ "wp" ] [ "element" ] ; } ( ) ) ;
2018-12-14 05:41:57 +01:00
/***/ } ) ,
2018-12-18 04:14:52 +01:00
/***/ 15 :
2018-12-14 05:41:57 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2018-12-18 04:14:52 +01:00
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _defineProperty ; } ) ;
2018-12-14 05:41:57 +01:00
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 ;
}
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 17 :
2018-12-17 05:52:00 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2018-12-14 05:41:57 +01:00
"use strict" ;
Build/Test Tools: Support NodeJS 14.x in the 5.2 branch.
This updates the 5.2 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.
In addition to backporting the package updates that happened after branching 5.2, dependencies that were removed in future releases have also been updated to their latest versions.
Props desrosj, dd32, netweb, jorbin, whyisjake.
Merges [45321,45765,45826,45875,46403-46404,46408-46409,47404,47867,47872-47873,48213,48705,49636,49933,49937,49939-49940,49983,49989,50017,50126,50176,50185] to the 5.2 branch.
See #52341.
Built from https://develop.svn.wordpress.org/branches/5.2@50191
git-svn-id: http://core.svn.wordpress.org/branches/5.2@49869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-05 04:20:06 +01:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return /* binding */ _toConsumableArray ; } ) ;
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
function _arrayWithoutHoles ( arr ) {
if ( Array . isArray ( arr ) ) {
for ( var i = 0 , arr2 = new Array ( arr . length ) ; i < arr . length ; i ++ ) {
arr2 [ i ] = arr [ i ] ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return arr2 ;
}
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
2019-03-21 13:48:00 +01:00
var iterableToArray = _ _webpack _require _ _ ( 34 ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
2018-12-14 05:41:57 +01:00
function _nonIterableSpread ( ) {
throw new TypeError ( "Invalid attempt to spread non-iterable instance" ) ;
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function _toConsumableArray ( arr ) {
return _arrayWithoutHoles ( arr ) || Object ( iterableToArray [ "a" /* default */ ] ) ( arr ) || _nonIterableSpread ( ) ;
2018-12-14 05:41:57 +01:00
}
/***/ } ) ,
2019-03-07 10:09:59 +01:00
/***/ 19 :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _extends ; } ) ;
function _extends ( ) {
_extends = Object . assign || function ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] ;
for ( var key in source ) {
if ( Object . prototype . hasOwnProperty . call ( source , key ) ) {
target [ key ] = source [ key ] ;
}
}
}
return target ;
} ;
return _extends . apply ( this , arguments ) ;
}
/***/ } ) ,
2018-12-18 04:14:52 +01:00
/***/ 2 :
/***/ ( function ( module , exports ) {
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
( function ( ) { module . exports = this [ "lodash" ] ; } ( ) ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/***/ } ) ,
2018-12-14 05:41:57 +01:00
2019-04-22 14:40:04 +02:00
/***/ 26 :
2018-12-18 04:14:52 +01:00
/***/ ( function ( module , exports ) {
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
( function ( ) { module . exports = this [ "wp" ] [ "hooks" ] ; } ( ) ) ;
2018-12-14 05:41:57 +01:00
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 30 :
2018-12-14 05:41:57 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2018-12-18 04:14:52 +01:00
2019-03-07 10:09:59 +01:00
var LEAF _KEY , hasWeakMap ;
2018-12-18 04:14:52 +01:00
2018-12-14 05:41:57 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Arbitrary value used as key for referencing cache object in WeakMap tree .
*
* @ type { Object }
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
LEAF _KEY = { } ;
2018-12-14 05:41:57 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Whether environment supports WeakMap .
*
* @ type { boolean }
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
hasWeakMap = typeof WeakMap !== 'undefined' ;
2018-12-14 05:41:57 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Returns the first argument as the sole entry in an array .
2018-12-14 05:41:57 +01:00
*
2019-03-07 10:09:59 +01:00
* @ param { * } value Value to return .
2018-12-14 05:41:57 +01:00
*
2019-03-07 10:09:59 +01:00
* @ return { Array } Value returned as entry in array .
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
function arrayOf ( value ) {
return [ value ] ;
2018-12-14 05:41:57 +01:00
}
2018-12-15 12:00:40 +01:00
/ * *
2019-03-07 10:09:59 +01: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 .
2018-12-15 12:00:40 +01:00
*
2019-03-07 10:09:59 +01:00
* @ param { * } value Value to test .
2018-12-15 12:00:40 +01:00
*
2019-03-07 10:09:59 +01:00
* @ return { boolean } Whether value is object - like .
2018-12-15 12:00:40 +01:00
* /
2019-03-07 10:09:59 +01:00
function isObjectLike ( value ) {
return ! ! value && 'object' === typeof value ;
}
2018-12-14 05:41:57 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Creates and returns a new cache object .
2018-12-18 04:14:52 +01:00
*
2019-03-07 10:09:59 +01:00
* @ return { Object } Cache object .
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
function createCache ( ) {
var cache = {
clear : function ( ) {
cache . head = null ;
} ,
} ;
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
return cache ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Returns true if entries within the two arrays are strictly equal by
* reference from a starting index .
2018-12-18 04:14:52 +01:00
*
2019-03-07 10:09:59 +01:00
* @ param { Array } a First array .
* @ param { Array } b Second array .
* @ param { number } fromIndex Index from which to start comparison .
*
* @ return { boolean } Whether arrays are shallowly equal .
2018-12-18 04:14:52 +01:00
* /
2019-03-07 10:09:59 +01:00
function isShallowEqual ( a , b , fromIndex ) {
var i ;
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
if ( a . length !== b . length ) {
return false ;
}
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
for ( i = fromIndex ; i < a . length ; i ++ ) {
if ( a [ i ] !== b [ i ] ) {
return false ;
}
}
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
return true ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/ * *
2019-03-07 10:09:59 +01: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 .
2018-12-14 05:41:57 +01:00
*
2019-03-07 10:09:59 +01:00
* @ param { Function } selector Selector function .
* @ param { Function } getDependants Dependant getter returning an immutable
* reference or array of reference used in
* cache bust consideration .
2018-12-14 05:41:57 +01:00
*
2019-03-07 10:09:59 +01:00
* @ return { Function } Memoized selector .
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
/* harmony default export */ _ _webpack _exports _ _ [ "a" ] = ( function ( selector , getDependants ) {
var rootCache , getCache ;
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
// Use object source as dependant if getter not provided
if ( ! getDependants ) {
getDependants = arrayOf ;
}
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
/ * *
* Returns the root cache . If WeakMap is supported , this is assigned to the
* root WeakMap cache set , otherwise it is a shared instance of the default
* cache object .
*
* @ return { ( WeakMap | Object ) } Root cache object .
* /
function getRootCache ( ) {
return rootCache ;
}
/ * *
* 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
*
* @ param { Array } dependants Selector dependants .
*
* @ return { Object } Cache object .
* /
function getWeakMapCache ( dependants ) {
var caches = rootCache ,
isUniqueByDependants = true ,
i , dependant , map , cache ;
for ( i = 0 ; i < dependants . length ; i ++ ) {
dependant = dependants [ i ] ;
// Can only compose WeakMap from object-like key.
if ( ! isObjectLike ( dependant ) ) {
isUniqueByDependants = false ;
break ;
}
// Does current segment of cache already have a WeakMap?
if ( caches . has ( dependant ) ) {
// Traverse into nested WeakMap.
caches = caches . get ( dependant ) ;
} else {
// Create, set, and traverse into a new one.
map = new WeakMap ( ) ;
caches . set ( dependant , map ) ;
caches = map ;
}
}
// We use an arbitrary (but consistent) object as key for the last item
// in the WeakMap to serve as our running cache.
if ( ! caches . has ( LEAF _KEY ) ) {
cache = createCache ( ) ;
cache . isUniqueByDependants = isUniqueByDependants ;
caches . set ( LEAF _KEY , cache ) ;
}
return caches . get ( LEAF _KEY ) ;
}
// Assign cache handler by availability of WeakMap
getCache = hasWeakMap ? getWeakMapCache : getRootCache ;
/ * *
* Resets root memoization cache .
* /
function clear ( ) {
rootCache = hasWeakMap ? new WeakMap ( ) : createCache ( ) ;
}
// eslint-disable-next-line jsdoc/check-param-names
/ * *
* The augmented selector call , considering first whether dependants have
* changed before passing it to underlying memoize function .
*
* @ param { Object } source Source object for derivation .
* @ param { ... * } extraArgs Additional arguments to pass to selector .
*
* @ return { * } Selector result .
* /
function callSelector ( /* source, ...extraArgs */ ) {
var len = arguments . length ,
cache , node , i , args , dependants ;
// Create copy of arguments (avoid leaking deoptimization).
args = new Array ( len ) ;
for ( i = 0 ; i < len ; i ++ ) {
args [ i ] = arguments [ i ] ;
}
dependants = getDependants . apply ( null , args ) ;
cache = getCache ( dependants ) ;
// If not guaranteed uniqueness by dependants (primitive type or lack
// of WeakMap support), 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 ) ) {
cache . clear ( ) ;
}
cache . lastDependants = dependants ;
}
node = cache . head ;
while ( node ) {
// Check whether node arguments match arguments
if ( ! isShallowEqual ( node . args , args , 1 ) ) {
node = node . next ;
continue ;
}
// At this point we can assume we've found a match
// Surface matched node to head if not already
if ( node !== cache . head ) {
// Adjust siblings to point to each other.
node . prev . next = node . next ;
if ( node . next ) {
node . next . prev = node . prev ;
}
node . next = cache . head ;
node . prev = null ;
cache . head . prev = node ;
cache . head = node ;
}
// Return immediately
return node . val ;
}
// No cached value found. Continue to insertion phase:
node = {
// Generate the result from original function
val : selector . apply ( null , args ) ,
} ;
// Avoid including the source object in the cache.
args [ 0 ] = null ;
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
if ( cache . head ) {
cache . head . prev = node ;
node . next = cache . head ;
}
cache . head = node ;
return node . val ;
}
callSelector . getDependants = getDependants ;
callSelector . clear = clear ;
clear ( ) ;
return callSelector ;
} ) ;
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 32 :
2019-03-07 10:09:59 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _typeof ; } ) ;
function _typeof2 ( obj ) { if ( typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ) { _typeof2 = function _typeof2 ( obj ) { return typeof obj ; } ; } else { _typeof2 = function _typeof2 ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ; } return _typeof2 ( obj ) ; }
function _typeof ( obj ) {
if ( typeof Symbol === "function" && _typeof2 ( Symbol . iterator ) === "symbol" ) {
_typeof = function _typeof ( obj ) {
return _typeof2 ( obj ) ;
} ;
} else {
_typeof = function _typeof ( obj ) {
return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : _typeof2 ( obj ) ;
} ;
}
return _typeof ( obj ) ;
}
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 34 :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _iterableToArray ; } ) ;
function _iterableToArray ( iter ) {
if ( Symbol . iterator in Object ( iter ) || Object . prototype . toString . call ( iter ) === "[object Arguments]" ) return Array . from ( iter ) ;
}
/***/ } ) ,
/***/ 361 :
2019-03-07 10:09:59 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
Build/Test Tools: Support NodeJS 14.x in the 5.2 branch.
This updates the 5.2 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.
In addition to backporting the package updates that happened after branching 5.2, dependencies that were removed in future releases have also been updated to their latest versions.
Props desrosj, dd32, netweb, jorbin, whyisjake.
Merges [45321,45765,45826,45875,46403-46404,46408-46409,47404,47867,47872-47873,48213,48705,49636,49933,49937,49939-49940,49983,49989,50017,50126,50176,50185] to the 5.2 branch.
See #52341.
Built from https://develop.svn.wordpress.org/branches/5.2@50191
git-svn-id: http://core.svn.wordpress.org/branches/5.2@49869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-05 04:20:06 +01:00
// ESM COMPAT FLAG
2019-03-07 10:09:59 +01:00
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
Build/Test Tools: Support NodeJS 14.x in the 5.2 branch.
This updates the 5.2 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.
In addition to backporting the package updates that happened after branching 5.2, dependencies that were removed in future releases have also been updated to their latest versions.
Props desrosj, dd32, netweb, jorbin, whyisjake.
Merges [45321,45765,45826,45875,46403-46404,46408-46409,47404,47867,47872-47873,48213,48705,49636,49933,49937,49939-49940,49983,49989,50017,50126,50176,50185] to the 5.2 branch.
See #52341.
Built from https://develop.svn.wordpress.org/branches/5.2@50191
git-svn-id: http://core.svn.wordpress.org/branches/5.2@49869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-05 04:20:06 +01:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "applyFormat" , function ( ) { return /* reexport */ applyFormat ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "charAt" , function ( ) { return /* reexport */ charAt ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "concat" , function ( ) { return /* reexport */ concat ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "create" , function ( ) { return /* reexport */ create ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getActiveFormat" , function ( ) { return /* reexport */ getActiveFormat ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getActiveObject" , function ( ) { return /* reexport */ getActiveObject ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getSelectionEnd" , function ( ) { return /* reexport */ getSelectionEnd ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getSelectionStart" , function ( ) { return /* reexport */ getSelectionStart ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "getTextContent" , function ( ) { return /* reexport */ getTextContent ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "isCollapsed" , function ( ) { return /* reexport */ isCollapsed ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "isEmpty" , function ( ) { return /* reexport */ isEmpty ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "isEmptyLine" , function ( ) { return /* reexport */ isEmptyLine ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "join" , function ( ) { return /* reexport */ join ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "registerFormatType" , function ( ) { return /* reexport */ registerFormatType ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "removeFormat" , function ( ) { return /* reexport */ removeFormat ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "remove" , function ( ) { return /* reexport */ remove _remove ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "replace" , function ( ) { return /* reexport */ replace ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "insert" , function ( ) { return /* reexport */ insert ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "insertLineBreak" , function ( ) { return /* reexport */ insertLineBreak ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "insertLineSeparator" , function ( ) { return /* reexport */ insertLineSeparator ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "insertObject" , function ( ) { return /* reexport */ insertObject ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "slice" , function ( ) { return /* reexport */ slice ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "split" , function ( ) { return /* reexport */ split ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "apply" , function ( ) { return /* reexport */ apply ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "unstableToDom" , function ( ) { return /* reexport */ toDom ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "toHTMLString" , function ( ) { return /* reexport */ toHTMLString ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "toggleFormat" , function ( ) { return /* reexport */ toggleFormat ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "LINE_SEPARATOR" , function ( ) { return /* reexport */ LINE _SEPARATOR ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "unregisterFormatType" , function ( ) { return /* reexport */ unregisterFormatType ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "indentListItems" , function ( ) { return /* reexport */ indentListItems ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "outdentListItems" , function ( ) { return /* reexport */ outdentListItems ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "changeListType" , function ( ) { return /* reexport */ changeListType ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "__unstableUpdateFormats" , function ( ) { return /* reexport */ updateFormats ; } ) ;
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "__unstableGetActiveFormats" , function ( ) { return /* reexport */ getActiveFormats ; } ) ;
// NAMESPACE OBJECT: ./node_modules/@wordpress/rich-text/build-module/store/selectors.js
2019-03-07 10:09:59 +01:00
var selectors _namespaceObject = { } ;
_ _webpack _require _ _ . r ( selectors _namespaceObject ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "getFormatTypes" , function ( ) { return getFormatTypes ; } ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "getFormatType" , function ( ) { return getFormatType ; } ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "getFormatTypeForBareElement" , function ( ) { return getFormatTypeForBareElement ; } ) ;
_ _webpack _require _ _ . d ( selectors _namespaceObject , "getFormatTypeForClassName" , function ( ) { return getFormatTypeForClassName ; } ) ;
Build/Test Tools: Support NodeJS 14.x in the 5.2 branch.
This updates the 5.2 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.
In addition to backporting the package updates that happened after branching 5.2, dependencies that were removed in future releases have also been updated to their latest versions.
Props desrosj, dd32, netweb, jorbin, whyisjake.
Merges [45321,45765,45826,45875,46403-46404,46408-46409,47404,47867,47872-47873,48213,48705,49636,49933,49937,49939-49940,49983,49989,50017,50126,50176,50185] to the 5.2 branch.
See #52341.
Built from https://develop.svn.wordpress.org/branches/5.2@50191
git-svn-id: http://core.svn.wordpress.org/branches/5.2@49869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-05 04:20:06 +01:00
// NAMESPACE OBJECT: ./node_modules/@wordpress/rich-text/build-module/store/actions.js
2019-03-07 10:09:59 +01:00
var actions _namespaceObject = { } ;
_ _webpack _require _ _ . r ( actions _namespaceObject ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "addFormatTypes" , function ( ) { return addFormatTypes ; } ) ;
_ _webpack _require _ _ . d ( actions _namespaceObject , "removeFormatTypes" , function ( ) { return removeFormatTypes ; } ) ;
// EXTERNAL MODULE: external {"this":["wp","data"]}
var external _this _wp _data _ = _ _webpack _require _ _ ( 5 ) ;
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js
2019-03-21 13:48:00 +01:00
var objectSpread = _ _webpack _require _ _ ( 7 ) ;
2019-03-07 10:09:59 +01:00
// EXTERNAL MODULE: external "lodash"
var external _lodash _ = _ _webpack _require _ _ ( 2 ) ;
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/reducer.js
/ * *
* External dependencies
* /
/ * *
* WordPress dependencies
* /
/ * *
* Reducer managing the format types
*
* @ param { Object } state Current state .
* @ param { Object } action Dispatched action .
*
* @ return { Object } Updated state .
* /
function reducer _formatTypes ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
var action = arguments . length > 1 ? arguments [ 1 ] : undefined ;
switch ( action . type ) {
case 'ADD_FORMAT_TYPES' :
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , state , Object ( external _lodash _ [ "keyBy" ] ) ( action . formatTypes , 'name' ) ) ;
case 'REMOVE_FORMAT_TYPES' :
return Object ( external _lodash _ [ "omit" ] ) ( state , action . names ) ;
}
return state ;
}
/* harmony default export */ var reducer = ( Object ( external _this _wp _data _ [ "combineReducers" ] ) ( {
formatTypes : reducer _formatTypes
} ) ) ;
// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
2019-03-21 13:48:00 +01:00
var rememo = _ _webpack _require _ _ ( 30 ) ;
2019-03-07 10:09:59 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/selectors.js
/ * *
* External dependencies
* /
/ * *
* Returns all the available format types .
*
* @ param { Object } state Data state .
*
* @ return { Array } Format types .
* /
var getFormatTypes = Object ( rememo [ "a" /* default */ ] ) ( function ( state ) {
return Object . values ( state . formatTypes ) ;
} , function ( state ) {
return [ state . formatTypes ] ;
} ) ;
/ * *
* Returns a format type by name .
*
* @ param { Object } state Data state .
* @ param { string } name Format type name .
*
* @ return { Object ? } Format type .
* /
function getFormatType ( state , name ) {
return state . formatTypes [ name ] ;
}
/ * *
* Gets the format type , if any , that can handle a bare element ( without a
* data - format - type attribute ) , given the tag name of this element .
*
* @ param { Object } state Data state .
* @ param { string } bareElementTagName The tag name of the element to find a
* format type for .
* @ return { ? Object } Format type .
* /
function getFormatTypeForBareElement ( state , bareElementTagName ) {
return Object ( external _lodash _ [ "find" ] ) ( getFormatTypes ( state ) , function ( _ref ) {
var tagName = _ref . tagName ;
return bareElementTagName === tagName ;
} ) ;
}
/ * *
* Gets the format type , if any , that can handle an element , given its classes .
*
* @ param { Object } state Data state .
* @ param { string } elementClassName The classes of the element to find a format
* type for .
* @ return { ? Object } Format type .
* /
function getFormatTypeForClassName ( state , elementClassName ) {
return Object ( external _lodash _ [ "find" ] ) ( getFormatTypes ( state ) , function ( _ref2 ) {
var className = _ref2 . className ;
if ( className === null ) {
return false ;
}
return " " . concat ( elementClassName , " " ) . indexOf ( " " . concat ( className , " " ) ) >= 0 ;
} ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/actions.js
/ * *
* External dependencies
* /
/ * *
* Returns an action object used in signalling that format types have been
* added .
*
* @ param { Array | Object } formatTypes Format types received .
*
* @ return { Object } Action object .
* /
function addFormatTypes ( formatTypes ) {
return {
type : 'ADD_FORMAT_TYPES' ,
formatTypes : Object ( external _lodash _ [ "castArray" ] ) ( formatTypes )
} ;
}
/ * *
* Returns an action object used to remove a registered format type .
*
* @ param { string | Array } names Format name .
*
* @ return { Object } Action object .
* /
function removeFormatTypes ( names ) {
2018-12-18 04:14:52 +01:00
return {
type : 'REMOVE_FORMAT_TYPES' ,
names : Object ( external _lodash _ [ "castArray" ] ) ( names )
} ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/index.js
2018-12-14 12:02:53 +01:00
/ * *
2018-12-17 05:52:00 +01:00
* WordPress dependencies
2018-12-14 12:02:53 +01:00
* /
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
Object ( external _this _wp _data _ [ "registerStore" ] ) ( 'core/rich-text' , {
reducer : reducer ,
selectors : selectors _namespaceObject ,
actions : actions _namespaceObject
} ) ;
2018-12-14 12:02:53 +01:00
2019-03-21 13:48:00 +01:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
var toConsumableArray = _ _webpack _require _ _ ( 17 ) ;
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-format-equal.js
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Optimised equality check for format objects .
*
* @ param { ? Object } format1 Format to compare .
* @ param { ? Object } format2 Format to compare .
*
* @ return { boolean } True if formats are equal , false if not .
2018-12-14 05:41:57 +01:00
* /
2018-12-18 04:14:52 +01:00
function isFormatEqual ( format1 , format2 ) {
// Both not defined.
if ( format1 === format2 ) {
return true ;
} // Either not defined.
2018-12-14 05:41:57 +01:00
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( ! format1 || ! format2 ) {
return false ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
if ( format1 . type !== format2 . type ) {
return false ;
}
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
var attributes1 = format1 . attributes ;
var attributes2 = format2 . attributes ; // Both not defined.
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
if ( attributes1 === attributes2 ) {
return true ;
} // Either not defined.
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
if ( ! attributes1 || ! attributes2 ) {
return false ;
2018-12-17 05:52:00 +01:00
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
var keys1 = Object . keys ( attributes1 ) ;
var keys2 = Object . keys ( attributes2 ) ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( keys1 . length !== keys2 . length ) {
return false ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
var length = keys1 . length ; // Optimise for speed.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
for ( var i = 0 ; i < length ; i ++ ) {
var name = keys1 [ i ] ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( attributes1 [ name ] !== attributes2 [ name ] ) {
return false ;
2018-12-14 12:02:53 +01:00
}
}
2018-12-18 04:14:52 +01:00
return true ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/normalise-formats.js
2019-03-21 13:48:00 +01:00
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Internal dependencies
* /
/ * *
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
* Normalises formats : ensures subsequent adjacent equal formats have the same
* reference .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to normalise formats of .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ return { Object } New value with normalised formats .
2018-12-14 05:41:57 +01:00
* /
2019-03-21 13:48:00 +01:00
function normaliseFormats ( value ) {
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
var newFormats = value . formats . slice ( ) ;
newFormats . forEach ( function ( formatsAtIndex , index ) {
var formatsAtPreviousIndex = newFormats [ index - 1 ] ;
2018-12-14 05:41:57 +01:00
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
if ( formatsAtPreviousIndex ) {
var newFormatsAtIndex = formatsAtIndex . slice ( ) ;
newFormatsAtIndex . forEach ( function ( format , formatIndex ) {
var previousFormat = formatsAtPreviousIndex [ formatIndex ] ;
2018-12-14 05:41:57 +01:00
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
if ( isFormatEqual ( format , previousFormat ) ) {
newFormatsAtIndex [ formatIndex ] = previousFormat ;
}
} ) ;
newFormats [ index ] = newFormatsAtIndex ;
}
2018-12-18 04:14:52 +01:00
} ) ;
2019-03-21 13:48:00 +01:00
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
formats : newFormats
} ) ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/apply-format.js
2019-03-21 13:48:00 +01:00
2018-12-18 04:14:52 +01:00
/ * *
* External dependencies
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/ * *
* Internal dependencies
* /
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Apply a format object to a Rich Text value from the given ` startIndex ` to the
* given ` endIndex ` . Indices are retrieved from the selection if none are
* provided .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { Object } format Format to apply .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-18 04:14:52 +01:00
*
* @ return { Object } A new value with the format applied .
2018-12-14 05:41:57 +01:00
* /
2019-03-21 13:48:00 +01:00
function applyFormat ( value , format ) {
var startIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : value . start ;
var endIndex = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : value . end ;
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
var formats = value . formats ,
2019-05-16 20:12:57 +02:00
activeFormats = value . activeFormats ;
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
var newFormats = formats . slice ( ) ; // The selection is collapsed.
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( startIndex === endIndex ) {
var startFormat = Object ( external _lodash _ [ "find" ] ) ( newFormats [ startIndex ] , {
type : format . type
} ) ; // If the caret is at a format of the same type, expand start and end to
// the edges of the format. This is useful to apply new attributes.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( startFormat ) {
while ( Object ( external _lodash _ [ "find" ] ) ( newFormats [ startIndex ] , startFormat ) ) {
applyFormats ( newFormats , startIndex , format ) ;
startIndex -- ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
endIndex ++ ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
while ( Object ( external _lodash _ [ "find" ] ) ( newFormats [ endIndex ] , startFormat ) ) {
applyFormats ( newFormats , endIndex , format ) ;
endIndex ++ ;
2019-05-16 20:12:57 +02:00
}
2018-12-18 04:14:52 +01:00
}
} else {
for ( var index = startIndex ; index < endIndex ; index ++ ) {
applyFormats ( newFormats , index , format ) ;
2018-12-14 05:41:57 +01:00
}
}
2019-03-21 13:48:00 +01:00
return normaliseFormats ( Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
2019-05-16 20:12:57 +02:00
formats : newFormats ,
// Always revise active formats. This serves as a placeholder for new
// inputs with the format so new input appears with the format applied,
// and ensures a format of the same type uses the latest values.
activeFormats : [ ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( Object ( external _lodash _ [ "reject" ] ) ( activeFormats , {
type : format . type
} ) ) , [ format ] )
2019-03-21 13:48:00 +01:00
} ) ) ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
function applyFormats ( formats , index , format ) {
if ( formats [ index ] ) {
2019-03-21 13:48:00 +01:00
var newFormatsAtIndex = formats [ index ] . filter ( function ( _ref ) {
var type = _ref . type ;
2018-12-18 04:14:52 +01:00
return type !== format . type ;
} ) ;
newFormatsAtIndex . push ( format ) ;
formats [ index ] = newFormatsAtIndex ;
} else {
formats [ index ] = [ format ] ;
2018-12-14 05:41:57 +01:00
}
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/char-at.js
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Gets the character at the specified index , or returns ` undefined ` if no
* character was found .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { Object } value Value to get the character from .
* @ param { string } index Index to use .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ return { string | undefined } A one character long string , or undefined .
2018-12-14 05:41:57 +01:00
* /
2018-12-18 04:14:52 +01:00
function charAt ( _ref , index ) {
var text = _ref . text ;
return text [ index ] ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
2019-03-21 13:48:00 +01:00
var esm _typeof = _ _webpack _require _ _ ( 32 ) ;
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create-element.js
2018-12-15 12:00:40 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Parse the given HTML into a body element .
2018-12-15 12:00:40 +01:00
*
2018-12-19 04:16:48 +01:00
* Note : The current implementation will return a shared reference , reset on
* each call to ` createElement ` . Therefore , you should not hold a reference to
* the value to operate upon asynchronously , as it may have unexpected results .
*
2018-12-18 04:14:52 +01:00
* @ param { HTMLDocument } document The HTML document to use to parse .
* @ param { string } html The HTML to parse .
2018-12-15 12:00:40 +01:00
*
2018-12-18 04:14:52 +01:00
* @ return { HTMLBodyElement } Body element with parsed HTML .
2018-12-15 12:00:40 +01:00
* /
2018-12-18 04:14:52 +01:00
function createElement ( _ref , html ) {
var implementation = _ref . implementation ;
2018-12-19 04:16:48 +01:00
// Because `createHTMLDocument` is an expensive operation, and with this
// function being internal to `rich-text` (full control in avoiding a risk
// of asynchronous operations on the shared reference), a single document
// is reused and reset for each call to the function.
if ( ! createElement . body ) {
createElement . body = implementation . createHTMLDocument ( '' ) . body ;
}
2018-12-18 04:14:52 +01:00
2018-12-19 04:16:48 +01:00
createElement . body . innerHTML = html ;
return createElement . body ;
2018-12-15 12:00:40 +01:00
}
2019-03-21 13:48:00 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/special-characters.js
/ * *
* Line separator character .
* /
var LINE _SEPARATOR = "\u2028" ;
var OBJECT _REPLACEMENT _CHARACTER = "\uFFFC" ;
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create.js
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
2018-12-15 12:00:40 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* WordPress dependencies
2018-12-15 12:00:40 +01:00
* /
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Internal dependencies
2018-12-14 05:41:57 +01:00
* /
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
/ * *
* Browser dependencies
* /
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
var _window$Node = window . Node ,
TEXT _NODE = _window$Node . TEXT _NODE ,
ELEMENT _NODE = _window$Node . ELEMENT _NODE ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
function createEmptyValue ( ) {
return {
formats : [ ] ,
2019-03-21 13:48:00 +01:00
replacements : [ ] ,
2018-12-18 04:14:52 +01:00
text : ''
} ;
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
function simpleFindKey ( object , value ) {
for ( var key in object ) {
if ( object [ key ] === value ) {
return key ;
}
}
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function toFormat ( _ref ) {
var type = _ref . type ,
attributes = _ref . attributes ;
var formatType ;
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
if ( attributes && attributes . class ) {
formatType = Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatTypeForClassName ( attributes . class ) ;
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
if ( formatType ) {
// Preserve any additional classes.
attributes . class = " " . concat ( attributes . class , " " ) . replace ( " " . concat ( formatType . className , " " ) , ' ' ) . trim ( ) ;
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
if ( ! attributes . class ) {
delete attributes . class ;
}
}
}
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
if ( ! formatType ) {
formatType = Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatTypeForBareElement ( type ) ;
}
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
if ( ! formatType ) {
return attributes ? {
type : type ,
attributes : attributes
} : {
type : type
} ;
}
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
if ( formatType . _ _experimentalCreatePrepareEditableTree && ! formatType . _ _experimentalCreateOnChangeEditableValue ) {
return null ;
}
2018-12-18 04:14:52 +01:00
if ( ! attributes ) {
return {
type : formatType . name
} ;
}
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
var registeredAttributes = { } ;
var unregisteredAttributes = { } ;
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
for ( var name in attributes ) {
var key = simpleFindKey ( formatType . attributes , name ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( key ) {
registeredAttributes [ key ] = attributes [ name ] ;
} else {
unregisteredAttributes [ name ] = attributes [ name ] ;
}
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return {
type : formatType . name ,
attributes : registeredAttributes ,
unregisteredAttributes : unregisteredAttributes
} ;
}
/ * *
* Create a RichText value from an ` Element ` tree ( DOM ) , an HTML string or a
* plain text string , with optionally a ` Range ` object to set the selection . If
* called without any input , an empty value will be created . If
* ` multilineTag ` is provided , any content of direct children whose type matches
* ` multilineTag ` will be separated by two newlines . The optional functions can
* be used to filter out content .
*
2019-03-21 13:48:00 +01:00
* A value will have the following shape , which you are strongly encouraged not
* to modify without the use of helper functions :
*
* ` ` ` js
* {
* text : string ,
* formats : Array ,
* replacements : Array ,
* ? start : number ,
* ? end : number ,
* }
* ` ` `
*
* As you can see , text and formatting are separated . ` text ` holds the text ,
* including any replacement characters for objects and lines . ` formats ` ,
* ` objects ` and ` lines ` are all sparse arrays of the same length as ` text ` . It
* holds information about the formatting at the relevant text indices . Finally
* ` start ` and ` end ` state which text indices are selected . They are only
* provided if a ` Range ` was given .
*
* @ param { Object } [ $1 ] Optional named arguments .
* @ param { Element } [ $1 . element ] Element to create value from .
* @ param { string } [ $1 . text ] Text to create value from .
* @ param { string } [ $1 . html ] HTML to create value from .
* @ param { Range } [ $1 . range ] Range to create value from .
* @ param { string } [ $1 . multilineTag ] Multiline tag if the structure is
2018-12-18 04:14:52 +01:00
* multiline .
2019-03-21 13:48:00 +01:00
* @ param { Array } [ $1 . multilineWrapperTags ] Tags where lines can be found if
2018-12-18 04:14:52 +01:00
* nesting is possible .
*
* @ return { Object } A rich text value .
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function create ( ) {
var _ref2 = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ,
element = _ref2 . element ,
text = _ref2 . text ,
html = _ref2 . html ,
range = _ref2 . range ,
multilineTag = _ref2 . multilineTag ,
2019-03-21 13:48:00 +01:00
multilineWrapperTags = _ref2 . multilineWrapperTags ,
isEditableTree = _ref2 . _ _unstableIsEditableTree ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( typeof text === 'string' && text . length > 0 ) {
return {
formats : Array ( text . length ) ,
2019-03-21 13:48:00 +01:00
replacements : Array ( text . length ) ,
2018-12-18 04:14:52 +01:00
text : text
} ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( typeof html === 'string' && html . length > 0 ) {
element = createElement ( document , html ) ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( Object ( esm _typeof [ "a" /* default */ ] ) ( element ) !== 'object' ) {
return createEmptyValue ( ) ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( ! multilineTag ) {
return createFromElement ( {
element : element ,
2019-03-21 13:48:00 +01:00
range : range ,
isEditableTree : isEditableTree
2018-12-18 04:14:52 +01:00
} ) ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return createFromMultilineElement ( {
element : element ,
range : range ,
multilineTag : multilineTag ,
2019-03-21 13:48:00 +01:00
multilineWrapperTags : multilineWrapperTags ,
isEditableTree : isEditableTree
2018-12-18 04:14:52 +01:00
} ) ;
}
/ * *
* Helper to accumulate the value ' s selection start and end from the current
* node and range .
*
* @ param { Object } accumulator Object to accumulate into .
* @ param { Node } node Node to create value with .
* @ param { Range } range Range to create value with .
* @ param { Object } value Value that is being accumulated .
* /
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
function accumulateSelection ( accumulator , node , range , value ) {
if ( ! range ) {
return ;
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
var parentNode = node . parentNode ;
var startContainer = range . startContainer ,
startOffset = range . startOffset ,
endContainer = range . endContainer ,
endOffset = range . endOffset ;
var currentLength = accumulator . text . length ; // Selection can be extracted from value.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( value . start !== undefined ) {
accumulator . start = currentLength + value . start ; // Range indicates that the current node has selection.
} else if ( node === startContainer && node . nodeType === TEXT _NODE ) {
accumulator . start = currentLength + startOffset ; // Range indicates that the current node is selected.
} else if ( parentNode === startContainer && node === startContainer . childNodes [ startOffset ] ) {
accumulator . start = currentLength ; // Range indicates that the selection is after the current node.
} else if ( parentNode === startContainer && node === startContainer . childNodes [ startOffset - 1 ] ) {
accumulator . start = currentLength + value . text . length ; // Fallback if no child inside handled the selection.
} else if ( node === startContainer ) {
accumulator . start = currentLength ;
} // Selection can be extracted from value.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( value . end !== undefined ) {
accumulator . end = currentLength + value . end ; // Range indicates that the current node has selection.
} else if ( node === endContainer && node . nodeType === TEXT _NODE ) {
accumulator . end = currentLength + endOffset ; // Range indicates that the current node is selected.
} else if ( parentNode === endContainer && node === endContainer . childNodes [ endOffset - 1 ] ) {
accumulator . end = currentLength + value . text . length ; // Range indicates that the selection is before the current node.
} else if ( parentNode === endContainer && node === endContainer . childNodes [ endOffset ] ) {
accumulator . end = currentLength ; // Fallback if no child inside handled the selection.
} else if ( node === endContainer ) {
accumulator . end = currentLength + endOffset ;
}
}
/ * *
* Adjusts the start and end offsets from a range based on a text filter .
*
* @ param { Node } node Node of which the text should be filtered .
* @ param { Range } range The range to filter .
* @ param { Function } filter Function to use to filter the text .
*
* @ return { ? Object } Object containing range properties .
* /
2018-12-14 12:02:53 +01:00
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function filterRange ( node , range , filter ) {
if ( ! range ) {
return ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
var startContainer = range . startContainer ,
endContainer = range . endContainer ;
var startOffset = range . startOffset ,
endOffset = range . endOffset ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( node === startContainer ) {
startOffset = filter ( node . nodeValue . slice ( 0 , startOffset ) ) . length ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( node === endContainer ) {
endOffset = filter ( node . nodeValue . slice ( 0 , endOffset ) ) . length ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return {
startContainer : startContainer ,
startOffset : startOffset ,
endContainer : endContainer ,
endOffset : endOffset
} ;
}
2019-03-07 10:09:59 +01:00
function filterString ( string ) {
// Reduce any whitespace used for HTML formatting to one space
// character, because it will also be displayed as such by the browser.
return string . replace ( /[\n\r\t]+/g , ' ' ) ;
}
2018-12-18 04:14:52 +01:00
/ * *
* Creates a Rich Text value from a DOM element and range .
*
* @ param { Object } $1 Named argements .
* @ param { ? Element } $1 . element Element to create value from .
* @ param { ? Range } $1 . range Range to create value from .
* @ param { ? string } $1 . multilineTag Multiline tag if the structure is
* multiline .
* @ param { ? Array } $1 . multilineWrapperTags Tags where lines can be found if
* nesting is possible .
*
* @ return { Object } A rich text value .
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function createFromElement ( _ref3 ) {
var element = _ref3 . element ,
range = _ref3 . range ,
multilineTag = _ref3 . multilineTag ,
multilineWrapperTags = _ref3 . multilineWrapperTags ,
_ref3$currentWrapperT = _ref3 . currentWrapperTags ,
2019-03-21 13:48:00 +01:00
currentWrapperTags = _ref3$currentWrapperT === void 0 ? [ ] : _ref3$currentWrapperT ,
isEditableTree = _ref3 . isEditableTree ;
2018-12-18 04:14:52 +01:00
var accumulator = createEmptyValue ( ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( ! element ) {
return accumulator ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( ! element . hasChildNodes ( ) ) {
accumulateSelection ( accumulator , element , range , createEmptyValue ( ) ) ;
return accumulator ;
}
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
var length = element . childNodes . length ; // Optimise for speed.
2018-12-14 05:41:57 +01:00
2019-03-21 13:48:00 +01:00
var _loop = function _loop ( index ) {
2018-12-18 04:14:52 +01:00
var node = element . childNodes [ index ] ;
var type = node . nodeName . toLowerCase ( ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( node . nodeType === TEXT _NODE ) {
2019-03-21 13:48:00 +01:00
var text = filterString ( node . nodeValue ) ;
2019-03-07 10:09:59 +01:00
range = filterRange ( node , range , filterString ) ;
2018-12-18 04:14:52 +01:00
accumulateSelection ( accumulator , node , range , {
2019-03-21 13:48:00 +01:00
text : text
} ) ; // Create a sparse array of the same length as `text`, in which
2018-12-18 04:14:52 +01:00
// formats can be added.
2018-12-14 05:41:57 +01:00
2019-03-21 13:48:00 +01:00
accumulator . formats . length += text . length ;
accumulator . replacements . length += text . length ;
accumulator . text += text ;
return "continue" ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( node . nodeType !== ELEMENT _NODE ) {
2019-03-21 13:48:00 +01:00
return "continue" ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2019-03-21 13:48:00 +01:00
if ( node . getAttribute ( 'data-rich-text-padding' ) || isEditableTree && type === 'br' && ! node . getAttribute ( 'data-rich-text-line-break' ) ) {
2018-12-18 04:14:52 +01:00
accumulateSelection ( accumulator , node , range , createEmptyValue ( ) ) ;
2019-03-21 13:48:00 +01:00
return "continue" ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( type === 'br' ) {
accumulateSelection ( accumulator , node , range , createEmptyValue ( ) ) ;
2019-03-21 13:48:00 +01:00
mergePair ( accumulator , create ( {
text : '\n'
} ) ) ;
return "continue" ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
var lastFormats = accumulator . formats [ accumulator . formats . length - 1 ] ;
var lastFormat = lastFormats && lastFormats [ lastFormats . length - 1 ] ;
2019-03-07 10:09:59 +01:00
var newFormat = toFormat ( {
type : type ,
attributes : getAttributes ( {
element : node
} )
} ) ;
2019-03-21 13:48:00 +01:00
var format = isFormatEqual ( newFormat , lastFormat ) ? lastFormat : newFormat ;
2019-03-07 10:09:59 +01:00
2018-12-18 04:14:52 +01:00
if ( multilineWrapperTags && multilineWrapperTags . indexOf ( type ) !== - 1 ) {
2019-03-21 13:48:00 +01:00
var _value = createFromMultilineElement ( {
2018-12-18 04:14:52 +01:00
element : node ,
range : range ,
multilineTag : multilineTag ,
multilineWrapperTags : multilineWrapperTags ,
2019-03-21 13:48:00 +01:00
currentWrapperTags : [ ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( currentWrapperTags ) , [ format ] ) ,
isEditableTree : isEditableTree
2018-12-18 04:14:52 +01:00
} ) ;
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
accumulateSelection ( accumulator , node , range , _value ) ;
mergePair ( accumulator , _value ) ;
return "continue" ;
2018-12-18 04:14:52 +01:00
}
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
var value = createFromElement ( {
element : node ,
range : range ,
multilineTag : multilineTag ,
multilineWrapperTags : multilineWrapperTags ,
isEditableTree : isEditableTree
} ) ;
accumulateSelection ( accumulator , node , range , value ) ;
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
if ( ! format ) {
mergePair ( accumulator , value ) ;
} else if ( value . text . length === 0 ) {
if ( format . attributes ) {
mergePair ( accumulator , {
formats : [ , ] ,
replacements : [ format ] ,
text : OBJECT _REPLACEMENT _CHARACTER
} ) ;
2018-12-18 04:14:52 +01:00
}
} else {
2019-03-21 13:48:00 +01:00
mergePair ( accumulator , Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
formats : Array . from ( value . formats , function ( formats ) {
return formats ? [ format ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( formats ) ) : [ format ] ;
} )
} ) ) ;
}
} ;
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
for ( var index = 0 ; index < length ; index ++ ) {
var _ret = _loop ( index ) ;
2018-12-15 12:00:40 +01:00
2019-03-21 13:48:00 +01:00
if ( _ret === "continue" ) continue ;
2018-12-15 12:00:40 +01:00
}
2018-12-18 04:14:52 +01:00
return accumulator ;
2018-12-15 12:00:40 +01:00
}
2018-12-14 12:02:53 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Creates a rich text value from a DOM element and range that should be
* multiline .
2018-12-14 12:02:53 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { Object } $1 Named argements .
* @ param { ? Element } $1 . element Element to create value from .
* @ param { ? Range } $1 . range Range to create value from .
* @ param { ? string } $1 . multilineTag Multiline tag if the structure is
* multiline .
* @ param { ? Array } $1 . multilineWrapperTags Tags where lines can be found if
* nesting is possible .
* @ param { boolean } $1 . currentWrapperTags Whether to prepend a line
* separator .
2018-12-14 12:02:53 +01:00
*
2018-12-18 04:14:52 +01:00
* @ return { Object } A rich text value .
2018-12-14 12:02:53 +01:00
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function createFromMultilineElement ( _ref4 ) {
var element = _ref4 . element ,
range = _ref4 . range ,
multilineTag = _ref4 . multilineTag ,
multilineWrapperTags = _ref4 . multilineWrapperTags ,
_ref4$currentWrapperT = _ref4 . currentWrapperTags ,
2019-03-21 13:48:00 +01:00
currentWrapperTags = _ref4$currentWrapperT === void 0 ? [ ] : _ref4$currentWrapperT ,
isEditableTree = _ref4 . isEditableTree ;
2018-12-18 04:14:52 +01:00
var accumulator = createEmptyValue ( ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( ! element || ! element . hasChildNodes ( ) ) {
return accumulator ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
var length = element . children . length ; // Optimise for speed.
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
for ( var index = 0 ; index < length ; index ++ ) {
var node = element . children [ index ] ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( node . nodeName . toLowerCase ( ) !== multilineTag ) {
continue ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
var value = createFromElement ( {
element : node ,
range : range ,
multilineTag : multilineTag ,
multilineWrapperTags : multilineWrapperTags ,
2019-03-21 13:48:00 +01:00
currentWrapperTags : currentWrapperTags ,
isEditableTree : isEditableTree
} ) ; // Multiline value text should be separated by a line separator.
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( index !== 0 || currentWrapperTags . length > 0 ) {
2019-03-21 13:48:00 +01:00
mergePair ( accumulator , {
formats : [ , ] ,
replacements : currentWrapperTags . length > 0 ? [ currentWrapperTags ] : [ , ] ,
text : LINE _SEPARATOR
} ) ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
accumulateSelection ( accumulator , node , range , value ) ;
2019-03-21 13:48:00 +01:00
mergePair ( accumulator , value ) ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return accumulator ;
}
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Gets the attributes of an element in object shape .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { Object } $1 Named argements .
* @ param { Element } $1 . element Element to get attributes from .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ return { ? Object } Attribute object or ` undefined ` if the element has no
* attributes .
2018-12-14 05:41:57 +01:00
* /
2018-12-18 04:14:52 +01:00
function getAttributes ( _ref5 ) {
2019-03-07 10:09:59 +01:00
var element = _ref5 . element ;
2018-12-18 04:14:52 +01:00
if ( ! element . hasAttributes ( ) ) {
2018-12-14 05:41:57 +01:00
return ;
}
2018-12-18 04:14:52 +01:00
var length = element . attributes . length ;
var accumulator ; // Optimise for speed.
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
for ( var i = 0 ; i < length ; i ++ ) {
var _element$attributes$i = element . attributes [ i ] ,
name = _element$attributes$i . name ,
value = _element$attributes$i . value ;
2018-12-14 05:41:57 +01:00
2019-03-21 13:48:00 +01:00
if ( name . indexOf ( 'data-rich-text-' ) === 0 ) {
2018-12-18 04:14:52 +01:00
continue ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
accumulator = accumulator || { } ;
accumulator [ name ] = value ;
}
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
return accumulator ;
}
2019-03-21 13:48:00 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/concat.js
/ * *
* Internal dependencies
* /
/ * *
* Concats a pair of rich text values . Not that this mutates ` a ` and does NOT
* normalise formats !
*
* @ param { Object } a Value to mutate .
* @ param { Object } b Value to add read from .
*
* @ return { Object } ` a ` , mutated .
* /
function mergePair ( a , b ) {
a . formats = a . formats . concat ( b . formats ) ;
a . replacements = a . replacements . concat ( b . replacements ) ;
a . text += b . text ;
return a ;
}
/ * *
* Combine all Rich Text values into one . This is similar to
* ` String.prototype.concat ` .
*
* @ param { ... Object } values Objects to combine .
*
* @ return { Object } A new value combining all given records .
* /
function concat ( ) {
for ( var _len = arguments . length , values = new Array ( _len ) , _key = 0 ; _key < _len ; _key ++ ) {
values [ _key ] = arguments [ _key ] ;
}
return normaliseFormats ( values . reduce ( mergePair , create ( ) ) ) ;
}
2019-03-07 10:09:59 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-formats.js
/ * *
* Gets the all format objects at the start of the selection .
*
* @ param { Object } value Value to inspect .
*
* @ return { ? Object } Active format objects .
* /
function getActiveFormats ( _ref ) {
var formats = _ref . formats ,
start = _ref . start ,
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
end = _ref . end ,
activeFormats = _ref . activeFormats ;
2019-03-07 10:09:59 +01:00
if ( start === undefined ) {
return [ ] ;
}
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
if ( start === end ) {
// For a collapsed caret, it is possible to override the active formats.
if ( activeFormats ) {
return activeFormats ;
}
var formatsBefore = formats [ start - 1 ] || [ ] ;
var formatsAfter = formats [ start ] || [ ] ; // By default, select the lowest amount of formats possible (which means
// the caret is positioned outside the format boundary). The user can
// then use arrow keys to define `activeFormats`.
if ( formatsBefore . length < formatsAfter . length ) {
return formatsBefore ;
}
2019-03-07 10:09:59 +01:00
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
return formatsAfter ;
2019-03-07 10:09:59 +01:00
}
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
return formats [ start ] || [ ] ;
2018-12-18 04:14:52 +01:00
}
2018-12-15 12:00:40 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-format.js
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* External dependencies
2018-12-14 05:41:57 +01:00
* /
2018-12-15 12:00:40 +01:00
2019-03-07 10:09:59 +01:00
/ * *
* Internal dependencies
* /
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Gets the format object by type at the start of the selection . This can be
* used to get e . g . the URL of a link format at the current selection , but also
* to check if a format is active at the selection . Returns undefined if there
* is no format at the selection .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { Object } value Value to inspect .
* @ param { string } formatType Format type to look for .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ return { Object | undefined } Active format object of the specified type , or undefined .
2018-12-14 05:41:57 +01:00
* /
2019-03-07 10:09:59 +01:00
function getActiveFormat ( value , formatType ) {
return Object ( external _lodash _ [ "find" ] ) ( getActiveFormats ( value ) , {
2018-12-18 04:14:52 +01:00
type : formatType
} ) ;
2018-12-14 05:41:57 +01:00
}
2019-03-21 13:48:00 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-object.js
/ * *
* Internal dependencies
* /
/ * *
* Gets the active object , if there is any .
*
* @ param { Object } value Value to inspect .
*
* @ return { ? Object } Active object , or undefined .
* /
function getActiveObject ( _ref ) {
var start = _ref . start ,
end = _ref . end ,
replacements = _ref . replacements ,
text = _ref . text ;
if ( start + 1 !== end || text [ start ] !== OBJECT _REPLACEMENT _CHARACTER ) {
return ;
}
return replacements [ start ] ;
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-selection-end.js
2018-12-14 05:41:57 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* Gets the end index of the current selection , or returns ` undefined ` if no
* selection exists . The selection ends right before the character at this
* index .
2018-12-14 05:41:57 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { Object } value Value to get the selection from .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ return { number | undefined } Index where the selection ends .
2018-12-14 05:41:57 +01:00
* /
2018-12-18 04:14:52 +01:00
function getSelectionEnd ( _ref ) {
var end = _ref . end ;
return end ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-selection-start.js
/ * *
* Gets the start index of the current selection , or returns ` undefined ` if no
* selection exists . The selection starts right before the character at this
* index .
*
* @ param { Object } value Value to get the selection from .
*
2019-03-21 13:48:00 +01:00
* @ return { number | undefined } Index where the selection starts .
2018-12-18 04:14:52 +01:00
* /
function getSelectionStart ( _ref ) {
var start = _ref . start ;
return start ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-text-content.js
/ * *
* Get the textual content of a Rich Text value . This is similar to
* ` Element.textContent ` .
*
* @ param { Object } value Value to use .
*
* @ return { string } The text content .
* /
function getTextContent ( _ref ) {
var text = _ref . text ;
return text ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-collapsed.js
/ * *
* Check if the selection of a Rich Text value is collapsed or not . Collapsed
* means that no characters are selected , but there is a caret present . If there
* is no selection , ` undefined ` will be returned . This is similar to
* ` window.getSelection().isCollapsed() ` .
*
* @ param { Object } value The rich text value to check .
*
2019-03-21 13:48:00 +01:00
* @ return { boolean | undefined } True if the selection is collapsed , false if not ,
* undefined if there is no selection .
2018-12-18 04:14:52 +01:00
* /
function isCollapsed ( _ref ) {
var start = _ref . start ,
end = _ref . end ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
if ( start === undefined || end === undefined ) {
return ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
return start === end ;
2018-12-14 05:41:57 +01:00
}
2019-03-21 13:48:00 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-empty.js
/ * *
* Internal dependencies
* /
/ * *
* Check if a Rich Text value is Empty , meaning it contains no text or any
* objects ( such as images ) .
*
* @ param { Object } value Value to use .
*
* @ return { boolean } True if the value is empty , false if not .
* /
function isEmpty ( _ref ) {
var text = _ref . text ;
return text . length === 0 ;
}
/ * *
* Check if the current collapsed selection is on an empty line in case of a
* multiline value .
*
* @ param { Object } value Value te check .
*
* @ return { boolean } True if the line is empty , false if not .
* /
function isEmptyLine ( _ref2 ) {
var text = _ref2 . text ,
start = _ref2 . start ,
end = _ref2 . end ;
if ( start !== end ) {
return false ;
}
if ( text . length === 0 ) {
return true ;
}
if ( start === 0 && text . slice ( 0 , 1 ) === LINE _SEPARATOR ) {
return true ;
}
if ( start === text . length && text . slice ( - 1 ) === LINE _SEPARATOR ) {
return true ;
}
return text . slice ( start - 1 , end + 1 ) === "" . concat ( LINE _SEPARATOR ) . concat ( LINE _SEPARATOR ) ;
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/join.js
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Combine an array of Rich Text values into one , optionally separated by
* ` separator ` , which can be a Rich Text value , HTML string , or plain text
* string . This is similar to ` Array.prototype.join ` .
*
2019-03-21 13:48:00 +01:00
* @ param { Array < Object > } values An array of values to join .
* @ param { string | Object } [ separator ] Separator string or value .
2018-12-14 05:41:57 +01:00
*
* @ return { Object } A new combined value .
* /
function join ( values ) {
var separator = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : '' ;
if ( typeof separator === 'string' ) {
2018-12-18 04:14:52 +01:00
separator = create ( {
2018-12-14 05:41:57 +01:00
text : separator
} ) ;
}
2018-12-18 04:14:52 +01:00
return normaliseFormats ( values . reduce ( function ( accumlator , _ref ) {
2018-12-14 05:41:57 +01:00
var formats = _ref . formats ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ,
2018-12-14 05:41:57 +01:00
text = _ref . text ;
return {
2019-03-21 13:48:00 +01:00
formats : accumlator . formats . concat ( separator . formats , formats ) ,
replacements : accumlator . replacements . concat ( separator . replacements , replacements ) ,
text : accumlator . text + separator . text + text
2018-12-14 05:41:57 +01:00
} ;
} ) ) ;
}
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = _ _webpack _require _ _ ( 15 ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
2019-03-07 10:09:59 +01:00
var esm _extends = _ _webpack _require _ _ ( 19 ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: external {"this":["wp","element"]}
var external _this _wp _element _ = _ _webpack _require _ _ ( 0 ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: ./node_modules/memize/index.js
2019-03-21 13:48:00 +01:00
var memize = _ _webpack _require _ _ ( 41 ) ;
2018-12-18 04:14:52 +01:00
var memize _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( memize ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: external {"this":["wp","hooks"]}
2019-04-22 14:40:04 +02:00
var external _this _wp _hooks _ = _ _webpack _require _ _ ( 26 ) ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: external {"this":["wp","compose"]}
2019-03-21 13:48:00 +01:00
var external _this _wp _compose _ = _ _webpack _require _ _ ( 6 ) ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/register-format-type.js
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
2018-12-17 05:52:00 +01:00
2018-12-14 12:02:53 +01: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
/ * *
* External dependencies
* /
2018-12-14 12:02:53 +01:00
/ * *
* WordPress dependencies
* /
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
/ * *
* 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 = [ ] ;
2018-12-14 12:02:53 +01:00
/ * *
* Registers a new format provided a unique name and an object defining its
* behavior .
*
2019-03-21 13:48:00 +01:00
* @ param { string } name Format name .
* @ param { Object } settings Format settings .
* @ param { string } settings . tagName The HTML tag this format will wrap the selection with .
* @ param { string } [ settings . className ] A class to match the format .
* @ param { string } settings . title Name of the format .
* @ param { Function } settings . edit Should return a component for the user to interact with the new registered format .
2018-12-14 12:02:53 +01:00
*
2019-03-21 13:48:00 +01:00
* @ return { WPFormat | undefined } The format , if it has been successfully registered ;
* otherwise ` undefined ` .
2018-12-14 12:02:53 +01:00
* /
function registerFormatType ( name , settings ) {
2018-12-18 04:14:52 +01:00
settings = Object ( objectSpread [ "a" /* default */ ] ) ( {
2018-12-14 12:02:53 +01:00
name : name
} , settings ) ;
if ( typeof settings . name !== 'string' ) {
window . console . error ( 'Format names must be strings.' ) ;
return ;
}
if ( ! /^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/ . test ( settings . name ) ) {
window . console . error ( 'Format names must contain a namespace prefix, include only lowercase alphanumeric characters or dashes, and start with a letter. Example: my-plugin/my-custom-format' ) ;
return ;
}
2018-12-18 04:14:52 +01:00
if ( Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatType ( settings . name ) ) {
2018-12-14 12:02:53 +01:00
window . console . error ( 'Format "' + settings . name + '" is already registered.' ) ;
return ;
}
2018-12-17 05:52:00 +01:00
if ( typeof settings . tagName !== 'string' || settings . tagName === '' ) {
window . console . error ( 'Format tag names must be a string.' ) ;
return ;
}
if ( ( typeof settings . className !== 'string' || settings . className === '' ) && settings . className !== null ) {
window . console . error ( 'Format class names must be a string, or null to handle bare elements.' ) ;
return ;
}
if ( ! /^[_a-zA-Z]+[a-zA-Z0-9-]*$/ . test ( settings . className ) ) {
window . console . error ( 'A class name must begin with a letter, followed by any number of hyphens, letters, or numbers.' ) ;
2018-12-14 12:02:53 +01:00
return ;
}
2018-12-17 05:52:00 +01:00
if ( settings . className === null ) {
2018-12-18 04:14:52 +01:00
var formatTypeForBareElement = Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatTypeForBareElement ( settings . tagName ) ;
2018-12-17 05:52:00 +01:00
if ( formatTypeForBareElement ) {
window . console . error ( "Format \"" . concat ( formatTypeForBareElement . name , "\" is already registered to handle bare tag name \"" ) . concat ( settings . tagName , "\"." ) ) ;
return ;
}
} else {
2018-12-18 04:14:52 +01:00
var formatTypeForClassName = Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatTypeForClassName ( settings . className ) ;
2018-12-17 05:52:00 +01:00
if ( formatTypeForClassName ) {
window . console . error ( "Format \"" . concat ( formatTypeForClassName . name , "\" is already registered to handle class name \"" ) . concat ( settings . className , "\"." ) ) ;
return ;
}
}
2018-12-14 12:02:53 +01:00
if ( ! ( 'title' in settings ) || settings . title === '' ) {
window . console . error ( 'The format "' + settings . name + '" must have a title.' ) ;
return ;
}
if ( 'keywords' in settings && settings . keywords . length > 3 ) {
window . console . error ( 'The format "' + settings . name + '" can have a maximum of 3 keywords.' ) ;
return ;
}
if ( typeof settings . title !== 'string' ) {
window . console . error ( 'Format titles must be strings.' ) ;
return ;
}
2018-12-18 04:14:52 +01:00
Object ( external _this _wp _data _ [ "dispatch" ] ) ( 'core/rich-text' ) . addFormatTypes ( settings ) ;
var getFunctionStackMemoized = memize _default ( ) ( function ( ) {
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
var previousStack = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : EMPTY _ARRAY ;
var newFunction = arguments . length > 1 ? arguments [ 1 ] : undefined ;
2019-03-07 10:09:59 +01:00
return [ ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( previousStack ) , [ newFunction ] ) ;
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
} ) ;
2019-03-21 13:48:00 +01:00
if ( settings . _ _experimentalCreatePrepareEditableTree ) {
2018-12-18 04:14:52 +01:00
Object ( external _this _wp _hooks _ [ "addFilter" ] ) ( 'experimentalRichText' , name , function ( OriginalComponent ) {
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
var Component = OriginalComponent ;
if ( settings . _ _experimentalCreatePrepareEditableTree || settings . _ _experimentalCreateFormatToValue || settings . _ _experimentalCreateValueToFormat ) {
Component = function Component ( props ) {
var additionalProps = { } ;
if ( settings . _ _experimentalCreatePrepareEditableTree ) {
additionalProps . prepareEditableTree = getFunctionStackMemoized ( props . prepareEditableTree , settings . _ _experimentalCreatePrepareEditableTree ( props [ "format_" . concat ( name ) ] , {
richTextIdentifier : props . identifier ,
blockClientId : props . clientId
} ) ) ;
}
if ( settings . _ _experimentalCreateOnChangeEditableValue ) {
var dispatchProps = Object . keys ( props ) . reduce ( function ( accumulator , propKey ) {
var propValue = props [ propKey ] ;
var keyPrefix = "format_" . concat ( name , "_dispatch_" ) ;
if ( propKey . startsWith ( keyPrefix ) ) {
var realKey = propKey . replace ( keyPrefix , '' ) ;
accumulator [ realKey ] = propValue ;
}
return accumulator ;
} , { } ) ;
2018-12-18 04:14:52 +01:00
additionalProps . onChangeEditableValue = getFunctionStackMemoized ( props . onChangeEditableValue , settings . _ _experimentalCreateOnChangeEditableValue ( Object ( objectSpread [ "a" /* default */ ] ) ( { } , props [ "format_" . concat ( name ) ] , dispatchProps ) , {
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
richTextIdentifier : props . identifier ,
blockClientId : props . clientId
} ) ) ;
}
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
return Object ( external _this _wp _element _ [ "createElement" ] ) ( OriginalComponent , Object ( esm _extends [ "a" /* default */ ] ) ( { } , props , additionalProps ) ) ;
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
} ;
}
2019-03-21 13:48:00 +01:00
var hocs = [ ] ;
if ( settings . _ _experimentalGetPropsForEditableTreePreparation ) {
hocs . push ( Object ( external _this _wp _data _ [ "withSelect" ] ) ( function ( sel , _ref ) {
var clientId = _ref . clientId ,
identifier = _ref . identifier ;
return Object ( defineProperty [ "a" /* default */ ] ) ( { } , "format_" . concat ( name ) , settings . _ _experimentalGetPropsForEditableTreePreparation ( sel , {
richTextIdentifier : identifier ,
blockClientId : clientId
} ) ) ;
2018-12-17 05:52:00 +01:00
} ) ) ;
2019-03-21 13:48:00 +01: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
if ( settings . _ _experimentalGetPropsForEditableTreeChangeHandler ) {
2018-12-18 04:14:52 +01:00
hocs . push ( Object ( external _this _wp _data _ [ "withDispatch" ] ) ( function ( disp , _ref3 ) {
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
var clientId = _ref3 . clientId ,
identifier = _ref3 . identifier ;
var dispatchProps = settings . _ _experimentalGetPropsForEditableTreeChangeHandler ( disp , {
richTextIdentifier : identifier ,
blockClientId : clientId
} ) ;
2018-12-18 04:14:52 +01:00
return Object ( external _lodash _ [ "mapKeys" ] ) ( dispatchProps , function ( value , key ) {
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
return "format_" . concat ( name , "_dispatch_" ) . concat ( key ) ;
} ) ;
2018-12-17 05:52:00 +01: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
}
2018-12-18 04:14:52 +01:00
return Object ( external _this _wp _compose _ [ "compose" ] ) ( hocs ) ( Component ) ;
2018-12-17 05:52:00 +01:00
} ) ;
}
2018-12-14 12:02:53 +01:00
return settings ;
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/remove-format.js
2019-03-21 13:48:00 +01:00
2018-12-14 05:41:57 +01:00
/ * *
* External dependencies
* /
/ * *
* Internal dependencies
* /
/ * *
* Remove any format object from a Rich Text value by type from the given
* ` startIndex ` to the given ` endIndex ` . Indices are retrieved from the
* selection if none are provided .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { string } formatType Format type to remove .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-14 05:41:57 +01:00
*
* @ return { Object } A new value with the format applied .
* /
2019-03-21 13:48:00 +01:00
function removeFormat ( value , formatType ) {
var startIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : value . start ;
var endIndex = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : value . end ;
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
var formats = value . formats ,
activeFormats = value . activeFormats ;
var newFormats = formats . slice ( ) ; // If the selection is collapsed, expand start and end to the edges of the
2018-12-14 05:41:57 +01:00
// format.
if ( startIndex === endIndex ) {
2018-12-18 04:14:52 +01:00
var format = Object ( external _lodash _ [ "find" ] ) ( newFormats [ startIndex ] , {
2018-12-14 05:41:57 +01:00
type : formatType
} ) ;
2019-03-21 13:48:00 +01:00
if ( format ) {
while ( Object ( external _lodash _ [ "find" ] ) ( newFormats [ startIndex ] , format ) ) {
filterFormats ( newFormats , startIndex , formatType ) ;
startIndex -- ;
}
2018-12-14 05:41:57 +01:00
endIndex ++ ;
2019-03-21 13:48:00 +01:00
while ( Object ( external _lodash _ [ "find" ] ) ( newFormats [ endIndex ] , format ) ) {
filterFormats ( newFormats , endIndex , formatType ) ;
endIndex ++ ;
}
2018-12-14 05:41:57 +01:00
}
} else {
for ( var i = startIndex ; i < endIndex ; i ++ ) {
if ( newFormats [ i ] ) {
filterFormats ( newFormats , i , formatType ) ;
}
}
}
2019-03-21 13:48:00 +01:00
return normaliseFormats ( Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
2019-05-16 20:12:57 +02:00
formats : newFormats ,
activeFormats : Object ( external _lodash _ [ "reject" ] ) ( activeFormats , {
type : formatType
} )
2019-03-21 13:48:00 +01:00
} ) ) ;
2018-12-14 05:41:57 +01:00
}
function filterFormats ( formats , index , formatType ) {
2019-03-21 13:48:00 +01:00
var newFormats = formats [ index ] . filter ( function ( _ref ) {
var type = _ref . type ;
2018-12-14 05:41:57 +01:00
return type !== formatType ;
} ) ;
if ( newFormats . length ) {
formats [ index ] = newFormats ;
} else {
delete formats [ index ] ;
}
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert.js
/ * *
* Internal dependencies
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/ * *
* Insert a Rich Text value , an HTML string , or a plain text string , into a
* Rich Text value at the given ` startIndex ` . Any content between ` startIndex `
* and ` endIndex ` will be removed . Indices are retrieved from the selection if
* none are provided .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { Object | string } valueToInsert Value to insert .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-18 04:14:52 +01:00
*
* @ return { Object } A new value with the value inserted .
* /
2018-12-14 05:41:57 +01:00
2019-03-21 13:48:00 +01:00
function insert ( value , valueToInsert ) {
var startIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : value . start ;
var endIndex = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : value . end ;
var formats = value . formats ,
replacements = value . replacements ,
text = value . text ;
2018-12-18 04:14:52 +01:00
if ( typeof valueToInsert === 'string' ) {
valueToInsert = create ( {
text : valueToInsert
} ) ;
}
var index = startIndex + valueToInsert . text . length ;
return normaliseFormats ( {
formats : formats . slice ( 0 , startIndex ) . concat ( valueToInsert . formats , formats . slice ( endIndex ) ) ,
2019-03-21 13:48:00 +01:00
replacements : replacements . slice ( 0 , startIndex ) . concat ( valueToInsert . replacements , replacements . slice ( endIndex ) ) ,
2018-12-18 04:14:52 +01:00
text : text . slice ( 0 , startIndex ) + valueToInsert . text + text . slice ( endIndex ) ,
start : index ,
end : index
} ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/remove.js
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Remove content from a Rich Text value between the given ` startIndex ` and
* ` endIndex ` . Indices are retrieved from the selection if none are provided .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-14 05:41:57 +01:00
*
* @ return { Object } A new value with the content removed .
* /
2018-12-18 04:14:52 +01:00
function remove _remove ( value , startIndex , endIndex ) {
return insert ( value , create ( ) , startIndex , endIndex ) ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/replace.js
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Search a Rich Text value and replace the match ( es ) with ` replacement ` . This
* is similar to ` String.prototype.replace ` .
*
* @ param { Object } value The value to modify .
* @ param { RegExp | string } pattern A RegExp object or literal . Can also be
* a string . It is treated as a verbatim
* string and is not interpreted as a
* regular expression . Only the first
* occurrence will be replaced .
* @ param { Function | string } replacement The match or matches are replaced with
* the specified or the value returned by
* the specified function .
*
* @ return { Object } A new value with replacements applied .
* /
function replace ( _ref , pattern , replacement ) {
var formats = _ref . formats ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ,
2018-12-14 05:41:57 +01:00
text = _ref . text ,
start = _ref . start ,
end = _ref . end ;
text = text . replace ( pattern , function ( match ) {
for ( var _len = arguments . length , rest = new Array ( _len > 1 ? _len - 1 : 0 ) , _key = 1 ; _key < _len ; _key ++ ) {
rest [ _key - 1 ] = arguments [ _key ] ;
}
var offset = rest [ rest . length - 2 ] ;
var newText = replacement ;
var newFormats ;
2019-03-21 13:48:00 +01:00
var newReplacements ;
2018-12-14 05:41:57 +01:00
if ( typeof newText === 'function' ) {
newText = replacement . apply ( void 0 , [ match ] . concat ( rest ) ) ;
}
2018-12-18 04:14:52 +01:00
if ( Object ( esm _typeof [ "a" /* default */ ] ) ( newText ) === 'object' ) {
2018-12-14 05:41:57 +01:00
newFormats = newText . formats ;
2019-03-21 13:48:00 +01:00
newReplacements = newText . replacements ;
2018-12-14 05:41:57 +01:00
newText = newText . text ;
} else {
newFormats = Array ( newText . length ) ;
2019-03-21 13:48:00 +01:00
newReplacements = Array ( newText . length ) ;
2018-12-14 05:41:57 +01:00
if ( formats [ offset ] ) {
newFormats = newFormats . fill ( formats [ offset ] ) ;
}
}
formats = formats . slice ( 0 , offset ) . concat ( newFormats , formats . slice ( offset + match . length ) ) ;
2019-03-21 13:48:00 +01:00
replacements = replacements . slice ( 0 , offset ) . concat ( newReplacements , replacements . slice ( offset + match . length ) ) ;
2018-12-14 05:41:57 +01:00
if ( start ) {
start = end = offset + newText . length ;
}
return newText ;
} ) ;
2018-12-18 04:14:52 +01:00
return normaliseFormats ( {
2018-12-14 05:41:57 +01:00
formats : formats ,
2019-03-21 13:48:00 +01:00
replacements : replacements ,
2018-12-14 05:41:57 +01:00
text : text ,
start : start ,
end : end
} ) ;
}
2019-03-07 10:09:59 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert-line-break.js
/ * *
* Internal dependencies
* /
/ * *
2019-03-21 13:48:00 +01:00
* Inserts a line break at the given or selected position .
2019-03-07 10:09:59 +01:00
*
* @ param { Object } value Value to modify .
*
2019-03-21 13:48:00 +01:00
* @ return { Object } The value with the line break inserted .
2019-03-07 10:09:59 +01:00
* /
function insertLineBreak ( value ) {
2019-03-21 13:48:00 +01:00
return insert ( value , '\n' ) ;
2019-03-07 10:09:59 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert-line-separator.js
/ * *
* Internal dependencies
* /
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
/ * *
* Insert a line break character into a Rich Text value at the given
* ` startIndex ` . Any content between ` startIndex ` and ` endIndex ` will be
* removed . Indices are retrieved from the selection if none are provided .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-18 04:14:52 +01:00
*
* @ return { Object } A new value with the value inserted .
* /
function insertLineSeparator ( value ) {
var startIndex = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : value . start ;
var endIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : value . end ;
var beforeText = getTextContent ( value ) . slice ( 0 , startIndex ) ;
var previousLineSeparatorIndex = beforeText . lastIndexOf ( LINE _SEPARATOR ) ;
2019-03-21 13:48:00 +01:00
var previousLineSeparatorFormats = value . replacements [ previousLineSeparatorIndex ] ;
var replacements = [ , ] ;
2018-12-18 04:14:52 +01:00
if ( previousLineSeparatorFormats ) {
2019-03-21 13:48:00 +01:00
replacements = [ previousLineSeparatorFormats ] ;
2018-12-18 04:14:52 +01:00
}
var valueToInsert = {
2019-03-21 13:48:00 +01:00
formats : [ , ] ,
replacements : replacements ,
2018-12-18 04:14:52 +01:00
text : LINE _SEPARATOR
} ;
return insert ( value , valueToInsert , startIndex , endIndex ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert-object.js
/ * *
* Internal dependencies
* /
var insert _object _OBJECT _REPLACEMENT _CHARACTER = "\uFFFC" ;
/ * *
* Insert a format as an object into a Rich Text value at the given
* ` startIndex ` . Any content between ` startIndex ` and ` endIndex ` will be
* removed . Indices are retrieved from the selection if none are provided .
*
* @ param { Object } value Value to modify .
* @ param { Object } formatToInsert Format to insert as object .
2019-03-21 13:48:00 +01:00
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-18 04:14:52 +01:00
*
* @ return { Object } A new value with the object inserted .
* /
function insertObject ( value , formatToInsert , startIndex , endIndex ) {
var valueToInsert = {
2019-03-21 13:48:00 +01:00
formats : [ , ] ,
replacements : [ formatToInsert ] ,
text : insert _object _OBJECT _REPLACEMENT _CHARACTER
2018-12-18 04:14:52 +01:00
} ;
return insert ( value , valueToInsert , startIndex , endIndex ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/slice.js
2019-03-21 13:48:00 +01:00
2018-12-14 05:41:57 +01:00
/ * *
* Slice a Rich Text value from ` startIndex ` to ` endIndex ` . Indices are
* retrieved from the selection if none are provided . This is similar to
* ` String.prototype.slice ` .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { number } [ startIndex ] Start index .
* @ param { number } [ endIndex ] End index .
2018-12-14 05:41:57 +01:00
*
* @ return { Object } A new extracted value .
* /
2019-03-21 13:48:00 +01:00
function slice ( value ) {
var startIndex = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : value . start ;
var endIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : value . end ;
var formats = value . formats ,
replacements = value . replacements ,
text = value . text ;
2018-12-14 05:41:57 +01:00
if ( startIndex === undefined || endIndex === undefined ) {
2019-03-21 13:48:00 +01:00
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , value ) ;
2018-12-14 05:41:57 +01:00
}
return {
formats : formats . slice ( startIndex , endIndex ) ,
2019-03-21 13:48:00 +01:00
replacements : replacements . slice ( startIndex , endIndex ) ,
2018-12-14 05:41:57 +01:00
text : text . slice ( startIndex , endIndex )
} ;
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/split.js
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Split a Rich Text value in two at the given ` startIndex ` and ` endIndex ` , or
* split at the given separator . This is similar to ` String.prototype.split ` .
* Indices are retrieved from the selection if none are provided .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { number | string } [ string ] Start index , or string at which to split .
* @ param { number } [ endStr ] End index .
2018-12-14 05:41:57 +01:00
*
* @ return { Array } An array of new values .
* /
function split ( _ref , string ) {
var formats = _ref . formats ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ,
2018-12-14 05:41:57 +01:00
text = _ref . text ,
start = _ref . start ,
end = _ref . end ;
if ( typeof string !== 'string' ) {
return splitAtSelection . apply ( void 0 , arguments ) ;
}
var nextStart = 0 ;
return text . split ( string ) . map ( function ( substring ) {
var startIndex = nextStart ;
var value = {
formats : formats . slice ( startIndex , startIndex + substring . length ) ,
2019-03-21 13:48:00 +01:00
replacements : replacements . slice ( startIndex , startIndex + substring . length ) ,
2018-12-14 05:41:57 +01:00
text : substring
} ;
nextStart += string . length + substring . length ;
if ( start !== undefined && end !== undefined ) {
if ( start >= startIndex && start < nextStart ) {
value . start = start - startIndex ;
} else if ( start < startIndex && end > startIndex ) {
value . start = 0 ;
}
if ( end >= startIndex && end < nextStart ) {
value . end = end - startIndex ;
} else if ( start < nextStart && end > nextStart ) {
value . end = substring . length ;
}
}
return value ;
} ) ;
}
function splitAtSelection ( _ref2 ) {
var formats = _ref2 . formats ,
2019-03-21 13:48:00 +01:00
replacements = _ref2 . replacements ,
2018-12-14 05:41:57 +01:00
text = _ref2 . text ,
start = _ref2 . start ,
end = _ref2 . end ;
var startIndex = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : start ;
var endIndex = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : end ;
var before = {
formats : formats . slice ( 0 , startIndex ) ,
2019-03-21 13:48:00 +01:00
replacements : replacements . slice ( 0 , startIndex ) ,
2018-12-14 05:41:57 +01:00
text : text . slice ( 0 , startIndex )
} ;
var after = {
formats : formats . slice ( endIndex ) ,
2019-03-21 13:48:00 +01:00
replacements : replacements . slice ( endIndex ) ,
2018-12-14 05:41:57 +01:00
text : text . slice ( endIndex ) ,
start : 0 ,
end : 0
} ;
return [ // Ensure newlines are trimmed.
2018-12-18 04:14:52 +01:00
replace ( before , /\u2028+$/ , '' ) , replace ( after , /^\u2028+/ , '' ) ] ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-format-type.js
2018-12-14 12:02:53 +01:00
/ * *
2018-12-18 04:14:52 +01:00
* WordPress dependencies
2018-12-14 12:02:53 +01:00
* /
/ * *
2018-12-18 04:14:52 +01:00
* Returns a registered format type .
2018-12-14 12:02:53 +01:00
*
2018-12-18 04:14:52 +01:00
* @ param { string } name Format name .
2018-12-14 12:02:53 +01:00
*
2018-12-18 04:14:52 +01:00
* @ return { ? Object } Format type .
2018-12-14 12:02:53 +01:00
* /
2018-12-18 04:14:52 +01:00
function get _format _type _getFormatType ( name ) {
return Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatType ( name ) ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-tree.js
2018-12-14 12:02:53 +01:00
/ * *
* Internal dependencies
* /
2019-03-07 10:09:59 +01:00
/ * *
* Converts a format object to information that can be used to create an element
* from ( type , attributes and object ) .
*
* @ param { Object } $1 Named parameters .
* @ param { string } $1 . type The format type .
* @ param { Object } $1 . attributes The format attributes .
* @ param { Object } $1 . unregisteredAttributes The unregistered format
* attributes .
* @ param { boolean } $1 . object Wether or not it is an object
* format .
* @ param { boolean } $1 . boundaryClass Wether or not to apply a boundary
* class .
* @ return { Object } Information to be used for
* element creation .
* /
2018-12-18 04:14:52 +01:00
function fromFormat ( _ref ) {
var type = _ref . type ,
attributes = _ref . attributes ,
unregisteredAttributes = _ref . unregisteredAttributes ,
2019-03-07 10:09:59 +01:00
object = _ref . object ,
boundaryClass = _ref . boundaryClass ;
2018-12-18 04:14:52 +01:00
var formatType = get _format _type _getFormatType ( type ) ;
2019-03-07 10:09:59 +01:00
var elementAttributes = { } ;
if ( boundaryClass ) {
elementAttributes [ 'data-rich-text-format-boundary' ] = 'true' ;
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( ! formatType ) {
2019-03-07 10:09:59 +01:00
if ( attributes ) {
elementAttributes = Object ( objectSpread [ "a" /* default */ ] ) ( { } , attributes , elementAttributes ) ;
}
2018-12-18 04:14:52 +01:00
return {
type : type ,
2019-03-07 10:09:59 +01:00
attributes : elementAttributes ,
2018-12-18 04:14:52 +01:00
object : object
} ;
}
2018-12-14 12:02:53 +01:00
2019-03-07 10:09:59 +01:00
elementAttributes = Object ( objectSpread [ "a" /* default */ ] ) ( { } , unregisteredAttributes , elementAttributes ) ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
for ( var name in attributes ) {
2019-03-07 10:09:59 +01:00
var key = formatType . attributes ? formatType . attributes [ name ] : false ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( key ) {
elementAttributes [ key ] = attributes [ name ] ;
} else {
elementAttributes [ name ] = attributes [ name ] ;
}
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( formatType . className ) {
if ( elementAttributes . class ) {
elementAttributes . class = "" . concat ( formatType . className , " " ) . concat ( elementAttributes . class ) ;
} else {
elementAttributes . class = formatType . className ;
}
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
return {
type : formatType . tagName ,
object : formatType . object ,
attributes : elementAttributes
} ;
}
2018-12-14 12:02:53 +01:00
2019-03-21 13:48:00 +01:00
var padding = {
type : 'br' ,
attributes : {
'data-rich-text-padding' : 'true'
} ,
object : true
} ;
2018-12-18 04:14:52 +01:00
function toTree ( _ref2 ) {
var value = _ref2 . value ,
multilineTag = _ref2 . multilineTag ,
createEmpty = _ref2 . createEmpty ,
append = _ref2 . append ,
getLastChild = _ref2 . getLastChild ,
getParent = _ref2 . getParent ,
isText = _ref2 . isText ,
getText = _ref2 . getText ,
remove = _ref2 . remove ,
appendText = _ref2 . appendText ,
onStartIndex = _ref2 . onStartIndex ,
onEndIndex = _ref2 . onEndIndex ,
isEditableTree = _ref2 . isEditableTree ;
var formats = value . formats ,
2019-03-21 13:48:00 +01:00
replacements = value . replacements ,
2018-12-18 04:14:52 +01:00
text = value . text ,
start = value . start ,
2019-03-07 10:09:59 +01:00
end = value . end ;
2018-12-18 04:14:52 +01:00
var formatsLength = formats . length + 1 ;
var tree = createEmpty ( ) ;
var multilineFormat = {
type : multilineTag
} ;
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
var activeFormats = getActiveFormats ( value ) ;
var deepestActiveFormat = activeFormats [ activeFormats . length - 1 ] ;
2018-12-18 04:14:52 +01:00
var lastSeparatorFormats ;
var lastCharacterFormats ;
var lastCharacter ; // If we're building a multiline tree, start off with a multiline element.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( multilineTag ) {
append ( append ( tree , {
type : multilineTag
} ) , '' ) ;
lastCharacterFormats = lastSeparatorFormats = [ multilineFormat ] ;
} else {
append ( tree , '' ) ;
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
var _loop = function _loop ( i ) {
var character = text . charAt ( i ) ;
2019-03-21 13:48:00 +01:00
var shouldInsertPadding = isEditableTree && ( // Pad the line if the line is empty.
! lastCharacter || lastCharacter === LINE _SEPARATOR || // Pad the line if the previous character is a line break, otherwise
// the line break won't be visible.
lastCharacter === '\n' ) ;
2018-12-18 04:14:52 +01:00
var characterFormats = formats [ i ] ; // Set multiline tags in queue for building the tree.
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( multilineTag ) {
if ( character === LINE _SEPARATOR ) {
2019-03-21 13:48:00 +01:00
characterFormats = lastSeparatorFormats = ( replacements [ i ] || [ ] ) . reduce ( function ( accumulator , format ) {
accumulator . push ( format , multilineFormat ) ;
2018-12-18 04:14:52 +01:00
return accumulator ;
} , [ multilineFormat ] ) ;
} else {
2019-03-07 10:09:59 +01:00
characterFormats = [ ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( lastSeparatorFormats ) , Object ( toConsumableArray [ "a" /* default */ ] ) ( characterFormats || [ ] ) ) ;
2018-12-18 04:14:52 +01:00
}
}
2018-12-14 12:02:53 +01:00
2019-03-21 13:48:00 +01:00
var pointer = getLastChild ( tree ) ;
2018-12-14 12:02:53 +01:00
2019-03-21 13:48:00 +01:00
if ( shouldInsertPadding && character === LINE _SEPARATOR ) {
2018-12-18 04:14:52 +01:00
var node = pointer ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
while ( ! isText ( node ) ) {
node = getLastChild ( node ) ;
}
2018-12-17 05:52:00 +01:00
2019-03-21 13:48:00 +01:00
append ( getParent ( node ) , padding ) ;
append ( getParent ( node ) , '' ) ;
} // Set selection for the start of line.
if ( lastCharacter === LINE _SEPARATOR ) {
var _node = pointer ;
while ( ! isText ( _node ) ) {
_node = getLastChild ( _node ) ;
}
2018-12-18 04:14:52 +01:00
if ( onStartIndex && start === i ) {
2019-03-21 13:48:00 +01:00
onStartIndex ( tree , _node ) ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( onEndIndex && end === i ) {
2019-03-21 13:48:00 +01:00
onEndIndex ( tree , _node ) ;
2018-12-18 04:14:52 +01:00
}
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( characterFormats ) {
characterFormats . forEach ( function ( format , formatIndex ) {
if ( pointer && lastCharacterFormats && format === lastCharacterFormats [ formatIndex ] && ( // Do not reuse the last element if the character is a
// line separator.
character !== LINE _SEPARATOR || characterFormats . length - 1 !== formatIndex ) ) {
pointer = getLastChild ( pointer ) ;
return ;
}
2018-12-17 05:52:00 +01:00
2019-03-07 10:09:59 +01:00
var type = format . type ,
attributes = format . attributes ,
2019-03-21 13:48:00 +01:00
unregisteredAttributes = format . unregisteredAttributes ;
var boundaryClass = isEditableTree && character !== LINE _SEPARATOR && format === deepestActiveFormat ;
2018-12-18 04:14:52 +01:00
var parent = getParent ( pointer ) ;
2019-03-07 10:09:59 +01:00
var newNode = append ( parent , fromFormat ( {
type : type ,
attributes : attributes ,
unregisteredAttributes : unregisteredAttributes ,
boundaryClass : boundaryClass
} ) ) ;
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
if ( isText ( pointer ) && getText ( pointer ) . length === 0 ) {
remove ( pointer ) ;
}
2019-03-21 13:48:00 +01:00
pointer = append ( newNode , '' ) ;
2018-12-18 04:14:52 +01:00
} ) ;
} // No need for further processing if the character is a line separator.
if ( character === LINE _SEPARATOR ) {
lastCharacterFormats = characterFormats ;
lastCharacter = character ;
return "continue" ;
2019-03-07 10:09:59 +01:00
} // If there is selection at 0, handle it before characters are inserted.
2018-12-18 04:14:52 +01:00
if ( i === 0 ) {
if ( onStartIndex && start === 0 ) {
onStartIndex ( tree , pointer ) ;
}
if ( onEndIndex && end === 0 ) {
onEndIndex ( tree , pointer ) ;
}
}
2019-03-21 13:48:00 +01:00
if ( character === OBJECT _REPLACEMENT _CHARACTER ) {
pointer = append ( getParent ( pointer ) , fromFormat ( Object ( objectSpread [ "a" /* default */ ] ) ( { } , replacements [ i ] , {
object : true
} ) ) ) ; // Ensure pointer is text node.
pointer = append ( getParent ( pointer ) , '' ) ;
} else if ( character === '\n' ) {
pointer = append ( getParent ( pointer ) , {
type : 'br' ,
attributes : isEditableTree ? {
'data-rich-text-line-break' : 'true'
} : undefined ,
object : true
} ) ; // Ensure pointer is text node.
pointer = append ( getParent ( pointer ) , '' ) ;
} else if ( ! isText ( pointer ) ) {
pointer = append ( getParent ( pointer ) , character ) ;
} else {
appendText ( pointer , character ) ;
2018-12-18 04:14:52 +01:00
}
if ( onStartIndex && start === i + 1 ) {
onStartIndex ( tree , pointer ) ;
}
2018-12-17 05:52:00 +01:00
2018-12-18 04:14:52 +01:00
if ( onEndIndex && end === i + 1 ) {
onEndIndex ( tree , pointer ) ;
2018-12-17 05:52:00 +01:00
}
2019-03-21 13:48:00 +01:00
if ( shouldInsertPadding && i === text . length ) {
append ( getParent ( pointer ) , padding ) ;
}
2018-12-18 04:14:52 +01:00
lastCharacterFormats = characterFormats ;
lastCharacter = character ;
} ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
for ( var i = 0 ; i < formatsLength ; i ++ ) {
var _ret = _loop ( i ) ;
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
if ( _ret === "continue" ) continue ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
return tree ;
}
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-dom.js
2018-12-17 05:52:00 +01:00
2018-12-14 05:41:57 +01:00
/ * *
* Internal dependencies
* /
2018-12-19 04:16:48 +01:00
2018-12-14 05:41:57 +01:00
/ * *
* Browser dependencies
* /
2019-03-07 10:09:59 +01:00
var to _dom _TEXT _NODE = window . Node . TEXT _NODE ;
2018-12-14 05:41:57 +01:00
/ * *
* Creates a path as an array of indices from the given root node to the given
* node .
*
* @ param { Node } node Node to find the path of .
* @ param { HTMLElement } rootNode Root node to find the path from .
* @ param { Array } path Initial path to build on .
*
* @ return { Array } The path from the root node to the node .
* /
function createPathToNode ( node , rootNode , path ) {
var parentNode = node . parentNode ;
var i = 0 ;
while ( node = node . previousSibling ) {
i ++ ;
}
2018-12-18 04:14:52 +01:00
path = [ i ] . concat ( Object ( toConsumableArray [ "a" /* default */ ] ) ( path ) ) ;
2018-12-14 05:41:57 +01:00
if ( parentNode !== rootNode ) {
path = createPathToNode ( parentNode , rootNode , path ) ;
}
return path ;
}
/ * *
* Gets a node given a path ( array of indices ) from the given node .
*
* @ param { HTMLElement } node Root node to find the wanted node in .
* @ param { Array } path Path ( indices ) to the wanted node .
*
* @ return { Object } Object with the found node and the remaining offset ( if any ) .
* /
function getNodeByPath ( node , path ) {
2018-12-18 04:14:52 +01:00
path = Object ( toConsumableArray [ "a" /* default */ ] ) ( path ) ;
2018-12-14 05:41:57 +01:00
while ( node && path . length > 1 ) {
node = node . childNodes [ path . shift ( ) ] ;
}
return {
node : node ,
offset : path [ 0 ]
} ;
}
2018-12-19 04:16:48 +01:00
/ * *
* Returns a new instance of a DOM tree upon which RichText operations can be
* applied .
*
* Note : The current implementation will return a shared reference , reset on
* each call to ` createEmpty ` . Therefore , you should not hold a reference to
* the value to operate upon asynchronously , as it may have unexpected results .
*
* @ return { WPRichTextTree } RichText tree .
* /
2018-12-14 05:41:57 +01:00
2018-12-19 04:16:48 +01:00
var to _dom _createEmpty = function createEmpty ( ) {
return createElement ( document , '' ) ;
} ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
function to _dom _append ( element , child ) {
2018-12-14 05:41:57 +01:00
if ( typeof child === 'string' ) {
child = element . ownerDocument . createTextNode ( child ) ;
}
var _child = child ,
type = _child . type ,
attributes = _child . attributes ;
if ( type ) {
child = element . ownerDocument . createElement ( type ) ;
for ( var key in attributes ) {
child . setAttribute ( key , attributes [ key ] ) ;
}
}
return element . appendChild ( child ) ;
}
2018-12-18 04:14:52 +01:00
function to _dom _appendText ( node , text ) {
2018-12-14 05:41:57 +01:00
node . appendData ( text ) ;
}
2018-12-18 04:14:52 +01:00
function to _dom _getLastChild ( _ref ) {
2018-12-14 05:41:57 +01:00
var lastChild = _ref . lastChild ;
return lastChild ;
}
2018-12-18 04:14:52 +01:00
function to _dom _getParent ( _ref2 ) {
2018-12-14 05:41:57 +01:00
var parentNode = _ref2 . parentNode ;
return parentNode ;
}
2018-12-18 04:14:52 +01:00
function to _dom _isText ( _ref3 ) {
2018-12-14 05:41:57 +01:00
var nodeType = _ref3 . nodeType ;
2018-12-18 04:14:52 +01:00
return nodeType === to _dom _TEXT _NODE ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
function to _dom _getText ( _ref4 ) {
2018-12-14 05:41:57 +01:00
var nodeValue = _ref4 . nodeValue ;
return nodeValue ;
}
2018-12-18 04:14:52 +01:00
function to _dom _remove ( node ) {
2018-12-14 05:41:57 +01:00
return node . parentNode . removeChild ( node ) ;
}
2018-12-17 05:52:00 +01:00
function prepareFormats ( ) {
var prepareEditableTree = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : [ ] ;
var value = arguments . length > 1 ? arguments [ 1 ] : undefined ;
return prepareEditableTree . reduce ( function ( accumlator , fn ) {
return fn ( accumlator , value . text ) ;
} , value . formats ) ;
}
2019-03-21 13:48:00 +01:00
function toDom ( _ref5 ) {
var value = _ref5 . value ,
multilineTag = _ref5 . multilineTag ,
prepareEditableTree = _ref5 . prepareEditableTree ,
_ref5$isEditableTree = _ref5 . isEditableTree ,
isEditableTree = _ref5$isEditableTree === void 0 ? true : _ref5$isEditableTree ;
2018-12-14 05:41:57 +01:00
var startPath = [ ] ;
var endPath = [ ] ;
2018-12-18 04:14:52 +01:00
var tree = toTree ( {
value : Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
2018-12-17 05:52:00 +01:00
formats : prepareFormats ( prepareEditableTree , value )
} ) ,
2018-12-15 12:00:40 +01:00
multilineTag : multilineTag ,
2018-12-18 04:14:52 +01:00
createEmpty : to _dom _createEmpty ,
append : to _dom _append ,
getLastChild : to _dom _getLastChild ,
getParent : to _dom _getParent ,
isText : to _dom _isText ,
getText : to _dom _getText ,
remove : to _dom _remove ,
appendText : to _dom _appendText ,
2018-12-15 12:00:40 +01:00
onStartIndex : function onStartIndex ( body , pointer ) {
2018-12-14 05:41:57 +01:00
startPath = createPathToNode ( pointer , body , [ pointer . nodeValue . length ] ) ;
} ,
2018-12-15 12:00:40 +01:00
onEndIndex : function onEndIndex ( body , pointer ) {
2018-12-14 05:41:57 +01:00
endPath = createPathToNode ( pointer , body , [ pointer . nodeValue . length ] ) ;
} ,
2019-03-07 10:09:59 +01:00
isEditableTree : isEditableTree
2018-12-14 05:41:57 +01:00
} ) ;
return {
body : tree ,
selection : {
startPath : startPath ,
endPath : endPath
}
} ;
}
/ * *
* Create an ` Element ` tree from a Rich Text value and applies the difference to
* the ` Element ` tree contained by ` current ` . If a ` multilineTag ` is provided ,
* text separated by two new lines will be wrapped in an ` Element ` of that type .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } $1 Named arguments .
* @ param { Object } $1 . value Value to apply .
* @ param { HTMLElement } $1 . current The live root node to apply the element tree to .
* @ param { string } [ $1 . multilineTag ] Multiline tag .
* @ param { Array } [ $1 . multilineWrapperTags ] Tags where lines can be found if nesting is possible .
2018-12-14 05:41:57 +01:00
* /
2019-03-21 13:48:00 +01:00
function apply ( _ref6 ) {
var value = _ref6 . value ,
current = _ref6 . current ,
multilineTag = _ref6 . multilineTag ,
prepareEditableTree = _ref6 . prepareEditableTree ,
_ _unstableDomOnly = _ref6 . _ _unstableDomOnly ;
2018-12-15 12:00:40 +01:00
2018-12-14 05:41:57 +01:00
// Construct a new element tree in memory.
2018-12-15 12:00:40 +01:00
var _toDom = toDom ( {
value : value ,
multilineTag : multilineTag ,
2018-12-17 05:52:00 +01:00
prepareEditableTree : prepareEditableTree
2018-12-15 12:00:40 +01:00
} ) ,
2018-12-14 05:41:57 +01:00
body = _toDom . body ,
selection = _toDom . selection ;
applyValue ( body , current ) ;
2019-03-07 10:09:59 +01:00
if ( value . start !== undefined && ! _ _unstableDomOnly ) {
2018-12-14 05:41:57 +01:00
applySelection ( selection , current ) ;
}
}
function applyValue ( future , current ) {
var i = 0 ;
2018-12-19 04:16:48 +01:00
var futureChild ;
2018-12-14 05:41:57 +01:00
2018-12-19 04:16:48 +01:00
while ( futureChild = future . firstChild ) {
2018-12-14 05:41:57 +01:00
var currentChild = current . childNodes [ i ] ;
if ( ! currentChild ) {
2018-12-19 04:16:48 +01:00
current . appendChild ( futureChild ) ;
} else if ( ! currentChild . isEqualNode ( futureChild ) ) {
2019-03-07 10:09:59 +01:00
if ( currentChild . nodeName !== futureChild . nodeName || currentChild . nodeType === to _dom _TEXT _NODE && currentChild . data !== futureChild . data ) {
current . replaceChild ( futureChild , currentChild ) ;
} else {
var currentAttributes = currentChild . attributes ;
var futureAttributes = futureChild . attributes ;
if ( currentAttributes ) {
for ( var ii = 0 ; ii < currentAttributes . length ; ii ++ ) {
var name = currentAttributes [ ii ] . name ;
if ( ! futureChild . getAttribute ( name ) ) {
currentChild . removeAttribute ( name ) ;
}
}
}
if ( futureAttributes ) {
for ( var _ii = 0 ; _ii < futureAttributes . length ; _ii ++ ) {
var _futureAttributes$ _ii = futureAttributes [ _ii ] ,
name = _futureAttributes$ _ii . name ,
value = _futureAttributes$ _ii . value ;
if ( currentChild . getAttribute ( name ) !== value ) {
currentChild . setAttribute ( name , value ) ;
}
}
}
applyValue ( futureChild , currentChild ) ;
future . removeChild ( futureChild ) ;
}
2018-12-14 05:41:57 +01:00
} else {
2018-12-19 04:16:48 +01:00
future . removeChild ( futureChild ) ;
2018-12-14 05:41:57 +01:00
}
i ++ ;
}
while ( current . childNodes [ i ] ) {
current . removeChild ( current . childNodes [ i ] ) ;
}
}
2018-12-19 04:16:48 +01:00
/ * *
* Returns true if two ranges are equal , or false otherwise . Ranges are
* considered equal if their start and end occur in the same container and
* offset .
*
* @ param { Range } a First range object to test .
* @ param { Range } b First range object to test .
*
* @ return { boolean } Whether the two ranges are equal .
* /
function isRangeEqual ( a , b ) {
return a . startContainer === b . startContainer && a . startOffset === b . startOffset && a . endContainer === b . endContainer && a . endOffset === b . endOffset ;
}
2019-03-21 13:48:00 +01:00
function applySelection ( _ref7 , current ) {
var startPath = _ref7 . startPath ,
endPath = _ref7 . endPath ;
2019-03-07 10:09:59 +01:00
var _getNodeByPath = getNodeByPath ( current , startPath ) ,
2018-12-14 05:41:57 +01:00
startContainer = _getNodeByPath . node ,
startOffset = _getNodeByPath . offset ;
2019-03-07 10:09:59 +01:00
var _getNodeByPath2 = getNodeByPath ( current , endPath ) ,
2018-12-14 05:41:57 +01:00
endContainer = _getNodeByPath2 . node ,
endOffset = _getNodeByPath2 . offset ;
2019-03-07 10:09:59 +01:00
var selection = window . getSelection ( ) ;
var ownerDocument = current . ownerDocument ;
var range = ownerDocument . createRange ( ) ;
range . setStart ( startContainer , startOffset ) ;
range . setEnd ( endContainer , endOffset ) ;
2018-12-14 05:41:57 +01:00
2019-03-07 10:09:59 +01:00
if ( selection . rangeCount > 0 ) {
2018-12-19 04:16:48 +01:00
// If the to be added range and the live range are the same, there's no
// need to remove the live range and add the equivalent range.
2019-03-07 10:09:59 +01:00
if ( isRangeEqual ( range , selection . getRangeAt ( 0 ) ) ) {
// Set back focus if focus is lost.
if ( ownerDocument . activeElement !== current ) {
current . focus ( ) ;
}
2018-12-19 04:16:48 +01:00
return ;
}
2019-03-07 10:09:59 +01:00
selection . removeAllRanges ( ) ;
2018-12-19 04:16:48 +01:00
}
2019-03-07 10:09:59 +01:00
selection . addRange ( range ) ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
// EXTERNAL MODULE: external {"this":["wp","escapeHtml"]}
2019-03-21 13:48:00 +01:00
var external _this _wp _escapeHtml _ = _ _webpack _require _ _ ( 69 ) ;
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-html-string.js
2018-12-14 05:41:57 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* WordPress dependencies
2018-12-14 05:41:57 +01:00
* /
/ * *
* Internal dependencies
* /
/ * *
* Create an HTML string from a Rich Text value . If a ` multilineTag ` is
2018-12-15 12:00:40 +01:00
* provided , text separated by a line separator will be wrapped in it .
2018-12-14 05:41:57 +01:00
*
2019-03-21 13:48:00 +01:00
* @ param { Object } $1 Named argements .
* @ param { Object } $1 . value Rich text value .
* @ param { string } [ $1 . multilineTag ] Multiline tag .
2018-12-14 05:41:57 +01:00
*
* @ return { string } HTML string .
* /
2018-12-15 12:00:40 +01:00
function toHTMLString ( _ref ) {
var value = _ref . value ,
2019-03-21 13:48:00 +01:00
multilineTag = _ref . multilineTag ;
2018-12-18 04:14:52 +01:00
var tree = toTree ( {
2018-12-15 12:00:40 +01:00
value : value ,
multilineTag : multilineTag ,
2018-12-18 04:14:52 +01:00
createEmpty : to _html _string _createEmpty ,
append : to _html _string _append ,
getLastChild : to _html _string _getLastChild ,
getParent : to _html _string _getParent ,
isText : to _html _string _isText ,
getText : to _html _string _getText ,
remove : to _html _string _remove ,
appendText : to _html _string _appendText
2018-12-14 05:41:57 +01:00
} ) ;
return createChildrenHTML ( tree . children ) ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _createEmpty ( ) {
2018-12-15 12:00:40 +01:00
return { } ;
2018-12-14 05:41:57 +01:00
}
2018-12-18 04:14:52 +01:00
function to _html _string _getLastChild ( _ref2 ) {
2018-12-15 12:00:40 +01:00
var children = _ref2 . children ;
2018-12-14 05:41:57 +01:00
return children && children [ children . length - 1 ] ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _append ( parent , object ) {
2018-12-14 05:41:57 +01:00
if ( typeof object === 'string' ) {
object = {
text : object
} ;
}
object . parent = parent ;
parent . children = parent . children || [ ] ;
parent . children . push ( object ) ;
return object ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _appendText ( object , text ) {
2018-12-14 05:41:57 +01:00
object . text += text ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _getParent ( _ref3 ) {
2018-12-15 12:00:40 +01:00
var parent = _ref3 . parent ;
2018-12-14 05:41:57 +01:00
return parent ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _isText ( _ref4 ) {
2018-12-15 12:00:40 +01:00
var text = _ref4 . text ;
2018-12-14 05:41:57 +01:00
return typeof text === 'string' ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _getText ( _ref5 ) {
2018-12-15 12:00:40 +01:00
var text = _ref5 . text ;
2018-12-14 05:41:57 +01:00
return text ;
}
2018-12-18 04:14:52 +01:00
function to _html _string _remove ( object ) {
2018-12-14 05:41:57 +01:00
var index = object . parent . children . indexOf ( object ) ;
if ( index !== - 1 ) {
object . parent . children . splice ( index , 1 ) ;
}
return object ;
}
2018-12-15 12:00:40 +01:00
function createElementHTML ( _ref6 ) {
var type = _ref6 . type ,
attributes = _ref6 . attributes ,
object = _ref6 . object ,
children = _ref6 . children ;
2018-12-14 05:41:57 +01:00
var attributeString = '' ;
for ( var key in attributes ) {
2018-12-18 04:14:52 +01:00
if ( ! Object ( external _this _wp _escapeHtml _ [ "isValidAttributeName" ] ) ( key ) ) {
2018-12-14 05:53:54 +01:00
continue ;
}
2018-12-18 04:14:52 +01:00
attributeString += " " . concat ( key , "=\"" ) . concat ( Object ( external _this _wp _escapeHtml _ [ "escapeAttribute" ] ) ( attributes [ key ] ) , "\"" ) ;
2018-12-14 05:41:57 +01:00
}
if ( object ) {
return "<" . concat ( type ) . concat ( attributeString , ">" ) ;
}
return "<" . concat ( type ) . concat ( attributeString , ">" ) . concat ( createChildrenHTML ( children ) , "</" ) . concat ( type , ">" ) ;
}
2018-12-18 04:14:52 +01:00
function createChildrenHTML ( ) {
var children = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : [ ] ;
return children . map ( function ( child ) {
return child . text === undefined ? createElementHTML ( child ) : Object ( external _this _wp _escapeHtml _ [ "escapeHTML" ] ) ( child . text ) ;
} ) . join ( '' ) ;
}
2018-12-14 12:02:53 +01:00
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/toggle-format.js
2018-12-14 12:02:53 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Toggles a format object to a Rich Text value at the current selection .
*
2019-03-21 13:48:00 +01:00
* @ param { Object } value Value to modify .
* @ param { Object } format Format to apply or remove .
2018-12-14 12:02:53 +01:00
*
* @ return { Object } A new value with the format applied or removed .
* /
function toggleFormat ( value , format ) {
2018-12-18 04:14:52 +01:00
if ( getActiveFormat ( value , format . type ) ) {
return removeFormat ( value , format . type ) ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
return applyFormat ( value , format ) ;
2018-12-14 12:02:53 +01:00
}
2018-12-18 04:14:52 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/unregister-format-type.js
2018-12-14 12:02:53 +01:00
/ * *
* WordPress dependencies
* /
2018-12-17 05:52:00 +01:00
2018-12-14 12:02:53 +01:00
/ * *
* Unregisters a format .
*
* @ param { string } name Format name .
*
2019-03-21 13:48:00 +01:00
* @ return { WPFormat | undefined } The previous format value , if it has been successfully
* unregistered ; otherwise ` undefined ` .
2018-12-14 12:02:53 +01:00
* /
function unregisterFormatType ( name ) {
2018-12-18 04:14:52 +01:00
var oldFormat = Object ( external _this _wp _data _ [ "select" ] ) ( 'core/rich-text' ) . getFormatType ( name ) ;
2018-12-14 12:02:53 +01:00
if ( ! oldFormat ) {
window . console . error ( "Format " . concat ( name , " is not registered." ) ) ;
return ;
}
2018-12-17 05:52:00 +01:00
if ( oldFormat . _ _experimentalCreatePrepareEditableTree && oldFormat . _ _experimentalGetPropsForEditableTreePreparation ) {
2018-12-18 04:14:52 +01:00
Object ( external _this _wp _hooks _ [ "removeFilter" ] ) ( 'experimentalRichText' , name ) ;
2018-12-17 05:52:00 +01:00
}
2018-12-18 04:14:52 +01:00
Object ( external _this _wp _data _ [ "dispatch" ] ) ( 'core/rich-text' ) . removeFormatTypes ( name ) ;
2018-12-14 12:02:53 +01:00
return oldFormat ;
}
2019-01-29 19:23:55 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-line-index.js
/ * *
* Internal dependencies
* /
/ * *
* Gets the currently selected line index , or the first line index if the
* selection spans over multiple items .
*
* @ param { Object } value Value to get the line index from .
* @ param { boolean } startIndex Optional index that should be contained by the
* line . Defaults to the selection start of the
* value .
*
* @ return { ? boolean } The line index . Undefined if not found .
* /
function getLineIndex ( _ref ) {
var start = _ref . start ,
text = _ref . text ;
var startIndex = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : start ;
var index = startIndex ;
while ( index -- ) {
if ( text [ index ] === LINE _SEPARATOR ) {
return index ;
}
}
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/indent-list-items.js
2019-03-21 13:48:00 +01:00
2019-01-29 19:23:55 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Gets the line index of the first previous list item with higher indentation .
*
* @ param { Object } value Value to search .
* @ param { number } lineIndex Line index of the list item to compare with .
*
* @ return { boolean } The line index .
* /
function getTargetLevelLineIndex ( _ref , lineIndex ) {
var text = _ref . text ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ;
var startFormats = replacements [ lineIndex ] || [ ] ;
2019-01-29 19:23:55 +01:00
var index = lineIndex ;
while ( index -- >= 0 ) {
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
}
2019-03-21 13:48:00 +01:00
var formatsAtIndex = replacements [ index ] || [ ] ; // Return the first line index that is one level higher. If the level is
2019-01-29 19:23:55 +01:00
// lower or equal, there is no result.
if ( formatsAtIndex . length === startFormats . length + 1 ) {
return index ;
} else if ( formatsAtIndex . length <= startFormats . length ) {
return ;
}
}
}
/ * *
* Indents any selected list items if possible .
*
* @ param { Object } value Value to change .
2019-03-21 13:48:00 +01:00
* @ param { Object } rootFormat Root format .
2019-01-29 19:23:55 +01:00
*
* @ return { Object } The changed value .
* /
function indentListItems ( value , rootFormat ) {
var lineIndex = getLineIndex ( value ) ; // There is only one line, so the line cannot be indented.
if ( lineIndex === undefined ) {
return value ;
}
var text = value . text ,
2019-03-21 13:48:00 +01:00
replacements = value . replacements ,
2019-01-29 19:23:55 +01:00
end = value . end ;
var previousLineIndex = getLineIndex ( value , lineIndex ) ;
2019-03-21 13:48:00 +01:00
var formatsAtLineIndex = replacements [ lineIndex ] || [ ] ;
var formatsAtPreviousLineIndex = replacements [ previousLineIndex ] || [ ] ; // The the indentation of the current line is greater than previous line,
2019-01-29 19:23:55 +01:00
// then the line cannot be furter indented.
if ( formatsAtLineIndex . length > formatsAtPreviousLineIndex . length ) {
return value ;
}
2019-03-21 13:48:00 +01:00
var newFormats = replacements . slice ( ) ;
2019-01-29 19:23:55 +01:00
var targetLevelLineIndex = getTargetLevelLineIndex ( value , lineIndex ) ;
for ( var index = lineIndex ; index < end ; index ++ ) {
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
} // Get the previous list, and if there's a child list, take over the
// formats. If not, duplicate the last level and create a new level.
if ( targetLevelLineIndex ) {
2019-03-21 13:48:00 +01:00
var targetFormats = replacements [ targetLevelLineIndex ] || [ ] ;
2019-01-29 19:23:55 +01:00
newFormats [ index ] = targetFormats . concat ( ( newFormats [ index ] || [ ] ) . slice ( targetFormats . length - 1 ) ) ;
} else {
2019-03-21 13:48:00 +01:00
var _targetFormats = replacements [ previousLineIndex ] || [ ] ;
2019-01-29 19:23:55 +01:00
var lastformat = _targetFormats [ _targetFormats . length - 1 ] || rootFormat ;
newFormats [ index ] = _targetFormats . concat ( [ lastformat ] , ( newFormats [ index ] || [ ] ) . slice ( _targetFormats . length ) ) ;
}
}
2019-03-21 13:48:00 +01:00
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
replacements : newFormats
2019-01-29 19:23:55 +01:00
} ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-parent-line-index.js
/ * *
* Internal dependencies
* /
/ * *
* Gets the index of the first parent list . To get the parent list formats , we
* go through every list item until we find one with exactly one format type
* less .
*
* @ param { Object } value Value to search .
* @ param { number } lineIndex Line index of a child list item .
*
* @ return { Array } The parent list line index .
* /
function getParentLineIndex ( _ref , lineIndex ) {
var text = _ref . text ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ;
var startFormats = replacements [ lineIndex ] || [ ] ;
2019-01-29 19:23:55 +01:00
var index = lineIndex ;
while ( index -- >= 0 ) {
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
}
2019-03-21 13:48:00 +01:00
var formatsAtIndex = replacements [ index ] || [ ] ;
2019-01-29 19:23:55 +01:00
if ( formatsAtIndex . length === startFormats . length - 1 ) {
return index ;
}
}
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-last-child-index.js
/ * *
* Internal dependencies
* /
/ * *
* Gets the line index of the last child in the list .
*
* @ param { Object } value Value to search .
* @ param { number } lineIndex Line index of a list item in the list .
*
* @ return { Array } The index of the last child .
* /
function getLastChildIndex ( _ref , lineIndex ) {
var text = _ref . text ,
2019-03-21 13:48:00 +01:00
replacements = _ref . replacements ;
var lineFormats = replacements [ lineIndex ] || [ ] ; // Use the given line index in case there are no next children.
2019-01-29 19:23:55 +01:00
var childIndex = lineIndex ; // `lineIndex` could be `undefined` if it's the first line.
for ( var index = lineIndex || 0 ; index < text . length ; index ++ ) {
// We're only interested in line indices.
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
}
2019-03-21 13:48:00 +01:00
var formatsAtIndex = replacements [ index ] || [ ] ; // If the amout of formats is equal or more, store it, then return the
2019-01-29 19:23:55 +01:00
// last one if the amount of formats is less.
if ( formatsAtIndex . length >= lineFormats . length ) {
childIndex = index ;
} else {
return childIndex ;
}
} // If the end of the text is reached, return the last child index.
return childIndex ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/outdent-list-items.js
2019-03-21 13:48:00 +01:00
2019-01-29 19:23:55 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Outdents any selected list items if possible .
*
* @ param { Object } value Value to change .
*
* @ return { Object } The changed value .
* /
function outdentListItems ( value ) {
var text = value . text ,
2019-03-21 13:48:00 +01:00
replacements = value . replacements ,
2019-01-29 19:23:55 +01:00
start = value . start ,
end = value . end ;
var startingLineIndex = getLineIndex ( value , start ) ; // Return early if the starting line index cannot be further outdented.
2019-03-21 13:48:00 +01:00
if ( replacements [ startingLineIndex ] === undefined ) {
2019-01-29 19:23:55 +01:00
return value ;
}
2019-03-21 13:48:00 +01:00
var newFormats = replacements . slice ( 0 ) ;
var parentFormats = replacements [ getParentLineIndex ( value , startingLineIndex ) ] || [ ] ;
2019-01-29 19:23:55 +01:00
var endingLineIndex = getLineIndex ( value , end ) ;
var lastChildIndex = getLastChildIndex ( value , endingLineIndex ) ; // Outdent all list items from the starting line index until the last child
// index of the ending list. All children of the ending list need to be
// outdented, otherwise they'll be orphaned.
for ( var index = startingLineIndex ; index <= lastChildIndex ; index ++ ) {
// Skip indices that are not line separators.
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
} // In the case of level 0, the formats at the index are undefined.
var currentFormats = newFormats [ index ] || [ ] ; // Omit the indentation level where the selection starts.
newFormats [ index ] = parentFormats . concat ( currentFormats . slice ( parentFormats . length + 1 ) ) ;
if ( newFormats [ index ] . length === 0 ) {
delete newFormats [ index ] ;
}
}
2019-03-21 13:48:00 +01:00
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
replacements : newFormats
2019-01-29 19:23:55 +01:00
} ) ;
}
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/change-list-type.js
2019-03-21 13:48:00 +01:00
2019-01-29 19:23:55 +01:00
/ * *
* Internal dependencies
* /
/ * *
* Changes the list type of the selected indented list , if any . Looks at the
* currently selected list item and takes the parent list , then changes the list
2019-03-07 10:09:59 +01:00
* type of this list . When multiple lines are selected , the parent lists are
* takes and changed .
2018-12-14 12:02:53 +01:00
*
2019-03-07 10:09:59 +01:00
* @ param { Object } value Value to change .
* @ param { Object } newFormat The new list format object . Choose between
* ` { type: 'ol' } ` and ` { type: 'ul' } ` .
2018-12-14 12:02:53 +01:00
*
2019-03-07 10:09:59 +01:00
* @ return { Object } The changed value .
2018-12-14 12:02:53 +01:00
* /
2019-03-07 10:09:59 +01:00
function changeListType ( value , newFormat ) {
var text = value . text ,
2019-03-21 13:48:00 +01:00
replacements = value . replacements ,
2019-03-07 10:09:59 +01:00
start = value . start ,
end = value . end ;
var startingLineIndex = getLineIndex ( value , start ) ;
2019-03-21 13:48:00 +01:00
var startLineFormats = replacements [ startingLineIndex ] || [ ] ;
var endLineFormats = replacements [ getLineIndex ( value , end ) ] || [ ] ;
2019-03-07 10:09:59 +01:00
var startIndex = getParentLineIndex ( value , startingLineIndex ) ;
2019-03-21 13:48:00 +01:00
var newReplacements = replacements . slice ( ) ;
2019-03-07 10:09:59 +01:00
var startCount = startLineFormats . length - 1 ;
var endCount = endLineFormats . length - 1 ;
var changed ;
2018-12-14 12:02:53 +01:00
2019-03-07 10:09:59 +01:00
for ( var index = startIndex + 1 || 0 ; index < text . length ; index ++ ) {
if ( text [ index ] !== LINE _SEPARATOR ) {
continue ;
}
2018-12-14 12:02:53 +01:00
2019-03-21 13:48:00 +01:00
if ( ( newReplacements [ index ] || [ ] ) . length <= startCount ) {
2019-03-07 10:09:59 +01:00
break ;
}
2019-03-21 13:48:00 +01:00
if ( ! newReplacements [ index ] ) {
2019-03-07 10:09:59 +01:00
continue ;
}
changed = true ;
2019-03-21 13:48:00 +01:00
newReplacements [ index ] = newReplacements [ index ] . map ( function ( format , i ) {
2019-03-07 10:09:59 +01:00
return i < startCount || i > endCount ? format : newFormat ;
} ) ;
}
if ( ! changed ) {
return value ;
}
2019-03-21 13:48:00 +01:00
return Object ( objectSpread [ "a" /* default */ ] ) ( { } , value , {
replacements : newReplacements
2019-03-07 10:09:59 +01:00
} ) ;
2018-12-14 12:02:53 +01:00
}
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/update-formats.js
/ * *
* Internal dependencies
* /
/ * *
* Efficiently updates all the formats from ` start ` ( including ) until ` end `
* ( excluding ) with the active formats . Mutates ` value ` .
*
* @ param { Object } $1 Named paramentes .
* @ param { Object } $1 . value Value te update .
* @ param { number } $1 . start Index to update from .
* @ param { number } $1 . end Index to update until .
* @ param { Array } $1 . formats Replacement formats .
*
* @ return { Object } Mutated value .
* /
function updateFormats ( _ref ) {
var value = _ref . value ,
start = _ref . start ,
end = _ref . end ,
formats = _ref . formats ;
var formatsBefore = value . formats [ start - 1 ] || [ ] ;
var formatsAfter = value . formats [ end ] || [ ] ; // First, fix the references. If any format right before or after are
// equal, the replacement format should use the same reference.
value . activeFormats = formats . map ( function ( format , index ) {
if ( formatsBefore [ index ] ) {
if ( isFormatEqual ( format , formatsBefore [ index ] ) ) {
return formatsBefore [ index ] ;
}
} else if ( formatsAfter [ index ] ) {
if ( isFormatEqual ( format , formatsAfter [ index ] ) ) {
return formatsAfter [ index ] ;
}
}
return format ;
} ) ;
while ( -- end >= start ) {
if ( value . activeFormats . length > 0 ) {
value . formats [ end ] = value . activeFormats ;
} else {
delete value . formats [ end ] ;
}
}
return value ;
}
2019-03-07 10:09:59 +01:00
// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/index.js
2018-12-14 12:02:53 +01:00
/ * *
2019-03-07 10:09:59 +01:00
* Internal dependencies
2018-12-14 12:02:53 +01:00
* /
2019-03-07 10:09:59 +01:00
Block Editor: Update packages to bring a selection of bugfixes in.
Props iseulde, kjellr, aduth, 0mirka00, mcsf, nosolosw, gziolo, jasmussen, talldanwp, notnownikki, swissspidy, jorgefilipecosta, noisysocks.
See https://github.com/WordPress/gutenberg/pull/14796.
Fixes #46801.
Built from https://develop.svn.wordpress.org/trunk@45138
git-svn-id: http://core.svn.wordpress.org/trunk@44947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 08:37:57 +02:00
2018-12-14 12:02:53 +01:00
2018-12-14 05:41:57 +01:00
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 41 :
2018-12-18 04:14:52 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
module . exports = function memize ( fn , options ) {
var size = 0 ,
maxSize , head , tail ;
if ( options && options . maxSize ) {
maxSize = options . maxSize ;
}
function memoized ( /* ...args */ ) {
var node = head ,
len = arguments . length ,
args , i ;
searchCache : while ( node ) {
// Perform a shallow equality test to confirm that whether the node
// under test is a candidate for the arguments passed. Two arrays
// are shallowly equal if their length matches and each entry is
// strictly equal between the two sets. Avoid abstracting to a
// function which could incur an arguments leaking deoptimization.
// Check whether node arguments match arguments length
if ( node . args . length !== arguments . length ) {
node = node . next ;
continue ;
}
// Check whether node arguments match arguments values
for ( i = 0 ; i < len ; i ++ ) {
if ( node . args [ i ] !== arguments [ i ] ) {
node = node . next ;
continue searchCache ;
}
}
// At this point we can assume we've found a match
// Surface matched node to head if not already
if ( node !== head ) {
// As tail, shift to previous. Must only shift if not also
// head, since if both head and tail, there is no previous.
if ( node === tail ) {
tail = node . prev ;
}
// Adjust siblings to point to each other. If node was tail,
// this also handles new tail's empty `next` assignment.
node . prev . next = node . next ;
if ( node . next ) {
node . next . prev = node . prev ;
}
node . next = head ;
node . prev = null ;
head . prev = node ;
head = node ;
}
// Return immediately
return node . val ;
}
// No cached value found. Continue to insertion phase:
// Create a copy of arguments (avoid leaking deoptimization)
args = new Array ( len ) ;
for ( i = 0 ; i < len ; i ++ ) {
args [ i ] = arguments [ i ] ;
}
node = {
args : args ,
// Generate the result from original function
val : fn . apply ( null , 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
if ( head ) {
head . prev = node ;
node . next = head ;
} else {
// If no head, follows that there's no tail (at initial or reset)
tail = node ;
}
// Trim tail if we're reached max size and are pending cache insertion
if ( size === maxSize ) {
tail = tail . prev ;
tail . next = null ;
} else {
size ++ ;
}
head = node ;
return node . val ;
}
memoized . clear = function ( ) {
head = null ;
tail = null ;
size = 0 ;
} ;
if ( false ) { }
return memoized ;
} ;
2018-12-15 12:00:40 +01:00
/***/ } ) ,
2018-12-18 04:14:52 +01:00
/***/ 5 :
2018-12-17 05:52:00 +01:00
/***/ ( function ( module , exports ) {
2018-12-18 04:14:52 +01:00
( function ( ) { module . exports = this [ "wp" ] [ "data" ] ; } ( ) ) ;
2018-12-17 05:52:00 +01:00
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 6 :
2018-12-14 05:41:57 +01:00
/***/ ( function ( module , exports ) {
2019-03-21 13:48:00 +01:00
( function ( ) { module . exports = this [ "wp" ] [ "compose" ] ; } ( ) ) ;
2018-12-14 05:41:57 +01:00
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 69 :
2018-12-17 05:52:00 +01:00
/***/ ( function ( module , exports ) {
2019-03-21 13:48:00 +01:00
( function ( ) { module . exports = this [ "wp" ] [ "escapeHtml" ] ; } ( ) ) ;
2018-12-17 05:52:00 +01:00
/***/ } ) ,
2019-03-21 13:48:00 +01:00
/***/ 7 :
2018-12-18 04:14:52 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
2018-12-14 05:41:57 +01:00
2018-12-18 04:14:52 +01:00
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _objectSpread ; } ) ;
/* harmony import */ var _defineProperty _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 15 ) ;
function _objectSpread ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] != null ? arguments [ i ] : { } ;
var ownKeys = Object . keys ( source ) ;
if ( typeof Object . getOwnPropertySymbols === 'function' ) {
ownKeys = ownKeys . concat ( Object . getOwnPropertySymbols ( source ) . filter ( function ( sym ) {
return Object . getOwnPropertyDescriptor ( source , sym ) . enumerable ;
} ) ) ;
}
ownKeys . forEach ( function ( key ) {
Object ( _defineProperty _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( target , key , source [ key ] ) ;
} ) ;
}
return target ;
}
2018-12-14 05:41:57 +01:00
/***/ } )
2018-12-18 04:14:52 +01:00
/******/ } ) ;