@acorex/core 21.0.0-next51 → 21.0.1-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/index.d.ts +1 -0
- package/fesm2022/acorex-core-components.mjs +3 -3
- package/fesm2022/acorex-core-components.mjs.map +1 -1
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-constants.mjs +234 -23
- package/fesm2022/acorex-core-constants.mjs.map +1 -1
- package/fesm2022/acorex-core-date-time.mjs +25 -25
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +19 -19
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-full-screen.mjs +150 -0
- package/fesm2022/acorex-core-full-screen.mjs.map +1 -0
- package/fesm2022/acorex-core-icon.mjs +3 -3
- package/fesm2022/acorex-core-icon.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-locale.mjs +10 -10
- package/fesm2022/acorex-core-locale.mjs.map +1 -1
- package/fesm2022/acorex-core-memoize.mjs.map +1 -1
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-network.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +10 -10
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-storage.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +16 -16
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +4 -4
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/format/index.d.ts +2 -2
- package/full-screen/README.md +3 -0
- package/full-screen/index.d.ts +48 -0
- package/package.json +5 -1
- package/validation/index.d.ts +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-storage.mjs","sources":["../tmp-esm2022/storage/cookie-storage.service.js","../tmp-esm2022/storage/local-storage.service.js","../tmp-esm2022/storage/session-storage.service.js","../tmp-esm2022/storage/acorex-core-storage.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXCookieStorageService {\n constructor() {\n this.document = inject(DOCUMENT);\n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n this.platformId = inject(PLATFORM_ID);\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([[\\]{}()|=;+?,.*^$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n }\n catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n */\n check(name) {\n if (!this.documentIsAccessible) {\n return false;\n }\n name = encodeURIComponent(name);\n const regExp = AXCookieStorageService.getCookieRegExp(name);\n return regExp.test(this.document.cookie);\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n */\n get(name) {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = AXCookieStorageService.getCookieRegExp(name);\n const result = regExp.exec(this.document.cookie);\n return result[1] ? AXCookieStorageService.safeDecodeURIComponent(result[1]) : '';\n }\n else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n */\n getAll() {\n if (!this.documentIsAccessible) {\n return {};\n }\n const cookies = {};\n const document = this.document;\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[AXCookieStorageService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] =\n AXCookieStorageService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' ||\n expiresOrOptions instanceof Date ||\n path ||\n domain ||\n secure ||\n sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n }\n else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', {\n expires: expiresDate,\n path,\n domain,\n secure,\n sameSite,\n });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n // eslint-disable-next-line no-prototype-builtins\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCookieStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCookieStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCookieStorageService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3RvcmFnZS9zcmMvY29va2llLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkxRSxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDO1FBSlEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQywrREFBK0Q7UUFDdkQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUd2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDekMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1RSxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsUUFBUSxHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBMkI7UUFDL0QsSUFBSSxDQUFDO1lBQ0gsT0FBTyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwrQ0FBK0M7WUFDL0MsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FN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LFVBQVUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQyxpREFBaUQ7WUFDakQsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FuUlUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBET0NVTUVOVCwgaW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb29raWVPcHRpb25zLCBBWFNhbWVTaXRlIH0gZnJvbSAnLi9zdG9yYWdlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWENvb2tpZVN0b3JhZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudElzQWNjZXNzaWJsZTogYm9vbGVhbjtcblxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgLy8gR2V0IHRoZSBgUExBVEZPUk1fSURgIHNvIHdlIGNhbiBjaGVjayBpZiB3ZSdyZSBpbiBhIGJyb3dzZXIuXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvb2tpZSBSZWd1bGFyIEV4cHJlc3Npb25cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICogQHJldHVybnMgcHJvcGVydHkgUmVnRXhwXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRDb29raWVSZWdFeHAobmFtZTogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBjb25zdCBlc2NhcGVkTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKC8oW1tcXF17fSgpfD07Kz8sLipeJF0pL2dpLCAnXFxcXCQxJyk7XG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cCgnKD86XicgKyBlc2NhcGVkTmFtZSArICd8O1xcXFxzKicgKyBlc2NhcGVkTmFtZSArICcpPSguKj8pKD86O3wkKScsICdnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdW5lbmNvZGVkIHZlcnNpb24gb2YgYW4gZW5jb2RlZCBjb21wb25lbnQgb2YgYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIgKFVSSSkuXG4gICAqXG4gICAqIEBwYXJhbSBlbmNvZGVkVVJJQ29tcG9uZW50IEEgdmFsdWUgcmVwcmVzZW50aW5nIGFuIGVuY29kZWQgVVJJIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHVuZW5jb2RlZCB2ZXJzaW9uIG9mIGFuIGVuY29kZWQgY29tcG9uZW50IG9mIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyIChVUkkpLlxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgc2FmZURlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkVVJJQ29tcG9uZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gcHJvYmFibHkgaXQgaXMgbm90IHVyaSBlbmNvZGVkLiByZXR1cm4gYXMgaXNcbiAgICAgIHJldHVybiBlbmNvZGVkVVJJQ29tcG9uZW50O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYHRydWVgIGlmIHtAbGluayBEb2N1bWVudH0gaXMgYWNjZXNzaWJsZSwgb3RoZXJ3aXNlIHJldHVybiBgZmFsc2VgXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gLSB3aGV0aGVyIGNvb2tpZSB3aXRoIHNwZWNpZmllZCBuYW1lIGV4aXN0c1xuICAgKlxuICAgKi9cbiAgY2hlY2sobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG4gICAgY29uc3QgcmVnRXhwOiBSZWdFeHAgPSBBWENvb2tpZVN0b3JhZ2VTZXJ2aWNlLmdldENvb2tpZVJlZ0V4cChuYW1lKTtcbiAgICByZXR1cm4gcmVnRXhwLnRlc3QodGhpcy5kb2N1bWVudC5jb29raWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb29raWVzIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICogQHJldHVybnMgcHJvcGVydHkgdmFsdWVcbiAgICpcbiAgICovXG4gIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlICYmIHRoaXMuY2hlY2sobmFtZSkpIHtcbiAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gQVhDb29raWVTdG9yYWdlU2VydmljZS5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICBjb25zdCByZXN1bHQ6IFJlZ0V4cEV4ZWNBcnJheSA9IHJlZ0V4cC5leGVjKHRoaXMuZG9jdW1lbnQuY29va2llKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdFsxXSA/IEFYQ29va2llU3RvcmFnZVNlcnZpY2Uuc2FmZURlY29kZVVSSUNvbXBvbmVudChyZXN1bHRbMV0pIDogJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBjb29raWVzIGluIEpTT04gZm9ybWF0XG4gICAqXG4gICAqIEByZXR1cm5zIGFsbCB0aGUgY29va2llcyBpbiBqc29uXG4gICAqXG4gICAqL1xuICBnZXRBbGwoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgY29va2llczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGNvbnN0IGRvY3VtZW50OiBhbnkgPSB0aGlzLmRvY3VtZW50O1xuXG4gICAgaWYgKGRvY3VtZW50LmNvb2tpZSAmJiBkb2N1bWVudC5jb29raWUgIT09ICcnKSB7XG4gICAgICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKChjdXJyZW50Q29va2llKSA9PiB7XG4gICAgICAgIGNvbnN0IFtjb29raWVOYW1lLCBjb29raWVWYWx1ZV0gPSBjdXJyZW50Q29va2llLnNwbGl0KCc9Jyk7XG4gICAgICAgIGNvb2tpZXNbQVhDb29raWVTdG9yYWdlU2VydmljZS5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZU5hbWUucmVwbGFjZSgvXiAvLCAnJykpXSA9XG4gICAgICAgICAgQVhDb29raWVTdG9yYWdlU2VydmljZS5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZVZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb29raWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb29raWUgYmFzZWQgb24gcHJvdmlkZWQgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgICAgIENvb2tpZSBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICogQHBhcmFtIGV4cGlyZXMgIE51bWJlciBvZiBkYXlzIHVudGlsIHRoZSBjb29raWVzIGV4cGlyZXMgb3IgYW4gYWN0dWFsIGBEYXRlYFxuICAgKiBAcGFyYW0gcGF0aCAgICAgQ29va2llIHBhdGhcbiAgICogQHBhcmFtIGRvbWFpbiAgIENvb2tpZSBkb21haW5cbiAgICogQHBhcmFtIHNlY3VyZSAgIFNlY3VyZSBmbGFnXG4gICAqIEBwYXJhbSBzYW1lU2l0ZSBPV0FTUCBzYW1lc2l0ZSB0b2tlbiBgTGF4YCwgYE5vbmVgLCBvciBgU3RyaWN0YC4gRGVmYXVsdHMgdG8gYExheGBcbiAgICpcbiAgICovXG4gIHNldChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBleHBpcmVzPzogQVhDb29raWVPcHRpb25zWydleHBpcmVzJ10sXG4gICAgcGF0aD86IEFYQ29va2llT3B0aW9uc1sncGF0aCddLFxuICAgIGRvbWFpbj86IEFYQ29va2llT3B0aW9uc1snZG9tYWluJ10sXG4gICAgc2VjdXJlPzogQVhDb29raWVPcHRpb25zWydzZWN1cmUnXSxcbiAgICBzYW1lU2l0ZT86IEFYU2FtZVNpdGUsXG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFNldCBjb29raWUgYmFzZWQgb24gcHJvdmlkZWQgaW5mb3JtYXRpb25cbiAgICpcbiAgICogQ29va2llJ3MgcGFyYW1ldGVyczpcbiAgICogPHByZT5cbiAgICogZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAqIHBhdGggICAgIENvb2tpZSBwYXRoXG4gICAqIGRvbWFpbiAgIENvb2tpZSBkb21haW5cbiAgICogc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICogc2FtZVNpdGUgT1dBU1Agc2FtZXNpdGUgdG9rZW4gYExheGAsIGBOb25lYCwgb3IgYFN0cmljdGAuIERlZmF1bHRzIHRvIGBMYXhgXG4gICAqIDwvcHJlPlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAgICAgQ29va2llIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlICAgIENvb2tpZSB2YWx1ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAgQm9keSB3aXRoIGNvb2tpZSdzIHBhcmFtc1xuICAgKlxuICAgKi9cbiAgc2V0KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgb3B0aW9ucz86IEFYQ29va2llT3B0aW9ucyk6IHZvaWQ7XG5cbiAgc2V0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGV4cGlyZXNPck9wdGlvbnM/OiBBWENvb2tpZU9wdGlvbnNbJ2V4cGlyZXMnXSB8IEFYQ29va2llT3B0aW9ucyxcbiAgICBwYXRoPzogQVhDb29raWVPcHRpb25zWydwYXRoJ10sXG4gICAgZG9tYWluPzogQVhDb29raWVPcHRpb25zWydkb21haW4nXSxcbiAgICBzZWN1cmU/OiBBWENvb2tpZU9wdGlvbnNbJ3NlY3VyZSddLFxuICAgIHNhbWVTaXRlPzogQVhTYW1lU2l0ZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGV4cGlyZXNPck9wdGlvbnMgPT09ICdudW1iZXInIHx8XG4gICAgICBleHBpcmVzT3JPcHRpb25zIGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICAgcGF0aCB8fFxuICAgICAgZG9tYWluIHx8XG4gICAgICBzZWN1cmUgfHxcbiAgICAgIHNhbWVTaXRlXG4gICAgKSB7XG4gICAgICBjb25zdCBvcHRpb25zQm9keSA9IHtcbiAgICAgICAgZXhwaXJlczogZXhwaXJlc09yT3B0aW9ucyBhcyBBWENvb2tpZU9wdGlvbnNbJ2V4cGlyZXMnXSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZG9tYWluLFxuICAgICAgICBzZWN1cmUsXG4gICAgICAgIHNhbWVTaXRlOiBzYW1lU2l0ZSA/IHNhbWVTaXRlIDogJ0xheCcsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnNldChuYW1lLCB2YWx1ZSwgb3B0aW9uc0JvZHkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb29raWVTdHJpbmc6IHN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgKyAnOyc7XG5cbiAgICBjb25zdCBvcHRpb25zID0gZXhwaXJlc09yT3B0aW9ucyA/IGV4cGlyZXNPck9wdGlvbnMgOiB7fTtcblxuICAgIGlmIChvcHRpb25zLmV4cGlyZXMpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBkYXRlRXhwaXJlczogRGF0ZSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgb3B0aW9ucy5leHBpcmVzICogMTAwMCAqIDYwICogNjAgKiAyNCk7XG5cbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBvcHRpb25zLmV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5wYXRoKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ3BhdGg9JyArIG9wdGlvbnMucGF0aCArICc7JztcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5kb21haW4pIHtcbiAgICAgIGNvb2tpZVN0cmluZyArPSAnZG9tYWluPScgKyBvcHRpb25zLmRvbWFpbiArICc7JztcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zZWN1cmUgPT09IGZhbHNlICYmIG9wdGlvbnMuc2FtZVNpdGUgPT09ICdOb25lJykge1xuICAgICAgb3B0aW9ucy5zZWN1cmUgPSB0cnVlO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgW25neC1jb29raWUtc2VydmljZV0gQ29va2llICR7bmFtZX0gd2FzIGZvcmNlZCB3aXRoIHNlY3VyZSBmbGFnIGJlY2F1c2Ugc2FtZVNpdGU9Tm9uZS5gICtcbiAgICAgICAgICBgTW9yZSBkZXRhaWxzIDogaHR0cHM6Ly9naXRodWIuY29tL3N0ZXZlcm1laXN0ZXIvbmd4LWNvb2tpZS1zZXJ2aWNlL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtNTk3NzIwMTMwYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNlY3VyZSkge1xuICAgICAgY29va2llU3RyaW5nICs9ICdzZWN1cmU7JztcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuc2FtZVNpdGUpIHtcbiAgICAgIG9wdGlvbnMuc2FtZVNpdGUgPSAnTGF4JztcbiAgICB9XG5cbiAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBvcHRpb25zLnNhbWVTaXRlICsgJzsnO1xuXG4gICAgdGhpcy5kb2N1bWVudC5jb29raWUgPSBjb29raWVTdHJpbmc7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGNvb2tpZSBieSBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lICAgQ29va2llIG5hbWVcbiAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgKiBAcGFyYW0gZG9tYWluIENvb2tpZSBkb21haW5cbiAgICogQHBhcmFtIHNlY3VyZSBDb29raWUgc2VjdXJlIGZsYWdcbiAgICogQHBhcmFtIHNhbWVTaXRlIENvb2tpZSBzYW1lU2l0ZSBmbGFnIC0gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL1NldC1Db29raWUvU2FtZVNpdGVcbiAgICpcbiAgICovXG4gIGRlbGV0ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcGF0aD86IEFYQ29va2llT3B0aW9uc1sncGF0aCddLFxuICAgIGRvbWFpbj86IEFYQ29va2llT3B0aW9uc1snZG9tYWluJ10sXG4gICAgc2VjdXJlPzogQVhDb29raWVPcHRpb25zWydzZWN1cmUnXSxcbiAgICBzYW1lU2l0ZTogQVhTYW1lU2l0ZSA9ICdMYXgnLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZSgnVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQnKTtcbiAgICB0aGlzLnNldChuYW1lLCAnJywge1xuICAgICAgZXhwaXJlczogZXhwaXJlc0RhdGUsXG4gICAgICBwYXRoLFxuICAgICAgZG9tYWluLFxuICAgICAgc2VjdXJlLFxuICAgICAgc2FtZVNpdGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFsbCBjb29raWVzXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoICAgQ29va2llIHBhdGhcbiAgICogQHBhcmFtIGRvbWFpbiBDb29raWUgZG9tYWluXG4gICAqIEBwYXJhbSBzZWN1cmUgSXMgdGhlIENvb2tpZSBzZWN1cmVcbiAgICogQHBhcmFtIHNhbWVTaXRlIElzIHRoZSBjb29raWUgc2FtZSBzaXRlXG4gICAqXG4gICAqL1xuICBkZWxldGVBbGwoXG4gICAgcGF0aD86IEFYQ29va2llT3B0aW9uc1sncGF0aCddLFxuICAgIGRvbWFpbj86IEFYQ29va2llT3B0aW9uc1snZG9tYWluJ10sXG4gICAgc2VjdXJlPzogQVhDb29raWVPcHRpb25zWydzZWN1cmUnXSxcbiAgICBzYW1lU2l0ZTogQVhTYW1lU2l0ZSA9ICdMYXgnLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb29raWVzID0gdGhpcy5nZXRBbGwoKTtcblxuICAgIGZvciAoY29uc3QgY29va2llTmFtZSBpbiBjb29raWVzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICBpZiAoY29va2llcy5oYXNPd25Qcm9wZXJ0eShjb29raWVOYW1lKSkge1xuICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","import { isBrowser } from '@acorex/core/platform';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AES, Utf8 } from 'crypto-es';\nimport * as i0 from \"@angular/core\";\nexport const AX_LOCALSTORAGE_SECRET_KEY = new InjectionToken('AX_LOCALSTORAGE_SECRET_KEY');\nexport class AXLocalStorageService {\n constructor() {\n this.secret_key = inject(AX_LOCALSTORAGE_SECRET_KEY);\n }\n /**\n * Reads a value from localStorage and parses JSON.\n *\n * @param key - Storage key\n * @returns T | null\n */\n get(key) {\n if (isBrowser()) {\n const value = localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n }\n else {\n return null;\n }\n }\n /**\n * Writes a JSON-serialized value to localStorage.\n *\n * @param key - Storage key\n * @param value - Value to persist\n */\n set(key, value) {\n if (isBrowser()) {\n return localStorage.setItem(key, JSON.stringify(value));\n }\n }\n clear() {\n if (isBrowser()) {\n return localStorage.clear();\n }\n }\n /**\n * Removes a single entry by key from localStorage.\n *\n * @param key - Storage key\n */\n removeItem(key) {\n if (isBrowser()) {\n return localStorage.removeItem(key);\n }\n }\n /**\n * Encrypts the JSON-serialized value using AES and stores it.\n * Requires providing AX_LOCALSTORAGE_SECRET_KEY.\n *\n * @param key - Storage key\n * @param value - Value to encrypt and store\n */\n setWithEncryption(key, value) {\n if (isBrowser()) {\n const encrypted = AES.encrypt(JSON.stringify(value), this.secret_key).toString();\n return localStorage.setItem(key, encrypted);\n }\n }\n /**\n * Reads the encrypted value, decrypts it using AES and parses JSON.\n * Requires providing AX_LOCALSTORAGE_SECRET_KEY.\n *\n * @param key - Storage key\n * @returns T | null\n */\n getWithEncription(key) {\n if (isBrowser()) {\n const encrypted = localStorage.getItem(key) || '';\n const decrypted = AES.decrypt(encrypted, this.secret_key).toString(Utf8);\n return encrypted ? JSON.parse(decrypted) : {};\n }\n else {\n return null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXLocalStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXLocalStorageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zdG9yYWdlL3NyYy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQTJCLElBQUksY0FBYyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFHbkgsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLGVBQVUsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQWlGekQ7SUEvRUM7Ozs7O09BS0c7SUFFSCxHQUFHLENBQWMsR0FBVztRQUMxQixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBRUgsR0FBRyxDQUFjLEdBQVcsRUFBRSxLQUFRO1FBQ3BDLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBRUgsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUVILGlCQUFpQixDQUFjLEdBQVcsRUFBRSxLQUFRO1FBQ2xELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFFSCxpQkFBaUIsQ0FBYyxHQUFXO1FBQ3hDLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxFQUFRLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOzhHQWpGVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBRVMsIFV0ZjggfSBmcm9tICdjcnlwdG8tZXMnO1xuaW1wb3J0IHsgQVhTdG9yYWdlIH0gZnJvbSAnLi9zdG9yYWdlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBWF9MT0NBTFNUT1JBR0VfU0VDUkVUX0tFWTogSW5qZWN0aW9uVG9rZW48c3RyaW5nPiA9IG5ldyBJbmplY3Rpb25Ub2tlbignQVhfTE9DQUxTVE9SQUdFX1NFQ1JFVF9LRVknKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTG9jYWxTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIEFYU3RvcmFnZSB7XG4gIHByaXZhdGUgc2VjcmV0X2tleSA9IGluamVjdChBWF9MT0NBTFNUT1JBR0VfU0VDUkVUX0tFWSk7XG5cbiAgLyoqXG4gICAqIFJlYWRzIGEgdmFsdWUgZnJvbSBsb2NhbFN0b3JhZ2UgYW5kIHBhcnNlcyBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gU3RvcmFnZSBrZXlcbiAgICogQHJldHVybnMgVCB8IG51bGxcbiAgICovXG5cbiAgZ2V0PFQgPSB1bmtub3duPihrZXk6IHN0cmluZyk6IFQge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgcmV0dXJuIHZhbHVlID8gSlNPTi5wYXJzZSh2YWx1ZSkgOiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGEgSlNPTi1zZXJpYWxpemVkIHZhbHVlIHRvIGxvY2FsU3RvcmFnZS5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFN0b3JhZ2Uga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHBlcnNpc3RcbiAgICovXG5cbiAgc2V0PFQgPSB1bmtub3duPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzaW5nbGUgZW50cnkgYnkga2V5IGZyb20gbG9jYWxTdG9yYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gU3RvcmFnZSBrZXlcbiAgICovXG5cbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuY3J5cHRzIHRoZSBKU09OLXNlcmlhbGl6ZWQgdmFsdWUgdXNpbmcgQUVTIGFuZCBzdG9yZXMgaXQuXG4gICAqIFJlcXVpcmVzIHByb3ZpZGluZyBBWF9MT0NBTFNUT1JBR0VfU0VDUkVUX0tFWS5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFN0b3JhZ2Uga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGVuY3J5cHQgYW5kIHN0b3JlXG4gICAqL1xuXG4gIHNldFdpdGhFbmNyeXB0aW9uPFQgPSB1bmtub3duPihrZXk6IHN0cmluZywgdmFsdWU6IFQpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IEFFUy5lbmNyeXB0KEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgdGhpcy5zZWNyZXRfa2V5KS50b1N0cmluZygpO1xuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgZW5jcnlwdGVkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIGVuY3J5cHRlZCB2YWx1ZSwgZGVjcnlwdHMgaXQgdXNpbmcgQUVTIGFuZCBwYXJzZXMgSlNPTi5cbiAgICogUmVxdWlyZXMgcHJvdmlkaW5nIEFYX0xPQ0FMU1RPUkFHRV9TRUNSRVRfS0VZLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gU3RvcmFnZSBrZXlcbiAgICogQHJldHVybnMgVCB8IG51bGxcbiAgICovXG5cbiAgZ2V0V2l0aEVuY3JpcHRpb248VCA9IHVua25vd24+KGtleTogc3RyaW5nKTogVCB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICBjb25zdCBlbmNyeXB0ZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpIHx8ICcnO1xuICAgICAgY29uc3QgZGVjcnlwdGVkID0gQUVTLmRlY3J5cHQoZW5jcnlwdGVkLCB0aGlzLnNlY3JldF9rZXkpLnRvU3RyaW5nKFV0ZjgpO1xuICAgICAgcmV0dXJuIGVuY3J5cHRlZCA/IEpTT04ucGFyc2UoZGVjcnlwdGVkKSA6ICh7fSBhcyBUKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=","import { isBrowser } from '@acorex/core/platform';\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXSessionStorageService {\n get(key) {\n if (isBrowser()) {\n const value = sessionStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n }\n else {\n return null;\n }\n }\n set(key, value) {\n if (isBrowser()) {\n return sessionStorage.setItem(key, JSON.stringify(value));\n }\n }\n clear() {\n if (isBrowser()) {\n return sessionStorage.clear();\n }\n }\n removeItem(key) {\n if (isBrowser()) {\n return sessionStorage.removeItem(key);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXSessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXSessionStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXSessionStorageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3N0b3JhZ2Uvc3JjL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLEdBQUcsQ0FBYyxHQUFXO1FBQzFCLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFjLEdBQVcsRUFBRSxLQUFRO1FBQ3BDLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOzhHQTFCVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFN0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgQVhTdG9yYWdlIHtcbiAgZ2V0PFQgPSB1bmtub3duPihrZXk6IHN0cmluZyk6IFQge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICByZXR1cm4gdmFsdWUgPyBKU09OLnBhcnNlKHZhbHVlKSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNldDxUID0gdW5rbm93bj4oa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIH1cbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3RvcmFnZS9zcmMvYWNvcmV4LWNvcmUtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-storage.mjs","sources":["../../../../packages/core/storage/src/cookie-storage.service.ts","../../../../packages/core/storage/src/local-storage.service.ts","../../../../packages/core/storage/src/session-storage.service.ts","../../../../packages/core/storage/src/acorex-core-storage.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { AXCookieOptions, AXSameSite } from './storage.interface';\n\n@Injectable()\nexport class AXCookieStorageService {\n private readonly documentIsAccessible: boolean;\n\n private document = inject(DOCUMENT);\n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n */\n private static getCookieRegExp(name: string): RegExp {\n const escapedName: string = name.replace(/([[\\]{}()|=;+?,.*^$])/gi, '\\\\$1');\n\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n */\n private static safeDecodeURIComponent(encodedURIComponent: string): string {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n */\n check(name: string): boolean {\n if (!this.documentIsAccessible) {\n return false;\n }\n name = encodeURIComponent(name);\n const regExp: RegExp = AXCookieStorageService.getCookieRegExp(name);\n return regExp.test(this.document.cookie);\n }\n\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n */\n get(name: string): string {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n\n const regExp: RegExp = AXCookieStorageService.getCookieRegExp(name);\n const result: RegExpExecArray = regExp.exec(this.document.cookie);\n\n return result[1] ? AXCookieStorageService.safeDecodeURIComponent(result[1]) : '';\n } else {\n return '';\n }\n }\n\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n */\n getAll(): { [key: string]: string } {\n if (!this.documentIsAccessible) {\n return {};\n }\n\n const cookies: { [key: string]: string } = {};\n const document: any = this.document;\n\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[AXCookieStorageService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] =\n AXCookieStorageService.safeDecodeURIComponent(cookieValue);\n });\n }\n\n return cookies;\n }\n\n /**\n * Set cookie based on provided information\n *\n * @param name Cookie name\n * @param value Cookie value\n * @param expires Number of days until the cookies expires or an actual `Date`\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Secure flag\n * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\n *\n */\n set(\n name: string,\n value: string,\n expires?: AXCookieOptions['expires'],\n path?: AXCookieOptions['path'],\n domain?: AXCookieOptions['domain'],\n secure?: AXCookieOptions['secure'],\n sameSite?: AXSameSite,\n ): void;\n\n /**\n * Set cookie based on provided information\n *\n * Cookie's parameters:\n * <pre>\n * expires Number of days until the cookies expires or an actual `Date`\n * path Cookie path\n * domain Cookie domain\n * secure Secure flag\n * sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\n * </pre>\n *\n * @param name Cookie name\n * @param value Cookie value\n * @param options Body with cookie's params\n *\n */\n set(name: string, value: string, options?: AXCookieOptions): void;\n\n set(\n name: string,\n value: string,\n expiresOrOptions?: AXCookieOptions['expires'] | AXCookieOptions,\n path?: AXCookieOptions['path'],\n domain?: AXCookieOptions['domain'],\n secure?: AXCookieOptions['secure'],\n sameSite?: AXSameSite,\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n if (\n typeof expiresOrOptions === 'number' ||\n expiresOrOptions instanceof Date ||\n path ||\n domain ||\n secure ||\n sameSite\n ) {\n const optionsBody = {\n expires: expiresOrOptions as AXCookieOptions['expires'],\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n };\n\n this.set(name, value, optionsBody);\n return;\n }\n\n let cookieString: string = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n\n const options = expiresOrOptions ? expiresOrOptions : {};\n\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires: Date = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(\n `[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`,\n );\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n\n cookieString += 'sameSite=' + options.sameSite + ';';\n\n this.document.cookie = cookieString;\n }\n\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n */\n delete(\n name: string,\n path?: AXCookieOptions['path'],\n domain?: AXCookieOptions['domain'],\n secure?: AXCookieOptions['secure'],\n sameSite: AXSameSite = 'Lax',\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', {\n expires: expiresDate,\n path,\n domain,\n secure,\n sameSite,\n });\n }\n\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n */\n deleteAll(\n path?: AXCookieOptions['path'],\n domain?: AXCookieOptions['domain'],\n secure?: AXCookieOptions['secure'],\n sameSite: AXSameSite = 'Lax',\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n const cookies = this.getAll();\n\n for (const cookieName in cookies) {\n // eslint-disable-next-line no-prototype-builtins\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AES, Utf8 } from 'crypto-es';\nimport { AXStorage } from './storage.interface';\n\nexport const AX_LOCALSTORAGE_SECRET_KEY: InjectionToken<string> = new InjectionToken('AX_LOCALSTORAGE_SECRET_KEY');\n\n@Injectable()\nexport class AXLocalStorageService implements AXStorage {\n private secret_key = inject(AX_LOCALSTORAGE_SECRET_KEY);\n\n /**\n * Reads a value from localStorage and parses JSON.\n *\n * @param key - Storage key\n * @returns T | null\n */\n\n get<T = unknown>(key: string): T {\n if (isBrowser()) {\n const value = localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } else {\n return null;\n }\n }\n\n /**\n * Writes a JSON-serialized value to localStorage.\n *\n * @param key - Storage key\n * @param value - Value to persist\n */\n\n set<T = unknown>(key: string, value: T): void {\n if (isBrowser()) {\n return localStorage.setItem(key, JSON.stringify(value));\n }\n }\n\n clear(): void {\n if (isBrowser()) {\n return localStorage.clear();\n }\n }\n\n /**\n * Removes a single entry by key from localStorage.\n *\n * @param key - Storage key\n */\n\n removeItem(key: string) {\n if (isBrowser()) {\n return localStorage.removeItem(key);\n }\n }\n\n /**\n * Encrypts the JSON-serialized value using AES and stores it.\n * Requires providing AX_LOCALSTORAGE_SECRET_KEY.\n *\n * @param key - Storage key\n * @param value - Value to encrypt and store\n */\n\n setWithEncryption<T = unknown>(key: string, value: T) {\n if (isBrowser()) {\n const encrypted = AES.encrypt(JSON.stringify(value), this.secret_key).toString();\n return localStorage.setItem(key, encrypted);\n }\n }\n\n /**\n * Reads the encrypted value, decrypts it using AES and parses JSON.\n * Requires providing AX_LOCALSTORAGE_SECRET_KEY.\n *\n * @param key - Storage key\n * @returns T | null\n */\n\n getWithEncription<T = unknown>(key: string): T {\n if (isBrowser()) {\n const encrypted = localStorage.getItem(key) || '';\n const decrypted = AES.decrypt(encrypted, this.secret_key).toString(Utf8);\n return encrypted ? JSON.parse(decrypted) : ({} as T);\n } else {\n return null;\n }\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { Injectable } from '@angular/core';\nimport { AXStorage } from './storage.interface';\n\n@Injectable()\nexport class AXSessionStorageService implements AXStorage {\n get<T = unknown>(key: string): T {\n if (isBrowser()) {\n const value = sessionStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } else {\n return null;\n }\n }\n\n set<T = unknown>(key: string, value: T): void {\n if (isBrowser()) {\n return sessionStorage.setItem(key, JSON.stringify(value));\n }\n }\n\n clear(): void {\n if (isBrowser()) {\n return sessionStorage.clear();\n }\n }\n\n removeItem(key: string) {\n if (isBrowser()) {\n return sessionStorage.removeItem(key);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -157,10 +157,10 @@ class AXTranslationLoaderService {
|
|
|
157
157
|
getFallbackScopes(scope) {
|
|
158
158
|
return this.config.fallbacks?.scopes?.[scope] ?? [];
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
161
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
161
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationLoaderService, providedIn: 'root' }); }
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationLoaderService, decorators: [{
|
|
164
164
|
type: Injectable,
|
|
165
165
|
args: [{ providedIn: 'root' }]
|
|
166
166
|
}] });
|
|
@@ -376,10 +376,10 @@ class AXTranslationService {
|
|
|
376
376
|
}
|
|
377
377
|
return result;
|
|
378
378
|
}
|
|
379
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
380
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
379
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
380
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationService, providedIn: 'root' }); }
|
|
381
381
|
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationService, decorators: [{
|
|
383
383
|
type: Injectable,
|
|
384
384
|
args: [{
|
|
385
385
|
providedIn: 'root',
|
|
@@ -413,10 +413,10 @@ class AXTranslatorDirective {
|
|
|
413
413
|
this.vc.clear();
|
|
414
414
|
this.vc.createEmbeddedView(this.templateRef, { $implicit: t });
|
|
415
415
|
}
|
|
416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
417
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
417
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: AXTranslatorDirective, isStandalone: true, selector: "[translate]", ngImport: i0 }); }
|
|
418
418
|
}
|
|
419
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslatorDirective, decorators: [{
|
|
420
420
|
type: Directive,
|
|
421
421
|
args: [{ selector: '[translate]' }]
|
|
422
422
|
}] });
|
|
@@ -431,10 +431,10 @@ class AXTranslatorPipe {
|
|
|
431
431
|
}
|
|
432
432
|
return this.service.translate$(key, options);
|
|
433
433
|
}
|
|
434
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
435
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
434
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
435
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: AXTranslatorPipe, isStandalone: true, name: "translate" }); }
|
|
436
436
|
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
|
438
438
|
type: Pipe,
|
|
439
439
|
args: [{
|
|
440
440
|
name: 'translate',
|
|
@@ -448,16 +448,16 @@ function initializeApp(translatorService) {
|
|
|
448
448
|
};
|
|
449
449
|
}
|
|
450
450
|
class AXTranslationModule {
|
|
451
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
452
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
453
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
451
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
452
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationModule, imports: [AXTranslatorPipe, AXTranslatorDirective], exports: [AXTranslatorPipe, AXTranslatorDirective] }); }
|
|
453
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationModule, providers: [
|
|
454
454
|
provideAppInitializer(() => {
|
|
455
455
|
const initializerFn = initializeApp(inject(AXTranslationLoaderService));
|
|
456
456
|
return initializerFn();
|
|
457
457
|
}),
|
|
458
458
|
] }); }
|
|
459
459
|
}
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXTranslationModule, decorators: [{
|
|
461
461
|
type: NgModule,
|
|
462
462
|
args: [{
|
|
463
463
|
imports: [AXTranslatorPipe, AXTranslatorDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-translation.mjs","sources":["../tmp-esm2022/translation/lib/translation.config.js","../tmp-esm2022/translation/lib/translation.loader.js","../tmp-esm2022/translation/lib/translation-loader.service.js","../tmp-esm2022/translation/lib/translation.parser.js","../tmp-esm2022/translation/lib/translation.resolver.js","../tmp-esm2022/translation/lib/translation.service.js","../tmp-esm2022/translation/lib/translation-scope.resolver.js","../tmp-esm2022/translation/lib/translator.directive.js","../tmp-esm2022/translation/lib/translator.pipe.js","../tmp-esm2022/translation/lib/translation.module.js","../tmp-esm2022/translation/acorex-core-translation.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const AX_TRANSLATION_CONFIG = new InjectionToken('AX_TRANSLATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXTranslationDefaultConfig;\n },\n});\nexport const AXTranslationDefaultConfig = {\n defaults: {\n lang: 'en-US',\n scope: 'acorex',\n },\n preload: {\n langs: ['en-US'],\n scopes: ['acorex'],\n },\n resolver: {\n scopeKey: 'scope',\n },\n};\nexport function translationConfig(config = {}) {\n const result = {\n ...AXTranslationDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBeUIvQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsdUJBQXVCLEVBQUU7SUFDcEcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF3QjtJQUM3RCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxRQUFRO0tBQ2hCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNuQjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxPQUFPO0tBQ2xCO0NBQ0YsQ0FBQztBQUlGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUFxQyxFQUFFO0lBQ3ZFLE1BQU0sTUFBTSxHQUFHO1FBQ2IsR0FBRywwQkFBMEI7UUFDN0IsR0FBRyxNQUFNO0tBQ1YsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGVMYW5nLCBBWFRyYW5zbGF0ZVNjb3BlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUcmFuc2xhdGlvbkNvbmZpZyB7XG4gIGRlZmF1bHRzOiB7XG4gICAgbGFuZzogQVhUcmFuc2xhdGVMYW5nO1xuICAgIHNjb3BlOiBBWFRyYW5zbGF0ZVNjb3BlO1xuICB9O1xuICBwcmVsb2FkPzoge1xuICAgIGxhbmdzOiBBWFRyYW5zbGF0ZUxhbmdbXTtcbiAgICBzY29wZXM6IEFYVHJhbnNsYXRlU2NvcGVbXTtcbiAgfTtcbiAgZmFsbGJhY2tzPzoge1xuICAgIGxhbmdzPzogUmVjb3JkPEFYVHJhbnNsYXRlTGFuZywgQVhUcmFuc2xhdGVMYW5nW10+O1xuICAgIHNjb3Blcz86IFJlY29yZDxBWFRyYW5zbGF0ZVNjb3BlLCBBWFRyYW5zbGF0ZVNjb3BlW10+O1xuICB9O1xuICBhdmFpbGFibGU/OiB7XG4gICAgbGFuZ3M/OiBBWFRyYW5zbGF0ZUxhbmdbXTtcbiAgICBzY29wZXM/OiBBWFRyYW5zbGF0ZVNjb3BlW107XG4gIH07XG4gIHJlc29sdmVyPzoge1xuICAgIHNjb3BlS2V5OiBzdHJpbmc7IC8vIHVzZWQgdG8gZXh0cmFjdCBzY29wZSBmcm9tIHBhcmFtcywgZS5nLiBgc2NvcGU6ICdjb21tb24nYFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQVhfVFJBTlNMQVRJT05fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYVHJhbnNsYXRpb25Db25maWc+KCdBWF9UUkFOU0xBVElPTl9DT05GSUcnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIHJldHVybiBBWFRyYW5zbGF0aW9uRGVmYXVsdENvbmZpZztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQVhUcmFuc2xhdGlvbkRlZmF1bHRDb25maWc6IEFYVHJhbnNsYXRpb25Db25maWcgPSB7XG4gIGRlZmF1bHRzOiB7XG4gICAgbGFuZzogJ2VuLVVTJyxcbiAgICBzY29wZTogJ2Fjb3JleCcsXG4gIH0sXG4gIHByZWxvYWQ6IHtcbiAgICBsYW5nczogWydlbi1VUyddLFxuICAgIHNjb3BlczogWydhY29yZXgnXSxcbiAgfSxcbiAgcmVzb2x2ZXI6IHtcbiAgICBzY29wZUtleTogJ3Njb3BlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCB0eXBlIEFYUGFydGlhbFRyYW5zbGF0aW9uQ29uZmlnID0gUGFydGlhbDxBWFRyYW5zbGF0aW9uQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0aW9uQ29uZmlnKGNvbmZpZzogQVhQYXJ0aWFsVHJhbnNsYXRpb25Db25maWcgPSB7fSk6IEFYVHJhbnNsYXRpb25Db25maWcge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgLi4uQVhUcmFuc2xhdGlvbkRlZmF1bHRDb25maWcsXG4gICAgLi4uY29uZmlnLFxuICB9O1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19","import { InjectionToken } from '@angular/core';\nimport { of } from 'rxjs';\nexport class AXTranslationLoaderDefault {\n load(options) {\n return of({});\n }\n}\nexport const AX_TRANSLATION_LOADER = new InjectionToken('AX_TRANSLATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXTranslationLoaderDefault();\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFZdEMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxJQUFJLENBQUMsT0FBbUM7UUFDdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixFQUFFO0lBQ3BHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLElBQUksMEJBQTBCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0ZUxhbmcsIEFYVHJhbnNsYXRlU2NvcGUsIEFYVHJhbnNsYXRpb24gfSBmcm9tICcuL3RyYW5zbGF0aW9uLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFRyYW5zbGF0aW9uTG9hZGVyT3B0aW9ucyB7XG4gIGxhbmc6IEFYVHJhbnNsYXRlTGFuZztcbiAgc2NvcGU/OiBBWFRyYW5zbGF0ZVNjb3BlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVHJhbnNsYXRpb25Mb2FkZXIge1xuICBsb2FkKG9wdGlvbnM6IEFYVHJhbnNsYXRpb25Mb2FkZXJPcHRpb25zKTogT2JzZXJ2YWJsZTxBWFRyYW5zbGF0aW9uPjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRpb25Mb2FkZXJEZWZhdWx0IGltcGxlbWVudHMgQVhUcmFuc2xhdGlvbkxvYWRlciB7XG4gIGxvYWQob3B0aW9uczogQVhUcmFuc2xhdGlvbkxvYWRlck9wdGlvbnMpOiBPYnNlcnZhYmxlPEFYVHJhbnNsYXRpb24+IHtcbiAgICByZXR1cm4gb2Yoe30pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWF9UUkFOU0xBVElPTl9MT0FERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhUcmFuc2xhdGlvbkxvYWRlcj4oJ0FYX1RSQU5TTEFUSU9OX0xPQURFUicsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBBWFRyYW5zbGF0aW9uTG9hZGVyRGVmYXVsdCgpO1xuICB9LFxufSk7XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { firstValueFrom, of, shareReplay, tap } from 'rxjs';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { AX_TRANSLATION_LOADER } from './translation.loader';\nimport { AXEventService, AXSystemEvents } from '@acorex/core/events';\nimport * as i0 from \"@angular/core\";\nexport class AXTranslationLoaderService {\n constructor() {\n this.loader = inject(AX_TRANSLATION_LOADER);\n this.config = inject(AX_TRANSLATION_CONFIG);\n this.eventService = inject(AXEventService);\n this.cache = new Map();\n this.inflight = new Map();\n }\n load(lang, scope) {\n const key = `${lang}:${scope}`;\n // 1. Check cache first\n if (this.cache.has(key)) {\n return of(this.cache.get(key));\n }\n // 2. Check if it's already in-flight\n if (this.inflight.has(key)) {\n return this.inflight.get(key);\n }\n // 3. Not in cache, not in-flight: Make the request\n const newObs = this.loader.load({ lang, scope }).pipe(tap({\n next: (data) => {\n this.cache.set(key, data);\n // No need to delete from inflight here, finalize will handle it\n // or delete it only after caching. If you delete here, and shareReplay\n // source completes, subsequent subscribers might re-trigger if not careful.\n // It's better to remove from inflight in finalize or after shareReplay has replayed.\n // For simplicity and common patterns, removing after caching within tap (before shareReplay)\n // can work if shareReplay handles the source completion correctly.\n // A safer bet is to remove it in finalize *after* shareReplay.\n // Emit event to notify other components that the language has been loaded\n this.eventService.emitEvent({\n type: AXSystemEvents.AXLanguageLoaded,\n payload: data,\n });\n },\n error: (err) => {\n console.error(`Error loading ${key}:`, err);\n // Remove from inflight on error so subsequent calls can retry\n this.inflight.delete(key);\n },\n // finalize is tricky with shareReplay if you want to keep the replayed value\n // but still clear inflight. For this pattern, deleting on next/error\n // *before* shareReplay often means that shareReplay will re-trigger the source\n // if the inflight observable is requested again after being deleted.\n // The current structure of deleting in `tap` and then `shareReplay`\n // might need `this.inflight.delete(key)` to be moved after `shareReplay` effect.\n // Let's try a common pattern:\n }), shareReplay(1), // Replay the last emitted value for subsequent subscribers\n tap({\n // This tap runs *after* shareReplay has done its work for the first subscriber\n // and for subsequent subscribers that get the replayed value.\n next: () => {\n // Once data is successfully loaded and cached (by the first tap),\n // and shareReplay ensures it's available, we can remove from inflight.\n // This means subsequent calls for the same key during the \"inflight\" period\n // get the shared observable, and after it resolves and is cached,\n // inflight is cleared.\n this.inflight.delete(key);\n },\n // Error is handled by the first tap, or catchError if you want to provide a fallback\n }));\n this.inflight.set(key, newObs); // Store the observable that includes caching and cleanup logic\n return newObs;\n }\n peek(lang, scope, key) {\n const cacheKey = `${lang}:${scope}`;\n const data = this.cache.get(cacheKey);\n return get(data, key, null);\n }\n async preload(options) {\n const langsToLoad = [...new Set(options?.langs ?? this.config.preload?.langs ?? [this.config.defaults.lang])];\n const scopesToLoad = [...new Set(options?.scopes ?? this.config.preload?.scopes ?? [this.config.defaults.scope])];\n const loadPromises = [];\n langsToLoad.forEach((lang) => {\n scopesToLoad.forEach((scope) => {\n const loadPromise = firstValueFrom(this.load(lang, scope)) // This should now always get a valid Observable\n .then((value) => ({ lang, scope, status: 'fulfilled', value }))\n .catch((reason) => ({ lang, scope, status: 'rejected', reason }));\n loadPromises.push(loadPromise);\n });\n });\n const results = await Promise.all(loadPromises);\n let allSucceeded = true;\n results.forEach((result) => {\n if (result.status === 'rejected') {\n allSucceeded = false;\n console.error(`Failed to preload translations for lang: ${result.lang}, scope: ${result.scope}. Reason:`, result.reason);\n }\n else {\n // console.log(`Successfully preloaded lang: ${result.lang}, scope: ${result.scope}`); // Optionally uncomment for success logs\n }\n // else {\n // console.log(`Successfully preloaded lang: ${result.lang}, scope: ${result.scope}`); // Optionally uncomment for success logs\n // }\n });\n if (!allSucceeded) {\n console.error('One or more translation preloads failed. See console for details.');\n // throw new Error(\"One or more translation preloads failed. See console for details.\");\n }\n // The second results.forEach loop in your original code was redundant, I've removed it.\n // If it was for a different purpose, you can add it back.\n }\n clear() {\n this.cache.clear();\n this.inflight.clear();\n }\n getFallbackLangs(lang) {\n return this.config.fallbacks?.langs?.[lang] ?? [];\n }\n getFallbackScopes(scope) {\n return this.config.fallbacks?.scopes?.[scope] ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationLoaderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationLoaderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3RyYW5zbGF0aW9uL3NyYy9saWIvdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQWMsY0FBYyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR3JFLE1BQU0sT0FBTywwQkFBMEI7SUFEdkM7UUFFVSxXQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRDLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUN6QyxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FpSWpFO0lBL0hRLElBQUksQ0FBQyxJQUFxQixFQUFFLEtBQXVCO1FBQ3hELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRS9CLHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxF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QVcsRUFDMUYsTUFBTSxDQUFDLE1BQU0sQ0FDZCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLCtIQUErSDtZQUNqSSxDQUFDO1lBQ0QsU0FBUztZQUNULCtIQUErSDtZQUMvSCxJQUFJO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1lBQ25GLHdGQUF3RjtRQUMxRixDQUFDO1FBQ0Qsd0ZBQXdGO1FBQ3hGLDBEQUEwRDtJQUM1RCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBcUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQXVCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7OEdBdElVLDBCQUEwQjtrSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7MkZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSwgb2YsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYX1RSQU5TTEFUSU9OX0NPTkZJRyB9IGZyb20gJy4vdHJhbnNsYXRpb24uY29uZmlnJztcbmltcG9ydCB7IEFYX1RSQU5TTEFUSU9OX0xPQURFUiB9IGZyb20gJy4vdHJhbnNsYXRpb24ubG9hZGVyJztcbmltcG9ydCB7IEFYVHJhbnNsYXRlTGFuZywgQVhUcmFuc2xhdGVTY29wZSwgQVhUcmFuc2xhdGlvbiB9IGZyb20gJy4vdHJhbnNsYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhFdmVudFNlcnZpY2UsIEFYU3lzdGVtRXZlbnRzIH0gZnJvbSAnQGFjb3JleC9jb3JlL2V2ZW50cyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvbkxvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIGxvYWRlciA9IGluamVjdChBWF9UUkFOU0xBVElPTl9MT0FERVIpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWF9UUkFOU0xBVElPTl9DT05GSUcpO1xuICBwcml2YXRlIGV2ZW50U2VydmljZSA9IGluamVjdChBWEV2ZW50U2VydmljZSk7XG5cbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBBWFRyYW5zbGF0aW9uPigpO1xuICBwcml2YXRlIGluZmxpZ2h0ID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8QVhUcmFuc2xhdGlvbj4+KCk7XG5cbiAgcHVibGljIGxvYWQobGFuZzogQVhUcmFuc2xhdGVMYW5nLCBzY29wZTogQVhUcmFuc2xhdGVTY29wZSk6IE9ic2VydmFibGU8QVhUcmFuc2xhdGlvbj4ge1xuICAgIGNvbnN0IGtleSA9IGAke2xhbmd9OiR7c2NvcGV9YDtcblxuICAgIC8vIDEuIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlLmdldChrZXkpISk7XG4gICAgfVxuXG4gICAgLy8gMi4gQ2hlY2sgaWYgaXQncyBhbHJlYWR5IGluLWZsaWdodFxuICAgIGlmICh0aGlzLmluZmxpZ2h0LmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbmZsaWdodC5nZXQoa2V5KSE7XG4gICAgfVxuXG4gICAgLy8gMy4gTm90IGluIGNhY2hlLCBub3QgaW4tZmxpZ2h0OiBNYWtlIHRoZSByZXF1ZXN0XG4gICAgY29uc3QgbmV3T2JzID0gdGhpcy5sb2FkZXIubG9hZCh7IGxhbmcsIHNjb3BlIH0pLnBpcGUoXG4gICAgICB0YXAoe1xuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgZGF0YSk7XG4gICAgICAgICAgLy8gTm8gbmVlZCB0byBkZWxldGUgZnJvbSBpbmZsaWdodCBoZXJlLCBmaW5hbGl6ZSB3aWxsIGhhbmRsZSBpdFxuICAgICAgICAgIC8vIG9yIGRlbGV0ZSBpdCBvbmx5IGFmdGVyIGNhY2hpbmcuIElmIHlvdSBkZWxldGUgaGVyZSwgYW5kIHNoYXJlUmVwbGF5XG4gICAgICAgICAgLy8gc291cmNlIGNvbXBsZXRlcywgc3Vic2VxdWVudCBzdWJzY3JpYmVycyBtaWdodCByZS10cmlnZ2VyIGlmIG5vdCBjYXJlZnVsLlxuICAgICAgICAgIC8vIEl0J3MgYmV0dGVyIHRvIHJlbW92ZSBmcm9tIGluZmxpZ2h0IGluIGZpbmFsaXplIG9yIGFmdGVyIHNoYXJlUmVwbGF5IGhhcyByZXBsYXllZC5cbiAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBhbmQgY29tbW9uIHBhdHRlcm5zLCByZW1vdmluZyBhZnRlciBjYWNoaW5nIHdpdGhpbiB0YXAgKGJlZm9yZSBzaGFyZVJlcGxheSlcbiAgICAgICAgICAvLyBjYW4gd29yayBpZiBzaGFyZVJlcGxheSBoYW5kbGVzIHRoZSBzb3VyY2UgY29tcGxldGlvbiBjb3JyZWN0bHkuXG4gICAgICAgICAgLy8gQSBzYWZlciBiZXQgaXMgdG8gcmVtb3ZlIGl0IGluIGZpbmFsaXplICphZnRlciogc2hhcmVSZXBsYXkuXG5cbiAgICAgICAgICAvLyBFbWl0IGV2ZW50IHRvIG5vdGlmeSBvdGhlciBjb21wb25lbnRzIHRoYXQgdGhlIGxhbmd1YWdlIGhhcyBiZWVuIGxvYWRlZFxuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVtaXRFdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBBWFN5c3RlbUV2ZW50cy5BWExhbmd1YWdlTG9hZGVkLFxuICAgICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nICR7a2V5fTpgLCBlcnIpO1xuICAgICAgICAgIC8vIFJlbW92ZSBmcm9tIGluZmxpZ2h0IG9uIGVycm9yIHNvIHN1YnNlcXVlbnQgY2FsbHMgY2FuIHJldHJ5XG4gICAgICAgICAgdGhpcy5pbmZsaWdodC5kZWxldGUoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gZmluYWxpemUgaXMgdHJpY2t5IHdpdGggc2hhcmVSZXBsYXkgaWYgeW91IHdhbnQgdG8ga2VlcCB0aGUgcmVwbGF5ZWQgdmFsdWVcbiAgICAgICAgLy8gYnV0IHN0aWxsIGNsZWFyIGluZmxpZ2h0LiBGb3IgdGhpcyBwYXR0ZXJuLCBkZWxldGluZyBvbiBuZXh0L2Vycm9yXG4gICAgICAgIC8vICpiZWZvcmUqIHNoYXJlUmVwbGF5IG9mdGVuIG1lYW5zIHRoYXQgc2hhcmVSZXBsYXkgd2lsbCByZS10cmlnZ2VyIHRoZSBzb3VyY2VcbiAgICAgICAgLy8gaWYgdGhlIGluZmxpZ2h0IG9ic2VydmFibGUgaXMgcmVxdWVzdGVkIGFnYWluIGFmdGVyIGJlaW5nIGRlbGV0ZWQuXG4gICAgICAgIC8vIFRoZSBjdXJyZW50IHN0cnVjdHVyZSBvZiBkZWxldGluZyBpbiBgdGFwYCBhbmQgdGhlbiBgc2hhcmVSZXBsYXlgXG4gICAgICAgIC8vIG1pZ2h0IG5lZWQgYHRoaXMuaW5mbGlnaHQuZGVsZXRlKGtleSlgIHRvIGJlIG1vdmVkIGFmdGVyIGBzaGFyZVJlcGxheWAgZWZmZWN0LlxuICAgICAgICAvLyBMZXQncyB0cnkgYSBjb21tb24gcGF0dGVybjpcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSksIC8vIFJlcGxheSB0aGUgbGFzdCBlbWl0dGVkIHZhbHVlIGZvciBzdWJzZXF1ZW50IHN1YnNjcmliZXJzXG4gICAgICB0YXAoe1xuICAgICAgICAvLyBUaGlzIHRhcCBydW5zICphZnRlciogc2hhcmVSZXBsYXkgaGFzIGRvbmUgaXRzIHdvcmsgZm9yIHRoZSBmaXJzdCBzdWJzY3JpYmVyXG4gICAgICAgIC8vIGFuZCBmb3Igc3Vic2VxdWVudCBzdWJzY3JpYmVycyB0aGF0IGdldCB0aGUgcmVwbGF5ZWQgdmFsdWUuXG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAvLyBPbmNlIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhbmQgY2FjaGVkIChieSB0aGUgZmlyc3QgdGFwKSxcbiAgICAgICAgICAvLyBhbmQgc2hhcmVSZXBsYXkgZW5zdXJlcyBpdCdzIGF2YWlsYWJsZSwgd2UgY2FuIHJlbW92ZSBmcm9tIGluZmxpZ2h0LlxuICAgICAgICAgIC8vIFRoaXMgbWVhbnMgc3Vic2VxdWVudCBjYWxscyBmb3IgdGhlIHNhbWUga2V5IGR1cmluZyB0aGUgXCJpbmZsaWdodFwiIHBlcmlvZFxuICAgICAgICAgIC8vIGdldCB0aGUgc2hhcmVkIG9ic2VydmFibGUsIGFuZCBhZnRlciBpdCByZXNvbHZlcyBhbmQgaXMgY2FjaGVkLFxuICAgICAgICAgIC8vIGluZmxpZ2h0IGlzIGNsZWFyZWQuXG4gICAgICAgICAgdGhpcy5pbmZsaWdodC5kZWxldGUoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gRXJyb3IgaXMgaGFuZGxlZCBieSB0aGUgZmlyc3QgdGFwLCBvciBjYXRjaEVycm9yIGlmIHlvdSB3YW50IHRvIHByb3ZpZGUgYSBmYWxsYmFja1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuaW5mbGlnaHQuc2V0KGtleSwgbmV3T2JzKTsgLy8gU3RvcmUgdGhlIG9ic2VydmFibGUgdGhhdCBpbmNsdWRlcyBjYWNoaW5nIGFuZCBjbGVhbnVwIGxvZ2ljXG4gICAgcmV0dXJuIG5ld09icztcbiAgfVxuXG4gIHB1YmxpYyBwZWVrKGxhbmc6IEFYVHJhbnNsYXRlTGFuZywgc2NvcGU6IEFYVHJhbnNsYXRlU2NvcGUsIGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBgJHtsYW5nfToke3Njb3BlfWA7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICByZXR1cm4gZ2V0KGRhdGEsIGtleSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlbG9hZChvcHRpb25zPzogeyBsYW5ncz86IEFYVHJhbnNsYXRlTGFuZ1tdOyBzY29wZXM/OiBBWFRyYW5zbGF0ZVNjb3BlW10gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxhbmdzVG9Mb2FkID0gWy4uLm5ldyBTZXQob3B0aW9ucz8ubGFuZ3MgPz8gdGhpcy5jb25maWcucHJlbG9hZD8ubGFuZ3MgPz8gW3RoaXMuY29uZmlnLmRlZmF1bHRzLmxhbmddKV07XG4gICAgY29uc3Qgc2NvcGVzVG9Mb2FkID0gWy4uLm5ldyBTZXQob3B0aW9ucz8uc2NvcGVzID8/IHRoaXMuY29uZmlnLnByZWxvYWQ/LnNjb3BlcyA/PyBbdGhpcy5jb25maWcuZGVmYXVsdHMuc2NvcGVdKV07XG5cbiAgICBjb25zdCBsb2FkUHJvbWlzZXM6IFByb21pc2U8XG4gICAgICB8IHsgbGFuZzogQVhUcmFuc2xhdGVMYW5nOyBzY29wZTogQVhUcmFuc2xhdGVTY29wZTsgc3RhdHVzOiAnZnVsZmlsbGVkJzsgdmFsdWU6IEFYVHJhbnNsYXRpb24gfSAvLyBDaGFuZ2VkIGFueSB0byBBWFRyYW5zbGF0aW9uXG4gICAgICB8IHsgbGFuZzogQVhUcmFuc2xhdGVMYW5nOyBzY29wZTogQVhUcmFuc2xhdGVTY29wZTsgc3RhdHVzOiAncmVqZWN0ZWQnOyByZWFzb246IGFueSB9XG4gICAgPltdID0gW107XG5cbiAgICBsYW5nc1RvTG9hZC5mb3JFYWNoKChsYW5nKSA9PiB7XG4gICAgICBzY29wZXNUb0xvYWQuZm9yRWFjaCgoc2NvcGUpID0+IHtcbiAgICAgICAgY29uc3QgbG9hZFByb21pc2UgPSBmaXJzdFZhbHVlRnJvbSh0aGlzLmxvYWQobGFuZywgc2NvcGUpKSAvLyBUaGlzIHNob3VsZCBub3cgYWx3YXlzIGdldCBhIHZhbGlkIE9ic2VydmFibGVcbiAgICAgICAgICAudGhlbigodmFsdWUpID0+ICh7IGxhbmcsIHNjb3BlLCBzdGF0dXM6ICdmdWxmaWxsZWQnIGFzIGNvbnN0LCB2YWx1ZSB9KSlcbiAgICAgICAgICAuY2F0Y2goKHJlYXNvbikgPT4gKHsgbGFuZywgc2NvcGUsIHN0YXR1czogJ3JlamVjdGVkJyBhcyBjb25zdCwgcmVhc29uIH0pKTtcbiAgICAgICAgbG9hZFByb21pc2VzLnB1c2gobG9hZFByb21pc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwobG9hZFByb21pc2VzKTtcblxuICAgIGxldCBhbGxTdWNjZWVkZWQgPSB0cnVlO1xuICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBhbGxTdWNjZWVkZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIHByZWxvYWQgdHJhbnNsYXRpb25zIGZvciBsYW5nOiAke3Jlc3VsdC5sYW5nfSwgc2NvcGU6ICR7cmVzdWx0LnNjb3BlfS4gUmVhc29uOmAsXG4gICAgICAgICAgcmVzdWx0LnJlYXNvbixcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBTdWNjZXNzZnVsbHkgcHJlbG9hZGVkIGxhbmc6ICR7cmVzdWx0Lmxhbmd9LCBzY29wZTogJHtyZXN1bHQuc2NvcGV9YCk7IC8vIE9wdGlvbmFsbHkgdW5jb21tZW50IGZvciBzdWNjZXNzIGxvZ3NcbiAgICAgIH1cbiAgICAgIC8vIGVsc2Uge1xuICAgICAgLy8gY29uc29sZS5sb2coYFN1Y2Nlc3NmdWxseSBwcmVsb2FkZWQgbGFuZzogJHtyZXN1bHQubGFuZ30sIHNjb3BlOiAke3Jlc3VsdC5zY29wZX1gKTsgLy8gT3B0aW9uYWxseSB1bmNvbW1lbnQgZm9yIHN1Y2Nlc3MgbG9nc1xuICAgICAgLy8gfVxuICAgIH0pO1xuXG4gICAgaWYgKCFhbGxTdWNjZWVkZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ09uZSBvciBtb3JlIHRyYW5zbGF0aW9uIHByZWxvYWRzIGZhaWxlZC4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuJyk7XG4gICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoXCJPbmUgb3IgbW9yZSB0cmFuc2xhdGlvbiBwcmVsb2FkcyBmYWlsZWQuIFNlZSBjb25zb2xlIGZvciBkZXRhaWxzLlwiKTtcbiAgICB9XG4gICAgLy8gVGhlIHNlY29uZCByZXN1bHRzLmZvckVhY2ggbG9vcCBpbiB5b3VyIG9yaWdpbmFsIGNvZGUgd2FzIHJlZHVuZGFudCwgSSd2ZSByZW1vdmVkIGl0LlxuICAgIC8vIElmIGl0IHdhcyBmb3IgYSBkaWZmZXJlbnQgcHVycG9zZSwgeW91IGNhbiBhZGQgaXQgYmFjay5cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gICAgdGhpcy5pbmZsaWdodC5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldEZhbGxiYWNrTGFuZ3MobGFuZzogQVhUcmFuc2xhdGVMYW5nKTogQVhUcmFuc2xhdGVMYW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5mYWxsYmFja3M/LmxhbmdzPy5bbGFuZ10gPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0RmFsbGJhY2tTY29wZXMoc2NvcGU6IEFYVHJhbnNsYXRlU2NvcGUpOiBBWFRyYW5zbGF0ZVNjb3BlW10ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5mYWxsYmFja3M/LnNjb3Blcz8uW3Njb3BlXSA/PyBbXTtcbiAgfVxufVxuIl19","export class TranslationParserService {\n constructor() {\n this.legacyRegex = /t\\([\"']([^\"']+)[\"']\\s*(?:,\\s*(\\{.*?\\}))?\\)/g;\n this.inlineRegex = /@([a-zA-Z\\-]+:)?([a-zA-Z0-9_-]+):([a-zA-Z0-9_.:-]+)(?=[\\\\s.,;!?)]|$)/g;\n }\n isExpression(value) {\n return typeof value === 'string' && (value.includes('t(') || value.includes('@'));\n }\n parse(expression, currentLang, currentScope) {\n const tokens = [];\n // Extract inline references like @lang:scope:key or @scope:key\n let inlineMatch;\n while ((inlineMatch = this.inlineRegex.exec(expression)) !== null) {\n const langPart = inlineMatch[1]?.replace(':', '') ?? null;\n const scope = inlineMatch[2] ?? currentScope;\n const key = inlineMatch[3];\n const fullMatch = inlineMatch[0];\n tokens.push({ lang: langPart || currentLang, scope, key, fullMatch });\n }\n // Extract legacy expressions\n let legacyMatch;\n while ((legacyMatch = this.legacyRegex.exec(expression)) !== null) {\n const key = legacyMatch[1];\n const rawOptions = legacyMatch[2];\n let scope = currentScope;\n let lang = currentLang;\n if (rawOptions) {\n try {\n const jsonString = rawOptions.replace(/(['\"])?([a-zA-Z0-9_]+)(['\"])?\\s*:/g, '\"$2\":').replace(/'/g, '\"');\n const options = JSON.parse(jsonString);\n scope = options.scope || scope;\n lang = options.lang || lang;\n }\n catch (err) {\n console.error('Invalid translation expression options:', err);\n }\n }\n tokens.push({ key, scope, lang, fullMatch: legacyMatch[0] });\n }\n return tokens;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLnBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ21CLGdCQUFXLEdBQUcsNkNBQTZDLENBQUM7UUFDNUQsZ0JBQVcsR0FBRyx1RUFBdUUsQ0FBQztJQTRDekcsQ0FBQztJQTFDUSxZQUFZLENBQUMsS0FBYTtRQUMvQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBa0IsRUFBRSxXQUFtQixFQUFFLFlBQW9CO1FBQ3hFLE1BQU0sTUFBTSxHQUFvQixFQUFFLENBQUM7UUFFbkMsK0RBQStEO1FBQy9ELElBQUksV0FBVyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDMUQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQztZQUM3QyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixJQUFJLFdBQVcsQ0FBQztRQUNoQixPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEUsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUM7WUFDekIsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDO1lBRXZCLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDO29CQUNILE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDeEcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO29CQUMvQixJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7Z0JBQzlCLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQYXJzZWRUb2tlbiB9IGZyb20gJy4vdHJhbnNsYXRpb24udHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25QYXJzZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsZWdhY3lSZWdleCA9IC90XFwoW1wiJ10oW15cIiddKylbXCInXVxccyooPzosXFxzKihcXHsuKj9cXH0pKT9cXCkvZztcbiAgcHJpdmF0ZSByZWFkb25seSBpbmxpbmVSZWdleCA9IC9AKFthLXpBLVpcXC1dKzopPyhbYS16QS1aMC05Xy1dKyk6KFthLXpBLVowLTlfLjotXSspKD89W1xcXFxzLiw7IT8pXXwkKS9nO1xuXG4gIHB1YmxpYyBpc0V4cHJlc3Npb24odmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICh2YWx1ZS5pbmNsdWRlcygndCgnKSB8fCB2YWx1ZS5pbmNsdWRlcygnQCcpKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZShleHByZXNzaW9uOiBzdHJpbmcsIGN1cnJlbnRMYW5nOiBzdHJpbmcsIGN1cnJlbnRTY29wZTogc3RyaW5nKTogQVhQYXJzZWRUb2tlbltdIHtcbiAgICBjb25zdCB0b2tlbnM6IEFYUGFyc2VkVG9rZW5bXSA9IFtdO1xuXG4gICAgLy8gRXh0cmFjdCBpbmxpbmUgcmVmZXJlbmNlcyBsaWtlIEBsYW5nOnNjb3BlOmtleSBvciBAc2NvcGU6a2V5XG4gICAgbGV0IGlubGluZU1hdGNoO1xuICAgIHdoaWxlICgoaW5saW5lTWF0Y2ggPSB0aGlzLmlubGluZVJlZ2V4LmV4ZWMoZXhwcmVzc2lvbikpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBsYW5nUGFydCA9IGlubGluZU1hdGNoWzFdPy5yZXBsYWNlKCc6JywgJycpID8/IG51bGw7XG4gICAgICBjb25zdCBzY29wZSA9IGlubGluZU1hdGNoWzJdID8/IGN1cnJlbnRTY29wZTtcbiAgICAgIGNvbnN0IGtleSA9IGlubGluZU1hdGNoWzNdO1xuICAgICAgY29uc3QgZnVsbE1hdGNoID0gaW5saW5lTWF0Y2hbMF07XG5cbiAgICAgIHRva2Vucy5wdXNoKHsgbGFuZzogbGFuZ1BhcnQgfHwgY3VycmVudExhbmcsIHNjb3BlLCBrZXksIGZ1bGxNYXRjaCB9KTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IGxlZ2FjeSBleHByZXNzaW9uc1xuICAgIGxldCBsZWdhY3lNYXRjaDtcbiAgICB3aGlsZSAoKGxlZ2FjeU1hdGNoID0gdGhpcy5sZWdhY3lSZWdleC5leGVjKGV4cHJlc3Npb24pKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qga2V5ID0gbGVnYWN5TWF0Y2hbMV07XG4gICAgICBjb25zdCByYXdPcHRpb25zID0gbGVnYWN5TWF0Y2hbMl07XG4gICAgICBsZXQgc2NvcGUgPSBjdXJyZW50U2NvcGU7XG4gICAgICBsZXQgbGFuZyA9IGN1cnJlbnRMYW5nO1xuXG4gICAgICBpZiAocmF3T3B0aW9ucykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSByYXdPcHRpb25zLnJlcGxhY2UoLyhbJ1wiXSk/KFthLXpBLVowLTlfXSspKFsnXCJdKT9cXHMqOi9nLCAnXCIkMlwiOicpLnJlcGxhY2UoLycvZywgJ1wiJyk7XG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IEpTT04ucGFyc2UoanNvblN0cmluZyk7XG4gICAgICAgICAgc2NvcGUgPSBvcHRpb25zLnNjb3BlIHx8IHNjb3BlO1xuICAgICAgICAgIGxhbmcgPSBvcHRpb25zLmxhbmcgfHwgbGFuZztcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCB0cmFuc2xhdGlvbiBleHByZXNzaW9uIG9wdGlvbnM6JywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0b2tlbnMucHVzaCh7IGtleSwgc2NvcGUsIGxhbmcsIGZ1bGxNYXRjaDogbGVnYWN5TWF0Y2hbMF0gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxufVxuIl19","import { inject } from '@angular/core';\nimport { get as lodashGet } from 'lodash-es';\nimport { firstValueFrom } from 'rxjs';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { TranslationParserService } from './translation.parser';\n// Helper function to escape special characters for use in a regular expression\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nexport class TranslationResolverService {\n constructor() {\n this.loaderService = inject(AXTranslationLoaderService);\n this.cache = new Map();\n this.inflight = new Map();\n this.parser = new TranslationParserService();\n }\n async resolve(lang, scope, key, params) {\n const cacheKey = `${lang}:${scope}`;\n // Load and cache if not present\n if (!this.cache.has(cacheKey)) {\n if (!this.inflight.has(cacheKey)) {\n const fetchPromise = firstValueFrom(this.loaderService.load(lang, scope));\n this.inflight.set(cacheKey, fetchPromise);\n try {\n const data = await fetchPromise;\n this.cache.set(cacheKey, data);\n }\n finally {\n this.inflight.delete(cacheKey);\n }\n }\n else {\n await this.inflight.get(cacheKey);\n }\n }\n const translations = this.cache.get(cacheKey);\n if (!translations) {\n console.warn(`Translations not found for ${cacheKey} after attempting to load.`);\n const unresolvedResult = key;\n return this.format(unresolvedResult, params);\n }\n let result = lodashGet(translations, key, key);\n // Recursively resolve references\n if (typeof result === 'string' && this.parser.isExpression(result)) {\n const tokens = this.parser.parse(result, lang, scope);\n if (tokens.length > 0) {\n const first = tokens[0];\n result = await this.resolve(first.lang || lang, first.scope || scope, first.key, params);\n }\n }\n return this.format(result, params);\n }\n format(text, params) {\n if (!params || typeof text !== 'string' || Object.keys(params).length === 0) {\n return text;\n }\n return Object.keys(params).reduce((currentText, paramKey) => {\n // paramKey is the key from the params object, e.g., \"title\" or \" title \"\n const valueToInsert = params[paramKey];\n // 1. Trim the key from the params object to handle potential leading/trailing spaces.\n // e.g., if paramKey is \" title \", keyForPattern becomes \"title\".\n const keyForPattern = paramKey.trim();\n // If trimming results in an empty string, it's not a valid placeholder to replace.\n if (keyForPattern === '') {\n return currentText;\n }\n // 2. Escape the trimmed key to safely use it in a regular expression.\n // This handles cases where the key might contain special regex characters (e.g., \"user.name\", \"item[0]\").\n const escapedKey = escapeRegExp(keyForPattern);\n // 3. Construct the RegExp. This will match:\n // - {{KEY}}\n // - {{ KEY }}\n // - {{ KEY }}\n // etc., where KEY is the (trimmed and escaped) paramKey.\n const re = new RegExp(`{{\\\\s*${escapedKey}\\\\s*}}`, 'g');\n // 4. Replace occurrences, ensuring the value is a string.\n return currentText.replace(re, String(valueToInsert));\n }, text);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3RyYW5zbGF0aW9uL3NyYy9saWIvdHJhbnNsYXRpb24ucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxJQUFJLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2hFLCtFQUErRTtBQUMvRSxTQUFTLFlBQVksQ0FBQyxNQUFjO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUNVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDbkQsVUFBSyxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztRQUNyRCxXQUFNLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO0lBK0VsRCxDQUFDO0lBN0VDLEtBQUssQ0FBQyxPQUFPLENBQ1gsSUFBcUIsRUFDckIsS0FBdUIsRUFDdkIsR0FBVyxFQUNYLE1BQTBCO1FBRTFCLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRXBDLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQztvQkFDSCxNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQztvQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO3dCQUFTLENBQUM7b0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixRQUFRLDRCQUE0QixDQUFDLENBQUM7WUFDakYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUvQyxpQ0FBaUM7UUFDakMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBWSxFQUFFLE1BQTBCO1FBQ3BELElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDMUQseUVBQXlFO1lBQ3pFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QyxzRkFBc0Y7WUFDdEYsb0VBQW9FO1lBQ3BFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV0QyxtRkFBbUY7WUFDbkYsSUFBSSxhQUFhLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLENBQUM7WUFFRCxzRUFBc0U7WUFDdEUsNkdBQTZHO1lBQzdHLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUUvQyw0Q0FBNEM7WUFDNUMsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsNERBQTREO1lBQzVELE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLFNBQVMsVUFBVSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFeEQsMERBQTBEO1lBQzFELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgYXMgbG9kYXNoR2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25QYXJzZXJTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5wYXJzZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGVMYW5nLCBBWFRyYW5zbGF0ZVBhcmFtcywgQVhUcmFuc2xhdGVTY29wZSwgQVhUcmFuc2xhdGlvbiB9IGZyb20gJy4vdHJhbnNsYXRpb24udHlwZXMnO1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZXNjYXBlIHNwZWNpYWwgY2hhcmFjdGVycyBmb3IgdXNlIGluIGEgcmVndWxhciBleHByZXNzaW9uXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblJlc29sdmVyU2VydmljZSB7XG4gIHByaXZhdGUgbG9hZGVyU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSk7XG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQVhUcmFuc2xhdGlvbj4oKTtcbiAgcHJpdmF0ZSBpbmZsaWdodCA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPEFYVHJhbnNsYXRpb24+PigpO1xuICBwcml2YXRlIHBhcnNlciA9IG5ldyBUcmFuc2xhdGlvblBhcnNlclNlcnZpY2UoKTtcblxuICBhc3luYyByZXNvbHZlKFxuICAgIGxhbmc6IEFYVHJhbnNsYXRlTGFuZyxcbiAgICBzY29wZTogQVhUcmFuc2xhdGVTY29wZSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwYXJhbXM/OiBBWFRyYW5zbGF0ZVBhcmFtcyxcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGAke2xhbmd9OiR7c2NvcGV9YDtcblxuICAgIC8vIExvYWQgYW5kIGNhY2hlIGlmIG5vdCBwcmVzZW50XG4gICAgaWYgKCF0aGlzLmNhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICAgIGlmICghdGhpcy5pbmZsaWdodC5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICAgIGNvbnN0IGZldGNoUHJvbWlzZSA9IGZpcnN0VmFsdWVGcm9tKHRoaXMubG9hZGVyU2VydmljZS5sb2FkKGxhbmcsIHNjb3BlKSk7XG4gICAgICAgIHRoaXMuaW5mbGlnaHQuc2V0KGNhY2hlS2V5LCBmZXRjaFByb21pc2UpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaFByb21pc2U7XG4gICAgICAgICAgdGhpcy5jYWNoZS5zZXQoY2FjaGVLZXksIGRhdGEpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHRoaXMuaW5mbGlnaHQuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbmZsaWdodC5nZXQoY2FjaGVLZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAoIXRyYW5zbGF0aW9ucykge1xuICAgICAgY29uc29sZS53YXJuKGBUcmFuc2xhdGlvbnMgbm90IGZvdW5kIGZvciAke2NhY2hlS2V5fSBhZnRlciBhdHRlbXB0aW5nIHRvIGxvYWQuYCk7XG4gICAgICBjb25zdCB1bnJlc29sdmVkUmVzdWx0ID0ga2V5O1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHVucmVzb2x2ZWRSZXN1bHQsIHBhcmFtcyk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSBsb2Rhc2hHZXQodHJhbnNsYXRpb25zLCBrZXksIGtleSk7XG5cbiAgICAvLyBSZWN1cnNpdmVseSByZXNvbHZlIHJlZmVyZW5jZXNcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgJiYgdGhpcy5wYXJzZXIuaXNFeHByZXNzaW9uKHJlc3VsdCkpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IHRoaXMucGFyc2VyLnBhcnNlKHJlc3VsdCwgbGFuZywgc2NvcGUpO1xuICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gdG9rZW5zWzBdO1xuICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnJlc29sdmUoZmlyc3QubGFuZyB8fCBsYW5nLCBmaXJzdC5zY29wZSB8fCBzY29wZSwgZmlyc3Qua2V5LCBwYXJhbXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZvcm1hdChyZXN1bHQsIHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KHRleHQ6IHN0cmluZywgcGFyYW1zPzogQVhUcmFuc2xhdGVQYXJhbXMpOiBzdHJpbmcge1xuICAgIGlmICghcGFyYW1zIHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJyB8fCBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtcykucmVkdWNlKChjdXJyZW50VGV4dCwgcGFyYW1LZXkpID0+IHtcbiAgICAgIC8vIHBhcmFtS2V5IGlzIHRoZSBrZXkgZnJvbSB0aGUgcGFyYW1zIG9iamVjdCwgZS5nLiwgXCJ0aXRsZVwiIG9yIFwiIHRpdGxlIFwiXG4gICAgICBjb25zdCB2YWx1ZVRvSW5zZXJ0ID0gcGFyYW1zW3BhcmFtS2V5XTtcblxuICAgICAgLy8gMS4gVHJpbSB0aGUga2V5IGZyb20gdGhlIHBhcmFtcyBvYmplY3QgdG8gaGFuZGxlIHBvdGVudGlhbCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcy5cbiAgICAgIC8vICAgIGUuZy4sIGlmIHBhcmFtS2V5IGlzIFwiIHRpdGxlIFwiLCBrZXlGb3JQYXR0ZXJuIGJlY29tZXMgXCJ0aXRsZVwiLlxuICAgICAgY29uc3Qga2V5Rm9yUGF0dGVybiA9IHBhcmFtS2V5LnRyaW0oKTtcblxuICAgICAgLy8gSWYgdHJpbW1pbmcgcmVzdWx0cyBpbiBhbiBlbXB0eSBzdHJpbmcsIGl0J3Mgbm90IGEgdmFsaWQgcGxhY2Vob2xkZXIgdG8gcmVwbGFjZS5cbiAgICAgIGlmIChrZXlGb3JQYXR0ZXJuID09PSAnJykge1xuICAgICAgICByZXR1cm4gY3VycmVudFRleHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIDIuIEVzY2FwZSB0aGUgdHJpbW1lZCBrZXkgdG8gc2FmZWx5IHVzZSBpdCBpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICAgIC8vICAgIFRoaXMgaGFuZGxlcyBjYXNlcyB3aGVyZSB0aGUga2V5IG1pZ2h0IGNvbnRhaW4gc3BlY2lhbCByZWdleCBjaGFyYWN0ZXJzIChlLmcuLCBcInVzZXIubmFtZVwiLCBcIml0ZW1bMF1cIikuXG4gICAgICBjb25zdCBlc2NhcGVkS2V5ID0gZXNjYXBlUmVnRXhwKGtleUZvclBhdHRlcm4pO1xuXG4gICAgICAvLyAzLiBDb25zdHJ1Y3QgdGhlIFJlZ0V4cC4gVGhpcyB3aWxsIG1hdGNoOlxuICAgICAgLy8gICAgLSB7e0tFWX19XG4gICAgICAvLyAgICAtIHt7IEtFWSB9fVxuICAgICAgLy8gICAgLSB7eyAgS0VZICB9fVxuICAgICAgLy8gICAgZXRjLiwgd2hlcmUgS0VZIGlzIHRoZSAodHJpbW1lZCBhbmQgZXNjYXBlZCkgcGFyYW1LZXkuXG4gICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAoYHt7XFxcXHMqJHtlc2NhcGVkS2V5fVxcXFxzKn19YCwgJ2cnKTtcblxuICAgICAgLy8gNC4gUmVwbGFjZSBvY2N1cnJlbmNlcywgZW5zdXJpbmcgdGhlIHZhbHVlIGlzIGEgc3RyaW5nLlxuICAgICAgcmV0dXJuIGN1cnJlbnRUZXh0LnJlcGxhY2UocmUsIFN0cmluZyh2YWx1ZVRvSW5zZXJ0KSk7XG4gICAgfSwgdGV4dCk7XG4gIH1cbn1cbiJdfQ==","import { AXLocaleService } from '@acorex/core/locale';\nimport { waitFor } from '@acorex/core/utils';\nimport { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, from, of, shareReplay, switchMap } from 'rxjs';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { TranslationParserService } from './translation.parser';\nimport { TranslationResolverService } from './translation.resolver';\nimport { AXEventService, AXSystemEvents } from '@acorex/core/events';\nimport * as i0 from \"@angular/core\";\nlet singletonInstance;\nexport function translateSync(key, options) {\n return singletonInstance.translateSync(key, options);\n}\nexport class AXTranslationService {\n constructor() {\n this.localeService = inject(AXLocaleService);\n this.config = inject(AX_TRANSLATION_CONFIG);\n this.loader = inject(AXTranslationLoaderService);\n this.parser = new TranslationParserService();\n this.eventService = inject(AXEventService);\n this.resolver = new TranslationResolverService();\n this.activeLang = new BehaviorSubject(this.config.defaults.lang);\n this.langChanges$ = this.activeLang.asObservable();\n singletonInstance = this;\n this.localeService.profileChanged$.subscribe((locale) => {\n if (locale?.localeInfo?.code) {\n this.setActiveLang(locale.localeInfo.code);\n }\n });\n }\n setActiveLang(lang) {\n if (lang && lang !== this.activeLang.getValue()) {\n this.activeLang.next(lang);\n this.eventService.emitEvent({\n type: AXSystemEvents.AXLanguageChanged,\n payload: lang,\n });\n }\n }\n getActiveLang() {\n return this.activeLang.getValue();\n }\n getDefaultLang() {\n return this.config.defaults.lang;\n }\n translate$(text, options) {\n if (!text) {\n return of('');\n }\n const staticOptions = { ...options };\n const staticScope = staticOptions.scope ?? this.config.defaults.scope;\n return this.langChanges$.pipe(switchMap((lang) => {\n return from(this.translateAsync(text, {\n ...staticOptions,\n lang: staticOptions.lang ?? lang,\n scope: staticScope,\n }));\n }), shareReplay({ bufferSize: 1, refCount: true }));\n }\n async translateAsync(text, options) {\n const lang = options?.lang ?? this.getActiveLang() ?? this.config.defaults.lang;\n const scope = options?.scope ?? this.config.defaults.scope;\n const params = options?.params;\n if (!this.parser.isExpression(text)) {\n const resolved = await this.resolver.resolve(lang, scope, text, params);\n return this.resolver.format(resolved, params);\n }\n const tokens = this.parser.parse(text, lang, scope);\n const results = await Promise.all(tokens.map((token) => this.resolver\n .resolve(token.lang ?? lang, token.scope ?? scope, token.key, params)\n .then((translated) => [token.fullMatch, this.resolver.format(translated, params)])));\n return results.reduce((output, [match, translated]) => output.replace(match, translated), text);\n }\n translateSync(text, options) {\n const lang = options?.lang ?? this.getActiveLang() ?? this.config.defaults.lang;\n const scope = options?.scope ?? this.config.defaults.scope;\n const params = options?.params;\n const waitForLoad = options?.waitForLoad ?? false;\n const timeoutMs = options?.timeoutMs ?? 100;\n if (!this.parser.isExpression(text)) {\n let translated = this.loader.peek(lang, scope, text);\n if (!translated && waitForLoad) {\n translated = waitFor(() => this.loader.peek(lang, scope, text), () => this.loader.load(lang, scope).subscribe(), timeoutMs);\n }\n return this.resolver.format(translated ?? text, params);\n }\n const tokens = this.parser.parse(text, lang, scope);\n let result = text;\n for (const token of tokens) {\n const targetLang = token.lang ?? lang;\n const targetScope = token.scope ?? scope;\n const key = token.key;\n let translation = this.loader.peek(targetLang, targetScope, key);\n if (!translation) {\n translation =\n waitFor(() => this.loader.peek(targetLang, targetScope, key), () => this.loader.load(targetLang, targetScope).subscribe(), waitForLoad ? timeoutMs : 0) ?? key;\n }\n result = result.replace(token.fullMatch, this.resolver.format(translation, params));\n }\n return result;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdHJhbnNsYXRpb24vc3JjL2xpYi90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFckUsSUFBSSxpQkFBdUMsQ0FBQztBQUU1QyxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVcsRUFBRSxPQUE0QjtJQUNyRSxPQUFPLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUtELE1BQU0sT0FBTyxvQkFBb0I7SUFVL0I7UUFUUSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLE1BQU0sQ0FBQywwQkFB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QUMzQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUN6QyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRXRCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFakUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixXQUFXO29CQUNULE9BQU8sQ0FDTCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUNwRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQzNELFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVCLElBQUksR0FBRyxDQUFDO1lBQ2IsQ0FBQztZQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBaklVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvY2FsZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvbG9jYWxlJztcbmltcG9ydCB7IHdhaXRGb3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhfVFJBTlNMQVRJT05fQ09ORklHIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5jb25maWcnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25QYXJzZXJTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5wYXJzZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25SZXNvbHZlclNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0aW9uLnJlc29sdmVyJztcbmltcG9ydCB7IEFYVHJhbnNsYXRlTGFuZywgQVhUcmFuc2xhdGVPcHRpb25zIH0gZnJvbSAnLi90cmFuc2xhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBBWEV2ZW50U2VydmljZSwgQVhTeXN0ZW1FdmVudHMgfSBmcm9tICdAYWNvcmV4L2NvcmUvZXZlbnRzJztcblxubGV0IHNpbmdsZXRvbkluc3RhbmNlOiBBWFRyYW5zbGF0aW9uU2VydmljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZVN5bmMoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBBWFRyYW5zbGF0ZU9wdGlvbnMpOiBzdHJpbmcge1xuICByZXR1cm4gc2luZ2xldG9uSW5zdGFuY2UudHJhbnNsYXRlU3luYyhrZXksIG9wdGlvbnMpO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoQVhMb2NhbGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhfVFJBTlNMQVRJT05fQ09ORklHKTtcbiAgcHJpdmF0ZSBsb2FkZXIgPSBpbmplY3QoQVhUcmFuc2xhdGlvbkxvYWRlclNlcnZpY2UpO1xuICBwcml2YXRlIHBhcnNlciA9IG5ldyBUcmFuc2xhdGlvblBhcnNlclNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhFdmVudFNlcnZpY2UpO1xuICBwcml2YXRlIHJlc29sdmVyID0gbmV3IFRyYW5zbGF0aW9uUmVzb2x2ZXJTZXJ2aWNlKCk7XG4gIHByaXZhdGUgYWN0aXZlTGFuZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhUcmFuc2xhdGVMYW5nPih0aGlzLmNvbmZpZy5kZWZhdWx0cy5sYW5nKTtcbiAgcHVibGljIHJlYWRvbmx5IGxhbmdDaGFuZ2VzJCA9IHRoaXMuYWN0aXZlTGFuZy5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzaW5nbGV0b25JbnN0YW5jZSA9IHRoaXM7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLnByb2ZpbGVDaGFuZ2VkJC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4ge1xuICAgICAgaWYgKGxvY2FsZT8ubG9jYWxlSW5mbz8uY29kZSkge1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUxhbmcobG9jYWxlLmxvY2FsZUluZm8uY29kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlTGFuZyhsYW5nOiBBWFRyYW5zbGF0ZUxhbmcpOiB2b2lkIHtcbiAgICBpZiAobGFuZyAmJiBsYW5nICE9PSB0aGlzLmFjdGl2ZUxhbmcuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy5hY3RpdmVMYW5nLm5leHQobGFuZyk7XG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5lbWl0RXZlbnQoe1xuICAgICAgICB0eXBlOiBBWFN5c3RlbUV2ZW50cy5BWExhbmd1YWdlQ2hhbmdlZCxcbiAgICAgICAgcGF5bG9hZDogbGFuZyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRBY3RpdmVMYW5nKCk6IEFYVHJhbnNsYXRlTGFuZyB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTGFuZy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldERlZmF1bHRMYW5nKCk6IEFYVHJhbnNsYXRlTGFuZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRlZmF1bHRzLmxhbmc7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNsYXRlJCh0ZXh0OiBzdHJpbmcsIG9wdGlvbnM/OiBBWFRyYW5zbGF0ZU9wdGlvbnMpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghdGV4dCkge1xuICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0aWNPcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gICAgY29uc3Qgc3RhdGljU2NvcGUgPSBzdGF0aWNPcHRpb25zLnNjb3BlID8/IHRoaXMuY29uZmlnLmRlZmF1bHRzLnNjb3BlO1xuXG4gICAgcmV0dXJuIHRoaXMubGFuZ0NoYW5nZXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGxhbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVBc3luYyh0ZXh0LCB7XG4gICAgICAgICAgICAuLi5zdGF0aWNPcHRpb25zLFxuICAgICAgICAgICAgbGFuZzogc3RhdGljT3B0aW9ucy5sYW5nID8/IGxhbmcsXG4gICAgICAgICAgICBzY29wZTogc3RhdGljU2NvcGUsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHRyYW5zbGF0ZUFzeW5jKHRleHQ6IHN0cmluZywgb3B0aW9ucz86IEFYVHJhbnNsYXRlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgbGFuZyA9IG9wdGlvbnM/LmxhbmcgPz8gdGhpcy5nZXRBY3RpdmVMYW5nKCkgPz8gdGhpcy5jb25maWcuZGVmYXVsdHMubGFuZztcbiAgICBjb25zdCBzY29wZSA9IG9wdGlvbnM/LnNjb3BlID8/IHRoaXMuY29uZmlnLmRlZmF1bHRzLnNjb3BlO1xuICAgIGNvbnN0IHBhcmFtcyA9IG9wdGlvbnM/LnBhcmFtcztcblxuICAgIGlmICghdGhpcy5wYXJzZXIuaXNFeHByZXNzaW9uKHRleHQpKSB7XG4gICAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZXIucmVzb2x2ZShsYW5nLCBzY29wZSwgdGV4dCwgcGFyYW1zKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVyLmZvcm1hdChyZXNvbHZlZCwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBhcnNlci5wYXJzZSh0ZXh0LCBsYW5nLCBzY29wZSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0b2tlbnMubWFwKCh0b2tlbikgPT5cbiAgICAgICAgdGhpcy5yZXNvbHZlclxuICAgICAgICAgIC5yZXNvbHZlKHRva2VuLmxhbmcgPz8gbGFuZywgdG9rZW4uc2NvcGUgPz8gc2NvcGUsIHRva2VuLmtleSwgcGFyYW1zKVxuICAgICAgICAgIC50aGVuKCh0cmFuc2xhdGVkKSA9PiBbdG9rZW4uZnVsbE1hdGNoLCB0aGlzLnJlc29sdmVyLmZvcm1hdCh0cmFuc2xhdGVkLCBwYXJhbXMpXSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICByZXR1cm4gcmVzdWx0cy5yZWR1Y2UoKG91dHB1dCwgW21hdGNoLCB0cmFuc2xhdGVkXSkgPT4gb3V0cHV0LnJlcGxhY2UobWF0Y2gsIHRyYW5zbGF0ZWQpLCB0ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2xhdGVTeW5jKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zICYgeyB3YWl0Rm9yTG9hZD86IGJvb2xlYW47IHRpbWVvdXRNcz86IG51bWJlciB9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmcgPSBvcHRpb25zPy5sYW5nID8/IHRoaXMuZ2V0QWN0aXZlTGFuZygpID8/IHRoaXMuY29uZmlnLmRlZmF1bHRzLmxhbmc7XG4gICAgY29uc3Qgc2NvcGUgPSBvcHRpb25zPy5zY29wZSA/PyB0aGlzLmNvbmZpZy5kZWZhdWx0cy5zY29wZTtcbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zPy5wYXJhbXM7XG4gICAgY29uc3Qgd2FpdEZvckxvYWQgPSBvcHRpb25zPy53YWl0Rm9yTG9hZCA/PyBmYWxzZTtcbiAgICBjb25zdCB0aW1lb3V0TXMgPSBvcHRpb25zPy50aW1lb3V0TXMgPz8gMTAwO1xuXG4gICAgaWYgKCF0aGlzLnBhcnNlci5pc0V4cHJlc3Npb24odGV4dCkpIHtcbiAgICAgIGxldCB0cmFuc2xhdGVkID0gdGhpcy5sb2FkZXIucGVlayhsYW5nLCBzY29wZSwgdGV4dCk7XG5cbiAgICAgIGlmICghdHJhbnNsYXRlZCAmJiB3YWl0Rm9yTG9hZCkge1xuICAgICAgICB0cmFuc2xhdGVkID0gd2FpdEZvcihcbiAgICAgICAgICAoKSA9PiB0aGlzLmxvYWRlci5wZWVrKGxhbmcsIHNjb3BlLCB0ZXh0KSxcbiAgICAgICAgICAoKSA9PiB0aGlzLmxvYWRlci5sb2FkKGxhbmcsIHNjb3BlKS5zdWJzY3JpYmUoKSxcbiAgICAgICAgICB0aW1lb3V0TXMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVyLmZvcm1hdCh0cmFuc2xhdGVkID8/IHRleHQsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdGhpcy5wYXJzZXIucGFyc2UodGV4dCwgbGFuZywgc2NvcGUpO1xuICAgIGxldCByZXN1bHQgPSB0ZXh0O1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgIGNvbnN0IHRhcmdldExhbmcgPSB0b2tlbi5sYW5nID8/IGxhbmc7XG4gICAgICBjb25zdCB0YXJnZXRTY29wZSA9IHRva2VuLnNjb3BlID8/IHNjb3BlO1xuICAgICAgY29uc3Qga2V5ID0gdG9rZW4ua2V5O1xuXG4gICAgICBsZXQgdHJhbnNsYXRpb24gPSB0aGlzLmxvYWRlci5wZWVrKHRhcmdldExhbmcsIHRhcmdldFNjb3BlLCBrZXkpO1xuXG4gICAgICBpZiAoIXRyYW5zbGF0aW9uKSB7XG4gICAgICAgIHRyYW5zbGF0aW9uID1cbiAgICAgICAgICB3YWl0Rm9yKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5sb2FkZXIucGVlayh0YXJnZXRMYW5nLCB0YXJnZXRTY29wZSwga2V5KSxcbiAgICAgICAgICAgICgpID0+IHRoaXMubG9hZGVyLmxvYWQodGFyZ2V0TGFuZywgdGFyZ2V0U2NvcGUpLnN1YnNjcmliZSgpLFxuICAgICAgICAgICAgd2FpdEZvckxvYWQgPyB0aW1lb3V0TXMgOiAwLFxuICAgICAgICAgICkgPz8ga2V5O1xuICAgICAgfVxuXG4gICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSh0b2tlbi5mdWxsTWF0Y2gsIHRoaXMucmVzb2x2ZXIuZm9ybWF0KHRyYW5zbGF0aW9uLCBwYXJhbXMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=","import { inject } from '@angular/core';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { AXTranslationService } from './translation.service';\nexport const loadTranslationScope = (route, state) => {\n const translationLoaderService = inject(AXTranslationLoaderService);\n const translationService = inject(AXTranslationService);\n const config = inject(AX_TRANSLATION_CONFIG);\n const scopeValue = route.data[config.resolver?.scopeKey];\n const scopes = Array.isArray(scopeValue) ? scopeValue : [scopeValue];\n return translationLoaderService.preload({ langs: [translationService.getActiveLang()], scopes });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tc2NvcGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3RyYW5zbGF0aW9uL3NyYy9saWIvdHJhbnNsYXRpb24tc2NvcGUucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBdUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDdkUsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNwRSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckUsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDbkcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNvbHZlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbkxvYWRlclNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0aW9uLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYX1RSQU5TTEFUSU9OX0NPTkZJRyB9IGZyb20gJy4vdHJhbnNsYXRpb24uY29uZmlnJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGxvYWRUcmFuc2xhdGlvblNjb3BlOiBSZXNvbHZlRm48dW5rbm93bj4gPSAocm91dGUsIHN0YXRlKSA9PiB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSk7XG4gIGNvbnN0IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdChBWF9UUkFOU0xBVElPTl9DT05GSUcpO1xuICBjb25zdCBzY29wZVZhbHVlID0gcm91dGUuZGF0YVtjb25maWcucmVzb2x2ZXI/LnNjb3BlS2V5XTtcbiAgY29uc3Qgc2NvcGVzID0gQXJyYXkuaXNBcnJheShzY29wZVZhbHVlKSA/IHNjb3BlVmFsdWUgOiBbc2NvcGVWYWx1ZV07XG4gIHJldHVybiB0cmFuc2xhdGlvbkxvYWRlclNlcnZpY2UucHJlbG9hZCh7IGxhbmdzOiBbdHJhbnNsYXRpb25TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKV0sIHNjb3BlcyB9KTtcbn07XG4iXX0=","import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { shareReplay } from 'rxjs';\nimport { AXTranslationService } from './translation.service';\nimport * as i0 from \"@angular/core\";\nexport class AXTranslatorDirective {\n constructor() {\n this.templateRef = inject(TemplateRef);\n this.vc = inject(ViewContainerRef);\n this.translationService = inject(AXTranslationService);\n }\n ngOnInit() {\n const cache = new Map();\n const t = (key, opts) => {\n const id = `${key}|${opts?.lang ?? this.translationService.getActiveLang()}|${opts?.scope ?? 'common'}`;\n if (!cache.has(id)) {\n cache.set(id, this.translationService.translate$(key, opts).pipe(shareReplay({ bufferSize: 1, refCount: true })));\n }\n return cache.get(id);\n };\n this.vc.clear();\n this.vc.createEmbeddedView(this.templateRef, { $implicit: t });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.9\", type: AXTranslatorDirective, isStandalone: true, selector: \"[translate]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslatorDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[translate]' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3RyYW5zbGF0aW9uL3NyYy9saWIvdHJhbnNsYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzdELE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFFVSxnQkFBVyxHQUFHLE1BQU0sQ0FBbUIsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBRSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBbUIzRDtJQWpCQyxRQUFRO1FBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFFcEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBeUIsRUFBRSxFQUFFO1lBQ25ELE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDeEcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxDQUFDLEdBQUcsQ0FDUCxFQUFFLEVBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDbkcsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQXJCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRlT3B0aW9ucyB9IGZyb20gJy4vdHJhbnNsYXRpb24udHlwZXMnO1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3RyYW5zbGF0ZV0nIH0pXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihUZW1wbGF0ZVJlZik7XG4gIHByaXZhdGUgdmMgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPHN0cmluZz4+KCk7XG5cbiAgICBjb25zdCB0ID0gKGtleTogc3RyaW5nLCBvcHRzPzogQVhUcmFuc2xhdGVPcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGAke2tleX18JHtvcHRzPy5sYW5nID8/IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKX18JHtvcHRzPy5zY29wZSA/PyAnY29tbW9uJ31gO1xuICAgICAgaWYgKCFjYWNoZS5oYXMoaWQpKSB7XG4gICAgICAgIGNhY2hlLnNldChcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUkKGtleSwgb3B0cykucGlwZShzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjYWNoZS5nZXQoaWQpITtcbiAgICB9O1xuXG4gICAgdGhpcy52Yy5jbGVhcigpO1xuICAgIHRoaXMudmMuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIHsgJGltcGxpY2l0OiB0IH0pO1xuICB9XG59XG4iXX0=","import { inject, Pipe } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AXTranslationService } from './translation.service';\nimport * as i0 from \"@angular/core\";\nexport class AXTranslatorPipe {\n constructor() {\n this.service = inject(AXTranslationService);\n }\n transform(key, options) {\n if (!key) {\n return of(''); // Return an empty observable if the key is not provided\n }\n return this.service.translate$(key, options);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslatorPipe, isStandalone: true, name: \"translate\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslatorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'translate',\n pure: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0b3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLGdCQUFnQjtJQUo3QjtRQUtVLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQVFoRDtJQU5DLFNBQVMsQ0FBQyxHQUFXLEVBQUUsT0FBNEI7UUFDakQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3REFBd0Q7UUFDekUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBUlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxJQUFJO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGVPcHRpb25zIH0gZnJvbSAnLi90cmFuc2xhdGlvbi50eXBlcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RyYW5zbGF0ZScsXG4gIHB1cmU6IHRydWUsXG59KSAvLyBUaGUgcGlwZSBjYW4gbm93IGJlIHB1cmVcbmV4cG9ydCBjbGFzcyBBWFRyYW5zbGF0b3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAoIWtleSkge1xuICAgICAgcmV0dXJuIG9mKCcnKTsgLy8gUmV0dXJuIGFuIGVtcHR5IG9ic2VydmFibGUgaWYgdGhlIGtleSBpcyBub3QgcHJvdmlkZWRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS50cmFuc2xhdGUkKGtleSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==","import { NgModule, inject, provideAppInitializer } from '@angular/core';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AXTranslatorDirective } from './translator.directive';\nimport { AXTranslatorPipe } from './translator.pipe';\nimport * as i0 from \"@angular/core\";\nfunction initializeApp(translatorService) {\n return () => {\n return translatorService.preload();\n };\n}\nexport class AXTranslationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationModule, imports: [AXTranslatorPipe, AXTranslatorDirective], exports: [AXTranslatorPipe, AXTranslatorDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationModule, providers: [\n provideAppInitializer(() => {\n const initializerFn = initializeApp(inject(AXTranslationLoaderService));\n return initializerFn();\n }),\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXTranslationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXTranslatorPipe, AXTranslatorDirective],\n exports: [AXTranslatorPipe, AXTranslatorDirective],\n providers: [\n provideAppInitializer(() => {\n const initializerFn = initializeApp(inject(AXTranslationLoaderService));\n return initializerFn();\n }),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFckQsU0FBUyxhQUFhLENBQUMsaUJBQTZDO0lBQ2xFLE9BQU8sR0FBa0IsRUFBRTtRQUN6QixPQUFPLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFZRCxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQVRwQixnQkFBZ0IsRUFBRSxxQkFBcUIsYUFDdkMsZ0JBQWdCLEVBQUUscUJBQXFCOytHQVF0QyxtQkFBbUIsYUFQbkI7WUFDVCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO2dCQUN4RSxPQUFPLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQztTQUNIOzsyRkFFVSxtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDO29CQUNsRCxTQUFTLEVBQUU7d0JBQ1QscUJBQXFCLENBQUMsR0FBRyxFQUFFOzRCQUN6QixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzs0QkFDeEUsT0FBTyxhQUFhLEVBQUUsQ0FBQzt3QkFDekIsQ0FBQyxDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIGluamVjdCwgcHJvdmlkZUFwcEluaXRpYWxpemVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRpb24tbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi90cmFuc2xhdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnLi90cmFuc2xhdG9yLnBpcGUnO1xuXG5mdW5jdGlvbiBpbml0aWFsaXplQXBwKHRyYW5zbGF0b3JTZXJ2aWNlOiBBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSkge1xuICByZXR1cm4gKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0cmFuc2xhdG9yU2VydmljZS5wcmVsb2FkKCk7XG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWFRyYW5zbGF0b3JQaXBlLCBBWFRyYW5zbGF0b3JEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbQVhUcmFuc2xhdG9yUGlwZSwgQVhUcmFuc2xhdG9yRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyRm4gPSBpbml0aWFsaXplQXBwKGluamVjdChBWFRyYW5zbGF0aW9uTG9hZGVyU2VydmljZSkpO1xuICAgICAgcmV0dXJuIGluaXRpYWxpemVyRm4oKTtcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvbk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtdHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3RyYW5zbGF0aW9uL3NyYy9hY29yZXgtY29yZS10cmFuc2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["lodashGet"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-translation.mjs","sources":["../../../../packages/core/translation/src/lib/translation.config.ts","../../../../packages/core/translation/src/lib/translation.loader.ts","../../../../packages/core/translation/src/lib/translation-loader.service.ts","../../../../packages/core/translation/src/lib/translation.parser.ts","../../../../packages/core/translation/src/lib/translation.resolver.ts","../../../../packages/core/translation/src/lib/translation.service.ts","../../../../packages/core/translation/src/lib/translation-scope.resolver.ts","../../../../packages/core/translation/src/lib/translator.directive.ts","../../../../packages/core/translation/src/lib/translator.pipe.ts","../../../../packages/core/translation/src/lib/translation.module.ts","../../../../packages/core/translation/src/acorex-core-translation.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AXTranslateLang, AXTranslateScope } from './translation.types';\n\nexport interface AXTranslationConfig {\n defaults: {\n lang: AXTranslateLang;\n scope: AXTranslateScope;\n };\n preload?: {\n langs: AXTranslateLang[];\n scopes: AXTranslateScope[];\n };\n fallbacks?: {\n langs?: Record<AXTranslateLang, AXTranslateLang[]>;\n scopes?: Record<AXTranslateScope, AXTranslateScope[]>;\n };\n available?: {\n langs?: AXTranslateLang[];\n scopes?: AXTranslateScope[];\n };\n resolver?: {\n scopeKey: string; // used to extract scope from params, e.g. `scope: 'common'`\n };\n}\n\nexport const AX_TRANSLATION_CONFIG = new InjectionToken<AXTranslationConfig>('AX_TRANSLATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXTranslationDefaultConfig;\n },\n});\n\nexport const AXTranslationDefaultConfig: AXTranslationConfig = {\n defaults: {\n lang: 'en-US',\n scope: 'acorex',\n },\n preload: {\n langs: ['en-US'],\n scopes: ['acorex'],\n },\n resolver: {\n scopeKey: 'scope',\n },\n};\n\nexport type AXPartialTranslationConfig = Partial<AXTranslationConfig>;\n\nexport function translationConfig(config: AXPartialTranslationConfig = {}): AXTranslationConfig {\n const result = {\n ...AXTranslationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXTranslateLang, AXTranslateScope, AXTranslation } from './translation.types';\n\nexport interface AXTranslationLoaderOptions {\n lang: AXTranslateLang;\n scope?: AXTranslateScope;\n}\n\nexport interface AXTranslationLoader {\n load(options: AXTranslationLoaderOptions): Observable<AXTranslation>;\n}\n\nexport class AXTranslationLoaderDefault implements AXTranslationLoader {\n load(options: AXTranslationLoaderOptions): Observable<AXTranslation> {\n return of({});\n }\n}\n\nexport const AX_TRANSLATION_LOADER = new InjectionToken<AXTranslationLoader>('AX_TRANSLATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXTranslationLoaderDefault();\n },\n});\n","import { Injectable, inject } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { Observable, firstValueFrom, of, shareReplay, tap } from 'rxjs';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { AX_TRANSLATION_LOADER } from './translation.loader';\nimport { AXTranslateLang, AXTranslateScope, AXTranslation } from './translation.types';\nimport { AXEventService, AXSystemEvents } from '@acorex/core/events';\n\n@Injectable({ providedIn: 'root' })\nexport class AXTranslationLoaderService {\n private loader = inject(AX_TRANSLATION_LOADER);\n private config = inject(AX_TRANSLATION_CONFIG);\n private eventService = inject(AXEventService);\n\n private cache = new Map<string, AXTranslation>();\n private inflight = new Map<string, Observable<AXTranslation>>();\n\n public load(lang: AXTranslateLang, scope: AXTranslateScope): Observable<AXTranslation> {\n const key = `${lang}:${scope}`;\n\n // 1. Check cache first\n if (this.cache.has(key)) {\n return of(this.cache.get(key)!);\n }\n\n // 2. Check if it's already in-flight\n if (this.inflight.has(key)) {\n return this.inflight.get(key)!;\n }\n\n // 3. Not in cache, not in-flight: Make the request\n const newObs = this.loader.load({ lang, scope }).pipe(\n tap({\n next: (data) => {\n this.cache.set(key, data);\n // No need to delete from inflight here, finalize will handle it\n // or delete it only after caching. If you delete here, and shareReplay\n // source completes, subsequent subscribers might re-trigger if not careful.\n // It's better to remove from inflight in finalize or after shareReplay has replayed.\n // For simplicity and common patterns, removing after caching within tap (before shareReplay)\n // can work if shareReplay handles the source completion correctly.\n // A safer bet is to remove it in finalize *after* shareReplay.\n\n // Emit event to notify other components that the language has been loaded\n this.eventService.emitEvent({\n type: AXSystemEvents.AXLanguageLoaded,\n payload: data,\n });\n },\n error: (err) => {\n console.error(`Error loading ${key}:`, err);\n // Remove from inflight on error so subsequent calls can retry\n this.inflight.delete(key);\n },\n // finalize is tricky with shareReplay if you want to keep the replayed value\n // but still clear inflight. For this pattern, deleting on next/error\n // *before* shareReplay often means that shareReplay will re-trigger the source\n // if the inflight observable is requested again after being deleted.\n // The current structure of deleting in `tap` and then `shareReplay`\n // might need `this.inflight.delete(key)` to be moved after `shareReplay` effect.\n // Let's try a common pattern:\n }),\n shareReplay(1), // Replay the last emitted value for subsequent subscribers\n tap({\n // This tap runs *after* shareReplay has done its work for the first subscriber\n // and for subsequent subscribers that get the replayed value.\n next: () => {\n // Once data is successfully loaded and cached (by the first tap),\n // and shareReplay ensures it's available, we can remove from inflight.\n // This means subsequent calls for the same key during the \"inflight\" period\n // get the shared observable, and after it resolves and is cached,\n // inflight is cleared.\n this.inflight.delete(key);\n },\n // Error is handled by the first tap, or catchError if you want to provide a fallback\n }),\n );\n\n this.inflight.set(key, newObs); // Store the observable that includes caching and cleanup logic\n return newObs;\n }\n\n public peek(lang: AXTranslateLang, scope: AXTranslateScope, key: string): string | null {\n const cacheKey = `${lang}:${scope}`;\n const data = this.cache.get(cacheKey);\n return get(data, key, null);\n }\n\n public async preload(options?: { langs?: AXTranslateLang[]; scopes?: AXTranslateScope[] }): Promise<void> {\n const langsToLoad = [...new Set(options?.langs ?? this.config.preload?.langs ?? [this.config.defaults.lang])];\n const scopesToLoad = [...new Set(options?.scopes ?? this.config.preload?.scopes ?? [this.config.defaults.scope])];\n\n const loadPromises: Promise<\n | { lang: AXTranslateLang; scope: AXTranslateScope; status: 'fulfilled'; value: AXTranslation } // Changed any to AXTranslation\n | { lang: AXTranslateLang; scope: AXTranslateScope; status: 'rejected'; reason: any }\n >[] = [];\n\n langsToLoad.forEach((lang) => {\n scopesToLoad.forEach((scope) => {\n const loadPromise = firstValueFrom(this.load(lang, scope)) // This should now always get a valid Observable\n .then((value) => ({ lang, scope, status: 'fulfilled' as const, value }))\n .catch((reason) => ({ lang, scope, status: 'rejected' as const, reason }));\n loadPromises.push(loadPromise);\n });\n });\n\n const results = await Promise.all(loadPromises);\n\n let allSucceeded = true;\n results.forEach((result) => {\n if (result.status === 'rejected') {\n allSucceeded = false;\n console.error(\n `Failed to preload translations for lang: ${result.lang}, scope: ${result.scope}. Reason:`,\n result.reason,\n );\n } else {\n // console.log(`Successfully preloaded lang: ${result.lang}, scope: ${result.scope}`); // Optionally uncomment for success logs\n }\n // else {\n // console.log(`Successfully preloaded lang: ${result.lang}, scope: ${result.scope}`); // Optionally uncomment for success logs\n // }\n });\n\n if (!allSucceeded) {\n console.error('One or more translation preloads failed. See console for details.');\n // throw new Error(\"One or more translation preloads failed. See console for details.\");\n }\n // The second results.forEach loop in your original code was redundant, I've removed it.\n // If it was for a different purpose, you can add it back.\n }\n\n public clear(): void {\n this.cache.clear();\n this.inflight.clear();\n }\n\n public getFallbackLangs(lang: AXTranslateLang): AXTranslateLang[] {\n return this.config.fallbacks?.langs?.[lang] ?? [];\n }\n\n public getFallbackScopes(scope: AXTranslateScope): AXTranslateScope[] {\n return this.config.fallbacks?.scopes?.[scope] ?? [];\n }\n}\n","import { AXParsedToken } from './translation.types';\n\nexport class TranslationParserService {\n private readonly legacyRegex = /t\\([\"']([^\"']+)[\"']\\s*(?:,\\s*(\\{.*?\\}))?\\)/g;\n private readonly inlineRegex = /@([a-zA-Z\\-]+:)?([a-zA-Z0-9_-]+):([a-zA-Z0-9_.:-]+)(?=[\\\\s.,;!?)]|$)/g;\n\n public isExpression(value: string): boolean {\n return typeof value === 'string' && (value.includes('t(') || value.includes('@'));\n }\n\n public parse(expression: string, currentLang: string, currentScope: string): AXParsedToken[] {\n const tokens: AXParsedToken[] = [];\n\n // Extract inline references like @lang:scope:key or @scope:key\n let inlineMatch;\n while ((inlineMatch = this.inlineRegex.exec(expression)) !== null) {\n const langPart = inlineMatch[1]?.replace(':', '') ?? null;\n const scope = inlineMatch[2] ?? currentScope;\n const key = inlineMatch[3];\n const fullMatch = inlineMatch[0];\n\n tokens.push({ lang: langPart || currentLang, scope, key, fullMatch });\n }\n\n // Extract legacy expressions\n let legacyMatch;\n while ((legacyMatch = this.legacyRegex.exec(expression)) !== null) {\n const key = legacyMatch[1];\n const rawOptions = legacyMatch[2];\n let scope = currentScope;\n let lang = currentLang;\n\n if (rawOptions) {\n try {\n const jsonString = rawOptions.replace(/(['\"])?([a-zA-Z0-9_]+)(['\"])?\\s*:/g, '\"$2\":').replace(/'/g, '\"');\n const options = JSON.parse(jsonString);\n scope = options.scope || scope;\n lang = options.lang || lang;\n } catch (err) {\n console.error('Invalid translation expression options:', err);\n }\n }\n\n tokens.push({ key, scope, lang, fullMatch: legacyMatch[0] });\n }\n\n return tokens;\n }\n}\n","import { inject } from '@angular/core';\nimport { get as lodashGet } from 'lodash-es';\nimport { firstValueFrom } from 'rxjs';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { TranslationParserService } from './translation.parser';\nimport { AXTranslateLang, AXTranslateParams, AXTranslateScope, AXTranslation } from './translation.types';\n\n// Helper function to escape special characters for use in a regular expression\nfunction escapeRegExp(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nexport class TranslationResolverService {\n private loaderService = inject(AXTranslationLoaderService);\n private cache = new Map<string, AXTranslation>();\n private inflight = new Map<string, Promise<AXTranslation>>();\n private parser = new TranslationParserService();\n\n async resolve(\n lang: AXTranslateLang,\n scope: AXTranslateScope,\n key: string,\n params?: AXTranslateParams,\n ): Promise<string> {\n const cacheKey = `${lang}:${scope}`;\n\n // Load and cache if not present\n if (!this.cache.has(cacheKey)) {\n if (!this.inflight.has(cacheKey)) {\n const fetchPromise = firstValueFrom(this.loaderService.load(lang, scope));\n this.inflight.set(cacheKey, fetchPromise);\n try {\n const data = await fetchPromise;\n this.cache.set(cacheKey, data);\n } finally {\n this.inflight.delete(cacheKey);\n }\n } else {\n await this.inflight.get(cacheKey);\n }\n }\n\n const translations = this.cache.get(cacheKey);\n if (!translations) {\n console.warn(`Translations not found for ${cacheKey} after attempting to load.`);\n const unresolvedResult = key;\n return this.format(unresolvedResult, params);\n }\n let result = lodashGet(translations, key, key);\n\n // Recursively resolve references\n if (typeof result === 'string' && this.parser.isExpression(result)) {\n const tokens = this.parser.parse(result, lang, scope);\n if (tokens.length > 0) {\n const first = tokens[0];\n result = await this.resolve(first.lang || lang, first.scope || scope, first.key, params);\n }\n }\n\n return this.format(result, params);\n }\n\n public format(text: string, params?: AXTranslateParams): string {\n if (!params || typeof text !== 'string' || Object.keys(params).length === 0) {\n return text;\n }\n\n return Object.keys(params).reduce((currentText, paramKey) => {\n // paramKey is the key from the params object, e.g., \"title\" or \" title \"\n const valueToInsert = params[paramKey];\n\n // 1. Trim the key from the params object to handle potential leading/trailing spaces.\n // e.g., if paramKey is \" title \", keyForPattern becomes \"title\".\n const keyForPattern = paramKey.trim();\n\n // If trimming results in an empty string, it's not a valid placeholder to replace.\n if (keyForPattern === '') {\n return currentText;\n }\n\n // 2. Escape the trimmed key to safely use it in a regular expression.\n // This handles cases where the key might contain special regex characters (e.g., \"user.name\", \"item[0]\").\n const escapedKey = escapeRegExp(keyForPattern);\n\n // 3. Construct the RegExp. This will match:\n // - {{KEY}}\n // - {{ KEY }}\n // - {{ KEY }}\n // etc., where KEY is the (trimmed and escaped) paramKey.\n const re = new RegExp(`{{\\\\s*${escapedKey}\\\\s*}}`, 'g');\n\n // 4. Replace occurrences, ensuring the value is a string.\n return currentText.replace(re, String(valueToInsert));\n }, text);\n }\n}\n","import { AXLocaleService } from '@acorex/core/locale';\nimport { waitFor } from '@acorex/core/utils';\nimport { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, from, Observable, of, shareReplay, switchMap } from 'rxjs';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { TranslationParserService } from './translation.parser';\nimport { TranslationResolverService } from './translation.resolver';\nimport { AXTranslateLang, AXTranslateOptions } from './translation.types';\nimport { AXEventService, AXSystemEvents } from '@acorex/core/events';\n\nlet singletonInstance: AXTranslationService;\n\nexport function translateSync(key: string, options?: AXTranslateOptions): string {\n return singletonInstance.translateSync(key, options);\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXTranslationService {\n private localeService = inject(AXLocaleService);\n private config = inject(AX_TRANSLATION_CONFIG);\n private loader = inject(AXTranslationLoaderService);\n private parser = new TranslationParserService();\n private eventService = inject(AXEventService);\n private resolver = new TranslationResolverService();\n private activeLang = new BehaviorSubject<AXTranslateLang>(this.config.defaults.lang);\n public readonly langChanges$ = this.activeLang.asObservable();\n\n constructor() {\n singletonInstance = this;\n this.localeService.profileChanged$.subscribe((locale) => {\n if (locale?.localeInfo?.code) {\n this.setActiveLang(locale.localeInfo.code);\n }\n });\n }\n\n public setActiveLang(lang: AXTranslateLang): void {\n if (lang && lang !== this.activeLang.getValue()) {\n this.activeLang.next(lang);\n this.eventService.emitEvent({\n type: AXSystemEvents.AXLanguageChanged,\n payload: lang,\n });\n }\n }\n\n public getActiveLang(): AXTranslateLang {\n return this.activeLang.getValue();\n }\n\n public getDefaultLang(): AXTranslateLang {\n return this.config.defaults.lang;\n }\n\n public translate$(text: string, options?: AXTranslateOptions): Observable<string> {\n if (!text) {\n return of('');\n }\n\n const staticOptions = { ...options };\n const staticScope = staticOptions.scope ?? this.config.defaults.scope;\n\n return this.langChanges$.pipe(\n switchMap((lang) => {\n return from(\n this.translateAsync(text, {\n ...staticOptions,\n lang: staticOptions.lang ?? lang,\n scope: staticScope,\n }),\n );\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n async translateAsync(text: string, options?: AXTranslateOptions): Promise<string> {\n const lang = options?.lang ?? this.getActiveLang() ?? this.config.defaults.lang;\n const scope = options?.scope ?? this.config.defaults.scope;\n const params = options?.params;\n\n if (!this.parser.isExpression(text)) {\n const resolved = await this.resolver.resolve(lang, scope, text, params);\n return this.resolver.format(resolved, params);\n }\n\n const tokens = this.parser.parse(text, lang, scope);\n\n const results = await Promise.all(\n tokens.map((token) =>\n this.resolver\n .resolve(token.lang ?? lang, token.scope ?? scope, token.key, params)\n .then((translated) => [token.fullMatch, this.resolver.format(translated, params)]),\n ),\n );\n\n return results.reduce((output, [match, translated]) => output.replace(match, translated), text);\n }\n\n public translateSync(\n text: string,\n options?: AXTranslateOptions & { waitForLoad?: boolean; timeoutMs?: number },\n ): string {\n const lang = options?.lang ?? this.getActiveLang() ?? this.config.defaults.lang;\n const scope = options?.scope ?? this.config.defaults.scope;\n const params = options?.params;\n const waitForLoad = options?.waitForLoad ?? false;\n const timeoutMs = options?.timeoutMs ?? 100;\n\n if (!this.parser.isExpression(text)) {\n let translated = this.loader.peek(lang, scope, text);\n\n if (!translated && waitForLoad) {\n translated = waitFor(\n () => this.loader.peek(lang, scope, text),\n () => this.loader.load(lang, scope).subscribe(),\n timeoutMs,\n );\n }\n\n return this.resolver.format(translated ?? text, params);\n }\n\n const tokens = this.parser.parse(text, lang, scope);\n let result = text;\n\n for (const token of tokens) {\n const targetLang = token.lang ?? lang;\n const targetScope = token.scope ?? scope;\n const key = token.key;\n\n let translation = this.loader.peek(targetLang, targetScope, key);\n\n if (!translation) {\n translation =\n waitFor(\n () => this.loader.peek(targetLang, targetScope, key),\n () => this.loader.load(targetLang, targetScope).subscribe(),\n waitForLoad ? timeoutMs : 0,\n ) ?? key;\n }\n\n result = result.replace(token.fullMatch, this.resolver.format(translation, params));\n }\n\n return result;\n }\n}\n","import { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\nimport { AXTranslationService } from './translation.service';\n\nexport const loadTranslationScope: ResolveFn<unknown> = (route, state) => {\n const translationLoaderService = inject(AXTranslationLoaderService);\n const translationService = inject(AXTranslationService);\n const config = inject(AX_TRANSLATION_CONFIG);\n const scopeValue = route.data[config.resolver?.scopeKey];\n const scopes = Array.isArray(scopeValue) ? scopeValue : [scopeValue];\n return translationLoaderService.preload({ langs: [translationService.getActiveLang()], scopes });\n};\n","import { Directive, OnInit, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { AXTranslationService } from './translation.service';\nimport { AXTranslateOptions } from './translation.types';\n@Directive({ selector: '[translate]' })\nexport class AXTranslatorDirective implements OnInit {\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\n private vc = inject(ViewContainerRef);\n private translationService = inject(AXTranslationService);\n\n ngOnInit() {\n const cache = new Map<string, Observable<string>>();\n\n const t = (key: string, opts?: AXTranslateOptions) => {\n const id = `${key}|${opts?.lang ?? this.translationService.getActiveLang()}|${opts?.scope ?? 'common'}`;\n if (!cache.has(id)) {\n cache.set(\n id,\n this.translationService.translate$(key, opts).pipe(shareReplay({ bufferSize: 1, refCount: true })),\n );\n }\n return cache.get(id)!;\n };\n\n this.vc.clear();\n this.vc.createEmbeddedView(this.templateRef, { $implicit: t });\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXTranslationService } from './translation.service';\nimport { AXTranslateOptions } from './translation.types';\n\n@Pipe({\n name: 'translate',\n pure: true,\n}) // The pipe can now be pure\nexport class AXTranslatorPipe implements PipeTransform {\n private service = inject(AXTranslationService);\n\n transform(key: string, options?: AXTranslateOptions): Observable<string> {\n if (!key) {\n return of(''); // Return an empty observable if the key is not provided\n }\n return this.service.translate$(key, options);\n }\n}\n","import { NgModule, inject, provideAppInitializer } from '@angular/core';\nimport { AXTranslationLoaderService } from './translation-loader.service';\nimport { AXTranslatorDirective } from './translator.directive';\nimport { AXTranslatorPipe } from './translator.pipe';\n\nfunction initializeApp(translatorService: AXTranslationLoaderService) {\n return (): Promise<void> => {\n return translatorService.preload();\n };\n}\n\n@NgModule({\n imports: [AXTranslatorPipe, AXTranslatorDirective],\n exports: [AXTranslatorPipe, AXTranslatorDirective],\n providers: [\n provideAppInitializer(() => {\n const initializerFn = initializeApp(inject(AXTranslationLoaderService));\n return initializerFn();\n }),\n ],\n})\nexport class AXTranslationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["lodashGet"],"mappings":"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"}
|