ngx-t-forms 2.0.12 → 2.0.15
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/fesm2022/{ngx-t-forms-api-value-access-rules.component-DyptJ5Lx.mjs → ngx-t-forms-api-value-access-rules.component-fKCk6tHv.mjs} +11 -12
- package/fesm2022/{ngx-t-forms-api-value-access-rules.component-DyptJ5Lx.mjs.map → ngx-t-forms-api-value-access-rules.component-fKCk6tHv.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-calculated-field-rules.component-D-p_AC92.mjs → ngx-t-forms-calculated-field-rules.component-B_8NQhQQ.mjs} +8 -9
- package/fesm2022/{ngx-t-forms-calculated-field-rules.component-D-p_AC92.mjs.map → ngx-t-forms-calculated-field-rules.component-B_8NQhQQ.mjs.map} +1 -1
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-Wv7jtClz.mjs +189 -0
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-Wv7jtClz.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-CZ_RUvAq.mjs → ngx-t-forms-config-mscoa-additional-inputs.component-DuC1LDjl.mjs} +7 -8
- package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-CZ_RUvAq.mjs.map → ngx-t-forms-config-mscoa-additional-inputs.component-DuC1LDjl.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-form-input-selector.component-DFFfODcQ.mjs → ngx-t-forms-form-input-selector.component-DZXH_UBK.mjs} +7 -6
- package/fesm2022/{ngx-t-forms-form-input-selector.component-DFFfODcQ.mjs.map → ngx-t-forms-form-input-selector.component-DZXH_UBK.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-form-json-view.component-DnW2Z2Dx.mjs → ngx-t-forms-form-json-view.component-U4HGVNQk.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-form-json-view.component-DnW2Z2Dx.mjs.map → ngx-t-forms-form-json-view.component-U4HGVNQk.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-form-section-stepper.component-KFY1Ligw.mjs → ngx-t-forms-form-section-stepper.component-DGqSwAYD.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-form-section-stepper.component-KFY1Ligw.mjs.map → ngx-t-forms-form-section-stepper.component-DGqSwAYD.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-forms-builder-menu.component-oXTutvUh.mjs → ngx-t-forms-forms-builder-menu.component-CAE1-JXD.mjs} +12 -12
- package/fesm2022/{ngx-t-forms-forms-builder-menu.component-oXTutvUh.mjs.map → ngx-t-forms-forms-builder-menu.component-CAE1-JXD.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-input-editor.component-Bw3MLspq.mjs → ngx-t-forms-input-editor.component-D18kU0fT.mjs} +12 -12
- package/fesm2022/{ngx-t-forms-input-editor.component-Bw3MLspq.mjs.map → ngx-t-forms-input-editor.component-D18kU0fT.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-chip-list-editor.component-BjgxuRp4.mjs → ngx-t-forms-mat-chip-list-editor.component-qzR-rM4E.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-mat-chip-list-editor.component-BjgxuRp4.mjs.map → ngx-t-forms-mat-chip-list-editor.component-qzR-rM4E.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-slider-editor.component-BH3FudLk.mjs → ngx-t-forms-mat-slider-editor.component-pVWgzc5_.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-mat-slider-editor.component-BH3FudLk.mjs.map → ngx-t-forms-mat-slider-editor.component-pVWgzc5_.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-BiedE32P.mjs → ngx-t-forms-mat-slider-toggle-editor.component-Ddy1-Jgp.mjs} +7 -7
- package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-BiedE32P.mjs.map → ngx-t-forms-mat-slider-toggle-editor.component-Ddy1-Jgp.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-missing-form-configs.component-BCUXbEDz.mjs → ngx-t-forms-missing-form-configs.component-BQbT17M7.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-missing-form-configs.component-BCUXbEDz.mjs.map → ngx-t-forms-missing-form-configs.component-BQbT17M7.mjs.map} +1 -1
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-BxyJB21G.mjs +280 -0
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-BxyJB21G.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-ngx-t-forms-D4uTTkn-.mjs → ngx-t-forms-ngx-t-forms-Biy_6-DN.mjs} +374 -369
- package/fesm2022/ngx-t-forms-ngx-t-forms-Biy_6-DN.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-pipeline-generator.component-C5qbKts5.mjs → ngx-t-forms-pipeline-generator.component-DfjnUdcM.mjs} +21 -22
- package/fesm2022/{ngx-t-forms-pipeline-generator.component-C5qbKts5.mjs.map → ngx-t-forms-pipeline-generator.component-DfjnUdcM.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-required-inputs.component-DBOzCWsw.mjs → ngx-t-forms-required-inputs.component-0l94qfKx.mjs} +7 -8
- package/fesm2022/{ngx-t-forms-required-inputs.component-DBOzCWsw.mjs.map → ngx-t-forms-required-inputs.component-0l94qfKx.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-DGxWDFUN.mjs → ngx-t-forms-rest-api-call-setup.component-DmII4rB1.mjs} +8 -8
- package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-DGxWDFUN.mjs.map → ngx-t-forms-rest-api-call-setup.component-DmII4rB1.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-section-report.component-DMvHXB1F.mjs → ngx-t-forms-section-report.component-D04ybG_k.mjs} +5 -5
- package/fesm2022/{ngx-t-forms-section-report.component-DMvHXB1F.mjs.map → ngx-t-forms-section-report.component-D04ybG_k.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-selection-options-editor.component-B5Sw7_ff.mjs → ngx-t-forms-selection-options-editor.component-C8KaRaIJ.mjs} +6 -6
- package/fesm2022/{ngx-t-forms-selection-options-editor.component-B5Sw7_ff.mjs.map → ngx-t-forms-selection-options-editor.component-C8KaRaIJ.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-validators-config.component-B8J6K4e5.mjs → ngx-t-forms-validators-config.component-DEZQOMZx.mjs} +10 -10
- package/fesm2022/{ngx-t-forms-validators-config.component-B8J6K4e5.mjs.map → ngx-t-forms-validators-config.component-DEZQOMZx.mjs.map} +1 -1
- package/fesm2022/ngx-t-forms.mjs +1 -1
- package/lib/components/forms/forms.component.d.ts +1 -1
- package/lib/components/index.d.ts +1 -3
- package/lib/components/t-dynamic-data-edit/elements/chip-options-creator-editor/chip-options-creator-editor.component.d.ts +53 -0
- package/lib/components/t-dynamic-data-edit/elements/mscoa-segment-config/mscoa-segment-config.component.d.ts +7 -1
- package/lib/components/t-dynamic-data-edit/t-dynamic-data-edit.component.d.ts +1 -0
- package/lib/components/t-form-input/elements/mscoa-form-input/elements/account-value/account-value.component.d.ts +4 -8
- package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/mscoa-chart.component.d.ts +21 -9
- package/lib/components/t-form-input/elements/mscoa-form-input/elements/scoa-account-table/scoa-account-table.component.d.ts +2 -0
- package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-actions.d.ts +2 -2
- package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-component-store.service.d.ts +13 -6
- package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-selectors.d.ts +11 -4
- package/lib/shared/pipes/date/days-ago.pipe.d.ts +5 -0
- package/package.json +13 -17
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-D7r-z327.mjs +0 -258
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-D7r-z327.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-ngx-t-forms-D4uTTkn-.mjs.map +0 -1
- package/lib/components/t-form-input/elements/editor-input-element/core/form-input-rich-text-editor/form-input-rich-text-editor.component.d.ts +0 -14
- package/lib/components/t-form-input/elements/editor-input-element/core/form-input-rich-text-editor/sync-editor/sync-editor.component.d.ts +0 -10
- package/lib/components/workflow-builder/store/workflow-builder-store.service.d.ts +0 -18
- package/lib/components/workflow-builder/store/workflowEditorActions.d.ts +0 -4
- package/lib/components/workflow-builder/store/workflowEditorEffects.d.ts +0 -2
- package/lib/components/workflow-builder/store/workflowEditorSelectors.d.ts +0 -2
- package/lib/components/workflow-builder/workflow-builder.component.d.ts +0 -12
|
@@ -6,20 +6,19 @@ import * as i1 from '@angular/forms';
|
|
|
6
6
|
import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import { Subscription, debounceTime, BehaviorSubject, switchMap, map, take, catchError, finalize, throwError, tap, combineLatest, filter, Subject, takeUntil, distinctUntilChanged } from 'rxjs';
|
|
8
8
|
import PipelineBuilder from 'db-aggregation-pipeline-builder';
|
|
9
|
-
import { M as MatModulesModule, N as NGX_T_FORMS_CONFIG_TOKEN, b as TDynamicDataViewComponent, D as DaysAgoPipe } from './ngx-t-forms-ngx-t-forms-
|
|
9
|
+
import { M as MatModulesModule, N as NGX_T_FORMS_CONFIG_TOKEN, b as TDynamicDataViewComponent, D as DaysAgoPipe } from './ngx-t-forms-ngx-t-forms-Biy_6-DN.mjs';
|
|
10
10
|
import * as i6 from '@angular/material/icon';
|
|
11
|
-
import * as i3 from '@angular/material/
|
|
11
|
+
import * as i3 from '@angular/material/autocomplete';
|
|
12
12
|
import * as i2$1 from '@angular/material/button';
|
|
13
13
|
import * as i3$1 from '@angular/material/card';
|
|
14
14
|
import * as i4 from '@angular/material/divider';
|
|
15
|
-
import * as i3$2 from '@angular/material/
|
|
16
|
-
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
17
|
-
import * as i7 from '@angular/material/select';
|
|
15
|
+
import * as i3$2 from '@angular/material/select';
|
|
18
16
|
import * as i8 from '@angular/material/tooltip';
|
|
19
17
|
import * as i4$1 from '@angular/material/chips';
|
|
20
18
|
import * as i6$1 from '@angular/material/list';
|
|
21
|
-
import * as i7
|
|
19
|
+
import * as i7 from '@angular/material/progress-spinner';
|
|
22
20
|
import * as i9 from '@angular/material/toolbar';
|
|
21
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
23
22
|
import { HttpClient } from '@angular/common/http';
|
|
24
23
|
import * as i5 from '@angular/material/expansion';
|
|
25
24
|
|
|
@@ -100,10 +99,10 @@ class JsonEditorComponent {
|
|
|
100
99
|
const end = Math.min(value.length, position + excerptLength);
|
|
101
100
|
return value.substring(start, end);
|
|
102
101
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: JsonEditorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: JsonEditorComponent, isStandalone: true, selector: "app-json-editor", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"json-editor-container\">\n <div *ngIf=\"jsonForm.invalid\" \n style=\"margin-top: 16px;\"\n class=\"tree-instructions\">\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\n <span> Paste or type JSON below. The editor will auto-beautify the text.</span>\n </div>\n\n\n \n <!-- Error message if JSON is invalid -->\n <div *ngIf=\"errorMessage\" \n \n style=\"\" class=\"tree-instructions json-error \">\n <span> {{errorMessage}}</span>\n </div>\n \n <form [formGroup]=\"jsonForm\">\n <textarea\n formControlName=\"jsonText\"\n class=\"json-textarea\"\n [class.error-message]=\"errorMessage\"\n rows=\"15\"\n placeholder=\"Enter your JSON here...\"></textarea>\n </form>\n <!-- JSON Textarea -->\n\n</div>\n", styles: [".json-editor-container{max-width:800px;margin:0 auto;border-radius:5px}.json-editor-container h1{font-size:24px;color:#333}.json-editor-container .lead{font-size:.9 rem;margin-bottom:10px;padding-left:16px}.json-editor-container .json-textarea{width:calc(100% - 24px);padding:12px;font-size:14px;color:#333;background-color:#fff;border:1px solid #ccc;border-radius:5px;font-family:Courier New,Courier,monospace}.json-editor-container .json-textarea:focus{outline:none;border-color:var(--ion-color-primary)}.error-message{border:solid 1px #e74c3c!important}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;border-radius:4px;margin-bottom:0;background:azure}.json-error{background:inherit;color:#e74c3c;margin-bottom:4px}.info-icon{width:38px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
105
104
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: JsonEditorComponent, decorators: [{
|
|
107
106
|
type: Component,
|
|
108
107
|
args: [{ selector: 'app-json-editor', standalone: true, imports: [
|
|
109
108
|
CommonModule,
|
|
@@ -210,10 +209,10 @@ class AggregateStageEditorComponent {
|
|
|
210
209
|
deleteActive() {
|
|
211
210
|
this.deleteStage.emit();
|
|
212
211
|
}
|
|
213
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AggregateStageEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AggregateStageEditorComponent, isStandalone: true, selector: "app-aggregate-stage-editor", inputs: { selectedStage: "selectedStage", isRunningPipeline: "isRunningPipeline" }, outputs: { saveStage: "saveStage", deleteStage: "deleteStage" }, ngImport: i0, template: "<mat-card style=\"margin-bottom:8px\">\n <mat-card-content>\n\n <h5>\n Aggregate Pipeline Stage Configuration\n </h5>\n\n\n\n <mat-form-field style=\" margin-bottom: 8px;\" appearance=\"outline\">\n <mat-label>Select Aggregate Stage</mat-label>\n <mat-select matNativeControl [value]=\"selectedStage?.name\" (selectionChange)=\"handleChange($event)\"\n placeholder=\"ChooseFunctionToRun\">\n <mat-option *ngFor=\"let stage of allowedStages; trackBy: trackByStage\" [value]=\"stage.stage\">\n {{stage.stage}}</mat-option>\n\n\n\n </mat-select>\n <mat-hint>\n {{activeDescription ?\n 'Hover over the info icon to view stage details .'\n : 'Please select an aggregation function from the list.'}}\n </mat-hint>\n <mat-hint *ngIf=\"activeDescription\" align=\"end\">\n <mat-icon matTooltipHideDelay=\"1000\" [matTooltip]=\"activeDescription\" matSuffix>info</mat-icon>\n </mat-hint>\n </mat-form-field>\n\n\n\n <div class=\"tree-instructions\" style=\"background: cornsilk;\" *ngIf=\"configValidationError\">\n <mat-icon style=\"margin-top: 4px;margin-bottom:auto\" class=\"info-icon\" color=\"warn\">warning</mat-icon>\n <span>{{ configValidationError }}</span>\n </div>\n\n\n\n\n\n <div class=\"config-container\" *ngIf=\"activeStage ||selectedStage?.config\">\n <app-json-editor [value]=\"selectedStage?.config\" (valueChange)=\"handleConfigChange($event)\"></app-json-editor>\n </div>\n\n <br>\n\n\n\n </mat-card-content>\n <mat-divider>\n </mat-divider>\n <mat-card-actions>\n\n <span class=\"spacer\"></span>\n <button color=\"warn\" [disabled]=\"isRunningPipeline\" mat-button (click)=\"deleteActive()\">\n Delete\n <mat-icon >delete</mat-icon>\n </button>\n <button style=\"margin-left:8px;\" color=\"primary\" mat-flat-button (click)=\"saveConfiguration()\"\n [disabled]=\"isRunningPipeline ||!activeStage?.valid \">\n Save\n <mat-icon> save</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>", styles: [".title-icon{margin-right:8px;vertical-align:middle}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:var(--mdc-elevated-card-container-color, var(--mat-app-surface-container-low));border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px!important;display:block}mat-form-field{min-width:100%;background:azure}.stageDescription{background:azure}.stage-button-container{display:flex;gap:4px;width:fit-content;align-items:center}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:azure;border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px;margin:8px auto auto}\n"], dependencies: [{ kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: JsonEditorComponent, selector: "app-json-editor", inputs: ["value"], outputs: ["valueChange"] }] }); }
|
|
215
214
|
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AggregateStageEditorComponent, decorators: [{
|
|
217
216
|
type: Component,
|
|
218
217
|
args: [{ selector: 'app-aggregate-stage-editor', standalone: true, imports: [
|
|
219
218
|
MatModulesModule,
|
|
@@ -260,10 +259,10 @@ class TWorkflowPickerComponent {
|
|
|
260
259
|
get selectedWorkflow() {
|
|
261
260
|
return this._workflowOptions?.find((workflow) => workflow.id === this.value);
|
|
262
261
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TWorkflowPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: TWorkflowPickerComponent, isStandalone: true, selector: "lib-t-workflow-picker", inputs: { getWorkflowOptions: "getWorkflowOptions", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: "@if (error) {\r\n<mat-toolbar>\r\n <span>\r\n Failed to load workflow list\r\n </span>\r\n <span class=\"spacer\"></span>\r\n <button color=\"primary\" mat-raised-button>\r\n Retry\r\n\r\n </button>\r\n</mat-toolbar>\r\n}\r\n@if(loading){\r\n<div class=\"loadingContainer\">\r\n <mat-spinner></mat-spinner>\r\n</div>\r\n}\r\n@if(!loading&& !error){\r\n<mat-card>\r\n <mat-nav-list style=\"padding: 0px;\">\r\n @if(!value){\r\n @for (option of workflowOptions; track option.id) {\r\n <mat-list-item (click)=\"bindInput(option)\">\r\n\r\n <mat-chip class=\"docType\" [style.background]=\" option['isDocument'] ? 'lightskyblue' : ''\" matListItemIcon>\r\n <span style=\"font-size: 10px;\">\r\n {{ option[\"isDocument\"] ? \"DOC\" : \"FLOW\" }}\r\n </span>\r\n </mat-chip>\r\n\r\n\r\n <div matListItemTitle>\r\n <div>\r\n {{ option.name }}\r\n </div>\r\n\r\n <div style=\"font-size: 13px; opacity: 0.6;line-height:normal\">\r\n {{ option[\"createdAt\"] | date: \"medium\" }} \r\n {{ option.numberOfSteps }}\r\n </div>\r\n </div>\r\n <button matListItemMeta mat-icon-button>\r\n <mat-icon>\r\n radio_button_unchecked\r\n </mat-icon>\r\n </button>\r\n\r\n </mat-list-item>\r\n <mat-divider></mat-divider>\r\n }\r\n }\r\n @if(value){\r\n <mat-list-item (click)=\" unbindInput() \">\r\n\r\n <mat-chip class=\"docType\" [style.background]=\"selectedWorkflow?.['isDocument'] ? 'lightskyblue' : ''\" matListItemIcon>\r\n <span style=\"font-size: 10px;\">\r\n {{selectedWorkflow?.[\"isDocument\"] ? \"DOC\" : \"FLOW\" }}\r\n </span>\r\n </mat-chip>\r\n \r\n \r\n <div matListItemTitle>\r\n <div>\r\n {{ selectedWorkflow?.name }}\r\n </div>\r\n \r\n <div style=\"font-size: 13px; opacity: 0.6;line-height:normal\">\r\n {{selectedWorkflow?.[\"createdAt\"] | date: \"medium\" }} \r\n {{ selectedWorkflow?.numberOfSteps }}\r\n </div>\r\n </div>\r\n <button matListItemMeta mat-icon-button>\r\n <mat-icon color=\"primary\">\r\n check_circle\r\n </mat-icon>\r\n </button>\r\n \r\n </mat-list-item>\r\n }\r\n\r\n\r\n </mat-nav-list>\r\n</mat-card>\r\n\r\n}", styles: [".suggestion-container{display:flex;width:100%;gap:14px}.docType{width:min-content;margin-top:auto!important;margin-bottom:auto!important}mat-card{margin-bottom:8px;background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i4$1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i6$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i6$1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i6$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i6$1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] }); }
|
|
265
264
|
}
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TWorkflowPickerComponent, decorators: [{
|
|
267
266
|
type: Component,
|
|
268
267
|
args: [{ selector: 'lib-t-workflow-picker', standalone: true, imports: [CommonModule, MatModulesModule], template: "@if (error) {\r\n<mat-toolbar>\r\n <span>\r\n Failed to load workflow list\r\n </span>\r\n <span class=\"spacer\"></span>\r\n <button color=\"primary\" mat-raised-button>\r\n Retry\r\n\r\n </button>\r\n</mat-toolbar>\r\n}\r\n@if(loading){\r\n<div class=\"loadingContainer\">\r\n <mat-spinner></mat-spinner>\r\n</div>\r\n}\r\n@if(!loading&& !error){\r\n<mat-card>\r\n <mat-nav-list style=\"padding: 0px;\">\r\n @if(!value){\r\n @for (option of workflowOptions; track option.id) {\r\n <mat-list-item (click)=\"bindInput(option)\">\r\n\r\n <mat-chip class=\"docType\" [style.background]=\" option['isDocument'] ? 'lightskyblue' : ''\" matListItemIcon>\r\n <span style=\"font-size: 10px;\">\r\n {{ option[\"isDocument\"] ? \"DOC\" : \"FLOW\" }}\r\n </span>\r\n </mat-chip>\r\n\r\n\r\n <div matListItemTitle>\r\n <div>\r\n {{ option.name }}\r\n </div>\r\n\r\n <div style=\"font-size: 13px; opacity: 0.6;line-height:normal\">\r\n {{ option[\"createdAt\"] | date: \"medium\" }} \r\n {{ option.numberOfSteps }}\r\n </div>\r\n </div>\r\n <button matListItemMeta mat-icon-button>\r\n <mat-icon>\r\n radio_button_unchecked\r\n </mat-icon>\r\n </button>\r\n\r\n </mat-list-item>\r\n <mat-divider></mat-divider>\r\n }\r\n }\r\n @if(value){\r\n <mat-list-item (click)=\" unbindInput() \">\r\n\r\n <mat-chip class=\"docType\" [style.background]=\"selectedWorkflow?.['isDocument'] ? 'lightskyblue' : ''\" matListItemIcon>\r\n <span style=\"font-size: 10px;\">\r\n {{selectedWorkflow?.[\"isDocument\"] ? \"DOC\" : \"FLOW\" }}\r\n </span>\r\n </mat-chip>\r\n \r\n \r\n <div matListItemTitle>\r\n <div>\r\n {{ selectedWorkflow?.name }}\r\n </div>\r\n \r\n <div style=\"font-size: 13px; opacity: 0.6;line-height:normal\">\r\n {{selectedWorkflow?.[\"createdAt\"] | date: \"medium\" }} \r\n {{ selectedWorkflow?.numberOfSteps }}\r\n </div>\r\n </div>\r\n <button matListItemMeta mat-icon-button>\r\n <mat-icon color=\"primary\">\r\n check_circle\r\n </mat-icon>\r\n </button>\r\n \r\n </mat-list-item>\r\n }\r\n\r\n\r\n </mat-nav-list>\r\n</mat-card>\r\n\r\n}", styles: [".suggestion-container{display:flex;width:100%;gap:14px}.docType{width:min-content;margin-top:auto!important;margin-bottom:auto!important}mat-card{margin-bottom:8px;background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}\n"] }]
|
|
269
268
|
}], ctorParameters: () => [], propDecorators: { getWorkflowOptions: [{
|
|
@@ -518,10 +517,10 @@ class PipelineService {
|
|
|
518
517
|
};
|
|
519
518
|
}));
|
|
520
519
|
}
|
|
521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
522
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
520
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PipelineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
521
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PipelineService, providedIn: 'root' }); }
|
|
523
522
|
}
|
|
524
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PipelineService, decorators: [{
|
|
525
524
|
type: Injectable,
|
|
526
525
|
args: [{
|
|
527
526
|
providedIn: 'root'
|
|
@@ -737,10 +736,10 @@ class PipelineGeneratorComponent {
|
|
|
737
736
|
this.pipeline.saveStage(index, stage);
|
|
738
737
|
this.setActiveStage(undefined);
|
|
739
738
|
}
|
|
740
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
741
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: PipelineGeneratorComponent, isStandalone: true, selector: "app-pipeline-generator", inputs: { value: "value", getWorkflowOptions: "getWorkflowOptions", userName: "userName", errors: "errors" }, outputs: { valueChanged: "valueChanged" }, host: { properties: { "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: PipelineGeneratorComponent }], viewQueries: [{ propertyName: "textareaElementRef", first: true, predicate: ["textarea"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if(!!loadingWorkflowOptions){\n<div style=\"display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px;\">\n <mat-spinner style=\"margin-bottom: 16px;\"></mat-spinner>\n <p>\n Loading workflows...\n </p>\n</div>\n}\n\n@if(!loadingWorkflowOptions){\n<section class=\"ion-margin\">\n <p>MongoDB aggregation pipeline builder for selected workflows. </p>\n</section>\n<lib-t-workflow-picker \n(valueChanged)=\"workflowChanged($event)\" \n[getWorkflowOptions]=\" workflowOptions\"\n [value]=\"workflowId|async\">\n</lib-t-workflow-picker>\n<mat-accordion multi *ngIf=\"workflowId|async\">\n <!-- Pipeline Accordion -->\n <mat-expansion-panel value=\"pipeline\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner color=\"accent\" *ngIf=\"isRunningPipeline\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">\n dynamic_form\n </mat-icon>\n {{isRunningPipeline?'Executing current Data pipeline...':'Data retrieval pipeline'}}\n </mat-panel-title>\n\n </mat-expansion-panel-header>\n <div class=\"content\">\n <!-- Mongodb aggregate pipelione stages management and edit start-->\n <div *ngIf=\"((stages | async)?.length || 0) ===0\" class=\"tree-instructions\">\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\n <span>\n Add stages to the pipeline below.<br>\n Each stage processes input documents by filtering, grouping, or calculating values. The output documents from\n one stage are passed to the next stage in the pipeline.\n </span>\n </div>\n\n <mat-nav-list style=\" background: var(--mat-tree-container-background-color);padding:0px;border-radius:8px\">\n\n\n <ng-container *ngFor=\"let stage of stages | async; trackBy: trackById;index as $index;last as isLast\">\n <mat-list-item [style.margin-top]=\"(activeStageIndex|async) ===$index?'4px':'0px'\"\n [class.mat-elevation-z8]=\"(activeStageIndex|async) ===$index\" class=\"stage-item\"\n (click)=\"setActiveStage($index)\" [activated]=\" (activeStageIndex|async) ===$index\">\n <span class=\"stage-index\" matListItemAvatar>{{$index + 1}} </span>\n <div matListItemTitle>\n <div style=\"line-height: normal;\">\n {{ stage.name || 'Stage ' }}\n </div>\n <div class=\"stage-inner-message\" *ngIf=\"!stage.name && (activeStageIndex|async) !==$index \">\n Incomplete , click to edit\n </div>\n\n </div>\n\n <button *ngIf=\"(activeStageIndex|async) ===$index||!stage.valid && (activeStageIndex|async) !==$index\"\n mat-icon-button matListItemMeta>\n <mat-icon color=\"primary\" *ngIf=\"(activeStageIndex|async) ===$index\">check_circle</mat-icon>\n\n <mat-icon color=\"warn\" *ngIf=\"!stage.valid && (activeStageIndex|async) !==$index\">\n warning\n </mat-icon>\n </button>\n </mat-list-item>\n <mat-divider></mat-divider>\n\n <app-aggregate-stage-editor [selectedStage]=\"stage\" [isRunningPipeline]=\"isRunningPipeline\"\n (deleteStage)=\"deleteStage($index)\" (saveStage)=\"saveStage($index,$event)\"\n *ngIf=\"(activeStageIndex|async) ===$index\"></app-aggregate-stage-editor>\n\n\n </ng-container>\n\n <mat-toolbar style=\"padding: 0px;\">\n\n <span class=\"spacer\"></span>\n <button class=\"stage-button\" [disabled]=\"isRunningPipeline\" color=\"primary\" (click)=\"addStage()\"\n mat-raised-button>\n Add\n <mat-icon>add</mat-icon>\n </button>\n </mat-toolbar>\n </mat-nav-list>\n\n <!-- Mongodb aggregate pipelione stages management and edit end -->\n </div>\n </mat-expansion-panel>\n\n <!-- Results Accordion -->\n <mat-expansion-panel value=\"results\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner color=\"accent\" *ngIf=\"isRunningPipeline\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">dataset</mat-icon>\n {{isRunningPipeline?'Running pipeline...':'Data Results'}}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"content\">\n <ng-container *ngIf=\"pipeLineResults | async as results; else noResults\">\n\n <lib-t-dynamic-data-view *ngIf=\"results\" [data]=\"results\"></lib-t-dynamic-data-view>\n <p *ngIf=\"!results\" color=\"medium\">\n\n No results available\n\n </p>\n\n </ng-container>\n <ng-template #noResults>\n <p color=\"medium\">No results available</p>\n </ng-template>\n </div>\n </mat-expansion-panel>\n\n <!-- AI Agent Accordion -->\n <mat-expansion-panel value=\"ai\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner *ngIf=\" aiIsGeneratingPipeline \" style=\"position: absolute;\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">tips_and_updates</mat-icon>\n {{ aiIsGeneratingPipeline ? 'Agent busy ...' : 'AI AGENT prompt' }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"content\">\n @if( schemaLoadError$ | async){\n <div class=\"tree-instructions\" style=\"background: antiquewhite !important;\">\n <mat-icon class=\"info-icon\" color=\"warn\">error</mat-icon>\n <span> {{ schemaLoadError$ | async }}</span>\n </div>\n \n }\n <mat-list *ngFor=\"let chat of chatHistory|async;\">\n\n <mat-list-item class=\"chatContent chatItem\">\n <div class=\"chat\" style=\"background:bisque;text-align:end;\n border-radius: 18px 18px 0px 18px;\" matListItemTitle>\n <div>\n {{chat.user}}\n </div>\n <div style=\"opacity:0.6;line-height: normal;display: flex;align-items: center;justify-content: flex-end;\">\n {{chat.date|daysAgo}}\n <mat-icon class=\"sent-icon\">\n done_all\n </mat-icon>\n </div>\n </div>\n </mat-list-item>\n\n <mat-list-item style=\"margin-top: 16px;\" class=\"chatContent chatItem\" color=\"light\" lines=\"full\">\n <mat-icon style=\" margin-left: 0px;\n margin-top: 16px;\n margin-bottom: auto;\" matListItemIcon>smart_toy</mat-icon>\n <div class=\"chat\" style=\"text-align: left; \n padding-left: 16px; \n background: azure;\n border-radius: 0px 18px 18px 18px;\" *ngIf=\"!chat.assistance?.error\" matListItemTitle>\n <pre>\n {{chat. assistance.pipeline |json}}\n </pre>\n </div>\n <div *ngIf=\"chat.assistance?.error\" matListItemTitle>\n {{chat.assistance.error}}\n </div>\n </mat-list-item>\n\n\n </mat-list>\n <mat-list>\n <mat-list-item class=\"chatContent chatItem\">\n <textarea matListItemTitle #textarea style=\" width: calc(100% - 13px);\n border-radius: 14px;\n padding-right: 3px;\n padding-left: 8px;\" class=\"chat\" [value]=\" prompt|async\" (input)=\"onTextChange($event)\"\n placeholder=\"Provide a pipeline generation prompt\"></textarea>\n <button matListItemMeta style=\" margin-left: 4px;\n margin-right: 0px;\" color=\"primary\" mat-mini-fab [disabled]=\"aiIsGeneratingPipeline\" (click)=\"promptSubmit()\">\n\n <mat-icon style=\"margin: 0px !important;color:white\">send</mat-icon>\n <mat-spinner color=\"accent\" *ngIf=\" aiIsGeneratingPipeline \" \n class=\"submit-spinner\" ></mat-spinner>\n </button>\n \n </mat-list-item>\n\n </mat-list>\n\n\n <section *ngIf=\"showSuggestions\" class=\"showSuggestionContainer\">\n <!-- <mat-toolbar class=\"search-container\" style=\"background: inherit;\">\n\n\n <input type=\"search\" placeholder=\"Search options\" class=\"search-field\" (change)=\"onSearchChange($event)\">\n\n <mat-icon>\n search\n </mat-icon>\n </mat-toolbar> -->\n <mat-divider></mat-divider>\n <div style=\"padding: 8px;\">\n <div class=\"suggestion-container\">\n <div class=\"suggestion-column\">\n <h5>Collection document properties</h5>\n <div class=\"button-container\">\n <button *ngFor=\"let method of getSchemaProperties | async;trackBy: trackById\"\n (click)=\"selectSuggestionInput(method.value)\" color=\"accent\" mat-flat-button\n class=\"suggestion-button\">\n {{ method.label | titlecase }}\n </button>\n </div>\n </div>\n\n </div>\n\n\n </div>\n </section>\n\n\n\n\n\n\n\n </div>\n </mat-expansion-panel>\n</mat-accordion>\n\n\n}", styles: ["ion-card{margin:0 auto}.head{font-weight:500;font-size:.9rem;padding-left:8px}.chat{margin-top:0;padding-bottom:8px;padding-top:9px;padding-right:16px;white-space:normal;font-size:.8rem}.icon{margin-top:auto;margin-bottom:auto;margin-right:16px}.container{max-width:600px;margin:0 auto}ion-accordion-group{margin:16px}ion-icon{margin-right:16PX}.suggestion-container{display:flex;width:100%;gap:14px}.suggestion-column{flex:1;min-width:0}.button-container{display:flex;flex-wrap:wrap}.suggestion-button{height:auto;text-transform:capitalize;margin:2px;padding:8px;line-height:normal;text-align:left;font-size:.8em}h5{margin-bottom:8px;font-size:1em}mat-expansion-panel-header{padding-left:16px;padding-right:16px}mat-expansion-panel{background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}mat-form-field{width:100%;background:azure}.chatItem{padding:0}.chatItem mat-icon{margin-left:16px;margin-right:16px}.chatContent{height:fit-content!important}.stage-button{margin:4px}.stage-index{font-size:14px;display:flex;width:28px;height:28px;justify-content:center;background:azure;align-items:center;border:solid var(--mat-divider-color, var(--mat-app-outline)) 1px}.stage-inner-message{font-size:14px;display:flex;line-height:normal;opacity:.6}.stage-item{height:54px!important}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:azure;border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px!important;display:block}.title-icon{margin-right:8px;vertical-align:middle}.header-spinner{position:absolute;width:24px!important;height:24px!important}.sent-icon{font-size:14px;height:14px;margin-right:0!important;margin-left:0!important}.submit-spinner{position:absolute;width:40px!important;right:-8px;top:-20px;height:40px!important;--mdc-circular-progress-size: 40px !important;--mdc-circular-progress-active-indicator-width: 40px !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.JsonPipe, name: "json" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "component", type: TWorkflowPickerComponent, selector: "lib-t-workflow-picker", inputs: ["getWorkflowOptions", "value"], outputs: ["valueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TDynamicDataViewComponent, selector: "lib-t-dynamic-data-view", inputs: ["data"] }, { kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i6$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i6$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i6$1.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "directive", type: i6$1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i6$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i6$1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: AggregateStageEditorComponent, selector: "app-aggregate-stage-editor", inputs: ["selectedStage", "isRunningPipeline"], outputs: ["saveStage", "deleteStage"] }, { kind: "pipe", type: DaysAgoPipe, name: "daysAgo" }] }); }
|
|
739
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PipelineGeneratorComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
740
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: PipelineGeneratorComponent, isStandalone: true, selector: "app-pipeline-generator", inputs: { value: "value", getWorkflowOptions: "getWorkflowOptions", userName: "userName", errors: "errors" }, outputs: { valueChanged: "valueChanged" }, host: { properties: { "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: PipelineGeneratorComponent }], viewQueries: [{ propertyName: "textareaElementRef", first: true, predicate: ["textarea"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if(!!loadingWorkflowOptions){\n<div style=\"display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px;\">\n <mat-spinner style=\"margin-bottom: 16px;\"></mat-spinner>\n <p>\n Loading workflows...\n </p>\n</div>\n}\n\n@if(!loadingWorkflowOptions){\n<section class=\"ion-margin\">\n <p>MongoDB aggregation pipeline builder for selected workflows. </p>\n</section>\n<lib-t-workflow-picker \n(valueChanged)=\"workflowChanged($event)\" \n[getWorkflowOptions]=\" workflowOptions\"\n [value]=\"workflowId|async\">\n</lib-t-workflow-picker>\n<mat-accordion multi *ngIf=\"workflowId|async\">\n <!-- Pipeline Accordion -->\n <mat-expansion-panel value=\"pipeline\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner color=\"accent\" *ngIf=\"isRunningPipeline\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">\n dynamic_form\n </mat-icon>\n {{isRunningPipeline?'Executing current Data pipeline...':'Data retrieval pipeline'}}\n </mat-panel-title>\n\n </mat-expansion-panel-header>\n <div class=\"content\">\n <!-- Mongodb aggregate pipelione stages management and edit start-->\n <div *ngIf=\"((stages | async)?.length || 0) ===0\" class=\"tree-instructions\">\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\n <span>\n Add stages to the pipeline below.<br>\n Each stage processes input documents by filtering, grouping, or calculating values. The output documents from\n one stage are passed to the next stage in the pipeline.\n </span>\n </div>\n\n <mat-nav-list style=\" background: var(--mat-tree-container-background-color);padding:0px;border-radius:8px\">\n\n\n <ng-container *ngFor=\"let stage of stages | async; trackBy: trackById;index as $index;last as isLast\">\n <mat-list-item [style.margin-top]=\"(activeStageIndex|async) ===$index?'4px':'0px'\"\n [class.mat-elevation-z8]=\"(activeStageIndex|async) ===$index\" class=\"stage-item\"\n (click)=\"setActiveStage($index)\" [activated]=\" (activeStageIndex|async) ===$index\">\n <span class=\"stage-index\" matListItemAvatar>{{$index + 1}} </span>\n <div matListItemTitle>\n <div style=\"line-height: normal;\">\n {{ stage.name || 'Stage ' }}\n </div>\n <div class=\"stage-inner-message\" *ngIf=\"!stage.name && (activeStageIndex|async) !==$index \">\n Incomplete , click to edit\n </div>\n\n </div>\n\n <button *ngIf=\"(activeStageIndex|async) ===$index||!stage.valid && (activeStageIndex|async) !==$index\"\n mat-icon-button matListItemMeta>\n <mat-icon color=\"primary\" *ngIf=\"(activeStageIndex|async) ===$index\">check_circle</mat-icon>\n\n <mat-icon color=\"warn\" *ngIf=\"!stage.valid && (activeStageIndex|async) !==$index\">\n warning\n </mat-icon>\n </button>\n </mat-list-item>\n <mat-divider></mat-divider>\n\n <app-aggregate-stage-editor [selectedStage]=\"stage\" [isRunningPipeline]=\"isRunningPipeline\"\n (deleteStage)=\"deleteStage($index)\" (saveStage)=\"saveStage($index,$event)\"\n *ngIf=\"(activeStageIndex|async) ===$index\"></app-aggregate-stage-editor>\n\n\n </ng-container>\n\n <mat-toolbar style=\"padding: 0px;\">\n\n <span class=\"spacer\"></span>\n <button class=\"stage-button\" [disabled]=\"isRunningPipeline\" color=\"primary\" (click)=\"addStage()\"\n mat-raised-button>\n Add\n <mat-icon>add</mat-icon>\n </button>\n </mat-toolbar>\n </mat-nav-list>\n\n <!-- Mongodb aggregate pipelione stages management and edit end -->\n </div>\n </mat-expansion-panel>\n\n <!-- Results Accordion -->\n <mat-expansion-panel value=\"results\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner color=\"accent\" *ngIf=\"isRunningPipeline\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">dataset</mat-icon>\n {{isRunningPipeline?'Running pipeline...':'Data Results'}}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"content\">\n <ng-container *ngIf=\"pipeLineResults | async as results; else noResults\">\n\n <lib-t-dynamic-data-view *ngIf=\"results\" [data]=\"results\"></lib-t-dynamic-data-view>\n <p *ngIf=\"!results\" color=\"medium\">\n\n No results available\n\n </p>\n\n </ng-container>\n <ng-template #noResults>\n <p color=\"medium\">No results available</p>\n </ng-template>\n </div>\n </mat-expansion-panel>\n\n <!-- AI Agent Accordion -->\n <mat-expansion-panel value=\"ai\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-spinner *ngIf=\" aiIsGeneratingPipeline \" style=\"position: absolute;\" class=\"header-spinner\"></mat-spinner>\n <mat-icon class=\"title-icon\">tips_and_updates</mat-icon>\n {{ aiIsGeneratingPipeline ? 'Agent busy ...' : 'AI AGENT prompt' }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"content\">\n @if( schemaLoadError$ | async){\n <div class=\"tree-instructions\" style=\"background: antiquewhite !important;\">\n <mat-icon class=\"info-icon\" color=\"warn\">error</mat-icon>\n <span> {{ schemaLoadError$ | async }}</span>\n </div>\n \n }\n <mat-list *ngFor=\"let chat of chatHistory|async;\">\n\n <mat-list-item class=\"chatContent chatItem\">\n <div class=\"chat\" style=\"background:bisque;text-align:end;\n border-radius: 18px 18px 0px 18px;\" matListItemTitle>\n <div>\n {{chat.user}}\n </div>\n <div style=\"opacity:0.6;line-height: normal;display: flex;align-items: center;justify-content: flex-end;\">\n {{chat.date|daysAgo}}\n <mat-icon class=\"sent-icon\">\n done_all\n </mat-icon>\n </div>\n </div>\n </mat-list-item>\n\n <mat-list-item style=\"margin-top: 16px;\" class=\"chatContent chatItem\" color=\"light\" lines=\"full\">\n <mat-icon style=\" margin-left: 0px;\n margin-top: 16px;\n margin-bottom: auto;\" matListItemIcon>smart_toy</mat-icon>\n <div class=\"chat\" style=\"text-align: left; \n padding-left: 16px; \n background: azure;\n border-radius: 0px 18px 18px 18px;\" *ngIf=\"!chat.assistance?.error\" matListItemTitle>\n <pre>\n {{chat. assistance.pipeline |json}}\n </pre>\n </div>\n <div *ngIf=\"chat.assistance?.error\" matListItemTitle>\n {{chat.assistance.error}}\n </div>\n </mat-list-item>\n\n\n </mat-list>\n <mat-list>\n <mat-list-item class=\"chatContent chatItem\">\n <textarea matListItemTitle #textarea style=\" width: calc(100% - 13px);\n border-radius: 14px;\n padding-right: 3px;\n padding-left: 8px;\" class=\"chat\" [value]=\" prompt|async\" (input)=\"onTextChange($event)\"\n placeholder=\"Provide a pipeline generation prompt\"></textarea>\n <button matListItemMeta style=\" margin-left: 4px;\n margin-right: 0px;\" color=\"primary\" mat-mini-fab [disabled]=\"aiIsGeneratingPipeline\" (click)=\"promptSubmit()\">\n\n <mat-icon style=\"margin: 0px !important;color:white\">send</mat-icon>\n <mat-spinner color=\"accent\" *ngIf=\" aiIsGeneratingPipeline \" \n class=\"submit-spinner\" ></mat-spinner>\n </button>\n \n </mat-list-item>\n\n </mat-list>\n\n\n <section *ngIf=\"showSuggestions\" class=\"showSuggestionContainer\">\n <!-- <mat-toolbar class=\"search-container\" style=\"background: inherit;\">\n\n\n <input type=\"search\" placeholder=\"Search options\" class=\"search-field\" (change)=\"onSearchChange($event)\">\n\n <mat-icon>\n search\n </mat-icon>\n </mat-toolbar> -->\n <mat-divider></mat-divider>\n <div style=\"padding: 8px;\">\n <div class=\"suggestion-container\">\n <div class=\"suggestion-column\">\n <h5>Collection document properties</h5>\n <div class=\"button-container\">\n <button *ngFor=\"let method of getSchemaProperties | async;trackBy: trackById\"\n (click)=\"selectSuggestionInput(method.value)\" color=\"accent\" mat-flat-button\n class=\"suggestion-button\">\n {{ method.label | titlecase }}\n </button>\n </div>\n </div>\n\n </div>\n\n\n </div>\n </section>\n\n\n\n\n\n\n\n </div>\n </mat-expansion-panel>\n</mat-accordion>\n\n\n}", styles: ["ion-card{margin:0 auto}.head{font-weight:500;font-size:.9rem;padding-left:8px}.chat{margin-top:0;padding-bottom:8px;padding-top:9px;padding-right:16px;white-space:normal;font-size:.8rem}.icon{margin-top:auto;margin-bottom:auto;margin-right:16px}.container{max-width:600px;margin:0 auto}ion-accordion-group{margin:16px}ion-icon{margin-right:16PX}.suggestion-container{display:flex;width:100%;gap:14px}.suggestion-column{flex:1;min-width:0}.button-container{display:flex;flex-wrap:wrap}.suggestion-button{height:auto;text-transform:capitalize;margin:2px;padding:8px;line-height:normal;text-align:left;font-size:.8em}h5{margin-bottom:8px;font-size:1em}mat-expansion-panel-header{padding-left:16px;padding-right:16px}mat-expansion-panel{background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}mat-form-field{width:100%;background:azure}.chatItem{padding:0}.chatItem mat-icon{margin-left:16px;margin-right:16px}.chatContent{height:fit-content!important}.stage-button{margin:4px}.stage-index{font-size:14px;display:flex;width:28px;height:28px;justify-content:center;background:azure;align-items:center;border:solid var(--mat-divider-color, var(--mat-app-outline)) 1px}.stage-inner-message{font-size:14px;display:flex;line-height:normal;opacity:.6}.stage-item{height:54px!important}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:azure;border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px!important;display:block}.title-icon{margin-right:8px;vertical-align:middle}.header-spinner{position:absolute;width:24px!important;height:24px!important}.sent-icon{font-size:14px;height:14px;margin-right:0!important;margin-left:0!important}.submit-spinner{position:absolute;width:40px!important;right:-8px;top:-20px;height:40px!important;--mdc-circular-progress-size: 40px !important;--mdc-circular-progress-active-indicator-width: 40px !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.JsonPipe, name: "json" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "component", type: TWorkflowPickerComponent, selector: "lib-t-workflow-picker", inputs: ["getWorkflowOptions", "value"], outputs: ["valueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TDynamicDataViewComponent, selector: "lib-t-dynamic-data-view", inputs: ["data"] }, { kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i6$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i6$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i6$1.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "directive", type: i6$1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i6$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i6$1.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: AggregateStageEditorComponent, selector: "app-aggregate-stage-editor", inputs: ["selectedStage", "isRunningPipeline"], outputs: ["saveStage", "deleteStage"] }, { kind: "pipe", type: DaysAgoPipe, name: "daysAgo" }] }); }
|
|
742
741
|
}
|
|
743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PipelineGeneratorComponent, decorators: [{
|
|
744
743
|
type: Component,
|
|
745
744
|
args: [{ selector: 'app-pipeline-generator', standalone: true, imports: [
|
|
746
745
|
CommonModule,
|
|
@@ -773,4 +772,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
773
772
|
}] } });
|
|
774
773
|
|
|
775
774
|
export { PipelineGeneratorComponent };
|
|
776
|
-
//# sourceMappingURL=ngx-t-forms-pipeline-generator.component-
|
|
775
|
+
//# sourceMappingURL=ngx-t-forms-pipeline-generator.component-DfjnUdcM.mjs.map
|