@tolgee/core 2.2.0 → 2.8.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 (86) hide show
  1. package/README.md +2 -1
  2. package/dist/tolgee.cjs.js +84 -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 +84 -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/TolgeeConfig.d.ts +1 -1
  13. package/lib/handlers/CoreHandler.js +4 -2
  14. package/lib/handlers/CoreHandler.js.map +1 -1
  15. package/lib/highlighter/MouseEventHandler.js +2 -2
  16. package/lib/highlighter/MouseEventHandler.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/package.json +6 -6
  21. package/lib/Observer.test.d.ts +0 -2
  22. package/lib/Observer.test.js +0 -190
  23. package/lib/Observer.test.js.map +0 -1
  24. package/lib/Properties.test.d.ts +0 -1
  25. package/lib/Properties.test.js +0 -77
  26. package/lib/Properties.test.js.map +0 -1
  27. package/lib/Tolgee.test.d.ts +0 -1
  28. package/lib/Tolgee.test.js +0 -469
  29. package/lib/Tolgee.test.js.map +0 -1
  30. package/lib/TolgeeConfig.test.d.ts +0 -1
  31. package/lib/TolgeeConfig.test.js +0 -18
  32. package/lib/TolgeeConfig.test.js.map +0 -1
  33. package/lib/__testFixtures/classMock.d.ts +0 -3
  34. package/lib/__testFixtures/classMock.js +0 -8
  35. package/lib/__testFixtures/classMock.js.map +0 -1
  36. package/lib/__testFixtures/createElement.d.ts +0 -2
  37. package/lib/__testFixtures/createElement.js +0 -58
  38. package/lib/__testFixtures/createElement.js.map +0 -1
  39. package/lib/__testFixtures/createTestDom.d.ts +0 -9
  40. package/lib/__testFixtures/createTestDom.js +0 -18
  41. package/lib/__testFixtures/createTestDom.js.map +0 -1
  42. package/lib/__testFixtures/mocked.d.ts +0 -20
  43. package/lib/__testFixtures/mocked.js +0 -24
  44. package/lib/__testFixtures/mocked.js.map +0 -1
  45. package/lib/handlers/AttributeHandler.test.d.ts +0 -1
  46. package/lib/handlers/AttributeHandler.test.js +0 -177
  47. package/lib/handlers/AttributeHandler.test.js.map +0 -1
  48. package/lib/handlers/CoreHandler.test.d.ts +0 -1
  49. package/lib/handlers/CoreHandler.test.js +0 -148
  50. package/lib/handlers/CoreHandler.test.js.map +0 -1
  51. package/lib/handlers/TextHandler.test.d.ts +0 -1
  52. package/lib/handlers/TextHandler.test.js +0 -270
  53. package/lib/handlers/TextHandler.test.js.map +0 -1
  54. package/lib/helpers/TextHelper.test.d.ts +0 -1
  55. package/lib/helpers/TextHelper.test.js +0 -107
  56. package/lib/helpers/TextHelper.test.js.map +0 -1
  57. package/lib/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
  58. package/lib/highlighter/HighlightFunctionsInitializer.test.js +0 -81
  59. package/lib/highlighter/HighlightFunctionsInitializer.test.js.map +0 -1
  60. package/lib/highlighter/MouseEventHandler.test.d.ts +0 -1
  61. package/lib/highlighter/MouseEventHandler.test.js +0 -195
  62. package/lib/highlighter/MouseEventHandler.test.js.map +0 -1
  63. package/lib/highlighter/TranslationHighlighter.test.d.ts +0 -1
  64. package/lib/highlighter/TranslationHighlighter.test.js +0 -207
  65. package/lib/highlighter/TranslationHighlighter.test.js.map +0 -1
  66. package/lib/services/CoreService.test.d.ts +0 -1
  67. package/lib/services/CoreService.test.js +0 -179
  68. package/lib/services/CoreService.test.js.map +0 -1
  69. package/lib/services/DependencyStore.test.d.ts +0 -1
  70. package/lib/services/DependencyStore.test.js +0 -67
  71. package/lib/services/DependencyStore.test.js.map +0 -1
  72. package/lib/services/ElementRegistrar.test.d.ts +0 -1
  73. package/lib/services/ElementRegistrar.test.js +0 -200
  74. package/lib/services/ElementRegistrar.test.js.map +0 -1
  75. package/lib/services/TextService.test.d.ts +0 -1
  76. package/lib/services/TextService.test.js +0 -430
  77. package/lib/services/TextService.test.js.map +0 -1
  78. package/lib/services/TranslationService.test.d.ts +0 -1
  79. package/lib/services/TranslationService.test.js +0 -649
  80. package/lib/services/TranslationService.test.js.map +0 -1
  81. package/lib/toolsManager/Messages.test.d.ts +0 -1
  82. package/lib/toolsManager/Messages.test.js +0 -114
  83. package/lib/toolsManager/Messages.test.js.map +0 -1
  84. package/lib/toolsManager/PluginManager.test.d.ts +0 -1
  85. package/lib/toolsManager/PluginManager.test.js +0 -120
  86. 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
 
@@ -3684,7 +3684,7 @@ var MouseEventHandler = /** @class */ (function () {
3684
3684
  }
3685
3685
  };
3686
3686
  element.addEventListener('mouseover', onMouseOver);
3687
- element.addEventListener('click', onClick);
3687
+ element.addEventListener('click', onClick, { capture: true });
3688
3688
  var onMouseDownOrUp = function (e) {
3689
3689
  if (_this.areKeysDown()) {
3690
3690
  e.stopPropagation();
@@ -3698,7 +3698,7 @@ var MouseEventHandler = /** @class */ (function () {
3698
3698
  element.removeEventListener('mousedown', onMouseDownOrUp);
3699
3699
  element.removeEventListener('mouseup', onMouseDownOrUp);
3700
3700
  element.removeEventListener('mouseover', onMouseOver);
3701
- element.removeEventListener('click', onClick);
3701
+ element.removeEventListener('click', onClick, { capture: true });
3702
3702
  element.removeEventListener('mouseout', onMouseOut);
3703
3703
  };
3704
3704
  };
@@ -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 () {