/* * 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.js'; import { LitTabs } from './lit-tabs.js'; @element('lit-tabpane') export class LitTabpane extends BaseElement { static get observedAttributes() { return ['tab', 'key', 'disabled', 'icon', 'closeable', 'hidden']; } get tab() { return this.getAttribute('tab'); } set tab(value) { this.setAttribute('tab', value || ''); } get icon() { return this.getAttribute('icon'); } get disabled() { return this.getAttribute('disabled') !== null; } set disabled(value) { if (value === null || value === false) { this.removeAttribute('disabled'); } else { this.setAttribute('disabled', value + ''); } } get hidden() { return this.getAttribute('hidden') !== null; } set hidden(value) { this.setAttribute('hidden', `${value}`); } get closeable() { return this.getAttribute('closeable') !== null; } set closeable(value) { if (value === null || value === false) { this.removeAttribute('closeable'); } else { this.setAttribute('closeable', value + ''); } } get key() { return this.getAttribute('key') || ''; } set key(value) { this.setAttribute('key', value); } initElements(): void {} initHtml(): string { return ` `; } connectedCallback() {} disconnectedCallback() {} adoptedCallback() {} attributeChangedCallback(name: string, oldValue: string, newValue: string) { if (oldValue !== newValue && newValue !== undefined) { if (name === 'tab' && this.parentNode && this.parentNode instanceof LitTabs) { this.parentNode.updateLabel && this.parentNode.updateLabel(this.key, newValue); } if (name === 'disabled' && this.parentNode && this.parentNode instanceof LitTabs) { this.parentNode.updateDisabled && this.parentNode.updateDisabled(this.key, newValue); } if (name === 'closeable' && this.parentNode && this.parentNode instanceof LitTabs) { this.parentNode.updateCloseable && this.parentNode.updateCloseable(this.key, newValue); } if (name === 'hidden' && this.parentNode && this.parentNode instanceof LitTabs) { this.parentNode.updateHidden && this.parentNode.updateHidden(this.key, newValue); } } } }