@sftech/ng-orchestrator 0.0.1 → 0.0.3

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 (48) hide show
  1. package/fesm2022/sftech-ng-orchestrator-agents.routes-55bOvZM8.mjs +224 -0
  2. package/fesm2022/sftech-ng-orchestrator-agents.routes-55bOvZM8.mjs.map +1 -0
  3. package/fesm2022/{sftech-ng-orchestrator-chat.routes-6WiLaurE.mjs → sftech-ng-orchestrator-chat.routes-D03Vrjwo.mjs} +13 -18
  4. package/fesm2022/sftech-ng-orchestrator-chat.routes-D03Vrjwo.mjs.map +1 -0
  5. package/fesm2022/sftech-ng-orchestrator-prompt-display.component-DUx_oK8L.mjs +213 -0
  6. package/fesm2022/sftech-ng-orchestrator-prompt-display.component-DUx_oK8L.mjs.map +1 -0
  7. package/fesm2022/sftech-ng-orchestrator-prompts.routes-DqBuYHY_.mjs +50 -0
  8. package/fesm2022/sftech-ng-orchestrator-prompts.routes-DqBuYHY_.mjs.map +1 -0
  9. package/fesm2022/{sftech-ng-orchestrator-sftech-ng-orchestrator-Dk76dBVe.mjs → sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs} +12 -14
  10. package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs.map +1 -0
  11. package/fesm2022/sftech-ng-orchestrator.mjs +1 -1
  12. package/lib/ng-orchestrator/agents/agents.component.d.ts +5 -0
  13. package/lib/ng-orchestrator/agents/agents.routes.d.ts +10 -1
  14. package/lib/ng-orchestrator/agents/components/agent/agent-display/agent-display.component.d.ts +20 -0
  15. package/lib/ng-orchestrator/agents/components/agent/agents-list/agents-list.component.d.ts +16 -0
  16. package/lib/ng-orchestrator/agents/core/dtos/agent-create-request.dto.d.ts +15 -0
  17. package/lib/ng-orchestrator/agents/core/dtos/agent-response.dto.d.ts +23 -0
  18. package/lib/ng-orchestrator/agents/core/dtos/agent-update-request.dto.d.ts +15 -0
  19. package/lib/ng-orchestrator/agents/core/models/agent.model.d.ts +29 -0
  20. package/lib/ng-orchestrator/agents/core/services/agent.service.d.ts +16 -0
  21. package/lib/ng-orchestrator/chat/chat.component.d.ts +2 -2
  22. package/lib/ng-orchestrator/core/service/orcherstrator.service.d.ts +1 -1
  23. package/lib/ng-orchestrator/orchestrator.module.d.ts +1 -1
  24. package/lib/ng-orchestrator/prompts/components/prompt/prompt-display/prompt-display.component.d.ts +20 -0
  25. package/lib/ng-orchestrator/prompts/components/prompt/prompts-list/prompts-list.component.d.ts +16 -0
  26. package/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.d.ts +19 -0
  27. package/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.d.ts +16 -0
  28. package/lib/ng-orchestrator/prompts/core/dtos/prompt-history-create.dto.d.ts +6 -0
  29. package/lib/ng-orchestrator/prompts/core/dtos/prompt-history-response.dto.d.ts +7 -0
  30. package/lib/ng-orchestrator/prompts/core/dtos/prompt-history-update.dto.d.ts +6 -0
  31. package/lib/ng-orchestrator/prompts/core/dtos/prompt-request.dto.d.ts +8 -0
  32. package/lib/ng-orchestrator/prompts/core/dtos/prompt-update.dto.d.ts +6 -0
  33. package/lib/ng-orchestrator/prompts/core/models/prompt-history.model.d.ts +11 -0
  34. package/lib/ng-orchestrator/prompts/core/models/prompt.model.d.ts +13 -0
  35. package/lib/ng-orchestrator/prompts/core/services/prompt-history.service.d.ts +15 -0
  36. package/lib/ng-orchestrator/prompts/core/services/prompt.service.d.ts +15 -0
  37. package/lib/ng-orchestrator/prompts/prompts.component.d.ts +5 -0
  38. package/lib/ng-orchestrator/prompts/prompts.routes.d.ts +10 -1
  39. package/package.json +2 -2
  40. package/fesm2022/sftech-ng-orchestrator-agents.routes-B6AJfgEl.mjs +0 -4
  41. package/fesm2022/sftech-ng-orchestrator-agents.routes-B6AJfgEl.mjs.map +0 -1
  42. package/fesm2022/sftech-ng-orchestrator-chat.routes-6WiLaurE.mjs.map +0 -1
  43. package/fesm2022/sftech-ng-orchestrator-prompts.routes-B2XVGKZw.mjs +0 -4
  44. package/fesm2022/sftech-ng-orchestrator-prompts.routes-B2XVGKZw.mjs.map +0 -1
  45. package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-Dk76dBVe.mjs.map +0 -1
  46. /package/lib/ng-orchestrator/{configuration → core/configuration}/orchestrator-config.interface.d.ts +0 -0
  47. /package/lib/ng-orchestrator/{configuration → core/configuration}/orchestrator-config.mapper.d.ts +0 -0
  48. /package/lib/ng-orchestrator/{configuration → core/configuration}/orchestrator-configuration.token.d.ts +0 -0
@@ -0,0 +1,213 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Inject, Injectable, inject, Component, signal, effect } from '@angular/core';
3
+ import * as i1$1 from '@angular/forms';
4
+ import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import { BaseDbModel, EFilterTypes, BaseDbApiService, BaseDisplayComponent, BaseDialogComponent, BaseListComponent, PaginatorComponent, OData, OdataFilterCollection, OdataFilter, EFilterOperator, ODataOrder, ESortDirection } from '@sftech/ng-shared';
6
+ import { AutoFocus } from 'primeng/autofocus';
7
+ import { Button } from 'primeng/button';
8
+ import { DatePicker } from 'primeng/datepicker';
9
+ import { DialogService } from 'primeng/dynamicdialog';
10
+ import { FloatLabel } from 'primeng/floatlabel';
11
+ import { InputText } from 'primeng/inputtext';
12
+ import { Textarea } from 'primeng/textarea';
13
+ import * as i1 from '@angular/common/http';
14
+ import { a as ORCHESTRATOR_CONFIGURATION } from './sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs';
15
+ import { DatePipe } from '@angular/common';
16
+ import { Panel } from 'primeng/panel';
17
+ import * as i1$2 from 'primeng/table';
18
+ import { TableModule } from 'primeng/table';
19
+
20
+ class PromptHistory extends BaseDbModel {
21
+ identifier;
22
+ name;
23
+ template;
24
+ promptId;
25
+ propertiesToShow = ['name', 'identifier', 'template', 'promptId', 'createdAt'];
26
+ propertyUINames = new Map([
27
+ ['name', 'name'],
28
+ ['template', 'template'],
29
+ ['histories', 'histories'],
30
+ ['promptId', 'Prompt-ID'],
31
+ ['createdAt', 'erstellt'],
32
+ ]);
33
+ fromDto(dto) {
34
+ const model = new PromptHistory();
35
+ model.id = dto.id;
36
+ model.name = dto.name;
37
+ model.createdAt = new Date(dto.createdAt);
38
+ model.identifier = dto.identifier;
39
+ model.template = dto.template;
40
+ model.promptId = dto.promptId;
41
+ return model;
42
+ }
43
+ }
44
+
45
+ class Prompt extends BaseDbModel {
46
+ identifier;
47
+ name;
48
+ template;
49
+ histories = [];
50
+ propertiesToShow = ['name', 'identifier', 'template'];
51
+ propertyUINames = new Map([
52
+ ['name', 'Name'],
53
+ ['template', 'Template'],
54
+ ['identifier', 'identifier'],
55
+ ]);
56
+ propertyFilterType = new Map([
57
+ ['name', EFilterTypes.STRING],
58
+ ['template', EFilterTypes.STRING],
59
+ ['identifier', EFilterTypes.STRING],
60
+ ]);
61
+ fromDto(dto) {
62
+ const model = new Prompt();
63
+ model.id = dto.id;
64
+ model.createdAt = new Date(dto.createdAt);
65
+ model.name = dto.name;
66
+ model.identifier = dto.identifier;
67
+ model.template = dto.template;
68
+ model.histories = dto.histories ? PromptHistory.fromDtos(dto.histories) : [];
69
+ return model;
70
+ }
71
+ }
72
+
73
+ class PromptService extends BaseDbApiService {
74
+ http;
75
+ config;
76
+ constructor(http, config) {
77
+ super(http, config);
78
+ this.http = http;
79
+ this.config = config;
80
+ this.url = `${this.config.orchestratorDbUrl}/prompts`;
81
+ }
82
+ getNewModel() {
83
+ return new Prompt();
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptService, deps: [{ token: i1.HttpClient }, { token: ORCHESTRATOR_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptService, providedIn: 'root' });
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptService, decorators: [{
89
+ type: Injectable,
90
+ args: [{ providedIn: 'root' }]
91
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
92
+ type: Inject,
93
+ args: [ORCHESTRATOR_CONFIGURATION]
94
+ }] }] });
95
+
96
+ class PromptHistoryService extends BaseDbApiService {
97
+ http;
98
+ config;
99
+ constructor(http, config) {
100
+ super(http, config);
101
+ this.http = http;
102
+ this.config = config;
103
+ this.url = `${this.config.orchestratorDbUrl}/prompts/histories`;
104
+ }
105
+ getNewModel() {
106
+ return new PromptHistory();
107
+ }
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryService, deps: [{ token: i1.HttpClient }, { token: ORCHESTRATOR_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
109
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryService, providedIn: 'root' });
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryService, decorators: [{
112
+ type: Injectable,
113
+ args: [{ providedIn: 'root' }]
114
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
115
+ type: Inject,
116
+ args: [ORCHESTRATOR_CONFIGURATION]
117
+ }] }] });
118
+
119
+ class PromptHistoryDisplayComponent extends BaseDisplayComponent {
120
+ _repo = inject(PromptHistoryService);
121
+ _route = '/prompts/history';
122
+ initializeForm() {
123
+ return new FormGroup({
124
+ id: new FormControl({ value: this.model().id, disabled: true }),
125
+ createdAt: new FormControl({ value: this.model().createdAt, disabled: true }),
126
+ identifier: new FormControl({ value: this.model().identifier, disabled: true }),
127
+ template: new FormControl({ value: this.model().template, disabled: this.canEdit }),
128
+ name: new FormControl({ value: this.model().name, disabled: this.canEdit }),
129
+ promptId: new FormControl({ value: this.model().promptId, disabled: this.canEdit }),
130
+ });
131
+ }
132
+ getNewModel() {
133
+ return new PromptHistory();
134
+ }
135
+ mapFormToUpdateDto() {
136
+ throw new Error('Edit of PromptHistory is not supported');
137
+ }
138
+ mapFormToCreateDto() {
139
+ throw new Error('Manual creation of PromptHistory is not supported');
140
+ }
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: PromptHistoryDisplayComponent, isStandalone: true, selector: "sftech-prompt-history-display", usesInheritance: true, ngImport: i0, template: "<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\n <ng-template #header>\n <div class=\"flex justify-between\">\n <h2 class=\"text-xl font-semibold\">\n Prompt\n @if (model()) {\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\n }\n </h2>\n </div>\n </ng-template>\n <ng-template #body>\n @if (model()) {\n <form [formGroup]=\"form\">\n <div class=\"grid grid-cols-4 mb-2 gap-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"promptId\" formControlName=\"promptId\" pInputText class=\"w-full\"/>\n <label for=\"promptId\">{{ this.model().getUiNameForProperty('promptId') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\n </p-floatlabel>\n </div>\n <div class=\"w-full mb-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\n </p-floatlabel>\n </div>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\n </p-floatlabel>\n </form>\n }\n </ng-template>\n <ng-template #footer>\n </ng-template>\n</sftech-base-dialog>", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: BaseDialogComponent, selector: "sftech-base-dialog", inputs: ["hasHeader", "hasFooter", "showButtons", "headerText"], outputs: ["closed"] }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }] });
143
+ }
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryDisplayComponent, decorators: [{
145
+ type: Component,
146
+ args: [{ selector: 'sftech-prompt-history-display', standalone: true, imports: [ReactiveFormsModule, BaseDialogComponent, DatePicker, FloatLabel, InputText, Textarea], template: "<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\n <ng-template #header>\n <div class=\"flex justify-between\">\n <h2 class=\"text-xl font-semibold\">\n Prompt\n @if (model()) {\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\n }\n </h2>\n </div>\n </ng-template>\n <ng-template #body>\n @if (model()) {\n <form [formGroup]=\"form\">\n <div class=\"grid grid-cols-4 mb-2 gap-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"promptId\" formControlName=\"promptId\" pInputText class=\"w-full\"/>\n <label for=\"promptId\">{{ this.model().getUiNameForProperty('promptId') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\n </p-floatlabel>\n </div>\n <div class=\"w-full mb-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\n </p-floatlabel>\n </div>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\n </p-floatlabel>\n </form>\n }\n </ng-template>\n <ng-template #footer>\n </ng-template>\n</sftech-base-dialog>" }]
147
+ }] });
148
+
149
+ class PromptHistoryListComponent extends BaseListComponent {
150
+ _repo = inject(PromptHistoryService);
151
+ _route = '/prompting/prompt-history';
152
+ _modalComponent = PromptHistoryDisplayComponent;
153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: PromptHistoryListComponent, isStandalone: true, selector: "sftech-prompt-history-list", usesInheritance: true, ngImport: i0, template: "@if (!data()) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Daten werden geladen...\n </p>\n </p-panel>\n} @else if (data()!.length === 0) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Es sind keine Prompts vorhanden.\n </p>\n </p-panel>\n} @else if (data()!.length > 0) {\n <p-table [value]=\"data()!\"\n stripedRows\n [tableStyle]=\"{ 'min-width': '50rem' }\"\n selectionMode=\"single\"\n [resizableColumns]=\"true\"\n dataKey=\"id\"\n >\n <ng-template #header>\n <tr>\n @for(column of data()![0].propertiesToShow; track column) {\n <th>\n {{ data()![0].getUiNameForProperty(column) }}\n </th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-prompt>\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\n @for(column of data()![0].propertiesToShow; track column) {\n <td style=\"white-space: pre-wrap\">\n @if (column === 'createdAt') {\n {{ prompt.getPropertyValue(column) | date: 'dd.MM.yyyy - HH:mm' }}\n } @else {\n {{ prompt.getPropertyValue(column) }}\n }\n </td>\n }\n </tr>\n </ng-template>\n </p-table>\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\n}\n\n", styles: [""], dependencies: [{ kind: "component", type: PaginatorComponent, selector: "sftech-paginator", inputs: ["pagination"], outputs: ["odataChanged"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1$2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1$2.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }] });
155
+ }
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptHistoryListComponent, decorators: [{
157
+ type: Component,
158
+ args: [{ selector: 'sftech-prompt-history-list', standalone: true, imports: [PaginatorComponent, DatePipe, Panel, TableModule], template: "@if (!data()) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Daten werden geladen...\n </p>\n </p-panel>\n} @else if (data()!.length === 0) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Es sind keine Prompts vorhanden.\n </p>\n </p-panel>\n} @else if (data()!.length > 0) {\n <p-table [value]=\"data()!\"\n stripedRows\n [tableStyle]=\"{ 'min-width': '50rem' }\"\n selectionMode=\"single\"\n [resizableColumns]=\"true\"\n dataKey=\"id\"\n >\n <ng-template #header>\n <tr>\n @for(column of data()![0].propertiesToShow; track column) {\n <th>\n {{ data()![0].getUiNameForProperty(column) }}\n </th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-prompt>\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\n @for(column of data()![0].propertiesToShow; track column) {\n <td style=\"white-space: pre-wrap\">\n @if (column === 'createdAt') {\n {{ prompt.getPropertyValue(column) | date: 'dd.MM.yyyy - HH:mm' }}\n } @else {\n {{ prompt.getPropertyValue(column) }}\n }\n </td>\n }\n </tr>\n </ng-template>\n </p-table>\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\n}\n\n" }]
159
+ }] });
160
+
161
+ class PromptDisplayComponent extends BaseDisplayComponent {
162
+ _repo = inject(PromptService);
163
+ _route = 'prompt';
164
+ odataForHistories = signal(undefined);
165
+ constructor() {
166
+ super();
167
+ effect(() => {
168
+ if (this.model().id) {
169
+ this.odataForHistories.set(this.getOdataForHistories());
170
+ }
171
+ });
172
+ }
173
+ initializeForm() {
174
+ return new FormGroup({
175
+ id: new FormControl({ value: this.model().id, disabled: true }),
176
+ createdAt: new FormControl({ value: this.model().createdAt, disabled: true }),
177
+ identifier: new FormControl({ value: this.model().identifier, disabled: true }),
178
+ template: new FormControl(this.model()?.template),
179
+ name: new FormControl(this.model()?.name),
180
+ });
181
+ }
182
+ getNewModel() {
183
+ return new Prompt();
184
+ }
185
+ mapFormToUpdateDto() {
186
+ return {
187
+ identifier: this.form.get('identifier').value,
188
+ template: this.form.get('template').value,
189
+ name: this.form.get('name').value,
190
+ };
191
+ }
192
+ mapFormToCreateDto() {
193
+ throw new Error('Method not implemented.');
194
+ }
195
+ getOdataForHistories() {
196
+ const odata = new OData();
197
+ odata.filter = new OdataFilterCollection();
198
+ odata.filter.addAnd(new OdataFilter('promptId', this.model().id, EFilterOperator.EQUALS, EFilterTypes.NUMERIC));
199
+ odata.order = new ODataOrder();
200
+ odata.order.column = 'createdAt';
201
+ odata.order.direction = ESortDirection.DESC;
202
+ return odata;
203
+ }
204
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
205
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: PromptDisplayComponent, isStandalone: true, selector: "sftech-prompt-display", providers: [DialogService], usesInheritance: true, ngImport: i0, template: "<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\r\n <ng-template #header>\r\n <div class=\"flex justify-between\">\r\n <h2 class=\"text-xl font-semibold\">\r\n Prompt\r\n @if (model()) {\r\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\r\n }\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <ng-template #body>\r\n @if (model()) {\r\n <form [formGroup]=\"form\" [pAutoFocus]=\"true\" class=\"mb-5\">\r\n <div class=\"grid grid-cols-3 mb-2 gap-2\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\r\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\r\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\r\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\r\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-floatlabel variant=\"in\" class=\"w-full mb-2\">\r\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\r\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\r\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\r\n </p-floatlabel>\r\n <div class=\"flex justify-end mt-2\">\r\n <p-button label=\"Speichern\" type=\"submit\" (onClick)=\"submitForm()\" (keyup.enter)=\"submitForm()\" [disabled]=\"!form.dirty\"></p-button>\r\n </div>\r\n </form>\r\n @if (odataForHistories()) {\r\n <hr class=\"text-gray-200 my-3 w-full\" />\r\n <h2 class=\"font-bold mt-2 mb-5\">Prompt-History</h2>\r\n <sftech-prompt-history-list [odata]=\"odataForHistories()!\" [canEdit]=\"false\" [openDisplayAsModal]=\"true\"></sftech-prompt-history-list>\r\n }\r\n }\r\n </ng-template>\r\n <ng-template #footer>\r\n\r\n </ng-template>\r\n</sftech-base-dialog>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus", "pAutoFocus"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: BaseDialogComponent, selector: "sftech-base-dialog", inputs: ["hasHeader", "hasFooter", "showButtons", "headerText"], outputs: ["closed"] }, { kind: "component", type: PromptHistoryListComponent, selector: "sftech-prompt-history-list" }] });
206
+ }
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptDisplayComponent, decorators: [{
208
+ type: Component,
209
+ args: [{ selector: 'sftech-prompt-display', imports: [ReactiveFormsModule, InputText, AutoFocus, FloatLabel, DatePicker, Textarea, Button, BaseDialogComponent, PromptHistoryListComponent], providers: [DialogService], template: "<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\r\n <ng-template #header>\r\n <div class=\"flex justify-between\">\r\n <h2 class=\"text-xl font-semibold\">\r\n Prompt\r\n @if (model()) {\r\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\r\n }\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <ng-template #body>\r\n @if (model()) {\r\n <form [formGroup]=\"form\" [pAutoFocus]=\"true\" class=\"mb-5\">\r\n <div class=\"grid grid-cols-3 mb-2 gap-2\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\r\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\r\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\r\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\r\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-floatlabel variant=\"in\" class=\"w-full mb-2\">\r\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\r\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\r\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\r\n </p-floatlabel>\r\n <div class=\"flex justify-end mt-2\">\r\n <p-button label=\"Speichern\" type=\"submit\" (onClick)=\"submitForm()\" (keyup.enter)=\"submitForm()\" [disabled]=\"!form.dirty\"></p-button>\r\n </div>\r\n </form>\r\n @if (odataForHistories()) {\r\n <hr class=\"text-gray-200 my-3 w-full\" />\r\n <h2 class=\"font-bold mt-2 mb-5\">Prompt-History</h2>\r\n <sftech-prompt-history-list [odata]=\"odataForHistories()!\" [canEdit]=\"false\" [openDisplayAsModal]=\"true\"></sftech-prompt-history-list>\r\n }\r\n }\r\n </ng-template>\r\n <ng-template #footer>\r\n\r\n </ng-template>\r\n</sftech-base-dialog>\r\n" }]
210
+ }], ctorParameters: () => [] });
211
+
212
+ export { PromptService as P, PromptDisplayComponent as a, Prompt as b };
213
+ //# sourceMappingURL=sftech-ng-orchestrator-prompt-display.component-DUx_oK8L.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftech-ng-orchestrator-prompt-display.component-DUx_oK8L.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/core/models/prompt-history.model.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/core/models/prompt.model.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/core/services/prompt.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/core/services/prompt-history.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompt-display/prompt-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompt-display/prompt-display.component.html"],"sourcesContent":["import { BaseDbModel, IBaseDbResponseDto } from '@sftech/ng-shared';\r\nimport { IPromptHistoryResponseDto } from '../dtos/prompt-history-response.dto';\r\nimport { IPromptResponseDto } from '../dtos/prompt-request.dto';\r\n\r\nexport class PromptHistory extends BaseDbModel {\r\n public identifier!: string;\r\n public name!: string;\r\n public template!: string;\r\n public promptId!: number;\r\n\r\n public override propertiesToShow = ['name', 'identifier', 'template', 'promptId', 'createdAt'];\r\n\r\n public override propertyUINames = new Map<string, string>([\r\n ['name', 'name'],\r\n ['template', 'template'],\r\n ['histories', 'histories'],\r\n ['promptId', 'Prompt-ID'],\r\n ['createdAt', 'erstellt'],\r\n ]);\r\n\r\n public override fromDto(dto: IPromptHistoryResponseDto): PromptHistory {\r\n const model = new PromptHistory();\r\n model.id = dto.id;\r\n model.name = dto.name;\r\n model.createdAt = new Date(dto.createdAt);\r\n model.identifier = dto.identifier;\r\n model.template = dto.template;\r\n model.promptId = dto.promptId;\r\n return model;\r\n }\r\n}\r\n","import { BaseDbModel, EFilterTypes, IBaseDbResponseDto } from '@sftech/ng-shared';\r\nimport { IPromptResponseDto } from '../dtos/prompt-request.dto';\r\nimport { PromptHistory } from './prompt-history.model';\r\n\r\nexport class Prompt extends BaseDbModel {\r\n public identifier!: string;\r\n public name!: string;\r\n public template!: string;\r\n public histories: PromptHistory[] = [];\r\n\r\n public override propertiesToShow = ['name', 'identifier', 'template'];\r\n\r\n public override propertyUINames = new Map<string, string>([\r\n ['name', 'Name'],\r\n ['template', 'Template'],\r\n ['identifier', 'identifier'],\r\n ]);\r\n\r\n public override propertyFilterType = new Map<string, EFilterTypes>([\r\n ['name', EFilterTypes.STRING],\r\n ['template', EFilterTypes.STRING],\r\n ['identifier', EFilterTypes.STRING],\r\n ]);\r\n\r\n public override fromDto(dto: IPromptResponseDto): Prompt {\r\n const model = new Prompt();\r\n model.id = dto.id;\r\n model.createdAt = new Date(dto.createdAt);\r\n model.name = dto.name;\r\n model.identifier = dto.identifier;\r\n model.template = dto.template;\r\n model.histories = dto.histories ? (PromptHistory.fromDtos(dto.histories) as PromptHistory[]) : [];\r\n return model;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../../../core/configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../../../core/configuration/orchestrator-configuration.token';\r\nimport { IPromptResponseDto } from '../dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../dtos/prompt-update.dto';\r\nimport { Prompt } from '../models/prompt.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptService extends BaseDbApiService<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts`;\r\n }\r\n\r\n protected getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../../../core/configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../../../core/configuration/orchestrator-configuration.token';\r\nimport { IPromptHistoryResponseDto } from '../dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../models/prompt-history.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptHistoryService extends BaseDbApiService<PromptHistory, IPromptHistoryUpdateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts/histories`;\r\n }\r\n\r\n protected getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n}\r\n","import { Component, OnInit, inject } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent } from '@sftech/ng-shared';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptHistoryCreateDto } from '../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../core/services/prompt-history.service';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-display',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, BaseDialogComponent, DatePicker, FloatLabel, InputText, Textarea],\r\n templateUrl: './prompt-history-display.component.html',\r\n styleUrl: './prompt-history-display.component.css',\r\n})\r\nexport class PromptHistoryDisplayComponent extends BaseDisplayComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompts/history';\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model().id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model().createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model().identifier, disabled: true }),\r\n template: new FormControl({ value: this.model().template, disabled: this.canEdit }),\r\n name: new FormControl({ value: this.model().name, disabled: this.canEdit }),\r\n promptId: new FormControl({ value: this.model().promptId, disabled: this.canEdit }),\r\n });\r\n }\r\n protected override getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptHistoryUpdateDto {\r\n throw new Error('Edit of PromptHistory is not supported');\r\n }\r\n protected override mapFormToCreateDto(): IPromptHistoryCreateDto {\r\n throw new Error('Manual creation of PromptHistory is not supported');\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\n <ng-template #header>\n <div class=\"flex justify-between\">\n <h2 class=\"text-xl font-semibold\">\n Prompt\n @if (model()) {\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\n }\n </h2>\n </div>\n </ng-template>\n <ng-template #body>\n @if (model()) {\n <form [formGroup]=\"form\">\n <div class=\"grid grid-cols-4 mb-2 gap-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"promptId\" formControlName=\"promptId\" pInputText class=\"w-full\"/>\n <label for=\"promptId\">{{ this.model().getUiNameForProperty('promptId') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\n </p-floatlabel>\n </div>\n <div class=\"w-full mb-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\n </p-floatlabel>\n </div>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\n </p-floatlabel>\n </form>\n }\n </ng-template>\n <ng-template #footer>\n </ng-template>\n</sftech-base-dialog>","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, inject } from '@angular/core';\r\nimport { BaseListComponent, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptHistoryCreateDto } from '../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../core/services/prompt-history.service';\r\nimport { PromptHistoryDisplayComponent } from '../prompt-history-display/prompt-history-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-list',\r\n standalone: true,\r\n imports: [PaginatorComponent, DatePipe, Panel, TableModule],\r\n templateUrl: './prompt-history-list.component.html',\r\n styleUrl: './prompt-history-list.component.scss',\r\n})\r\nexport class PromptHistoryListComponent extends BaseListComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompting/prompt-history';\r\n protected override _modalComponent = PromptHistoryDisplayComponent;\r\n}\r\n","@if (!data()) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Daten werden geladen...\n </p>\n </p-panel>\n} @else if (data()!.length === 0) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Es sind keine Prompts vorhanden.\n </p>\n </p-panel>\n} @else if (data()!.length > 0) {\n <p-table [value]=\"data()!\"\n stripedRows\n [tableStyle]=\"{ 'min-width': '50rem' }\"\n selectionMode=\"single\"\n [resizableColumns]=\"true\"\n dataKey=\"id\"\n >\n <ng-template #header>\n <tr>\n @for(column of data()![0].propertiesToShow; track column) {\n <th>\n {{ data()![0].getUiNameForProperty(column) }}\n </th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-prompt>\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\n @for(column of data()![0].propertiesToShow; track column) {\n <td style=\"white-space: pre-wrap\">\n @if (column === 'createdAt') {\n {{ prompt.getPropertyValue(column) | date: 'dd.MM.yyyy - HH:mm' }}\n } @else {\n {{ prompt.getPropertyValue(column) }}\n }\n </td>\n }\n </tr>\n </ng-template>\n </p-table>\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\n}\n\n","import { Component, effect, inject, signal } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent, EFilterOperator, EFilterTypes, ESortDirection, OData, ODataOrder, OdataFilter, OdataFilterCollection } from '@sftech/ng-shared';\r\nimport { AutoFocus } from 'primeng/autofocus';\r\nimport { Button } from 'primeng/button';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptResponseDto } from '../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../core/services/prompt.service';\r\nimport { PromptHistoryListComponent } from '../../prompt-history/prompt-history-list/prompt-history-list.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-display',\r\n imports: [ReactiveFormsModule, InputText, AutoFocus, FloatLabel, DatePicker, Textarea, Button, BaseDialogComponent, PromptHistoryListComponent],\r\n providers: [DialogService],\r\n templateUrl: './prompt-display.component.html',\r\n styleUrl: './prompt-display.component.css',\r\n})\r\nexport class PromptDisplayComponent extends BaseDisplayComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected override _repo = inject(PromptService);\r\n protected override _route = 'prompt';\r\n\r\n public odataForHistories = signal<OData | undefined>(undefined);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.model().id) {\r\n this.odataForHistories.set(this.getOdataForHistories());\r\n }\r\n });\r\n }\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model().id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model().createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model().identifier, disabled: true }),\r\n template: new FormControl(this.model()?.template),\r\n name: new FormControl(this.model()?.name),\r\n });\r\n }\r\n protected override getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptUpdateDto {\r\n return {\r\n identifier: this.form.get('identifier')!.value,\r\n template: this.form.get('template')!.value,\r\n name: this.form.get('name')!.value,\r\n };\r\n }\r\n protected override mapFormToCreateDto(): IPromptUpdateDto {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n public getOdataForHistories(): OData {\r\n const odata = new OData();\r\n odata.filter = new OdataFilterCollection();\r\n odata.filter.addAnd(new OdataFilter('promptId', this.model().id!, EFilterOperator.EQUALS, EFilterTypes.NUMERIC));\r\n odata.order = new ODataOrder();\r\n odata.order.column = 'createdAt';\r\n odata.order.direction = ESortDirection.DESC;\r\n return odata;\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\r\n <ng-template #header>\r\n <div class=\"flex justify-between\">\r\n <h2 class=\"text-xl font-semibold\">\r\n Prompt\r\n @if (model()) {\r\n <span class=\"ms-1\">{{ this.model().identifier }}</span>\r\n }\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <ng-template #body>\r\n @if (model()) {\r\n <form [formGroup]=\"form\" [pAutoFocus]=\"true\" class=\"mb-5\">\r\n <div class=\"grid grid-cols-3 mb-2 gap-2\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\r\n <label for=\"id\">{{ this.model().getUiNameForProperty('id') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\r\n <label for=\"identifier\">{{ this.model().getUiNameForProperty('identifier') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\r\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\r\n <label for=\"createdAt\">{{ this.model().getUiNameForProperty('createdAt') }}</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-floatlabel variant=\"in\" class=\"w-full mb-2\">\r\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\r\n <label for=\"name\">{{ this.model().getUiNameForProperty('name') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\r\n <label for=\"template\">{{ this.model().getUiNameForProperty('template') }}</label>\r\n </p-floatlabel>\r\n <div class=\"flex justify-end mt-2\">\r\n <p-button label=\"Speichern\" type=\"submit\" (onClick)=\"submitForm()\" (keyup.enter)=\"submitForm()\" [disabled]=\"!form.dirty\"></p-button>\r\n </div>\r\n </form>\r\n @if (odataForHistories()) {\r\n <hr class=\"text-gray-200 my-3 w-full\" />\r\n <h2 class=\"font-bold mt-2 mb-5\">Prompt-History</h2>\r\n <sftech-prompt-history-list [odata]=\"odataForHistories()!\" [canEdit]=\"false\" [openDisplayAsModal]=\"true\"></sftech-prompt-history-list>\r\n }\r\n }\r\n </ng-template>\r\n <ng-template #footer>\r\n\r\n </ng-template>\r\n</sftech-base-dialog>\r\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Component } from '@angular/core';
3
+ import { BaseListComponent, IconProvider, PaginatorComponent } from '@sftech/ng-shared';
4
+ import { DialogService } from 'primeng/dynamicdialog';
5
+ import { Panel } from 'primeng/panel';
6
+ import * as i1 from 'primeng/table';
7
+ import { TableModule } from 'primeng/table';
8
+ import { P as PromptService, a as PromptDisplayComponent } from './sftech-ng-orchestrator-prompt-display.component-DUx_oK8L.mjs';
9
+ import { RouterOutlet } from '@angular/router';
10
+
11
+ class PromptsListComponent extends BaseListComponent {
12
+ _repo = inject(PromptService);
13
+ _route = 'prompts';
14
+ _modalComponent = PromptDisplayComponent;
15
+ iconProvider = IconProvider;
16
+ constructor() {
17
+ super();
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: PromptsListComponent, isStandalone: true, selector: "sftech-prompts-list", providers: [DialogService], usesInheritance: true, ngImport: i0, template: "@if (!data()) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length === 0) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Es sind keine Prompts vorhanden.\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length > 0) {\r\n <p-table [value]=\"data()!\"\r\n stripedRows\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n selectionMode=\"single\"\r\n [resizableColumns]=\"true\"\r\n dataKey=\"id\"\r\n >\r\n <ng-template #header>\r\n <tr>\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <th>{{ data()![0].getUiNameForProperty(column) }}</th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-prompt>\r\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <td style=\"white-space: pre-wrap\">\r\n {{ prompt.getPropertyValue(column) }}\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\r\n}\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: PaginatorComponent, selector: "sftech-paginator", inputs: ["pagination"], outputs: ["odataChanged"] }, { kind: "component", type: Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptsListComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'sftech-prompts-list', imports: [PaginatorComponent, Panel, TableModule], providers: [DialogService], template: "@if (!data()) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length === 0) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Es sind keine Prompts vorhanden.\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length > 0) {\r\n <p-table [value]=\"data()!\"\r\n stripedRows\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n selectionMode=\"single\"\r\n [resizableColumns]=\"true\"\r\n dataKey=\"id\"\r\n >\r\n <ng-template #header>\r\n <tr>\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <th>{{ data()![0].getUiNameForProperty(column) }}</th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-prompt>\r\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <td style=\"white-space: pre-wrap\">\r\n {{ prompt.getPropertyValue(column) }}\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\r\n}\r\n\r\n" }]
25
+ }], ctorParameters: () => [] });
26
+
27
+ class PromptsComponent {
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: PromptsComponent, isStandalone: true, selector: "sftech-prompts", ngImport: i0, template: "<router-outlet></router-outlet>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: PromptsComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'sftech-prompts', imports: [RouterOutlet], template: "<router-outlet></router-outlet>\r\n\r\n" }]
34
+ }] });
35
+
36
+ const promptsRoutes = [
37
+ {
38
+ path: '',
39
+ component: PromptsComponent,
40
+ children: [
41
+ {
42
+ path: '',
43
+ component: PromptsListComponent,
44
+ },
45
+ ],
46
+ },
47
+ ];
48
+
49
+ export { promptsRoutes };
50
+ //# sourceMappingURL=sftech-ng-orchestrator-prompts.routes-DqBuYHY_.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftech-ng-orchestrator-prompts.routes-DqBuYHY_.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompts-list/prompts-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompts-list/prompts-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/prompts.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/prompts.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/prompts.routes.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { BaseListComponent, IconProvider, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptResponseDto } from '../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../core/services/prompt.service';\r\nimport { PromptDisplayComponent } from '../prompt-display/prompt-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompts-list',\r\n imports: [PaginatorComponent, Panel, TableModule],\r\n providers: [DialogService],\r\n templateUrl: './prompts-list.component.html',\r\n styleUrl: './prompts-list.component.css',\r\n})\r\nexport class PromptsListComponent extends BaseListComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected _repo = inject(PromptService);\r\n protected _route = 'prompts';\r\n protected _modalComponent = PromptDisplayComponent;\r\n\r\n public iconProvider = IconProvider;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","@if (!data()) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length === 0) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Es sind keine Prompts vorhanden.\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length > 0) {\r\n <p-table [value]=\"data()!\"\r\n stripedRows\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n selectionMode=\"single\"\r\n [resizableColumns]=\"true\"\r\n dataKey=\"id\"\r\n >\r\n <ng-template #header>\r\n <tr>\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <th>{{ data()![0].getUiNameForProperty(column) }}</th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-prompt>\r\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <td style=\"white-space: pre-wrap\">\r\n {{ prompt.getPropertyValue(column) }}\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sftech-prompts',\r\n imports: [RouterOutlet],\r\n templateUrl: './prompts.component.html',\r\n styleUrl: './prompts.component.css',\r\n})\r\nexport class PromptsComponent {}\r\n","<router-outlet></router-outlet>\r\n\r\n","import { PromptsListComponent } from './components/prompt/prompts-list/prompts-list.component';\r\nimport { PromptsComponent } from './prompts.component';\r\n\r\nexport const promptsRoutes = [\r\n {\r\n path: '',\r\n component: PromptsComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PromptsListComponent,\r\n },\r\n ],\r\n },\r\n];\r\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import * as i0 from '@angular/core';
2
3
  import { InjectionToken, Inject, Injectable, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
4
  import * as i1 from '@angular/common/http';
5
5
 
6
- const ORCHESTRATOR_CONFIGURATION = new InjectionToken('ORCHESTRATOR_CONFIGURATION');
7
-
8
6
  class OrchestratorConfigMapper {
9
7
  static map(config) {
10
8
  return {
@@ -14,6 +12,8 @@ class OrchestratorConfigMapper {
14
12
  }
15
13
  }
16
14
 
15
+ const ORCHESTRATOR_CONFIGURATION = new InjectionToken('ORCHESTRATOR_CONFIGURATION');
16
+
17
17
  class OrcherstratorService {
18
18
  http;
19
19
  config;
@@ -22,7 +22,7 @@ class OrcherstratorService {
22
22
  this.config = config;
23
23
  }
24
24
  runAgent(runConfig) {
25
- const url = `${this.config.orchestratorUrl}/api/generic/run`;
25
+ const url = `${this.config.orchestratorUrl}/generic/run`;
26
26
  return this.http.post(url, runConfig);
27
27
  }
28
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: OrcherstratorService, deps: [{ token: i1.HttpClient }, { token: ORCHESTRATOR_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -35,9 +35,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
35
35
  args: [ORCHESTRATOR_CONFIGURATION]
36
36
  }] }] });
37
37
 
38
+ // biome-ignore lint/complexity/noStaticOnlyClass: <explanation>
38
39
  class OrchestratorModule {
39
40
  static forRoot(config) {
40
- console.log(config);
41
41
  return {
42
42
  ngModule: OrchestratorModule,
43
43
  providers: [
@@ -45,7 +45,7 @@ class OrchestratorModule {
45
45
  provide: ORCHESTRATOR_CONFIGURATION,
46
46
  useValue: OrchestratorConfigMapper.map(config),
47
47
  },
48
- OrcherstratorService
48
+ OrcherstratorService,
49
49
  ],
50
50
  };
51
51
  }
@@ -57,24 +57,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
57
57
  type: NgModule,
58
58
  args: [{
59
59
  declarations: [],
60
- imports: [
61
- CommonModule,
62
- ]
60
+ imports: [CommonModule],
63
61
  }]
64
62
  }] });
65
63
 
66
64
  const orchestratorRoutes = [
67
65
  {
68
66
  path: 'chats',
69
- loadChildren: () => import('./sftech-ng-orchestrator-chat.routes-6WiLaurE.mjs').then(m => m.chatRoutes)
67
+ loadChildren: () => import('./sftech-ng-orchestrator-chat.routes-D03Vrjwo.mjs').then(m => m.chatRoutes)
70
68
  },
71
69
  {
72
70
  path: 'prompts',
73
- loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-B2XVGKZw.mjs').then(m => m.promptsRoutes)
71
+ loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-DqBuYHY_.mjs').then(m => m.promptsRoutes)
74
72
  },
75
73
  {
76
74
  path: 'agents',
77
- loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-B6AJfgEl.mjs').then(m => m.agentsRoutes)
75
+ loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-55bOvZM8.mjs').then(m => m.agentsRoutes)
78
76
  },
79
77
  ];
80
78
 
@@ -82,5 +80,5 @@ const orchestratorRoutes = [
82
80
  * Generated bundle index. Do not edit.
83
81
  */
84
82
 
85
- export { OrcherstratorService as O, OrchestratorModule as a, orchestratorRoutes as o };
86
- //# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-Dk76dBVe.mjs.map
83
+ export { OrcherstratorService as O, ORCHESTRATOR_CONFIGURATION as a, OrchestratorModule as b, orchestratorRoutes as o };
84
+ //# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/configuration/orchestrator-config.mapper.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/configuration/orchestrator-configuration.token.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/orcherstrator.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/orchestrator.module.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/orchestrator.routes.ts","../../../../libs/ng-orchestrator/src/sftech-ng-orchestrator.ts"],"sourcesContent":["// import {IAppConfig} from \"@sftech/ng-shared\";\r\nimport {IOrchestratorConfig} from \"./orchestrator-config.interface\";\r\n\r\nexport class OrchestratorConfigMapper {\r\n public static map(config: any): IOrchestratorConfig {\r\n return {\r\n orchestratorUrl: config['ORCHESTRATOR_URL'] as string,\r\n orchestratorDbUrl: config['ORCHESTRATOR_DB_URL'] as string,\r\n }\r\n }\r\n}","import {InjectionToken} from \"@angular/core\";\r\nimport {IOrchestratorConfig} from \"./orchestrator-config.interface\";\r\n\r\nexport const ORCHESTRATOR_CONFIGURATION = new InjectionToken<IOrchestratorConfig>('ORCHESTRATOR_CONFIGURATION');","import {Inject, Injectable} from \"@angular/core\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {IOrchestratorRunDto} from \"../dtos/orchestrator-run.dto\";\r\nimport {Observable} from \"rxjs\";\r\nimport {ORCHESTRATOR_CONFIGURATION} from \"../configuration/orchestrator-configuration.token\";\r\nimport {IOrchestratorConfig} from \"../configuration/orchestrator-config.interface\";\r\n\r\n@Injectable()\r\nexport class OrcherstratorService {\r\n public constructor(private readonly http: HttpClient, @Inject(ORCHESTRATOR_CONFIGURATION) private readonly config: IOrchestratorConfig) {\r\n }\r\n\r\n public runAgent(runConfig: IOrchestratorRunDto): Observable<any> {\r\n const url = `${this.config.orchestratorUrl}/generic/run`\r\n return this.http.post(url, runConfig);\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { IAppConfig } from '@sftech/ng-shared';\r\nimport { OrchestratorConfigMapper } from './core/configuration/orchestrator-config.mapper';\r\nimport { ORCHESTRATOR_CONFIGURATION } from './core/configuration/orchestrator-configuration.token';\r\nimport { OrcherstratorService } from './core/service/orcherstrator.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n})\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class OrchestratorModule {\r\n public static forRoot(config: IAppConfig): ModuleWithProviders<OrchestratorModule> {\r\n return {\r\n ngModule: OrchestratorModule,\r\n providers: [\r\n {\r\n provide: ORCHESTRATOR_CONFIGURATION,\r\n useValue: OrchestratorConfigMapper.map(config),\r\n },\r\n OrcherstratorService,\r\n ],\r\n };\r\n }\r\n}\r\n","import {Route} from '@angular/router';\r\n\r\nexport const orchestratorRoutes: Route[] = [\r\n {\r\n path: 'chats',\r\n loadChildren: () => import('./chat/chat.routes').then(m => m.chatRoutes)\r\n },\r\n {\r\n path: 'prompts',\r\n loadChildren: () => import('./prompts/prompts.routes').then(m => m.promptsRoutes)\r\n },\r\n {\r\n path: 'agents',\r\n loadChildren: () => import('./agents/agents.routes').then(m => m.agentsRoutes)\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { a as OrchestratorModule, o as orchestratorRoutes } from './sftech-ng-orchestrator-sftech-ng-orchestrator-Dk76dBVe.mjs';
1
+ export { b as OrchestratorModule, o as orchestratorRoutes } from './sftech-ng-orchestrator-sftech-ng-orchestrator-B4ElgVGE.mjs';
2
2
  //# sourceMappingURL=sftech-ng-orchestrator.mjs.map
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AgentsComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<AgentsComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<AgentsComponent, "sftech-agents", never, {}, {}, never, never, true, never>;
5
+ }
@@ -1 +1,10 @@
1
- export declare const agentsRoutes: never[];
1
+ import { AgentsComponent } from './agents.component';
2
+ import { AgentsListComponent } from './components/agent/agents-list/agents-list.component';
3
+ export declare const agentsRoutes: {
4
+ path: string;
5
+ component: typeof AgentsComponent;
6
+ children: {
7
+ path: string;
8
+ component: typeof AgentsListComponent;
9
+ }[];
10
+ }[];
@@ -0,0 +1,20 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { BaseDisplayComponent } from '@sftech/ng-shared';
3
+ import { DialogService } from 'primeng/dynamicdialog';
4
+ import { IAgentResponseDto } from '../../../core/dtos/agent-response.dto';
5
+ import { IAgentUpdateDto } from '../../../core/dtos/agent-update-request.dto';
6
+ import { Agent } from '../../../core/models/agent.model';
7
+ import { AgentService } from '../../../core/services/agent.service';
8
+ import * as i0 from "@angular/core";
9
+ export declare class AgentDisplayComponent extends BaseDisplayComponent<Agent, IAgentUpdateDto, IAgentUpdateDto, IAgentResponseDto> {
10
+ protected _repo: AgentService;
11
+ protected _route: string;
12
+ protected dialog: DialogService;
13
+ protected initializeForm(): FormGroup;
14
+ protected getNewModel(): Agent;
15
+ protected mapFormToUpdateDto(): IAgentUpdateDto;
16
+ protected mapFormToCreateDto(): IAgentUpdateDto;
17
+ openPromptModal(promptId: number | undefined): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<AgentDisplayComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<AgentDisplayComponent, "sftech-prompt-display", never, {}, {}, never, never, true, never>;
20
+ }