/
dimamir
/
authentik
Обзор
Документация
Войти
/
dimamir
/
authentik
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
web/src/elements/forms/FormGroup.ts
86 строк
3 KB
Ken Sternberg
web: add HTMLTagNameElementMaps to everything to activate lit analyzer (#10217)
15 июл 2024, 20:54
Не верифицирован
15 июл 2024, 20:54
ee58cf0
Код
Авторство
О чём код?
import { AKElement } from "@goauthentik/elements/Base"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, css, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; /** * Form Group * * Mostly visual effects, with a single interaction for opening/closing the view. * */ /** * TODO: Listen for custom events from its children about 'invalidation' events, and * trigger the `expanded` property as needed. */ @customElement("ak-form-group") export class FormGroup extends AKElement { @property({ type: Boolean, reflect: true }) expanded = false; @property({ type: String, attribute: "aria-label", reflect: true }) ariaLabel = msg("Details"); static get styles(): CSSResult[] { return [ PFBase, PFForm, PFButton, PFFormControl, css` slot[name="body"][hidden] { display: none !important; } `, ]; } render(): TemplateResult { return html`<div class="pf-c-form__field-group ${this.expanded ? "pf-m-expanded" : ""}"> <div class="pf-c-form__field-group-toggle"> <div class="pf-c-form__field-group-toggle-button"> <button class="pf-c-button pf-m-plain" type="button" aria-expanded="${this.expanded}" aria-label=${this.ariaLabel} @click=${() => { this.expanded = !this.expanded; }} > <span class="pf-c-form__field-group-toggle-icon"> <i class="fas fa-angle-right" aria-hidden="true"></i> </span> </button> </div> </div> <div class="pf-c-form__field-group-header"> <div class="pf-c-form__field-group-header-main"> <div class="pf-c-form__field-group-header-title"> <div class="pf-c-form__field-group-header-title-text"> <slot name="header"></slot> </div> </div> <div class="pf-c-form__field-group-header-description"> <slot name="description"></slot> </div> </div> </div> <slot ?hidden=${!this.expanded} class="pf-c-form__field-group-body" name="body"></slot> </div>`; } } declare global { interface HTMLElementTagNameMap { "ak-form-group": FormGroup; } }