@memberjunction/ng-explorer-settings 0.9.34 → 1.0.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.
@@ -202,6 +202,7 @@ export class ApplicationEntitiesGridComponent {
202
202
  const ae = yield md.GetEntityObject('Application Entities');
203
203
  ae.NewRecord();
204
204
  ae.Sequence = 1000; // default value, isn't used anywhere
205
+ ae.DefaultForNewUser = false; // not used anywhere
205
206
  ae.ApplicationName = this.ApplicationName;
206
207
  ae.Set('Application', this.ApplicationName); // use weak typing to get around the readonly property
207
208
  ae.SavedApplicationName = this.ApplicationName; // stash this in an extra property so we can later set it if we have a delete operation
@@ -16,13 +16,13 @@ import * as i14 from "@progress/kendo-angular-buttons";
16
16
  import * as i15 from "@progress/kendo-angular-icons";
17
17
  import * as i16 from "@progress/kendo-angular-dropdowns";
18
18
  import * as i17 from "@memberjunction/ng-entity-permissions";
19
- import * as i18 from "@progress/kendo-angular-layout";
19
+ import * as i18 from "@memberjunction/ng-tabstrip";
20
20
  import * as i19 from "@memberjunction/ng-entity-form-dialog";
21
21
  import * as i20 from "@progress/kendo-angular-indicators";
22
22
  import * as i21 from "@memberjunction/ng-user-view-grid";
23
23
  import * as i22 from "@memberjunction/ng-simple-record-list";
24
24
  export declare class ExplorerSettingsModule {
25
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ExplorerSettingsModule, never>;
26
- static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerSettingsModule, [typeof i1.SingleRoleComponent, typeof i2.SettingsComponent, typeof i3.UserRolesGridComponent, typeof i4.SingleUserComponent, typeof i5.SingleApplicationComponent, typeof i6.ApplicationEntitiesGridComponent], [typeof i7.CommonModule, typeof i8.GridModule, typeof i9.FormsModule, typeof i10.DialogsModule, typeof i11.ExcelExportModule, typeof i12.CompareRecordsModule, typeof i13.ContainerDirectivesModule, typeof i14.ButtonsModule, typeof i15.IconsModule, typeof i16.DropDownsModule, typeof i17.EntityPermissionsModule, typeof i18.TabStripModule, typeof i10.DialogsModule, typeof i19.EntityFormDialogModule, typeof i20.IndicatorsModule, typeof i21.UserViewGridModule, typeof i22.SimpleRecordListModule], [typeof i1.SingleRoleComponent, typeof i2.SettingsComponent, typeof i3.UserRolesGridComponent, typeof i4.SingleUserComponent, typeof i5.SingleApplicationComponent, typeof i6.ApplicationEntitiesGridComponent]>;
26
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerSettingsModule, [typeof i1.SingleRoleComponent, typeof i2.SettingsComponent, typeof i3.UserRolesGridComponent, typeof i4.SingleUserComponent, typeof i5.SingleApplicationComponent, typeof i6.ApplicationEntitiesGridComponent], [typeof i7.CommonModule, typeof i8.GridModule, typeof i9.FormsModule, typeof i10.DialogsModule, typeof i11.ExcelExportModule, typeof i12.CompareRecordsModule, typeof i13.ContainerDirectivesModule, typeof i14.ButtonsModule, typeof i15.IconsModule, typeof i16.DropDownsModule, typeof i17.EntityPermissionsModule, typeof i18.MJTabStripModule, typeof i10.DialogsModule, typeof i19.EntityFormDialogModule, typeof i20.IndicatorsModule, typeof i21.UserViewGridModule, typeof i22.SimpleRecordListModule], [typeof i1.SingleRoleComponent, typeof i2.SettingsComponent, typeof i3.UserRolesGridComponent, typeof i4.SingleUserComponent, typeof i5.SingleApplicationComponent, typeof i6.ApplicationEntitiesGridComponent]>;
27
27
  static ɵinj: i0.ɵɵInjectorDeclaration<ExplorerSettingsModule>;
28
28
  }
@@ -1,33 +1,33 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
3
4
  // Kendo UI Angular imports
4
5
  import { GridModule } from '@progress/kendo-angular-grid';
5
6
  import { ExcelExportModule } from '@progress/kendo-angular-excel-export';
6
7
  import { DialogsModule } from "@progress/kendo-angular-dialog";
7
8
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
8
9
  import { IconsModule } from '@progress/kendo-angular-icons';
10
+ import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
11
+ import { IndicatorsModule } from '@progress/kendo-angular-indicators';
9
12
  import { CompareRecordsModule } from '@memberjunction/ng-compare-records';
10
13
  import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
11
- import { FormsModule } from '@angular/forms';
12
- import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
13
- import { SingleRoleComponent } from './single-role/single-role.component';
14
- import { SettingsComponent } from './settings/settings.component';
15
14
  import { EntityPermissionsModule } from '@memberjunction/ng-entity-permissions';
16
- import { TabStripModule } from '@progress/kendo-angular-layout';
17
15
  import { EntityFormDialogModule } from '@memberjunction/ng-entity-form-dialog';
18
- import { UserRolesGridComponent } from './user-roles-grid/user-roles-grid.component';
19
- import { IndicatorsModule } from '@progress/kendo-angular-indicators';
20
- import { SingleUserComponent } from './single-user/single-user.component';
21
16
  import { UserViewGridModule } from '@memberjunction/ng-user-view-grid';
22
17
  import { SimpleRecordListModule } from '@memberjunction/ng-simple-record-list';
18
+ import { SingleRoleComponent } from './single-role/single-role.component';
19
+ import { SettingsComponent } from './settings/settings.component';
20
+ import { UserRolesGridComponent } from './user-roles-grid/user-roles-grid.component';
21
+ import { SingleUserComponent } from './single-user/single-user.component';
23
22
  import { SingleApplicationComponent } from './single-application/single-application.component';
24
23
  import { ApplicationEntitiesGridComponent } from './application-entities-grid/application-entities-grid.component';
24
+ import { MJTabStripModule } from '@memberjunction/ng-tabstrip';
25
25
  import * as i0 from "@angular/core";
26
26
  import * as i1 from "@angular/common";
27
27
  import * as i2 from "@memberjunction/ng-container-directives";
28
28
  import * as i3 from "@progress/kendo-angular-icons";
29
29
  import * as i4 from "@memberjunction/ng-entity-permissions";
30
- import * as i5 from "@progress/kendo-angular-layout";
30
+ import * as i5 from "@memberjunction/ng-tabstrip";
31
31
  import * as i6 from "@memberjunction/ng-entity-form-dialog";
32
32
  import * as i7 from "@progress/kendo-angular-indicators";
33
33
  export class ExplorerSettingsModule {
@@ -45,7 +45,7 @@ ExplorerSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
45
45
  IconsModule,
46
46
  DropDownsModule,
47
47
  EntityPermissionsModule,
48
- TabStripModule,
48
+ MJTabStripModule,
49
49
  DialogsModule,
50
50
  EntityFormDialogModule,
51
51
  IndicatorsModule,
@@ -74,7 +74,7 @@ ExplorerSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
74
74
  IconsModule,
75
75
  DropDownsModule,
76
76
  EntityPermissionsModule,
77
- TabStripModule,
77
+ MJTabStripModule,
78
78
  DialogsModule,
79
79
  EntityFormDialogModule,
80
80
  IndicatorsModule,
@@ -107,7 +107,7 @@ ExplorerSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
107
107
  IconsModule,
108
108
  DropDownsModule,
109
109
  EntityPermissionsModule,
110
- TabStripModule,
110
+ MJTabStripModule,
111
111
  DialogsModule,
112
112
  EntityFormDialogModule,
113
113
  IndicatorsModule,
@@ -118,4 +118,4 @@ ExplorerSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [C
118
118
  SingleUserComponent,
119
119
  SingleApplicationComponent,
120
120
  ApplicationEntitiesGridComponent] }); })();
121
- i0.ɵɵsetComponentScope(SingleRoleComponent, [i1.NgIf, i2.FillContainer, i3.SVGIconComponent, i4.EntityPermissionsGridComponent, i5.TabStripComponent, i5.TabStripTabComponent, i5.TabContentDirective, i6.EntityFormDialog, i7.LoaderComponent, UserRolesGridComponent], []);
121
+ i0.ɵɵsetComponentScope(SingleRoleComponent, [i1.NgIf, i2.FillContainer, i3.SVGIconComponent, i4.EntityPermissionsGridComponent, i5.MJTabStripComponent, i5.MJTabBodyComponent, i5.MJTabComponent, i6.EntityFormDialog, i7.LoaderComponent, UserRolesGridComponent], []);
@@ -12,7 +12,7 @@ import * as i7 from "../single-user/single-user.component";
12
12
  import * as i8 from "../single-application/single-application.component";
13
13
  function SettingsComponent_div_2_Template(rf, ctx) { if (rf & 1) {
14
14
  const _r10 = i0.ɵɵgetCurrentView();
15
- i0.ɵɵelementStart(0, "div", 5);
15
+ i0.ɵɵelementStart(0, "div", 4);
16
16
  i0.ɵɵlistener("click", function SettingsComponent_div_2_Template_div_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r10); const o_r8 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.selectItem(o_r8.value)); });
17
17
  i0.ɵɵtext(1);
18
18
  i0.ɵɵelementEnd();
@@ -23,65 +23,51 @@ function SettingsComponent_div_2_Template(rf, ctx) { if (rf & 1) {
23
23
  i0.ɵɵadvance();
24
24
  i0.ɵɵtextInterpolate(o_r8.label);
25
25
  } }
26
- function SettingsComponent_div_4_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelementStart(0, "div");
28
- i0.ɵɵelement(1, "mj-entity-permissions-selector-with-grid");
29
- i0.ɵɵelementEnd();
26
+ function SettingsComponent_Case_4_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "mj-entity-permissions-selector-with-grid");
30
28
  } }
31
29
  const _c0 = () => ["Name", "Email", "IsActive", "Type"];
32
- function SettingsComponent_div_5_Template(rf, ctx) { if (rf & 1) {
30
+ function SettingsComponent_Case_5_Template(rf, ctx) { if (rf & 1) {
33
31
  const _r12 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "div")(1, "mj-simple-record-list", 6);
35
- i0.ɵɵlistener("RecordSelected", function SettingsComponent_div_5_Template_mj_simple_record_list_RecordSelected_1_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.selectUser($event)); });
36
- i0.ɵɵelementEnd()();
32
+ i0.ɵɵelementStart(0, "mj-simple-record-list", 5);
33
+ i0.ɵɵlistener("RecordSelected", function SettingsComponent_Case_5_Template_mj_simple_record_list_RecordSelected_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.selectUser($event)); });
34
+ i0.ɵɵelementEnd();
37
35
  } if (rf & 2) {
38
- i0.ɵɵadvance();
39
36
  i0.ɵɵproperty("Columns", i0.ɵɵpureFunction0(1, _c0));
40
37
  } }
41
- function SettingsComponent_div_6_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "div");
43
- i0.ɵɵelement(1, "mj-single-user", 7);
44
- i0.ɵɵelementEnd();
38
+ function SettingsComponent_Case_6_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelement(0, "mj-single-user", 6);
45
40
  } if (rf & 2) {
46
41
  const ctx_r3 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance();
48
42
  i0.ɵɵproperty("UserID", ctx_r3.selectedUserID);
49
43
  } }
50
44
  const _c1 = () => ["Name", "Description"];
51
- function SettingsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
45
+ function SettingsComponent_Case_7_Template(rf, ctx) { if (rf & 1) {
52
46
  const _r14 = i0.ɵɵgetCurrentView();
53
- i0.ɵɵelementStart(0, "div")(1, "mj-simple-record-list", 8);
54
- i0.ɵɵlistener("RecordSelected", function SettingsComponent_div_7_Template_mj_simple_record_list_RecordSelected_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.selectRole($event)); });
55
- i0.ɵɵelementEnd()();
47
+ i0.ɵɵelementStart(0, "mj-simple-record-list", 7);
48
+ i0.ɵɵlistener("RecordSelected", function SettingsComponent_Case_7_Template_mj_simple_record_list_RecordSelected_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.selectRole($event)); });
49
+ i0.ɵɵelementEnd();
56
50
  } if (rf & 2) {
57
- i0.ɵɵadvance();
58
51
  i0.ɵɵproperty("Columns", i0.ɵɵpureFunction0(1, _c1));
59
52
  } }
60
- function SettingsComponent_div_8_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelementStart(0, "div");
62
- i0.ɵɵelement(1, "mj-single-role", 9);
63
- i0.ɵɵelementEnd();
53
+ function SettingsComponent_Case_8_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵelement(0, "mj-single-role", 8);
64
55
  } if (rf & 2) {
65
56
  const ctx_r5 = i0.ɵɵnextContext();
66
- i0.ɵɵadvance();
67
57
  i0.ɵɵproperty("RoleName", ctx_r5.selectedRoleName);
68
58
  } }
69
- function SettingsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
59
+ function SettingsComponent_Case_9_Template(rf, ctx) { if (rf & 1) {
70
60
  const _r16 = i0.ɵɵgetCurrentView();
71
- i0.ɵɵelementStart(0, "div")(1, "mj-simple-record-list", 10);
72
- i0.ɵɵlistener("RecordSelected", function SettingsComponent_div_9_Template_mj_simple_record_list_RecordSelected_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.selectApplication($event)); });
73
- i0.ɵɵelementEnd()();
61
+ i0.ɵɵelementStart(0, "mj-simple-record-list", 9);
62
+ i0.ɵɵlistener("RecordSelected", function SettingsComponent_Case_9_Template_mj_simple_record_list_RecordSelected_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.selectApplication($event)); });
63
+ i0.ɵɵelementEnd();
74
64
  } if (rf & 2) {
75
- i0.ɵɵadvance();
76
65
  i0.ɵɵproperty("Columns", i0.ɵɵpureFunction0(1, _c1));
77
66
  } }
78
- function SettingsComponent_div_10_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelementStart(0, "div");
80
- i0.ɵɵelement(1, "mj-single-application", 11);
81
- i0.ɵɵelementEnd();
67
+ function SettingsComponent_Case_10_Template(rf, ctx) { if (rf & 1) {
68
+ i0.ɵɵelement(0, "mj-single-application", 10);
82
69
  } if (rf & 2) {
83
70
  const ctx_r7 = i0.ɵɵnextContext();
84
- i0.ɵɵadvance();
85
71
  i0.ɵɵproperty("ApplicationName", ctx_r7.selectedApplicationName);
86
72
  } }
87
73
  export var SettingsItem;
@@ -185,34 +171,27 @@ export class SettingsComponent {
185
171
  }
186
172
  }
187
173
  SettingsComponent.ɵfac = function SettingsComponent_Factory(t) { return new (t || SettingsComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
188
- SettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SettingsComponent, selectors: [["mj-settings"]], decls: 11, vars: 10, consts: [["mjFillContainer", "", 1, "container", 3, "fillWidth", "bottomMargin"], [1, "options-container"], ["class", "option-item", 3, "selected", "click", 4, "ngFor", "ngForOf"], [1, "display-container"], [4, "ngIf"], [1, "option-item", 3, "click"], ["EntityName", "Users", "SortBy", "Name", 3, "Columns", "RecordSelected"], [3, "UserID"], ["EntityName", "Roles", "SortBy", "Name", 3, "Columns", "RecordSelected"], [3, "RoleName"], ["EntityName", "Applications", "SortBy", "Name", 3, "Columns", "RecordSelected"], [3, "ApplicationName"]], template: function SettingsComponent_Template(rf, ctx) { if (rf & 1) {
174
+ SettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SettingsComponent, selectors: [["mj-settings"]], decls: 11, vars: 6, consts: [["mjFillContainer", "", 1, "container", 3, "bottomMargin", "rightMargin"], ["mjFillContainer", "", 1, "options-container", 3, "fillWidth"], ["class", "option-item", 3, "selected", "click", 4, "ngFor", "ngForOf"], ["mjFillContainer", "", 1, "display-container", 3, "fillWidth"], [1, "option-item", 3, "click"], ["EntityName", "Users", "SortBy", "Name", 3, "Columns", "RecordSelected"], [3, "UserID"], ["EntityName", "Roles", "SortBy", "Name", 3, "Columns", "RecordSelected"], ["mjFillContainer", "", 3, "RoleName"], ["EntityName", "Applications", "SortBy", "Name", 3, "Columns", "RecordSelected"], [3, "ApplicationName"]], template: function SettingsComponent_Template(rf, ctx) { if (rf & 1) {
189
175
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
190
176
  i0.ɵɵtemplate(2, SettingsComponent_div_2_Template, 2, 3, "div", 2);
191
177
  i0.ɵɵelementEnd();
192
178
  i0.ɵɵelementStart(3, "div", 3);
193
- i0.ɵɵtemplate(4, SettingsComponent_div_4_Template, 2, 0, "div", 4)(5, SettingsComponent_div_5_Template, 2, 2, "div", 4)(6, SettingsComponent_div_6_Template, 2, 1, "div", 4)(7, SettingsComponent_div_7_Template, 2, 2, "div", 4)(8, SettingsComponent_div_8_Template, 2, 1, "div", 4)(9, SettingsComponent_div_9_Template, 2, 2, "div", 4)(10, SettingsComponent_div_10_Template, 2, 1, "div", 4);
179
+ i0.ɵɵtemplate(4, SettingsComponent_Case_4_Template, 1, 0)(5, SettingsComponent_Case_5_Template, 1, 2)(6, SettingsComponent_Case_6_Template, 1, 1)(7, SettingsComponent_Case_7_Template, 1, 2)(8, SettingsComponent_Case_8_Template, 1, 1)(9, SettingsComponent_Case_9_Template, 1, 2)(10, SettingsComponent_Case_10_Template, 1, 1);
194
180
  i0.ɵɵelementEnd()();
195
181
  } if (rf & 2) {
196
- i0.ɵɵproperty("fillWidth", false)("bottomMargin", 5);
197
- i0.ɵɵadvance(2);
198
- i0.ɵɵproperty("ngForOf", ctx.options);
199
- i0.ɵɵadvance(2);
200
- i0.ɵɵproperty("ngIf", ctx.currentItem === "EntityPermissions");
201
- i0.ɵɵadvance();
202
- i0.ɵɵproperty("ngIf", ctx.currentItem === "Users");
182
+ let SettingsComponent_contFlowTmp;
183
+ i0.ɵɵproperty("bottomMargin", 5)("rightMargin", 0);
203
184
  i0.ɵɵadvance();
204
- i0.ɵɵproperty("ngIf", ctx.currentItem === "User");
185
+ i0.ɵɵproperty("fillWidth", false);
205
186
  i0.ɵɵadvance();
206
- i0.ɵɵproperty("ngIf", ctx.currentItem === "Roles");
207
- i0.ɵɵadvance();
208
- i0.ɵɵproperty("ngIf", ctx.currentItem === "Role");
187
+ i0.ɵɵproperty("ngForOf", ctx.options);
209
188
  i0.ɵɵadvance();
210
- i0.ɵɵproperty("ngIf", ctx.currentItem === "Applications");
189
+ i0.ɵɵproperty("fillWidth", false);
211
190
  i0.ɵɵadvance();
212
- i0.ɵɵproperty("ngIf", ctx.currentItem === "Application");
213
- } }, dependencies: [i2.NgForOf, i2.NgIf, i3.FillContainer, i4.EntityPermissionsSelectorWithGridComponent, i5.SimpleRecordListComponent, i6.SingleRoleComponent, i7.SingleUserComponent, i8.SingleApplicationComponent], styles: [".container[_ngcontent-%COMP%] {\r\n display: flex;\r\n width: 100%;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.options-container[_ngcontent-%COMP%] {\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n border-right: solid 1px lightgray;\r\n}\r\n\r\n.option-item[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-bottom: 10px; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n}\r\n\r\n.display-container[_ngcontent-%COMP%] {\r\n flex: 1;\r\n padding: 10px;\r\n}\r\n\r\n.selected[_ngcontent-%COMP%] {\r\n background-color: #007bff; \n\r\n color: white; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n}"] });
191
+ i0.ɵɵconditional(4, (SettingsComponent_contFlowTmp = ctx.currentItem) === "EntityPermissions" ? 4 : SettingsComponent_contFlowTmp === "Users" ? 5 : SettingsComponent_contFlowTmp === "User" ? 6 : SettingsComponent_contFlowTmp === "Roles" ? 7 : SettingsComponent_contFlowTmp === "Role" ? 8 : SettingsComponent_contFlowTmp === "Applications" ? 9 : SettingsComponent_contFlowTmp === "Application" ? 10 : -1);
192
+ } }, dependencies: [i2.NgForOf, i3.FillContainer, i4.EntityPermissionsSelectorWithGridComponent, i5.SimpleRecordListComponent, i6.SingleRoleComponent, i7.SingleUserComponent, i8.SingleApplicationComponent], styles: [".container[_ngcontent-%COMP%] {\r\n display: block;\r\n width: 100%;\r\n overflow: hidden; \r\n}\r\n\r\n.options-container[_ngcontent-%COMP%] {\r\n float: left; \n\r\n width: 150px; \n\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n border-right: solid 1px lightgray;\r\n box-sizing: border-box; \n\r\n}\r\n\r\n.option-item[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-bottom: 10px; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n}\r\n\r\n.display-container[_ngcontent-%COMP%] {\r\n display: block; \n\r\n margin-left: 160px; \n\r\n padding: 10px;\r\n box-sizing: border-box; \n\r\n}\r\n\r\n.selected[_ngcontent-%COMP%] {\r\n background-color: #007bff; \n\r\n color: white; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n}"] });
214
193
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsComponent, [{
215
194
  type: Component,
216
- args: [{ selector: 'mj-settings', template: "<div class=\"container\" mjFillContainer [fillWidth]=\"false\" [bottomMargin]=\"5\">\r\n <!-- Options container -->\r\n <div class=\"options-container\">\r\n <div *ngFor=\"let o of options\"\r\n class=\"option-item\"\r\n [class.selected]=\"leftNavItemSelected(o)\"\r\n (click)=\"selectItem(o.value)\"\r\n >{{o.label}}</div>\r\n </div>\r\n\r\n <!-- Display container -->\r\n <div class=\"display-container\">\r\n <div *ngIf=\"currentItem === 'EntityPermissions'\">\r\n <mj-entity-permissions-selector-with-grid></mj-entity-permissions-selector-with-grid>\r\n </div>\r\n\r\n <div *ngIf=\"currentItem === 'Users'\">\r\n <mj-simple-record-list\r\n EntityName=\"Users\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Email', 'IsActive', 'Type']\"\r\n (RecordSelected)=\"selectUser($event)\"\r\n ></mj-simple-record-list>\r\n </div>\r\n <div *ngIf=\"currentItem === 'User'\">\r\n <mj-single-user [UserID]=\"selectedUserID\"></mj-single-user>\r\n </div>\r\n\r\n <div *ngIf=\"currentItem === 'Roles'\">\r\n <mj-simple-record-list\r\n EntityName=\"Roles\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Description']\"\r\n (RecordSelected)=\"selectRole($event)\"\r\n ></mj-simple-record-list>\r\n </div>\r\n <div *ngIf=\"currentItem === 'Role'\">\r\n <mj-single-role [RoleName]=\"selectedRoleName\"></mj-single-role>\r\n </div>\r\n\r\n <div *ngIf=\"currentItem === 'Applications'\">\r\n <mj-simple-record-list\r\n EntityName=\"Applications\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Description']\"\r\n (RecordSelected)=\"selectApplication($event)\"\r\n ></mj-simple-record-list>\r\n </div>\r\n <div *ngIf=\"currentItem === 'Application'\">\r\n <mj-single-application [ApplicationName]=\"selectedApplicationName\"></mj-single-application>\r\n </div> \r\n </div>\r\n</div>", styles: [".container {\r\n display: flex;\r\n width: 100%;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.options-container {\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n border-right: solid 1px lightgray;\r\n}\r\n\r\n.option-item {\r\n cursor: pointer;\r\n margin-bottom: 10px; /* Adds space between the options for better readability */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n}\r\n\r\n.display-container {\r\n flex: 1;\r\n padding: 10px;\r\n}\r\n\r\n.selected {\r\n background-color: #007bff; /* A blue background for selected item */\r\n color: white; /* White text color for better contrast */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n}\r\n"] }]
195
+ args: [{ selector: 'mj-settings', template: "<div class=\"container\" mjFillContainer [bottomMargin]=\"5\" [rightMargin]=\"0\">\r\n <!-- Options container -->\r\n <div class=\"options-container\" mjFillContainer [fillWidth]=\"false\">\r\n <div *ngFor=\"let o of options\"\r\n class=\"option-item\"\r\n [class.selected]=\"leftNavItemSelected(o)\"\r\n (click)=\"selectItem(o.value)\"\r\n >{{o.label}}</div>\r\n </div>\r\n\r\n <!-- Display container -->\r\n <div class=\"display-container\" mjFillContainer [fillWidth]=\"false\">\r\n @switch (currentItem) {\r\n @case ('EntityPermissions') {\r\n <mj-entity-permissions-selector-with-grid></mj-entity-permissions-selector-with-grid>\r\n }\r\n @case ('Users') {\r\n <mj-simple-record-list\r\n EntityName=\"Users\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Email', 'IsActive', 'Type']\"\r\n (RecordSelected)=\"selectUser($event)\"\r\n ></mj-simple-record-list>\r\n }\r\n @case ('User') {\r\n <mj-single-user [UserID]=\"selectedUserID\"></mj-single-user>\r\n }\r\n @case ('Roles') {\r\n <mj-simple-record-list\r\n EntityName=\"Roles\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Description']\"\r\n (RecordSelected)=\"selectRole($event)\"\r\n ></mj-simple-record-list>\r\n }\r\n @case ('Role') {\r\n <mj-single-role [RoleName]=\"selectedRoleName\" mjFillContainer></mj-single-role>\r\n }\r\n @case ('Applications') {\r\n <mj-simple-record-list\r\n EntityName=\"Applications\"\r\n SortBy=\"Name\"\r\n [Columns]=\"['Name', 'Description']\"\r\n (RecordSelected)=\"selectApplication($event)\"\r\n ></mj-simple-record-list>\r\n }\r\n @case ('Application') {\r\n <mj-single-application [ApplicationName]=\"selectedApplicationName\"></mj-single-application>\r\n }\r\n }\r\n </div>\r\n</div>", styles: [".container {\r\n display: block;\r\n width: 100%;\r\n overflow: hidden; \r\n}\r\n\r\n.options-container {\r\n float: left; /* Float to the left */\r\n width: 150px; /* Fixed width as specified */\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n border-right: solid 1px lightgray;\r\n box-sizing: border-box; /* Ensures padding is included in the width */\r\n}\r\n\r\n.option-item {\r\n cursor: pointer;\r\n margin-bottom: 10px; /* Adds space between the options for better readability */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n}\r\n\r\n.display-container {\r\n display: block; /* Ensures it's treated as a block-level element */\r\n margin-left: 160px; /* Width of the options-container plus its padding */\r\n padding: 10px;\r\n box-sizing: border-box; /* Ensures padding doesn't add to the width */\r\n}\r\n\r\n.selected {\r\n background-color: #007bff; /* A blue background for selected item */\r\n color: white; /* White text color for better contrast */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n}\r\n"] }]
217
196
  }], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], null); })();
218
197
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SettingsComponent, { className: "SettingsComponent", filePath: "src\\lib\\settings\\settings.component.ts", lineNumber: 22 }); })();
@@ -13,60 +13,52 @@ import { kendoSVGIcon } from '@memberjunction/ng-shared';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
15
  import * as i2 from "@memberjunction/ng-container-directives";
16
- import * as i3 from "@progress/kendo-angular-icons";
17
- import * as i4 from "@progress/kendo-angular-layout";
18
- import * as i5 from "@memberjunction/ng-entity-form-dialog";
19
- import * as i6 from "@progress/kendo-angular-indicators";
20
- import * as i7 from "../application-entities-grid/application-entities-grid.component";
16
+ import * as i3 from "@memberjunction/ng-tabstrip";
17
+ import * as i4 from "@memberjunction/ng-entity-form-dialog";
18
+ import * as i5 from "@progress/kendo-angular-indicators";
19
+ import * as i6 from "../application-entities-grid/application-entities-grid.component";
21
20
  const _c0 = ["entityForm"];
22
- function SingleApplicationComponent_div_1_Template(rf, ctx) { if (rf & 1) {
23
- i0.ɵɵelementStart(0, "div");
24
- i0.ɵɵelement(1, "kendo-loader");
25
- i0.ɵɵelementEnd();
26
- } }
27
- function SingleApplicationComponent_div_2_ng_template_16_mj_application_entities_grid_0_Template(rf, ctx) { if (rf & 1) {
28
- i0.ɵɵelement(0, "mj-application-entities-grid", 11);
29
- } if (rf & 2) {
30
- const ctx_r4 = i0.ɵɵnextContext(3);
31
- i0.ɵɵproperty("ApplicationName", ctx_r4.ApplicationName)("ApplicationRecord", ctx_r4.Record);
21
+ function SingleApplicationComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelement(0, "kendo-loader");
32
23
  } }
33
- function SingleApplicationComponent_div_2_ng_template_16_Template(rf, ctx) { if (rf & 1) {
34
- i0.ɵɵtemplate(0, SingleApplicationComponent_div_2_ng_template_16_mj_application_entities_grid_0_Template, 1, 2, "mj-application-entities-grid", 10);
24
+ function SingleApplicationComponent_Conditional_2_mj_application_entities_grid_17_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelement(0, "mj-application-entities-grid", 8);
35
26
  } if (rf & 2) {
36
27
  const ctx_r3 = i0.ɵɵnextContext(2);
37
- i0.ɵɵproperty("ngIf", ctx_r3.ApplicationName && ctx_r3.Record);
28
+ i0.ɵɵproperty("ApplicationName", ctx_r3.ApplicationName)("ApplicationRecord", ctx_r3.Record);
38
29
  } }
39
- function SingleApplicationComponent_div_2_Template(rf, ctx) { if (rf & 1) {
40
- const _r6 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "div")(1, "table", 4)(2, "tbody")(3, "tr")(4, "th", 5);
42
- i0.ɵɵtext(5, "Application");
30
+ function SingleApplicationComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
31
+ const _r5 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "table", 3)(1, "tbody")(2, "tr")(3, "th", 4);
33
+ i0.ɵɵtext(4, "Application");
43
34
  i0.ɵɵelementEnd();
44
- i0.ɵɵelementStart(6, "td");
45
- i0.ɵɵtext(7);
46
- i0.ɵɵelementStart(8, "kendo-svgicon", 6);
47
- i0.ɵɵlistener("click", function SingleApplicationComponent_div_2_Template_kendo_svgicon_click_8_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.EditRecord()); });
35
+ i0.ɵɵelementStart(5, "td");
36
+ i0.ɵɵtext(6);
37
+ i0.ɵɵelementStart(7, "span", 5);
38
+ i0.ɵɵlistener("click", function SingleApplicationComponent_Conditional_2_Template_span_click_7_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.EditRecord()); });
48
39
  i0.ɵɵelementEnd()()();
49
- i0.ɵɵelementStart(9, "tr")(10, "th", 5);
50
- i0.ɵɵtext(11, "Description");
40
+ i0.ɵɵelementStart(8, "tr")(9, "th", 4);
41
+ i0.ɵɵtext(10, "Description");
51
42
  i0.ɵɵelementEnd();
52
- i0.ɵɵelementStart(12, "td");
53
- i0.ɵɵtext(13);
43
+ i0.ɵɵelementStart(11, "td");
44
+ i0.ɵɵtext(12);
54
45
  i0.ɵɵelementEnd()()()();
55
- i0.ɵɵelementStart(14, "kendo-tabstrip", 7)(15, "kendo-tabstrip-tab", 8);
56
- i0.ɵɵtemplate(16, SingleApplicationComponent_div_2_ng_template_16_Template, 1, 1, "ng-template", 9);
57
- i0.ɵɵelementEnd()()();
46
+ i0.ɵɵelementStart(13, "mj-tabstrip", 0)(14, "mj-tab", 6);
47
+ i0.ɵɵtext(15, " Entities ");
48
+ i0.ɵɵelementEnd();
49
+ i0.ɵɵelementStart(16, "mj-tab-body");
50
+ i0.ɵɵtemplate(17, SingleApplicationComponent_Conditional_2_mj_application_entities_grid_17_Template, 1, 2, "mj-application-entities-grid", 7);
51
+ i0.ɵɵelementEnd()();
58
52
  } if (rf & 2) {
59
53
  const ctx_r1 = i0.ɵɵnextContext();
60
- i0.ɵɵadvance(7);
61
- i0.ɵɵtextInterpolate(ctx_r1.Record.Name);
62
- i0.ɵɵadvance();
63
- i0.ɵɵproperty("icon", ctx_r1.kendoSVGIcon("pencil"));
64
- i0.ɵɵadvance(5);
54
+ i0.ɵɵadvance(6);
55
+ i0.ɵɵtextInterpolate1("", ctx_r1.Record.Name, " ");
56
+ i0.ɵɵadvance(6);
65
57
  i0.ɵɵtextInterpolate(ctx_r1.Record.Description);
66
- i0.ɵɵadvance();
67
- i0.ɵɵproperty("keepTabContent", true)("animate", false);
68
- i0.ɵɵadvance();
69
- i0.ɵɵproperty("selected", true);
58
+ i0.ɵɵadvance(2);
59
+ i0.ɵɵproperty("TabSelected", true);
60
+ i0.ɵɵadvance(3);
61
+ i0.ɵɵproperty("ngIf", ctx_r1.ApplicationName && ctx_r1.Record);
70
62
  } }
71
63
  export class SingleApplicationComponent {
72
64
  constructor(cdRef) {
@@ -117,24 +109,24 @@ SingleApplicationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
117
109
  } if (rf & 2) {
118
110
  let _t;
119
111
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormComponent = _t.first);
120
- } }, inputs: { ApplicationName: "ApplicationName" }, decls: 5, vars: 8, consts: [["mjFillContainer", ""], [4, "ngIf"], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "info-table"], ["scope", "row"], [1, "edit-icon", 3, "icon", "click"], [3, "keepTabContent", "animate"], ["title", "Entities", 3, "selected"], ["kendoTabContent", ""], ["Mode", "Applications", 3, "ApplicationName", "ApplicationRecord", 4, "ngIf"], ["Mode", "Applications", 3, "ApplicationName", "ApplicationRecord"]], template: function SingleApplicationComponent_Template(rf, ctx) { if (rf & 1) {
112
+ } }, inputs: { ApplicationName: "ApplicationName" }, decls: 5, vars: 8, consts: [["mjFillContainer", ""], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "info-table"], ["scope", "row"], [1, "edit-icon", "fa-solid", "fa-pen-to-square", 3, "click"], [3, "TabSelected"], ["Mode", "Applications", 3, "ApplicationName", "ApplicationRecord", 4, "ngIf"], ["Mode", "Applications", 3, "ApplicationName", "ApplicationRecord"]], template: function SingleApplicationComponent_Template(rf, ctx) { if (rf & 1) {
121
113
  i0.ɵɵelementStart(0, "div", 0);
122
- i0.ɵɵtemplate(1, SingleApplicationComponent_div_1_Template, 2, 0, "div", 1)(2, SingleApplicationComponent_div_2_Template, 17, 6, "div", 1);
114
+ i0.ɵɵtemplate(1, SingleApplicationComponent_Conditional_1_Template, 1, 0, "kendo-loader")(2, SingleApplicationComponent_Conditional_2_Template, 18, 4);
123
115
  i0.ɵɵelementEnd();
124
- i0.ɵɵelementStart(3, "mj-entity-form-dialog", 2, 3);
116
+ i0.ɵɵelementStart(3, "mj-entity-form-dialog", 1, 2);
125
117
  i0.ɵɵlistener("close", function SingleApplicationComponent_Template_mj_entity_form_dialog_close_3_listener($event) { return ctx.onEntityFormClosed($event); });
126
118
  i0.ɵɵelementEnd();
127
119
  } if (rf & 2) {
128
120
  i0.ɵɵadvance();
129
- i0.ɵɵproperty("ngIf", ctx.isLoading);
121
+ i0.ɵɵconditional(1, ctx.isLoading ? 1 : -1);
130
122
  i0.ɵɵadvance();
131
- i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.Record);
123
+ i0.ɵɵconditional(2, !ctx.isLoading && ctx.Record ? 2 : -1);
132
124
  i0.ɵɵadvance();
133
125
  i0.ɵɵproperty("Record", ctx.Record)("Visible", ctx.showEntityEditingForm)("AutoRevertOnCancel", true)("HandleSave", true)("Width", 550)("Height", 450);
134
- } }, dependencies: [i1.NgIf, i2.FillContainer, i3.SVGIconComponent, i4.TabStripComponent, i4.TabStripTabComponent, i4.TabContentDirective, i5.EntityFormDialog, i6.LoaderComponent, i7.ApplicationEntitiesGridComponent], styles: ["button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
126
+ } }, dependencies: [i1.NgIf, i2.FillContainer, i3.MJTabStripComponent, i3.MJTabBodyComponent, i3.MJTabComponent, i4.EntityFormDialog, i5.LoaderComponent, i6.ApplicationEntitiesGridComponent], styles: ["button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
135
127
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleApplicationComponent, [{
136
128
  type: Component,
137
- args: [{ selector: 'mj-single-application', template: "<div mjFillContainer>\r\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\r\n <div *ngIf=\"!isLoading && Record\">\r\n <table class=\"info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">Application</th>\r\n <td>{{Record.Name}}<kendo-svgicon class='edit-icon' [icon]=\"kendoSVGIcon('pencil')\" (click)=\"EditRecord()\"></kendo-svgicon></td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Description</th>\r\n <td>{{Record.Description}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n <kendo-tabstrip\r\n [keepTabContent]=\"true\"\r\n [animate]=\"false\" \r\n > \r\n <kendo-tabstrip-tab title=\"Entities\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <mj-application-entities-grid *ngIf=\"ApplicationName && Record\" Mode=\"Applications\" [ApplicationName]=\"ApplicationName\" [ApplicationRecord]=\"Record\"></mj-application-entities-grid>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n </div>\r\n</div>\r\n\r\n\r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"Record\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: ["button {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
129
+ args: [{ selector: 'mj-single-application', template: "<div mjFillContainer>\r\n @if(isLoading) {\r\n <kendo-loader></kendo-loader>\r\n }\r\n @if(!isLoading && Record) {\r\n <table class=\"info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">Application</th>\r\n <td>{{Record.Name}}\r\n <span class=\"edit-icon fa-solid fa-pen-to-square\" (click)=\"EditRecord()\"></span>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Description</th>\r\n <td>{{Record.Description}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n <mj-tabstrip mjFillContainer>\r\n <mj-tab [TabSelected]=\"true\">\r\n Entities\r\n </mj-tab>\r\n <mj-tab-body>\r\n <mj-application-entities-grid *ngIf=\"ApplicationName && Record\" Mode=\"Applications\" [ApplicationName]=\"ApplicationName\" [ApplicationRecord]=\"Record\"></mj-application-entities-grid>\r\n </mj-tab-body>\r\n </mj-tabstrip>\r\n }\r\n</div>\r\n\r\n\r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"Record\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: ["button {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
138
130
  }], () => [{ type: i0.ChangeDetectorRef }], { ApplicationName: [{
139
131
  type: Input
140
132
  }], entityFormComponent: [{
@@ -20,70 +20,59 @@ import { UserRoleEntity } from '@memberjunction/core-entities';
20
20
  import { RegisterClass } from '@memberjunction/global';
21
21
  import * as i0 from "@angular/core";
22
22
  const _c0 = ["entityForm"];
23
- function SingleRoleComponent_div_1_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div");
25
- i0.ɵɵelement(1, "kendo-loader");
26
- i0.ɵɵelementEnd();
23
+ function SingleRoleComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "kendo-loader");
27
25
  } }
28
- function SingleRoleComponent_div_2_ng_template_26_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelement(0, "mj-user-roles-grid", 11);
26
+ function SingleRoleComponent_Conditional_2_mj_entity_permissions_grid_31_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "mj-entity-permissions-grid", 9);
30
28
  } if (rf & 2) {
31
29
  const ctx_r3 = i0.ɵɵnextContext(2);
32
- i0.ɵɵproperty("RoleName", ctx_r3.RoleName)("RoleRecord", ctx_r3.RoleRecord);
33
- } }
34
- function SingleRoleComponent_div_2_ng_template_28_mj_entity_permissions_grid_1_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelement(0, "mj-entity-permissions-grid", 14);
36
- } if (rf & 2) {
37
- const ctx_r5 = i0.ɵɵnextContext(3);
38
- i0.ɵɵproperty("RoleName", ctx_r5.RoleRecord.Name);
39
- } }
40
- function SingleRoleComponent_div_2_ng_template_28_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 12);
42
- i0.ɵɵtemplate(1, SingleRoleComponent_div_2_ng_template_28_mj_entity_permissions_grid_1_Template, 1, 1, "mj-entity-permissions-grid", 13);
43
- i0.ɵɵelementEnd();
44
- } if (rf & 2) {
45
- const ctx_r4 = i0.ɵɵnextContext(2);
46
- i0.ɵɵadvance();
47
- i0.ɵɵproperty("ngIf", ctx_r4.RoleRecord && ctx_r4.RoleRecord.Name);
30
+ i0.ɵɵproperty("RoleName", ctx_r3.RoleRecord.Name);
48
31
  } }
49
- function SingleRoleComponent_div_2_Template(rf, ctx) { if (rf & 1) {
50
- const _r7 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "div")(1, "table", 4)(2, "tbody")(3, "tr")(4, "th", 5);
52
- i0.ɵɵtext(5, "Role");
32
+ function SingleRoleComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
33
+ const _r5 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "table", 3)(1, "tbody")(2, "tr")(3, "th", 4);
35
+ i0.ɵɵtext(4, "Role");
53
36
  i0.ɵɵelementEnd();
54
- i0.ɵɵelementStart(6, "td");
55
- i0.ɵɵtext(7);
56
- i0.ɵɵelementStart(8, "kendo-svgicon", 6);
57
- i0.ɵɵlistener("click", function SingleRoleComponent_div_2_Template_kendo_svgicon_click_8_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.EditRecord()); });
37
+ i0.ɵɵelementStart(5, "td");
38
+ i0.ɵɵtext(6);
39
+ i0.ɵɵelementStart(7, "kendo-svgicon", 5);
40
+ i0.ɵɵlistener("click", function SingleRoleComponent_Conditional_2_Template_kendo_svgicon_click_7_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.EditRecord()); });
58
41
  i0.ɵɵelementEnd()()();
59
- i0.ɵɵelementStart(9, "tr")(10, "th", 5);
60
- i0.ɵɵtext(11, "Description");
42
+ i0.ɵɵelementStart(8, "tr")(9, "th", 4);
43
+ i0.ɵɵtext(10, "Description");
61
44
  i0.ɵɵelementEnd();
62
- i0.ɵɵelementStart(12, "td");
63
- i0.ɵɵtext(13);
45
+ i0.ɵɵelementStart(11, "td");
46
+ i0.ɵɵtext(12);
64
47
  i0.ɵɵelementEnd()();
65
- i0.ɵɵelementStart(14, "tr")(15, "th", 5);
66
- i0.ɵɵtext(16, "Directory ID");
48
+ i0.ɵɵelementStart(13, "tr")(14, "th", 4);
49
+ i0.ɵɵtext(15, "Directory ID");
67
50
  i0.ɵɵelementEnd();
68
- i0.ɵɵelementStart(17, "td");
69
- i0.ɵɵtext(18);
51
+ i0.ɵɵelementStart(16, "td");
52
+ i0.ɵɵtext(17);
70
53
  i0.ɵɵelementEnd()();
71
- i0.ɵɵelementStart(19, "tr")(20, "th", 5);
72
- i0.ɵɵtext(21, "SQL Name");
54
+ i0.ɵɵelementStart(18, "tr")(19, "th", 4);
55
+ i0.ɵɵtext(20, "SQL Name");
73
56
  i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(22, "td");
75
- i0.ɵɵtext(23);
57
+ i0.ɵɵelementStart(21, "td");
58
+ i0.ɵɵtext(22);
76
59
  i0.ɵɵelementEnd()()()();
77
- i0.ɵɵelementStart(24, "kendo-tabstrip", 7)(25, "kendo-tabstrip-tab", 8);
78
- i0.ɵɵtemplate(26, SingleRoleComponent_div_2_ng_template_26_Template, 1, 2, "ng-template", 9);
60
+ i0.ɵɵelementStart(23, "mj-tabstrip", 6)(24, "mj-tab");
61
+ i0.ɵɵtext(25, " Users ");
79
62
  i0.ɵɵelementEnd();
80
- i0.ɵɵelementStart(27, "kendo-tabstrip-tab", 10);
81
- i0.ɵɵtemplate(28, SingleRoleComponent_div_2_ng_template_28_Template, 2, 1, "ng-template", 9);
82
- i0.ɵɵelementEnd()()();
63
+ i0.ɵɵelementStart(26, "mj-tab-body");
64
+ i0.ɵɵelement(27, "mj-user-roles-grid", 7);
65
+ i0.ɵɵelementEnd();
66
+ i0.ɵɵelementStart(28, "mj-tab");
67
+ i0.ɵɵtext(29, " Entity Permissions ");
68
+ i0.ɵɵelementEnd();
69
+ i0.ɵɵelementStart(30, "mj-tab-body");
70
+ i0.ɵɵtemplate(31, SingleRoleComponent_Conditional_2_mj_entity_permissions_grid_31_Template, 1, 1, "mj-entity-permissions-grid", 8);
71
+ i0.ɵɵelementEnd()();
83
72
  } if (rf & 2) {
84
73
  const ctx_r1 = i0.ɵɵnextContext();
85
- i0.ɵɵadvance(7);
86
- i0.ɵɵtextInterpolate(ctx_r1.RoleRecord.Name);
74
+ i0.ɵɵadvance(6);
75
+ i0.ɵɵtextInterpolate1("", ctx_r1.RoleRecord.Name, " ");
87
76
  i0.ɵɵadvance();
88
77
  i0.ɵɵproperty("icon", ctx_r1.kendoSVGIcon("pencil"));
89
78
  i0.ɵɵadvance(5);
@@ -93,9 +82,11 @@ function SingleRoleComponent_div_2_Template(rf, ctx) { if (rf & 1) {
93
82
  i0.ɵɵadvance(5);
94
83
  i0.ɵɵtextInterpolate(ctx_r1.RoleRecord.SQLName);
95
84
  i0.ɵɵadvance();
96
- i0.ɵɵproperty("keepTabContent", true)("animate", false);
97
- i0.ɵɵadvance();
98
- i0.ɵɵproperty("selected", true);
85
+ i0.ɵɵproperty("bottomMargin", 150);
86
+ i0.ɵɵadvance(4);
87
+ i0.ɵɵproperty("RoleName", ctx_r1.RoleName)("RoleRecord", ctx_r1.RoleRecord);
88
+ i0.ɵɵadvance(4);
89
+ i0.ɵɵproperty("ngIf", ctx_r1.RoleRecord && ctx_r1.RoleRecord.Name);
99
90
  } }
100
91
  let UserRoleEntity_Ext = class UserRoleEntity_Ext extends UserRoleEntity {
101
92
  constructor() {
@@ -181,24 +172,24 @@ SingleRoleComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleR
181
172
  } if (rf & 2) {
182
173
  let _t;
183
174
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormComponent = _t.first);
184
- } }, inputs: { RoleName: "RoleName" }, decls: 5, vars: 8, consts: [["mjFillContainer", ""], [4, "ngIf"], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "role-info-table"], ["scope", "row"], [1, "edit-icon", 3, "icon", "click"], [3, "keepTabContent", "animate"], ["title", "Users", 3, "selected"], ["kendoTabContent", ""], ["title", "Entity Permissions"], ["Mode", "Roles", 3, "RoleName", "RoleRecord"], [1, "content"], ["Mode", "Role", 3, "RoleName", 4, "ngIf"], ["Mode", "Role", 3, "RoleName"]], template: function SingleRoleComponent_Template(rf, ctx) { if (rf & 1) {
175
+ } }, inputs: { RoleName: "RoleName" }, decls: 5, vars: 8, consts: [["mjFillContainer", "", 1, "wrapper"], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "role-info-table"], ["scope", "row"], [1, "edit-icon", 3, "icon", "click"], ["mjFillContainer", "", 3, "bottomMargin"], ["Mode", "Roles", 3, "RoleName", "RoleRecord"], ["Mode", "Role", "mjFillContainer", "", 3, "RoleName", 4, "ngIf"], ["Mode", "Role", "mjFillContainer", "", 3, "RoleName"]], template: function SingleRoleComponent_Template(rf, ctx) { if (rf & 1) {
185
176
  i0.ɵɵelementStart(0, "div", 0);
186
- i0.ɵɵtemplate(1, SingleRoleComponent_div_1_Template, 2, 0, "div", 1)(2, SingleRoleComponent_div_2_Template, 29, 8, "div", 1);
177
+ i0.ɵɵtemplate(1, SingleRoleComponent_Conditional_1_Template, 1, 0, "kendo-loader")(2, SingleRoleComponent_Conditional_2_Template, 32, 9);
187
178
  i0.ɵɵelementEnd();
188
- i0.ɵɵelementStart(3, "mj-entity-form-dialog", 2, 3);
179
+ i0.ɵɵelementStart(3, "mj-entity-form-dialog", 1, 2);
189
180
  i0.ɵɵlistener("close", function SingleRoleComponent_Template_mj_entity_form_dialog_close_3_listener($event) { return ctx.onEntityFormClosed($event); });
190
181
  i0.ɵɵelementEnd();
191
182
  } if (rf & 2) {
192
183
  i0.ɵɵadvance();
193
- i0.ɵɵproperty("ngIf", ctx.isLoading);
184
+ i0.ɵɵconditional(1, ctx.isLoading ? 1 : -1);
194
185
  i0.ɵɵadvance();
195
- i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.RoleRecord);
186
+ i0.ɵɵconditional(2, !ctx.isLoading && ctx.RoleRecord ? 2 : -1);
196
187
  i0.ɵɵadvance();
197
188
  i0.ɵɵproperty("Record", ctx.RoleRecord)("Visible", ctx.showEntityEditingForm)("AutoRevertOnCancel", true)("HandleSave", true)("Width", 550)("Height", 450);
198
- } }, styles: ["button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.role-name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
189
+ } }, styles: [".wrapper[_ngcontent-%COMP%] {\r\n display: block;\r\n}\r\n\r\nbutton[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.role-name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.role-info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
199
190
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleRoleComponent, [{
200
191
  type: Component,
201
- args: [{ selector: 'mj-single-role', template: "<div mjFillContainer>\r\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\r\n <div *ngIf=\"!isLoading && RoleRecord\">\r\n <table class=\"role-info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">Role</th>\r\n <td>{{RoleRecord.Name}}<kendo-svgicon class='edit-icon' [icon]=\"kendoSVGIcon('pencil')\" (click)=\"EditRecord()\"></kendo-svgicon></td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Description</th>\r\n <td>{{RoleRecord.Description}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Directory ID</th>\r\n <td>{{RoleRecord.DirectoryID}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">SQL Name</th>\r\n <td>{{RoleRecord.SQLName}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n <kendo-tabstrip\r\n [keepTabContent]=\"true\"\r\n [animate]=\"false\" \r\n > \r\n <kendo-tabstrip-tab title=\"Users\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <mj-user-roles-grid Mode=\"Roles\" [RoleName]=\"RoleName\" [RoleRecord]=\"RoleRecord\"></mj-user-roles-grid>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n <kendo-tabstrip-tab title=\"Entity Permissions\">\r\n <ng-template kendoTabContent>\r\n <div class=\"content\">\r\n <mj-entity-permissions-grid *ngIf=\"RoleRecord && RoleRecord.Name\" Mode=\"Role\" [RoleName]=\"RoleRecord.Name\" ></mj-entity-permissions-grid>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n </div>\r\n</div>\r\n \r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"RoleRecord\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: ["button {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.role-name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.role-info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.role-info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.role-info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
192
+ args: [{ selector: 'mj-single-role', template: "<div mjFillContainer class=\"wrapper\">\r\n @if(isLoading) {\r\n <kendo-loader></kendo-loader> \r\n }\r\n @if(!isLoading && RoleRecord) {\r\n <table class=\"role-info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">Role</th>\r\n <td>{{RoleRecord.Name}}\r\n <kendo-svgicon class='edit-icon' [icon]=\"kendoSVGIcon('pencil')\" (click)=\"EditRecord()\"></kendo-svgicon>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Description</th>\r\n <td>{{RoleRecord.Description}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Directory ID</th>\r\n <td>{{RoleRecord.DirectoryID}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">SQL Name</th>\r\n <td>{{RoleRecord.SQLName}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n\r\n <mj-tabstrip mjFillContainer [bottomMargin]=\"150\">\r\n <mj-tab>\r\n Users\r\n </mj-tab>\r\n <mj-tab-body>\r\n <mj-user-roles-grid Mode=\"Roles\" [RoleName]=\"RoleName\" [RoleRecord]=\"RoleRecord\"></mj-user-roles-grid>\r\n </mj-tab-body>\r\n\r\n <mj-tab>\r\n Entity Permissions\r\n </mj-tab>\r\n <mj-tab-body>\r\n <mj-entity-permissions-grid *ngIf=\"RoleRecord && RoleRecord.Name\" Mode=\"Role\" [RoleName]=\"RoleRecord.Name\" mjFillContainer></mj-entity-permissions-grid>\r\n </mj-tab-body>\r\n </mj-tabstrip>\r\n }\r\n</div>\r\n \r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"RoleRecord\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: [".wrapper {\r\n display: block;\r\n}\r\n\r\nbutton {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.role-name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.role-info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.role-info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.role-info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
202
193
  }], () => [{ type: i0.ChangeDetectorRef }], { RoleName: [{
203
194
  type: Input
204
195
  }], entityFormComponent: [{
@@ -14,7 +14,7 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
15
  import * as i2 from "@memberjunction/ng-container-directives";
16
16
  import * as i3 from "@progress/kendo-angular-icons";
17
- import * as i4 from "@progress/kendo-angular-layout";
17
+ import * as i4 from "@memberjunction/ng-tabstrip";
18
18
  import * as i5 from "@memberjunction/ng-entity-form-dialog";
19
19
  import * as i6 from "@progress/kendo-angular-indicators";
20
20
  import * as i7 from "@memberjunction/ng-user-view-grid";
@@ -25,36 +25,21 @@ function SingleUserComponent_div_1_Template(rf, ctx) { if (rf & 1) {
25
25
  i0.ɵɵelement(1, "kendo-loader");
26
26
  i0.ɵɵelementEnd();
27
27
  } }
28
- function SingleUserComponent_div_2_ng_template_41_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelement(0, "mj-user-roles-grid", 11);
28
+ function SingleUserComponent_div_2_mj_user_view_grid_48_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelement(0, "mj-user-view-grid", 11);
30
30
  } if (rf & 2) {
31
31
  const ctx_r3 = i0.ɵɵnextContext(2);
32
- i0.ɵɵproperty("UserID", ctx_r3.UserID)("UserRecord", ctx_r3.UserRecord);
33
- } }
34
- function SingleUserComponent_div_2_ng_template_43_mj_user_view_grid_1_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelement(0, "mj-user-view-grid", 14);
36
- } if (rf & 2) {
37
- const ctx_r5 = i0.ɵɵnextContext(3);
38
- i0.ɵɵproperty("Params", ctx_r5.UserViewsParams);
39
- } }
40
- function SingleUserComponent_div_2_ng_template_43_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 12);
42
- i0.ɵɵtemplate(1, SingleUserComponent_div_2_ng_template_43_mj_user_view_grid_1_Template, 1, 1, "mj-user-view-grid", 13);
43
- i0.ɵɵelementEnd();
44
- } if (rf & 2) {
45
- const ctx_r4 = i0.ɵɵnextContext(2);
46
- i0.ɵɵadvance();
47
- i0.ɵɵproperty("ngIf", ctx_r4.UserViewsParams);
32
+ i0.ɵɵproperty("Params", ctx_r3.UserViewsParams);
48
33
  } }
49
34
  function SingleUserComponent_div_2_Template(rf, ctx) { if (rf & 1) {
50
- const _r7 = i0.ɵɵgetCurrentView();
35
+ const _r5 = i0.ɵɵgetCurrentView();
51
36
  i0.ɵɵelementStart(0, "div")(1, "table", 4)(2, "tbody")(3, "tr")(4, "th", 5);
52
37
  i0.ɵɵtext(5, "User");
53
38
  i0.ɵɵelementEnd();
54
39
  i0.ɵɵelementStart(6, "td");
55
40
  i0.ɵɵtext(7);
56
41
  i0.ɵɵelementStart(8, "kendo-svgicon", 6);
57
- i0.ɵɵlistener("click", function SingleUserComponent_div_2_Template_kendo_svgicon_click_8_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.EditRecord()); });
42
+ i0.ɵɵlistener("click", function SingleUserComponent_div_2_Template_kendo_svgicon_click_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.EditRecord()); });
58
43
  i0.ɵɵelementEnd()()();
59
44
  i0.ɵɵelementStart(9, "tr")(10, "th", 5);
60
45
  i0.ɵɵtext(11, "First Name");
@@ -92,12 +77,18 @@ function SingleUserComponent_div_2_Template(rf, ctx) { if (rf & 1) {
92
77
  i0.ɵɵelementStart(37, "td");
93
78
  i0.ɵɵtext(38);
94
79
  i0.ɵɵelementEnd()()()();
95
- i0.ɵɵelementStart(39, "kendo-tabstrip", 7)(40, "kendo-tabstrip-tab", 8);
96
- i0.ɵɵtemplate(41, SingleUserComponent_div_2_ng_template_41_Template, 1, 2, "ng-template", 9);
80
+ i0.ɵɵelementStart(39, "mj-tabstrip")(40, "mj-tab", 7);
81
+ i0.ɵɵtext(41, " Roles ");
97
82
  i0.ɵɵelementEnd();
98
- i0.ɵɵelementStart(42, "kendo-tabstrip-tab", 10);
99
- i0.ɵɵtemplate(43, SingleUserComponent_div_2_ng_template_43_Template, 2, 1, "ng-template", 9);
100
- i0.ɵɵelementEnd()()();
83
+ i0.ɵɵelementStart(42, "mj-tab-body");
84
+ i0.ɵɵelement(43, "mj-user-roles-grid", 8);
85
+ i0.ɵɵelementEnd();
86
+ i0.ɵɵelementStart(44, "mj-tab");
87
+ i0.ɵɵtext(45, " Views ");
88
+ i0.ɵɵelementEnd();
89
+ i0.ɵɵelementStart(46, "mj-tab-body")(47, "div", 9);
90
+ i0.ɵɵtemplate(48, SingleUserComponent_div_2_mj_user_view_grid_48_Template, 1, 1, "mj-user-view-grid", 10);
91
+ i0.ɵɵelementEnd()()()();
101
92
  } if (rf & 2) {
102
93
  const ctx_r1 = i0.ɵɵnextContext();
103
94
  i0.ɵɵadvance(7);
@@ -116,10 +107,12 @@ function SingleUserComponent_div_2_Template(rf, ctx) { if (rf & 1) {
116
107
  i0.ɵɵtextInterpolate(ctx_r1.UserRecord.Type);
117
108
  i0.ɵɵadvance(5);
118
109
  i0.ɵɵtextInterpolate(ctx_r1.UserRecord.IsActive);
119
- i0.ɵɵadvance();
120
- i0.ɵɵproperty("keepTabContent", true)("animate", false);
121
- i0.ɵɵadvance();
122
- i0.ɵɵproperty("selected", true);
110
+ i0.ɵɵadvance(2);
111
+ i0.ɵɵproperty("TabSelected", true);
112
+ i0.ɵɵadvance(3);
113
+ i0.ɵɵproperty("UserID", ctx_r1.UserID)("UserRecord", ctx_r1.UserRecord);
114
+ i0.ɵɵadvance(5);
115
+ i0.ɵɵproperty("ngIf", ctx_r1.UserViewsParams);
123
116
  } }
124
117
  export class SingleUserComponent {
125
118
  constructor(cdRef) {
@@ -164,9 +157,9 @@ SingleUserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleU
164
157
  } if (rf & 2) {
165
158
  let _t;
166
159
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormComponent = _t.first);
167
- } }, inputs: { UserID: "UserID" }, decls: 5, vars: 8, consts: [["mjFillContainer", ""], [4, "ngIf"], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "info-table"], ["scope", "row"], [1, "edit-icon", 3, "icon", "click"], [3, "keepTabContent", "animate"], ["title", "Roles", 3, "selected"], ["kendoTabContent", ""], ["title", "Views"], ["Mode", "Users", 3, "UserID", "UserRecord"], [1, "content"], [3, "Params", 4, "ngIf"], [3, "Params"]], template: function SingleUserComponent_Template(rf, ctx) { if (rf & 1) {
160
+ } }, inputs: { UserID: "UserID" }, decls: 5, vars: 8, consts: [["mjFillContainer", ""], [4, "ngIf"], ["SectionName", "details", "Mode", "section", 3, "Record", "Visible", "AutoRevertOnCancel", "HandleSave", "Width", "Height", "close"], ["entityForm", ""], [1, "info-table"], ["scope", "row"], [1, "edit-icon", 3, "icon", "click"], [3, "TabSelected"], ["Mode", "Users", 3, "UserID", "UserRecord"], [1, "content"], [3, "Params", 4, "ngIf"], [3, "Params"]], template: function SingleUserComponent_Template(rf, ctx) { if (rf & 1) {
168
161
  i0.ɵɵelementStart(0, "div", 0);
169
- i0.ɵɵtemplate(1, SingleUserComponent_div_1_Template, 2, 0, "div", 1)(2, SingleUserComponent_div_2_Template, 44, 11, "div", 1);
162
+ i0.ɵɵtemplate(1, SingleUserComponent_div_1_Template, 2, 0, "div", 1)(2, SingleUserComponent_div_2_Template, 49, 12, "div", 1);
170
163
  i0.ɵɵelementEnd();
171
164
  i0.ɵɵelementStart(3, "mj-entity-form-dialog", 2, 3);
172
165
  i0.ɵɵlistener("close", function SingleUserComponent_Template_mj_entity_form_dialog_close_3_listener($event) { return ctx.onEntityFormClosed($event); });
@@ -178,10 +171,10 @@ SingleUserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleU
178
171
  i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.UserRecord);
179
172
  i0.ɵɵadvance();
180
173
  i0.ɵɵproperty("Record", ctx.UserRecord)("Visible", ctx.showEntityEditingForm)("AutoRevertOnCancel", true)("HandleSave", true)("Width", 550)("Height", 450);
181
- } }, dependencies: [i1.NgIf, i2.FillContainer, i3.SVGIconComponent, i4.TabStripComponent, i4.TabStripTabComponent, i4.TabContentDirective, i5.EntityFormDialog, i6.LoaderComponent, i7.UserViewGridComponent, i8.UserRolesGridComponent], styles: ["button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
174
+ } }, dependencies: [i1.NgIf, i2.FillContainer, i3.SVGIconComponent, i4.MJTabStripComponent, i4.MJTabBodyComponent, i4.MJTabComponent, i5.EntityFormDialog, i6.LoaderComponent, i7.UserViewGridComponent, i8.UserRolesGridComponent], styles: ["button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n border-collapse: collapse; \n\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n font-weight: bold; \n\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n}\r\n\r\n.info-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\r\n text-align: left; \n\r\n padding: 8px; \n\r\n border: none; \n\r\n background-color: transparent; \n\r\n overflow: hidden; \n\r\n text-overflow: ellipsis; \n\r\n}\r\n\r\n\n\r\n.edit-icon[_ngcontent-%COMP%] {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; \n\r\n}\r\n\r\n.edit-icon[_ngcontent-%COMP%]:hover {\r\n fill: #007bff; \n\r\n}"] });
182
175
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleUserComponent, [{
183
176
  type: Component,
184
- args: [{ selector: 'mj-single-user', template: "<div mjFillContainer>\r\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\r\n <div *ngIf=\"!isLoading && UserRecord\">\r\n <table class=\"info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">User</th>\r\n <td>{{UserRecord.Name}}<kendo-svgicon class='edit-icon' [icon]=\"kendoSVGIcon('pencil')\" (click)=\"EditRecord()\"></kendo-svgicon></td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">First Name</th>\r\n <td>{{UserRecord.FirstName}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Last Name</th>\r\n <td>{{UserRecord.LastName}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Title</th>\r\n <td>{{UserRecord.Title}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Email</th>\r\n <td>{{UserRecord.Email}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Type</th>\r\n <td>{{UserRecord.Type}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Is Active</th>\r\n <td>{{UserRecord.IsActive}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n <kendo-tabstrip\r\n [keepTabContent]=\"true\"\r\n [animate]=\"false\" \r\n > \r\n <kendo-tabstrip-tab title=\"Roles\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <mj-user-roles-grid Mode=\"Users\" [UserID]=\"UserID\" [UserRecord]=\"UserRecord\"></mj-user-roles-grid>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n <kendo-tabstrip-tab title=\"Views\">\r\n <ng-template kendoTabContent>\r\n <div class=\"content\">\r\n <mj-user-view-grid *ngIf=\"UserViewsParams\" [Params]=\"UserViewsParams\"></mj-user-view-grid>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n </div>\r\n</div>\r\n\r\n\r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"UserRecord\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: ["button {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
177
+ args: [{ selector: 'mj-single-user', template: "<div mjFillContainer>\r\n <div *ngIf=\"isLoading\"><kendo-loader></kendo-loader></div>\r\n <div *ngIf=\"!isLoading && UserRecord\">\r\n <table class=\"info-table\">\r\n <tbody>\r\n <tr>\r\n <th scope=\"row\">User</th>\r\n <td>{{UserRecord.Name}}<kendo-svgicon class='edit-icon' [icon]=\"kendoSVGIcon('pencil')\" (click)=\"EditRecord()\"></kendo-svgicon></td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">First Name</th>\r\n <td>{{UserRecord.FirstName}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Last Name</th>\r\n <td>{{UserRecord.LastName}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Title</th>\r\n <td>{{UserRecord.Title}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Email</th>\r\n <td>{{UserRecord.Email}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Type</th>\r\n <td>{{UserRecord.Type}}</td>\r\n </tr>\r\n <tr>\r\n <th scope=\"row\">Is Active</th>\r\n <td>{{UserRecord.IsActive}}</td>\r\n </tr>\r\n </tbody>\r\n </table> \r\n <mj-tabstrip>\r\n <mj-tab [TabSelected]=\"true\">\r\n Roles\r\n </mj-tab>\r\n <mj-tab-body>\r\n <mj-user-roles-grid Mode=\"Users\" [UserID]=\"UserID\" [UserRecord]=\"UserRecord\"></mj-user-roles-grid>\r\n </mj-tab-body>\r\n\r\n <mj-tab>\r\n Views\r\n </mj-tab> \r\n <mj-tab-body> \r\n <div class=\"content\">\r\n <mj-user-view-grid *ngIf=\"UserViewsParams\" [Params]=\"UserViewsParams\"></mj-user-view-grid>\r\n </div>\r\n </mj-tab-body>\r\n </mj-tabstrip>\r\n </div>\r\n</div>\r\n\r\n\r\n<mj-entity-form-dialog #entityForm \r\n [Record]=\"UserRecord\" \r\n SectionName=\"details\" \r\n Mode=\"section\" \r\n [Visible]=\"showEntityEditingForm\" \r\n [AutoRevertOnCancel]=\"true\"\r\n [HandleSave]=\"true\"\r\n [Width]=\"550\"\r\n [Height]=\"450\"\r\n (close)=\"onEntityFormClosed($event)\">\r\n</mj-entity-form-dialog>\r\n", styles: ["button {\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n width: 125px;\r\n}\r\n\r\n\r\n\r\n.name {\r\n font-weight: bold;\r\n font-size: 20px;\r\n margin-left: 5px;\r\n margin-top: 5px;\r\n}\r\n\r\n.info-table {\r\n width: 100%; /* Take up the full width of the container */\r\n border-collapse: collapse; /* For a cleaner look */\r\n margin-bottom: 10px;\r\n}\r\n\r\n.info-table th {\r\n width: 150px; /* Adjust this fixed width as needed */\r\n font-weight: bold; /* Make header labels bold */\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n}\r\n\r\n.info-table td {\r\n text-align: left; /* Align text to the left */\r\n padding: 8px; /* Add some padding for spacing */\r\n border: none; /* Removes the borders */\r\n background-color: transparent; /* Removes any background color */\r\n overflow: hidden; /* Prevents content from overflowing */\r\n text-overflow: ellipsis; /* Adds an ellipsis if the text overflows */\r\n}\r\n\r\n/* Style for SVG icon */\r\n.edit-icon {\r\n margin-left: 20px; \r\n vertical-align: middle;;\r\n cursor: pointer; /* Changes the cursor to a pointer */\r\n}\r\n\r\n.edit-icon:hover {\r\n fill: #007bff; /* Changes the color on hover, set to the color you prefer */\r\n}"] }]
185
178
  }], () => [{ type: i0.ChangeDetectorRef }], { UserID: [{
186
179
  type: Input
187
180
  }], entityFormComponent: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-explorer-settings",
3
- "version": "0.9.34",
3
+ "version": "1.0.0",
4
4
  "description": "MemberJunction: Reusable Angular components for the settings section of the MJ Explorer App",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,16 +25,17 @@
25
25
  "@angular/router": "~17.2.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core-entities": "^0.9.185",
29
- "@memberjunction/global": "^0.9.168",
30
- "@memberjunction/core": "^0.9.188",
31
- "@memberjunction/ng-container-directives": "^0.9.151",
32
- "@memberjunction/ng-shared": "^0.9.53",
33
- "@memberjunction/ng-entity-permissions": "^0.9.29",
34
- "@memberjunction/ng-base-forms": "^0.9.25",
35
- "@memberjunction/ng-entity-form-dialog": "^0.9.24",
36
- "@memberjunction/ng-user-view-grid": "^0.9.236",
37
- "@memberjunction/ng-simple-record-list": "^0.9.24",
28
+ "@memberjunction/core-entities": "^1.0.0",
29
+ "@memberjunction/global": "^1.0.0",
30
+ "@memberjunction/core": "^1.0.0",
31
+ "@memberjunction/ng-container-directives": "^1.0.0",
32
+ "@memberjunction/ng-shared": "^1.0.0",
33
+ "@memberjunction/ng-entity-permissions": "^0.9.30",
34
+ "@memberjunction/ng-base-forms": "^1.0.0",
35
+ "@memberjunction/ng-entity-form-dialog": "^1.0.0",
36
+ "@memberjunction/ng-user-view-grid": "^1.0.0",
37
+ "@memberjunction/ng-simple-record-list": "^1.0.0",
38
+ "@memberjunction/ng-tabstrip": "^1.0.0",
38
39
  "@progress/kendo-angular-dropdowns": "~15.1.0",
39
40
  "@progress/kendo-angular-grid": "~15.1.0",
40
41
  "@progress/kendo-angular-buttons": "~15.1.0",