{"version":3,"file":"volo-abp.ng.openiddictpro.mjs","sources":["../../../../packages/openiddictpro/src/lib/services/applications.service.ts","../../../../packages/openiddictpro/src/lib/defaults/default-applications-types.ts","../../../../packages/openiddictpro/src/lib/utils/hashset-parser.ts","../../../../packages/openiddictpro/src/lib/defaults/default-applications-consent-type.ts","../../../../packages/openiddictpro/src/lib/components/application-form-modal/application-form-modal.component.ts","../../../../packages/openiddictpro/src/lib/components/application-form-modal/application-form-modal.component.html","../../../../packages/openiddictpro/src/lib/services/scopes.service.ts","../../../../packages/openiddictpro/src/lib/components/token-lifetime-modal/token-lifetime-modal.component.ts","../../../../packages/openiddictpro/src/lib/components/token-lifetime-modal/token-lifetime-modal.component.html","../../../../packages/openiddictpro/src/lib/components/applications/applications.component.ts","../../../../packages/openiddictpro/src/lib/components/applications/applications.component.html","../../../../packages/openiddictpro/src/lib/components/scope-form-modal/scope-form-modal.component.ts","../../../../packages/openiddictpro/src/lib/components/scope-form-modal/scope-form-modal.component.html","../../../../packages/openiddictpro/src/lib/components/scopes/scopes.component.ts","../../../../packages/openiddictpro/src/lib/components/scopes/scopes.component.html","../../../../packages/openiddictpro/src/lib/defaults/default-applications-entity-actions.ts","../../../../packages/openiddictpro/src/lib/defaults/default-applications-entity-props.ts","../../../../packages/openiddictpro/src/lib/defaults/default-applications-toolbar-actions.ts","../../../../packages/openiddictpro/src/lib/defaults/default-uri-pattern.ts","../../../../packages/openiddictpro/src/lib/utils/new-line-regex.ts","../../../../packages/openiddictpro/src/lib/utils/uris-validator.ts","../../../../packages/openiddictpro/src/lib/components/scopes/allow-flow.ts","../../../../packages/openiddictpro/src/lib/defaults/default-applications-form-props.ts","../../../../packages/openiddictpro/src/lib/defaults/default-scope-entity-props.ts","../../../../packages/openiddictpro/src/lib/defaults/default-scope-toolbar-actions.ts","../../../../packages/openiddictpro/src/lib/defaults/default-scope-form-props.ts","../../../../packages/openiddictpro/src/lib/defaults/default-scope-entity-actions.ts","../../../../packages/openiddictpro/src/lib/tokens/extensions.token.ts","../../../../packages/openiddictpro/src/lib/resolvers/extensions.resolver.ts","../../../../packages/openiddictpro/src/lib/openiddictpro-routing.module.ts","../../../../packages/openiddictpro/src/lib/openiddictpro.module.ts","../../../../packages/openiddictpro/src/lib/openiddictpro.routes.ts","../../../../packages/openiddictpro/src/lib/guards/extensions.guard.ts","../../../../packages/openiddictpro/src/volo-abp.ng.openiddictpro.ts"],"sourcesContent":["import { InternalStore } from '@abp/ng.core';\r\nimport { ApplicationsServiceState } from '../models';\r\nimport { computed, signal } from '@angular/core';\r\n\r\nexport class ApplicationsService {\r\n  private state = new InternalStore({\r\n    isModalVisible: false,\r\n  } as ApplicationsServiceState);\r\n\r\n  #isModalVisible = signal(false);\r\n  isModalVisible = computed(() => this.#isModalVisible());\r\n  #isTokenLifetimeModalVisible = signal(false);\r\n  isTokenLifetimeModalVisible = computed(() => this.#isTokenLifetimeModalVisible());\r\n\r\n  openModal() {\r\n    this.setModalState(true);\r\n  }\r\n\r\n  setModalState(value: boolean) {\r\n    this.#isModalVisible.set(value);\r\n  }\r\n\r\n  setTokenLifetimeModalState(value: boolean) {\r\n    this.#isTokenLifetimeModalVisible.set(value);\r\n  }\r\n}\r\n","export const defaultApplicationsTypeList = [\r\n  {\r\n    key: 'Confidential client',\r\n    value: 'confidential',\r\n  },\r\n  {\r\n    key: 'Public client',\r\n    value: 'public',\r\n  },\r\n];\r\nexport const defaultApplicationTypes = {\r\n  public: 'public',\r\n  confidential: 'confidential',\r\n};\r\nexport const defaultApplicationTypesList = [\r\n  {\r\n    key: 'Web',\r\n    value: 'web',\r\n  },\r\n  {\r\n    key: 'Native',\r\n    value: 'native',\r\n  },\r\n];\r\n","const separatorRegex = /\\r?\\n/;\r\nconst separator = '\\n';\r\nexport function hashSetParser(stringOrArray: string | Array<string>) {\r\n  if (Array.isArray(stringOrArray)) {\r\n    return stringOrArray.join(separator);\r\n  }\r\n  if (typeof stringOrArray === 'string') {\r\n    if (!stringOrArray) {\r\n      return null;\r\n    }\r\n    return stringOrArray.split(separatorRegex);\r\n  }\r\n  return stringOrArray;\r\n}\r\n","export const DefaultApplicationsConsentType = [\r\n  {\r\n    key: 'Explicit consent',\r\n    value: 'explicit',\r\n  },\r\n  {\r\n    key: 'External consent',\r\n    value: 'external',\r\n  },\r\n  {\r\n    key: 'Implicit consent',\r\n    value: 'implicit',\r\n  },\r\n  {\r\n    key: 'Systematic consent',\r\n    value: 'systematic',\r\n  },\r\n];\r\n","import { Component, inject, Injector, OnInit, DestroyRef, input, output } from '@angular/core';\r\nimport { UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { Observable, of, skip, Subscription } from 'rxjs';\r\nimport { LocalizationPipe, LocalizationService, SubscriptionService } from '@abp/ng.core';\r\nimport {\r\n  ButtonComponent,\r\n  ModalCloseDirective,\r\n  ModalComponent,\r\n  ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n  ExtensibleFormComponent,\r\n  FormPropData,\r\n  generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { Applications, ApplicationService } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport {\r\n  defaultApplicationsTypeList,\r\n  defaultApplicationTypes,\r\n} from '../../defaults/default-applications-types';\r\nimport { hashSetParser } from '../../utils/hashset-parser';\r\nimport { DefaultApplicationsConsentType } from '../../defaults/default-applications-consent-type';\r\nimport { ApplicationsService } from '../../services/applications.service';\r\n\r\n@Component({\r\n  selector: 'abp-application-form-modal',\r\n  templateUrl: './application-form-modal.component.html',\r\n  imports: [\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxValidateCoreModule,\r\n    ModalCloseDirective,\r\n    LocalizationPipe,\r\n    ExtensibleFormComponent,\r\n    ModalComponent,\r\n    ButtonComponent,\r\n  ],\r\n})\r\nexport class ApplicationFormModalComponent implements OnInit {\r\n  protected readonly service = inject(ApplicationService);\r\n  protected readonly applicationsService = inject(ApplicationsService);\r\n  protected readonly localizationService = inject(LocalizationService);\r\n  protected readonly subscription = inject(SubscriptionService);\r\n  protected readonly injector = inject(Injector);\r\n  protected readonly toasterService = inject(ToasterService);\r\n  protected readonly destroyRef = inject(DestroyRef);\r\n\r\n  readonly saved = output<void>();\r\n\r\n  readonly selected = input<Applications.Dtos.ApplicationDto>(undefined);\r\n  form: UntypedFormGroup;\r\n  formValueChanges$: Subscription;\r\n  types$ = of(defaultApplicationsTypeList);\r\n  consentTypes$ = of(DefaultApplicationsConsentType);\r\n  options = { size: 'lg' };\r\n\r\n  protected createForm() {\r\n    const selectedValue = this.selected();\r\n    const selected = selectedValue?.id\r\n      ? {\r\n          ...selectedValue,\r\n          redirectUris: hashSetParser(selectedValue.redirectUris),\r\n          postLogoutRedirectUris: hashSetParser(selectedValue.postLogoutRedirectUris),\r\n          extensionGrantTypes: hashSetParser(selectedValue.extensionGrantTypes),\r\n        }\r\n      : { clientType: null };\r\n    const data = new FormPropData(this.injector, selected);\r\n    this.form = generateFormFromProps(data);\r\n  }\r\n\r\n  getFormValue() {\r\n    return this.form?.value || {};\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.createForm();\r\n    this.hideFlowToType();\r\n    this.togglePushAuthorizationState();\r\n  }\r\n\r\n  visibleChange($event: boolean) {\r\n    this.applicationsService.setModalState($event);\r\n  }\r\n\r\n  save() {\r\n    if (this.form.invalid) {\r\n      return;\r\n    }\r\n    const id = this.selected()?.id;\r\n    const isEditMode = !!id;\r\n    let sub: Observable<Applications.Dtos.ApplicationDto>;\r\n    const parseTextAreaValue = value => {\r\n      return Array.isArray(value) ? value : hashSetParser(value);\r\n    };\r\n\r\n    const formValue = {\r\n      ...this.form.getRawValue(),\r\n      redirectUris: parseTextAreaValue(this.form.value.redirectUris),\r\n      postLogoutRedirectUris: parseTextAreaValue(this.form.value.postLogoutRedirectUris),\r\n      extensionGrantTypes: parseTextAreaValue(this.form.value.extensionGrantTypes),\r\n    };\r\n\r\n    if (isEditMode) {\r\n      sub = this.service.update(id, formValue);\r\n    } else {\r\n      sub = this.service.create(formValue);\r\n    }\r\n\r\n    sub.subscribe(() => {\r\n      this.applicationsService.setModalState(false);\r\n      this.toasterService.success('AbpUi::SavedSuccessfully');\r\n      this.saved.emit(undefined);\r\n    });\r\n  }\r\n\r\n  hideFlowToType() {\r\n    const formType = this.form.controls['clientType'];\r\n    this.subscription.removeOne(this.formValueChanges$);\r\n    this.formValueChanges$ = this.subscription.addOne(formType.valueChanges, value => {\r\n      if (value == defaultApplicationTypes.public) {\r\n        this.form.patchValue({\r\n          allowEndSessionEndpoint: false,\r\n          allowClientCredentialsFlow: false,\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  togglePushAuthorizationState() {\r\n    const forcePushedAuthorizationControl = this.form.controls['forcePushedAuthorization'];\r\n    let valueChangeStream = forcePushedAuthorizationControl.valueChanges.pipe(\r\n      takeUntilDestroyed(this.destroyRef),\r\n    );\r\n    // If `selected` exists, skip the first emitted value to avoid unnecessary updates.\r\n    if (this.selected() && forcePushedAuthorizationControl.value === false) {\r\n      valueChangeStream = valueChangeStream.pipe(skip(1));\r\n    }\r\n\r\n    valueChangeStream.subscribe(value => {\r\n      if (value === true) {\r\n        this.form.patchValue({\r\n          allowPushedAuthorizationEndpoint: true,\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  changeTextToType(displayName: string) {\r\n    const form = this.getFormValue();\r\n    if (form.clientType === defaultApplicationTypes.public) {\r\n      return (\r\n        this.localizationService.instant(displayName) +\r\n        ' (' +\r\n        this.localizationService.instant('AbpOpenIddict::NotAvailableForThisType') +\r\n        ')'\r\n      );\r\n    } else {\r\n      return this.localizationService.instant(displayName);\r\n    }\r\n  }\r\n}\r\n","<abp-modal [visible]=\"true\" (visibleChange)=\"visibleChange($event)\" [options]=\"options\">\r\n  <ng-template #abpHeader>\r\n    <h3>\r\n      {{\r\n        (selected()?.id ? 'AbpOpenIddict::Edit' : 'AbpOpenIddict::NewApplication') | abpLocalization\r\n      }}\r\n    </h3>\r\n  </ng-template>\r\n\r\n  <ng-template #abpBody>\r\n    <form [formGroup]=\"form\" id=\"applicationForm\" (ngSubmit)=\"save()\" validateOnSubmit>\r\n      <div class=\"row\">\r\n        <abp-extensible-form class=\"row gap-x2\" [selectedRecord]=\"selected()\" />\r\n      </div>\r\n    </form>\r\n  </ng-template>\r\n\r\n  <ng-template #abpFooter>\r\n    <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n      {{ 'AbpOpenIddict::Cancel' | abpLocalization }}\r\n    </button>\r\n    <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"applicationForm\">\r\n      {{ 'AbpOpenIddict::Save' | abpLocalization }}\r\n    </abp-button>\r\n  </ng-template>\r\n</abp-modal>\r\n","import { InternalStore } from '@abp/ng.core';\r\nimport { ScopesServiceState } from '../models';\r\n\r\nexport class ScopesService {\r\n  private state = new InternalStore({ isModalVisible: false } as ScopesServiceState);\r\n  isModalVisible$ = this.state.sliceState(x => x.isModalVisible);\r\n\r\n  openModal() {\r\n    this.setModalState(true);\r\n  }\r\n  setModalState(value: boolean) {\r\n    this.state.patch({ isModalVisible: value });\r\n  }\r\n}\r\n","import { Component, inject, OnInit, signal, input, output } from '@angular/core';\r\n\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { Applications, ApplicationService } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport {\r\n  ButtonComponent,\r\n  ModalCloseDirective,\r\n  ModalComponent,\r\n  ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { ApplicationsService } from '../../services';\r\nimport { finalize } from 'rxjs';\r\n\r\nconst SECOND_LIMIT = 922337203685;\r\nconst TOKEN_LIFETIME_FIELDS = [\r\n  'accessTokenLifetime',\r\n  'authorizationCodeLifetime',\r\n  'deviceCodeLifetime',\r\n  'identityTokenLifetime',\r\n  'refreshTokenLifetime',\r\n  'userCodeLifetime',\r\n  'requestTokenLifetime',\r\n  'issuedTokenLifetime',\r\n];\r\n\r\n@Component({\r\n  selector: 'abp-token-lifetime-modal',\r\n  imports: [\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxValidateCoreModule,\r\n    ModalCloseDirective,\r\n    LocalizationPipe,\r\n    ModalComponent,\r\n    ButtonComponent,\r\n  ],\r\n  templateUrl: './token-lifetime-modal.component.html',\r\n})\r\nexport class TokenLifetimeModalComponent implements OnInit {\r\n  protected readonly toasterService = inject(ToasterService);\r\n\r\n  #service = inject(ApplicationsService);\r\n  #proxyService = inject(ApplicationService);\r\n  #fb = inject(FormBuilder);\r\n\r\n  readonly selected = input<Applications.Dtos.ApplicationDto>(undefined);\r\n  readonly saved = output();\r\n\r\n  loading = signal(false);\r\n  form = this.#fb.group(this.generateTokenLifetimeFormControls());\r\n\r\n  ngOnInit() {\r\n    this.#proxyService.getTokenLifetime(this.selected()?.id).subscribe(value => {\r\n      this.form.patchValue(value);\r\n    });\r\n  }\r\n\r\n  generateTokenLifetimeFormControls() {\r\n    return TOKEN_LIFETIME_FIELDS.reduce((controls, field) => {\r\n      controls[field] = [\r\n        null as number,\r\n        [Validators.min(-SECOND_LIMIT), Validators.max(SECOND_LIMIT)],\r\n      ];\r\n      return controls;\r\n    }, {});\r\n  }\r\n\r\n  save() {\r\n    if (this.form.invalid) {\r\n      return;\r\n    }\r\n\r\n    const id = this.selected()?.id;\r\n    this.#proxyService\r\n      .setTokenLifetime(id, this.form.value)\r\n      .pipe(\r\n        finalize(() => {\r\n          this.#service.setTokenLifetimeModalState(false);\r\n          this.toasterService.success('AbpUi::SavedSuccessfully');\r\n          this.saved.emit();\r\n        }),\r\n      )\r\n      .subscribe();\r\n  }\r\n\r\n  visibleChange($event: boolean) {\r\n    if ($event) {\r\n      return;\r\n    }\r\n    this.#service.setTokenLifetimeModalState(false);\r\n  }\r\n}\r\n","<abp-modal [visible]=\"true\" (visibleChange)=\"visibleChange($event)\">\r\n  <ng-template #abpHeader>\r\n    <h3>{{ 'AbpOpenIddict::TokenLifetime' | abpLocalization }}</h3>\r\n  </ng-template>\r\n\r\n  <ng-template #abpBody>\r\n    <medium>\r\n      <p class=\"mb-3\">\r\n        {{ 'AbpOpenIddict::TokenLifetimeHit' | abpLocalization }}\r\n      </p>\r\n    </medium>\r\n\r\n    <form [formGroup]=\"form\" id=\"applicationForm\" (ngSubmit)=\"save()\" validateOnSubmit>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"accessTokenLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::AccessTokenLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"accessTokenLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"accessTokenLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"authorizationCodeLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::AuthorizationCodeLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"authorizationCodeLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"authorizationCodeLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"deviceCodeLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::DeviceCodeLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"deviceCodeLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"deviceCodeLifetime\"\r\n        />\r\n      </div>\r\n\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"identityTokenLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::IdentityTokenLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"identityTokenLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"identityTokenLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"refreshTokenLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::RefreshTokenLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"refreshTokenLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"refreshTokenLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"userCodeLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::UserCodeLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"userCodeLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"userCodeLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group mb-3\">\r\n        <label for=\"requestTokenLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::RequestTokenLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"requestTokenLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"requestTokenLifetime\"\r\n        />\r\n      </div>\r\n      <div class=\"form-group\">\r\n        <label for=\"issuedTokenLifetime\" class=\"form-label\">\r\n          {{ 'AbpOpenIddict::IssuedTokenLifetime' | abpLocalization }}\r\n        </label>\r\n        <input\r\n          type=\"number\"\r\n          id=\"issuedTokenLifetime\"\r\n          class=\"form-control\"\r\n          formControlName=\"issuedTokenLifetime\"\r\n        />\r\n      </div>\r\n    </form>\r\n  </ng-template>\r\n\r\n  <ng-template #abpFooter>\r\n    <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n      {{ 'AbpOpenIddict::Cancel' | abpLocalization }}\r\n    </button>\r\n    <abp-button\r\n      iconClass=\"fa fa-check\"\r\n      buttonType=\"submit\"\r\n      [disabled]=\"loading()\"\r\n      formName=\"applicationForm\"\r\n      >{{ 'AbpOpenIddict::Save' | abpLocalization }}\r\n    </abp-button>\r\n  </ng-template>\r\n</abp-modal>\r\n","import { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { filter, switchMap } from 'rxjs';\r\nimport {\r\n  ListService,\r\n  LocalizationPipe,\r\n  PagedResultDto,\r\n  ReplaceableTemplateDirective,\r\n} from '@abp/ng.core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { ExtensibleTableComponent, EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\r\nimport { PermissionManagementComponent } from '@abp/ng.permission-management';\r\nimport { AdvancedEntityFiltersComponent } from '@volo/abp.commercial.ng.ui';\r\nimport { Applications, ApplicationService } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { eOpenIddictProComponents } from '../../enums/components';\r\nimport { ApplicationsService } from '../../services/applications.service';\r\nimport { ApplicationFormModalComponent } from '../application-form-modal/application-form-modal.component';\r\nimport { TokenLifetimeModalComponent } from '../token-lifetime-modal/token-lifetime-modal.component';\r\n\r\n@Component({\r\n  selector: 'abp-applications',\r\n  templateUrl: './applications.component.html',\r\n  providers: [\r\n    ListService,\r\n    {\r\n      provide: EXTENSIONS_IDENTIFIER,\r\n      useValue: eOpenIddictProComponents.Applications,\r\n    },\r\n  ],\r\n  imports: [\r\n    ReplaceableTemplateDirective,\r\n    LocalizationPipe,\r\n    AdvancedEntityFiltersComponent,\r\n    ExtensibleTableComponent,\r\n    ApplicationFormModalComponent,\r\n    TokenLifetimeModalComponent,\r\n    PageComponent,\r\n    PermissionManagementComponent,\r\n  ],\r\n})\r\nexport class ApplicationsComponent implements OnInit {\r\n  protected readonly service = inject(ApplicationsService);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly proxyService = inject(ApplicationService);\r\n  protected readonly toasterService = inject(ToasterService);\r\n  protected readonly list: ListService<Applications.Dtos.GetApplicationListInput> =\r\n    inject(ListService);\r\n\r\n  data: PagedResultDto<Applications.Dtos.ApplicationDto> = { items: [], totalCount: 0 };\r\n  readonly selected = signal({} as Applications.Dtos.ApplicationDto);\r\n  providerKey: string;\r\n  visiblePermissions = false;\r\n\r\n  onVisiblePermissionChange = (value: boolean) => {\r\n    this.visiblePermissions = value;\r\n  };\r\n\r\n  onSaved() {\r\n    this.list.get();\r\n  }\r\n\r\n  edit(id: string) {\r\n    this.proxyService.get(id).subscribe(res => {\r\n      this.selected.set(res);\r\n      this.service.openModal();\r\n    });\r\n  }\r\n\r\n  delete(id: string, name: string) {\r\n    this.confirmationService\r\n      .warn('AbpOpenIddict::ApplicationDeletionWarningMessage', 'AbpOpenIddict::AreYouSure', {\r\n        messageLocalizationParams: [name],\r\n      })\r\n      .pipe(\r\n        filter(status => status === Confirmation.Status.confirm),\r\n        switchMap(() => this.proxyService.delete(id)),\r\n      )\r\n      .subscribe(() => {\r\n        this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n        this.list.get();\r\n      });\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.hookToQuery();\r\n  }\r\n\r\n  onAdd() {\r\n    this.selected.set({} as Applications.Dtos.ApplicationDto);\r\n    this.service.openModal();\r\n  }\r\n\r\n  openPermissionsModal(providerKey: string) {\r\n    this.providerKey = providerKey;\r\n    setTimeout(() => {\r\n      this.visiblePermissions = true;\r\n    }, 0);\r\n  }\r\n\r\n  protected hookToQuery() {\r\n    this.list\r\n      .hookToQuery(query => this.proxyService.getList(query))\r\n      .subscribe(res => (this.data = res));\r\n  }\r\n\r\n  openTokenLifetimeModal(record: Applications.Dtos.ApplicationDto) {\r\n    this.selected.set(record);\r\n    this.service.setTokenLifetimeModalState(true);\r\n  }\r\n}\r\n","<abp-page [title]=\"'AbpOpenIddict::Applications' | abpLocalization\" [toolbar]=\"data.items\">\r\n  <div id=\"wrapper\">\r\n    <abp-advanced-entity-filters localizationSourceName=\"AbpOpenIddict\" [list]=\"list\" />\r\n\r\n    <div class=\"card\">\r\n      <abp-extensible-table [data]=\"data.items\" [recordsTotal]=\"data.totalCount\" [list]=\"list\" />\r\n    </div>\r\n  </div>\r\n</abp-page>\r\n\r\n@if (service.isModalVisible()) {\r\n  <abp-application-form-modal [selected]=\"selected()\" (saved)=\"onSaved()\" />\r\n}\r\n\r\n@if (service.isTokenLifetimeModalVisible()) {\r\n  <abp-token-lifetime-modal [selected]=\"selected()\" />\r\n}\r\n<abp-permission-management\r\n  *abpReplaceableTemplate=\"{\r\n    inputs: {\r\n      providerName: { value: 'C' },\r\n      providerKey: { value: providerKey },\r\n      visible: { value: visiblePermissions, twoWay: true },\r\n    },\r\n    outputs: { visibleChange: onVisiblePermissionChange },\r\n    componentKey: 'PermissionManagement.PermissionManagementComponent',\r\n  }\"\r\n  [(visible)]=\"visiblePermissions\"\r\n  providerName=\"C\"\r\n  [providerKey]=\"providerKey\"\r\n/>\r\n","import {\r\n  Component,\r\n  inject,\r\n  Injector,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  input,\r\n  output,\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport {\r\n  ButtonComponent,\r\n  ModalCloseDirective,\r\n  ModalComponent,\r\n  ToasterService,\r\n} from '@abp/ng.theme.shared';\r\nimport {\r\n  ExtensibleFormComponent,\r\n  FormPropData,\r\n  generateFormFromProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { Scopes, ScopeService } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { ScopesService } from '../../services/scopes.service';\r\nimport { hashSetParser } from '../../utils/hashset-parser';\r\n\r\n@Component({\r\n  selector: 'abp-scope-form-modal',\r\n  templateUrl: './scope-form-modal.component.html',\r\n  imports: [\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxValidateCoreModule,\r\n    AsyncPipe,\r\n    LocalizationPipe,\r\n    ModalCloseDirective,\r\n    ExtensibleFormComponent,\r\n    ModalComponent,\r\n    ButtonComponent,\r\n  ],\r\n})\r\nexport class ScopeFormModalComponent implements OnChanges {\r\n  protected readonly injector = inject(Injector);\r\n  protected readonly scopesService = inject(ScopesService);\r\n  protected readonly service = inject(ScopeService);\r\n  protected readonly toasterService = inject(ToasterService);\r\n\r\n  form: UntypedFormGroup;\r\n  readonly selected = input<Scopes.Dtos.ScopeDto | undefined>(undefined);\r\n  readonly saved = output<boolean>();\r\n\r\n  blueprints = { pattern: 'AbpOpenIddict::TheScopeNameCannotContainSpaces' };\r\n  isModalVisible$ = this.scopesService.isModalVisible$;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.createForm();\r\n  }\r\n\r\n  save() {\r\n    if (this.form.invalid) {\r\n      return;\r\n    }\r\n    const id = this.selected()?.id;\r\n    const isEditMode = !!id;\r\n    let sub: Observable<Scopes.Dtos.ScopeDto>;\r\n    const value = { ...this.form.value, resources: hashSetParser(this.form.value.resources) };\r\n    if (isEditMode) {\r\n      sub = this.service.update(id, value);\r\n    } else {\r\n      sub = this.service.create(value);\r\n    }\r\n    sub.subscribe(() => {\r\n      this.scopesService.setModalState(false);\r\n      this.toasterService.success('AbpUi::SavedSuccessfully');\r\n      this.saved.emit(true);\r\n    });\r\n  }\r\n\r\n  visibleChange($event: boolean) {\r\n    this.scopesService.setModalState($event);\r\n  }\r\n\r\n  private createForm() {\r\n    const selectedValue = this.selected();\r\n    const selected = selectedValue?.id\r\n      ? { ...selectedValue, resources: hashSetParser(selectedValue.resources) }\r\n      : {};\r\n    const data = new FormPropData(this.injector, selected);\r\n    this.form = generateFormFromProps(data);\r\n  }\r\n}\r\n","<abp-modal [visible]=\"isModalVisible$ | async\" (visibleChange)=\"visibleChange($event)\">\r\n  <ng-template #abpHeader>\r\n    <h3>\r\n      {{ (selected()?.id ? 'AbpOpenIddict::Edit' : 'AbpOpenIddict::NewScope') | abpLocalization }}\r\n    </h3>\r\n  </ng-template>\r\n\r\n  <ng-template #abpBody>\r\n    <form\r\n      [formGroup]=\"form\"\r\n      id=\"scopeForm\"\r\n      [blueprints]=\"blueprints\"\r\n      (ngSubmit)=\"save()\"\r\n      validateOnSubmit\r\n    >\r\n      <abp-extensible-form [selectedRecord]=\"selected()\" />\r\n    </form>\r\n  </ng-template>\r\n\r\n  <ng-template #abpFooter>\r\n    <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\r\n      {{ 'AbpOpenIddict::Cancel' | abpLocalization }}\r\n    </button>\r\n    <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"scopeForm\"\r\n      >{{ 'AbpOpenIddict::Save' | abpLocalization }}\r\n    </abp-button>\r\n  </ng-template>\r\n</abp-modal>\r\n","import { Component, inject, OnInit } from '@angular/core';\r\nimport { ListService, LocalizationPipe, PagedResultDto } from '@abp/ng.core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ExtensibleTableComponent, EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible';\r\nimport { PageComponent } from '@abp/ng.components/page';\r\nimport { AdvancedEntityFiltersComponent } from '@volo/abp.commercial.ng.ui';\r\nimport { Scopes, ScopeService } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { eOpenIddictProComponents } from '../../enums/components';\r\nimport { ScopesService } from '../../services/scopes.service';\r\nimport { ScopeFormModalComponent } from '../scope-form-modal/scope-form-modal.component';\r\n\r\n@Component({\r\n  selector: 'abp-scopes',\r\n  templateUrl: './scopes.component.html',\r\n  styles: [],\r\n  providers: [\r\n    ListService,\r\n    {\r\n      provide: EXTENSIONS_IDENTIFIER,\r\n      useValue: eOpenIddictProComponents.Scopes,\r\n    },\r\n  ],\r\n  imports: [\r\n    LocalizationPipe,\r\n    ExtensibleTableComponent,\r\n    ScopeFormModalComponent,\r\n    AdvancedEntityFiltersComponent,\r\n    PageComponent,\r\n  ],\r\n})\r\nexport class ScopesComponent implements OnInit {\r\n  protected readonly list = inject(ListService<Scopes.Dtos.GetScopeListInput>);\r\n  protected readonly confirmationService = inject(ConfirmationService);\r\n  protected readonly toasterService = inject(ToasterService);\r\n  protected readonly service = inject(ScopeService);\r\n  protected readonly scopesService = inject(ScopesService);\r\n\r\n  data: PagedResultDto<Scopes.Dtos.ScopeDto> = { items: [], totalCount: 0 };\r\n  selected = {} as Scopes.Dtos.ScopeDto;\r\n\r\n  private hookToQuery() {\r\n    this.list.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));\r\n  }\r\n  ngOnInit() {\r\n    this.hookToQuery();\r\n  }\r\n  onAdd() {\r\n    this.selected = {} as Scopes.Dtos.ScopeDto;\r\n    this.scopesService.openModal();\r\n  }\r\n  onEdit(id) {\r\n    this.service.get(id).subscribe(res => {\r\n      this.selected = res;\r\n      this.scopesService.openModal();\r\n    });\r\n  }\r\n\r\n  onDelete(id, name) {\r\n    const sub = this.confirmationService\r\n      .warn('AbpOpenIddict::ScopeDeletionWarningMessage', 'AbpOpenIddict::AreYouSure', {\r\n        messageLocalizationParams: [name],\r\n      })\r\n      .subscribe((status: Confirmation.Status) => {\r\n        if (status === Confirmation.Status.confirm) {\r\n          this.service.delete(id).subscribe(() => {\r\n            this.toasterService.success('AbpUi::DeletedSuccessfully');\r\n            this.list.get();\r\n          });\r\n        }\r\n      });\r\n  }\r\n  onSaved() {\r\n    this.list.get();\r\n  }\r\n}\r\n","<abp-page [title]=\"'AbpOpenIddict::Scopes' | abpLocalization\" [toolbar]=\"data.items\">\r\n  <div id=\"wrapper\">\r\n    <abp-advanced-entity-filters localizationSourceName=\"AbpOpenIddict\" [list]=\"list\" />\r\n\r\n    <div class=\"card\">\r\n      <abp-extensible-table [data]=\"data.items\" [recordsTotal]=\"data.totalCount\" [list]=\"list\" />\r\n    </div>\r\n  </div>\r\n</abp-page>\r\n\r\n<abp-scope-form-modal [selected]=\"selected\" (saved)=\"onSaved()\" />\r\n","import { EntityAction } from '@abp/ng.components/extensible';\r\nimport { SHOW_ENTITY_HISTORY } from '@volo/abp.commercial.ng.ui';\r\nimport { Applications } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { ApplicationsComponent } from '../components/applications/applications.component';\r\n\r\nexport const DEFAULT_APPLICATIONS_ENTITY_ACTIONS =\r\n  EntityAction.createMany<Applications.Dtos.ApplicationDto>([\r\n    {\r\n      text: 'AbpOpenIddict::Edit',\r\n      action: data => {\r\n        const component = data.getInjected(ApplicationsComponent);\r\n        component.edit(data.record.id);\r\n      },\r\n      permission: 'OpenIddictPro.Application.Update',\r\n    },\r\n    {\r\n      text: 'AbpOpenIddict::TokenLifetime',\r\n      action: data => {\r\n        const component = data.getInjected(ApplicationsComponent);\r\n        component.openTokenLifetimeModal(data.record);\r\n      },\r\n      permission: 'OpenIddictPro.Application.Update',\r\n    },\r\n    {\r\n      text: 'AbpOpenIddict::ChangeHistory',\r\n      action: data => {\r\n        const showHistory = data.getInjected(SHOW_ENTITY_HISTORY);\r\n        showHistory(data.record.id, 'Volo.Abp.OpenIddict.Applications.OpenIddictApplication');\r\n      },\r\n      permission: 'AuditLogging.ViewChangeHistory:Volo.Abp.OpenIddict.Pro.Applications.Application',\r\n    },\r\n    {\r\n      text: 'AbpOpenIddict::Permissions',\r\n      action: data => {\r\n        const component = data.getInjected(ApplicationsComponent);\r\n        component.openPermissionsModal(data.record.clientId);\r\n      },\r\n      permission: 'OpenIddictPro.Application.ManagePermissions',\r\n    },\r\n    {\r\n      text: 'LanguageManagement::Delete',\r\n      action: data => {\r\n        const component = data.getInjected(ApplicationsComponent);\r\n        component.delete(data.record.id, data.record.clientId);\r\n      },\r\n      permission: 'OpenIddictPro.Application.Delete',\r\n    },\r\n  ]);\r\n","import { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { Applications } from '@volo/abp.ng.openiddictpro/proxy';\r\n\r\nexport const DEFAULT_APPLICATIONS_ENTITY_PROPS =\r\n  EntityProp.createMany<Applications.Dtos.ApplicationDto>([\r\n    {\r\n      type: ePropType.String,\r\n      name: 'applicationType',\r\n      displayName: 'AbpOpenIddict::ApplicationType',\r\n      columnWidth: 100,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientId',\r\n      displayName: 'AbpOpenIddict::ClientId',\r\n      columnWidth: 200,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'displayName',\r\n      displayName: 'AbpOpenIddict::DisplayName',\r\n      columnWidth: 100,\r\n    },\r\n\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientType',\r\n      displayName: 'AbpOpenIddict::ClientType',\r\n      columnWidth: 200,\r\n    },\r\n  ]);\r\n","import { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { Applications } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { ApplicationsComponent } from '../components/applications/applications.component';\r\n\r\nexport const DEFAULT_APPLICATIONS_TOOLBAR_ACTIONS = ToolbarAction.createMany<\r\n  Applications.Dtos.ApplicationDto[]\r\n>([\r\n  {\r\n    text: 'AbpOpenIddict::NewApplication',\r\n    action: data => {\r\n      const component = data.getInjected(ApplicationsComponent);\r\n      component.onAdd();\r\n    },\r\n    permission: 'OpenIddictPro.Application.Create',\r\n    icon: 'fa fa-plus',\r\n  },\r\n]);\r\n","export const defaultUriPattern =\r\n  /^([a-z][a-z0-9+.-]*):(?:\\/\\/((?:(?=((?:[a-z0-9-._~!$&'()*+,;=:]|%[0-9A-F]{2})*))(\\3)@)?(?=(\\[[0-9A-F:.]{2,}\\]|(?:[a-z0-9-._~!$&'()*+,;=]|%[0-9A-F]{2})*))\\5(?::(?=(\\d*))\\6)?)(\\/(?=((?:[a-z0-9-._~!$&'()*+,;=:@\\/]|%[0-9A-F]{2})*))\\8)?|(\\/?(?!\\/)(?=((?:[a-z0-9-._~!$&'()*+,;=:@\\/]|%[0-9A-F]{2})*))\\10)?)(?:\\?(?=((?:[a-z0-9-._~!$&'()*+,;=:@\\/?]|%[0-9A-F]{2})*))\\11)?(?:#(?=((?:[a-z0-9-._~!$&'()*+,;=:@\\/?]|%[0-9A-F]{2})*))\\12)?$/i;\r\n","export const NewLineRegex = /(\\r\\n|\\r|\\n)/;\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { defaultUriPattern } from '../defaults/default-uri-pattern';\r\nimport { NewLineRegex } from './new-line-regex';\r\n\r\nexport function UrisValidator(): ValidatorFn {\r\n  const pattern = defaultUriPattern;\r\n  return (control: AbstractControl): ValidationErrors | null => {\r\n    if (isEmptyInputValue(control.value)) {\r\n      return null;\r\n    }\r\n    const value: string = control.value;\r\n    const rows = value.split(NewLineRegex).filter(item => !!item.trim());\r\n    if (rows.length === 0) {\r\n      return null;\r\n    }\r\n    const isAllRowsValid = rows.every(item => pattern.test(item));\r\n    if (isAllRowsValid) {\r\n      return null;\r\n    }\r\n    return { url: pattern.toString(), actualValue: value };\r\n  };\r\n}\r\n\r\nfunction isEmptyInputValue(value: unknown): boolean {\r\n  return (\r\n    value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0)\r\n  );\r\n}\r\n","import { Applications } from '@volo/abp.ng.openiddictpro/proxy';\r\n\r\nexport const allowFlow = ({\r\n  allowImplicitFlow,\r\n  allowAuthorizationCodeFlow,\r\n  allowHybridFlow,\r\n}: Applications.Dtos.ApplicationDto): boolean => {\r\n  return allowAuthorizationCodeFlow || allowImplicitFlow || allowHybridFlow;\r\n};\r\n","import { Validators } from '@angular/forms';\r\nimport { map } from 'rxjs/operators';\r\nimport { LocalizationService } from '@abp/ng.core';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { Scopes } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { Applications, ScopeService } from '@volo/abp.ng.openiddictpro/proxy';\r\n\r\nimport { UrisValidator } from '../utils/uris-validator';\r\nimport { defaultApplicationTypes, defaultApplicationTypesList } from './default-applications-types';\r\nimport { ApplicationFormModalComponent } from '../components/application-form-modal/application-form-modal.component';\r\nimport { allowFlow } from '../components/scopes/allow-flow';\r\nimport { of } from 'rxjs';\r\n\r\nconst groupLeft = {\r\n  name: 'left',\r\n  className: 'col col-md-6',\r\n};\r\nconst groupRight = {\r\n  name: 'right',\r\n  className: 'col col-md-6',\r\n};\r\nconst className = 'mb-1 form-group';\r\n// @ts-ignore\r\nexport const DEFAULT_APPLICATIONS_CREATE_FORM_PROPS =\r\n  FormProp.createMany<Applications.Dtos.ApplicationDto>([\r\n    {\r\n      type: ePropType.String,\r\n      options: data => of(defaultApplicationTypesList),\r\n      name: 'applicationType',\r\n      displayName: 'AbpOpenIddict::ApplicationType',\r\n      id: 'applicationType',\r\n      group: groupLeft,\r\n      className: className,\r\n      validators: () => [Validators.required],\r\n    },\r\n\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientId',\r\n      displayName: 'AbpOpenIddict::ClientId',\r\n      id: 'clientId',\r\n      validators: () => [Validators.required],\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'displayName',\r\n      displayName: 'AbpOpenIddict::DisplayName',\r\n      id: 'displayName',\r\n      validators: () => [Validators.required],\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientUri',\r\n      displayName: 'AbpOpenIddict::ClientUri',\r\n      id: 'clientUri',\r\n      validators: () => [UrisValidator()],\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'logoUri',\r\n      displayName: 'AbpOpenIddict::LogoUri',\r\n      id: 'logoUri',\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientType',\r\n      displayName: 'AbpOpenIddict::ClientType',\r\n      id: 'clientType',\r\n      validators: () => [Validators.required],\r\n      options: data => {\r\n        const key = data.getInjected(LocalizationService).instant('AbpUi::NotAssigned');\r\n        return data\r\n          .getInjected(ApplicationFormModalComponent)\r\n          .types$.pipe(map(val => [{ key, value: null }, ...val]));\r\n      },\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'clientSecret',\r\n      displayName: 'AbpOpenIddict::ClientSecret',\r\n      id: 'clientSecret',\r\n      visible: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return formValue.clientType === defaultApplicationTypes.confidential;\r\n      },\r\n      group: groupLeft,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowAuthorizationCodeFlow',\r\n      displayName: 'AbpOpenIddict::AllowAuthorizationCodeFlow',\r\n      id: 'allowAuthorizationCodeFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowImplicitFlow',\r\n      displayName: 'AbpOpenIddict::AllowImplicitFlow',\r\n      id: 'allowImplicitFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowHybridFlow',\r\n      displayName: 'AbpOpenIddict::AllowHybridFlow',\r\n      id: 'allowHybridFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowPasswordFlow',\r\n      displayName: 'AbpOpenIddict::AllowPasswordFlow',\r\n      id: 'allowPasswordFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowClientCredentialsFlow',\r\n      displayTextResolver: data => {\r\n        return data\r\n          .getInjected(ApplicationFormModalComponent)\r\n          .changeTextToType('AbpOpenIddict::AllowClientCredentialsFlow');\r\n      },\r\n      disabled: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return formValue.type === defaultApplicationTypes.public;\r\n      },\r\n\r\n      id: 'allowClientCredentialsFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowRefreshTokenFlow',\r\n      displayName: 'AbpOpenIddict::AllowRefreshTokenFlow',\r\n      disabled: data => {\r\n        const { allowHybridFlow, allowAuthorizationCodeFlow, allowPasswordFlow } = data\r\n          .getInjected(ApplicationFormModalComponent)\r\n          .getFormValue();\r\n        return !(allowHybridFlow || allowAuthorizationCodeFlow || allowPasswordFlow);\r\n      },\r\n      id: 'allowRefreshTokenFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowTokenExchangeFlow',\r\n      displayName: 'AbpOpenIddict::AllowTokenExchangeFlow',\r\n      id: 'allowTokenExchangeFlow',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowDeviceAuthorizationEndpoint',\r\n      displayTextResolver: data => {\r\n        return data\r\n          .getInjected(ApplicationFormModalComponent)\r\n          .changeTextToType('AbpOpenIddict::AllowDeviceAuthorizationEndpoint');\r\n      },\r\n      disabled: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return formValue.clientType === defaultApplicationTypes.public;\r\n      },\r\n\r\n      id: 'allowDeviceAuthorizationEndpoint',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'forcePkce',\r\n      displayName: 'AbpOpenIddict::ForcePkce',\r\n      id: 'forcePkce',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowPushedAuthorizationEndpoint',\r\n      disabled: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return formValue.forcePushedAuthorization === true;\r\n      },\r\n      displayName: 'AbpOpenIddict::AllowPushedAuthorizationEndpoint',\r\n      id: 'allowPushedAuthorizationEndpoint',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'forcePushedAuthorization',\r\n      displayName: 'AbpOpenIddict::ForcePushedAuthorization',\r\n      id: 'forcePushedAuthorization',\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.String,\r\n      name: 'consentType',\r\n      displayName: 'AbpOpenIddict::ConsentType',\r\n      id: 'consentType',\r\n      options: data => data.getInjected(ApplicationFormModalComponent).consentTypes$,\r\n      visible: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return allowFlow(formValue);\r\n      },\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Text,\r\n      name: 'extensionGrantTypes',\r\n      displayName: 'AbpOpenIddict::ExtensionGrantTypes',\r\n      id: 'extensionGrantTypes',\r\n      className: className,\r\n      group: groupRight,\r\n    },\r\n    {\r\n      type: ePropType.MultiSelect,\r\n      name: 'scopes',\r\n      displayName: 'AbpOpenIddict::Scopes',\r\n      id: 'scopes',\r\n      defaultValue: [],\r\n      options: data => {\r\n        return data\r\n          .getInjected(ScopeService)\r\n          .getAllScopes()\r\n          .pipe(\r\n            map((result: Scopes.Dtos.ScopeDto[]) =>\r\n              result.map(scope => ({\r\n                key: scope.name,\r\n                value: scope.name,\r\n              })),\r\n            ),\r\n          );\r\n      },\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Text,\r\n      name: 'redirectUris',\r\n      displayName: 'AbpOpenIddict::RedirectUris',\r\n      id: 'redirectUris',\r\n      validators: () => [UrisValidator()],\r\n      visible: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return allowFlow(formValue);\r\n      },\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Boolean,\r\n      defaultValue: false,\r\n      name: 'allowEndSessionEndpoint',\r\n      displayName: 'AbpOpenIddict::AllowEndSessionEndpoint',\r\n      id: 'allowEndSessionEndpoint',\r\n      visible: data => {\r\n        const formValue = data.getInjected(ApplicationFormModalComponent).getFormValue();\r\n        return allowFlow(formValue);\r\n      },\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n    {\r\n      type: ePropType.Text,\r\n      name: 'postLogoutRedirectUris',\r\n      displayName: 'AbpOpenIddict::PostLogoutRedirectUris',\r\n      id: 'postLogoutRedirectUris',\r\n      validators: () => [UrisValidator()],\r\n      visible: data => {\r\n        const { allowEndSessionEndpoint } = data\r\n          .getInjected(ApplicationFormModalComponent)\r\n          .getFormValue();\r\n        return allowEndSessionEndpoint;\r\n      },\r\n      group: groupRight,\r\n      className: className,\r\n    },\r\n  ]);\r\n\r\nexport const DEFAULT_APPLICATIONS_FORM_PROPS = DEFAULT_APPLICATIONS_CREATE_FORM_PROPS;\r\n","import { EntityProp, ePropType } from '@abp/ng.components/extensible';\r\nimport { Scopes } from '@volo/abp.ng.openiddictpro/proxy';\r\n\r\nexport const DEFAULT_SCOPES_ENTITY_PROPS = EntityProp.createMany<Scopes.Dtos.ScopeDto>([\r\n  {\r\n    type: ePropType.String,\r\n    name: 'name',\r\n    displayName: 'AbpOpenIddict::Name',\r\n    columnWidth: 200,\r\n  },\r\n  {\r\n    type: ePropType.String,\r\n    name: 'displayName',\r\n    displayName: 'AbpOpenIddict::DisplayName',\r\n    columnWidth: 200,\r\n  },\r\n  {\r\n    type: ePropType.String,\r\n    name: 'description',\r\n    displayName: 'AbpOpenIddict::Description',\r\n    columnWidth: 200,\r\n  },\r\n]);\r\n","import { ToolbarAction } from '@abp/ng.components/extensible';\r\nimport { Applications } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { ScopesComponent } from '../components/scopes/scopes.component';\r\n\r\nexport const DEFAULT_SCOPES_TOOLBAR_ACTIONS = ToolbarAction.createMany<\r\n  Applications.Dtos.ApplicationDto[]\r\n>([\r\n  {\r\n    text: 'AbpOpenIddict::NewScope',\r\n    action: data => {\r\n      const component = data.getInjected(ScopesComponent);\r\n      component.onAdd();\r\n    },\r\n    permission: 'OpenIddictPro.Scope.Create',\r\n    icon: 'fa fa-plus',\r\n  },\r\n]);\r\n","import { Validators } from '@angular/forms';\r\nimport { ePropType, FormProp } from '@abp/ng.components/extensible';\r\nimport { Scopes } from '@volo/abp.ng.openiddictpro/proxy';\r\n\r\nexport const DEFAULT_SCOPE_CREATE_FORM_PROPS = FormProp.createMany<Scopes.Dtos.ScopeDto>([\r\n  {\r\n    type: ePropType.String,\r\n    name: 'name',\r\n    displayName: 'AbpOpenIddict::Name',\r\n    id: 'name',\r\n    validators: () => [Validators.required, Validators.pattern(/^\\S+$/)],\r\n  },\r\n\r\n  {\r\n    type: ePropType.String,\r\n    name: 'displayName',\r\n    displayName: 'AbpOpenIddict::DisplayName',\r\n    id: 'displayName',\r\n  },\r\n  {\r\n    type: ePropType.String,\r\n    name: 'description',\r\n    displayName: 'AbpOpenIddict::Description',\r\n    id: 'description',\r\n  },\r\n  {\r\n    type: ePropType.Text,\r\n    name: 'resources',\r\n    displayName: 'AbpOpenIddict::Resources',\r\n    id: 'resources',\r\n  },\r\n]);\r\n\r\nexport const DEFAULT_SCOPES_FORM_PROPS = DEFAULT_SCOPE_CREATE_FORM_PROPS;\r\n","import { EntityAction } from '@abp/ng.components/extensible';\r\nimport { SHOW_ENTITY_HISTORY } from '@volo/abp.commercial.ng.ui';\r\nimport { Scopes } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { ScopesComponent } from '../components/scopes/scopes.component';\r\n\r\nexport const DEFAULT_SCOPE_ENTITY_ACTIONS = EntityAction.createMany<Scopes.Dtos.ScopeDto>([\r\n  {\r\n    text: 'AbpOpenIddict::Edit',\r\n    action: data => {\r\n      const component = data.getInjected(ScopesComponent);\r\n      component.onEdit(data.record.id);\r\n    },\r\n    permission: 'OpenIddictPro.Scope.Update',\r\n  },\r\n\r\n  {\r\n    text: 'AbpOpenIddict::ChangeHistory',\r\n    action: data => {\r\n      const showHistory = data.getInjected(SHOW_ENTITY_HISTORY);\r\n      showHistory(data.record.id, 'Volo.Abp.OpenIddict.Scopes.OpenIddictScope');\r\n    },\r\n    permission: 'AuditLogging.ViewChangeHistory:Volo.Abp.OpenIddict.Pro.Scopes.Scope',\r\n    visible: data => Boolean(data.getInjected(SHOW_ENTITY_HISTORY, null)),\r\n  },\r\n  {\r\n    text: 'AbpOpenIddict::Delete',\r\n    action: data => {\r\n      const component = data.getInjected(ScopesComponent);\r\n      component.onDelete(data.record.id, data.record.name);\r\n    },\r\n    permission: 'OpenIddictPro.Scope.Delete',\r\n  },\r\n]);\r\n","import {\r\n  CreateFormPropContributorCallback,\r\n  EditFormPropContributorCallback,\r\n  EntityActionContributorCallback,\r\n  EntityPropContributorCallback,\r\n  ToolbarActionContributorCallback,\r\n} from '@abp/ng.components/extensible';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { DEFAULT_APPLICATIONS_ENTITY_ACTIONS } from '../defaults/default-applications-entity-actions';\r\nimport { DEFAULT_APPLICATIONS_ENTITY_PROPS } from '../defaults/default-applications-entity-props';\r\nimport { DEFAULT_APPLICATIONS_TOOLBAR_ACTIONS } from '../defaults/default-applications-toolbar-actions';\r\nimport {\r\n  DEFAULT_APPLICATIONS_CREATE_FORM_PROPS,\r\n  DEFAULT_APPLICATIONS_FORM_PROPS,\r\n} from '../defaults/default-applications-form-props';\r\nimport { eOpenIddictProComponents } from '../enums';\r\nimport { Applications, Scopes } from '@volo/abp.ng.openiddictpro/proxy';\r\nimport { DEFAULT_SCOPES_ENTITY_PROPS } from '../defaults/default-scope-entity-props';\r\nimport { DEFAULT_SCOPES_TOOLBAR_ACTIONS } from '../defaults/default-scope-toolbar-actions';\r\nimport {\r\n  DEFAULT_SCOPE_CREATE_FORM_PROPS,\r\n  DEFAULT_SCOPES_FORM_PROPS,\r\n} from '../defaults/default-scope-form-props';\r\nimport { DEFAULT_SCOPE_ENTITY_ACTIONS } from '../defaults/default-scope-entity-actions';\r\n\r\nexport const DEFAULT_OPENIDDICT_PRO_ENTITY_ACTIONS = {\r\n  [eOpenIddictProComponents.Applications]: DEFAULT_APPLICATIONS_ENTITY_ACTIONS,\r\n  [eOpenIddictProComponents.Scopes]: DEFAULT_SCOPE_ENTITY_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_OPENIDDICT_PRO_TOOLBAR_ACTIONS = {\r\n  [eOpenIddictProComponents.Applications]: DEFAULT_APPLICATIONS_TOOLBAR_ACTIONS,\r\n  [eOpenIddictProComponents.Scopes]: DEFAULT_SCOPES_TOOLBAR_ACTIONS,\r\n};\r\n\r\nexport const DEFAULT_OPENIDDICT_PRO_ENTITY_PROPS = {\r\n  [eOpenIddictProComponents.Applications]: DEFAULT_APPLICATIONS_ENTITY_PROPS,\r\n  [eOpenIddictProComponents.Scopes]: DEFAULT_SCOPES_ENTITY_PROPS,\r\n};\r\n\r\nexport const DEFAULT_OPENIDDICT_PRO_CREATE_FORM_PROPS = {\r\n  [eOpenIddictProComponents.Applications]: DEFAULT_APPLICATIONS_CREATE_FORM_PROPS,\r\n  [eOpenIddictProComponents.Scopes]: DEFAULT_SCOPE_CREATE_FORM_PROPS,\r\n};\r\n\r\nexport const DEFAULT_OPENIDDICT_PRO_EDIT_FORM_PROPS = {\r\n  [eOpenIddictProComponents.Applications]: DEFAULT_APPLICATIONS_FORM_PROPS,\r\n  [eOpenIddictProComponents.Scopes]: DEFAULT_SCOPES_FORM_PROPS,\r\n};\r\n\r\nexport const OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS =\r\n  new InjectionToken<EntityActionContributors>('OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS');\r\n\r\nexport const OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS =\r\n  new InjectionToken<ToolbarActionContributors>('OPENIDDICT_PRO__TOOLBAR_ACTION_CONTRIBUTORS');\r\n\r\nexport const OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS = new InjectionToken<EntityPropContributors>(\r\n  'OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS',\r\n);\r\n\r\nexport const OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS =\r\n  new InjectionToken<CreateFormPropContributors>('OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS');\r\n\r\nexport const OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS =\r\n  new InjectionToken<EditFormPropContributors>('OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS');\r\n\r\n// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497\r\ntype EntityActionContributors = Partial<{\r\n  [eOpenIddictProComponents.Applications]: EntityActionContributorCallback<Applications.Dtos.ApplicationDto>[];\r\n}>;\r\ntype ToolbarActionContributors = Partial<{\r\n  [eOpenIddictProComponents.Applications]: ToolbarActionContributorCallback<\r\n    Applications.Dtos.ApplicationDto[]\r\n  >[];\r\n}>;\r\ntype EntityPropContributors = Partial<{\r\n  [eOpenIddictProComponents.Applications]: EntityPropContributorCallback<Applications.Dtos.ApplicationDto>[];\r\n  [eOpenIddictProComponents.Scopes]: EntityPropContributorCallback<Scopes.Dtos.ScopeDto>[];\r\n}>;\r\ntype CreateFormPropContributors = Partial<{\r\n  [eOpenIddictProComponents.Applications]: CreateFormPropContributorCallback<Applications.Dtos.ApplicationDto>[];\r\n}>;\r\ntype EditFormPropContributors = Partial<{\r\n  [eOpenIddictProComponents.Applications]: EditFormPropContributorCallback<Applications.Dtos.ApplicationDto>[];\r\n}>;\r\n","import {\r\n  ExtensionsService,\r\n  getObjectExtensionEntitiesFromStore,\r\n  mapEntitiesToContributors,\r\n  mergeWithDefaultActions,\r\n  mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { Injector, inject } from '@angular/core';\r\nimport { ResolveFn } from '@angular/router';\r\nimport { map, tap } from 'rxjs';\r\nimport { eOpenIddictProComponents } from '../enums';\r\nimport {\r\n  OpenIddictProEntityActionContributors,\r\n  OpenIddictProToolbarActionContributors,\r\n  OpenIddictProEntityPropContributors,\r\n  OpenIddictProCreateFormPropContributors,\r\n  OpenIddictProEditFormPropContributors,\r\n} from '../models';\r\nimport {\r\n  OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n  DEFAULT_OPENIDDICT_PRO_ENTITY_ACTIONS,\r\n  DEFAULT_OPENIDDICT_PRO_TOOLBAR_ACTIONS,\r\n  DEFAULT_OPENIDDICT_PRO_ENTITY_PROPS,\r\n  DEFAULT_OPENIDDICT_PRO_CREATE_FORM_PROPS,\r\n  DEFAULT_OPENIDDICT_PRO_EDIT_FORM_PROPS,\r\n} from '../tokens';\r\n\r\nexport const openIddictProExtensionsResolver: ResolveFn<any> = () => {\r\n  const injector = inject(Injector);\r\n\r\n  const extensions: ExtensionsService = injector.get(ExtensionsService);\r\n  const actionContributors: OpenIddictProEntityActionContributors =\r\n    injector.get(OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n  const toolbarContributors: OpenIddictProToolbarActionContributors =\r\n    injector.get(OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n  const propContributors: OpenIddictProEntityPropContributors =\r\n    injector.get(OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n  const createFormContributors: OpenIddictProCreateFormPropContributors =\r\n    injector.get(OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n  const editFormContributors: OpenIddictProEditFormPropContributors =\r\n    injector.get(OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n  return getObjectExtensionEntitiesFromStore(injector, 'OpenIddictPro').pipe(\r\n    map(entities => {\r\n      return {\r\n        [eOpenIddictProComponents.Applications]: entities.ApiResource,\r\n        [eOpenIddictProComponents.Scopes]: entities.Scopes,\r\n      };\r\n    }),\r\n    mapEntitiesToContributors(injector, 'AbpOpenIddictPro'),\r\n    tap(objectExtensionContributors => {\r\n      mergeWithDefaultActions(\r\n        extensions.entityActions,\r\n        DEFAULT_OPENIDDICT_PRO_ENTITY_ACTIONS,\r\n        actionContributors,\r\n      );\r\n      mergeWithDefaultActions(\r\n        extensions.toolbarActions,\r\n        DEFAULT_OPENIDDICT_PRO_TOOLBAR_ACTIONS,\r\n        toolbarContributors,\r\n      );\r\n      mergeWithDefaultProps(\r\n        extensions.entityProps,\r\n        DEFAULT_OPENIDDICT_PRO_ENTITY_PROPS,\r\n        objectExtensionContributors.prop,\r\n        propContributors,\r\n      );\r\n      mergeWithDefaultProps(\r\n        extensions.createFormProps,\r\n        DEFAULT_OPENIDDICT_PRO_CREATE_FORM_PROPS,\r\n        objectExtensionContributors.createForm,\r\n        createFormContributors,\r\n      );\r\n      mergeWithDefaultProps(\r\n        extensions.editFormProps,\r\n        DEFAULT_OPENIDDICT_PRO_EDIT_FORM_PROPS,\r\n        objectExtensionContributors.editForm,\r\n        editFormContributors,\r\n      );\r\n    }),\r\n  );\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport {\r\n  authGuard,\r\n  permissionGuard,\r\n  ReplaceableComponents,\r\n  ReplaceableRouteContainerComponent,\r\n  RouterOutletComponent,\r\n} from '@abp/ng.core';\r\nimport { eOpenIddictProComponents } from './enums';\r\nimport { ApplicationsComponent } from './components/applications/applications.component';\r\nimport { ScopesComponent } from './components/scopes/scopes.component';\r\nimport { openIddictProExtensionsResolver } from './resolvers/extensions.resolver';\r\n\r\nconst routes: Routes = [\r\n  { path: '', redirectTo: 'Applications', pathMatch: 'full' },\r\n  {\r\n    path: '',\r\n    component: RouterOutletComponent,\r\n    canActivate: [authGuard, permissionGuard],\r\n    resolve: [openIddictProExtensionsResolver],\r\n    children: [\r\n      {\r\n        path: 'Applications',\r\n        component: ReplaceableRouteContainerComponent,\r\n        data: {\r\n          requiredPolicy: 'OpenIddictPro.Application',\r\n          replaceableComponent: {\r\n            key: eOpenIddictProComponents.Applications,\r\n            defaultComponent: ApplicationsComponent,\r\n          } as ReplaceableComponents.RouteData<ApplicationsComponent>,\r\n        },\r\n        title: 'AbpOpenIddict::Applications',\r\n      },\r\n      {\r\n        path: 'Scopes',\r\n        component: ReplaceableRouteContainerComponent,\r\n        data: {\r\n          requiredPolicy: 'OpenIddictPro.Scopes',\r\n          replaceableComponent: {\r\n            key: eOpenIddictProComponents.Scopes,\r\n            defaultComponent: ScopesComponent,\r\n          } as ReplaceableComponents.RouteData<ScopesComponent>,\r\n        },\r\n        title: 'AbpOpenIddict::Scopes',\r\n      },\r\n    ],\r\n  },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class OpeniddictproRoutingModule {}\r\n","import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { OpenIddictProConfigOptions } from './models/config-options';\r\nimport { OpeniddictproRoutingModule } from './openiddictpro-routing.module';\r\nimport { AdvancedEntityFiltersModule, CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { ApplicationsComponent } from './components/applications/applications.component';\r\n\r\nimport {\r\n  OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens';\r\nimport { ApplicationFormModalComponent } from './components/application-form-modal/application-form-modal.component';\r\nimport { ApplicationsService, ScopesService } from './services';\r\nimport { ScopesComponent } from './components/scopes/scopes.component';\r\nimport { ScopeFormModalComponent } from './components/scope-form-modal/scope-form-modal.component';\r\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\r\nimport { ExtensibleFormComponent, ExtensibleTableComponent } from '@abp/ng.components/extensible';\r\nimport { TokenLifetimeModalComponent } from './components';\r\n\r\nconst components = [\r\n  ApplicationsComponent,\r\n  ApplicationFormModalComponent,\r\n  ScopesComponent,\r\n  ScopeFormModalComponent,\r\n];\r\n@NgModule({\r\n  imports: [\r\n    OpeniddictproRoutingModule,\r\n    CoreModule,\r\n    CommercialUiModule,\r\n    ThemeSharedModule,\r\n    NgbDropdownModule,\r\n    NgxValidateCoreModule,\r\n    PageModule,\r\n    AdvancedEntityFiltersModule,\r\n    PermissionManagementModule,\r\n    ExtensibleFormComponent,\r\n    TokenLifetimeModalComponent,\r\n    ExtensibleTableComponent,\r\n    ...components,\r\n  ],\r\n  exports: [...components],\r\n})\r\nexport class OpeniddictproModule {\r\n  static forChild(\r\n    options: OpenIddictProConfigOptions = {},\r\n  ): ModuleWithProviders<OpeniddictproModule> {\r\n    return {\r\n      ngModule: OpeniddictproModule,\r\n      providers: [\r\n        {\r\n          provide: OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n          useValue: options.entityActionContributors,\r\n        },\r\n        {\r\n          provide: OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n          useValue: options.toolbarActionContributors,\r\n        },\r\n        {\r\n          provide: OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n          useValue: options.entityPropContributors,\r\n        },\r\n        {\r\n          provide: OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n          useValue: options.createFormPropContributors,\r\n        },\r\n        {\r\n          provide: OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n          useValue: options.editFormPropContributors,\r\n        },\r\n        ApplicationsService,\r\n        ScopesService,\r\n      ],\r\n    };\r\n  }\r\n  /**\r\n   * @deprecated `OpeniddictproModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead.\r\n   */\r\n  static forLazy(options: OpenIddictProConfigOptions = {}): NgModuleFactory<OpeniddictproModule> {\r\n    return new LazyModuleFactory(OpeniddictproModule.forChild(options));\r\n  }\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport { Routes } from '@angular/router';\r\nimport {\r\n  RouterOutletComponent,\r\n  authGuard,\r\n  permissionGuard,\r\n  ReplaceableRouteContainerComponent,\r\n  ReplaceableComponents,\r\n} from '@abp/ng.core';\r\nimport { ApplicationsComponent, ScopesComponent } from './components';\r\nimport { eOpenIddictProComponents } from './enums';\r\nimport { OpenIddictProConfigOptions } from './models';\r\nimport { openIddictProExtensionsResolver } from './resolvers';\r\nimport { ApplicationsService, ScopesService } from './services';\r\nimport {\r\n  OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n} from './tokens';\r\n\r\nconst openIddictProProviders = [ApplicationsService, ScopesService];\r\nexport function createRoutes(config: OpenIddictProConfigOptions = {}): Routes {\r\n  return [\r\n    { path: '', redirectTo: 'Applications', pathMatch: 'full' },\r\n    {\r\n      path: '',\r\n      component: RouterOutletComponent,\r\n      providers: [...openIddictProProviders, provideOpenIddictProContributors(config)],\r\n      canActivate: [authGuard, permissionGuard],\r\n      resolve: [openIddictProExtensionsResolver],\r\n      children: [\r\n        {\r\n          path: 'Applications',\r\n          component: ReplaceableRouteContainerComponent,\r\n          data: {\r\n            requiredPolicy: 'OpenIddictPro.Application',\r\n            replaceableComponent: {\r\n              key: eOpenIddictProComponents.Applications,\r\n              defaultComponent: ApplicationsComponent,\r\n            } as ReplaceableComponents.RouteData<ApplicationsComponent>,\r\n          },\r\n          title: 'AbpOpenIddict::Applications',\r\n        },\r\n        {\r\n          path: 'Scopes',\r\n          component: ReplaceableRouteContainerComponent,\r\n          data: {\r\n            requiredPolicy: 'OpenIddictPro.Scopes',\r\n            replaceableComponent: {\r\n              key: eOpenIddictProComponents.Scopes,\r\n              defaultComponent: ScopesComponent,\r\n            } as ReplaceableComponents.RouteData<ScopesComponent>,\r\n          },\r\n          title: 'AbpOpenIddict::Scopes',\r\n        },\r\n      ],\r\n    },\r\n  ];\r\n}\r\n\r\nfunction provideOpenIddictProContributors(options: OpenIddictProConfigOptions = {}): Provider[] {\r\n  return [\r\n    {\r\n      provide: OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n      useValue: options.entityActionContributors,\r\n    },\r\n    {\r\n      provide: OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n      useValue: options.toolbarActionContributors,\r\n    },\r\n    {\r\n      provide: OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n      useValue: options.entityPropContributors,\r\n    },\r\n    {\r\n      provide: OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n      useValue: options.createFormPropContributors,\r\n    },\r\n    {\r\n      provide: OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n      useValue: options.editFormPropContributors,\r\n    },\r\n  ];\r\n}\r\n","import {\r\n  ExtensionsService,\r\n  getObjectExtensionEntitiesFromStore,\r\n  mapEntitiesToContributors,\r\n  mergeWithDefaultActions,\r\n  mergeWithDefaultProps,\r\n} from '@abp/ng.components/extensible';\r\nimport { inject, Injectable, Injector } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map, mapTo, tap } from 'rxjs/operators';\r\nimport { eOpenIddictProComponents } from '../enums/components';\r\nimport {\r\n  OpenIddictProCreateFormPropContributors,\r\n  OpenIddictProEditFormPropContributors,\r\n  OpenIddictProEntityActionContributors,\r\n  OpenIddictProEntityPropContributors,\r\n  OpenIddictProToolbarActionContributors,\r\n} from '../models/config-options';\r\nimport {\r\n  DEFAULT_OPENIDDICT_PRO_CREATE_FORM_PROPS,\r\n  DEFAULT_OPENIDDICT_PRO_EDIT_FORM_PROPS,\r\n  DEFAULT_OPENIDDICT_PRO_ENTITY_ACTIONS,\r\n  DEFAULT_OPENIDDICT_PRO_ENTITY_PROPS,\r\n  DEFAULT_OPENIDDICT_PRO_TOOLBAR_ACTIONS,\r\n  OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS,\r\n  OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from '../tokens/extensions.token';\r\n\r\n/**\r\n * @deprecated Use `openIddictProExtensionsResolver` *function* instead.\r\n */\r\n@Injectable()\r\nexport class OpenIddictProExtensionsGuard {\r\n  private readonly injector = inject(Injector);\r\n\r\n  canActivate(): Observable<boolean> {\r\n    const extensions: ExtensionsService = this.injector.get(ExtensionsService);\r\n    const actionContributors: OpenIddictProEntityActionContributors =\r\n      this.injector.get(OPENIDDICT_PRO_ENTITY_ACTION_CONTRIBUTORS, null) || {};\r\n    const toolbarContributors: OpenIddictProToolbarActionContributors =\r\n      this.injector.get(OPENIDDICT_PRO_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\r\n    const propContributors: OpenIddictProEntityPropContributors =\r\n      this.injector.get(OPENIDDICT_PRO_ENTITY_PROP_CONTRIBUTORS, null) || {};\r\n    const createFormContributors: OpenIddictProCreateFormPropContributors =\r\n      this.injector.get(OPENIDDICT_PRO_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};\r\n    const editFormContributors: OpenIddictProEditFormPropContributors =\r\n      this.injector.get(OPENIDDICT_PRO_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};\r\n\r\n    return getObjectExtensionEntitiesFromStore(this.injector, 'OpenIddictPro').pipe(\r\n      map(entities => {\r\n        return {\r\n          [eOpenIddictProComponents.Applications]: entities.ApiResource,\r\n          [eOpenIddictProComponents.Scopes]: entities.Scopes,\r\n        };\r\n      }),\r\n      mapEntitiesToContributors(this.injector, 'AbpOpenIddictPro'),\r\n      tap(objectExtensionContributors => {\r\n        mergeWithDefaultActions(\r\n          extensions.entityActions,\r\n          DEFAULT_OPENIDDICT_PRO_ENTITY_ACTIONS,\r\n          actionContributors,\r\n        );\r\n        mergeWithDefaultActions(\r\n          extensions.toolbarActions,\r\n          DEFAULT_OPENIDDICT_PRO_TOOLBAR_ACTIONS,\r\n          toolbarContributors,\r\n        );\r\n        mergeWithDefaultProps(\r\n          extensions.entityProps,\r\n          DEFAULT_OPENIDDICT_PRO_ENTITY_PROPS,\r\n          objectExtensionContributors.prop,\r\n          propContributors,\r\n        );\r\n        mergeWithDefaultProps(\r\n          extensions.createFormProps,\r\n          DEFAULT_OPENIDDICT_PRO_CREATE_FORM_PROPS,\r\n          objectExtensionContributors.createForm,\r\n          createFormContributors,\r\n        );\r\n        mergeWithDefaultProps(\r\n          extensions.editFormProps,\r\n          DEFAULT_OPENIDDICT_PRO_EDIT_FORM_PROPS,\r\n          objectExtensionContributors.editForm,\r\n          editFormContributors,\r\n        );\r\n      }),\r\n      mapTo(true),\r\n    );\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","tap"],"mappings":"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"}