UNPKG

chrome-devtools-frontend

Version:
45 lines (36 loc) 1.6 kB
// Copyright 2022 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as ComponentHelpers from '../../components/helpers/helpers.js'; import * as LitHtml from '../../lit-html/lit-html.js'; import panelIntroductionStepsStyles from './panelIntroductionSteps.css.js'; export class PanelIntroductionSteps extends HTMLElement { static readonly litTagName = LitHtml.literal`devtools-panel-introduction-steps`; readonly #shadow = this.attachShadow({mode: 'open'}); readonly #boundRender = this.#render.bind(this); connectedCallback(): void { this.#shadow.adoptedStyleSheets = [panelIntroductionStepsStyles]; void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender); } #render(): void { if (!ComponentHelpers.ScheduledRender.isScheduledRender(this)) { throw new Error('FeedbackButton render was not scheduled'); } // clang-format off LitHtml.render(LitHtml.html` <h1><slot name="title">slot: title</slot></h1> <ol class="intro-steps"> <li><slot name="step-1">slot: step-1</slot></li> <li><slot name="step-2">slot: step-2</slot></li> <li><slot name="step-3">slot: step-3</slot></li> </ol> `, this.#shadow, {host: this}); // clang-format on } } ComponentHelpers.CustomElements.defineComponent('devtools-panel-introduction-steps', PanelIntroductionSteps); declare global { interface HTMLElementTagNameMap { 'devtools-panel-introduction-steps': PanelIntroductionSteps; } }