@firestitch/app-acl 12.3.1 → 12.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ import { AclRole } from './../../interfaces/acl-role';
5
5
  import { AclEntryData } from './../../interfaces/acl-entry-data';
6
6
  import { AclObjectRole } from './../../interfaces/acl-object-role';
7
7
  import { AclObjectEntry } from './../../interfaces/acl-object-entry';
8
+ import { AclEntry } from './../../interfaces/acl-entry';
8
9
  import { FsAppAclService } from './../../services/app-acl.service';
9
10
  import * as i0 from "@angular/core";
10
11
  export declare class FsAclEntryComponent implements OnInit {
@@ -15,14 +16,15 @@ export declare class FsAclEntryComponent implements OnInit {
15
16
  aclRoles: AclRole[];
16
17
  aclObjectEntry: AclObjectEntry;
17
18
  aclObjectRole: AclObjectRole;
19
+ aclEntries: AclEntry[];
18
20
  indexedAclRoleLevels: {};
19
21
  titleEdit: string;
20
22
  titleAdd: string;
21
23
  required: boolean;
22
24
  constructor(_appAclService: FsAppAclService, _dialogRef: MatDialogRef<FsAclEntryComponent>, _message: FsMessage, _data: AclEntryData);
23
- save: () => import("rxjs").Subscription;
24
25
  ngOnInit(): void;
25
26
  aclObjectRoleChange(aclObjectRoles: AclObjectRole[]): void;
27
+ save: () => import("rxjs").Subscription;
26
28
  close(data?: any): void;
27
29
  static ɵfac: i0.ɵɵFactoryDeclaration<FsAclEntryComponent, never>;
28
30
  static ɵcmp: i0.ɵɵComponentDeclaration<FsAclEntryComponent, "ng-component", never, {}, {}, never, never>;
@@ -11,8 +11,6 @@ export declare class FsAppAclService {
11
11
  getPermissions(): ReplaySubject<AclPermission[]>;
12
12
  getLevels(): ReplaySubject<AclLevel[]>;
13
13
  getIndexedLevels(): import("rxjs").Observable<any>;
14
- input(data: any): any;
15
- output(data: any): any;
16
14
  static ɵfac: i0.ɵɵFactoryDeclaration<FsAppAclService, never>;
17
15
  static ɵprov: i0.ɵɵInjectableDeclaration<FsAppAclService>;
18
16
  }
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/flex-layout'), require('@angular/material/input'), require('@angular/material/radio'), require('@angular/material/button'), require('@angular/material/select'), require('@angular/material/checkbox'), require('@angular/material/dialog'), require('@angular/core'), require('@angular/common'), require('@firestitch/list'), require('@firestitch/popover'), require('@firestitch/dialog'), require('@firestitch/form'), require('@firestitch/label'), require('@firestitch/radiogroup'), require('@firestitch/badge'), require('@firestitch/checkboxgroup'), require('rxjs/operators'), require('@firestitch/filter'), require('@firestitch/common'), require('rxjs'), require('lodash-es'), require('snakecase-keys'), require('camelcase-keys'), require('@firestitch/message'), require('@angular/material/form-field'), require('@angular/material/core'), require('@angular/forms'), require('@angular/flex-layout/flex'), require('@firestitch/prompt')) :
3
- typeof define === 'function' && define.amd ? define('@firestitch/app-acl', ['exports', '@angular/flex-layout', '@angular/material/input', '@angular/material/radio', '@angular/material/button', '@angular/material/select', '@angular/material/checkbox', '@angular/material/dialog', '@angular/core', '@angular/common', '@firestitch/list', '@firestitch/popover', '@firestitch/dialog', '@firestitch/form', '@firestitch/label', '@firestitch/radiogroup', '@firestitch/badge', '@firestitch/checkboxgroup', 'rxjs/operators', '@firestitch/filter', '@firestitch/common', 'rxjs', 'lodash-es', 'snakecase-keys', 'camelcase-keys', '@firestitch/message', '@angular/material/form-field', '@angular/material/core', '@angular/forms', '@angular/flex-layout/flex', '@firestitch/prompt'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["app-acl"] = {}), global.ng.flexLayout, global.ng.material.input, global.ng.material.radio, global.ng.material.button, global.ng.material.select, global.ng.material.checkbox, global.ng.material.dialog, global.ng.core, global.ng.common, global.i12, global.i2$1, global.i4, global.i15, global.i6, global.i7, global.i5$1, global.i1, global.rxjs.operators, global.filter, global.common, global.rxjs, global.lodashEs, global._snakecaseKeys, global._camelcaseKeys, global.i3, global.ng.material.formField, global.ng.material.core, global.ng.forms, global.ng.flexLayout.flex, global.i3$1));
5
- })(this, (function (exports, flexLayout, i18, i8, i13, i10, i9, i2, i0, i7$1, i12, i2$1, i4, i15, i6, i7, i5$1, i1, operators, filter, common, rxjs, lodashEs, _snakecaseKeys, _camelcaseKeys, i3, i5, i11, i14, i17, i3$1) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/flex-layout'), require('@angular/material/input'), require('@angular/material/radio'), require('@angular/material/button'), require('@angular/material/select'), require('@angular/material/checkbox'), require('@angular/material/dialog'), require('@angular/core'), require('@angular/common'), require('@firestitch/list'), require('@firestitch/popover'), require('@firestitch/dialog'), require('@firestitch/form'), require('@firestitch/label'), require('@firestitch/radiogroup'), require('@firestitch/badge'), require('@firestitch/checkboxgroup'), require('rxjs/operators'), require('@firestitch/filter'), require('@firestitch/common'), require('rxjs'), require('snakecase-keys'), require('camelcase-keys'), require('@firestitch/message'), require('@angular/material/form-field'), require('@angular/material/core'), require('@angular/forms'), require('@angular/flex-layout/flex'), require('lodash-es'), require('@firestitch/prompt')) :
3
+ typeof define === 'function' && define.amd ? define('@firestitch/app-acl', ['exports', '@angular/flex-layout', '@angular/material/input', '@angular/material/radio', '@angular/material/button', '@angular/material/select', '@angular/material/checkbox', '@angular/material/dialog', '@angular/core', '@angular/common', '@firestitch/list', '@firestitch/popover', '@firestitch/dialog', '@firestitch/form', '@firestitch/label', '@firestitch/radiogroup', '@firestitch/badge', '@firestitch/checkboxgroup', 'rxjs/operators', '@firestitch/filter', '@firestitch/common', 'rxjs', 'snakecase-keys', 'camelcase-keys', '@firestitch/message', '@angular/material/form-field', '@angular/material/core', '@angular/forms', '@angular/flex-layout/flex', 'lodash-es', '@firestitch/prompt'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["app-acl"] = {}), global.ng.flexLayout, global.ng.material.input, global.ng.material.radio, global.ng.material.button, global.ng.material.select, global.ng.material.checkbox, global.ng.material.dialog, global.ng.core, global.ng.common, global.i12, global.i2$1, global.i4, global.i15, global.i6, global.i7, global.i5$1, global.i1, global.rxjs.operators, global.filter, global.common, global.rxjs, global._snakecaseKeys, global._camelcaseKeys, global.i3, global.ng.material.formField, global.ng.material.core, global.ng.forms, global.ng.flexLayout.flex, global.lodashEs, global.i3$1));
5
+ })(this, (function (exports, flexLayout, i18, i8, i13, i10, i9, i2, i0, i7$1, i12, i2$1, i4, i15, i6, i7, i5$1, i1, operators, filter, common, rxjs, _snakecaseKeys, _camelcaseKeys, i3, i5, i11, i14, i17, lodashEs, i3$1) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -393,7 +393,6 @@
393
393
  if (!this._permissions$) {
394
394
  this._permissions$ = new rxjs.ReplaySubject();
395
395
  this._appAclConfig.permissions
396
- .pipe(operators.map(function (data) { return _this.input(data); }))
397
396
  .subscribe(function (permissions) {
398
397
  _this._permissions$.next(permissions);
399
398
  _this._permissions$.complete();
@@ -406,7 +405,6 @@
406
405
  if (!this._levels$) {
407
406
  this._levels$ = new rxjs.ReplaySubject();
408
407
  this._appAclConfig.levels
409
- .pipe(operators.map(function (data) { return _this.input(data); }))
410
408
  .subscribe(function (levels) {
411
409
  _this._levels$.next(levels);
412
410
  _this._levels$.complete();
@@ -420,28 +418,6 @@
420
418
  return common.list(data, 'name', 'value');
421
419
  }));
422
420
  };
423
- FsAppAclService.prototype.input = function (data) {
424
- var _this = this;
425
- if (lodashEs.isArray(data)) {
426
- return data.map(function (item) {
427
- return _this._appAclConfig.case === 'snake' ? camelcaseKeys(item, { deep: true }) : item;
428
- });
429
- }
430
- else {
431
- return this._appAclConfig.case === 'snake' ? camelcaseKeys(data, { deep: true }) : data;
432
- }
433
- };
434
- FsAppAclService.prototype.output = function (data) {
435
- var _this = this;
436
- if (lodashEs.isArray(data)) {
437
- return data.map(function (item) {
438
- return _this._appAclConfig.case === 'snake' ? snakecaseKeys(item, { deep: true }) : item;
439
- });
440
- }
441
- else {
442
- return this._appAclConfig.case === 'snake' ? snakecaseKeys(data, { deep: true }) : data;
443
- }
444
- };
445
421
  return FsAppAclService;
446
422
  }());
447
423
  FsAppAclService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsAppAclService, deps: [{ token: FS_APP_ACL_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
@@ -491,7 +467,7 @@
491
467
  data: item.data,
492
468
  };
493
469
  }) });
494
- return _this._data.saveAclRole(_this._appAclService.output(aclRole))
470
+ return _this._data.saveAclRole(aclRole)
495
471
  .pipe(operators.tap(function (response) {
496
472
  _this._message.success('Saved Changes');
497
473
  _this.close(response);
@@ -575,7 +551,6 @@
575
551
  });
576
552
  };
577
553
  FsAclRoleComponent.prototype.getRole = function () {
578
- var _this = this;
579
554
  if (!this._data.aclRole.id) {
580
555
  return rxjs.of(this._data.aclRole);
581
556
  }
@@ -586,8 +561,7 @@
586
561
  if (!this.environment) {
587
562
  query.environmentId = null;
588
563
  }
589
- return this._data.loadAclRole(this._data.aclRole, query)
590
- .pipe(operators.map(function (data) { return _this._appAclService.input(data); }));
564
+ return this._data.loadAclRole(this._data.aclRole, query);
591
565
  };
592
566
  FsAclRoleComponent.prototype.close = function (data) {
593
567
  if (data === void 0) { data = null; }
@@ -765,7 +739,7 @@
765
739
  rowActions: [
766
740
  {
767
741
  click: function (data) {
768
- return _this.deleteAclRole(_this._appAclService.output(data));
742
+ return _this.deleteAclRole(data);
769
743
  },
770
744
  remove: {
771
745
  title: 'Confirm',
@@ -779,7 +753,7 @@
779
753
  fetch: function (query) {
780
754
  query.permissions = true;
781
755
  return _this.loadAclRoles(query)
782
- .pipe(operators.map(function (data) { return _this._appAclService.input(data); }));
756
+ .pipe(operators.map(function (data) { return data; }));
783
757
  },
784
758
  };
785
759
  };
@@ -900,12 +874,14 @@
900
874
  this._message = _message;
901
875
  this._data = _data;
902
876
  this.aclRoles = [];
877
+ this.aclEntries = [];
903
878
  this.indexedAclRoleLevels = {};
904
879
  this.titleEdit = 'Edit Roles';
905
880
  this.titleAdd = 'Assign Roles';
906
881
  this.required = true;
907
882
  this.save = function () {
908
- return _this._data.saveAclObjectEntry(_this._appAclService.output(_this.aclObjectEntry))
883
+ var aclObjectEntry = Object.assign(Object.assign({}, _this.aclObjectEntry), { aclEntries: _this.aclEntries });
884
+ return _this._data.saveAclObjectEntry(aclObjectEntry)
909
885
  .subscribe(function (data) {
910
886
  _this._message.success('Saved Changes');
911
887
  _this.close(data);
@@ -922,8 +898,7 @@
922
898
  }
923
899
  FsAclEntryComponent.prototype.ngOnInit = function () {
924
900
  var _this = this;
925
- rxjs.forkJoin(this._data.loadAclRoles(this.aclObjectEntry)
926
- .pipe(operators.map(function (data) { return _this._appAclService.input(data); })), this._appAclService.getIndexedLevels())
901
+ rxjs.forkJoin(this._data.loadAclRoles(this.aclObjectEntry), this._appAclService.getIndexedLevels())
927
902
  .subscribe(function (_b) {
928
903
  var _c = __read(_b, 2), aclRoles = _c[0], levels = _c[1];
929
904
  _this.aclRoles = aclRoles;
@@ -933,12 +908,12 @@
933
908
  aclRoles: _this.aclObjectEntry.aclEntries
934
909
  .map(function (aclEntry) {
935
910
  return aclEntry.aclRole;
936
- })
911
+ }),
937
912
  };
938
913
  });
939
914
  };
940
915
  FsAclEntryComponent.prototype.aclObjectRoleChange = function (aclObjectRoles) {
941
- this.aclObjectEntry.aclEntries = aclObjectRoles.reduce(function (aclEntries, aclObjectRole) {
916
+ this.aclEntries = aclObjectRoles.reduce(function (aclEntries, aclObjectRole) {
942
917
  aclObjectRole.aclRoles.forEach(function (aclRole) {
943
918
  aclEntries.push({
944
919
  aclRoleId: aclRole.id,
@@ -1003,7 +978,7 @@
1003
978
  title: 'Remove All Roles',
1004
979
  template: 'Are you sure you would like to remove all roles?',
1005
980
  }).subscribe(function () {
1006
- var data = _this._appAclService.output(Object.assign(Object.assign({}, aclObjectEntry), { aclEntries: [] }));
981
+ var data = Object.assign(Object.assign({}, aclObjectEntry), { aclEntries: [] });
1007
982
  _this.saveAclObjectEntry(data)
1008
983
  .subscribe(function () {
1009
984
  _this.aclEntriesList.reload();
@@ -1020,32 +995,31 @@
1020
995
  objects: true,
1021
996
  aclRoleState: 'active',
1022
997
  })
1023
- .pipe(operators.map(function (response) { return _this._appAclService.input(response); }))
1024
998
  .subscribe(function (aclEntries) {
1025
- var objects = aclEntries.reduce(function (items, item) {
1026
- if (item.object) {
1027
- items[item.object.id] = item.object;
1028
- }
1029
- return items;
999
+ var objects = aclEntries
1000
+ .filter(function (aclEntry) { return (!!aclEntry.object); })
1001
+ .reduce(function (items, item) {
1002
+ var _a;
1003
+ return Object.assign(Object.assign({}, items), (_a = {}, _a[item.object.id] = item.object, _a));
1030
1004
  }, {});
1031
- var environments = aclEntries.reduce(function (items, item) {
1032
- if (item.environment) {
1033
- items[item.environment.id] = item.environment;
1034
- }
1035
- return items;
1005
+ var environments = aclEntries
1006
+ .filter(function (aclEntry) { return (!!aclEntry.environment); })
1007
+ .reduce(function (items, item) {
1008
+ var _a;
1009
+ return Object.assign(Object.assign({}, items), (_a = {}, _a[item.environment.id] = item.environment, _a));
1036
1010
  }, {});
1037
1011
  var aclObjectEntry = [];
1038
- var grouped = lodashEs.groupBy(aclEntries, function (item) {
1012
+ var groupedAclEntries = lodashEs.groupBy(aclEntries, function (item) {
1039
1013
  return [item.aclRole.level, item.environmentId, item.objectId];
1040
1014
  });
1041
- lodashEs.forOwn(grouped, function (group, key) {
1015
+ lodashEs.forOwn(groupedAclEntries, function (aclEntries, key) {
1042
1016
  key = key.split(',');
1043
1017
  aclObjectEntry.push({
1044
1018
  object: objects[key[2]],
1045
1019
  level: key[0],
1046
1020
  environmentId: key[1] ? parseInt(key[1]) : null,
1047
1021
  environment: environments[key[1]],
1048
- aclEntries: group,
1022
+ aclEntries: aclEntries,
1049
1023
  });
1050
1024
  });
1051
1025
  var hasApp = aclObjectEntry.some(function (item) {
@@ -1055,7 +1029,8 @@
1055
1029
  });
1056
1030
  if (!hasApp) {
1057
1031
  aclObjectEntry.unshift({
1058
- object: null, aclEntries: [],
1032
+ object: null,
1033
+ aclEntries: [],
1059
1034
  level: 'app',
1060
1035
  environmentId: null,
1061
1036
  });
@@ -1097,7 +1072,7 @@
1097
1072
  return FsAclEntriesComponent;
1098
1073
  }());
1099
1074
  FsAclEntriesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsAclEntriesComponent, deps: [{ token: FsAppAclService }, { token: i2__namespace.MatDialog }, { token: i3__namespace$1.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
1100
- FsAclEntriesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsAclEntriesComponent, selector: "fs-acl-entries", inputs: { loadAclEntries: "loadAclEntries", loadAclRoles: "loadAclRoles", saveAclObjectEntry: "saveAclObjectEntry", environmentShow: "environmentShow", environmentLabel: "environmentLabel", actions: "actions" }, viewQueries: [{ propertyName: "aclEntriesList", first: true, predicate: i12.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "\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", styles: [""], components: [{ type: i12__namespace.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i5__namespace$1.FsBadgeComponent, selector: "fs-badge", inputs: ["color", "text", "tooltip", "size", "shape", "image", "icon", "iconSize", "iconColor", "backgroundSize"] }, { type: FsAclRolePopoverComponent, selector: "fs-acl-role-popover", inputs: ["aclRole", "objectName"] }], directives: [{ type: i12__namespace.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i12__namespace.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i12__namespace.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i7__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i17__namespace.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i17__namespace.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i17__namespace.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i7__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7__namespace$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
1075
+ FsAclEntriesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsAclEntriesComponent, selector: "fs-acl-entries", inputs: { loadAclEntries: "loadAclEntries", loadAclRoles: "loadAclRoles", saveAclObjectEntry: "saveAclObjectEntry", environmentShow: "environmentShow", environmentLabel: "environmentLabel", actions: "actions" }, viewQueries: [{ propertyName: "aclEntriesList", first: true, predicate: i12.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "\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", styles: [""], components: [{ type: i12__namespace.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i5__namespace$1.FsBadgeComponent, selector: "fs-badge", inputs: ["color", "text", "tooltip", "size", "shape", "image", "icon", "iconSize", "iconColor", "backgroundSize"] }, { type: FsAclRolePopoverComponent, selector: "fs-acl-role-popover", inputs: ["aclRole", "objectName"] }], directives: [{ type: i12__namespace.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i12__namespace.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i12__namespace.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i7__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i17__namespace.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i17__namespace.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i17__namespace.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i7__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7__namespace$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
1101
1076
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsAclEntriesComponent, decorators: [{
1102
1077
  type: i0.Component,
1103
1078
  args: [{