@memberjunction/ng-dashboards 5.23.0 → 5.25.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/dist/AI/components/agents/agent-configuration.component.d.ts +15 -33
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +233 -493
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +2 -2
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +7 -7
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +717 -8
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7166 -1889
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +50 -4
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +759 -491
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts +4 -5
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +14 -15
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +4 -4
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +5 -5
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +4 -4
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +5 -5
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +2 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +1 -0
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +2 -3
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +9 -11
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +62 -7
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +825 -359
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +2 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +2 -0
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +4 -5
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +11 -12
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.d.ts +2 -3
- package/dist/Actions/components/code-management.component.d.ts.map +1 -1
- package/dist/Actions/components/code-management.component.js +4 -6
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.d.ts +2 -3
- package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +4 -6
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +4 -5
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +10 -11
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +13 -12
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +39 -66
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.d.ts +2 -3
- package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +4 -6
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.d.ts +2 -3
- package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +4 -6
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.d.ts +112 -0
- package/dist/ApplicationRoles/application-roles-resource.component.d.ts.map +1 -0
- package/dist/ApplicationRoles/application-roles-resource.component.js +532 -0
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -0
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +1 -0
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +4 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +4 -1
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +4 -1
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +4 -1
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +4 -1
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +2 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +2 -0
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts +2 -3
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +10 -11
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +2 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +2 -0
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts +4 -4
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +8 -9
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +2 -3
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +11 -12
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +1 -0
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +2 -3
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +9 -10
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +2 -2
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +23 -15
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +167 -213
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +68 -32
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +470 -437
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +10 -3
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +35 -11
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +12 -3
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js +5 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +4 -4
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +4 -5
- 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 +2 -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 +3 -0
- 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 +2 -0
- 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 +3 -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 +3 -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 +3 -0
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +412 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4267 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +39 -4
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +187 -13
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +13 -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 +329 -224
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +76 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +602 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +2 -1
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +2 -1
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +2 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +2 -0
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts +2 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +2 -0
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +2 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +2 -0
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +2 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +2 -0
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +7 -28
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +25 -107
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
- package/dist/MCP/mcp-resource.component.js +1 -0
- package/dist/MCP/mcp-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +10 -23
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +41 -103
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +1 -0
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +1 -0
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +1 -0
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -4
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +9 -10
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +2 -0
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -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 +2 -0
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +2 -0
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +2 -0
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +2 -0
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +1 -0
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts +4 -4
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +9 -10
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.d.ts +2 -1
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +2 -0
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +4 -4
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +10 -11
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +2 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +2 -0
- package/dist/VersionHistory/components/restore-resource.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/ai-dashboards.module.d.ts +22 -18
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +29 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +19 -18
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +8 -0
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +2 -1
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +7 -3
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -1
- package/dist/public-api.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/package.json +47 -46
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +0 -85
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +0 -1
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +0 -461
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +0 -1
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
* pipeline triggering with real-time GraphQL subscription progress.
|
|
8
8
|
*/
|
|
9
9
|
import { OnDestroy, AfterViewInit } from '@angular/core';
|
|
10
|
+
import { Subject } from 'rxjs';
|
|
10
11
|
import { CompositeKey } from '@memberjunction/core';
|
|
11
12
|
import { TreeBranchConfig, TreeLeafConfig } from '@memberjunction/ng-trees';
|
|
12
|
-
import { ResourceData } from '@memberjunction/core-entities';
|
|
13
|
-
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
13
|
+
import { ResourceData, MJContentSourceTypeEntity_IContentSourceTypeField } from '@memberjunction/core-entities';
|
|
14
|
+
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
|
|
15
|
+
import { WordCloudItem } from '@memberjunction/ng-word-cloud';
|
|
14
16
|
import * as i0 from "@angular/core";
|
|
15
|
-
type TabName = 'pipeline' | 'sources' | 'types' | 'tags' | 'history';
|
|
17
|
+
type TabName = 'pipeline' | 'sources' | 'types' | 'tags' | 'taxonomy' | 'history';
|
|
16
18
|
interface NavItem {
|
|
17
19
|
Tab: TabName;
|
|
18
20
|
Icon: string;
|
|
@@ -66,6 +68,15 @@ interface SourceCard {
|
|
|
66
68
|
ContentFileTypeID: string;
|
|
67
69
|
EmbeddingModelID: string;
|
|
68
70
|
VectorIndexID: string;
|
|
71
|
+
EntityID: string;
|
|
72
|
+
EntityDocumentID: string;
|
|
73
|
+
RequiresFileType: boolean;
|
|
74
|
+
/** FK to ScheduledAction entity, null if no schedule configured */
|
|
75
|
+
ScheduledActionID: string | null;
|
|
76
|
+
/** Denormalized name of the linked ScheduledAction */
|
|
77
|
+
ScheduledActionName: string | null;
|
|
78
|
+
/** Human-readable schedule description (parsed from cron) */
|
|
79
|
+
ScheduleDescription: string | null;
|
|
69
80
|
}
|
|
70
81
|
interface ContentTypeCard {
|
|
71
82
|
ID: string;
|
|
@@ -115,6 +126,100 @@ interface DropdownOption {
|
|
|
115
126
|
ID: string;
|
|
116
127
|
Name: string;
|
|
117
128
|
}
|
|
129
|
+
/** G3: Content item duplicate pair for review */
|
|
130
|
+
interface ContentDuplicateRow {
|
|
131
|
+
ID: string;
|
|
132
|
+
ItemAName: string;
|
|
133
|
+
ItemASource: string;
|
|
134
|
+
ItemBName: string;
|
|
135
|
+
ItemBSource: string;
|
|
136
|
+
SimilarityScore: number;
|
|
137
|
+
DetectionMethod: string;
|
|
138
|
+
Status: 'Pending' | 'Confirmed' | 'Dismissed' | 'Merged';
|
|
139
|
+
}
|
|
140
|
+
/** D2/D3/D8: Per-source detail row for a specific pipeline run */
|
|
141
|
+
interface RunDetailRow {
|
|
142
|
+
SourceName: string;
|
|
143
|
+
SourceType: string;
|
|
144
|
+
Status: string;
|
|
145
|
+
StatusClass: string;
|
|
146
|
+
ItemsProcessed: number;
|
|
147
|
+
ItemsTagged: number;
|
|
148
|
+
ItemsVectorized: number;
|
|
149
|
+
ErrorCount: number;
|
|
150
|
+
TotalTokens: number;
|
|
151
|
+
TotalCost: number;
|
|
152
|
+
Duration: string;
|
|
153
|
+
}
|
|
154
|
+
type TaxonomySubTab = 'tree' | 'duplicates' | 'orphans' | 'treemap' | 'audit';
|
|
155
|
+
interface TaxTreeNode {
|
|
156
|
+
ID: string;
|
|
157
|
+
Name: string;
|
|
158
|
+
DisplayName: string;
|
|
159
|
+
Description: string;
|
|
160
|
+
ParentID: string | null;
|
|
161
|
+
Depth: number;
|
|
162
|
+
Children: TaxTreeNode[];
|
|
163
|
+
ItemCount: number;
|
|
164
|
+
AvgWeight: number;
|
|
165
|
+
HealthColor: 'green' | 'yellow' | 'red';
|
|
166
|
+
IsExpanded: boolean;
|
|
167
|
+
IsSelected: boolean;
|
|
168
|
+
FirstSeen: string;
|
|
169
|
+
}
|
|
170
|
+
interface TaxDuplicatePair {
|
|
171
|
+
TagA: string;
|
|
172
|
+
TagB: string;
|
|
173
|
+
TagAID: string;
|
|
174
|
+
TagBID: string;
|
|
175
|
+
Similarity: number;
|
|
176
|
+
SeverityClass: 'high' | 'moderate';
|
|
177
|
+
/** True when multiple Tag records share the same name (case-insensitive) */
|
|
178
|
+
IsExactDuplicate: boolean;
|
|
179
|
+
/** How many Tag records share this exact name (only set when IsExactDuplicate) */
|
|
180
|
+
ExactDuplicateCount: number;
|
|
181
|
+
/** All Tag IDs sharing the exact name (only set when IsExactDuplicate) */
|
|
182
|
+
AllIDs: string[];
|
|
183
|
+
}
|
|
184
|
+
interface TaxOrphanCard {
|
|
185
|
+
ID: string;
|
|
186
|
+
Name: string;
|
|
187
|
+
UsageCount: number;
|
|
188
|
+
AvgWeight: number;
|
|
189
|
+
FirstSeen: string;
|
|
190
|
+
LastSeen: string;
|
|
191
|
+
IsSelected: boolean;
|
|
192
|
+
}
|
|
193
|
+
interface TaxTreemapCell {
|
|
194
|
+
ID: string;
|
|
195
|
+
Name: string;
|
|
196
|
+
ItemCount: number;
|
|
197
|
+
ColorClass: string;
|
|
198
|
+
RowSpan: number;
|
|
199
|
+
}
|
|
200
|
+
/** Supported audit action types — matches DB Action values (lowercased) */
|
|
201
|
+
type TaxAuditAction = 'created' | 'merged' | 'moved' | 'deleted' | 'renamed' | 'deprecated' | 'descriptionchanged' | 'reactivated' | 'split';
|
|
202
|
+
interface TaxAuditEvent {
|
|
203
|
+
Type: TaxAuditAction;
|
|
204
|
+
Description: string;
|
|
205
|
+
TagRef: string;
|
|
206
|
+
User: string;
|
|
207
|
+
Timestamp: string;
|
|
208
|
+
DayHeader: string;
|
|
209
|
+
}
|
|
210
|
+
interface TaxHealthStat {
|
|
211
|
+
Total: number;
|
|
212
|
+
Healthy: number;
|
|
213
|
+
NeedAttention: number;
|
|
214
|
+
Orphaned: number;
|
|
215
|
+
Duplicates: number;
|
|
216
|
+
}
|
|
217
|
+
interface WeightedTag {
|
|
218
|
+
Tag: string;
|
|
219
|
+
Weight: number;
|
|
220
|
+
}
|
|
221
|
+
/** Status value for embedding or tagging pipeline phases */
|
|
222
|
+
type ItemPipelineStatus = 'Complete' | 'Processing' | 'Failed' | 'Pending';
|
|
118
223
|
interface ContentItemDetail {
|
|
119
224
|
ID: string;
|
|
120
225
|
Name: string;
|
|
@@ -125,12 +230,23 @@ interface ContentItemDetail {
|
|
|
125
230
|
URL: string;
|
|
126
231
|
TextContent: string;
|
|
127
232
|
Checksum: string;
|
|
128
|
-
Tags:
|
|
233
|
+
Tags: WeightedTag[];
|
|
129
234
|
CreatedAt: string;
|
|
130
235
|
UpdatedAt: string;
|
|
131
236
|
ContentSourceID: string;
|
|
237
|
+
ContentSourceTypeID: string;
|
|
132
238
|
StatusDot: 'complete' | 'processing' | 'error';
|
|
133
239
|
TagCount: number;
|
|
240
|
+
/** Whether this source type uses content/file type (false for Entity sources) */
|
|
241
|
+
RequiresContentType: boolean;
|
|
242
|
+
/** Entity record ID if source is entity type (for direct entity navigation) */
|
|
243
|
+
EntityRecordID: string | null;
|
|
244
|
+
/** Entity name if source is entity type */
|
|
245
|
+
EntityName: string | null;
|
|
246
|
+
/** Embedding pipeline status for this content item */
|
|
247
|
+
EmbeddingStatus: ItemPipelineStatus;
|
|
248
|
+
/** Tagging pipeline status for this content item */
|
|
249
|
+
TaggingStatus: ItemPipelineStatus;
|
|
134
250
|
}
|
|
135
251
|
interface SourceDetailInfo {
|
|
136
252
|
ID: string;
|
|
@@ -138,6 +254,7 @@ interface SourceDetailInfo {
|
|
|
138
254
|
SourceTypeName: string;
|
|
139
255
|
FileTypeName: string;
|
|
140
256
|
ContentTypeName: string;
|
|
257
|
+
RequiresFileType: boolean;
|
|
141
258
|
StatusClass: 'active' | 'error' | 'inactive';
|
|
142
259
|
StatusLabel: string;
|
|
143
260
|
Icon: string;
|
|
@@ -154,10 +271,12 @@ interface SourceDetailInfo {
|
|
|
154
271
|
}
|
|
155
272
|
type FormMode = 'none' | 'add-source' | 'edit-source' | 'add-type' | 'edit-type';
|
|
156
273
|
export declare class AutotaggingPipelineResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
|
|
157
|
-
|
|
274
|
+
protected destroy$: Subject<void>;
|
|
158
275
|
private cdr;
|
|
159
|
-
|
|
276
|
+
protected navigationService: NavigationService;
|
|
160
277
|
IsLoading: boolean;
|
|
278
|
+
private totalContentItemCount;
|
|
279
|
+
private totalContentTagCount;
|
|
161
280
|
ActiveTab: TabName;
|
|
162
281
|
private tabDataLoaded;
|
|
163
282
|
NavItems: NavItem[];
|
|
@@ -166,24 +285,143 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
166
285
|
FeedItems: FeedItem[];
|
|
167
286
|
SourceMinis: SourceMini[];
|
|
168
287
|
TrendingTags: TagCloudItem[];
|
|
288
|
+
FeedSearchQuery: string;
|
|
289
|
+
FeedPage: number;
|
|
290
|
+
readonly FeedPageSize = 20;
|
|
291
|
+
/** Sort order for the feed: 'newest' (default) or 'oldest' */
|
|
292
|
+
FeedSortOrder: 'newest' | 'oldest';
|
|
293
|
+
/** Feed items filtered by search query and sorted */
|
|
294
|
+
get FilteredFeedItems(): FeedItem[];
|
|
295
|
+
/** Toggle feed sort order */
|
|
296
|
+
ToggleFeedSort(): void;
|
|
297
|
+
/** Paginated feed items for the current page */
|
|
298
|
+
get PaginatedFeedItems(): FeedItem[];
|
|
299
|
+
/** Total pages for the feed */
|
|
300
|
+
get FeedTotalPages(): number;
|
|
301
|
+
/** Handle feed search input change */
|
|
302
|
+
OnFeedSearchChange(): void;
|
|
303
|
+
/** Navigate to previous feed page */
|
|
304
|
+
FeedPrevPage(): void;
|
|
305
|
+
/** Navigate to next feed page */
|
|
306
|
+
FeedNextPage(): void;
|
|
307
|
+
/** Get the index in the original FeedItems array for a paginated item */
|
|
308
|
+
GetFeedItemOriginalIndex(item: FeedItem): number;
|
|
169
309
|
IsRunning: boolean;
|
|
310
|
+
IsPaused: boolean;
|
|
170
311
|
RunProgress: number;
|
|
171
312
|
RunStage: string;
|
|
172
313
|
RunCurrentItem: string;
|
|
314
|
+
/** The current pipeline run ID (from GraphQL subscription) */
|
|
315
|
+
CurrentPipelineRunID: string | null;
|
|
316
|
+
/** The process run ID (server-side ContentProcessRun) for pause/cancel/resume */
|
|
317
|
+
CurrentProcessRunID: string | null;
|
|
318
|
+
ShowPipelineConfig: boolean;
|
|
319
|
+
PipelineConfig: {
|
|
320
|
+
Pipeline?: {
|
|
321
|
+
BatchSize?: number;
|
|
322
|
+
MaxConcurrentBatches?: number;
|
|
323
|
+
DelayBetweenBatchesMs?: number;
|
|
324
|
+
ResumeFromLastBatch?: boolean;
|
|
325
|
+
ErrorThresholdPercent?: number;
|
|
326
|
+
};
|
|
327
|
+
RateLimits?: {
|
|
328
|
+
LLM?: {
|
|
329
|
+
RequestsPerMinute?: number;
|
|
330
|
+
TokensPerMinute?: number;
|
|
331
|
+
};
|
|
332
|
+
Embedding?: {
|
|
333
|
+
RequestsPerMinute?: number;
|
|
334
|
+
TokensPerMinute?: number;
|
|
335
|
+
};
|
|
336
|
+
VectorDB?: {
|
|
337
|
+
RequestsPerMinute?: number;
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
TogglePipelineConfig(): void;
|
|
342
|
+
private persistClassifyPreferences;
|
|
343
|
+
private loadClassifyPreferences;
|
|
344
|
+
FormatTokenCount(tokens: number): string;
|
|
173
345
|
SourceCards: SourceCard[];
|
|
346
|
+
ContentDuplicates: ContentDuplicateRow[];
|
|
347
|
+
IsLoadingDuplicates: boolean;
|
|
174
348
|
ContentTypeCards: ContentTypeCard[];
|
|
175
349
|
TagRows: TagRow[];
|
|
176
350
|
TagCloud: TagCloudItem[];
|
|
351
|
+
TagCloudWordItems: WordCloudItem[];
|
|
177
352
|
TagsBySource: TagBySource[];
|
|
178
353
|
TagSearchQuery: string;
|
|
179
354
|
FilteredTagRows: TagRow[];
|
|
355
|
+
SelectedDrillDownTag: string | null;
|
|
356
|
+
TagDrillDownItems: {
|
|
357
|
+
ID: string;
|
|
358
|
+
Name: string;
|
|
359
|
+
SourceName: string;
|
|
360
|
+
Weight: number;
|
|
361
|
+
UpdatedAt: string;
|
|
362
|
+
FeedIndex: number;
|
|
363
|
+
}[];
|
|
180
364
|
RunHistoryRows: RunHistoryRow[];
|
|
181
365
|
HistorySourceFilter: string;
|
|
182
366
|
HistoryStatusFilter: string;
|
|
183
367
|
FilteredRunRows: RunHistoryRow[];
|
|
184
368
|
HistorySourceOptions: string[];
|
|
369
|
+
SelectedRunID: string | null;
|
|
370
|
+
RunDetailRows: RunDetailRow[];
|
|
371
|
+
IsLoadingRunDetail: boolean;
|
|
372
|
+
LiveRunDetailRows: RunDetailRow[];
|
|
373
|
+
IsLoadingLiveDetails: boolean;
|
|
374
|
+
TaxSubTab: TaxonomySubTab;
|
|
375
|
+
TaxTreeNodes: TaxTreeNode[];
|
|
376
|
+
TaxFlatNodes: TaxTreeNode[];
|
|
377
|
+
TaxFilteredNodes: TaxTreeNode[];
|
|
378
|
+
TaxSelectedNode: TaxTreeNode | null;
|
|
379
|
+
TaxTreeSearch: string;
|
|
380
|
+
TaxDuplicates: TaxDuplicatePair[];
|
|
381
|
+
TaxOrphans: TaxOrphanCard[];
|
|
382
|
+
TaxAllOrphansSelected: boolean;
|
|
383
|
+
TaxTreemapCells: TaxTreemapCell[];
|
|
384
|
+
TaxAuditEvents: TaxAuditEvent[];
|
|
385
|
+
TaxAuditFilterTypes: Set<string>;
|
|
386
|
+
TaxHealth: TaxHealthStat;
|
|
387
|
+
TaxRecentItems: {
|
|
388
|
+
Name: string;
|
|
389
|
+
Weight: number;
|
|
390
|
+
Date: string;
|
|
391
|
+
Icon: string;
|
|
392
|
+
}[];
|
|
393
|
+
TaxTreemapKPIs: {
|
|
394
|
+
Label: string;
|
|
395
|
+
Value: string;
|
|
396
|
+
}[];
|
|
397
|
+
TaxIsEditing: boolean;
|
|
398
|
+
ShowCreateTagDialog: boolean;
|
|
399
|
+
CreateTagName: string;
|
|
400
|
+
CreateTagDescription: string;
|
|
401
|
+
CreateTagParentID: string | null;
|
|
402
|
+
/** Label shown in the create dialog to indicate context (e.g., "under AI Agent") */
|
|
403
|
+
CreateTagParentLabel: string;
|
|
404
|
+
TaxMultiSelectMode: boolean;
|
|
405
|
+
TaxSelectedIDs: Set<string>;
|
|
406
|
+
/** The node currently being dragged over (drop target highlight) */
|
|
407
|
+
TaxDragOverNodeID: string | null;
|
|
408
|
+
/** True while a drag-reparent operation is saving */
|
|
409
|
+
TaxTreeSaving: boolean;
|
|
410
|
+
/** Count of high-confidence duplicate pairs (>85% similarity) */
|
|
411
|
+
get TaxHighConfidenceDupeCount(): number;
|
|
412
|
+
/** Count of moderate-confidence duplicate pairs (70-85% similarity) */
|
|
413
|
+
get TaxModerateDupeCount(): number;
|
|
414
|
+
TaxEditName: string;
|
|
415
|
+
TaxEditDescription: string;
|
|
416
|
+
private tagsRaw;
|
|
417
|
+
private taggedItemsRaw;
|
|
418
|
+
private tagAuditLogsRaw;
|
|
419
|
+
/** Cached per-tag aggregates from server-side SQL (weights + counts) */
|
|
420
|
+
private tagAggregateWeights;
|
|
421
|
+
private tagAggregateCounts;
|
|
185
422
|
FormMode: FormMode;
|
|
186
423
|
FormSaving: boolean;
|
|
424
|
+
ShowNoContentTypeWarning: boolean;
|
|
187
425
|
FormSourceName: string;
|
|
188
426
|
FormSourceTypeID: string;
|
|
189
427
|
FormContentTypeID: string;
|
|
@@ -198,13 +436,129 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
198
436
|
EditingTypeID: string;
|
|
199
437
|
FormTypeEmbeddingModelID: string;
|
|
200
438
|
FormTypeVectorIndexID: string;
|
|
439
|
+
FormSourceEntityID: string;
|
|
440
|
+
FormSourceEntityDocID: string;
|
|
201
441
|
FormSourceEmbeddingModelID: string;
|
|
202
442
|
FormSourceVectorIndexID: string;
|
|
443
|
+
/** Whether the schedule creation dialog is visible */
|
|
444
|
+
ShowScheduleDialog: boolean;
|
|
445
|
+
/** Whether a schedule save operation is in progress */
|
|
446
|
+
ScheduleSaving: boolean;
|
|
447
|
+
/** Source card currently being scheduled */
|
|
448
|
+
SchedulingSourceCard: SourceCard | null;
|
|
449
|
+
/** Cron expression for the schedule form */
|
|
450
|
+
ScheduleCron: string;
|
|
451
|
+
/** Whether the schedule should be active immediately */
|
|
452
|
+
ScheduleEnabled: boolean;
|
|
453
|
+
/** Whether a generic confirmation overlay is visible */
|
|
454
|
+
ShowConfirmDialog: boolean;
|
|
455
|
+
/** Title text for the confirmation dialog */
|
|
456
|
+
ConfirmDialogTitle: string;
|
|
457
|
+
/** Body message for the confirmation dialog */
|
|
458
|
+
ConfirmDialogMessage: string;
|
|
459
|
+
/** Callback invoked when user confirms */
|
|
460
|
+
private confirmDialogAction;
|
|
461
|
+
/** Whether the split-tag dialog is visible */
|
|
462
|
+
ShowSplitDialog: boolean;
|
|
463
|
+
/** Comma-separated new child tag names for the split operation */
|
|
464
|
+
SplitChildNames: string;
|
|
465
|
+
/** The node currently being split */
|
|
466
|
+
private splitTargetNode;
|
|
467
|
+
/** Whether the move-tag dialog is visible */
|
|
468
|
+
ShowMoveDialog: boolean;
|
|
469
|
+
/** Selected new parent tag ID for the move operation */
|
|
470
|
+
MoveNewParentID: string | null;
|
|
471
|
+
/** The node currently being moved */
|
|
472
|
+
private moveTargetNode;
|
|
473
|
+
ShowMergeIntoDialog: boolean;
|
|
474
|
+
MergeSourceTag: TaxTreeNode | null;
|
|
475
|
+
MergeTargetID: string | null;
|
|
476
|
+
MergeTargetData: {
|
|
477
|
+
ID: string;
|
|
478
|
+
Label: string;
|
|
479
|
+
}[];
|
|
480
|
+
/** Whether the treemap drill-in panel is visible */
|
|
481
|
+
ShowTreemapDrillIn: boolean;
|
|
482
|
+
/** Tag node currently displayed in treemap drill-in */
|
|
483
|
+
TreemapDrillInNode: TaxTreeNode | null;
|
|
484
|
+
/** Cached ScheduledAction entities, keyed by normalized ID */
|
|
485
|
+
private scheduledActionsCache;
|
|
486
|
+
/**
|
|
487
|
+
* Whether the currently selected source type is "Entity", which switches
|
|
488
|
+
* the URL field to Entity/EntityDocument pickers.
|
|
489
|
+
*/
|
|
490
|
+
/** Whether the selected source type is the Entity type (name-based check) */
|
|
491
|
+
get IsEntitySourceTypeSelected(): boolean;
|
|
492
|
+
/** Whether the selected source type requires Content Type / File Type selection */
|
|
493
|
+
get SelectedSourceTypeRequiresContentType(): boolean;
|
|
494
|
+
/** Entities that have at least one EntityDocument configured */
|
|
495
|
+
get EntitiesWithDocuments(): {
|
|
496
|
+
ID: string;
|
|
497
|
+
Name: string;
|
|
498
|
+
}[];
|
|
499
|
+
/** Entity documents for the selected entity */
|
|
500
|
+
get EntityDocOptionsForSelectedEntity(): {
|
|
501
|
+
ID: string;
|
|
502
|
+
Name: string;
|
|
503
|
+
}[];
|
|
504
|
+
/** Stores source-type-specific config values keyed by RequiredFields[].Key */
|
|
505
|
+
FormSourceSpecificConfig: Record<string, string>;
|
|
506
|
+
/** Available MJ Storage provider keys for the storage-provider-picker widget */
|
|
507
|
+
StorageProviderOptions: string[];
|
|
508
|
+
/**
|
|
509
|
+
* The RequiredFields array from the selected source type's ConfigurationObject.
|
|
510
|
+
* Drives dynamic form rendering — each field becomes a widget.
|
|
511
|
+
*/
|
|
512
|
+
get SelectedSourceTypeFields(): MJContentSourceTypeEntity_IContentSourceTypeField[];
|
|
513
|
+
/**
|
|
514
|
+
* Get dependent options for a field (e.g., entity-doc-picker depends on entity-picker).
|
|
515
|
+
* Returns entity documents for the entity selected in the dependent field.
|
|
516
|
+
*/
|
|
517
|
+
GetDependentOptions(field: MJContentSourceTypeEntity_IContentSourceTypeField): {
|
|
518
|
+
ID: string;
|
|
519
|
+
Name: string;
|
|
520
|
+
}[];
|
|
521
|
+
/**
|
|
522
|
+
* Handle a source-specific field value change.
|
|
523
|
+
* For entity-picker: auto-select the first entity doc if only one exists.
|
|
524
|
+
*/
|
|
525
|
+
OnSourceFieldChanged(fieldKey: string): void;
|
|
203
526
|
SelectedFeedItem: ContentItemDetail | null;
|
|
204
527
|
ShowItemDetail: boolean;
|
|
205
528
|
SelectedSource: SourceDetailInfo | null;
|
|
206
529
|
ShowSourceDetail: boolean;
|
|
207
530
|
SourceDetailLoading: boolean;
|
|
531
|
+
/** Filter content items in source detail by pipeline status */
|
|
532
|
+
SourceDetailStatusFilter: ItemPipelineStatus | 'All';
|
|
533
|
+
/** Available status options for the filter dropdown */
|
|
534
|
+
readonly SourceDetailStatusOptions: (ItemPipelineStatus | 'All')[];
|
|
535
|
+
/** Current page index (0-based) for source detail content list */
|
|
536
|
+
SourceDetailPage: number;
|
|
537
|
+
/** Number of content items per page in source detail */
|
|
538
|
+
readonly SourceDetailPageSize = 10;
|
|
539
|
+
/**
|
|
540
|
+
* Returns source detail content items filtered by SourceDetailStatusFilter,
|
|
541
|
+
* then sliced to the current page.
|
|
542
|
+
*/
|
|
543
|
+
get FilteredSourceDetailItems(): ContentItemDetail[];
|
|
544
|
+
/** Total number of filtered items (before pagination) */
|
|
545
|
+
get FilteredSourceDetailTotal(): number;
|
|
546
|
+
/** Total pages for source detail pagination */
|
|
547
|
+
get SourceDetailTotalPages(): number;
|
|
548
|
+
/** Navigate to the previous page in source detail content list */
|
|
549
|
+
SourceDetailPrevPage(): void;
|
|
550
|
+
/** Navigate to the next page in source detail content list */
|
|
551
|
+
SourceDetailNextPage(): void;
|
|
552
|
+
/** Handle change of the source detail status filter dropdown */
|
|
553
|
+
OnSourceDetailStatusFilterChange(): void;
|
|
554
|
+
/**
|
|
555
|
+
* D4: Placeholder handler for retrying failed items in source detail.
|
|
556
|
+
* Re-runs the pipeline for the current source. In the future this could
|
|
557
|
+
* target only Failed items.
|
|
558
|
+
*/
|
|
559
|
+
RetryFailedItems(): void;
|
|
560
|
+
/** Returns the CSS class for a pipeline status badge color */
|
|
561
|
+
GetStatusBadgeClass(status: ItemPipelineStatus): string;
|
|
208
562
|
SourceTypeOptions: DropdownOption[];
|
|
209
563
|
ContentTypeOptions: DropdownOption[];
|
|
210
564
|
FileTypeOptions: DropdownOption[];
|
|
@@ -213,6 +567,8 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
213
567
|
VectorIndexOptions: DropdownOption[];
|
|
214
568
|
AIModelVendorBranch: TreeBranchConfig;
|
|
215
569
|
AllModelsLeaf: TreeLeafConfig;
|
|
570
|
+
/** Branch config filtered to only vendors that have at least one embedding model */
|
|
571
|
+
EmbeddingVendorBranch: TreeBranchConfig;
|
|
216
572
|
EmbeddingModelsLeaf: TreeLeafConfig;
|
|
217
573
|
private contentSourcesRaw;
|
|
218
574
|
private contentItemsRaw;
|
|
@@ -222,8 +578,23 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
222
578
|
private contentTypesRaw;
|
|
223
579
|
private contentFileTypesRaw;
|
|
224
580
|
private aiModelsRaw;
|
|
581
|
+
private static readonly PREFS_KEY;
|
|
225
582
|
ngAfterViewInit(): Promise<void>;
|
|
583
|
+
/**
|
|
584
|
+
* D9: Read incoming configuration from ResourceData (e.g. from Analytics tag navigation).
|
|
585
|
+
* Sets the initial tab and tag search query if provided.
|
|
586
|
+
*/
|
|
587
|
+
private applyIncomingConfiguration;
|
|
588
|
+
/**
|
|
589
|
+
* D9: If a tagSearch parameter was provided via configuration, switch to the tags tab
|
|
590
|
+
* and apply the search filter after tag data loads.
|
|
591
|
+
*/
|
|
592
|
+
private handleInitialTagSearch;
|
|
226
593
|
ngOnDestroy(): void;
|
|
594
|
+
/** Report current classify dashboard state to the agent */
|
|
595
|
+
private emitAgentContext;
|
|
596
|
+
/** Register client tools the agent can invoke on the Classify dashboard */
|
|
597
|
+
private registerAgentTools;
|
|
227
598
|
GetResourceDisplayName(_data: ResourceData): Promise<string>;
|
|
228
599
|
GetResourceIconClass(_data: ResourceData): Promise<string>;
|
|
229
600
|
SwitchTab(tab: TabName): Promise<void>;
|
|
@@ -234,9 +605,25 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
234
605
|
private buildPipelineStages;
|
|
235
606
|
private buildFeedItems;
|
|
236
607
|
private buildSourceMinis;
|
|
608
|
+
/**
|
|
609
|
+
* D6: Build trending tags weighted by recency (last 7 days).
|
|
610
|
+
* Counts tags from ContentItemTag records created in the last 7 days
|
|
611
|
+
* and weights by frequency. Falls back to all-time data if no recent tags.
|
|
612
|
+
*/
|
|
237
613
|
private buildTrendingTags;
|
|
614
|
+
/**
|
|
615
|
+
* Compute scored trending tags from a given set of tag records.
|
|
616
|
+
* Returns top 12 tags sorted by score (frequency x avg weight).
|
|
617
|
+
*/
|
|
618
|
+
private computeTrendingFromTags;
|
|
238
619
|
private loadSourcesData;
|
|
239
620
|
private buildSourceCards;
|
|
621
|
+
/** Resolve the entity record ID from the EntityRecordDocument for entity-sourced content items */
|
|
622
|
+
private resolveEntityRecordID;
|
|
623
|
+
/** Resolve the entity name for an entity-sourced content source */
|
|
624
|
+
private resolveEntityName;
|
|
625
|
+
/** Check if a source type's Configuration says RequiresFileType !== false */
|
|
626
|
+
private sourceTypeRequiresFileType;
|
|
240
627
|
private loadContentTypesData;
|
|
241
628
|
private buildContentTypeCards;
|
|
242
629
|
private loadTagLibraryData;
|
|
@@ -248,19 +635,104 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
248
635
|
/** Extract the ID string from a CompositeKey (from tree-dropdown ValueChange) */
|
|
249
636
|
FromCompositeKey(key: CompositeKey | CompositeKey[] | null): string;
|
|
250
637
|
FilterTags(): void;
|
|
638
|
+
/** Drill down into content items matching a specific tag */
|
|
639
|
+
DrillDownTag(tagName: string): void;
|
|
640
|
+
CloseDrillDownTag(): void;
|
|
251
641
|
private loadRunHistoryData;
|
|
252
642
|
private buildRunHistoryRows;
|
|
253
643
|
private buildHistorySourceOptions;
|
|
254
644
|
FilterRunHistory(): void;
|
|
645
|
+
/**
|
|
646
|
+
* D3/D8: Open the detail view for a specific run, loading ContentProcessRunDetail records.
|
|
647
|
+
*/
|
|
648
|
+
OpenRunDetail(runID: string): Promise<void>;
|
|
649
|
+
/** D3/D8: Close the run detail slide-in */
|
|
650
|
+
CloseRunDetail(): void;
|
|
651
|
+
/**
|
|
652
|
+
* D2/D3/D8: Load ContentProcessRunDetail records for a given run and map to RunDetailRow[].
|
|
653
|
+
*/
|
|
654
|
+
private loadRunDetailRows;
|
|
655
|
+
/**
|
|
656
|
+
* D2: Load live per-source progress for the currently running pipeline.
|
|
657
|
+
* Called when the pipeline is actively running.
|
|
658
|
+
*/
|
|
659
|
+
LoadLiveRunDetails(): Promise<void>;
|
|
660
|
+
/** Map raw ContentProcessRunDetail records to RunDetailRow[] */
|
|
661
|
+
private mapRunDetailRecords;
|
|
255
662
|
OpenAddSourceForm(): Promise<void>;
|
|
256
663
|
OpenEditSourceForm(card: SourceCard): Promise<void>;
|
|
257
664
|
SaveSource(): Promise<void>;
|
|
258
665
|
DeleteSource(card: SourceCard): Promise<void>;
|
|
666
|
+
/**
|
|
667
|
+
* Opens the schedule dialog pre-filled for the given source card.
|
|
668
|
+
* Defaults to a daily 2 AM cron expression.
|
|
669
|
+
* @param card The source card to create a schedule for
|
|
670
|
+
*/
|
|
671
|
+
OpenScheduleDialog(card: SourceCard): void;
|
|
672
|
+
/** Closes the schedule dialog without saving */
|
|
673
|
+
CloseScheduleDialog(): void;
|
|
674
|
+
/**
|
|
675
|
+
* Saves a new ScheduledAction for the current source, links it
|
|
676
|
+
* via ContentSource.ScheduledActionID, and creates the default
|
|
677
|
+
* action params for the Autotag and Vectorize action.
|
|
678
|
+
*/
|
|
679
|
+
SaveSchedule(): Promise<void>;
|
|
680
|
+
/**
|
|
681
|
+
* Removes the schedule from a source card by unlinking the ScheduledActionID.
|
|
682
|
+
* @param card The source card to remove the schedule from
|
|
683
|
+
*/
|
|
684
|
+
RemoveSchedule(card: SourceCard): Promise<void>;
|
|
685
|
+
/**
|
|
686
|
+
* Returns the human-readable schedule description for a source card.
|
|
687
|
+
* Used in the template to display schedule indicators.
|
|
688
|
+
*/
|
|
689
|
+
GetScheduleLabel(card: SourceCard): string;
|
|
690
|
+
/**
|
|
691
|
+
* Returns a human-readable preview of a cron expression for the schedule dialog.
|
|
692
|
+
* @param cron The cron expression to preview
|
|
693
|
+
*/
|
|
694
|
+
GetCronPreview(cron: string): string;
|
|
695
|
+
/** Looks up the cron expression for a cached ScheduledAction by ID */
|
|
696
|
+
private getScheduledActionCron;
|
|
697
|
+
/**
|
|
698
|
+
* Loads ScheduledAction entities referenced by content sources into the local cache.
|
|
699
|
+
* Called during initial data load so cron descriptions are available for card rendering.
|
|
700
|
+
*/
|
|
701
|
+
private loadScheduledActionsForSources;
|
|
702
|
+
/** Finds the Action ID for "Autotag and Vectorize Content" by querying actions */
|
|
703
|
+
private findAutotagActionID;
|
|
704
|
+
/**
|
|
705
|
+
* Creates a ScheduledActionParam that passes the source ID to the action.
|
|
706
|
+
* Looks up the "EntityNames" action param and sets the source ID as its value.
|
|
707
|
+
*/
|
|
708
|
+
private createSourceIDParam;
|
|
709
|
+
/**
|
|
710
|
+
* Links (or unlinks) a ScheduledAction to a ContentSource by updating
|
|
711
|
+
* the ContentSource.ScheduledActionID field.
|
|
712
|
+
*/
|
|
713
|
+
private linkScheduleToSource;
|
|
259
714
|
OpenAddTypeForm(): Promise<void>;
|
|
260
715
|
OpenEditTypeForm(card: ContentTypeCard): Promise<void>;
|
|
261
716
|
SaveContentType(): Promise<void>;
|
|
262
717
|
CloseForm(): void;
|
|
263
|
-
|
|
718
|
+
/**
|
|
719
|
+
* Run the pipeline for a specific content source only.
|
|
720
|
+
*/
|
|
721
|
+
RunPipelineForSource(contentSourceID: string): Promise<void>;
|
|
722
|
+
RunPipeline(contentSourceIDs?: string[]): Promise<void>;
|
|
723
|
+
/**
|
|
724
|
+
* Pause a running classification pipeline. The server sets CancellationRequested
|
|
725
|
+
* on the process run so the engine pauses gracefully after the current batch.
|
|
726
|
+
*/
|
|
727
|
+
PausePipeline(): Promise<void>;
|
|
728
|
+
/**
|
|
729
|
+
* Resume a paused classification pipeline from its last completed offset.
|
|
730
|
+
*/
|
|
731
|
+
ResumePipeline(): Promise<void>;
|
|
732
|
+
/**
|
|
733
|
+
* Cancel a running or paused pipeline. Uses pause mechanism and resets UI state.
|
|
734
|
+
*/
|
|
735
|
+
CancelPipeline(): Promise<void>;
|
|
264
736
|
private subscribeToPipelineProgress;
|
|
265
737
|
private updateStagesForActiveRun;
|
|
266
738
|
private formatStageName;
|
|
@@ -279,6 +751,10 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
279
751
|
private inferItemStatus;
|
|
280
752
|
formatRelativeTime(dateStr: string | null | undefined): string;
|
|
281
753
|
formatNumber(n: number): string;
|
|
754
|
+
/** Returns font size in rem for a tag based on its weight (0.0-1.0). Range: 0.7rem to 1.0rem */
|
|
755
|
+
TagFontSize(weight: number): string;
|
|
756
|
+
/** Format weight as percentage for display in tag chip */
|
|
757
|
+
FormatWeight(weight: number): string;
|
|
282
758
|
private formatShortDate;
|
|
283
759
|
private formatDate;
|
|
284
760
|
private computeDuration;
|
|
@@ -292,9 +768,23 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
292
768
|
private refreshContentTypesTab;
|
|
293
769
|
OpenFeedItemDetail(index: number): void;
|
|
294
770
|
OpenContentItemDetail(item: ContentItemDetail): void;
|
|
771
|
+
/** Open content item detail slide-in by content item ID (used from tag drill-down) */
|
|
772
|
+
OpenItemDetailByID(contentItemID: string): void;
|
|
295
773
|
CloseItemDetail(): void;
|
|
296
774
|
OpenRecordFromItem(item: ContentItemDetail): void;
|
|
297
|
-
|
|
775
|
+
/** Cache: EntityRecordDocument ID → RecordID */
|
|
776
|
+
private entityRecordDocCache;
|
|
777
|
+
/** Load ERD RecordIDs for entity-sourced content items */
|
|
778
|
+
private loadEntityRecordDocCache;
|
|
779
|
+
private getAllWeightedTagsForItem;
|
|
780
|
+
/**
|
|
781
|
+
* D4: Infer embedding and tagging pipeline statuses for a content item.
|
|
782
|
+
* Uses tag count and run history heuristics since dedicated status columns
|
|
783
|
+
* are not yet available on the ContentItem entity.
|
|
784
|
+
*/
|
|
785
|
+
private inferPipelineStatuses;
|
|
786
|
+
/** Map a raw status string to the ItemPipelineStatus union */
|
|
787
|
+
private mapStatusString;
|
|
298
788
|
OpenSourceDetail(card: SourceCard): Promise<void>;
|
|
299
789
|
CloseSourceDetail(): void;
|
|
300
790
|
OpenRecordFromSource(source: SourceDetailInfo): void;
|
|
@@ -305,9 +795,228 @@ export declare class AutotaggingPipelineResourceComponent extends BaseResourceCo
|
|
|
305
795
|
private loadRunHistoryForSource;
|
|
306
796
|
private resolveEmbeddingModelName;
|
|
307
797
|
private resolveVectorIndexName;
|
|
798
|
+
SwitchTaxSubTab(sub: TaxonomySubTab): void;
|
|
799
|
+
/**
|
|
800
|
+
* Loads all data needed by the Taxonomy Governance sub-tabs:
|
|
801
|
+
* Tags, Tagged Items, Tag Audit Logs, and cross-references content item tags.
|
|
802
|
+
*/
|
|
803
|
+
private loadTaxonomyData;
|
|
804
|
+
/**
|
|
805
|
+
* Builds the taxonomy tree from raw tag data, wiring up parent-child
|
|
806
|
+
* relationships and attaching item counts and average weights.
|
|
807
|
+
*/
|
|
808
|
+
private buildTaxTree;
|
|
809
|
+
private computeTreeDepths;
|
|
810
|
+
private propagateItemCounts;
|
|
811
|
+
private sortTreeNodes;
|
|
812
|
+
private flattenTree;
|
|
813
|
+
private computeTagHealth;
|
|
814
|
+
/**
|
|
815
|
+
* Counts the number of items referencing each tag, combining both
|
|
816
|
+
* Tagged Items and Content Item Tags. Uses NormalizeUUID for
|
|
817
|
+
* cross-platform UUID case consistency.
|
|
818
|
+
*/
|
|
819
|
+
private countItemsByTag;
|
|
820
|
+
/**
|
|
821
|
+
* Loads per-tag average weights and item counts via a server-side SQL aggregation.
|
|
822
|
+
* This avoids loading all 17K+ TaggedItem rows to the browser.
|
|
823
|
+
*/
|
|
824
|
+
/**
|
|
825
|
+
* Loads per-tag average weights and item counts via the "Tag Aggregates" saved query.
|
|
826
|
+
* This runs a SQL GROUP BY on the server, avoiding loading 17K+ TaggedItem rows to the browser.
|
|
827
|
+
*/
|
|
828
|
+
private loadTagAggregates;
|
|
829
|
+
ToggleTaxNode(node: TaxTreeNode): void;
|
|
830
|
+
SelectTaxNode(node: TaxTreeNode): void;
|
|
831
|
+
FilterTaxTree(): void;
|
|
832
|
+
private applyTaxTreeFilter;
|
|
833
|
+
GetTaxBreadcrumb(node: TaxTreeNode): {
|
|
834
|
+
ID: string;
|
|
835
|
+
Name: string;
|
|
836
|
+
}[];
|
|
837
|
+
NavigateToBreadcrumb(tagId: string): void;
|
|
838
|
+
private loadRecentItemsForTag;
|
|
839
|
+
StartEditTag(): void;
|
|
840
|
+
CancelEditTag(): void;
|
|
841
|
+
SaveEditTag(): Promise<void>;
|
|
842
|
+
MoveTag(node: TaxTreeNode, newParentId: string | null): Promise<void>;
|
|
843
|
+
DeleteTag(node: TaxTreeNode): void;
|
|
844
|
+
/** Open create tag dialog for a root-level tag */
|
|
845
|
+
OpenCreateRootTag(): void;
|
|
846
|
+
/** Open create tag dialog as child of the selected node */
|
|
847
|
+
OpenCreateChildTag(): void;
|
|
848
|
+
/** Open create tag dialog as child of a specific node */
|
|
849
|
+
OpenCreateChildTagFor(node: TaxTreeNode): void;
|
|
850
|
+
/** Close create tag dialog */
|
|
851
|
+
CloseCreateTagDialog(): void;
|
|
852
|
+
/** Save the new tag */
|
|
853
|
+
SaveNewTag(): Promise<void>;
|
|
854
|
+
/** Toggle multi-select mode on/off */
|
|
855
|
+
ToggleMultiSelectMode(): void;
|
|
856
|
+
/** Toggle a node's selection in multi-select mode */
|
|
857
|
+
ToggleNodeSelection(node: TaxTreeNode, event: Event): void;
|
|
858
|
+
/** Check if a node is selected in multi-select mode */
|
|
859
|
+
IsNodeMultiSelected(nodeID: string): boolean;
|
|
860
|
+
/** Handle drag start on a tree node */
|
|
861
|
+
OnTreeNodeDragStart(event: DragEvent, node: TaxTreeNode): void;
|
|
862
|
+
/** Handle drag over a tree node (drop target) */
|
|
863
|
+
OnTreeNodeDragOver(event: DragEvent, node: TaxTreeNode): void;
|
|
864
|
+
/** Handle drag leave */
|
|
865
|
+
OnTreeNodeDragLeave(): void;
|
|
866
|
+
/** Handle drop — reparent dragged node(s) under the drop target */
|
|
867
|
+
OnTreeNodeDrop(event: DragEvent, targetNode: TaxTreeNode): Promise<void>;
|
|
868
|
+
/** Handle drop on the "Root" drop zone (make root-level) */
|
|
869
|
+
OnDropToRoot(event: DragEvent): Promise<void>;
|
|
870
|
+
IsMerging: boolean;
|
|
871
|
+
MergeTags(sourceTagId: string, targetTagId: string, sourceName: string, targetName: string): Promise<void>;
|
|
872
|
+
MakeChildTag(childTagId: string, parentTagId: string): Promise<void>;
|
|
873
|
+
DismissDuplicate(pair: TaxDuplicatePair): void;
|
|
874
|
+
private buildTaxDuplicates;
|
|
875
|
+
/** Group tags by case-insensitive name, returning only groups with 2+ members */
|
|
876
|
+
private groupExactNameDuplicates;
|
|
877
|
+
/**
|
|
878
|
+
* Enhanced string similarity: separator normalization, abbreviation,
|
|
879
|
+
* pluralization, token-overlap Jaccard, containment, and Levenshtein.
|
|
880
|
+
* Returns the highest score among all heuristics.
|
|
881
|
+
*/
|
|
882
|
+
private computeStringSimilarity;
|
|
883
|
+
/** Scores simple English pluralization differences */
|
|
884
|
+
private computePluralizationScore;
|
|
885
|
+
/** Jaccard similarity on word tokens */
|
|
886
|
+
private computeTokenJaccardSimilarity;
|
|
887
|
+
private isAbbreviationOf;
|
|
888
|
+
private levenshteinDistance;
|
|
889
|
+
/**
|
|
890
|
+
* Finds orphan tags: no parent, no children, and zero usage.
|
|
891
|
+
* A tag with even 1 connection is not orphaned — it's just a leaf.
|
|
892
|
+
* Uses NormalizeUUID for consistent cross-platform UUID comparisons.
|
|
893
|
+
*/
|
|
894
|
+
private buildTaxOrphans;
|
|
895
|
+
ToggleOrphanSelection(orphan: TaxOrphanCard): void;
|
|
896
|
+
ToggleAllOrphans(): void;
|
|
897
|
+
/**
|
|
898
|
+
* Clean up TagCoOccurrence records that reference a tag before deleting it.
|
|
899
|
+
* Without this, the FK constraint on TagCoOccurrence blocks the delete.
|
|
900
|
+
*/
|
|
901
|
+
private cleanupTagReferences;
|
|
902
|
+
DeleteOrphan(orphan: TaxOrphanCard): void;
|
|
903
|
+
BulkDeleteOrphans(): void;
|
|
904
|
+
/** Delete all orphan tags at once with a styled confirmation dialog */
|
|
905
|
+
DeleteAllOrphans(): void;
|
|
906
|
+
private buildTaxTreemap;
|
|
907
|
+
/**
|
|
908
|
+
* Builds the audit timeline from the MJ: Tag Audit Logs entity.
|
|
909
|
+
* Falls back to synthesizing "created" events from tag creation dates
|
|
910
|
+
* if no real audit log records exist yet.
|
|
911
|
+
*/
|
|
912
|
+
private buildTaxAuditLog;
|
|
913
|
+
/**
|
|
914
|
+
* Maps real Tag Audit Log records into TaxAuditEvent objects.
|
|
915
|
+
* Uses the view's denormalized Tag, PerformedByUser, and RelatedTag fields.
|
|
916
|
+
*/
|
|
917
|
+
private buildAuditEventsFromLogs;
|
|
918
|
+
/**
|
|
919
|
+
* Synthesizes audit events from tag __mj_CreatedAt dates when no
|
|
920
|
+
* real audit log records exist. Used as a fallback only.
|
|
921
|
+
*/
|
|
922
|
+
private synthesizeAuditEventsFromTags;
|
|
923
|
+
/**
|
|
924
|
+
* Maps a PascalCase DB Action value (e.g. "Renamed") to the lowercase
|
|
925
|
+
* TaxAuditAction type used in the UI. Returns null for unrecognized values.
|
|
926
|
+
*/
|
|
927
|
+
private mapAuditActionToType;
|
|
928
|
+
/**
|
|
929
|
+
* Safely parses the JSON Details column from a Tag Audit Log record.
|
|
930
|
+
* Returns an empty object on parse failure.
|
|
931
|
+
*/
|
|
932
|
+
private parseAuditDetails;
|
|
933
|
+
/**
|
|
934
|
+
* Builds a human-readable description for an audit event based on the
|
|
935
|
+
* action type and any additional context from the related tag or details JSON.
|
|
936
|
+
*/
|
|
937
|
+
private buildAuditDescription;
|
|
938
|
+
/**
|
|
939
|
+
* Adds a local-only audit entry to the top of the timeline for
|
|
940
|
+
* immediate UI feedback after a user action (merge, delete, etc.).
|
|
941
|
+
*/
|
|
942
|
+
private addTaxAuditEntry;
|
|
943
|
+
ToggleTaxAuditFilter(type: string): void;
|
|
944
|
+
GetFilteredAuditEvents(): TaxAuditEvent[];
|
|
945
|
+
private formatDayHeader;
|
|
946
|
+
private buildTaxHealth;
|
|
947
|
+
/** Returns the Font Awesome icon class for an audit event action type. */
|
|
948
|
+
GetTaxAuditIcon(type: string): string;
|
|
949
|
+
/** Opens a styled confirmation dialog, replacing browser `confirm()`. */
|
|
950
|
+
OpenConfirmDialog(title: string, message: string, action: () => Promise<void>): void;
|
|
951
|
+
/** User confirmed the dialog action */
|
|
952
|
+
ConfirmDialogAccept(): Promise<void>;
|
|
953
|
+
/** User cancelled the confirmation dialog */
|
|
954
|
+
ConfirmDialogCancel(): void;
|
|
955
|
+
/** Opens the split-tag dialog for a given tree node */
|
|
956
|
+
OpenSplitDialog(node: TaxTreeNode): void;
|
|
957
|
+
/** Closes the split-tag dialog without action */
|
|
958
|
+
CloseSplitDialog(): void;
|
|
959
|
+
/** Executes the split operation, creating child tags from comma-separated names */
|
|
960
|
+
ExecuteSplit(): Promise<void>;
|
|
961
|
+
/** Opens the move-tag dialog for a given tree node */
|
|
962
|
+
OpenMoveDialog(node: TaxTreeNode): void;
|
|
963
|
+
/** Closes the move-tag dialog without action */
|
|
964
|
+
CloseMoveDialog(): void;
|
|
965
|
+
/** Returns flat list of tags eligible as move targets (excludes the node being moved and its descendants) */
|
|
966
|
+
GetMoveTargetOptions(): {
|
|
967
|
+
ID: string;
|
|
968
|
+
Name: string;
|
|
969
|
+
Depth: number;
|
|
970
|
+
}[];
|
|
971
|
+
/** Collects IDs of all descendants of a node */
|
|
972
|
+
private collectDescendantIds;
|
|
973
|
+
/** Executes the move operation */
|
|
974
|
+
ExecuteMove(): Promise<void>;
|
|
975
|
+
OpenMergeIntoDialog(node: TaxTreeNode): void;
|
|
976
|
+
OnMergeTargetSelected(value: unknown): void;
|
|
977
|
+
CloseMergeIntoDialog(): void;
|
|
978
|
+
/** Returns flat list of tags eligible as merge targets (excludes the source tag) */
|
|
979
|
+
GetMergeTargetOptions(): {
|
|
980
|
+
ID: string;
|
|
981
|
+
Name: string;
|
|
982
|
+
Depth: number;
|
|
983
|
+
ItemCount: number;
|
|
984
|
+
}[];
|
|
985
|
+
ExecuteMergeInto(): Promise<void>;
|
|
986
|
+
/** Opens treemap drill-in panel for the given cell */
|
|
987
|
+
OpenTreemapDrillIn(cell: TaxTreemapCell): void;
|
|
988
|
+
/** Closes treemap drill-in panel */
|
|
989
|
+
CloseTreemapDrillIn(): void;
|
|
990
|
+
/** Navigate from treemap drill-in to the tag in the tree view */
|
|
991
|
+
DrillInToTreeView(node: TaxTreeNode): void;
|
|
992
|
+
RefreshTaxonomyData(): Promise<void>;
|
|
993
|
+
/** Load pending content item duplicates for review */
|
|
994
|
+
LoadContentDuplicates(): Promise<void>;
|
|
995
|
+
/** Resolve content source names for a list of content item IDs */
|
|
996
|
+
private resolveItemSourceNames;
|
|
997
|
+
/** Confirm a content duplicate pair */
|
|
998
|
+
ConfirmContentDuplicate(dupRow: ContentDuplicateRow): Promise<void>;
|
|
999
|
+
/** Dismiss a content duplicate pair */
|
|
1000
|
+
DismissContentDuplicate(dupRow: ContentDuplicateRow): Promise<void>;
|
|
308
1001
|
static ɵfac: i0.ɵɵFactoryDeclaration<AutotaggingPipelineResourceComponent, never>;
|
|
309
1002
|
static ɵcmp: i0.ɵɵComponentDeclaration<AutotaggingPipelineResourceComponent, "app-autotagging-pipeline-resource", never, {}, {}, never, never, false, never>;
|
|
310
1003
|
}
|
|
311
1004
|
export declare function LoadAutotaggingPipelineResource(): void;
|
|
1005
|
+
/**
|
|
1006
|
+
* Converts a 5-part or 6-part cron expression to a human-readable English string.
|
|
1007
|
+
*
|
|
1008
|
+
* Handles common patterns:
|
|
1009
|
+
* `0 * * * *` -> "Every hour"
|
|
1010
|
+
* `0 2 * * *` -> "Daily at 2:00 AM"
|
|
1011
|
+
* `0 2 * * 1` -> "Weekly on Monday at 2:00 AM"
|
|
1012
|
+
* `star/15 * * * *` -> "Every 15 minutes" (where star = asterisk)
|
|
1013
|
+
* `0 0 1 * *` -> "Monthly on day 1 at 12:00 AM"
|
|
1014
|
+
*
|
|
1015
|
+
* Falls back to returning the raw cron string for unrecognized patterns.
|
|
1016
|
+
*
|
|
1017
|
+
* @param cron A cron expression string (5 or 6 parts)
|
|
1018
|
+
* @returns A human-readable description or the raw cron if unrecognized
|
|
1019
|
+
*/
|
|
1020
|
+
export declare function CronToHumanReadable(cron: string): string;
|
|
312
1021
|
export {};
|
|
313
1022
|
//# sourceMappingURL=autotagging-pipeline-resource.component.d.ts.map
|