{"version":3,"file":"material-zui-angular-permission.mjs","sources":["../../../../projects/material-zui/angular/permission/src/index.service.ts","../../../../projects/material-zui/angular/permission/src/index.directive.ts","../../../../projects/material-zui/angular/permission/src/index.guard.ts","../../../../projects/material-zui/angular/permission/src/index.module.ts","../../../../projects/material-zui/angular/permission/material-zui-angular-permission.ts"],"sourcesContent":["import {Injectable} from '@angular/core'\nimport {NavigationExtras} from '@angular/router'\nimport {Subject} from 'rxjs'\nimport {ZuiPermission, ZuiPermissionNotFound} from './type'\n\n@Injectable()\nexport class ZuiPermissionService {\n  #disable: boolean = false\n  #permission: ZuiPermission = {}\n  #permission$ = new Subject<ZuiPermission>()\n  #notFound!: ZuiPermissionNotFound\n\n  get permission(): ZuiPermission {\n    return this.#permission\n  }\n\n  get dataChange$(): Subject<ZuiPermission> {\n    return this.#permission$\n  }\n\n  get isDisable(): boolean {\n    return this.#disable\n  }\n\n  get notFoundPage(): ZuiPermissionNotFound {\n    return this.#notFound\n  }\n\n  #toPermissionObj = (permissions: string[]): ZuiPermission => permissions.reduce((acc, item) => ({...acc, [item]: true}), {})\n\n  #emit = (): void => this.#permission$.next(this.#permission)\n\n  addPermissions = (permissions: string[]): void => {\n    const permissionObj = this.#toPermissionObj(permissions)\n    this.#permission = {...this.#permission, ...permissionObj}\n    this.#emit()\n  }\n\n  removePermissions = (permissions: string[]): void => {\n    Object.keys(this.#permission).forEach(permission => {\n      if (permissions.includes(permission)) delete this.#permission[permission]\n    })\n    this.#emit()\n  }\n\n  clearPermissions = (): void => {\n    this.#permission = {}\n    this.#emit()\n  }\n\n  enable = (): void => {\n    this.#disable = false\n  }\n\n  disable = (): void => {\n    this.#disable = true\n  }\n\n  setInvalidPermissionPage = (commands: any[], extras?: NavigationExtras): void => {\n    this.#notFound = {commands, extras}\n  }\n\n  clearInvalidPermissionPage = (): void => {\n    this.#notFound = null\n  }\n}\n","import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core'\nimport {ZuiPermissionService} from './index.service'\n\n@Directive({selector: '[zuiPermission]'})\nexport class ZuiPermissionDirective {\n  @Input() set zuiPermission(permission: string) {\n    // console.log('val', permission)\n    if (!permission) {\n      this.viewContainerRef.createEmbeddedView(this.templateRef)\n      return\n    }\n    const permissionObj = this.zuiPermissionService.permission\n    if (permissionObj[permission]) {\n      this.viewContainerRef.createEmbeddedView(this.templateRef)\n    }\n  }\n\n  constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef, private zuiPermissionService: ZuiPermissionService) {}\n}\n","import {Injectable} from '@angular/core'\nimport {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router'\nimport {ZuiPermissionService} from './index.service'\n\n@Injectable()\nexport class ZuiPermissionGuard implements CanActivate {\n  constructor(public router: Router, private zuiPermissionService: ZuiPermissionService) {}\n\n  #checkActive = (activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Promise<boolean> => {\n    console.log('checkActive')\n    const {isDisable, permission, notFoundPage} = this.zuiPermissionService\n    if (isDisable) return true\n\n    const permissionKey = activatedRoute.data['permission']\n    if (!permission || permission[permissionKey]) return true\n\n    if (notFoundPage) this.router.navigate(notFoundPage.commands, notFoundPage.extras)\n    return false\n  }\n\n  canActivate(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Promise<boolean> {\n    return this.#checkActive(activatedRoute, state)\n  }\n\n  canActivateChild(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Promise<boolean> {\n    return this.#checkActive(activatedRoute, state)\n  }\n}\n","import {NgModule} from '@angular/core'\nimport {ZuiPermissionDirective} from './index.directive'\nimport {ZuiPermissionGuard} from './index.guard'\nimport {ZuiPermissionService} from './index.service'\n\n@NgModule({\n  declarations: [ZuiPermissionDirective],\n  providers: [ZuiPermissionService, ZuiPermissionGuard],\n  exports: [ZuiPermissionDirective],\n})\nexport class ZuiPermissionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ZuiPermissionService","i2.ZuiPermissionService"],"mappings":";;;;;;;MAMa,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;AAEE,QAAA,6BAAA,CAAA,GAAA,CAAA,IAAA,EAAoB,KAAK,CAAA,CAAA;AACzB,QAAA,gCAAA,CAAA,GAAA,CAAA,IAAA,EAA6B,EAAE,CAAA,CAAA;QAC/B,iCAAe,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAiB,CAAA,CAAA;QAC3C,8BAAiC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAkBjC,QAAA,qCAAA,CAAA,GAAA,CAAA,IAAA,EAAmB,CAAC,WAAqB,KAAoB,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,KAAE,CAAC,IAAI,GAAG,IAAI,EAAE,CAAA,CAAA,EAAE,EAAE,CAAC,CAAA,CAAA;AAE5H,QAAA,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAQ,MAAY,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAa,CAAC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,gCAAA,EAAA,GAAA,CAAY,CAAC,CAAA,CAAA;AAE5D,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,WAAqB,KAAU;AAC/C,YAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAiB,MAArB,IAAI,EAAkB,WAAW,CAAC,CAAA;AACxD,YAAA,sBAAA,CAAA,IAAI,EAAA,gCAAA,EAAmB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,sBAAA,CAAA,IAAI,EAAY,gCAAA,EAAA,GAAA,CAAA,CAAA,EAAK,aAAa,CAAC,EAAA,GAAA,CAAA,CAAA;AAC1D,YAAA,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAM,CAAV,IAAA,CAAA,IAAI,CAAQ,CAAA;AACd,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,WAAqB,KAAU;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,gCAAA,EAAA,GAAA,CAAY,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;AACjD,gBAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,OAAO,uBAAA,IAAI,EAAA,gCAAA,EAAA,GAAA,CAAY,CAAC,UAAU,CAAC,CAAA;AAC3E,aAAC,CAAC,CAAA;AACF,YAAA,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAM,CAAV,IAAA,CAAA,IAAI,CAAQ,CAAA;AACd,SAAC,CAAA;AAED,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAW;YAC5B,sBAAA,CAAA,IAAI,EAAA,gCAAA,EAAe,EAAE,EAAA,GAAA,CAAA,CAAA;AACrB,YAAA,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAM,CAAV,IAAA,CAAA,IAAI,CAAQ,CAAA;AACd,SAAC,CAAA;AAED,QAAA,IAAM,CAAA,MAAA,GAAG,MAAW;YAClB,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,KAAK,EAAA,GAAA,CAAA,CAAA;AACvB,SAAC,CAAA;AAED,QAAA,IAAO,CAAA,OAAA,GAAG,MAAW;YACnB,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,IAAI,EAAA,GAAA,CAAA,CAAA;AACtB,SAAC,CAAA;QAED,IAAA,CAAA,wBAAwB,GAAG,CAAC,QAAe,EAAE,MAAyB,KAAU;AAC9E,YAAA,sBAAA,CAAA,IAAI,kCAAa,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAA,CAAA;AACrC,SAAC,CAAA;AAED,QAAA,IAA0B,CAAA,0BAAA,GAAG,MAAW;YACtC,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAa,IAAI,EAAA,GAAA,CAAA,CAAA;AACvB,SAAC,CAAA;KACF;AArDC,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,sBAAA,CAAA,IAAI,EAAA,gCAAA,EAAA,GAAA,CAAY,CAAA;KACxB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAa,CAAA;KACzB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,CAAA;KACrB;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,CAAU,CAAA;KACtB;;;iHApBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHAApB,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;MCDE,sBAAsB,CAAA;IACjC,IAAa,aAAa,CAAC,UAAkB,EAAA;;QAE3C,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC1D,OAAM;AACP,SAAA;AACD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAA;AAC1D,QAAA,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC3D,SAAA;KACF;AAED,IAAA,WAAA,CAAoB,WAA6B,EAAU,gBAAkC,EAAU,oBAA0C,EAAA;AAA7H,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAAU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAAU,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;KAAI;;mHAb1I,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;mBAAC,EAAC,QAAQ,EAAE,iBAAiB,EAAC,CAAA;iKAEzB,aAAa,EAAA,CAAA;sBAAzB,KAAK;;;;MCAK,kBAAkB,CAAA;IAC7B,WAAmB,CAAA,MAAc,EAAU,oBAA0C,EAAA;AAAlE,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAAU,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAErF,+BAAA,CAAA,GAAA,CAAA,IAAA,EAAe,CAAC,cAAsC,EAAE,KAA0B,KAAgC;AAChH,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC1B,MAAM,EAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC,oBAAoB,CAAA;AACvE,YAAA,IAAI,SAAS;AAAE,gBAAA,OAAO,IAAI,CAAA;YAE1B,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AACvD,YAAA,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,aAAa,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAA;AAEzD,YAAA,IAAI,YAAY;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;AAClF,YAAA,OAAO,KAAK,CAAA;AACd,SAAC,CAAA,CAAA;KAZwF;IAczF,WAAW,CAAC,cAAsC,EAAE,KAA0B,EAAA;AAC5E,QAAA,OAAO,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,cAAc,EAAE,KAAK,CAAC,CAAA;KAChD;IAED,gBAAgB,CAAC,cAAsC,EAAE,KAA0B,EAAA;AACjF,QAAA,OAAO,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,cAAc,EAAE,KAAK,CAAC,CAAA;KAChD;;;+GArBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;MCME,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAE3B,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAErB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHnB,SAAA,EAAA,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,EAAA,CAAA,CAAA;2FAG1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;oBACrD,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBAClC,CAAA;;;ACTD;;AAEG;;;;"}