@xxmachina/components 19.4.2 → 19.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/features/query/index.d.ts +48 -3
  2. package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
  3. package/fesm2022/xxmachina-components-features-command.mjs.map +1 -1
  4. package/fesm2022/xxmachina-components-features-query.mjs +76 -11
  5. package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
  6. package/fesm2022/xxmachina-components-groups-command-form.mjs.map +1 -1
  7. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
  8. package/fesm2022/xxmachina-components-molecules-calendar-paginator.mjs.map +1 -1
  9. package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +1 -1
  10. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
  11. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +1 -1
  12. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
  13. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
  14. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +1 -1
  15. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
  16. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +1 -1
  17. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
  18. package/fesm2022/xxmachina-components-pages-command.mjs +2 -2
  19. package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
  20. package/fesm2022/xxmachina-components-pages-query-v2.mjs +198 -0
  21. package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +1 -0
  22. package/fesm2022/xxmachina-components-pages-query.mjs +2 -2
  23. package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
  24. package/fesm2022/xxmachina-components-pages-thread.mjs +2 -2
  25. package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
  26. package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
  27. package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
  28. package/fesm2022/xxmachina-components-routes-preloading.mjs.map +1 -1
  29. package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
  30. package/fesm2022/xxmachina-components-routes-query.mjs.map +1 -1
  31. package/fesm2022/xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs.map +1 -1
  32. package/fesm2022/xxmachina-components-routes-resources.mjs.map +1 -1
  33. package/fesm2022/xxmachina-components-routes-transformer.mjs.map +1 -1
  34. package/fesm2022/xxmachina-components-routes-transformers.mjs.map +1 -1
  35. package/fesm2022/xxmachina-components-services-app.mjs.map +1 -1
  36. package/fesm2022/xxmachina-components-services-assistant.mjs.map +1 -1
  37. package/fesm2022/xxmachina-components-services-calendar.mjs.map +1 -1
  38. package/fesm2022/xxmachina-components-services-command.mjs.map +1 -1
  39. package/fesm2022/xxmachina-components-services-context.mjs.map +1 -1
  40. package/fesm2022/xxmachina-components-services-contract.mjs.map +1 -1
  41. package/fesm2022/xxmachina-components-services-debug.mjs.map +1 -1
  42. package/fesm2022/xxmachina-components-services-forms-query.mjs +2 -1
  43. package/fesm2022/xxmachina-components-services-forms-query.mjs.map +1 -1
  44. package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +1 -1
  45. package/fesm2022/xxmachina-components-services-forms-variables.mjs.map +1 -1
  46. package/fesm2022/xxmachina-components-services-graphql.mjs.map +1 -1
  47. package/fesm2022/xxmachina-components-services-invoice.mjs.map +1 -1
  48. package/fesm2022/xxmachina-components-services-json-schema.mjs.map +1 -1
  49. package/fesm2022/xxmachina-components-services-link.mjs.map +1 -1
  50. package/fesm2022/xxmachina-components-services-message.mjs.map +1 -1
  51. package/fesm2022/xxmachina-components-services-openai.mjs.map +1 -1
  52. package/fesm2022/xxmachina-components-services-openapi.mjs.map +1 -1
  53. package/fesm2022/xxmachina-components-services-order.mjs.map +1 -1
  54. package/fesm2022/xxmachina-components-services-partner.mjs.map +1 -1
  55. package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
  56. package/fesm2022/xxmachina-components-services-recording.mjs.map +1 -1
  57. package/fesm2022/xxmachina-components-services-schedule.mjs.map +1 -1
  58. package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
  59. package/fesm2022/xxmachina-components-services-transformer.mjs.map +1 -1
  60. package/fesm2022/xxmachina-components-services-youtube.mjs.map +1 -1
  61. package/fesm2022/xxmachina-components-templates-agent.mjs +2 -2
  62. package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
  63. package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
  64. package/fesm2022/xxmachina-components-templates-invoice-iframe.mjs.map +1 -1
  65. package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +1 -1
  66. package/fesm2022/xxmachina-components-templates-video.mjs.map +1 -1
  67. package/fesm2022/xxmachina-components-validators-query.mjs.map +1 -1
  68. package/fesm2022/xxmachina-components.mjs +4 -4
  69. package/fesm2022/xxmachina-components.mjs.map +1 -1
  70. package/groups/query-form/index.d.ts +2 -0
  71. package/index.d.ts +1 -1
  72. package/package.json +5 -1
  73. package/pages/query-v2/index.d.ts +68 -0
  74. package/services/forms/query/index.d.ts +2 -1
@@ -0,0 +1,198 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { input, inject, signal, computed, effect, Directive, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { CommonModule, JsonPipe } from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i3 from '@angular/material/expansion';
8
+ import { MatExpansionModule } from '@angular/material/expansion';
9
+ import * as i4 from '@angular/material/icon';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import * as i5 from '@angular/material/progress-spinner';
12
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
13
+ import * as i6 from '@angular/material/button';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import * as i7 from '@angular/material/form-field';
16
+ import { MatFormFieldModule } from '@angular/material/form-field';
17
+ import * as i8 from '@angular/material/input';
18
+ import { MatInputModule } from '@angular/material/input';
19
+ import { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';
20
+ import { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';
21
+ import { InjectableComponent, provideEffect, NgAtomicComponent, Effect } from '@ng-atomic/core';
22
+ import { QueryFeature } from '@xxmachina/components/features/query';
23
+ import { toSignal } from '@angular/core/rxjs-interop';
24
+ import { injectRouteData } from '@ng-atomic/common/utils';
25
+ import { map, startWith } from 'rxjs';
26
+ import { buildItemsMapFromResult } from '@xxmachina/components/pages/query';
27
+ import { ListOrganism } from '@ng-atomic/components/organisms/list';
28
+ import { TableOrganism } from '@ng-atomic/components/organisms/table';
29
+
30
+ var ActionId;
31
+ (function (ActionId) {
32
+ ActionId["CLICK_ITEM"] = "[@xxmachina/components/pages/query-v2] Click Item";
33
+ })(ActionId || (ActionId = {}));
34
+ class QueryPageV2Store extends InjectableComponent {
35
+ static { this.ActionId = ActionId; }
36
+ /**
37
+ * Provides an effect handler for CLICK_ITEM action
38
+ */
39
+ static provideClickItemEffect(handler) {
40
+ return [
41
+ provideEffect(ListOrganism.ActionId.CLICK_ITEM, () => handler),
42
+ ];
43
+ }
44
+ // Panel toggle methods (ensure at least one panel stays open)
45
+ toggleQueryPanel(expanded) {
46
+ if (!expanded && this.openPanelCount() <= 1)
47
+ return;
48
+ this.queryPanelExpanded.set(expanded);
49
+ }
50
+ toggleTransformerPanel(expanded) {
51
+ if (!expanded && this.openPanelCount() <= 1)
52
+ return;
53
+ this.transformerPanelExpanded.set(expanded);
54
+ }
55
+ togglePresenterPanel(expanded) {
56
+ if (!expanded && this.openPanelCount() <= 1)
57
+ return;
58
+ this.presenterPanelExpanded.set(expanded);
59
+ }
60
+ constructor() {
61
+ super();
62
+ this.query = input(injectRouteData('query')());
63
+ this.navEndActions = input(injectRouteData('navEndActions')());
64
+ this.columnNames = input([]);
65
+ this.presenter = input(injectRouteData('presenter')() ?? 'table');
66
+ this.feature = inject(QueryFeature);
67
+ this.fb = inject(FormBuilder);
68
+ // Panel expansion states
69
+ this.queryPanelExpanded = signal(true);
70
+ this.transformerPanelExpanded = signal(false);
71
+ this.presenterPanelExpanded = signal(true);
72
+ // Count of open panels
73
+ this.openPanelCount = computed(() => [this.queryPanelExpanded(), this.transformerPanelExpanded(), this.presenterPanelExpanded()]
74
+ .filter(Boolean).length);
75
+ // Query metadata
76
+ this.title = computed(() => this.query()?.title || 'データ一覧');
77
+ this.queryType = computed(() => this.query()?.type || 'graphql');
78
+ // Loading state
79
+ this.isLoading$ = this.feature.result$.pipe(map(() => false), startWith(true));
80
+ this.isLoading = toSignal(this.isLoading$, { initialValue: true });
81
+ // Result data
82
+ this.result = computed(() => this.feature.result() ?? {});
83
+ this.itemsMap = computed(() => buildItemsMapFromResult(this.result()));
84
+ this.items = computed(() => {
85
+ const map = this.itemsMap();
86
+ const keys = Object.keys(map);
87
+ if (keys.length === 0)
88
+ return [];
89
+ return map[keys[0]]?.items ?? [];
90
+ });
91
+ this.itemCount = computed(() => this.items().length);
92
+ // Table display columns - automatically determine from first item
93
+ this.displayedColumns = computed(() => {
94
+ const items = this.items();
95
+ if (items.length === 0)
96
+ return [];
97
+ const firstItem = items[0];
98
+ if (!firstItem || typeof firstItem !== 'object')
99
+ return [];
100
+ return Object.keys(firstItem);
101
+ });
102
+ // Form for table columns
103
+ this.tableForm = computed(() => {
104
+ const columns = this.displayedColumns();
105
+ const columnsMap = {};
106
+ columns.forEach(col => {
107
+ columnsMap[col] = { width: 150, hidden: false };
108
+ });
109
+ return this.fb.group({
110
+ columns: this.fb.group({ map: this.fb.group(columnsMap) })
111
+ });
112
+ });
113
+ // Column form field map for organisms-table
114
+ this.columnFormFieldMap = computed(() => {
115
+ const columns = this.displayedColumns();
116
+ const fieldMap = {};
117
+ columns.forEach(col => {
118
+ fieldMap[col] = { type: 'text', label: col };
119
+ });
120
+ return fieldMap;
121
+ });
122
+ // queryをformにpatch
123
+ effect(() => {
124
+ const query = this.query();
125
+ if (query) {
126
+ this.feature.form.patchValue({
127
+ id: query.id,
128
+ title: query.title,
129
+ type: query.type,
130
+ graphql: query.graphql,
131
+ });
132
+ this.feature.refresh();
133
+ }
134
+ });
135
+ }
136
+ refresh() {
137
+ this.feature.refresh();
138
+ }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: QueryPageV2Store, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: QueryPageV2Store, isStandalone: true, inputs: { query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, columnNames: { classPropertyName: "columnNames", publicName: "columnNames", isSignal: true, isRequired: false, transformFunction: null }, presenter: { classPropertyName: "presenter", publicName: "presenter", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: QueryPageV2Store, decorators: [{
143
+ type: Directive,
144
+ args: [{ standalone: true }]
145
+ }], ctorParameters: () => [] });
146
+
147
+ class QueryPageV2 extends NgAtomicComponent {
148
+ constructor() {
149
+ super(...arguments);
150
+ this.store = inject(QueryPageV2Store);
151
+ }
152
+ static { this.ActionId = ActionId; }
153
+ onItemClick(item) {
154
+ this.dispatch({ id: ActionId.CLICK_ITEM, payload: item });
155
+ }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: QueryPageV2, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: QueryPageV2, isStandalone: true, selector: "pages-query-v2", providers: [
158
+ QueryFeature.provideDefault(),
159
+ ], usesInheritance: true, hostDirectives: [{ directive: QueryPageV2Store, inputs: ["query", "query", "navEndActions", "navEndActions", "columnNames", "columnNames", "presenter", "presenter"] }], ngImport: i0, template: "<frames-router-outlet>\n <organisms-navigator\n injectable\n [endActions]=\"store.navEndActions()\"\n (action)=\"dispatch($event)\"\n >\n <span class=\"title\">{{ store.title() }}</span>\n </organisms-navigator>\n\n <div class=\"qtp-container\">\n <!-- Query Panel -->\n <mat-expansion-panel class=\"config-panel query-panel\"\n [expanded]=\"store.queryPanelExpanded()\"\n (opened)=\"store.toggleQueryPanel(true)\"\n (closed)=\"store.toggleQueryPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>code</mat-icon>\n <span>Query</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <span class=\"query-type\">{{ store.queryType() }}</span>\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"query-content\">\n <div class=\"query-form\" [formGroup]=\"store.feature.form\">\n <div class=\"form-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"endpoint-field\">\n <mat-label>Endpoint</mat-label>\n <input matInput formControlName=\"endpoint\" placeholder=\"GraphQL Endpoint\">\n </mat-form-field>\n </div>\n <div class=\"form-row query-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"query-field\">\n <mat-label>Query</mat-label>\n <textarea matInput formControlName=\"query\" rows=\"12\"\n placeholder=\"GraphQL Query or Subscription\"></textarea>\n </mat-form-field>\n </div>\n <div class=\"form-row variables-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"variables-field\">\n <mat-label>Variables (JSON)</mat-label>\n <textarea matInput formControlName=\"variablesJson\" rows=\"3\"\n placeholder='{\"limit\": 25, \"offset\": 0}'></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"headers-field\">\n <mat-label>Headers (JSON)</mat-label>\n <textarea matInput formControlName=\"headersJson\" rows=\"3\"\n placeholder='{\"content-type\": \"application/json\"}'></textarea>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Transformer Panel -->\n <mat-expansion-panel class=\"config-panel transformer-panel\"\n [expanded]=\"store.transformerPanelExpanded()\"\n (opened)=\"store.toggleTransformerPanel(true)\"\n (closed)=\"store.toggleTransformerPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>transform</mat-icon>\n <span>Transformer</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"transformer-content\" [formGroup]=\"store.feature.form\">\n <div formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"transformer-field\">\n <mat-label>Transformer (TypeScript)</mat-label>\n <textarea matInput formControlName=\"transformerTs\" rows=\"10\"\n placeholder=\"const transformer = (data) => data;\"></textarea>\n </mat-form-field>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Presenter Panel -->\n <mat-expansion-panel class=\"config-panel presenter-panel\"\n [expanded]=\"store.presenterPanelExpanded()\"\n (opened)=\"store.togglePresenterPanel(true)\"\n (closed)=\"store.togglePresenterPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>table_chart</mat-icon>\n <span>Presenter</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n @if (store.isLoading()) {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <span>{{ store.itemCount() }} \u4EF6</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"presenter-content\">\n @switch (store.presenter()) {\n @case ('list') {\n <organisms-list\n [items]=\"store.items()\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <organisms-table\n [items]=\"store.items()\"\n [form]=\"store.tableForm()\"\n [columnFormFieldMap]=\"store.columnFormFieldMap()\"\n />\n }\n }\n </div>\n </mat-expansion-panel>\n </div>\n</frames-router-outlet>\n", styles: [".config-panel{background:#0000004d;flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;width:100%}.config-panel.mat-expanded{flex:1 1 0;min-height:0}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content-wrapper{flex:1 1 0;min-height:0}.config-panel ::ng-deep .mat-expansion-panel-header{padding:0 12px;height:40px;flex:0 0 40px}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-body{display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding:8px 12px;overflow:hidden}.config-panel ::ng-deep .mat-expansion-panel-header-title{display:flex;align-items:center;gap:8px;font-size:12px;color:#ffffffb3;flex:0 0 auto}.config-panel ::ng-deep .mat-expansion-panel-header-title mat-icon{font-size:16px;width:16px;height:16px}.config-panel ::ng-deep .mat-expansion-panel-header-description{flex:1;justify-content:flex-end;margin-right:0}.header-actions{display:flex;align-items:center;gap:8px;color:#ffffffb3}.query-type{font-size:11px;color:#ffffff80;padding:2px 8px;background:#ffffff1a;border-radius:4px}.header-run-button{height:24px;line-height:24px;font-size:11px;padding:0 8px;min-width:auto;background:#1976d2;color:#fff}.header-run-button ::ng-deep .mat-icon{font-size:14px;width:14px;height:14px;margin-right:2px}::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-text-field-wrapper{background:#ffffff0d}::ng-deep .mdc-notched-outline__leading,::ng-deep .mdc-notched-outline__notch,::ng-deep .mdc-notched-outline__trailing{border-color:#fff3!important}::ng-deep .mat-mdc-form-field-label{color:#fff9}::ng-deep .mat-mdc-input-element{color:#ffffffe6}::ng-deep textarea.mat-mdc-input-element{min-height:60px}.query-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.query-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.query-form{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;min-height:0}.form-row{display:flex;gap:8px;width:100%;flex:0 0 auto}.form-row.query-row{flex:1 1 0;min-height:0}.form-row.variables-row .variables-field,.form-row.variables-row .headers-field{flex:1 1 50%}.endpoint-field{width:100%;flex:0 0 auto}.query-field{width:100%;flex:1 1 0;min-height:0}.query-field ::ng-deep .mat-mdc-form-field-flex{height:100%}.query-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none;height:100%}.transformer-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.transformer-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.transformer-field{width:100%}.transformer-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none}.presenter-panel ::ng-deep .mat-expansion-panel-body{padding:0}.presenter-content{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.presenter-content ::ng-deep organisms-table{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}:host ::ng-deep frames-line-up .main{display:flex;flex-direction:column;width:100%;max-width:100%}.title{font-size:16px;font-weight:500}.qtp-container{display:flex;flex-direction:column;flex:1 1 0;min-height:0;gap:4px;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }, { kind: "component", type: TableOrganism, selector: "organisms-table" }, { kind: "component", type: ListOrganism, selector: "organisms-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
160
+ }
161
+ __decorate([
162
+ Effect(ListOrganism.ActionId.CLICK_ITEM),
163
+ __metadata("design:type", Function),
164
+ __metadata("design:paramtypes", [Object]),
165
+ __metadata("design:returntype", void 0)
166
+ ], QueryPageV2.prototype, "onItemClick", null);
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: QueryPageV2, decorators: [{
168
+ type: Component,
169
+ args: [{ selector: 'pages-query-v2', standalone: true, imports: [
170
+ CommonModule,
171
+ ReactiveFormsModule,
172
+ RouterOutletFrame,
173
+ MatExpansionModule,
174
+ MatIconModule,
175
+ MatProgressSpinnerModule,
176
+ MatButtonModule,
177
+ MatFormFieldModule,
178
+ MatInputModule,
179
+ NavigatorOrganismStore,
180
+ TableOrganism,
181
+ ListOrganism,
182
+ JsonPipe,
183
+ ], providers: [
184
+ QueryFeature.provideDefault(),
185
+ ], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
186
+ {
187
+ directive: QueryPageV2Store,
188
+ inputs: ['query', 'navEndActions', 'columnNames', 'presenter']
189
+ }
190
+ ], template: "<frames-router-outlet>\n <organisms-navigator\n injectable\n [endActions]=\"store.navEndActions()\"\n (action)=\"dispatch($event)\"\n >\n <span class=\"title\">{{ store.title() }}</span>\n </organisms-navigator>\n\n <div class=\"qtp-container\">\n <!-- Query Panel -->\n <mat-expansion-panel class=\"config-panel query-panel\"\n [expanded]=\"store.queryPanelExpanded()\"\n (opened)=\"store.toggleQueryPanel(true)\"\n (closed)=\"store.toggleQueryPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>code</mat-icon>\n <span>Query</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <span class=\"query-type\">{{ store.queryType() }}</span>\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"query-content\">\n <div class=\"query-form\" [formGroup]=\"store.feature.form\">\n <div class=\"form-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"endpoint-field\">\n <mat-label>Endpoint</mat-label>\n <input matInput formControlName=\"endpoint\" placeholder=\"GraphQL Endpoint\">\n </mat-form-field>\n </div>\n <div class=\"form-row query-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"query-field\">\n <mat-label>Query</mat-label>\n <textarea matInput formControlName=\"query\" rows=\"12\"\n placeholder=\"GraphQL Query or Subscription\"></textarea>\n </mat-form-field>\n </div>\n <div class=\"form-row variables-row\" formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"variables-field\">\n <mat-label>Variables (JSON)</mat-label>\n <textarea matInput formControlName=\"variablesJson\" rows=\"3\"\n placeholder='{\"limit\": 25, \"offset\": 0}'></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" class=\"headers-field\">\n <mat-label>Headers (JSON)</mat-label>\n <textarea matInput formControlName=\"headersJson\" rows=\"3\"\n placeholder='{\"content-type\": \"application/json\"}'></textarea>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Transformer Panel -->\n <mat-expansion-panel class=\"config-panel transformer-panel\"\n [expanded]=\"store.transformerPanelExpanded()\"\n (opened)=\"store.toggleTransformerPanel(true)\"\n (closed)=\"store.toggleTransformerPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>transform</mat-icon>\n <span>Transformer</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n <button mat-flat-button color=\"primary\" class=\"header-run-button\"\n (click)=\"store.refresh(); $event.stopPropagation()\">\n <mat-icon>play_arrow</mat-icon>Run\n </button>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"transformer-content\" [formGroup]=\"store.feature.form\">\n <div formGroupName=\"graphql\">\n <mat-form-field appearance=\"outline\" class=\"transformer-field\">\n <mat-label>Transformer (TypeScript)</mat-label>\n <textarea matInput formControlName=\"transformerTs\" rows=\"10\"\n placeholder=\"const transformer = (data) => data;\"></textarea>\n </mat-form-field>\n </div>\n </div>\n </mat-expansion-panel>\n\n <!-- Presenter Panel -->\n <mat-expansion-panel class=\"config-panel presenter-panel\"\n [expanded]=\"store.presenterPanelExpanded()\"\n (opened)=\"store.togglePresenterPanel(true)\"\n (closed)=\"store.togglePresenterPanel(false)\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>table_chart</mat-icon>\n <span>Presenter</span>\n </mat-panel-title>\n <mat-panel-description class=\"header-actions\">\n @if (store.isLoading()) {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <span>{{ store.itemCount() }} \u4EF6</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n <div class=\"presenter-content\">\n @switch (store.presenter()) {\n @case ('list') {\n <organisms-list\n [items]=\"store.items()\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <organisms-table\n [items]=\"store.items()\"\n [form]=\"store.tableForm()\"\n [columnFormFieldMap]=\"store.columnFormFieldMap()\"\n />\n }\n }\n </div>\n </mat-expansion-panel>\n </div>\n</frames-router-outlet>\n", styles: [".config-panel{background:#0000004d;flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;width:100%}.config-panel.mat-expanded{flex:1 1 0;min-height:0}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content-wrapper{flex:1 1 0;min-height:0}.config-panel ::ng-deep .mat-expansion-panel-header{padding:0 12px;height:40px;flex:0 0 40px}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-body{display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding:8px 12px;overflow:hidden}.config-panel ::ng-deep .mat-expansion-panel-header-title{display:flex;align-items:center;gap:8px;font-size:12px;color:#ffffffb3;flex:0 0 auto}.config-panel ::ng-deep .mat-expansion-panel-header-title mat-icon{font-size:16px;width:16px;height:16px}.config-panel ::ng-deep .mat-expansion-panel-header-description{flex:1;justify-content:flex-end;margin-right:0}.header-actions{display:flex;align-items:center;gap:8px;color:#ffffffb3}.query-type{font-size:11px;color:#ffffff80;padding:2px 8px;background:#ffffff1a;border-radius:4px}.header-run-button{height:24px;line-height:24px;font-size:11px;padding:0 8px;min-width:auto;background:#1976d2;color:#fff}.header-run-button ::ng-deep .mat-icon{font-size:14px;width:14px;height:14px;margin-right:2px}::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-text-field-wrapper{background:#ffffff0d}::ng-deep .mdc-notched-outline__leading,::ng-deep .mdc-notched-outline__notch,::ng-deep .mdc-notched-outline__trailing{border-color:#fff3!important}::ng-deep .mat-mdc-form-field-label{color:#fff9}::ng-deep .mat-mdc-input-element{color:#ffffffe6}::ng-deep textarea.mat-mdc-input-element{min-height:60px}.query-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.query-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.query-form{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;min-height:0}.form-row{display:flex;gap:8px;width:100%;flex:0 0 auto}.form-row.query-row{flex:1 1 0;min-height:0}.form-row.variables-row .variables-field,.form-row.variables-row .headers-field{flex:1 1 50%}.endpoint-field{width:100%;flex:0 0 auto}.query-field{width:100%;flex:1 1 0;min-height:0}.query-field ::ng-deep .mat-mdc-form-field-flex{height:100%}.query-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none;height:100%}.transformer-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.transformer-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.transformer-field{width:100%}.transformer-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none}.presenter-panel ::ng-deep .mat-expansion-panel-body{padding:0}.presenter-content{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.presenter-content ::ng-deep organisms-table{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}:host ::ng-deep frames-line-up .main{display:flex;flex-direction:column;width:100%;max-width:100%}.title{font-size:16px;font-weight:500}.qtp-container{display:flex;flex-direction:column;flex:1 1 0;min-height:0;gap:4px;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}\n"] }]
191
+ }], propDecorators: { onItemClick: [] } });
192
+
193
+ /**
194
+ * Generated bundle index. Do not edit.
195
+ */
196
+
197
+ export { ActionId, QueryPageV2, QueryPageV2Store };
198
+ //# sourceMappingURL=xxmachina-components-pages-query-v2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-components-pages-query-v2.mjs","sources":["../tmp-esm2022/pages/query-v2/query-v2.page.store.js","../tmp-esm2022/pages/query-v2/query-v2.page.js","../tmp-esm2022/pages/query-v2/xxmachina-components-pages-query-v2.js"],"sourcesContent":["import { Directive, computed, effect, inject, input, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { InjectableComponent, provideEffect } from '@ng-atomic/core';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { injectRouteData } from '@ng-atomic/common/utils';\nimport { map, startWith } from 'rxjs';\nimport { buildItemsMapFromResult } from '@xxmachina/components/pages/query';\nimport { FormBuilder } from '@angular/forms';\nimport { ListOrganism } from '@ng-atomic/components/organisms/list';\nimport * as i0 from \"@angular/core\";\nexport var ActionId;\n(function (ActionId) {\n ActionId[\"CLICK_ITEM\"] = \"[@xxmachina/components/pages/query-v2] Click Item\";\n})(ActionId || (ActionId = {}));\nexport class QueryPageV2Store extends InjectableComponent {\n static { this.ActionId = ActionId; }\n /**\n * Provides an effect handler for CLICK_ITEM action\n */\n static provideClickItemEffect(handler) {\n return [\n provideEffect(ListOrganism.ActionId.CLICK_ITEM, () => handler),\n ];\n }\n // Panel toggle methods (ensure at least one panel stays open)\n toggleQueryPanel(expanded) {\n if (!expanded && this.openPanelCount() <= 1)\n return;\n this.queryPanelExpanded.set(expanded);\n }\n toggleTransformerPanel(expanded) {\n if (!expanded && this.openPanelCount() <= 1)\n return;\n this.transformerPanelExpanded.set(expanded);\n }\n togglePresenterPanel(expanded) {\n if (!expanded && this.openPanelCount() <= 1)\n return;\n this.presenterPanelExpanded.set(expanded);\n }\n constructor() {\n super();\n this.query = input(injectRouteData('query')());\n this.navEndActions = input(injectRouteData('navEndActions')());\n this.columnNames = input([]);\n this.presenter = input(injectRouteData('presenter')() ?? 'table');\n this.feature = inject(QueryFeature);\n this.fb = inject(FormBuilder);\n // Panel expansion states\n this.queryPanelExpanded = signal(true);\n this.transformerPanelExpanded = signal(false);\n this.presenterPanelExpanded = signal(true);\n // Count of open panels\n this.openPanelCount = computed(() => [this.queryPanelExpanded(), this.transformerPanelExpanded(), this.presenterPanelExpanded()]\n .filter(Boolean).length);\n // Query metadata\n this.title = computed(() => this.query()?.title || 'データ一覧');\n this.queryType = computed(() => this.query()?.type || 'graphql');\n // Loading state\n this.isLoading$ = this.feature.result$.pipe(map(() => false), startWith(true));\n this.isLoading = toSignal(this.isLoading$, { initialValue: true });\n // Result data\n this.result = computed(() => this.feature.result() ?? {});\n this.itemsMap = computed(() => buildItemsMapFromResult(this.result()));\n this.items = computed(() => {\n const map = this.itemsMap();\n const keys = Object.keys(map);\n if (keys.length === 0)\n return [];\n return map[keys[0]]?.items ?? [];\n });\n this.itemCount = computed(() => this.items().length);\n // Table display columns - automatically determine from first item\n this.displayedColumns = computed(() => {\n const items = this.items();\n if (items.length === 0)\n return [];\n const firstItem = items[0];\n if (!firstItem || typeof firstItem !== 'object')\n return [];\n return Object.keys(firstItem);\n });\n // Form for table columns\n this.tableForm = computed(() => {\n const columns = this.displayedColumns();\n const columnsMap = {};\n columns.forEach(col => {\n columnsMap[col] = { width: 150, hidden: false };\n });\n return this.fb.group({\n columns: this.fb.group({ map: this.fb.group(columnsMap) })\n });\n });\n // Column form field map for organisms-table\n this.columnFormFieldMap = computed(() => {\n const columns = this.displayedColumns();\n const fieldMap = {};\n columns.forEach(col => {\n fieldMap[col] = { type: 'text', label: col };\n });\n return fieldMap;\n });\n // queryをformにpatch\n effect(() => {\n const query = this.query();\n if (query) {\n this.feature.form.patchValue({\n id: query.id,\n title: query.title,\n type: query.type,\n graphql: query.graphql,\n });\n this.feature.refresh();\n }\n });\n }\n refresh() {\n this.feature.refresh();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: QueryPageV2Store, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: QueryPageV2Store, isStandalone: true, inputs: { query: { classPropertyName: \"query\", publicName: \"query\", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: \"navEndActions\", publicName: \"navEndActions\", isSignal: true, isRequired: false, transformFunction: null }, columnNames: { classPropertyName: \"columnNames\", publicName: \"columnNames\", isSignal: true, isRequired: false, transformFunction: null }, presenter: { classPropertyName: \"presenter\", publicName: \"presenter\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: QueryPageV2Store, decorators: [{\n type: Directive,\n args: [{ standalone: true }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdjIucGFnZS5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL3F1ZXJ5LXYyL3F1ZXJ5LXYyLnBhZ2Uuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUlwRSxNQUFNLENBQU4sSUFBWSxRQUVYO0FBRkQsV0FBWSxRQUFRO0lBQ2xCLDRFQUFnRSxDQUFBO0FBQ2xFLENBQUMsRUFGVyxRQUFRLEtBQVIsUUFBUSxRQUVuQjtBQUdELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxtQkFBbUI7YUFDdkMsYUFBUSxHQUFHLFFBQVEsQUFBWCxDQUFZO0lBRXBDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFJLE9BQTBCO1FBQ3pELE9BQU87WUFDTCxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEs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QUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQTNIVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUzttQkFBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZUNvbXBvbmVudCwgcHJvdmlkZUVmZmVjdCB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBRdWVyeSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2RvbWFpbi9tb2RlbHMnO1xuaW1wb3J0IHsgUXVlcnlGZWF0dXJlIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2ZlYXR1cmVzL3F1ZXJ5JztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RSb3V0ZURhdGEgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYnVpbGRJdGVtc01hcEZyb21SZXN1bHQgfSBmcm9tICdAeHhtYWNoaW5hL2NvbXBvbmVudHMvcGFnZXMvcXVlcnknO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXN0T3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2xpc3QnO1xuXG5leHBvcnQgdHlwZSBQcmVzZW50ZXJUeXBlID0gJ3RhYmxlJyB8ICdsaXN0JztcblxuZXhwb3J0IGVudW0gQWN0aW9uSWQge1xuICBDTElDS19JVEVNID0gJ1tAeHhtYWNoaW5hL2NvbXBvbmVudHMvcGFnZXMvcXVlcnktdjJdIENsaWNrIEl0ZW0nLFxufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5UGFnZVYyU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IEFjdGlvbklkID0gQWN0aW9uSWQ7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGFuIGVmZmVjdCBoYW5kbGVyIGZvciBDTElDS19JVEVNIGFjdGlvblxuICAgKi9cbiAgc3RhdGljIHByb3ZpZGVDbGlja0l0ZW1FZmZlY3Q8VD4oaGFuZGxlcjogKGl0ZW06IFQpID0+IHZvaWQpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgcHJvdmlkZUVmZmVjdChMaXN0T3JnYW5pc20uQWN0aW9uSWQuQ0xJQ0tfSVRFTSwgKCkgPT4gaGFuZGxlciksXG4gICAgXTtcbiAgfVxuXG4gIHJlYWRvbmx5IHF1ZXJ5ID0gaW5wdXQ8UXVlcnk+KGluamVjdFJvdXRlRGF0YTxRdWVyeT4oJ3F1ZXJ5JykoKSk7XG4gIHJlYWRvbmx5IG5hdkVuZEFjdGlvbnMgPSBpbnB1dDxBY3Rpb25bXT4oaW5qZWN0Um91dGVEYXRhPEFjdGlvbltdPignbmF2RW5kQWN0aW9ucycpKCkpO1xuICByZWFkb25seSBjb2x1bW5OYW1lcyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IHByZXNlbnRlciA9IGlucHV0PFByZXNlbnRlclR5cGU+KGluamVjdFJvdXRlRGF0YTxQcmVzZW50ZXJUeXBlPigncHJlc2VudGVyJykoKSA/PyAndGFibGUnKTtcblxuICByZWFkb25seSBmZWF0dXJlID0gaW5qZWN0KFF1ZXJ5RmVhdHVyZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuXG4gIC8vIFBhbmVsIGV4cGFuc2lvbiBzdGF0ZXNcbiAgcmVhZG9ubHkgcXVlcnlQYW5lbEV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSB0cmFuc2Zvcm1lclBhbmVsRXhwYW5kZWQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBwcmVzZW50ZXJQYW5lbEV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuXG4gIC8vIENvdW50IG9mIG9wZW4gcGFuZWxzXG4gIHJlYWRvbmx5IG9wZW5QYW5lbENvdW50ID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbdGhpcy5xdWVyeVBhbmVsRXhwYW5kZWQoKSwgdGhpcy50cmFuc2Zvcm1lclBhbmVsRXhwYW5kZWQoKSwgdGhpcy5wcmVzZW50ZXJQYW5lbEV4cGFuZGVkKCldXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aFxuICApO1xuXG4gIC8vIFBhbmVsIHRvZ2dsZSBtZXRob2RzIChlbnN1cmUgYXQgbGVhc3Qgb25lIHBhbmVsIHN0YXlzIG9wZW4pXG4gIHRvZ2dsZVF1ZXJ5UGFuZWwoZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIWV4cGFuZGVkICYmIHRoaXMub3BlblBhbmVsQ291bnQoKSA8PSAxKSByZXR1cm47XG4gICAgdGhpcy5xdWVyeVBhbmVsRXhwYW5kZWQuc2V0KGV4cGFuZGVkKTtcbiAgfVxuXG4gIHRvZ2dsZVRyYW5zZm9ybWVyUGFuZWwoZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIWV4cGFuZGVkICYmIHRoaXMub3BlblBhbmVsQ291bnQoKSA8PSAxKSByZXR1cm47XG4gICAgdGhpcy50cmFuc2Zvcm1lclBhbmVsRXhwYW5kZWQuc2V0KGV4cGFuZGVkKTtcbiAgfVxuXG4gIHRvZ2dsZVByZXNlbnRlclBhbmVsKGV4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCFleHBhbmRlZCAmJiB0aGlzLm9wZW5QYW5lbENvdW50KCkgPD0gMSkgcmV0dXJuO1xuICAgIHRoaXMucHJlc2VudGVyUGFuZWxFeHBhbmRlZC5zZXQoZXhwYW5kZWQpO1xuICB9XG5cbiAgLy8gUXVlcnkgbWV0YWRhdGFcbiAgcmVhZG9ubHkgdGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnF1ZXJ5KCk/LnRpdGxlIHx8ICfjg4fjg7zjgr/kuIDopqcnKTtcbiAgcmVhZG9ubHkgcXVlcnlUeXBlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5xdWVyeSgpPy50eXBlIHx8ICdncmFwaHFsJyk7XG5cbiAgLy8gTG9hZGluZyBzdGF0ZVxuICBwcml2YXRlIHJlYWRvbmx5IGlzTG9hZGluZyQgPSB0aGlzLmZlYXR1cmUucmVzdWx0JC5waXBlKFxuICAgIG1hcCgoKSA9PiBmYWxzZSksXG4gICAgc3RhcnRXaXRoKHRydWUpLFxuICApO1xuICByZWFkb25seSBpc0xvYWRpbmcgPSB0b1NpZ25hbCh0aGlzLmlzTG9hZGluZyQsIHsgaW5pdGlhbFZhbHVlOiB0cnVlIH0pO1xuXG4gIC8vIFJlc3VsdCBkYXRhXG4gIHJlYWRvbmx5IHJlc3VsdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmVhdHVyZS5yZXN1bHQoKSA/PyB7fSk7XG5cbiAgcmVhZG9ubHkgaXRlbXNNYXAgPSBjb21wdXRlZCgoKSA9PiBidWlsZEl0ZW1zTWFwRnJvbVJlc3VsdCh0aGlzLnJlc3VsdCgpKSk7XG5cbiAgcmVhZG9ubHkgaXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5pdGVtc01hcCgpO1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBtYXBba2V5c1swXV0/Lml0ZW1zID8/IFtdO1xuICB9KTtcblxuICByZWFkb25seSBpdGVtQ291bnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLml0ZW1zKCkubGVuZ3RoKTtcblxuICAvLyBUYWJsZSBkaXNwbGF5IGNvbHVtbnMgLSBhdXRvbWF0aWNhbGx5IGRldGVybWluZSBmcm9tIGZpcnN0IGl0ZW1cbiAgcmVhZG9ubHkgZGlzcGxheWVkQ29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG4gICAgY29uc3QgZmlyc3RJdGVtID0gaXRlbXNbMF07XG4gICAgaWYgKCFmaXJzdEl0ZW0gfHwgdHlwZW9mIGZpcnN0SXRlbSAhPT0gJ29iamVjdCcpIHJldHVybiBbXTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZmlyc3RJdGVtKTtcbiAgfSk7XG5cbiAgLy8gRm9ybSBmb3IgdGFibGUgY29sdW1uc1xuICByZWFkb25seSB0YWJsZUZvcm0gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucygpO1xuICAgIGNvbnN0IGNvbHVtbnNNYXA6IGFueSA9IHt9O1xuICAgIGNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgY29sdW1uc01hcFtjb2xdID0geyB3aWR0aDogMTUwLCBoaWRkZW46IGZhbHNlIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY29sdW1uczogdGhpcy5mYi5ncm91cCh7IG1hcDogdGhpcy5mYi5ncm91cChjb2x1bW5zTWFwKSB9KVxuICAgIH0pO1xuICB9KTtcblxuICAvLyBDb2x1bW4gZm9ybSBmaWVsZCBtYXAgZm9yIG9yZ2FuaXNtcy10YWJsZVxuICByZWFkb25seSBjb2x1bW5Gb3JtRmllbGRNYXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucygpO1xuICAgIGNvbnN0IGZpZWxkTWFwOiBhbnkgPSB7fTtcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgIGZpZWxkTWFwW2NvbF0gPSB7IHR5cGU6ICd0ZXh0JywgbGFiZWw6IGNvbCB9O1xuICAgIH0pO1xuICAgIHJldHVybiBmaWVsZE1hcDtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIHF1ZXJ544KSZm9ybeOBq3BhdGNoXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeSgpO1xuICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgIHRoaXMuZmVhdHVyZS5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGlkOiBxdWVyeS5pZCxcbiAgICAgICAgICB0aXRsZTogcXVlcnkudGl0bGUsXG4gICAgICAgICAgdHlwZTogcXVlcnkudHlwZSxcbiAgICAgICAgICBncmFwaHFsOiBxdWVyeS5ncmFwaHFsLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mZWF0dXJlLnJlZnJlc2goKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlLnJlZnJlc2goKTtcbiAgfVxufVxuIl19","import { __decorate, __metadata } from \"tslib\";\nimport { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';\nimport { NgAtomicComponent, Effect } from '@ng-atomic/core';\nimport { JsonPipe } from '@angular/common';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { QueryPageV2Store, ActionId } from './query-v2.page.store';\nimport { ListOrganism } from '@ng-atomic/components/organisms/list';\nimport { TableOrganism } from '@ng-atomic/components/organisms/table';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./query-v2.page.store\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/expansion\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/progress-spinner\";\nimport * as i6 from \"@angular/material/button\";\nimport * as i7 from \"@angular/material/form-field\";\nimport * as i8 from \"@angular/material/input\";\nexport class QueryPageV2 extends NgAtomicComponent {\n constructor() {\n super(...arguments);\n this.store = inject(QueryPageV2Store);\n }\n static { this.ActionId = ActionId; }\n onItemClick(item) {\n this.dispatch({ id: ActionId.CLICK_ITEM, payload: item });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: QueryPageV2, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: QueryPageV2, isStandalone: true, selector: \"pages-query-v2\", providers: [\n QueryFeature.provideDefault(),\n ], usesInheritance: true, hostDirectives: [{ directive: i1.QueryPageV2Store, inputs: [\"query\", \"query\", \"navEndActions\", \"navEndActions\", \"columnNames\", \"columnNames\", \"presenter\", \"presenter\"] }], ngImport: i0, template: \"<frames-router-outlet>\\n <organisms-navigator\\n injectable\\n [endActions]=\\\"store.navEndActions()\\\"\\n (action)=\\\"dispatch($event)\\\"\\n >\\n <span class=\\\"title\\\">{{ store.title() }}</span>\\n </organisms-navigator>\\n\\n <div class=\\\"qtp-container\\\">\\n <!-- Query Panel -->\\n <mat-expansion-panel class=\\\"config-panel query-panel\\\"\\n [expanded]=\\\"store.queryPanelExpanded()\\\"\\n (opened)=\\\"store.toggleQueryPanel(true)\\\"\\n (closed)=\\\"store.toggleQueryPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>code</mat-icon>\\n <span>Query</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n <span class=\\\"query-type\\\">{{ store.queryType() }}</span>\\n <button mat-flat-button color=\\\"primary\\\" class=\\\"header-run-button\\\"\\n (click)=\\\"store.refresh(); $event.stopPropagation()\\\">\\n <mat-icon>play_arrow</mat-icon>Run\\n </button>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"query-content\\\">\\n <div class=\\\"query-form\\\" [formGroup]=\\\"store.feature.form\\\">\\n <div class=\\\"form-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"endpoint-field\\\">\\n <mat-label>Endpoint</mat-label>\\n <input matInput formControlName=\\\"endpoint\\\" placeholder=\\\"GraphQL Endpoint\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"form-row query-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"query-field\\\">\\n <mat-label>Query</mat-label>\\n <textarea matInput formControlName=\\\"query\\\" rows=\\\"12\\\"\\n placeholder=\\\"GraphQL Query or Subscription\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"form-row variables-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"variables-field\\\">\\n <mat-label>Variables (JSON)</mat-label>\\n <textarea matInput formControlName=\\\"variablesJson\\\" rows=\\\"3\\\"\\n placeholder='{\\\"limit\\\": 25, \\\"offset\\\": 0}'></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"headers-field\\\">\\n <mat-label>Headers (JSON)</mat-label>\\n <textarea matInput formControlName=\\\"headersJson\\\" rows=\\\"3\\\"\\n placeholder='{\\\"content-type\\\": \\\"application/json\\\"}'></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n </mat-expansion-panel>\\n\\n <!-- Transformer Panel -->\\n <mat-expansion-panel class=\\\"config-panel transformer-panel\\\"\\n [expanded]=\\\"store.transformerPanelExpanded()\\\"\\n (opened)=\\\"store.toggleTransformerPanel(true)\\\"\\n (closed)=\\\"store.toggleTransformerPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>transform</mat-icon>\\n <span>Transformer</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n <button mat-flat-button color=\\\"primary\\\" class=\\\"header-run-button\\\"\\n (click)=\\\"store.refresh(); $event.stopPropagation()\\\">\\n <mat-icon>play_arrow</mat-icon>Run\\n </button>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"transformer-content\\\" [formGroup]=\\\"store.feature.form\\\">\\n <div formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"transformer-field\\\">\\n <mat-label>Transformer (TypeScript)</mat-label>\\n <textarea matInput formControlName=\\\"transformerTs\\\" rows=\\\"10\\\"\\n placeholder=\\\"const transformer = (data) => data;\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </mat-expansion-panel>\\n\\n <!-- Presenter Panel -->\\n <mat-expansion-panel class=\\\"config-panel presenter-panel\\\"\\n [expanded]=\\\"store.presenterPanelExpanded()\\\"\\n (opened)=\\\"store.togglePresenterPanel(true)\\\"\\n (closed)=\\\"store.togglePresenterPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>table_chart</mat-icon>\\n <span>Presenter</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n @if (store.isLoading()) {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <span>{{ store.itemCount() }} \\u4EF6</span>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"presenter-content\\\">\\n @switch (store.presenter()) {\\n @case ('list') {\\n <organisms-list\\n [items]=\\\"store.items()\\\"\\n (action)=\\\"dispatch($event)\\\"\\n />\\n }\\n @default {\\n <organisms-table\\n [items]=\\\"store.items()\\\"\\n [form]=\\\"store.tableForm()\\\"\\n [columnFormFieldMap]=\\\"store.columnFormFieldMap()\\\"\\n />\\n }\\n }\\n </div>\\n </mat-expansion-panel>\\n </div>\\n</frames-router-outlet>\\n\", styles: [\".config-panel{background:#0000004d;flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;width:100%}.config-panel.mat-expanded{flex:1 1 0;min-height:0}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content-wrapper{flex:1 1 0;min-height:0}.config-panel ::ng-deep .mat-expansion-panel-header{padding:0 12px;height:40px;flex:0 0 40px}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-body{display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding:8px 12px;overflow:hidden}.config-panel ::ng-deep .mat-expansion-panel-header-title{display:flex;align-items:center;gap:8px;font-size:12px;color:#ffffffb3;flex:0 0 auto}.config-panel ::ng-deep .mat-expansion-panel-header-title mat-icon{font-size:16px;width:16px;height:16px}.config-panel ::ng-deep .mat-expansion-panel-header-description{flex:1;justify-content:flex-end;margin-right:0}.header-actions{display:flex;align-items:center;gap:8px;color:#ffffffb3}.query-type{font-size:11px;color:#ffffff80;padding:2px 8px;background:#ffffff1a;border-radius:4px}.header-run-button{height:24px;line-height:24px;font-size:11px;padding:0 8px;min-width:auto;background:#1976d2;color:#fff}.header-run-button ::ng-deep .mat-icon{font-size:14px;width:14px;height:14px;margin-right:2px}::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-text-field-wrapper{background:#ffffff0d}::ng-deep .mdc-notched-outline__leading,::ng-deep .mdc-notched-outline__notch,::ng-deep .mdc-notched-outline__trailing{border-color:#fff3!important}::ng-deep .mat-mdc-form-field-label{color:#fff9}::ng-deep .mat-mdc-input-element{color:#ffffffe6}::ng-deep textarea.mat-mdc-input-element{min-height:60px}.query-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.query-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.query-form{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;min-height:0}.form-row{display:flex;gap:8px;width:100%;flex:0 0 auto}.form-row.query-row{flex:1 1 0;min-height:0}.form-row.variables-row .variables-field,.form-row.variables-row .headers-field{flex:1 1 50%}.endpoint-field{width:100%;flex:0 0 auto}.query-field{width:100%;flex:1 1 0;min-height:0}.query-field ::ng-deep .mat-mdc-form-field-flex{height:100%}.query-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none;height:100%}.transformer-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.transformer-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.transformer-field{width:100%}.transformer-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none}.presenter-panel ::ng-deep .mat-expansion-panel-body{padding:0}.presenter-content{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.presenter-content ::ng-deep organisms-table{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}:host ::ng-deep frames-line-up .main{display:flex;flex-direction:column;width:100%;max-width:100%}.title{font-size:16px;font-weight:500}.qtp-container{display:flex;flex-direction:column;flex:1 1 0;min-height:0;gap:4px;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"directive\", type: i2.FormGroupName, selector: \"[formGroupName]\", inputs: [\"formGroupName\"] }, { kind: \"component\", type: RouterOutletFrame, selector: \"frames-router-outlet\", outputs: [\"events\"] }, { kind: \"ngmodule\", type: MatExpansionModule }, { kind: \"component\", type: i3.MatExpansionPanel, selector: \"mat-expansion-panel\", inputs: [\"hideToggle\", \"togglePosition\"], outputs: [\"afterExpand\", \"afterCollapse\"], exportAs: [\"matExpansionPanel\"] }, { kind: \"component\", type: i3.MatExpansionPanelHeader, selector: \"mat-expansion-panel-header\", inputs: [\"expandedHeight\", \"collapsedHeight\", \"tabIndex\"] }, { kind: \"directive\", type: i3.MatExpansionPanelTitle, selector: \"mat-panel-title\" }, { kind: \"directive\", type: i3.MatExpansionPanelDescription, selector: \"mat-panel-description\" }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i5.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i6.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i7.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i7.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i8.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: NavigatorOrganismStore, selector: \"organisms-navigator\", inputs: [\"startActions\", \"endActions\", \"title\"] }, { kind: \"component\", type: TableOrganism, selector: \"organisms-table\" }, { kind: \"component\", type: ListOrganism, selector: \"organisms-list\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\n__decorate([\n Effect(ListOrganism.ActionId.CLICK_ITEM),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], QueryPageV2.prototype, \"onItemClick\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: QueryPageV2, decorators: [{\n type: Component,\n args: [{ selector: 'pages-query-v2', standalone: true, imports: [\n CommonModule,\n ReactiveFormsModule,\n RouterOutletFrame,\n MatExpansionModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n NavigatorOrganismStore,\n TableOrganism,\n ListOrganism,\n JsonPipe,\n ], providers: [\n QueryFeature.provideDefault(),\n ], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [\n {\n directive: QueryPageV2Store,\n inputs: ['query', 'navEndActions', 'columnNames', 'presenter']\n }\n ], template: \"<frames-router-outlet>\\n <organisms-navigator\\n injectable\\n [endActions]=\\\"store.navEndActions()\\\"\\n (action)=\\\"dispatch($event)\\\"\\n >\\n <span class=\\\"title\\\">{{ store.title() }}</span>\\n </organisms-navigator>\\n\\n <div class=\\\"qtp-container\\\">\\n <!-- Query Panel -->\\n <mat-expansion-panel class=\\\"config-panel query-panel\\\"\\n [expanded]=\\\"store.queryPanelExpanded()\\\"\\n (opened)=\\\"store.toggleQueryPanel(true)\\\"\\n (closed)=\\\"store.toggleQueryPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>code</mat-icon>\\n <span>Query</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n <span class=\\\"query-type\\\">{{ store.queryType() }}</span>\\n <button mat-flat-button color=\\\"primary\\\" class=\\\"header-run-button\\\"\\n (click)=\\\"store.refresh(); $event.stopPropagation()\\\">\\n <mat-icon>play_arrow</mat-icon>Run\\n </button>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"query-content\\\">\\n <div class=\\\"query-form\\\" [formGroup]=\\\"store.feature.form\\\">\\n <div class=\\\"form-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"endpoint-field\\\">\\n <mat-label>Endpoint</mat-label>\\n <input matInput formControlName=\\\"endpoint\\\" placeholder=\\\"GraphQL Endpoint\\\">\\n </mat-form-field>\\n </div>\\n <div class=\\\"form-row query-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"query-field\\\">\\n <mat-label>Query</mat-label>\\n <textarea matInput formControlName=\\\"query\\\" rows=\\\"12\\\"\\n placeholder=\\\"GraphQL Query or Subscription\\\"></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"form-row variables-row\\\" formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"variables-field\\\">\\n <mat-label>Variables (JSON)</mat-label>\\n <textarea matInput formControlName=\\\"variablesJson\\\" rows=\\\"3\\\"\\n placeholder='{\\\"limit\\\": 25, \\\"offset\\\": 0}'></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"headers-field\\\">\\n <mat-label>Headers (JSON)</mat-label>\\n <textarea matInput formControlName=\\\"headersJson\\\" rows=\\\"3\\\"\\n placeholder='{\\\"content-type\\\": \\\"application/json\\\"}'></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </div>\\n </mat-expansion-panel>\\n\\n <!-- Transformer Panel -->\\n <mat-expansion-panel class=\\\"config-panel transformer-panel\\\"\\n [expanded]=\\\"store.transformerPanelExpanded()\\\"\\n (opened)=\\\"store.toggleTransformerPanel(true)\\\"\\n (closed)=\\\"store.toggleTransformerPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>transform</mat-icon>\\n <span>Transformer</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n <button mat-flat-button color=\\\"primary\\\" class=\\\"header-run-button\\\"\\n (click)=\\\"store.refresh(); $event.stopPropagation()\\\">\\n <mat-icon>play_arrow</mat-icon>Run\\n </button>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"transformer-content\\\" [formGroup]=\\\"store.feature.form\\\">\\n <div formGroupName=\\\"graphql\\\">\\n <mat-form-field appearance=\\\"outline\\\" class=\\\"transformer-field\\\">\\n <mat-label>Transformer (TypeScript)</mat-label>\\n <textarea matInput formControlName=\\\"transformerTs\\\" rows=\\\"10\\\"\\n placeholder=\\\"const transformer = (data) => data;\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </mat-expansion-panel>\\n\\n <!-- Presenter Panel -->\\n <mat-expansion-panel class=\\\"config-panel presenter-panel\\\"\\n [expanded]=\\\"store.presenterPanelExpanded()\\\"\\n (opened)=\\\"store.togglePresenterPanel(true)\\\"\\n (closed)=\\\"store.togglePresenterPanel(false)\\\">\\n <mat-expansion-panel-header>\\n <mat-panel-title>\\n <mat-icon>table_chart</mat-icon>\\n <span>Presenter</span>\\n </mat-panel-title>\\n <mat-panel-description class=\\\"header-actions\\\">\\n @if (store.isLoading()) {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <span>{{ store.itemCount() }} \\u4EF6</span>\\n </mat-panel-description>\\n </mat-expansion-panel-header>\\n <div class=\\\"presenter-content\\\">\\n @switch (store.presenter()) {\\n @case ('list') {\\n <organisms-list\\n [items]=\\\"store.items()\\\"\\n (action)=\\\"dispatch($event)\\\"\\n />\\n }\\n @default {\\n <organisms-table\\n [items]=\\\"store.items()\\\"\\n [form]=\\\"store.tableForm()\\\"\\n [columnFormFieldMap]=\\\"store.columnFormFieldMap()\\\"\\n />\\n }\\n }\\n </div>\\n </mat-expansion-panel>\\n </div>\\n</frames-router-outlet>\\n\", styles: [\".config-panel{background:#0000004d;flex:0 0 auto;display:flex;flex-direction:column;overflow:hidden;width:100%}.config-panel.mat-expanded{flex:1 1 0;min-height:0}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content-wrapper{flex:1 1 0;min-height:0}.config-panel ::ng-deep .mat-expansion-panel-header{padding:0 12px;height:40px;flex:0 0 40px}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.config-panel.mat-expanded ::ng-deep .mat-expansion-panel-body{display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding:8px 12px;overflow:hidden}.config-panel ::ng-deep .mat-expansion-panel-header-title{display:flex;align-items:center;gap:8px;font-size:12px;color:#ffffffb3;flex:0 0 auto}.config-panel ::ng-deep .mat-expansion-panel-header-title mat-icon{font-size:16px;width:16px;height:16px}.config-panel ::ng-deep .mat-expansion-panel-header-description{flex:1;justify-content:flex-end;margin-right:0}.header-actions{display:flex;align-items:center;gap:8px;color:#ffffffb3}.query-type{font-size:11px;color:#ffffff80;padding:2px 8px;background:#ffffff1a;border-radius:4px}.header-run-button{height:24px;line-height:24px;font-size:11px;padding:0 8px;min-width:auto;background:#1976d2;color:#fff}.header-run-button ::ng-deep .mat-icon{font-size:14px;width:14px;height:14px;margin-right:2px}::ng-deep .mat-mdc-form-field{width:100%}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .mat-mdc-text-field-wrapper{background:#ffffff0d}::ng-deep .mdc-notched-outline__leading,::ng-deep .mdc-notched-outline__notch,::ng-deep .mdc-notched-outline__trailing{border-color:#fff3!important}::ng-deep .mat-mdc-form-field-label{color:#fff9}::ng-deep .mat-mdc-input-element{color:#ffffffe6}::ng-deep textarea.mat-mdc-input-element{min-height:60px}.query-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.query-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.query-form{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;min-height:0}.form-row{display:flex;gap:8px;width:100%;flex:0 0 auto}.form-row.query-row{flex:1 1 0;min-height:0}.form-row.variables-row .variables-field,.form-row.variables-row .headers-field{flex:1 1 50%}.endpoint-field{width:100%;flex:0 0 auto}.query-field{width:100%;flex:1 1 0;min-height:0}.query-field ::ng-deep .mat-mdc-form-field-flex{height:100%}.query-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none;height:100%}.transformer-panel ::ng-deep .mat-expansion-panel-body{padding:8px}.transformer-content{flex:1 1 0;min-height:0;overflow:auto;background:#0a0a0a;border-radius:4px;padding:8px}.transformer-field{width:100%}.transformer-field ::ng-deep textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;resize:none}.presenter-panel ::ng-deep .mat-expansion-panel-body{padding:0}.presenter-content{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.presenter-content ::ng-deep organisms-table{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}:host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}:host ::ng-deep frames-line-up .main{display:flex;flex-direction:column;width:100%;max-width:100%}.title{font-size:16px;font-weight:500}.qtp-container{display:flex;flex-direction:column;flex:1 1 0;min-height:0;gap:4px;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}\\n\"] }]\n }], propDecorators: { onItemClick: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdjIucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL3F1ZXJ5LXYyL3F1ZXJ5LXYyLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9xdWVyeS12Mi9xdWVyeS12Mi5wYWdlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7OztBQWlDdEUsTUFBTSxPQUFPLFdBQVksU0FBUSxpQkFBaUI7SUEvQmxEOztRQWlDVyxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FNM0M7YUFQaUIsYUFBUSxHQUFHLFFBQVEsQUFBWCxDQUFZO0lBSTFCLFdBQVcsQ0FBQyxJQUFTO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQVBVLFdBQVc7a0dBQVgsV0FBVyw2REFiWDtZQUNULFlBQVksQ0FBQyxjQUFjLEVBQUU7U0FDOUIsNk5DdENILHNwS0E0SEEsaWpIRHRHSSxZQUFZLDhCQUNaLG1CQUFtQiwyOEJBQ25CLGlCQUFpQixxRkFDakIsa0JBQWtCLDBqQkFDbEIsYUFBYSxtTEFDYix3QkFBd0Isa09BQ3hCLGVBQWUsbVhBQ2Ysa0JBQWtCLDBTQUNsQixjQUFjLGtZQUNkLHNCQUFzQixpSEFDdEIsYUFBYSw0REFDYixZQUFZOztBQXFCSjtJQURULE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQzs7Ozs4Q0FHeEM7MkZBUFUsV0FBVztrQkEvQnZCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFFBQVE7cUJBQ1QsYUFDVTt3QkFDVCxZQUFZLENBQUMsY0FBYyxFQUFFO3FCQUM5QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxrQkFDL0I7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGdCQUFnQjs0QkFDM0IsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO3lCQUMvRDtxQkFDRjs4QkFPUyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0RnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL3JvdXRlci1vdXRsZXQnO1xuaW1wb3J0IHsgTmF2aWdhdG9yT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvbmF2aWdhdG9yJztcbmltcG9ydCB7IE5nQXRvbWljQ29tcG9uZW50LCBFZmZlY3QgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUXVlcnlGZWF0dXJlIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2ZlYXR1cmVzL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5UGFnZVYyU3RvcmUsIEFjdGlvbklkIH0gZnJvbSAnLi9xdWVyeS12Mi5wYWdlLnN0b3JlJztcbmltcG9ydCB7IExpc3RPcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvbGlzdCc7XG5pbXBvcnQgeyBUYWJsZU9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BhZ2VzLXF1ZXJ5LXYyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck91dGxldEZyYW1lLFxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE5hdmlnYXRvck9yZ2FuaXNtU3RvcmUsXG4gICAgVGFibGVPcmdhbmlzbSxcbiAgICBMaXN0T3JnYW5pc20sXG4gICAgSnNvblBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFF1ZXJ5RmVhdHVyZS5wcm92aWRlRGVmYXVsdCgpLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktdjIucGFnZS5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3F1ZXJ5LXYyLnBhZ2Uuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogUXVlcnlQYWdlVjJTdG9yZSxcbiAgICAgIGlucHV0czogWydxdWVyeScsICduYXZFbmRBY3Rpb25zJywgJ2NvbHVtbk5hbWVzJywgJ3ByZXNlbnRlciddXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5UGFnZVYyIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoUXVlcnlQYWdlVjJTdG9yZSk7XG5cbiAgQEVmZmVjdChMaXN0T3JnYW5pc20uQWN0aW9uSWQuQ0xJQ0tfSVRFTSlcbiAgcHJvdGVjdGVkIG9uSXRlbUNsaWNrKGl0ZW06IGFueSkge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuQ0xJQ0tfSVRFTSwgcGF5bG9hZDogaXRlbSB9KTtcbiAgfVxufVxuIiwiPGZyYW1lcy1yb3V0ZXItb3V0bGV0PlxuICA8b3JnYW5pc21zLW5hdmlnYXRvclxuICAgIGluamVjdGFibGVcbiAgICBbZW5kQWN0aW9uc109XCJzdG9yZS5uYXZFbmRBY3Rpb25zKClcIlxuICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3sgc3RvcmUudGl0bGUoKSB9fTwvc3Bhbj5cbiAgPC9vcmdhbmlzbXMtbmF2aWdhdG9yPlxuXG4gIDxkaXYgY2xhc3M9XCJxdHAtY29udGFpbmVyXCI+XG4gICAgPCEtLSBRdWVyeSBQYW5lbCAtLT5cbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBjbGFzcz1cImNvbmZpZy1wYW5lbCBxdWVyeS1wYW5lbFwiXG4gICAgICBbZXhwYW5kZWRdPVwic3RvcmUucXVlcnlQYW5lbEV4cGFuZGVkKClcIlxuICAgICAgKG9wZW5lZCk9XCJzdG9yZS50b2dnbGVRdWVyeVBhbmVsKHRydWUpXCJcbiAgICAgIChjbG9zZWQpPVwic3RvcmUudG9nZ2xlUXVlcnlQYW5lbChmYWxzZSlcIj5cbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICA8bWF0LWljb24+Y29kZTwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+UXVlcnk8L3NwYW4+XG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LXR5cGVcIj57eyBzdG9yZS5xdWVyeVR5cGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImhlYWRlci1ydW4tYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzdG9yZS5yZWZyZXNoKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnBsYXlfYXJyb3c8L21hdC1pY29uPlJ1blxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwicXVlcnktY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicXVlcnktZm9ybVwiIFtmb3JtR3JvdXBdPVwic3RvcmUuZmVhdHVyZS5mb3JtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCIgZm9ybUdyb3VwTmFtZT1cImdyYXBocWxcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZW5kcG9pbnQtZmllbGRcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbmRwb2ludDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5kcG9pbnRcIiBwbGFjZWhvbGRlcj1cIkdyYXBoUUwgRW5kcG9pbnRcIj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IHF1ZXJ5LXJvd1wiIGZvcm1Hcm91cE5hbWU9XCJncmFwaHFsXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInF1ZXJ5LWZpZWxkXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+UXVlcnk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInF1ZXJ5XCIgcm93cz1cIjEyXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkdyYXBoUUwgUXVlcnkgb3IgU3Vic2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IHZhcmlhYmxlcy1yb3dcIiBmb3JtR3JvdXBOYW1lPVwiZ3JhcGhxbFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ2YXJpYWJsZXMtZmllbGRcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WYXJpYWJsZXMgKEpTT04pPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ2YXJpYWJsZXNKc29uXCIgcm93cz1cIjNcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSd7XCJsaW1pdFwiOiAyNSwgXCJvZmZzZXRcIjogMH0nPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJoZWFkZXJzLWZpZWxkXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+SGVhZGVycyAoSlNPTik8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImhlYWRlcnNKc29uXCIgcm93cz1cIjNcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSd7XCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJ9Jz48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG5cbiAgICA8IS0tIFRyYW5zZm9ybWVyIFBhbmVsIC0tPlxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwiY29uZmlnLXBhbmVsIHRyYW5zZm9ybWVyLXBhbmVsXCJcbiAgICAgIFtleHBhbmRlZF09XCJzdG9yZS50cmFuc2Zvcm1lclBhbmVsRXhwYW5kZWQoKVwiXG4gICAgICAob3BlbmVkKT1cInN0b3JlLnRvZ2dsZVRyYW5zZm9ybWVyUGFuZWwodHJ1ZSlcIlxuICAgICAgKGNsb3NlZCk9XCJzdG9yZS50b2dnbGVUcmFuc2Zvcm1lclBhbmVsKGZhbHNlKVwiPlxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgIDxtYXQtaWNvbj50cmFuc2Zvcm08L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuPlRyYW5zZm9ybWVyPC9zcGFuPlxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbiBjbGFzcz1cImhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJoZWFkZXItcnVuLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwic3RvcmUucmVmcmVzaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5wbGF5X2Fycm93PC9tYXQtaWNvbj5SdW5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZm9ybWVyLWNvbnRlbnRcIiBbZm9ybUdyb3VwXT1cInN0b3JlLmZlYXR1cmUuZm9ybVwiPlxuICAgICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJncmFwaHFsXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ0cmFuc2Zvcm1lci1maWVsZFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5UcmFuc2Zvcm1lciAoVHlwZVNjcmlwdCk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0cmFuc2Zvcm1lclRzXCIgcm93cz1cIjEwXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJjb25zdCB0cmFuc2Zvcm1lciA9IChkYXRhKSA9PiBkYXRhO1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG5cbiAgICA8IS0tIFByZXNlbnRlciBQYW5lbCAtLT5cbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBjbGFzcz1cImNvbmZpZy1wYW5lbCBwcmVzZW50ZXItcGFuZWxcIlxuICAgICAgW2V4cGFuZGVkXT1cInN0b3JlLnByZXNlbnRlclBhbmVsRXhwYW5kZWQoKVwiXG4gICAgICAob3BlbmVkKT1cInN0b3JlLnRvZ2dsZVByZXNlbnRlclBhbmVsKHRydWUpXCJcbiAgICAgIChjbG9zZWQpPVwic3RvcmUudG9nZ2xlUHJlc2VudGVyUGFuZWwoZmFsc2UpXCI+XG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgPG1hdC1pY29uPnRhYmxlX2NoYXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3Bhbj5QcmVzZW50ZXI8L3NwYW4+XG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHN0b3JlLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuPnt7IHN0b3JlLml0ZW1Db3VudCgpIH19IOS7tjwvc3Bhbj5cbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInByZXNlbnRlci1jb250ZW50XCI+XG4gICAgICAgIEBzd2l0Y2ggKHN0b3JlLnByZXNlbnRlcigpKSB7XG4gICAgICAgICAgQGNhc2UgKCdsaXN0Jykge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1saXN0XG4gICAgICAgICAgICAgIFtpdGVtc109XCJzdG9yZS5pdGVtcygpXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxvcmdhbmlzbXMtdGFibGVcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cInN0b3JlLml0ZW1zKClcIlxuICAgICAgICAgICAgICBbZm9ybV09XCJzdG9yZS50YWJsZUZvcm0oKVwiXG4gICAgICAgICAgICAgIFtjb2x1bW5Gb3JtRmllbGRNYXBdPVwic3RvcmUuY29sdW1uRm9ybUZpZWxkTWFwKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgPC9kaXY+XG48L2ZyYW1lcy1yb3V0ZXItb3V0bGV0PlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtcGFnZXMtcXVlcnktdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9xdWVyeS12Mi94eG1hY2hpbmEtY29tcG9uZW50cy1wYWdlcy1xdWVyeS12Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1.QueryPageV2Store"],"mappings":"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"}
@@ -690,7 +690,7 @@ class QueryPage extends NgAtomicComponent {
690
690
  <groups-query-form dashboard (action)="dispatch($event)" />
691
691
  </templates-index>
692
692
  </frames-router-outlet>
693
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-5VAK: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-5VAK: var(--page-width-lv3);--primary-color-SCOPED-IN-query-5VAK: var(--primary-color);--on-primary-color-SCOPED-IN-query-5VAK: var(--on-primary-color);--surface-color-SCOPED-IN-query-5VAK: var(--surface-color);--on-surface-color-SCOPED-IN-query-5VAK: var(--on-surface-color);--on-background-color-SCOPED-IN-query-5VAK: var(--on-background-color);--background-color-SCOPED-IN-query-5VAK: var(--background-color);--navigator-background-color-SCOPED-IN-query-5VAK: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-5VAK: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-5VAK: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-5VAK: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-5VAK: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-5VAK);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-5VAK);--surface-color: var(--surface-color-SCOPED-IN-query-5VAK);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-5VAK);--background-color: var(--background-color-SCOPED-IN-query-5VAK);--on-background-color: var(--on-background-color-SCOPED-IN-query-5VAK);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-5VAK);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-5VAK);--table-background-color: var(--table-background-color-SCOPED-IN-query-5VAK);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-5VAK);--is-debug: var(--is-debug-SCOPED-IN-query-5VAK)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-5VAK) * 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 }); }
693
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-htyp: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-htyp: var(--page-width-lv3);--primary-color-SCOPED-IN-query-htyp: var(--primary-color);--on-primary-color-SCOPED-IN-query-htyp: var(--on-primary-color);--surface-color-SCOPED-IN-query-htyp: var(--surface-color);--on-surface-color-SCOPED-IN-query-htyp: var(--on-surface-color);--on-background-color-SCOPED-IN-query-htyp: var(--on-background-color);--background-color-SCOPED-IN-query-htyp: var(--background-color);--navigator-background-color-SCOPED-IN-query-htyp: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-htyp: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-htyp: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-htyp: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-htyp: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-htyp);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-htyp);--surface-color: var(--surface-color-SCOPED-IN-query-htyp);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-htyp);--background-color: var(--background-color-SCOPED-IN-query-htyp);--on-background-color: var(--on-background-color-SCOPED-IN-query-htyp);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-htyp);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-htyp);--table-background-color: var(--table-background-color-SCOPED-IN-query-htyp);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-htyp);--is-debug: var(--is-debug-SCOPED-IN-query-htyp)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-htyp) * 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 }); }
694
694
  }
695
695
  __decorate([
696
696
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -771,7 +771,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
771
771
  'pageSizeOptions'
772
772
  ]
773
773
  },
774
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-5VAK: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-5VAK: var(--page-width-lv3);--primary-color-SCOPED-IN-query-5VAK: var(--primary-color);--on-primary-color-SCOPED-IN-query-5VAK: var(--on-primary-color);--surface-color-SCOPED-IN-query-5VAK: var(--surface-color);--on-surface-color-SCOPED-IN-query-5VAK: var(--on-surface-color);--on-background-color-SCOPED-IN-query-5VAK: var(--on-background-color);--background-color-SCOPED-IN-query-5VAK: var(--background-color);--navigator-background-color-SCOPED-IN-query-5VAK: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-5VAK: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-5VAK: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-5VAK: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-5VAK: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-5VAK);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-5VAK);--surface-color: var(--surface-color-SCOPED-IN-query-5VAK);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-5VAK);--background-color: var(--background-color-SCOPED-IN-query-5VAK);--on-background-color: var(--on-background-color-SCOPED-IN-query-5VAK);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-5VAK);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-5VAK);--table-background-color: var(--table-background-color-SCOPED-IN-query-5VAK);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-5VAK);--is-debug: var(--is-debug-SCOPED-IN-query-5VAK)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-5VAK) * 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"] }]
774
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-htyp: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-htyp: var(--page-width-lv3);--primary-color-SCOPED-IN-query-htyp: var(--primary-color);--on-primary-color-SCOPED-IN-query-htyp: var(--on-primary-color);--surface-color-SCOPED-IN-query-htyp: var(--surface-color);--on-surface-color-SCOPED-IN-query-htyp: var(--on-surface-color);--on-background-color-SCOPED-IN-query-htyp: var(--on-background-color);--background-color-SCOPED-IN-query-htyp: var(--background-color);--navigator-background-color-SCOPED-IN-query-htyp: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-htyp: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-htyp: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-htyp: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-htyp: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-htyp);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-htyp);--surface-color: var(--surface-color-SCOPED-IN-query-htyp);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-htyp);--background-color: var(--background-color-SCOPED-IN-query-htyp);--on-background-color: var(--on-background-color-SCOPED-IN-query-htyp);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-htyp);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-htyp);--table-background-color: var(--table-background-color-SCOPED-IN-query-htyp);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-htyp);--is-debug: var(--is-debug-SCOPED-IN-query-htyp)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-htyp) * 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"] }]
775
775
  }], ctorParameters: () => [], propDecorators: { back: [], navigateToIframe: [], expandPage: [], itemClick: [] } });
776
776
 
777
777
  /**