@tolgee/core 2.1.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +2 -1
  2. package/dist/tolgee.cjs.js +86 -32
  3. package/dist/tolgee.cjs.js.map +1 -1
  4. package/dist/tolgee.cjs.min.js +1 -1
  5. package/dist/tolgee.cjs.min.js.map +1 -1
  6. package/dist/tolgee.esm.js +16 -0
  7. package/dist/tolgee.esm.js.map +1 -0
  8. package/dist/tolgee.umd.js +86 -32
  9. package/dist/tolgee.umd.js.map +1 -1
  10. package/dist/tolgee.umd.min.js +1 -1
  11. package/dist/tolgee.umd.min.js.map +1 -1
  12. package/lib/Tolgee.js +4 -2
  13. package/lib/Tolgee.js.map +1 -1
  14. package/lib/TolgeeConfig.d.ts +1 -1
  15. package/lib/handlers/CoreHandler.js +4 -2
  16. package/lib/handlers/CoreHandler.js.map +1 -1
  17. package/lib/highlighter/TranslationHighlighter.d.ts +2 -2
  18. package/lib/highlighter/TranslationHighlighter.js +89 -28
  19. package/lib/highlighter/TranslationHighlighter.js.map +1 -1
  20. package/lib/types.d.ts +1 -0
  21. package/package.json +5 -5
  22. package/lib/Observer.test.d.ts +0 -2
  23. package/lib/Observer.test.js +0 -190
  24. package/lib/Observer.test.js.map +0 -1
  25. package/lib/Properties.test.d.ts +0 -1
  26. package/lib/Properties.test.js +0 -77
  27. package/lib/Properties.test.js.map +0 -1
  28. package/lib/Tolgee.test.d.ts +0 -1
  29. package/lib/Tolgee.test.js +0 -451
  30. package/lib/Tolgee.test.js.map +0 -1
  31. package/lib/TolgeeConfig.test.d.ts +0 -1
  32. package/lib/TolgeeConfig.test.js +0 -18
  33. package/lib/TolgeeConfig.test.js.map +0 -1
  34. package/lib/__testFixtures/classMock.d.ts +0 -3
  35. package/lib/__testFixtures/classMock.js +0 -8
  36. package/lib/__testFixtures/classMock.js.map +0 -1
  37. package/lib/__testFixtures/createElement.d.ts +0 -2
  38. package/lib/__testFixtures/createElement.js +0 -58
  39. package/lib/__testFixtures/createElement.js.map +0 -1
  40. package/lib/__testFixtures/createTestDom.d.ts +0 -9
  41. package/lib/__testFixtures/createTestDom.js +0 -18
  42. package/lib/__testFixtures/createTestDom.js.map +0 -1
  43. package/lib/__testFixtures/mocked.d.ts +0 -20
  44. package/lib/__testFixtures/mocked.js +0 -24
  45. package/lib/__testFixtures/mocked.js.map +0 -1
  46. package/lib/handlers/AttributeHandler.test.d.ts +0 -1
  47. package/lib/handlers/AttributeHandler.test.js +0 -177
  48. package/lib/handlers/AttributeHandler.test.js.map +0 -1
  49. package/lib/handlers/CoreHandler.test.d.ts +0 -1
  50. package/lib/handlers/CoreHandler.test.js +0 -148
  51. package/lib/handlers/CoreHandler.test.js.map +0 -1
  52. package/lib/handlers/TextHandler.test.d.ts +0 -1
  53. package/lib/handlers/TextHandler.test.js +0 -270
  54. package/lib/handlers/TextHandler.test.js.map +0 -1
  55. package/lib/helpers/TextHelper.test.d.ts +0 -1
  56. package/lib/helpers/TextHelper.test.js +0 -107
  57. package/lib/helpers/TextHelper.test.js.map +0 -1
  58. package/lib/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  59. package/lib/highlighter/HighlightFunctionsInitializer.test.js +0 -81
  60. package/lib/highlighter/HighlightFunctionsInitializer.test.js.map +0 -1
  61. package/lib/highlighter/MouseEventHandler.test.d.ts +0 -1
  62. package/lib/highlighter/MouseEventHandler.test.js +0 -195
  63. package/lib/highlighter/MouseEventHandler.test.js.map +0 -1
  64. package/lib/highlighter/TranslationHighlighter.test.d.ts +0 -1
  65. package/lib/highlighter/TranslationHighlighter.test.js +0 -207
  66. package/lib/highlighter/TranslationHighlighter.test.js.map +0 -1
  67. package/lib/services/CoreService.test.d.ts +0 -1
  68. package/lib/services/CoreService.test.js +0 -179
  69. package/lib/services/CoreService.test.js.map +0 -1
  70. package/lib/services/DependencyStore.test.d.ts +0 -1
  71. package/lib/services/DependencyStore.test.js +0 -67
  72. package/lib/services/DependencyStore.test.js.map +0 -1
  73. package/lib/services/ElementRegistrar.test.d.ts +0 -1
  74. package/lib/services/ElementRegistrar.test.js +0 -200
  75. package/lib/services/ElementRegistrar.test.js.map +0 -1
  76. package/lib/services/TextService.test.d.ts +0 -1
  77. package/lib/services/TextService.test.js +0 -430
  78. package/lib/services/TextService.test.js.map +0 -1
  79. package/lib/services/TranslationService.test.d.ts +0 -1
  80. package/lib/services/TranslationService.test.js +0 -649
  81. package/lib/services/TranslationService.test.js.map +0 -1
  82. package/lib/toolsManager/Messages.test.d.ts +0 -1
  83. package/lib/toolsManager/Messages.test.js +0 -114
  84. package/lib/toolsManager/Messages.test.js.map +0 -1
  85. package/lib/toolsManager/PluginManager.test.d.ts +0 -1
  86. package/lib/toolsManager/PluginManager.test.js +0 -120
  87. package/lib/toolsManager/PluginManager.test.js.map +0 -1
package/README.md CHANGED
@@ -1,10 +1,11 @@
1
+ # Tolgee core library
1
2
  ![test workflow](https://github.com/tolgee/tolgee-js/actions/workflows/test.yml/badge.svg)
2
3
  ![@tolgee/core version](https://img.shields.io/npm/v/@tolgee/core?label=%40tolgee%2Fcore)
3
4
  ![types typescript](https://img.shields.io/badge/Types-Typescript-blue)
4
5
  [![twitter](https://img.shields.io/twitter/follow/Tolgee_i18n?style=social)](https://twitter.com/Tolgee_i18n)
5
6
  [![github stars](https://img.shields.io/github/stars/tolgee/tolgee-js?style=social)](https://github.com/tolgee/tolgee-js)
6
7
 
7
- # Tolgee core library
8
+
8
9
 
9
10
  [<img src="https://raw.githubusercontent.com/tolgee/documentation/main/tolgee_logo_text.svg" alt="Tolgee" width="200" />](https://tolgee.io)
10
11
 
@@ -3785,40 +3785,26 @@ var TranslationHighlighter = /** @class */ (function () {
3785
3785
  var _this = this;
3786
3786
  this.dependencies = dependencies;
3787
3787
  this.translationEdit = function (e, element) { return __awaiter(_this, void 0, void 0, function () {
3788
- var key;
3788
+ var renderer, key;
3789
3789
  return __generator(this, function (_a) {
3790
3790
  switch (_a.label) {
3791
- case 0:
3792
- if (!(typeof this.renderer === 'object')) return [3 /*break*/, 2];
3793
- return [4 /*yield*/, this.getKeyAndDefault(e, element)];
3791
+ case 0: return [4 /*yield*/, this.getRenderer()];
3794
3792
  case 1:
3793
+ renderer = _a.sent();
3794
+ if (!(typeof renderer === 'object')) return [3 /*break*/, 3];
3795
+ return [4 /*yield*/, this.getKeyAndDefault(e, element)];
3796
+ case 2:
3795
3797
  key = _a.sent();
3796
3798
  if (key) {
3797
- this.renderer.renderViewer(key.key, key.defaultValue);
3799
+ renderer.renderViewer(key.key, key.defaultValue);
3798
3800
  return [2 /*return*/];
3799
3801
  }
3800
3802
  return [2 /*return*/];
3801
- case 2:
3802
- // eslint-disable-next-line no-console
3803
- console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. ' +
3804
- 'To disable highlighting use production mode.');
3805
- return [2 /*return*/];
3803
+ case 3: return [2 /*return*/];
3806
3804
  }
3807
3805
  });
3808
3806
  }); };
3809
3807
  }
3810
- Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3811
- get: function () {
3812
- if (this._renderer === undefined) {
3813
- if (typeof this.dependencies.properties.config.ui === 'function') {
3814
- this._renderer = new this.dependencies.properties.config.ui(this.dependencies);
3815
- }
3816
- }
3817
- return this._renderer;
3818
- },
3819
- enumerable: false,
3820
- configurable: true
3821
- });
3822
3808
  TranslationHighlighter.getKeyOptions = function (node) {
3823
3809
  var nodes = Array.from(node._tolgee.nodes);
3824
3810
  return nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc), false), __read(curr._tolgee.keys.map(function (k) { return ({
@@ -3836,9 +3822,70 @@ var TranslationHighlighter = /** @class */ (function () {
3836
3822
  }
3837
3823
  }); }); });
3838
3824
  };
3825
+ TranslationHighlighter.prototype.getRenderer = function () {
3826
+ return __awaiter(this, void 0, void 0, function () {
3827
+ var possibleProviders, possibleProviders_1, possibleProviders_1_1, possibleProvider, constructorProvider, constructor, constructor, e_2_1;
3828
+ var e_2, _a;
3829
+ return __generator(this, function (_b) {
3830
+ switch (_b.label) {
3831
+ case 0:
3832
+ if (!(this._renderer === undefined)) return [3 /*break*/, 11];
3833
+ possibleProviders = [
3834
+ this.dependencies.properties.config.ui,
3835
+ window['@tolgee/ui'],
3836
+ ];
3837
+ _b.label = 1;
3838
+ case 1:
3839
+ _b.trys.push([1, 8, 9, 10]);
3840
+ possibleProviders_1 = __values(possibleProviders), possibleProviders_1_1 = possibleProviders_1.next();
3841
+ _b.label = 2;
3842
+ case 2:
3843
+ if (!!possibleProviders_1_1.done) return [3 /*break*/, 7];
3844
+ possibleProvider = possibleProviders_1_1.value;
3845
+ if (!(typeof possibleProvider === 'function')) return [3 /*break*/, 6];
3846
+ _b.label = 3;
3847
+ case 3:
3848
+ _b.trys.push([3, 5, , 6]);
3849
+ constructorProvider = possibleProvider;
3850
+ return [4 /*yield*/, constructorProvider()];
3851
+ case 4:
3852
+ constructor = _b.sent();
3853
+ this._renderer = new constructor(this.dependencies);
3854
+ return [3 /*break*/, 6];
3855
+ case 5:
3856
+ _b.sent();
3857
+ constructor = possibleProvider;
3858
+ this._renderer = new constructor(this.dependencies);
3859
+ return [3 /*break*/, 6];
3860
+ case 6:
3861
+ possibleProviders_1_1 = possibleProviders_1.next();
3862
+ return [3 /*break*/, 2];
3863
+ case 7: return [3 /*break*/, 10];
3864
+ case 8:
3865
+ e_2_1 = _b.sent();
3866
+ e_2 = { error: e_2_1 };
3867
+ return [3 /*break*/, 10];
3868
+ case 9:
3869
+ try {
3870
+ if (possibleProviders_1_1 && !possibleProviders_1_1.done && (_a = possibleProviders_1.return)) _a.call(possibleProviders_1);
3871
+ }
3872
+ finally { if (e_2) throw e_2.error; }
3873
+ return [7 /*endfinally*/];
3874
+ case 10:
3875
+ if (this._renderer === undefined) {
3876
+ // eslint-disable-next-line no-console
3877
+ console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. ' +
3878
+ 'To disable highlighting use production mode.');
3879
+ }
3880
+ _b.label = 11;
3881
+ case 11: return [2 /*return*/, this._renderer];
3882
+ }
3883
+ });
3884
+ });
3885
+ };
3839
3886
  TranslationHighlighter.prototype.getKeyAndDefault = function (mouseEvent, element) {
3840
3887
  return __awaiter(this, void 0, void 0, function () {
3841
- var keysWithDefaults, keySet, selectedKey_1, found;
3888
+ var keysWithDefaults, keySet, renderer, selectedKey_1, found;
3842
3889
  return __generator(this, function (_a) {
3843
3890
  switch (_a.label) {
3844
3891
  case 0:
@@ -3850,19 +3897,22 @@ var TranslationHighlighter = /** @class */ (function () {
3850
3897
  }
3851
3898
  keysWithDefaults = TranslationHighlighter.getKeyOptions(element);
3852
3899
  keySet = new Set(keysWithDefaults.map(function (keyWithDefault) { return keyWithDefault.key; }));
3853
- if (!(keySet.size > 1)) return [3 /*break*/, 2];
3854
- return [4 /*yield*/, this.renderer.getKey({
3900
+ if (!(keySet.size > 1)) return [3 /*break*/, 3];
3901
+ return [4 /*yield*/, this.getRenderer()];
3902
+ case 1:
3903
+ renderer = _a.sent();
3904
+ return [4 /*yield*/, renderer.getKey({
3855
3905
  keys: keySet,
3856
3906
  openEvent: mouseEvent,
3857
3907
  })];
3858
- case 1:
3908
+ case 2:
3859
3909
  selectedKey_1 = _a.sent();
3860
3910
  found = keysWithDefaults.find(function (kwd) { return kwd.key === selectedKey_1; });
3861
3911
  if (found) {
3862
3912
  return [2 /*return*/, found];
3863
3913
  }
3864
- _a.label = 2;
3865
- case 2:
3914
+ _a.label = 3;
3915
+ case 3:
3866
3916
  if (keySet.size === 1) {
3867
3917
  return [2 /*return*/, keysWithDefaults[0]];
3868
3918
  }
@@ -4271,8 +4321,10 @@ var CoreHandler = /** @class */ (function () {
4271
4321
  this.attributeHandler = attributeHandler;
4272
4322
  this.textService = textService;
4273
4323
  this.wrappedHandler = wrappedHandler;
4274
- eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4275
- eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4324
+ if (typeof window !== 'undefined') {
4325
+ eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4326
+ eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4327
+ }
4276
4328
  }
4277
4329
  CoreHandler.prototype.handleSubtree = function (target) {
4278
4330
  return __awaiter(this, void 0, void 0, function () {
@@ -4928,11 +4980,12 @@ var Tolgee = /** @class */ (function () {
4928
4980
  if (noWrap === void 0) { noWrap = false; }
4929
4981
  if (defaultValue === void 0) { defaultValue = undefined; }
4930
4982
  return __awaiter(this, void 0, void 0, function () {
4931
- var key, props;
4983
+ var key, orEmpty, props;
4932
4984
  return __generator(this, function (_a) {
4933
4985
  switch (_a.label) {
4934
4986
  case 0:
4935
4987
  key = typeof keyOrProps === 'string' ? keyOrProps : keyOrProps.key;
4988
+ orEmpty = undefined;
4936
4989
  if (typeof keyOrProps === 'object') {
4937
4990
  props = keyOrProps;
4938
4991
  // if values are not provided in props object, get them from function
@@ -4941,6 +4994,7 @@ var Tolgee = /** @class */ (function () {
4941
4994
  noWrap = props.noWrap !== undefined ? props.noWrap : noWrap;
4942
4995
  defaultValue =
4943
4996
  props.defaultValue !== undefined ? props.defaultValue : defaultValue;
4997
+ orEmpty = props.orEmpty;
4944
4998
  }
4945
4999
  if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 3];
4946
5000
  return [4 /*yield*/, this.loadScopes()];
@@ -4950,7 +5004,7 @@ var Tolgee = /** @class */ (function () {
4950
5004
  case 2:
4951
5005
  _a.sent();
4952
5006
  return [2 /*return*/, this.dependencyStore.textService.wrap(key, params, defaultValue)];
4953
- case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined, undefined, defaultValue)];
5007
+ case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined, orEmpty, defaultValue)];
4954
5008
  }
4955
5009
  });
4956
5010
  });