%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/i18n/
Upload File :
Create Path :
Current File : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/i18n/index.min.js.map

{"version":3,"file":"./build/i18n/index.min.js","mappings":"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","sources":["webpack://wp/./node_modules/memize/index.js","webpack://wp/./node_modules/sprintf-js/src/sprintf.js","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/./packages/i18n/build-module/@wordpress/i18n/src/sprintf.js","webpack://wp/./node_modules/@tannin/postfix/index.js","webpack://wp/./node_modules/@tannin/evaluate/index.js","webpack://wp/./node_modules/tannin/index.js","webpack://wp/./node_modules/@tannin/plural-forms/index.js","webpack://wp/./node_modules/@tannin/compile/index.js","webpack://wp/./packages/i18n/build-module/@wordpress/i18n/src/create-i18n.js","webpack://wp/external window [\"wp\",\"hooks\"]","webpack://wp/./packages/i18n/build-module/@wordpress/i18n/src/default-i18n.js"],"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 {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {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, i;\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\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\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\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n    'use strict'\n\n    var re = {\n        not_string: /[^s]/,\n        not_bool: /[^t]/,\n        not_type: /[^T]/,\n        not_primitive: /[^v]/,\n        number: /[diefg]/,\n        numeric_arg: /[bcdiefguxX]/,\n        json: /[j]/,\n        not_json: /[^j]/,\n        text: /^[^\\x25]+/,\n        modulo: /^\\x25{2}/,\n        placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n        key: /^([a-z_][a-z_\\d]*)/i,\n        key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n        index_access: /^\\[(\\d+)\\]/,\n        sign: /^[\\+\\-]/\n    }\n\n    function sprintf(key) {\n        // `arguments` is not an array, but should be fine for this call\n        return sprintf_format(sprintf_parse(key), arguments)\n    }\n\n    function vsprintf(fmt, argv) {\n        return sprintf.apply(null, [fmt].concat(argv || []))\n    }\n\n    function sprintf_format(parse_tree, argv) {\n        var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign\n        for (i = 0; i < tree_length; i++) {\n            if (typeof parse_tree[i] === 'string') {\n                output += parse_tree[i]\n            }\n            else if (Array.isArray(parse_tree[i])) {\n                match = parse_tree[i] // convenience purposes only\n                if (match[2]) { // keyword argument\n                    arg = argv[cursor]\n                    for (k = 0; k < match[2].length; k++) {\n                        if (!arg.hasOwnProperty(match[2][k])) {\n                            throw new Error(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]))\n                        }\n                        arg = arg[match[2][k]]\n                    }\n                }\n                else if (match[1]) { // positional argument (explicit)\n                    arg = argv[match[1]]\n                }\n                else { // positional argument (implicit)\n                    arg = argv[cursor++]\n                }\n\n                if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) {\n                    arg = arg()\n                }\n\n                if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) {\n                    throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n                }\n\n                if (re.number.test(match[8])) {\n                    is_positive = arg >= 0\n                }\n\n                switch (match[8]) {\n                    case 'b':\n                        arg = parseInt(arg, 10).toString(2)\n                        break\n                    case 'c':\n                        arg = String.fromCharCode(parseInt(arg, 10))\n                        break\n                    case 'd':\n                    case 'i':\n                        arg = parseInt(arg, 10)\n                        break\n                    case 'j':\n                        arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0)\n                        break\n                    case 'e':\n                        arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential()\n                        break\n                    case 'f':\n                        arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg)\n                        break\n                    case 'g':\n                        arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg)\n                        break\n                    case 'o':\n                        arg = (parseInt(arg, 10) >>> 0).toString(8)\n                        break\n                    case 's':\n                        arg = String(arg)\n                        arg = (match[7] ? arg.substring(0, match[7]) : arg)\n                        break\n                    case 't':\n                        arg = String(!!arg)\n                        arg = (match[7] ? arg.substring(0, match[7]) : arg)\n                        break\n                    case 'T':\n                        arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n                        arg = (match[7] ? arg.substring(0, match[7]) : arg)\n                        break\n                    case 'u':\n                        arg = parseInt(arg, 10) >>> 0\n                        break\n                    case 'v':\n                        arg = arg.valueOf()\n                        arg = (match[7] ? arg.substring(0, match[7]) : arg)\n                        break\n                    case 'x':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16)\n                        break\n                    case 'X':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n                        break\n                }\n                if (re.json.test(match[8])) {\n                    output += arg\n                }\n                else {\n                    if (re.number.test(match[8]) && (!is_positive || match[3])) {\n                        sign = is_positive ? '+' : '-'\n                        arg = arg.toString().replace(re.sign, '')\n                    }\n                    else {\n                        sign = ''\n                    }\n                    pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' '\n                    pad_length = match[6] - (sign + arg).length\n                    pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n                    output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n                }\n            }\n        }\n        return output\n    }\n\n    var sprintf_cache = Object.create(null)\n\n    function sprintf_parse(fmt) {\n        if (sprintf_cache[fmt]) {\n            return sprintf_cache[fmt]\n        }\n\n        var _fmt = fmt, match, parse_tree = [], arg_names = 0\n        while (_fmt) {\n            if ((match = re.text.exec(_fmt)) !== null) {\n                parse_tree.push(match[0])\n            }\n            else if ((match = re.modulo.exec(_fmt)) !== null) {\n                parse_tree.push('%')\n            }\n            else if ((match = re.placeholder.exec(_fmt)) !== null) {\n                if (match[2]) {\n                    arg_names |= 1\n                    var field_list = [], replacement_field = match[2], field_match = []\n                    if ((field_match = re.key.exec(replacement_field)) !== null) {\n                        field_list.push(field_match[1])\n                        while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n                            if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else {\n                                throw new SyntaxError('[sprintf] failed to parse named argument key')\n                            }\n                        }\n                    }\n                    else {\n                        throw new SyntaxError('[sprintf] failed to parse named argument key')\n                    }\n                    match[2] = field_list\n                }\n                else {\n                    arg_names |= 2\n                }\n                if (arg_names === 3) {\n                    throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n                }\n                parse_tree.push(match)\n            }\n            else {\n                throw new SyntaxError('[sprintf] unexpected placeholder')\n            }\n            _fmt = _fmt.substring(match[0].length)\n        }\n        return sprintf_cache[fmt] = parse_tree\n    }\n\n    /**\n     * export to either browser or node.js\n     */\n    /* eslint-disable quote-props */\n    if (typeof exports !== 'undefined') {\n        exports['sprintf'] = sprintf\n        exports['vsprintf'] = vsprintf\n    }\n    if (typeof window !== 'undefined') {\n        window['sprintf'] = sprintf\n        window['vsprintf'] = vsprintf\n\n        if (typeof define === 'function' && define['amd']) {\n            define(function() {\n                return {\n                    'sprintf': sprintf,\n                    'vsprintf': vsprintf\n                }\n            })\n        }\n    }\n    /* eslint-enable quote-props */\n}()\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\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 * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\nconst logErrorOnce = memoize( console.error ); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*}   args   Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\nexport function sprintf( format, ...args ) {\n\ttry {\n\t\treturn sprintfjs.sprintf( format, ...args );\n\t} catch ( error ) {\n\t\tif ( error instanceof Error ) {\n\t\t\tlogErrorOnce( 'sprintf error: \\n\\n' + error.toString() );\n\t\t}\n\t\treturn format;\n\t}\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix   Postfix terms.\n * @param {Object}   variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string}   [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey]     Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string}            [domain]       Domain name.\n * @property {string}            [lang]         Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n *                                              function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data      Jed-formatted locale data.\n * @param {TanninOptions}    [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object<string,Function>}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n      Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string}      domain   Translation domain.\n * @param {string|void} context  Context distinguishing terms of the same name.\n * @param {string}      singular Primary key for translation lookup.\n * @param {string=}     plural   Fallback value used for non-zero plural\n *                               form index.\n * @param {number=}     n        Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\nconst DEFAULT_LOCALE_DATA = {\n\t'': {\n\t\t/** @param {number} n */\n\t\tplural_forms( n ) {\n\t\t\treturn n === 1 ? 0 : 1;\n\t\t},\n\t},\n};\n\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\nconst I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Note that this\n * function will overwrite the domain configuration. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} AddLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Note that this\n * function will also merge the domain configuration. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/** @typedef {() => void} SubscribeCallback */\n/** @typedef {() => void} UnsubscribeCallback */\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData}   getLocaleData   Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData}   setLocaleData   Merges locale data into the Tannin instance by domain. Note that this\n *                                             function will overwrite the domain configuration. Accepts data in a\n *                                             Jed-formatted JSON object shape.\n * @property {AddLocaleData}   addLocaleData   Merges locale data into the Tannin instance by domain. Note that this\n *                                             function will also merge the domain configuration. Accepts data in a\n *                                             Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n *                                             locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe}       subscribe       Subscribes to changes of Tannin locale data.\n * @property {__}              __              Retrieve the translation of text.\n * @property {_x}              _x              Retrieve translated string with gettext context.\n * @property {_n}              _n              Translates and retrieves the singular or plural form based on the supplied\n *                                             number.\n * @property {_nx}             _nx             Translates and retrieves the singular or plural form based on the supplied\n *                                             number, with gettext context.\n * @property {IsRtl}           isRTL           Check if current locale is RTL.\n * @property {HasTranslation}  hasTranslation  Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData]   Locale data configuration.\n * @param {string}     [initialDomain] Domain for which configuration applies.\n * @param {Hooks}      [hooks]         Hooks implementation.\n *\n * @return {I18n} I18n instance.\n */\nexport const createI18n = ( initialData, initialDomain, hooks ) => {\n\t/**\n\t * The underlying instance of Tannin to which exported functions interface.\n\t *\n\t * @type {Tannin}\n\t */\n\tconst tannin = new Tannin( {} );\n\n\tconst listeners = new Set();\n\n\tconst notifyListeners = () => {\n\t\tlisteners.forEach( ( listener ) => listener() );\n\t};\n\n\t/**\n\t * Subscribe to changes of locale data.\n\t *\n\t * @param {SubscribeCallback} callback Subscription callback.\n\t * @return {UnsubscribeCallback} Unsubscribe callback.\n\t */\n\tconst subscribe = ( callback ) => {\n\t\tlisteners.add( callback );\n\t\treturn () => listeners.delete( callback );\n\t};\n\n\t/** @type {GetLocaleData} */\n\tconst getLocaleData = ( domain = 'default' ) => tannin.data[ domain ];\n\n\t/**\n\t * @param {LocaleData} [data]\n\t * @param {string}     [domain]\n\t */\n\tconst doSetLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t};\n\n\t\t// Populate default domain configuration (supported locale date which omits\n\t\t// a plural forms expression).\n\t\ttannin.data[ domain ][ '' ] = {\n\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t...tannin.data[ domain ]?.[ '' ],\n\t\t};\n\n\t\t// Clean up cached plural forms functions cache as it might be updated.\n\t\tdelete tannin.pluralForms[ domain ];\n\t};\n\n\t/** @type {SetLocaleData} */\n\tconst setLocaleData = ( data, domain ) => {\n\t\tdoSetLocaleData( data, domain );\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {AddLocaleData} */\n\tconst addLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t\t// Populate default domain configuration (supported locale date which omits\n\t\t\t// a plural forms expression).\n\t\t\t'': {\n\t\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t\t...tannin.data[ domain ]?.[ '' ],\n\t\t\t\t...data?.[ '' ],\n\t\t\t},\n\t\t};\n\n\t\t// Clean up cached plural forms functions cache as it might be updated.\n\t\tdelete tannin.pluralForms[ domain ];\n\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {ResetLocaleData} */\n\tconst resetLocaleData = ( data, domain ) => {\n\t\t// Reset all current Tannin locale data.\n\t\ttannin.data = {};\n\n\t\t// Reset cached plural forms functions cache.\n\t\ttannin.pluralForms = {};\n\n\t\tsetLocaleData( data, domain );\n\t};\n\n\t/**\n\t * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n\t * otherwise previously assigned.\n\t *\n\t * @param {string|undefined} domain   Domain to retrieve the translated text.\n\t * @param {string|undefined} context  Context information for the translators.\n\t * @param {string}           single   Text to translate if non-plural. Used as\n\t *                                    fallback return value on a caught error.\n\t * @param {string}           [plural] The text to be used if the number is\n\t *                                    plural.\n\t * @param {number}           [number] The number to compare against to use\n\t *                                    either the singular or plural form.\n\t *\n\t * @return {string} The translated string.\n\t */\n\tconst dcnpgettext = (\n\t\tdomain = 'default',\n\t\tcontext,\n\t\tsingle,\n\t\tplural,\n\t\tnumber\n\t) => {\n\t\tif ( ! tannin.data[ domain ] ) {\n\t\t\t// Use `doSetLocaleData` to set silently, without notifying listeners.\n\t\t\tdoSetLocaleData( undefined, domain );\n\t\t}\n\n\t\treturn tannin.dcnpgettext( domain, context, single, plural, number );\n\t};\n\n\t/** @type {GetFilterDomain} */\n\tconst getFilterDomain = ( domain = 'default' ) => domain;\n\n\t/** @type {__} */\n\tconst __ = ( text, domain ) => {\n\t\tlet translation = dcnpgettext( domain, undefined, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text        Text to translate.\n\t\t * @param {string} domain      Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_x} */\n\tconst _x = ( text, context, domain ) => {\n\t\tlet translation = dcnpgettext( domain, context, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation based on context information.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text        Text to translate.\n\t\t * @param {string} context     Context information for the translators.\n\t\t * @param {string} domain      Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_n} */\n\tconst _n = ( single, plural, number, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tundefined,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single      The text to be used if the number is singular.\n\t\t * @param {string} plural      The text to be used if the number is plural.\n\t\t * @param {string} number      The number to compare against to use either the singular or plural form.\n\t\t * @param {string} domain      Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_nx} */\n\tconst _nx = ( single, plural, number, context, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tcontext,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string with gettext context.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single      The text to be used if the number is singular.\n\t\t * @param {string} plural      The text to be used if the number is plural.\n\t\t * @param {string} number      The number to compare against to use either the singular or plural form.\n\t\t * @param {string} context     Context information for the translators.\n\t\t * @param {string} domain      Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {IsRtl} */\n\tconst isRTL = () => {\n\t\treturn 'rtl' === _x( 'ltr', 'text direction' );\n\t};\n\n\t/** @type {HasTranslation} */\n\tconst hasTranslation = ( single, context, domain ) => {\n\t\tconst key = context ? context + '\\u0004' + single : single;\n\t\tlet result = !! tannin.data?.[ domain ?? 'default' ]?.[ key ];\n\t\tif ( hooks ) {\n\t\t\t/**\n\t\t\t * Filters the presence of a translation in the locale data.\n\t\t\t *\n\t\t\t * @param {boolean} hasTranslation Whether the translation is present or not..\n\t\t\t * @param {string}  single         The singular form of the translated text (used as key in locale data)\n\t\t\t * @param {string}  context        Context information for the translators.\n\t\t\t * @param {string}  domain         Text domain. Unique identifier for retrieving translated strings.\n\t\t\t */\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation',\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation_' + getFilterDomain( domain ),\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( initialData ) {\n\t\tsetLocaleData( initialData, initialDomain );\n\t}\n\n\tif ( hooks ) {\n\t\t/**\n\t\t * @param {string} hookName\n\t\t */\n\t\tconst onHookAddedOrRemoved = ( hookName ) => {\n\t\t\tif ( I18N_HOOK_REGEXP.test( hookName ) ) {\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t};\n\n\t\thooks.addAction( 'hookAdded', 'core/i18n', onHookAddedOrRemoved );\n\t\thooks.addAction( 'hookRemoved', 'core/i18n', onHookAddedOrRemoved );\n\t}\n\n\treturn {\n\t\tgetLocaleData,\n\t\tsetLocaleData,\n\t\taddLocaleData,\n\t\tresetLocaleData,\n\t\tsubscribe,\n\t\t__,\n\t\t_x,\n\t\t_n,\n\t\t_nx,\n\t\tisRTL,\n\t\thasTranslation,\n\t};\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n\n/**\n * WordPress dependencies\n */\nimport { defaultHooks } from '@wordpress/hooks';\n\nconst i18n = createI18n( undefined, undefined, defaultHooks );\n\n/**\n * Default, singleton instance of `I18n`.\n */\nexport default i18n;\n\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\nexport const getLocaleData = i18n.getLocaleData.bind( i18n );\n\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data]   Locale data configuration.\n * @param {string}     [domain] Domain for which configuration applies.\n */\nexport const setLocaleData = i18n.setLocaleData.bind( i18n );\n\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data]   Locale data configuration.\n * @param {string}     [domain] Domain for which configuration applies.\n */\nexport const resetLocaleData = i18n.resetLocaleData.bind( i18n );\n\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\nexport const subscribe = i18n.subscribe.bind( i18n );\n\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text     Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\nexport const __ = i18n.__.bind( i18n );\n\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text     Text to translate.\n * @param {string} context  Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\nexport const _x = i18n._x.bind( i18n );\n\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single   The text to be used if the number is singular.\n * @param {string} plural   The text to be used if the number is plural.\n * @param {number} number   The number to compare against to use either the\n *                          singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\nexport const _n = i18n._n.bind( i18n );\n\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single   The text to be used if the number is singular.\n * @param {string} plural   The text to be used if the number is plural.\n * @param {number} number   The number to compare against to use either the\n *                          singular or plural form.\n * @param {string} context  Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\nexport const _nx = i18n._nx.bind( i18n );\n\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\nexport const isRTL = i18n.isRTL.bind( i18n );\n\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single    Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain]  Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\nexport const hasTranslation = i18n.hasTranslation.bind( i18n );\n"],"names":["module","exports","fn","options","head","tail","size","memoized","args","i","node","len","arguments","length","searchCache","next","prev","val","Array","apply","maxSize","clear","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key","key_access","index_access","sign","sprintf","sprintf_format","sprintf_parse","vsprintf","fmt","argv","concat","parse_tree","arg","k","match","pad","pad_character","pad_length","is_positive","cursor","tree_length","output","isArray","hasOwnProperty","Error","test","Function","isNaN","TypeError","parseInt","toString","String","fromCharCode","JSON","stringify","parseFloat","toExponential","toFixed","Number","toPrecision","substring","Object","prototype","call","slice","toLowerCase","valueOf","toUpperCase","replace","charAt","repeat","sprintf_cache","create","_fmt","arg_names","exec","push","SyntaxError","field_list","replacement_field","field_match","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","r","Symbol","toStringTag","value","logErrorOnce","memoize","console","error","format","sprintfjs","PRECEDENCE","OPENERS","TERMINATORS","PATTERN","OPERATORS","b","c","DEFAULT_OPTIONS","contextDelimiter","onMissingKey","Tannin","data","this","pluralForms","getPluralForm","domain","config","plural","pf","evaluate","plural_forms","parts","part","split","trim","indexOf","substr","getPluralExpression","expression","terms","operator","term","element","stack","index","pop","reverse","postfix","variables","j","getOperatorResult","earlyReturn","compile","dcnpgettext","context","singular","entry","DEFAULT_LOCALE_DATA","I18N_HOOK_REGEXP","createI18n","initialData","initialDomain","hooks","tannin","listeners","Set","notifyListeners","forEach","listener","doSetLocaleData","setLocaleData","single","getFilterDomain","_x","translation","applyFilters","onHookAddedOrRemoved","hookName","addAction","getLocaleData","addLocaleData","resetLocaleData","subscribe","callback","add","delete","__","_n","_nx","isRTL","hasTranslation","result","i18n","defaultHooks","bind"],"sourceRoot":""}

Zerion Mini Shell 1.0