@tolgee/core 3.0.0 → 3.1.3

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 (158) hide show
  1. package/dist/tolgee.cjs.js +169 -149
  2. package/dist/tolgee.cjs.js.map +1 -1
  3. package/dist/tolgee.cjs.min.js +1 -1
  4. package/dist/tolgee.cjs.min.js.map +1 -1
  5. package/dist/tolgee.esm.js +1 -1
  6. package/dist/tolgee.esm.js.map +1 -1
  7. package/dist/tolgee.umd.js +169 -149
  8. package/dist/tolgee.umd.js.map +1 -1
  9. package/dist/tolgee.umd.min.js +1 -1
  10. package/dist/tolgee.umd.min.js.map +1 -1
  11. package/lib/Constants/Global.d.ts +0 -0
  12. package/lib/Constants/Global.js +0 -0
  13. package/lib/Constants/Global.js.map +0 -0
  14. package/lib/Constants/ModifierKey.d.ts +0 -0
  15. package/lib/Constants/ModifierKey.js +0 -0
  16. package/lib/Constants/ModifierKey.js.map +0 -0
  17. package/lib/Errors/ApiHttpError.d.ts +0 -0
  18. package/lib/Errors/ApiHttpError.js +0 -0
  19. package/lib/Errors/ApiHttpError.js.map +0 -0
  20. package/lib/Observer.d.ts +0 -0
  21. package/lib/Observer.js +0 -0
  22. package/lib/Observer.js.map +0 -0
  23. package/lib/Properties.d.ts +0 -0
  24. package/lib/Properties.js +0 -0
  25. package/lib/Properties.js.map +0 -0
  26. package/lib/Tolgee.d.ts +37 -8
  27. package/lib/Tolgee.js +87 -60
  28. package/lib/Tolgee.js.map +1 -1
  29. package/lib/TolgeeConfig.d.ts +0 -0
  30. package/lib/TolgeeConfig.js +0 -0
  31. package/lib/TolgeeConfig.js.map +0 -0
  32. package/lib/helpers/NodeHelper.d.ts +0 -0
  33. package/lib/helpers/NodeHelper.js +0 -0
  34. package/lib/helpers/NodeHelper.js.map +0 -0
  35. package/lib/helpers/TextHelper.d.ts +0 -0
  36. package/lib/helpers/TextHelper.js +0 -0
  37. package/lib/helpers/TextHelper.js.map +0 -0
  38. package/lib/helpers/commonTypes.d.ts +0 -0
  39. package/lib/helpers/commonTypes.js +0 -0
  40. package/lib/helpers/commonTypes.js.map +0 -0
  41. package/lib/helpers/encoderPolyfill.d.ts +0 -0
  42. package/lib/helpers/encoderPolyfill.js +0 -0
  43. package/lib/helpers/encoderPolyfill.js.map +0 -0
  44. package/lib/helpers/secret.d.ts +0 -0
  45. package/lib/helpers/secret.js +0 -0
  46. package/lib/helpers/secret.js.map +0 -0
  47. package/lib/helpers/sleep.d.ts +0 -0
  48. package/lib/helpers/sleep.js +0 -0
  49. package/lib/helpers/sleep.js.map +0 -0
  50. package/lib/highlighter/HighlightFunctionsInitializer.d.ts +0 -0
  51. package/lib/highlighter/HighlightFunctionsInitializer.js +0 -0
  52. package/lib/highlighter/HighlightFunctionsInitializer.js.map +0 -0
  53. package/lib/highlighter/MouseEventHandler.d.ts +0 -0
  54. package/lib/highlighter/MouseEventHandler.js +0 -0
  55. package/lib/highlighter/MouseEventHandler.js.map +0 -0
  56. package/lib/highlighter/TranslationHighlighter.d.ts +0 -0
  57. package/lib/highlighter/TranslationHighlighter.js +0 -0
  58. package/lib/highlighter/TranslationHighlighter.js.map +0 -0
  59. package/lib/index.d.ts +0 -0
  60. package/lib/index.js +0 -0
  61. package/lib/index.js.map +0 -0
  62. package/lib/modules/IcuFormatter.d.ts +0 -0
  63. package/lib/modules/IcuFormatter.js +0 -0
  64. package/lib/modules/IcuFormatter.js.map +0 -0
  65. package/lib/modules/index.d.ts +0 -0
  66. package/lib/modules/index.js +0 -0
  67. package/lib/modules/index.js.map +0 -0
  68. package/lib/services/ApiHttpService.d.ts +0 -0
  69. package/lib/services/ApiHttpService.js +0 -0
  70. package/lib/services/ApiHttpService.js.map +0 -0
  71. package/lib/services/CoreService.d.ts +1 -0
  72. package/lib/services/CoreService.js +18 -0
  73. package/lib/services/CoreService.js.map +1 -1
  74. package/lib/services/DependencyService.d.ts +0 -0
  75. package/lib/services/DependencyService.js +0 -0
  76. package/lib/services/DependencyService.js.map +0 -0
  77. package/lib/services/ElementRegistrar.d.ts +0 -0
  78. package/lib/services/ElementRegistrar.js +0 -0
  79. package/lib/services/ElementRegistrar.js.map +0 -0
  80. package/lib/services/EventEmitter.d.ts +0 -0
  81. package/lib/services/EventEmitter.js +0 -0
  82. package/lib/services/EventEmitter.js.map +0 -0
  83. package/lib/services/EventService.d.ts +0 -0
  84. package/lib/services/EventService.js +0 -0
  85. package/lib/services/EventService.js.map +0 -0
  86. package/lib/services/ModuleService.d.ts +0 -0
  87. package/lib/services/ModuleService.js +0 -0
  88. package/lib/services/ModuleService.js.map +0 -0
  89. package/lib/services/ScreenshotService.d.ts +0 -0
  90. package/lib/services/ScreenshotService.js +0 -0
  91. package/lib/services/ScreenshotService.js.map +0 -0
  92. package/lib/services/Subscription.d.ts +0 -0
  93. package/lib/services/Subscription.js +0 -0
  94. package/lib/services/Subscription.js.map +0 -0
  95. package/lib/services/TextService.d.ts +0 -0
  96. package/lib/services/TextService.js +0 -0
  97. package/lib/services/TextService.js.map +0 -0
  98. package/lib/services/TranslationService.d.ts +2 -2
  99. package/lib/services/TranslationService.js +12 -10
  100. package/lib/services/TranslationService.js.map +1 -1
  101. package/lib/toolsManager/Messages.d.ts +0 -0
  102. package/lib/toolsManager/Messages.js +0 -0
  103. package/lib/toolsManager/Messages.js.map +0 -0
  104. package/lib/toolsManager/PluginManager.d.ts +0 -0
  105. package/lib/toolsManager/PluginManager.js +0 -0
  106. package/lib/toolsManager/PluginManager.js.map +0 -0
  107. package/lib/types/DTOs.d.ts +0 -0
  108. package/lib/types/DTOs.js +0 -0
  109. package/lib/types/DTOs.js.map +0 -0
  110. package/lib/types/apiSchema.generated.d.ts +0 -0
  111. package/lib/types/apiSchema.generated.js +0 -0
  112. package/lib/types/apiSchema.generated.js.map +0 -0
  113. package/lib/types.d.ts +0 -0
  114. package/lib/types.js +0 -0
  115. package/lib/types.js.map +0 -0
  116. package/lib/wrappers/AbstractWrapper.d.ts +1 -1
  117. package/lib/wrappers/AbstractWrapper.js +0 -0
  118. package/lib/wrappers/AbstractWrapper.js.map +0 -0
  119. package/lib/wrappers/NodeHandler.d.ts +0 -0
  120. package/lib/wrappers/NodeHandler.js +0 -0
  121. package/lib/wrappers/NodeHandler.js.map +0 -0
  122. package/lib/wrappers/WrappedHandler.d.ts +0 -0
  123. package/lib/wrappers/WrappedHandler.js +0 -0
  124. package/lib/wrappers/WrappedHandler.js.map +0 -0
  125. package/lib/wrappers/invisible/AttributeHandler.d.ts +0 -0
  126. package/lib/wrappers/invisible/AttributeHandler.js +0 -0
  127. package/lib/wrappers/invisible/AttributeHandler.js.map +0 -0
  128. package/lib/wrappers/invisible/Coder.d.ts +1 -1
  129. package/lib/wrappers/invisible/Coder.js +18 -59
  130. package/lib/wrappers/invisible/Coder.js.map +1 -1
  131. package/lib/wrappers/invisible/ContentHandler.d.ts +0 -0
  132. package/lib/wrappers/invisible/ContentHandler.js +0 -0
  133. package/lib/wrappers/invisible/ContentHandler.js.map +0 -0
  134. package/lib/wrappers/invisible/CoreHandler.d.ts +0 -0
  135. package/lib/wrappers/invisible/CoreHandler.js +0 -0
  136. package/lib/wrappers/invisible/CoreHandler.js.map +0 -0
  137. package/lib/wrappers/invisible/InvisibleWrapper.d.ts +1 -1
  138. package/lib/wrappers/invisible/InvisibleWrapper.js +0 -0
  139. package/lib/wrappers/invisible/InvisibleWrapper.js.map +0 -0
  140. package/lib/wrappers/invisible/ValueMemory.d.ts +0 -0
  141. package/lib/wrappers/invisible/ValueMemory.js +0 -0
  142. package/lib/wrappers/invisible/ValueMemory.js.map +0 -0
  143. package/lib/wrappers/text/AttributeHandler.d.ts +0 -0
  144. package/lib/wrappers/text/AttributeHandler.js +0 -0
  145. package/lib/wrappers/text/AttributeHandler.js.map +0 -0
  146. package/lib/wrappers/text/Coder.d.ts +1 -1
  147. package/lib/wrappers/text/Coder.js +34 -92
  148. package/lib/wrappers/text/Coder.js.map +1 -1
  149. package/lib/wrappers/text/ContentHandler.d.ts +0 -0
  150. package/lib/wrappers/text/ContentHandler.js +0 -0
  151. package/lib/wrappers/text/ContentHandler.js.map +0 -0
  152. package/lib/wrappers/text/CoreHandler.d.ts +0 -0
  153. package/lib/wrappers/text/CoreHandler.js +0 -0
  154. package/lib/wrappers/text/CoreHandler.js.map +0 -0
  155. package/lib/wrappers/text/TextWrapper.d.ts +1 -1
  156. package/lib/wrappers/text/TextWrapper.js +0 -0
  157. package/lib/wrappers/text/TextWrapper.js.map +0 -0
  158. package/package.json +7 -6
@@ -501,7 +501,7 @@ var TranslationService = /** @class */ (function () {
501
501
  });
502
502
  }
503
503
  };
504
- TranslationService.prototype.getChachedTranslations = function () {
504
+ TranslationService.prototype.getCachedTranslations = function () {
505
505
  return this.translationsCache;
506
506
  };
507
507
  TranslationService.prototype.loadTranslations = function (lang) {
@@ -521,7 +521,7 @@ var TranslationService = /** @class */ (function () {
521
521
  _a.label = 2;
522
522
  case 2:
523
523
  this.fetchPromises[lang] = undefined;
524
- return [2 /*return*/];
524
+ return [2 /*return*/, this.translationsCache.get(lang)];
525
525
  }
526
526
  });
527
527
  });
@@ -762,23 +762,25 @@ var TranslationService = /** @class */ (function () {
762
762
  var data, e_4;
763
763
  return __generator(this, function (_a) {
764
764
  switch (_a.label) {
765
- case 0:
766
- this.coreService.checkScope('translations.view');
767
- _a.label = 1;
765
+ case 0: return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
768
766
  case 1:
769
- _a.trys.push([1, 3, , 4]);
770
- return [4 /*yield*/, this.apiHttpService.fetchJson("v2/projects/translations/".concat(language))];
767
+ _a.sent();
768
+ this.coreService.checkScope('translations.view');
769
+ _a.label = 2;
771
770
  case 2:
771
+ _a.trys.push([2, 4, , 5]);
772
+ return [4 /*yield*/, this.apiHttpService.fetchJson("v2/projects/translations/".concat(language))];
773
+ case 3:
772
774
  data = _a.sent();
773
775
  this.setLanguageData(language, data[language] || {});
774
- return [3 /*break*/, 4];
775
- case 3:
776
+ return [3 /*break*/, 5];
777
+ case 4:
776
778
  e_4 = _a.sent();
777
779
  // eslint-disable-next-line no-console
778
780
  console.error('Error while fetching localization data from API.', e_4);
779
781
  this.setEmptyLanguageData(language);
780
782
  return [2 /*return*/];
781
- case 4: return [2 /*return*/];
783
+ case 5: return [2 /*return*/];
782
784
  }
783
785
  });
784
786
  });
@@ -1575,6 +1577,24 @@ var CoreService = /** @class */ (function () {
1575
1577
  throw new Error("Api key not permitted to do this, please add 'translations.view' scope.");
1576
1578
  }
1577
1579
  };
1580
+ CoreService.prototype.loadApiKeyDetails = function () {
1581
+ return __awaiter(this, void 0, void 0, function () {
1582
+ var details;
1583
+ return __generator(this, function (_a) {
1584
+ switch (_a.label) {
1585
+ case 0:
1586
+ if (!(this.properties.scopes === undefined)) return [3 /*break*/, 2];
1587
+ return [4 /*yield*/, this.getApiKeyDetails()];
1588
+ case 1:
1589
+ details = _a.sent();
1590
+ this.properties.scopes = details.scopes;
1591
+ this.properties.projectId = details.projectId;
1592
+ _a.label = 2;
1593
+ case 2: return [2 /*return*/];
1594
+ }
1595
+ });
1596
+ });
1597
+ };
1578
1598
  return CoreService;
1579
1599
  }());
1580
1600
 
@@ -2224,51 +2244,39 @@ var Coder$1 = /** @class */ (function () {
2224
2244
  return result;
2225
2245
  };
2226
2246
  Coder.prototype.unwrap = function (text) {
2227
- return __awaiter(this, void 0, void 0, function () {
2228
- var matchRegexp, keysAndParams, matched, match, start, result, pre, _a, fullMatch, wrapped, unwrapped, index, input, translated;
2229
- return __generator(this, function (_b) {
2230
- switch (_b.label) {
2231
- case 0:
2232
- matchRegexp = new RegExp(this.rawUnWrapRegex, 'gs');
2233
- keysAndParams = [];
2234
- matched = false;
2235
- start = 0;
2236
- result = '';
2237
- _b.label = 1;
2238
- case 1:
2239
- if (!((match = matchRegexp.exec(text)) !== null)) return [3 /*break*/, 3];
2240
- pre = match[1];
2241
- _a = __read(match, 4), fullMatch = _a[0], wrapped = _a[2], unwrapped = _a[3];
2242
- index = match.index, input = match.input;
2243
- result += input.substr(start, index - start);
2244
- start = index + fullMatch.length;
2245
- if (pre === '\\') {
2246
- if (!TextHelper.isCharEscaped(index, text)) {
2247
- result += wrapped;
2248
- return [3 /*break*/, 1];
2249
- }
2250
- pre = '';
2251
- }
2252
- return [4 /*yield*/, this.getTranslatedWithMetadata(unwrapped)];
2253
- case 2:
2254
- translated = _b.sent();
2255
- keysAndParams.push({
2256
- key: translated.key,
2257
- params: translated.params,
2258
- defaultValue: translated.defaultValue,
2259
- });
2260
- matched = true;
2261
- result += pre + translated.translated;
2262
- return [3 /*break*/, 1];
2263
- case 3:
2264
- result += text.substring(start);
2265
- if (matched) {
2266
- return [2 /*return*/, { text: result, keys: keysAndParams }];
2267
- }
2268
- return [2 /*return*/, undefined];
2247
+ var matchRegexp = new RegExp(this.rawUnWrapRegex, 'gs');
2248
+ var keysAndParams = [];
2249
+ var matched = false;
2250
+ var match;
2251
+ var start = 0;
2252
+ var result = '';
2253
+ while ((match = matchRegexp.exec(text)) !== null) {
2254
+ var pre = match[1];
2255
+ var _a = __read(match, 4), fullMatch = _a[0]; _a[1]; var wrapped = _a[2], unwrapped = _a[3];
2256
+ var index = match.index, input = match.input;
2257
+ result += input.substr(start, index - start);
2258
+ start = index + fullMatch.length;
2259
+ if (pre === '\\') {
2260
+ if (!TextHelper.isCharEscaped(index, text)) {
2261
+ result += wrapped;
2262
+ continue;
2269
2263
  }
2264
+ pre = '';
2265
+ }
2266
+ var translated = this.getTranslatedWithMetadata(unwrapped);
2267
+ keysAndParams.push({
2268
+ key: translated.key,
2269
+ params: translated.params,
2270
+ defaultValue: translated.defaultValue,
2270
2271
  });
2271
- });
2272
+ matched = true;
2273
+ result += pre + translated.translated;
2274
+ }
2275
+ result += text.substring(start);
2276
+ if (matched) {
2277
+ return { text: result, keys: keysAndParams };
2278
+ }
2279
+ return undefined;
2272
2280
  };
2273
2281
  Coder.prototype.wrap = function (key, params, defaultValue) {
2274
2282
  var _this = this;
@@ -2285,19 +2293,9 @@ var Coder$1 = /** @class */ (function () {
2285
2293
  return "".concat(this.properties.config.inputPrefix).concat(this.escapeParam(key)).concat(defaultString).concat(paramString).concat(this.properties.config.inputSuffix);
2286
2294
  };
2287
2295
  Coder.prototype.getTranslatedWithMetadata = function (text) {
2288
- return __awaiter(this, void 0, void 0, function () {
2289
- var _a, key, params, defaultValue, translated;
2290
- return __generator(this, function (_b) {
2291
- switch (_b.label) {
2292
- case 0:
2293
- _a = Coder.parseUnwrapped(text), key = _a.key, params = _a.params, defaultValue = _a.defaultValue;
2294
- return [4 /*yield*/, this.textService.translate(key, params, undefined, false, defaultValue)];
2295
- case 1:
2296
- translated = _b.sent();
2297
- return [2 /*return*/, { translated: translated, key: key, params: params, defaultValue: defaultValue }];
2298
- }
2299
- });
2300
- });
2296
+ var _a = Coder.parseUnwrapped(text), key = _a.key, params = _a.params, defaultValue = _a.defaultValue;
2297
+ var translated = this.textService.instant(key, params, undefined, false, defaultValue);
2298
+ return { translated: translated, key: key, params: params, defaultValue: defaultValue };
2301
2299
  };
2302
2300
  return Coder;
2303
2301
  }());
@@ -2732,31 +2730,26 @@ var Coder = /** @class */ (function () {
2732
2730
  this.defaultMemory = new ValueMemory();
2733
2731
  }
2734
2732
  Coder.prototype.unwrap = function (text) {
2735
- return __awaiter(this, void 0, void 0, function () {
2736
- var keysAndParams, messages, result;
2737
- var _this = this;
2738
- return __generator(this, function (_a) {
2739
- keysAndParams = [];
2740
- messages = decodeFromText(text);
2741
- messages.forEach(function (msg) {
2742
- var _a = __read(stringToCodePoints(msg), 2), keyCode = _a[0], defaultCode = _a[1];
2743
- var key = _this.keyMemory.numberToValue(keyCode);
2744
- var defaultValue = defaultCode !== undefined
2745
- ? _this.defaultMemory.numberToValue(defaultCode)
2746
- : undefined;
2747
- keysAndParams.push({
2748
- key: key,
2749
- params: undefined,
2750
- defaultValue: defaultValue,
2751
- });
2752
- });
2753
- result = removeSecrets(text);
2754
- if (keysAndParams.length) {
2755
- return [2 /*return*/, { text: result, keys: keysAndParams }];
2756
- }
2757
- return [2 /*return*/, undefined];
2733
+ var _this = this;
2734
+ var keysAndParams = [];
2735
+ var messages = decodeFromText(text);
2736
+ messages.forEach(function (msg) {
2737
+ var _a = __read(stringToCodePoints(msg), 2), keyCode = _a[0], defaultCode = _a[1];
2738
+ var key = _this.keyMemory.numberToValue(keyCode);
2739
+ var defaultValue = defaultCode !== undefined
2740
+ ? _this.defaultMemory.numberToValue(defaultCode)
2741
+ : undefined;
2742
+ keysAndParams.push({
2743
+ key: key,
2744
+ params: undefined,
2745
+ defaultValue: defaultValue,
2758
2746
  });
2759
2747
  });
2748
+ var result = removeSecrets(text);
2749
+ if (keysAndParams.length) {
2750
+ return { text: result, keys: keysAndParams };
2751
+ }
2752
+ return undefined;
2760
2753
  };
2761
2754
  Coder.prototype.wrap = function (key, _params, defaultValue, translation) {
2762
2755
  if (defaultValue === void 0) { defaultValue = undefined; }
@@ -2904,20 +2897,6 @@ var Tolgee = /** @class */ (function () {
2904
2897
  };
2905
2898
  this.dependencyService = new DependencyService();
2906
2899
  }
2907
- Tolgee.use = function (module) {
2908
- return new Tolgee().use(module);
2909
- };
2910
- Tolgee.init = function (config) {
2911
- return new Tolgee().init(config);
2912
- };
2913
- Tolgee.prototype.use = function (module) {
2914
- this.dependencyService.moduleService.addModule(module);
2915
- return this;
2916
- };
2917
- Tolgee.prototype.init = function (config) {
2918
- this.dependencyService.init(config);
2919
- return this;
2920
- };
2921
2900
  Object.defineProperty(Tolgee.prototype, "properties", {
2922
2901
  get: function () {
2923
2902
  return this.dependencyService.properties;
@@ -2925,28 +2904,26 @@ var Tolgee = /** @class */ (function () {
2925
2904
  enumerable: false,
2926
2905
  configurable: true
2927
2906
  });
2928
- Object.defineProperty(Tolgee.prototype, "translationService", {
2929
- get: function () {
2930
- return this.dependencyService.translationService;
2931
- },
2932
- enumerable: false,
2933
- configurable: true
2934
- });
2935
- Object.defineProperty(Tolgee.prototype, "coreService", {
2936
- get: function () {
2937
- return this.dependencyService.coreService;
2938
- },
2939
- enumerable: false,
2940
- configurable: true
2941
- });
2942
2907
  Object.defineProperty(Tolgee.prototype, "lang", {
2943
2908
  get: function () {
2944
2909
  return this.properties.currentLanguage;
2945
2910
  },
2946
- set: function (value) {
2947
- this.properties.currentLanguage = value;
2948
- this.dependencyService.eventService
2949
- .LANGUAGE_CHANGED.emit(value);
2911
+ /**
2912
+ * This sets a new language.
2913
+ *
2914
+ * Using this setter can behave buggy when you change languages
2915
+ * too fast, since it changes the language property before
2916
+ * translations are actually loaded.
2917
+ * @deprecated use asynchronous changeLanguage method.
2918
+ */
2919
+ set: function (newLanguage) {
2920
+ var _this = this;
2921
+ this.properties.currentLanguage = newLanguage;
2922
+ this.dependencyService.translationService
2923
+ .loadTranslations(newLanguage)
2924
+ .then(function () {
2925
+ _this.emitLangChangeEvent(newLanguage);
2926
+ });
2950
2927
  },
2951
2928
  enumerable: false,
2952
2929
  configurable: true
@@ -2973,6 +2950,10 @@ var Tolgee = /** @class */ (function () {
2973
2950
  configurable: true
2974
2951
  });
2975
2952
  Object.defineProperty(Tolgee.prototype, "onLangLoaded", {
2953
+ /**
2954
+ * Is emitted when language translations are loaded for the first time.
2955
+ * It is not emitted when language is changed and translations were loaded before.
2956
+ */
2976
2957
  get: function () {
2977
2958
  return this.dependencyService.eventService.LANGUAGE_LOADED;
2978
2959
  },
@@ -3004,6 +2985,49 @@ var Tolgee = /** @class */ (function () {
3004
2985
  enumerable: false,
3005
2986
  configurable: true
3006
2987
  });
2988
+ Object.defineProperty(Tolgee.prototype, "coreService", {
2989
+ get: function () {
2990
+ return this.dependencyService.coreService;
2991
+ },
2992
+ enumerable: false,
2993
+ configurable: true
2994
+ });
2995
+ Tolgee.use = function (module) {
2996
+ return new Tolgee().use(module);
2997
+ };
2998
+ Tolgee.init = function (config) {
2999
+ return new Tolgee().init(config);
3000
+ };
3001
+ /**
3002
+ * Sets the new language.
3003
+ *
3004
+ * Emits the onLangChange and onLangChangeAndLoad events after
3005
+ * the translations are loaded.
3006
+ *
3007
+ * @return Promise<void> Resolves when translations are loaded
3008
+ */
3009
+ Tolgee.prototype.changeLanguage = function (newLanguage) {
3010
+ return __awaiter(this, void 0, void 0, function () {
3011
+ return __generator(this, function (_a) {
3012
+ switch (_a.label) {
3013
+ case 0: return [4 /*yield*/, this.dependencyService.translationService.loadTranslations(newLanguage)];
3014
+ case 1:
3015
+ _a.sent();
3016
+ this.properties.currentLanguage = newLanguage;
3017
+ this.emitLangChangeEvent(newLanguage);
3018
+ return [2 /*return*/];
3019
+ }
3020
+ });
3021
+ });
3022
+ };
3023
+ Tolgee.prototype.use = function (module) {
3024
+ this.dependencyService.moduleService.addModule(module);
3025
+ return this;
3026
+ };
3027
+ Tolgee.prototype.init = function (config) {
3028
+ this.dependencyService.init(config);
3029
+ return this;
3030
+ };
3007
3031
  Tolgee.prototype.run = function () {
3008
3032
  return __awaiter(this, void 0, void 0, function () {
3009
3033
  return __generator(this, function (_a) {
@@ -3011,18 +3035,18 @@ var Tolgee = /** @class */ (function () {
3011
3035
  case 0:
3012
3036
  this.dependencyService.run();
3013
3037
  if (!(this.properties.config.mode === 'development')) return [3 /*break*/, 2];
3014
- return [4 /*yield*/, this.loadApiKeyDetails()];
3038
+ return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
3015
3039
  case 1:
3016
3040
  _a.sent();
3017
3041
  _a.label = 2;
3018
- case 2: return [4 /*yield*/, this.translationService.loadTranslations()];
3042
+ case 2: return [4 /*yield*/, this.dependencyService.translationService.loadTranslations()];
3019
3043
  case 3:
3020
3044
  _a.sent();
3021
3045
  return [4 /*yield*/, this.dependencyService.pluginManager.run()];
3022
3046
  case 4:
3023
3047
  _a.sent();
3024
3048
  if (!this.properties.config.preloadFallback) return [3 /*break*/, 6];
3025
- return [4 /*yield*/, this.translationService.loadTranslations(this.properties.config.fallbackLanguage)];
3049
+ return [4 /*yield*/, this.dependencyService.translationService.loadTranslations(this.properties.config.fallbackLanguage)];
3026
3050
  case 5:
3027
3051
  _a.sent();
3028
3052
  _a.label = 6;
@@ -3065,18 +3089,15 @@ var Tolgee = /** @class */ (function () {
3065
3089
  props.defaultValue !== undefined ? props.defaultValue : defaultValue;
3066
3090
  orEmpty = props.orEmpty;
3067
3091
  }
3068
- if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 4];
3069
- return [4 /*yield*/, this.loadApiKeyDetails()];
3092
+ return [4 /*yield*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3070
3093
  case 1:
3071
- _a.sent();
3072
- return [4 /*yield*/, this.translationService.loadTranslations()];
3094
+ translation = _a.sent();
3095
+ if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 3];
3096
+ return [4 /*yield*/, this.coreService.loadApiKeyDetails()];
3073
3097
  case 2:
3074
3098
  _a.sent();
3075
- return [4 /*yield*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3076
- case 3:
3077
- translation = _a.sent();
3078
3099
  return [2 /*return*/, this.dependencyService.wrapper.wrap(key, params, defaultValue, translation)];
3079
- case 4: return [2 /*return*/, this.dependencyService.textService.translate(key, params, undefined, orEmpty, defaultValue)];
3100
+ case 3: return [2 /*return*/, translation];
3080
3101
  }
3081
3102
  });
3082
3103
  });
@@ -3109,23 +3130,22 @@ var Tolgee = /** @class */ (function () {
3109
3130
  }
3110
3131
  return translation;
3111
3132
  };
3112
- Tolgee.prototype.loadApiKeyDetails = function () {
3113
- return __awaiter(this, void 0, void 0, function () {
3114
- var details;
3115
- return __generator(this, function (_a) {
3116
- switch (_a.label) {
3117
- case 0:
3118
- if (!(this.properties.scopes === undefined)) return [3 /*break*/, 2];
3119
- return [4 /*yield*/, this.dependencyService.coreService.getApiKeyDetails()];
3120
- case 1:
3121
- details = _a.sent();
3122
- this.properties.scopes = details.scopes;
3123
- this.properties.projectId = details.projectId;
3124
- _a.label = 2;
3125
- case 2: return [2 /*return*/];
3126
- }
3127
- });
3128
- });
3133
+ /**
3134
+ * Get currently cached translations for all languages
3135
+ */
3136
+ Tolgee.prototype.getCachedTranslations = function () {
3137
+ return this.dependencyService.translationService.getCachedTranslations();
3138
+ };
3139
+ /**
3140
+ * Loads translations for given language or returns them from cache
3141
+ * @returns Loaded translations
3142
+ */
3143
+ Tolgee.prototype.loadTranslations = function (lang) {
3144
+ return this.dependencyService.translationService.loadTranslations(lang);
3145
+ };
3146
+ Tolgee.prototype.emitLangChangeEvent = function (value) {
3147
+ var langChangedEmitter = this.onLangChange;
3148
+ langChangedEmitter.emit(value);
3129
3149
  };
3130
3150
  return Tolgee;
3131
3151
  }());