@memberjunction/ng-shared 3.3.0 → 3.4.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.
@@ -0,0 +1,93 @@
1
+ import { Observable } from 'rxjs';
2
+ import { UserEntity } from '@memberjunction/core-entities';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service to manage Developer Mode functionality across Explorer apps.
6
+ *
7
+ * Developer Mode shows additional debugging tools and developer-focused
8
+ * features in the UI. Only users with Developer, Admin, or System Administrator
9
+ * roles can enable developer mode.
10
+ *
11
+ * Settings are persisted using the MJ: User Settings entity via UserInfoEngine.
12
+ *
13
+ * Usage:
14
+ * ```typescript
15
+ * constructor(private devMode: DeveloperModeService) {}
16
+ *
17
+ * async ngOnInit() {
18
+ * await this.devMode.Initialize(userEntity);
19
+ *
20
+ * // Subscribe to changes
21
+ * this.devMode.IsEnabled$.subscribe(enabled => {
22
+ * this.showDevTools = enabled;
23
+ * });
24
+ * }
25
+ * ```
26
+ */
27
+ export declare class DeveloperModeService {
28
+ private _isEnabled$;
29
+ private _isDeveloper$;
30
+ private _initialized;
31
+ private _currentUser;
32
+ private static readonly DEVELOPER_ROLES;
33
+ /**
34
+ * Observable for developer mode enabled state.
35
+ * Emits whenever developer mode is toggled.
36
+ */
37
+ get IsEnabled$(): Observable<boolean>;
38
+ /**
39
+ * Observable for whether user has developer role.
40
+ * This determines if they CAN enable developer mode.
41
+ */
42
+ get IsDeveloper$(): Observable<boolean>;
43
+ /**
44
+ * Current enabled state (synchronous access)
45
+ */
46
+ get IsEnabled(): boolean;
47
+ /**
48
+ * Whether user has developer role (synchronous access)
49
+ */
50
+ get IsDeveloper(): boolean;
51
+ /**
52
+ * Whether the service has been initialized
53
+ */
54
+ get IsInitialized(): boolean;
55
+ /**
56
+ * Initialize service with current user.
57
+ * Call this after login/authentication completes.
58
+ */
59
+ Initialize(user: UserEntity): Promise<void>;
60
+ /**
61
+ * Toggle developer mode on/off.
62
+ * Only works if user has developer role.
63
+ * @returns The new state, or false if user cannot enable dev mode
64
+ */
65
+ Toggle(): Promise<boolean>;
66
+ /**
67
+ * Enable developer mode (if user has developer role)
68
+ */
69
+ Enable(): Promise<void>;
70
+ /**
71
+ * Disable developer mode
72
+ */
73
+ Disable(): Promise<void>;
74
+ /**
75
+ * Reset the service (e.g., on logout)
76
+ */
77
+ Reset(): void;
78
+ /**
79
+ * Load the developer mode setting from User Settings entity
80
+ */
81
+ private LoadSetting;
82
+ /**
83
+ * Save the developer mode setting to User Settings entity
84
+ */
85
+ private SaveSetting;
86
+ /**
87
+ * Check if user has a developer role by querying User Roles entity
88
+ */
89
+ private CheckDeveloperRole;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<DeveloperModeService, never>;
91
+ static ɵprov: i0.ɵɵInjectableDeclaration<DeveloperModeService>;
92
+ }
93
+ //# sourceMappingURL=developer-mode.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-mode.service.d.ts","sourceRoot":"","sources":["../../src/lib/developer-mode.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAqB,MAAM,+BAA+B,CAAC;;AAQ9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,oBAAoB;IAC7B,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA2B;IAG/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAKrC;IAEF;;;OAGG;IACH,IAAW,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAE3C;IAED;;;OAGG;IACH,IAAW,YAAY,IAAI,UAAU,CAAC,OAAO,CAAC,CAE7C;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;;OAGG;IACU,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxD;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB;;OAEG;YACW,WAAW;IAWzB;;OAEG;YACW,WAAW;IASzB;;OAEG;YACW,kBAAkB;yCAzJvB,oBAAoB;6CAApB,oBAAoB;CAiMhC"}
@@ -0,0 +1,209 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { RunView } from '@memberjunction/core';
4
+ import { UserInfoEngine } from '@memberjunction/core-entities';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Setting key for developer mode in MJ: User Settings entity
8
+ */
9
+ const DEVELOPER_MODE_SETTING_KEY = 'Explorer.DeveloperMode';
10
+ /**
11
+ * Service to manage Developer Mode functionality across Explorer apps.
12
+ *
13
+ * Developer Mode shows additional debugging tools and developer-focused
14
+ * features in the UI. Only users with Developer, Admin, or System Administrator
15
+ * roles can enable developer mode.
16
+ *
17
+ * Settings are persisted using the MJ: User Settings entity via UserInfoEngine.
18
+ *
19
+ * Usage:
20
+ * ```typescript
21
+ * constructor(private devMode: DeveloperModeService) {}
22
+ *
23
+ * async ngOnInit() {
24
+ * await this.devMode.Initialize(userEntity);
25
+ *
26
+ * // Subscribe to changes
27
+ * this.devMode.IsEnabled$.subscribe(enabled => {
28
+ * this.showDevTools = enabled;
29
+ * });
30
+ * }
31
+ * ```
32
+ */
33
+ export class DeveloperModeService {
34
+ _isEnabled$ = new BehaviorSubject(false);
35
+ _isDeveloper$ = new BehaviorSubject(false);
36
+ _initialized = false;
37
+ _currentUser = null;
38
+ // Role names that qualify as "developer"
39
+ static DEVELOPER_ROLES = [
40
+ 'Developer',
41
+ 'Admin',
42
+ 'System Administrator',
43
+ 'Integration'
44
+ ];
45
+ /**
46
+ * Observable for developer mode enabled state.
47
+ * Emits whenever developer mode is toggled.
48
+ */
49
+ get IsEnabled$() {
50
+ return this._isEnabled$.asObservable();
51
+ }
52
+ /**
53
+ * Observable for whether user has developer role.
54
+ * This determines if they CAN enable developer mode.
55
+ */
56
+ get IsDeveloper$() {
57
+ return this._isDeveloper$.asObservable();
58
+ }
59
+ /**
60
+ * Current enabled state (synchronous access)
61
+ */
62
+ get IsEnabled() {
63
+ return this._isEnabled$.value;
64
+ }
65
+ /**
66
+ * Whether user has developer role (synchronous access)
67
+ */
68
+ get IsDeveloper() {
69
+ return this._isDeveloper$.value;
70
+ }
71
+ /**
72
+ * Whether the service has been initialized
73
+ */
74
+ get IsInitialized() {
75
+ return this._initialized;
76
+ }
77
+ /**
78
+ * Initialize service with current user.
79
+ * Call this after login/authentication completes.
80
+ */
81
+ async Initialize(user) {
82
+ if (this._initialized) {
83
+ return;
84
+ }
85
+ this._currentUser = user;
86
+ // Check if user has a developer role
87
+ const hasDeveloperRole = await this.CheckDeveloperRole(user);
88
+ this._isDeveloper$.next(hasDeveloperRole);
89
+ // Load saved preference from User Settings (only if user is a developer)
90
+ if (hasDeveloperRole) {
91
+ const savedState = await this.LoadSetting();
92
+ this._isEnabled$.next(savedState);
93
+ }
94
+ else {
95
+ // Non-developers always have dev mode disabled
96
+ this._isEnabled$.next(false);
97
+ }
98
+ this._initialized = true;
99
+ }
100
+ /**
101
+ * Toggle developer mode on/off.
102
+ * Only works if user has developer role.
103
+ * @returns The new state, or false if user cannot enable dev mode
104
+ */
105
+ async Toggle() {
106
+ if (!this.IsDeveloper) {
107
+ console.warn('Developer mode not available - user does not have Developer role');
108
+ return false;
109
+ }
110
+ const newState = !this.IsEnabled;
111
+ this._isEnabled$.next(newState);
112
+ await this.SaveSetting(newState);
113
+ return newState;
114
+ }
115
+ /**
116
+ * Enable developer mode (if user has developer role)
117
+ */
118
+ async Enable() {
119
+ if (this.IsDeveloper) {
120
+ this._isEnabled$.next(true);
121
+ await this.SaveSetting(true);
122
+ }
123
+ }
124
+ /**
125
+ * Disable developer mode
126
+ */
127
+ async Disable() {
128
+ this._isEnabled$.next(false);
129
+ await this.SaveSetting(false);
130
+ }
131
+ /**
132
+ * Reset the service (e.g., on logout)
133
+ */
134
+ Reset() {
135
+ this._isEnabled$.next(false);
136
+ this._isDeveloper$.next(false);
137
+ this._initialized = false;
138
+ this._currentUser = null;
139
+ }
140
+ /**
141
+ * Load the developer mode setting from User Settings entity
142
+ */
143
+ async LoadSetting() {
144
+ try {
145
+ const engine = UserInfoEngine.Instance;
146
+ const settingValue = engine.GetSetting(DEVELOPER_MODE_SETTING_KEY);
147
+ return settingValue === 'true';
148
+ }
149
+ catch (error) {
150
+ console.warn('Failed to load developer mode setting:', error);
151
+ return false;
152
+ }
153
+ }
154
+ /**
155
+ * Save the developer mode setting to User Settings entity
156
+ */
157
+ async SaveSetting(enabled) {
158
+ try {
159
+ const engine = UserInfoEngine.Instance;
160
+ await engine.SetSetting(DEVELOPER_MODE_SETTING_KEY, String(enabled));
161
+ }
162
+ catch (error) {
163
+ console.warn('Failed to save developer mode setting:', error);
164
+ }
165
+ }
166
+ /**
167
+ * Check if user has a developer role by querying User Roles entity
168
+ */
169
+ async CheckDeveloperRole(user) {
170
+ try {
171
+ const rv = new RunView();
172
+ // Get user's roles via the User Roles junction table
173
+ const userRolesResult = await rv.RunView({
174
+ EntityName: 'User Roles',
175
+ ExtraFilter: `UserID='${user.ID}'`,
176
+ ResultType: 'simple',
177
+ Fields: ['RoleID']
178
+ });
179
+ if (!userRolesResult.Success || !userRolesResult.Results?.length) {
180
+ return false;
181
+ }
182
+ const roleIds = userRolesResult.Results.map(ur => ur.RoleID);
183
+ // Get the role names
184
+ const rolesResult = await rv.RunView({
185
+ EntityName: 'Roles',
186
+ ExtraFilter: `ID IN (${roleIds.map(id => `'${id}'`).join(',')})`,
187
+ ResultType: 'simple',
188
+ Fields: ['Name']
189
+ });
190
+ if (!rolesResult.Success || !rolesResult.Results?.length) {
191
+ return false;
192
+ }
193
+ // Check if any role matches our developer roles (case-insensitive)
194
+ const userRoleNames = rolesResult.Results.map(r => r.Name.toLowerCase());
195
+ return DeveloperModeService.DEVELOPER_ROLES.some(devRole => userRoleNames.includes(devRole.toLowerCase()));
196
+ }
197
+ catch (error) {
198
+ console.error('Error checking developer role:', error);
199
+ return false;
200
+ }
201
+ }
202
+ static ɵfac = function DeveloperModeService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DeveloperModeService)(); };
203
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DeveloperModeService, factory: DeveloperModeService.ɵfac, providedIn: 'root' });
204
+ }
205
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DeveloperModeService, [{
206
+ type: Injectable,
207
+ args: [{ providedIn: 'root' }]
208
+ }], null, null); })();
209
+ //# sourceMappingURL=developer-mode.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer-mode.service.js","sourceRoot":"","sources":["../../src/lib/developer-mode.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export * from './lib/base-navigation-component';
7
7
  export * from './lib/navigation.service';
8
8
  export * from './lib/navigation.interfaces';
9
9
  export * from './lib/title.service';
10
+ export * from './lib/developer-mode.service';
10
11
  export { SYSTEM_APP_ID } from './lib/navigation.service';
11
12
  export * from '@memberjunction/ng-shared-generic';
12
13
  export * from './module';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC"}
@@ -10,6 +10,7 @@ export * from './lib/base-navigation-component';
10
10
  export * from './lib/navigation.service';
11
11
  export * from './lib/navigation.interfaces';
12
12
  export * from './lib/title.service';
13
+ export * from './lib/developer-mode.service';
13
14
  export { SYSTEM_APP_ID } from './lib/navigation.service';
14
15
  // Re-export from ng-shared-generic for backwards compatibility
15
16
  export * from '@memberjunction/ng-shared-generic';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,+DAA+D;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,+DAA+D;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-shared",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "MemberJunction: MJ Explorer Angular Shared Package - utility functions and other reusable elements used across other MJ Angular packages within the MJ Explorer App - do not use outside of MJ Explorer.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -29,16 +29,16 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@angular/platform-browser": "18.2.14",
32
- "@memberjunction/ai-engine-base": "3.3.0",
33
- "@memberjunction/core": "3.3.0",
34
- "@memberjunction/core-entities": "3.3.0",
35
- "@memberjunction/global": "3.3.0",
36
- "@memberjunction/graphql-dataprovider": "3.3.0",
37
- "@memberjunction/entity-communications-base": "3.3.0",
38
- "@memberjunction/ng-base-application": "3.3.0",
39
- "@memberjunction/ng-base-types": "3.3.0",
40
- "@memberjunction/ng-notifications": "3.3.0",
41
- "@memberjunction/ng-shared-generic": "3.3.0",
32
+ "@memberjunction/ai-engine-base": "3.4.0",
33
+ "@memberjunction/core": "3.4.0",
34
+ "@memberjunction/core-entities": "3.4.0",
35
+ "@memberjunction/global": "3.4.0",
36
+ "@memberjunction/graphql-dataprovider": "3.4.0",
37
+ "@memberjunction/entity-communications-base": "3.4.0",
38
+ "@memberjunction/ng-base-application": "3.4.0",
39
+ "@memberjunction/ng-base-types": "3.4.0",
40
+ "@memberjunction/ng-notifications": "3.4.0",
41
+ "@memberjunction/ng-shared-generic": "3.4.0",
42
42
  "@progress/kendo-angular-notification": "16.2.0",
43
43
  "tslib": "^2.3.0"
44
44
  },