mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
13 KiB
2 lines
13 KiB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ngxs/store"),require("@ng-bootstrap/ng-bootstrap"),require("rxjs"),require("rxjs/operators"),require("ngx-perfect-scrollbar")):"function"==typeof define&&define.amd?define("@abp/ng.permission-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ngxs/store","@ng-bootstrap/ng-bootstrap","rxjs","rxjs/operators","ngx-perfect-scrollbar"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["permission-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.store,e.ngBootstrap,e.rxjs,e.rxjs.operators,e.ngxPerfectScrollbar)}(this,function(e,n,t,i,s,r,o,a,c){"use strict";var l=function(){return(l=Object.assign||function(e){for(var n,t=1,i=arguments.length;t<i;t++)for(var s in n=arguments[t])Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s]);return e}).apply(this,arguments)};function p(e,n,t,i){var s,r=arguments.length,o=r<3?n:null===i?i=Object.getOwnPropertyDescriptor(n,t):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,n,t,i);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(r<3?s(o):r>3?s(n,t,o):s(n,t))||o);return r>3&&o&&Object.defineProperty(n,t,o),o}function u(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function m(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var i,s,r=t.call(e),o=[];try{for(;(void 0===n||n-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(e){s={error:e}}finally{try{i&&!i.done&&(t=r.return)&&t.call(r)}finally{if(s)throw s.error}}return o}function d(){for(var e=[],n=0;n<arguments.length;n++)e=e.concat(m(arguments[n]));return e}var b=function(){function e(e){this.payload=e}return e.type="[PermissionManagement] Get Permissions",e}(),f=function(){function e(e){this.payload=e}return e.type="[PermissionManagement] Update Permissions",e}(),h=function(){function e(e){this.rest=e}return e.prototype.getPermissions=function(e){var n={method:"GET",url:"/api/abp/permissions",params:e};return this.rest.request(n)},e.prototype.updatePermissions=function(e){var n={method:"PUT",url:"/api/abp/permissions",body:{permissions:e.permissions},params:{providerKey:e.providerKey,providerName:e.providerName}};return this.rest.request(n)},e.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:n.RestService}]},e.ngInjectableDef=i.ɵɵdefineInjectable({factory:function(){return new e(i.ɵɵinject(n.RestService))},token:e,providedIn:"root"}),e}(),g=function(){function e(e){this.permissionManagementService=e}return e.getPermissionGroups=function(e){return e.permissionRes.groups||[]},e.getEntitiyDisplayName=function(e){return e.permissionRes.entityDisplayName},e.prototype.permissionManagementGet=function(e,n){var t=e.patchState,i=n.payload;return this.permissionManagementService.getPermissions(i).pipe(a.tap(function(e){return t({permissionRes:e})}))},e.prototype.permissionManagementUpdate=function(e,n){var t=n.payload;return this.permissionManagementService.updatePermissions(t)},p([s.Action(b),u("design:type",Function),u("design:paramtypes",[Object,b]),u("design:returntype",void 0)],e.prototype,"permissionManagementGet",null),p([s.Action(f),u("design:type",Function),u("design:paramtypes",[Object,f]),u("design:returntype",void 0)],e.prototype,"permissionManagementUpdate",null),p([s.Selector(),u("design:type",Function),u("design:paramtypes",[Object]),u("design:returntype",void 0)],e,"getPermissionGroups",null),p([s.Selector(),u("design:type",Function),u("design:paramtypes",[Object]),u("design:returntype",String)],e,"getEntitiyDisplayName",null),e=p([s.State({name:"PermissionManagementState",defaults:{permissionRes:{}}}),u("design:paramtypes",[h])],e)}(),y=function(){function e(e,n,t){this.modalService=e,this.store=n,this.renderer=t,this.visibleChange=new i.EventEmitter,this.permissions=[],this.selectThisTab=!1,this.selectAllTab=!1,this.trackByFn=function(e,n){return n.name}}return Object.defineProperty(e.prototype,"selectedGroupPermissions$",{get:function(){var e=this;return this.groups$.pipe(a.map(function(n){return e.selectedGroup?n.find(function(n){return n.name===e.selectedGroup.name}).permissions:[]}),a.map(function(n){return n.map(function(t){return l({},t,{margin:v(n,t),isGranted:e.permissions.find(function(e){return e.name===t.name}).isGranted})})}))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.getChecked=function(e){return(this.permissions.find(function(n){return n.name===e})||{isGranted:!1}).isGranted},e.prototype.onClickCheckbox=function(e,n){var t=this;setTimeout(function(){t.permissions=t.permissions.map(function(n){return e.name===n.name?l({},n,{isGranted:!n.isGranted}):e.name===n.parentName&&e.isGranted?l({},n,{isGranted:!1}):e.parentName!==n.name||e.isGranted?n:l({},n,{isGranted:!0})}),t.setTabCheckboxState(),t.setGrantCheckboxState()},0)},e.prototype.setTabCheckboxState=function(){var e=this;this.selectedGroupPermissions$.pipe(a.take(1)).subscribe(function(n){var t=n.filter(function(e){return e.isGranted}),i=document.querySelector("#select-all-in-this-tabs");t.length===n.length?(i.indeterminate=!1,e.selectThisTab=!0):0===t.length?(i.indeterminate=!1,e.selectThisTab=!1):i.indeterminate=!0})},e.prototype.setGrantCheckboxState=function(){var e=this.permissions.filter(function(e){return e.isGranted}),n=document.querySelector("#select-all-in-all-tabs");e.length===this.permissions.length?(n.indeterminate=!1,this.selectAllTab=!0):0===e.length?(n.indeterminate=!1,this.selectAllTab=!1):n.indeterminate=!0},e.prototype.onClickSelectThisTab=function(){var e=this;this.selectedGroupPermissions$.pipe(a.take(1)).subscribe(function(n){n.forEach(function(n){var t=e.permissions.findIndex(function(e){return e.name===n.name});e.permissions=d(e.permissions.slice(0,t),[l({},e.permissions[t],{isGranted:!e.selectThisTab})],e.permissions.slice(t+1))})}),this.setGrantCheckboxState()},e.prototype.onClickSelectAll=function(){var e=this;this.permissions=this.permissions.map(function(n){return l({},n,{isGranted:!e.selectAllTab})}),this.selectThisTab=!this.selectAllTab},e.prototype.onChangeGroup=function(e){this.selectedGroup=e,this.setTabCheckboxState()},e.prototype.onSubmit=function(){var e=this,n=k(this.store.selectSnapshot(g.getPermissionGroups)),t=this.permissions.filter(function(e){return n.find(function(n){return n.name===e.name}).isGranted!==e.isGranted}).map(function(e){return{name:e.name,isGranted:e.isGranted}});t.length?this.store.dispatch(new f({providerKey:this.providerKey,providerName:this.providerName,permissions:t})).subscribe(function(){return e.modalRef.close()}):this.modalRef.close()},e.prototype.openModal=function(){var e=this;if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.store.dispatch(new b({providerKey:this.providerKey,providerName:this.providerName})).pipe(a.pluck("PermissionManagementState","permissionRes")).subscribe(function(n){e.selectedGroup=n.groups[0],e.permissions=k(n.groups),e.modalRef=e.modalService.open(e.modalContent,{size:"lg"}),e.visibleChange.emit(!0),setTimeout(function(){e.setTabCheckboxState(),e.setGrantCheckboxState()},0),o.from(e.modalRef.result).pipe(a.take(1)).subscribe(function(n){e.setVisible(!1)},function(n){e.setVisible(!1)})})},e.prototype.setVisible=function(e){this.visible=e,this.visibleChange.emit(e)},e.prototype.ngOnChanges=function(e){var n=e.visible;n&&(n.currentValue?this.openModal():!1===n.currentValue&&this.modalService.hasOpenModals()&&this.modalRef.close())},e.decorators=[{type:i.Component,args:[{selector:"abp-permission-management",template:'<ng-template #modalContent let-modal>\n <ng-container *ngIf="{ entityName: entityName$ | async } as data">\n <div class="modal-header">\n <h4 class="modal-title" id="modal-basic-title">\n {{ \'AbpPermissionManagement::Permissions\' | abpLocalization }} -\n {{ data.entityName }}\n </h4>\n <button type="button" class="close" aria-label="Close" (click)="modal.dismiss()">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body">\n <div class="custom-checkbox custom-control mb-2">\n <input\n type="checkbox"\n id="select-all-in-all-tabs"\n name="select-all-in-all-tabs"\n class="custom-control-input"\n [(ngModel)]="selectAllTab"\n (click)="onClickSelectAll()"\n />\n <label class="custom-control-label" for="select-all-in-all-tabs">{{\n \'AbpPermissionManagement::SelectAllInAllTabs\' | abpLocalization\n }}</label>\n </div>\n\n <hr class="mt-2 mb-2" />\n <div class="row">\n <div class="col-4">\n <ul class="nav nav-pills flex-column">\n <perfect-scrollbar class="ps-show-always" style="max-height: 70vh;">\n <li *ngFor="let group of groups$ | async; trackBy: trackByFn" class="nav-item">\n <a class="nav-link" [class.active]="selectedGroup.name === group.name" (click)="onChangeGroup(group)">{{\n group.displayName\n }}</a>\n </li>\n </perfect-scrollbar>\n </ul>\n </div>\n <div class="col-8">\n <h4>{{ selectedGroup.displayName }}</h4>\n <hr class="mt-2 mb-3" />\n <div class="pl-1 pt-1">\n <div class="custom-checkbox custom-control mb-2">\n <input\n type="checkbox"\n id="select-all-in-this-tabs"\n name="select-all-in-this-tabs"\n class="custom-control-input"\n [(ngModel)]="selectThisTab"\n (click)="onClickSelectThisTab()"\n />\n <label class="custom-control-label" for="select-all-in-this-tabs">{{\n \'AbpPermissionManagement::SelectAllInThisTab\' | abpLocalization\n }}</label>\n </div>\n <hr class="mb-3" />\n <perfect-scrollbar class="ps-show-always" style="max-height: 60vh;">\n <div\n *ngFor="let permission of selectedGroupPermissions$ | async; let i = index; trackBy: trackByFn"\n [style.margin-left]="permission.margin + \'px\'"\n class="custom-checkbox custom-control mb-2"\n >\n <input\n #permissionCheckbox\n type="checkbox"\n [checked]="getChecked(permission.name)"\n [value]="getChecked(permission.name)"\n [attr.id]="permission.name"\n class="custom-control-input"\n />\n <label\n class="custom-control-label"\n [attr.for]="permission.name"\n (click)="onClickCheckbox(permission, permissionCheckbox.value)"\n >{{ permission.displayName }}</label\n >\n </div>\n </perfect-scrollbar>\n </div>\n </div>\n </div>\n </div>\n\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="modal.close()">\n {{ \'AbpIdentity::Cancel\' | abpLocalization }}\n </button>\n <button type="submit" class="btn btn-primary" (click)="onSubmit()">\n <i class="fa fa-check mr-1"></i> <span>{{ \'AbpIdentity::Save\' | abpLocalization }}</span>\n </button>\n </div>\n </ng-container>\n</ng-template>\n'}]}],e.ctorParameters=function(){return[{type:r.NgbModal},{type:s.Store},{type:i.Renderer2}]},e.propDecorators={providerName:[{type:i.Input}],providerKey:[{type:i.Input}],visible:[{type:i.Input}],visibleChange:[{type:i.Output}],modalContent:[{type:i.ViewChild,args:["modalContent",{static:!1}]}]},p([s.Select(g.getPermissionGroups),u("design:type",o.Observable)],e.prototype,"groups$",void 0),p([s.Select(g.getEntitiyDisplayName),u("design:type",o.Observable)],e.prototype,"entityName$",void 0),e}();function v(e,n){var t=e.find(function(e){return e.name===n.parentName});return t&&t.parentName?20+v(e,t):t?20:0}function k(e){return e.reduce(function(e,n){return d(e,n.permissions)},[])}var S,G=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{declarations:[y],imports:[n.CoreModule,t.ThemeSharedModule,s.NgxsModule.forFeature([g]),c.PerfectScrollbarModule],exports:[y]}]}],e}();!function(e){e.State=function(){},e.Response=function(){},e.Group=function(){},e.MinimumPermission=function(){},e.Permission=function(){},e.GrantedProvider=function(){},e.UpdateRequest=function(){}}(S||(S={})),e.PermissionManagementComponent=y,e.PermissionManagementGetPermissions=b,e.PermissionManagementModule=G,e.PermissionManagementService=h,e.PermissionManagementState=g,e.PermissionManagementUpdatePermissions=f,e.ɵa=y,e.ɵb=g,e.ɵc=h,e.ɵd=b,e.ɵe=f,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
//# sourceMappingURL=abp-ng.permission-management.umd.min.js.map
|