@xxmachina/components 20.24.2 → 20.45.12

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.
@@ -1,10 +1,11 @@
1
1
  import { omitBy, isEqual, merge } from 'lodash-es';
2
2
  import * as i0 from '@angular/core';
3
- import { signal, Injectable, inject, ElementRef, effect, computed, untracked, input, Directive, viewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { signal, Injectable, InjectionToken, inject, ElementRef, effect, computed, untracked, input, Directive, viewChild, ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import { toObservable } from '@angular/core/rxjs-interop';
5
5
  import { __decorate, __metadata } from 'tslib';
6
6
  import { FormGroup, FormBuilder } from '@angular/forms';
7
7
  import { FlatTreeControl } from '@angular/cdk/tree';
8
+ import { SelectionModel } from '@angular/cdk/collections';
8
9
  import { provideEffect, applyToInput, createAction, InjectableComponent, computeFake, _computed, TokenizedType, NgAtomicComponent, updateInput, Effect } from '@ng-atomic/core';
9
10
  import { EditingStateManager } from '@ng-atomic/common';
10
11
  import { injectHasNext, injectNavigationExtras, injectRouteData, getValue$, injectUnflattenRouteParam, getRawValue$, injectRouteSkip } from '@ng-atomic/common/utils';
@@ -26,9 +27,12 @@ import { of, filter, take, switchMap, map, catchError, startWith } from 'rxjs';
26
27
  import { AuthService } from '@xxmachina/common/auth';
27
28
  import { QueryService } from '@xxmachina/components/services/query';
28
29
  import { parse, print } from 'graphql';
30
+ import { DATA_ACCESSOR, injectParentDataAccessor } from '@ng-atomic/common/pipes/data-accessor';
31
+ import { NgComponentOutlet } from '@angular/common';
29
32
  import { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';
30
33
  import { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';
31
34
  import { QueryFormGroup } from '@xxmachina/components/groups/query-form';
35
+ import { QtpV2Frame, QuerySectionDirective, PresenterSectionDirective } from '@xxmachina/components/frames/qtp-v2';
32
36
 
33
37
  var ActionId;
34
38
  (function (ActionId) {
@@ -73,6 +77,14 @@ function buildItemsMapFromResult(result = {}) {
73
77
  }
74
78
  }
75
79
 
80
+ function toggleSelectedId(selectedIds, id) {
81
+ return selectedIds.includes(id) ? selectedIds.filter(selected => selected !== id) : [...selectedIds, id];
82
+ }
83
+ function toggleAllSelectedIds(selectedIds, items) {
84
+ const allSelected = items.length > 0 && items.every(item => selectedIds.includes(item.id));
85
+ return allSelected ? [] : items.map(item => item.id);
86
+ }
87
+
76
88
  class QueryActionReducer {
77
89
  action = signal(null, ...(ngDevMode ? [{ debugName: "action" }] : []));
78
90
  action$ = toObservable(this.action);
@@ -87,6 +99,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
87
99
  args: [{ providedIn: 'root' }]
88
100
  }] });
89
101
 
102
+ const QUERY_PAGE_PRESENTERS = [
103
+ { id: 'table', name: 'Table', icon: 'table_chart' },
104
+ { id: 'grid', name: 'Grid', icon: 'grid_view' },
105
+ { id: 'list', name: 'List', icon: 'view_list' },
106
+ ];
107
+ const QUERY_PAGE_CUSTOM_PRESENTERS = new InjectionToken('QUERY_PAGE_CUSTOM_PRESENTERS');
108
+ function provideQueryPagePresenter(option) {
109
+ return { provide: QUERY_PAGE_CUSTOM_PRESENTERS, useValue: option, multi: true };
110
+ }
111
+ const QUERY_PAGE_IDENTITY_TRANSFORMER = { id: 'identity', name: 'Identity' };
112
+
90
113
  function provideCommandExecuteEffect() {
91
114
  return [
92
115
  provideEffect(CommandService.ActionId.EXECUTE_COMMAND, () => {
@@ -265,7 +288,10 @@ function provideDebugStyleInitializer(storeToken) {
265
288
  storeToken.DI.provideInitializer((store) => {
266
289
  const debug = inject(MachinaDevService);
267
290
  const el = inject(ElementRef);
268
- effect(() => el.nativeElement.style.setProperty('--is-debug', debug.isDevMode() ? '1' : '0'));
291
+ effect(() => {
292
+ el.nativeElement.style.setProperty('--is-debug', debug.isDevMode() ? '1' : '0');
293
+ applyToInput(store, 'qtpMode', debug.isDevMode() ? 'develop' : 'presentation');
294
+ });
269
295
  }),
270
296
  ];
271
297
  }
@@ -442,6 +468,26 @@ function setupServerSidePagination(target) {
442
468
  });
443
469
  }
444
470
 
471
+ const QUERY_PAGE_DATA_ACCESSOR = new InjectionToken('[@xxmachina/components] QUERY_PAGE_DATA_ACCESSOR');
472
+ function provideQueryPageDataAccessor(useFactory) {
473
+ return { provide: QUERY_PAGE_DATA_ACCESSOR, useFactory };
474
+ }
475
+ function provideQueryPageElementDataAccessor() {
476
+ return {
477
+ provide: DATA_ACCESSOR,
478
+ useFactory: () => {
479
+ const accessor = inject(QUERY_PAGE_DATA_ACCESSOR, { optional: true });
480
+ const parent = injectParentDataAccessor();
481
+ if (!accessor)
482
+ return parent;
483
+ return (obj, key, index) => {
484
+ const result = accessor(obj, key, index);
485
+ return typeof result !== 'undefined' ? result : parent(obj, key, index);
486
+ };
487
+ },
488
+ };
489
+ }
490
+
445
491
  var QueryPageStore_1;
446
492
  let QueryPageStore = class QueryPageStore extends InjectableComponent {
447
493
  static { QueryPageStore_1 = this; }
@@ -466,7 +512,6 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
466
512
  QueryPageStore_1.DI.provideConfig(),
467
513
  QueryPageStore_1.provideDefaultInitializes(),
468
514
  QueryPageStore_1.provideDefaultEffects(),
469
- provideDebugStyleInitializer(QueryPageStore_1),
470
515
  QueryFeature.provideDefault(),
471
516
  ];
472
517
  }
@@ -475,7 +520,6 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
475
520
  QueryPageStore_1.DI.provideConfig(),
476
521
  QueryPageStore_1.provideDefaultInitializes(),
477
522
  QueryPageStore_1.provideDefaultEffects(),
478
- provideDebugStyleInitializer(QueryPageStore_1),
479
523
  QueryPageStore_1.provideNonEditableConfig(),
480
524
  QueryPageStore_1.provideQueryFromRouteDataQueryIdInitializer(),
481
525
  QueryPageStore_1.provideAutoTogglePageInitializer(),
@@ -507,6 +551,7 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
507
551
  return [
508
552
  QueryPageStore_1.provideAutoTogglePageInitializer(),
509
553
  QueryPageStore_1.provideVariablesFormValueFromMatrixParamsInitializer(),
554
+ provideDebugStyleInitializer(QueryPageStore_1),
510
555
  ];
511
556
  }
512
557
  static provideNavEndActionsInitializers() {
@@ -643,6 +688,9 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
643
688
  static provideTableAutofillEffect(handlerFactory) {
644
689
  return provideTableAutofillEffect(QueryPageStore_1, handlerFactory);
645
690
  }
691
+ static providePresenter(option) {
692
+ return provideQueryPagePresenter(option);
693
+ }
646
694
  static provideDebugStyleInitializer() {
647
695
  return provideDebugStyleInitializer(QueryPageStore_1);
648
696
  }
@@ -669,6 +717,7 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
669
717
  type = input(_computed(() => this.config().type), ...(ngDevMode ? [{ debugName: "type" }] : []));
670
718
  title = input(_computed(() => this.config().title ?? this.query()?.title), ...(ngDevMode ? [{ debugName: "title" }] : []));
671
719
  titleEditable = input(_computed(() => this.config().titleEditable), ...(ngDevMode ? [{ debugName: "titleEditable" }] : []));
720
+ description = input('', ...(ngDevMode ? [{ debugName: "description" }] : []));
672
721
  itemsMap = input(_computed(() => buildItemsMapFromResult(this.feature.result())), ...(ngDevMode ? [{ debugName: "itemsMap" }] : []));
673
722
  items = computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.items ?? [], ...(ngDevMode ? [{ debugName: "items" }] : []));
674
723
  itemsLength = input(_computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.itemsLength ?? 0), ...(ngDevMode ? [{ debugName: "itemsLength" }] : []));
@@ -685,18 +734,31 @@ let QueryPageStore = class QueryPageStore extends InjectableComponent {
685
734
  variablesFormFieldMap = input(_computed(() => ({})), ...(ngDevMode ? [{ debugName: "variablesFormFieldMap" }] : []));
686
735
  variablesFormValue = derivedAsync(() => getRawValue$(this.variablesForm()), { equal: isEqual });
687
736
  variablesFormValue$ = toObservable(this.variablesFormValue);
688
- variablesFormDisplayed = input(_computed(() => Object.keys(this.variablesFormFeature.variablesValue())?.length > 0), ...(ngDevMode ? [{ debugName: "variablesFormDisplayed" }] : []));
737
+ variablesFormDisplayed = input(_computed(() => Object.keys(this.variablesForm()?.controls ?? {}).length > 0), ...(ngDevMode ? [{ debugName: "variablesFormDisplayed" }] : []));
689
738
  tableColumnFormFieldMap = input(_computed(() => ({})), ...(ngDevMode ? [{ debugName: "tableColumnFormFieldMap" }] : []));
690
739
  getRowClass = input(_computed(() => () => ''), ...(ngDevMode ? [{ debugName: "getRowClass" }] : []));
691
740
  skip = injectRouteSkip();
692
741
  pageSizeOptions = input(_computed(() => this.config().pageSizeOptions), ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : []));
742
+ selectedIds = signal([], ...(ngDevMode ? [{ debugName: "selectedIds" }] : []));
743
+ selection = computed(() => new SelectionModel(true, this.selectedIds()), ...(ngDevMode ? [{ debugName: "selection" }] : []));
744
+ qtpMode = input('presentation', ...(ngDevMode ? [{ debugName: "qtpMode" }] : []));
745
+ parent = inject(QueryPageStore_1, { skipSelf: true, optional: true });
746
+ presenters = [...QUERY_PAGE_PRESENTERS, ...(inject(QUERY_PAGE_CUSTOM_PRESENTERS, { optional: true }) ?? [])];
747
+ transformers = [QUERY_PAGE_IDENTITY_TRANSFORMER];
748
+ selectedPresenter = computed(() => this.presenters.find(p => p.id === this.type()), ...(ngDevMode ? [{ debugName: "selectedPresenter" }] : []));
693
749
  constructor() {
694
750
  super();
695
751
  QueryPageStore_1.DI.initialize(this);
696
752
  effect(() => this.feature.form.patchValue(this.query()));
697
753
  }
754
+ toggleSelection(id) {
755
+ this.selectedIds.update(ids => toggleSelectedId(ids, id));
756
+ }
757
+ toggleAllSelection() {
758
+ this.selectedIds.update(ids => toggleAllSelectedIds(ids, this.items()));
759
+ }
698
760
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QueryPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive });
699
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: QueryPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, additionalNavEndActions: { classPropertyName: "additionalNavEndActions", publicName: "additionalNavEndActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleEditable: { classPropertyName: "titleEditable", publicName: "titleEditable", isSignal: true, isRequired: false, transformFunction: null }, itemsMap: { classPropertyName: "itemsMap", publicName: "itemsMap", isSignal: true, isRequired: false, transformFunction: null }, itemsLength: { classPropertyName: "itemsLength", publicName: "itemsLength", isSignal: true, isRequired: false, transformFunction: null }, childrenKey: { classPropertyName: "childrenKey", publicName: "childrenKey", isSignal: true, isRequired: false, transformFunction: null }, additionalColumns: { classPropertyName: "additionalColumns", publicName: "additionalColumns", isSignal: true, isRequired: false, transformFunction: null }, additionalColumnNames: { classPropertyName: "additionalColumnNames", publicName: "additionalColumnNames", isSignal: true, isRequired: false, transformFunction: null }, extractedColumnNames: { classPropertyName: "extractedColumnNames", publicName: "extractedColumnNames", isSignal: true, isRequired: false, transformFunction: null }, columnNames: { classPropertyName: "columnNames", publicName: "columnNames", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: "itemActions", publicName: "itemActions", isSignal: true, isRequired: false, transformFunction: null }, variablesForm: { classPropertyName: "variablesForm", publicName: "variablesForm", isSignal: true, isRequired: false, transformFunction: null }, variablesFormFieldMap: { classPropertyName: "variablesFormFieldMap", publicName: "variablesFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, variablesFormDisplayed: { classPropertyName: "variablesFormDisplayed", publicName: "variablesFormDisplayed", isSignal: true, isRequired: false, transformFunction: null }, tableColumnFormFieldMap: { classPropertyName: "tableColumnFormFieldMap", publicName: "tableColumnFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, getRowClass: { classPropertyName: "getRowClass", publicName: "getRowClass", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
761
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: QueryPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, additionalNavEndActions: { classPropertyName: "additionalNavEndActions", publicName: "additionalNavEndActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleEditable: { classPropertyName: "titleEditable", publicName: "titleEditable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, itemsMap: { classPropertyName: "itemsMap", publicName: "itemsMap", isSignal: true, isRequired: false, transformFunction: null }, itemsLength: { classPropertyName: "itemsLength", publicName: "itemsLength", isSignal: true, isRequired: false, transformFunction: null }, childrenKey: { classPropertyName: "childrenKey", publicName: "childrenKey", isSignal: true, isRequired: false, transformFunction: null }, additionalColumns: { classPropertyName: "additionalColumns", publicName: "additionalColumns", isSignal: true, isRequired: false, transformFunction: null }, additionalColumnNames: { classPropertyName: "additionalColumnNames", publicName: "additionalColumnNames", isSignal: true, isRequired: false, transformFunction: null }, extractedColumnNames: { classPropertyName: "extractedColumnNames", publicName: "extractedColumnNames", isSignal: true, isRequired: false, transformFunction: null }, columnNames: { classPropertyName: "columnNames", publicName: "columnNames", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: "itemActions", publicName: "itemActions", isSignal: true, isRequired: false, transformFunction: null }, variablesForm: { classPropertyName: "variablesForm", publicName: "variablesForm", isSignal: true, isRequired: false, transformFunction: null }, variablesFormFieldMap: { classPropertyName: "variablesFormFieldMap", publicName: "variablesFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, variablesFormDisplayed: { classPropertyName: "variablesFormDisplayed", publicName: "variablesFormDisplayed", isSignal: true, isRequired: false, transformFunction: null }, tableColumnFormFieldMap: { classPropertyName: "tableColumnFormFieldMap", publicName: "tableColumnFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, getRowClass: { classPropertyName: "getRowClass", publicName: "getRowClass", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, qtpMode: { classPropertyName: "qtpMode", publicName: "qtpMode", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
700
762
  };
701
763
  QueryPageStore = QueryPageStore_1 = __decorate([
702
764
  TokenizedType(),
@@ -705,7 +767,7 @@ QueryPageStore = QueryPageStore_1 = __decorate([
705
767
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QueryPageStore, decorators: [{
706
768
  type: Directive,
707
769
  args: [{ standalone: true }]
708
- }], ctorParameters: () => [], propDecorators: { style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }], navStartActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "navStartActions", required: false }] }], additionalNavEndActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalNavEndActions", required: false }] }], navEndActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "navEndActions", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleEditable: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleEditable", required: false }] }], itemsMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsMap", required: false }] }], itemsLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsLength", required: false }] }], childrenKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenKey", required: false }] }], additionalColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalColumns", required: false }] }], additionalColumnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalColumnNames", required: false }] }], extractedColumnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "extractedColumnNames", required: false }] }], columnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnNames", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], itemActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemActions", required: false }] }], variablesForm: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesForm", required: false }] }], variablesFormFieldMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesFormFieldMap", required: false }] }], variablesFormDisplayed: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesFormDisplayed", required: false }] }], tableColumnFormFieldMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableColumnFormFieldMap", required: false }] }], getRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "getRowClass", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }] } });
770
+ }], ctorParameters: () => [], propDecorators: { style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }], navStartActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "navStartActions", required: false }] }], additionalNavEndActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalNavEndActions", required: false }] }], navEndActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "navEndActions", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleEditable: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleEditable", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], itemsMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsMap", required: false }] }], itemsLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsLength", required: false }] }], childrenKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenKey", required: false }] }], additionalColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalColumns", required: false }] }], additionalColumnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalColumnNames", required: false }] }], extractedColumnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "extractedColumnNames", required: false }] }], columnNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnNames", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], itemActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemActions", required: false }] }], variablesForm: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesForm", required: false }] }], variablesFormFieldMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesFormFieldMap", required: false }] }], variablesFormDisplayed: [{ type: i0.Input, args: [{ isSignal: true, alias: "variablesFormDisplayed", required: false }] }], tableColumnFormFieldMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableColumnFormFieldMap", required: false }] }], getRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "getRowClass", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], qtpMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "qtpMode", required: false }] }] } });
709
771
 
710
772
  class QueryPage extends NgAtomicComponent {
711
773
  fb = inject(FormBuilder);
@@ -725,6 +787,9 @@ class QueryPage extends NgAtomicComponent {
725
787
  }), ...(ngDevMode ? [{ debugName: "context" }] : []));
726
788
  effect(() => this.app.context.context.set(JSON.stringify(context())));
727
789
  }
790
+ selectPresenter(presenter) {
791
+ applyToInput(this.store, 'type', presenter.id);
792
+ }
728
793
  async back() {
729
794
  history.back();
730
795
  }
@@ -739,44 +804,17 @@ class QueryPage extends NgAtomicComponent {
739
804
  width: style?.width === 'var(--page-width-lv3)' ? 'var(--page-width-lv2)' : 'var(--page-width-lv3)',
740
805
  }));
741
806
  }
807
+ toggleSelection(item) {
808
+ this.store.toggleSelection(item.id);
809
+ }
810
+ toggleAllSelection() {
811
+ this.store.toggleAllSelection();
812
+ }
742
813
  itemClick(item) {
743
814
  this.dispatch({ id: ActionId.DETAIL, payload: item });
744
815
  }
745
816
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QueryPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
746
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: QueryPage, isStandalone: true, selector: "pages-query", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "template", first: true, predicate: IndexTemplate, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: QueryPageStore, inputs: ["type", "type", "query", "query", "titleEditable", "titleEditable", "variablesForm", "variablesForm", "variablesFormFieldMap", "variablesFormFieldMap", "navStartActions", "navStartActions", "navEndActions", "navEndActions", "itemActions", "itemActions", "pageSizeOptions", "pageSizeOptions"] }], ngImport: i0, template: `
747
- <frames-router-outlet [skip]="store.skip()" (action)="dispatch($event)">
748
- <templates-index
749
- [tableColumnFormFieldMap]="store.tableColumnFormFieldMap()"
750
- [style]="store.style()"
751
- [title]="store.title()"
752
- [titleControl]="store.feature.form.get(['title'])"
753
- [titleEditable]="store.titleEditable()"
754
- [type]="store.type()"
755
- [tableChildrenKey]="store.childrenKey()"
756
- [tableTreeControl]="store.tableTreeControl"
757
- [itemsMap]="store.itemsMap()"
758
- [itemsLength]="store.itemsLength()"
759
- [itemActions]="store.itemActions()"
760
- [getRowClass]="store.getRowClass()"
761
- [form]="store.form()"
762
- [navStartActions]="store.navStartActions()"
763
- [navEndActions]="store.navEndActions()"
764
- [navMode]="store.navMode()"
765
- [pageSizeOptions]="store.pageSizeOptions()"
766
- (action)="dispatch($event)"
767
- >
768
- @if (store.variablesFormDisplayed()) {
769
- <div navDashboard>
770
- <ng-atomic-form-section-builder
771
- [form]="store.variablesForm()"
772
- [fieldMap]="store.variablesFormFieldMap()"
773
- />
774
- </div>
775
- }
776
- <groups-query-form dashboard (action)="dispatch($event)" />
777
- </templates-index>
778
- </frames-router-outlet>
779
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-3j57: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-3j57: var(--page-width-lv3);--primary-color-SCOPED-IN-query-3j57: var(--primary-color);--on-primary-color-SCOPED-IN-query-3j57: var(--on-primary-color);--surface-color-SCOPED-IN-query-3j57: var(--surface-color);--on-surface-color-SCOPED-IN-query-3j57: var(--on-surface-color);--on-background-color-SCOPED-IN-query-3j57: var(--on-background-color);--background-color-SCOPED-IN-query-3j57: var(--background-color);--navigator-background-color-SCOPED-IN-query-3j57: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-3j57: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-3j57: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-3j57: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-3j57: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-3j57);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-3j57);--surface-color: var(--surface-color-SCOPED-IN-query-3j57);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-3j57);--background-color: var(--background-color-SCOPED-IN-query-3j57);--on-background-color: var(--on-background-color-SCOPED-IN-query-3j57);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-3j57);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-3j57);--table-background-color: var(--table-background-color-SCOPED-IN-query-3j57);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-3j57);--is-debug: var(--is-debug-SCOPED-IN-query-3j57)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-3j57) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
817
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: QueryPage, isStandalone: true, selector: "pages-query", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.qtp-develop": "store.qtpMode() === 'develop'" } }, providers: [provideQueryPageElementDataAccessor()], viewQueries: [{ propertyName: "template", first: true, predicate: IndexTemplate, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: QueryPageStore, inputs: ["type", "type", "query", "query", "titleEditable", "titleEditable", "variablesForm", "variablesForm", "variablesFormFieldMap", "variablesFormFieldMap", "navStartActions", "navStartActions", "navEndActions", "navEndActions", "itemActions", "itemActions", "pageSizeOptions", "pageSizeOptions"] }], ngImport: i0, template: "<frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <frames-qtp-v2\n [mode]=\"store.qtpMode()\"\n [style.width]=\"store.qtpMode() === 'develop' ? store.style()?.width : null\"\n [availableTransformers]=\"store.transformers\"\n [selectedTransformer]=\"store.transformers[0]\"\n [availablePresenters]=\"store.presenters\"\n [selectedPresenter]=\"store.selectedPresenter()\"\n (presenterSelected)=\"selectPresenter($event)\"\n >\n <ng-template querySection>\n @if (store.qtpMode() === 'develop') {\n <groups-query-form (action)=\"dispatch($event)\" />\n }\n </ng-template>\n <ng-template presenterSection>\n @if (store.selectedPresenter()?.component; as presenter) {\n <ng-container *ngComponentOutlet=\"presenter\" />\n } @else {\n <templates-index\n [tableColumnFormFieldMap]=\"store.tableColumnFormFieldMap()\"\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [description]=\"store.description()\"\n [titleControl]=\"store.feature.form.get(['title'])\"\n [titleEditable]=\"store.titleEditable()\"\n [type]=\"store.type()\"\n [tableChildrenKey]=\"store.childrenKey()\"\n [tableTreeControl]=\"store.tableTreeControl\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [getRowClass]=\"store.getRowClass()\"\n [selection]=\"store.selection()\"\n [form]=\"store.form()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n [pageSizeOptions]=\"store.pageSizeOptions()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.variablesFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.variablesForm()\"\n [fieldMap]=\"store.variablesFormFieldMap()\"\n />\n </div>\n }\n @if (store.qtpMode() === 'presentation') {\n <groups-query-form dashboard (action)=\"dispatch($event)\" />\n }\n </templates-index>\n }\n </ng-template>\n </frames-qtp-v2>\n</frames-router-outlet>\n", styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-2Bw5: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-2Bw5: var(--page-width-lv3);--primary-color-SCOPED-IN-query-2Bw5: var(--primary-color);--on-primary-color-SCOPED-IN-query-2Bw5: var(--on-primary-color);--surface-color-SCOPED-IN-query-2Bw5: var(--surface-color);--on-surface-color-SCOPED-IN-query-2Bw5: var(--on-surface-color);--on-background-color-SCOPED-IN-query-2Bw5: var(--on-background-color);--background-color-SCOPED-IN-query-2Bw5: var(--background-color);--navigator-background-color-SCOPED-IN-query-2Bw5: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-2Bw5: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-2Bw5: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-2Bw5: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-2Bw5: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-2Bw5);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-2Bw5);--surface-color: var(--surface-color-SCOPED-IN-query-2Bw5);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-2Bw5);--background-color: var(--background-color-SCOPED-IN-query-2Bw5);--on-background-color: var(--on-background-color-SCOPED-IN-query-2Bw5);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-2Bw5);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-2Bw5);--table-background-color: var(--table-background-color-SCOPED-IN-query-2Bw5);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-2Bw5);--is-debug: var(--is-debug-SCOPED-IN-query-2Bw5)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-2Bw5) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host frames-qtp-v2{touch-action:auto}:host(.qtp-develop) templates-index{--first-content-height: 0px}:host(.qtp-develop) frames-qtp-v2{padding-top:var(--navigator-height, 56px);box-sizing:border-box}:host(.qtp-develop) groups-query-form{--mat-form-field-outlined-label-text-color: rgba(255, 255, 255, .6);--mat-form-field-outlined-hover-label-text-color: rgba(255, 255, 255, .87);--mat-form-field-outlined-input-text-color: rgba(255, 255, 255, .87);--mat-form-field-outlined-outline-color: rgba(255, 255, 255, .38);--mat-form-field-outlined-hover-outline-color: rgba(255, 255, 255, .87)}:host(.qtp-develop) groups-query-form ::ng-deep .mat-mdc-tab-group{--mat-tab-inactive-label-text-color: rgba(255, 255, 255, .6);--mat-tab-inactive-hover-label-text-color: rgba(255, 255, 255, .87);--mat-tab-inactive-focus-label-text-color: rgba(255, 255, 255, .87)}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }, { kind: "component", type: QtpV2Frame, selector: "frames-qtp-v2", inputs: ["mode", "expandedPanels", "availableTransformers", "selectedTransformer", "availablePresenters", "selectedPresenter", "loading", "error", "debugLogs", "canGenerateTransformer", "generatingTransformer"], outputs: ["panelStatesChange", "transformerSelected", "presenterSelected", "runTransformer", "generateTransformer"] }, { kind: "directive", type: QuerySectionDirective, selector: "[querySection]" }, { kind: "directive", type: PresenterSectionDirective, selector: "[presenterSection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
780
818
  }
781
819
  __decorate([
782
820
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -796,6 +834,18 @@ __decorate([
796
834
  __metadata("design:paramtypes", []),
797
835
  __metadata("design:returntype", Promise)
798
836
  ], QueryPage.prototype, "expandPage", null);
837
+ __decorate([
838
+ Effect(IndexTemplate.ActionId.TABLE_CHECKBOX_CLICK),
839
+ __metadata("design:type", Function),
840
+ __metadata("design:paramtypes", [Object]),
841
+ __metadata("design:returntype", void 0)
842
+ ], QueryPage.prototype, "toggleSelection", null);
843
+ __decorate([
844
+ Effect(IndexTemplate.ActionId.TABLE_HEADER_CHECKBOX_CLICK),
845
+ __metadata("design:type", Function),
846
+ __metadata("design:paramtypes", []),
847
+ __metadata("design:returntype", void 0)
848
+ ], QueryPage.prototype, "toggleAllSelection", null);
799
849
  __decorate([
800
850
  Effect(IndexTemplate.ActionId.ITEM_CLICK),
801
851
  __metadata("design:type", Function),
@@ -805,44 +855,15 @@ __decorate([
805
855
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: QueryPage, decorators: [{
806
856
  type: Component,
807
857
  args: [{ selector: 'pages-query', imports: [
858
+ NgComponentOutlet,
808
859
  IndexTemplate,
809
860
  RouterOutletFrame,
810
861
  NgAtomicFormSectionBuilder,
811
862
  QueryFormGroup,
812
- ], template: `
813
- <frames-router-outlet [skip]="store.skip()" (action)="dispatch($event)">
814
- <templates-index
815
- [tableColumnFormFieldMap]="store.tableColumnFormFieldMap()"
816
- [style]="store.style()"
817
- [title]="store.title()"
818
- [titleControl]="store.feature.form.get(['title'])"
819
- [titleEditable]="store.titleEditable()"
820
- [type]="store.type()"
821
- [tableChildrenKey]="store.childrenKey()"
822
- [tableTreeControl]="store.tableTreeControl"
823
- [itemsMap]="store.itemsMap()"
824
- [itemsLength]="store.itemsLength()"
825
- [itemActions]="store.itemActions()"
826
- [getRowClass]="store.getRowClass()"
827
- [form]="store.form()"
828
- [navStartActions]="store.navStartActions()"
829
- [navEndActions]="store.navEndActions()"
830
- [navMode]="store.navMode()"
831
- [pageSizeOptions]="store.pageSizeOptions()"
832
- (action)="dispatch($event)"
833
- >
834
- @if (store.variablesFormDisplayed()) {
835
- <div navDashboard>
836
- <ng-atomic-form-section-builder
837
- [form]="store.variablesForm()"
838
- [fieldMap]="store.variablesFormFieldMap()"
839
- />
840
- </div>
841
- }
842
- <groups-query-form dashboard (action)="dispatch($event)" />
843
- </templates-index>
844
- </frames-router-outlet>
845
- `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
863
+ QtpV2Frame,
864
+ QuerySectionDirective,
865
+ PresenterSectionDirective,
866
+ ], providers: [provideQueryPageElementDataAccessor()], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.qtp-develop]': "store.qtpMode() === 'develop'" }, hostDirectives: [
846
867
  {
847
868
  directive: QueryPageStore,
848
869
  inputs: [
@@ -857,11 +878,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
857
878
  'pageSizeOptions'
858
879
  ]
859
880
  },
860
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-3j57: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-3j57: var(--page-width-lv3);--primary-color-SCOPED-IN-query-3j57: var(--primary-color);--on-primary-color-SCOPED-IN-query-3j57: var(--on-primary-color);--surface-color-SCOPED-IN-query-3j57: var(--surface-color);--on-surface-color-SCOPED-IN-query-3j57: var(--on-surface-color);--on-background-color-SCOPED-IN-query-3j57: var(--on-background-color);--background-color-SCOPED-IN-query-3j57: var(--background-color);--navigator-background-color-SCOPED-IN-query-3j57: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-3j57: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-3j57: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-3j57: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-3j57: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-3j57);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-3j57);--surface-color: var(--surface-color-SCOPED-IN-query-3j57);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-3j57);--background-color: var(--background-color-SCOPED-IN-query-3j57);--on-background-color: var(--on-background-color-SCOPED-IN-query-3j57);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-3j57);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-3j57);--table-background-color: var(--table-background-color-SCOPED-IN-query-3j57);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-3j57);--is-debug: var(--is-debug-SCOPED-IN-query-3j57)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-3j57) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
861
- }], ctorParameters: () => [], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => IndexTemplate), { isSignal: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], back: [], navigateToIframe: [], expandPage: [], itemClick: [] } });
881
+ ], template: "<frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <frames-qtp-v2\n [mode]=\"store.qtpMode()\"\n [style.width]=\"store.qtpMode() === 'develop' ? store.style()?.width : null\"\n [availableTransformers]=\"store.transformers\"\n [selectedTransformer]=\"store.transformers[0]\"\n [availablePresenters]=\"store.presenters\"\n [selectedPresenter]=\"store.selectedPresenter()\"\n (presenterSelected)=\"selectPresenter($event)\"\n >\n <ng-template querySection>\n @if (store.qtpMode() === 'develop') {\n <groups-query-form (action)=\"dispatch($event)\" />\n }\n </ng-template>\n <ng-template presenterSection>\n @if (store.selectedPresenter()?.component; as presenter) {\n <ng-container *ngComponentOutlet=\"presenter\" />\n } @else {\n <templates-index\n [tableColumnFormFieldMap]=\"store.tableColumnFormFieldMap()\"\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [description]=\"store.description()\"\n [titleControl]=\"store.feature.form.get(['title'])\"\n [titleEditable]=\"store.titleEditable()\"\n [type]=\"store.type()\"\n [tableChildrenKey]=\"store.childrenKey()\"\n [tableTreeControl]=\"store.tableTreeControl\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [getRowClass]=\"store.getRowClass()\"\n [selection]=\"store.selection()\"\n [form]=\"store.form()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n [pageSizeOptions]=\"store.pageSizeOptions()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.variablesFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.variablesForm()\"\n [fieldMap]=\"store.variablesFormFieldMap()\"\n />\n </div>\n }\n @if (store.qtpMode() === 'presentation') {\n <groups-query-form dashboard (action)=\"dispatch($event)\" />\n }\n </templates-index>\n }\n </ng-template>\n </frames-qtp-v2>\n</frames-router-outlet>\n", styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-2Bw5: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-2Bw5: var(--page-width-lv3);--primary-color-SCOPED-IN-query-2Bw5: var(--primary-color);--on-primary-color-SCOPED-IN-query-2Bw5: var(--on-primary-color);--surface-color-SCOPED-IN-query-2Bw5: var(--surface-color);--on-surface-color-SCOPED-IN-query-2Bw5: var(--on-surface-color);--on-background-color-SCOPED-IN-query-2Bw5: var(--on-background-color);--background-color-SCOPED-IN-query-2Bw5: var(--background-color);--navigator-background-color-SCOPED-IN-query-2Bw5: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-2Bw5: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-2Bw5: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-2Bw5: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-2Bw5: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-2Bw5);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-2Bw5);--surface-color: var(--surface-color-SCOPED-IN-query-2Bw5);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-2Bw5);--background-color: var(--background-color-SCOPED-IN-query-2Bw5);--on-background-color: var(--on-background-color-SCOPED-IN-query-2Bw5);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-2Bw5);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-2Bw5);--table-background-color: var(--table-background-color-SCOPED-IN-query-2Bw5);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-2Bw5);--is-debug: var(--is-debug-SCOPED-IN-query-2Bw5)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-2Bw5) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host frames-qtp-v2{touch-action:auto}:host(.qtp-develop) templates-index{--first-content-height: 0px}:host(.qtp-develop) frames-qtp-v2{padding-top:var(--navigator-height, 56px);box-sizing:border-box}:host(.qtp-develop) groups-query-form{--mat-form-field-outlined-label-text-color: rgba(255, 255, 255, .6);--mat-form-field-outlined-hover-label-text-color: rgba(255, 255, 255, .87);--mat-form-field-outlined-input-text-color: rgba(255, 255, 255, .87);--mat-form-field-outlined-outline-color: rgba(255, 255, 255, .38);--mat-form-field-outlined-hover-outline-color: rgba(255, 255, 255, .87)}:host(.qtp-develop) groups-query-form ::ng-deep .mat-mdc-tab-group{--mat-tab-inactive-label-text-color: rgba(255, 255, 255, .6);--mat-tab-inactive-hover-label-text-color: rgba(255, 255, 255, .87);--mat-tab-inactive-focus-label-text-color: rgba(255, 255, 255, .87)}\n"] }]
882
+ }], ctorParameters: () => [], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => IndexTemplate), { isSignal: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], back: [], navigateToIframe: [], expandPage: [], toggleSelection: [], toggleAllSelection: [], itemClick: [] } });
862
883
 
863
884
  /**
864
885
  * Generated bundle index. Do not edit.
865
886
  */
866
887
 
867
- export { ActionId, QueryActionReducer, QueryPage, QueryPageStore, buildItemsMap, buildItemsMapFromResult };
888
+ export { ActionId, QUERY_PAGE_DATA_ACCESSOR, QueryActionReducer, QueryPage, QueryPageStore, buildItemsMap, buildItemsMapFromResult, provideQueryPageDataAccessor, toggleAllSelectedIds, toggleSelectedId };
@@ -104,7 +104,7 @@ class ThreadPage extends NgAtomicComponent {
104
104
  (action)="dispatch($event)"
105
105
  />
106
106
  </frames-router-outlet>
107
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-mQtm: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-mQtm: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-mQtm: var(--primary-color);--on-primary-color-SCOPED-IN-thread-mQtm: var(--on-primary-color);--surface-color-SCOPED-IN-thread-mQtm: var(--surface-color);--on-surface-color-SCOPED-IN-thread-mQtm: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-mQtm: var(--on-background-color);--background-color-SCOPED-IN-thread-mQtm: var(--background-color);--navigator-background-color-SCOPED-IN-thread-mQtm: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-mQtm: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-mQtm: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-mQtm: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-mQtm)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
107
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-zR89: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-zR89: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-zR89: var(--primary-color);--on-primary-color-SCOPED-IN-thread-zR89: var(--on-primary-color);--surface-color-SCOPED-IN-thread-zR89: var(--surface-color);--on-surface-color-SCOPED-IN-thread-zR89: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-zR89: var(--on-background-color);--background-color-SCOPED-IN-thread-zR89: var(--background-color);--navigator-background-color-SCOPED-IN-thread-zR89: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-zR89: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-zR89: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-zR89: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-zR89)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
108
108
  }
109
109
  __decorate([
110
110
  Effect(ActionId.SEND_MESSAGE),
@@ -137,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
137
137
  'messages',
138
138
  ]
139
139
  },
140
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-mQtm: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-mQtm: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-mQtm: var(--primary-color);--on-primary-color-SCOPED-IN-thread-mQtm: var(--on-primary-color);--surface-color-SCOPED-IN-thread-mQtm: var(--surface-color);--on-surface-color-SCOPED-IN-thread-mQtm: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-mQtm: var(--on-background-color);--background-color-SCOPED-IN-thread-mQtm: var(--background-color);--navigator-background-color-SCOPED-IN-thread-mQtm: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-mQtm: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-mQtm: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-mQtm: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-mQtm)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
140
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-zR89: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-zR89: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-zR89: var(--primary-color);--on-primary-color-SCOPED-IN-thread-zR89: var(--on-primary-color);--surface-color-SCOPED-IN-thread-zR89: var(--surface-color);--on-surface-color-SCOPED-IN-thread-zR89: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-zR89: var(--on-background-color);--background-color-SCOPED-IN-thread-zR89: var(--background-color);--navigator-background-color-SCOPED-IN-thread-zR89: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-zR89: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-zR89: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-zR89: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-zR89)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
141
141
  }], propDecorators: { onCompositionStart: [{
142
142
  type: HostListener,
143
143
  args: ['compositionstart', ['$event']]
@@ -420,7 +420,7 @@ class AgentTemplate extends NgAtomicComponent {
420
420
  </div>
421
421
  }
422
422
  </frames-scroll>
423
- `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-pvvm: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-pvvm: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-pvvm: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-pvvm: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-pvvm: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-pvvm);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-pvvm);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-pvvm);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-pvvm);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-pvvm);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-pvvm);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-pvvm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-pvvm);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-pvvm)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-pvvm),0 0 20px var(--accent-SCOPED-IN-entrance-pvvm);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
423
+ `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-Wf1E: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-Wf1E: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-Wf1E: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-Wf1E: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-Wf1E: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;padding-top:env(safe-area-inset-top);transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;height:100%;background:#0a0a0a;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-Wf1E);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-Wf1E);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-Wf1E);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-Wf1E);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-Wf1E);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-Wf1E);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-Wf1E);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-Wf1E)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-Wf1E),0 0 20px var(--accent-SCOPED-IN-entrance-Wf1E);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
424
424
  }
425
425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AgentTemplate, decorators: [{
426
426
  type: Component,
@@ -505,7 +505,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
505
505
  'fieldMap',
506
506
  ],
507
507
  },
508
- ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-pvvm: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-pvvm: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-pvvm: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-pvvm: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-pvvm: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-pvvm);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-pvvm);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-pvvm);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-pvvm);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-pvvm);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-pvvm);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-pvvm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-pvvm);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-pvvm)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-pvvm),0 0 20px var(--accent-SCOPED-IN-entrance-pvvm);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
508
+ ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-Wf1E: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-Wf1E: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-Wf1E: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-Wf1E: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-Wf1E: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;padding-top:env(safe-area-inset-top);transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;height:100%;background:#0a0a0a;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-Wf1E);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-Wf1E);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-Wf1E);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-Wf1E);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-Wf1E);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-Wf1E);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-Wf1E);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-Wf1E)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-Wf1E),0 0 20px var(--accent-SCOPED-IN-entrance-Wf1E);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
509
509
  }], propDecorators: { endActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "endActions", required: false }] }], hideInputArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideInputArea", required: false }] }], xtermComponent: [{ type: i0.ViewChild, args: ['xtermComponent', { isSignal: true }] }], inputField: [{ type: i0.ViewChild, args: ['inputField', { isSignal: true }] }], onWindowResize: [{
510
510
  type: HostListener,
511
511
  args: ['window:resize']