@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.
- package/README.md +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +364 -362
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +2 -2
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +947 -64
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7645 -430
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +285 -6
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2454 -277
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +191 -197
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +9 -8
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +305 -299
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +319 -313
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +20 -2
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +419 -232
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +10 -12
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +61 -68
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +10 -11
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +82 -96
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +130 -134
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +40 -46
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.js +2 -2
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +2 -2
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +127 -132
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +2 -2
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -17
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +2 -2
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +2 -2
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -17
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +4 -4
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +1 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +5 -4
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +247 -259
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +1 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +1 -0
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/components/widgets/integration-card.component.js +7 -9
- package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +6 -10
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +12 -20
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +411 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4266 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +140 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +780 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +8 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +246 -195
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +75 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +601 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +93 -12
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +637 -107
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +9 -7
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +10 -9
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +6 -9
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +20 -22
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -10
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/__tests__/analytics-resource.test.d.ts +2 -0
- package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-resource.test.js +181 -0
- package/dist/__tests__/analytics-resource.test.js.map +1 -0
- package/dist/__tests__/scheduling.test.d.ts +2 -0
- package/dist/__tests__/scheduling.test.d.ts.map +1 -0
- package/dist/__tests__/scheduling.test.js +205 -0
- package/dist/__tests__/scheduling.test.js.map +1 -0
- package/dist/actions-dashboards.module.d.ts +8 -13
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +6 -27
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +20 -20
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +43 -44
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +4 -8
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +0 -19
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/component-studio-dashboards.module.d.ts +7 -11
- package/dist/component-studio-dashboards.module.d.ts.map +1 -1
- package/dist/component-studio-dashboards.module.js +22 -34
- package/dist/component-studio-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +12 -18
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +15 -31
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +5 -8
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +3 -19
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +7 -13
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +0 -27
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +5 -8
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +3 -19
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -0
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +6 -10
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +3 -23
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/shared/entity-field-display.d.ts +44 -0
- package/dist/shared/entity-field-display.d.ts.map +1 -0
- package/dist/shared/entity-field-display.js +118 -0
- package/dist/shared/entity-field-display.js.map +1 -0
- package/dist/testing-dashboards.module.d.ts +7 -13
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +0 -27
- package/dist/testing-dashboards.module.js.map +1 -1
- 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 "@
|
|
19
|
-
import * as i18 from "@
|
|
20
|
-
import * as i19 from "@
|
|
21
|
-
import * as i20 from "@
|
|
22
|
-
import * as i21 from "
|
|
23
|
-
import * as i22 from "
|
|
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.
|
|
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":"
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,
|
|
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.
|
|
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-
|
|
96
|
-
"@memberjunction/
|
|
97
|
-
"@memberjunction/
|
|
98
|
-
"@memberjunction/
|
|
99
|
-
"@memberjunction/ai-
|
|
100
|
-
"@memberjunction/
|
|
101
|
-
"@memberjunction/
|
|
102
|
-
"@memberjunction/
|
|
103
|
-
"@memberjunction/
|
|
104
|
-
"@memberjunction/global": "5.
|
|
105
|
-
"@memberjunction/graphql-dataprovider": "5.
|
|
106
|
-
"@memberjunction/integration-engine-base": "5.
|
|
107
|
-
"@memberjunction/interactive-component-types": "5.
|
|
108
|
-
"@memberjunction/ng-action-gallery": "5.
|
|
109
|
-
"@memberjunction/ng-actions": "5.
|
|
110
|
-
"@memberjunction/ng-
|
|
111
|
-
"@memberjunction/ng-
|
|
112
|
-
"@memberjunction/ng-
|
|
113
|
-
"@memberjunction/ng-
|
|
114
|
-
"@memberjunction/ng-
|
|
115
|
-
"@memberjunction/ng-container-directives": "5.
|
|
116
|
-
"@memberjunction/ng-
|
|
117
|
-
"@memberjunction/ng-
|
|
118
|
-
"@memberjunction/ng-credentials": "5.
|
|
119
|
-
"@memberjunction/ng-dashboard-viewer": "5.
|
|
120
|
-
"@memberjunction/ng-entity-
|
|
121
|
-
"@memberjunction/ng-
|
|
122
|
-
"@memberjunction/ng-
|
|
123
|
-
"@memberjunction/ng-
|
|
124
|
-
"@memberjunction/ng-
|
|
125
|
-
"@memberjunction/ng-
|
|
126
|
-
"@memberjunction/ng-
|
|
127
|
-
"@memberjunction/ng-
|
|
128
|
-
"@memberjunction/ng-
|
|
129
|
-
"@memberjunction/ng-
|
|
130
|
-
"@memberjunction/ng-
|
|
131
|
-
"@memberjunction/ng-
|
|
132
|
-
"@memberjunction/ng-
|
|
133
|
-
"@memberjunction/ng-
|
|
134
|
-
"@memberjunction/
|
|
135
|
-
"@memberjunction/
|
|
136
|
-
"@memberjunction/
|
|
137
|
-
"@memberjunction/ng-
|
|
138
|
-
"@
|
|
139
|
-
"@
|
|
140
|
-
"@
|
|
141
|
-
"
|
|
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",
|