@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
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Dashboard resource for reviewing duplicate detection results in a Kanban-style
|
|
5
5
|
* board with three columns: Pending Review, Approved, and Rejected.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Supports triggering new detection runs with real-time progress via
|
|
7
|
+
* GraphQL subscriptions.
|
|
8
8
|
*/
|
|
9
9
|
import { OnDestroy, AfterViewInit } from '@angular/core';
|
|
10
|
+
import { CompositeKey, RecordDependency } from '@memberjunction/core';
|
|
10
11
|
import { ResourceData, MJDuplicateRunEntity, MJDuplicateRunDetailEntity, MJDuplicateRunDetailMatchEntity } from '@memberjunction/core-entities';
|
|
11
12
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
@@ -14,16 +15,34 @@ import * as i0 from "@angular/core";
|
|
|
14
15
|
* Represents a group of duplicate matches for a single source record,
|
|
15
16
|
* aggregated from detail and match entities for display on the Kanban board.
|
|
16
17
|
*/
|
|
18
|
+
interface RecordMetadataInfo {
|
|
19
|
+
Name?: string;
|
|
20
|
+
Entity?: string;
|
|
21
|
+
EntityIcon?: string;
|
|
22
|
+
Description?: string;
|
|
23
|
+
Status?: string;
|
|
24
|
+
Type?: string;
|
|
25
|
+
[key: string]: string | undefined;
|
|
26
|
+
}
|
|
17
27
|
interface DuplicateGroup {
|
|
18
28
|
DetailId: string;
|
|
19
29
|
RunId: string;
|
|
20
30
|
RecordId: string;
|
|
21
31
|
EntityName: string;
|
|
32
|
+
EntityIcon: string;
|
|
33
|
+
RecordName: string;
|
|
22
34
|
ApprovalStatus: 'Pending' | 'Approved' | 'Rejected';
|
|
23
35
|
MatchCount: number;
|
|
24
36
|
HighestScore: number;
|
|
25
37
|
Matches: MJDuplicateRunDetailMatchEntity[];
|
|
26
38
|
MatchedAt: Date;
|
|
39
|
+
/** Parsed source record metadata from vector DB */
|
|
40
|
+
Metadata: RecordMetadataInfo;
|
|
41
|
+
/** Top matches with parsed metadata for display */
|
|
42
|
+
TopMatchSummaries: Array<{
|
|
43
|
+
Name: string;
|
|
44
|
+
Score: number;
|
|
45
|
+
}>;
|
|
27
46
|
}
|
|
28
47
|
interface DuplicateFilter {
|
|
29
48
|
EntityName: string;
|
|
@@ -32,12 +51,74 @@ interface DuplicateFilter {
|
|
|
32
51
|
DateFrom: string;
|
|
33
52
|
DateTo: string;
|
|
34
53
|
}
|
|
54
|
+
/** A row in the comparison grid representing one entity field across all records */
|
|
55
|
+
interface ComparisonFieldRow {
|
|
56
|
+
FieldName: string;
|
|
57
|
+
DisplayName: string;
|
|
58
|
+
Category: string | null;
|
|
59
|
+
SourceValue: string | undefined;
|
|
60
|
+
MatchValues: (string | undefined)[];
|
|
61
|
+
HasDifference: boolean;
|
|
62
|
+
/** Index of the column whose value is selected for merge (0 = source, 1+ = match index) */
|
|
63
|
+
SelectedColumnIndex: number;
|
|
64
|
+
}
|
|
65
|
+
/** Parsed match info for the comparison panel columns */
|
|
66
|
+
interface ComparisonMatchInfo {
|
|
67
|
+
Match: MJDuplicateRunDetailMatchEntity;
|
|
68
|
+
Name: string;
|
|
69
|
+
Score: number;
|
|
70
|
+
Metadata: RecordMetadataInfo;
|
|
71
|
+
DiffCount: number;
|
|
72
|
+
}
|
|
73
|
+
/** Lightweight entity document info for the picker dropdown */
|
|
74
|
+
interface EntityDocumentOption {
|
|
75
|
+
ID: string;
|
|
76
|
+
Name: string;
|
|
77
|
+
EntityName: string;
|
|
78
|
+
PotentialMatchThreshold: number;
|
|
79
|
+
AbsoluteMatchThreshold: number;
|
|
80
|
+
}
|
|
35
81
|
export declare class DuplicateDetectionResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
|
|
82
|
+
/** Close comparison panel on Escape key */
|
|
83
|
+
OnEscapeKey(): void;
|
|
36
84
|
private cdr;
|
|
85
|
+
private navigationService;
|
|
37
86
|
private destroy$;
|
|
38
87
|
private filterSubject;
|
|
39
88
|
IsLoading: boolean;
|
|
89
|
+
/** Whether the results area (runs/details/matches) is still loading */
|
|
90
|
+
IsLoadingResults: boolean;
|
|
40
91
|
IsSaving: boolean;
|
|
92
|
+
/** The group being compared (null = panel closed) */
|
|
93
|
+
ComparisonGroup: DuplicateGroup | null;
|
|
94
|
+
/** Whether the comparison panel is loading entity records */
|
|
95
|
+
ComparisonLoading: boolean;
|
|
96
|
+
/** Whether to show all fields or only differences */
|
|
97
|
+
ComparisonShowAllFields: boolean;
|
|
98
|
+
/** Precomputed field rows for the comparison grid */
|
|
99
|
+
ComparisonFields: ComparisonFieldRow[];
|
|
100
|
+
/** Parsed match info for comparison columns */
|
|
101
|
+
ComparisonMatches: ComparisonMatchInfo[];
|
|
102
|
+
/** Index of the surviving record column (0 = source, 1+ = match index) */
|
|
103
|
+
SurvivorColumnIndex: number;
|
|
104
|
+
/** Whether the panel is animating closed */
|
|
105
|
+
ComparisonClosing: boolean;
|
|
106
|
+
/** Loaded entity records keyed by record ID (populated on panel open via RunView) */
|
|
107
|
+
private comparisonRecords;
|
|
108
|
+
/** Dependencies per record, keyed by composite key string */
|
|
109
|
+
ComparisonDependencies: Map<string, RecordDependency[]>;
|
|
110
|
+
/** Which column indices have expanded dependency details */
|
|
111
|
+
DepsExpandedColumns: Set<number>;
|
|
112
|
+
/** Tracks which entity groups within deps are expanded (key: "columnIndex::entityName") */
|
|
113
|
+
private depsEntityGroupExpanded;
|
|
114
|
+
/** Whether the merge confirmation panel is visible */
|
|
115
|
+
ShowMergeConfirm: boolean;
|
|
116
|
+
/** Whether the merge is currently executing */
|
|
117
|
+
IsMerging: boolean;
|
|
118
|
+
/** Whether the current entity allows record merging (controls merge button availability) */
|
|
119
|
+
MergeEnabled: boolean;
|
|
120
|
+
/** Whether merge-not-available inline banner should be shown in the results area */
|
|
121
|
+
ShowMergeWarningBanner: boolean;
|
|
41
122
|
Runs: MJDuplicateRunEntity[];
|
|
42
123
|
Details: MJDuplicateRunDetailEntity[];
|
|
43
124
|
Matches: MJDuplicateRunDetailMatchEntity[];
|
|
@@ -47,6 +128,19 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
47
128
|
RejectedGroups: DuplicateGroup[];
|
|
48
129
|
Filters: DuplicateFilter;
|
|
49
130
|
EntityNames: string[];
|
|
131
|
+
IsDetecting: boolean;
|
|
132
|
+
DetectionProgress: number;
|
|
133
|
+
DetectionStage: string;
|
|
134
|
+
/** Raw stage key from the last progress event — used to detect phase transitions */
|
|
135
|
+
private detectionRawStage;
|
|
136
|
+
/** Runtime threshold overrides — initialized from entity doc, adjustable via sliders */
|
|
137
|
+
RunPotentialThreshold: number;
|
|
138
|
+
RunAbsoluteThreshold: number;
|
|
139
|
+
DetectionCurrentItem: string;
|
|
140
|
+
EntityDocuments: EntityDocumentOption[];
|
|
141
|
+
private _selectedEntityDocumentID;
|
|
142
|
+
get SelectedEntityDocumentID(): string;
|
|
143
|
+
set SelectedEntityDocumentID(value: string);
|
|
50
144
|
/** Whether this component is embedded inside the Knowledge Hub shell */
|
|
51
145
|
EmbeddedMode: boolean;
|
|
52
146
|
/** View mode: 'kanban' (card board) or 'table' (paged grid) */
|
|
@@ -85,14 +179,34 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
85
179
|
get PendingCount(): number;
|
|
86
180
|
get ApprovedCount(): number;
|
|
87
181
|
get RejectedCount(): number;
|
|
182
|
+
/** Get selected entity document threshold info */
|
|
183
|
+
get SelectedDocumentThresholds(): EntityDocumentOption | null;
|
|
88
184
|
ngAfterViewInit(): Promise<void>;
|
|
89
185
|
ngOnDestroy(): void;
|
|
90
186
|
GetResourceDisplayName(_data: ResourceData): Promise<string>;
|
|
91
187
|
GetResourceIconClass(_data: ResourceData): Promise<string>;
|
|
92
188
|
/**
|
|
93
189
|
* Loads all duplicate run data and builds the Kanban groups.
|
|
190
|
+
* Split into two phases so that controls become interactive immediately:
|
|
191
|
+
* Phase 1 - entity docs from KH engine cache (instant)
|
|
192
|
+
* Phase 2 - runs/details/matches via RunViews (heavy)
|
|
94
193
|
*/
|
|
95
194
|
LoadData(): Promise<void>;
|
|
195
|
+
/** Phase 1: Load entity documents from KH engine cache (instant). */
|
|
196
|
+
private loadEntityDocuments;
|
|
197
|
+
/** Phase 2: Load runs, details, and matches via RunViews batch. */
|
|
198
|
+
private loadRunData;
|
|
199
|
+
/**
|
|
200
|
+
* Check if there's an in-progress detection run and reconnect to its
|
|
201
|
+
* progress subscription. This handles the case where the user navigated
|
|
202
|
+
* away and came back while a run was active.
|
|
203
|
+
*/
|
|
204
|
+
private reconnectToActiveRun;
|
|
205
|
+
/**
|
|
206
|
+
* Trigger a new duplicate detection run by creating a DuplicateRun entity.
|
|
207
|
+
* The server hook auto-triggers detection when a run is saved with EndedAt === null.
|
|
208
|
+
*/
|
|
209
|
+
RunDetection(): Promise<void>;
|
|
96
210
|
/**
|
|
97
211
|
* Approves all matches within a duplicate group by updating each match's ApprovalStatus.
|
|
98
212
|
*/
|
|
@@ -101,8 +215,28 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
101
215
|
* Rejects all matches within a duplicate group by updating each match's ApprovalStatus.
|
|
102
216
|
*/
|
|
103
217
|
RejectMatch(group: DuplicateGroup): Promise<void>;
|
|
218
|
+
/** The group currently being dragged */
|
|
219
|
+
DraggedGroup: DuplicateGroup | null;
|
|
220
|
+
/** Which column is being dragged over (for highlight) */
|
|
221
|
+
DragOverColumn: 'Pending' | 'Approved' | 'Rejected' | null;
|
|
222
|
+
OnDragStart(event: DragEvent, group: DuplicateGroup): void;
|
|
223
|
+
OnDragEnd(): void;
|
|
224
|
+
OnDragOver(event: DragEvent, column: 'Pending' | 'Approved' | 'Rejected'): void;
|
|
225
|
+
OnDragLeave(event: DragEvent, column: 'Pending' | 'Approved' | 'Rejected'): void;
|
|
226
|
+
OnDrop(event: DragEvent, targetStatus: 'Pending' | 'Approved' | 'Rejected'): Promise<void>;
|
|
227
|
+
/** Whether a card is currently being dragged */
|
|
228
|
+
get IsDragging(): boolean;
|
|
104
229
|
/** Handle filter changes with debounce */
|
|
105
230
|
OnFilterChange(): void;
|
|
231
|
+
/** Computed range bounds from actual data — used as min/max/placeholder for filter inputs */
|
|
232
|
+
DataMinScore: number;
|
|
233
|
+
DataMaxScore: number;
|
|
234
|
+
DataMinDate: string;
|
|
235
|
+
DataMaxDate: string;
|
|
236
|
+
/** Compute the actual data ranges from AllGroups */
|
|
237
|
+
private computeDataRanges;
|
|
238
|
+
/** Format a Date to YYYY-MM-DD for input[type=date] using local time */
|
|
239
|
+
private toInputDate;
|
|
106
240
|
/** Clear all filters */
|
|
107
241
|
ClearFilters(): void;
|
|
108
242
|
/** Returns the CSS class for a match score indicator */
|
|
@@ -110,10 +244,35 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
110
244
|
/** Returns a human-readable label for a match score */
|
|
111
245
|
GetScoreLabel(score: number): string;
|
|
112
246
|
/** Format a date for display */
|
|
247
|
+
/**
|
|
248
|
+
* Format a composite key string (e.g., "ID|5A07433E-F36B-1410-8AA5-00F1597429B5")
|
|
249
|
+
* into a readable format. For single-key entities, shows just the value truncated.
|
|
250
|
+
* For composite keys, shows key: value pairs.
|
|
251
|
+
*/
|
|
252
|
+
/** Whether there are any non-skipped matches available for merging */
|
|
253
|
+
get HasMergeableMatches(): boolean;
|
|
254
|
+
FormatRecordID(recordID: string): string;
|
|
113
255
|
FormatDate(date: Date | null): string;
|
|
114
256
|
/** Whether any filters are active */
|
|
115
257
|
get HasActiveFilters(): boolean;
|
|
116
258
|
private setupFilterDebounce;
|
|
259
|
+
/** Build entity document options from KnowledgeHubMetadataEngine cached entities */
|
|
260
|
+
private buildEntityDocumentOptionsFromEngine;
|
|
261
|
+
/** Subscribe to PipelineProgress for a specific detection run */
|
|
262
|
+
/**
|
|
263
|
+
* Normalizes a duplicate threshold value — treats null, undefined, 0, and 1.0
|
|
264
|
+
* as "not configured" and falls back to a sensible default.
|
|
265
|
+
* Thresholds of exactly 1.0 mean "100% match only" which is effectively useless
|
|
266
|
+
* for real-world duplicate detection.
|
|
267
|
+
*/
|
|
268
|
+
private normalizeDupeThreshold;
|
|
269
|
+
/** Handle potential threshold slider change */
|
|
270
|
+
OnPotentialThresholdChanged(value: number): void;
|
|
271
|
+
/** Handle absolute threshold slider change */
|
|
272
|
+
OnAbsoluteThresholdChanged(value: number): void;
|
|
273
|
+
private subscribeToPipelineProgress;
|
|
274
|
+
/** Format detection stage names for display */
|
|
275
|
+
private formatDetectionStage;
|
|
117
276
|
/** Extract unique entity names from loaded runs */
|
|
118
277
|
private extractEntityNames;
|
|
119
278
|
/**
|
|
@@ -123,6 +282,129 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
123
282
|
private buildGroups;
|
|
124
283
|
/** Find the highest match probability across a set of matches */
|
|
125
284
|
private computeHighestScore;
|
|
285
|
+
/** Open the comparison slide-in panel for a group — loads real entity records */
|
|
286
|
+
OpenComparison(group: DuplicateGroup): Promise<void>;
|
|
287
|
+
/** Close the comparison panel with slide-out animation */
|
|
288
|
+
CloseComparison(): void;
|
|
289
|
+
/** Get visible fields based on the toggle state */
|
|
290
|
+
GetVisibleFields(): ComparisonFieldRow[];
|
|
291
|
+
/** Case-insensitive, trimmed comparison of two field values */
|
|
292
|
+
AreValuesEqual(a: string | undefined, b: string | undefined): boolean;
|
|
293
|
+
/** Set the surviving record column index */
|
|
294
|
+
SetSurvivor(columnIndex: number): void;
|
|
295
|
+
/** Select all field values from a specific column */
|
|
296
|
+
UseAllFieldsFrom(columnIndex: number): void;
|
|
297
|
+
/** Select a specific field value from a column */
|
|
298
|
+
SelectFieldValue(field: ComparisonFieldRow, columnIndex: number): void;
|
|
299
|
+
/** Check if all fields are selected from a given column */
|
|
300
|
+
AllFieldsSelectedFrom(columnIndex: number): boolean;
|
|
301
|
+
/** Count how many fields are cherry-picked from non-survivor columns */
|
|
302
|
+
CherryPickedCount(): number;
|
|
303
|
+
/** Get the name of the surviving record */
|
|
304
|
+
SurvivorName(): string;
|
|
305
|
+
/** Get the primary key display string for the surviving record */
|
|
306
|
+
SurvivorKeyDisplay(): string;
|
|
307
|
+
/** Get dependencies for a column (0 = source, 1+ = match index) */
|
|
308
|
+
GetDepsForColumn(columnIndex: number): RecordDependency[];
|
|
309
|
+
/** Get deps grouped by related entity for a column */
|
|
310
|
+
GetGroupedDeps(columnIndex: number): Array<{
|
|
311
|
+
Entity: string;
|
|
312
|
+
Count: number;
|
|
313
|
+
}>;
|
|
314
|
+
/** Cached dependent records loaded on demand, keyed by "columnIndex::entityName" */
|
|
315
|
+
private depRecordsCache;
|
|
316
|
+
/** Tracks which entity groups are currently loading */
|
|
317
|
+
private depRecordsLoading;
|
|
318
|
+
/** Get cached dependent records for an entity group (empty until expanded and loaded) */
|
|
319
|
+
GetDepRecords(columnIndex: number, entityName: string): Array<{
|
|
320
|
+
Name: string;
|
|
321
|
+
PrimaryKey: CompositeKey;
|
|
322
|
+
EntityName: string;
|
|
323
|
+
}>;
|
|
324
|
+
/** Check if dep records are loading for an entity group */
|
|
325
|
+
IsDepRecordsLoading(columnIndex: number, entityName: string): boolean;
|
|
326
|
+
/** Navigate to a dependent record */
|
|
327
|
+
OpenDepRecord(record: {
|
|
328
|
+
EntityName: string;
|
|
329
|
+
PrimaryKey: CompositeKey;
|
|
330
|
+
}): void;
|
|
331
|
+
/** Toggle expanded state for a specific entity group — lazy-loads records on first expand */
|
|
332
|
+
ToggleDepEntityGroup(columnIndex: number, entityName: string): Promise<void>;
|
|
333
|
+
/** Load dependent records for an entity group via RunView */
|
|
334
|
+
private loadDepRecordsForGroup;
|
|
335
|
+
/** Check if a specific entity group is expanded */
|
|
336
|
+
IsDepEntityGroupExpanded(columnIndex: number, entityName: string): boolean;
|
|
337
|
+
/** Get total dependency count for a column */
|
|
338
|
+
GetTotalDeps(columnIndex: number): number;
|
|
339
|
+
/** Toggle expanded state for dependency details in a column */
|
|
340
|
+
ToggleDepsExpanded(columnIndex: number): void;
|
|
341
|
+
/** Check if dependency details are expanded for a column */
|
|
342
|
+
IsDepsExpanded(columnIndex: number): boolean;
|
|
343
|
+
/** Get the column index with the most dependencies */
|
|
344
|
+
GetMaxDepsColumnIndex(): number;
|
|
345
|
+
/** Get the composite key string for a column index */
|
|
346
|
+
private getCompositeKeyStringForColumn;
|
|
347
|
+
/** Get the name for a column index */
|
|
348
|
+
GetColumnName(columnIndex: number): string;
|
|
349
|
+
/** Open the merge confirmation panel */
|
|
350
|
+
OpenMergeConfirm(): void;
|
|
351
|
+
/** Close the merge confirmation panel */
|
|
352
|
+
CloseMergeConfirm(): void;
|
|
353
|
+
/** Get the list of cherry-picked field overrides (fields picked from non-survivor columns) */
|
|
354
|
+
GetCherryPickedFields(): Array<{
|
|
355
|
+
FieldName: string;
|
|
356
|
+
DisplayName: string;
|
|
357
|
+
Value: string;
|
|
358
|
+
SourceName: string;
|
|
359
|
+
}>;
|
|
360
|
+
/** Get non-surviving columns with their dependency counts */
|
|
361
|
+
/** Get non-surviving columns excluding skipped (Rejected) matches for merge confirmation display */
|
|
362
|
+
GetNonSurvivorColumns(): Array<{
|
|
363
|
+
ColumnIndex: number;
|
|
364
|
+
Name: string;
|
|
365
|
+
DepCount: number;
|
|
366
|
+
}>;
|
|
367
|
+
/** Execute the merge operation */
|
|
368
|
+
ExecuteMerge(): Promise<void>;
|
|
369
|
+
/** Build CompositeKey array for non-surviving records */
|
|
370
|
+
private buildNonSurvivorKeys;
|
|
371
|
+
/** Approve an individual match */
|
|
372
|
+
ApproveIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
373
|
+
/** Reject an individual match (skip it from merge) */
|
|
374
|
+
RejectIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
375
|
+
/** Undo a rejected individual match (restore to Pending) */
|
|
376
|
+
UndoRejectIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
377
|
+
/**
|
|
378
|
+
* Load the actual entity records for the source + all matches in one RunView call.
|
|
379
|
+
* Record IDs are stored as composite key strings (e.g., "ID|uuid") — we parse each
|
|
380
|
+
* into a CompositeKey, generate WHERE clauses, and OR them together for one query.
|
|
381
|
+
* Results stored in comparisonRecords map keyed by the composite key string.
|
|
382
|
+
*/
|
|
383
|
+
private loadComparisonRecords;
|
|
384
|
+
/**
|
|
385
|
+
* Load dependencies for all records (source + matches) in parallel.
|
|
386
|
+
* Each record's deps are stored in ComparisonDependencies keyed by composite key string.
|
|
387
|
+
*/
|
|
388
|
+
private loadComparisonDependencies;
|
|
389
|
+
/** Get the field value for a record from the loaded entity records map */
|
|
390
|
+
private getRecordFieldValue;
|
|
391
|
+
/** Build comparison data from loaded entity records */
|
|
392
|
+
private buildComparisonData;
|
|
393
|
+
/** Parse RecordMetadata JSON from a detail or match entity */
|
|
394
|
+
private parseRecordMetadata;
|
|
395
|
+
/** Build top N match summaries with parsed names and scores */
|
|
396
|
+
private buildTopMatchSummaries;
|
|
397
|
+
/**
|
|
398
|
+
* Resolve match record name from loaded entity records using IsNameField fields.
|
|
399
|
+
* Falls back to metadata, then truncated record ID.
|
|
400
|
+
*/
|
|
401
|
+
private resolveMatchName;
|
|
402
|
+
/**
|
|
403
|
+
* Resolve record display name from metadata using entity IsNameField fields.
|
|
404
|
+
* Combines multiple name fields (e.g., FirstName + LastName → "Sarah Chen").
|
|
405
|
+
* Falls back to metadata.Name, then recordID.
|
|
406
|
+
*/
|
|
407
|
+
private resolveRecordName;
|
|
126
408
|
/**
|
|
127
409
|
* Determine the dominant approval status for a group of matches.
|
|
128
410
|
* If any match is Pending, the group is Pending.
|
|
@@ -135,10 +417,7 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
135
417
|
private computeLatestMatchDate;
|
|
136
418
|
/** Apply filters and distribute groups into Kanban columns */
|
|
137
419
|
private applyFilters;
|
|
138
|
-
/** Update the ApprovalStatus of all matches within a group and re-sort.
|
|
139
|
-
* Since this.Matches already contains entity_object instances, we update and save them directly
|
|
140
|
-
* instead of loading each one individually from the database.
|
|
141
|
-
*/
|
|
420
|
+
/** Update the ApprovalStatus of all matches within a group and re-sort. */
|
|
142
421
|
private updateGroupApprovalStatus;
|
|
143
422
|
static ɵfac: i0.ɵɵFactoryDeclaration<DuplicateDetectionResourceComponent, never>;
|
|
144
423
|
static ɵcmp: i0.ɵɵComponentDeclaration<DuplicateDetectionResourceComponent, "app-duplicate-detection-resource", never, { "EmbeddedMode": { "alias": "EmbeddedMode"; "required": false; }; }, {}, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAgC,SAAS,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"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"}
|