{"version":3,"sources":["jsdelivr-header.js","/npm/string-interpolation-ts@2.0.2/dist/index.js"],"names":[],"mappings":"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","file":"/npm/string-interpolation-ts@2.0.2/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/string-interpolation-ts@2.0.2/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Interpolator = void 0;\nconst get_1 = __importDefault(require(\"lodash/get\"));\nclass Interpolator {\n    constructor(options = {}) {\n        this.options = options;\n        this.modifiers = [];\n        this.aliases = [];\n        options.modifiers?.forEach((x) => this.registerModifier(x));\n        options.aliases?.forEach((x) => this.registerAlias(x));\n    }\n    registerModifier(modifier) {\n        this.modifiers.push(modifier);\n        return this;\n    }\n    parseRules(str) {\n        return (str.match(new RegExp(`{([^}]+)}`, \"gi\"))?.map((match) => {\n            return {\n                key: this.getKeyFromMatch(match),\n                replace: match,\n                modifiers: this.getModifiers(match).reduce((acc, x) => {\n                    if (x)\n                        acc.push(x);\n                    return acc;\n                }, []),\n                alternativeText: this.getAlternativeText(match)\n            };\n        }) || []);\n    }\n    getKeyFromMatch(match) {\n        const removeReservedSymbols = [\":\", \"|\"];\n        return this.removeDelimiter(removeReservedSymbols.reduce((val, sym) => (val.indexOf(sym) > 0 ? this.removeAfter(val, sym) : val), match));\n    }\n    removeDelimiter(val) {\n        return val\n            .replace(new RegExp(\"{\", \"g\"), \"\")\n            .replace(new RegExp(\"}\", \"g\"), \"\");\n    }\n    removeAfter(str, val) {\n        return str.substring(0, str.indexOf(val));\n    }\n    extractAfter(str, val) {\n        return str.substring(str.indexOf(val) + 1);\n    }\n    getAlternativeText(str) {\n        if (str.indexOf(\":\") > 0) {\n            const altText = this.removeDelimiter(this.extractAfter(str, \":\"));\n            if (altText.indexOf(\"|\") > 0) {\n                return this.removeAfter(altText, \"|\");\n            }\n            return altText;\n        }\n        return \"\";\n    }\n    getModifiers(str) {\n        if (str.indexOf(\"|\") > 0) {\n            return this.removeDelimiter(this.extractAfter(str, \"|\"))\n                .split(\",\")\n                .map((modifier) => this.getModifier(modifier));\n        }\n        return [];\n    }\n    parse(str = \"\", data = {}) {\n        const rules = this.parseRules(str);\n        if (rules && rules.length > 0) {\n            return this.parseFromRules(str, data, rules);\n        }\n        return str;\n    }\n    parseFromRules(str, data, rules) {\n        return rules.reduce((reducedStr, rule) => this.applyRule(reducedStr, rule, data), str);\n    }\n    applyRule(str, rule, data = {}) {\n        const dataToReplace = this.applyData(rule.key, data);\n        if (dataToReplace) {\n            return str.replace(rule.replace, this.applyModifiers(rule.modifiers, String(dataToReplace), data));\n        }\n        else if (rule.alternativeText) {\n            return str.replace(rule.replace, this.applyModifiers(rule.modifiers, rule.alternativeText, data));\n        }\n        return str.replace(rule.replace, \"\");\n    }\n    getFromAlias(key) {\n        return this.aliases.find((alias) => alias.key === key);\n    }\n    applyData(key, data) {\n        const alias = this.getFromAlias(key);\n        if (alias) {\n            const value = (0, get_1.default)(data, alias.ref);\n            if (value) {\n                return value;\n            }\n        }\n        return (0, get_1.default)(data, key);\n    }\n    getModifier(key) {\n        return this.modifiers.find((modifier) => modifier.key === key);\n    }\n    applyModifiers(modifiers, str, rawData) {\n        return modifiers.reduce((acc, x) => x.transform(acc, rawData), str);\n    }\n    registerAlias(newAlias) {\n        this.aliases.push(newAlias);\n        return this;\n    }\n    removeAlias(key) {\n        this.aliases = this.aliases.filter((alias) => alias.key !== key);\n        return this;\n    }\n}\nexports.Interpolator = Interpolator;\n"]}