@memberjunction/ng-dashboards 5.21.0 → 5.23.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 +313 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2792 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +382 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2683 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -0
- 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 +240 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.js +1767 -0
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -0
- package/dist/AI/index.d.ts +3 -0
- package/dist/AI/index.d.ts.map +1 -1
- package/dist/AI/index.js +6 -0
- package/dist/AI/index.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +50 -7
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +161 -193
- package/dist/AI/services/ai-instrumentation.service.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-browser-resource.component.d.ts +11 -0
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +57 -0
- package/dist/DashboardBrowser/dashboard-browser-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/components/navigation-panel/navigation-panel.component.d.ts +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +10 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +35 -11
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +1 -0
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +8 -4
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +181 -1
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +1704 -182
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +4 -4
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +246 -259
- package/dist/Integration/components/mapping-workspace/mapping-workspace.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/clusters/cluster-visualization-resource.component.d.ts +106 -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 +607 -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 +126 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +1086 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts +56 -0
- package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js +291 -0
- package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js.map +1 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +461 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +5 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -0
- package/dist/KnowledgeHub/index.js +6 -0
- package/dist/KnowledgeHub/index.js.map +1 -0
- 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/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +5 -1
- package/dist/QueryBrowser/query-browser-resource.component.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/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1 -0
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +7 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +63 -8
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +9 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +109 -62
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +241 -200
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +7 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +63 -8
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +7 -5
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +9 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +122 -54
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- 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 +14 -11
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +58 -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 +13 -18
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +18 -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 +5 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +6 -1
- 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/testing-dashboards.module.d.ts +7 -12
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +4 -27
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +47 -53
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Duplicate Detection Kanban Board Resource Component
|
|
3
|
+
*
|
|
4
|
+
* Dashboard resource for reviewing duplicate detection results in a Kanban-style
|
|
5
|
+
* board with three columns: Pending Review, Approved, and Rejected.
|
|
6
|
+
* Supports triggering new detection runs with real-time progress via
|
|
7
|
+
* GraphQL subscriptions.
|
|
8
|
+
*/
|
|
9
|
+
import { OnDestroy, AfterViewInit } from '@angular/core';
|
|
10
|
+
import { CompositeKey, RecordDependency } from '@memberjunction/core';
|
|
11
|
+
import { ResourceData, MJDuplicateRunEntity, MJDuplicateRunDetailEntity, MJDuplicateRunDetailMatchEntity } from '@memberjunction/core-entities';
|
|
12
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
/**
|
|
15
|
+
* Represents a group of duplicate matches for a single source record,
|
|
16
|
+
* aggregated from detail and match entities for display on the Kanban board.
|
|
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
|
+
}
|
|
27
|
+
interface DuplicateGroup {
|
|
28
|
+
DetailId: string;
|
|
29
|
+
RunId: string;
|
|
30
|
+
RecordId: string;
|
|
31
|
+
EntityName: string;
|
|
32
|
+
EntityIcon: string;
|
|
33
|
+
RecordName: string;
|
|
34
|
+
ApprovalStatus: 'Pending' | 'Approved' | 'Rejected';
|
|
35
|
+
MatchCount: number;
|
|
36
|
+
HighestScore: number;
|
|
37
|
+
Matches: MJDuplicateRunDetailMatchEntity[];
|
|
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
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
interface DuplicateFilter {
|
|
48
|
+
EntityName: string;
|
|
49
|
+
MinScore: number;
|
|
50
|
+
MaxScore: number;
|
|
51
|
+
DateFrom: string;
|
|
52
|
+
DateTo: string;
|
|
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
|
+
}
|
|
81
|
+
export declare class DuplicateDetectionResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
|
|
82
|
+
private cdr;
|
|
83
|
+
private navigationService;
|
|
84
|
+
private destroy$;
|
|
85
|
+
private filterSubject;
|
|
86
|
+
IsLoading: boolean;
|
|
87
|
+
IsSaving: boolean;
|
|
88
|
+
/** The group being compared (null = panel closed) */
|
|
89
|
+
ComparisonGroup: DuplicateGroup | null;
|
|
90
|
+
/** Whether the comparison panel is loading entity records */
|
|
91
|
+
ComparisonLoading: boolean;
|
|
92
|
+
/** Whether to show all fields or only differences */
|
|
93
|
+
ComparisonShowAllFields: boolean;
|
|
94
|
+
/** Precomputed field rows for the comparison grid */
|
|
95
|
+
ComparisonFields: ComparisonFieldRow[];
|
|
96
|
+
/** Parsed match info for comparison columns */
|
|
97
|
+
ComparisonMatches: ComparisonMatchInfo[];
|
|
98
|
+
/** Index of the surviving record column (0 = source, 1+ = match index) */
|
|
99
|
+
SurvivorColumnIndex: number;
|
|
100
|
+
/** Whether the panel is animating closed */
|
|
101
|
+
ComparisonClosing: boolean;
|
|
102
|
+
/** Loaded entity records keyed by record ID (populated on panel open via RunView) */
|
|
103
|
+
private comparisonRecords;
|
|
104
|
+
/** Dependencies per record, keyed by composite key string */
|
|
105
|
+
ComparisonDependencies: Map<string, RecordDependency[]>;
|
|
106
|
+
/** Which column indices have expanded dependency details */
|
|
107
|
+
DepsExpandedColumns: Set<number>;
|
|
108
|
+
/** Tracks which entity groups within deps are expanded (key: "columnIndex::entityName") */
|
|
109
|
+
private depsEntityGroupExpanded;
|
|
110
|
+
/** Whether the merge confirmation panel is visible */
|
|
111
|
+
ShowMergeConfirm: boolean;
|
|
112
|
+
/** Whether the merge is currently executing */
|
|
113
|
+
IsMerging: boolean;
|
|
114
|
+
Runs: MJDuplicateRunEntity[];
|
|
115
|
+
Details: MJDuplicateRunDetailEntity[];
|
|
116
|
+
Matches: MJDuplicateRunDetailMatchEntity[];
|
|
117
|
+
AllGroups: DuplicateGroup[];
|
|
118
|
+
PendingGroups: DuplicateGroup[];
|
|
119
|
+
ApprovedGroups: DuplicateGroup[];
|
|
120
|
+
RejectedGroups: DuplicateGroup[];
|
|
121
|
+
Filters: DuplicateFilter;
|
|
122
|
+
EntityNames: string[];
|
|
123
|
+
IsDetecting: boolean;
|
|
124
|
+
DetectionProgress: number;
|
|
125
|
+
DetectionStage: string;
|
|
126
|
+
/** Runtime threshold overrides — initialized from entity doc, adjustable via sliders */
|
|
127
|
+
RunPotentialThreshold: number;
|
|
128
|
+
RunAbsoluteThreshold: number;
|
|
129
|
+
DetectionCurrentItem: string;
|
|
130
|
+
EntityDocuments: EntityDocumentOption[];
|
|
131
|
+
private _selectedEntityDocumentID;
|
|
132
|
+
get SelectedEntityDocumentID(): string;
|
|
133
|
+
set SelectedEntityDocumentID(value: string);
|
|
134
|
+
/** Whether this component is embedded inside the Knowledge Hub shell */
|
|
135
|
+
EmbeddedMode: boolean;
|
|
136
|
+
/** View mode: 'kanban' (card board) or 'table' (paged grid) */
|
|
137
|
+
DisplayMode: 'kanban' | 'table';
|
|
138
|
+
/** Page size for table view */
|
|
139
|
+
PageSize: number;
|
|
140
|
+
/** Current page (0-based) */
|
|
141
|
+
CurrentPage: number;
|
|
142
|
+
/** Selected entity filter */
|
|
143
|
+
SelectedEntityFilter: string;
|
|
144
|
+
/** Currently selected group for merge panel */
|
|
145
|
+
SelectedMergeGroup: DuplicateGroup | null;
|
|
146
|
+
/** Whether the merge panel is visible */
|
|
147
|
+
ShowMergePanel: boolean;
|
|
148
|
+
/** Auto-switch to table mode when groups exceed threshold */
|
|
149
|
+
private readonly kanbanThreshold;
|
|
150
|
+
/** Toggle display mode */
|
|
151
|
+
ToggleDisplayMode(): void;
|
|
152
|
+
/** Filter by entity name */
|
|
153
|
+
FilterByEntity(entityName: string): void;
|
|
154
|
+
/** Get paged groups for table view */
|
|
155
|
+
GetPagedGroups(): DuplicateGroup[];
|
|
156
|
+
/** Get total page count */
|
|
157
|
+
get TotalPages(): number;
|
|
158
|
+
/** Navigate to next page */
|
|
159
|
+
NextPage(): void;
|
|
160
|
+
/** Navigate to previous page */
|
|
161
|
+
PrevPage(): void;
|
|
162
|
+
/** Open the merge panel for a duplicate group */
|
|
163
|
+
OpenMergePanel(group: DuplicateGroup): void;
|
|
164
|
+
/** Close the merge panel */
|
|
165
|
+
CloseMergePanel(): void;
|
|
166
|
+
/** Auto-select display mode based on group count */
|
|
167
|
+
private autoSelectDisplayMode;
|
|
168
|
+
get TotalGroupCount(): number;
|
|
169
|
+
get PendingCount(): number;
|
|
170
|
+
get ApprovedCount(): number;
|
|
171
|
+
get RejectedCount(): number;
|
|
172
|
+
/** Get selected entity document threshold info */
|
|
173
|
+
get SelectedDocumentThresholds(): EntityDocumentOption | null;
|
|
174
|
+
ngAfterViewInit(): Promise<void>;
|
|
175
|
+
ngOnDestroy(): void;
|
|
176
|
+
GetResourceDisplayName(_data: ResourceData): Promise<string>;
|
|
177
|
+
GetResourceIconClass(_data: ResourceData): Promise<string>;
|
|
178
|
+
/**
|
|
179
|
+
* Loads all duplicate run data and builds the Kanban groups.
|
|
180
|
+
*/
|
|
181
|
+
LoadData(): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* Trigger a new duplicate detection run by creating a DuplicateRun entity.
|
|
184
|
+
* The server hook auto-triggers detection when a run is saved with EndedAt === null.
|
|
185
|
+
*/
|
|
186
|
+
RunDetection(): Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Approves all matches within a duplicate group by updating each match's ApprovalStatus.
|
|
189
|
+
*/
|
|
190
|
+
ApproveMatch(group: DuplicateGroup): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* Rejects all matches within a duplicate group by updating each match's ApprovalStatus.
|
|
193
|
+
*/
|
|
194
|
+
RejectMatch(group: DuplicateGroup): Promise<void>;
|
|
195
|
+
/** The group currently being dragged */
|
|
196
|
+
DraggedGroup: DuplicateGroup | null;
|
|
197
|
+
/** Which column is being dragged over (for highlight) */
|
|
198
|
+
DragOverColumn: 'Pending' | 'Approved' | 'Rejected' | null;
|
|
199
|
+
OnDragStart(event: DragEvent, group: DuplicateGroup): void;
|
|
200
|
+
OnDragEnd(): void;
|
|
201
|
+
OnDragOver(event: DragEvent, column: 'Pending' | 'Approved' | 'Rejected'): void;
|
|
202
|
+
OnDragLeave(event: DragEvent, column: 'Pending' | 'Approved' | 'Rejected'): void;
|
|
203
|
+
OnDrop(event: DragEvent, targetStatus: 'Pending' | 'Approved' | 'Rejected'): Promise<void>;
|
|
204
|
+
/** Whether a card is currently being dragged */
|
|
205
|
+
get IsDragging(): boolean;
|
|
206
|
+
/** Handle filter changes with debounce */
|
|
207
|
+
OnFilterChange(): void;
|
|
208
|
+
/** Computed range bounds from actual data — used as min/max/placeholder for filter inputs */
|
|
209
|
+
DataMinScore: number;
|
|
210
|
+
DataMaxScore: number;
|
|
211
|
+
DataMinDate: string;
|
|
212
|
+
DataMaxDate: string;
|
|
213
|
+
/** Compute the actual data ranges from AllGroups */
|
|
214
|
+
private computeDataRanges;
|
|
215
|
+
/** Format a Date to YYYY-MM-DD for input[type=date] using local time */
|
|
216
|
+
private toInputDate;
|
|
217
|
+
/** Clear all filters */
|
|
218
|
+
ClearFilters(): void;
|
|
219
|
+
/** Returns the CSS class for a match score indicator */
|
|
220
|
+
GetScoreClass(score: number): string;
|
|
221
|
+
/** Returns a human-readable label for a match score */
|
|
222
|
+
GetScoreLabel(score: number): string;
|
|
223
|
+
/** Format a date for display */
|
|
224
|
+
FormatDate(date: Date | null): string;
|
|
225
|
+
/** Whether any filters are active */
|
|
226
|
+
get HasActiveFilters(): boolean;
|
|
227
|
+
private setupFilterDebounce;
|
|
228
|
+
/** Build entity document options from KnowledgeHubMetadataEngine cached entities */
|
|
229
|
+
private buildEntityDocumentOptionsFromEngine;
|
|
230
|
+
/** Subscribe to PipelineProgress for a specific detection run */
|
|
231
|
+
/**
|
|
232
|
+
* Normalizes a duplicate threshold value — treats null, undefined, 0, and 1.0
|
|
233
|
+
* as "not configured" and falls back to a sensible default.
|
|
234
|
+
* Thresholds of exactly 1.0 mean "100% match only" which is effectively useless
|
|
235
|
+
* for real-world duplicate detection.
|
|
236
|
+
*/
|
|
237
|
+
private normalizeDupeThreshold;
|
|
238
|
+
/** Handle potential threshold slider change */
|
|
239
|
+
OnPotentialThresholdChanged(value: number): void;
|
|
240
|
+
/** Handle absolute threshold slider change */
|
|
241
|
+
OnAbsoluteThresholdChanged(value: number): void;
|
|
242
|
+
private subscribeToPipelineProgress;
|
|
243
|
+
/** Format detection stage names for display */
|
|
244
|
+
private formatDetectionStage;
|
|
245
|
+
/** Extract unique entity names from loaded runs */
|
|
246
|
+
private extractEntityNames;
|
|
247
|
+
/**
|
|
248
|
+
* Build DuplicateGroup objects by joining details to their matches,
|
|
249
|
+
* and resolving the entity name from the parent run.
|
|
250
|
+
*/
|
|
251
|
+
private buildGroups;
|
|
252
|
+
/** Find the highest match probability across a set of matches */
|
|
253
|
+
private computeHighestScore;
|
|
254
|
+
/** Open the comparison slide-in panel for a group — loads real entity records */
|
|
255
|
+
OpenComparison(group: DuplicateGroup): Promise<void>;
|
|
256
|
+
/** Close the comparison panel with slide-out animation */
|
|
257
|
+
CloseComparison(): void;
|
|
258
|
+
/** Get visible fields based on the toggle state */
|
|
259
|
+
GetVisibleFields(): ComparisonFieldRow[];
|
|
260
|
+
/** Case-insensitive, trimmed comparison of two field values */
|
|
261
|
+
AreValuesEqual(a: string | undefined, b: string | undefined): boolean;
|
|
262
|
+
/** Set the surviving record column index */
|
|
263
|
+
SetSurvivor(columnIndex: number): void;
|
|
264
|
+
/** Select all field values from a specific column */
|
|
265
|
+
UseAllFieldsFrom(columnIndex: number): void;
|
|
266
|
+
/** Select a specific field value from a column */
|
|
267
|
+
SelectFieldValue(field: ComparisonFieldRow, columnIndex: number): void;
|
|
268
|
+
/** Check if all fields are selected from a given column */
|
|
269
|
+
AllFieldsSelectedFrom(columnIndex: number): boolean;
|
|
270
|
+
/** Count how many fields are cherry-picked from non-survivor columns */
|
|
271
|
+
CherryPickedCount(): number;
|
|
272
|
+
/** Get the name of the surviving record */
|
|
273
|
+
SurvivorName(): string;
|
|
274
|
+
/** Get the primary key display string for the surviving record */
|
|
275
|
+
SurvivorKeyDisplay(): string;
|
|
276
|
+
/** Get dependencies for a column (0 = source, 1+ = match index) */
|
|
277
|
+
GetDepsForColumn(columnIndex: number): RecordDependency[];
|
|
278
|
+
/** Get deps grouped by related entity for a column */
|
|
279
|
+
GetGroupedDeps(columnIndex: number): Array<{
|
|
280
|
+
Entity: string;
|
|
281
|
+
Count: number;
|
|
282
|
+
}>;
|
|
283
|
+
/** Cached dependent records loaded on demand, keyed by "columnIndex::entityName" */
|
|
284
|
+
private depRecordsCache;
|
|
285
|
+
/** Tracks which entity groups are currently loading */
|
|
286
|
+
private depRecordsLoading;
|
|
287
|
+
/** Get cached dependent records for an entity group (empty until expanded and loaded) */
|
|
288
|
+
GetDepRecords(columnIndex: number, entityName: string): Array<{
|
|
289
|
+
Name: string;
|
|
290
|
+
PrimaryKey: CompositeKey;
|
|
291
|
+
EntityName: string;
|
|
292
|
+
}>;
|
|
293
|
+
/** Check if dep records are loading for an entity group */
|
|
294
|
+
IsDepRecordsLoading(columnIndex: number, entityName: string): boolean;
|
|
295
|
+
/** Navigate to a dependent record */
|
|
296
|
+
OpenDepRecord(record: {
|
|
297
|
+
EntityName: string;
|
|
298
|
+
PrimaryKey: CompositeKey;
|
|
299
|
+
}): void;
|
|
300
|
+
/** Toggle expanded state for a specific entity group — lazy-loads records on first expand */
|
|
301
|
+
ToggleDepEntityGroup(columnIndex: number, entityName: string): Promise<void>;
|
|
302
|
+
/** Load dependent records for an entity group via RunView */
|
|
303
|
+
private loadDepRecordsForGroup;
|
|
304
|
+
/** Check if a specific entity group is expanded */
|
|
305
|
+
IsDepEntityGroupExpanded(columnIndex: number, entityName: string): boolean;
|
|
306
|
+
/** Get total dependency count for a column */
|
|
307
|
+
GetTotalDeps(columnIndex: number): number;
|
|
308
|
+
/** Toggle expanded state for dependency details in a column */
|
|
309
|
+
ToggleDepsExpanded(columnIndex: number): void;
|
|
310
|
+
/** Check if dependency details are expanded for a column */
|
|
311
|
+
IsDepsExpanded(columnIndex: number): boolean;
|
|
312
|
+
/** Get the column index with the most dependencies */
|
|
313
|
+
GetMaxDepsColumnIndex(): number;
|
|
314
|
+
/** Get the composite key string for a column index */
|
|
315
|
+
private getCompositeKeyStringForColumn;
|
|
316
|
+
/** Get the name for a column index */
|
|
317
|
+
GetColumnName(columnIndex: number): string;
|
|
318
|
+
/** Open the merge confirmation panel */
|
|
319
|
+
OpenMergeConfirm(): void;
|
|
320
|
+
/** Close the merge confirmation panel */
|
|
321
|
+
CloseMergeConfirm(): void;
|
|
322
|
+
/** Get the list of cherry-picked field overrides (fields picked from non-survivor columns) */
|
|
323
|
+
GetCherryPickedFields(): Array<{
|
|
324
|
+
FieldName: string;
|
|
325
|
+
DisplayName: string;
|
|
326
|
+
Value: string;
|
|
327
|
+
SourceName: string;
|
|
328
|
+
}>;
|
|
329
|
+
/** Get non-surviving columns with their dependency counts */
|
|
330
|
+
GetNonSurvivorColumns(): Array<{
|
|
331
|
+
ColumnIndex: number;
|
|
332
|
+
Name: string;
|
|
333
|
+
DepCount: number;
|
|
334
|
+
}>;
|
|
335
|
+
/** Execute the merge operation */
|
|
336
|
+
ExecuteMerge(): Promise<void>;
|
|
337
|
+
/** Build CompositeKey array for non-surviving records */
|
|
338
|
+
private buildNonSurvivorKeys;
|
|
339
|
+
/** Approve an individual match */
|
|
340
|
+
ApproveIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
341
|
+
/** Reject an individual match */
|
|
342
|
+
RejectIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
343
|
+
/**
|
|
344
|
+
* Load the actual entity records for the source + all matches in one RunView call.
|
|
345
|
+
* Record IDs are stored as composite key strings (e.g., "ID|uuid") — we parse each
|
|
346
|
+
* into a CompositeKey, generate WHERE clauses, and OR them together for one query.
|
|
347
|
+
* Results stored in comparisonRecords map keyed by the composite key string.
|
|
348
|
+
*/
|
|
349
|
+
private loadComparisonRecords;
|
|
350
|
+
/**
|
|
351
|
+
* Load dependencies for all records (source + matches) in parallel.
|
|
352
|
+
* Each record's deps are stored in ComparisonDependencies keyed by composite key string.
|
|
353
|
+
*/
|
|
354
|
+
private loadComparisonDependencies;
|
|
355
|
+
/** Get the field value for a record from the loaded entity records map */
|
|
356
|
+
private getRecordFieldValue;
|
|
357
|
+
/** Build comparison data from loaded entity records */
|
|
358
|
+
private buildComparisonData;
|
|
359
|
+
/** Parse RecordMetadata JSON from a detail or match entity */
|
|
360
|
+
private parseRecordMetadata;
|
|
361
|
+
/** Build top N match summaries with parsed names and scores */
|
|
362
|
+
private buildTopMatchSummaries;
|
|
363
|
+
/**
|
|
364
|
+
* Determine the dominant approval status for a group of matches.
|
|
365
|
+
* If any match is Pending, the group is Pending.
|
|
366
|
+
* Otherwise, if all are Approved, the group is Approved.
|
|
367
|
+
* If all are Rejected, the group is Rejected.
|
|
368
|
+
* Mixed Approved/Rejected defaults to Pending.
|
|
369
|
+
*/
|
|
370
|
+
private computeDominantApprovalStatus;
|
|
371
|
+
/** Find the latest MatchedAt date across a set of matches */
|
|
372
|
+
private computeLatestMatchDate;
|
|
373
|
+
/** Apply filters and distribute groups into Kanban columns */
|
|
374
|
+
private applyFilters;
|
|
375
|
+
/** Update the ApprovalStatus of all matches within a group and re-sort. */
|
|
376
|
+
private updateGroupApprovalStatus;
|
|
377
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DuplicateDetectionResourceComponent, never>;
|
|
378
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DuplicateDetectionResourceComponent, "app-duplicate-detection-resource", never, { "EmbeddedMode": { "alias": "EmbeddedMode"; "required": false; }; }, {}, never, never, false, never>;
|
|
379
|
+
}
|
|
380
|
+
export declare function LoadDuplicateDetectionResource(): void;
|
|
381
|
+
export {};
|
|
382
|
+
//# sourceMappingURL=duplicate-detection-resource.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|