@memberjunction/ng-dashboards 5.34.1 → 5.35.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.
Files changed (346) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
  235. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  236. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  237. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  239. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  241. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.js +420 -393
  243. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  244. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  245. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  249. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  251. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  252. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  253. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  255. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  256. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  257. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.js +587 -608
  259. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  260. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  261. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  263. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  264. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  265. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  266. package/dist/Testing/components/testing-review.component.js +310 -274
  267. package/dist/Testing/components/testing-review.component.js.map +1 -1
  268. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  269. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  271. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  272. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  273. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.js +307 -273
  275. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  276. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  277. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.js +107 -93
  279. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  280. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  281. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  282. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  283. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  285. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  287. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  288. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  289. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  290. package/dist/actions-dashboards.module.d.ts +15 -16
  291. package/dist/actions-dashboards.module.d.ts.map +1 -1
  292. package/dist/actions-dashboards.module.js +34 -11
  293. package/dist/actions-dashboards.module.js.map +1 -1
  294. package/dist/ai-dashboards.module.d.ts +45 -48
  295. package/dist/ai-dashboards.module.d.ts.map +1 -1
  296. package/dist/ai-dashboards.module.js +36 -10
  297. package/dist/ai-dashboards.module.js.map +1 -1
  298. package/dist/archiving-dashboards.module.d.ts +2 -1
  299. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  300. package/dist/archiving-dashboards.module.js +12 -2
  301. package/dist/archiving-dashboards.module.js.map +1 -1
  302. package/dist/communication-dashboards.module.d.ts +2 -1
  303. package/dist/communication-dashboards.module.d.ts.map +1 -1
  304. package/dist/communication-dashboards.module.js +24 -3
  305. package/dist/communication-dashboards.module.js.map +1 -1
  306. package/dist/core-dashboards.module.d.ts +1 -1
  307. package/dist/core-dashboards.module.d.ts.map +1 -1
  308. package/dist/core-dashboards.module.js +31 -1
  309. package/dist/core-dashboards.module.js.map +1 -1
  310. package/dist/credentials-dashboards.module.d.ts +1 -1
  311. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  312. package/dist/credentials-dashboards.module.js +28 -1
  313. package/dist/credentials-dashboards.module.js.map +1 -1
  314. package/dist/lists-dashboards.module.d.ts +1 -1
  315. package/dist/lists-dashboards.module.d.ts.map +1 -1
  316. package/dist/lists-dashboards.module.js +28 -1
  317. package/dist/lists-dashboards.module.js.map +1 -1
  318. package/dist/public-api.d.ts +2 -2
  319. package/dist/public-api.d.ts.map +1 -1
  320. package/dist/public-api.js +3 -3
  321. package/dist/public-api.js.map +1 -1
  322. package/dist/scheduling-dashboards.module.d.ts +1 -1
  323. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  324. package/dist/scheduling-dashboards.module.js +31 -1
  325. package/dist/scheduling-dashboards.module.js.map +1 -1
  326. package/dist/testing-dashboards.module.d.ts +8 -7
  327. package/dist/testing-dashboards.module.d.ts.map +1 -1
  328. package/dist/testing-dashboards.module.js +30 -0
  329. package/dist/testing-dashboards.module.js.map +1 -1
  330. package/package.json +52 -52
  331. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  332. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  333. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  334. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  335. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  336. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  339. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  340. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  342. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  343. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  344. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  346. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"entity-list.component.js","sourceRoot":"","sources":["../../../src/DatabaseDesigner/components/entity-list.component.ts","../../../src/DatabaseDesigner/components/entity-list.component.html"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACH,SAAS,EAAqB,MAAM,EAAE,YAAY,EAClD,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,GACrD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;;;;mBCyD1E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;;IA5CT,kCAG4B;IAD1B,4MAAsB,EAAE,KAAC;IAEzB,wBAAiC;IACnC,iBAAS;;;IAYP,kCAAyB;IAAA,YAAY;IAAA,iBAAS;;;IAAtC,iCAAgB;IAAC,cAAY;IAAZ,+BAAY;;;;IAPzC,kCAIgC;IAD9B,gPAAqD;IAErD,kCAAiB;IAAA,2BAAW;IAAA,iBAAS;IACrC,2HAEC;IACH,iBAAS;;;IAPP,6CAAwB;IAIxB,eAEC;IAFD,4CAEC;;;IAiBL,+BAA4C;IAC1C,wBAA8C;IAC9C,YACF;IAAA,iBAAM;;;IADJ,eACF;IADE,oDACF;;;IAOI,+BAA0B;IAMxB,AADA,AADA,AADA,AADA,AADA,0BAAsC,cACE,cACA,cACA,cACA,cACA;IAC1C,iBAAM;;;IATV,+BAA4E;IAC1E,qHASC;IACH,iBAAM;;IAVJ,cASC;IATD,yCASC;;;IAea,wBAA2H;;;IAAvD,AAAhD,+DAA+C,oDAAmD;;;IAEtH,wBAA4C;;;IAQ5C,wBAA2H;;;IAAvD,AAAhD,+DAA+C,oDAAmD;;;IAEtH,wBAA4C;;;IAQ5C,wBAA2H;;;IAAvD,AAAhD,+DAA+C,oDAAmD;;;IAEtH,wBAA4C;;;IAQ5C,wBAA2H;;;IAAvD,AAAhD,+DAA+C,oDAAmD;;;IAEtH,wBAA4C;;;IAQ5C,wBAA2H;;;IAAvD,AAAhD,+DAA+C,oDAAmD;;;IAEtH,wBAA4C;;;IAc1C,gCAAgE;IAAA,mBAAG;IAAA,iBAAO;;;IAY5E,gCAAyB;IACvB,wBAAsC;IACtC,qBACF;IAAA,iBAAO;;;IAEP,gCAA0B;IAAA,YAA6B;IAAA,iBAAO;;;IAApC,cAA6B;IAA7B,gDAA6B;;;IAEvD,gCAAgC;IAAA,sBAAC;IAAA,iBAAO;;;;IArBxC,AADF,AADF,AADF,8BAAuB,aACA,cACW,eACF;IAAA,YAAuB;IAAA,iBAAO;IACxD,2HAAsB;IAI1B,AADE,iBAAM,EACH;IAEH,AADF,8BAAuB,eACM;IAAA,YAAuB;IACpD,AADoD,iBAAO,EACtD;IAEH,AADF,8BAAsB,gBACK;IAAA,aAAsB;IACjD,AADiD,iBAAO,EACnD;IACL,+BAAsB;IAQlB,AAFA,AALF,6HAAsB,uGAKgB,uGAE7B;IAGX,iBAAK;IACL,+BAAwB;IAAA,aAAkC;IAAA,iBAAK;IAG3D,AADF,AADF,+BAAwB,eACG,kBAMU;IAA/B,2OAAS,8BAAoB,KAAC;IAC9B,yBAAyC;IACzC,uBACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACH,EACF;;;;IAtC2B,eAAuB;IAAvB,0CAAuB;IACjD,cAEC;IAFD,4CAEC;IAIwB,eAAuB;IAAvB,0CAAuB;IAGzB,eAAsB;IAAtB,yCAAsB;IAG/C,eASC;IATD,+EASC;IAEqB,eAAkC;IAAlC,4DAAkC;;;IAsB/C,YAA4B;;;IAA5B,+DAA4B;;;;IAxGzC,AADF,AADF,AADF,AADF,+BAAwB,gBACqD,YAClE,SACD,aAC6E;IAAjD,mMAAS,oBAAa,YAAY,CAAC,KAAC;IAChE,6BACA;IAAA,gCAAwB;IAGpB,AAFF,iHAAkC,2FAEzB;IAIb,AADE,iBAAO,EACJ;IACL,8BAAiF;IAAjD,mMAAS,oBAAa,YAAY,CAAC,KAAC;IAClE,yBACA;IAAA,iCAAwB;IAGpB,AAFF,mHAAkC,6FAEzB;IAIb,AADE,iBAAO,EACJ;IACL,+BAA+E;IAAhD,oMAAS,oBAAa,WAAW,CAAC,KAAC;IAChE,wBACA;IAAA,iCAAwB;IAGpB,AAFF,mHAAiC,6FAExB;IAIb,AADE,iBAAO,EACJ;IACL,+BAA2E;IAA5C,oMAAS,oBAAa,OAAO,CAAC,KAAC;IAC5D,wBACA;IAAA,iCAAwB;IAGpB,AAFF,mHAA6B,6FAEpB;IAIb,AADE,iBAAO,EACJ;IACL,+BAAiF;IAAhD,oMAAS,oBAAa,WAAW,CAAC,KAAC;IAClE,0BACA;IAAA,iCAAwB;IAGpB,AAFF,mHAAiC,6FAExB;IAIb,AADE,iBAAO,EACJ;IACL,+BAAoC;IAAA,wBAAO;IAE/C,AADE,AAD6C,iBAAK,EAC7C,EACC;IACR,8BAAO;IACL,0JA2CC;IAGP,AADE,AADE,iBAAQ,EACF,EACJ;IAEN,gCAA0B;IACxB,aACA;IAAA,0GAAkB;IACpB,iBAAM;;;IAtGM,eAIC;IAJD,2DAIC;IAMD,eAIC;IAJD,6DAIC;IAMD,eAIC;IAJD,4DAIC;IAMD,eAIC;IAJD,wDAIC;IAMD,eAIC;IAJD,4DAIC;IAOP,eA2CC;IA3CD,sCA2CC;IAML,eACA;IADA,kIACA;IAAA,cAAgD;IAAhD,6CAAgD;;;;IAS9C,8BAA6B;IAAA,YAAoC;IAAA,iBAAK;IACtE,6BAA2B;IAAA,gEAAgD;IAAA,iBAAI;IAC/E,kCAAmE;IAA1B,yOAAsB,EAAE,KAAC;IAChE,8BACF;IAAA,iBAAS;;;IAJoB,cAAoC;IAApC,sEAAoC;;;;IAMjE,8BAA6B;IAAA,+BAAe;IAAA,iBAAK;IACjD,6BAA2B;IACzB,0IAEF;IAAA,iBAAI;IACJ,kCAA+D;IAAxB,qNAAS,oBAAa,KAAC;IAC5D,uBAAgC;IAChC,+BACF;IAAA,iBAAS;;;IAlBX,AADF,+BAAwB,cACO;IAC3B,wBAA4C;IAC9C,iBAAM;IAOJ,AANF,wGAAkB,kFAMT;IAWX,iBAAM;;;IAjBJ,eAgBC;IAhBD,2CAgBC;;;IAtBH,AA/GF,2FAAmC,+EA+GV;;;IA/GzB,qFAuIC;;ADhML,MAAM,OAAO,mBAAmB;IAE5B,4DAA4D;IAClC,UAAU,GAAG,IAAI,YAAY,EAAoB,CAAC;IAC5E,oEAAoE;IAC1C,UAAU,GAAG,IAAI,YAAY,EAAoB,CAAC;IAC5E,iDAAiD;IACvB,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAExD,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,GAAkB,IAAI,CAAC;IAE1C,4CAA4C;IACpC,YAAY,GAAuB,EAAE,CAAC;IAE9C,qFAAqF;IAC7E,uBAAuB,GAAa,EAAE,CAAC;IAE/C,oDAAoD;IAC7C,gBAAgB,GAAuB,EAAE,CAAC;IAEhC,QAAQ,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;IAC3C,QAAQ,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;IAC3C,WAAW,GAAG,IAAI,eAAe,CAAY,YAAY,CAAC,CAAC;IAC3D,SAAS,GAAG,IAAI,eAAe,CAAgB,KAAK,CAAC,CAAC;IACtD,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEhC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEjD,0EAA0E;IAE1E,QAAQ;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAE1E,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,CAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,cAAc,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,IAAI,cAAc,CAAC,CAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,oFAAoF;IACpF,IAAI,sBAAsB,KAAe,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE/E,IAAI,SAAS,KAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,aAAa,KAAoB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,0EAA0E;IACnE,YAAY,CAAC,KAAgB;QAChC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,MAAwB;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAEM,YAAY,CAAC,MAAwB;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAEM,SAAS;QACZ,sBAAsB,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,CAAS,EAAE,MAAwB;QACtD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEM,UAAU,CAAC,IAAU;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,0EAA0E;IAElE,WAAW;QACf,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1E,IAAI,CACD,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAC1F,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;aACA,SAAS,CAAC,MAAM,CAAC,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YACnF,IAAI,CAAC,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7F,wEAAwE;YACxE,8EAA8E;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAgB,EAAE,GAAkB;QAC3F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACxC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5C,CAAC;QACN,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,SAAS,CAAC,MAAwB,EAAE,KAAgB;QACxD,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,YAAY,CAAC,CAAE,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3D,KAAK,WAAW,CAAC,CAAG,OAAO,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1D,KAAK,YAAY,CAAC,CAAE,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3D,KAAK,WAAW,CAAC,CAAG,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACtD,KAAK,OAAO,CAAC,CAAO,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,CAAY,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/D,CAAC;IACL,CAAC;6GApKQ,mBAAmB;6DAAnB,mBAAmB;YC3B5B,AADF,AAHF,8BAA8B,aAGI,YACA;YAC5B,uBAA6C;YAC7C,mCACF;YAAA,iBAAK;YACL,iCAI0B;YAAxB,gGAAS,iBAAa,IAAC;YACvB,uBAAgC;YAChC,4BACF;YACF,AADE,iBAAS,EACL;YAIJ,AADF,8BAAiC,aACN;YACvB,wBAAwD;YACxD,iCAKiC;YAD/B,kNAAwB;YAJ1B,iBAKiC;YACjC,2FAAkB;YAQpB,iBAAM;YAEN,2FAAyC;YAazC,mCAMwB;YAAtB,iGAAS,eAAW,IAAC;YACrB,yBAA8D;YAElE,AADE,iBAAS,EACL;YAGN,wFAAoB;YAQpB,wFAAkD;YAgBlD,6EAAiD;YA0InD,iBAAM;;YAvME,gBAAwB;YAAxB,8CAAwB;YAE1B,cAOC;YAPD,0CAOC;YAGH,cAWC;YAXD,iEAWC;YAOC,cAAsB;YAAtB,wCAAsB;YAEQ,cAA2B;YAA3B,wCAA2B;YAK7D,cAKC;YALD,4CAKC;YAGD,cAaC;YAbD,8EAaC;YAGD,cAyIC;YAzID,6EAyIC;;;iFDjMU,mBAAmB;cAP/B,SAAS;6BACM,KAAK,YACP,yBAAyB,mBAGlB,uBAAuB,CAAC,MAAM;;kBAK9C,MAAM;;kBAEN,MAAM;;kBAEN,MAAM;;kFAPE,mBAAmB","sourcesContent":["/**\n * @module entity-list.component\n * @description Displays the list of entities accessible to the current user.\n *\n * Loaded from `DatabaseDesignerEngine.Instance.loadAccessibleEntities()` —\n * data access goes through the engine singleton, not this component directly,\n * so the cache is shared across wizard openings.\n */\n\nimport {\n Component, OnInit, OnDestroy, Output, EventEmitter,\n ChangeDetectionStrategy, ChangeDetectorRef, inject,\n} from '@angular/core';\nimport { Subject, BehaviorSubject, combineLatest } from 'rxjs';\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\n\nimport { DatabaseDesignerEngine } from '../services/database-designer.engine.js';\nimport type { AccessibleEntity } from '../database-designer.types.js';\n\n// ─── Sort state ───────────────────────────────────────────────────────────────\n\ntype SortField = 'entityName' | 'tableName' | 'schemaName' | 'createdAt' | 'owner';\ntype SortDirection = 'asc' | 'desc';\n\n@Component({\n standalone: false,\n selector: 'mj-database-entity-list',\n templateUrl: './entity-list.component.html',\n styleUrls: ['./entity-list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EntityListComponent implements OnInit, OnDestroy {\n\n /** Emitted when the user clicks \"Edit\" on an entity row. */\n @Output() public readonly EditEntity = new EventEmitter<AccessibleEntity>();\n /** Emitted when the user clicks \"View Details\" on an entity row. */\n @Output() public readonly ViewEntity = new EventEmitter<AccessibleEntity>();\n /** Emitted when the user clicks \"New Entity\". */\n @Output() public readonly NewEntity = new EventEmitter<void>();\n\n public IsLoading = false;\n public ErrorMessage: string | null = null;\n\n /** Full unfiltered list from the engine. */\n private _allEntities: AccessibleEntity[] = [];\n\n /** Cached sorted unique schema names — recomputed only when _allEntities changes. */\n private _availableFilterSchemas: string[] = [];\n\n /** Currently displayed (filtered + sorted) rows. */\n public FilteredEntities: AccessibleEntity[] = [];\n\n private readonly _search$ = new BehaviorSubject<string>('');\n private readonly _schema$ = new BehaviorSubject<string>('');\n private readonly _sortField$ = new BehaviorSubject<SortField>('entityName');\n private readonly _sortDir$ = new BehaviorSubject<SortDirection>('asc');\n private readonly _destroy$ = new Subject<void>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────\n\n ngOnInit(): void {\n this.setupFilter();\n this.loadEntities();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n // ─── Template bindings ─────────────────────────────────────────────────\n\n get SearchTerm(): string { return this._search$.value; }\n set SearchTerm(v: string) { this._search$.next(v); }\n\n get SelectedSchema(): string { return this._schema$.value; }\n set SelectedSchema(v: string) { this._schema$.next(v); }\n\n /** Unique schema names present in the loaded entity list, sorted alphabetically. */\n get AvailableFilterSchemas(): string[] { return this._availableFilterSchemas; }\n\n get SortField(): SortField { return this._sortField$.value; }\n get SortDirection(): SortDirection { return this._sortDir$.value; }\n\n /** Toggle sort: same field flips direction; new field defaults to asc. */\n public OnSortChange(field: SortField): void {\n if (this._sortField$.value === field) {\n this._sortDir$.next(this._sortDir$.value === 'asc' ? 'desc' : 'asc');\n } else {\n this._sortField$.next(field);\n this._sortDir$.next('asc');\n }\n }\n\n public OnEditEntity(entity: AccessibleEntity): void {\n this.EditEntity.emit(entity);\n }\n\n public OnViewEntity(entity: AccessibleEntity): void {\n this.ViewEntity.emit(entity);\n }\n\n public OnNewEntity(): void {\n this.NewEntity.emit();\n }\n\n public OnRefresh(): void {\n DatabaseDesignerEngine.Instance.invalidateCache();\n this.loadEntities();\n }\n\n public TrackByEntityId(_: number, entity: AccessibleEntity): string {\n return entity.entityId;\n }\n\n public FormatDate(date: Date): string {\n return date.toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });\n }\n\n // ─── Private helpers ───────────────────────────────────────────────────\n\n private setupFilter(): void {\n combineLatest([this._search$, this._schema$, this._sortField$, this._sortDir$])\n .pipe(\n debounceTime(150),\n map(([search, schema, field, dir]) => this.applyFilterAndSort(search, schema, field, dir)),\n takeUntil(this._destroy$),\n )\n .subscribe(result => {\n this.FilteredEntities = result;\n this.cdr.markForCheck();\n });\n }\n\n private async loadEntities(): Promise<void> {\n this.IsLoading = true;\n this.ErrorMessage = null;\n this.cdr.markForCheck();\n\n try {\n this._allEntities = await DatabaseDesignerEngine.Instance.loadAccessibleEntities();\n this._availableFilterSchemas = [...new Set(this._allEntities.map(e => e.schemaName))].sort();\n // Trigger the combineLatest pipe to recalculate; reset schema filter if\n // the previously selected schema is no longer present in the new entity list.\n const schemas = this._availableFilterSchemas;\n if (this._schema$.value && !schemas.includes(this._schema$.value)) {\n this._schema$.next('');\n } else {\n this._search$.next(this._search$.value);\n }\n } catch (err) {\n this.ErrorMessage = err instanceof Error ? err.message : String(err);\n } finally {\n this.IsLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private applyFilterAndSort(search: string, schema: string, field: SortField, dir: SortDirection): AccessibleEntity[] {\n const term = search.trim().toLowerCase();\n let results = [...this._allEntities];\n\n if (schema) {\n results = results.filter(e => e.schemaName === schema);\n }\n\n if (term) {\n results = results.filter(e =>\n e.entityName.toLowerCase().includes(term) ||\n e.tableName.toLowerCase().includes(term) ||\n e.schemaName.toLowerCase().includes(term)\n );\n }\n\n results.sort((a, b) => {\n const aVal = this.sortValue(a, field);\n const bVal = this.sortValue(b, field);\n const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0;\n return dir === 'asc' ? cmp : -cmp;\n });\n\n return results;\n }\n\n private sortValue(entity: AccessibleEntity, field: SortField): string | number {\n switch (field) {\n case 'entityName': return entity.entityName.toLowerCase();\n case 'tableName': return entity.tableName.toLowerCase();\n case 'schemaName': return entity.schemaName.toLowerCase();\n case 'createdAt': return entity.createdAt.getTime();\n case 'owner': return entity.isOwner ? 0 : 1;\n default: return entity.entityName.toLowerCase();\n }\n }\n}\n","<div class=\"entity-list-root\">\n\n <!-- ── Header ─────────────────────────────────────────────────────────── -->\n <div class=\"entity-list-header\">\n <h2 class=\"entity-list-title\">\n <i class=\"fa-solid fa-table-cells-large\"></i>\n Database Designer\n </h2>\n <button\n mjButton\n buttonStyle=\"primary\"\n class=\"new-entity-btn\"\n (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n New Entity\n </button>\n </div>\n\n <!-- ── Toolbar ────────────────────────────────────────────────────────── -->\n <div class=\"entity-list-toolbar\">\n <div class=\"search-wrap\">\n <i class=\"fa-solid fa-magnifying-glass search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input search-input\"\n placeholder=\"Search by name, table, or schema…\"\n [(ngModel)]=\"SearchTerm\"\n aria-label=\"Search entities\" />\n @if (SearchTerm) {\n <button\n class=\"search-clear\"\n (click)=\"SearchTerm = ''\"\n aria-label=\"Clear search\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n @if (AvailableFilterSchemas.length > 1) {\n <select\n class=\"mj-input schema-filter\"\n [value]=\"SelectedSchema\"\n (change)=\"SelectedSchema = $any($event.target).value\"\n aria-label=\"Filter by schema\">\n <option value=\"\">All Schemas</option>\n @for (schema of AvailableFilterSchemas; track schema) {\n <option [value]=\"schema\">{{ schema }}</option>\n }\n </select>\n }\n\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"refresh-btn\"\n title=\"Refresh list\"\n [disabled]=\"IsLoading\"\n (click)=\"OnRefresh()\">\n <i class=\"fa-solid fa-rotate\" [class.fa-spin]=\"IsLoading\"></i>\n </button>\n </div>\n\n <!-- ── Error ──────────────────────────────────────────────────────────── -->\n @if (ErrorMessage) {\n <div class=\"entity-list-error\" role=\"alert\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ ErrorMessage }}\n </div>\n }\n\n <!-- ── Loading skeleton ───────────────────────────────────────────────── -->\n @if (IsLoading && FilteredEntities.length === 0) {\n <div class=\"skeleton-table\" aria-busy=\"true\" aria-label=\"Loading entities…\">\n @for (_ of [1, 2, 3, 4]; track $index) {\n <div class=\"skeleton-row\">\n <div class=\"skeleton-cell wide\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n </div>\n }\n </div>\n }\n\n <!-- ── Entity table ───────────────────────────────────────────────────── -->\n @if (!IsLoading || FilteredEntities.length > 0) {\n @if (FilteredEntities.length > 0) {\n <div class=\"table-wrap\">\n <table class=\"entity-table\" role=\"grid\" aria-label=\"User-defined entities\">\n <thead>\n <tr>\n <th class=\"col-name sortable\" (click)=\"OnSortChange('entityName')\" scope=\"col\">\n Entity Name\n <span class=\"sort-icon\">\n @if (SortField === 'entityName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-schema sortable\" (click)=\"OnSortChange('schemaName')\" scope=\"col\">\n Schema\n <span class=\"sort-icon\">\n @if (SortField === 'schemaName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-table sortable\" (click)=\"OnSortChange('tableName')\" scope=\"col\">\n Table\n <span class=\"sort-icon\">\n @if (SortField === 'tableName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-owner sortable\" (click)=\"OnSortChange('owner')\" scope=\"col\">\n Owner\n <span class=\"sort-icon\">\n @if (SortField === 'owner') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-created sortable\" (click)=\"OnSortChange('createdAt')\" scope=\"col\">\n Created\n <span class=\"sort-icon\">\n @if (SortField === 'createdAt') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (entity of FilteredEntities; track TrackByEntityId($index, entity)) {\n <tr class=\"entity-row\">\n <td class=\"col-name\">\n <div class=\"entity-name-cell\">\n <span class=\"entity-name\">{{ entity.entityName }}</span>\n @if (entity.isOwner) {\n <span class=\"owner-badge owner-you\" title=\"You own this entity\">You</span>\n }\n </div>\n </td>\n <td class=\"col-schema\">\n <span class=\"schema-badge\">{{ entity.schemaName }}</span>\n </td>\n <td class=\"col-table\">\n <code class=\"table-name\">{{ entity.tableName }}</code>\n </td>\n <td class=\"col-owner\">\n @if (entity.isOwner) {\n <span class=\"owner-self\">\n <i class=\"fa-solid fa-user-check\"></i>\n You\n </span>\n } @else if (entity.ownerDisplayName) {\n <span class=\"owner-other\">{{ entity.ownerDisplayName }}</span>\n } @else {\n <span class=\"owner-other muted\">—</span>\n }\n </td>\n <td class=\"col-created\">{{ FormatDate(entity.createdAt) }}</td>\n <td class=\"col-actions\">\n <div class=\"row-actions\">\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"action-btn\"\n title=\"Edit this entity\"\n (click)=\"OnEditEntity(entity)\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Edit\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"entity-count\">\n {{ FilteredEntities.length }} {{ FilteredEntities.length === 1 ? 'entity' : 'entities' }}\n @if (SearchTerm) { matching \"{{ SearchTerm }}\" }\n </div>\n } @else if (!IsLoading) {\n <!-- ── Zero state ───────────────────────────────────────────────── -->\n <div class=\"zero-state\">\n <div class=\"zero-state-icon\">\n <i class=\"fa-regular fa-rectangle-list\"></i>\n </div>\n @if (SearchTerm) {\n <h3 class=\"zero-state-title\">No entities match \"{{ SearchTerm }}\"</h3>\n <p class=\"zero-state-body\">Try a different search term or clear the filter.</p>\n <button mjButton buttonStyle=\"secondary\" (click)=\"SearchTerm = ''\">\n Clear search\n </button>\n } @else {\n <h3 class=\"zero-state-title\">No entities yet</h3>\n <p class=\"zero-state-body\">\n Create your first user-defined entity. You can also use the\n Database Designer agent in a conversation for guided design.\n </p>\n <button mjButton buttonStyle=\"primary\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Entity\n </button>\n }\n </div>\n }\n }\n</div>\n"]}
1
+ {"version":3,"file":"entity-list.component.js","sourceRoot":"","sources":["../../../src/DatabaseDesigner/components/entity-list.component.ts","../../../src/DatabaseDesigner/components/entity-list.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module entity-list.component\n * @description Displays the list of entities accessible to the current user.\n *\n * Loaded from `DatabaseDesignerEngine.Instance.loadAccessibleEntities()` —\n * data access goes through the engine singleton, not this component directly,\n * so the cache is shared across wizard openings.\n */\n\nimport {\n Component, OnInit, OnDestroy, Output, EventEmitter,\n ChangeDetectionStrategy, ChangeDetectorRef, inject,\n} from '@angular/core';\nimport { Subject, BehaviorSubject, combineLatest } from 'rxjs';\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\n\nimport { DatabaseDesignerEngine } from '../services/database-designer.engine.js';\nimport type { AccessibleEntity } from '../database-designer.types.js';\n\n// ─── Sort state ───────────────────────────────────────────────────────────────\n\ntype SortField = 'entityName' | 'tableName' | 'schemaName' | 'createdAt' | 'owner';\ntype SortDirection = 'asc' | 'desc';\n\n@Component({\n standalone: false,\n selector: 'mj-database-entity-list',\n templateUrl: './entity-list.component.html',\n styleUrls: ['./entity-list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EntityListComponent implements OnInit, OnDestroy {\n\n /** Emitted when the user clicks \"Edit\" on an entity row. */\n @Output() public readonly EditEntity = new EventEmitter<AccessibleEntity>();\n /** Emitted when the user clicks \"View Details\" on an entity row. */\n @Output() public readonly ViewEntity = new EventEmitter<AccessibleEntity>();\n /** Emitted when the user clicks \"New Entity\". */\n @Output() public readonly NewEntity = new EventEmitter<void>();\n\n public IsLoading = false;\n public ErrorMessage: string | null = null;\n\n /** Full unfiltered list from the engine. */\n private _allEntities: AccessibleEntity[] = [];\n\n /** Cached sorted unique schema names — recomputed only when _allEntities changes. */\n private _availableFilterSchemas: string[] = [];\n\n /** Currently displayed (filtered + sorted) rows. */\n public FilteredEntities: AccessibleEntity[] = [];\n\n private readonly _search$ = new BehaviorSubject<string>('');\n private readonly _schema$ = new BehaviorSubject<string>('');\n private readonly _sortField$ = new BehaviorSubject<SortField>('entityName');\n private readonly _sortDir$ = new BehaviorSubject<SortDirection>('asc');\n private readonly _destroy$ = new Subject<void>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────\n\n ngOnInit(): void {\n this.setupFilter();\n this.loadEntities();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n // ─── Template bindings ─────────────────────────────────────────────────\n\n get SearchTerm(): string { return this._search$.value; }\n set SearchTerm(v: string) { this._search$.next(v); }\n\n get SelectedSchema(): string { return this._schema$.value; }\n set SelectedSchema(v: string) { this._schema$.next(v); }\n\n /** Unique schema names present in the loaded entity list, sorted alphabetically. */\n get AvailableFilterSchemas(): string[] { return this._availableFilterSchemas; }\n\n get SortField(): SortField { return this._sortField$.value; }\n get SortDirection(): SortDirection { return this._sortDir$.value; }\n\n /** Toggle sort: same field flips direction; new field defaults to asc. */\n public OnSortChange(field: SortField): void {\n if (this._sortField$.value === field) {\n this._sortDir$.next(this._sortDir$.value === 'asc' ? 'desc' : 'asc');\n } else {\n this._sortField$.next(field);\n this._sortDir$.next('asc');\n }\n }\n\n public OnEditEntity(entity: AccessibleEntity): void {\n this.EditEntity.emit(entity);\n }\n\n public OnViewEntity(entity: AccessibleEntity): void {\n this.ViewEntity.emit(entity);\n }\n\n public OnNewEntity(): void {\n this.NewEntity.emit();\n }\n\n public OnRefresh(): void {\n DatabaseDesignerEngine.Instance.invalidateCache();\n this.loadEntities();\n }\n\n public TrackByEntityId(_: number, entity: AccessibleEntity): string {\n return entity.entityId;\n }\n\n public FormatDate(date: Date): string {\n return date.toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });\n }\n\n // ─── Private helpers ───────────────────────────────────────────────────\n\n private setupFilter(): void {\n combineLatest([this._search$, this._schema$, this._sortField$, this._sortDir$])\n .pipe(\n debounceTime(150),\n map(([search, schema, field, dir]) => this.applyFilterAndSort(search, schema, field, dir)),\n takeUntil(this._destroy$),\n )\n .subscribe(result => {\n this.FilteredEntities = result;\n this.cdr.markForCheck();\n });\n }\n\n private async loadEntities(): Promise<void> {\n this.IsLoading = true;\n this.ErrorMessage = null;\n this.cdr.markForCheck();\n\n try {\n this._allEntities = await DatabaseDesignerEngine.Instance.loadAccessibleEntities();\n this._availableFilterSchemas = [...new Set(this._allEntities.map(e => e.schemaName))].sort();\n // Trigger the combineLatest pipe to recalculate; reset schema filter if\n // the previously selected schema is no longer present in the new entity list.\n const schemas = this._availableFilterSchemas;\n if (this._schema$.value && !schemas.includes(this._schema$.value)) {\n this._schema$.next('');\n } else {\n this._search$.next(this._search$.value);\n }\n } catch (err) {\n this.ErrorMessage = err instanceof Error ? err.message : String(err);\n } finally {\n this.IsLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private applyFilterAndSort(search: string, schema: string, field: SortField, dir: SortDirection): AccessibleEntity[] {\n const term = search.trim().toLowerCase();\n let results = [...this._allEntities];\n\n if (schema) {\n results = results.filter(e => e.schemaName === schema);\n }\n\n if (term) {\n results = results.filter(e =>\n e.entityName.toLowerCase().includes(term) ||\n e.tableName.toLowerCase().includes(term) ||\n e.schemaName.toLowerCase().includes(term)\n );\n }\n\n results.sort((a, b) => {\n const aVal = this.sortValue(a, field);\n const bVal = this.sortValue(b, field);\n const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0;\n return dir === 'asc' ? cmp : -cmp;\n });\n\n return results;\n }\n\n private sortValue(entity: AccessibleEntity, field: SortField): string | number {\n switch (field) {\n case 'entityName': return entity.entityName.toLowerCase();\n case 'tableName': return entity.tableName.toLowerCase();\n case 'schemaName': return entity.schemaName.toLowerCase();\n case 'createdAt': return entity.createdAt.getTime();\n case 'owner': return entity.isOwner ? 0 : 1;\n default: return entity.entityName.toLowerCase();\n }\n }\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Database Designer\"\n Icon=\"fa-solid fa-table-cells-large\"\n Subtitle=\"Browse and create user-defined entities\">\n <div meta>\n <mj-stat-badge [Count]=\"FilteredEntities.length\" Label=\"entities\"></mj-stat-badge>\n </div>\n <div actions>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"OnRefresh()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i> New Entity\n </button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search by name, table, or schema...\"\n [Value]=\"SearchTerm\"\n (ValueChange)=\"SearchTerm = $event\">\n </mj-page-search>\n @if (AvailableFilterSchemas.length > 1) {\n <select\n class=\"mj-input schema-filter\"\n [value]=\"SelectedSchema\"\n (change)=\"SelectedSchema = $any($event.target).value\"\n aria-label=\"Filter by schema\">\n <option value=\"\">All Schemas</option>\n @for (schema of AvailableFilterSchemas; track schema) {\n <option [value]=\"schema\">{{ schema }}</option>\n }\n </select>\n }\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- ── Error ──────────────────────────────────────────────────────────── -->\n @if (ErrorMessage) {\n <div class=\"entity-list-error\" role=\"alert\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ ErrorMessage }}\n </div>\n }\n\n <!-- ── Loading skeleton ───────────────────────────────────────────────── -->\n @if (IsLoading && FilteredEntities.length === 0) {\n <div class=\"skeleton-table\" aria-busy=\"true\" aria-label=\"Loading entities…\">\n @for (_ of [1, 2, 3, 4]; track $index) {\n <div class=\"skeleton-row\">\n <div class=\"skeleton-cell wide\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n </div>\n }\n </div>\n }\n\n <!-- ── Entity table ───────────────────────────────────────────────────── -->\n @if (!IsLoading || FilteredEntities.length > 0) {\n @if (FilteredEntities.length > 0) {\n <div class=\"table-wrap\">\n <table class=\"entity-table\" role=\"grid\" aria-label=\"User-defined entities\">\n <thead>\n <tr>\n <th class=\"col-name sortable\" (click)=\"OnSortChange('entityName')\" scope=\"col\">\n Entity Name\n <span class=\"sort-icon\">\n @if (SortField === 'entityName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-schema sortable\" (click)=\"OnSortChange('schemaName')\" scope=\"col\">\n Schema\n <span class=\"sort-icon\">\n @if (SortField === 'schemaName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-table sortable\" (click)=\"OnSortChange('tableName')\" scope=\"col\">\n Table\n <span class=\"sort-icon\">\n @if (SortField === 'tableName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-owner sortable\" (click)=\"OnSortChange('owner')\" scope=\"col\">\n Owner\n <span class=\"sort-icon\">\n @if (SortField === 'owner') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-created sortable\" (click)=\"OnSortChange('createdAt')\" scope=\"col\">\n Created\n <span class=\"sort-icon\">\n @if (SortField === 'createdAt') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (entity of FilteredEntities; track TrackByEntityId($index, entity)) {\n <tr class=\"entity-row\">\n <td class=\"col-name\">\n <div class=\"entity-name-cell\">\n <span class=\"entity-name\">{{ entity.entityName }}</span>\n @if (entity.isOwner) {\n <span class=\"owner-badge owner-you\" title=\"You own this entity\">You</span>\n }\n </div>\n </td>\n <td class=\"col-schema\">\n <span class=\"schema-badge\">{{ entity.schemaName }}</span>\n </td>\n <td class=\"col-table\">\n <code class=\"table-name\">{{ entity.tableName }}</code>\n </td>\n <td class=\"col-owner\">\n @if (entity.isOwner) {\n <span class=\"owner-self\">\n <i class=\"fa-solid fa-user-check\"></i>\n You\n </span>\n } @else if (entity.ownerDisplayName) {\n <span class=\"owner-other\">{{ entity.ownerDisplayName }}</span>\n } @else {\n <span class=\"owner-other muted\">—</span>\n }\n </td>\n <td class=\"col-created\">{{ FormatDate(entity.createdAt) }}</td>\n <td class=\"col-actions\">\n <div class=\"row-actions\">\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"action-btn\"\n title=\"Edit this entity\"\n (click)=\"OnEditEntity(entity)\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Edit\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"entity-count\">\n {{ FilteredEntities.length }} {{ FilteredEntities.length === 1 ? 'entity' : 'entities' }}\n @if (SearchTerm) { matching \"{{ SearchTerm }}\" }\n </div>\n } @else if (!IsLoading) {\n <!-- ── Zero state ───────────────────────────────────────────────── -->\n <div class=\"zero-state\">\n <div class=\"zero-state-icon\">\n <i class=\"fa-regular fa-rectangle-list\"></i>\n </div>\n @if (SearchTerm) {\n <h3 class=\"zero-state-title\">No entities match \"{{ SearchTerm }}\"</h3>\n <p class=\"zero-state-body\">Try a different search term or clear the filter.</p>\n <button mjButton buttonStyle=\"secondary\" (click)=\"SearchTerm = ''\">\n Clear search\n </button>\n } @else {\n <h3 class=\"zero-state-title\">No entities yet</h3>\n <p class=\"zero-state-body\">\n Create your first user-defined entity. You can also use the\n Database Designer agent in a conversation for guided design.\n </p>\n <button mjButton buttonStyle=\"primary\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Entity\n </button>\n }\n </div>\n }\n }\n </mj-page-body>\n</mj-page-layout>\n"]}
@@ -24,7 +24,7 @@ import * as i22 from "@memberjunction/ng-entity-relationship-diagram";
24
24
  import * as i23 from "angular-split";
25
25
  export declare class DatabaseDesignerDashboardsModule {
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseDesignerDashboardsModule, never>;
27
- static ɵmod: i0.ɵɵNgModuleDeclaration<DatabaseDesignerDashboardsModule, [typeof i1.DatabaseDesignerDashboardComponent, typeof i2.EntityListComponent, typeof i3.WizardStepIndicatorComponent, typeof i4.EntityFieldsGridComponent, typeof i5.EntityReviewPanelComponent, typeof i6.EntityPipelinePanelComponent, typeof i7.DatabasePreviewPaneComponent, typeof i8.DatabaseCreateWizardComponent, typeof i9.StepBasicsComponent, typeof i10.StepFieldsComponent, typeof i11.StepRelationshipsComponent, typeof i12.StepReviewComponent, typeof i13.StepPipelineComponent, typeof i14.DatabaseModifyComponent], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i17.MJButtonDirective, typeof i18.SharedGenericModule, typeof i19.VersionsModule, typeof i20.MarkdownModule, typeof i21.CodeEditorModule, typeof i22.EntityRelationshipDiagramModule, typeof i23.AngularSplitModule], [typeof i1.DatabaseDesignerDashboardComponent, typeof i2.EntityListComponent, typeof i3.WizardStepIndicatorComponent, typeof i4.EntityFieldsGridComponent, typeof i5.EntityReviewPanelComponent, typeof i6.EntityPipelinePanelComponent, typeof i8.DatabaseCreateWizardComponent]>;
27
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DatabaseDesignerDashboardsModule, [typeof i1.DatabaseDesignerDashboardComponent, typeof i2.EntityListComponent, typeof i3.WizardStepIndicatorComponent, typeof i4.EntityFieldsGridComponent, typeof i5.EntityReviewPanelComponent, typeof i6.EntityPipelinePanelComponent, typeof i7.DatabasePreviewPaneComponent, typeof i8.DatabaseCreateWizardComponent, typeof i9.StepBasicsComponent, typeof i10.StepFieldsComponent, typeof i11.StepRelationshipsComponent, typeof i12.StepReviewComponent, typeof i13.StepPipelineComponent, typeof i14.DatabaseModifyComponent], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i17.MJButtonDirective, typeof i17.MJPageLayoutComponent, typeof i17.MJPageHeaderComponent, typeof i17.MJPageBodyComponent, typeof i17.MJPageSearchComponent, typeof i17.MJRefreshButtonComponent, typeof i17.MJStatBadgeComponent, typeof i18.SharedGenericModule, typeof i19.VersionsModule, typeof i20.MarkdownModule, typeof i21.CodeEditorModule, typeof i22.EntityRelationshipDiagramModule, typeof i23.AngularSplitModule], [typeof i1.DatabaseDesignerDashboardComponent, typeof i2.EntityListComponent, typeof i3.WizardStepIndicatorComponent, typeof i4.EntityFieldsGridComponent, typeof i5.EntityReviewPanelComponent, typeof i6.EntityPipelinePanelComponent, typeof i8.DatabaseCreateWizardComponent]>;
28
28
  static ɵinj: i0.ɵɵInjectorDeclaration<DatabaseDesignerDashboardsModule>;
29
29
  }
30
30
  //# sourceMappingURL=database-designer-dashboards.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-designer-dashboards.module.d.ts","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwCA,qBA4Ca,gCAAgC;yCAAhC,gCAAgC;0CAAhC,gCAAgC;0CAAhC,gCAAgC;CAAG"}
1
+ {"version":3,"file":"database-designer-dashboards.module.d.ts","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgDA,qBAkDa,gCAAgC;yCAAhC,gCAAgC;0CAAhC,gCAAgC;0CAAhC,gCAAgC;CAAG"}
@@ -13,7 +13,7 @@
13
13
  import { NgModule } from '@angular/core';
14
14
  import { CommonModule } from '@angular/common';
15
15
  import { FormsModule } from '@angular/forms';
16
- import { MJButtonDirective } from '@memberjunction/ng-ui-components';
16
+ import { MJButtonDirective, MJPageLayoutComponent, MJPageHeaderComponent, MJPageBodyComponent, MJPageSearchComponent, MJRefreshButtonComponent, MJStatBadgeComponent } from '@memberjunction/ng-ui-components';
17
17
  import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
18
18
  import { VersionsModule } from '@memberjunction/ng-versions';
19
19
  import { MarkdownModule } from '@memberjunction/ng-markdown';
@@ -43,6 +43,12 @@ export class DatabaseDesignerDashboardsModule {
43
43
  DatabaseDesignerService,
44
44
  ], imports: [CommonModule,
45
45
  FormsModule,
46
+ MJPageLayoutComponent,
47
+ MJPageHeaderComponent,
48
+ MJPageBodyComponent,
49
+ MJPageSearchComponent,
50
+ MJRefreshButtonComponent,
51
+ MJStatBadgeComponent,
46
52
  SharedGenericModule,
47
53
  VersionsModule,
48
54
  MarkdownModule,
@@ -76,6 +82,12 @@ export class DatabaseDesignerDashboardsModule {
76
82
  CommonModule,
77
83
  FormsModule,
78
84
  MJButtonDirective,
85
+ MJPageLayoutComponent,
86
+ MJPageHeaderComponent,
87
+ MJPageBodyComponent,
88
+ MJPageSearchComponent,
89
+ MJRefreshButtonComponent,
90
+ MJStatBadgeComponent,
79
91
  SharedGenericModule,
80
92
  VersionsModule,
81
93
  MarkdownModule,
@@ -116,6 +128,12 @@ export class DatabaseDesignerDashboardsModule {
116
128
  DatabaseModifyComponent], imports: [CommonModule,
117
129
  FormsModule,
118
130
  MJButtonDirective,
131
+ MJPageLayoutComponent,
132
+ MJPageHeaderComponent,
133
+ MJPageBodyComponent,
134
+ MJPageSearchComponent,
135
+ MJRefreshButtonComponent,
136
+ MJStatBadgeComponent,
119
137
  SharedGenericModule,
120
138
  VersionsModule,
121
139
  MarkdownModule,
@@ -1 +1 @@
1
- {"version":3,"file":"database-designer-dashboards.module.js","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DatabaseDesignerDashboardsModule\n *\n * Feature module for the Database Designer dashboard area. Declares the main\n * dashboard component and its entity-list sub-component. The wizard steps and\n * modify view are added in later phases (5c–5e) and will be declared here too.\n *\n * Lazy-loading entry point: DashboardsModule (module.ts) imports this module\n * so MJExplorer can code-split it in the future without touching any other file.\n *\n * Slide-over panels use MjSlidePanelComponent from VersionsModule.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { VersionsModule } from '@memberjunction/ng-versions';\nimport { MarkdownModule } from '@memberjunction/ng-markdown';\nimport { CodeEditorModule } from '@memberjunction/ng-code-editor';\nimport { EntityRelationshipDiagramModule } from '@memberjunction/ng-entity-relationship-diagram';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { DatabaseDesignerDashboardComponent } from './components/database-designer-dashboard.component';\nimport { EntityListComponent } from './components/entity-list.component';\nimport { WizardStepIndicatorComponent } from './components/shared/wizard-step-indicator.component';\nimport { EntityFieldsGridComponent } from './components/shared/entity-fields-grid.component';\nimport { EntityReviewPanelComponent } from './components/shared/entity-review-panel.component';\nimport { EntityPipelinePanelComponent } from './components/shared/entity-pipeline-panel.component';\nimport { DatabaseCreateWizardComponent } from './components/create-wizard/database-create-wizard.component';\nimport { StepBasicsComponent } from './components/create-wizard/steps/step-basics.component';\nimport { StepFieldsComponent } from './components/create-wizard/steps/step-fields.component';\nimport { StepRelationshipsComponent } from './components/create-wizard/steps/step-relationships.component';\nimport { StepReviewComponent } from './components/create-wizard/steps/step-review.component';\nimport { StepPipelineComponent } from './components/create-wizard/steps/step-pipeline.component';\nimport { DatabaseModifyComponent } from './components/modify/database-modify.component';\nimport { DatabasePreviewPaneComponent } from './components/shared/database-preview-pane.component';\nimport { DatabaseDesignerService } from './services/database-designer.service';\n\n@NgModule({\n declarations: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n // Phase 5c: shared UI\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabasePreviewPaneComponent,\n // Phase 5d: wizard + steps\n DatabaseCreateWizardComponent,\n StepBasicsComponent,\n StepFieldsComponent,\n StepRelationshipsComponent,\n StepReviewComponent,\n StepPipelineComponent,\n // Phase 5e\n DatabaseModifyComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MJButtonDirective,\n SharedGenericModule,\n VersionsModule,\n MarkdownModule,\n CodeEditorModule,\n EntityRelationshipDiagramModule,\n AngularSplitModule,\n ],\n providers: [\n DatabaseDesignerService,\n ],\n exports: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabaseCreateWizardComponent,\n ],\n})\nexport class DatabaseDesignerDashboardsModule {}\n"]}
1
+ {"version":3,"file":"database-designer-dashboards.module.js","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DatabaseDesignerDashboardsModule\n *\n * Feature module for the Database Designer dashboard area. Declares the main\n * dashboard component and its entity-list sub-component. The wizard steps and\n * modify view are added in later phases (5c–5e) and will be declared here too.\n *\n * Lazy-loading entry point: DashboardsModule (module.ts) imports this module\n * so MJExplorer can code-split it in the future without touching any other file.\n *\n * Slide-over panels use MjSlidePanelComponent from VersionsModule.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n MJButtonDirective,\n MJPageLayoutComponent,\n MJPageHeaderComponent,\n MJPageBodyComponent,\n MJPageSearchComponent,\n MJRefreshButtonComponent,\n MJStatBadgeComponent\n} from '@memberjunction/ng-ui-components';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { VersionsModule } from '@memberjunction/ng-versions';\nimport { MarkdownModule } from '@memberjunction/ng-markdown';\nimport { CodeEditorModule } from '@memberjunction/ng-code-editor';\nimport { EntityRelationshipDiagramModule } from '@memberjunction/ng-entity-relationship-diagram';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { DatabaseDesignerDashboardComponent } from './components/database-designer-dashboard.component';\nimport { EntityListComponent } from './components/entity-list.component';\nimport { WizardStepIndicatorComponent } from './components/shared/wizard-step-indicator.component';\nimport { EntityFieldsGridComponent } from './components/shared/entity-fields-grid.component';\nimport { EntityReviewPanelComponent } from './components/shared/entity-review-panel.component';\nimport { EntityPipelinePanelComponent } from './components/shared/entity-pipeline-panel.component';\nimport { DatabaseCreateWizardComponent } from './components/create-wizard/database-create-wizard.component';\nimport { StepBasicsComponent } from './components/create-wizard/steps/step-basics.component';\nimport { StepFieldsComponent } from './components/create-wizard/steps/step-fields.component';\nimport { StepRelationshipsComponent } from './components/create-wizard/steps/step-relationships.component';\nimport { StepReviewComponent } from './components/create-wizard/steps/step-review.component';\nimport { StepPipelineComponent } from './components/create-wizard/steps/step-pipeline.component';\nimport { DatabaseModifyComponent } from './components/modify/database-modify.component';\nimport { DatabasePreviewPaneComponent } from './components/shared/database-preview-pane.component';\nimport { DatabaseDesignerService } from './services/database-designer.service';\n\n@NgModule({\n declarations: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n // Phase 5c: shared UI\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabasePreviewPaneComponent,\n // Phase 5d: wizard + steps\n DatabaseCreateWizardComponent,\n StepBasicsComponent,\n StepFieldsComponent,\n StepRelationshipsComponent,\n StepReviewComponent,\n StepPipelineComponent,\n // Phase 5e\n DatabaseModifyComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MJButtonDirective,\n MJPageLayoutComponent,\n MJPageHeaderComponent,\n MJPageBodyComponent,\n MJPageSearchComponent,\n MJRefreshButtonComponent,\n MJStatBadgeComponent,\n SharedGenericModule,\n VersionsModule,\n MarkdownModule,\n CodeEditorModule,\n EntityRelationshipDiagramModule,\n AngularSplitModule,\n ],\n providers: [\n DatabaseDesignerService,\n ],\n exports: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabaseCreateWizardComponent,\n ],\n})\nexport class DatabaseDesignerDashboardsModule {}\n"]}
@@ -12,8 +12,9 @@ import { Subject } from 'rxjs';
12
12
  import { debounceTime } from 'rxjs/operators';
13
13
  import { UserInfoEngine } from '@memberjunction/core-entities';
14
14
  import * as i0 from "@angular/core";
15
- import * as i1 from "@memberjunction/ng-shared-generic";
16
- import * as i2 from "@memberjunction/ng-entity-relationship-diagram";
15
+ import * as i1 from "@memberjunction/ng-ui-components";
16
+ import * as i2 from "@memberjunction/ng-shared-generic";
17
+ import * as i3 from "@memberjunction/ng-entity-relationship-diagram";
17
18
  const _c0 = ["erdComposite"];
18
19
  function EntityAdminDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
19
20
  i0.ɵɵelementStart(0, "div", 8);
@@ -185,31 +186,34 @@ let EntityAdminDashboardComponent = class EntityAdminDashboardComponent extends
185
186
  } if (rf & 2) {
186
187
  let _t;
187
188
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.erdComposite = _t.first);
188
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 6, consts: [["erdComposite", ""], [1, "entity-admin-dashboard-container"], [1, "dashboard-header"], [1, "header-info"], [1, "visible-entities-count"], [1, "header-controls"], ["title", "Toggle Filters", 1, "control-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "loading-container"], [1, "error-container"], [1, "dashboard-content"], ["size", "large", 3, "text"], [1, "error-message"], [3, "stateChange", "userStateChange", "entityOpened", "openRecord", "isRefreshingERD"]], template: function EntityAdminDashboardComponent_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "span", 4);
190
- i0.ɵɵtext(4);
191
- i0.ɵɵelementEnd()();
192
- i0.ɵɵelementStart(5, "div", 5)(6, "button", 6);
193
- i0.ɵɵlistener("click", function EntityAdminDashboardComponent_Template_button_click_6_listener() { return ctx.toggleFilterPanel(); });
194
- i0.ɵɵelement(7, "span", 7);
195
- i0.ɵɵtext(8, " Filters ");
189
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 7, consts: [["erdComposite", ""], ["Title", "Entity Admin", "Icon", "fa-solid fa-database", "Subtitle", "Browse and configure entity definitions"], ["meta", ""], ["Label", "visible entities", 3, "Count"], ["actions", ""], ["mjButton", "", "size", "sm", "title", "Toggle Filters", 3, "click", "variant"], [1, "fa-solid", "fa-filter"], [3, "Flex", "Padding"], [1, "loading-container"], [1, "error-container"], [1, "dashboard-content"], ["size", "large", 3, "text"], [1, "error-message"], [3, "stateChange", "userStateChange", "entityOpened", "openRecord", "isRefreshingERD"]], template: function EntityAdminDashboardComponent_Template(rf, ctx) { if (rf & 1) {
190
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 1)(2, "div", 2);
191
+ i0.ɵɵelement(3, "mj-stat-badge", 3);
192
+ i0.ɵɵelementEnd();
193
+ i0.ɵɵelementStart(4, "div", 4)(5, "button", 5);
194
+ i0.ɵɵlistener("click", function EntityAdminDashboardComponent_Template_button_click_5_listener() { return ctx.toggleFilterPanel(); });
195
+ i0.ɵɵelement(6, "i", 6);
196
+ i0.ɵɵtext(7, " Filters ");
196
197
  i0.ɵɵelementEnd()()();
198
+ i0.ɵɵelementStart(8, "mj-page-body", 7);
197
199
  i0.ɵɵconditionalCreate(9, EntityAdminDashboardComponent_Conditional_9_Template, 2, 1, "div", 8);
198
200
  i0.ɵɵconditionalCreate(10, EntityAdminDashboardComponent_Conditional_10_Template, 3, 1, "div", 9);
199
201
  i0.ɵɵconditionalCreate(11, EntityAdminDashboardComponent_Conditional_11_Template, 3, 1, "div", 10);
200
- i0.ɵɵelementEnd();
202
+ i0.ɵɵelementEnd()();
201
203
  } if (rf & 2) {
202
- i0.ɵɵadvance(4);
203
- i0.ɵɵtextInterpolate1("", ctx.filteredEntities.length, " visible entities");
204
+ i0.ɵɵadvance(3);
205
+ i0.ɵɵproperty("Count", ctx.filteredEntities.length);
204
206
  i0.ɵɵadvance(2);
205
- i0.ɵɵclassProp("active", ctx.filterPanelVisible);
207
+ i0.ɵɵproperty("variant", ctx.filterPanelVisible ? "primary" : "secondary");
206
208
  i0.ɵɵadvance(3);
209
+ i0.ɵɵproperty("Flex", true)("Padding", false);
210
+ i0.ɵɵadvance();
207
211
  i0.ɵɵconditional(ctx.isLoading ? 9 : -1);
208
212
  i0.ɵɵadvance();
209
213
  i0.ɵɵconditional(ctx.error ? 10 : -1);
210
214
  i0.ɵɵadvance();
211
215
  i0.ɵɵconditional(!ctx.isLoading && !ctx.error ? 11 : -1);
212
- } }, dependencies: [i1.LoadingComponent, i2.ERDCompositeComponent], styles: ["\n\n\n\n\n\n.entity-admin-dashboard-container[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: var(--mj-space-2);\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-page);\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-4);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-info[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] .visible-entities-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: var(--mj-space-1-5) var(--mj-space-3);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-brand-on-accent);\n background: var(--mj-brand-accent);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-brand-accent-subtle);\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-2);\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-4);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n transition: var(--mj-transition-base);\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-on-primary);\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.38;\n cursor: not-allowed;\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%]:disabled:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--mj-brand-primary);\n outline-offset: 2px;\n}\n\n.dashboard-header[_ngcontent-%COMP%] .header-controls[_ngcontent-%COMP%] .control-btn[_ngcontent-%COMP%] .fa-solid[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.loading-container[_ngcontent-%COMP%], \n.error-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n flex: 1;\n border-radius: var(--mj-radius-lg);\n}\n\n.loading-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.error-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-normal);\n color: var(--mj-text-secondary);\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n font-weight: var(--mj-font-medium);\n}\n\n\n\n.dashboard-content[_ngcontent-%COMP%] {\n overflow: hidden;\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mj-space-4);\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring[_ngcontent-%COMP%] {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1.5s linear infinite;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(1) {\n border-top-color: var(--mj-brand-primary);\n animation-delay: 0s;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(2) {\n border-top-color: var(--mj-brand-tertiary);\n animation-delay: 0.3s;\n transform: scale(0.8);\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(3) {\n border-top-color: var(--mj-brand-accent);\n animation-delay: 0.6s;\n transform: scale(0.6);\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n text-align: center;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}"] });
216
+ } }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJStatBadgeComponent, i2.LoadingComponent, i3.ERDCompositeComponent], styles: ["\n\n\n\n\n\n\n\n.loading-container[_ngcontent-%COMP%], \n.error-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n flex: 1;\n border-radius: var(--mj-radius-lg);\n}\n\n.loading-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.error-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-normal);\n color: var(--mj-text-secondary);\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n font-weight: var(--mj-font-medium);\n}\n\n\n\n.dashboard-content[_ngcontent-%COMP%] {\n overflow: hidden;\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mj-space-4);\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring[_ngcontent-%COMP%] {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1.5s linear infinite;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(1) {\n border-top-color: var(--mj-brand-primary);\n animation-delay: 0s;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(2) {\n border-top-color: var(--mj-brand-tertiary);\n animation-delay: 0.3s;\n transform: scale(0.8);\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(3) {\n border-top-color: var(--mj-brand-accent);\n animation-delay: 0.6s;\n transform: scale(0.6);\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n text-align: center;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}"] });
213
217
  };
214
218
  EntityAdminDashboardComponent = __decorate([
215
219
  RegisterClass(BaseDashboard, 'EntityAdmin')
@@ -217,7 +221,7 @@ EntityAdminDashboardComponent = __decorate([
217
221
  export { EntityAdminDashboardComponent };
218
222
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityAdminDashboardComponent, [{
219
223
  type: Component,
220
- args: [{ standalone: false, selector: 'mj-entity-admin-dashboard', template: "<div class=\"entity-admin-dashboard-container\">\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <span class=\"visible-entities-count\">{{ filteredEntities.length }} visible entities</span>\n </div>\n <div class=\"header-controls\">\n <button \n class=\"control-btn\" \n (click)=\"toggleFilterPanel()\" \n [class.active]=\"filterPanelVisible\"\n title=\"Toggle Filters\">\n <span class=\"fa-solid fa-filter\"></span>\n Filters\n </button>\n </div>\n </div>\n \n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n }\n \n @if (error) {\n <div class=\"error-container\">\n <p class=\"error-message\">{{ error }}</p>\n </div>\n }\n \n @if (!isLoading && !error) {\n <div class=\"dashboard-content\">\n <mj-erd-composite \n #erdComposite\n [isRefreshingERD]=\"isRefreshingERD\"\n (stateChange)=\"onStateChange($event)\"\n (userStateChange)=\"onUserStateChange($event)\"\n (entityOpened)=\"onEntityOpened($event)\"\n (openRecord)=\"onOpenRecord($event)\"\n >\n </mj-erd-composite>\n </div>\n }\n</div>", styles: ["/**\n * Entity Admin Dashboard Component - MJ Design Token Styled\n * Reference implementation for MJ design token usage\n */\n\n.entity-admin-dashboard-container {\n overflow: hidden;\n padding: var(--mj-space-2);\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-page);\n}\n\n/* Dashboard Header */\n.dashboard-header {\n margin-bottom: var(--mj-space-4);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.dashboard-header .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n}\n\n/* Badge for Visible Entities Count */\n.dashboard-header .visible-entities-count {\n display: inline-flex;\n align-items: center;\n padding: var(--mj-space-1-5) var(--mj-space-3);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-brand-on-accent);\n background: var(--mj-brand-accent);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-brand-accent-subtle);\n}\n\n.dashboard-header .header-controls {\n display: flex;\n gap: var(--mj-space-2);\n}\n\n/* Control Buttons */\n.dashboard-header .header-controls .control-btn {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2) var(--mj-space-4);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n transition: var(--mj-transition-base);\n}\n\n.dashboard-header .header-controls .control-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n.dashboard-header .header-controls .control-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-on-primary);\n}\n\n.dashboard-header .header-controls .control-btn:disabled {\n opacity: 0.38;\n cursor: not-allowed;\n}\n\n.dashboard-header .header-controls .control-btn:disabled:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.dashboard-header .header-controls .control-btn:focus-visible {\n outline: 2px solid var(--mj-brand-primary);\n outline-offset: 2px;\n}\n\n.dashboard-header .header-controls .control-btn .fa-solid {\n font-size: 14px;\n}\n\n/* Loading and Error Containers */\n.loading-container,\n.error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n flex: 1;\n border-radius: var(--mj-radius-lg);\n}\n\n.loading-container p,\n.error-container p {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-normal);\n color: var(--mj-text-secondary);\n}\n\n/* Error Message */\n.error-message {\n color: var(--mj-status-error-text);\n font-weight: var(--mj-font-medium);\n}\n\n/* Dashboard Content */\n.dashboard-content {\n overflow: hidden;\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n/* Loading Spinner */\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mj-space-4);\n}\n\n.loading-spinner {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: spin 1.5s linear infinite;\n}\n\n.spinner-ring:nth-child(1) {\n border-top-color: var(--mj-brand-primary);\n animation-delay: 0s;\n}\n\n.spinner-ring:nth-child(2) {\n border-top-color: var(--mj-brand-tertiary);\n animation-delay: 0.3s;\n transform: scale(0.8);\n}\n\n.spinner-ring:nth-child(3) {\n border-top-color: var(--mj-brand-accent);\n animation-delay: 0.6s;\n transform: scale(0.6);\n}\n\n.loading-text {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n text-align: center;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n"] }]
224
+ args: [{ standalone: false, selector: 'mj-entity-admin-dashboard', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Entity Admin\"\n Icon=\"fa-solid fa-database\"\n Subtitle=\"Browse and configure entity definitions\">\n <div meta>\n <mj-stat-badge [Count]=\"filteredEntities.length\" Label=\"visible entities\"></mj-stat-badge>\n </div>\n <div actions>\n <button\n mjButton\n [variant]=\"filterPanelVisible ? 'primary' : 'secondary'\"\n size=\"sm\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i> Filters\n </button>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n }\n\n @if (error) {\n <div class=\"error-container\">\n <p class=\"error-message\">{{ error }}</p>\n </div>\n }\n\n @if (!isLoading && !error) {\n <div class=\"dashboard-content\">\n <mj-erd-composite\n #erdComposite\n [isRefreshingERD]=\"isRefreshingERD\"\n (stateChange)=\"onStateChange($event)\"\n (userStateChange)=\"onUserStateChange($event)\"\n (entityOpened)=\"onEntityOpened($event)\"\n (openRecord)=\"onOpenRecord($event)\"\n >\n </mj-erd-composite>\n </div>\n }\n </mj-page-body>\n</mj-page-layout>", styles: ["/**\n * Entity Admin Dashboard Component - MJ Design Token Styled\n * Reference implementation for MJ design token usage\n */\n\n/* Loading and Error Containers */\n.loading-container,\n.error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-sunken);\n flex: 1;\n border-radius: var(--mj-radius-lg);\n}\n\n.loading-container p,\n.error-container p {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-normal);\n color: var(--mj-text-secondary);\n}\n\n/* Error Message */\n.error-message {\n color: var(--mj-status-error-text);\n font-weight: var(--mj-font-medium);\n}\n\n/* Dashboard Content */\n.dashboard-content {\n overflow: hidden;\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n/* Loading Spinner */\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mj-space-4);\n}\n\n.loading-spinner {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: spin 1.5s linear infinite;\n}\n\n.spinner-ring:nth-child(1) {\n border-top-color: var(--mj-brand-primary);\n animation-delay: 0s;\n}\n\n.spinner-ring:nth-child(2) {\n border-top-color: var(--mj-brand-tertiary);\n animation-delay: 0.3s;\n transform: scale(0.8);\n}\n\n.spinner-ring:nth-child(3) {\n border-top-color: var(--mj-brand-accent);\n animation-delay: 0.6s;\n transform: scale(0.6);\n}\n\n.loading-text {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n text-align: center;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n"] }]
221
225
  }], null, { erdComposite: [{
222
226
  type: ViewChild,
223
227
  args: ['erdComposite', { static: false }]
@@ -1 +1 @@
1
- {"version":3,"file":"entity-admin-dashboard.component.js","sourceRoot":"","sources":["../../src/EntityAdmin/entity-admin-dashboard.component.ts","../../src/EntityAdmin/entity-admin-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';\nimport { BaseDashboard } from '@memberjunction/ng-shared';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { EntityInfo, CompositeKey, Metadata } from '@memberjunction/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { ERDCompositeComponent, ERDCompositeState } from '@memberjunction/ng-entity-relationship-diagram';\nimport { ResourceData, MJUserSettingEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\n/** Settings key for ERD state persistence */\nconst ERD_SETTINGS_KEY = 'MJ.Admin.Entity.ERD';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-admin-dashboard',\n templateUrl: './entity-admin-dashboard.component.html',\n styleUrls: ['./entity-admin-dashboard.component.css']\n})\n@RegisterClass(BaseDashboard, 'EntityAdmin')\nexport class EntityAdminDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {\n @ViewChild('erdComposite', { static: false }) erdComposite!: ERDCompositeComponent;\n\n public isLoading = false;\n public isRefreshingERD = false;\n public loadingMessage = '';\n public error: string | null = null;\n\n // Filter panel visibility for header controls\n public filterPanelVisible = true;\n public selectedEntity: EntityInfo | null = null;\n public filteredEntities: EntityInfo[] = [];\n\n // State management\n private userStateChangeSubject = new Subject<ERDCompositeState>();\n private hasLoadedUserState = false;\n private metadata = this.ProviderToUse;\n private userSettingEntity: MJUserSettingEntity | null = null;\n\n ngAfterViewInit(): void {\n // Setup debounced state persistence to MJ: User Settings\n this.userStateChangeSubject.pipe(\n debounceTime(1000)\n ).subscribe(state => {\n this.saveStateToUserSettings(state);\n });\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return \"Entity Administration\"\n }\n\n override ngOnDestroy(): void {\n this.userStateChangeSubject.complete();\n super.ngOnDestroy();\n }\n\n protected initDashboard(): void {\n // Initialize dashboard - called by BaseDashboard\n }\n\n protected loadData(): void {\n // Data loading is handled by ERDCompositeComponent\n }\n\n public toggleFilterPanel(): void {\n this.filterPanelVisible = !this.filterPanelVisible;\n if (this.erdComposite) {\n this.erdComposite.onToggleFilterPanel();\n }\n }\n\n public onStateChange(state: ERDCompositeState): void {\n // Update local state to keep header controls in sync\n this.filterPanelVisible = state.filterPanelVisible;\n this.filteredEntities = this.erdComposite?.filteredEntities || [];\n\n if (state.selectedEntityId && this.erdComposite) {\n this.selectedEntity = this.erdComposite.entities.find(e => UUIDsEqual(e.ID, state.selectedEntityId)) || null;\n } else {\n this.selectedEntity = null;\n }\n\n // Load user state when data becomes available for the first time\n if (this.erdComposite?.isDataLoaded && !this.hasLoadedUserState) {\n this.hasLoadedUserState = true;\n this.loadStateFromUserSettings();\n }\n }\n\n public onUserStateChange(state: ERDCompositeState): void {\n // Queue state for debounced persistence\n this.userStateChangeSubject.next(state);\n }\n\n public onEntityOpened(entity: EntityInfo): void {\n this.openEntity(entity);\n }\n\n public onOpenRecord(event: {EntityName: string, RecordID: string}): void {\n this.OpenEntityRecord.emit({\n EntityName: event.EntityName,\n RecordPKey: new CompositeKey([{FieldName: 'ID', Value: event.RecordID}])\n });\n }\n\n public openEntity(entity: EntityInfo): void {\n this.Interaction.emit({\n type: 'openEntity',\n entity: entity,\n data: { entityId: entity.ID, entityName: entity.Name }\n });\n }\n\n /**\n * Load ERD state from MJ: User Settings entity using UserInfoEngine for cached access\n */\n private async loadStateFromUserSettings(): Promise<void> {\n try {\n const userId = this.metadata.CurrentUser?.ID;\n if (!userId) {\n this.NotifyLoadComplete();\n return;\n }\n\n const engine = UserInfoEngine.Instance;\n\n // Find setting from cached user settings\n const setting = engine.UserSettings.find(s => s.Setting === ERD_SETTINGS_KEY);\n\n if (setting) {\n this.userSettingEntity = setting;\n if (this.userSettingEntity.Value) {\n const savedState = JSON.parse(this.userSettingEntity.Value) as Partial<ERDCompositeState>;\n if (this.erdComposite) {\n this.erdComposite.loadUserState(savedState);\n }\n }\n }\n\n this.NotifyLoadComplete();\n } catch (error) {\n console.warn('Failed to load ERD state from User Settings:', error);\n this.NotifyLoadComplete();\n }\n }\n\n /**\n * Save ERD state to MJ: User Settings entity using UserInfoEngine for cached lookup\n */\n private async saveStateToUserSettings(state: ERDCompositeState): Promise<void> {\n try {\n const userId = this.metadata.CurrentUser?.ID;\n if (!userId) return;\n\n // Find existing setting from cached user settings if not already loaded\n if (!this.userSettingEntity) {\n const engine = UserInfoEngine.Instance;\n const setting = engine.UserSettings.find(s => s.Setting === ERD_SETTINGS_KEY);\n\n if (setting) {\n this.userSettingEntity = setting;\n } else {\n this.userSettingEntity = await this.metadata.GetEntityObject<MJUserSettingEntity>('MJ: User Settings');\n this.userSettingEntity.UserID = userId;\n this.userSettingEntity.Setting = ERD_SETTINGS_KEY;\n }\n }\n\n // Save the state as JSON\n this.userSettingEntity.Value = JSON.stringify(state);\n await this.userSettingEntity.Save();\n } catch (error) {\n console.warn('Failed to save ERD state to User Settings:', error);\n }\n }\n}\n","<div class=\"entity-admin-dashboard-container\">\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <span class=\"visible-entities-count\">{{ filteredEntities.length }} visible entities</span>\n </div>\n <div class=\"header-controls\">\n <button \n class=\"control-btn\" \n (click)=\"toggleFilterPanel()\" \n [class.active]=\"filterPanelVisible\"\n title=\"Toggle Filters\">\n <span class=\"fa-solid fa-filter\"></span>\n Filters\n </button>\n </div>\n </div>\n \n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n }\n \n @if (error) {\n <div class=\"error-container\">\n <p class=\"error-message\">{{ error }}</p>\n </div>\n }\n \n @if (!isLoading && !error) {\n <div class=\"dashboard-content\">\n <mj-erd-composite \n #erdComposite\n [isRefreshingERD]=\"isRefreshingERD\"\n (stateChange)=\"onStateChange($event)\"\n (userStateChange)=\"onUserStateChange($event)\"\n (entityOpened)=\"onEntityOpened($event)\"\n (openRecord)=\"onOpenRecord($event)\"\n >\n </mj-erd-composite>\n </div>\n }\n</div>"]}
1
+ {"version":3,"file":"entity-admin-dashboard.component.js","sourceRoot":"","sources":["../../src/EntityAdmin/entity-admin-dashboard.component.ts","../../src/EntityAdmin/entity-admin-dashboard.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAA4B,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAG,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAc,YAAY,EAAY,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAqC,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;;;;;ICc5F,8BAA+B;IAC7B,iCAA8D;IAChE,iBAAM;;;IADQ,cAAuB;IAAvB,4CAAuB;;;IAMnC,AADF,8BAA6B,YACF;IAAA,YAAW;IACtC,AADsC,iBAAI,EACpC;;;IADqB,eAAW;IAAX,kCAAW;;;;IAMpC,AADF,+BAA+B,8BAQ1B;IADD,AADA,AADA,AADA,8NAAe,4BAAqB,KAAC,yNAClB,gCAAyB,KAAC,mNAC7B,6BAAsB,KAAC,+MACzB,2BAAoB,KAAC;IAGvC,AADE,iBAAmB,EACf;;;IAPF,cAAmC;IAAnC,wDAAmC;;AD3B7C,6CAA6C;AAC7C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AASxC,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,aAAa;IAChB,YAAY,CAAyB;IAE5E,SAAS,GAAG,KAAK,CAAC;IAClB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,GAAG,EAAE,CAAC;IACpB,KAAK,GAAkB,IAAI,CAAC;IAEnC,8CAA8C;IACvC,kBAAkB,GAAG,IAAI,CAAC;IAC1B,cAAc,GAAsB,IAAI,CAAC;IACzC,gBAAgB,GAAiB,EAAE,CAAC;IAE3C,mBAAmB;IACX,sBAAsB,GAAG,IAAI,OAAO,EAAqB,CAAC;IAC1D,kBAAkB,GAAG,KAAK,CAAC;IAC3B,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;IAC9B,iBAAiB,GAA+B,IAAI,CAAC;IAE7D,eAAe;QACb,yDAAyD;QACzD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC9B,YAAY,CAAC,IAAI,CAAC,CACnB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC7C,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAEQ,WAAW;QAClB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,aAAa;QACrB,iDAAiD;IACnD,CAAC;IAES,QAAQ;QAChB,mDAAmD;IACrD,CAAC;IAEM,iBAAiB;QACtB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,KAAwB;QAC3C,qDAAqD;QACrD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,gBAAgB,IAAI,EAAE,CAAC;QAElE,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,YAAY,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAEM,iBAAiB,CAAC,KAAwB;QAC/C,wCAAwC;QACxC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,MAAkB;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAEM,YAAY,CAAC,KAA6C;QAC/D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,IAAI,YAAY,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC,CAAC;SACzE,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,MAAkB;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;YAEvC,yCAAyC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC;YAE9E,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;gBACjC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAA+B,CAAC;oBAC1F,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,KAAwB;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,wEAAwE;YACxE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC;gBAE9E,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAsB,mBAAmB,CAAC,CAAC;oBACvG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,gBAAgB,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;iSA3JU,6BAA6B,yBAA7B,6BAA6B;6DAA7B,6BAA6B;;;;;;YCftC,AAJF,AADF,sCAAgB,wBAIuC,aACzC;YACR,mCAA0F;YAC5F,iBAAM;YAEJ,AADF,8BAAa,gBAMc;YADvB,0GAAS,uBAAmB,IAAC;YAE7B,uBAAkC;YAAC,yBACrC;YAEJ,AADE,AADE,iBAAS,EACL,EACS;YAEjB,uCAA8C;YAC5C,+FAAiB;YAMjB,iGAAa;YAMb,kGAA4B;YAchC,AADE,iBAAe,EACA;;YAzCI,eAAiC;YAAjC,mDAAiC;YAK9C,eAAwD;YAAxD,0EAAwD;YAShD,eAAa;YAAC,AAAd,2BAAa,kBAAkB;YAC3C,cAIC;YAJD,wCAIC;YAED,cAIC;YAJD,qCAIC;YAED,cAYC;YAZD,wDAYC;;;ADzBQ,6BAA6B;IADzC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;GAC/B,6BAA6B,CA4JzC;;iFA5JY,6BAA6B;cAPzC,SAAS;6BACI,KAAK,YACP,2BAA2B;;kBAMpC,SAAS;mBAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;kFADjC,6BAA6B","sourcesContent":["import { Component, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';\nimport { BaseDashboard } from '@memberjunction/ng-shared';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { EntityInfo, CompositeKey, Metadata } from '@memberjunction/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { ERDCompositeComponent, ERDCompositeState } from '@memberjunction/ng-entity-relationship-diagram';\nimport { ResourceData, MJUserSettingEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\n/** Settings key for ERD state persistence */\nconst ERD_SETTINGS_KEY = 'MJ.Admin.Entity.ERD';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-admin-dashboard',\n templateUrl: './entity-admin-dashboard.component.html',\n styleUrls: ['./entity-admin-dashboard.component.css']\n})\n@RegisterClass(BaseDashboard, 'EntityAdmin')\nexport class EntityAdminDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {\n @ViewChild('erdComposite', { static: false }) erdComposite!: ERDCompositeComponent;\n\n public isLoading = false;\n public isRefreshingERD = false;\n public loadingMessage = '';\n public error: string | null = null;\n\n // Filter panel visibility for header controls\n public filterPanelVisible = true;\n public selectedEntity: EntityInfo | null = null;\n public filteredEntities: EntityInfo[] = [];\n\n // State management\n private userStateChangeSubject = new Subject<ERDCompositeState>();\n private hasLoadedUserState = false;\n private metadata = this.ProviderToUse;\n private userSettingEntity: MJUserSettingEntity | null = null;\n\n ngAfterViewInit(): void {\n // Setup debounced state persistence to MJ: User Settings\n this.userStateChangeSubject.pipe(\n debounceTime(1000)\n ).subscribe(state => {\n this.saveStateToUserSettings(state);\n });\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return \"Entity Administration\"\n }\n\n override ngOnDestroy(): void {\n this.userStateChangeSubject.complete();\n super.ngOnDestroy();\n }\n\n protected initDashboard(): void {\n // Initialize dashboard - called by BaseDashboard\n }\n\n protected loadData(): void {\n // Data loading is handled by ERDCompositeComponent\n }\n\n public toggleFilterPanel(): void {\n this.filterPanelVisible = !this.filterPanelVisible;\n if (this.erdComposite) {\n this.erdComposite.onToggleFilterPanel();\n }\n }\n\n public onStateChange(state: ERDCompositeState): void {\n // Update local state to keep header controls in sync\n this.filterPanelVisible = state.filterPanelVisible;\n this.filteredEntities = this.erdComposite?.filteredEntities || [];\n\n if (state.selectedEntityId && this.erdComposite) {\n this.selectedEntity = this.erdComposite.entities.find(e => UUIDsEqual(e.ID, state.selectedEntityId)) || null;\n } else {\n this.selectedEntity = null;\n }\n\n // Load user state when data becomes available for the first time\n if (this.erdComposite?.isDataLoaded && !this.hasLoadedUserState) {\n this.hasLoadedUserState = true;\n this.loadStateFromUserSettings();\n }\n }\n\n public onUserStateChange(state: ERDCompositeState): void {\n // Queue state for debounced persistence\n this.userStateChangeSubject.next(state);\n }\n\n public onEntityOpened(entity: EntityInfo): void {\n this.openEntity(entity);\n }\n\n public onOpenRecord(event: {EntityName: string, RecordID: string}): void {\n this.OpenEntityRecord.emit({\n EntityName: event.EntityName,\n RecordPKey: new CompositeKey([{FieldName: 'ID', Value: event.RecordID}])\n });\n }\n\n public openEntity(entity: EntityInfo): void {\n this.Interaction.emit({\n type: 'openEntity',\n entity: entity,\n data: { entityId: entity.ID, entityName: entity.Name }\n });\n }\n\n /**\n * Load ERD state from MJ: User Settings entity using UserInfoEngine for cached access\n */\n private async loadStateFromUserSettings(): Promise<void> {\n try {\n const userId = this.metadata.CurrentUser?.ID;\n if (!userId) {\n this.NotifyLoadComplete();\n return;\n }\n\n const engine = UserInfoEngine.Instance;\n\n // Find setting from cached user settings\n const setting = engine.UserSettings.find(s => s.Setting === ERD_SETTINGS_KEY);\n\n if (setting) {\n this.userSettingEntity = setting;\n if (this.userSettingEntity.Value) {\n const savedState = JSON.parse(this.userSettingEntity.Value) as Partial<ERDCompositeState>;\n if (this.erdComposite) {\n this.erdComposite.loadUserState(savedState);\n }\n }\n }\n\n this.NotifyLoadComplete();\n } catch (error) {\n console.warn('Failed to load ERD state from User Settings:', error);\n this.NotifyLoadComplete();\n }\n }\n\n /**\n * Save ERD state to MJ: User Settings entity using UserInfoEngine for cached lookup\n */\n private async saveStateToUserSettings(state: ERDCompositeState): Promise<void> {\n try {\n const userId = this.metadata.CurrentUser?.ID;\n if (!userId) return;\n\n // Find existing setting from cached user settings if not already loaded\n if (!this.userSettingEntity) {\n const engine = UserInfoEngine.Instance;\n const setting = engine.UserSettings.find(s => s.Setting === ERD_SETTINGS_KEY);\n\n if (setting) {\n this.userSettingEntity = setting;\n } else {\n this.userSettingEntity = await this.metadata.GetEntityObject<MJUserSettingEntity>('MJ: User Settings');\n this.userSettingEntity.UserID = userId;\n this.userSettingEntity.Setting = ERD_SETTINGS_KEY;\n }\n }\n\n // Save the state as JSON\n this.userSettingEntity.Value = JSON.stringify(state);\n await this.userSettingEntity.Save();\n } catch (error) {\n console.warn('Failed to save ERD state to User Settings:', error);\n }\n }\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Entity Admin\"\n Icon=\"fa-solid fa-database\"\n Subtitle=\"Browse and configure entity definitions\">\n <div meta>\n <mj-stat-badge [Count]=\"filteredEntities.length\" Label=\"visible entities\"></mj-stat-badge>\n </div>\n <div actions>\n <button\n mjButton\n [variant]=\"filterPanelVisible ? 'primary' : 'secondary'\"\n size=\"sm\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i> Filters\n </button>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n }\n\n @if (error) {\n <div class=\"error-container\">\n <p class=\"error-message\">{{ error }}</p>\n </div>\n }\n\n @if (!isLoading && !error) {\n <div class=\"dashboard-content\">\n <mj-erd-composite\n #erdComposite\n [isRefreshingERD]=\"isRefreshingERD\"\n (stateChange)=\"onStateChange($event)\"\n (userStateChange)=\"onUserStateChange($event)\"\n (entityOpened)=\"onEntityOpened($event)\"\n (openRecord)=\"onOpenRecord($event)\"\n >\n </mj-erd-composite>\n </div>\n }\n </mj-page-body>\n</mj-page-layout>"]}
@@ -53,6 +53,7 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
53
53
  unreadNotifications: MJUserNotificationEntity[];
54
54
  notificationsLoading: boolean;
55
55
  sidebarOpen: boolean;
56
+ HidePinEmptyState: boolean;
56
57
  PinnedItems: HomeAppPinnedItem[];
57
58
  UngroupedPins: HomeAppPinnedItem[];
58
59
  PinGroups: string[];
@@ -251,6 +252,11 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
251
252
  * Toggle edit mode for pins
252
253
  */
253
254
  ToggleEditMode(): void;
255
+ /**
256
+ * Permanently hide the "No pinned items yet" empty state for this user.
257
+ * Persisted in UserSettings via UserInfoEngine.
258
+ */
259
+ DismissPinEmptyState(): void;
254
260
  /**
255
261
  * Remove a pin
256
262
  */
@@ -1 +1 @@
1
- {"version":3,"file":"home-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/Home/home-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"home-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/Home/home-dashboard.component.ts"],"names":[],"mappings":"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"}