UNPKG

@casl/angular

Version:

Angular module for CASL which makes it easy to add permissions in any Angular app

128 lines (123 loc) 5.54 kB
import * as i0 from '@angular/core'; import { Pipe, Inject, Injectable, signal, inject } from '@angular/core'; import { PureAbility } from '@casl/ability'; import { Observable } from 'rxjs'; import { __spreadArray } from 'tslib'; /** * @deprecated use AbilityService instead */ var AblePipe = /** @class */ (function () { function AblePipe(ability) { this._ability = ability; } AblePipe.prototype.transform = function () { var _a; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return (_a = this._ability).can.apply(_a, args); }; AblePipe.ɵfac = function AblePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AblePipe)(i0.ɵɵdirectiveInject(PureAbility, 16)); }; AblePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "able", type: AblePipe, pure: false }); return AblePipe; }()); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AblePipe, [{ type: Pipe, args: [{ name: 'able', pure: false, standalone: true }] }], function () { return [{ type: undefined, decorators: [{ type: Inject, args: [PureAbility] }] }]; }, null); })(); /** * @deprecated use AbilityService instead */ var AblePurePipe = /** @class */ (function () { function AblePurePipe(ability) { this._ability = ability; } AblePurePipe.prototype.transform = function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return new Observable(function (s) { var emit = function () { var _a; return s.next((_a = _this._ability).can.apply(_a, args)); }; emit(); return _this._ability.on('updated', emit); }); }; AblePurePipe.ɵfac = function AblePurePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AblePurePipe)(i0.ɵɵdirectiveInject(PureAbility, 16)); }; AblePurePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ablePure", type: AblePurePipe, pure: true }); return AblePurePipe; }()); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AblePurePipe, [{ type: Pipe, args: [{ name: 'ablePure', standalone: true }] }], function () { return [{ type: undefined, decorators: [{ type: Inject, args: [PureAbility] }] }]; }, null); })(); var AbilityService = /** @class */ (function () { function AbilityService(ability) { this.ability$ = new Observable(function (observer) { observer.next(ability); return ability.on('updated', function () { return observer.next(ability); }); }); } AbilityService.ɵfac = function AbilityService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AbilityService)(i0.ɵɵinject(PureAbility)); }; AbilityService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AbilityService, factory: AbilityService.ɵfac, providedIn: 'root' }); return AbilityService; }()); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbilityService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], function () { return [{ type: undefined, decorators: [{ type: Inject, args: [PureAbility] }] }]; }, null); })(); var AbilityServiceSignal = /** @class */ (function () { function AbilityServiceSignal() { var _this = this; this._rules = signal.apply(void 0, __spreadArray([[]], (ngDevMode ? [{ debugName: "_rules" }] : []), false)); this._ability = inject(PureAbility); this.can = function () { var _a; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } _this._rules(); // generate side effect for angular to track changes in this signal return (_a = _this._ability).can.apply(_a, args); }; this.cannot = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return !_this.can.apply(_this, args); }; this._disposeAbilitySubscription = this._ability.on('updated', function (event) { _this._rules.set(event.rules); }); } AbilityServiceSignal.prototype.ngOnDestroy = function () { this._disposeAbilitySubscription(); }; AbilityServiceSignal.prototype.update = function (rules) { this._ability.update(rules); }; AbilityServiceSignal.ɵfac = function AbilityServiceSignal_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AbilityServiceSignal)(); }; AbilityServiceSignal.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AbilityServiceSignal, factory: AbilityServiceSignal.ɵfac, providedIn: 'root' }); return AbilityServiceSignal; }()); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbilityServiceSignal, [{ type: Injectable, args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); export { AbilityService, AbilityServiceSignal, AblePipe, AblePurePipe }; //# sourceMappingURL=index.js.map