@memberjunction/ng-dashboards 2.89.0 → 2.91.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 +8 -8
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +4 -4
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +3 -3
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management-v2.component.d.ts +4 -4
- package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management-v2.component.js +2 -2
- package/dist/AI/components/models/model-management-v2.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +7 -7
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +4 -4
- package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management-v2.component.js +1 -1
- package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts +6 -6
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/Actions/actions-management-dashboard.component.d.ts +1 -0
- package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -1
- package/dist/Actions/actions-management-dashboard.component.js +89 -76
- package/dist/Actions/actions-management-dashboard.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts +17 -0
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +303 -83
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +0 -1
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +4 -31
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +5 -5
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +93 -6
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +743 -265
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts +14 -0
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -0
- package/dist/ComponentStudio/components/text-import-dialog.component.js +121 -0
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -0
- package/dist/module.d.ts +19 -18
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +5 -2
- package/dist/module.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { BaseDashboard } from '../generic/base-dashboard';
|
|
3
3
|
import { CompositeKey } from '@memberjunction/core';
|
|
4
|
-
import {
|
|
4
|
+
import { ComponentEntityExtended } from '@memberjunction/core-entities';
|
|
5
5
|
import { ComponentSpec } from '@memberjunction/interactive-component-types';
|
|
6
6
|
import { ReactComponentEvent } from '@memberjunction/ng-react';
|
|
7
|
+
import { DialogService } from '@progress/kendo-angular-dialog';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
interface FileLoadedComponent {
|
|
9
10
|
id: string;
|
|
@@ -16,12 +17,20 @@ interface FileLoadedComponent {
|
|
|
16
17
|
type?: string;
|
|
17
18
|
status?: string;
|
|
18
19
|
}
|
|
19
|
-
type DisplayComponent = (
|
|
20
|
+
type DisplayComponent = (ComponentEntityExtended & {
|
|
20
21
|
isFileLoaded?: false;
|
|
21
22
|
}) | FileLoadedComponent;
|
|
23
|
+
interface Category {
|
|
24
|
+
name: string;
|
|
25
|
+
count: number;
|
|
26
|
+
color: string;
|
|
27
|
+
isActive?: boolean;
|
|
28
|
+
}
|
|
22
29
|
export declare class ComponentStudioDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {
|
|
23
30
|
private cdr;
|
|
24
|
-
|
|
31
|
+
private dialogService;
|
|
32
|
+
private viewContainerRef;
|
|
33
|
+
components: ComponentEntityExtended[];
|
|
25
34
|
fileLoadedComponents: FileLoadedComponent[];
|
|
26
35
|
allComponents: DisplayComponent[];
|
|
27
36
|
filteredComponents: DisplayComponent[];
|
|
@@ -31,6 +40,16 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
|
|
|
31
40
|
isLoading: boolean;
|
|
32
41
|
searchQuery: string;
|
|
33
42
|
isRunning: boolean;
|
|
43
|
+
selectedCategories: Set<string>;
|
|
44
|
+
availableCategories: {
|
|
45
|
+
name: string;
|
|
46
|
+
count: number;
|
|
47
|
+
color: string;
|
|
48
|
+
}[];
|
|
49
|
+
showAllCategories: boolean;
|
|
50
|
+
favoriteComponents: Set<string>;
|
|
51
|
+
showOnlyFavorites: boolean;
|
|
52
|
+
private metadata;
|
|
34
53
|
currentError: {
|
|
35
54
|
type: string;
|
|
36
55
|
message: string;
|
|
@@ -51,14 +70,76 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
|
|
|
51
70
|
isEditingCode: boolean;
|
|
52
71
|
private lastEditSource;
|
|
53
72
|
fileInput?: ElementRef<HTMLInputElement>;
|
|
73
|
+
importDropdownOpen: boolean;
|
|
74
|
+
private textImportDialog?;
|
|
54
75
|
private destroy$;
|
|
55
|
-
constructor(cdr: ChangeDetectorRef);
|
|
76
|
+
constructor(cdr: ChangeDetectorRef, dialogService: DialogService, viewContainerRef: ViewContainerRef);
|
|
56
77
|
ngAfterViewInit(): void;
|
|
57
78
|
ngOnDestroy(): void;
|
|
58
79
|
protected initDashboard(): void;
|
|
59
80
|
protected loadData(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Load favorite status for all components
|
|
83
|
+
*/
|
|
84
|
+
private loadFavorites;
|
|
85
|
+
/**
|
|
86
|
+
* Toggle favorite status for a component
|
|
87
|
+
*/
|
|
88
|
+
toggleFavorite(component: DisplayComponent, event?: Event): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Check if component is favorited
|
|
91
|
+
*/
|
|
92
|
+
isFavorite(component: DisplayComponent): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Toggle showing only favorites
|
|
95
|
+
*/
|
|
96
|
+
toggleShowOnlyFavorites(): void;
|
|
60
97
|
onSearchChange(query: string): void;
|
|
61
98
|
private combineAndFilterComponents;
|
|
99
|
+
/**
|
|
100
|
+
* Build categories from components
|
|
101
|
+
*/
|
|
102
|
+
private buildCategories;
|
|
103
|
+
/**
|
|
104
|
+
* Extract main category from namespace
|
|
105
|
+
*/
|
|
106
|
+
private extractCategoryFromNamespace;
|
|
107
|
+
/**
|
|
108
|
+
* Get color for category
|
|
109
|
+
*/
|
|
110
|
+
private getCategoryColor;
|
|
111
|
+
/**
|
|
112
|
+
* Get color for a full namespace path
|
|
113
|
+
*/
|
|
114
|
+
getNamespaceColor(namespace: string | undefined): string;
|
|
115
|
+
/**
|
|
116
|
+
* Format namespace for display (handle long paths)
|
|
117
|
+
*/
|
|
118
|
+
formatNamespace(namespace: string | undefined): string;
|
|
119
|
+
/**
|
|
120
|
+
* Toggle category filter
|
|
121
|
+
*/
|
|
122
|
+
toggleCategory(category: string): void;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all category filters
|
|
125
|
+
*/
|
|
126
|
+
clearCategoryFilters(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Check if category is selected
|
|
129
|
+
*/
|
|
130
|
+
isCategorySelected(category: string): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Get visible categories (top 5 or all)
|
|
133
|
+
*/
|
|
134
|
+
getVisibleCategories(): Category[];
|
|
135
|
+
/**
|
|
136
|
+
* Toggle showing all categories
|
|
137
|
+
*/
|
|
138
|
+
toggleShowAllCategories(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Get component namespace
|
|
141
|
+
*/
|
|
142
|
+
getComponentNamespace(component: DisplayComponent): string | undefined;
|
|
62
143
|
getComponentName(component: DisplayComponent): string;
|
|
63
144
|
getComponentDescription(component: DisplayComponent): string | undefined;
|
|
64
145
|
getComponentType(component: DisplayComponent): string | undefined;
|
|
@@ -98,7 +179,13 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
|
|
|
98
179
|
*/
|
|
99
180
|
formatTechnicalDetails(details: any): string;
|
|
100
181
|
refreshData(): Promise<void>;
|
|
101
|
-
|
|
182
|
+
toggleImportDropdown(): void;
|
|
183
|
+
closeImportDropdown(): void;
|
|
184
|
+
onDocumentClick(event: MouseEvent): void;
|
|
185
|
+
importFromFile(): void;
|
|
186
|
+
importFromText(): void;
|
|
187
|
+
private openTextImportDialog;
|
|
188
|
+
private handleTextImport;
|
|
102
189
|
handleFileSelect(event: Event): Promise<void>;
|
|
103
190
|
private readFile;
|
|
104
191
|
private generateId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAa,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"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"}
|