@memberjunction/ng-dashboards 5.22.0 → 5.24.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 (245) hide show
  1. package/README.md +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 +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +947 -64
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7645 -430
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +285 -6
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2454 -277
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +20 -2
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +419 -232
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  27. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  28. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  29. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  30. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  31. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  32. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  33. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  34. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  35. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  36. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  37. package/dist/Actions/components/actions-list-view.component.js +82 -96
  38. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  39. package/dist/Actions/components/actions-overview.component.js +130 -134
  40. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  41. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  42. package/dist/Actions/components/categories-list-view.component.js +40 -46
  43. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  44. package/dist/Actions/components/code-management.component.js +2 -2
  45. package/dist/Actions/components/code-management.component.js.map +1 -1
  46. package/dist/Actions/components/entity-integration.component.js +2 -2
  47. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  49. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  50. package/dist/Actions/components/executions-list-view.component.js +2 -2
  51. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  53. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  54. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  55. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  56. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  57. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  58. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  59. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  61. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  63. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  65. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  66. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  67. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  68. package/dist/Actions/components/security-permissions.component.js +2 -2
  69. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  70. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  71. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  72. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  73. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  74. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  75. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  76. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  77. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  78. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  79. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  81. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  83. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  84. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  88. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  96. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  98. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  100. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  102. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  104. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  105. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  106. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  107. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  108. package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -17
  109. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  110. package/dist/Home/home-dashboard.component.js +4 -4
  111. package/dist/Home/home-dashboard.component.js.map +1 -1
  112. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  113. package/dist/Integration/components/activity/activity.component.js +1 -0
  114. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  115. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  116. package/dist/Integration/components/connections/connections.component.js +5 -4
  117. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  118. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  119. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +247 -259
  120. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  121. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  122. package/dist/Integration/components/overview/overview.component.js +1 -0
  123. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  124. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  125. package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
  126. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  127. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  128. package/dist/Integration/components/schedules/schedules.component.js +1 -0
  129. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  130. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  131. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  132. package/dist/Integration/integration.module.d.ts +6 -10
  133. package/dist/Integration/integration.module.d.ts.map +1 -1
  134. package/dist/Integration/integration.module.js +12 -20
  135. package/dist/Integration/integration.module.js.map +1 -1
  136. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +411 -0
  137. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
  138. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4266 -0
  139. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
  140. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +140 -0
  141. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  142. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +780 -0
  143. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  144. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +8 -2
  145. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  146. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +246 -195
  147. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  148. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +75 -0
  149. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
  150. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +601 -0
  151. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
  152. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +93 -12
  153. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -1
  154. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +637 -107
  155. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -1
  156. package/dist/KnowledgeHub/index.d.ts +3 -0
  157. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  158. package/dist/KnowledgeHub/index.js +3 -0
  159. package/dist/KnowledgeHub/index.js.map +1 -1
  160. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  161. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  162. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  163. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  164. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  165. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  166. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  167. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  168. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  169. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  170. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  171. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  172. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  173. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  174. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  175. package/dist/MCP/mcp-dashboard.component.js +2 -2
  176. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  177. package/dist/MCP/mcp.module.d.ts +6 -9
  178. package/dist/MCP/mcp.module.d.ts.map +1 -1
  179. package/dist/MCP/mcp.module.js +20 -22
  180. package/dist/MCP/mcp.module.js.map +1 -1
  181. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  182. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  183. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  184. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  185. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  186. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  187. package/dist/Testing/testing-dashboard.component.js +9 -10
  188. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  189. package/dist/__tests__/analytics-resource.test.d.ts +2 -0
  190. package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
  191. package/dist/__tests__/analytics-resource.test.js +181 -0
  192. package/dist/__tests__/analytics-resource.test.js.map +1 -0
  193. package/dist/__tests__/scheduling.test.d.ts +2 -0
  194. package/dist/__tests__/scheduling.test.d.ts.map +1 -0
  195. package/dist/__tests__/scheduling.test.js +205 -0
  196. package/dist/__tests__/scheduling.test.js.map +1 -0
  197. package/dist/actions-dashboards.module.d.ts +8 -13
  198. package/dist/actions-dashboards.module.d.ts.map +1 -1
  199. package/dist/actions-dashboards.module.js +6 -27
  200. package/dist/actions-dashboards.module.js.map +1 -1
  201. package/dist/ai-dashboards.module.d.ts +20 -20
  202. package/dist/ai-dashboards.module.d.ts.map +1 -1
  203. package/dist/ai-dashboards.module.js +43 -44
  204. package/dist/ai-dashboards.module.js.map +1 -1
  205. package/dist/communication-dashboards.module.d.ts +4 -8
  206. package/dist/communication-dashboards.module.d.ts.map +1 -1
  207. package/dist/communication-dashboards.module.js +0 -19
  208. package/dist/communication-dashboards.module.js.map +1 -1
  209. package/dist/component-studio-dashboards.module.d.ts +7 -11
  210. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  211. package/dist/component-studio-dashboards.module.js +22 -34
  212. package/dist/component-studio-dashboards.module.js.map +1 -1
  213. package/dist/core-dashboards.module.d.ts +12 -18
  214. package/dist/core-dashboards.module.d.ts.map +1 -1
  215. package/dist/core-dashboards.module.js +15 -31
  216. package/dist/core-dashboards.module.js.map +1 -1
  217. package/dist/credentials-dashboards.module.d.ts +5 -8
  218. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  219. package/dist/credentials-dashboards.module.js +3 -19
  220. package/dist/credentials-dashboards.module.js.map +1 -1
  221. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  222. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  223. package/dist/data-explorer-dashboards.module.js +0 -27
  224. package/dist/data-explorer-dashboards.module.js.map +1 -1
  225. package/dist/lists-dashboards.module.d.ts +5 -8
  226. package/dist/lists-dashboards.module.d.ts.map +1 -1
  227. package/dist/lists-dashboards.module.js +3 -19
  228. package/dist/lists-dashboards.module.js.map +1 -1
  229. package/dist/public-api.d.ts +2 -0
  230. package/dist/public-api.d.ts.map +1 -1
  231. package/dist/public-api.js +2 -0
  232. package/dist/public-api.js.map +1 -1
  233. package/dist/scheduling-dashboards.module.d.ts +6 -10
  234. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  235. package/dist/scheduling-dashboards.module.js +3 -23
  236. package/dist/scheduling-dashboards.module.js.map +1 -1
  237. package/dist/shared/entity-field-display.d.ts +44 -0
  238. package/dist/shared/entity-field-display.d.ts.map +1 -0
  239. package/dist/shared/entity-field-display.js +118 -0
  240. package/dist/shared/entity-field-display.js.map +1 -0
  241. package/dist/testing-dashboards.module.d.ts +7 -13
  242. package/dist/testing-dashboards.module.d.ts.map +1 -1
  243. package/dist/testing-dashboards.module.js +0 -27
  244. package/dist/testing-dashboards.module.js.map +1 -1
  245. package/package.json +48 -55
@@ -0,0 +1,118 @@
1
+ import { Metadata } from '@memberjunction/core';
2
+ /** Fields that should never appear in display cards/panels */
3
+ const INTERNAL_METADATA_KEYS = new Set([
4
+ 'Entity', 'EntityIcon', 'RecordID', 'TemplateID',
5
+ '__mj_UpdatedAt', '__mj_CreatedAt', 'Name',
6
+ ]);
7
+ /**
8
+ * Sorts and prioritizes metadata fields for display using MJ entity field metadata.
9
+ *
10
+ * Priority order:
11
+ * 1. IsNameField fields first (the record's display name)
12
+ * 2. DefaultInView fields next, sorted by Sequence
13
+ * 3. All other fields, sorted by Sequence
14
+ *
15
+ * Internal/system fields (Entity, EntityIcon, RecordID, TemplateID, timestamps) are excluded.
16
+ * Empty/null values are excluded.
17
+ *
18
+ * @param entityName - The entity name (e.g., "Members") for metadata lookup
19
+ * @param metadata - The raw metadata object (Record<string, unknown>) from vector DB or similar
20
+ * @returns Sorted array of DisplayFieldEntry objects ready for rendering
21
+ */
22
+ export function PrioritizeFieldsForDisplay(entityName, metadata) {
23
+ const entityInfo = FindEntityInfo(entityName);
24
+ const fieldMap = BuildFieldMap(entityInfo);
25
+ const entries = [];
26
+ for (const [key, value] of Object.entries(metadata)) {
27
+ if (INTERNAL_METADATA_KEYS.has(key))
28
+ continue;
29
+ if (value == null || String(value).trim() === '')
30
+ continue;
31
+ const fieldInfo = fieldMap.get(key);
32
+ entries.push({
33
+ Key: key,
34
+ DisplayName: fieldInfo?.DisplayNameOrName ?? FormatFieldName(key),
35
+ Value: value,
36
+ IsDefaultInView: fieldInfo?.DefaultInView ?? false,
37
+ IsNameField: fieldInfo?.IsNameField ?? false,
38
+ Sequence: fieldInfo?.Sequence ?? 9999,
39
+ });
40
+ }
41
+ return entries.sort(CompareFields);
42
+ }
43
+ /**
44
+ * Returns only the DefaultInView fields (the "important" fields for compact cards).
45
+ * Falls back to first 4 fields if no DefaultInView fields exist.
46
+ */
47
+ export function GetPrimaryDisplayFields(entityName, metadata, maxFields = 4) {
48
+ const all = PrioritizeFieldsForDisplay(entityName, metadata);
49
+ const defaultInView = all.filter(f => f.IsDefaultInView);
50
+ if (defaultInView.length > 0) {
51
+ return defaultInView.slice(0, maxFields);
52
+ }
53
+ // Fallback: return first N non-name fields
54
+ return all.filter(f => !f.IsNameField).slice(0, maxFields);
55
+ }
56
+ /**
57
+ * Returns the record's display name from metadata using IsNameField.
58
+ * Falls back to the 'Name' key or first non-empty string value.
59
+ */
60
+ export function GetRecordDisplayName(entityName, metadata) {
61
+ const entityInfo = FindEntityInfo(entityName);
62
+ if (entityInfo) {
63
+ const nameField = entityInfo.Fields.find(f => f.IsNameField);
64
+ if (nameField && metadata[nameField.Name] != null) {
65
+ return String(metadata[nameField.Name]);
66
+ }
67
+ }
68
+ // Fallbacks
69
+ if (metadata['Name'] != null)
70
+ return String(metadata['Name']);
71
+ // Return first non-empty string value
72
+ for (const value of Object.values(metadata)) {
73
+ if (typeof value === 'string' && value.trim().length > 0) {
74
+ return value;
75
+ }
76
+ }
77
+ return 'Unknown';
78
+ }
79
+ // ─── Internal Helpers ─────────────────────────────────────────────────────
80
+ function FindEntityInfo(entityName) {
81
+ try {
82
+ const md = new Metadata();
83
+ return md.Entities.find(e => e.Name === entityName) ?? null;
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ function BuildFieldMap(entityInfo) {
90
+ const map = new Map();
91
+ if (!entityInfo)
92
+ return map;
93
+ for (const field of entityInfo.Fields) {
94
+ map.set(field.Name, field);
95
+ }
96
+ return map;
97
+ }
98
+ function CompareFields(a, b) {
99
+ // 1. Name fields first
100
+ if (a.IsNameField !== b.IsNameField)
101
+ return a.IsNameField ? -1 : 1;
102
+ // 2. DefaultInView fields before non-default
103
+ if (a.IsDefaultInView !== b.IsDefaultInView)
104
+ return a.IsDefaultInView ? -1 : 1;
105
+ // 3. Sort by Sequence within each group
106
+ return a.Sequence - b.Sequence;
107
+ }
108
+ /**
109
+ * Convert a PascalCase or camelCase field name to a human-readable display name.
110
+ * E.g., "FirstName" -> "First Name", "contentTypeID" -> "Content Type ID"
111
+ */
112
+ function FormatFieldName(key) {
113
+ return key
114
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
115
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
116
+ .replace(/^./, c => c.toUpperCase());
117
+ }
118
+ //# sourceMappingURL=entity-field-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-field-display.js","sourceRoot":"","sources":["../../src/shared/entity-field-display.ts"],"names":[],"mappings":"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","sourcesContent":["import { Metadata, EntityFieldInfo, EntityInfo } from '@memberjunction/core';\n\n/**\n * A single field entry prepared for display in cards, tooltips, and detail panels.\n */\nexport interface DisplayFieldEntry {\n /** The raw field name from metadata (e.g., \"FirstName\") */\n Key: string;\n /** The human-readable display name (e.g., \"First Name\") */\n DisplayName: string;\n /** The field value */\n Value: unknown;\n /** Whether this field is marked DefaultInView on the entity */\n IsDefaultInView: boolean;\n /** Whether this is the entity's name field */\n IsNameField: boolean;\n /** The field's display sequence from entity metadata */\n Sequence: number;\n}\n\n/** Fields that should never appear in display cards/panels */\nconst INTERNAL_METADATA_KEYS = new Set([\n 'Entity', 'EntityIcon', 'RecordID', 'TemplateID',\n '__mj_UpdatedAt', '__mj_CreatedAt', 'Name',\n]);\n\n/**\n * Sorts and prioritizes metadata fields for display using MJ entity field metadata.\n *\n * Priority order:\n * 1. IsNameField fields first (the record's display name)\n * 2. DefaultInView fields next, sorted by Sequence\n * 3. All other fields, sorted by Sequence\n *\n * Internal/system fields (Entity, EntityIcon, RecordID, TemplateID, timestamps) are excluded.\n * Empty/null values are excluded.\n *\n * @param entityName - The entity name (e.g., \"Members\") for metadata lookup\n * @param metadata - The raw metadata object (Record<string, unknown>) from vector DB or similar\n * @returns Sorted array of DisplayFieldEntry objects ready for rendering\n */\nexport function PrioritizeFieldsForDisplay(\n entityName: string,\n metadata: Record<string, unknown>\n): DisplayFieldEntry[] {\n const entityInfo = FindEntityInfo(entityName);\n const fieldMap = BuildFieldMap(entityInfo);\n\n const entries: DisplayFieldEntry[] = [];\n for (const [key, value] of Object.entries(metadata)) {\n if (INTERNAL_METADATA_KEYS.has(key)) continue;\n if (value == null || String(value).trim() === '') continue;\n\n const fieldInfo = fieldMap.get(key);\n entries.push({\n Key: key,\n DisplayName: fieldInfo?.DisplayNameOrName ?? FormatFieldName(key),\n Value: value,\n IsDefaultInView: fieldInfo?.DefaultInView ?? false,\n IsNameField: fieldInfo?.IsNameField ?? false,\n Sequence: fieldInfo?.Sequence ?? 9999,\n });\n }\n\n return entries.sort(CompareFields);\n}\n\n/**\n * Returns only the DefaultInView fields (the \"important\" fields for compact cards).\n * Falls back to first 4 fields if no DefaultInView fields exist.\n */\nexport function GetPrimaryDisplayFields(\n entityName: string,\n metadata: Record<string, unknown>,\n maxFields: number = 4\n): DisplayFieldEntry[] {\n const all = PrioritizeFieldsForDisplay(entityName, metadata);\n const defaultInView = all.filter(f => f.IsDefaultInView);\n if (defaultInView.length > 0) {\n return defaultInView.slice(0, maxFields);\n }\n // Fallback: return first N non-name fields\n return all.filter(f => !f.IsNameField).slice(0, maxFields);\n}\n\n/**\n * Returns the record's display name from metadata using IsNameField.\n * Falls back to the 'Name' key or first non-empty string value.\n */\nexport function GetRecordDisplayName(\n entityName: string,\n metadata: Record<string, unknown>\n): string {\n const entityInfo = FindEntityInfo(entityName);\n if (entityInfo) {\n const nameField = entityInfo.Fields.find(f => f.IsNameField);\n if (nameField && metadata[nameField.Name] != null) {\n return String(metadata[nameField.Name]);\n }\n }\n // Fallbacks\n if (metadata['Name'] != null) return String(metadata['Name']);\n // Return first non-empty string value\n for (const value of Object.values(metadata)) {\n if (typeof value === 'string' && value.trim().length > 0) {\n return value;\n }\n }\n return 'Unknown';\n}\n\n// ─── Internal Helpers ─────────────────────────────────────────────────────\n\nfunction FindEntityInfo(entityName: string): EntityInfo | null {\n try {\n const md = new Metadata();\n return md.Entities.find(e => e.Name === entityName) ?? null;\n } catch {\n return null;\n }\n}\n\nfunction BuildFieldMap(entityInfo: EntityInfo | null): Map<string, EntityFieldInfo> {\n const map = new Map<string, EntityFieldInfo>();\n if (!entityInfo) return map;\n for (const field of entityInfo.Fields) {\n map.set(field.Name, field);\n }\n return map;\n}\n\nfunction CompareFields(a: DisplayFieldEntry, b: DisplayFieldEntry): number {\n // 1. Name fields first\n if (a.IsNameField !== b.IsNameField) return a.IsNameField ? -1 : 1;\n // 2. DefaultInView fields before non-default\n if (a.IsDefaultInView !== b.IsDefaultInView) return a.IsDefaultInView ? -1 : 1;\n // 3. Sort by Sequence within each group\n return a.Sequence - b.Sequence;\n}\n\n/**\n * Convert a PascalCase or camelCase field name to a human-readable display name.\n * E.g., \"FirstName\" -> \"First Name\", \"contentTypeID\" -> \"Content Type ID\"\n */\nfunction FormatFieldName(key: string): string {\n return key\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .replace(/^./, c => c.toUpperCase());\n}\n"]}
@@ -15,25 +15,19 @@ import * as i13 from "./Testing/components/widgets/oracle-breakdown-table.compon
15
15
  import * as i14 from "./Testing/components/widgets/test-run-detail-panel.component";
16
16
  import * as i15 from "@angular/common";
17
17
  import * as i16 from "@angular/forms";
18
- import * as i17 from "@progress/kendo-angular-buttons";
19
- import * as i18 from "@progress/kendo-angular-grid";
20
- import * as i19 from "@progress/kendo-angular-dropdowns";
21
- import * as i20 from "@progress/kendo-angular-inputs";
22
- import * as i21 from "@progress/kendo-angular-dialog";
23
- import * as i22 from "@progress/kendo-angular-layout";
24
- import * as i23 from "@memberjunction/ng-container-directives";
25
- import * as i24 from "@memberjunction/ng-testing";
26
- import * as i25 from "@memberjunction/ng-versions";
27
- import * as i26 from "@memberjunction/ng-shared-generic";
28
- import * as i27 from "./shared/shared-dashboard-widgets.module";
29
- import * as i28 from "./shared/shared-pipes.module";
18
+ import * as i17 from "@memberjunction/ng-container-directives";
19
+ import * as i18 from "@memberjunction/ng-testing";
20
+ import * as i19 from "@memberjunction/ng-versions";
21
+ import * as i20 from "@memberjunction/ng-shared-generic";
22
+ import * as i21 from "./shared/shared-dashboard-widgets.module";
23
+ import * as i22 from "./shared/shared-pipes.module";
30
24
  /**
31
25
  * TestingDashboardsModule — Testing feature area: dashboard tabs, runs,
32
26
  * analytics, review, explorer, and instrumentation widgets.
33
27
  */
34
28
  export declare class TestingDashboardsModule {
35
29
  static ɵfac: i0.ɵɵFactoryDeclaration<TestingDashboardsModule, never>;
36
- static ɵmod: i0.ɵɵNgModuleDeclaration<TestingDashboardsModule, [typeof i1.TestingDashboardComponent, typeof i2.TestingDashboardTabComponent, typeof i3.TestingRunsComponent, typeof i4.TestingAnalyticsComponent, typeof i5.TestingReviewComponent, typeof i6.TestingDashboardTabResourceComponent, typeof i7.TestingRunsResourceComponent, typeof i8.TestingAnalyticsResourceComponent, typeof i9.TestingReviewResourceComponent, typeof i10.TestingExplorerComponent, typeof i11.TestingExplorerResourceComponent, typeof i12.SuiteTreeComponent, typeof i12.SuiteTreeNodeComponent, typeof i13.OracleBreakdownTableComponent, typeof i14.TestRunDetailPanelComponent], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i16.ReactiveFormsModule, typeof i17.ButtonsModule, typeof i18.GridModule, typeof i19.DropDownsModule, typeof i20.InputsModule, typeof i21.DialogsModule, typeof i21.WindowModule, typeof i22.TabStripModule, typeof i23.ContainerDirectivesModule, typeof i24.TestingModule, typeof i25.VersionsModule, typeof i26.SharedGenericModule, typeof i27.SharedDashboardWidgetsModule, typeof i28.SharedPipesModule], [typeof i1.TestingDashboardComponent, typeof i6.TestingDashboardTabResourceComponent, typeof i7.TestingRunsResourceComponent, typeof i8.TestingAnalyticsResourceComponent, typeof i9.TestingReviewResourceComponent, typeof i10.TestingExplorerComponent, typeof i11.TestingExplorerResourceComponent, typeof i27.SharedDashboardWidgetsModule]>;
30
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TestingDashboardsModule, [typeof i1.TestingDashboardComponent, typeof i2.TestingDashboardTabComponent, typeof i3.TestingRunsComponent, typeof i4.TestingAnalyticsComponent, typeof i5.TestingReviewComponent, typeof i6.TestingDashboardTabResourceComponent, typeof i7.TestingRunsResourceComponent, typeof i8.TestingAnalyticsResourceComponent, typeof i9.TestingReviewResourceComponent, typeof i10.TestingExplorerComponent, typeof i11.TestingExplorerResourceComponent, typeof i12.SuiteTreeComponent, typeof i12.SuiteTreeNodeComponent, typeof i13.OracleBreakdownTableComponent, typeof i14.TestRunDetailPanelComponent], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i16.ReactiveFormsModule, typeof i17.ContainerDirectivesModule, typeof i18.TestingModule, typeof i19.VersionsModule, typeof i20.SharedGenericModule, typeof i21.SharedDashboardWidgetsModule, typeof i22.SharedPipesModule], [typeof i1.TestingDashboardComponent, typeof i6.TestingDashboardTabResourceComponent, typeof i7.TestingRunsResourceComponent, typeof i8.TestingAnalyticsResourceComponent, typeof i9.TestingReviewResourceComponent, typeof i10.TestingExplorerComponent, typeof i11.TestingExplorerResourceComponent, typeof i21.SharedDashboardWidgetsModule]>;
37
31
  static ɵinj: i0.ɵɵInjectorDeclaration<TestingDashboardsModule>;
38
32
  }
39
33
  //# sourceMappingURL=testing-dashboards.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing-dashboards.module.d.ts","sourceRoot":"","sources":["../src/testing-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA;;;GAGG;AACH,qBAkDa,uBAAuB;yCAAvB,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAAI"}
1
+ {"version":3,"file":"testing-dashboards.module.d.ts","sourceRoot":"","sources":["../src/testing-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA2BA;;;GAGG;AACH,qBA2Ca,uBAAuB;yCAAvB,uBAAuB;0CAAvB,uBAAuB;0CAAvB,uBAAuB;CAAI"}
@@ -1,12 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { ButtonsModule } from '@progress/kendo-angular-buttons';
5
- import { GridModule } from '@progress/kendo-angular-grid';
6
- import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
7
- import { InputsModule } from '@progress/kendo-angular-inputs';
8
- import { DialogsModule, WindowModule } from '@progress/kendo-angular-dialog';
9
- import { TabStripModule } from '@progress/kendo-angular-layout';
10
4
  import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
11
5
  import { TestingModule } from '@memberjunction/ng-testing';
12
6
  import { VersionsModule } from '@memberjunction/ng-versions';
@@ -42,13 +36,6 @@ export class TestingDashboardsModule {
42
36
  ], imports: [CommonModule,
43
37
  FormsModule,
44
38
  ReactiveFormsModule,
45
- ButtonsModule,
46
- GridModule,
47
- DropDownsModule,
48
- InputsModule,
49
- DialogsModule,
50
- WindowModule,
51
- TabStripModule,
52
39
  ContainerDirectivesModule,
53
40
  TestingModule,
54
41
  VersionsModule,
@@ -80,13 +67,6 @@ export class TestingDashboardsModule {
80
67
  CommonModule,
81
68
  FormsModule,
82
69
  ReactiveFormsModule,
83
- ButtonsModule,
84
- GridModule,
85
- DropDownsModule,
86
- InputsModule,
87
- DialogsModule,
88
- WindowModule,
89
- TabStripModule,
90
70
  ContainerDirectivesModule,
91
71
  TestingModule,
92
72
  VersionsModule,
@@ -126,13 +106,6 @@ export class TestingDashboardsModule {
126
106
  TestRunDetailPanelComponent], imports: [CommonModule,
127
107
  FormsModule,
128
108
  ReactiveFormsModule,
129
- ButtonsModule,
130
- GridModule,
131
- DropDownsModule,
132
- InputsModule,
133
- DialogsModule,
134
- WindowModule,
135
- TabStripModule,
136
109
  ContainerDirectivesModule,
137
110
  TestingModule,
138
111
  VersionsModule,
@@ -1 +1 @@
1
- {"version":3,"file":"testing-dashboards.module.js","sourceRoot":"","sources":["../src/testing-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { DialogsModule, WindowModule } from '@progress/kendo-angular-dialog';\nimport { TabStripModule } from '@progress/kendo-angular-layout';\nimport { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';\nimport { TestingModule } from '@memberjunction/ng-testing';\nimport { VersionsModule } from '@memberjunction/ng-versions';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { SharedDashboardWidgetsModule } from './shared/shared-dashboard-widgets.module';\nimport { SharedPipesModule } from './shared/shared-pipes.module';\n\n// Testing Components\nimport { TestingDashboardComponent } from './Testing/testing-dashboard.component';\nimport { TestingDashboardTabComponent } from './Testing/components/testing-dashboard-tab.component';\nimport { TestingRunsComponent } from './Testing/components/testing-runs.component';\nimport { TestingAnalyticsComponent } from './Testing/components/testing-analytics.component';\nimport { TestingReviewComponent } from './Testing/components/testing-review.component';\nimport { TestingDashboardTabResourceComponent } from './Testing/components/testing-dashboard-tab-resource.component';\nimport { TestingRunsResourceComponent } from './Testing/components/testing-runs-resource.component';\nimport { TestingAnalyticsResourceComponent } from './Testing/components/testing-analytics-resource.component';\nimport { TestingReviewResourceComponent } from './Testing/components/testing-review-resource.component';\nimport { TestingExplorerComponent } from './Testing/components/testing-explorer.component';\nimport { TestingExplorerResourceComponent } from './Testing/components/testing-explorer-resource.component';\nimport { SuiteTreeComponent, SuiteTreeNodeComponent } from './Testing/components/widgets/suite-tree.component';\nimport { OracleBreakdownTableComponent } from './Testing/components/widgets/oracle-breakdown-table.component';\nimport { TestRunDetailPanelComponent } from './Testing/components/widgets/test-run-detail-panel.component';\nimport { TestingInstrumentationService } from './Testing/services/testing-instrumentation.service';\n\n/**\n * TestingDashboardsModule — Testing feature area: dashboard tabs, runs,\n * analytics, review, explorer, and instrumentation widgets.\n */\n@NgModule({\n declarations: [\n TestingDashboardComponent,\n TestingDashboardTabComponent,\n TestingRunsComponent,\n TestingAnalyticsComponent,\n TestingReviewComponent,\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerComponent,\n TestingExplorerResourceComponent,\n SuiteTreeComponent,\n SuiteTreeNodeComponent,\n OracleBreakdownTableComponent,\n TestRunDetailPanelComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonsModule,\n GridModule,\n DropDownsModule,\n InputsModule,\n DialogsModule,\n WindowModule,\n TabStripModule,\n ContainerDirectivesModule,\n TestingModule,\n VersionsModule,\n SharedGenericModule,\n SharedDashboardWidgetsModule,\n SharedPipesModule\n ],\n providers: [\n TestingInstrumentationService\n ],\n exports: [\n TestingDashboardComponent,\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerComponent,\n TestingExplorerResourceComponent,\n SharedDashboardWidgetsModule\n ]\n})\nexport class TestingDashboardsModule { }\n"]}
1
+ {"version":3,"file":"testing-dashboards.module.js","sourceRoot":"","sources":["../src/testing-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';\nimport { TestingModule } from '@memberjunction/ng-testing';\nimport { VersionsModule } from '@memberjunction/ng-versions';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { SharedDashboardWidgetsModule } from './shared/shared-dashboard-widgets.module';\nimport { SharedPipesModule } from './shared/shared-pipes.module';\n\n// Testing Components\nimport { TestingDashboardComponent } from './Testing/testing-dashboard.component';\nimport { TestingDashboardTabComponent } from './Testing/components/testing-dashboard-tab.component';\nimport { TestingRunsComponent } from './Testing/components/testing-runs.component';\nimport { TestingAnalyticsComponent } from './Testing/components/testing-analytics.component';\nimport { TestingReviewComponent } from './Testing/components/testing-review.component';\nimport { TestingDashboardTabResourceComponent } from './Testing/components/testing-dashboard-tab-resource.component';\nimport { TestingRunsResourceComponent } from './Testing/components/testing-runs-resource.component';\nimport { TestingAnalyticsResourceComponent } from './Testing/components/testing-analytics-resource.component';\nimport { TestingReviewResourceComponent } from './Testing/components/testing-review-resource.component';\nimport { TestingExplorerComponent } from './Testing/components/testing-explorer.component';\nimport { TestingExplorerResourceComponent } from './Testing/components/testing-explorer-resource.component';\nimport { SuiteTreeComponent, SuiteTreeNodeComponent } from './Testing/components/widgets/suite-tree.component';\nimport { OracleBreakdownTableComponent } from './Testing/components/widgets/oracle-breakdown-table.component';\nimport { TestRunDetailPanelComponent } from './Testing/components/widgets/test-run-detail-panel.component';\nimport { TestingInstrumentationService } from './Testing/services/testing-instrumentation.service';\n\n/**\n * TestingDashboardsModule — Testing feature area: dashboard tabs, runs,\n * analytics, review, explorer, and instrumentation widgets.\n */\n@NgModule({\n declarations: [\n TestingDashboardComponent,\n TestingDashboardTabComponent,\n TestingRunsComponent,\n TestingAnalyticsComponent,\n TestingReviewComponent,\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerComponent,\n TestingExplorerResourceComponent,\n SuiteTreeComponent,\n SuiteTreeNodeComponent,\n OracleBreakdownTableComponent,\n TestRunDetailPanelComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ContainerDirectivesModule,\n TestingModule,\n VersionsModule,\n SharedGenericModule,\n SharedDashboardWidgetsModule,\n SharedPipesModule\n ],\n providers: [\n TestingInstrumentationService\n ],\n exports: [\n TestingDashboardComponent,\n TestingDashboardTabResourceComponent,\n TestingRunsResourceComponent,\n TestingAnalyticsResourceComponent,\n TestingReviewResourceComponent,\n TestingExplorerComponent,\n TestingExplorerResourceComponent,\n SharedDashboardWidgetsModule\n ]\n})\nexport class TestingDashboardsModule { }\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-dashboards",
3
- "version": "5.22.0",
3
+ "version": "5.24.0",
4
4
  "description": "MemberJunction Dashboards",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -92,60 +92,53 @@
92
92
  "@codemirror/merge": "^6.11.2",
93
93
  "@codemirror/state": "^6.5.4",
94
94
  "@codemirror/view": "^6.39.12",
95
- "@memberjunction/ng-scheduling": "5.22.0",
96
- "@memberjunction/actions-base": "5.22.0",
97
- "@memberjunction/ai-engine-base": "5.22.0",
98
- "@memberjunction/api-keys-base": "5.22.0",
99
- "@memberjunction/ai-core-plus": "5.22.0",
100
- "@memberjunction/core": "5.22.0",
101
- "@memberjunction/export-engine": "5.22.0",
102
- "@memberjunction/ng-entity-relationship-diagram": "5.22.0",
103
- "@memberjunction/core-entities": "5.22.0",
104
- "@memberjunction/global": "5.22.0",
105
- "@memberjunction/graphql-dataprovider": "5.22.0",
106
- "@memberjunction/integration-engine-base": "5.22.0",
107
- "@memberjunction/interactive-component-types": "5.22.0",
108
- "@memberjunction/ng-action-gallery": "5.22.0",
109
- "@memberjunction/ng-actions": "5.22.0",
110
- "@memberjunction/ng-agents": "5.22.0",
111
- "@memberjunction/ng-ai-test-harness": "5.22.0",
112
- "@memberjunction/ng-base-application": "5.22.0",
113
- "@memberjunction/ng-code-editor": "5.22.0",
114
- "@memberjunction/ng-conversations": "5.22.0",
115
- "@memberjunction/ng-container-directives": "5.22.0",
116
- "@memberjunction/ng-core-entity-forms": "5.22.0",
117
- "@memberjunction/ng-agent-requests": "5.22.0",
118
- "@memberjunction/ng-credentials": "5.22.0",
119
- "@memberjunction/ng-dashboard-viewer": "5.22.0",
120
- "@memberjunction/ng-entity-viewer": "5.22.0",
121
- "@memberjunction/ng-export-service": "5.22.0",
122
- "@memberjunction/ng-filter-builder": "5.22.0",
123
- "@memberjunction/ng-list-management": "5.22.0",
124
- "@memberjunction/ng-explorer-settings": "5.22.0",
125
- "@memberjunction/ng-notifications": "5.22.0",
126
- "@memberjunction/ng-query-viewer": "5.22.0",
127
- "@memberjunction/ng-react": "5.22.0",
128
- "@memberjunction/ng-shared": "5.22.0",
129
- "@memberjunction/ng-search": "5.22.0",
130
- "@memberjunction/ng-shared-generic": "5.22.0",
131
- "@memberjunction/ng-trees": "5.22.0",
132
- "@memberjunction/ng-versions": "5.22.0",
133
- "@memberjunction/ng-testing": "5.22.0",
134
- "@memberjunction/skip-types": "5.22.0",
135
- "@memberjunction/templates-base-types": "5.22.0",
136
- "@memberjunction/testing-engine-base": "5.22.0",
137
- "@memberjunction/ng-markdown": "5.22.0",
138
- "@progress/kendo-angular-buttons": "22.0.1",
139
- "@progress/kendo-angular-dateinputs": "22.0.1",
140
- "@progress/kendo-angular-dialog": "22.0.1",
141
- "@progress/kendo-angular-excel-export": "22.0.1",
142
- "@progress/kendo-angular-dropdowns": "22.0.1",
143
- "@progress/kendo-angular-grid": "22.0.1",
144
- "@progress/kendo-angular-indicators": "22.0.1",
145
- "@progress/kendo-angular-inputs": "22.0.1",
146
- "@progress/kendo-angular-layout": "22.0.1",
147
- "@progress/kendo-angular-navigation": "22.0.1",
148
- "@progress/kendo-angular-treeview": "22.0.1",
95
+ "@memberjunction/ng-clustering": "5.24.0",
96
+ "@memberjunction/ng-word-cloud": "5.24.0",
97
+ "@memberjunction/actions-base": "5.24.0",
98
+ "@memberjunction/ai-core-plus": "5.24.0",
99
+ "@memberjunction/ai-engine-base": "5.24.0",
100
+ "@memberjunction/api-keys-base": "5.24.0",
101
+ "@memberjunction/core": "5.24.0",
102
+ "@memberjunction/core-entities": "5.24.0",
103
+ "@memberjunction/export-engine": "5.24.0",
104
+ "@memberjunction/global": "5.24.0",
105
+ "@memberjunction/graphql-dataprovider": "5.24.0",
106
+ "@memberjunction/integration-engine-base": "5.24.0",
107
+ "@memberjunction/interactive-component-types": "5.24.0",
108
+ "@memberjunction/ng-action-gallery": "5.24.0",
109
+ "@memberjunction/ng-actions": "5.24.0",
110
+ "@memberjunction/ng-agent-requests": "5.24.0",
111
+ "@memberjunction/ng-agents": "5.24.0",
112
+ "@memberjunction/ng-ai-test-harness": "5.24.0",
113
+ "@memberjunction/ng-base-application": "5.24.0",
114
+ "@memberjunction/ng-code-editor": "5.24.0",
115
+ "@memberjunction/ng-container-directives": "5.24.0",
116
+ "@memberjunction/ng-conversations": "5.24.0",
117
+ "@memberjunction/ng-core-entity-forms": "5.24.0",
118
+ "@memberjunction/ng-credentials": "5.24.0",
119
+ "@memberjunction/ng-dashboard-viewer": "5.24.0",
120
+ "@memberjunction/ng-entity-relationship-diagram": "5.24.0",
121
+ "@memberjunction/ng-entity-viewer": "5.24.0",
122
+ "@memberjunction/ng-explorer-settings": "5.24.0",
123
+ "@memberjunction/ng-export-service": "5.24.0",
124
+ "@memberjunction/ng-filter-builder": "5.24.0",
125
+ "@memberjunction/ng-list-management": "5.24.0",
126
+ "@memberjunction/ng-markdown": "5.24.0",
127
+ "@memberjunction/ng-notifications": "5.24.0",
128
+ "@memberjunction/ng-query-viewer": "5.24.0",
129
+ "@memberjunction/ng-react": "5.24.0",
130
+ "@memberjunction/ng-scheduling": "5.24.0",
131
+ "@memberjunction/ng-search": "5.24.0",
132
+ "@memberjunction/ng-shared": "5.24.0",
133
+ "@memberjunction/ng-shared-generic": "5.24.0",
134
+ "@memberjunction/ng-testing": "5.24.0",
135
+ "@memberjunction/ng-trees": "5.24.0",
136
+ "@memberjunction/ng-ui-components": "5.24.0",
137
+ "@memberjunction/ng-versions": "5.24.0",
138
+ "@memberjunction/skip-types": "5.24.0",
139
+ "@memberjunction/templates-base-types": "5.24.0",
140
+ "@memberjunction/testing-engine-base": "5.24.0",
141
+ "angular-split": "^20.0.0",
149
142
  "codemirror": "^6.0.2",
150
143
  "d3": "^7.8.5",
151
144
  "rxjs": "^7.8.2",