@tolgee/core 2.0.0 → 2.4.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.
- package/README.md +1 -1
- package/dist/tolgee.cjs.js +51 -21
- package/dist/tolgee.cjs.js.map +1 -1
- package/dist/tolgee.cjs.min.js +1 -1
- package/dist/tolgee.cjs.min.js.map +1 -1
- package/dist/tolgee.esm.js +16 -0
- package/dist/tolgee.esm.js.map +1 -0
- package/dist/tolgee.umd.js +51 -21
- package/dist/tolgee.umd.js.map +1 -1
- package/dist/tolgee.umd.min.js +1 -1
- package/dist/tolgee.umd.min.js.map +1 -1
- package/lib/Tolgee.d.ts +1 -1
- package/lib/Tolgee.js +4 -2
- package/lib/Tolgee.js.map +1 -1
- package/lib/handlers/WrappedHandler.js +2 -0
- package/lib/handlers/WrappedHandler.js.map +1 -1
- package/lib/highlighter/MouseEventHandler.d.ts +0 -1
- package/lib/highlighter/MouseEventHandler.js.map +1 -1
- package/lib/highlighter/TranslationHighlighter.d.ts +1 -1
- package/lib/highlighter/TranslationHighlighter.js +28 -13
- package/lib/highlighter/TranslationHighlighter.js.map +1 -1
- package/lib/types.d.ts +2 -0
- package/package.json +7 -7
- package/lib/Observer.test.d.ts +0 -2
- package/lib/Observer.test.js +0 -190
- package/lib/Observer.test.js.map +0 -1
- package/lib/Properties.test.d.ts +0 -1
- package/lib/Properties.test.js +0 -77
- package/lib/Properties.test.js.map +0 -1
- package/lib/Tolgee.test.d.ts +0 -1
- package/lib/Tolgee.test.js +0 -451
- package/lib/Tolgee.test.js.map +0 -1
- package/lib/TolgeeConfig.test.d.ts +0 -1
- package/lib/TolgeeConfig.test.js +0 -18
- package/lib/TolgeeConfig.test.js.map +0 -1
- package/lib/__testFixtures/classMock.d.ts +0 -3
- package/lib/__testFixtures/classMock.js +0 -8
- package/lib/__testFixtures/classMock.js.map +0 -1
- package/lib/__testFixtures/createElement.d.ts +0 -2
- package/lib/__testFixtures/createElement.js +0 -57
- package/lib/__testFixtures/createElement.js.map +0 -1
- package/lib/__testFixtures/createTestDom.d.ts +0 -9
- package/lib/__testFixtures/createTestDom.js +0 -18
- package/lib/__testFixtures/createTestDom.js.map +0 -1
- package/lib/__testFixtures/mocked.d.ts +0 -20
- package/lib/__testFixtures/mocked.js +0 -24
- package/lib/__testFixtures/mocked.js.map +0 -1
- package/lib/handlers/AttributeHandler.test.d.ts +0 -1
- package/lib/handlers/AttributeHandler.test.js +0 -177
- package/lib/handlers/AttributeHandler.test.js.map +0 -1
- package/lib/handlers/CoreHandler.test.d.ts +0 -1
- package/lib/handlers/CoreHandler.test.js +0 -148
- package/lib/handlers/CoreHandler.test.js.map +0 -1
- package/lib/handlers/TextHandler.test.d.ts +0 -1
- package/lib/handlers/TextHandler.test.js +0 -270
- package/lib/handlers/TextHandler.test.js.map +0 -1
- package/lib/helpers/TextHelper.test.d.ts +0 -1
- package/lib/helpers/TextHelper.test.js +0 -107
- package/lib/helpers/TextHelper.test.js.map +0 -1
- package/lib/highlighter/HighlightFunctionsInitializer.test.d.ts +0 -1
- package/lib/highlighter/HighlightFunctionsInitializer.test.js +0 -81
- package/lib/highlighter/HighlightFunctionsInitializer.test.js.map +0 -1
- package/lib/highlighter/MouseEventHandler.test.d.ts +0 -1
- package/lib/highlighter/MouseEventHandler.test.js +0 -195
- package/lib/highlighter/MouseEventHandler.test.js.map +0 -1
- package/lib/highlighter/TranslationHighlighter.test.d.ts +0 -1
- package/lib/highlighter/TranslationHighlighter.test.js +0 -207
- package/lib/highlighter/TranslationHighlighter.test.js.map +0 -1
- package/lib/services/CoreService.test.d.ts +0 -1
- package/lib/services/CoreService.test.js +0 -179
- package/lib/services/CoreService.test.js.map +0 -1
- package/lib/services/DependencyStore.test.d.ts +0 -1
- package/lib/services/DependencyStore.test.js +0 -67
- package/lib/services/DependencyStore.test.js.map +0 -1
- package/lib/services/ElementRegistrar.test.d.ts +0 -1
- package/lib/services/ElementRegistrar.test.js +0 -200
- package/lib/services/ElementRegistrar.test.js.map +0 -1
- package/lib/services/TextService.test.d.ts +0 -1
- package/lib/services/TextService.test.js +0 -430
- package/lib/services/TextService.test.js.map +0 -1
- package/lib/services/TranslationService.test.d.ts +0 -1
- package/lib/services/TranslationService.test.js +0 -649
- package/lib/services/TranslationService.test.js.map +0 -1
- package/lib/toolsManager/Messages.test.d.ts +0 -1
- package/lib/toolsManager/Messages.test.js +0 -114
- package/lib/toolsManager/Messages.test.js.map +0 -1
- package/lib/toolsManager/PluginManager.test.d.ts +0 -1
- package/lib/toolsManager/PluginManager.test.js +0 -120
- package/lib/toolsManager/PluginManager.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|

|
|
2
2
|

|
|
3
3
|

|
|
4
|
-

|
|
4
|
+
[](https://twitter.com/Tolgee_i18n)
|
|
5
5
|
[](https://github.com/tolgee/tolgee-js)
|
|
6
6
|
|
|
7
7
|
# Tolgee core library
|
package/dist/tolgee.cjs.js
CHANGED
|
@@ -1330,11 +1330,17 @@ function icuUnitToEcma(unit) {
|
|
|
1330
1330
|
return unit.replace(/^(.*?)-/, '');
|
|
1331
1331
|
}
|
|
1332
1332
|
var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
|
|
1333
|
-
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?$/g;
|
|
1333
|
+
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?[rs]?$/g;
|
|
1334
1334
|
var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g;
|
|
1335
1335
|
var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;
|
|
1336
1336
|
function parseSignificantPrecision(str) {
|
|
1337
1337
|
var result = {};
|
|
1338
|
+
if (str[str.length - 1] === 'r') {
|
|
1339
|
+
result.roundingPriority = 'morePrecision';
|
|
1340
|
+
}
|
|
1341
|
+
else if (str[str.length - 1] === 's') {
|
|
1342
|
+
result.roundingPriority = 'lessPrecision';
|
|
1343
|
+
}
|
|
1338
1344
|
str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {
|
|
1339
1345
|
// @@@ case
|
|
1340
1346
|
if (typeof g2 !== 'string') {
|
|
@@ -1561,8 +1567,13 @@ function parseNumberSkeleton(tokens) {
|
|
|
1561
1567
|
}
|
|
1562
1568
|
return '';
|
|
1563
1569
|
});
|
|
1564
|
-
|
|
1565
|
-
|
|
1570
|
+
var opt = token.options[0];
|
|
1571
|
+
// https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display
|
|
1572
|
+
if (opt === 'w') {
|
|
1573
|
+
result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });
|
|
1574
|
+
}
|
|
1575
|
+
else if (opt) {
|
|
1576
|
+
result = __assign(__assign({}, result), parseSignificantPrecision(opt));
|
|
1566
1577
|
}
|
|
1567
1578
|
continue;
|
|
1568
1579
|
}
|
|
@@ -3233,7 +3244,7 @@ function createDefaultFormatters(cache) {
|
|
|
3233
3244
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3234
3245
|
args[_i] = arguments[_i];
|
|
3235
3246
|
}
|
|
3236
|
-
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
3247
|
+
return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
|
|
3237
3248
|
}, {
|
|
3238
3249
|
cache: createFastMemoizeCache(cache.number),
|
|
3239
3250
|
strategy: strategies.variadic,
|
|
@@ -3244,7 +3255,7 @@ function createDefaultFormatters(cache) {
|
|
|
3244
3255
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3245
3256
|
args[_i] = arguments[_i];
|
|
3246
3257
|
}
|
|
3247
|
-
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
3258
|
+
return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();
|
|
3248
3259
|
}, {
|
|
3249
3260
|
cache: createFastMemoizeCache(cache.dateTime),
|
|
3250
3261
|
strategy: strategies.variadic,
|
|
@@ -3255,7 +3266,7 @@ function createDefaultFormatters(cache) {
|
|
|
3255
3266
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3256
3267
|
args[_i] = arguments[_i];
|
|
3257
3268
|
}
|
|
3258
|
-
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();
|
|
3269
|
+
return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();
|
|
3259
3270
|
}, {
|
|
3260
3271
|
cache: createFastMemoizeCache(cache.pluralRules),
|
|
3261
3272
|
strategy: strategies.variadic,
|
|
@@ -3779,11 +3790,11 @@ var TranslationHighlighter = /** @class */ (function () {
|
|
|
3779
3790
|
switch (_a.label) {
|
|
3780
3791
|
case 0:
|
|
3781
3792
|
if (!(typeof this.renderer === 'object')) return [3 /*break*/, 2];
|
|
3782
|
-
return [4 /*yield*/, this.
|
|
3793
|
+
return [4 /*yield*/, this.getKeyAndDefault(e, element)];
|
|
3783
3794
|
case 1:
|
|
3784
3795
|
key = _a.sent();
|
|
3785
3796
|
if (key) {
|
|
3786
|
-
this.renderer.renderViewer(key);
|
|
3797
|
+
this.renderer.renderViewer(key.key, key.defaultValue);
|
|
3787
3798
|
return [2 /*return*/];
|
|
3788
3799
|
}
|
|
3789
3800
|
return [2 /*return*/];
|
|
@@ -3810,8 +3821,10 @@ var TranslationHighlighter = /** @class */ (function () {
|
|
|
3810
3821
|
});
|
|
3811
3822
|
TranslationHighlighter.getKeyOptions = function (node) {
|
|
3812
3823
|
var nodes = Array.from(node._tolgee.nodes);
|
|
3813
|
-
|
|
3814
|
-
|
|
3824
|
+
return nodes.reduce(function (acc, curr) { return __spreadArray(__spreadArray([], __read(acc), false), __read(curr._tolgee.keys.map(function (k) { return ({
|
|
3825
|
+
key: k.key,
|
|
3826
|
+
defaultValue: k.defaultValue,
|
|
3827
|
+
}); })), false); }, []);
|
|
3815
3828
|
};
|
|
3816
3829
|
TranslationHighlighter.prototype.listen = function (element) {
|
|
3817
3830
|
var _this = this;
|
|
@@ -3823,22 +3836,35 @@ var TranslationHighlighter = /** @class */ (function () {
|
|
|
3823
3836
|
}
|
|
3824
3837
|
}); }); });
|
|
3825
3838
|
};
|
|
3826
|
-
TranslationHighlighter.prototype.
|
|
3839
|
+
TranslationHighlighter.prototype.getKeyAndDefault = function (mouseEvent, element) {
|
|
3827
3840
|
return __awaiter(this, void 0, void 0, function () {
|
|
3828
|
-
var
|
|
3841
|
+
var keysWithDefaults, keySet, selectedKey_1, found;
|
|
3829
3842
|
return __generator(this, function (_a) {
|
|
3830
3843
|
switch (_a.label) {
|
|
3831
3844
|
case 0:
|
|
3832
3845
|
if (element._tolgee.wrappedWithElementOnlyKey) {
|
|
3833
|
-
return [2 /*return*/,
|
|
3846
|
+
return [2 /*return*/, {
|
|
3847
|
+
key: element._tolgee.wrappedWithElementOnlyKey,
|
|
3848
|
+
defaultValue: element._tolgee.wrappedWithElementOnlyDefaultHtml,
|
|
3849
|
+
}];
|
|
3834
3850
|
}
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
return [
|
|
3838
|
-
|
|
3851
|
+
keysWithDefaults = TranslationHighlighter.getKeyOptions(element);
|
|
3852
|
+
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({
|
|
3855
|
+
keys: keySet,
|
|
3856
|
+
openEvent: mouseEvent,
|
|
3857
|
+
})];
|
|
3858
|
+
case 1:
|
|
3859
|
+
selectedKey_1 = _a.sent();
|
|
3860
|
+
found = keysWithDefaults.find(function (kwd) { return kwd.key === selectedKey_1; });
|
|
3861
|
+
if (found) {
|
|
3862
|
+
return [2 /*return*/, found];
|
|
3863
|
+
}
|
|
3864
|
+
_a.label = 2;
|
|
3839
3865
|
case 2:
|
|
3840
|
-
if (
|
|
3841
|
-
return [2 /*return*/,
|
|
3866
|
+
if (keySet.size === 1) {
|
|
3867
|
+
return [2 /*return*/, keysWithDefaults[0]];
|
|
3842
3868
|
}
|
|
3843
3869
|
// eslint-disable-next-line no-console
|
|
3844
3870
|
console.error('No key to translate. This seems like a bug in tolgee.');
|
|
@@ -4517,6 +4543,8 @@ var WrappedHandler = /** @class */ (function (_super) {
|
|
|
4517
4543
|
filtered.forEach(function (element) {
|
|
4518
4544
|
var elementWithMeta = AbstractHandler.initParentElement(element);
|
|
4519
4545
|
elementWithMeta._tolgee.wrappedWithElementOnlyKey = element.getAttribute(TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE);
|
|
4546
|
+
elementWithMeta._tolgee.wrappedWithElementOnlyDefaultHtml =
|
|
4547
|
+
element.innerHTML;
|
|
4520
4548
|
_this.elementRegistrar.register(elementWithMeta);
|
|
4521
4549
|
});
|
|
4522
4550
|
return [2 /*return*/];
|
|
@@ -4900,11 +4928,12 @@ var Tolgee = /** @class */ (function () {
|
|
|
4900
4928
|
if (noWrap === void 0) { noWrap = false; }
|
|
4901
4929
|
if (defaultValue === void 0) { defaultValue = undefined; }
|
|
4902
4930
|
return __awaiter(this, void 0, void 0, function () {
|
|
4903
|
-
var key, props;
|
|
4931
|
+
var key, orEmpty, props;
|
|
4904
4932
|
return __generator(this, function (_a) {
|
|
4905
4933
|
switch (_a.label) {
|
|
4906
4934
|
case 0:
|
|
4907
4935
|
key = typeof keyOrProps === 'string' ? keyOrProps : keyOrProps.key;
|
|
4936
|
+
orEmpty = undefined;
|
|
4908
4937
|
if (typeof keyOrProps === 'object') {
|
|
4909
4938
|
props = keyOrProps;
|
|
4910
4939
|
// if values are not provided in props object, get them from function
|
|
@@ -4913,6 +4942,7 @@ var Tolgee = /** @class */ (function () {
|
|
|
4913
4942
|
noWrap = props.noWrap !== undefined ? props.noWrap : noWrap;
|
|
4914
4943
|
defaultValue =
|
|
4915
4944
|
props.defaultValue !== undefined ? props.defaultValue : defaultValue;
|
|
4945
|
+
orEmpty = props.orEmpty;
|
|
4916
4946
|
}
|
|
4917
4947
|
if (!(this.properties.config.mode === 'development' && !noWrap)) return [3 /*break*/, 3];
|
|
4918
4948
|
return [4 /*yield*/, this.loadScopes()];
|
|
@@ -4922,7 +4952,7 @@ var Tolgee = /** @class */ (function () {
|
|
|
4922
4952
|
case 2:
|
|
4923
4953
|
_a.sent();
|
|
4924
4954
|
return [2 /*return*/, this.dependencyStore.textService.wrap(key, params, defaultValue)];
|
|
4925
|
-
case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined,
|
|
4955
|
+
case 3: return [2 /*return*/, this.dependencyStore.textService.translate(key, params, undefined, orEmpty, defaultValue)];
|
|
4926
4956
|
}
|
|
4927
4957
|
});
|
|
4928
4958
|
});
|