* fix repo in api client Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: re-organise files to match their interface Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: include version in script tags Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * cleanup maybe broken Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * revert rename Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: get rid of Client.ts Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * move more to common Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * more moving Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * format Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * unfuck files that vscode fucked, thanks Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * move more Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * finish moving (maybe) Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * ok more moving Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix more stuff that vs code destroyed Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * get rid "web" prefix for virtual package Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix locales Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * use custom base element Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix css file Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * don't run autoDetectLanguage when importing locale Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * fix circular dependencies Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: fix build Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { AKElement } from "@goauthentik/elements/Base";
|
|
|
|
import { CSSResult, TemplateResult, html } from "lit";
|
|
import { customElement, property } from "lit/decorators.js";
|
|
|
|
import AKGlobal from "@goauthentik/common/styles/authentik.css";
|
|
import PFLabel from "@patternfly/patternfly/components/Label/label.css";
|
|
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
|
|
|
export enum PFColor {
|
|
Green = "pf-m-green",
|
|
Orange = "pf-m-orange",
|
|
Red = "pf-m-red",
|
|
Grey = "",
|
|
}
|
|
|
|
@customElement("ak-label")
|
|
export class Label extends AKElement {
|
|
@property()
|
|
color: PFColor = PFColor.Grey;
|
|
|
|
@property()
|
|
icon?: string;
|
|
|
|
static get styles(): CSSResult[] {
|
|
return [PFBase, PFLabel, AKGlobal];
|
|
}
|
|
|
|
getDefaultIcon(): string {
|
|
switch (this.color) {
|
|
case PFColor.Green:
|
|
return "fa-check";
|
|
case PFColor.Orange:
|
|
return "fa-exclamation-triangle";
|
|
case PFColor.Red:
|
|
return "fa-times";
|
|
case PFColor.Grey:
|
|
return "fa-question-circle";
|
|
default:
|
|
return "";
|
|
}
|
|
}
|
|
|
|
render(): TemplateResult {
|
|
return html`<span class="pf-c-label ${this.color}">
|
|
<span class="pf-c-label__content">
|
|
<span class="pf-c-label__icon">
|
|
<i
|
|
class="fas fa-fw ${this.icon || this.getDefaultIcon()}"
|
|
aria-hidden="true"
|
|
></i>
|
|
</span>
|
|
<slot></slot>
|
|
</span>
|
|
</span>`;
|
|
}
|
|
}
|