import { AKElement } from "@goauthentik/elements/Base"; import { t } from "@lingui/macro"; import { CSSResult, TemplateResult, css, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; import AKGlobal from "@goauthentik/common/styles/authentik.css"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; import PFInputGroup from "@patternfly/patternfly/components/InputGroup/input-group.css"; import PFToolbar from "@patternfly/patternfly/components/Toolbar/toolbar.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; @customElement("ak-table-search") export class TableSearch extends AKElement { @property() value?: string; @property() onSearch?: (value: string) => void; static get styles(): CSSResult[] { return [ PFBase, PFButton, PFToolbar, PFInputGroup, PFFormControl, AKGlobal, css` ::-webkit-search-cancel-button { display: none; } `, ]; } render(): TemplateResult { return html`
{ e.preventDefault(); if (!this.onSearch) return; const el = this.shadowRoot?.querySelector("input[type=search]"); if (!el) return; if (el.value === "") return; this.onSearch(el?.value); }} > { if (!this.onSearch) return; this.onSearch((ev.target as HTMLInputElement).value); }} /> `; } }