@magic-translate/react 1.8.1 → 1.10.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/CHANGELOG.md +14 -0
- package/dist/api/data-loader.d.ts +1 -0
- package/dist/api/data-loader.d.ts.map +1 -1
- package/dist/api/data-loader.js +9 -4
- package/dist/api/data-loader.js.map +1 -1
- package/dist/api/data-loader.test.js +1 -0
- package/dist/api/data-loader.test.js.map +1 -1
- package/dist/hooks/use-translate.d.ts +4 -0
- package/dist/hooks/use-translate.d.ts.map +1 -0
- package/dist/hooks/use-translate.js +27 -0
- package/dist/hooks/use-translate.js.map +1 -0
- package/dist/hooks/use-translate.test.d.ts +2 -0
- package/dist/hooks/use-translate.test.d.ts.map +1 -0
- package/dist/hooks/use-translate.test.js +133 -0
- package/dist/hooks/use-translate.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/utils/object-to-url-search-params.d.ts +2 -0
- package/dist/utils/object-to-url-search-params.d.ts.map +1 -0
- package/dist/utils/object-to-url-search-params.js +25 -0
- package/dist/utils/object-to-url-search-params.js.map +1 -0
- package/dist/utils/object-to-url-search-params.test.d.ts +2 -0
- package/dist/utils/object-to-url-search-params.test.d.ts.map +1 -0
- package/dist/utils/object-to-url-search-params.test.js +24 -0
- package/dist/utils/object-to-url-search-params.test.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.10.0](https://github.com/magic-translate/magic-translate-react/compare/v1.9.0...v1.10.0) (2023-07-12)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* prevent option requests when sending requests to the translate API ([dc9109c](https://github.com/magic-translate/magic-translate-react/commit/dc9109c3192a019e49b188a830d9ee3bc2a2db6e))
|
|
9
|
+
|
|
10
|
+
## [1.9.0](https://github.com/magic-translate/magic-translate-react/compare/v1.8.1...v1.9.0) (2023-07-05)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* implement translation hook ([705175b](https://github.com/magic-translate/magic-translate-react/commit/705175bee5d94c99027f27612c3017bcace59958))
|
|
16
|
+
|
|
3
17
|
## [1.8.1](https://github.com/magic-translate/magic-translate-react/compare/v1.8.0...v1.8.1) (2023-07-05)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-loader.d.ts","sourceRoot":"","sources":["../../src/api/data-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"data-loader.d.ts","sourceRoot":"","sources":["../../src/api/data-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,wBAAwB,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAItE,CAAC;AAqBF,eAAO,MAAM,oBAAoB,kBACf,iBAAiB,eACjB,SAAS,oBAAoB,EAAE,sBAkE9C,CAAC"}
|
package/dist/api/data-loader.js
CHANGED
|
@@ -59,6 +59,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
59
59
|
import { libraryName } from './../constants';
|
|
60
60
|
import { Language } from '../domain/language';
|
|
61
61
|
import { removeUndefined } from '../utils/remove-undefined';
|
|
62
|
+
import { convertObjectToURLSearchParams } from '../utils/object-to-url-search-params';
|
|
62
63
|
export var defaultDataLoaderOptions = {
|
|
63
64
|
debug: false,
|
|
64
65
|
apiUrl: 'https://api.magictranslate.io',
|
|
@@ -80,7 +81,7 @@ export var defaultLoaderFactory = function (globalOptions) {
|
|
|
80
81
|
return [2 /*return*/, content.map(function (c) { return c.text; })];
|
|
81
82
|
}
|
|
82
83
|
apiKey = globalOptions.apiKey, lang = globalOptions.lang, formality = globalOptions.formality, translateOptions = __rest(globalOptions, ["apiKey", "lang", "formality"]);
|
|
83
|
-
body =
|
|
84
|
+
body = removeUndefined({
|
|
84
85
|
apiKey: apiKey,
|
|
85
86
|
lang: lang,
|
|
86
87
|
formality: formality,
|
|
@@ -88,12 +89,16 @@ export var defaultLoaderFactory = function (globalOptions) {
|
|
|
88
89
|
var text = _a.text, sourceLang = _a.sourceLang, lang = _a.lang, options = __rest(_a, ["text", "sourceLang", "lang"]);
|
|
89
90
|
return removeUndefined(__assign({ text: text, lang: lang, sourceLang: sourceLang }, options));
|
|
90
91
|
}),
|
|
91
|
-
})
|
|
92
|
+
});
|
|
92
93
|
return [2 /*return*/, fetch("".concat((_a = globalOptions.apiUrl) !== null && _a !== void 0 ? _a : defaultDataLoaderOptions.apiUrl, "/v1/translate"), {
|
|
93
94
|
method: 'POST',
|
|
94
|
-
body:
|
|
95
|
+
body: globalOptions.useJson
|
|
96
|
+
? JSON.stringify(body)
|
|
97
|
+
: convertObjectToURLSearchParams(body),
|
|
95
98
|
headers: {
|
|
96
|
-
'Content-Type':
|
|
99
|
+
'Content-Type': globalOptions.useJson
|
|
100
|
+
? 'application/json'
|
|
101
|
+
: 'application/x-www-form-urlencoded',
|
|
97
102
|
},
|
|
98
103
|
})
|
|
99
104
|
.then(function (res) { return res.json(); })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-loader.js","sourceRoot":"","sources":["../../src/api/data-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"data-loader.js","sourceRoot":"","sources":["../../src/api/data-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-loader.test.js","sourceRoot":"","sources":["../../src/api/data-loader.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAM,MAAM,GAAG,cAAc,CAAC;IAC9B,IAAI,GAA4C,CAAC;IAEjD,SAAS,CAAC;QACR,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC;QACP,SAAS,CAAC,YAAY,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC;QACT,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,GAAG,GAAG,oBAAoB,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"data-loader.test.js","sourceRoot":"","sources":["../../src/api/data-loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-translate.d.ts","sourceRoot":"","sources":["../../src/hooks/use-translate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,YAAY,IAAI,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,KACxC,MAAM,CAeV;AAED,eAAO,MAAM,IAAI,qBAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { useMagicTranslate } from './use-magic-translate';
|
|
13
|
+
import { useCallback, useState } from 'react';
|
|
14
|
+
export function useTranslate() {
|
|
15
|
+
var dataLoader = useMagicTranslate().dataLoader;
|
|
16
|
+
var _a = useState(), translation = _a[0], setTranslation = _a[1];
|
|
17
|
+
return useCallback(function (text, params) {
|
|
18
|
+
if (params === void 0) { params = {}; }
|
|
19
|
+
// Yes, I'm basically making an API call in a render function here 😱
|
|
20
|
+
// But I know what I'm doing. It's ok because of the magic that is
|
|
21
|
+
// DataLoader: We will only make the request once and cache the result
|
|
22
|
+
dataLoader.load(__assign({ text: text }, params)).then(setTranslation);
|
|
23
|
+
return translation !== null && translation !== void 0 ? translation : text;
|
|
24
|
+
}, [dataLoader, translation]);
|
|
25
|
+
}
|
|
26
|
+
export var useT = useTranslate;
|
|
27
|
+
//# sourceMappingURL=use-translate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-translate.js","sourceRoot":"","sources":["../../src/hooks/use-translate.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM,UAAU,YAAY;IAIlB,IAAA,UAAU,GAAK,iBAAiB,EAAE,WAAxB,CAAyB;IACrC,IAAA,KAAgC,QAAQ,EAAU,EAAjD,WAAW,QAAA,EAAE,cAAc,QAAsB,CAAC;IAEzD,OAAO,WAAW,CAChB,UAAC,IAAY,EAAE,MAA+C;QAA/C,uBAAA,EAAA,WAA+C;QAC5D,qEAAqE;QACrE,kEAAkE;QAClE,sEAAsE;QACtE,UAAU,CAAC,IAAI,YAAG,IAAI,MAAA,IAAK,MAAM,EAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE1D,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC;IAC7B,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,IAAM,IAAI,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-translate.test.d.ts","sourceRoot":"","sources":["../../src/hooks/use-translate.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (_) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { act, renderHook } from '@testing-library/react';
|
|
38
|
+
import { MagicTranslateProvider } from '../context/MagicTranslateContext';
|
|
39
|
+
import React from 'react';
|
|
40
|
+
import { Language } from '../domain/language';
|
|
41
|
+
import { useTranslate } from './use-translate';
|
|
42
|
+
var tick = function () { return new Promise(function (resolve) { return setTimeout(resolve); }); };
|
|
43
|
+
var ExampleComponent = function () { return React.createElement(React.Fragment, null, "Some component"); };
|
|
44
|
+
ExampleComponent.displayName = 'ExampleComponent';
|
|
45
|
+
describe('Translate', function () {
|
|
46
|
+
var lang = Language.DE;
|
|
47
|
+
var mockFn = jest.fn();
|
|
48
|
+
var loader = function () { return function (content) {
|
|
49
|
+
// for some reason when using the mock directly the mock is not called. This is a workaround
|
|
50
|
+
mockFn(content);
|
|
51
|
+
return Promise.resolve(content.map(function (item) { return "Translated: ".concat(item.text); }));
|
|
52
|
+
}; };
|
|
53
|
+
var wrapper = function (_a) {
|
|
54
|
+
var children = _a.children;
|
|
55
|
+
return (React.createElement(MagicTranslateProvider, { _loaderFactory: loader, language: lang, apiKey: "test-api-key" }, children));
|
|
56
|
+
};
|
|
57
|
+
afterEach(function () {
|
|
58
|
+
mockFn.mockReset();
|
|
59
|
+
});
|
|
60
|
+
it('should call the loader with the content', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
61
|
+
var result;
|
|
62
|
+
return __generator(this, function (_a) {
|
|
63
|
+
switch (_a.label) {
|
|
64
|
+
case 0:
|
|
65
|
+
result = renderHook(function () { return useTranslate(); }, { wrapper: wrapper }).result;
|
|
66
|
+
// when
|
|
67
|
+
act(function () {
|
|
68
|
+
result.current('test');
|
|
69
|
+
});
|
|
70
|
+
return [4 /*yield*/, tick()];
|
|
71
|
+
case 1:
|
|
72
|
+
_a.sent();
|
|
73
|
+
// then
|
|
74
|
+
expect(mockFn).toHaveBeenCalledWith([{ text: 'test' }]);
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}); });
|
|
79
|
+
it('should call the loader with the content and formality', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
80
|
+
var result;
|
|
81
|
+
return __generator(this, function (_a) {
|
|
82
|
+
switch (_a.label) {
|
|
83
|
+
case 0:
|
|
84
|
+
result = renderHook(function () { return useTranslate(); }, { wrapper: wrapper }).result;
|
|
85
|
+
// when
|
|
86
|
+
act(function () {
|
|
87
|
+
result.current('test', { formality: 'formal' });
|
|
88
|
+
});
|
|
89
|
+
return [4 /*yield*/, tick()];
|
|
90
|
+
case 1:
|
|
91
|
+
_a.sent();
|
|
92
|
+
// then
|
|
93
|
+
expect(mockFn).toHaveBeenCalledWith([
|
|
94
|
+
{ text: 'test', formality: 'formal' },
|
|
95
|
+
]);
|
|
96
|
+
return [2 /*return*/];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); });
|
|
100
|
+
it('should return the translation', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
101
|
+
var result, translation;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
result = renderHook(function () { return useTranslate(); }, { wrapper: wrapper }).result;
|
|
106
|
+
translation = null;
|
|
107
|
+
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
108
|
+
return __generator(this, function (_a) {
|
|
109
|
+
result.current('test');
|
|
110
|
+
return [2 /*return*/];
|
|
111
|
+
});
|
|
112
|
+
}); })];
|
|
113
|
+
case 1:
|
|
114
|
+
_a.sent();
|
|
115
|
+
return [4 /*yield*/, tick()];
|
|
116
|
+
case 2:
|
|
117
|
+
_a.sent();
|
|
118
|
+
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
119
|
+
return __generator(this, function (_a) {
|
|
120
|
+
translation = result.current('test');
|
|
121
|
+
return [2 /*return*/];
|
|
122
|
+
});
|
|
123
|
+
}); })];
|
|
124
|
+
case 3:
|
|
125
|
+
_a.sent();
|
|
126
|
+
// then
|
|
127
|
+
expect(translation).toBe('Translated: test');
|
|
128
|
+
return [2 /*return*/];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}); });
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=use-translate.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-translate.test.js","sourceRoot":"","sources":["../../src/hooks/use-translate.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC"}
|