1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | Object.defineProperty(exports, "__esModule", { value: true });
|
18 | exports.preload = void 0;
|
19 | const nls_1 = require("../common/nls");
|
20 | const endpoint_1 = require("./endpoint");
|
21 | const os_1 = require("../common/os");
|
22 | const frontend_application_config_provider_1 = require("./frontend-application-config-provider");
|
23 | function fetchFrom(path) {
|
24 | const endpoint = new endpoint_1.Endpoint({ path }).getRestUrl().toString();
|
25 | return fetch(endpoint);
|
26 | }
|
27 | async function loadTranslations() {
|
28 | const defaultLocale = frontend_application_config_provider_1.FrontendApplicationConfigProvider.get().defaultLocale;
|
29 | if (defaultLocale && !nls_1.nls.locale) {
|
30 | Object.assign(nls_1.nls, {
|
31 | locale: defaultLocale
|
32 | });
|
33 | }
|
34 | if (nls_1.nls.locale) {
|
35 | const response = await fetchFrom(`/i18n/${nls_1.nls.locale}`);
|
36 | const localization = await response.json();
|
37 | if (localization.languagePack) {
|
38 | nls_1.nls.localization = localization;
|
39 | }
|
40 | else {
|
41 |
|
42 |
|
43 | Object.assign(nls_1.nls, {
|
44 | locale: defaultLocale || undefined
|
45 | });
|
46 | }
|
47 | }
|
48 | }
|
49 | async function loadBackendOS() {
|
50 | const response = await fetchFrom('/os');
|
51 | const osType = await response.text();
|
52 | const isWindows = osType === 'Windows';
|
53 | const isOSX = osType === 'OSX';
|
54 | os_1.OS.backend.isOSX = isOSX;
|
55 | os_1.OS.backend.isWindows = isWindows;
|
56 | os_1.OS.backend.type = () => osType;
|
57 | }
|
58 | function initBackground() {
|
59 |
|
60 |
|
61 | const dark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
62 | const value = window.localStorage.getItem(frontend_application_config_provider_1.DEFAULT_BACKGROUND_COLOR_STORAGE_KEY) || (dark ? '#1E1E1E' : '#FFFFFF');
|
63 | const documentElement = document.documentElement;
|
64 | documentElement.style.setProperty('--theia-editor-background', value);
|
65 | }
|
66 | async function preload() {
|
67 | await Promise.allSettled([
|
68 | loadTranslations(),
|
69 | loadBackendOS(),
|
70 | initBackground(),
|
71 | ]);
|
72 | }
|
73 | exports.preload = preload;
|
74 |
|
\ | No newline at end of file |