// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as i18n from '../../core/i18n/i18n.js'; import * as Buttons from '../../ui/components/buttons/buttons.js'; import * as UI from '../../ui/legacy/legacy.js'; import {html, render} from '../../ui/lit/lit.js'; import cssOverviewProcessingViewStyles from './cssOverviewProcessingView.css.js'; const UIStrings = { /** * @description Text to cancel something */ cancel: 'Cancel', } as const; const str_ = i18n.i18n.registerUIStrings('panels/css_overview/CSSOverviewProcessingView.ts', UIStrings); const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_); interface ViewInput { onCancel: () => void; } type View = (input: ViewInput, output: object, target: HTMLElement) => void; export const DEFAULT_VIEW: View = (input, _output, target) => { // clang-format off render(html`

Processing page

${i18nString(UIStrings.cancel)}
`, target); // clang-format on }; export class CSSOverviewProcessingView extends UI.Widget.Widget { #onCancel = (): void => {}; #view: View; constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) { super(element); this.#view = view; this.requestUpdate(); } set onCancel(onCancel: () => void) { this.#onCancel = onCancel; this.requestUpdate(); } override performUpdate(): void { this.#view({onCancel: this.#onCancel}, {}, this.element); } }