import "@goauthentik/admin/common/ak-license-notice"; import "@goauthentik/admin/providers/ldap/LDAPProviderForm"; import "@goauthentik/admin/providers/oauth2/OAuth2ProviderForm"; import "@goauthentik/admin/providers/proxy/ProxyProviderForm"; import "@goauthentik/admin/providers/saml/SAMLProviderForm"; import "@goauthentik/admin/providers/saml/SAMLProviderImportForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/forms/ProxyForm"; import "@goauthentik/elements/wizard/FormWizardPage"; import "@goauthentik/elements/wizard/TypeCreateWizardPage"; import { TypeCreateWizardPageLayouts } from "@goauthentik/elements/wizard/TypeCreateWizardPage"; import "@goauthentik/elements/wizard/Wizard"; import type { Wizard } from "@goauthentik/elements/wizard/Wizard"; import { msg, str } from "@lit/localize"; import { customElement } from "@lit/reactive-element/decorators/custom-element.js"; import { CSSResult, TemplateResult, html } from "lit"; import { property, query } from "lit/decorators.js"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; import { ProvidersApi, TypeCreate } from "@goauthentik/api"; @customElement("ak-provider-wizard") export class ProviderWizard extends AKElement { static get styles(): CSSResult[] { return [PFBase, PFButton]; } @property() createText = msg("Create"); @property({ attribute: false }) providerTypes: TypeCreate[] = []; @property({ attribute: false }) finalHandler: () => Promise = () => { return Promise.resolve(); }; @query("ak-wizard") wizard?: Wizard; async firstUpdated(): Promise { this.providerTypes = await new ProvidersApi(DEFAULT_CONFIG).providersAllTypesList(); } render(): TemplateResult { return html` { return this.finalHandler(); }} > ) => { if (!this.wizard) return; this.wizard.steps = ["initial", `type-${ev.detail.component}`]; this.wizard.isValid = true; }} > ${this.providerTypes.map((type) => { return html` msg(str`Create ${type.name}`)} > `; })} `; } } declare global { interface HTMLElementTagNameMap { "ak-provider-wizard": ProviderWizard; } }