1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import {element} from "../BaseElement.js"; 17 18@element('lit-table-column') 19export class LitTableColumn extends HTMLElement { 20 template: Element | undefined | null 21 private st: HTMLSlotElement | undefined | null 22 23 constructor() { 24 super(); 25 const shadowRoot = this.attachShadow({mode: 'open'}); 26 shadowRoot.innerHTML = ` 27<style> 28:host{ 29 overflow: auto; 30 width: 100%; 31 } 32</style> 33<slot id="slot"></slot> 34 ` 35 } 36 37 static get observedAttributes() { 38 return ['name', 'order'] 39 } 40 41 connectedCallback() { 42 this.template = null; 43 this.st = this.shadowRoot?.querySelector('#slot') 44 this.st?.addEventListener('slotchange', () => { 45 const elements = this.st!.assignedElements({flatten: false}); 46 if (elements!.length > 0) { 47 this.template = elements[0]; 48 } 49 }) 50 } 51 52 disconnectedCallback() { 53 } 54 55 adoptedCallback() { 56 } 57 58 attributeChangedCallback(name: string, oldValue: string, newValue: string) { 59 60 } 61 62}