qsdklsqkdmqskdmlqskd azoepqikdomlqskdjmlqs qpfklqjsfmklqsjdmqlsjdsqd home/broads13/public_html/wp-includes/js/dist/i18n.js000066600000036466152331236310016364 0ustar00"use strict"; var wp; (wp ||= {}).i18n = (() => { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // package-external:@wordpress/hooks var require_hooks = __commonJS({ "package-external:@wordpress/hooks"(exports, module) { module.exports = window.wp.hooks; } }); // packages/i18n/build-module/index.mjs var index_exports = {}; __export(index_exports, { __: () => __, _n: () => _n, _nx: () => _nx, _x: () => _x, createI18n: () => createI18n, defaultI18n: () => default_i18n_default, getLocaleData: () => getLocaleData, hasTranslation: () => hasTranslation, isRTL: () => isRTL, resetLocaleData: () => resetLocaleData, setLocaleData: () => setLocaleData, sprintf: () => sprintf2, subscribe: () => subscribe }); // node_modules/@tannin/sprintf/src/index.js var PATTERN = /%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g; function sprintf(string, ...args) { var i = 0; if (Array.isArray(args[0])) { args = /** @type {import('../types').SprintfArgs[]} */ /** @type {unknown} */ args[0]; } return string.replace(PATTERN, function() { var index, name, precision, type, value; index = arguments[3]; name = arguments[5]; precision = arguments[7]; type = arguments[9]; if (type === "%") { return "%"; } if (precision === "*") { precision = args[i]; i++; } if (name === void 0) { if (index === void 0) { index = i + 1; } i++; value = args[index - 1]; } else if (args[0] && typeof args[0] === "object" && args[0].hasOwnProperty(name)) { value = args[0][name]; } if (type === "f") { value = parseFloat(value) || 0; } else if (type === "d") { value = parseInt(value) || 0; } if (precision !== void 0) { if (type === "f") { value = value.toFixed(precision); } else if (type === "s") { value = value.substr(0, precision); } } return value !== void 0 && value !== null ? value : ""; }); } // packages/i18n/build-module/sprintf.mjs function sprintf2(format, ...args) { return sprintf(format, ...args); } // node_modules/@tannin/postfix/index.js var PRECEDENCE; var OPENERS; var TERMINATORS; var PATTERN2; PRECEDENCE = { "(": 9, "!": 8, "*": 7, "/": 7, "%": 7, "+": 6, "-": 6, "<": 5, "<=": 5, ">": 5, ">=": 5, "==": 4, "!=": 4, "&&": 3, "||": 2, "?": 1, "?:": 1 }; OPENERS = ["(", "?"]; TERMINATORS = { ")": ["("], ":": ["?", "?:"] }; PATTERN2 = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; function postfix(expression) { var terms = [], stack = [], match, operator, term, element; while (match = expression.match(PATTERN2)) { operator = match[0]; term = expression.substr(0, match.index).trim(); if (term) { terms.push(term); } while (element = stack.pop()) { if (TERMINATORS[operator]) { if (TERMINATORS[operator][0] === element) { operator = TERMINATORS[operator][1] || operator; break; } } else if (OPENERS.indexOf(element) >= 0 || PRECEDENCE[element] < PRECEDENCE[operator]) { stack.push(element); break; } terms.push(element); } if (!TERMINATORS[operator]) { stack.push(operator); } expression = expression.substr(match.index + operator.length); } expression = expression.trim(); if (expression) { terms.push(expression); } return terms.concat(stack.reverse()); } // node_modules/@tannin/evaluate/index.js var OPERATORS = { "!": function(a) { return !a; }, "*": function(a, b) { return a * b; }, "/": function(a, b) { return a / b; }, "%": function(a, b) { return a % b; }, "+": function(a, b) { return a + b; }, "-": function(a, b) { return a - b; }, "<": function(a, b) { return a < b; }, "<=": function(a, b) { return a <= b; }, ">": function(a, b) { return a > b; }, ">=": function(a, b) { return a >= b; }, "==": function(a, b) { return a === b; }, "!=": function(a, b) { return a !== b; }, "&&": function(a, b) { return a && b; }, "||": function(a, b) { return a || b; }, "?:": function(a, b, c) { if (a) { throw b; } return c; } }; function evaluate(postfix2, variables) { var stack = [], i, j, args, getOperatorResult, term, value; for (i = 0; i < postfix2.length; i++) { term = postfix2[i]; getOperatorResult = OPERATORS[term]; if (getOperatorResult) { j = getOperatorResult.length; args = Array(j); while (j--) { args[j] = stack.pop(); } try { value = getOperatorResult.apply(null, args); } catch (earlyReturn) { return earlyReturn; } } else if (variables.hasOwnProperty(term)) { value = variables[term]; } else { value = +term; } stack.push(value); } return stack[0]; } // node_modules/@tannin/compile/index.js function compile(expression) { var terms = postfix(expression); return function(variables) { return evaluate(terms, variables); }; } // node_modules/@tannin/plural-forms/index.js function pluralForms(expression) { var evaluate2 = compile(expression); return function(n) { return +evaluate2({ n }); }; } // node_modules/tannin/index.js var DEFAULT_OPTIONS = { contextDelimiter: "", onMissingKey: null }; function getPluralExpression(pf) { var parts, i, part; parts = pf.split(";"); for (i = 0; i < parts.length; i++) { part = parts[i].trim(); if (part.indexOf("plural=") === 0) { return part.substr(7); } } } function Tannin(data, options) { var key; this.data = data; this.pluralForms = {}; this.options = {}; for (key in DEFAULT_OPTIONS) { this.options[key] = options !== void 0 && key in options ? options[key] : DEFAULT_OPTIONS[key]; } } Tannin.prototype.getPluralForm = function(domain, n) { var getPluralForm = this.pluralForms[domain], config, plural, pf; if (!getPluralForm) { config = this.data[domain][""]; pf = config["Plural-Forms"] || config["plural-forms"] || // Ignore reason: As known, there's no way to document the empty // string property on a key to guarantee this as metadata. // @ts-ignore config.plural_forms; if (typeof pf !== "function") { plural = getPluralExpression( config["Plural-Forms"] || config["plural-forms"] || // Ignore reason: As known, there's no way to document the empty // string property on a key to guarantee this as metadata. // @ts-ignore config.plural_forms ); pf = pluralForms(plural); } getPluralForm = this.pluralForms[domain] = pf; } return getPluralForm(n); }; Tannin.prototype.dcnpgettext = function(domain, context, singular, plural, n) { var index, key, entry; if (n === void 0) { index = 0; } else { index = this.getPluralForm(domain, n); } key = singular; if (context) { key = context + this.options.contextDelimiter + singular; } entry = this.data[domain][key]; if (entry && entry[index]) { return entry[index]; } if (this.options.onMissingKey) { this.options.onMissingKey(singular, domain); } return index === 0 ? singular : plural; }; // packages/i18n/build-module/create-i18n.mjs var DEFAULT_LOCALE_DATA = { "": { plural_forms(n) { return n === 1 ? 0 : 1; } } }; var I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; var createI18n = (initialData, initialDomain, hooks) => { const tannin = new Tannin({}); const listeners = /* @__PURE__ */ new Set(); const notifyListeners = () => { listeners.forEach((listener) => listener()); }; const subscribe2 = (callback) => { listeners.add(callback); return () => listeners.delete(callback); }; const getLocaleData2 = (domain = "default") => tannin.data[domain]; const doSetLocaleData = (data, domain = "default") => { tannin.data[domain] = { ...tannin.data[domain], ...data }; tannin.data[domain][""] = { ...DEFAULT_LOCALE_DATA[""], ...tannin.data[domain]?.[""] }; delete tannin.pluralForms[domain]; }; const setLocaleData2 = (data, domain) => { doSetLocaleData(data, domain); notifyListeners(); }; const addLocaleData = (data, domain = "default") => { tannin.data[domain] = { ...tannin.data[domain], ...data, // Populate default domain configuration (supported locale date which omits // a plural forms expression). "": { ...DEFAULT_LOCALE_DATA[""], ...tannin.data[domain]?.[""], ...data?.[""] } }; delete tannin.pluralForms[domain]; notifyListeners(); }; const resetLocaleData2 = (data, domain) => { tannin.data = {}; tannin.pluralForms = {}; setLocaleData2(data, domain); }; const dcnpgettext = (domain = "default", context, single, plural, number) => { if (!tannin.data[domain]) { doSetLocaleData(void 0, domain); } return tannin.dcnpgettext(domain, context, single, plural, number); }; const getFilterDomain = (domain) => domain || "default"; const __2 = (text, domain) => { let translation = dcnpgettext(domain, void 0, text); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.gettext", translation, text, domain ); return hooks.applyFilters( "i18n.gettext_" + getFilterDomain(domain), translation, text, domain ); }; const _x2 = (text, context, domain) => { let translation = dcnpgettext(domain, context, text); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.gettext_with_context", translation, text, context, domain ); return hooks.applyFilters( "i18n.gettext_with_context_" + getFilterDomain(domain), translation, text, context, domain ); }; const _n2 = (single, plural, number, domain) => { let translation = dcnpgettext( domain, void 0, single, plural, number ); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.ngettext", translation, single, plural, number, domain ); return hooks.applyFilters( "i18n.ngettext_" + getFilterDomain(domain), translation, single, plural, number, domain ); }; const _nx2 = (single, plural, number, context, domain) => { let translation = dcnpgettext( domain, context, single, plural, number ); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.ngettext_with_context", translation, single, plural, number, context, domain ); return hooks.applyFilters( "i18n.ngettext_with_context_" + getFilterDomain(domain), translation, single, plural, number, context, domain ); }; const isRTL2 = () => { return "rtl" === _x2("ltr", "text direction"); }; const hasTranslation2 = (single, context, domain) => { const key = context ? context + "" + single : single; let result = !!tannin.data?.[domain ?? "default"]?.[key]; if (hooks) { result = hooks.applyFilters( "i18n.has_translation", result, single, context, domain ); result = hooks.applyFilters( "i18n.has_translation_" + getFilterDomain(domain), result, single, context, domain ); } return result; }; if (initialData) { setLocaleData2(initialData, initialDomain); } if (hooks) { const onHookAddedOrRemoved = (hookName) => { if (I18N_HOOK_REGEXP.test(hookName)) { notifyListeners(); } }; hooks.addAction("hookAdded", "core/i18n", onHookAddedOrRemoved); hooks.addAction("hookRemoved", "core/i18n", onHookAddedOrRemoved); } return { getLocaleData: getLocaleData2, setLocaleData: setLocaleData2, addLocaleData, resetLocaleData: resetLocaleData2, subscribe: subscribe2, __: __2, _x: _x2, _n: _n2, _nx: _nx2, isRTL: isRTL2, hasTranslation: hasTranslation2 }; }; // packages/i18n/build-module/default-i18n.mjs var import_hooks = __toESM(require_hooks(), 1); var i18n = createI18n(void 0, void 0, import_hooks.defaultHooks); var default_i18n_default = i18n; var getLocaleData = i18n.getLocaleData.bind(i18n); var setLocaleData = i18n.setLocaleData.bind(i18n); var resetLocaleData = i18n.resetLocaleData.bind(i18n); var subscribe = i18n.subscribe.bind(i18n); var __ = i18n.__.bind(i18n); var _x = i18n._x.bind(i18n); var _n = i18n._n.bind(i18n); var _nx = i18n._nx.bind(i18n); var isRTL = i18n.isRTL.bind(i18n); var hasTranslation = i18n.hasTranslation.bind(i18n); return __toCommonJS(index_exports); })(); home/broads13/public_html/modpromatl.com/wp-includes/js/dist/i18n.js000064400000060543152331276640021316 0ustar00/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { __: () => (/* reexport */ __), _n: () => (/* reexport */ _n), _nx: () => (/* reexport */ _nx), _x: () => (/* reexport */ _x), createI18n: () => (/* reexport */ createI18n), defaultI18n: () => (/* reexport */ default_i18n_default), getLocaleData: () => (/* reexport */ getLocaleData), hasTranslation: () => (/* reexport */ hasTranslation), isRTL: () => (/* reexport */ isRTL), resetLocaleData: () => (/* reexport */ resetLocaleData), setLocaleData: () => (/* reexport */ setLocaleData), sprintf: () => (/* reexport */ sprintf_sprintf), subscribe: () => (/* reexport */ subscribe) }); ;// ./node_modules/@tannin/sprintf/src/index.js /** * Regular expression matching format placeholder syntax. * * The pattern for matching named arguments is a naive and incomplete matcher * against valid JavaScript identifier names. * * via Mathias Bynens: * * >An identifier must start with $, _, or any character in the Unicode * >categories “Uppercase letter (Lu)”, “Lowercase letter (Ll)”, “Titlecase * >letter (Lt)”, “Modifier letter (Lm)”, “Other letter (Lo)”, or “Letter * >number (Nl)”. * > * >The rest of the string can contain the same characters, plus any U+200C zero * >width non-joiner characters, U+200D zero width joiner characters, and * >characters in the Unicode categories “Non-spacing mark (Mn)”, “Spacing * >combining mark (Mc)”, “Decimal digit number (Nd)”, or “Connector * >punctuation (Pc)”. * * If browser support is constrained to those supporting ES2015, this could be * made more accurate using the `u` flag: * * ``` * /^[$_\p{L}\p{Nl}][$_\p{L}\p{Nl}\u200C\u200D\p{Mn}\p{Mc}\p{Nd}\p{Pc}]*$/u; * ``` * * @see http://www.pixelbeat.org/programming/gcc/format_specs.html * @see https://mathiasbynens.be/notes/javascript-identifiers#valid-identifier-names * * @type {RegExp} */ var PATTERN = /%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g; // ▲ ▲ ▲ ▲ ▲ ▲ ▲ type // │ │ │ │ │ └ Length (unsupported) // │ │ │ │ └ Precision / max width // │ │ │ └ Min width (unsupported) // │ │ └ Flags (unsupported) // └ Index └ Name (for named arguments) /** * Given a format string, returns string with arguments interpolatation. * Arguments can either be provided directly via function arguments spread, or * with an array as the second argument. * * @see https://en.wikipedia.org/wiki/Printf_format_string * * @example * * ```js * import sprintf from '@tannin/sprintf'; * * sprintf( 'Hello %s!', 'world' ); * // ⇒ 'Hello world!' * ``` * @template {string} T * @overload * @param {T} string - string printf format string * @param {...import('../types').SprintfArgs} args - arguments to interpolate * * @return {string} Formatted string. */ /** * Given a format string, returns string with arguments interpolatation. * Arguments can either be provided directly via function arguments spread, or * with an array as the second argument. * * @see https://en.wikipedia.org/wiki/Printf_format_string * * @example * * ```js * import sprintf from '@tannin/sprintf'; * * sprintf( 'Hello %s!', 'world' ); * // ⇒ 'Hello world!' * ``` * @template {string} T * @overload * @param {T} string - string printf format string * @param {import('../types').SprintfArgs} args - arguments to interpolate * * @return {string} Formatted string. */ /** * Given a format string, returns string with arguments interpolatation. * Arguments can either be provided directly via function arguments spread, or * with an array as the second argument. * * @see https://en.wikipedia.org/wiki/Printf_format_string * * @example * * ```js * import sprintf from '@tannin/sprintf'; * * sprintf( 'Hello %s!', 'world' ); * // ⇒ 'Hello world!' * ``` * @template {string} T * @param {T} string - string printf format string * @param {...import('../types').SprintfArgs} args - arguments to interpolate * * @return {string} Formatted string. */ function sprintf(string, ...args) { var i = 0; if (Array.isArray(args[0])) { args = /** @type {import('../types').SprintfArgs[]} */ ( /** @type {unknown} */ args[0] ); } return string.replace(PATTERN, function () { var index, // name needs to be documented as `string | undefined` else value will have tpye unknown. /** * Name of the argument to substitute, if any. * * @type {string | undefined} */ name, precision, type, value; index = arguments[3]; name = arguments[5]; precision = arguments[7]; type = arguments[9]; // There's no placeholder substitution in the explicit "%", meaning it // is not necessary to increment argument index. if (type === '%') { return '%'; } // Asterisk precision determined by peeking / shifting next argument. if (precision === '*') { precision = args[i]; i++; } if (name === undefined) { // If not a positional argument, use counter value. if (index === undefined) { index = i + 1; } i++; // Positional argument. value = args[index - 1]; } else if ( args[0] && typeof args[0] === 'object' && args[0].hasOwnProperty(name) ) { // If it's a named argument, use name. value = args[0][name]; } // Parse as type. if (type === 'f') { value = parseFloat(value) || 0; } else if (type === 'd') { value = parseInt(value) || 0; } // Apply precision. if (precision !== undefined) { if (type === 'f') { value = value.toFixed(precision); } else if (type === 's') { value = value.substr(0, precision); } } // To avoid "undefined" concatenation, return empty string if no // placeholder substitution can be performed. return value !== undefined && value !== null ? value : ''; }); } ;// ./node_modules/@wordpress/i18n/build-module/sprintf.js function sprintf_sprintf(format, ...args) { return sprintf(format, ...args); } ;// ./node_modules/@tannin/postfix/index.js var PRECEDENCE, OPENERS, TERMINATORS, postfix_PATTERN; /** * Operator precedence mapping. * * @type {Object} */ PRECEDENCE = { '(': 9, '!': 8, '*': 7, '/': 7, '%': 7, '+': 6, '-': 6, '<': 5, '<=': 5, '>': 5, '>=': 5, '==': 4, '!=': 4, '&&': 3, '||': 2, '?': 1, '?:': 1, }; /** * Characters which signal pair opening, to be terminated by terminators. * * @type {string[]} */ OPENERS = [ '(', '?' ]; /** * Characters which signal pair termination, the value an array with the * opener as its first member. The second member is an optional operator * replacement to push to the stack. * * @type {string[]} */ TERMINATORS = { ')': [ '(' ], ':': [ '?', '?:' ], }; /** * Pattern matching operators and openers. * * @type {RegExp} */ postfix_PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; /** * Given a C expression, returns the equivalent postfix (Reverse Polish) * notation terms as an array. * * If a postfix string is desired, simply `.join( ' ' )` the result. * * @example * * ```js * import postfix from '@tannin/postfix'; * * postfix( 'n > 1' ); * // ⇒ [ 'n', '1', '>' ] * ``` * * @param {string} expression C expression. * * @return {string[]} Postfix terms. */ function postfix( expression ) { var terms = [], stack = [], match, operator, term, element; while ( ( match = expression.match( postfix_PATTERN ) ) ) { operator = match[ 0 ]; // Term is the string preceding the operator match. It may contain // whitespace, and may be empty (if operator is at beginning). term = expression.substr( 0, match.index ).trim(); if ( term ) { terms.push( term ); } while ( ( element = stack.pop() ) ) { if ( TERMINATORS[ operator ] ) { if ( TERMINATORS[ operator ][ 0 ] === element ) { // Substitution works here under assumption that because // the assigned operator will no longer be a terminator, it // will be pushed to the stack during the condition below. operator = TERMINATORS[ operator ][ 1 ] || operator; break; } } else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) { // Push to stack if either an opener or when pop reveals an // element of lower precedence. stack.push( element ); break; } // For each popped from stack, push to terms. terms.push( element ); } if ( ! TERMINATORS[ operator ] ) { stack.push( operator ); } // Slice matched fragment from expression to continue match. expression = expression.substr( match.index + operator.length ); } // Push remainder of operand, if exists, to terms. expression = expression.trim(); if ( expression ) { terms.push( expression ); } // Pop remaining items from stack into terms. return terms.concat( stack.reverse() ); } ;// ./node_modules/@tannin/evaluate/index.js /** * Operator callback functions. * * @type {Object} */ var OPERATORS = { '!': function( a ) { return ! a; }, '*': function( a, b ) { return a * b; }, '/': function( a, b ) { return a / b; }, '%': function( a, b ) { return a % b; }, '+': function( a, b ) { return a + b; }, '-': function( a, b ) { return a - b; }, '<': function( a, b ) { return a < b; }, '<=': function( a, b ) { return a <= b; }, '>': function( a, b ) { return a > b; }, '>=': function( a, b ) { return a >= b; }, '==': function( a, b ) { return a === b; }, '!=': function( a, b ) { return a !== b; }, '&&': function( a, b ) { return a && b; }, '||': function( a, b ) { return a || b; }, '?:': function( a, b, c ) { if ( a ) { throw b; } return c; }, }; /** * Given an array of postfix terms and operand variables, returns the result of * the postfix evaluation. * * @example * * ```js * import evaluate from '@tannin/evaluate'; * * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +' * const terms = [ '3', '4', '5', '*', '6', '/', '+' ]; * * evaluate( terms, {} ); * // ⇒ 6.333333333333334 * ``` * * @param {string[]} postfix Postfix terms. * @param {Object} variables Operand variables. * * @return {*} Result of evaluation. */ function evaluate( postfix, variables ) { var stack = [], i, j, args, getOperatorResult, term, value; for ( i = 0; i < postfix.length; i++ ) { term = postfix[ i ]; getOperatorResult = OPERATORS[ term ]; if ( getOperatorResult ) { // Pop from stack by number of function arguments. j = getOperatorResult.length; args = Array( j ); while ( j-- ) { args[ j ] = stack.pop(); } try { value = getOperatorResult.apply( null, args ); } catch ( earlyReturn ) { return earlyReturn; } } else if ( variables.hasOwnProperty( term ) ) { value = variables[ term ]; } else { value = +term; } stack.push( value ); } return stack[ 0 ]; } ;// ./node_modules/@tannin/compile/index.js /** * Given a C expression, returns a function which can be called to evaluate its * result. * * @example * * ```js * import compile from '@tannin/compile'; * * const evaluate = compile( 'n > 1' ); * * evaluate( { n: 2 } ); * // ⇒ true * ``` * * @param {string} expression C expression. * * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator. */ function compile( expression ) { var terms = postfix( expression ); return function( variables ) { return evaluate( terms, variables ); }; } ;// ./node_modules/@tannin/plural-forms/index.js /** * Given a C expression, returns a function which, when called with a value, * evaluates the result with the value assumed to be the "n" variable of the * expression. The result will be coerced to its numeric equivalent. * * @param {string} expression C expression. * * @return {Function} Evaluator function. */ function pluralForms( expression ) { var evaluate = compile( expression ); return function( n ) { return +evaluate( { n: n } ); }; } ;// ./node_modules/tannin/index.js /** * Tannin constructor options. * * @typedef {Object} TanninOptions * * @property {string} [contextDelimiter] Joiner in string lookup with context. * @property {Function} [onMissingKey] Callback to invoke when key missing. */ /** * Domain metadata. * * @typedef {Object} TanninDomainMetadata * * @property {string} [domain] Domain name. * @property {string} [lang] Language code. * @property {(string|Function)} [plural_forms] Plural forms expression or * function evaluator. */ /** * Domain translation pair respectively representing the singular and plural * translation. * * @typedef {[string,string]} TanninTranslation */ /** * Locale data domain. The key is used as reference for lookup, the value an * array of two string entries respectively representing the singular and plural * translation. * * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain */ /** * Jed-formatted locale data. * * @see http://messageformat.github.io/Jed/ * * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData */ /** * Default Tannin constructor options. * * @type {TanninOptions} */ var DEFAULT_OPTIONS = { contextDelimiter: '\u0004', onMissingKey: null, }; /** * Given a specific locale data's config `plural_forms` value, returns the * expression. * * @example * * ``` * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)' * ``` * * @param {string} pf Locale data plural forms. * * @return {string} Plural forms expression. */ function getPluralExpression( pf ) { var parts, i, part; parts = pf.split( ';' ); for ( i = 0; i < parts.length; i++ ) { part = parts[ i ].trim(); if ( part.indexOf( 'plural=' ) === 0 ) { return part.substr( 7 ); } } } /** * Tannin constructor. * * @class * * @param {TanninLocaleData} data Jed-formatted locale data. * @param {TanninOptions} [options] Tannin options. */ function Tannin( data, options ) { var key; /** * Jed-formatted locale data. * * @name Tannin#data * @type {TanninLocaleData} */ this.data = data; /** * Plural forms function cache, keyed by plural forms string. * * @name Tannin#pluralForms * @type {Object} */ this.pluralForms = {}; /** * Effective options for instance, including defaults. * * @name Tannin#options * @type {TanninOptions} */ this.options = {}; for ( key in DEFAULT_OPTIONS ) { this.options[ key ] = options !== undefined && key in options ? options[ key ] : DEFAULT_OPTIONS[ key ]; } } /** * Returns the plural form index for the given domain and value. * * @param {string} domain Domain on which to calculate plural form. * @param {number} n Value for which plural form is to be calculated. * * @return {number} Plural form index. */ Tannin.prototype.getPluralForm = function( domain, n ) { var getPluralForm = this.pluralForms[ domain ], config, plural, pf; if ( ! getPluralForm ) { config = this.data[ domain ][ '' ]; pf = ( config[ 'Plural-Forms' ] || config[ 'plural-forms' ] || // Ignore reason: As known, there's no way to document the empty // string property on a key to guarantee this as metadata. // @ts-ignore config.plural_forms ); if ( typeof pf !== 'function' ) { plural = getPluralExpression( config[ 'Plural-Forms' ] || config[ 'plural-forms' ] || // Ignore reason: As known, there's no way to document the empty // string property on a key to guarantee this as metadata. // @ts-ignore config.plural_forms ); pf = pluralForms( plural ); } getPluralForm = this.pluralForms[ domain ] = pf; } return getPluralForm( n ); }; /** * Translate a string. * * @param {string} domain Translation domain. * @param {string|void} context Context distinguishing terms of the same name. * @param {string} singular Primary key for translation lookup. * @param {string=} plural Fallback value used for non-zero plural * form index. * @param {number=} n Value to use in calculating plural form. * * @return {string} Translated string. */ Tannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) { var index, key, entry; if ( n === undefined ) { // Default to singular. index = 0; } else { // Find index by evaluating plural form for value. index = this.getPluralForm( domain, n ); } key = singular; // If provided, context is prepended to key with delimiter. if ( context ) { key = context + this.options.contextDelimiter + singular; } entry = this.data[ domain ][ key ]; // Verify not only that entry exists, but that the intended index is within // range and non-empty. if ( entry && entry[ index ] ) { return entry[ index ]; } if ( this.options.onMissingKey ) { this.options.onMissingKey( singular, domain ); } // If entry not found, fall back to singular vs. plural with zero index // representing the singular value. return index === 0 ? singular : plural; }; ;// ./node_modules/@wordpress/i18n/build-module/create-i18n.js const DEFAULT_LOCALE_DATA = { "": { plural_forms(n) { return n === 1 ? 0 : 1; } } }; const I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; const createI18n = (initialData, initialDomain, hooks) => { const tannin = new Tannin({}); const listeners = /* @__PURE__ */ new Set(); const notifyListeners = () => { listeners.forEach((listener) => listener()); }; const subscribe = (callback) => { listeners.add(callback); return () => listeners.delete(callback); }; const getLocaleData = (domain = "default") => tannin.data[domain]; const doSetLocaleData = (data, domain = "default") => { tannin.data[domain] = { ...tannin.data[domain], ...data }; tannin.data[domain][""] = { ...DEFAULT_LOCALE_DATA[""], ...tannin.data[domain]?.[""] }; delete tannin.pluralForms[domain]; }; const setLocaleData = (data, domain) => { doSetLocaleData(data, domain); notifyListeners(); }; const addLocaleData = (data, domain = "default") => { tannin.data[domain] = { ...tannin.data[domain], ...data, // Populate default domain configuration (supported locale date which omits // a plural forms expression). "": { ...DEFAULT_LOCALE_DATA[""], ...tannin.data[domain]?.[""], ...data?.[""] } }; delete tannin.pluralForms[domain]; notifyListeners(); }; const resetLocaleData = (data, domain) => { tannin.data = {}; tannin.pluralForms = {}; setLocaleData(data, domain); }; const dcnpgettext = (domain = "default", context, single, plural, number) => { if (!tannin.data[domain]) { doSetLocaleData(void 0, domain); } return tannin.dcnpgettext(domain, context, single, plural, number); }; const getFilterDomain = (domain) => domain || "default"; const __ = (text, domain) => { let translation = dcnpgettext(domain, void 0, text); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.gettext", translation, text, domain ); return hooks.applyFilters( "i18n.gettext_" + getFilterDomain(domain), translation, text, domain ); }; const _x = (text, context, domain) => { let translation = dcnpgettext(domain, context, text); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.gettext_with_context", translation, text, context, domain ); return hooks.applyFilters( "i18n.gettext_with_context_" + getFilterDomain(domain), translation, text, context, domain ); }; const _n = (single, plural, number, domain) => { let translation = dcnpgettext( domain, void 0, single, plural, number ); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.ngettext", translation, single, plural, number, domain ); return hooks.applyFilters( "i18n.ngettext_" + getFilterDomain(domain), translation, single, plural, number, domain ); }; const _nx = (single, plural, number, context, domain) => { let translation = dcnpgettext( domain, context, single, plural, number ); if (!hooks) { return translation; } translation = hooks.applyFilters( "i18n.ngettext_with_context", translation, single, plural, number, context, domain ); return hooks.applyFilters( "i18n.ngettext_with_context_" + getFilterDomain(domain), translation, single, plural, number, context, domain ); }; const isRTL = () => { return "rtl" === _x("ltr", "text direction"); }; const hasTranslation = (single, context, domain) => { const key = context ? context + "" + single : single; let result = !!tannin.data?.[domain ?? "default"]?.[key]; if (hooks) { result = hooks.applyFilters( "i18n.has_translation", result, single, context, domain ); result = hooks.applyFilters( "i18n.has_translation_" + getFilterDomain(domain), result, single, context, domain ); } return result; }; if (initialData) { setLocaleData(initialData, initialDomain); } if (hooks) { const onHookAddedOrRemoved = (hookName) => { if (I18N_HOOK_REGEXP.test(hookName)) { notifyListeners(); } }; hooks.addAction("hookAdded", "core/i18n", onHookAddedOrRemoved); hooks.addAction("hookRemoved", "core/i18n", onHookAddedOrRemoved); } return { getLocaleData, setLocaleData, addLocaleData, resetLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation }; }; ;// external ["wp","hooks"] const external_wp_hooks_namespaceObject = window["wp"]["hooks"]; ;// ./node_modules/@wordpress/i18n/build-module/default-i18n.js const i18n = createI18n(void 0, void 0, external_wp_hooks_namespaceObject.defaultHooks); var default_i18n_default = i18n; const getLocaleData = i18n.getLocaleData.bind(i18n); const setLocaleData = i18n.setLocaleData.bind(i18n); const resetLocaleData = i18n.resetLocaleData.bind(i18n); const subscribe = i18n.subscribe.bind(i18n); const __ = i18n.__.bind(i18n); const _x = i18n._x.bind(i18n); const _n = i18n._n.bind(i18n); const _nx = i18n._nx.bind(i18n); const isRTL = i18n.isRTL.bind(i18n); const hasTranslation = i18n.hasTranslation.bind(i18n); ;// ./node_modules/@wordpress/i18n/build-module/index.js (window.wp = window.wp || {}).i18n = __webpack_exports__; /******/ })() ;