@firestitch/app-acl 12.2.0 → 12.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/acl-entries/acl-entries.component.d.ts +32 -32
- package/app/components/acl-entry/acl-entry.component.d.ts +31 -29
- package/app/components/acl-object-roles/acl-object-roles.component.d.ts +18 -18
- package/app/components/acl-permission-popover/acl-permission-popover.component.d.ts +12 -12
- package/app/components/acl-role/acl-role.component.d.ts +46 -46
- package/app/components/acl-role-popover/acl-role-popover.component.d.ts +13 -13
- package/app/components/acl-roles/acl-roles.component.d.ts +35 -35
- package/app/consts/acl-role-accesses.d.ts +5 -5
- package/app/enums/acl-role-access.d.ts +6 -6
- package/app/fs-app-acl.module.d.ts +31 -31
- package/app/injectors/app-acl-config.injector.d.ts +2 -2
- package/app/interfaces/acl-entry-data.d.ts +11 -11
- package/app/interfaces/acl-entry.d.ts +18 -18
- package/app/interfaces/acl-level.d.ts +3 -3
- package/app/interfaces/acl-object-entry.d.ts +11 -11
- package/app/interfaces/acl-object-role.d.ts +6 -6
- package/app/interfaces/acl-object.d.ts +4 -4
- package/app/interfaces/acl-permission.d.ts +7 -7
- package/app/interfaces/acl-role.d.ts +15 -15
- package/app/interfaces/app-acl-config.d.ts +7 -7
- package/app/interfaces/name-value.d.ts +4 -4
- package/app/services/app-acl.service.d.ts +16 -18
- package/bundles/firestitch-app-acl.umd.js +1130 -1158
- package/bundles/firestitch-app-acl.umd.js.map +1 -1
- package/esm2015/app/components/acl-entries/acl-entries.component.js +164 -166
- package/esm2015/app/components/acl-entry/acl-entry.component.js +90 -93
- package/esm2015/app/components/acl-object-roles/acl-object-roles.component.js +56 -56
- package/esm2015/app/components/acl-permission-popover/acl-permission-popover.component.js +32 -32
- package/esm2015/app/components/acl-role/acl-role.component.js +201 -202
- package/esm2015/app/components/acl-role-popover/acl-role-popover.component.js +37 -37
- package/esm2015/app/components/acl-roles/acl-roles.component.js +146 -146
- package/esm2015/app/consts/acl-role-accesses.js +7 -7
- package/esm2015/app/enums/acl-role-access.js +7 -7
- package/esm2015/app/fs-app-acl.module.js +123 -123
- package/esm2015/app/injectors/app-acl-config.injector.js +2 -2
- package/esm2015/app/interfaces/acl-entry-data.js +1 -1
- package/esm2015/app/interfaces/acl-entry.js +1 -1
- package/esm2015/app/interfaces/acl-level.js +1 -1
- package/esm2015/app/interfaces/acl-object-entry.js +1 -1
- package/esm2015/app/interfaces/acl-object-role.js +1 -1
- package/esm2015/app/interfaces/acl-object.js +1 -1
- package/esm2015/app/interfaces/acl-permission.js +1 -1
- package/esm2015/app/interfaces/acl-role.js +1 -1
- package/esm2015/app/interfaces/app-acl-config.js +1 -1
- package/esm2015/app/interfaces/name-value.js +1 -1
- package/esm2015/app/services/app-acl.service.js +55 -78
- package/esm2015/firestitch-app-acl.js +4 -4
- package/esm2015/public_api.js +10 -10
- package/fesm2015/firestitch-app-acl.js +770 -797
- package/fesm2015/firestitch-app-acl.js.map +1 -1
- package/firestitch-app-acl.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-app-acl.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/enums/acl-role-access.ts","../../src/app/consts/acl-role-accesses.ts","../../src/app/injectors/app-acl-config.injector.ts","../../src/app/services/app-acl.service.ts","../../src/app/components/acl-role/acl-role.component.ts","../../src/app/components/acl-role/acl-role.component.html","../../src/app/components/acl-permission-popover/acl-permission-popover.component.ts","../../src/app/components/acl-permission-popover/acl-permission-popover.component.html","../../src/app/components/acl-roles/acl-roles.component.ts","../../src/app/components/acl-roles/acl-roles.component.html","../../src/app/components/acl-role-popover/acl-role-popover.component.ts","../../src/app/components/acl-role-popover/acl-role-popover.component.html","../../src/app/components/acl-object-roles/acl-object-roles.component.ts","../../src/app/components/acl-object-roles/acl-object-roles.component.html","../../src/app/components/acl-entry/acl-entry.component.ts","../../src/app/components/acl-entry/acl-entry.component.html","../../src/app/components/acl-entries/acl-entries.component.ts","../../src/app/components/acl-entries/acl-entries.component.html","../../src/app/fs-app-acl.module.ts","../../src/firestitch-app-acl.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export enum AclRoleAccess {\n None = 0,\n Read = 5,\n Write = 10,\n Full = 15,\n}\n","\nimport { AclRoleAccess } from '../enums/acl-role-access';\n\nexport const AclRoleAccesses = [\n { name: 'None', value: AclRoleAccess.None },\n { name: 'Read', value: AclRoleAccess.Read },\n { name: 'Write', value: AclRoleAccess.Write },\n { name: 'Full', value: AclRoleAccess.Full }\n];\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_ACL_CONFIG = new InjectionToken<any[]>('fs-app-acl-config');\n","import { Injectable, Inject } from '@angular/core';\n\nimport { list } from '@firestitch/common';\n\nimport { map } from 'rxjs/operators';\nimport { ReplaySubject } from 'rxjs';\n\nimport { isArray } from 'lodash-es';\n\n\nimport { FS_APP_ACL_CONFIG } from './../injectors/app-acl-config.injector';\nimport { AppAclConfig } from './../interfaces/app-acl-config';\nimport { AclPermission } from './../interfaces/acl-permission';\nimport { AclLevel } from './../interfaces/acl-level';\n\nimport * as _snakecaseKeys from 'snakecase-keys';\nimport * as _camelcaseKeys from 'camelcase-keys';\n\nconst snakecaseKeys = _snakecaseKeys;\nconst camelcaseKeys = _camelcaseKeys;\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsAppAclService {\n\n private _permissions$: ReplaySubject<AclPermission[]>;\n private _levels$: ReplaySubject<AclLevel[]>;\n\n constructor(\n @Inject(FS_APP_ACL_CONFIG) private _appAclConfig: AppAclConfig,\n ) { }\n\n public getPermissions() {\n\n if (!this._permissions$) {\n this._permissions$ = new ReplaySubject();\n\n this._appAclConfig.permissions\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((permissions) => {\n this._permissions$.next(permissions);\n this._permissions$.complete();\n });\n }\n\n return this._permissions$;\n }\n\n public getLevels() {\n\n if (!this._levels$) {\n this._levels$ = new ReplaySubject();\n\n this._appAclConfig.levels\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((levels) => {\n this._levels$.next(levels);\n this._levels$.complete();\n });\n }\n\n return this._levels$;\n }\n\n\n public getIndexedLevels() {\n return this.getLevels()\n .pipe(\n map((data) => {\n return list(data, 'name', 'value');\n })\n );\n }\n\n public input(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(data, { deep: true }) : data;\n }\n }\n\n public output(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(data, { deep: true }) : data;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { AclRoleAccesses } from './../../consts/acl-role-accesses';\nimport { AclRole } from './../../interfaces/acl-role';\nimport { map, takeUntil, tap } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { list } from '@firestitch/common';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n\n@Component({\n templateUrl: './acl-role.component.html',\n styleUrls: ['./acl-role.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRoleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent) public list: FsListComponent;\n\n public aclRole: AclRole = null;\n public environment;\n public permissions: any[] = [];\n public listConfig: FsListConfig;\n public levelPermissions = [];\n public AclRoleAccesses = AclRoleAccesses;\n public indexedAccesses = {};\n public aclLevels: any[] = [];\n public indexedAclLevels = {};\n public onlyFullAccess = false;\n public AclLevels = {};\n public aclRoleConfigs = [];\n public levelAclRoleConfigs = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n forkJoin(\n this.getRole(),\n this._appAclService.getPermissions(),\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(([\n aclRole,\n aclPermissions,\n ]) => {\n\n this.permissions = aclPermissions;\n this.aclLevels = this._data.aclLevels;\n\n this.indexedAclLevels = list(this.aclLevels, 'name', 'value');\n this.indexedAccesses = list(AclRoleAccesses, 'name', 'value');\n\n this.aclRole = {\n ...{\n aclPermissions: [],\n allPermissions: true,\n aclRoleConfigs: [],\n permissions: {},\n level: this.aclLevels[0].value,\n },\n ...aclRole,\n };\n\n if (this.aclRole.id) {\n this.permissions.forEach((permission) => {\n let access = 0;\n\n const aclPermission = this.aclRole.aclPermissions.find((item) => {\n return item.permission === permission.value;\n });\n\n if (aclPermission) {\n access = aclPermission.access;\n }\n\n this.aclRole.permissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateAclRoleConfigs();\n\n this._cdRef.markForCheck();\n });\n\n this.listConfig = {\n status: false,\n paging: false,\n noResults: {\n message: '',\n },\n group: {\n initialExpand: true,\n groupBy: (data) => {\n return data;\n },\n compareBy: (data) => {\n return data.category || 'General';\n },\n },\n fetch: () => {\n return of({\n data: this.levelPermissions.sort((a, b) => {\n a = a.name.toUpperCase();\n b = b.name.toUpperCase();\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n\n return 0;\n }),\n });\n },\n };\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateAclRoleConfigs();\n setTimeout(() => {\n this.list.reload();\n });\n }\n\n public getRole(): Observable<any> {\n if (!this._data.aclRole.id) {\n return of(this._data.aclRole);\n }\n\n const query: any = {\n aclPermissions: true,\n aclRoleConfigs: true,\n };\n\n if (!this.environment) {\n query.environmentId = null;\n }\n\n return this._data.loadAclRole(this._data.aclRole, query)\n .pipe(\n map((data) => this._appAclService.input(data)),\n );\n }\n\n public save = (): Observable<any> => {\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRole.permissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs: this.levelAclRoleConfigs.map((item) => {\n return {\n id: item.id,\n value: item.value,\n data: item.data,\n };\n }),\n };\n\n return this._data.saveAclRole(this._appAclService.output(aclRole))\n .pipe(\n tap((response) => {\n this._message.success('Saved Changes');\n this.close(response);\n }),\n );\n }\n\n public close(data: any = null): void {\n this._dialogRef.close(data);\n }\n\n public allPermissionsChange(all: boolean): void {\n this._updatePermissions();\n if (all) {\n this._applyMaxPermissionAccess();\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _updatePermissions(): void {\n this.levelPermissions = this.permissions.filter((permission) => {\n return permission.levels.some((item) => {\n return item === this.aclRole.level;\n });\n });\n }\n\n private _updateAclRoleConfigs(): void {\n this.levelAclRoleConfigs = this.aclRoleConfigs.filter((item) => {\n return this.aclRole.level === item.level;\n });\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRole.permissions[permission.value] = Math.max(...permission.accesses);\n });\n }\n\n}\n","<form fsForm [submit]=\"save\">\n <fs-dialog>\n <ng-container *ngIf=\"aclRole\">\n <div mat-dialog-title>{{ aclRole.id ? 'Edit' : 'Create' }} Role</div>\n <mat-dialog-content>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"40px\" fxLayoutGap.lt-md=\"0\">\n <div fxLayout=\"column\" fxFlex fxFlex.lt-md=\"0\">\n <mat-form-field>\n <input matInput placeholder=\"Name\" [(ngModel)]=\"aclRole.name\" name=\"name\" fsFormRequired>\n </mat-form-field>\n\n <fs-label-field *ngIf=\"aclRole.id || aclLevels.length === 1; else levels\">\n <fs-label>Level</fs-label>\n {{indexedAclLevels[aclRole.level]}}\n </fs-label-field>\n\n <ng-template #levels>\n <div class=\"level\">\n <fs-radio-group\n [(ngModel)]=\"aclRole.level\"\n (ngModelChange)=\"levelChange()\"\n fsFormRequired\n label=\"Level\"\n orientation=\"vertical\"\n name=\"level\">\n <mat-radio-button\n *ngFor=\"let item of aclLevels\"\n [value]=\"item.value\"\n [disabled]=\"!!aclRole.protected\">\n {{ item.name }}\n </mat-radio-button>\n </fs-radio-group>\n </div>\n </ng-template>\n\n <fs-label-field *ngIf=\"levelPermissions.length\">\n <fs-label>All Permissions</fs-label>\n <mat-checkbox\n [(ngModel)]=\"aclRole.allPermissions\"\n (ngModelChange)=\"allPermissionsChange($event)\"\n [disabled]=\"!!aclRole.protected\"\n name=\"allPermissions\">\n </mat-checkbox>\n </fs-label-field>\n\n <div fxLayout=\"column\" *ngFor=\"let config of levelAclRoleConfigs\">\n <fs-label-field *ngIf=\"config.interface === 'checkbox'\">\n <fs-label>{{config.name}}</fs-label>\n <mat-checkbox\n [(ngModel)]=\"config.data\"\n [name]=\"config.name\">\n </mat-checkbox>\n <fs-label-message>\n <mat-hint>{{config.description}}</mat-hint>\n </fs-label-message>\n </fs-label-field>\n\n <mat-form-field *ngIf=\"config.interface === 'select'\">\n <mat-select\n [(ngModel)]=\"config.data\"\n [name]=\"config.value\"\n [required]=\"config.required\"\n [placeholder]=\"config.name\">\n <mat-option\n *ngFor=\"let item of config.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n <mat-hint>{{config.description}}</mat-hint>\n </mat-form-field>\n </div>\n </div>\n\n <div fxLayout=\"column\" fxFlex=\"65\" fxFlex.lt-md=\"0\" *ngIf=\"aclRole.level\" [hidden]=\"!levelPermissions.length\" class=\"permissions\">\n\n <fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Permissions\">\n <ng-template colspan=\"2\" fs-list-group-cell let-row=\"row\" class=\"permission-group\">\n <small><b>{{row.category || 'General'}}</b></small>\n </ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"permission\">{{ row.name }}</div>\n <div class=\"description small\">{{ row.description }}</div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Access\" width=\"1%\" class=\"access\">\n <ng-template fs-list-cell let-row=\"permission\" let-permission=\"row\">\n <span *ngIf=\"aclRole.allPermissions; else elseAll\">\n {{ indexedAccesses[aclRole.permissions[permission.value]] }}\n </span>\n <ng-template #elseAll>\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"aclRole.permissions[permission.value]\"\n [disabled]=\"!!aclRole.protected\"\n fsFormRequired\n name=\"access-{{ permission.value }}\">\n <ng-container *ngFor=\"let access of AclRoleAccesses\">\n <mat-option\n *ngIf=\"access.value === 0 || permission.accesses.indexOf(access.value) !== -1\"\n [value]=\"access.value\">\n {{ access.name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </ng-template>\n </ng-template>\n </fs-list-column>\n </fs-list>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\">{{ aclRole.id ? 'Save' : 'Create' }}</button>\n <button mat-button [mat-dialog-close]=\"null\" type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </ng-container>\n </fs-dialog>\n</form>\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'acl-permission-popover',\n templateUrl: './acl-permission-popover.component.html',\n styleUrls: ['./acl-permission-popover.component.scss']\n})\nexport class FsAclPermissionPopoverComponent implements OnInit {\n\n @Input() permission;\n\n public description;\n\n public constructor(\n private _appAclService: FsAppAclService\n ) { }\n\n public ngOnInit() {\n this._appAclService.getPermissions()\n .subscribe(permissions => {\n this.description = permissions.filter(item => {\n return item.value === this.permission.value;\n }).map(item => {\n return item.description;\n })[0];\n });\n }\n}\n","\n<fs-popover [template]=\"popover\" maxWidth=\"400\">\n <ng-content></ng-content>\n</fs-popover>\n\n<ng-template #popover>\n {{permission.name}}\n <div class=\"small\">{{description}}</div>\n</ng-template>\n\n","import { takeUntil, filter, map } from 'rxjs/operators';\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, ViewChildren, QueryList } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { list } from '@firestitch/common';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { AclRole } from './../../interfaces/acl-role';\nimport { AclLevel } from './../../interfaces/acl-level';\nimport { FsAclRoleComponent } from '../acl-role/acl-role.component';\nimport { FsAppAclService } from '../../services/app-acl.service';\n\n@Component({\n selector: 'fs-acl-roles',\n templateUrl: 'acl-roles.component.html',\n styleUrls: [ 'acl-roles.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRolesComponent implements OnInit, OnDestroy {\n\n @Input() deleteAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() saveAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() loadAclRoles: (query: any) => Observable<{ data: AclRole[], paging: any }>;\n @Input() loadAclRole: (aclRole: AclRole, query) => Observable<AclRole>;\n @Input() aclLevels: AclLevel[] = [];\n\n @ViewChildren(FsListComponent)\n public list = new QueryList<FsListComponent>();\n\n public listConfig: FsListConfig;\n public permissions;\n public indexedAclRoleLevels: { [value: string]: string } = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private readonly _cdRef: ChangeDetectorRef,\n ) { }\n\n public ngOnInit(): void {\n\n new Observable(observer => {\n\n if (this.aclLevels.length) {\n observer.next(this.aclLevels);\n observer.complete();\n } else {\n\n this._appAclService.getLevels()\n .subscribe((aclLevels: AclLevel[]) => {\n observer.next(aclLevels);\n observer.complete();\n });\n }\n })\n .subscribe((aclLevels: AclLevel[]) => {\n this.aclLevels = aclLevels;\n this.indexedAclRoleLevels = list(this.aclLevels, 'name', 'value');\n this._loadListConfig();\n });\n }\n\n public openDialog(aclRole: AclRole = { id: null }): void {\n\n const dialogRef = this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n filter((response) => !!response),\n )\n .subscribe((response) => {\n this.list.forEach((list: FsListComponent) => {\n list.reload();\n });\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _loadListConfig() {\n this.listConfig = {\n sort: { value: 'hierarchy' },\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'level',\n label: 'Level',\n type: ItemType.Select,\n values: this.aclLevels,\n hide: this.aclLevels.length <= 1\n },\n {\n name: 'state',\n label: 'Show Deleted',\n type: ItemType.Checkbox,\n unchecked: 'active',\n checked: 'deleted',\n },\n ],\n actions: [\n {\n click: (event) => {\n this.openDialog();\n },\n label: 'Create',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this.deleteAclRole(this._appAclService.output(data));\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this role?',\n },\n menu: true,\n label: 'Delete',\n show: (row) => row.state !== 'deleted',\n },\n ],\n fetch: (query) => {\n query.permissions = true;\n return this.loadAclRoles(query)\n .pipe(\n map((data) => this._appAclService.input(data))\n );\n },\n };\n }\n\n}\n","<fs-list [config]=\"listConfig\" *ngIf=\"listConfig\">\n <fs-list-column title=\"Name\" name=\"name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openDialog(row)\">{{ row.name }}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"hierarchy\" title=\"Level\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ indexedAclRoleLevels[row.level] }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Permissions\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"permissions\">\n <ng-container *ngFor=\"let permission of row.permissions\">\n <span *ngIf=\"permission.access\" class=\"permission\">\n <acl-permission-popover [permission]=\"permission\">{{permission.name}}</acl-permission-popover>\n </span>\n </ng-container>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'fs-acl-role-popover',\n templateUrl: './acl-role-popover.component.html',\n styleUrls: ['./acl-role-popover.component.scss']\n})\nexport class FsAclRolePopoverComponent implements OnInit {\n\n @Input() aclRole;\n @Input() objectName;\n\n public permissions = [];\n\n public constructor(\n private readonly _appAclService: FsAppAclService,\n ) {}\n\n public ngOnInit() {\n const aclRolePermissions = this.aclRole.permissions || [];\n\n this._appAclService.getPermissions()\n .subscribe((response) => {\n this.permissions = response.filter(item => {\n return aclRolePermissions.some(permission => {\n return item.value === permission.value;\n });\n });\n });\n }\n}\n","\n<fs-popover [template]=\"popover\" maxWidth=\"400\">\n <ng-content></ng-content>\n</fs-popover>\n\n<ng-template #popover>\n <div class=\"name small\">{{aclRole.name}}<span *ngIf=\"objectName\">: {{objectName}}</span></div>\n\n <ng-container *ngIf=\"permissions.length; else nonePermission\">\n <div *ngFor=\"let permission of permissions\" class=\"permission\">\n <div>{{permission.name}}</div>\n <div class=\"small\">{{permission.description}}</div>\n </div>\n </ng-container>\n\n <ng-template #nonePermission>\n None\n </ng-template>\n</ng-template>\n","import { ControlContainer, NgForm } from '@angular/forms';\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\n\nimport { AclObjectRole } from '../../interfaces/acl-object-role';\nimport { AclRole } from '../../interfaces/acl-role';\n\n\n@Component({\n selector: 'fs-acl-object-roles',\n templateUrl: './acl-object-roles.component.html',\n styleUrls: ['./acl-object-roles.component.scss'],\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class FsAclObjectRolesComponent {\n\n @Input() aclRoles: AclRole[] = [];\n @Input() required = false;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() aclObjectRoles: AclObjectRole[] = [];\n @Input() rolesLabel = 'Roles';\n @Input() levelLabel = '';\n @Output() change = new EventEmitter<AclObjectRole[]>();\n\n public compareAclRole = (o1: any, o2: any) => {\n return o1 && o2 && o1.id === o2.id;\n }\n\n public changed() {\n this.change.emit(this.aclObjectRoles);\n }\n}\n","<ng-container *ngIf=\"!multiple\">\n <ng-container *ngFor=\"let aclObjectRole of aclObjectRoles\">\n <fs-checkbox-group\n [(ngModel)]=\"aclObjectRole.aclRoles\"\n (ngModelChange)=\"changed()\"\n name=\"roles\"\n [compareWith]=\"compareAclRole\"\n [disabled]=\"disabled\"\n [label]=\"rolesLabel\"\n [fsFormRequired]=\"required\"\n orientation=\"vertical\">\n <mat-checkbox [disabled]=\"disabled\" *ngFor=\"let aclRole of aclRoles\" [value]=\"aclRole\">\n {{ aclRole.name }}\n </mat-checkbox>\n </fs-checkbox-group>\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"multiple\">\n <table>\n <tr>\n <td>\n <small>{{levelLabel}}</small>\n </td>\n <td>\n <small>{{rolesLabel}}</small>\n </td>\n </tr>\n <tr *ngFor=\"let aclObjectRole of aclObjectRoles\">\n <td>{{aclObjectRole.object.name}}</td>\n <td>\n <mat-form-field class=\"form-field-padless\">\n <mat-select\n [(ngModel)]=\"aclObjectRole.aclRoles\"\n multiple=\"true\"\n [disabled]=\"disabled\"\n [compareWith]=\"compareAclRole\"\n (ngModelChange)=\"changed()\"\n name=\"aclRole_{{ aclObjectRole.object.id }}\">\n <mat-option *ngFor=\"let aclRole of aclRoles\" [value]=\"aclRole\">\n {{ aclRole.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </td>\n </tr>\n </table>\n</ng-container>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { map } from 'rxjs/operators';\nimport { forkJoin } from 'rxjs';\n\nimport { AclRole} from './../../interfaces/acl-role';\nimport { AclEntryData } from './../../interfaces/acl-entry-data';\nimport { AclObjectRole } from './../../interfaces/acl-object-role';\nimport { AclObjectEntry } from './../../interfaces/acl-object-entry';\nimport { AclEntry } from './../../interfaces/acl-entry';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n\n@Component({\n templateUrl: './acl-entry.component.html',\n styleUrls: ['./acl-entry.component.scss'],\n})\nexport class FsAclEntryComponent implements OnInit {\n\n public aclRoles: AclRole[] = [];\n public aclObjectEntry: AclObjectEntry;\n public aclObjectRole: AclObjectRole;\n public indexedAclRoleLevels = {};\n public titleEdit = 'Edit Roles';\n public titleAdd = 'Assign Roles';\n public required = true;\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclEntryComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: AclEntryData\n ) {\n this.aclObjectEntry = { ..._data.aclObjectEntry };\n this.required = _data.required ?? true;\n\n if (_data.titleEdit) {\n this.titleEdit = _data.titleEdit;\n }\n\n if (_data.titleAdd) {\n this.titleAdd = _data.titleAdd;\n }\n }\n\n public save = () => {\n return this._data.saveAclObjectEntry(this._appAclService.output(this.aclObjectEntry))\n .subscribe((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n })\n }\n\n public ngOnInit() {\n forkJoin(\n this._data.loadAclRoles({\n level: this.aclObjectEntry.level,\n environmentId: this.aclObjectEntry.environmentId,\n })\n .pipe(\n map((data) => this._appAclService.input(data)),\n ),\n this._appAclService.getIndexedLevels()\n )\n .subscribe(([\n aclRoles,\n levels,\n ]) => {\n\n this.aclRoles = aclRoles;\n this.indexedAclRoleLevels = levels;\n\n this.aclObjectRole = {\n object: this.aclObjectEntry.object,\n aclRoles: this.aclObjectEntry.aclEntries\n .map((aclEntry: AclEntry) => {\n return aclEntry.aclRole;\n })\n };\n });\n }\n\n public aclObjectRoleChange(aclObjectRoles: AclObjectRole[]) {\n\n this.aclObjectEntry.aclEntries = aclObjectRoles.reduce((aclEntries, aclObjectRole) => {\n aclObjectRole.aclRoles.forEach(aclRole => {\n aclEntries.push({\n aclRoleId: aclRole.id,\n aclRole: aclRole,\n objectId: aclObjectRole.object ? aclObjectRole.object.id : null,\n object: aclObjectRole.object || null\n });\n });\n\n return aclEntries;\n }, []);\n }\n\n public close(data = null) {\n this._dialogRef.close(data);\n }\n\n}\n","<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>{{ titleEdit? titleEdit : titleAdd }}</div>\n <mat-dialog-content>\n <div *ngIf=\"aclObjectRole\">\n <fs-label-field *ngIf=\"aclObjectEntry.object\">\n <fs-label>{{indexedAclRoleLevels[aclObjectEntry.level]}}</fs-label>\n {{aclObjectEntry.object.name}}\n </fs-label-field>\n\n <fs-acl-object-roles\n [aclRoles]=\"aclRoles\"\n [aclObjectRoles]=\"[aclObjectRole]\"\n [required]=\"required\"\n (change)=\"aclObjectRoleChange($event)\">\n </fs-acl-object-roles>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\">Save</button>\n <button mat-button mat-dialog-close type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import { takeUntil, map } from 'rxjs/operators';\nimport { Component, OnInit, ViewChild, OnDestroy, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { sortBy, groupBy, forOwn } from 'lodash-es';\n\nimport { FsListAction, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { FsAppAclService } from '../../services/app-acl.service';\nimport { AclEntryData } from '../../interfaces/acl-entry-data';\nimport { AclEntry } from '../../interfaces/acl-entry';\nimport { AclRole } from '../../interfaces/acl-role';\nimport { AclObjectEntry } from '../../interfaces/acl-object-entry';\nimport { FsAclEntryComponent } from '../acl-entry/acl-entry.component';\n\n\n@Component({\n selector: 'fs-acl-entries',\n templateUrl: './acl-entries.component.html',\n styleUrls: ['./acl-entries.component.scss']\n})\nexport class FsAclEntriesComponent implements OnInit, OnDestroy {\n\n @Input() public loadAclEntries: (query: any) => Observable<AclEntry[]>;\n @Input() public loadAclRoles: (query: any) => Observable<AclRole[]>;\n @Input() public saveAclObjectEntry: (aclObjectEntry: AclObjectEntry) => Observable<any>;\n @Input() public environmentShow = true;\n @Input() public environmentLabel = 'Environment';\n @Input() public actions: FsListAction[] = [];\n\n @ViewChild(FsListComponent)\n public aclEntriesList: FsListComponent = null;\n\n public aclEntriesConfig: FsListConfig = null;\n public permissions: any[] = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private _confirm: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._appAclService.getPermissions()\n .subscribe(response => {\n this.permissions = response;\n });\n\n this.aclEntriesConfig = {\n status: false,\n paging: false,\n actions: this.actions,\n rowActions: [\n {\n label: 'Remove All Roles',\n click: (aclObjectEntry: AclObjectEntry) => {\n this._confirm\n .confirm({\n title: 'Remove All Roles',\n template: 'Are you sure you would like to remove all roles?',\n }).subscribe(() => {\n const data = this._appAclService.output({ ...aclObjectEntry, aclEntries: [] });\n this.saveAclObjectEntry(data)\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n });\n }\n }\n ],\n fetch: () => {\n return new Observable((observer) => {\n this.loadAclEntries({\n aclRoles: true,\n aclRolePermissions: true,\n objects: true,\n aclRoleState: 'active',\n })\n .pipe(\n map((response) => this._appAclService.input(response)),\n )\n .subscribe((aclEntries: AclEntry[]) => {\n const objects = aclEntries.reduce((items, item) => {\n if (item.object) {\n items[item.object.id] = item.object;\n }\n return items;\n }, {});\n\n const environments = aclEntries.reduce((items, item) => {\n if (item.environment) {\n items[item.environment.id] = item.environment;\n }\n return items;\n }, {});\n\n let aclObjectEntry: AclObjectEntry[] = [];\n const grouped = groupBy(aclEntries, (item) => {\n return [item.aclRole.level, item.environmentId, item.objectId];\n });\n\n forOwn(grouped, (group, key) => {\n key = key.split(',');\n aclObjectEntry.push({\n object: objects[key[2]],\n level: key[0],\n environmentId: key[1] ? parseInt(key[1]) : null,\n environment: environments[key[1]],\n aclEntries: group,\n });\n });\n\n const hasApp = aclObjectEntry.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntry.unshift({\n object: null, aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntry = sortBy(aclObjectEntry, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntry });\n observer.complete();\n });\n });\n },\n };\n }\n\n public update(aclObjectEntry: AclObjectEntry) {\n\n const data: AclEntryData = {\n aclObjectEntry: aclObjectEntry,\n required: false,\n loadAclRoles: this.loadAclRoles,\n saveAclObjectEntry: this.saveAclObjectEntry\n }\n\n this._dialog.open(FsAclEntryComponent, {\n data: data\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public reload(): void {\n this.aclEntriesList.reload();\n }\n\n}\n","\n<fs-list [config]=\"aclEntriesConfig\">\n <fs-list-column>\n <ng-template fs-list-header>Context</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div\n *ngIf=\"row.object; else elseObject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"10px\">\n <fs-badge *ngIf=\"row.object.imageUrl\" shape=\"circle\" image=\"{{ row.object.imageUrl }}\"></fs-badge>\n <span>\n <div><small>{{ row.object.className }}</small></div>\n <a (click)=\"update(row)\">{{ row.object.name }}</a>\n </span>\n </div>\n\n <ng-template #elseObject>\n <a (click)=\"update(row)\">App</a>\n </ng-template>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column [show]=\"environmentShow\">\n <ng-template fs-list-header>{{environmentLabel}}</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.environment?.name}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Roles</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div fxLayout=\"column\" fxLayoutGap=\"10px\">\n <div div *ngFor=\"let aclEntry of row.aclEntries\">\n <ng-container [ngSwitch]=\"row.level\">\n <ng-container *ngSwitchCase=\"'app'\">\n <fs-acl-role-popover [aclRole]=\"aclEntry.aclRole\" objectName=\"App\">{{aclEntry.aclRole.name}}</fs-acl-role-popover>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"row.object\">\n <fs-acl-role-popover [aclRole]=\"aclEntry.aclRole\">{{aclEntry.aclRole.name}}</fs-acl-role-popover>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPopoverModule } from '@firestitch/popover';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { FsCheckboxGroupModule } from '@firestitch/checkboxgroup';\n\nimport { FsAclRolesComponent } from './components/acl-roles/acl-roles.component';\nimport { FsAclPermissionPopoverComponent } from './components/acl-permission-popover/acl-permission-popover.component';\nimport { FsAclRolePopoverComponent } from './components/acl-role-popover/acl-role-popover.component';\nimport { FsAclEntriesComponent } from './components/acl-entries/acl-entries.component';\nimport { FsAclRoleComponent } from './components/acl-role/acl-role.component';\nimport { FsAclObjectRolesComponent } from './components/acl-object-roles/acl-object-roles.component';\nimport { FsAclEntryComponent } from './components/acl-entry/acl-entry.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatSelectModule,\n MatButtonModule,\n MatRadioModule,\n MatInputModule,\n FlexLayoutModule,\n\n FsListModule,\n FsPopoverModule,\n FsDialogModule,\n FsFormModule,\n FsLabelModule,\n FsRadioGroupModule,\n FsBadgeModule,\n FsCheckboxGroupModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n exports: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n})\nexport class FsAppAclModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["InjectionToken","_snakecaseKeys","_camelcaseKeys","ReplaySubject","map","list","isArray","i0","Injectable","Inject","Subject","tap","forkJoin","takeUntil","of","MAT_DIALOG_DATA","FsListComponent","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i2","i17","i18","Component","ChangeDetectionStrategy","ViewChild","i1.FsAppAclService","Input","QueryList","Observable","filter","ItemType","i3","i4.FsAclPermissionPopoverComponent","ViewChildren","EventEmitter","i1","ControlContainer","NgForm","Output","i6.FsAclObjectRolesComponent","groupBy","forOwn","sortBy","i6.FsAclRolePopoverComponent","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-app-acl.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/enums/acl-role-access.ts","../../src/app/consts/acl-role-accesses.ts","../../src/app/injectors/app-acl-config.injector.ts","../../src/app/services/app-acl.service.ts","../../src/app/components/acl-role/acl-role.component.ts","../../src/app/components/acl-role/acl-role.component.html","../../src/app/components/acl-permission-popover/acl-permission-popover.component.ts","../../src/app/components/acl-permission-popover/acl-permission-popover.component.html","../../src/app/components/acl-roles/acl-roles.component.ts","../../src/app/components/acl-roles/acl-roles.component.html","../../src/app/components/acl-role-popover/acl-role-popover.component.ts","../../src/app/components/acl-role-popover/acl-role-popover.component.html","../../src/app/components/acl-object-roles/acl-object-roles.component.ts","../../src/app/components/acl-object-roles/acl-object-roles.component.html","../../src/app/components/acl-entry/acl-entry.component.ts","../../src/app/components/acl-entry/acl-entry.component.html","../../src/app/components/acl-entries/acl-entries.component.ts","../../src/app/components/acl-entries/acl-entries.component.html","../../src/app/fs-app-acl.module.ts","../../src/firestitch-app-acl.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export enum AclRoleAccess {\n None = 0,\n Read = 5,\n Write = 10,\n Full = 15,\n}\n","\nimport { AclRoleAccess } from '../enums/acl-role-access';\n\nexport const AclRoleAccesses = [\n { name: 'None', value: AclRoleAccess.None },\n { name: 'Read', value: AclRoleAccess.Read },\n { name: 'Write', value: AclRoleAccess.Write },\n { name: 'Full', value: AclRoleAccess.Full }\n];\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_ACL_CONFIG = new InjectionToken<any[]>('fs-app-acl-config');\n","import { Injectable, Inject } from '@angular/core';\n\nimport { list } from '@firestitch/common';\n\nimport { map } from 'rxjs/operators';\nimport { ReplaySubject } from 'rxjs';\n\nimport { isArray } from 'lodash-es';\n\n\nimport { FS_APP_ACL_CONFIG } from './../injectors/app-acl-config.injector';\nimport { AppAclConfig } from './../interfaces/app-acl-config';\nimport { AclPermission } from './../interfaces/acl-permission';\nimport { AclLevel } from './../interfaces/acl-level';\n\nimport * as _snakecaseKeys from 'snakecase-keys';\nimport * as _camelcaseKeys from 'camelcase-keys';\n\nconst snakecaseKeys = _snakecaseKeys;\nconst camelcaseKeys = _camelcaseKeys;\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsAppAclService {\n\n private _permissions$: ReplaySubject<AclPermission[]>;\n private _levels$: ReplaySubject<AclLevel[]>;\n\n constructor(\n @Inject(FS_APP_ACL_CONFIG) private _appAclConfig: AppAclConfig,\n ) { }\n\n public getPermissions() {\n\n if (!this._permissions$) {\n this._permissions$ = new ReplaySubject();\n\n this._appAclConfig.permissions\n .subscribe((permissions) => {\n this._permissions$.next(permissions);\n this._permissions$.complete();\n });\n }\n\n return this._permissions$;\n }\n\n public getLevels() {\n\n if (!this._levels$) {\n this._levels$ = new ReplaySubject();\n\n this._appAclConfig.levels\n .subscribe((levels) => {\n this._levels$.next(levels);\n this._levels$.complete();\n });\n }\n\n return this._levels$;\n }\n\n\n public getIndexedLevels() {\n return this.getLevels()\n .pipe(\n map((data) => {\n return list(data, 'name', 'value');\n })\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { AclRoleAccesses } from './../../consts/acl-role-accesses';\nimport { AclRole } from './../../interfaces/acl-role';\nimport { map, takeUntil, tap } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { list } from '@firestitch/common';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n\n@Component({\n templateUrl: './acl-role.component.html',\n styleUrls: ['./acl-role.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRoleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent) public list: FsListComponent;\n\n public aclRole: AclRole = null;\n public environment;\n public permissions: any[] = [];\n public listConfig: FsListConfig;\n public levelPermissions = [];\n public AclRoleAccesses = AclRoleAccesses;\n public indexedAccesses = {};\n public aclLevels: any[] = [];\n public indexedAclLevels = {};\n public onlyFullAccess = false;\n public AclLevels = {};\n public aclRoleConfigs = [];\n public levelAclRoleConfigs = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n forkJoin(\n this.getRole(),\n this._appAclService.getPermissions(),\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(([\n aclRole,\n aclPermissions,\n ]) => {\n\n this.permissions = aclPermissions;\n this.aclLevels = this._data.aclLevels;\n\n this.indexedAclLevels = list(this.aclLevels, 'name', 'value');\n this.indexedAccesses = list(AclRoleAccesses, 'name', 'value');\n\n this.aclRole = {\n ...{\n aclPermissions: [],\n allPermissions: true,\n aclRoleConfigs: [],\n permissions: {},\n level: this.aclLevels[0].value,\n },\n ...aclRole,\n };\n\n if (this.aclRole.id) {\n this.permissions.forEach((permission) => {\n let access = 0;\n\n const aclPermission = this.aclRole.aclPermissions.find((item) => {\n return item.permission === permission.value;\n });\n\n if (aclPermission) {\n access = aclPermission.access;\n }\n\n this.aclRole.permissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateAclRoleConfigs();\n\n this._cdRef.markForCheck();\n });\n\n this.listConfig = {\n status: false,\n paging: false,\n noResults: {\n message: '',\n },\n group: {\n initialExpand: true,\n groupBy: (data) => {\n return data;\n },\n compareBy: (data) => {\n return data.category || 'General';\n },\n },\n fetch: () => {\n return of({\n data: this.levelPermissions.sort((a, b) => {\n a = a.name.toUpperCase();\n b = b.name.toUpperCase();\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n\n return 0;\n }),\n });\n },\n };\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateAclRoleConfigs();\n setTimeout(() => {\n this.list.reload();\n });\n }\n\n public getRole(): Observable<any> {\n if (!this._data.aclRole.id) {\n return of(this._data.aclRole);\n }\n\n const query: any = {\n aclPermissions: true,\n aclRoleConfigs: true,\n };\n\n if (!this.environment) {\n query.environmentId = null;\n }\n\n return this._data.loadAclRole(this._data.aclRole, query);\n }\n\n public save = (): Observable<any> => {\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRole.permissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs: this.levelAclRoleConfigs.map((item) => {\n return {\n id: item.id,\n value: item.value,\n data: item.data,\n };\n }),\n };\n\n return this._data.saveAclRole(aclRole)\n .pipe(\n tap((response) => {\n this._message.success('Saved Changes');\n this.close(response);\n }),\n );\n }\n\n public close(data: any = null): void {\n this._dialogRef.close(data);\n }\n\n public allPermissionsChange(all: boolean): void {\n this._updatePermissions();\n if (all) {\n this._applyMaxPermissionAccess();\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _updatePermissions(): void {\n this.levelPermissions = this.permissions.filter((permission) => {\n return permission.levels.some((item) => {\n return item === this.aclRole.level;\n });\n });\n }\n\n private _updateAclRoleConfigs(): void {\n this.levelAclRoleConfigs = this.aclRoleConfigs.filter((item) => {\n return this.aclRole.level === item.level;\n });\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRole.permissions[permission.value] = Math.max(...permission.accesses);\n });\n }\n\n}\n","<form fsForm [submit]=\"save\">\n <fs-dialog>\n <ng-container *ngIf=\"aclRole\">\n <div mat-dialog-title>{{ aclRole.id ? 'Edit' : 'Create' }} Role</div>\n <mat-dialog-content>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"40px\" fxLayoutGap.lt-md=\"0\">\n <div fxLayout=\"column\" fxFlex fxFlex.lt-md=\"0\">\n <mat-form-field>\n <input matInput placeholder=\"Name\" [(ngModel)]=\"aclRole.name\" name=\"name\" fsFormRequired>\n </mat-form-field>\n\n <fs-label-field *ngIf=\"aclRole.id || aclLevels.length === 1; else levels\">\n <fs-label>Level</fs-label>\n {{indexedAclLevels[aclRole.level]}}\n </fs-label-field>\n\n <ng-template #levels>\n <div class=\"level\">\n <fs-radio-group\n [(ngModel)]=\"aclRole.level\"\n (ngModelChange)=\"levelChange()\"\n fsFormRequired\n label=\"Level\"\n orientation=\"vertical\"\n name=\"level\">\n <mat-radio-button\n *ngFor=\"let item of aclLevels\"\n [value]=\"item.value\"\n [disabled]=\"!!aclRole.protected\">\n {{ item.name }}\n </mat-radio-button>\n </fs-radio-group>\n </div>\n </ng-template>\n\n <fs-label-field *ngIf=\"levelPermissions.length\">\n <fs-label>All Permissions</fs-label>\n <mat-checkbox\n [(ngModel)]=\"aclRole.allPermissions\"\n (ngModelChange)=\"allPermissionsChange($event)\"\n [disabled]=\"!!aclRole.protected\"\n name=\"allPermissions\">\n </mat-checkbox>\n </fs-label-field>\n\n <div fxLayout=\"column\" *ngFor=\"let config of levelAclRoleConfigs\">\n <fs-label-field *ngIf=\"config.interface === 'checkbox'\">\n <fs-label>{{config.name}}</fs-label>\n <mat-checkbox\n [(ngModel)]=\"config.data\"\n [name]=\"config.name\">\n </mat-checkbox>\n <fs-label-message>\n <mat-hint>{{config.description}}</mat-hint>\n </fs-label-message>\n </fs-label-field>\n\n <mat-form-field *ngIf=\"config.interface === 'select'\">\n <mat-select\n [(ngModel)]=\"config.data\"\n [name]=\"config.value\"\n [required]=\"config.required\"\n [placeholder]=\"config.name\">\n <mat-option\n *ngFor=\"let item of config.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n <mat-hint>{{config.description}}</mat-hint>\n </mat-form-field>\n </div>\n </div>\n\n <div fxLayout=\"column\" fxFlex=\"65\" fxFlex.lt-md=\"0\" *ngIf=\"aclRole.level\" [hidden]=\"!levelPermissions.length\" class=\"permissions\">\n\n <fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Permissions\">\n <ng-template colspan=\"2\" fs-list-group-cell let-row=\"row\" class=\"permission-group\">\n <small><b>{{row.category || 'General'}}</b></small>\n </ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"permission\">{{ row.name }}</div>\n <div class=\"description small\">{{ row.description }}</div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Access\" width=\"1%\" class=\"access\">\n <ng-template fs-list-cell let-row=\"permission\" let-permission=\"row\">\n <span *ngIf=\"aclRole.allPermissions; else elseAll\">\n {{ indexedAccesses[aclRole.permissions[permission.value]] }}\n </span>\n <ng-template #elseAll>\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"aclRole.permissions[permission.value]\"\n [disabled]=\"!!aclRole.protected\"\n fsFormRequired\n name=\"access-{{ permission.value }}\">\n <ng-container *ngFor=\"let access of AclRoleAccesses\">\n <mat-option\n *ngIf=\"access.value === 0 || permission.accesses.indexOf(access.value) !== -1\"\n [value]=\"access.value\">\n {{ access.name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </ng-template>\n </ng-template>\n </fs-list-column>\n </fs-list>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\">{{ aclRole.id ? 'Save' : 'Create' }}</button>\n <button mat-button [mat-dialog-close]=\"null\" type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </ng-container>\n </fs-dialog>\n</form>\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'acl-permission-popover',\n templateUrl: './acl-permission-popover.component.html',\n styleUrls: ['./acl-permission-popover.component.scss']\n})\nexport class FsAclPermissionPopoverComponent implements OnInit {\n\n @Input() permission;\n\n public description;\n\n public constructor(\n private _appAclService: FsAppAclService\n ) { }\n\n public ngOnInit() {\n this._appAclService.getPermissions()\n .subscribe(permissions => {\n this.description = permissions.filter(item => {\n return item.value === this.permission.value;\n }).map(item => {\n return item.description;\n })[0];\n });\n }\n}\n","\n<fs-popover [template]=\"popover\" maxWidth=\"400\">\n <ng-content></ng-content>\n</fs-popover>\n\n<ng-template #popover>\n {{permission.name}}\n <div class=\"small\">{{description}}</div>\n</ng-template>\n\n","import { takeUntil, filter, map } from 'rxjs/operators';\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, ViewChildren, QueryList } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { list } from '@firestitch/common';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { AclRole } from './../../interfaces/acl-role';\nimport { AclLevel } from './../../interfaces/acl-level';\nimport { FsAclRoleComponent } from '../acl-role/acl-role.component';\nimport { FsAppAclService } from '../../services/app-acl.service';\n\n@Component({\n selector: 'fs-acl-roles',\n templateUrl: 'acl-roles.component.html',\n styleUrls: [ 'acl-roles.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRolesComponent implements OnInit, OnDestroy {\n\n @Input() deleteAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() saveAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() loadAclRoles: (query: any) => Observable<{ data: AclRole[], paging: any }>;\n @Input() loadAclRole: (aclRole: AclRole, query) => Observable<AclRole>;\n @Input() aclLevels: AclLevel[] = [];\n\n @ViewChildren(FsListComponent)\n public list = new QueryList<FsListComponent>();\n\n public listConfig: FsListConfig;\n public permissions;\n public indexedAclRoleLevels: { [value: string]: string } = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private readonly _cdRef: ChangeDetectorRef,\n ) { }\n\n public ngOnInit(): void {\n\n new Observable(observer => {\n\n if (this.aclLevels.length) {\n observer.next(this.aclLevels);\n observer.complete();\n } else {\n\n this._appAclService.getLevels()\n .subscribe((aclLevels: AclLevel[]) => {\n observer.next(aclLevels);\n observer.complete();\n });\n }\n })\n .subscribe((aclLevels: AclLevel[]) => {\n this.aclLevels = aclLevels;\n this.indexedAclRoleLevels = list(this.aclLevels, 'name', 'value');\n this._loadListConfig();\n });\n }\n\n public openDialog(aclRole: AclRole = { id: null }): void {\n\n const dialogRef = this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n filter((response) => !!response),\n )\n .subscribe((response) => {\n this.list.forEach((list: FsListComponent) => {\n list.reload();\n });\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _loadListConfig() {\n this.listConfig = {\n sort: { value: 'hierarchy' },\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'level',\n label: 'Level',\n type: ItemType.Select,\n values: this.aclLevels,\n hide: this.aclLevels.length <= 1\n },\n {\n name: 'state',\n label: 'Show Deleted',\n type: ItemType.Checkbox,\n unchecked: 'active',\n checked: 'deleted',\n },\n ],\n actions: [\n {\n click: (event) => {\n this.openDialog();\n },\n label: 'Create',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this.deleteAclRole(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this role?',\n },\n menu: true,\n label: 'Delete',\n show: (row) => row.state !== 'deleted',\n },\n ],\n fetch: (query) => {\n query.permissions = true;\n return this.loadAclRoles(query)\n .pipe(\n map((data) => data)\n );\n },\n };\n }\n\n}\n","<fs-list [config]=\"listConfig\" *ngIf=\"listConfig\">\n <fs-list-column title=\"Name\" name=\"name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openDialog(row)\">{{ row.name }}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"hierarchy\" title=\"Level\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ indexedAclRoleLevels[row.level] }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Permissions\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"permissions\">\n <ng-container *ngFor=\"let permission of row.permissions\">\n <span *ngIf=\"permission.access\" class=\"permission\">\n <acl-permission-popover [permission]=\"permission\">{{permission.name}}</acl-permission-popover>\n </span>\n </ng-container>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'fs-acl-role-popover',\n templateUrl: './acl-role-popover.component.html',\n styleUrls: ['./acl-role-popover.component.scss']\n})\nexport class FsAclRolePopoverComponent implements OnInit {\n\n @Input() aclRole;\n @Input() objectName;\n\n public permissions = [];\n\n public constructor(\n private readonly _appAclService: FsAppAclService,\n ) {}\n\n public ngOnInit() {\n const aclRolePermissions = this.aclRole.permissions || [];\n\n this._appAclService.getPermissions()\n .subscribe((response) => {\n this.permissions = response.filter(item => {\n return aclRolePermissions.some(permission => {\n return item.value === permission.value;\n });\n });\n });\n }\n}\n","\n<fs-popover [template]=\"popover\" maxWidth=\"400\">\n <ng-content></ng-content>\n</fs-popover>\n\n<ng-template #popover>\n <div class=\"name small\">{{aclRole.name}}<span *ngIf=\"objectName\">: {{objectName}}</span></div>\n\n <ng-container *ngIf=\"permissions.length; else nonePermission\">\n <div *ngFor=\"let permission of permissions\" class=\"permission\">\n <div>{{permission.name}}</div>\n <div class=\"small\">{{permission.description}}</div>\n </div>\n </ng-container>\n\n <ng-template #nonePermission>\n None\n </ng-template>\n</ng-template>\n","import { ControlContainer, NgForm } from '@angular/forms';\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\n\nimport { AclObjectRole } from '../../interfaces/acl-object-role';\nimport { AclRole } from '../../interfaces/acl-role';\n\n\n@Component({\n selector: 'fs-acl-object-roles',\n templateUrl: './acl-object-roles.component.html',\n styleUrls: ['./acl-object-roles.component.scss'],\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class FsAclObjectRolesComponent {\n\n @Input() aclRoles: AclRole[] = [];\n @Input() required = false;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() aclObjectRoles: AclObjectRole[] = [];\n @Input() rolesLabel = 'Roles';\n @Input() levelLabel = '';\n @Output() change = new EventEmitter<AclObjectRole[]>();\n\n public compareAclRole = (o1: any, o2: any) => {\n return o1 && o2 && o1.id === o2.id;\n }\n\n public changed() {\n this.change.emit(this.aclObjectRoles);\n }\n}\n","<ng-container *ngIf=\"!multiple\">\n <ng-container *ngFor=\"let aclObjectRole of aclObjectRoles\">\n <fs-checkbox-group\n [(ngModel)]=\"aclObjectRole.aclRoles\"\n (ngModelChange)=\"changed()\"\n name=\"roles\"\n [compareWith]=\"compareAclRole\"\n [disabled]=\"disabled\"\n [label]=\"rolesLabel\"\n [fsFormRequired]=\"required\"\n orientation=\"vertical\">\n <mat-checkbox [disabled]=\"disabled\" *ngFor=\"let aclRole of aclRoles\" [value]=\"aclRole\">\n {{ aclRole.name }}\n </mat-checkbox>\n </fs-checkbox-group>\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"multiple\">\n <table>\n <tr>\n <td>\n <small>{{levelLabel}}</small>\n </td>\n <td>\n <small>{{rolesLabel}}</small>\n </td>\n </tr>\n <tr *ngFor=\"let aclObjectRole of aclObjectRoles\">\n <td>{{aclObjectRole.object.name}}</td>\n <td>\n <mat-form-field class=\"form-field-padless\">\n <mat-select\n [(ngModel)]=\"aclObjectRole.aclRoles\"\n multiple=\"true\"\n [disabled]=\"disabled\"\n [compareWith]=\"compareAclRole\"\n (ngModelChange)=\"changed()\"\n name=\"aclRole_{{ aclObjectRole.object.id }}\">\n <mat-option *ngFor=\"let aclRole of aclRoles\" [value]=\"aclRole\">\n {{ aclRole.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </td>\n </tr>\n </table>\n</ng-container>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { forkJoin } from 'rxjs';\n\nimport { AclRole} from './../../interfaces/acl-role';\nimport { AclEntryData } from './../../interfaces/acl-entry-data';\nimport { AclObjectRole } from './../../interfaces/acl-object-role';\nimport { AclObjectEntry } from './../../interfaces/acl-object-entry';\nimport { AclEntry } from './../../interfaces/acl-entry';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n\n@Component({\n templateUrl: './acl-entry.component.html',\n styleUrls: ['./acl-entry.component.scss'],\n})\nexport class FsAclEntryComponent implements OnInit {\n\n public aclRoles: AclRole[] = [];\n public aclObjectEntry: AclObjectEntry;\n public aclObjectRole: AclObjectRole;\n public aclEntries: AclEntry[] = [];\n public indexedAclRoleLevels = {};\n public titleEdit = 'Edit Roles';\n public titleAdd = 'Assign Roles';\n public required = true;\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclEntryComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: AclEntryData\n ) {\n this.aclObjectEntry = { ..._data.aclObjectEntry };\n this.required = _data.required ?? true;\n\n if (_data.titleEdit) {\n this.titleEdit = _data.titleEdit;\n }\n\n if (_data.titleAdd) {\n this.titleAdd = _data.titleAdd;\n }\n }\n\n public ngOnInit() {\n forkJoin(\n this._data.loadAclRoles(this.aclObjectEntry),\n this._appAclService.getIndexedLevels()\n )\n .subscribe(([\n aclRoles,\n levels,\n ]) => {\n\n this.aclRoles = aclRoles;\n this.indexedAclRoleLevels = levels;\n\n this.aclObjectRole = {\n object: this.aclObjectEntry.object,\n aclRoles: this.aclObjectEntry.aclEntries\n .map((aclEntry: AclEntry) => {\n return aclEntry.aclRole;\n }),\n };\n });\n }\n\n public aclObjectRoleChange(aclObjectRoles: AclObjectRole[]) {\n this.aclEntries = aclObjectRoles.reduce((aclEntries, aclObjectRole) => {\n aclObjectRole.aclRoles.forEach(aclRole => {\n aclEntries.push({\n aclRoleId: aclRole.id,\n aclRole: aclRole,\n objectId: aclObjectRole.object ? aclObjectRole.object.id : null,\n object: aclObjectRole.object || null\n });\n });\n\n return aclEntries;\n }, []);\n }\n\n public save = () => {\n const aclObjectEntry = {\n ...this.aclObjectEntry,\n aclEntries: this.aclEntries,\n };\n\n return this._data.saveAclObjectEntry(aclObjectEntry)\n .subscribe((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n });\n }\n\n public close(data = null) {\n this._dialogRef.close(data);\n }\n\n}\n","<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>{{ titleEdit? titleEdit : titleAdd }}</div>\n <mat-dialog-content>\n <div *ngIf=\"aclObjectRole\">\n <fs-label-field *ngIf=\"aclObjectEntry.object\">\n <fs-label>{{indexedAclRoleLevels[aclObjectEntry.level]}}</fs-label>\n {{aclObjectEntry.object.name}}\n </fs-label-field>\n\n <fs-acl-object-roles\n [aclRoles]=\"aclRoles\"\n [aclObjectRoles]=\"[aclObjectRole]\"\n [required]=\"required\"\n (change)=\"aclObjectRoleChange($event)\">\n </fs-acl-object-roles>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\">Save</button>\n <button mat-button mat-dialog-close type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import { takeUntil, map } from 'rxjs/operators';\nimport { Component, OnInit, ViewChild, OnDestroy, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { sortBy, groupBy, forOwn } from 'lodash-es';\n\nimport { FsListAction, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { FsAppAclService } from '../../services/app-acl.service';\nimport { AclEntryData } from '../../interfaces/acl-entry-data';\nimport { AclEntry } from '../../interfaces/acl-entry';\nimport { AclRole } from '../../interfaces/acl-role';\nimport { AclObjectEntry } from '../../interfaces/acl-object-entry';\nimport { FsAclEntryComponent } from '../acl-entry/acl-entry.component';\n\n\n@Component({\n selector: 'fs-acl-entries',\n templateUrl: './acl-entries.component.html',\n styleUrls: ['./acl-entries.component.scss']\n})\nexport class FsAclEntriesComponent implements OnInit, OnDestroy {\n\n @Input() public loadAclEntries: (query: any) => Observable<AclEntry[]>;\n @Input() public loadAclRoles: (query: any) => Observable<AclRole[]>;\n @Input() public saveAclObjectEntry: (aclObjectEntry: AclObjectEntry) => Observable<any>;\n @Input() public environmentShow = true;\n @Input() public environmentLabel = 'Environment';\n @Input() public actions: FsListAction[] = [];\n\n @ViewChild(FsListComponent)\n public aclEntriesList: FsListComponent = null;\n\n public aclEntriesConfig: FsListConfig = null;\n public permissions: any[] = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private _confirm: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._appAclService.getPermissions()\n .subscribe(response => {\n this.permissions = response;\n });\n\n this.aclEntriesConfig = {\n status: false,\n paging: false,\n actions: this.actions,\n rowActions: [\n {\n label: 'Remove All Roles',\n click: (aclObjectEntry: AclObjectEntry) => {\n this._confirm\n .confirm({\n title: 'Remove All Roles',\n template: 'Are you sure you would like to remove all roles?',\n }).subscribe(() => {\n const data = { ...aclObjectEntry, aclEntries: [] };\n this.saveAclObjectEntry(data)\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n });\n }\n }\n ],\n fetch: () => {\n return new Observable((observer) => {\n this.loadAclEntries({\n aclRoles: true,\n aclRolePermissions: true,\n objects: true,\n aclRoleState: 'active',\n })\n .subscribe((aclEntries: AclEntry[]) => {\n const objects = aclEntries\n .filter((aclEntry) => (!!aclEntry.object))\n .reduce((items, item) => {\n return {\n ...items,\n [item.object.id]: item.object,\n };\n }, {});\n\n const environments = aclEntries\n .filter((aclEntry) => (!!aclEntry.environment))\n .reduce((items, item) => {\n return {\n ...items,\n [item.environment.id]: item.environment,\n };\n }, {});\n\n let aclObjectEntry: AclObjectEntry[] = [];\n const groupedAclEntries = groupBy(aclEntries, (item) => {\n return [item.aclRole.level, item.environmentId, item.objectId];\n });\n\n forOwn(groupedAclEntries, (aclEntries, key) => {\n key = key.split(',');\n aclObjectEntry.push({\n object: objects[key[2]],\n level: key[0],\n environmentId: key[1] ? parseInt(key[1]) : null,\n environment: environments[key[1]],\n aclEntries,\n });\n });\n\n const hasApp = aclObjectEntry.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntry.unshift({\n object: null, \n aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntry = sortBy(aclObjectEntry, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntry });\n observer.complete();\n });\n });\n },\n };\n }\n\n public update(aclObjectEntry: AclObjectEntry) {\n const data: AclEntryData = {\n aclObjectEntry,\n required: false,\n loadAclRoles: this.loadAclRoles,\n saveAclObjectEntry: this.saveAclObjectEntry\n }\n\n this._dialog.open(FsAclEntryComponent, {\n data: data\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public reload(): void {\n this.aclEntriesList.reload();\n }\n\n}\n","\n<fs-list [config]=\"aclEntriesConfig\">\n <fs-list-column>\n <ng-template fs-list-header>Context</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div\n *ngIf=\"row.object; else elseObject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"10px\">\n <fs-badge *ngIf=\"row.object.imageUrl\" shape=\"circle\" image=\"{{ row.object.imageUrl }}\"></fs-badge>\n <span>\n <div><small>{{ row.object.className }}</small></div>\n <a (click)=\"update(row)\">{{ row.object.name }}</a>\n </span>\n </div>\n\n <ng-template #elseObject>\n <a (click)=\"update(row)\">App</a>\n </ng-template>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column [show]=\"environmentShow\">\n <ng-template fs-list-header>{{environmentLabel}}</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.environment?.name}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Roles</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div fxLayout=\"column\" fxLayoutGap=\"10px\">\n <div div *ngFor=\"let aclEntry of row.aclEntries\">\n <ng-container [ngSwitch]=\"row.level\">\n <ng-container *ngSwitchCase=\"'app'\">\n <fs-acl-role-popover [aclRole]=\"aclEntry.aclRole\" objectName=\"App\">{{aclEntry.aclRole.name}}</fs-acl-role-popover>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"row.object\">\n <fs-acl-role-popover [aclRole]=\"aclEntry.aclRole\">{{aclEntry.aclRole.name}}</fs-acl-role-popover>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPopoverModule } from '@firestitch/popover';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { FsCheckboxGroupModule } from '@firestitch/checkboxgroup';\n\nimport { FsAclRolesComponent } from './components/acl-roles/acl-roles.component';\nimport { FsAclPermissionPopoverComponent } from './components/acl-permission-popover/acl-permission-popover.component';\nimport { FsAclRolePopoverComponent } from './components/acl-role-popover/acl-role-popover.component';\nimport { FsAclEntriesComponent } from './components/acl-entries/acl-entries.component';\nimport { FsAclRoleComponent } from './components/acl-role/acl-role.component';\nimport { FsAclObjectRolesComponent } from './components/acl-object-roles/acl-object-roles.component';\nimport { FsAclEntryComponent } from './components/acl-entry/acl-entry.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatSelectModule,\n MatButtonModule,\n MatRadioModule,\n MatInputModule,\n FlexLayoutModule,\n\n FsListModule,\n FsPopoverModule,\n FsDialogModule,\n FsFormModule,\n FsLabelModule,\n FsRadioGroupModule,\n FsBadgeModule,\n FsCheckboxGroupModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n exports: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n})\nexport class FsAppAclModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["InjectionToken","_snakecaseKeys","_camelcaseKeys","ReplaySubject","map","list","i0","Injectable","Inject","Subject","tap","forkJoin","takeUntil","of","MAT_DIALOG_DATA","FsListComponent","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i2","i17","i18","Component","ChangeDetectionStrategy","ViewChild","i1.FsAppAclService","Input","QueryList","Observable","filter","ItemType","i3","i4.FsAclPermissionPopoverComponent","ViewChildren","EventEmitter","i1","ControlContainer","NgForm","Output","i6.FsAclObjectRolesComponent","groupBy","forOwn","sortBy","i6.FsAclRolePopoverComponent","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","NgModule"],"mappings":"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"}
|