web: re-format with prettier
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -20,7 +20,6 @@ import { EVENT_REFRESH } from "../../constants"; | ||||
| import { ifDefined } from "lit-html/directives/if-defined"; | ||||
|  | ||||
| export class TableColumn { | ||||
|  | ||||
|     title: string; | ||||
|     orderBy?: string; | ||||
|  | ||||
| @ -45,25 +44,27 @@ export class TableColumn { | ||||
|  | ||||
|     private getSortIndicator(table: Table<unknown>): string { | ||||
|         switch (table.order) { | ||||
|         case this.orderBy: | ||||
|             return "fa-long-arrow-alt-down"; | ||||
|         case `-${this.orderBy}`: | ||||
|             return "fa-long-arrow-alt-up"; | ||||
|         default: | ||||
|             return "fa-arrows-alt-v"; | ||||
|             case this.orderBy: | ||||
|                 return "fa-long-arrow-alt-down"; | ||||
|             case `-${this.orderBy}`: | ||||
|                 return "fa-long-arrow-alt-up"; | ||||
|             default: | ||||
|                 return "fa-arrows-alt-v"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     renderSortable(table: Table<unknown>): TemplateResult { | ||||
|         return html` | ||||
|             <button class="pf-c-table__button" @click=${() => this.headerClickHandler(table)}> | ||||
|                 <div class="pf-c-table__button-content"> | ||||
|                     <span class="pf-c-table__text">${this.title}</span> | ||||
|                     <span class="pf-c-table__sort-indicator"> | ||||
|                         <i class="fas ${this.getSortIndicator(table)}"></i> | ||||
|                     </span> | ||||
|                 </div> | ||||
|             </button>`; | ||||
|         return html` <button | ||||
|             class="pf-c-table__button" | ||||
|             @click=${() => this.headerClickHandler(table)} | ||||
|         > | ||||
|             <div class="pf-c-table__button-content"> | ||||
|                 <span class="pf-c-table__text">${this.title}</span> | ||||
|                 <span class="pf-c-table__sort-indicator"> | ||||
|                     <i class="fas ${this.getSortIndicator(table)}"></i> | ||||
|                 </span> | ||||
|             </div> | ||||
|         </button>`; | ||||
|     } | ||||
|  | ||||
|     render(table: Table<unknown>): TemplateResult { | ||||
| @ -72,12 +73,14 @@ export class TableColumn { | ||||
|             scope="col" | ||||
|             class=" | ||||
|                 ${this.orderBy ? "pf-c-table__sort " : " "} | ||||
|                 ${(table.order === this.orderBy || table.order === `-${this.orderBy}`) ? "pf-m-selected " : ""} | ||||
|             "> | ||||
|                 ${table.order === this.orderBy || table.order === `-${this.orderBy}` | ||||
|                 ? "pf-m-selected " | ||||
|                 : ""} | ||||
|             " | ||||
|         > | ||||
|             ${this.orderBy ? this.renderSortable(table) : html`${this.title}`} | ||||
|         </th>`; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| export abstract class Table<T> extends LitElement { | ||||
| @ -99,32 +102,41 @@ export abstract class Table<T> extends LitElement { | ||||
|         return html``; | ||||
|     } | ||||
|  | ||||
|     @property({attribute: false}) | ||||
|     @property({ attribute: false }) | ||||
|     data?: AKResponse<T>; | ||||
|  | ||||
|     @property({type: Number}) | ||||
|     @property({ type: Number }) | ||||
|     page = 1; | ||||
|  | ||||
|     @property({type: String}) | ||||
|     @property({ type: String }) | ||||
|     order?: string; | ||||
|  | ||||
|     @property({type: String}) | ||||
|     @property({ type: String }) | ||||
|     search?: string; | ||||
|  | ||||
|     @property({type: Boolean}) | ||||
|     @property({ type: Boolean }) | ||||
|     checkbox = false; | ||||
|  | ||||
|     @property({attribute: false}) | ||||
|     @property({ attribute: false }) | ||||
|     selectedElements: T[] = []; | ||||
|  | ||||
|     @property({type: Boolean}) | ||||
|     @property({ type: Boolean }) | ||||
|     expandable = false; | ||||
|  | ||||
|     @property({attribute: false}) | ||||
|     @property({ attribute: false }) | ||||
|     expandedRows: boolean[] = []; | ||||
|  | ||||
|     static get styles(): CSSResult[] { | ||||
|         return [PFBase, PFTable, PFBullseye, PFButton, PFToolbar, PFDropdown, PFPagination, AKGlobal]; | ||||
|         return [ | ||||
|             PFBase, | ||||
|             PFTable, | ||||
|             PFBullseye, | ||||
|             PFButton, | ||||
|             PFToolbar, | ||||
|             PFDropdown, | ||||
|             PFPagination, | ||||
|             AKGlobal, | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     constructor() { | ||||
| @ -139,24 +151,23 @@ export abstract class Table<T> extends LitElement { | ||||
|             return; | ||||
|         } | ||||
|         this.isLoading = true; | ||||
|         this.apiEndpoint(this.page).then((r) => { | ||||
|             this.data = r; | ||||
|             this.page = r.pagination.current; | ||||
|             this.expandedRows = []; | ||||
|             this.isLoading = false; | ||||
|         }).catch(() => { | ||||
|             this.isLoading = false; | ||||
|         }); | ||||
|         this.apiEndpoint(this.page) | ||||
|             .then((r) => { | ||||
|                 this.data = r; | ||||
|                 this.page = r.pagination.current; | ||||
|                 this.expandedRows = []; | ||||
|                 this.isLoading = false; | ||||
|             }) | ||||
|             .catch(() => { | ||||
|                 this.isLoading = false; | ||||
|             }); | ||||
|     } | ||||
|  | ||||
|     private renderLoading(): TemplateResult { | ||||
|         return html`<tr role="row"> | ||||
|             <td role="cell" colspan="25"> | ||||
|                 <div class="pf-l-bullseye"> | ||||
|                     <ak-empty-state | ||||
|                         ?loading="${true}" | ||||
|                         header=${t`Loading`}> | ||||
|                     </ak-empty-state> | ||||
|                     <ak-empty-state ?loading="${true}" header=${t`Loading`}> </ak-empty-state> | ||||
|                 </div> | ||||
|             </td> | ||||
|         </tr>`; | ||||
| @ -167,7 +178,11 @@ export abstract class Table<T> extends LitElement { | ||||
|             <tr role="row"> | ||||
|                 <td role="cell" colspan="8"> | ||||
|                     <div class="pf-l-bullseye"> | ||||
|                         ${inner ? inner : html`<ak-empty-state header="${t`No objects found.`}"></ak-empty-state>`} | ||||
|                         ${inner | ||||
|                             ? inner | ||||
|                             : html`<ak-empty-state | ||||
|                                   header="${t`No objects found.`}" | ||||
|                               ></ak-empty-state>`} | ||||
|                     </div> | ||||
|                 </td> | ||||
|             </tr> | ||||
| @ -182,40 +197,62 @@ export abstract class Table<T> extends LitElement { | ||||
|             return [this.renderEmpty()]; | ||||
|         } | ||||
|         return this.data.results.map((item: T, idx: number) => { | ||||
|             if ((this.expandedRows.length - 1) < idx) { | ||||
|             if (this.expandedRows.length - 1 < idx) { | ||||
|                 this.expandedRows[idx] = false; | ||||
|             } | ||||
|             return html`<tbody role="rowgroup" class="${this.expandedRows[idx] ? "pf-m-expanded" : ""}"> | ||||
|             return html`<tbody | ||||
|                 role="rowgroup" | ||||
|                 class="${this.expandedRows[idx] ? "pf-m-expanded" : ""}" | ||||
|             > | ||||
|                 <tr role="row"> | ||||
|                     ${this.checkbox ? html`<td class="pf-c-table__check" role="cell"> | ||||
|                         <input type="checkbox" | ||||
|                             ?checked=${this.selectedElements.indexOf(item) >= 0} | ||||
|                             @input=${(ev: InputEvent) => { | ||||
|                                 if ((ev.target as HTMLInputElement).checked) { | ||||
|                                     // Add item to selected | ||||
|                                     this.selectedElements.push(item); | ||||
|                                 } else { | ||||
|                                     // Get index of item and remove if selected | ||||
|                                     const index = this.selectedElements.indexOf(item); | ||||
|                                     if (index <= -1) return; | ||||
|                                     this.selectedElements.splice(index, 1); | ||||
|                                 } | ||||
|                                 this.requestUpdate(); | ||||
|                             }} /> | ||||
|                     </td>` : html``} | ||||
|                     ${this.expandable ? html`<td class="pf-c-table__toggle" role="cell"> | ||||
|                     <button class="pf-c-button pf-m-plain ${this.expandedRows[idx] ? "pf-m-expanded" : ""}" @click=${() => { | ||||
|                         this.expandedRows[idx] = !this.expandedRows[idx]; | ||||
|                         this.requestUpdate(); | ||||
|                     }}> | ||||
|                         <div class="pf-c-table__toggle-icon"> <i class="fas fa-angle-down" aria-hidden="true"></i> </div> | ||||
|                     </button> | ||||
|                     </td>` : html``} | ||||
|                     ${this.checkbox | ||||
|                         ? html`<td class="pf-c-table__check" role="cell"> | ||||
|                               <input | ||||
|                                   type="checkbox" | ||||
|                                   ?checked=${this.selectedElements.indexOf(item) >= 0} | ||||
|                                   @input=${(ev: InputEvent) => { | ||||
|                                       if ((ev.target as HTMLInputElement).checked) { | ||||
|                                           // Add item to selected | ||||
|                                           this.selectedElements.push(item); | ||||
|                                       } else { | ||||
|                                           // Get index of item and remove if selected | ||||
|                                           const index = this.selectedElements.indexOf(item); | ||||
|                                           if (index <= -1) return; | ||||
|                                           this.selectedElements.splice(index, 1); | ||||
|                                       } | ||||
|                                       this.requestUpdate(); | ||||
|                                   }} | ||||
|                               /> | ||||
|                           </td>` | ||||
|                         : html``} | ||||
|                     ${this.expandable | ||||
|                         ? html`<td class="pf-c-table__toggle" role="cell"> | ||||
|                               <button | ||||
|                                   class="pf-c-button pf-m-plain ${this.expandedRows[idx] | ||||
|                                       ? "pf-m-expanded" | ||||
|                                       : ""}" | ||||
|                                   @click=${() => { | ||||
|                                       this.expandedRows[idx] = !this.expandedRows[idx]; | ||||
|                                       this.requestUpdate(); | ||||
|                                   }} | ||||
|                               > | ||||
|                                   <div class="pf-c-table__toggle-icon"> | ||||
|                                        <i class="fas fa-angle-down" aria-hidden="true"></i | ||||
|                                       >  | ||||
|                                   </div> | ||||
|                               </button> | ||||
|                           </td>` | ||||
|                         : html``} | ||||
|                     ${this.row(item).map((col) => { | ||||
|                         return html`<td role="cell">${col}</td>`; | ||||
|                     })} | ||||
|                 </tr> | ||||
|                 <tr class="pf-c-table__expandable-row ${this.expandedRows[idx] ? "pf-m-expanded" : ""}" role="row"> | ||||
|                 <tr | ||||
|                     class="pf-c-table__expandable-row ${this.expandedRows[idx] | ||||
|                         ? "pf-m-expanded" | ||||
|                         : ""}" | ||||
|                     role="row" | ||||
|                 > | ||||
|                     <td></td> | ||||
|                     ${this.expandedRows[idx] ? this.renderExpanded(item) : html``} | ||||
|                 </tr> | ||||
| @ -230,10 +267,11 @@ export abstract class Table<T> extends LitElement { | ||||
|                     new CustomEvent(EVENT_REFRESH, { | ||||
|                         bubbles: true, | ||||
|                         composed: true, | ||||
|                     }) | ||||
|                     }), | ||||
|                 ); | ||||
|             }} | ||||
|             class="pf-c-button pf-m-primary"> | ||||
|             class="pf-c-button pf-m-primary" | ||||
|         > | ||||
|             ${t`Refresh`} | ||||
|         </button>`; | ||||
|     } | ||||
| @ -246,16 +284,20 @@ export abstract class Table<T> extends LitElement { | ||||
|         if (!this.searchEnabled()) { | ||||
|             return html``; | ||||
|         } | ||||
|         return html`<ak-table-search value=${ifDefined(this.search)} .onSearch=${(value: string) => { | ||||
|             this.search = value; | ||||
|             this.dispatchEvent( | ||||
|                 new CustomEvent(EVENT_REFRESH, { | ||||
|                     bubbles: true, | ||||
|                     composed: true, | ||||
|                 }) | ||||
|             ); | ||||
|         }}> | ||||
|         </ak-table-search> `; | ||||
|         return html`<ak-table-search | ||||
|                 value=${ifDefined(this.search)} | ||||
|                 .onSearch=${(value: string) => { | ||||
|                     this.search = value; | ||||
|                     this.dispatchEvent( | ||||
|                         new CustomEvent(EVENT_REFRESH, { | ||||
|                             bubbles: true, | ||||
|                             composed: true, | ||||
|                         }), | ||||
|                     ); | ||||
|                 }} | ||||
|             > | ||||
|             </ak-table-search | ||||
|             > `; | ||||
|     } | ||||
|  | ||||
|     // eslint-disable-next-line @typescript-eslint/no-unused-vars | ||||
| @ -268,20 +310,17 @@ export abstract class Table<T> extends LitElement { | ||||
|     } | ||||
|  | ||||
|     renderTable(): TemplateResult { | ||||
|         return html` | ||||
|             ${this.checkbox ? | ||||
|                 html`<ak-chip-group> | ||||
|                         ${this.selectedElements.map(el => { | ||||
|                             return html`<ak-chip>${this.renderSelectedChip(el)}</ak-chip>`; | ||||
|                         })} | ||||
|                     </ak-chip-group>`: | ||||
|                 html``} | ||||
|         return html` ${this.checkbox | ||||
|                 ? html`<ak-chip-group> | ||||
|                       ${this.selectedElements.map((el) => { | ||||
|                           return html`<ak-chip>${this.renderSelectedChip(el)}</ak-chip>`; | ||||
|                       })} | ||||
|                   </ak-chip-group>` | ||||
|                 : html``} | ||||
|             <div class="pf-c-toolbar"> | ||||
|                 <div class="pf-c-toolbar__content"> | ||||
|                     ${this.renderSearch()} | ||||
|                     <div class="pf-c-toolbar__bulk-select"> | ||||
|                         ${this.renderToolbar()} | ||||
|                     </div> | ||||
|                     <div class="pf-c-toolbar__bulk-select">${this.renderToolbar()}</div> | ||||
|                     ${this.renderToolbarAfter()} | ||||
|                     <ak-table-pagination | ||||
|                         class="pf-c-toolbar__item pf-m-pagination" | ||||
| @ -292,29 +331,36 @@ export abstract class Table<T> extends LitElement { | ||||
|                                 new CustomEvent(EVENT_REFRESH, { | ||||
|                                     bubbles: true, | ||||
|                                     composed: true, | ||||
|                                 }) | ||||
|                                 }), | ||||
|                             ); | ||||
|                         }}> | ||||
|                         }} | ||||
|                     > | ||||
|                     </ak-table-pagination> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <table class="pf-c-table pf-m-compact pf-m-grid-md pf-m-expandable"> | ||||
|                 <thead> | ||||
|                     <tr role="row"> | ||||
|                         ${this.checkbox ? html`<td class="pf-c-table__check" role="cell"> | ||||
|                             <input type="checkbox" aria-label=${t`Select all rows`} @input=${(ev: InputEvent) => { | ||||
|                                 if ((ev.target as HTMLInputElement).checked) { | ||||
|                                     this.selectedElements = this.data?.results || []; | ||||
|                                 } else { | ||||
|                                     this.selectedElements = []; | ||||
|                                 } | ||||
|                             }} /> | ||||
|                         </td>` : html``} | ||||
|                         ${this.checkbox | ||||
|                             ? html`<td class="pf-c-table__check" role="cell"> | ||||
|                                   <input | ||||
|                                       type="checkbox" | ||||
|                                       aria-label=${t`Select all rows`} | ||||
|                                       @input=${(ev: InputEvent) => { | ||||
|                                           if ((ev.target as HTMLInputElement).checked) { | ||||
|                                               this.selectedElements = this.data?.results || []; | ||||
|                                           } else { | ||||
|                                               this.selectedElements = []; | ||||
|                                           } | ||||
|                                       }} | ||||
|                                   /> | ||||
|                               </td>` | ||||
|                             : html``} | ||||
|                         ${this.expandable ? html`<td role="cell"></td>` : html``} | ||||
|                         ${this.columns().map((col) => col.render(this))} | ||||
|                     </tr> | ||||
|                 </thead> | ||||
|                 ${(this.isLoading || !this.data) ? this.renderLoading() : this.renderRows()} | ||||
|                 ${this.isLoading || !this.data ? this.renderLoading() : this.renderRows()} | ||||
|             </table> | ||||
|             <div class="pf-c-pagination pf-m-bottom"> | ||||
|                 <ak-table-pagination | ||||
| @ -326,9 +372,10 @@ export abstract class Table<T> extends LitElement { | ||||
|                             new CustomEvent(EVENT_REFRESH, { | ||||
|                                 bubbles: true, | ||||
|                                 composed: true, | ||||
|                             }) | ||||
|                             }), | ||||
|                         ); | ||||
|                     }}> | ||||
|                     }} | ||||
|                 > | ||||
|                 </ak-table-pagination> | ||||
|             </div>`; | ||||
|     } | ||||
|  | ||||
| @ -19,7 +19,16 @@ export abstract class TableModal<T> extends Table<T> { | ||||
|     open = false; | ||||
|  | ||||
|     static get styles(): CSSResult[] { | ||||
|         return super.styles.concat(PFModalBox, PFBullseye, PFContent, PFBackdrop, PFPage, PFStack, AKGlobal, MODAL_BUTTON_STYLES); | ||||
|         return super.styles.concat( | ||||
|             PFModalBox, | ||||
|             PFBullseye, | ||||
|             PFContent, | ||||
|             PFBackdrop, | ||||
|             PFPage, | ||||
|             PFStack, | ||||
|             AKGlobal, | ||||
|             MODAL_BUTTON_STYLES, | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     constructor() { | ||||
| @ -33,7 +42,7 @@ export abstract class TableModal<T> extends Table<T> { | ||||
|     } | ||||
|  | ||||
|     resetForms(): void { | ||||
|         this.querySelectorAll<HTMLFormElement>("[slot=form]").forEach(form => { | ||||
|         this.querySelectorAll<HTMLFormElement>("[slot=form]").forEach((form) => { | ||||
|             if ("resetForm" in form) { | ||||
|                 form?.resetForm(); | ||||
|             } | ||||
| @ -42,7 +51,7 @@ export abstract class TableModal<T> extends Table<T> { | ||||
|  | ||||
|     onClick(): void { | ||||
|         this.open = true; | ||||
|         this.querySelectorAll("*").forEach(child => { | ||||
|         this.querySelectorAll("*").forEach((child) => { | ||||
|             if ("requestUpdate" in child) { | ||||
|                 (child as LitElement).requestUpdate(); | ||||
|             } | ||||
| @ -56,11 +65,7 @@ export abstract class TableModal<T> extends Table<T> { | ||||
|     renderModal(): TemplateResult { | ||||
|         return html`<div class="pf-c-backdrop"> | ||||
|             <div class="pf-l-bullseye"> | ||||
|                 <div | ||||
|                     class="pf-c-modal-box ${this.size}" | ||||
|                     role="dialog" | ||||
|                     aria-modal="true" | ||||
|                 > | ||||
|                 <div class="pf-c-modal-box ${this.size}" role="dialog" aria-modal="true"> | ||||
|                     <button | ||||
|                         @click=${() => (this.open = false)} | ||||
|                         class="pf-c-button pf-m-plain" | ||||
|  | ||||
| @ -19,7 +19,8 @@ export abstract class TablePage<T> extends Table<T> { | ||||
|         return html`<ak-page-header | ||||
|                 icon=${this.pageIcon()} | ||||
|                 header=${this.pageTitle()} | ||||
|                 description=${ifDefined(this.pageDescription())}> | ||||
|                 description=${ifDefined(this.pageDescription())} | ||||
|             > | ||||
|             </ak-page-header> | ||||
|             <section class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||
|                 <div class="pf-c-card">${this.renderTable()}</div> | ||||
|  | ||||
| @ -8,12 +8,12 @@ import AKGlobal from "../../authentik.css"; | ||||
|  | ||||
| @customElement("ak-table-pagination") | ||||
| export class TablePagination extends LitElement { | ||||
|     @property({attribute: false}) | ||||
|     @property({ attribute: false }) | ||||
|     pages?: AKPagination; | ||||
|  | ||||
|     @property({attribute: false}) | ||||
|     @property({ attribute: false }) | ||||
|     // eslint-disable-next-line | ||||
|     pageChangeHandler: (page: number) => void = (page: number) => {} | ||||
|     pageChangeHandler: (page: number) => void = (page: number) => {}; | ||||
|  | ||||
|     static get styles(): CSSResult[] { | ||||
|         return [PFBase, PFButton, PFPagination, AKGlobal]; | ||||
| @ -33,7 +33,9 @@ export class TablePagination extends LitElement { | ||||
|                     <div class="pf-c-pagination__nav-control pf-m-prev"> | ||||
|                         <button | ||||
|                             class="pf-c-button pf-m-plain" | ||||
|                             @click=${() => { this.pageChangeHandler(this.pages?.previous || 0); }} | ||||
|                             @click=${() => { | ||||
|                                 this.pageChangeHandler(this.pages?.previous || 0); | ||||
|                             }} | ||||
|                             ?disabled="${(this.pages?.previous || 0) < 1}" | ||||
|                             aria-label="${t`Go to previous page`}" | ||||
|                         > | ||||
| @ -43,7 +45,9 @@ export class TablePagination extends LitElement { | ||||
|                     <div class="pf-c-pagination__nav-control pf-m-next"> | ||||
|                         <button | ||||
|                             class="pf-c-button pf-m-plain" | ||||
|                             @click=${() => { this.pageChangeHandler(this.pages?.next || 0); }} | ||||
|                             @click=${() => { | ||||
|                                 this.pageChangeHandler(this.pages?.next || 0); | ||||
|                             }} | ||||
|                             ?disabled="${(this.pages?.next || 0) <= 0}" | ||||
|                             aria-label="${t`Go to next page`}" | ||||
|                         > | ||||
|  | ||||
| @ -10,7 +10,6 @@ import { t } from "@lingui/macro"; | ||||
|  | ||||
| @customElement("ak-table-search") | ||||
| export class TableSearch extends LitElement { | ||||
|  | ||||
|     @property() | ||||
|     value?: string; | ||||
|  | ||||
| @ -23,25 +22,36 @@ export class TableSearch extends LitElement { | ||||
|  | ||||
|     render(): TemplateResult { | ||||
|         return html`<div class="pf-c-toolbar__group pf-m-filter-group"> | ||||
|                 <div class="pf-c-toolbar__item pf-m-search-filter"> | ||||
|                     <form class="pf-c-input-group" method="GET" @submit=${(e: Event) => { | ||||
|             <div class="pf-c-toolbar__item pf-m-search-filter"> | ||||
|                 <form | ||||
|                     class="pf-c-input-group" | ||||
|                     method="GET" | ||||
|                     @submit=${(e: Event) => { | ||||
|                         e.preventDefault(); | ||||
|                         if (!this.onSearch) return; | ||||
|                         const el = this.shadowRoot?.querySelector<HTMLInputElement>("input[type=search]"); | ||||
|                         const el = | ||||
|                             this.shadowRoot?.querySelector<HTMLInputElement>("input[type=search]"); | ||||
|                         if (!el) return; | ||||
|                         if (el.value === "") return; | ||||
|                         this.onSearch(el?.value); | ||||
|                     }}> | ||||
|                         <input class="pf-c-form-control" name="search" type="search" placeholder=${t`Search...`} value="${ifDefined(this.value)}" @search=${(ev: Event) => { | ||||
|                     }} | ||||
|                 > | ||||
|                     <input | ||||
|                         class="pf-c-form-control" | ||||
|                         name="search" | ||||
|                         type="search" | ||||
|                         placeholder=${t`Search...`} | ||||
|                         value="${ifDefined(this.value)}" | ||||
|                         @search=${(ev: Event) => { | ||||
|                             if (!this.onSearch) return; | ||||
|                             this.onSearch((ev.target as HTMLInputElement).value); | ||||
|                         }}> | ||||
|                         <button class="pf-c-button pf-m-control" type="submit"> | ||||
|                             <i class="fas fa-search" aria-hidden="true"></i> | ||||
|                         </button> | ||||
|                     </form> | ||||
|                 </div> | ||||
|             </div>`; | ||||
|                         }} | ||||
|                     /> | ||||
|                     <button class="pf-c-button pf-m-control" type="submit"> | ||||
|                         <i class="fas fa-search" aria-hidden="true"></i> | ||||
|                     </button> | ||||
|                 </form> | ||||
|             </div> | ||||
|         </div>`; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer