import "#admin/sources/kerberos/KerberosSourceViewPage"; import "#admin/sources/ldap/LDAPSourceViewPage"; import "#admin/sources/oauth/OAuthSourceViewPage"; import "#admin/sources/plex/PlexSourceViewPage"; import "#admin/sources/saml/SAMLSourceViewPage"; import "#admin/sources/scim/SCIMSourceViewPage"; import { DEFAULT_CONFIG } from "#common/api/config"; import "#components/ak-page-header"; import { AKElement } from "#elements/Base"; import "#elements/EmptyState"; import "#elements/buttons/SpinnerButton/ak-spinner-button"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; import { Source, SourcesApi } from "@goauthentik/api"; @customElement("ak-source-view") export class SourceViewPage extends AKElement { @property({ type: String }) set sourceSlug(slug: string) { new SourcesApi(DEFAULT_CONFIG) .sourcesAllRetrieve({ slug: slug, }) .then((source) => { this.source = source; }); } @property({ attribute: false }) source?: Source; renderSource(): TemplateResult { if (!this.source) { return html``; } switch (this.source?.component) { case "ak-source-kerberos-form": return html``; case "ak-source-ldap-form": return html``; case "ak-source-oauth-form": return html``; case "ak-source-saml-form": return html``; case "ak-source-plex-form": return html``; case "ak-source-scim-form": return html``; default: return html`

Invalid source type ${this.source.component}

`; } } render(): TemplateResult { return html` ${this.renderSource()}`; } } declare global { interface HTMLElementTagNameMap { "ak-source-view": SourceViewPage; } }