File: /www/wwwroot/www.waciwang.com/wp-content/plugins/gutenberg/build/scripts/shortcode/index.min.js.map
{
"version": 3,
"sources": ["../../../node_modules/memize/dist/index.js", "../../../packages/shortcode/src/index.ts"],
"sourcesContent": ["/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {(...args: any[]) => any} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize(fn, options) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized(/* ...args */) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs,\n\t\t\ti;\n\n\t\tsearchCache: while (node) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif (node.args.length !== arguments.length) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tif (node.args[i] !== arguments[i]) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif (node !== head) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif (node === tail) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ (node.prev).next = node.next;\n\t\t\t\tif (node.next) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ (head).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array(len);\n\t\tfor (i = 0; i < len; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply(null, args),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif (head) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif (size === /** @type {MemizeOptions} */ (options).maxSize) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ (tail).prev;\n\t\t\t/** @type {MemizeCacheNode} */ (tail).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function () {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nexport { memize as default };\n", "/**\n * External dependencies\n */\nimport memize from 'memize';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tShortcodeAttrs,\n\tShortcodeMatch,\n\tShortcodeOptions,\n\tMatch,\n\tReplaceCallback,\n\tShortcodeInstance,\n} from './types';\n\nexport * from './types';\n\n/**\n * Find the next matching shortcode.\n *\n * @param tag Shortcode tag.\n * @param text Text to search.\n * @param index Index to start search from.\n *\n * @return Matched information.\n */\nexport function next(\n\ttag: string,\n\ttext: string,\n\tindex: number = 0\n): ShortcodeMatch | undefined {\n\tconst re = regexp( tag );\n\n\tre.lastIndex = index;\n\n\tconst match = re.exec( text );\n\n\tif ( ! match ) {\n\t\treturn;\n\t}\n\n\t// If we matched an escaped shortcode, try again.\n\tif ( '[' === match[ 1 ] && ']' === match[ 7 ] ) {\n\t\treturn next( tag, text, re.lastIndex );\n\t}\n\n\tconst result: ShortcodeMatch = {\n\t\tindex: match.index,\n\t\tcontent: match[ 0 ],\n\t\tshortcode: fromMatch( match ),\n\t};\n\n\t// If we matched a leading `[`, strip it from the match and increment the\n\t// index accordingly.\n\tif ( match[ 1 ] ) {\n\t\tresult.content = result.content.slice( 1 );\n\t\tresult.index++;\n\t}\n\n\t// If we matched a trailing `]`, strip it from the match.\n\tif ( match[ 7 ] ) {\n\t\tresult.content = result.content.slice( 0, -1 );\n\t}\n\n\treturn result;\n}\n\n/**\n * Replace matching shortcodes in a block of text.\n *\n * @param tag Shortcode tag.\n * @param text Text to search.\n * @param callback Function to process the match and return\n * replacement string.\n *\n * @return Text with shortcodes replaced.\n */\nexport function replace(\n\ttag: string,\n\ttext: string,\n\tcallback: ReplaceCallback\n) {\n\treturn text.replace(\n\t\tregexp( tag ),\n\t\t// Let us use spread syntax to capture the arguments object.\n\t\t( ...args: string[] ): string => {\n\t\t\tconst match = args[ 0 ];\n\t\t\tconst left = args[ 1 ];\n\t\t\tconst right = args[ 7 ];\n\n\t\t\t// If both extra brackets exist, the shortcode has been properly\n\t\t\t// escaped.\n\t\t\tif ( left === '[' && right === ']' ) {\n\t\t\t\treturn match;\n\t\t\t}\n\n\t\t\t// Create the match object and pass it through the callback.\n\t\t\tconst result = callback( fromMatch( args ) );\n\n\t\t\t// Make sure to return any of the extra brackets if they weren't used to\n\t\t\t// escape the shortcode.\n\t\t\treturn result || result === '' ? left + result + right : match;\n\t\t}\n\t);\n}\n\n/**\n * Generate a string from shortcode parameters.\n *\n * Creates a shortcode instance and returns a string.\n *\n * Accepts the same `options` as the `shortcode()` constructor, containing a\n * `tag` string, a string or object of `attrs`, a boolean indicating whether to\n * format the shortcode using a `single` tag, and a `content` string.\n *\n * @param options Shortcode options.\n *\n * @return String representation of the shortcode.\n */\nexport function string( options: ShortcodeOptions ): string {\n\treturn new Shortcode( options ).string();\n}\n\n/**\n * Generate a RegExp to identify a shortcode.\n *\n * The base regex is functionally equivalent to the one found in\n * `get_shortcode_regex()` in `wp-includes/shortcodes.php`.\n *\n * Capture groups:\n *\n * 1. An extra `[` to allow for escaping shortcodes with double `[[]]`\n * 2. The shortcode name\n * 3. The shortcode argument list\n * 4. The self closing `/`\n * 5. The content of a shortcode when it wraps some content.\n * 6. The closing tag.\n * 7. An extra `]` to allow for escaping shortcodes with double `[[]]`\n *\n * @param tag Shortcode tag.\n *\n * @return Shortcode RegExp.\n */\nexport function regexp( tag: string ): RegExp {\n\treturn new RegExp(\n\t\t'\\\\[(\\\\[?)(' +\n\t\t\ttag +\n\t\t\t')(?![\\\\w-])([^\\\\]\\\\/]*(?:\\\\/(?!\\\\])[^\\\\]\\\\/]*)*?)(?:(\\\\/)\\\\]|\\\\](?:([^\\\\[]*(?:\\\\[(?!\\\\/\\\\2\\\\])[^\\\\[]*)*)(\\\\[\\\\/\\\\2\\\\]))?)(\\\\]?)',\n\t\t'g'\n\t);\n}\n\n/**\n * Parse shortcode attributes.\n *\n * Shortcodes accept many types of attributes. These can chiefly be divided into\n * named and numeric attributes:\n *\n * Named attributes are assigned on a key/value basis, while numeric attributes\n * are treated as an array.\n *\n * Named attributes can be formatted as either `name=\"value\"`, `name='value'`,\n * or `name=value`. Numeric attributes can be formatted as `\"value\"` or just\n * `value`.\n *\n * @param {string} text Serialised shortcode attributes.\n *\n * @return {ShortcodeAttrs} Parsed shortcode attributes.\n */\nexport const attrs = memize( ( text: string ): ShortcodeAttrs => {\n\tconst named: Record< string, string | undefined > = {};\n\tconst numeric: string[] = [];\n\n\t// This regular expression is reused from `shortcode_parse_atts()` in\n\t// `wp-includes/shortcodes.php`.\n\t//\n\t// Capture groups:\n\t//\n\t// 1. An attribute name, that corresponds to...\n\t// 2. a value in double quotes.\n\t// 3. An attribute name, that corresponds to...\n\t// 4. a value in single quotes.\n\t// 5. An attribute name, that corresponds to...\n\t// 6. an unquoted value.\n\t// 7. A numeric attribute in double quotes.\n\t// 8. A numeric attribute in single quotes.\n\t// 9. An unquoted numeric attribute.\n\tconst pattern =\n\t\t/([\\w-]+)\\s*=\\s*\"([^\"]*)\"(?:\\s|$)|([\\w-]+)\\s*=\\s*'([^']*)'(?:\\s|$)|([\\w-]+)\\s*=\\s*([^\\s'\"]+)(?:\\s|$)|\"([^\"]*)\"(?:\\s|$)|'([^']*)'(?:\\s|$)|(\\S+)(?:\\s|$)/g;\n\n\t// Map zero-width spaces to actual spaces.\n\ttext = text.replace( /[\\u00a0\\u200b]/g, ' ' );\n\n\tlet match;\n\n\t// Match and normalize attributes.\n\twhile ( ( match = pattern.exec( text ) ) ) {\n\t\tif ( match[ 1 ] ) {\n\t\t\tnamed[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t} else if ( match[ 3 ] ) {\n\t\t\tnamed[ match[ 3 ].toLowerCase() ] = match[ 4 ];\n\t\t} else if ( match[ 5 ] ) {\n\t\t\tnamed[ match[ 5 ].toLowerCase() ] = match[ 6 ];\n\t\t} else if ( match[ 7 ] ) {\n\t\t\tnumeric.push( match[ 7 ] );\n\t\t} else if ( match[ 8 ] ) {\n\t\t\tnumeric.push( match[ 8 ] );\n\t\t} else if ( match[ 9 ] ) {\n\t\t\tnumeric.push( match[ 9 ] );\n\t\t}\n\t}\n\n\treturn { named, numeric };\n} );\n\n/**\n * Generate a Shortcode Object from a RegExp match.\n *\n * Accepts a `match` object from calling `regexp.exec()` on a `RegExp` generated\n * by `regexp()`. `match` can also be set to the `arguments` from a callback\n * passed to `regexp.replace()`.\n *\n * @param match Match array.\n *\n * @return Shortcode instance.\n */\nexport function fromMatch( match: Match ): ShortcodeInstance {\n\tlet type: 'self-closing' | 'closed' | 'single';\n\n\tif ( match[ 4 ] ) {\n\t\ttype = 'self-closing';\n\t} else if ( match[ 6 ] ) {\n\t\ttype = 'closed';\n\t} else {\n\t\ttype = 'single';\n\t}\n\n\treturn new Shortcode( {\n\t\ttag: match[ 2 ],\n\t\tattrs: match[ 3 ],\n\t\ttype,\n\t\tcontent: match[ 5 ],\n\t} );\n}\n\n/**\n * Creates a shortcode instance.\n *\n * To access a raw representation of a shortcode, pass an `options` object,\n * containing a `tag` string, a string or object of `attrs`, a string indicating\n * the `type` of the shortcode ('single', 'self-closing', or 'closed'), and a\n * `content` string.\n */\nclass Shortcode implements ShortcodeInstance {\n\t// Instance properties\n\ttag: string;\n\ttype?: 'self-closing' | 'closed' | 'single';\n\tcontent?: string;\n\tattrs: ShortcodeAttrs;\n\n\t// Static methods\n\tstatic next = next;\n\tstatic replace = replace;\n\tstatic string = string;\n\tstatic regexp = regexp;\n\tstatic attrs = attrs;\n\tstatic fromMatch = fromMatch;\n\n\tconstructor( options: ShortcodeOptions ) {\n\t\tconst { tag, attrs: attributes, type, content } = options;\n\t\tthis.tag = tag;\n\t\tthis.type = type;\n\t\tthis.content = content;\n\n\t\t// Ensure we have a correctly formatted `attrs` object.\n\t\tthis.attrs = {\n\t\t\tnamed: {},\n\t\t\tnumeric: [],\n\t\t};\n\n\t\tif ( ! attributes ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Parse a string of attributes.\n\t\tif ( typeof attributes === 'string' ) {\n\t\t\tthis.attrs = attrs( attributes );\n\t\t\t// Identify a correctly formatted `attrs` object.\n\t\t} else if (\n\t\t\t'named' in attributes &&\n\t\t\t'numeric' in attributes &&\n\t\t\tattributes.named !== undefined &&\n\t\t\tattributes.numeric !== undefined\n\t\t) {\n\t\t\tthis.attrs = attributes as ShortcodeAttrs;\n\t\t\t// Handle a flat object of attributes (e.g., { foo: 'bar', baz: 'qux' }).\n\t\t} else {\n\t\t\tObject.entries( attributes ).forEach( ( [ key, value ] ) => {\n\t\t\t\tif (\n\t\t\t\t\ttypeof value === 'string' ||\n\t\t\t\t\ttypeof value === 'undefined'\n\t\t\t\t) {\n\t\t\t\t\tthis.set( key, value );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Get a shortcode attribute.\n\t *\n\t * Automatically detects whether `attr` is named or numeric and routes it\n\t * accordingly.\n\t *\n\t * @param attr Attribute key.\n\t *\n\t * @return Attribute value.\n\t */\n\tget( attr: string | number ): string | undefined {\n\t\tif ( typeof attr === 'number' ) {\n\t\t\treturn this.attrs.numeric[ attr ];\n\t\t}\n\t\treturn this.attrs.named[ attr ];\n\t}\n\n\t/**\n\t * Set a shortcode attribute.\n\t *\n\t * Automatically detects whether `attr` is named or numeric and routes it\n\t * accordingly.\n\t *\n\t * @param attr Attribute key.\n\t * @param value Attribute value.\n\t *\n\t * @return Shortcode instance.\n\t */\n\tset( attr: string | number, value: string ): this {\n\t\tif ( typeof attr === 'number' ) {\n\t\t\tthis.attrs.numeric[ attr ] = value;\n\t\t} else {\n\t\t\tthis.attrs.named[ attr ] = value;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Transform the shortcode into a string.\n\t *\n\t * @return String representation of the shortcode.\n\t */\n\tstring(): string {\n\t\tlet text = '[' + this.tag;\n\n\t\tthis.attrs.numeric.forEach( ( value ) => {\n\t\t\tif ( /\\s/.test( value ) ) {\n\t\t\t\ttext += ' \"' + value + '\"';\n\t\t\t} else {\n\t\t\t\ttext += ' ' + value;\n\t\t\t}\n\t\t} );\n\n\t\tObject.entries( this.attrs.named ).forEach( ( [ name, value ] ) => {\n\t\t\ttext += ' ' + name + '=\"' + value + '\"';\n\t\t} );\n\n\t\t// If the tag is marked as `single` or `self-closing`, close the tag and\n\t\t// ignore any additional content.\n\t\tif ( 'single' === this.type ) {\n\t\t\treturn text + ']';\n\t\t} else if ( 'self-closing' === this.type ) {\n\t\t\treturn text + ' /]';\n\t\t}\n\n\t\t// Complete the opening tag.\n\t\ttext += ']';\n\n\t\tif ( this.content ) {\n\t\t\ttext += this.content;\n\t\t}\n\n\t\t// Add the closing tag.\n\t\treturn text + '[/' + this.tag + ']';\n\t}\n}\n\nexport default Shortcode;\n"],
"mappings": "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",
"names": ["memize", "fn", "options", "size", "head", "tail", "memoized", "node", "len", "args", "i", "searchCache", "next", "tag", "text", "index", "re", "regexp", "match", "result", "fromMatch", "replace", "callback", "args", "left", "right", "string", "options", "Shortcode", "attrs", "memize", "named", "numeric", "pattern", "type", "attributes", "content", "key", "value", "attr", "name", "index_default"]
}