@firestitch/app-acl 12.4.8 → 12.4.11
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-role/acl-role.component.d.ts +3 -1
- package/app/components/acl-roles/acl-roles.component.d.ts +2 -1
- package/bundles/firestitch-app-acl.umd.js +26 -7
- package/bundles/firestitch-app-acl.umd.js.map +1 -1
- package/esm2015/app/components/acl-entry/acl-entry.component.js +1 -1
- package/esm2015/app/components/acl-permission-popover/acl-permission-popover.component.js +1 -1
- package/esm2015/app/components/acl-role/acl-role.component.js +13 -3
- package/esm2015/app/components/acl-role-popover/acl-role-popover.component.js +1 -1
- package/esm2015/app/components/acl-roles/acl-roles.component.js +12 -3
- package/fesm2015/firestitch-app-acl.js +25 -7
- package/fesm2015/firestitch-app-acl.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-app-acl.umd.js","sources":["../../node_modules/tslib/tslib.es6.mjs","../../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/pipes/bulk-options-filter.pipe.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":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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\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\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 { Pipe, PipeTransform } from '@angular/core';\n\nimport { AclRoleAccess } from '../enums/acl-role-access';\nimport { AclPermission } from '../interfaces/acl-permission';\n\n\n@Pipe({\n name: 'builkOptionsFilter'\n})\nexport class BulkOptionsFilterPipe implements PipeTransform {\n\n public transform(rolesList: { name: string, value: AclRoleAccess }[], children: AclPermission[]): any {\n const accessLevels = this._uniqListOfAccessLevels(children);\n\n return rolesList.filter((permission) => {\n return permission.value === 0 || accessLevels.has(permission.value);\n });\n }\n\n private _uniqListOfAccessLevels(children: AclPermission[]): Set<number> {\n return children.reduce((acc, value: AclPermission) => {\n value.accesses.forEach((access) => {\n acc.add(access);\n })\n\n return acc;\n }, (new Set) as Set<number>);\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 { 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';\nimport { RoleConfig } from '../../interfaces';\nimport { MatSelectChange } from '@angular/material/select';\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)\n 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 roleConfigs: RoleConfig[] = [];\n public aclRoleConfigValues = {};\n public aclRolePermissions = {};\n public loadRoleConfigs: (aclRole: AclRole, query) => Observable<RoleConfig[]>;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\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 this.aclRoleConfigValues = (aclRole.aclRoleConfigs || [])\n .reduce((accum, aclRoleConfig) => {\n return {\n ...accum,\n [aclRoleConfig.name]: aclRoleConfig.value,\n }\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.aclRolePermissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateRoleConfigs();\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 bulkChange(value: number, groupChildren, group): void {\n groupChildren\n .forEach((permission) => {\n const access = permission.accesses\n .find((access) => value === access);\n\n if(access || !value) {\n this.aclRolePermissions[permission.value] = value;\n }\n });\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateRoleConfigs();\n this.list.reload();\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 aclRoleConfigs = this.roleConfigs\n .map((roleConfig) => {\n return {\n name: roleConfig.name,\n value: this.aclRoleConfigValues[roleConfig.name],\n }\n });\n\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRolePermissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs,\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 _updateRoleConfigs(): void {\n if(this._data.loadRoleConfigs) {\n this._data.loadRoleConfigs()\n .subscribe((roleConfigs: RoleConfig[]) => {\n this.roleConfigs = roleConfigs\n .filter((roleConfig) => roleConfig.level === this.aclRole.level);\n this._cdRef.markForCheck();\n });\n }\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRolePermissions[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\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"aclRole.name\"\n name=\"name\"\n fsFormRequired>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Description\"\n [(ngModel)]=\"aclRole.description\"\n name=\"description\">\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 Enable\n </mat-checkbox>\n </fs-label-field>\n\n <div fxLayout=\"column\" *ngFor=\"let roleConfig of roleConfigs\">\n <fs-label-field *ngIf=\"roleConfig.type === 'checkbox'\">\n <fs-label>{{roleConfig.label}}</fs-label>\n <mat-checkbox\n [(ngModel)]=\"aclRoleConfigValues[roleConfig.name]\"\n [name]=\"roleConfig.name\">\n Enable\n </mat-checkbox>\n <fs-label-message>\n <mat-hint>{{roleConfig.description}}</mat-hint>\n </fs-label-message>\n </fs-label-field>\n\n <mat-form-field *ngIf=\"roleConfig.type === 'select'\">\n <mat-select\n [(ngModel)]=\"aclRoleConfigValues[roleConfig.name]\"\n [name]=\"roleConfig.name\"\n [required]=\"roleConfig.required\"\n [placeholder]=\"roleConfig.label\">\n <mat-option\n *ngFor=\"let item of roleConfig.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n <mat-hint>{{roleConfig.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 <fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Permissions\">\n <ng-template 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-group-cell\n let-row=\"row\"\n let-group=\"group\"\n let-groupChildren=\"groupChildren\"\n class=\"permission-group\"\n align=\"right\">\n <ng-container *ngIf=\"!aclRole.allPermissions\">\n <fs-menu>\n <ng-container *ngFor=\"let access of AclRoleAccesses | builkOptionsFilter: groupChildren\">\n <ng-template\n fs-menu-item\n (click)=\"bulkChange(access.value, groupChildren, group)\">\n {{ access.name }}\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n </ng-template>\n <ng-template fs-list-cell let-row=\"permission\" let-permission=\"row\">\n <span *ngIf=\"aclRole.allPermissions; else elseAll\">\n {{ indexedAccesses[aclRolePermissions[permission.value]] }}\n </span>\n <ng-template #elseAll>\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"aclRolePermissions[permission.value]\"\n [disabled]=\"!!aclRole.protected\"\n required\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, tap } 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';\nimport { RoleConfig } from '../../interfaces';\n\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() restoreAclRole: (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() loadRoleConfigs: (aclRole: AclRole, query) => Observable<RoleConfig[]>;\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 ) { }\n\n public ngOnInit(): void {\n new Observable(observer => {\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 this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n loadRoleConfigs: this.loadRoleConfigs,\n },\n })\n .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) => !!this.deleteAclRole && row.state !== 'deleted',\n },\n {\n click: (data) => {\n return this.restoreAclRole(data)\n .pipe(\n tap(() => {\n this.list.forEach((l: FsListComponent) => {\n l.reload();\n });\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n },\n label: 'Restore',\n show: (row) => !!this.restoreAclRole && 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 <ng-container *ngIf=\"row.state !== 'deleted' else deletedRole\">\n <a (click)=\"openDialog(row)\">{{ row.name }}</a>\n </ng-container>\n <ng-template #deletedRole>\n {{ row.name }}\n </ng-template>\n <div class=\"small\">{{row.description}}</div>\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]=\"$any(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';\nimport { tap } from 'rxjs/operators';\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({\n level: this.aclObjectEntry.level,\n environmentId: this.aclObjectEntry.environmentId || null,\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 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 .pipe(\n tap((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n })\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 } 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 environmentKey = '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 commitLabel: 'Save',\n template: `Please note that removing roles may prevent users from being able to successfully login.<br>\n These changes are effective immediately.<br>\n Are you sure you would like to continue?`,\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[this.environmentKey]))\n .reduce((items, item) => {\n const environment = item[this.environmentKey];\n return {\n ...items,\n [environment.id]: environment,\n };\n }, {});\n\n const groupedAclEntries = groupBy(aclEntries, (item) => {\n const environmentId = (item[this.environmentKey])?.id;\n return [item.aclRole.level, environmentId, item.objectId];\n });\n\n let aclObjectEntries: AclObjectEntry[] = Object.keys(groupedAclEntries)\n .reduce((accum, key: any) => {\n const parts = key.split(',');\n return [\n ...accum,\n {\n object: objects[parts[2]],\n level: parts[0],\n [`${this.environmentKey}Id`]: parts[1] ? parseInt(parts[1]) : null,\n [this.environmentKey]: environments[parts[1]],\n aclEntries: groupedAclEntries[key],\n }\n ];\n }, []);\n\n const hasApp = aclObjectEntries.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntries.unshift({\n object: null,\n aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntries = sortBy(aclObjectEntries, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntries });\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';\nimport { FsMenuModule } from '@firestitch/menu';\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';\nimport { BulkOptionsFilterPipe } from './pipes/bulk-options-filter.pipe';\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 FsMenuModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n BulkOptionsFilterPipe,\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","ReplaySubject","map","list","i0","Injectable","Inject","Pipe","Subject","tap","forkJoin","takeUntil","of","MAT_DIALOG_DATA","i1.FsAppAclService","i2","i3","FsListComponent","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i17","i18","i19","i20.BulkOptionsFilterPipe","Component","ChangeDetectionStrategy","ViewChild","Input","QueryList","Observable","filter","ItemType","i4.FsAclPermissionPopoverComponent","ViewChildren","EventEmitter","i1","ControlContainer","NgForm","Output","i6.FsAclObjectRolesComponent","groupBy","sortBy","i6.FsAclRolePopoverComponent","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","FsMenuModule","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-app-acl.umd.js","sources":["../../node_modules/tslib/tslib.es6.mjs","../../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/pipes/bulk-options-filter.pipe.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":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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\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\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 { Pipe, PipeTransform } from '@angular/core';\n\nimport { AclRoleAccess } from '../enums/acl-role-access';\nimport { AclPermission } from '../interfaces/acl-permission';\n\n\n@Pipe({\n name: 'builkOptionsFilter'\n})\nexport class BulkOptionsFilterPipe implements PipeTransform {\n\n public transform(rolesList: { name: string, value: AclRoleAccess }[], children: AclPermission[]): any {\n const accessLevels = this._uniqListOfAccessLevels(children);\n\n return rolesList.filter((permission) => {\n return permission.value === 0 || accessLevels.has(permission.value);\n });\n }\n\n private _uniqListOfAccessLevels(children: AclPermission[]): Set<number> {\n return children.reduce((acc, value: AclPermission) => {\n value.accesses.forEach((access) => {\n acc.add(access);\n })\n\n return acc;\n }, (new Set) as Set<number>);\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 { 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';\nimport { RoleConfig } from '../../interfaces';\nimport { AclRoleAccess } from '../../enums/acl-role-access';\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)\n 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 roleConfigs: RoleConfig[] = [];\n public aclRoleConfigValues = {};\n public aclRolePermissions = {};\n public loadRoleConfigs: (aclRole: AclRole, query) => Observable<RoleConfig[]>;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\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 this.aclRoleConfigValues = (aclRole.aclRoleConfigs || [])\n .reduce((accum, aclRoleConfig) => {\n return {\n ...accum,\n [aclRoleConfig.name]: aclRoleConfig.value,\n }\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.aclRolePermissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateRoleConfigs();\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 bulkChange(value: number, groupChildren, group): void {\n groupChildren\n .forEach((permission) => {\n const access = permission.accesses\n .find((access) => value === access);\n\n if(access || !value) {\n this.aclRolePermissions[permission.value] = value;\n }\n });\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateRoleConfigs();\n this.list.reload();\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 aclRoleConfigs = this.roleConfigs\n .map((roleConfig) => {\n return {\n name: roleConfig.name,\n value: this.aclRoleConfigValues[roleConfig.name],\n }\n });\n\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRolePermissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs,\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 } else {\n this._applyNonePermissionAccess();\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\n .filter((permission) => {\n return permission.levels.some((item) => {\n return item === this.aclRole.level;\n });\n });\n }\n\n private _updateRoleConfigs(): void {\n if(this._data.loadRoleConfigs) {\n this._data.loadRoleConfigs()\n .subscribe((roleConfigs: RoleConfig[]) => {\n this.roleConfigs = roleConfigs\n .filter((roleConfig) => roleConfig.level === this.aclRole.level);\n this._cdRef.markForCheck();\n });\n }\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRolePermissions[permission.value] = Math.max(...permission.accesses);\n });\n }\n\n private _applyNonePermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRolePermissions[permission.value] = AclRoleAccess.None;\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\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"aclRole.name\"\n name=\"name\"\n fsFormRequired>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Description\"\n [(ngModel)]=\"aclRole.description\"\n name=\"description\">\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 Enable\n </mat-checkbox>\n </fs-label-field>\n\n <div fxLayout=\"column\" *ngFor=\"let roleConfig of roleConfigs\">\n <fs-label-field *ngIf=\"roleConfig.type === 'checkbox'\">\n <fs-label>{{roleConfig.label}}</fs-label>\n <mat-checkbox\n [(ngModel)]=\"aclRoleConfigValues[roleConfig.name]\"\n [name]=\"roleConfig.name\">\n Enable\n </mat-checkbox>\n <fs-label-message>\n <mat-hint>{{roleConfig.description}}</mat-hint>\n </fs-label-message>\n </fs-label-field>\n\n <mat-form-field *ngIf=\"roleConfig.type === 'select'\">\n <mat-select\n [(ngModel)]=\"aclRoleConfigValues[roleConfig.name]\"\n [name]=\"roleConfig.name\"\n [required]=\"roleConfig.required\"\n [placeholder]=\"roleConfig.label\">\n <mat-option\n *ngFor=\"let item of roleConfig.values\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n <mat-hint>{{roleConfig.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 <fs-list [config]=\"listConfig\">\n <fs-list-column title=\"Permissions\">\n <ng-template 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 \n fs-list-group-cell\n let-row=\"row\"\n let-group=\"group\"\n let-groupChildren=\"groupChildren\"\n class=\"permission-group\"\n align=\"right\">\n <ng-container *ngIf=\"!aclRole.allPermissions\">\n <fs-menu>\n <ng-container *ngFor=\"let access of AclRoleAccesses | builkOptionsFilter: groupChildren\">\n <ng-template\n fs-menu-item\n (click)=\"bulkChange(access.value, groupChildren, group)\">\n {{ access.name }}\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n </ng-template>\n <ng-template fs-list-cell let-row=\"permission\" let-permission=\"row\">\n <span *ngIf=\"aclRole.allPermissions; else elseAll\">\n {{ indexedAccesses[aclRolePermissions[permission.value]] }}\n </span>\n <ng-template #elseAll>\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"aclRolePermissions[permission.value]\"\n [disabled]=\"!!aclRole.protected\"\n required\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, tap } 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';\nimport { RoleConfig } from '../../interfaces';\n\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() restoreAclRole: (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() loadRoleConfigs: (aclRole: AclRole, query) => Observable<RoleConfig[]>;\n @Input() aclLevels: AclLevel[] = [];\n @Input()\n public hideDeleteAclRole: (data: any) => boolean;\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 ) { }\n\n public ngOnInit(): void {\n new Observable(observer => {\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 this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n loadRoleConfigs: this.loadRoleConfigs,\n },\n })\n .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) => {\n const hideDelete = !!this.hideDeleteAclRole\n ? this.hideDeleteAclRole(row)\n : false;\n\n return !!this.deleteAclRole\n && row.state !== 'deleted'\n && !hideDelete;\n },\n },\n {\n click: (data) => {\n return this.restoreAclRole(data)\n .pipe(\n tap(() => {\n this.list.forEach((l: FsListComponent) => {\n l.reload();\n });\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n },\n label: 'Restore',\n show: (row) => !!this.restoreAclRole && 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 <ng-container *ngIf=\"row.state !== 'deleted' else deletedRole\">\n <a (click)=\"openDialog(row)\">{{ row.name }}</a>\n </ng-container>\n <ng-template #deletedRole>\n {{ row.name }}\n </ng-template>\n <div class=\"small\">{{row.description}}</div>\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]=\"$any(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';\nimport { tap } from 'rxjs/operators';\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({\n level: this.aclObjectEntry.level,\n environmentId: this.aclObjectEntry.environmentId || null,\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 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 .pipe(\n tap((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n })\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 } 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 environmentKey = '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 commitLabel: 'Save',\n template: `Please note that removing roles may prevent users from being able to successfully login.<br>\n These changes are effective immediately.<br>\n Are you sure you would like to continue?`,\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[this.environmentKey]))\n .reduce((items, item) => {\n const environment = item[this.environmentKey];\n return {\n ...items,\n [environment.id]: environment,\n };\n }, {});\n\n const groupedAclEntries = groupBy(aclEntries, (item) => {\n const environmentId = (item[this.environmentKey])?.id;\n return [item.aclRole.level, environmentId, item.objectId];\n });\n\n let aclObjectEntries: AclObjectEntry[] = Object.keys(groupedAclEntries)\n .reduce((accum, key: any) => {\n const parts = key.split(',');\n return [\n ...accum,\n {\n object: objects[parts[2]],\n level: parts[0],\n [`${this.environmentKey}Id`]: parts[1] ? parseInt(parts[1]) : null,\n [this.environmentKey]: environments[parts[1]],\n aclEntries: groupedAclEntries[key],\n }\n ];\n }, []);\n\n const hasApp = aclObjectEntries.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntries.unshift({\n object: null,\n aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntries = sortBy(aclObjectEntries, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntries });\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';\nimport { FsMenuModule } from '@firestitch/menu';\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';\nimport { BulkOptionsFilterPipe } from './pipes/bulk-options-filter.pipe';\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 FsMenuModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n BulkOptionsFilterPipe,\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","ReplaySubject","map","list","i0","Injectable","Inject","Pipe","Subject","tap","forkJoin","takeUntil","of","MAT_DIALOG_DATA","i1.FsAppAclService","i2","i3","FsListComponent","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i17","i18","i19","i20.BulkOptionsFilterPipe","Component","ChangeDetectionStrategy","ViewChild","Input","QueryList","Observable","filter","ItemType","i4.FsAclPermissionPopoverComponent","ViewChildren","EventEmitter","i1","ControlContainer","NgForm","Output","i6.FsAclObjectRolesComponent","groupBy","sortBy","i6.FsAclRolePopoverComponent","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","FsMenuModule","NgModule"],"mappings":"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"}
|