import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element"; import { Source, SourcesApi } from "authentik-api"; import { DEFAULT_CONFIG } from "../../api/Config"; import "../../elements/buttons/SpinnerButton"; import "../../elements/EmptyState"; import "./ldap/LDAPSourceViewPage"; import "./oauth/OAuthSourceViewPage"; import "./saml/SAMLSourceViewPage"; @customElement("ak-source-view") export class SourceViewPage extends LitElement { @property({ type: String }) set sourceSlug(slug: string) { new SourcesApi(DEFAULT_CONFIG).sourcesAllRead({ slug: slug }).then((source) => { this.source = source; }); } @property({ attribute: false }) source?: Source; static get styles(): CSSResult[] { return [css` * { height: 100%; } `]; } render(): TemplateResult { if (!this.source) { return html``; } switch (this.source?.component) { case "ak-source-ldap-form": return html``; case "ak-source-oauth-form": return html``; case "ak-source-saml-form": return html``; default: return html`

Invalid source type ${this.source.component}

`; } } }