Linux sothorn202 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 202.28.82.202 | : 216.73.216.9
pkexec version 0.105
Cant Read [ /etc/named.conf ]
iqtd
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
bigdata /
wp-includes /
js /
dist /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
development
[ DIR ]
drwxr-xr-x
script-modules
[ DIR ]
drwxr-xr-x
vendor
[ DIR ]
drwxr-xr-x
a11y.js
5.58
KB
-rwxr-xr-x
a11y.min.js
2.16
KB
-rwxr-xr-x
admin-ui.js
5.58
KB
-rwxr-xr-x
admin-ui.min.js
2.11
KB
-rwxr-xr-x
annotations.js
15.83
KB
-rwxr-xr-x
annotations.min.js
5.19
KB
-rwxr-xr-x
api-fetch.js
15.94
KB
-rwxr-xr-x
api-fetch.min.js
5.66
KB
-rwxr-xr-x
autop.js
9.95
KB
-rwxr-xr-x
autop.min.js
5.48
KB
-rwxr-xr-x
base-styles.js
266
B
-rwxr-xr-x
base-styles.min.js
75
B
-rwxr-xr-x
blob.js
3.09
KB
-rwxr-xr-x
blob.min.js
1.08
KB
-rwxr-xr-x
block-directory.js
70.22
KB
-rwxr-xr-x
block-directory.min.js
20.18
KB
-rwxr-xr-x
block-editor.js
2.23
MB
-rwxr-xr-x
block-editor.min.js
870.73
KB
-rwxr-xr-x
block-library.js
2.19
MB
-rwxr-xr-x
block-library.min.js
958.23
KB
-rwxr-xr-x
block-serialization-default-parser.js
6.81
KB
-rwxr-xr-x
block-serialization-default-parser.min.js
2.34
KB
-rwxr-xr-x
blocks.js
427.28
KB
-rwxr-xr-x
blocks.min.js
172.59
KB
-rwxr-xr-x
commands.js
171.71
KB
-rwxr-xr-x
commands.min.js
48.76
KB
-rwxr-xr-x
components.js
2.39
MB
-rwxr-xr-x
components.min.js
786.38
KB
-rwxr-xr-x
compose.js
142.91
KB
-rwxr-xr-x
compose.min.js
35.78
KB
-rwxr-xr-x
core-commands.js
25.66
KB
-rwxr-xr-x
core-commands.min.js
10.39
KB
-rwxr-xr-x
core-data.js
216.7
KB
-rwxr-xr-x
core-data.min.js
68.73
KB
-rwxr-xr-x
customize-widgets.js
86.45
KB
-rwxr-xr-x
customize-widgets.min.js
34.22
KB
-rwxr-xr-x
data-controls.js
4.39
KB
-rwxr-xr-x
data-controls.min.js
1.44
KB
-rwxr-xr-x
data.js
88.15
KB
-rwxr-xr-x
data.min.js
24.85
KB
-rwxr-xr-x
date.js
790.86
KB
-rwxr-xr-x
date.min.js
765.33
KB
-rwxr-xr-x
deprecated.js
2.25
KB
-rwxr-xr-x
deprecated.min.js
684
B
-rwxr-xr-x
dom-ready.js
1.57
KB
-rwxr-xr-x
dom-ready.min.js
457
B
-rwxr-xr-x
dom.js
34.18
KB
-rwxr-xr-x
dom.min.js
12.3
KB
-rwxr-xr-x
edit-post.js
104.66
KB
-rwxr-xr-x
edit-post.min.js
42.69
KB
-rwxr-xr-x
edit-site.js
1.76
MB
-rwxr-xr-x
edit-site.min.js
700.23
KB
-rwxr-xr-x
edit-widgets.js
152.38
KB
-rwxr-xr-x
edit-widgets.min.js
57.61
KB
-rwxr-xr-x
editor.js
1.09
MB
-rwxr-xr-x
editor.min.js
409.65
KB
-rwxr-xr-x
element.js
46.17
KB
-rwxr-xr-x
element.min.js
11.83
KB
-rwxr-xr-x
escape-html.js
2.99
KB
-rwxr-xr-x
escape-html.min.js
1000
B
-rwxr-xr-x
format-library.js
71.86
KB
-rwxr-xr-x
format-library.min.js
26.91
KB
-rwxr-xr-x
hooks.js
15.64
KB
-rwxr-xr-x
hooks.min.js
5.53
KB
-rwxr-xr-x
html-entities.js
2.29
KB
-rwxr-xr-x
html-entities.min.js
792
B
-rwxr-xr-x
i18n.js
24.35
KB
-rwxr-xr-x
i18n.min.js
5.19
KB
-rwxr-xr-x
is-shallow-equal.js
3.28
KB
-rwxr-xr-x
is-shallow-equal.min.js
1018
B
-rwxr-xr-x
keyboard-shortcuts.js
9.23
KB
-rwxr-xr-x
keyboard-shortcuts.min.js
2.98
KB
-rwxr-xr-x
keycodes.js
7.89
KB
-rwxr-xr-x
keycodes.min.js
2.51
KB
-rwxr-xr-x
latex-to-mathml.js
444.74
KB
-rwxr-xr-x
latex-to-mathml.min.js
192.02
KB
-rwxr-xr-x
list-reusable-blocks.js
29.95
KB
-rwxr-xr-x
list-reusable-blocks.min.js
4.62
KB
-rwxr-xr-x
media-utils.js
23.35
KB
-rwxr-xr-x
media-utils.min.js
9.72
KB
-rwxr-xr-x
notices.js
5.84
KB
-rwxr-xr-x
notices.min.js
2.03
KB
-rwxr-xr-x
nux.js
9.89
KB
-rwxr-xr-x
nux.min.js
3.43
KB
-rwxr-xr-x
patterns.js
60.31
KB
-rwxr-xr-x
patterns.min.js
21.47
KB
-rwxr-xr-x
plugins.js
13.65
KB
-rwxr-xr-x
plugins.min.js
4.23
KB
-rwxr-xr-x
preferences-persistence.js
16.82
KB
-rwxr-xr-x
preferences-persistence.min.js
5.33
KB
-rwxr-xr-x
preferences.js
20.27
KB
-rwxr-xr-x
preferences.min.js
6.85
KB
-rwxr-xr-x
primitives.js
5.1
KB
-rwxr-xr-x
primitives.min.js
1.62
KB
-rwxr-xr-x
priority-queue.js
9.89
KB
-rwxr-xr-x
priority-queue.min.js
3.3
KB
-rwxr-xr-x
private-apis.js
5.35
KB
-rwxr-xr-x
private-apis.min.js
2.77
KB
-rwxr-xr-x
redux-routine.js
21.23
KB
-rwxr-xr-x
redux-routine.min.js
8.68
KB
-rwxr-xr-x
reusable-blocks.js
18.45
KB
-rwxr-xr-x
reusable-blocks.min.js
5.91
KB
-rwxr-xr-x
rich-text.js
83.52
KB
-rwxr-xr-x
rich-text.min.js
36.42
KB
-rwxr-xr-x
router.js
52.27
KB
-rwxr-xr-x
router.min.js
13.44
KB
-rwxr-xr-x
server-side-render.js
9.68
KB
-rwxr-xr-x
server-side-render.min.js
3.08
KB
-rwxr-xr-x
shortcode.js
9.83
KB
-rwxr-xr-x
shortcode.min.js
2.83
KB
-rwxr-xr-x
style-engine.js
35.12
KB
-rwxr-xr-x
style-engine.min.js
5.92
KB
-rwxr-xr-x
token-list.js
5.86
KB
-rwxr-xr-x
token-list.min.js
1.27
KB
-rwxr-xr-x
url.js
20.26
KB
-rwxr-xr-x
url.min.js
8.33
KB
-rwxr-xr-x
viewport.js
6.29
KB
-rwxr-xr-x
viewport.min.js
1.83
KB
-rwxr-xr-x
views.js
7.8
KB
-rwxr-xr-x
views.min.js
2.68
KB
-rwxr-xr-x
warning.js
1.6
KB
-rwxr-xr-x
warning.min.js
303
B
-rwxr-xr-x
widgets.js
47.61
KB
-rwxr-xr-x
widgets.min.js
19.5
KB
-rwxr-xr-x
wordcount.js
13.25
KB
-rwxr-xr-x
wordcount.min.js
3.24
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : i18n.js
/******/ (() => { // 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<T>} 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<T>} 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<T>} 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<T>[]} */ ( /** @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<string,Function>} */ 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__; /******/ })() ;
Close