@memberjunction/ng-dashboards 5.22.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.
Files changed (204) hide show
  1. package/README.md +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +275 -64
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2645 -436
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +240 -6
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2166 -256
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +1 -2
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +12 -27
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  27. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  28. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  29. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  30. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  31. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  32. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  33. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  34. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  35. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  36. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  37. package/dist/Actions/components/actions-list-view.component.js +82 -96
  38. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  39. package/dist/Actions/components/actions-overview.component.js +130 -134
  40. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  41. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  42. package/dist/Actions/components/categories-list-view.component.js +40 -46
  43. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  44. package/dist/Actions/components/code-management.component.js +2 -2
  45. package/dist/Actions/components/code-management.component.js.map +1 -1
  46. package/dist/Actions/components/entity-integration.component.js +2 -2
  47. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  49. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  50. package/dist/Actions/components/executions-list-view.component.js +2 -2
  51. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  53. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  54. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  55. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  56. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  57. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  58. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  59. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  61. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  63. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  65. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  66. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  67. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  68. package/dist/Actions/components/security-permissions.component.js +2 -2
  69. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  70. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  71. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  72. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  73. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  74. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  75. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  76. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  77. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  78. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  79. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  81. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  83. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  84. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  88. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  96. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  98. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  100. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  102. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  104. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  105. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  106. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  107. package/dist/Home/home-dashboard.component.js +4 -4
  108. package/dist/Home/home-dashboard.component.js.map +1 -1
  109. package/dist/Integration/components/connections/connections.component.js +4 -4
  110. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  111. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +246 -259
  112. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  113. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  114. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  115. package/dist/Integration/integration.module.d.ts +6 -10
  116. package/dist/Integration/integration.module.d.ts.map +1 -1
  117. package/dist/Integration/integration.module.js +12 -20
  118. package/dist/Integration/integration.module.js.map +1 -1
  119. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +106 -0
  120. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  121. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +607 -0
  122. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  123. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +7 -2
  124. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  125. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +59 -31
  126. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  127. package/dist/KnowledgeHub/index.d.ts +1 -0
  128. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  129. package/dist/KnowledgeHub/index.js +1 -0
  130. package/dist/KnowledgeHub/index.js.map +1 -1
  131. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  132. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  133. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  134. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  135. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  136. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  137. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  138. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  139. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  140. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  141. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  142. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  143. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  144. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  145. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  146. package/dist/MCP/mcp-dashboard.component.js +2 -2
  147. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  148. package/dist/MCP/mcp.module.d.ts +6 -9
  149. package/dist/MCP/mcp.module.d.ts.map +1 -1
  150. package/dist/MCP/mcp.module.js +20 -22
  151. package/dist/MCP/mcp.module.js.map +1 -1
  152. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  153. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  154. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  155. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  156. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  157. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  158. package/dist/Testing/testing-dashboard.component.js +9 -10
  159. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  160. package/dist/actions-dashboards.module.d.ts +8 -13
  161. package/dist/actions-dashboards.module.d.ts.map +1 -1
  162. package/dist/actions-dashboards.module.js +6 -27
  163. package/dist/actions-dashboards.module.js.map +1 -1
  164. package/dist/ai-dashboards.module.d.ts +16 -20
  165. package/dist/ai-dashboards.module.d.ts.map +1 -1
  166. package/dist/ai-dashboards.module.js +23 -44
  167. package/dist/ai-dashboards.module.js.map +1 -1
  168. package/dist/communication-dashboards.module.d.ts +4 -8
  169. package/dist/communication-dashboards.module.d.ts.map +1 -1
  170. package/dist/communication-dashboards.module.js +0 -19
  171. package/dist/communication-dashboards.module.js.map +1 -1
  172. package/dist/component-studio-dashboards.module.d.ts +7 -11
  173. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  174. package/dist/component-studio-dashboards.module.js +22 -34
  175. package/dist/component-studio-dashboards.module.js.map +1 -1
  176. package/dist/core-dashboards.module.d.ts +12 -18
  177. package/dist/core-dashboards.module.d.ts.map +1 -1
  178. package/dist/core-dashboards.module.js +15 -31
  179. package/dist/core-dashboards.module.js.map +1 -1
  180. package/dist/credentials-dashboards.module.d.ts +5 -8
  181. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  182. package/dist/credentials-dashboards.module.js +3 -19
  183. package/dist/credentials-dashboards.module.js.map +1 -1
  184. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  185. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  186. package/dist/data-explorer-dashboards.module.js +0 -27
  187. package/dist/data-explorer-dashboards.module.js.map +1 -1
  188. package/dist/lists-dashboards.module.d.ts +5 -8
  189. package/dist/lists-dashboards.module.d.ts.map +1 -1
  190. package/dist/lists-dashboards.module.js +3 -19
  191. package/dist/lists-dashboards.module.js.map +1 -1
  192. package/dist/public-api.d.ts +1 -0
  193. package/dist/public-api.d.ts.map +1 -1
  194. package/dist/public-api.js +1 -0
  195. package/dist/public-api.js.map +1 -1
  196. package/dist/scheduling-dashboards.module.d.ts +6 -10
  197. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  198. package/dist/scheduling-dashboards.module.js +3 -23
  199. package/dist/scheduling-dashboards.module.js.map +1 -1
  200. package/dist/testing-dashboards.module.d.ts +7 -13
  201. package/dist/testing-dashboards.module.d.ts.map +1 -1
  202. package/dist/testing-dashboards.module.js +0 -27
  203. package/dist/testing-dashboards.module.js.map +1 -1
  204. package/package.json +47 -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
- * Loads data from MJ: Duplicate Runs, MJ: Duplicate Run Details, and
7
- * MJ: Duplicate Run Detail Matches entities.
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,66 @@ 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 {
36
82
  private cdr;
83
+ private navigationService;
37
84
  private destroy$;
38
85
  private filterSubject;
39
86
  IsLoading: boolean;
40
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;
41
114
  Runs: MJDuplicateRunEntity[];
42
115
  Details: MJDuplicateRunDetailEntity[];
43
116
  Matches: MJDuplicateRunDetailMatchEntity[];
@@ -47,6 +120,17 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
47
120
  RejectedGroups: DuplicateGroup[];
48
121
  Filters: DuplicateFilter;
49
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);
50
134
  /** Whether this component is embedded inside the Knowledge Hub shell */
51
135
  EmbeddedMode: boolean;
52
136
  /** View mode: 'kanban' (card board) or 'table' (paged grid) */
@@ -85,6 +169,8 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
85
169
  get PendingCount(): number;
86
170
  get ApprovedCount(): number;
87
171
  get RejectedCount(): number;
172
+ /** Get selected entity document threshold info */
173
+ get SelectedDocumentThresholds(): EntityDocumentOption | null;
88
174
  ngAfterViewInit(): Promise<void>;
89
175
  ngOnDestroy(): void;
90
176
  GetResourceDisplayName(_data: ResourceData): Promise<string>;
@@ -93,6 +179,11 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
93
179
  * Loads all duplicate run data and builds the Kanban groups.
94
180
  */
95
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>;
96
187
  /**
97
188
  * Approves all matches within a duplicate group by updating each match's ApprovalStatus.
98
189
  */
@@ -101,8 +192,28 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
101
192
  * Rejects all matches within a duplicate group by updating each match's ApprovalStatus.
102
193
  */
103
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;
104
206
  /** Handle filter changes with debounce */
105
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;
106
217
  /** Clear all filters */
107
218
  ClearFilters(): void;
108
219
  /** Returns the CSS class for a match score indicator */
@@ -114,6 +225,23 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
114
225
  /** Whether any filters are active */
115
226
  get HasActiveFilters(): boolean;
116
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;
117
245
  /** Extract unique entity names from loaded runs */
118
246
  private extractEntityNames;
119
247
  /**
@@ -123,6 +251,115 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
123
251
  private buildGroups;
124
252
  /** Find the highest match probability across a set of matches */
125
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;
126
363
  /**
127
364
  * Determine the dominant approval status for a group of matches.
128
365
  * If any match is Pending, the group is Pending.
@@ -135,10 +372,7 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
135
372
  private computeLatestMatchDate;
136
373
  /** Apply filters and distribute groups into Kanban columns */
137
374
  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
- */
375
+ /** Update the ApprovalStatus of all matches within a group and re-sort. */
142
376
  private updateGroupApprovalStatus;
143
377
  static ɵfac: i0.ɵɵFactoryDeclaration<DuplicateDetectionResourceComponent, never>;
144
378
  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":"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"}
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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"}