@fivethree/core
Version:
Fivethree Core Components
97 lines • 5.74 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/permissions/permissions.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, ViewContainerRef, TemplateRef } from '@angular/core';
export class FivPermissions {
/**
* @param {?} viewContainer
* @param {?} templateRef
*/
constructor(viewContainer, templateRef) {
this.viewContainer = viewContainer;
this.templateRef = templateRef;
this.allowedPermissions = [];
this.uPermissions = [];
}
/**
* @param {?} userPermissions
* @return {?}
*/
set fivPermissionsUserPermissions(userPermissions) {
this.uPermissions = userPermissions || [];
this.updateView();
}
/**
* @param {?} allowed
* @return {?}
*/
set fivPermissions(allowed) {
this.allowedPermissions = allowed || [];
this.updateView();
}
/**
* @return {?}
*/
checkPermission() {
/** @type {?} */
let show = false;
this.uPermissions.forEach((/**
* @param {?} role
* @return {?}
*/
role => {
if (this.allowedPermissions.find((/**
* @param {?} a
* @return {?}
*/
a => a.toUpperCase() === role.toUpperCase()))) {
show = true;
}
}));
return show;
}
/**
* @return {?}
*/
updateView() {
if (this.checkPermission()) {
this.viewContainer.createEmbeddedView(this.templateRef);
}
else {
this.viewContainer.clear();
}
}
}
FivPermissions.decorators = [
{ type: Directive, args: [{
selector: '[fivPermissions]'
},] }
];
/** @nocollapse */
FivPermissions.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: TemplateRef }
];
FivPermissions.propDecorators = {
fivPermissionsUserPermissions: [{ type: Input }],
fivPermissions: [{ type: Input }]
};
if (false) {
/** @type {?} */
FivPermissions.prototype.allowedPermissions;
/** @type {?} */
FivPermissions.prototype.uPermissions;
/**
* @type {?}
* @private
*/
FivPermissions.prototype.viewContainer;
/**
* @type {?}
* @private
*/
FivPermissions.prototype.templateRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpdmV0aHJlZS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtoRixNQUFNLE9BQU8sY0FBYzs7Ozs7SUFJekIsWUFDVSxhQUErQixFQUMvQixXQUE2QjtRQUQ3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBTHZDLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUNsQyxpQkFBWSxHQUFhLEVBQUUsQ0FBQztJQUt6QixDQUFDOzs7OztJQUVKLElBQWEsNkJBQTZCLENBQUMsZUFBeUI7UUFDbEUsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLElBQUksRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7OztJQUVELElBQ0ksY0FBYyxDQUFDLE9BQWlCO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsZUFBZTs7WUFDVCxJQUFJLEdBQUcsS0FBSztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJOzs7O1lBQzFCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDNUMsRUFDRDtnQkFDQSxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7OztZQTVDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjthQUM3Qjs7OztZQUowQixnQkFBZ0I7WUFBRSxXQUFXOzs7NENBY3JELEtBQUs7NkJBS0wsS0FBSzs7OztJQWJOLDRDQUFrQzs7SUFDbEMsc0NBQTRCOzs7OztJQUcxQix1Q0FBdUM7Ozs7O0lBQ3ZDLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmaXZQZXJtaXNzaW9uc10nXG59KVxuZXhwb3J0IGNsYXNzIEZpdlBlcm1pc3Npb25zIHtcbiAgYWxsb3dlZFBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICB1UGVybWlzc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbiAgKSB7fVxuXG4gIEBJbnB1dCgpIHNldCBmaXZQZXJtaXNzaW9uc1VzZXJQZXJtaXNzaW9ucyh1c2VyUGVybWlzc2lvbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy51UGVybWlzc2lvbnMgPSB1c2VyUGVybWlzc2lvbnMgfHwgW107XG4gICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZml2UGVybWlzc2lvbnMoYWxsb3dlZDogc3RyaW5nW10pIHtcbiAgICB0aGlzLmFsbG93ZWRQZXJtaXNzaW9ucyA9IGFsbG93ZWQgfHwgW107XG4gICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gIH1cblxuICBjaGVja1Blcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3cgPSBmYWxzZTtcbiAgICB0aGlzLnVQZXJtaXNzaW9ucy5mb3JFYWNoKHJvbGUgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFsbG93ZWRQZXJtaXNzaW9ucy5maW5kKFxuICAgICAgICAgIGEgPT4gYS50b1VwcGVyQ2FzZSgpID09PSByb2xlLnRvVXBwZXJDYXNlKClcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNob3cgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNob3c7XG4gIH1cblxuICB1cGRhdGVWaWV3KCkge1xuICAgIGlmICh0aGlzLmNoZWNrUGVybWlzc2lvbigpKSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==