@taon-dev/i18n 21.0.33 → 21.0.35

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.
Files changed (60) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -5
  2. package/bin/start.js +1 -1
  3. package/browser/fesm2022/i18n-browser.mjs +26 -6
  4. package/browser/fesm2022/i18n-browser.mjs.map +1 -1
  5. package/browser/package.json +1 -1
  6. package/browser/types/i18n-browser.d.ts +1 -1
  7. package/browser-prod/fesm2022/i18n-browser-prod.mjs +26 -6
  8. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/browser-prod/types/i18n-browser-prod.d.ts +1 -1
  11. package/html/assets/generated/pwa/html-pwa.html +53 -53
  12. package/lib/build-info._auto-generated_.d.ts +1 -1
  13. package/lib/build-info._auto-generated_.js +1 -1
  14. package/lib/local-translation.js +4 -4
  15. package/lib/local-translation.js.map +1 -1
  16. package/lib/package.json +1 -1
  17. package/lib/utils-i18n-extract-gettext-translate-from-html.js +10 -1
  18. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  19. package/lib/utils-i18n-html.js +13 -2
  20. package/lib/utils-i18n-html.js.map +1 -1
  21. package/lib/utils-po-file.js +4 -5
  22. package/lib/utils-po-file.js.map +1 -1
  23. package/lib-esm/app/main-page/main-page.active.context.d.ts +1 -0
  24. package/lib-esm/app.electron.d.ts +1 -1
  25. package/lib-esm/app.electron.js +1 -1
  26. package/lib-esm/app.hosts.d.ts +3 -3
  27. package/lib-esm/app.hosts.js +8 -8
  28. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  29. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  30. package/lib-esm/lib/local-translation.js +3 -19
  31. package/lib-esm/lib/local-translation.js.map +1 -1
  32. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +1 -103
  33. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  34. package/lib-esm/lib/utils-i18n-html.js +20 -158
  35. package/lib-esm/lib/utils-i18n-html.js.map +1 -1
  36. package/lib-esm/lib/utils-po-file.js +4 -5
  37. package/lib-esm/lib/utils-po-file.js.map +1 -1
  38. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  39. package/lib-prod/build-info._auto-generated_.js +1 -1
  40. package/lib-prod/local-translation.js +5 -5
  41. package/lib-prod/local-translation.js.map +1 -1
  42. package/lib-prod/package.json +1 -1
  43. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +10 -1
  44. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  45. package/lib-prod/utils-i18n-html.js +13 -2
  46. package/lib-prod/utils-i18n-html.js.map +1 -1
  47. package/lib-prod/utils-po-file.js +4 -5
  48. package/lib-prod/utils-po-file.js.map +1 -1
  49. package/package.json +1 -1
  50. package/websql/fesm2022/i18n-websql.mjs +26 -6
  51. package/websql/fesm2022/i18n-websql.mjs.map +1 -1
  52. package/websql/package.json +1 -1
  53. package/websql/types/i18n-websql.d.ts +1 -1
  54. package/websql-prod/fesm2022/i18n-websql-prod.mjs +26 -6
  55. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -1
  56. package/websql-prod/package.json +1 -1
  57. package/websql-prod/types/i18n-websql-prod.d.ts +1 -1
  58. package/lib-esm/app.cloudflare.d.ts +0 -0
  59. package/lib-esm/app.cloudflare.js +0 -4
  60. package/lib-esm/app.cloudflare.js.map +0 -1
@@ -1,5 +1,5 @@
1
- {
2
- "commitHash": "4a3660b92dfe2474b5d9fedc114f982f2d10c94e",
3
- "commitName": "chore: update",
4
- "commitDate": "30-07-2026 09:40:16"
5
- }
1
+ {
2
+ "commitHash": "2c41d062454004f2784fcc9e4d7747de563aa839",
3
+ "commitName": "chore: update",
4
+ "commitDate": "10-08-2026 16:03:11"
5
+ }
package/bin/start.js CHANGED
@@ -1,4 +1,4 @@
1
- global.frameworkName = 'i18n';
1
+ global.frameworkName = 'i18n';
2
2
  Error.stackTraceLimit = 100;
3
3
  global.i0 = {
4
4
  defineInjectable: function () { }
@@ -1,5 +1,4 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { crossPlatformPath, dotTaonFolder, UtilsOs, GlobalStorage, _, UtilsI18n } from 'tnp-core/browser';
1
+ import { crossPlatformPath, dotTaonFolder, UtilsOs, Helpers, GlobalStorage, _, UtilsI18n } from 'tnp-core/browser';
3
2
  import * as i0 from '@angular/core';
4
3
  import { inject, ChangeDetectorRef, signal, ElementRef, DestroyRef, Input, Directive, Pipe, Injectable } from '@angular/core';
5
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -29,7 +28,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
29
28
  /**
30
29
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
31
30
  */
32
- const CURRENT_PACKAGE_VERSION = '21.0.33';
31
+ const CURRENT_PACKAGE_VERSION = '21.0.35';
33
32
  // THIS FILE IS GENERATED - DO NOT MODIFY
34
33
 
35
34
  const MODEL_ID = 'Xenova/nllb-200-distilled-600M';
@@ -109,7 +108,10 @@ class LocalTranslationService {
109
108
  /* */
110
109
  /* */
111
110
  /* */
111
+ /* */
112
+ /* */
112
113
  return (void 0);
114
+ return void 0;
113
115
  }
114
116
  emitProgress(progress) {
115
117
  for (const listener of this.progressListeners) {
@@ -217,9 +219,7 @@ class LocalTranslationService {
217
219
  dotTaonFolder,
218
220
  'ai-models-cache',
219
221
  ]);
220
- mkdirSync(cachePath, {
221
- recursive: true,
222
- });
222
+ Helpers.mkdirp(cachePath);
223
223
  return cachePath;
224
224
  }
225
225
  }
@@ -804,7 +804,10 @@ var UtilsI18nExtractGettextTranslateFromHtml;
804
804
  /* */
805
805
  /* */
806
806
  /* */
807
+ /* */
808
+ /* */
807
809
  return (void 0);
810
+ return void 0;
808
811
  }
809
812
  UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml = extractGettextTranslateFromHtml;
810
813
  function extractGettextCallsFromSource(html) {
@@ -1069,6 +1072,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1069
1072
  /* */
1070
1073
  return (void 0);
1071
1074
  }
1075
+ //#region @esmRemove
1072
1076
  function getNodeInputs(node) {
1073
1077
  /* */
1074
1078
  /* */
@@ -1077,6 +1081,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1077
1081
  /* */
1078
1082
  return (void 0);
1079
1083
  }
1084
+ //#endregion
1080
1085
  function isText(node) {
1081
1086
  /* */
1082
1087
  /* */
@@ -1148,6 +1153,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1148
1153
  /* */
1149
1154
  return (void 0);
1150
1155
  }
1156
+ //#region @esmRemove
1151
1157
  function extractTranslateParams(inputs) {
1152
1158
  /* */
1153
1159
  /* */
@@ -1159,6 +1165,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1159
1165
  /* */
1160
1166
  return (void 0);
1161
1167
  }
1168
+ //#endregion
1162
1169
  function extractObjectLiteralFromAst(ast) {
1163
1170
  /* */
1164
1171
  /* */
@@ -1177,6 +1184,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1177
1184
  /* */
1178
1185
  return (void 0);
1179
1186
  }
1187
+ //#region @esmRemove
1180
1188
  function extractTranslatePipeStrings(ast) {
1181
1189
  /* */
1182
1190
  /* */
@@ -1206,6 +1214,7 @@ var UtilsI18nExtractGettextTranslateFromHtml;
1206
1214
  /* */
1207
1215
  return (void 0);
1208
1216
  }
1217
+ //#endregion
1209
1218
  function extractStaticStringsFromExpression(ast) {
1210
1219
  /* */
1211
1220
  /* */
@@ -1297,7 +1306,10 @@ var UtilsI18nHtml;
1297
1306
  /* */
1298
1307
  /* */
1299
1308
  /* */
1309
+ /* */
1310
+ /* */
1300
1311
  return (void 0);
1312
+ return void 0;
1301
1313
  }
1302
1314
  UtilsI18nHtml.replaceTranslatePipieDirectiveTContext = replaceTranslatePipieDirectiveTContext;
1303
1315
  function isAngularTsWithInlineHtml(content) {
@@ -1311,9 +1323,13 @@ var UtilsI18nHtml;
1311
1323
  /* */
1312
1324
  /* */
1313
1325
  /* */
1326
+ /* */
1327
+ /* */
1314
1328
  return (void 0);
1329
+ return void 0;
1315
1330
  }
1316
1331
  UtilsI18nHtml.isAngularTsWithInlineHtml = isAngularTsWithInlineHtml;
1332
+ //#region @esmRemove
1317
1333
  function replaceInAngularInlineTemplates(content) {
1318
1334
  /* */
1319
1335
  /* */
@@ -1455,6 +1471,7 @@ var UtilsI18nHtml;
1455
1471
  /* */
1456
1472
  return (void 0);
1457
1473
  }
1474
+ //#endregion
1458
1475
  function replaceTranslatePipieDirectiveTContextInHtml(html) {
1459
1476
  /* */
1460
1477
  /* */
@@ -1518,7 +1535,10 @@ var UtilsI18nHtml;
1518
1535
  /* */
1519
1536
  /* */
1520
1537
  /* */
1538
+ /* */
1539
+ /* */
1521
1540
  return (void 0);
1541
+ return void 0;
1522
1542
  }
1523
1543
  UtilsI18nHtml.replaceTranslatePipieDirectiveTContextInHtml = replaceTranslatePipieDirectiveTContextInHtml;
1524
1544
  function findTranslateDirectiveEditsFromSource(html) {
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-browser.mjs","sources":["../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/i18n-browser.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.33';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { mkdirSync } from 'node:fs';\n\nimport {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n} from 'tnp-core/browser';\n\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text.\n */\n context?: string;\n\n glossary?: Record<string, string>;\n}\n\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<\n Record<UtilsI18n.CommonLocaleCode, string>\n> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nexport class LocalTranslationService {\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<\n (progress: AiDownloadProgress) => void\n >();\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n isAiReady(): boolean {\n return this.aiReady;\n }\n\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(\n sourceValue,\n placeholder,\n );\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n mkdirSync(cachePath, {\n recursive: true,\n });\n\n return cachePath;\n }\n}","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from './translate.service';\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements OnInit, OnDestroy, OnChanges {\n private static readonly selector = '[translate]';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngOnInit(): void {\n this.originalText = this.element.nativeElement.textContent?.trim() ?? '';\n this.initialized = true;\n this.render();\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // this.t.debug && console.log(`Rerender \"${this.originalText}\"`)\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) return;\n // this.t.debug && console.log(`On Chnags for \"${this.originalText}\"`)\n this.render();\n }\n\n ngOnDestroy(): void {}\n\n private render(): void {\n // console.log('render', this);\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `wihtout implemented Translatable interface`\n );\n }\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n //#region @browser\n // this.t.cdr?.markForCheck();\n //#endregion\n }\n}","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs';\nimport { UtilsI18n } from 'tnp-core/browser';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs';\nimport { UtilsI18n } from 'tnp-core/browser';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript';\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","/* */ \nimport { join } from 'path';\n\nimport { UtilsI18n } from 'tnp-core/browser';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/browser';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibTranslationTs } from './translation.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibTranslationTs } from './translation.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibTranslationTs \n| PlPlTraslationOverrideSrcLibTranslationTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; \nexport * from './i18n/lib.translation'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n-browser.mjs","sources":["../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/i18n-browser.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.35';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n Helpers,\n} from 'tnp-core/browser';\n\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text.\n */\n context?: string;\n\n glossary?: Record<string, string>;\n}\n\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<\n Record<UtilsI18n.CommonLocaleCode, string>\n> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nexport class LocalTranslationService {\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<\n (progress: AiDownloadProgress) => void\n >();\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n isAiReady(): boolean {\n return this.aiReady;\n }\n\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(\n sourceValue,\n placeholder,\n );\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n Helpers.mkdirp(cachePath);\n\n return cachePath;\n }\n}","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from './translate.service';\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements OnInit, OnDestroy, OnChanges {\n private static readonly selector = '[translate]';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngOnInit(): void {\n this.originalText = this.element.nativeElement.textContent?.trim() ?? '';\n this.initialized = true;\n this.render();\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // this.t.debug && console.log(`Rerender \"${this.originalText}\"`)\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) return;\n // this.t.debug && console.log(`On Chnags for \"${this.originalText}\"`)\n this.render();\n }\n\n ngOnDestroy(): void {}\n\n private render(): void {\n // console.log('render', this);\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `wihtout implemented Translatable interface`\n );\n }\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n //#region @browser\n // this.t.cdr?.markForCheck();\n //#endregion\n }\n}","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript'; // @esmRemove\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n //#region @esmRemove\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { crossPlatformPath, UtilsI18n, fse } from 'tnp-core/browser';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/browser';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibTranslationTs } from './translation.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibTranslationTs } from './translation.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibTranslationTs \n| PlPlTraslationOverrideSrcLibTranslationTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; \nexport * from './i18n/lib.translation'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18n/browser",
3
- "version": "21.0.33",
3
+ "version": "21.0.35",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -28,7 +28,7 @@ declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
28
28
  /**
29
29
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
30
30
  */
31
- declare const CURRENT_PACKAGE_VERSION = "21.0.33";
31
+ declare const CURRENT_PACKAGE_VERSION = "21.0.35";
32
32
 
33
33
  interface TranslationOptions {
34
34
  text: string;