@memberjunction/ng-explorer-core 6.2.0-edge.0 → 6.2.0-edge.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/app-routing.module.d.ts +23 -1
  2. package/dist/app-routing.module.d.ts.map +1 -1
  3. package/dist/app-routing.module.js +50 -14
  4. package/dist/app-routing.module.js.map +1 -1
  5. package/dist/generated/lazy-feature-config.d.ts +1 -1
  6. package/dist/generated/lazy-feature-config.d.ts.map +1 -1
  7. package/dist/generated/lazy-feature-config.js +12 -1
  8. package/dist/generated/lazy-feature-config.js.map +1 -1
  9. package/dist/lib/command-palette/command-palette.component.d.ts +7 -1
  10. package/dist/lib/command-palette/command-palette.component.d.ts.map +1 -1
  11. package/dist/lib/command-palette/command-palette.component.js +28 -14
  12. package/dist/lib/command-palette/command-palette.component.js.map +1 -1
  13. package/dist/lib/conversation-feedback/conversation-feedback.d.ts +103 -13
  14. package/dist/lib/conversation-feedback/conversation-feedback.d.ts.map +1 -1
  15. package/dist/lib/conversation-feedback/conversation-feedback.js +219 -67
  16. package/dist/lib/conversation-feedback/conversation-feedback.js.map +1 -1
  17. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.d.ts +64 -10
  18. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.d.ts.map +1 -1
  19. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +172 -66
  20. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
  21. package/dist/lib/generic/resource-container-component.d.ts +19 -5
  22. package/dist/lib/generic/resource-container-component.d.ts.map +1 -1
  23. package/dist/lib/generic/resource-container-component.js +43 -13
  24. package/dist/lib/generic/resource-container-component.js.map +1 -1
  25. package/dist/lib/guards/entities.guard.d.ts +4 -0
  26. package/dist/lib/guards/entities.guard.d.ts.map +1 -1
  27. package/dist/lib/guards/entities.guard.js +10 -2
  28. package/dist/lib/guards/entities.guard.js.map +1 -1
  29. package/dist/lib/identity-claims/claim-redeem.component.d.ts +4 -0
  30. package/dist/lib/identity-claims/claim-redeem.component.d.ts.map +1 -1
  31. package/dist/lib/identity-claims/claim-redeem.component.js +10 -2
  32. package/dist/lib/identity-claims/claim-redeem.component.js.map +1 -1
  33. package/dist/lib/oauth/oauth-callback.component.d.ts +4 -0
  34. package/dist/lib/oauth/oauth-callback.component.d.ts.map +1 -1
  35. package/dist/lib/oauth/oauth-callback.component.js +10 -2
  36. package/dist/lib/oauth/oauth-callback.component.js.map +1 -1
  37. package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
  38. package/dist/lib/profile/profile-dialog.component.js +194 -191
  39. package/dist/lib/profile/profile-dialog.component.js.map +1 -1
  40. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +20 -2
  41. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -1
  42. package/dist/lib/resource-wrappers/artifact-resource.component.js +33 -9
  43. package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
  44. package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +80 -10
  45. package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
  46. package/dist/lib/resource-wrappers/chat-collections-resource.component.js +168 -56
  47. package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
  48. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +199 -25
  49. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
  50. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +534 -182
  51. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  52. package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts +2 -0
  53. package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts.map +1 -1
  54. package/dist/lib/resource-wrappers/chat-deeplink-params.js +5 -1
  55. package/dist/lib/resource-wrappers/chat-deeplink-params.js.map +1 -1
  56. package/dist/lib/resource-wrappers/chat-search-routing.d.ts +25 -0
  57. package/dist/lib/resource-wrappers/chat-search-routing.d.ts.map +1 -0
  58. package/dist/lib/resource-wrappers/chat-search-routing.js +24 -0
  59. package/dist/lib/resource-wrappers/chat-search-routing.js.map +1 -0
  60. package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +14 -2
  61. package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -1
  62. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +32 -8
  63. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -1
  64. package/dist/lib/resource-wrappers/compose-email-fallback.d.ts +46 -0
  65. package/dist/lib/resource-wrappers/compose-email-fallback.d.ts.map +1 -0
  66. package/dist/lib/resource-wrappers/compose-email-fallback.js +62 -0
  67. package/dist/lib/resource-wrappers/compose-email-fallback.js.map +1 -0
  68. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +54 -8
  69. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  70. package/dist/lib/resource-wrappers/dashboard-resource.component.js +138 -46
  71. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  72. package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts +223 -30
  73. package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts.map +1 -1
  74. package/dist/lib/resource-wrappers/livekit-room-resource.component.js +438 -118
  75. package/dist/lib/resource-wrappers/livekit-room-resource.component.js.map +1 -1
  76. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +7 -3
  77. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
  78. package/dist/lib/resource-wrappers/search-results-resource.component.js +23 -15
  79. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  80. package/dist/lib/resource-wrappers/view-resource.component.d.ts +74 -11
  81. package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
  82. package/dist/lib/resource-wrappers/view-resource.component.js +214 -68
  83. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  84. package/dist/lib/services/server-connectivity.service.d.ts +9 -4
  85. package/dist/lib/services/server-connectivity.service.d.ts.map +1 -1
  86. package/dist/lib/services/server-connectivity.service.js +56 -12
  87. package/dist/lib/services/server-connectivity.service.js.map +1 -1
  88. package/dist/lib/services/startup-validation.service.d.ts +4 -0
  89. package/dist/lib/services/startup-validation.service.d.ts.map +1 -1
  90. package/dist/lib/services/startup-validation.service.js +10 -2
  91. package/dist/lib/services/startup-validation.service.js.map +1 -1
  92. package/dist/lib/services/system-validation.service.d.ts +13 -1
  93. package/dist/lib/services/system-validation.service.d.ts.map +1 -1
  94. package/dist/lib/services/system-validation.service.js +29 -5
  95. package/dist/lib/services/system-validation.service.js.map +1 -1
  96. package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts +54 -4
  97. package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts.map +1 -1
  98. package/dist/lib/shell/components/dialogs/app-access-dialog.component.js +130 -40
  99. package/dist/lib/shell/components/dialogs/app-access-dialog.component.js.map +1 -1
  100. package/dist/lib/shell/components/header/app-nav.component.d.ts +29 -1
  101. package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
  102. package/dist/lib/shell/components/header/app-nav.component.js +56 -12
  103. package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
  104. package/dist/lib/shell/components/header/app-switcher.component.d.ts +33 -5
  105. package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -1
  106. package/dist/lib/shell/components/header/app-switcher.component.js +85 -29
  107. package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
  108. package/dist/lib/shell/components/record-open/record-origin-crumb.component.js +1 -1
  109. package/dist/lib/shell/components/record-open/record-origin-crumb.component.js.map +1 -1
  110. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +50 -6
  111. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
  112. package/dist/lib/shell/components/tabs/component-cache-manager.js +95 -22
  113. package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
  114. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +91 -9
  115. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
  116. package/dist/lib/shell/components/tabs/tab-container.component.js +257 -101
  117. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
  118. package/dist/lib/shell/loading-themes.d.ts +16 -12
  119. package/dist/lib/shell/loading-themes.d.ts.map +1 -1
  120. package/dist/lib/shell/loading-themes.js +145 -137
  121. package/dist/lib/shell/loading-themes.js.map +1 -1
  122. package/dist/lib/shell/readiness-beacon.d.ts +2 -0
  123. package/dist/lib/shell/readiness-beacon.d.ts.map +1 -1
  124. package/dist/lib/shell/readiness-beacon.js +5 -1
  125. package/dist/lib/shell/readiness-beacon.js.map +1 -1
  126. package/dist/lib/shell/services/about-dialog.service.d.ts +6 -0
  127. package/dist/lib/shell/services/about-dialog.service.d.ts.map +1 -1
  128. package/dist/lib/shell/services/about-dialog.service.js +16 -4
  129. package/dist/lib/shell/services/about-dialog.service.js.map +1 -1
  130. package/dist/lib/shell/services/profile-dialog.service.d.ts +6 -0
  131. package/dist/lib/shell/services/profile-dialog.service.d.ts.map +1 -1
  132. package/dist/lib/shell/services/profile-dialog.service.js +16 -4
  133. package/dist/lib/shell/services/profile-dialog.service.js.map +1 -1
  134. package/dist/lib/shell/services/user-sharing-center-dialog.service.d.ts +6 -0
  135. package/dist/lib/shell/services/user-sharing-center-dialog.service.d.ts.map +1 -1
  136. package/dist/lib/shell/services/user-sharing-center-dialog.service.js +15 -3
  137. package/dist/lib/shell/services/user-sharing-center-dialog.service.js.map +1 -1
  138. package/dist/lib/shell/shell.component.d.ts +264 -39
  139. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  140. package/dist/lib/shell/shell.component.js +697 -294
  141. package/dist/lib/shell/shell.component.js.map +1 -1
  142. package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +64 -8
  143. package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts.map +1 -1
  144. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +129 -37
  145. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
  146. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts +26 -2
  147. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts.map +1 -1
  148. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +48 -10
  149. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
  150. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +84 -6
  151. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts.map +1 -1
  152. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +133 -29
  153. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
  154. package/dist/lib/single-dashboard/single-dashboard.component.d.ts +173 -23
  155. package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
  156. package/dist/lib/single-dashboard/single-dashboard.component.js +383 -109
  157. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
  158. package/dist/lib/single-list-detail/single-list-detail.component.d.ts +383 -55
  159. package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
  160. package/dist/lib/single-list-detail/single-list-detail.component.js +962 -326
  161. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
  162. package/dist/lib/single-query/single-query.component.d.ts +22 -2
  163. package/dist/lib/single-query/single-query.component.d.ts.map +1 -1
  164. package/dist/lib/single-query/single-query.component.js +40 -10
  165. package/dist/lib/single-query/single-query.component.js.map +1 -1
  166. package/dist/lib/single-record/single-record.component.d.ts +41 -3
  167. package/dist/lib/single-record/single-record.component.d.ts.map +1 -1
  168. package/dist/lib/single-record/single-record.component.js +71 -11
  169. package/dist/lib/single-record/single-record.component.js.map +1 -1
  170. package/dist/lib/single-search-result/single-search-result.component.d.ts +23 -3
  171. package/dist/lib/single-search-result/single-search-result.component.d.ts.map +1 -1
  172. package/dist/lib/single-search-result/single-search-result.component.js +42 -12
  173. package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
  174. package/dist/lib/system-validation/system-validation-banner.component.d.ts +12 -2
  175. package/dist/lib/system-validation/system-validation-banner.component.d.ts.map +1 -1
  176. package/dist/lib/system-validation/system-validation-banner.component.js +25 -5
  177. package/dist/lib/system-validation/system-validation-banner.component.js.map +1 -1
  178. package/dist/lib/user-menu/user-menu.types.d.ts +4 -0
  179. package/dist/lib/user-menu/user-menu.types.d.ts.map +1 -1
  180. package/dist/lib/user-menu/user-menu.types.js +10 -2
  181. package/dist/lib/user-menu/user-menu.types.js.map +1 -1
  182. package/dist/lib/user-notifications/user-notifications.component.d.ts +59 -7
  183. package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
  184. package/dist/lib/user-notifications/user-notifications.component.js +151 -47
  185. package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
  186. package/dist/lib/user-profile/user-profile.component.d.ts +3 -2
  187. package/dist/lib/user-profile/user-profile.component.d.ts.map +1 -1
  188. package/dist/lib/user-profile/user-profile.component.js +5 -4
  189. package/dist/lib/user-profile/user-profile.component.js.map +1 -1
  190. package/package.json +52 -52
@@ -7,12 +7,20 @@ import * as i0 from "@angular/core";
7
7
  */
8
8
  export class SystemValidationService {
9
9
  _validationIssues = new BehaviorSubject([]);
10
- validationIssues$ = this._validationIssues.asObservable();
10
+ ValidationIssues$ = this._validationIssues.asObservable();
11
+ /** @deprecated Use {@link ValidationIssues$}. */
12
+ get validationIssues$() {
13
+ return this.ValidationIssues$;
14
+ }
15
+ /** @deprecated Use {@link ValidationIssues$}. */
16
+ set validationIssues$(value) {
17
+ this.ValidationIssues$ = value;
18
+ }
11
19
  constructor() { }
12
20
  /**
13
21
  * Adds a new validation issue to the list
14
22
  */
15
- addIssue(issue) {
23
+ AddIssue(issue) {
16
24
  try {
17
25
  const newIssue = {
18
26
  ...issue,
@@ -29,10 +37,14 @@ export class SystemValidationService {
29
37
  console.error('Error adding validation issue', err);
30
38
  }
31
39
  }
40
+ /** @deprecated Use {@link AddIssue}. */
41
+ addIssue(issue) {
42
+ return this.AddIssue(issue);
43
+ }
32
44
  /**
33
45
  * Removes a validation issue by id
34
46
  */
35
- removeIssue(id) {
47
+ RemoveIssue(id) {
36
48
  try {
37
49
  const currentIssues = this._validationIssues.getValue();
38
50
  const updatedIssues = currentIssues.filter(issue => issue.id !== id);
@@ -44,18 +56,30 @@ export class SystemValidationService {
44
56
  console.error('Error removing validation issue', err);
45
57
  }
46
58
  }
59
+ /** @deprecated Use {@link RemoveIssue}. */
60
+ removeIssue(id) {
61
+ return this.RemoveIssue(id);
62
+ }
47
63
  /**
48
64
  * Clears all validation issues
49
65
  */
50
- clearIssues() {
66
+ ClearIssues() {
51
67
  this._validationIssues.next([]);
52
68
  }
69
+ /** @deprecated Use {@link ClearIssues}. */
70
+ clearIssues() {
71
+ return this.ClearIssues();
72
+ }
53
73
  /**
54
74
  * Checks if there are any validation issues with error severity
55
75
  */
56
- hasErrors() {
76
+ HasErrors() {
57
77
  return this._validationIssues.getValue().some(issue => issue.severity === 'error');
58
78
  }
79
+ /** @deprecated Use {@link HasErrors}. */
80
+ hasErrors() {
81
+ return this.HasErrors();
82
+ }
59
83
  static ɵfac = function SystemValidationService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SystemValidationService)(); };
60
84
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SystemValidationService, factory: SystemValidationService.ɵfac, providedIn: 'root' });
61
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-validation.service.js","sourceRoot":"","sources":["../../../src/lib/services/system-validation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAc,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAchD;;GAEG;AAIH,MAAM,OAAO,uBAAuB;IAC1B,iBAAiB,GAAG,IAAI,eAAe,CAA0B,EAAE,CAAC,CAAC;IAEtE,iBAAiB,GAAwC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IAEtG,gBAAgB,CAAC;IAEjB;;OAEG;IACI,QAAQ,CAAC,KAA+C;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAA0B;gBACtC,GAAG,KAAK;gBACR,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAExD,wCAAwC;YACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC1D,QAAQ,CAAC,4BAA4B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,EAAU;QAC3B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,IAAI,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACrF,CAAC;iHAzDU,uBAAuB;gEAAvB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;;iFAEP,uBAAuB;cAHnC,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { LogError } from '@memberjunction/core';\n\n/**\n * Represents a system validation issue with its severity level\n */\nexport interface SystemValidationIssue {\n id: string;\n message: string;\n details?: string;\n severity: 'error' | 'warning' | 'info';\n help?: string;\n timestamp: Date;\n}\n\n/**\n * Service for checking system validation issues and displaying error messages to users\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SystemValidationService {\n private _validationIssues = new BehaviorSubject<SystemValidationIssue[]>([]);\n \n public validationIssues$: Observable<SystemValidationIssue[]> = this._validationIssues.asObservable();\n\n constructor() { }\n\n /**\n * Adds a new validation issue to the list\n */\n public addIssue(issue: Omit<SystemValidationIssue, 'timestamp'>): void {\n try {\n const newIssue: SystemValidationIssue = {\n ...issue,\n timestamp: new Date()\n };\n\n const currentIssues = this._validationIssues.getValue();\n \n // Don't add duplicates with the same ID\n if (!currentIssues.some(i => i.id === issue.id)) {\n this._validationIssues.next([...currentIssues, newIssue]);\n LogError(`System Validation Issue: ${issue.message} (${issue.id})`);\n }\n } catch (err) {\n console.error('Error adding validation issue', err);\n }\n }\n\n /**\n * Removes a validation issue by id\n */\n public removeIssue(id: string): void {\n try {\n const currentIssues = this._validationIssues.getValue();\n const updatedIssues = currentIssues.filter(issue => issue.id !== id);\n \n if (updatedIssues.length !== currentIssues.length) {\n this._validationIssues.next(updatedIssues);\n }\n } catch (err) {\n console.error('Error removing validation issue', err);\n }\n }\n\n /**\n * Clears all validation issues\n */\n public clearIssues(): void {\n this._validationIssues.next([]);\n }\n\n /**\n * Checks if there are any validation issues with error severity\n */\n public hasErrors(): boolean {\n return this._validationIssues.getValue().some(issue => issue.severity === 'error');\n }\n}"]}
1
+ {"version":3,"file":"system-validation.service.js","sourceRoot":"","sources":["../../../src/lib/services/system-validation.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { LogError } from '@memberjunction/core';\n\n/**\n * Represents a system validation issue with its severity level\n */\nexport interface SystemValidationIssue {\n id: string;\n message: string;\n details?: string;\n severity: 'error' | 'warning' | 'info';\n help?: string;\n timestamp: Date;\n}\n\n/**\n * Service for checking system validation issues and displaying error messages to users\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SystemValidationService {\n private _validationIssues = new BehaviorSubject<SystemValidationIssue[]>([]);\n \n public ValidationIssues$: Observable<SystemValidationIssue[]> = this._validationIssues.asObservable();\n\n /** @deprecated Use {@link ValidationIssues$}. */\n public get validationIssues$(): Observable<SystemValidationIssue[]> {\n return this.ValidationIssues$;\n }\n /** @deprecated Use {@link ValidationIssues$}. */\n public set validationIssues$(value: Observable<SystemValidationIssue[]>) {\n this.ValidationIssues$ = value;\n }\n\n constructor() { }\n\n /**\n * Adds a new validation issue to the list\n */\n public AddIssue(issue: Omit<SystemValidationIssue, 'timestamp'>): void {\n try {\n const newIssue: SystemValidationIssue = {\n ...issue,\n timestamp: new Date()\n };\n\n const currentIssues = this._validationIssues.getValue();\n \n // Don't add duplicates with the same ID\n if (!currentIssues.some(i => i.id === issue.id)) {\n this._validationIssues.next([...currentIssues, newIssue]);\n LogError(`System Validation Issue: ${issue.message} (${issue.id})`);\n }\n } catch (err) {\n console.error('Error adding validation issue', err);\n }\n }\n\n /** @deprecated Use {@link AddIssue}. */\n public addIssue(issue: Omit<SystemValidationIssue, 'timestamp'>): void {\n return this.AddIssue(issue);\n }\n\n /**\n * Removes a validation issue by id\n */\n public RemoveIssue(id: string): void {\n try {\n const currentIssues = this._validationIssues.getValue();\n const updatedIssues = currentIssues.filter(issue => issue.id !== id);\n \n if (updatedIssues.length !== currentIssues.length) {\n this._validationIssues.next(updatedIssues);\n }\n } catch (err) {\n console.error('Error removing validation issue', err);\n }\n }\n\n /** @deprecated Use {@link RemoveIssue}. */\n public removeIssue(id: string): void {\n return this.RemoveIssue(id);\n }\n\n /**\n * Clears all validation issues\n */\n public ClearIssues(): void {\n this._validationIssues.next([]);\n }\n\n /** @deprecated Use {@link ClearIssues}. */\n public clearIssues(): void {\n return this.ClearIssues();\n }\n\n /**\n * Checks if there are any validation issues with error severity\n */\n public HasErrors(): boolean {\n return this._validationIssues.getValue().some(issue => issue.severity === 'error');\n }\n\n /** @deprecated Use {@link HasErrors}. */\n public hasErrors(): boolean {\n return this.HasErrors();\n }\n}"]}
@@ -26,22 +26,54 @@ export interface AppAccessDialogResult {
26
26
  */
27
27
  export declare class AppAccessDialogComponent implements OnDestroy {
28
28
  private cdr;
29
- visible: boolean;
29
+ Visible: boolean;
30
+ /** @deprecated Use {@link Visible}. */
31
+ set visible(value: AppAccessDialogComponent['Visible']);
32
+ /** @deprecated Use {@link Visible}. */
33
+ get visible(): AppAccessDialogComponent['Visible'];
34
+ VisibleChange: EventEmitter<boolean>;
35
+ /**
36
+ * @deprecated Use {@link VisibleChange}.
37
+ *
38
+ * The same emitter under the old binding name, so a template still binding
39
+ * (visibleChange) keeps working. Must stay AFTER VisibleChange: class fields
40
+ * initialise in order, and the other way round this captures undefined.
41
+ */
30
42
  visibleChange: EventEmitter<boolean>;
43
+ Result: EventEmitter<AppAccessDialogResult>;
44
+ /**
45
+ * @deprecated Use {@link Result}.
46
+ *
47
+ * The same emitter under the old binding name, so a template still binding
48
+ * (result) keeps working. Must stay AFTER Result: class fields
49
+ * initialise in order, and the other way round this captures undefined.
50
+ */
31
51
  result: EventEmitter<AppAccessDialogResult>;
32
52
  config: AppAccessDialogConfig | null;
33
- isProcessing: boolean;
53
+ IsProcessing: boolean;
54
+ /** @deprecated Use {@link IsProcessing}. */
55
+ get isProcessing(): boolean;
56
+ /** @deprecated Use {@link IsProcessing}. */
57
+ set isProcessing(value: boolean);
34
58
  private countdownInterval;
35
- countdownSeconds: number;
59
+ CountdownSeconds: number;
60
+ /** @deprecated Use {@link CountdownSeconds}. */
61
+ get countdownSeconds(): number;
62
+ /** @deprecated Use {@link CountdownSeconds}. */
63
+ set countdownSeconds(value: number);
36
64
  private readonly AUTO_DISMISS_SECONDS;
37
65
  constructor(cdr: ChangeDetectorRef);
38
66
  /**
39
67
  * Show the dialog with the specified configuration
40
68
  */
69
+ Show(config: AppAccessDialogConfig): void;
70
+ /** @deprecated Use {@link Show}. */
41
71
  show(config: AppAccessDialogConfig): void;
42
72
  /**
43
73
  * Hide the dialog
44
74
  */
75
+ Hide(): void;
76
+ /** @deprecated Use {@link Hide}. */
45
77
  hide(): void;
46
78
  ngOnDestroy(): void;
47
79
  /**
@@ -51,10 +83,14 @@ export declare class AppAccessDialogComponent implements OnDestroy {
51
83
  /**
52
84
  * Get the dialog icon based on type
53
85
  */
86
+ get Icon(): string;
87
+ /** @deprecated Use {@link Icon}. */
54
88
  get icon(): string;
55
89
  /**
56
90
  * Get the dialog icon color based on type
57
91
  */
92
+ get IconColor(): string;
93
+ /** @deprecated Use {@link IconColor}. */
58
94
  get iconColor(): string;
59
95
  /**
60
96
  * Get the main message based on type
@@ -63,20 +99,28 @@ export declare class AppAccessDialogComponent implements OnDestroy {
63
99
  /**
64
100
  * Get the secondary/help message based on type
65
101
  */
102
+ get HelpMessage(): string;
103
+ /** @deprecated Use {@link HelpMessage}. */
66
104
  get helpMessage(): string;
67
105
  /**
68
106
  * Check if the primary action button should be shown
69
107
  */
108
+ get ShowPrimaryAction(): boolean;
109
+ /** @deprecated Use {@link ShowPrimaryAction}. */
70
110
  get showPrimaryAction(): boolean;
71
111
  /**
72
112
  * Get the primary action button text
73
113
  */
114
+ get PrimaryActionText(): string;
115
+ /** @deprecated Use {@link PrimaryActionText}. */
74
116
  get primaryActionText(): string;
75
117
  /**
76
118
  * Get the secondary/dismiss button text with countdown if applicable
77
119
  * For actionable dialogs (install/enable), show "Cancel"
78
120
  * For non-actionable dialogs (errors), show "OK" with countdown
79
121
  */
122
+ get DismissButtonText(): string;
123
+ /** @deprecated Use {@link DismissButtonText}. */
80
124
  get dismissButtonText(): string;
81
125
  /**
82
126
  * Check if this dialog type should auto-dismiss
@@ -93,14 +137,20 @@ export declare class AppAccessDialogComponent implements OnDestroy {
93
137
  /**
94
138
  * Handle primary action (install/enable)
95
139
  */
140
+ OnPrimaryAction(): Promise<void>;
141
+ /** @deprecated Use {@link OnPrimaryAction}. */
96
142
  onPrimaryAction(): Promise<void>;
97
143
  /**
98
144
  * Handle dismiss/redirect action
99
145
  */
146
+ OnDismiss(): void;
147
+ /** @deprecated Use {@link OnDismiss}. */
100
148
  onDismiss(): void;
101
149
  /**
102
150
  * Mark processing as complete (called by parent after install/enable)
103
151
  */
152
+ CompleteProcessing(): void;
153
+ /** @deprecated Use {@link CompleteProcessing}. */
104
154
  completeProcessing(): void;
105
155
  /**
106
156
  * Handle keyboard events for the dialog
@@ -109,6 +159,6 @@ export declare class AppAccessDialogComponent implements OnDestroy {
109
159
  */
110
160
  handleKeyDown(event: KeyboardEvent): void;
111
161
  static ɵfac: i0.ɵɵFactoryDeclaration<AppAccessDialogComponent, never>;
112
- static ɵcmp: i0.ɵɵComponentDeclaration<AppAccessDialogComponent, "mj-app-access-dialog", never, { "visible": { "alias": "visible"; "required": false; }; }, { "visibleChange": "visibleChange"; "result": "result"; }, never, never, false, never>;
162
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppAccessDialogComponent, "mj-app-access-dialog", never, { "Visible": { "alias": "Visible"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "VisibleChange": "VisibleChange"; "visibleChange": "visibleChange"; "Result": "Result"; "result": "result"; }, never, never, false, never>;
113
163
  }
114
164
  //# sourceMappingURL=app-access-dialog.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-access-dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/dialogs/app-access-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;;AAEnH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,UAAU,GACV,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAMa,wBAAyB,YAAW,SAAS;IAa5C,OAAO,CAAC,GAAG;IAZd,OAAO,UAAS;IACf,aAAa,wBAA+B;IAC5C,MAAM,sCAA6C;IAE7D,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAC5C,YAAY,UAAS;IAGrB,OAAO,CAAC,iBAAiB,CAA+C;IACxE,gBAAgB,SAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;gBAEtB,GAAG,EAAE,iBAAiB;IAE1C;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAczC;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAqBlB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAoBjB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAkBtB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAsBpB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAkBxB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAG/B;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAU9B;IAED;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAW9B;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtC;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;;;OAIG;IAEH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;yCAjS9B,wBAAwB;2CAAxB,wBAAwB;CAkTpC"}
1
+ {"version":3,"file":"app-access-dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/dialogs/app-access-dialog.component.ts"],"names":[],"mappings":"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"}
@@ -94,14 +94,54 @@ function AppAccessDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
94
94
  */
95
95
  export class AppAccessDialogComponent {
96
96
  cdr;
97
- visible = false;
98
- visibleChange = new EventEmitter();
99
- result = new EventEmitter();
97
+ Visible = false;
98
+ /** @deprecated Use {@link Visible}. */
99
+ set visible(value) {
100
+ this.Visible = value;
101
+ }
102
+ /** @deprecated Use {@link Visible}. */
103
+ get visible() {
104
+ return this.Visible;
105
+ }
106
+ VisibleChange = new EventEmitter();
107
+ /**
108
+ * @deprecated Use {@link VisibleChange}.
109
+ *
110
+ * The same emitter under the old binding name, so a template still binding
111
+ * (visibleChange) keeps working. Must stay AFTER VisibleChange: class fields
112
+ * initialise in order, and the other way round this captures undefined.
113
+ */
114
+ visibleChange = this.VisibleChange;
115
+ Result = new EventEmitter();
116
+ /**
117
+ * @deprecated Use {@link Result}.
118
+ *
119
+ * The same emitter under the old binding name, so a template still binding
120
+ * (result) keeps working. Must stay AFTER Result: class fields
121
+ * initialise in order, and the other way round this captures undefined.
122
+ */
123
+ result = this.Result;
100
124
  config = null;
101
- isProcessing = false;
125
+ IsProcessing = false;
126
+ /** @deprecated Use {@link IsProcessing}. */
127
+ get isProcessing() {
128
+ return this.IsProcessing;
129
+ }
130
+ /** @deprecated Use {@link IsProcessing}. */
131
+ set isProcessing(value) {
132
+ this.IsProcessing = value;
133
+ }
102
134
  // Auto-dismiss countdown
103
135
  countdownInterval = null;
104
- countdownSeconds = 0;
136
+ CountdownSeconds = 0;
137
+ /** @deprecated Use {@link CountdownSeconds}. */
138
+ get countdownSeconds() {
139
+ return this.CountdownSeconds;
140
+ }
141
+ /** @deprecated Use {@link CountdownSeconds}. */
142
+ set countdownSeconds(value) {
143
+ this.CountdownSeconds = value;
144
+ }
105
145
  AUTO_DISMISS_SECONDS = 5;
106
146
  constructor(cdr) {
107
147
  this.cdr = cdr;
@@ -109,26 +149,34 @@ export class AppAccessDialogComponent {
109
149
  /**
110
150
  * Show the dialog with the specified configuration
111
151
  */
112
- show(config) {
152
+ Show(config) {
113
153
  this.config = config;
114
- this.visible = true;
115
- this.isProcessing = false;
116
- this.visibleChange.emit(true);
154
+ this.Visible = true;
155
+ this.IsProcessing = false;
156
+ this.VisibleChange.emit(true);
117
157
  // Start countdown for types that auto-dismiss
118
158
  if (this.shouldAutoDismiss()) {
119
159
  this.startCountdown();
120
160
  }
121
161
  this.cdr.detectChanges();
122
162
  }
163
+ /** @deprecated Use {@link Show}. */
164
+ show(config) {
165
+ return this.Show(config);
166
+ }
123
167
  /**
124
168
  * Hide the dialog
125
169
  */
126
- hide() {
170
+ Hide() {
127
171
  this.stopCountdown();
128
- this.visible = false;
129
- this.visibleChange.emit(false);
172
+ this.Visible = false;
173
+ this.VisibleChange.emit(false);
130
174
  this.cdr.detectChanges();
131
175
  }
176
+ /** @deprecated Use {@link Hide}. */
177
+ hide() {
178
+ return this.Hide();
179
+ }
132
180
  ngOnDestroy() {
133
181
  this.stopCountdown();
134
182
  }
@@ -160,7 +208,7 @@ export class AppAccessDialogComponent {
160
208
  /**
161
209
  * Get the dialog icon based on type
162
210
  */
163
- get icon() {
211
+ get Icon() {
164
212
  if (!this.config)
165
213
  return 'fa-circle-info';
166
214
  switch (this.config.type) {
@@ -181,10 +229,14 @@ export class AppAccessDialogComponent {
181
229
  return 'fa-circle-info';
182
230
  }
183
231
  }
232
+ /** @deprecated Use {@link Icon}. */
233
+ get icon() {
234
+ return this.Icon;
235
+ }
184
236
  /**
185
237
  * Get the dialog icon color based on type
186
238
  */
187
- get iconColor() {
239
+ get IconColor() {
188
240
  if (!this.config)
189
241
  return 'var(--mj-text-secondary)';
190
242
  switch (this.config.type) {
@@ -203,6 +255,10 @@ export class AppAccessDialogComponent {
203
255
  return 'var(--mj-text-secondary)';
204
256
  }
205
257
  }
258
+ /** @deprecated Use {@link IconColor}. */
259
+ get iconColor() {
260
+ return this.IconColor;
261
+ }
206
262
  /**
207
263
  * Get the main message based on type
208
264
  */
@@ -231,7 +287,7 @@ export class AppAccessDialogComponent {
231
287
  /**
232
288
  * Get the secondary/help message based on type
233
289
  */
234
- get helpMessage() {
290
+ get HelpMessage() {
235
291
  if (!this.config)
236
292
  return '';
237
293
  switch (this.config.type) {
@@ -250,18 +306,26 @@ export class AppAccessDialogComponent {
250
306
  return '';
251
307
  }
252
308
  }
309
+ /** @deprecated Use {@link HelpMessage}. */
310
+ get helpMessage() {
311
+ return this.HelpMessage;
312
+ }
253
313
  /**
254
314
  * Check if the primary action button should be shown
255
315
  */
256
- get showPrimaryAction() {
316
+ get ShowPrimaryAction() {
257
317
  if (!this.config)
258
318
  return false;
259
319
  return this.config.type === 'not_installed' || this.config.type === 'disabled';
260
320
  }
321
+ /** @deprecated Use {@link ShowPrimaryAction}. */
322
+ get showPrimaryAction() {
323
+ return this.ShowPrimaryAction;
324
+ }
261
325
  /**
262
326
  * Get the primary action button text
263
327
  */
264
- get primaryActionText() {
328
+ get PrimaryActionText() {
265
329
  if (!this.config)
266
330
  return '';
267
331
  switch (this.config.type) {
@@ -272,22 +336,30 @@ export class AppAccessDialogComponent {
272
336
  return 'OK';
273
337
  }
274
338
  }
339
+ /** @deprecated Use {@link PrimaryActionText}. */
340
+ get primaryActionText() {
341
+ return this.PrimaryActionText;
342
+ }
275
343
  /**
276
344
  * Get the secondary/dismiss button text with countdown if applicable
277
345
  * For actionable dialogs (install/enable), show "Cancel"
278
346
  * For non-actionable dialogs (errors), show "OK" with countdown
279
347
  */
280
- get dismissButtonText() {
348
+ get DismissButtonText() {
281
349
  // For actionable dialogs, use "Cancel"
282
- if (this.showPrimaryAction) {
350
+ if (this.ShowPrimaryAction) {
283
351
  return 'Cancel';
284
352
  }
285
353
  // For non-actionable dialogs, show countdown if active
286
- if (this.countdownSeconds > 0) {
287
- return `OK (${this.countdownSeconds})`;
354
+ if (this.CountdownSeconds > 0) {
355
+ return `OK (${this.CountdownSeconds})`;
288
356
  }
289
357
  return 'OK';
290
358
  }
359
+ /** @deprecated Use {@link DismissButtonText}. */
360
+ get dismissButtonText() {
361
+ return this.DismissButtonText;
362
+ }
291
363
  /**
292
364
  * Check if this dialog type should auto-dismiss
293
365
  */
@@ -301,12 +373,12 @@ export class AppAccessDialogComponent {
301
373
  */
302
374
  startCountdown() {
303
375
  this.stopCountdown();
304
- this.countdownSeconds = this.AUTO_DISMISS_SECONDS;
376
+ this.CountdownSeconds = this.AUTO_DISMISS_SECONDS;
305
377
  this.countdownInterval = setInterval(() => {
306
- this.countdownSeconds--;
378
+ this.CountdownSeconds--;
307
379
  this.cdr.detectChanges();
308
- if (this.countdownSeconds <= 0) {
309
- this.onDismiss();
380
+ if (this.CountdownSeconds <= 0) {
381
+ this.OnDismiss();
310
382
  }
311
383
  }, 1000);
312
384
  }
@@ -318,37 +390,49 @@ export class AppAccessDialogComponent {
318
390
  clearInterval(this.countdownInterval);
319
391
  this.countdownInterval = null;
320
392
  }
321
- this.countdownSeconds = 0;
393
+ this.CountdownSeconds = 0;
322
394
  }
323
395
  /**
324
396
  * Handle primary action (install/enable)
325
397
  */
326
- async onPrimaryAction() {
398
+ async OnPrimaryAction() {
327
399
  if (!this.config)
328
400
  return;
329
- this.isProcessing = true;
401
+ this.IsProcessing = true;
330
402
  this.cdr.detectChanges();
331
403
  const action = this.config.type === 'not_installed' ? 'install' : 'enable';
332
- this.result.emit({
404
+ this.Result.emit({
333
405
  action,
334
406
  appId: this.config.appId
335
407
  });
336
408
  // Don't hide yet - let the parent component handle the result and close when ready
337
409
  }
410
+ /** @deprecated Use {@link OnPrimaryAction}. */
411
+ async onPrimaryAction() {
412
+ return this.OnPrimaryAction();
413
+ }
338
414
  /**
339
415
  * Handle dismiss/redirect action
340
416
  */
341
- onDismiss() {
417
+ OnDismiss() {
342
418
  this.stopCountdown();
343
- this.result.emit({ action: 'redirect' });
344
- this.hide();
419
+ this.Result.emit({ action: 'redirect' });
420
+ this.Hide();
421
+ }
422
+ /** @deprecated Use {@link OnDismiss}. */
423
+ onDismiss() {
424
+ return this.OnDismiss();
345
425
  }
346
426
  /**
347
427
  * Mark processing as complete (called by parent after install/enable)
348
428
  */
429
+ CompleteProcessing() {
430
+ this.IsProcessing = false;
431
+ this.Hide();
432
+ }
433
+ /** @deprecated Use {@link CompleteProcessing}. */
349
434
  completeProcessing() {
350
- this.isProcessing = false;
351
- this.hide();
435
+ return this.CompleteProcessing();
352
436
  }
353
437
  /**
354
438
  * Handle keyboard events for the dialog
@@ -356,27 +440,27 @@ export class AppAccessDialogComponent {
356
440
  * Escape key dismisses the dialog
357
441
  */
358
442
  handleKeyDown(event) {
359
- if (!this.visible || this.isProcessing)
443
+ if (!this.Visible || this.IsProcessing)
360
444
  return;
361
445
  if (event.key === 'Enter') {
362
446
  // Enter triggers primary action if available
363
- if (this.showPrimaryAction) {
447
+ if (this.ShowPrimaryAction) {
364
448
  event.preventDefault();
365
449
  event.stopPropagation();
366
- this.onPrimaryAction();
450
+ this.OnPrimaryAction();
367
451
  }
368
452
  }
369
453
  else if (event.key === 'Escape') {
370
454
  // Escape dismisses the dialog
371
455
  event.preventDefault();
372
456
  event.stopPropagation();
373
- this.onDismiss();
457
+ this.OnDismiss();
374
458
  }
375
459
  }
376
460
  static ɵfac = function AppAccessDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AppAccessDialogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
377
461
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppAccessDialogComponent, selectors: [["mj-app-access-dialog"]], hostBindings: function AppAccessDialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
378
462
  i0.ɵɵlistener("keydown", function AppAccessDialogComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }, i0.ɵɵresolveDocument);
379
- } }, inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange", result: "result" }, standalone: false, decls: 1, vars: 1, consts: [[1, "dialog-overlay"], [1, "dialog-overlay", 3, "click"], [1, "dialog-container", 3, "click"], [1, "dialog-icon"], [1, "fa-solid", 3, "ngClass"], [1, "dialog-title"], [1, "dialog-message"], [1, "dialog-help"], [1, "dialog-actions"], [1, "dialog-btn", "primary", 3, "disabled"], [1, "dialog-btn", 3, "click", "disabled"], [1, "dialog-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"]], template: function AppAccessDialogComponent_Template(rf, ctx) { if (rf & 1) {
463
+ } }, inputs: { Visible: "Visible", visible: "visible" }, outputs: { VisibleChange: "VisibleChange", visibleChange: "visibleChange", Result: "Result", result: "result" }, standalone: false, decls: 1, vars: 1, consts: [[1, "dialog-overlay"], [1, "dialog-overlay", 3, "click"], [1, "dialog-container", 3, "click"], [1, "dialog-icon"], [1, "fa-solid", 3, "ngClass"], [1, "dialog-title"], [1, "dialog-message"], [1, "dialog-help"], [1, "dialog-actions"], [1, "dialog-btn", "primary", 3, "disabled"], [1, "dialog-btn", 3, "click", "disabled"], [1, "dialog-btn", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"]], template: function AppAccessDialogComponent_Template(rf, ctx) { if (rf & 1) {
380
464
  i0.ɵɵconditionalCreate(0, AppAccessDialogComponent_Conditional_0_Template, 13, 11, "div", 0);
381
465
  } if (rf & 2) {
382
466
  i0.ɵɵconditional(ctx.visible ? 0 : -1);
@@ -385,10 +469,16 @@ export class AppAccessDialogComponent {
385
469
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppAccessDialogComponent, [{
386
470
  type: Component,
387
471
  args: [{ standalone: false, selector: 'mj-app-access-dialog', template: "@if (visible) {\n <div class=\"dialog-overlay\" (click)=\"onDismiss()\">\n <div class=\"dialog-container\" (click)=\"$event.stopPropagation()\">\n <!-- Icon -->\n <div class=\"dialog-icon\" [style.color]=\"iconColor\">\n <i class=\"fa-solid\" [ngClass]=\"icon\"></i>\n </div>\n <!-- Title -->\n <h2 class=\"dialog-title\">{{ title }}</h2>\n <!-- Message -->\n <p class=\"dialog-message\">{{ message }}</p>\n <!-- Help message -->\n @if (helpMessage) {\n <p class=\"dialog-help\">{{ helpMessage }}</p>\n }\n <!-- Actions -->\n <div class=\"dialog-actions\">\n @if (showPrimaryAction) {\n <button\n class=\"dialog-btn primary\"\n [disabled]=\"isProcessing\"\n (click)=\"onPrimaryAction()\">\n @if (isProcessing) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n @if (!isProcessing) {\n <span>{{ primaryActionText }}</span>\n }\n @if (isProcessing) {\n <span>Processing...</span>\n }\n </button>\n }\n <button\n class=\"dialog-btn\"\n [class.secondary]=\"showPrimaryAction\"\n [disabled]=\"isProcessing\"\n (click)=\"onDismiss()\">\n {{ dismissButtonText }}\n </button>\n </div>\n </div>\n </div>\n}\n", styles: [".dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10001; /* Higher than loading screen (10000) */\n animation: fadeIn 0.2s ease-out;\n padding: 16px; /* Ensure padding on small screens */\n box-sizing: border-box;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.dialog-container {\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n padding: 32px;\n max-width: 420px;\n width: 90%;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n text-align: center;\n animation: slideUp 0.3s ease-out;\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.dialog-icon {\n font-size: 48px;\n margin-bottom: 16px;\n}\n\n.dialog-title {\n margin: 0 0 12px 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.dialog-message {\n margin: 0 0 8px 0;\n font-size: 14px;\n line-height: 1.5;\n color: var(--mj-text-secondary);\n}\n\n.dialog-help {\n margin: 0 0 20px 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.dialog-actions {\n display: flex;\n gap: 12px;\n justify-content: center;\n margin-top: 24px;\n}\n\n.dialog-btn {\n padding: 10px 24px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n border: none;\n min-width: 100px;\n}\n\n.dialog-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.dialog-btn.primary {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n.dialog-btn.primary:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n}\n\n.dialog-btn.primary:active:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n}\n\n.dialog-btn.secondary,\n.dialog-btn:not(.primary):not(.secondary) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n}\n\n.dialog-btn.secondary:hover:not(:disabled),\n.dialog-btn:not(.primary):not(.secondary):hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n}\n\n.dialog-btn.secondary:active:not(:disabled),\n.dialog-btn:not(.primary):not(.secondary):active:not(:disabled) {\n background: var(--mj-bg-surface-active);\n}\n\n/* Spinner animation */\n.fa-spin {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Responsive - Tablet */\n@media (max-width: 768px) {\n .dialog-container {\n max-width: 380px;\n }\n\n .dialog-message {\n font-size: 13px;\n }\n}\n\n/* Responsive - Mobile */\n@media (max-width: 480px) {\n .dialog-container {\n padding: 20px;\n margin: 0;\n max-width: none;\n width: 100%;\n border-radius: 8px;\n }\n\n .dialog-icon {\n font-size: 36px;\n margin-bottom: 12px;\n }\n\n .dialog-title {\n font-size: 17px;\n margin-bottom: 10px;\n }\n\n .dialog-message {\n font-size: 13px;\n margin-bottom: 6px;\n }\n\n .dialog-help {\n font-size: 11px;\n margin-bottom: 16px;\n }\n\n .dialog-actions {\n flex-direction: column;\n gap: 10px;\n margin-top: 20px;\n }\n\n .dialog-btn {\n width: 100%;\n padding: 12px 20px;\n font-size: 15px;\n }\n}\n\n/* Very small screens */\n@media (max-width: 360px) {\n .dialog-container {\n padding: 16px;\n }\n\n .dialog-icon {\n font-size: 32px;\n }\n\n .dialog-title {\n font-size: 16px;\n }\n}\n"] }]
388
- }], () => [{ type: i0.ChangeDetectorRef }], { visible: [{
472
+ }], () => [{ type: i0.ChangeDetectorRef }], { Visible: [{
473
+ type: Input
474
+ }], visible: [{
389
475
  type: Input
476
+ }], VisibleChange: [{
477
+ type: Output
390
478
  }], visibleChange: [{
391
479
  type: Output
480
+ }], Result: [{
481
+ type: Output
392
482
  }], result: [{
393
483
  type: Output
394
484
  }], handleKeyDown: [{