2018-12-14 05:41:57 +01:00
this [ "wp" ] = this [ "wp" ] || { } ; this [ "wp" ] [ "blockSerializationDefaultParser" ] =
/******/ ( 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
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = "SiJt" ) ;
2018-12-14 05:41:57 +01:00
/******/ } )
/************************************************************************/
/******/ ( {
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/***/ "BsWD" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _unsupportedIterableToArray ; } ) ;
/* harmony import */ var _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( "a3WO" ) ;
function _unsupportedIterableToArray ( o , minLen ) {
if ( ! o ) return ;
if ( typeof o === "string" ) return Object ( _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( o , minLen ) ;
var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ;
if ( n === "Object" && o . constructor ) n = o . constructor . name ;
if ( n === "Map" || n === "Set" ) return Array . from ( o ) ;
if ( n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ . test ( n ) ) return Object ( _arrayLikeToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( o , minLen ) ;
}
/***/ } ) ,
/***/ "DSFK" :
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _arrayWithHoles ; } ) ;
function _arrayWithHoles ( arr ) {
if ( Array . isArray ( arr ) ) return arr ;
}
/***/ } ) ,
/***/ "ODXe" :
2019-10-15 18:17:12 +02:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
2020-06-29 13:50:29 +02:00
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return /* binding */ _slicedToArray ; } ) ;
2019-10-15 18:17:12 +02:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
var arrayWithHoles = _ _webpack _require _ _ ( "DSFK" ) ;
2019-10-15 18:17:12 +02:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit ( arr , i ) {
2020-03-24 00:40:19 +01:00
if ( typeof Symbol === "undefined" || ! ( Symbol . iterator in Object ( arr ) ) ) return ;
2019-10-15 18:17:12 +02:00
var _arr = [ ] ;
var _n = true ;
var _d = false ;
var _e = undefined ;
try {
for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) {
_arr . push ( _s . value ) ;
if ( i && _arr . length === i ) break ;
}
} catch ( err ) {
_d = true ;
_e = err ;
} finally {
try {
if ( ! _n && _i [ "return" ] != null ) _i [ "return" ] ( ) ;
} finally {
if ( _d ) throw _e ;
}
}
return _arr ;
}
2020-03-24 00:40:19 +01:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
var unsupportedIterableToArray = _ _webpack _require _ _ ( "BsWD" ) ;
2020-03-24 00:40:19 +01:00
2019-10-15 18:17:12 +02:00
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
var nonIterableRest = _ _webpack _require _ _ ( "PYwp" ) ;
2019-10-15 18:17:12 +02:00
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
2020-03-24 00:40:19 +01:00
2019-10-15 18:17:12 +02:00
function _slicedToArray ( arr , i ) {
2020-03-24 00:40:19 +01:00
return Object ( arrayWithHoles [ "a" /* default */ ] ) ( arr ) || _iterableToArrayLimit ( arr , i ) || Object ( unsupportedIterableToArray [ "a" /* default */ ] ) ( arr , i ) || Object ( nonIterableRest [ "a" /* default */ ] ) ( ) ;
}
/***/ } ) ,
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/***/ "PYwp" :
2020-03-24 00:40:19 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _nonIterableRest ; } ) ;
function _nonIterableRest ( ) {
throw new TypeError ( "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
2019-10-15 18:17:12 +02:00
}
/***/ } ) ,
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/***/ "SiJt" :
2018-12-14 05:41:57 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "parse" , function ( ) { return parse ; } ) ;
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/* harmony import */ var _babel _runtime _helpers _esm _slicedToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( "ODXe" ) ;
2018-12-14 05:41:57 +01:00
var document ;
var offset ;
var output ;
var stack ;
2018-12-17 22:59:54 +01:00
/ * *
* Matches block comment delimiters
*
* While most of this pattern is straightforward the attribute parsing
* incorporates a tricks to make sure we don ' t choke on specific input
*
* - since JavaScript has no possessive quantifier or atomic grouping
* we are emulating it with a trick
*
* we want a possessive quantifier or atomic group to prevent backtracking
* on the ` } ` s should we fail to match the remainder of the pattern
*
* we can emulate this with a positive lookahead and back reference
* ( a ++ ) * c === ( ( ? = ( a + ) ) \ 1 ) * c
*
* let ' s examine an example :
* - /(a+)*c/ . test ( 'aaaaaaaaaaaaad' ) fails after over 49 , 000 steps
* - /(a++)*c/ . test ( 'aaaaaaaaaaaaad' ) fails after 85 steps
* - /(?>a+)*c/ . test ( 'aaaaaaaaaaaaad' ) fails after 126 steps
*
* this is because the possessive ` ++ ` and the atomic group ` (?>) `
* tell the engine that all those ` a ` s belong together as a single group
* and so it won ' t split it up when stepping backwards to try and match
*
* if we use / ( ( ? = ( a + ) ) \ 1 ) * c / then we get the same behavior as the atomic group
* or possessive and prevent the backtracking because the ` a+ ` is matched but
* not captured . thus , we find the long string of ` a ` s and remember it , then
* reference it as a whole unit inside our pattern
*
2019-09-19 17:19:18 +02:00
* @ see http : //instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead
* @ see http : //blog.stevenlevithan.com/archives/mimic-atomic-groups
* @ see https : //javascript.info/regexp-infinite-backtracking-problem
2018-12-17 22:59:54 +01:00
*
* once browsers reliably support atomic grouping or possessive
* quantifiers natively we should remove this trick and simplify
*
2020-06-26 15:33:47 +02:00
* @ type { RegExp }
2018-12-17 22:59:54 +01:00
*
* @ since 3.8 . 0
* @ since 4.6 . 1 added optimization to prevent backtracking on attribute parsing
* /
var tokenizer = /<!--\s+(\/)?wp:([a-z][a-z0-9_-]*\/)?([a-z][a-z0-9_-]*)\s+({(?:(?=([^}]+|}+(?=})|(?!}\s+\/?-->)[^])*)\5|[^]*?)}\s+)?(\/)?-->/g ;
2018-12-14 05:41:57 +01:00
2018-12-17 05:52:00 +01:00
function Block ( blockName , attrs , innerBlocks , innerHTML , innerContent ) {
2018-12-14 05:41:57 +01:00
return {
blockName : blockName ,
attrs : attrs ,
innerBlocks : innerBlocks ,
2018-12-17 05:52:00 +01:00
innerHTML : innerHTML ,
innerContent : innerContent
2018-12-14 05:41:57 +01:00
} ;
}
function Freeform ( innerHTML ) {
2018-12-17 05:52:00 +01:00
return Block ( null , { } , [ ] , innerHTML , [ innerHTML ] ) ;
2018-12-14 05:41:57 +01:00
}
function Frame ( block , tokenStart , tokenLength , prevOffset , leadingHtmlStart ) {
return {
block : block ,
tokenStart : tokenStart ,
tokenLength : tokenLength ,
prevOffset : prevOffset || tokenStart + tokenLength ,
leadingHtmlStart : leadingHtmlStart
} ;
}
2019-03-21 13:48:00 +01:00
/ * *
* Parser function , that converts input HTML into a block based structure .
*
* @ param { string } doc The HTML document to parse .
*
* @ example
* Input post :
* ` ` ` html
* <!-- wp : columns { "columns" : 3 } -- >
* < div class = "wp-block-columns has-3-columns" > <!-- wp : column -- >
* < div class = "wp-block-column" > <!-- wp : paragraph -- >
* < p > Left < / p >
* <!-- / w p : p a r a g r a p h - - > < / d i v >
* <!-- / w p : c o l u m n - - >
*
* <!-- wp : column -- >
* < div class = "wp-block-column" > <!-- wp : paragraph -- >
* < p > < strong > Middle < / s t r o n g > < / p >
* <!-- / w p : p a r a g r a p h - - > < / d i v >
* <!-- / w p : c o l u m n - - >
*
* <!-- wp : column -- >
* < div class = "wp-block-column" > < / d i v >
* <!-- / w p : c o l u m n - - > < / d i v >
* <!-- / w p : c o l u m n s - - >
* ` ` `
*
* Parsing code :
* ` ` ` js
* import { parse } from '@wordpress/block-serialization-default-parser' ;
*
* parse ( post ) === [
* {
* blockName : "core/columns" ,
* attrs : {
* columns : 3
* } ,
* innerBlocks : [
* {
* blockName : "core/column" ,
* attrs : null ,
* innerBlocks : [
* {
* blockName : "core/paragraph" ,
* attrs : null ,
* innerBlocks : [ ] ,
* innerHTML : "\n<p>Left</p>\n"
* }
* ] ,
* innerHTML : '\n<div class="wp-block-column"></div>\n'
* } ,
* {
* blockName : "core/column" ,
* attrs : null ,
* innerBlocks : [
* {
* blockName : "core/paragraph" ,
* attrs : null ,
* innerBlocks : [ ] ,
* innerHTML : "\n<p><strong>Middle</strong></p>\n"
* }
* ] ,
* innerHTML : '\n<div class="wp-block-column"></div>\n'
* } ,
* {
* blockName : "core/column" ,
* attrs : null ,
* innerBlocks : [ ] ,
* innerHTML : '\n<div class="wp-block-column"></div>\n'
* }
* ] ,
* innerHTML : '\n<div class="wp-block-columns has-3-columns">\n\n\n\n</div>\n'
* }
* ] ;
* ` ` `
* @ return { Array } A block - based representation of the input HTML .
* /
2018-12-14 05:41:57 +01:00
var parse = function parse ( doc ) {
document = doc ;
offset = 0 ;
output = [ ] ;
stack = [ ] ;
tokenizer . lastIndex = 0 ;
do { // twiddle our thumbs
} while ( proceed ( ) ) ;
return output ;
} ;
function proceed ( ) {
var next = nextToken ( ) ;
2018-12-18 04:14:52 +01:00
var _next = Object ( _babel _runtime _helpers _esm _slicedToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( next , 5 ) ,
2018-12-14 05:41:57 +01:00
tokenType = _next [ 0 ] ,
blockName = _next [ 1 ] ,
attrs = _next [ 2 ] ,
startOffset = _next [ 3 ] ,
tokenLength = _next [ 4 ] ;
var stackDepth = stack . length ; // we may have some HTML soup before the next block
var leadingHtmlStart = startOffset > offset ? offset : null ;
switch ( tokenType ) {
case 'no-more-tokens' :
// if not in a block then flush output
if ( 0 === stackDepth ) {
addFreeform ( ) ;
return false ;
} // Otherwise we have a problem
// This is an error
// we have options
// - treat it all as freeform text
// - assume an implicit closer (easiest when not nesting)
// for the easy case we'll assume an implicit closer
if ( 1 === stackDepth ) {
addBlockFromStack ( ) ;
return false ;
} // for the nested case where it's more difficult we'll
// have to assume that multiple closers are missing
// and so we'll collapse the whole stack piecewise
while ( 0 < stack . length ) {
addBlockFromStack ( ) ;
}
return false ;
case 'void-block' :
// easy case is if we stumbled upon a void block
// in the top-level of the document
if ( 0 === stackDepth ) {
if ( null !== leadingHtmlStart ) {
output . push ( Freeform ( document . substr ( leadingHtmlStart , startOffset - leadingHtmlStart ) ) ) ;
}
2018-12-17 05:52:00 +01:00
output . push ( Block ( blockName , attrs , [ ] , '' , [ ] ) ) ;
2018-12-14 05:41:57 +01:00
offset = startOffset + tokenLength ;
return true ;
} // otherwise we found an inner block
2018-12-17 05:52:00 +01:00
addInnerBlock ( Block ( blockName , attrs , [ ] , '' , [ ] ) , startOffset , tokenLength ) ;
2018-12-14 05:41:57 +01:00
offset = startOffset + tokenLength ;
return true ;
case 'block-opener' :
// track all newly-opened blocks on the stack
2018-12-17 05:52:00 +01:00
stack . push ( Frame ( Block ( blockName , attrs , [ ] , '' , [ ] ) , startOffset , tokenLength , startOffset + tokenLength , leadingHtmlStart ) ) ;
2018-12-14 05:41:57 +01:00
offset = startOffset + tokenLength ;
return true ;
case 'block-closer' :
// if we're missing an opener we're in trouble
// This is an error
if ( 0 === stackDepth ) {
// we have options
// - assume an implicit opener
// - assume _this_ is the opener
// - give up and close out the document
addFreeform ( ) ;
return false ;
} // if we're not nesting then this is easy - close the block
if ( 1 === stackDepth ) {
addBlockFromStack ( startOffset ) ;
offset = startOffset + tokenLength ;
return true ;
} // otherwise we're nested and we have to close out the current
// block and add it as a innerBlock to the parent
var stackTop = stack . pop ( ) ;
2018-12-17 05:52:00 +01:00
var html = document . substr ( stackTop . prevOffset , startOffset - stackTop . prevOffset ) ;
stackTop . block . innerHTML += html ;
stackTop . block . innerContent . push ( html ) ;
2018-12-14 05:41:57 +01:00
stackTop . prevOffset = startOffset + tokenLength ;
addInnerBlock ( stackTop . block , stackTop . tokenStart , stackTop . tokenLength , startOffset + tokenLength ) ;
offset = startOffset + tokenLength ;
return true ;
default :
// This is an error
addFreeform ( ) ;
return false ;
}
}
/ * *
* Parse JSON if valid , otherwise return null
*
* Note that JSON coming from the block comment
* delimiters is constrained to be an object
* and cannot be things like ` true ` or ` null `
*
* @ param { string } input JSON input string to parse
* @ return { Object | null } parsed JSON if valid
* /
function parseJSON ( input ) {
try {
return JSON . parse ( input ) ;
} catch ( e ) {
return null ;
}
}
function nextToken ( ) {
// aye the magic
// we're using a single RegExp to tokenize the block comment delimiters
// we're also using a trick here because the only difference between a
// block opener and a block closer is the leading `/` before `wp:` (and
// a closer has no attributes). we can trap them both and process the
// match back in Javascript to see which one it was.
var matches = tokenizer . exec ( document ) ; // we have no more tokens
if ( null === matches ) {
return [ 'no-more-tokens' ] ;
}
var startedAt = matches . index ;
2018-12-18 04:14:52 +01:00
var _matches = Object ( _babel _runtime _helpers _esm _slicedToArray _ _WEBPACK _IMPORTED _MODULE _0 _ _ [ /* default */ "a" ] ) ( matches , 7 ) ,
2018-12-14 05:41:57 +01:00
match = _matches [ 0 ] ,
closerMatch = _matches [ 1 ] ,
namespaceMatch = _matches [ 2 ] ,
nameMatch = _matches [ 3 ] ,
2020-02-06 22:03:31 +01:00
attrsMatch
2018-12-17 22:59:54 +01:00
/* internal/unused */
2020-02-06 22:03:31 +01:00
= _matches [ 4 ] ,
voidMatch = _matches [ 6 ] ;
2018-12-14 05:41:57 +01:00
var length = match . length ;
var isCloser = ! ! closerMatch ;
var isVoid = ! ! voidMatch ;
var namespace = namespaceMatch || 'core/' ;
var name = namespace + nameMatch ;
var hasAttrs = ! ! attrsMatch ;
var attrs = hasAttrs ? parseJSON ( attrsMatch ) : { } ; // This state isn't allowed
// This is an error
if ( isCloser && ( isVoid || hasAttrs ) ) { // we can ignore them since they don't hurt anything
// we may warn against this at some point or reject it
}
if ( isVoid ) {
return [ 'void-block' , name , attrs , startedAt , length ] ;
}
if ( isCloser ) {
return [ 'block-closer' , name , null , startedAt , length ] ;
}
return [ 'block-opener' , name , attrs , startedAt , length ] ;
}
function addFreeform ( rawLength ) {
var length = rawLength ? rawLength : document . length - offset ;
if ( 0 === length ) {
return ;
}
output . push ( Freeform ( document . substr ( offset , length ) ) ) ;
}
function addInnerBlock ( block , tokenStart , tokenLength , lastOffset ) {
var parent = stack [ stack . length - 1 ] ;
parent . block . innerBlocks . push ( block ) ;
2018-12-17 05:52:00 +01:00
var html = document . substr ( parent . prevOffset , tokenStart - parent . prevOffset ) ;
if ( html ) {
parent . block . innerHTML += html ;
parent . block . innerContent . push ( html ) ;
}
parent . block . innerContent . push ( null ) ;
2018-12-14 05:41:57 +01:00
parent . prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength ;
}
function addBlockFromStack ( endOffset ) {
var _stack$pop = stack . pop ( ) ,
block = _stack$pop . block ,
leadingHtmlStart = _stack$pop . leadingHtmlStart ,
prevOffset = _stack$pop . prevOffset ,
tokenStart = _stack$pop . tokenStart ;
2018-12-17 05:52:00 +01:00
var html = endOffset ? document . substr ( prevOffset , endOffset - prevOffset ) : document . substr ( prevOffset ) ;
if ( html ) {
block . innerHTML += html ;
block . innerContent . push ( html ) ;
2018-12-14 05:41:57 +01:00
}
if ( null !== leadingHtmlStart ) {
output . push ( Freeform ( document . substr ( leadingHtmlStart , tokenStart - leadingHtmlStart ) ) ) ;
}
output . push ( block ) ;
}
2018-12-18 04:14:52 +01:00
/***/ } ) ,
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/***/ "a3WO" :
2018-12-18 04:14:52 +01:00
/***/ ( function ( module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) {
"use strict" ;
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
/* harmony export (binding) */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , "a" , function ( ) { return _arrayLikeToArray ; } ) ;
function _arrayLikeToArray ( arr , len ) {
if ( len == null || len > arr . length ) len = arr . length ;
2018-12-18 04:14:52 +01:00
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) {
arr2 [ i ] = arr [ i ] ;
}
2018-12-18 04:14:52 +01:00
Grouped merges for 5.5.6.
- Update `lodash` to the latest version `4.17.21`.
- Disable some attributes for rich text.
- Use hashed/deterministic moduleIDs in webpack config.
Props ellatrix, peterwilsoncc, get_dave, mcsf, talldanwp, youknowriad, desrosj, nerrad, gziolo.
Merges [50940-50941,50984-50985,51426] to the 5.5 branch.
Built from https://develop.svn.wordpress.org/branches/5.5@51752
git-svn-id: http://core.svn.wordpress.org/branches/5.5@51360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-09-08 23:17:20 +02:00
return arr2 ;
2018-12-18 04:14:52 +01:00
}
2018-12-14 05:41:57 +01:00
/***/ } )
2018-12-18 04:14:52 +01:00
/******/ } ) ;