@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
@@ -3787,40 +3787,26 @@
3787
3787
  var _this = this;
3788
3788
  this.dependencies = dependencies;
3789
3789
  this.translationEdit = function (e, element) { return __awaiter(_this, void 0, void 0, function () {
3790
- var key;
3790
+ var renderer, key;
3791
3791
  return __generator(this, function (_a) {
3792
3792
  switch (_a.label) {
3793
- case 0:
3794
- if (!(typeof this.renderer === 'object')) return [3 /*break*/, 2];
3795
- return [4 /*yield*/, this.getKeyAndDefault(e, element)];
3793
+ case 0: return [4 /*yield*/, this.getRenderer()];
3796
3794
  case 1:
3795
+ renderer = _a.sent();
3796
+ if (!(typeof renderer === 'object')) return [3 /*break*/, 3];
3797
+ return [4 /*yield*/, this.getKeyAndDefault(e, element)];
3798
+ case 2:
3797
3799
  key = _a.sent();
3798
3800
  if (key) {
3799
- this.renderer.renderViewer(key.key, key.defaultValue);
3801
+ renderer.renderViewer(key.key, key.defaultValue);
3800
3802
  return [2 /*return*/];
3801
3803
  }
3802
3804
  return [2 /*return*/];
3803
- case 2:
3804
- // eslint-disable-next-line no-console
3805
- console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. ' +
3806
- 'To disable highlighting use production mode.');
3807
- return [2 /*return*/];
3805
+ case 3: return [2 /*return*/];
3808
3806
  }
3809
3807
  });
3810
3808
  }); };
3811
3809
  }
3812
- Object.defineProperty(TranslationHighlighter.prototype, "renderer", {
3813
- get: function () {
3814
- if (this._renderer === undefined) {
3815
- if (typeof this.dependencies.properties.config.ui === 'function') {
3816
- this._renderer = new this.dependencies.properties.config.ui(this.dependencies);
3817
- }
3818
- }
3819
- return this._renderer;
3820
- },
3821
- enumerable: false,
3822
- configurable: true
3823
- });
3824
3810
  TranslationHighlighter.getKeyOptions = function (node) {
3825
3811
  var nodes = Array.from(node._tolgee.nodes);
3826
3812
  return nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc), false), __read(curr._tolgee.keys.map(function (k) { return ({
@@ -3838,9 +3824,70 @@
3838
3824
  }
3839
3825
  }); }); });
3840
3826
  };
3827
+ TranslationHighlighter.prototype.getRenderer = function () {
3828
+ return __awaiter(this, void 0, void 0, function () {
3829
+ var possibleProviders, possibleProviders_1, possibleProviders_1_1, possibleProvider, constructorProvider, constructor, constructor, e_2_1;
3830
+ var e_2, _a;
3831
+ return __generator(this, function (_b) {
3832
+ switch (_b.label) {
3833
+ case 0:
3834
+ if (!(this._renderer === undefined)) return [3 /*break*/, 11];
3835
+ possibleProviders = [
3836
+ this.dependencies.properties.config.ui,
3837
+ window['@tolgee/ui'],
3838
+ ];
3839
+ _b.label = 1;
3840
+ case 1:
3841
+ _b.trys.push([1, 8, 9, 10]);
3842
+ possibleProviders_1 = __values(possibleProviders), possibleProviders_1_1 = possibleProviders_1.next();
3843
+ _b.label = 2;
3844
+ case 2:
3845
+ if (!!possibleProviders_1_1.done) return [3 /*break*/, 7];
3846
+ possibleProvider = possibleProviders_1_1.value;
3847
+ if (!(typeof possibleProvider === 'function')) return [3 /*break*/, 6];
3848
+ _b.label = 3;
3849
+ case 3:
3850
+ _b.trys.push([3, 5, , 6]);
3851
+ constructorProvider = possibleProvider;
3852
+ return [4 /*yield*/, constructorProvider()];
3853
+ case 4:
3854
+ constructor = _b.sent();
3855
+ this._renderer = new constructor(this.dependencies);
3856
+ return [3 /*break*/, 6];
3857
+ case 5:
3858
+ _b.sent();
3859
+ constructor = possibleProvider;
3860
+ this._renderer = new constructor(this.dependencies);
3861
+ return [3 /*break*/, 6];
3862
+ case 6:
3863
+ possibleProviders_1_1 = possibleProviders_1.next();
3864
+ return [3 /*break*/, 2];
3865
+ case 7: return [3 /*break*/, 10];
3866
+ case 8:
3867
+ e_2_1 = _b.sent();
3868
+ e_2 = { error: e_2_1 };
3869
+ return [3 /*break*/, 10];
3870
+ case 9:
3871
+ try {
3872
+ if (possibleProviders_1_1 && !possibleProviders_1_1.done && (_a = possibleProviders_1.return)) _a.call(possibleProviders_1);
3873
+ }
3874
+ finally { if (e_2) throw e_2.error; }
3875
+ return [7 /*endfinally*/];
3876
+ case 10:
3877
+ if (this._renderer === undefined) {
3878
+ // eslint-disable-next-line no-console
3879
+ console.warn('Tolgee UI is not provided. To translate interactively provide tolgee ui constructor to "ui" configuration property. ' +
3880
+ 'To disable highlighting use production mode.');
3881
+ }
3882
+ _b.label = 11;
3883
+ case 11: return [2 /*return*/, this._renderer];
3884
+ }
3885
+ });
3886
+ });
3887
+ };
3841
3888
  TranslationHighlighter.prototype.getKeyAndDefault = function (mouseEvent, element) {
3842
3889
  return __awaiter(this, void 0, void 0, function () {
3843
- var keysWithDefaults, keySet, selectedKey_1, found;
3890
+ var keysWithDefaults, keySet, renderer, selectedKey_1, found;
3844
3891
  return __generator(this, function (_a) {
3845
3892
  switch (_a.label) {
3846
3893
  case 0:
@@ -3852,19 +3899,22 @@
3852
3899
  }
3853
3900
  keysWithDefaults = TranslationHighlighter.getKeyOptions(element);
3854
3901
  keySet = new Set(keysWithDefaults.map(function (keyWithDefault) { return keyWithDefault.key; }));
3855
- if (!(keySet.size > 1)) return [3 /*break*/, 2];
3856
- return [4 /*yield*/, this.renderer.getKey({
3902
+ if (!(keySet.size > 1)) return [3 /*break*/, 3];
3903
+ return [4 /*yield*/, this.getRenderer()];
3904
+ case 1:
3905
+ renderer = _a.sent();
3906
+ return [4 /*yield*/, renderer.getKey({
3857
3907
  keys: keySet,
3858
3908
  openEvent: mouseEvent,
3859
3909
  })];
3860
- case 1:
3910
+ case 2:
3861
3911
  selectedKey_1 = _a.sent();
3862
3912
  found = keysWithDefaults.find(function (kwd) { return kwd.key === selectedKey_1; });
3863
3913
  if (found) {
3864
3914
  return [2 /*return*/, found];
3865
3915
  }
3866
- _a.label = 2;
3867
- case 2:
3916
+ _a.label = 3;
3917
+ case 3:
3868
3918
  if (keySet.size === 1) {
3869
3919
  return [2 /*return*/, keysWithDefaults[0]];
3870
3920
  }
@@ -4273,8 +4323,10 @@
4273
4323
  this.attributeHandler = attributeHandler;
4274
4324
  this.textService = textService;
4275
4325
  this.wrappedHandler = wrappedHandler;
4276
- eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4277
- eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4326
+ if (typeof window !== 'undefined') {
4327
+ eventService.LANGUAGE_CHANGED.subscribe(this.refresh.bind(this));
4328
+ eventService.TRANSLATION_CHANGED.subscribe(this.refresh.bind(this));
4329
+ }
4278
4330
  }
4279
4331
  CoreHandler.prototype.handleSubtree = function (target) {
4280
4332
  return __awaiter(this, void 0, void 0, function () {
@@ -4930,11 +4982,12 @@
4930
4982
  if (noWrap === void 0) { noWrap = false; }
4931
4983
  if (defaultValue === void 0) { defaultValue = undefined; }
4932
4984
  return __awaiter(this, void 0, void 0, function () {
4933
- var key, props;
4985
+ var key, orEmpty, props;
4934
4986
  return __generator(this, function (_a) {
4935
4987
  switch (_a.label) {
4936
4988
  case 0:
4937
4989
  key = typeof keyOrProps === 'string' ? keyOrProps : keyOrProps.key;
4990
+ orEmpty = undefined;
4938
4991
  if (typeof keyOrProps === 'object') {
4939
4992
  props = keyOrProps;
4940
4993
  // if values are not provided in props object, get them from function
@@ -4943,6 +4996,7 @@
4943
4996
  noWrap = props.noWrap !== undefined ? props.noWrap : noWrap;
4944
4997
  defaultValue =
4945
4998
  props.defaultValue !== undefined ? props.defaultValue : defaultValue;
4999
+ orEmpty = props.orEmpty;
4946
5000
  }
4947
5001
  if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 3];
4948
5002
  return [4 /*yield*/, this.loadScopes()];
@@ -4952,7 +5006,7 @@
4952
5006
  case 2:
4953
5007
  _a.sent();
4954
5008
  return [2 /*return*/, this.dependencyStore.textService.wrap(key, params, defaultValue)];
4955
- case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined, undefined, defaultValue)];
5009
+ case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined, orEmpty, defaultValue)];
4956
5010
  }
4957
5011
  });
4958
5012
  });