{"version":3,"sources":["node_modules/@ngxs/form-plugin/fesm2022/ngxs-form-plugin.mjs","node_modules/@ory/integrations/ui/index.mjs","src/app/core/components/kratos/form.component.ts","src/app/core/components/kratos/form.component.html","src/app/store/communication/broadcast-channels.actions.ts","src/app/store/communication/broadcast-channels.service.ts","src/app/store/communication/broadcast-channels.state.ts","src/app/store/communication/broadcast-channels.state.module.ts","src/app/pages/internal/settings/pages/settings.component.ts","src/app/pages/internal/settings/pages/settings.component.html","src/app/core/dialogs/reauthenticate/reauthenticate.component.ts","src/app/core/dialogs/reauthenticate/reauthenticate.component.html"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject, ChangeDetectorRef, Directive, Input, NgModule } from '@angular/core';\nimport { Actions, Store, ofActionDispatched, withNgxsPlugin } from '@ngxs/store';\nimport { getActionTypeFromInstance, setValue, getValue } from '@ngxs/store/plugins';\nimport { FormGroupDirective } from '@angular/forms';\nimport { ReplaySubject } from 'rxjs';\nimport { filter, takeUntil, distinctUntilChanged, debounceTime } from 'rxjs/operators';\nlet UpdateFormStatus = /*#__PURE__*/(() => {\n class UpdateFormStatus {\n static {\n this.type = '[Forms] Update Form Status';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return UpdateFormStatus;\n})();\nlet UpdateFormValue = /*#__PURE__*/(() => {\n class UpdateFormValue {\n static {\n this.type = '[Forms] Update Form Value';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return UpdateFormValue;\n})();\nlet UpdateForm = /*#__PURE__*/(() => {\n class UpdateForm {\n static {\n this.type = '[Forms] Update Form';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return UpdateForm;\n})();\nlet UpdateFormDirty = /*#__PURE__*/(() => {\n class UpdateFormDirty {\n static {\n this.type = '[Forms] Update Form Dirty';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return UpdateFormDirty;\n})();\nlet SetFormDirty = /*#__PURE__*/(() => {\n class SetFormDirty {\n static {\n this.type = '[Forms] Set Form Dirty';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return SetFormDirty;\n})();\nlet SetFormPristine = /*#__PURE__*/(() => {\n class SetFormPristine {\n static {\n this.type = '[Forms] Set Form Pristine';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return SetFormPristine;\n})();\nlet UpdateFormErrors = /*#__PURE__*/(() => {\n class UpdateFormErrors {\n static {\n this.type = '[Forms] Update Form Errors';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return UpdateFormErrors;\n})();\nlet SetFormDisabled = /*#__PURE__*/(() => {\n class SetFormDisabled {\n static {\n this.type = '[Forms] Set Form Disabled';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return SetFormDisabled;\n})();\nlet SetFormEnabled = /*#__PURE__*/(() => {\n class SetFormEnabled {\n static {\n this.type = '[Forms] Set Form Enabled';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return SetFormEnabled;\n})();\nlet ResetForm = /*#__PURE__*/(() => {\n class ResetForm {\n static {\n this.type = '[Forms] Reset Form';\n }\n constructor(payload) {\n this.payload = payload;\n }\n }\n return ResetForm;\n})();\nlet NgxsFormPlugin = /*#__PURE__*/(() => {\n class NgxsFormPlugin {\n handle(state, event, next) {\n const type = getActionTypeFromInstance(event);\n let nextState = state;\n if (type === UpdateFormValue.type || type === UpdateForm.type || type === ResetForm.type) {\n const {\n value\n } = event.payload;\n const payloadValue = Array.isArray(value) ? value.slice() : isObjectLike(value) ? {\n ...value\n } : value;\n const path = this.joinPathWithPropertyPath(event);\n nextState = setValue(nextState, path, payloadValue);\n }\n if (type === ResetForm.type) {\n const model = getValue(nextState, `${event.payload.path}.model`);\n nextState = setValue(nextState, `${event.payload.path}`, {\n model: model\n });\n }\n if (type === UpdateFormStatus.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.status`, event.payload.status);\n }\n if (type === UpdateFormErrors.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.errors`, {\n ...event.payload.errors\n });\n }\n if (type === UpdateFormDirty.type || type === UpdateForm.type) {\n nextState = setValue(nextState, `${event.payload.path}.dirty`, event.payload.dirty);\n }\n if (type === SetFormDirty.type) {\n nextState = setValue(nextState, `${event.payload}.dirty`, true);\n }\n if (type === SetFormPristine.type) {\n nextState = setValue(nextState, `${event.payload}.dirty`, false);\n }\n if (type === SetFormDisabled.type) {\n nextState = setValue(nextState, `${event.payload}.disabled`, true);\n }\n if (type === SetFormEnabled.type) {\n nextState = setValue(nextState, `${event.payload}.disabled`, false);\n }\n return next(nextState, event);\n }\n joinPathWithPropertyPath({\n payload\n }) {\n let path = `${payload.path}.model`;\n if (payload.propertyPath) {\n path += `.${payload.propertyPath}`;\n }\n return path;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function NgxsFormPlugin_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxsFormPlugin)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgxsFormPlugin,\n factory: NgxsFormPlugin.ɵfac\n });\n }\n }\n return NgxsFormPlugin;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction isObjectLike(target) {\n return target !== null && typeof target === 'object';\n}\nlet NgxsFormDirective = /*#__PURE__*/(() => {\n class NgxsFormDirective {\n constructor() {\n this.path = null;\n this._debounce = 100;\n this._clearDestroy = false;\n this._updating = false;\n this._actions$ = inject(Actions);\n this._store = inject(Store);\n this._formGroupDirective = inject(FormGroupDirective);\n this._cd = inject(ChangeDetectorRef);\n this._destroy$ = new ReplaySubject(1);\n }\n set debounce(debounce) {\n this._debounce = Number(debounce);\n }\n get debounce() {\n return this._debounce;\n }\n set clearDestroy(val) {\n this._clearDestroy = val != null && `${val}` !== 'false';\n }\n get clearDestroy() {\n return this._clearDestroy;\n }\n ngOnInit() {\n this._actions$.pipe(ofActionDispatched(ResetForm), filter(action => action.payload.path === this.path), takeUntil(this._destroy$)).subscribe(({\n payload: {\n value\n }\n }) => {\n this.form.reset(value);\n this.updateFormStateWithRawValue(true);\n this._cd.markForCheck();\n });\n this.getStateStream(`${this.path}.model`).subscribe(model => {\n if (this._updating || !model) {\n return;\n }\n this.form.patchValue(model);\n this._cd.markForCheck();\n });\n this.getStateStream(`${this.path}.dirty`).subscribe(dirty => {\n if (this.form.dirty === dirty || typeof dirty !== 'boolean') {\n return;\n }\n if (dirty) {\n this.form.markAsDirty();\n } else {\n this.form.markAsPristine();\n }\n this._cd.markForCheck();\n });\n // On first state change, sync form model, status and dirty with state\n this._store.selectOnce(state => getValue(state, this.path)).subscribe(() => {\n this._store.dispatch([new UpdateFormValue({\n path: this.path,\n value: this.form.getRawValue()\n }), new UpdateFormStatus({\n path: this.path,\n status: this.form.status\n }), new UpdateFormDirty({\n path: this.path,\n dirty: this.form.dirty\n })]);\n });\n this.getStateStream(`${this.path}.disabled`).subscribe(disabled => {\n if (this.form.disabled === disabled || typeof disabled !== 'boolean') {\n return;\n }\n if (disabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n this._cd.markForCheck();\n });\n this._formGroupDirective.valueChanges.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), this.debounceChange()).subscribe(() => {\n this.updateFormStateWithRawValue();\n });\n this._formGroupDirective.statusChanges.pipe(distinctUntilChanged(), this.debounceChange()).subscribe(status => {\n this._store.dispatch(new UpdateFormStatus({\n status,\n path: this.path\n }));\n });\n }\n updateFormStateWithRawValue(withFormStatus) {\n if (this._updating) return;\n const value = this._formGroupDirective.control.getRawValue();\n const actions = [new UpdateFormValue({\n path: this.path,\n value\n }), new UpdateFormDirty({\n path: this.path,\n dirty: this._formGroupDirective.dirty\n }), new UpdateFormErrors({\n path: this.path,\n errors: this._formGroupDirective.errors\n })];\n if (withFormStatus) {\n actions.push(new UpdateFormStatus({\n path: this.path,\n status: this._formGroupDirective.status\n }));\n }\n this._updating = true;\n this._store.dispatch(actions).subscribe({\n error: () => this._updating = false,\n complete: () => this._updating = false\n });\n }\n ngOnDestroy() {\n this._destroy$.next();\n if (this.clearDestroy) {\n this._store.dispatch(new UpdateForm({\n path: this.path,\n value: null,\n dirty: null,\n status: null,\n errors: null\n }));\n }\n }\n debounceChange() {\n const skipDebounceTime = this._formGroupDirective.control.updateOn !== 'change' || this._debounce < 0;\n return skipDebounceTime ? change => change.pipe(takeUntil(this._destroy$)) : change => change.pipe(debounceTime(this._debounce), takeUntil(this._destroy$));\n }\n get form() {\n return this._formGroupDirective.form;\n }\n getStateStream(path) {\n return this._store.select(state => getValue(state, path)).pipe(takeUntil(this._destroy$));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function NgxsFormDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxsFormDirective)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgxsFormDirective,\n selectors: [[\"\", \"ngxsForm\", \"\"]],\n inputs: {\n path: [0, \"ngxsForm\", \"path\"],\n debounce: [0, \"ngxsFormDebounce\", \"debounce\"],\n clearDestroy: [0, \"ngxsFormClearOnDestroy\", \"clearDestroy\"]\n }\n });\n }\n }\n return NgxsFormDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxsFormPluginModule = /*#__PURE__*/(() => {\n class NgxsFormPluginModule {\n static forRoot() {\n return {\n ngModule: NgxsFormPluginModule,\n providers: [withNgxsPlugin(NgxsFormPlugin)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function NgxsFormPluginModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxsFormPluginModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxsFormPluginModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return NgxsFormPluginModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction withNgxsFormPlugin() {\n return withNgxsPlugin(NgxsFormPlugin);\n}\n\n/**\n * The public api for consumers of @ngxs/form-plugin\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgxsFormDirective, NgxsFormPlugin, NgxsFormPluginModule, ResetForm, SetFormDirty, SetFormDisabled, SetFormEnabled, SetFormPristine, UpdateForm, UpdateFormDirty, UpdateFormErrors, UpdateFormStatus, UpdateFormValue, withNgxsFormPlugin };\n","const getNodeLabel = node => {\n const attributes = node.attributes;\n if (isUiNodeAnchorAttributes(attributes)) {\n return attributes.title.text;\n }\n if (isUiNodeImageAttributes(attributes)) {\n return node.meta.label?.text || \"\";\n }\n if (isUiNodeInputAttributes(attributes)) {\n if (attributes.label?.text) {\n return attributes.label.text;\n }\n }\n return node.meta.label?.text || \"\";\n};\nfunction isUiNodeAnchorAttributes(attrs) {\n return attrs.node_type === \"a\";\n}\nfunction isUiNodeImageAttributes(attrs) {\n return attrs.node_type === \"img\";\n}\nfunction isUiNodeInputAttributes(attrs) {\n return attrs.node_type === \"input\";\n}\nfunction isUiNodeTextAttributes(attrs) {\n return attrs.node_type === \"text\";\n}\nfunction isUiNodeScriptAttributes(attrs) {\n return attrs.node_type === \"script\";\n}\nfunction getNodeId({\n attributes\n}) {\n if (isUiNodeInputAttributes(attributes)) {\n return attributes.name;\n } else {\n return attributes.id;\n }\n}\nconst getNodeInputType = attr => attr?.[\"type\"] ?? \"\";\nconst filterNodesByGroups = ({\n nodes,\n groups,\n withoutDefaultGroup,\n attributes,\n withoutDefaultAttributes,\n excludeAttributes\n}) => {\n const search = s => typeof s === \"string\" ? s.split(\",\") : s;\n return nodes.filter(({\n group,\n attributes: attr\n }) => {\n if (!groups && !attributes && !excludeAttributes) return true;\n const g = search(groups) || [];\n if (!withoutDefaultGroup) {\n g.push(\"default\");\n }\n const a = search(attributes) || [];\n if (!withoutDefaultAttributes) {\n if (group.includes(\"default\")) {\n a.push(\"hidden\");\n }\n if (group.includes(\"webauthn\") || group.includes(\"totp\")) {\n a.push(\"input\", \"script\");\n }\n }\n const ea = search(excludeAttributes) || [];\n const filterGroup = groups ? g.includes(group) : true;\n const filterAttributes = attributes ? a.includes(getNodeInputType(attr)) : true;\n const filterExcludeAttributes = excludeAttributes ? !ea.includes(getNodeInputType(attr)) : true;\n return filterGroup && filterAttributes && filterExcludeAttributes;\n });\n};\nexport { filterNodesByGroups, getNodeId, getNodeInputType, getNodeLabel, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeInputAttributes, isUiNodeScriptAttributes, isUiNodeTextAttributes };\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {\n LoginFlow,\n RecoveryFlow,\n RegistrationFlow,\n SettingsFlow,\n UiNode,\n UiNodeInputAttributes,\n UiText,\n} from '@ory/client';\nimport { KratosAuthenticationService } from 'src/app/services/authentication/kratos.service';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n FilterNodesByGroups,\n filterNodesByGroups,\n getNodeLabel,\n isUiNodeImageAttributes,\n isUiNodeInputAttributes,\n isUiNodeTextAttributes,\n} from '@ory/integrations/ui';\nimport { SharedModule } from '../../shared.module';\nimport { VButtonComponent } from '../ui-kit/buttons/button/button.component';\nimport { VInputFieldComponent } from '../ui-kit/input-field/input-field.component';\nimport { VInputComponent } from '../ui-kit/input/input.component';\nimport { VSSOButtonComponent } from '../ui-kit/sso-button/sso-button.component';\n\n@Component({\n selector: 'app-kratos-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n imports: [\n SharedModule,\n VButtonComponent,\n ReactiveFormsModule,\n VInputFieldComponent,\n VInputComponent,\n VSSOButtonComponent,\n ],\n providers: [KratosAuthenticationService],\n})\nexport class KratosFormComponent implements OnChanges {\n private fb = inject(FormBuilder);\n private cd = inject(ChangeDetectorRef);\n private translate = inject(TranslateService);\n\n @Input() loading = false;\n @Input() flow?: RegistrationFlow | LoginFlow | RecoveryFlow | SettingsFlow;\n @Input() groups: string[] = [];\n\n // testIdPrefix is used to prefix the test ids of the form elements\n @Input() testIdPrefix?: string;\n\n @Output() kratosFormSubmit = new EventEmitter();\n\n kratosForm: FormGroup = this.fb.group({});\n uiNodes: UiNode[] = [];\n\n formMessages: UiText[] = [];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['flow']) {\n this.setFlow(changes['flow'].currentValue);\n }\n if (changes['loading']) {\n if (changes['loading'].currentValue) {\n this.kratosForm.disable();\n } else {\n this.kratosForm.enable();\n }\n }\n }\n\n public getVisibleNodes(nodes: UiNode[]): UiNode[] {\n const visibleNodes = this.filterUINodes({\n nodes: nodes,\n withoutDefaultGroup: true,\n groups: this.groups,\n excludeAttributes: ['submit', 'button'],\n }).filter(node => {\n if (node.attributes.node_type === 'input') {\n return (node.attributes as UiNodeInputAttributes).type !== 'hidden';\n }\n if (node.attributes.node_type === 'script') {\n return false;\n }\n return true;\n });\n\n return visibleNodes;\n }\n\n public isInputNode(node: UiNode) {\n return isUiNodeInputAttributes(node.attributes);\n }\n\n public isImageNode(node: UiNode) {\n return isUiNodeImageAttributes(node.attributes);\n }\n\n public isTextNode(node: UiNode) {\n return isUiNodeTextAttributes(node.attributes);\n }\n public getTestId(node: UiNode) {\n const label = getNodeLabel(node).toLowerCase().replaceAll(' ', '-');\n return `${this.testIdPrefix}${(node.attributes as any).type}-${label}`;\n }\n\n public getUiNodeLabel(node: UiNode) {\n const label = getNodeLabel(node).toLowerCase();\n\n switch (label) {\n case 'e-mail':\n case 'email':\n case 'id':\n return 'components.kratosForm.emailInput';\n case 'password':\n return 'components.kratosForm.passwordInput';\n case 'first name':\n return 'components.kratosForm.firstnameInput';\n case 'last name':\n return 'components.kratosForm.lastnameInput';\n case 'authenticator app qr code':\n return 'components.kratosForm.twoFAQRCode';\n case 'unlink totp authenticator app':\n return 'components.kratosForm.unlinkTotp';\n case 'authentication code':\n return 'components.kratosForm.authenticationCode';\n case 'this is your authenticator app secret. use it if you can not scan the qr code.':\n return 'components.kratosForm.twoFAManualCode';\n case 'verify code':\n return 'components.kratosForm.twoFAVerifyCode';\n case 'sign in':\n return 'components.kratosForm.signInBtn';\n case 'sign in and link':\n return 'components.kratosForm.signInAndLinkBtn';\n case 'sign up':\n return 'components.kratosForm.signUpBtn';\n case 'submit':\n return 'components.kratosForm.submitBtn';\n case 'save':\n return 'components.kratosForm.saveBtn';\n case 'resend code':\n return 'components.kratosForm.resendCode';\n case 'use authenticator':\n return 'components.kratosForm.twoFaUseTOTP';\n case 'use security key':\n return 'components.kratosForm.twoFaUseSecurityKey';\n case 'add security key':\n return 'components.kratosForm.twoFaAddSecurityKey';\n case 'name of the security key':\n return 'components.kratosForm.twoFaAddSecurityKeyName';\n }\n\n const removeKeyRegex = /remove security key \"(.*)\"/.exec(label);\n if (removeKeyRegex) {\n return this.translate.instant(\n 'components.kratosForm.twoFaRemoveSecurityKey',\n { keyName: removeKeyRegex[1] }\n );\n }\n\n return label;\n }\n\n public filterUINodes(filter: FilterNodesByGroups) {\n return filterNodesByGroups(filter);\n }\n\n public excludeGroups(groups: string[], excludeGroups: string[]) {\n return groups.filter(group => !excludeGroups.includes(group));\n }\n\n public showOIDCGroups(): boolean {\n return this.groups.includes('oidc');\n }\n\n public getOIDCProvider(node: UiNode) {\n return (node.attributes as any).value;\n }\n\n private setFormMessages(messages: UiText[]) {\n // remove 'Please confirm this action by verifying that it is you.' (1010004)\n // when 'Please complete the second authentication challenge.' (1010003) is also included\n\n if (messages.findIndex(m => m.id === 1010004) > -1) {\n messages = messages.filter(m => m.id !== 1010003);\n }\n\n this.formMessages = messages;\n }\n\n setFlow(flow: LoginFlow | RegistrationFlow | RecoveryFlow | SettingsFlow) {\n this.flow = flow;\n\n const nodes = this.filterUINodes({\n nodes: flow.ui.nodes,\n withoutDefaultAttributes: true,\n });\n\n this.setFormMessages(flow.ui.messages || []);\n\n // create form fields\n nodes.forEach(node => {\n // check if node is in group\n if (node.group !== 'default' && !this.groups.includes(node.group)) {\n return;\n }\n\n if (isUiNodeInputAttributes(node.attributes)) {\n // hidden elements like csrf_token are added as controls, but\n // will not be displayed in the form\n if (!this.kratosForm.controls[node.attributes.name]) {\n this.kratosForm?.addControl(\n node.attributes.name,\n this.fb.control(\n node.attributes.value,\n node.attributes.required ? Validators.required : null\n )\n );\n }\n }\n });\n\n this.uiNodes = flow.ui.nodes.map(node => {\n if (node.meta.label?.id === 1070008) {\n (node.attributes as any).type = 'button';\n }\n return node;\n });\n\n // wait for the change detection to run before setting\n // form control errors as they would be removed otherwise\n // due to re-rendering the form when setting the array\n this.cd.detectChanges();\n\n // create form fields\n nodes.forEach(node => {\n if (isUiNodeInputAttributes(node.attributes)) {\n const control = this.kratosForm.controls[node.attributes.name];\n\n // check for errors\n if (node.messages.length > 0) {\n control.setErrors({\n validation: true,\n });\n control.markAsTouched();\n }\n }\n });\n }\n\n submit(customBtnNode?: UiNode) {\n let kratosBody: any = {};\n\n this.uiNodes.forEach(node => {\n if (node.group !== 'default' && !this.groups.includes(node.group)) {\n return;\n }\n\n if (node.attributes.node_type === 'input') {\n const attributes = node.attributes as UiNodeInputAttributes;\n\n if (\n (customBtnNode && attributes.type === 'submit') ||\n attributes.type === 'button'\n ) {\n return;\n }\n\n this.createNestedObject(\n kratosBody,\n attributes.name,\n this.kratosForm?.value[attributes.name]\n );\n }\n });\n\n if (customBtnNode) {\n const attributes = customBtnNode.attributes as UiNodeInputAttributes;\n kratosBody.method = customBtnNode.group;\n kratosBody = this.createNestedObject(\n kratosBody,\n attributes.name,\n attributes.value\n );\n }\n\n this.kratosFormSubmit.emit(kratosBody);\n }\n\n createNestedObject(base: any, path: string, value: any) {\n const keys = path.split('.');\n keys.reduce((prev, curr, index) => {\n return (prev[curr] =\n index === keys.length - 1 ? value : prev[curr] || {});\n }, base);\n return base;\n }\n\n onBtnClick(node: UiNode) {\n const attributes = node.attributes as UiNodeInputAttributes;\n if (attributes.name === 'webauthn_register_trigger') {\n this.webauthnRegistration(node);\n } else if (attributes.name === 'webauthn_login_trigger') {\n this.webauthnLogin(node);\n } else {\n this.submit(node);\n }\n }\n\n public webauthnRegistration(node: UiNode) {\n const onClickAttr = (node.attributes as any).onclick;\n\n const startIndex = onClickAttr.indexOf('{');\n const endIndex = onClickAttr.lastIndexOf('}');\n const fidoConfig = JSON.parse(\n onClickAttr.substring(startIndex, endIndex + 1)\n );\n\n fidoConfig.publicKey.challenge = this.__oryWebAuthnBufferDecode(\n fidoConfig.publicKey.challenge\n );\n fidoConfig.publicKey.user.id = this.__oryWebAuthnBufferDecode(\n fidoConfig.publicKey.user.id\n );\n\n navigator.credentials.create(fidoConfig).then(res => {\n if (!res || res.type !== 'public-key')\n throw Error('failed to create public key');\n\n const credentials = res as PublicKeyCredential;\n const attestationObject =\n credentials.response as AuthenticatorAttestationResponse;\n\n const result = {\n id: credentials.id,\n rawId: this.__oryWebAuthnBufferEncode(credentials.rawId),\n type: credentials.type,\n response: {\n attestationObject: this.__oryWebAuthnBufferEncode(\n attestationObject.attestationObject\n ),\n clientDataJSON: this.__oryWebAuthnBufferEncode(\n credentials.response.clientDataJSON\n ),\n },\n };\n\n this.kratosForm.controls['webauthn_register'].setValue(\n JSON.stringify(result)\n );\n\n this.submit(node);\n });\n }\n\n public webauthnLogin(node: UiNode) {\n const onClickAttr = (node.attributes as any).onclick;\n\n const startIndex = onClickAttr.indexOf('{');\n const endIndex = onClickAttr.lastIndexOf('}');\n const fidoConfig = JSON.parse(\n onClickAttr.substring(startIndex, endIndex + 1)\n );\n\n fidoConfig.publicKey.challenge = this.__oryWebAuthnBufferDecode(\n fidoConfig.publicKey.challenge\n );\n\n fidoConfig.publicKey.allowCredentials =\n fidoConfig.publicKey.allowCredentials.map((value: any) => {\n return {\n ...value,\n id: this.__oryWebAuthnBufferDecode(value.id),\n };\n });\n\n navigator.credentials.get(fidoConfig).then(res => {\n if (!res || res.type !== 'public-key')\n throw Error('failed to create public key');\n\n const credentials = res as PublicKeyCredential;\n const attestationObject =\n credentials.response as AuthenticatorAssertionResponse;\n\n const result = {\n id: credentials.id,\n rawId: this.__oryWebAuthnBufferEncode(credentials.rawId),\n type: credentials.type,\n response: {\n authenticatorData: this.__oryWebAuthnBufferEncode(\n attestationObject.authenticatorData\n ),\n clientDataJSON: this.__oryWebAuthnBufferEncode(\n attestationObject.clientDataJSON\n ),\n signature: this.__oryWebAuthnBufferEncode(\n attestationObject.signature\n ),\n userHandle: this.__oryWebAuthnBufferEncode(\n attestationObject.userHandle!\n ),\n },\n };\n\n this.kratosForm.controls['webauthn_login'].setValue(\n JSON.stringify(result)\n );\n\n this.submit(node);\n });\n }\n\n __oryWebAuthnBufferDecode(value: any) {\n return Uint8Array.from(\n atob(value.replaceAll('-', '+').replaceAll('_', '/')),\n function (c) {\n return c.charCodeAt(0);\n }\n );\n }\n\n __oryWebAuthnBufferEncode(value: ArrayBuffer) {\n return btoa(String.fromCharCode.apply(null, new Uint8Array(value) as any))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n}\n","
\n
\n \n \n
\n \n \n \n\n \n 0\">\n \n \n \n
\n
\n\n \n 0\">\n
\n \n \n
\n
\n\n \n \n \n \n\n \n \n \n \n\n \n @if (showOIDCGroups()) {\n
\n \n @if (getOIDCProvider(node) === 'google') {\n
\n \n
\n }\n @if (getOIDCProvider(node) === 'github') {\n
\n \n
\n }\n @if (getOIDCProvider(node) === 'microsoft') {\n
\n \n
\n }\n \n
\n }\n \n
\n\n\n 0\"\n class=\"vops-kratos-messages\"\n [ngClass]=\"{\n 'kratos-info-message': messages[0].type === 'info',\n 'kratos-error-message': messages[0].type === 'error'\n }\">\n \n \n\n\n\n \n \n \n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n {{ node.attributes.text.text }}\n \n\n","export class LoadBroadcastChannelsAction {\n static readonly type = '[BroadcastChannels] Load Broadcast Channels';\n}\n\nexport class LoadSlackChannelsAction {\n static readonly type = '[BroadcastChannels] Load Slack Channels';\n}\n\nexport class CreateBroadcastChannelAction {\n static readonly type = '[BroadcastChannels] Create Broadcast Channel';\n constructor(\n public iql: string,\n public providerProfileId: string,\n public recipientEndpointId: string\n ) {}\n}\n\nexport class UpdateBroadcastChannelAction {\n static readonly type = '[BroadcastChannels] Update Broadcast Channel';\n constructor(\n public id: string,\n public iql: string,\n public providerProfileId: string,\n public recipientEndpointId: string\n ) {}\n}\n\nexport class DeleteBroadcastChannelAction {\n static readonly type = '[BroadcastChannels] Delete Broadcast Channel';\n constructor(public id: string) {}\n}\n\nexport class OpenBroadcastChannelDialogAction {\n static readonly type = '[BroadcastChannels] Open Broadcast Channel Dialog';\n constructor(public broadcastChannelId?: string) {}\n}\n\nexport class CloseBroadcastChannelDialogAction {\n static readonly type = '[BroadcastChannels] Close Broadcast Channel Dialog';\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { map, Observable } from 'rxjs';\nimport { BroadcastChannel } from 'src/app/models/broadcast-channel';\n\nconst LIST_BROADCAST_CHANNELS_QUERY = gql`\n query ListBroadcastChannels($organizationId: ID!) {\n broadcastChannels(organizationId: $organizationId) {\n id\n iql\n endpoint {\n id\n providerType\n providerProfileId\n config {\n ... on ProviderChannelMetadata {\n id\n name\n }\n }\n }\n }\n }\n`;\n\nconst CREATE_BROADCAST_CHANNEL_MUTATION = gql`\n mutation CreateBroadcastChannel(\n $organizationId: ID!\n $spec: BroadcastChannelSpec!\n ) {\n createBroadcastChannel(organizationId: $organizationId, spec: $spec) {\n id\n iql\n endpoint {\n id\n providerType\n providerProfileId\n config {\n ... on ProviderChannelMetadata {\n id\n name\n }\n }\n }\n }\n }\n`;\n\nconst UPDATE_BROADCAST_CHANNEL_MUTATION = gql`\n mutation UpdateBroadcastChannel(\n $organizationId: ID!\n $broadcastChannelId: ID!\n $spec: BroadcastChannelSpec!\n ) {\n updateBroadcastChannel(\n organizationId: $organizationId\n broadcastChannelId: $broadcastChannelId\n spec: $spec\n ) {\n id\n iql\n endpoint {\n id\n providerType\n providerProfileId\n config {\n ... on ProviderChannelMetadata {\n id\n name\n }\n }\n }\n }\n }\n`;\n\nconst DELETE_BROADCAST_CHANNEL_MUTATION = gql`\n mutation DeleteBroadcastChannel(\n $organizationId: ID!\n $broadcastChannelId: ID!\n ) {\n deleteBroadcastChannel(\n organizationId: $organizationId\n broadcastChannelId: $broadcastChannelId\n )\n }\n`;\n\n@Injectable()\nexport class BroadcastChannelsService {\n private apollo = inject(Apollo);\n\n listBroadcastChannels(\n organizationId: string\n ): Observable {\n return this.apollo\n .query<{ broadcastChannels: BroadcastChannel[] }>({\n query: LIST_BROADCAST_CHANNELS_QUERY,\n variables: {\n organizationId: organizationId,\n },\n })\n .pipe(\n map(data => {\n if (data.errors) {\n throw new Error(data.errors[0].message);\n }\n return data.data!.broadcastChannels;\n })\n );\n }\n\n createBroadcastChannel(\n organizationId: string,\n iql: string,\n recipientEndpointId: string,\n providerProfileId: string\n ): Observable {\n return this.apollo\n .mutate<{ createBroadcastChannel: BroadcastChannel }>({\n mutation: CREATE_BROADCAST_CHANNEL_MUTATION,\n variables: {\n organizationId: organizationId,\n spec: {\n iql: iql,\n recipientEndpointId: recipientEndpointId,\n providerProfileId: providerProfileId,\n },\n },\n })\n .pipe(\n map(data => {\n if (data.errors) {\n throw new Error(data.errors[0].message);\n }\n return data.data!.createBroadcastChannel;\n })\n );\n }\n\n updateBroadcastChannel(\n organizationId: string,\n broadcastChannelId: string,\n iql: string,\n providerProfileId: string,\n recipientEndpointId: string\n ): Observable {\n return this.apollo\n .mutate<{ updateBroadcastChannel: BroadcastChannel }>({\n mutation: UPDATE_BROADCAST_CHANNEL_MUTATION,\n variables: {\n organizationId: organizationId,\n broadcastChannelId: broadcastChannelId,\n spec: {\n iql: iql,\n providerProfileId: providerProfileId,\n recipientEndpointId: recipientEndpointId,\n },\n },\n })\n .pipe(\n map(data => {\n if (data.errors) {\n throw new Error(data.errors[0].message);\n }\n return data.data!.updateBroadcastChannel;\n })\n );\n }\n\n deleteBroadcastChannel(\n organizationId: string,\n id: string\n ): Observable {\n return this.apollo\n .mutate<{ deleteBroadcastChannel: boolean }>({\n mutation: DELETE_BROADCAST_CHANNEL_MUTATION,\n variables: {\n organizationId: organizationId,\n broadcastChannelId: id,\n },\n })\n .pipe(\n map(data => {\n if (data.errors) {\n throw new Error(data.errors[0].message);\n }\n return data.data!.deleteBroadcastChannel;\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Action, Selector, State, StateContext, Store } from '@ngxs/store';\nimport { ToastService } from 'src/app/services/toast/toast.service';\nimport {\n CreateBroadcastChannelAction,\n DeleteBroadcastChannelAction,\n LoadBroadcastChannelsAction,\n UpdateBroadcastChannelAction,\n} from './broadcast-channels.actions';\nimport { UserState } from 'src/app/store/user/user.state';\nimport { catchError, map } from 'rxjs';\nimport {\n addListEntity,\n ListEntities,\n loadEntities,\n NewListEntities,\n removeListEntity,\n updateListEntity,\n} from 'src/app/store/common/list-entity';\nimport { toIdentifiableEntities } from 'src/app/helpers/graphql';\nimport { BroadcastChannelsService } from './broadcast-channels.service';\nimport { BroadcastChannel } from 'src/app/models/broadcast-channel';\n\nexport interface BroadcastChannelStateModel {\n channels: ListEntities;\n}\n\n@State({\n name: 'broadcastChannels',\n defaults: {\n channels: NewListEntities(),\n },\n})\n@Injectable()\nexport class BroadcastChannelState {\n store = inject(Store);\n bcService = inject(BroadcastChannelsService);\n toastService = inject(ToastService);\n\n @Selector()\n static broadcastChannels(state: BroadcastChannelStateModel) {\n return state.channels;\n }\n\n @Action(LoadBroadcastChannelsAction)\n loadBroadcastChannels(ctx: StateContext) {\n const organizationID = this.store.selectSnapshot(\n UserState.getCurrentOrganizationID\n );\n\n if (!organizationID) throw new Error('No organization ID set');\n\n return loadEntities(\n ctx,\n 'channels',\n this.bcService.listBroadcastChannels(organizationID).pipe(\n map(channels => {\n return toIdentifiableEntities(channels, 'id');\n })\n )\n );\n }\n @Action(CreateBroadcastChannelAction)\n createBroadcastChannel(\n ctx: StateContext,\n {\n iql,\n providerProfileId,\n recipientEndpointId,\n }: CreateBroadcastChannelAction\n ) {\n const organizationID = this.store.selectSnapshot(\n UserState.getCurrentOrganizationID\n );\n\n if (!organizationID) throw new Error('No organization ID set');\n\n return addListEntity(\n ctx,\n 'channels',\n 'id',\n this.bcService.createBroadcastChannel(\n organizationID,\n iql,\n recipientEndpointId,\n providerProfileId\n )\n ).pipe(\n catchError(err => {\n this.toastService.showError(err);\n throw err;\n })\n );\n }\n\n @Action(UpdateBroadcastChannelAction)\n updateBroadcastChannel(\n ctx: StateContext,\n {\n id,\n iql,\n providerProfileId,\n recipientEndpointId,\n }: UpdateBroadcastChannelAction\n ) {\n const organizationID = this.store.selectSnapshot(\n UserState.getCurrentOrganizationID\n );\n\n if (!organizationID) throw new Error('No organization ID set');\n\n return updateListEntity(\n ctx,\n 'channels',\n id,\n this.bcService.updateBroadcastChannel(\n organizationID,\n id,\n iql,\n providerProfileId,\n recipientEndpointId\n )\n ).pipe(\n catchError(err => {\n this.toastService.showError(err);\n throw err;\n })\n );\n }\n\n @Action(DeleteBroadcastChannelAction)\n deleteBroadcastChannel(\n ctx: StateContext,\n { id }: DeleteBroadcastChannelAction\n ) {\n const organizationID = this.store.selectSnapshot(\n UserState.getCurrentOrganizationID\n );\n\n if (!organizationID) throw new Error('No organization ID set');\n\n return removeListEntity(\n ctx,\n 'channels',\n id,\n (bc: BroadcastChannel) => {\n return bc.id !== id;\n },\n this.bcService.deleteBroadcastChannel(organizationID, id)\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { BroadcastChannelState } from './broadcast-channels.state';\nimport { BroadcastChannelsService } from './broadcast-channels.service';\n\n@NgModule({\n declarations: [],\n imports: [NgxsModule.forFeature([BroadcastChannelState])],\n providers: [BroadcastChannelsService],\n bootstrap: [],\n exports: [],\n})\nexport class BroascastChannelsStateModule {}\n","import { Component, inject } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { RequiredFeatureAnnotation } from 'src/app/core/guards/features.guard';\nimport { RequiredRolesAnnotation } from 'src/app/core/guards/permission.guard';\nimport { SharedModule } from 'src/app/core/shared.module';\nimport { AuthorizedMenuItem } from 'src/app/models/permission';\nimport { MenuService } from 'src/app/services/menu/menu.service';\nimport { VLayoutMasterDetailComponent } from '../../../../core/components/ui-kit/layouts/master-detail/master-detail.component';\nimport { VMenuComponent } from '../../../../core/components/ui-kit/menu/menu.component';\n\n@Component({\n selector: 'app-page-settings-shell',\n templateUrl: 'settings.component.html',\n imports: [\n SharedModule,\n VLayoutMasterDetailComponent,\n VMenuComponent,\n RouterOutlet,\n ],\n})\nexport class SettingsShellPageComponent {\n private store = inject(Store);\n\n items: AuthorizedMenuItem[] = [\n {\n label: 'pages.settings.menu.account',\n items: [\n {\n label: 'pages.settings.menu.general',\n icon: 'pi pi-user',\n routerLink: ['/settings/account/general'],\n },\n {\n label: 'pages.settings.menu.twofa',\n icon: 'pi pi-lock',\n routerLink: ['/settings/account/two-factor'],\n },\n {\n label: 'pages.settings.menu.webauthn',\n icon: 'pi pi-lock',\n routerLink: ['/settings/account/webauthn'],\n },\n {\n label: 'pages.settings.menu.notifications',\n icon: 'pi pi-bell',\n routerLink: ['/settings/account/notifications'],\n },\n ],\n },\n {\n label: 'pages.settings.menu.incidents',\n items: [\n {\n label: 'pages.settings.menu.incidentSchemas',\n icon: 'pi pi-copy',\n routerLink: ['/settings/incidents/schemas'],\n [RequiredRolesAnnotation]: ['incidentschemas.manager'],\n [RequiredFeatureAnnotation]: ['incident-schema-editor'],\n },\n {\n label: 'pages.settings.menu.incidentRoles',\n icon: 'pi pi-th-large',\n routerLink: ['/settings/incidents/roles'],\n [RequiredRolesAnnotation]: ['incidentroles.manager'],\n },\n {\n label: 'pages.settings.menu.alerting',\n icon: 'pi pi-microchip',\n routerLink: ['/settings/alerting'],\n [RequiredRolesAnnotation]: ['alerts.manager'],\n [RequiredFeatureAnnotation]: ['enable-alerting'],\n },\n ],\n },\n {\n label: 'pages.settings.menu.communication',\n items: [\n {\n label: 'pages.settings.menu.providers',\n icon: 'pi pi-bell',\n routerLink: ['/settings/communication/providers'],\n [RequiredRolesAnnotation]: ['notifications.manager'],\n },\n {\n label: 'pages.settings.menu.broadcastChannels',\n icon: 'pi pi-megaphone',\n routerLink: ['/settings/incidents/broadcast-channels'],\n [RequiredRolesAnnotation]: ['broadcastchannels.manager'],\n },\n ],\n },\n {\n label: 'pages.settings.menu.organization',\n items: [\n {\n label: 'pages.settings.menu.organizationMembers',\n icon: 'pi pi-users',\n routerLink: ['/settings/organization/members'],\n [RequiredRolesAnnotation]: ['organization.manager'],\n },\n {\n label: 'pages.settings.menu.subscription',\n icon: 'pi pi-bolt',\n routerLink: ['/settings/organization/subscription'],\n [RequiredRolesAnnotation]: ['subscriptions.manager'],\n },\n {\n label: 'pages.settings.menu.billing',\n icon: 'pi pi-money-bill',\n routerLink: ['/settings/organization/billing'],\n [RequiredRolesAnnotation]: ['billing.reader'],\n },\n {\n label: 'pages.settings.menu.api',\n icon: 'pi pi-key',\n routerLink: ['/settings/organization/api'],\n [RequiredRolesAnnotation]: ['organization.manager'],\n },\n ],\n },\n ];\n\n items$ = this.store.select(MenuService.filteredMenuItems(this.items));\n}\n","\n
\n \n
\n
\n \n
\n
\n","import { NgIf } from '@angular/common';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { LoginFlow, UpdateLoginFlowWithPasswordMethod } from '@ory/client';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { KratosAuthenticationService } from 'src/app/services/authentication/kratos.service';\nimport { KratosFormComponent } from '../../components/kratos/form.component';\n\n@Component({\n selector: 'app-dialog-reauthenticate',\n templateUrl: './reauthenticate.component.html',\n imports: [NgIf, KratosFormComponent],\n})\nexport class ReAuthenticateDialogComponent implements OnInit {\n private kratos = inject(KratosAuthenticationService);\n loginFlow?: LoginFlow;\n\n useAal2 = false;\n\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig\n ) {}\n\n ngOnInit(): void {\n this.kratos.whoami().then(session => {\n // check if user has an aal2 method configures\n const aal2Method = session.authentication_methods?.find(method => {\n return method.aal === 'aal2';\n });\n\n if (aal2Method) {\n this.useAal2 = true;\n }\n\n this.kratos.createLoginFlow(aal2Method ? 'aal2' : 'aal1').then(flow => {\n this.loginFlow = flow;\n });\n });\n }\n\n submitFlow(body: UpdateLoginFlowWithPasswordMethod) {\n if (!this.loginFlow) return;\n this.kratos\n .completeLoginFlowV2(this.loginFlow, body.method, {\n ...body,\n method: 'password',\n })\n .then(() => {\n this.onLoggedIn();\n })\n .catch(err => {\n this.loginFlow = err.response.data;\n });\n }\n\n onLoggedIn() {\n this.ref.close();\n }\n}\n","\n"],"names":["UpdateFormStatus","payload","UpdateFormValue","UpdateForm","UpdateFormDirty","SetFormDirty","SetFormPristine","UpdateFormErrors","SetFormDisabled","SetFormEnabled","ResetForm","NgxsFormPlugin","state","event","next","type","getActionTypeFromInstance","nextState","value","payloadValue","isObjectLike","__spreadValues","path","setValue","model","getValue","__ngFactoryType__","ɵɵdefineInjectable","target","NgxsFormPluginModule","withNgxsPlugin","NgxsFormPlugin","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","getNodeLabel","node","attributes","isUiNodeAnchorAttributes","isUiNodeImageAttributes","isUiNodeInputAttributes","attrs","isUiNodeTextAttributes","getNodeInputType","attr","filterNodesByGroups","nodes","groups","withoutDefaultGroup","attributes","withoutDefaultAttributes","excludeAttributes","search","group","a","ea","filterGroup","filterAttributes","filterExcludeAttributes","ɵɵelementContainer","ɵɵelementContainerStart","ɵɵtemplate","KratosFormComponent_div_0_ng_container_2_ng_container_3_ng_container_1_Template","ɵɵadvance","ɵɵproperty","messages_r4","ɵɵpureFunction1","_c4","node_r3","messages","ɵɵelementStart","KratosFormComponent_div_0_ng_container_2_ng_container_2_Template","KratosFormComponent_div_0_ng_container_2_ng_container_3_Template","ɵɵelementEnd","inputNode_r5","_c3","length","KratosFormComponent_div_0_ng_container_3_ng_container_2_Template","ctx_r1","formMessages","ɵɵlistener","node_r7","ɵɵrestoreView","_r6","$implicit","ɵɵnextContext","ɵɵresetView","onBtnClick","ɵɵpipeBind1","getUiNodeLabel","loading","getTestId","ɵɵelement","node_r8","kratosForm","valid","_r9","node_r10","_r11","_r12","KratosFormComponent_div_0_Conditional_6_ng_container_1_Conditional_1_Template","KratosFormComponent_div_0_Conditional_6_ng_container_1_Conditional_2_Template","KratosFormComponent_div_0_Conditional_6_ng_container_1_Conditional_3_Template","ɵɵconditional","getOIDCProvider","KratosFormComponent_div_0_Conditional_6_ng_container_1_Template","filterUINodes","ɵɵpureFunction2","_c2","uiNodes","ɵɵpureFunction0","_c1","_r1","submit","KratosFormComponent_div_0_ng_container_2_Template","KratosFormComponent_div_0_ng_container_3_Template","KratosFormComponent_div_0_ng_container_4_Template","KratosFormComponent_div_0_ng_container_5_Template","KratosFormComponent_div_0_Conditional_6_Template","getVisibleNodes","_c0","groups","excludeGroups","showOIDCGroups","ɵɵtext","ɵɵtextInterpolate1","message_r13","text","KratosFormComponent_ng_template_1_div_0_li_2_Template","_c5","messages_r14","type","KratosFormComponent_ng_template_1_div_0_Template","node_r15","attributes","name","testIdPrefix","src","ɵɵsanitizeUrl","width","height","ɵɵtextInterpolate","KratosFormComponent_ng_template_3_ng_container_0_Template","KratosFormComponent_ng_template_3_ng_container_1_Template","KratosFormComponent_ng_template_3_ng_container_2_Template","isInputNode","isImageNode","isTextNode","KratosFormComponent","constructor","fb","inject","FormBuilder","cd","ChangeDetectorRef","translate","TranslateService","kratosFormSubmit","EventEmitter","group","ngOnChanges","changes","setFlow","currentValue","disable","enable","nodes","withoutDefaultGroup","excludeAttributes","filter","node","node_type","isUiNodeInputAttributes","isUiNodeImageAttributes","isUiNodeTextAttributes","label","getNodeLabel","toLowerCase","replaceAll","removeKeyRegex","exec","instant","keyName","filterNodesByGroups","includes","value","setFormMessages","findIndex","m","id","flow","ui","withoutDefaultAttributes","forEach","controls","addControl","control","required","Validators","map","meta","detectChanges","setErrors","validation","markAsTouched","customBtnNode","kratosBody","createNestedObject","method","emit","base","path","keys","split","reduce","prev","curr","index","webauthnRegistration","webauthnLogin","onClickAttr","onclick","startIndex","indexOf","endIndex","lastIndexOf","fidoConfig","JSON","parse","substring","publicKey","challenge","__oryWebAuthnBufferDecode","user","navigator","credentials","create","then","res","Error","attestationObject","response","result","rawId","__oryWebAuthnBufferEncode","clientDataJSON","setValue","stringify","allowCredentials","__spreadProps","__spreadValues","get","authenticatorData","signature","userHandle","Uint8Array","from","atob","c","charCodeAt","btoa","String","fromCharCode","apply","replace","selectors","inputs","outputs","features","ɵɵProvidersFeature","KratosAuthenticationService","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","KratosFormComponent_div_0_Template","KratosFormComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","KratosFormComponent_ng_template_3_Template","SharedModule","NgClass","NgForOf","NgIf","NgTemplateOutlet","TranslatePipe","VButtonComponent","ReactiveFormsModule","ɵNgNoValidate","NgControlStatusGroup","FormGroupDirective","VInputFieldComponent","VInputComponent","VSSOButtonComponent","styles","LoadBroadcastChannelsAction","type","CreateBroadcastChannelAction","type","constructor","iql","providerProfileId","recipientEndpointId","UpdateBroadcastChannelAction","id","DeleteBroadcastChannelAction","LIST_BROADCAST_CHANNELS_QUERY","gql","CREATE_BROADCAST_CHANNEL_MUTATION","UPDATE_BROADCAST_CHANNEL_MUTATION","DELETE_BROADCAST_CHANNEL_MUTATION","BroadcastChannelsService","constructor","apollo","inject","Apollo","listBroadcastChannels","organizationId","query","variables","pipe","map","data","errors","Error","message","broadcastChannels","createBroadcastChannel","iql","recipientEndpointId","providerProfileId","mutate","mutation","spec","updateBroadcastChannel","broadcastChannelId","deleteBroadcastChannel","id","factory","ɵfac","BroadcastChannelState","constructor","store","inject","Store","bcService","BroadcastChannelsService","toastService","ToastService","broadcastChannels","state","channels","loadBroadcastChannels","ctx","organizationID","selectSnapshot","UserState","getCurrentOrganizationID","Error","loadEntities","listBroadcastChannels","pipe","map","toIdentifiableEntities","createBroadcastChannel","iql","providerProfileId","recipientEndpointId","addListEntity","catchError","err","showError","updateBroadcastChannel","id","updateListEntity","deleteBroadcastChannel","removeListEntity","bc","factory","ɵfac","__decorate","Action","LoadBroadcastChannelsAction","CreateBroadcastChannelAction","UpdateBroadcastChannelAction","DeleteBroadcastChannelAction","Selector","State","name","defaults","NewListEntities","BroascastChannelsStateModule","BroadcastChannelsService","imports","NgxsModule","forFeature","BroadcastChannelState","SettingsShellPageComponent","constructor","store","inject","Store","items","label","icon","routerLink","RequiredRolesAnnotation","RequiredFeatureAnnotation","items$","select","MenuService","filteredMenuItems","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","ɵɵpureFunction0","_c0","SharedModule","AsyncPipe","VLayoutMasterDetailComponent","VMenuComponent","RouterOutlet","encapsulation","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","submitFlow","ɵɵelementEnd","ɵɵproperty","loginFlow","useAal2","ɵɵpureFunction0","_c0","_c1","ReAuthenticateDialogComponent","constructor","ref","config","kratos","inject","KratosAuthenticationService","ngOnInit","whoami","then","session","aal2Method","authentication_methods","find","method","aal","createLoginFlow","flow","body","completeLoginFlowV2","__spreadProps","__spreadValues","onLoggedIn","catch","err","response","data","close","ɵɵdirectiveInject","DynamicDialogRef","DynamicDialogConfig","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ReAuthenticateDialogComponent_app_kratos_form_0_Template","NgIf","KratosFormComponent","encapsulation"],"mappings":"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","debug_id":"b579d5c0-9fee-5c90-9ab6-f09e38f0bc06"}