blob: 9b62743dab026589bee5577300dda904075772d7 [file] [log] [blame]
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {LitElement, PropertyValues} from 'lit';
import {customElement, property} from 'lit/decorators';
import {getPluginLoader} from '../../shared/gr-js-api-interface/gr-plugin-loader';
import {ServerInfo} from '../../../types/common';
@customElement('gr-plugin-host')
export class GrPluginHost extends LitElement {
@property({type: Object})
config?: ServerInfo;
_configChanged(config: ServerInfo) {
const jsPlugins = config.plugin?.js_resource_paths ?? [];
const themes: string[] = config.default_theme ? [config.default_theme] : [];
const instanceId = config.gerrit?.instance_id;
getPluginLoader().loadPlugins([...themes, ...jsPlugins], instanceId);
}
override updated(changedProperties: PropertyValues<GrPluginHost>) {
if (changedProperties.has('config') && this.config) {
this._configChanged(this.config);
}
}
}
declare global {
interface HTMLElementTagNameMap {
'gr-plugin-host': GrPluginHost;
}
}