{"version":3,"file":"winkong-ng-zorro-antd-extension-acl.mjs","sources":["../../../components/acl/nzx-acl.service.ts","../../../components/acl/nzx-acl.directive.ts","../../../components/acl/nzx-acl.module.ts","../../../components/acl/public-api.ts","../../../components/acl/winkong-ng-zorro-antd-extension-acl.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class NzxAclService {\n  public permissions$: Observable<string[]>;\n\n  private permissionsSource: BehaviorSubject<string[]>;\n\n  constructor() {\n    this.permissionsSource = new BehaviorSubject<string[]>([]);\n    this.permissions$ = this.permissionsSource.asObservable();\n  }\n\n  /** 加载权限 */\n  loadPermissions(permissions: string[]) {\n    this.permissionsSource.next([\n      ...this.permissionsSource.value,\n      ...permissions,\n    ]);\n  }\n\n  /** 含有权限 */\n  hasPermission(permission: string) {\n    return this.permissionsSource.value.includes(permission);\n  }\n\n  /** 添加权限 */\n  addPermission(permission: string) {\n    if (this.hasPermission(permission)) {\n      return;\n    }\n    const permissions = [...this.permissionsSource.value, permission];\n    this.permissionsSource.next(permissions);\n  }\n\n  /** 移除权限 */\n  removePermission(permission: string) {\n    const permissions = this.permissionsSource.value.filter(\n      (p) => p !== permission\n    );\n    this.permissionsSource.next(permissions);\n  }\n\n  /** 刷新权限 */\n  refreshPermission() {\n    setTimeout(() => {\n      this.permissionsSource.next(this.permissionsSource.value);\n    }, 0);\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  Input,\n  OnDestroy,\n  OnInit,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\n\nimport { NzxAclService } from './nzx-acl.service';\nimport { Subject, takeUntil } from 'rxjs';\n\ninterface AclContext {\n  $implicit: string[];\n  currentAcl: string;\n}\n\n@Directive({\n  selector: '[nzxAcl]',\n  exportAs: 'NzxAcl',\n})\nexport class NzxAclDirective implements OnInit, OnDestroy {\n  @Input('nzxAcl') codes: string | string[] = '';\n  @Input() nzxAclElse?: TemplateRef<any>;\n\n  @Input('nzxAclDataAcl')\n  dataAcl = true;\n\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private templateRef: TemplateRef<AclContext>,\n    private viewContainerRef: ViewContainerRef,\n    private nzxAclService: NzxAclService,\n    private cd: ChangeDetectorRef\n  ) {}\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  ngOnInit() {\n    this.viewContainerRef.clear();\n    this.nzxAclService.permissions$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((acls) => {\n        this.viewContainerRef.clear();\n        this.judge(acls);\n      });\n  }\n\n  private judge(acls: string[]) {\n    if (Array.isArray(this.codes)) {\n      const isFind = acls.some((acl) => {\n        return this.codes.includes(acl) === true;\n      });\n\n      if (isFind) {\n        this.createView(acls);\n      } else {\n        if (this.nzxAclElse) {\n          this.viewContainerRef.createEmbeddedView(this.nzxAclElse);\n        }\n      }\n    }\n\n    if (typeof this.codes === 'string') {\n      if (acls.includes(this.codes)) {\n        this.createView(acls);\n      } else {\n        if (this.nzxAclElse) {\n          this.viewContainerRef.createEmbeddedView(this.nzxAclElse);\n        }\n      }\n    }\n  }\n\n  private createView(acls: string[]) {\n    if (this.dataAcl) {\n      this.viewContainerRef.createEmbeddedView(this.templateRef, {\n        $implicit: acls,\n        currentAcl: this.codes,\n      });\n      this.cd.markForCheck();\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NzxAclDirective } from './nzx-acl.directive';\nimport { NzxAclService } from './nzx-acl.service';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NzxAclDirective],\n  exports: [NzxAclDirective],\n})\nexport class NzxAclModule {\n  static forRoot(): ModuleWithProviders<NzxAclModule> {\n    return {\n      ngModule: NzxAclModule,\n      providers: [NzxAclService],\n    };\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nexport * from './nzx-acl.directive';\nexport * from './nzx-acl.service';\nexport * from './nzx-acl.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NzxAclService"],"mappings":"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"}