File "index.min.js.map"

Full Path: /home/pumpbmko/public_html/wp-content/plugins/gutenberg/build/block-serialization-default-parser/index.min.js.map
File size: 19.07 KB
MIME-type: application/json
Charset: utf-8

{"version":3,"file":"./build/block-serialization-default-parser/index.min.js","mappings":"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","sources":["webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","../../packages/block-serialization-default-parser/src/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @type {string}\n */\nlet document;\n/**\n * @type {number}\n */\nlet offset;\n/**\n * @type {ParsedBlock[]}\n */\nlet output;\n/**\n * @type {ParsedFrame[]}\n */\nlet stack;\n\n/**\n * @typedef {Object|null} Attributes\n */\n\n/**\n * @typedef {Object} ParsedBlock\n * @property {string|null}        blockName    Block name.\n * @property {Attributes}         attrs        Block attributes.\n * @property {ParsedBlock[]}      innerBlocks  Inner blocks.\n * @property {string}             innerHTML    Inner HTML.\n * @property {Array<string|null>} innerContent Inner content.\n */\n\n/**\n * @typedef {Object} ParsedFrame\n * @property {ParsedBlock} block            Block.\n * @property {number}      tokenStart       Token start.\n * @property {number}      tokenLength      Token length.\n * @property {number}      prevOffset       Previous offset.\n * @property {number|null} leadingHtmlStart Leading HTML start.\n */\n\n/**\n * @typedef {'no-more-tokens'|'void-block'|'block-opener'|'block-closer'} TokenType\n */\n\n/**\n * @typedef {[TokenType, string, Attributes, number, number]} Token\n */\n\n/**\n * Matches block comment delimiters\n *\n * While most of this pattern is straightforward the attribute parsing\n * incorporates a tricks to make sure we don't choke on specific input\n *\n *  - since JavaScript has no possessive quantifier or atomic grouping\n *    we are emulating it with a trick\n *\n *    we want a possessive quantifier or atomic group to prevent backtracking\n *    on the `}`s should we fail to match the remainder of the pattern\n *\n *    we can emulate this with a positive lookahead and back reference\n *    (a++)*c === ((?=(a+))\\1)*c\n *\n *    let's examine an example:\n *      - /(a+)*c/.test('aaaaaaaaaaaaad') fails after over 49,000 steps\n *      - /(a++)*c/.test('aaaaaaaaaaaaad') fails after 85 steps\n *      - /(?>a+)*c/.test('aaaaaaaaaaaaad') fails after 126 steps\n *\n *    this is because the possessive `++` and the atomic group `(?>)`\n *    tell the engine that all those `a`s belong together as a single group\n *    and so it won't split it up when stepping backwards to try and match\n *\n *    if we use /((?=(a+))\\1)*c/ then we get the same behavior as the atomic group\n *    or possessive and prevent the backtracking because the `a+` is matched but\n *    not captured. thus, we find the long string of `a`s and remember it, then\n *    reference it as a whole unit inside our pattern\n *\n *    @see http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead\n *    @see http://blog.stevenlevithan.com/archives/mimic-atomic-groups\n *    @see https://javascript.info/regexp-infinite-backtracking-problem\n *\n *    once browsers reliably support atomic grouping or possessive\n *    quantifiers natively we should remove this trick and simplify\n *\n * @type {RegExp}\n *\n * @since 3.8.0\n * @since 4.6.1 added optimization to prevent backtracking on attribute parsing\n */\nconst tokenizer =\n\t/<!--\\s+(\\/)?wp:([a-z][a-z0-9_-]*\\/)?([a-z][a-z0-9_-]*)\\s+({(?:(?=([^}]+|}+(?=})|(?!}\\s+\\/?-->)[^])*)\\5|[^]*?)}\\s+)?(\\/)?-->/g;\n\n/**\n * Constructs a block object.\n *\n * @param {string|null}   blockName\n * @param {Attributes}    attrs\n * @param {ParsedBlock[]} innerBlocks\n * @param {string}        innerHTML\n * @param {string[]}      innerContent\n * @return {ParsedBlock} The block object.\n */\nfunction Block( blockName, attrs, innerBlocks, innerHTML, innerContent ) {\n\treturn {\n\t\tblockName,\n\t\tattrs,\n\t\tinnerBlocks,\n\t\tinnerHTML,\n\t\tinnerContent,\n\t};\n}\n\n/**\n * Constructs a freeform block object.\n *\n * @param {string} innerHTML\n * @return {ParsedBlock} The freeform block object.\n */\nfunction Freeform( innerHTML ) {\n\treturn Block( null, {}, [], innerHTML, [ innerHTML ] );\n}\n\n/**\n * Constructs a frame object.\n *\n * @param {ParsedBlock} block\n * @param {number}      tokenStart\n * @param {number}      tokenLength\n * @param {number}      prevOffset\n * @param {number|null} leadingHtmlStart\n * @return {ParsedFrame} The frame object.\n */\nfunction Frame( block, tokenStart, tokenLength, prevOffset, leadingHtmlStart ) {\n\treturn {\n\t\tblock,\n\t\ttokenStart,\n\t\ttokenLength,\n\t\tprevOffset: prevOffset || tokenStart + tokenLength,\n\t\tleadingHtmlStart,\n\t};\n}\n\n/**\n * Parser function, that converts input HTML into a block based structure.\n *\n * @param {string} doc The HTML document to parse.\n *\n * @example\n * Input post:\n * ```html\n * <!-- wp:columns {\"columns\":3} -->\n * <div class=\"wp-block-columns has-3-columns\"><!-- wp:column -->\n * <div class=\"wp-block-column\"><!-- wp:paragraph -->\n * <p>Left</p>\n * <!-- /wp:paragraph --></div>\n * <!-- /wp:column -->\n *\n * <!-- wp:column -->\n * <div class=\"wp-block-column\"><!-- wp:paragraph -->\n * <p><strong>Middle</strong></p>\n * <!-- /wp:paragraph --></div>\n * <!-- /wp:column -->\n *\n * <!-- wp:column -->\n * <div class=\"wp-block-column\"></div>\n * <!-- /wp:column --></div>\n * <!-- /wp:columns -->\n * ```\n *\n * Parsing code:\n * ```js\n * import { parse } from '@wordpress/block-serialization-default-parser';\n *\n * parse( post ) === [\n *     {\n *         blockName: \"core/columns\",\n *         attrs: {\n *             columns: 3\n *         },\n *         innerBlocks: [\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [\n *                     {\n *                         blockName: \"core/paragraph\",\n *                         attrs: null,\n *                         innerBlocks: [],\n *                         innerHTML: \"\\n<p>Left</p>\\n\"\n *                     }\n *                 ],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             },\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [\n *                     {\n *                         blockName: \"core/paragraph\",\n *                         attrs: null,\n *                         innerBlocks: [],\n *                         innerHTML: \"\\n<p><strong>Middle</strong></p>\\n\"\n *                     }\n *                 ],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             },\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             }\n *         ],\n *         innerHTML: '\\n<div class=\"wp-block-columns has-3-columns\">\\n\\n\\n\\n</div>\\n'\n *     }\n * ];\n * ```\n * @return {ParsedBlock[]} A block-based representation of the input HTML.\n */\nexport const parse = ( doc ) => {\n\tdocument = doc;\n\toffset = 0;\n\toutput = [];\n\tstack = [];\n\ttokenizer.lastIndex = 0;\n\n\tdo {\n\t\t// twiddle our thumbs\n\t} while ( proceed() );\n\n\treturn output;\n};\n\n/**\n * Parses the next token in the input document.\n *\n * @return {boolean} Returns true when there is more tokens to parse.\n */\nfunction proceed() {\n\tconst stackDepth = stack.length;\n\tconst next = nextToken();\n\tconst [ tokenType, blockName, attrs, startOffset, tokenLength ] = next;\n\n\t// We may have some HTML soup before the next block.\n\tconst leadingHtmlStart = startOffset > offset ? offset : null;\n\n\tswitch ( tokenType ) {\n\t\tcase 'no-more-tokens':\n\t\t\t// If not in a block then flush output.\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\taddFreeform();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Otherwise we have a problem\n\t\t\t// This is an error\n\t\t\t// we have options\n\t\t\t//  - treat it all as freeform text\n\t\t\t//  - assume an implicit closer (easiest when not nesting)\n\n\t\t\t// For the easy case we'll assume an implicit closer.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\taddBlockFromStack();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// For the nested case where it's more difficult we'll\n\t\t\t// have to assume that multiple closers are missing\n\t\t\t// and so we'll collapse the whole stack piecewise.\n\t\t\twhile ( 0 < stack.length ) {\n\t\t\t\taddBlockFromStack();\n\t\t\t}\n\t\t\treturn false;\n\t\tcase 'void-block':\n\t\t\t// easy case is if we stumbled upon a void block\n\t\t\t// in the top-level of the document.\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\tif ( null !== leadingHtmlStart ) {\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tFreeform(\n\t\t\t\t\t\t\tdocument.substr(\n\t\t\t\t\t\t\t\tleadingHtmlStart,\n\t\t\t\t\t\t\t\tstartOffset - leadingHtmlStart\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\toutput.push( Block( blockName, attrs, [], '', [] ) );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we found an inner block.\n\t\t\taddInnerBlock(\n\t\t\t\tBlock( blockName, attrs, [], '', [] ),\n\t\t\t\tstartOffset,\n\t\t\t\ttokenLength\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'block-opener':\n\t\t\t// Track all newly-opened blocks on the stack.\n\t\t\tstack.push(\n\t\t\t\tFrame(\n\t\t\t\t\tBlock( blockName, attrs, [], '', [] ),\n\t\t\t\t\tstartOffset,\n\t\t\t\t\ttokenLength,\n\t\t\t\t\tstartOffset + tokenLength,\n\t\t\t\t\tleadingHtmlStart\n\t\t\t\t)\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tcase 'block-closer':\n\t\t\t// If we're missing an opener we're in trouble\n\t\t\t// This is an error.\n\t\t\tif ( 0 === stackDepth ) {\n\t\t\t\t// We have options\n\t\t\t\t//  - assume an implicit opener\n\t\t\t\t//  - assume _this_ is the opener\n\t\t\t\t// - give up and close out the document.\n\t\t\t\taddFreeform();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If we're not nesting then this is easy - close the block.\n\t\t\tif ( 1 === stackDepth ) {\n\t\t\t\taddBlockFromStack( startOffset );\n\t\t\t\toffset = startOffset + tokenLength;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Otherwise we're nested and we have to close out the current\n\t\t\t// block and add it as a innerBlock to the parent.\n\t\t\tconst stackTop = /** @type {ParsedFrame} */ ( stack.pop() );\n\t\t\tconst html = document.substr(\n\t\t\t\tstackTop.prevOffset,\n\t\t\t\tstartOffset - stackTop.prevOffset\n\t\t\t);\n\t\t\tstackTop.block.innerHTML += html;\n\t\t\tstackTop.block.innerContent.push( html );\n\t\t\tstackTop.prevOffset = startOffset + tokenLength;\n\n\t\t\taddInnerBlock(\n\t\t\t\tstackTop.block,\n\t\t\t\tstackTop.tokenStart,\n\t\t\t\tstackTop.tokenLength,\n\t\t\t\tstartOffset + tokenLength\n\t\t\t);\n\t\t\toffset = startOffset + tokenLength;\n\t\t\treturn true;\n\n\t\tdefault:\n\t\t\t// This is an error.\n\t\t\taddFreeform();\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Parse JSON if valid, otherwise return null\n *\n * Note that JSON coming from the block comment\n * delimiters is constrained to be an object\n * and cannot be things like `true` or `null`\n *\n * @param {string} input JSON input string to parse\n * @return {Object|null} parsed JSON if valid\n */\nfunction parseJSON( input ) {\n\ttry {\n\t\treturn JSON.parse( input );\n\t} catch ( e ) {\n\t\treturn null;\n\t}\n}\n\n/**\n * Finds the next token in the document.\n *\n * @return {Token} The next matched token.\n */\nfunction nextToken() {\n\t// Aye the magic\n\t// we're using a single RegExp to tokenize the block comment delimiters\n\t// we're also using a trick here because the only difference between a\n\t// block opener and a block closer is the leading `/` before `wp:` (and\n\t// a closer has no attributes). we can trap them both and process the\n\t// match back in JavaScript to see which one it was.\n\tconst matches = tokenizer.exec( document );\n\n\t// We have no more tokens.\n\tif ( null === matches ) {\n\t\treturn [ 'no-more-tokens', '', null, 0, 0 ];\n\t}\n\n\tconst startedAt = matches.index;\n\tconst [\n\t\tmatch,\n\t\tcloserMatch,\n\t\tnamespaceMatch,\n\t\tnameMatch,\n\t\tattrsMatch /* Internal/unused. */,\n\t\t,\n\t\tvoidMatch,\n\t] = matches;\n\n\tconst length = match.length;\n\tconst isCloser = !! closerMatch;\n\tconst isVoid = !! voidMatch;\n\tconst namespace = namespaceMatch || 'core/';\n\tconst name = namespace + nameMatch;\n\tconst hasAttrs = !! attrsMatch;\n\tconst attrs = hasAttrs ? parseJSON( attrsMatch ) : {};\n\n\t// This state isn't allowed\n\t// This is an error.\n\tif ( isCloser && ( isVoid || hasAttrs ) ) {\n\t\t// We can ignore them since they don't hurt anything\n\t\t// we may warn against this at some point or reject it.\n\t}\n\n\tif ( isVoid ) {\n\t\treturn [ 'void-block', name, attrs, startedAt, length ];\n\t}\n\n\tif ( isCloser ) {\n\t\treturn [ 'block-closer', name, null, startedAt, length ];\n\t}\n\n\treturn [ 'block-opener', name, attrs, startedAt, length ];\n}\n\n/**\n * Adds a freeform block to the output.\n *\n * @param {number} [rawLength]\n */\nfunction addFreeform( rawLength ) {\n\tconst length = rawLength ? rawLength : document.length - offset;\n\n\tif ( 0 === length ) {\n\t\treturn;\n\t}\n\n\toutput.push( Freeform( document.substr( offset, length ) ) );\n}\n\n/**\n * Adds inner block to the parent block.\n *\n * @param {ParsedBlock} block\n * @param {number}      tokenStart\n * @param {number}      tokenLength\n * @param {number}      [lastOffset]\n */\nfunction addInnerBlock( block, tokenStart, tokenLength, lastOffset ) {\n\tconst parent = stack[ stack.length - 1 ];\n\tparent.block.innerBlocks.push( block );\n\tconst html = document.substr(\n\t\tparent.prevOffset,\n\t\ttokenStart - parent.prevOffset\n\t);\n\n\tif ( html ) {\n\t\tparent.block.innerHTML += html;\n\t\tparent.block.innerContent.push( html );\n\t}\n\n\tparent.block.innerContent.push( null );\n\tparent.prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength;\n}\n\n/**\n * Adds block from the stack to the output.\n *\n * @param {number} [endOffset]\n */\nfunction addBlockFromStack( endOffset ) {\n\tconst { block, leadingHtmlStart, prevOffset, tokenStart } =\n\t\t/** @type {ParsedFrame} */ ( stack.pop() );\n\n\tconst html = endOffset\n\t\t? document.substr( prevOffset, endOffset - prevOffset )\n\t\t: document.substr( prevOffset );\n\n\tif ( html ) {\n\t\tblock.innerHTML += html;\n\t\tblock.innerContent.push( html );\n\t}\n\n\tif ( null !== leadingHtmlStart ) {\n\t\toutput.push(\n\t\t\tFreeform(\n\t\t\t\tdocument.substr(\n\t\t\t\t\tleadingHtmlStart,\n\t\t\t\t\ttokenStart - leadingHtmlStart\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\toutput.push( block );\n}\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","document","offset","output","stack","tokenizer","Block","blockName","attrs","innerBlocks","innerHTML","innerContent","Freeform","parse","doc","lastIndex","proceed","stackDepth","length","next","matches","exec","startedAt","index","match","closerMatch","namespaceMatch","nameMatch","attrsMatch","voidMatch","isCloser","isVoid","name","input","JSON","e","parseJSON","nextToken","tokenType","startOffset","tokenLength","leadingHtmlStart","addFreeform","addBlockFromStack","push","substr","addInnerBlock","block","tokenStart","prevOffset","Frame","stackTop","pop","html","rawLength","lastOffset","parent","endOffset"],"sourceRoot":""}