@ema/js-base-library
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
191 lines • 12.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Util } from '../utils/util';
import { HttpService } from '../http/http-service';
/** @type {?} */
var singleton = Symbol();
/** @type {?} */
var singletonEnforcer = Symbol();
var PermissionsService = /** @class */ (function () {
function PermissionsService(enforcer) {
this._roles = {
ANONYMOUS: [{ actions: 'read', subject: 'all' }]
};
if (enforcer !== singletonEnforcer) {
throw new Error('Cannot construct singleton');
}
this._type = 'PermissionsService';
this._http = HttpService.instance;
this._rules = this._roles.ANONYMOUS;
}
Object.defineProperty(PermissionsService, "instance", {
get: /**
* @return {?}
*/
function () {
if (!this[singleton]) {
this[singleton] = new PermissionsService(singletonEnforcer);
}
return this[singleton];
},
enumerable: true,
configurable: true
});
/**
* @param {?} url
* @param {?=} replace
* @param {?=} pluck
* @return {?}
*/
PermissionsService.prototype.loadRules = /**
* @param {?} url
* @param {?=} replace
* @param {?=} pluck
* @return {?}
*/
function (url, replace, pluck) {
if (replace === void 0) { replace = true; }
if (pluck === void 0) { pluck = undefined; }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var data;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._http.get(url)];
case 1:
data = _a.sent();
if (pluck) {
data = data[pluck];
}
this.addRules(data, replace);
return [2 /*return*/];
}
});
});
};
/**
* @param {?} rules
* @param {?=} replace
* @return {?}
*/
PermissionsService.prototype.addRules = /**
* @param {?} rules
* @param {?=} replace
* @return {?}
*/
function (rules, replace) {
if (replace === void 0) { replace = false; }
if (!replace) {
this.rules = tslib_1.__spread(this.rules, rules);
}
else {
this.rules = rules;
}
if (Util.isBrowser()) {
dispatchEvent(new CustomEvent('permissionsRulesChange', { detail: { rules: this.rules } }));
}
// this.registerPermissionComponents();
};
/**
* @param {?=} componentElements
* @return {?}
*/
PermissionsService.prototype.registerPermissionComponents = /**
* @param {?=} componentElements
* @return {?}
*/
function (componentElements) {
var _this = this;
/** @type {?} */
var components = componentElements || Array.from(document.getElementsByTagName('ema-permission'));
components.forEach((/**
* @param {?} comp
* @return {?}
*/
function (comp) {
comp['setPermissionService'](_this);
// comp['setRules'](this.rules);
}));
};
Object.defineProperty(PermissionsService.prototype, "rules", {
get: /**
* @return {?}
*/
function () {
return this._rules;
},
set: /**
* @param {?} rules
* @return {?}
*/
function (rules) {
this._rules = rules;
if (Util.isBrowser()) {
dispatchEvent(new CustomEvent('permissionsRulesChange', { detail: { rules: this._rules } }));
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(PermissionsService.prototype, "roles", {
get: /**
* @return {?}
*/
function () {
return this._roles;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PermissionsService.prototype, "user", {
get: /**
* @return {?}
*/
function () {
return this._user;
},
set: /**
* @param {?} user
* @return {?}
*/
function (user) {
this._user = user;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PermissionsService.prototype, "type", {
get: /**
* @return {?}
*/
function () {
return this._type;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._type = value;
},
enumerable: true,
configurable: true
});
return PermissionsService;
}());
export { PermissionsService };
if (false) {
/** @type {?} */
PermissionsService.prototype._type;
/** @type {?} */
PermissionsService.prototype._roles;
/** @type {?} */
PermissionsService.prototype._rules;
/** @type {?} */
PermissionsService.prototype._user;
/** @type {?} */
PermissionsService.prototype._http;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlbWEvanMtYmFzZS1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7SUFFN0MsU0FBUyxHQUFHLE1BQU0sRUFBRTs7SUFDcEIsaUJBQWlCLEdBQUcsTUFBTSxFQUFFO0FBRWxDO0lBVUksNEJBQVksUUFBUTtRQVBwQixXQUFNLEdBQUc7WUFDTCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ25ELENBQUM7UUFNRSxJQUFJLFFBQVEsS0FBSyxpQkFBaUIsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBVyw4QkFBUTs7OztRQUFuQjtZQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDL0Q7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixDQUFDOzs7T0FBQTs7Ozs7OztJQUVLLHNDQUFTOzs7Ozs7SUFBZixVQUFnQixHQUFXLEVBQUUsT0FBYyxFQUFFLEtBQXlCO1FBQXpDLHdCQUFBLEVBQUEsY0FBYztRQUFFLHNCQUFBLEVBQUEsaUJBQXlCOzs7Ozs0QkFDdkQscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUE7O3dCQUFoQyxJQUFJLEdBQUcsU0FBeUI7d0JBQ3BDLElBQUcsS0FBSyxFQUFFOzRCQUNOLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7eUJBQ3JCO3dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDOzs7OztLQUNoQzs7Ozs7O0lBRUQscUNBQVE7Ozs7O0lBQVIsVUFBUyxLQUFZLEVBQUUsT0FBZTtRQUFmLHdCQUFBLEVBQUEsZUFBZTtRQUNsQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssb0JBQU8sSUFBSSxDQUFDLEtBQUssRUFBSyxLQUFLLENBQUMsQ0FBQTtTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNsQixhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsd0JBQXdCLEVBQUMsRUFBQyxNQUFNLEVBQUMsRUFBQyxLQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3hGO1FBQ0QsdUNBQXVDO0lBQzNDLENBQUM7Ozs7O0lBRUQseURBQTRCOzs7O0lBQTVCLFVBQTZCLGlCQUFrQjtRQUEvQyxpQkFNQzs7WUFMTyxVQUFVLEdBQUcsaUJBQWlCLElBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRyxVQUFVLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsSUFBSTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQztZQUNuQyxnQ0FBZ0M7UUFDcEMsQ0FBQyxFQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsc0JBQUkscUNBQUs7Ozs7UUFBVDtZQUNJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7OztRQWNELFVBQVUsS0FBWTtZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakIsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLHdCQUF3QixFQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUN6RjtRQUNMLENBQUM7OztPQW5CQTtJQUVELHNCQUFJLHFDQUFLOzs7O1FBQVQ7WUFDSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxvQ0FBSTs7OztRQUFSO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7Ozs7O1FBRUQsVUFBUyxJQUFVO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQzs7O09BSkE7SUFhRCxzQkFBSSxvQ0FBSTs7OztRQUFSO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7Ozs7O1FBRUQsVUFBUyxLQUFLO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzs7O09BSkE7SUFNTCx5QkFBQztBQUFELENBQUMsQUFyRkQsSUFxRkM7Ozs7SUFuRkcsbUNBQWM7O0lBQ2Qsb0NBRUU7O0lBQ0Ysb0NBQWM7O0lBQ2QsbUNBQVk7O0lBQ1osbUNBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXJzL3VzZXInO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9odHRwL2h0dHAtc2VydmljZSc7XG5cbmNvbnN0IHNpbmdsZXRvbiA9IFN5bWJvbCgpO1xuY29uc3Qgc2luZ2xldG9uRW5mb3JjZXIgPSBTeW1ib2woKTtcblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zU2VydmljZSB7XG5cbiAgICBfdHlwZTogc3RyaW5nO1xuICAgIF9yb2xlcyA9IHtcbiAgICAgICAgQU5PTllNT1VTOiBbeyBhY3Rpb25zOiAncmVhZCcsIHN1YmplY3Q6ICdhbGwnIH1dXG4gICAgfTtcbiAgICBfcnVsZXM6IGFueVtdO1xuICAgIF91c2VyOiBVc2VyO1xuICAgIF9odHRwOiBIdHRwU2VydmljZTtcblxuICAgIGNvbnN0cnVjdG9yKGVuZm9yY2VyKSB7XG4gICAgICAgIGlmIChlbmZvcmNlciAhPT0gc2luZ2xldG9uRW5mb3JjZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbnN0cnVjdCBzaW5nbGV0b24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90eXBlID0gJ1Blcm1pc3Npb25zU2VydmljZSc7XG4gICAgICAgIHRoaXMuX2h0dHAgPSBIdHRwU2VydmljZS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSB0aGlzLl9yb2xlcy5BTk9OWU1PVVM7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBpbnN0YW5jZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzW3NpbmdsZXRvbl0pIHtcbiAgICAgICAgICAgIHRoaXNbc2luZ2xldG9uXSA9IG5ldyBQZXJtaXNzaW9uc1NlcnZpY2Uoc2luZ2xldG9uRW5mb3JjZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzW3NpbmdsZXRvbl07XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZFJ1bGVzKHVybDogc3RyaW5nLCByZXBsYWNlID0gdHJ1ZSwgcGx1Y2s6IHN0cmluZyA9IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuX2h0dHAuZ2V0KHVybCk7XG4gICAgICAgIGlmKHBsdWNrKSB7XG4gICAgICAgICAgICBkYXRhID0gZGF0YVtwbHVja11cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZFJ1bGVzKGRhdGEsIHJlcGxhY2UpO1xuICAgIH1cblxuICAgIGFkZFJ1bGVzKHJ1bGVzOiBhbnlbXSwgcmVwbGFjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghcmVwbGFjZSkge1xuICAgICAgICAgICAgdGhpcy5ydWxlcyA9IFsuLi50aGlzLnJ1bGVzLCAuLi5ydWxlc11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Blcm1pc3Npb25zUnVsZXNDaGFuZ2UnLHtkZXRhaWw6e3J1bGVzOnRoaXMucnVsZXMgfX0pKVxuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMucmVnaXN0ZXJQZXJtaXNzaW9uQ29tcG9uZW50cygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyUGVybWlzc2lvbkNvbXBvbmVudHMoY29tcG9uZW50RWxlbWVudHM/KSB7XG4gICAgICAgIGxldCBjb21wb25lbnRzID0gY29tcG9uZW50RWxlbWVudHMgfHwgIEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2VtYS1wZXJtaXNzaW9uJykpO1xuICAgICAgICBjb21wb25lbnRzLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgICAgICAgIGNvbXBbJ3NldFBlcm1pc3Npb25TZXJ2aWNlJ10odGhpcyk7XG4gICAgICAgICAgICAvLyBjb21wWydzZXRSdWxlcyddKHRoaXMucnVsZXMpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGdldCBydWxlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzO1xuICAgIH1cblxuICAgIGdldCByb2xlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvbGVzO1xuICAgIH1cblxuICAgIGdldCB1c2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcjtcbiAgICB9XG5cbiAgICBzZXQgdXNlcih1c2VyOiBVc2VyKSB7XG4gICAgICAgIHRoaXMuX3VzZXIgPSB1c2VyO1xuICAgIH1cblxuICAgIHNldCBydWxlcyhydWxlczogYW55W10pIHtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICAgICAgaWYoVXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Blcm1pc3Npb25zUnVsZXNDaGFuZ2UnLHtkZXRhaWw6e3J1bGVzOnRoaXMuX3J1bGVzIH19KSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBzZXQgdHlwZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgfVxuXG59XG4iXX0=