import "@goauthentik/admin/providers/google_workspace/GoogleWorkspaceProviderViewPage"; import "@goauthentik/admin/providers/ldap/LDAPProviderViewPage"; import "@goauthentik/admin/providers/microsoft_entra/MicrosoftEntraProviderViewPage"; import "@goauthentik/admin/providers/oauth2/OAuth2ProviderViewPage"; import "@goauthentik/admin/providers/proxy/ProxyProviderViewPage"; import "@goauthentik/admin/providers/rac/RACProviderViewPage"; import "@goauthentik/admin/providers/radius/RadiusProviderViewPage"; import "@goauthentik/admin/providers/saml/SAMLProviderViewPage"; import "@goauthentik/admin/providers/scim/SCIMProviderViewPage"; import "@goauthentik/admin/providers/ssf/SSFProviderViewPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/EmptyState"; import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/buttons/SpinnerButton"; import { CSSResult, TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import { Provider, ProvidersApi } from "@goauthentik/api"; @customElement("ak-provider-view") export class ProviderViewPage extends AKElement { @property({ type: Number }) set providerID(value: number) { new ProvidersApi(DEFAULT_CONFIG) .providersAllRetrieve({ id: value, }) .then((prov) => (this.provider = prov)); } @property({ attribute: false }) provider?: Provider; static get styles(): CSSResult[] { return [PFPage]; } renderProvider(): TemplateResult { if (!this.provider) { return html``; } switch (this.provider?.component) { case "ak-provider-saml-form": return html``; case "ak-provider-oauth2-form": return html``; case "ak-provider-proxy-form": return html``; case "ak-provider-ldap-form": return html``; case "ak-provider-scim-form": return html``; case "ak-provider-radius-form": return html``; case "ak-provider-rac-form": return html``; case "ak-provider-google-workspace-form": return html``; case "ak-provider-microsoft-entra-form": return html``; case "ak-provider-ssf-form": return html``; default: return html`

Invalid provider type ${this.provider?.component}

`; } } render(): TemplateResult { return html` ${this.renderProvider()}`; } } declare global { interface HTMLElementTagNameMap { "ak-provider-view": ProviderViewPage; } }