@alauda-fe/common
Version:
Alauda frontend team common codes.
43 lines • 5.61 kB
JavaScript
import { ThemeService } from '@alauda/ui';
import { Injectable, inject } from '@angular/core';
import { TranslateService } from '../translate/public-api';
import { BaseWindowChannel } from './base-window-channel';
import { MessageType } from './utils';
import * as i0 from "@angular/core";
export class PluginWindowChannelService extends BaseWindowChannel {
constructor() {
super();
this.theme = inject(ThemeService);
this.translate = inject(TranslateService);
if (window.parent !== window) {
this.init(window.parent);
}
}
init(window) {
const removeListener = super.init(window);
this.listen(MessageType.ThemeChange, theme => {
if (['system', 'light', 'dark'].includes(theme)) {
this.theme.setThemeMode(theme);
}
});
this.listen(MessageType.LangChange, hostLocale => {
const locale = this.translate.locales.includes(hostLocale)
? hostLocale
: this.translate.fallbackLocale;
if (this.translate.locale !== locale) {
this.translate.setLocale(locale);
}
});
this.send(MessageType.PluginInitialized);
return removeListener;
}
static { this.ɵfac = function PluginWindowChannelService_Factory(t) { return new (t || PluginWindowChannelService)(); }; }
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PluginWindowChannelService, factory: PluginWindowChannelService.ɵfac, providedIn: 'root' }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PluginWindowChannelService, [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], () => [], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXdpbmRvdy1jaGFubmVsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvd2luZG93LWNoYW5uZWwvcGx1Z2luLXdpbmRvdy1jaGFubmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUt0QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBSS9EO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFKTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUtwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFa0IsSUFBSSxDQUFDLE1BQWM7UUFDcEMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWtCLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLFVBQVU7Z0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBRWxDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQzsyRkFsQ1UsMEJBQTBCO3VFQUExQiwwQkFBMEIsV0FBMUIsMEJBQTBCLG1CQUZ6QixNQUFNOztpRkFFUCwwQkFBMEI7Y0FIdEMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlbWVNb2RlLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBCYXNlV2luZG93Q2hhbm5lbCB9IGZyb20gJy4vYmFzZS13aW5kb3ctY2hhbm5lbCc7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luV2luZG93Q2hhbm5lbFNlcnZpY2UgZXh0ZW5kcyBCYXNlV2luZG93Q2hhbm5lbCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICh3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHtcbiAgICAgIHRoaXMuaW5pdCh3aW5kb3cucGFyZW50KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdCh3aW5kb3c6IFdpbmRvdykge1xuICAgIGNvbnN0IHJlbW92ZUxpc3RlbmVyID0gc3VwZXIuaW5pdCh3aW5kb3cpO1xuXG4gICAgdGhpcy5saXN0ZW4oTWVzc2FnZVR5cGUuVGhlbWVDaGFuZ2UsIHRoZW1lID0+IHtcbiAgICAgIGlmIChbJ3N5c3RlbScsICdsaWdodCcsICdkYXJrJ10uaW5jbHVkZXModGhlbWUpKSB7XG4gICAgICAgIHRoaXMudGhlbWUuc2V0VGhlbWVNb2RlKHRoZW1lIGFzIFRoZW1lTW9kZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlbihNZXNzYWdlVHlwZS5MYW5nQ2hhbmdlLCBob3N0TG9jYWxlID0+IHtcbiAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMudHJhbnNsYXRlLmxvY2FsZXMuaW5jbHVkZXMoaG9zdExvY2FsZSlcbiAgICAgICAgPyBob3N0TG9jYWxlXG4gICAgICAgIDogdGhpcy50cmFuc2xhdGUuZmFsbGJhY2tMb2NhbGU7XG5cbiAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZS5sb2NhbGUgIT09IGxvY2FsZSkge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRMb2NhbGUobG9jYWxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VuZChNZXNzYWdlVHlwZS5QbHVnaW5Jbml0aWFsaXplZCk7XG5cbiAgICByZXR1cm4gcmVtb3ZlTGlzdGVuZXI7XG4gIH1cbn1cbiJdfQ==