/* * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { BaseElement, element } from '../BaseElement'; @element('lit-pop-content') export class LitPopContent extends BaseElement { static get observedAttributes(): string[] { return ['open']; } get open(): boolean { return this.hasAttribute('open'); } set open(value: boolean) { if (value === null || !value) { this.removeAttribute('open'); let parentElement = this.parentNode as Element; parentElement?.removeAttribute('open'); } else { this.setAttribute('open', ''); let parentElement = this.parentNode as Element; parentElement?.setAttribute('open', ''); } } initElements(): void {} initHtml(): string { return `
`; } attributeChangedCallback(name: string, oldValue: string, newValue: string): void { switch (name) { case 'open': if (newValue === null || newValue === 'false') { let parentElement = this.parentNode as Element; parentElement?.removeAttribute('open'); } else { let parentElement = this.parentNode as Element; parentElement?.setAttribute('open', ''); } break; default: break; } } }