@memberjunction/ng-entity-permissions 1.0.9 → 1.1.0

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.
@@ -1,5 +1,4 @@
1
1
  import { EventEmitter, OnInit, SimpleChanges, OnChanges } from '@angular/core';
2
- import { kendoSVGIcon } from '@memberjunction/ng-shared';
3
2
  import { EntityPermissionEntity } from '@memberjunction/core-entities';
4
3
  import * as i0 from "@angular/core";
5
4
  export type EntityPermissionChangedEvent = {
@@ -18,7 +17,6 @@ export declare class EntityPermissionsGridComponent implements OnInit, OnChanges
18
17
  permissions: EntityPermissionEntity[];
19
18
  gridHeight: number;
20
19
  isLoading: boolean;
21
- kendoSVGIcon: typeof kendoSVGIcon;
22
20
  constructor();
23
21
  ngOnInit(): void;
24
22
  ngOnChanges(changes: SimpleChanges): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-permissions-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC9D,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,qBAKa,8BAA+B,YAAW,MAAM,EAAE,SAAS;IAC7D,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAY;IACnC,UAAU,EAAG,MAAM,CAAC;IACpB,QAAQ,EAAG,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAK;IAExB,iBAAiB,6CAAoD;IAExE,WAAW,EAAE,sBAAsB,EAAE,CAAM;IAC3C,UAAU,EAAE,MAAM,CAAO;IACzB,SAAS,EAAE,OAAO,CAAS;IAG3B,YAAY,sBAAe;;IAKlC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa;IAOlC,cAAc;IAMR,OAAO;IAyFA,eAAe;IAkBf,UAAU;IAWvB,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,GAAG,OAAO;IAS9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ;IAoDhE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB;IAO/D,OAAO,CAAC,UAAU,EAAE,sBAAsB;IA0B1C,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,cAAc,EAAE,OAAO;yCA3PpJ,8BAA8B;2CAA9B,8BAA8B;CAyR1C"}
1
+ {"version":3,"file":"entity-permissions-grid.component.d.ts","sourceRoot":"","sources":["../../../src/lib/grid/entity-permissions-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;;AAGvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC9D,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,qBAKa,8BAA+B,YAAW,MAAM,EAAE,SAAS;IAC7D,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAY;IACnC,UAAU,EAAG,MAAM,CAAC;IACpB,QAAQ,EAAG,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAK;IAExB,iBAAiB,6CAAoD;IAExE,WAAW,EAAE,sBAAsB,EAAE,CAAM;IAC3C,UAAU,EAAE,MAAM,CAAO;IACzB,SAAS,EAAE,OAAO,CAAS;;IAKlC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa;IAOlC,cAAc;IAMR,OAAO;IAyFA,eAAe;IAkBf,UAAU;IAWvB,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,GAAG,OAAO;IAS9D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ;IAoDhE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB;IAO/D,OAAO,CAAC,UAAU,EAAE,sBAAsB;IA0B1C,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,cAAc,EAAE,OAAO;yCAxPpJ,8BAA8B;2CAA9B,8BAA8B;CAsR1C"}
@@ -9,13 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { Component, Output, EventEmitter, Input } from '@angular/core';
11
11
  import { Metadata, RunView } from '@memberjunction/core';
12
- import { kendoSVGIcon } from '@memberjunction/ng-shared';
13
12
  import * as i0 from "@angular/core";
14
13
  import * as i1 from "@angular/common";
15
14
  import * as i2 from "@angular/forms";
16
15
  import * as i3 from "@progress/kendo-angular-buttons";
17
- import * as i4 from "@progress/kendo-angular-icons";
18
- import * as i5 from "@progress/kendo-angular-indicators";
16
+ import * as i4 from "@progress/kendo-angular-indicators";
19
17
  function EntityPermissionsGridComponent_div_1_Template(rf, ctx) { if (rf & 1) {
20
18
  i0.ɵɵelementStart(0, "div");
21
19
  i0.ɵɵelement(1, "kendo-loader");
@@ -31,7 +29,7 @@ function EntityPermissionsGridComponent_table_6_th_4_Template(rf, ctx) { if (rf
31
29
  i0.ɵɵtext(1, "Entity");
32
30
  i0.ɵɵelementEnd();
33
31
  } }
34
- function EntityPermissionsGridComponent_table_6_tr_14_span_2_Template(rf, ctx) { if (rf & 1) {
32
+ function EntityPermissionsGridComponent_table_6_tr_14_Conditional_2_Template(rf, ctx) { if (rf & 1) {
35
33
  i0.ɵɵelementStart(0, "span");
36
34
  i0.ɵɵtext(1);
37
35
  i0.ɵɵelementEnd();
@@ -40,7 +38,7 @@ function EntityPermissionsGridComponent_table_6_tr_14_span_2_Template(rf, ctx) {
40
38
  i0.ɵɵadvance();
41
39
  i0.ɵɵtextInterpolate1(" ", permission_r5.RoleName, " ");
42
40
  } }
43
- function EntityPermissionsGridComponent_table_6_tr_14_span_3_Template(rf, ctx) { if (rf & 1) {
41
+ function EntityPermissionsGridComponent_table_6_tr_14_Conditional_3_Template(rf, ctx) { if (rf & 1) {
44
42
  i0.ɵɵelementStart(0, "span");
45
43
  i0.ɵɵtext(1);
46
44
  i0.ɵɵelementEnd();
@@ -49,20 +47,17 @@ function EntityPermissionsGridComponent_table_6_tr_14_span_3_Template(rf, ctx) {
49
47
  i0.ɵɵadvance();
50
48
  i0.ɵɵtextInterpolate1(" ", permission_r5.Entity, " ");
51
49
  } }
52
- function EntityPermissionsGridComponent_table_6_tr_14_kendo_svgicon_4_Template(rf, ctx) { if (rf & 1) {
50
+ function EntityPermissionsGridComponent_table_6_tr_14_Conditional_4_Template(rf, ctx) { if (rf & 1) {
53
51
  const _r13 = i0.ɵɵgetCurrentView();
54
- i0.ɵɵelementStart(0, "kendo-svgicon", 10);
55
- i0.ɵɵlistener("click", function EntityPermissionsGridComponent_table_6_tr_14_kendo_svgicon_4_Template_kendo_svgicon_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const permission_r5 = i0.ɵɵnextContext().$implicit; const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r11.revertRow($event, permission_r5)); });
52
+ i0.ɵɵelementStart(0, "span", 10);
53
+ i0.ɵɵlistener("click", function EntityPermissionsGridComponent_table_6_tr_14_Conditional_4_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const permission_r5 = i0.ɵɵnextContext().$implicit; const ctx_r11 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r11.revertRow($event, permission_r5)); });
56
54
  i0.ɵɵelementEnd();
57
- } if (rf & 2) {
58
- const ctx_r8 = i0.ɵɵnextContext(3);
59
- i0.ɵɵproperty("icon", ctx_r8.kendoSVGIcon("arrowRotateCcwSmallIcon"));
60
55
  } }
61
56
  function EntityPermissionsGridComponent_table_6_tr_14_Template(rf, ctx) { if (rf & 1) {
62
57
  const _r15 = i0.ɵɵgetCurrentView();
63
58
  i0.ɵɵelementStart(0, "tr", 6)(1, "td", 7);
64
59
  i0.ɵɵlistener("click", function EntityPermissionsGridComponent_table_6_tr_14_Template_td_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const permission_r5 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.flipRow(permission_r5)); });
65
- i0.ɵɵtemplate(2, EntityPermissionsGridComponent_table_6_tr_14_span_2_Template, 2, 1, "span", 0)(3, EntityPermissionsGridComponent_table_6_tr_14_span_3_Template, 2, 1, "span", 0)(4, EntityPermissionsGridComponent_table_6_tr_14_kendo_svgicon_4_Template, 1, 1, "kendo-svgicon", 8);
60
+ i0.ɵɵtemplate(2, EntityPermissionsGridComponent_table_6_tr_14_Conditional_2_Template, 2, 1, "span")(3, EntityPermissionsGridComponent_table_6_tr_14_Conditional_3_Template, 2, 1)(4, EntityPermissionsGridComponent_table_6_tr_14_Conditional_4_Template, 1, 0, "span", 8);
66
61
  i0.ɵɵelementEnd();
67
62
  i0.ɵɵelementStart(5, "td", 4);
68
63
  i0.ɵɵlistener("click", function EntityPermissionsGridComponent_table_6_tr_14_Template_td_click_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r15); const permission_r5 = restoredCtx.$implicit; const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.flipPermission($event, permission_r5, "Read", true)); });
@@ -93,11 +88,9 @@ function EntityPermissionsGridComponent_table_6_tr_14_Template(rf, ctx) { if (rf
93
88
  const ctx_r4 = i0.ɵɵnextContext(2);
94
89
  i0.ɵɵproperty("ngClass", ctx_r4.IsPermissionReallyDirty(permission_r5) ? "dirty-row" : "");
95
90
  i0.ɵɵadvance(2);
96
- i0.ɵɵproperty("ngIf", ctx_r4.Mode === "Entity");
97
- i0.ɵɵadvance();
98
- i0.ɵɵproperty("ngIf", ctx_r4.Mode === "Role");
99
- i0.ɵɵadvance();
100
- i0.ɵɵproperty("ngIf", ctx_r4.IsPermissionReallyDirty(permission_r5));
91
+ i0.ɵɵconditional(2, ctx_r4.Mode === "Entity" ? 2 : ctx_r4.Mode === "Role" ? 3 : -1);
92
+ i0.ɵɵadvance(2);
93
+ i0.ɵɵconditional(4, ctx_r4.IsPermissionReallyDirty(permission_r5) ? 4 : -1);
101
94
  i0.ɵɵadvance(2);
102
95
  i0.ɵɵtwoWayProperty("ngModel", permission_r5.CanRead);
103
96
  i0.ɵɵadvance(2);
@@ -128,7 +121,7 @@ function EntityPermissionsGridComponent_table_6_Template(rf, ctx) { if (rf & 1)
128
121
  i0.ɵɵtext(12, "Delete");
129
122
  i0.ɵɵelementEnd()()();
130
123
  i0.ɵɵelementStart(13, "tbody");
131
- i0.ɵɵtemplate(14, EntityPermissionsGridComponent_table_6_tr_14_Template, 13, 8, "tr", 5);
124
+ i0.ɵɵtemplate(14, EntityPermissionsGridComponent_table_6_tr_14_Template, 13, 7, "tr", 5);
132
125
  i0.ɵɵelementEnd()();
133
126
  } if (rf & 2) {
134
127
  const ctx_r1 = i0.ɵɵnextContext();
@@ -147,7 +140,6 @@ export class EntityPermissionsGridComponent {
147
140
  this.permissions = [];
148
141
  this.gridHeight = 750;
149
142
  this.isLoading = false;
150
- this.kendoSVGIcon = kendoSVGIcon;
151
143
  }
152
144
  ngOnInit() {
153
145
  this.Refresh();
@@ -400,7 +392,7 @@ export class EntityPermissionsGridComponent {
400
392
  }
401
393
  }
402
394
  EntityPermissionsGridComponent.ɵfac = function EntityPermissionsGridComponent_Factory(t) { return new (t || EntityPermissionsGridComponent)(); };
403
- EntityPermissionsGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsGridComponent, selectors: [["mj-entity-permissions-grid"]], inputs: { Mode: "Mode", EntityName: "EntityName", RoleName: "RoleName", BottomMargin: "BottomMargin" }, outputs: { PermissionChanged: "PermissionChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [[4, "ngIf"], ["kendoButton", "", 3, "disabled", "click"], ["class", "grid", 4, "ngIf"], [1, "grid"], [3, "click"], [3, "ngClass", 4, "ngFor", "ngForOf"], [3, "ngClass"], [1, "permission-left-col", 3, "click"], [3, "icon", "click", 4, "ngIf"], ["type", "checkbox", "kendoCheckBox", "", 3, "ngModel", "ngModelChange", "click"], [3, "icon", "click"]], template: function EntityPermissionsGridComponent_Template(rf, ctx) { if (rf & 1) {
395
+ EntityPermissionsGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityPermissionsGridComponent, selectors: [["mj-entity-permissions-grid"]], inputs: { Mode: "Mode", EntityName: "EntityName", RoleName: "RoleName", BottomMargin: "BottomMargin" }, outputs: { PermissionChanged: "PermissionChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [[4, "ngIf"], ["kendoButton", "", 3, "disabled", "click"], ["class", "grid", 4, "ngIf"], [1, "grid"], [3, "click"], [3, "ngClass", 4, "ngFor", "ngForOf"], [3, "ngClass"], [1, "permission-left-col", 3, "click"], ["class", "fa-solid fa-arrow-rotate-left"], ["type", "checkbox", "kendoCheckBox", "", 3, "ngModel", "ngModelChange", "click"], [1, "fa-solid", "fa-arrow-rotate-left", 3, "click"]], template: function EntityPermissionsGridComponent_Template(rf, ctx) { if (rf & 1) {
404
396
  i0.ɵɵelementStart(0, "div");
405
397
  i0.ɵɵtemplate(1, EntityPermissionsGridComponent_div_1_Template, 2, 0, "div", 0);
406
398
  i0.ɵɵelementStart(2, "button", 1);
@@ -422,10 +414,10 @@ EntityPermissionsGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ ty
422
414
  i0.ɵɵproperty("disabled", ctx.NumDirtyPermissions === 0);
423
415
  i0.ɵɵadvance(2);
424
416
  i0.ɵɵproperty("ngIf", !ctx.isLoading);
425
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ButtonComponent, i4.SVGIconComponent, i5.LoaderComponent], styles: ["\n\ntable[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; \n\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n cursor: pointer;\n}\n\n.permission-left-col[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n border: 1px solid gray; \n\n height: 36px; \n\n text-align: center;\n padding: 0 8px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n min-width: 150px; \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:not(:first-child), table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child) {\n width: 100px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd) {\n background-color: white; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #e7f4ff; \n\n}\n\ntable[_ngcontent-%COMP%] tr.dirty-row[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}"] });
417
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ButtonComponent, i4.LoaderComponent], styles: ["\n\ntable[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; \n\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n cursor: pointer;\n}\n\n.permission-left-col[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n border: 1px solid gray; \n\n height: 36px; \n\n text-align: center;\n padding: 0 8px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n min-width: 150px; \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:not(:first-child), table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child) {\n width: 100px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd) {\n background-color: white; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #e7f4ff; \n\n}\n\ntable[_ngcontent-%COMP%] tr.dirty-row[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}"] });
426
418
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityPermissionsGridComponent, [{
427
419
  type: Component,
428
- args: [{ selector: 'mj-entity-permissions-grid', template: "<div>\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"savePermissions()\">Save</button>\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"cancelEdit()\">Cancel</button>\n <table *ngIf=\"!isLoading\" class=\"grid\">\n <thead>\n <tr>\n <th *ngIf=\"this.Mode==='Entity'\">Role</th>\n <th *ngIf=\"this.Mode==='Role'\">Entity</th>\n <th (click)=\"flipAllPermissions('Read')\">Read</th>\n <th (click)=\"flipAllPermissions('Create')\">Create</th>\n <th (click)=\"flipAllPermissions('Update')\">Update</th>\n <th (click)=\"flipAllPermissions('Delete')\">Delete</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of permissions\" [ngClass]=\"IsPermissionReallyDirty(permission) ? 'dirty-row' : ''\">\n <td class=\"permission-left-col\" (click)=\"flipRow(permission)\">\n <span *ngIf=\"this.Mode==='Entity'\">\n {{ permission.RoleName }}\n </span>\n <span *ngIf=\"this.Mode==='Role'\">\n {{ permission.Entity }}\n </span>\n <kendo-svgicon *ngIf=\"IsPermissionReallyDirty(permission)\" \n [icon]=\"kendoSVGIcon('arrowRotateCcwSmallIcon')\" \n (click)=\"revertRow($event, permission)\"></kendo-svgicon></td>\n <td (click)=\"flipPermission($event, permission, 'Read', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanRead\" (click)=\"flipPermission($event, permission, 'Read', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Create', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanCreate\" (click)=\"flipPermission($event, permission, 'Create', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Update', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanUpdate\" (click)=\"flipPermission($event, permission, 'Update', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Delete', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanDelete\" (click)=\"flipPermission($event, permission, 'Delete', false)\">\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n ", styles: ["/* Style for the whole table */\ntable {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; /* Ensures border collapse for a cleaner look */\n}\n\nbutton {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n cursor: pointer;\n}\n\n.permission-left-col {\n cursor: pointer;\n}\n\n/* Style for all table cells */\ntable th, table td {\n border: 1px solid gray; /* Gray border for cells */\n height: 36px; /* Fixed height for all rows */\n text-align: center;\n padding: 0 8px; /* Add some padding inside cells */\n}\n\n/* Specific styles for the first column */\ntable th:first-child, table td:first-child {\n min-width: 150px; /* Set width for the first column */\n text-align: left;\n}\n\n/* Specific styles for the \"Can\" columns */\ntable th:not(:first-child), table td:not(:first-child) {\n width: 100px; /* Set width for \"Can\" columns */\n}\n\n/* Alternating row background colors */\ntable tr:nth-child(odd) {\n background-color: white; /* Light color for odd rows */\n}\n\ntable tr:nth-child(even) {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\ntable tr.dirty-row {\n font-style: italic;\n background-color: #ffcccc;\n}\n\n"] }]
420
+ args: [{ selector: 'mj-entity-permissions-grid', template: "<div>\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"savePermissions()\">Save</button>\n <button [disabled]=\"NumDirtyPermissions === 0\" kendoButton (click)=\"cancelEdit()\">Cancel</button>\n <table *ngIf=\"!isLoading\" class=\"grid\">\n <thead>\n <tr>\n <th *ngIf=\"this.Mode==='Entity'\">Role</th>\n <th *ngIf=\"this.Mode==='Role'\">Entity</th>\n <th (click)=\"flipAllPermissions('Read')\">Read</th>\n <th (click)=\"flipAllPermissions('Create')\">Create</th>\n <th (click)=\"flipAllPermissions('Update')\">Update</th>\n <th (click)=\"flipAllPermissions('Delete')\">Delete</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of permissions\" [ngClass]=\"IsPermissionReallyDirty(permission) ? 'dirty-row' : ''\">\n <td class=\"permission-left-col\" (click)=\"flipRow(permission)\">\n @if(this.Mode === 'Entity') {\n <span>\n {{ permission.RoleName }}\n </span> \n }\n @else if(this.Mode === 'Role') {\n <span>\n {{ permission.Entity }}\n </span>\n }\n\n @if(IsPermissionReallyDirty(permission)) {\n <span class=\"fa-solid fa-arrow-rotate-left\" (click)=\"revertRow($event, permission)\"></span>\n }\n </td>\n <td (click)=\"flipPermission($event, permission, 'Read', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanRead\" (click)=\"flipPermission($event, permission, 'Read', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Create', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanCreate\" (click)=\"flipPermission($event, permission, 'Create', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Update', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanUpdate\" (click)=\"flipPermission($event, permission, 'Update', false)\">\n </td>\n <td (click)=\"flipPermission($event, permission, 'Delete', true)\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"permission.CanDelete\" (click)=\"flipPermission($event, permission, 'Delete', false)\">\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n ", styles: ["/* Style for the whole table */\ntable {\n margin-left: 5px;\n margin-top: 5px;\n border-collapse: collapse; /* Ensures border collapse for a cleaner look */\n}\n\nbutton {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n cursor: pointer;\n}\n\n.permission-left-col {\n cursor: pointer;\n}\n\n/* Style for all table cells */\ntable th, table td {\n border: 1px solid gray; /* Gray border for cells */\n height: 36px; /* Fixed height for all rows */\n text-align: center;\n padding: 0 8px; /* Add some padding inside cells */\n}\n\n/* Specific styles for the first column */\ntable th:first-child, table td:first-child {\n min-width: 150px; /* Set width for the first column */\n text-align: left;\n}\n\n/* Specific styles for the \"Can\" columns */\ntable th:not(:first-child), table td:not(:first-child) {\n width: 100px; /* Set width for \"Can\" columns */\n}\n\n/* Alternating row background colors */\ntable tr:nth-child(odd) {\n background-color: white; /* Light color for odd rows */\n}\n\ntable tr:nth-child(even) {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\ntable tr.dirty-row {\n font-style: italic;\n background-color: #ffcccc;\n}\n\n"] }]
429
421
  }], () => [], { Mode: [{
430
422
  type: Input
431
423
  }], EntityName: [{
@@ -437,4 +429,4 @@ EntityPermissionsGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ ty
437
429
  }], PermissionChanged: [{
438
430
  type: Output
439
431
  }] }); })();
440
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsGridComponent, { className: "EntityPermissionsGridComponent", filePath: "src/lib/grid/entity-permissions-grid.component.ts", lineNumber: 21 }); })();
432
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityPermissionsGridComponent, { className: "EntityPermissionsGridComponent", filePath: "src/lib/grid/entity-permissions-grid.component.ts", lineNumber: 20 }); })();
@@ -9,12 +9,11 @@ import * as i7 from "@progress/kendo-angular-excel-export";
9
9
  import * as i8 from "@memberjunction/ng-compare-records";
10
10
  import * as i9 from "@memberjunction/ng-container-directives";
11
11
  import * as i10 from "@progress/kendo-angular-buttons";
12
- import * as i11 from "@progress/kendo-angular-icons";
13
- import * as i12 from "@progress/kendo-angular-dropdowns";
14
- import * as i13 from "@progress/kendo-angular-indicators";
12
+ import * as i11 from "@progress/kendo-angular-dropdowns";
13
+ import * as i12 from "@progress/kendo-angular-indicators";
15
14
  export declare class EntityPermissionsModule {
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<EntityPermissionsModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<EntityPermissionsModule, [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent], [typeof i3.CommonModule, typeof i4.GridModule, typeof i5.FormsModule, typeof i6.DialogsModule, typeof i7.ExcelExportModule, typeof i8.CompareRecordsModule, typeof i9.ContainerDirectivesModule, typeof i10.ButtonsModule, typeof i11.IconsModule, typeof i12.DropDownsModule, typeof i13.IndicatorsModule], [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent]>;
16
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EntityPermissionsModule, [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent], [typeof i3.CommonModule, typeof i4.GridModule, typeof i5.FormsModule, typeof i6.DialogsModule, typeof i7.ExcelExportModule, typeof i8.CompareRecordsModule, typeof i9.ContainerDirectivesModule, typeof i10.ButtonsModule, typeof i11.DropDownsModule, typeof i12.IndicatorsModule], [typeof i1.EntityPermissionsGridComponent, typeof i2.EntityPermissionsSelectorWithGridComponent]>;
18
17
  static ɵinj: i0.ɵɵInjectorDeclaration<EntityPermissionsModule>;
19
18
  }
20
19
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,qBAuBa,uBAAuB;yCAAvB,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAAI"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,qBAsBa,uBAAuB;yCAAvB,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAAI"}
@@ -6,7 +6,6 @@ import { GridModule } from '@progress/kendo-angular-grid';
6
6
  import { ExcelExportModule } from '@progress/kendo-angular-excel-export';
7
7
  import { DialogsModule } from "@progress/kendo-angular-dialog";
8
8
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
9
- import { IconsModule } from '@progress/kendo-angular-icons';
10
9
  import { CompareRecordsModule } from '@memberjunction/ng-compare-records';
11
10
  import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
12
11
  import { FormsModule } from '@angular/forms';
@@ -26,7 +25,6 @@ EntityPermissionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
26
25
  CompareRecordsModule,
27
26
  ContainerDirectivesModule,
28
27
  ButtonsModule,
29
- IconsModule,
30
28
  DropDownsModule,
31
29
  IndicatorsModule] });
32
30
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityPermissionsModule, [{
@@ -45,7 +43,6 @@ EntityPermissionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
45
43
  CompareRecordsModule,
46
44
  ContainerDirectivesModule,
47
45
  ButtonsModule,
48
- IconsModule,
49
46
  DropDownsModule,
50
47
  IndicatorsModule
51
48
  ],
@@ -64,7 +61,6 @@ EntityPermissionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
64
61
  CompareRecordsModule,
65
62
  ContainerDirectivesModule,
66
63
  ButtonsModule,
67
- IconsModule,
68
64
  DropDownsModule,
69
65
  IndicatorsModule], exports: [EntityPermissionsGridComponent,
70
66
  EntityPermissionsSelectorWithGridComponent] }); })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-entity-permissions",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "description": "MemberJunction: Angular components for displaying/editing permissions for an entity, and related components.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,11 +25,11 @@
25
25
  "@angular/router": "~17.2.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core-entities": "^1.0.9",
29
- "@memberjunction/global": "^1.0.9",
30
- "@memberjunction/core": "^1.0.9",
31
- "@memberjunction/ng-container-directives": "^1.0.9",
32
- "@memberjunction/ng-shared": "^1.0.9",
28
+ "@memberjunction/core-entities": "~1.1.0",
29
+ "@memberjunction/global": "~1.1.0",
30
+ "@memberjunction/core": "~1.1.0",
31
+ "@memberjunction/ng-container-directives": "~1.1.0",
32
+ "@memberjunction/ng-shared": "~1.1.0",
33
33
  "@progress/kendo-angular-dropdowns": "~15.1.0",
34
34
  "@progress/kendo-angular-grid": "~15.1.0",
35
35
  "@progress/kendo-angular-buttons": "~15.1.0",