@fluid-topics/ft-reader-context 2.0.9 → 2.0.11
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.
|
@@ -2,6 +2,7 @@ import { FtReaderPage, FtReaderScrollTarget, FtReaderTocNode } from "./model";
|
|
|
2
2
|
import { ClusteringHelper, Optional } from "@fluid-topics/ft-wc-utils";
|
|
3
3
|
import { FtReaderReduxStore } from "./redux";
|
|
4
4
|
import type { FtReaderService } from "./utils/FtReaderService";
|
|
5
|
+
import { FtAnalyticsEventsService } from "@fluid-topics/ft-app-context";
|
|
5
6
|
import { FtTranslationLocale, FtTranslationSettings } from "@fluid-topics/public-api";
|
|
6
7
|
export declare class FtReaderStateManager {
|
|
7
8
|
store: FtReaderReduxStore;
|
|
@@ -11,9 +12,10 @@ export declare class FtReaderStateManager {
|
|
|
11
12
|
clusteringHelper?: ClusteringHelper;
|
|
12
13
|
service?: FtReaderService;
|
|
13
14
|
errorHandler?: (e: Error) => void;
|
|
15
|
+
analyticsEventsService: FtAnalyticsEventsService;
|
|
14
16
|
private _loaded;
|
|
15
17
|
loaded(): Promise<void>;
|
|
16
|
-
constructor(store: FtReaderReduxStore, serviceProvider: () => Promise<FtReaderService>, clusteringHelperProvider?: (() => ClusteringHelper) | undefined);
|
|
18
|
+
constructor(store: FtReaderReduxStore, serviceProvider: () => Promise<FtReaderService>, clusteringHelperProvider?: (() => ClusteringHelper) | undefined, analyticsEventsService?: FtAnalyticsEventsService);
|
|
17
19
|
initService(serviceProvider: () => Promise<FtReaderService>): Promise<void>;
|
|
18
20
|
setMapId(mapId?: string): Promise<void>;
|
|
19
21
|
setRenderedTopics(tocIds: string[]): void;
|
|
@@ -55,4 +57,6 @@ export declare class FtReaderStateManager {
|
|
|
55
57
|
getTocNode(tocId: string): Promise<FtReaderTocNode>;
|
|
56
58
|
getPage(targetPageNumber: number): Promise<FtReaderPage>;
|
|
57
59
|
onMapAttachmentsUpdate(): void;
|
|
60
|
+
private sendDocumentOnDemandTranslateEvent;
|
|
61
|
+
private parseLanguageToAnalyticsFormat;
|
|
58
62
|
}
|
|
@@ -2,7 +2,7 @@ import { FtReaderStoreEvents } from "./model";
|
|
|
2
2
|
import { CanceledPromiseError, ClusteringHelper, Debouncer, waitFor, waitUntil } from "@fluid-topics/ft-wc-utils";
|
|
3
3
|
import { createReaderStore } from "./redux";
|
|
4
4
|
import { FtOfficialReaderService } from "./utils/FtOfficialReaderService";
|
|
5
|
-
import { ftAppInfoStore } from "@fluid-topics/ft-app-context";
|
|
5
|
+
import { ftAppInfoStore, FtAnalyticsEventsService, } from "@fluid-topics/ft-app-context";
|
|
6
6
|
export class FtReaderStateManager {
|
|
7
7
|
static build(id, serviceProvider) {
|
|
8
8
|
return new FtReaderStateManager(createReaderStore(id.trim() || "context"), serviceProvider !== null && serviceProvider !== void 0 ? serviceProvider : FtOfficialReaderService.build);
|
|
@@ -10,12 +10,13 @@ export class FtReaderStateManager {
|
|
|
10
10
|
loaded() {
|
|
11
11
|
return waitUntil(() => this._loaded);
|
|
12
12
|
}
|
|
13
|
-
constructor(store, serviceProvider, clusteringHelperProvider) {
|
|
13
|
+
constructor(store, serviceProvider, clusteringHelperProvider, analyticsEventsService) {
|
|
14
14
|
this.store = store;
|
|
15
15
|
this.clusteringHelperProvider = clusteringHelperProvider;
|
|
16
16
|
this.metadataForSwitchToRelatives = new Set();
|
|
17
17
|
this._loaded = false;
|
|
18
18
|
this.loadDebouncer = new Debouncer(10);
|
|
19
|
+
this.analyticsEventsService = analyticsEventsService !== null && analyticsEventsService !== void 0 ? analyticsEventsService : new FtAnalyticsEventsService();
|
|
19
20
|
this.initService(serviceProvider);
|
|
20
21
|
}
|
|
21
22
|
async initService(serviceProvider) {
|
|
@@ -202,6 +203,9 @@ export class FtReaderStateManager {
|
|
|
202
203
|
}
|
|
203
204
|
async setTranslationDestinationLanguage(destinationLanguage) {
|
|
204
205
|
this.store.actions.setTranslationDestinationLanguage(destinationLanguage);
|
|
206
|
+
if (destinationLanguage) {
|
|
207
|
+
this.sendDocumentOnDemandTranslateEvent(destinationLanguage);
|
|
208
|
+
}
|
|
205
209
|
await this.loadDebouncer.run(() => this.fetchData(this.getTranslationSettings()));
|
|
206
210
|
}
|
|
207
211
|
async setTranslationSourceLanguage(sourceLanguage) {
|
|
@@ -286,4 +290,47 @@ export class FtReaderStateManager {
|
|
|
286
290
|
(_a = this.service) === null || _a === void 0 ? void 0 : _a.clearMapAttachments();
|
|
287
291
|
this.store.dispatchEvent(new Event(FtReaderStoreEvents.mapAttachmentsUpdate));
|
|
288
292
|
}
|
|
293
|
+
sendDocumentOnDemandTranslateEvent(destinationLanguage) {
|
|
294
|
+
const { editorMode, apiIntegrationIdentifier, apiIntegrationAppVersion } = ftAppInfoStore.getState();
|
|
295
|
+
const state = this.store.getState();
|
|
296
|
+
const map = state.map;
|
|
297
|
+
const profileId = state.translation.profileId;
|
|
298
|
+
if (editorMode || !map || !apiIntegrationIdentifier || !apiIntegrationAppVersion || !profileId) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
try {
|
|
302
|
+
const document = this.analyticsEventsService.convertMapToAnalyticsDocument(map);
|
|
303
|
+
this.analyticsEventsService.sendDocumentAiTranslateEvent({
|
|
304
|
+
name: "DOCUMENT__ON_DEMAND_TRANSLATE",
|
|
305
|
+
offline: false,
|
|
306
|
+
appName: apiIntegrationIdentifier,
|
|
307
|
+
appVersion: apiIntegrationAppVersion,
|
|
308
|
+
sourceLanguage: this.parseLanguageToAnalyticsFormat(map.lang),
|
|
309
|
+
destinationLanguage: this.parseLanguageToAnalyticsFormat(destinationLanguage.code),
|
|
310
|
+
profileId,
|
|
311
|
+
document,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
console.warn("Failed to send on-demand document translate event:", error);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
parseLanguageToAnalyticsFormat(languageString) {
|
|
319
|
+
if (!languageString) {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
const parts = languageString.split("-");
|
|
323
|
+
if (parts.length === 2) {
|
|
324
|
+
return {
|
|
325
|
+
languageCode: parts[0],
|
|
326
|
+
countryCode: parts[1],
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
return {
|
|
331
|
+
languageCode: parts[0],
|
|
332
|
+
countryCode: "",
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
}
|
|
289
336
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-topics/ft-reader-context",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
4
|
"description": "Context block for integrated reader components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lit"
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@fluid-topics/ft-app-context": "2.0.
|
|
23
|
-
"@fluid-topics/ft-wc-utils": "2.0.
|
|
22
|
+
"@fluid-topics/ft-app-context": "2.0.11",
|
|
23
|
+
"@fluid-topics/ft-wc-utils": "2.0.11",
|
|
24
24
|
"@reduxjs/toolkit": "^1.6.2",
|
|
25
25
|
"lit": "3.1.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@fluid-topics/public-api": "1.0.
|
|
28
|
+
"@fluid-topics/public-api": "1.0.117"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "aedc97fb65c7bafd16b7adef8218a58f59fea690"
|
|
31
31
|
}
|