web/elements: add formgroup
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		
							
								
								
									
										51
									
								
								web/src/elements/forms/FormGroup.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								web/src/elements/forms/FormGroup.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element"; | ||||
| import PFBase from "@patternfly/patternfly/patternfly-base.css"; | ||||
| import PFForm from "@patternfly/patternfly/components/Form/form.css"; | ||||
| import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; | ||||
| import AKGlobal from "../../authentik.css"; | ||||
| import PFButton from "@patternfly/patternfly/components/Button/button.css"; | ||||
|  | ||||
| @customElement("ak-form-group") | ||||
| export class FormGroup extends LitElement { | ||||
|  | ||||
|     @property({ type: Boolean }) | ||||
|     expanded = false; | ||||
|  | ||||
|     static get styles(): CSSResult[] { | ||||
|         return [PFBase, PFForm, PFButton, PFFormControl, AKGlobal, 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="Details" @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>`; | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer