@xxmachina/components 19.0.0-preview.24 → 19.0.0-preview.26

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.
@@ -77,8 +77,8 @@ export declare class QueryFeature {
77
77
  }>;
78
78
  protected readonly result$: import("rxjs").Observable<Record<string, any>>;
79
79
  readonly result: import("@angular/core").Signal<Record<string, any[]>>;
80
- protected readonly variablesValue$: import("rxjs").Observable<Record<string, string>>;
81
- readonly variablesValue: import("@angular/core").Signal<Record<string, string> | {}>;
80
+ protected readonly variablesValue$: import("rxjs").Observable<Record<string, object>>;
81
+ readonly variablesValue: import("@angular/core").Signal<Record<string, object> | {}>;
82
82
  readonly variablesForm$: import("rxjs").Observable<FormGroup<any>>;
83
83
  readonly variablesForm: import("@angular/core").Signal<FormGroup<any>>;
84
84
  readonly variablesFormValue$: ReplaySubject<any>;
@@ -12,7 +12,7 @@ class WeeklyHeaderMolecule {
12
12
  <div class="day-container" *ngFor="let day of ['日', '月', '火', '水', '木', '金', '土']">
13
13
  <span>{{ day }}</span>
14
14
  </div>
15
- `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-opG2OktE: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-opG2OktE: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-opG2OktE)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
15
+ `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-T7yzrMSd: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-T7yzrMSd: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-T7yzrMSd)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: WeeklyHeaderMolecule, decorators: [{
18
18
  type: Component,
@@ -22,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
22
22
  <div class="day-container" *ngFor="let day of ['日', '月', '火', '水', '木', '金', '土']">
23
23
  <span>{{ day }}</span>
24
24
  </div>
25
- `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-opG2OktE: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-opG2OktE: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-opG2OktE)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
25
+ `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-T7yzrMSd: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-T7yzrMSd: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-T7yzrMSd)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
26
26
  }], ctorParameters: () => [] });
27
27
 
28
28
  /**
@@ -58,7 +58,7 @@ class CalendarSectionOrganism {
58
58
  ></molecules-daily-cell>
59
59
  </ng-container>
60
60
  </div>
61
- `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-nfxQvMNl: var(--row);--row-num: 0;--row-num-SCOPED-IN-nfxQvMNl: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-nfxQvMNl: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-nfxQvMNl: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-nfxQvMNl: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-nfxQvMNl);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-nfxQvMNl),var(--row-SCOPED-IN-nfxQvMNl));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-nfxQvMNl)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-nfxQvMNl);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
+ `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-k7gS9wsF: var(--row);--row-num: 0;--row-num-SCOPED-IN-k7gS9wsF: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-k7gS9wsF: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-k7gS9wsF: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-k7gS9wsF: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-k7gS9wsF);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-k7gS9wsF),var(--row-SCOPED-IN-k7gS9wsF));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-k7gS9wsF)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-k7gS9wsF);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CalendarSectionOrganism, decorators: [{
64
64
  type: Component,
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
92
92
  ></molecules-daily-cell>
93
93
  </ng-container>
94
94
  </div>
95
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-nfxQvMNl: var(--row);--row-num: 0;--row-num-SCOPED-IN-nfxQvMNl: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-nfxQvMNl: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-nfxQvMNl: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-nfxQvMNl: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-nfxQvMNl);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-nfxQvMNl),var(--row-SCOPED-IN-nfxQvMNl));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-nfxQvMNl)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-nfxQvMNl);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
95
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-k7gS9wsF: var(--row);--row-num: 0;--row-num-SCOPED-IN-k7gS9wsF: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-k7gS9wsF: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-k7gS9wsF: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-k7gS9wsF: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-k7gS9wsF);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-k7gS9wsF),var(--row-SCOPED-IN-k7gS9wsF));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-k7gS9wsF)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-k7gS9wsF);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
96
96
  }], propDecorators: { label: [{
97
97
  type: Input
98
98
  }], displayDays: [{
@@ -230,13 +230,14 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
230
230
  ...this.extractedFormFieldMap(),
231
231
  ...this.additionalFormFieldMap()
232
232
  })));
233
+ this.formFieldKeys = input(_computed(() => []));
233
234
  this.data = injectUnflattenRouteParam('data');
234
235
  this.formInvalid = derivedAsync(() => getInvalid$(this.form()));
235
236
  this.actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));
236
237
  CommandPageStore_1.Initializer.initializeStore(this);
237
238
  }
238
239
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
239
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
240
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: "formFieldKeys", publicName: "formFieldKeys", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
240
241
  };
241
242
  CommandPageStore = CommandPageStore_1 = __decorate([
242
243
  TokenizedType(),
@@ -267,6 +268,7 @@ class CommandPage extends NgAtomicComponent {
267
268
  [form]="store.form()"
268
269
  [style]="store.style()"
269
270
  [fieldMap]="store.formFieldMap()"
271
+ [fieldKeys]="store.formFieldKeys()"
270
272
  [title]="store.feature.title()"
271
273
  [navStartActions]="store.navStartActions()"
272
274
  [navEndActions]="store.navEndActions()"
@@ -279,7 +281,7 @@ class CommandPage extends NgAtomicComponent {
279
281
  </frames-tabs>
280
282
  </templates-form>
281
283
  </frames-router-outlet>
282
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-YGmY: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-YGmY)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["keyActions"] }] }); }
284
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-NHlK: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-NHlK)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["keyActions"] }] }); }
283
285
  }
284
286
  __decorate([
285
287
  Effect(FormTemplateStore.ActionId.FILE_SELECTED),
@@ -304,6 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
304
306
  [form]="store.form()"
305
307
  [style]="store.style()"
306
308
  [fieldMap]="store.formFieldMap()"
309
+ [fieldKeys]="store.formFieldKeys()"
307
310
  [title]="store.feature.title()"
308
311
  [navStartActions]="store.navStartActions()"
309
312
  [navEndActions]="store.navEndActions()"
@@ -328,7 +331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
328
331
  'formFieldMap',
329
332
  ]
330
333
  },
331
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-YGmY: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-YGmY)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
334
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-NHlK: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-NHlK)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
332
335
  }], propDecorators: { onFileSelected: [] } });
333
336
 
334
337
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-pages-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/command/command.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/command/xxmachina-components-pages-command.ts"],"sourcesContent":["import { Component, computed, Directive, effect, inject, input, Provider } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, Action, applyToInput, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay } from 'rxjs';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeConfig } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { merge, pick } from 'lodash-es';\nimport { injectOne$ } from '@ng-atomic/common/stores/entities';\nimport { MachinaDevService } from '@xxmachina/components/services/debug';\nimport { EndpointHelper } from '@xxmachina/common/domain/models';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CommandFeature } from '@xxmachina/components/features/command';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\nimport { CommandFormGroup } from '@xxmachina/components/groups/command-form';\nimport { QueryFeature } from '@xxmachina/components/features/query';\n\nenum ActionId {\n EXECUTE_COMMAND = 'execute-command',\n FILE_SELECTED = 'file-selected',\n}\n\nfunction buildFormData(form: FormGroup | FormArray, formData: FormData = new FormData(), parentKey = ''): FormData {\n Object.keys(form.controls).forEach(key => {\n const control = form.get(key);\n const formKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (control instanceof FormGroup || control instanceof FormArray) {\n // 子のFormGroupやFormArrayを再帰的に処理\n buildFormData(control, formData, formKey);\n } else if (control instanceof FormControl) {\n // フォームの値を追加\n const value = control.value;\n if (value !== null && value !== undefined) {\n formData.append(formKey, value);\n }\n }\n });\n\n return formData;\n}\n\nfunction buildData(form: AbstractControl, contentType: string) {\n if (contentType === 'multipart/form-data') {\n return buildFormData(form as FormGroup);\n } else {\n return form.getRawValue();\n }\n}\n\nexport function buildActions(hasPermission: boolean, invalid: boolean): Action[] {\n return hasPermission\n ? [{ id: ActionId.EXECUTE_COMMAND, name: '実行', disabled: invalid }]\n : [{ id: ActionId.EXECUTE_COMMAND, name: '実行権限がありません', disabled: true }]\n}\n\n@TokenizedType()\n@Directive({ standalone: true })\nexport class CommandPageStore extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n const dev = inject(MachinaDevService);\n return () => ({\n style: {\n width: 'var(--page-width-lv1)',\n },\n baseUrls: [] as string[],\n command: <Command>{\n id: '1',\n webApiRequest: {\n serverUrl: null,\n apiJsonUrl: null,\n path: '/users',\n method: 'GET',\n bodySchema: null,\n },\n },\n navEndActions: <Action[]>[],\n additionalFormFieldMap: <FormFieldMap>(dev.isDevMode() ? {} : {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }),\n });\n }, ['@xxmachina/components', 'pages', 'command']);\n static readonly Initializer = makeInitializerConfig(CommandPageStore);\n\n static provideDefault(): Provider[] {\n return [\n CommandPageStore.Config.provide(),\n CommandPageStore.provideDefaultInitializer(),\n CommandPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideCustom(): Provider[] {\n return [\n CommandPageStore.provideDefault(),\n CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n ];\n }\n\n static provideDefaultInitializer(): Provider[] {\n return [\n CommandPageStore.providePatchFormFromRouteParamInitializer(),\n CommandPageStore.providePatchCommandFormValueFromCommandInitializer(),\n CommandPageStore.provideInitialFormValueFromQueryResult()\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n CommandPageStore.provideExecuteCommandEffect(),\n CommandPageStore.provideBackEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n\n static provideCommandFromRouteParamInitializer(paramName = 'commandId'): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteParam(paramName);\n const service = inject(CommandService);\n effect(() => {\n applyToInput(store, 'command', service.getCommand(commandId()));\n });\n });\n }\n\n static provideCommandIdFromRouteDataInitializer(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteData<string>('commandId');\n const service = inject(CommandService);\n effect(() => {\n applyToInput(store, 'command', service.getCommand(commandId()));\n });\n });\n }\n\n static providePatchFormFromRouteParamInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => store.form().patchValue(store.data()));\n }),\n ]\n }\n\n static providePatchCommandFormValueFromCommandInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => {\n if (!store.command()) return;\n store.feature.commandForm().patchValue({...store.command()});\n });\n })\n ];\n }\n\n static provideQueryIdFromRouteParam(key = 'queryId'): Provider {\n return CommandPageStore.Initializer.provide(() => {\n const feature = inject(QueryFeature);\n const queryId$ = injectRouteParam$(key);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectOne$(Query, { id: queryId$ });\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({query, params}) => !!query && !!params),\n map(({query, params}) => QueryHelper.setup(query, params)),\n tap((query) => console.debug('[CommandPage] query:', query)),\n shareReplay(1),\n ));\n effect(() => {\n console.debug('[CommandPage] setupQuery:', setupQuery());\n feature.form.patchValue(setupQuery());\n });\n });\n }\n\n static provideQueryFromRouteData(key = 'query'): Provider {\n return CommandPageStore.Initializer.provide(() => {\n const feature = inject(QueryFeature);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectRouteData$<Query>(key);\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({query, params}) => !!query && !!params),\n map(({query, params}) => QueryHelper.setup(query, params)),\n tap((query) => console.debug('[CommandPage] query:', query)),\n shareReplay(1),\n ));\n effect(() => { feature.form.patchValue(setupQuery()); });\n });\n }\n \n static provideInitialFormValueFromQueryResult(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const feature = inject(QueryFeature);\n const data = computed(() => QueryHelper.getResult(feature.result()));\n effect(() => { store.form().patchValue(data()); });\n feature.refresh();\n });\n }\n\n static provideExecuteCommandEffect(): Provider {\n return provideEffect(ActionId.EXECUTE_COMMAND, () => {\n const store = inject(CommandPageStore);\n const app = inject(AppService);\n const paramKeys = computed(() => EndpointHelper.extract(store.feature.path()));\n const resolvedParams = computed(() => pick(store.data(), paramKeys()));\n\n return () => {\n const resolvedEndpoint = EndpointHelper.resolve(store.feature.path(), resolvedParams());\n const data = buildData(store.form(), store.command()?.webApiRequest?.contentType);\n const command = merge(\n store.command(),\n store.feature.commandForm().getRawValue(),\n {webApiRequest: {path: resolvedEndpoint}},\n );\n app.loading.await(() => {\n return store.feature.execute(command, data).then(() => {\n app.snackBar.open('成功しました。');\n history.back();\n }).catch((error) => {\n console.error(error);\n app.snackBar.openError(error);\n });\n });\n }\n });\n }\n\n static provideBackEffect(): Provider {\n return provideEffect(FormTemplateStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n\n readonly feature = inject(CommandFeature);\n readonly config = CommandPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly navStartActions = injectNavStartActionsV2();\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly command = input(_computed(() => this.config().command));\n readonly form = input(_computed(() => this.feature.form()));\n readonly extractedFormFieldMap = input(_computed(() => this.feature.extractedFormFieldMap()));\n readonly additionalFormFieldMap = input(_computed(() => this.config().additionalFormFieldMap));\n readonly formFieldMap = input(_computed<FormFieldMap>(() => ({\n ...this.extractedFormFieldMap(),\n ...this.additionalFormFieldMap()\n })));\n readonly data = injectUnflattenRouteParam('data');\n protected readonly formInvalid = derivedAsync(() => getInvalid$(this.form()));\n readonly actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));\n\n constructor() {\n super();\n CommandPageStore.Initializer.initializeStore(this);\n }\n}\n\n@Component({\n selector: 'pages-command',\n imports: [\n RouterOutletFrame,\n FormTemplate,\n TabsFrame,\n CommandFormGroup,\n QueryFormGroup\n ],\n providers: [\n CommandFeature,\n QueryFeature,\n ],\n template: `\n <frames-router-outlet>\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [title]=\"store.feature.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab><groups-command-form (action)=\"dispatch($event)\"/></ng-template>\n <ng-template #tab><groups-query-form (action)=\"dispatch($event)\"/></ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `,\n styleUrls: ['./command.page.scss'],\n hostDirectives: [\n {\n directive: CommandPageStore,\n inputs: [\n 'style',\n 'navEndActions',\n 'command',\n 'form',\n 'additionalFormFieldMap',\n 'formFieldMap',\n ]\n },\n ]\n})\nexport class CommandPage extends NgAtomicComponent {\n protected readonly store = inject(CommandPageStore);\n readonly route = inject(ActivatedRoute);\n readonly app = inject(AppService);\n readonly parentRouterOutletFrame = inject(RouterOutletFrame);\n\n @Effect(FormTemplateStore.ActionId.FILE_SELECTED)\n protected onFileSelected(payload) {\n this.dispatch({id: ActionId.FILE_SELECTED, payload});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-pages-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/command/command.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/command/xxmachina-components-pages-command.ts"],"sourcesContent":["import { Component, computed, Directive, effect, inject, input, Provider } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, Action, applyToInput, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay } from 'rxjs';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeConfig } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { merge, pick } from 'lodash-es';\nimport { injectOne$ } from '@ng-atomic/common/stores/entities';\nimport { MachinaDevService } from '@xxmachina/components/services/debug';\nimport { EndpointHelper } from '@xxmachina/common/domain/models';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CommandFeature } from '@xxmachina/components/features/command';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\nimport { CommandFormGroup } from '@xxmachina/components/groups/command-form';\nimport { QueryFeature } from '@xxmachina/components/features/query';\n\nenum ActionId {\n EXECUTE_COMMAND = 'execute-command',\n FILE_SELECTED = 'file-selected',\n}\n\nfunction buildFormData(form: FormGroup | FormArray, formData: FormData = new FormData(), parentKey = ''): FormData {\n Object.keys(form.controls).forEach(key => {\n const control = form.get(key);\n const formKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (control instanceof FormGroup || control instanceof FormArray) {\n // 子のFormGroupやFormArrayを再帰的に処理\n buildFormData(control, formData, formKey);\n } else if (control instanceof FormControl) {\n // フォームの値を追加\n const value = control.value;\n if (value !== null && value !== undefined) {\n formData.append(formKey, value);\n }\n }\n });\n\n return formData;\n}\n\nfunction buildData(form: AbstractControl, contentType: string) {\n if (contentType === 'multipart/form-data') {\n return buildFormData(form as FormGroup);\n } else {\n return form.getRawValue();\n }\n}\n\nexport function buildActions(hasPermission: boolean, invalid: boolean): Action[] {\n return hasPermission\n ? [{ id: ActionId.EXECUTE_COMMAND, name: '実行', disabled: invalid }]\n : [{ id: ActionId.EXECUTE_COMMAND, name: '実行権限がありません', disabled: true }]\n}\n\n@TokenizedType()\n@Directive({ standalone: true })\nexport class CommandPageStore extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n const dev = inject(MachinaDevService);\n return () => ({\n style: {\n width: 'var(--page-width-lv1)',\n },\n baseUrls: [] as string[],\n command: <Command>{\n id: '1',\n webApiRequest: {\n serverUrl: null,\n apiJsonUrl: null,\n path: '/users',\n method: 'GET',\n bodySchema: null,\n },\n },\n navEndActions: <Action[]>[],\n additionalFormFieldMap: <FormFieldMap>(dev.isDevMode() ? {} : {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }),\n });\n }, ['@xxmachina/components', 'pages', 'command']);\n static readonly Initializer = makeInitializerConfig(CommandPageStore);\n\n static provideDefault(): Provider[] {\n return [\n CommandPageStore.Config.provide(),\n CommandPageStore.provideDefaultInitializer(),\n CommandPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideCustom(): Provider[] {\n return [\n CommandPageStore.provideDefault(),\n CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n ];\n }\n\n static provideDefaultInitializer(): Provider[] {\n return [\n CommandPageStore.providePatchFormFromRouteParamInitializer(),\n CommandPageStore.providePatchCommandFormValueFromCommandInitializer(),\n CommandPageStore.provideInitialFormValueFromQueryResult()\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n CommandPageStore.provideExecuteCommandEffect(),\n CommandPageStore.provideBackEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n\n static provideCommandFromRouteParamInitializer(paramName = 'commandId'): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteParam(paramName);\n const service = inject(CommandService);\n effect(() => {\n applyToInput(store, 'command', service.getCommand(commandId()));\n });\n });\n }\n\n static provideCommandIdFromRouteDataInitializer(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const commandId = injectRouteData<string>('commandId');\n const service = inject(CommandService);\n effect(() => {\n applyToInput(store, 'command', service.getCommand(commandId()));\n });\n });\n }\n\n static providePatchFormFromRouteParamInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => store.form().patchValue(store.data()));\n }),\n ]\n }\n\n static providePatchCommandFormValueFromCommandInitializer() {\n return [\n CommandPageStore.Initializer.provide(store => {\n effect(() => {\n if (!store.command()) return;\n store.feature.commandForm().patchValue({...store.command()});\n });\n })\n ];\n }\n\n static provideQueryIdFromRouteParam(key = 'queryId'): Provider {\n return CommandPageStore.Initializer.provide(() => {\n const feature = inject(QueryFeature);\n const queryId$ = injectRouteParam$(key);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectOne$(Query, { id: queryId$ });\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({query, params}) => !!query && !!params),\n map(({query, params}) => QueryHelper.setup(query, params)),\n tap((query) => console.debug('[CommandPage] query:', query)),\n shareReplay(1),\n ));\n effect(() => {\n console.debug('[CommandPage] setupQuery:', setupQuery());\n feature.form.patchValue(setupQuery());\n });\n });\n }\n\n static provideQueryFromRouteData(key = 'query'): Provider {\n return CommandPageStore.Initializer.provide(() => {\n const feature = inject(QueryFeature);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectRouteData$<Query>(key);\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(\n filter(({query, params}) => !!query && !!params),\n map(({query, params}) => QueryHelper.setup(query, params)),\n tap((query) => console.debug('[CommandPage] query:', query)),\n shareReplay(1),\n ));\n effect(() => { feature.form.patchValue(setupQuery()); });\n });\n }\n \n static provideInitialFormValueFromQueryResult(): Provider {\n return CommandPageStore.Initializer.provide((store) => {\n const feature = inject(QueryFeature);\n const data = computed(() => QueryHelper.getResult(feature.result()));\n effect(() => { store.form().patchValue(data()); });\n feature.refresh();\n });\n }\n\n static provideExecuteCommandEffect(): Provider {\n return provideEffect(ActionId.EXECUTE_COMMAND, () => {\n const store = inject(CommandPageStore);\n const app = inject(AppService);\n const paramKeys = computed(() => EndpointHelper.extract(store.feature.path()));\n const resolvedParams = computed(() => pick(store.data(), paramKeys()));\n\n return () => {\n const resolvedEndpoint = EndpointHelper.resolve(store.feature.path(), resolvedParams());\n const data = buildData(store.form(), store.command()?.webApiRequest?.contentType);\n const command = merge(\n store.command(),\n store.feature.commandForm().getRawValue(),\n {webApiRequest: {path: resolvedEndpoint}},\n );\n app.loading.await(() => {\n return store.feature.execute(command, data).then(() => {\n app.snackBar.open('成功しました。');\n history.back();\n }).catch((error) => {\n console.error(error);\n app.snackBar.openError(error);\n });\n });\n }\n });\n }\n\n static provideBackEffect(): Provider {\n return provideEffect(FormTemplateStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n\n readonly feature = inject(CommandFeature);\n readonly config = CommandPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly navStartActions = injectNavStartActionsV2();\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly command = input(_computed(() => this.config().command));\n readonly form = input(_computed(() => this.feature.form()));\n readonly extractedFormFieldMap = input(_computed(() => this.feature.extractedFormFieldMap()));\n readonly additionalFormFieldMap = input(_computed(() => this.config().additionalFormFieldMap));\n readonly formFieldMap = input(_computed<FormFieldMap>(() => ({\n ...this.extractedFormFieldMap(),\n ...this.additionalFormFieldMap()\n })));\n readonly formFieldKeys = input<string[]>(_computed(() => []));\n readonly data = injectUnflattenRouteParam('data');\n protected readonly formInvalid = derivedAsync(() => getInvalid$(this.form()));\n readonly actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));\n\n constructor() {\n super();\n CommandPageStore.Initializer.initializeStore(this);\n }\n}\n\n@Component({\n selector: 'pages-command',\n imports: [\n RouterOutletFrame,\n FormTemplate,\n TabsFrame,\n CommandFormGroup,\n QueryFormGroup\n ],\n providers: [\n CommandFeature,\n QueryFeature,\n ],\n template: `\n <frames-router-outlet>\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [title]=\"store.feature.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab><groups-command-form (action)=\"dispatch($event)\"/></ng-template>\n <ng-template #tab><groups-query-form (action)=\"dispatch($event)\"/></ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `,\n styleUrls: ['./command.page.scss'],\n hostDirectives: [\n {\n directive: CommandPageStore,\n inputs: [\n 'style',\n 'navEndActions',\n 'command',\n 'form',\n 'additionalFormFieldMap',\n 'formFieldMap',\n ]\n },\n ]\n})\nexport class CommandPage extends NgAtomicComponent {\n protected readonly store = inject(CommandPageStore);\n readonly route = inject(ActivatedRoute);\n readonly app = inject(AppService);\n readonly parentRouterOutletFrame = inject(RouterOutletFrame);\n\n @Effect(FormTemplateStore.ActionId.FILE_SELECTED)\n protected onFileSelected(payload) {\n this.dispatch({id: ActionId.FILE_SELECTED, payload});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -403,7 +403,7 @@ class QueryPage extends NgAtomicComponent {
403
403
  <groups-query-form dashboard (action)="dispatch($event)" />
404
404
  </templates-index>
405
405
  </frames-router-outlet>
406
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-klR1: var(--page-width-lv1)}:host templates-index{--first-content-height: 300px;padding-left:0;box-sizing:border-box;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"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
406
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-ojgB: var(--page-width-lv1)}:host templates-index{--first-content-height: 300px;padding-left:0;box-sizing:border-box;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: ["keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
407
407
  }
408
408
  __decorate([
409
409
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -473,7 +473,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
473
473
  'variablesFormFieldMap',
474
474
  ]
475
475
  },
476
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-klR1: var(--page-width-lv1)}:host templates-index{--first-content-height: 300px;padding-left:0;box-sizing:border-box;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"] }]
476
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-ojgB: var(--page-width-lv1)}:host templates-index{--first-content-height: 300px;padding-left:0;box-sizing:border-box;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"] }]
477
477
  }], ctorParameters: () => [], propDecorators: { back: [], navigateToIframe: [], expandPage: [] } });
478
478
 
479
479
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-pages-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/query/query.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/query/xxmachina-components-pages-query.ts"],"sourcesContent":["import { Component, inject, computed, viewChild, Directive, Injectable, signal, input, ChangeDetectionStrategy, effect, Provider, EventEmitter } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { IndexTemplate, IndexTemplateStore, ItemsMap } from '@ng-atomic/components/templates/_index';\nimport { _computed, Action, Actions, applyToInput, computeFake, createAction, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType, updateInput } from '@ng-atomic/core';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { buildColumns, injectIndexFormBuilder } from '@ng-atomic/components/organisms/table';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { distinctUntilChanged, debounceTime } from 'rxjs';\nimport { getRawValue$, injectHasNext, injectRouteData, injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { ActivatedRoute } from '@angular/router';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandActionPayload } from '@xxmachina/common/domain/builder';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { injectOne } from '@ng-atomic/common/stores/entities';\nimport { injectNavStartActionsV2, makeConfig } from '@ng-atomic/common/services/ui';\nimport { flatten } from 'flat';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { isEqual, merge, omitBy } from 'lodash-es';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { QueryService } from '@xxmachina/components/services/query';\nimport { NgAtomicColumnMoleculeStore } from '@ng-atomic/common/directives/molecules/column';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\n\nexport enum ActionId {\n NAVIGATE_TO_IFRAME = 'NAVIGATE TO IFRAME',\n TOGGLE_PAGE = '全体表示',\n TOGGLE_VARIABLES_FORM = '変数フォームの表示切替',\n}\n\nexport function buildItemsMap(\n itemsResult: Record<string, any[]> = {},\n itemsLengthResult: Record<string, number> = {},\n) {\n return Object.entries(itemsResult).reduce((acc, [key, items]) => ({\n ...acc,\n [key]: {\n items,\n itemsLength: itemsLengthResult[key] ?? items.length,\n }\n }), {});\n}\n\n@Injectable({ providedIn: 'root' })\nexport class QueryActionReducer {\n readonly action = signal<Action>(null);\n readonly action$ = toObservable(this.action);\n\n dispatch(action: Action) {\n this.action.set(action);\n }\n}\n\n@TokenizedType()\n@Directive({standalone: true})\nexport class QueryPageStore extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n return () => ({\n style: <any>{\n width: 'var(--page-width-lv2)',\n },\n titleEditable: true,\n childrenKey: <string>null,\n navEndActions: [],\n additionalColumns: (items: object[]) => [] as string[],\n });\n }, ['@xxmachina/components', 'pages', 'query']);\n\n static readonly Initializer = makeInitializerConfig(QueryPageStore);\n\n static provideDefault(): Provider[] {\n return [\n QueryPageStore.Config.provide(),\n QueryPageStore.provideDefaultInitializes(),\n QueryPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideForCustomPage(): Provider[] {\n return [\n\t\t\tQueryPageStore.provideDefault(),\n\t\t\tQueryPageStore.provideNonEditableConfig(),\n QueryPageStore.provideQueryFromRouteDataQueryIdInitializer(),\n\t\t\tQueryPageStore.provideAutoTogglePageInitializer(),\n\t\t\tQueryPageStore.provideItemActionsFromRouteDataInitializer(),\n ];\n }\n\n static provideNonEditableConfig(): Provider {\n return QueryPageStore.Config.provide(() => {\n return config => ({\n ...config,\n titleEditable: false,\n style: {\n ...config.style,\n width: `var(--page-width-lv3)`,\n '--first-content-height': '0px'\n },\n });\n });\n }\n\n static provideDefaultInitializes(): Provider[] {\n return [\n QueryPageStore.provideAutoTogglePageInitializer(),\n QueryPageStore.provideVariablesFormValueFromMatrixParamsInitializer(),\n ];\n }\n\n static provideNavEndActionsInitializers(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n effect(() => {\n const icon = store.style()?.width === 'var(--page-width-lv3)' ? 'close_fullscreen' : 'open_in_full';\n const navEndActions = [\n createAction(QueryFeature.ActionId.クエリの実行, null, {icon: 'play_arrow'}).create(),\n store.variablesFormDisplayed() ? createAction(ActionId.TOGGLE_PAGE, null, {icon}).create() : null,\n createAction(QueryFeature.ActionId.クエリの更新, null, {icon: 'save'}).create(),\n ].filter(Boolean);\n applyToInput(store, 'navEndActions', navEndActions);\n });\n }),\n QueryPageStore.provideVariablesFromRouteParamDataInitializer(),\n ];\n }\n\n static provideVariablesFromRouteParamDataInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide(store => {\n const data = injectUnflattenRouteParam('data');\n effect(() => {\n const variables = store.variablesFormValue();\n const merged = merge(variables, data());\n store.feature.form.patchValue({\n graphql: {\n variablesJson: JSON.stringify(merged, null, 2),\n }\n })\n });\n }),\n ];\n }\n\n static provideAutoTogglePageInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n const hasNext = injectHasNext();\n let style = store.style();\n effect(() => style = store.style());\n\n store.routerOutletFrameEvent.pipe(\n distinctUntilChanged(),\n debounceTime(2),\n ).subscribe((event) => {\n if (event === 'deactivated') {\n const _style = computeFake(style);\n applyToInput(store, 'style', { ..._style, 'padding-left': 0 });\n }\n });\n effect(() => {\n if (hasNext()) {\n setTimeout(() => {\n applyToInput(store, 'style', { ...style, 'padding-left': 'var(--page-width-lv1)' });\n }, 300);\n }\n });\n }),\n ];\n }\n\n static provideVariablesFormValueFromMatrixParamsInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n\t\t\t\tconst data = injectUnflattenRouteParam('data');\n\t\t\t\teffect(() => {\n\t\t\t\t\tstore.variablesForm()?.patchValue({...data()});\n\t\t\t\t});\n\t\t\t}),\n ]\n }\n\n static provideQueryFromRouteDataQueryIdInitializer(key = 'queryId'): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n const query = injectOne(Query, { id: injectRouteData<string>(key) });\n const _query = computed(() => {\n return query();\n }, {equal: (pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)});\n\n effect(() => {\n console.debug('[QueryPageStore] query:', _query());\n applyToInput(store, 'query', _query());\n });\n }),\n ];\n }\n\n static provideItemActionsFromRouteDataInitializer(key = 'itemActionsCommandIds'): Provider {\n return QueryPageStore.Initializer.provide((store) => {\n const idOrObjectArray = injectRouteData<string[] | {id: string, options: {queryId}}[]>(key);\n const service = inject(CommandService);\n const itemActions = (item) => {\n const params = (idOrObjectArray() ?? []).map((idOrObject) => ({\n id: typeof idOrObject === 'string' ? idOrObject : idOrObject.id,\n options: typeof idOrObject === 'string' ? {} : idOrObject.options,\n }));\n const builder = service.getActionBuilder().setItem(item);\n const actions = params.map(param => builder.setOptions(param.options).buildAction(param.id));\n console.debug('actions:', actions);\n return actions;\n }\n applyToInput(store, 'itemActions', itemActions);\n });\n }\n\n static provideNavEndActionsFromRouteDataInitializer(key = 'navEndActionsCommandIds'): Provider {\n return QueryPageStore.Initializer.provide((store) => {\n const ids = injectRouteData<(string | {id: string, auto: boolean})[]>(key);\n const queryId = injectRouteData<string>('navEndActionsCommandQueryId');\n const service = inject(CommandService);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext()\n \n effect(() => {\n const actions = service.getActionBuilder().setFilterIds(ids()).setOptions({queryId: queryId()}).buildActions(undefined, { relativeTo: route, replaceUrl: hasNext() });\n applyToInput(store, 'navEndActions', [\n store.variablesFormDisplayed() ? { id: ActionId.TOGGLE_VARIABLES_FORM, icon : store.navMode() === 'collapsed' ? 'expand_less' : 'expand_more' } : null,\n // TODO(@NozomuMiyamoto): 変更\n actions?.length ? {\n id: 'open_command_menu',\n icon: 'more_vert',\n children: [...actions],\n } : null,\n ].filter(Boolean));\n });\n });\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryPageStore.provideCommandNavigateEffect(),\n QueryPageStore.provideNavModeToggleEffect(),\n QueryPageStore.provideChangeWidthEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n\n static provideCommandNavigateEffect(): Provider[] {\n return [\n provideEffect(CommandService.ActionId.NAVIGATE_TO_COMMAND_PAGE, () => {\n const app = inject(AppService);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return (payload: CommandActionPayload<any>) => {\n const flat = flatten<object, object>({data: {id: payload.body?.id}, queryId: payload?.options?.queryId});\n const _flat = omitBy(flat, (value) => value === undefined);\n app.router.navigate(['commands', {skip: true}, payload.command.id, _flat], {\n relativeTo: route,\n replaceUrl: hasNext(),\n });\n }\n }),\n provideEffect(CommandService.ActionId.EXECUTE_COMMAND, () => {\n const commandService = inject(CommandService);\n return async (payload: CommandActionPayload<any>) => {\n const app = inject(AppService);\n const obj = omitBy(payload.body, (value) => typeof value === undefined);\n const command = inject(CommandService).getCommand(payload.command.id);\n console.debug('[QueryPage] payload:', payload);\n if (payload.options?.confirm && !(await payload.options?.confirm())) {\n app.snackBar.open('キャンセルされました。');\n return;\n }\n app.loading.await(() => {\n return commandService.execute(command, obj).then(() => {\n app.snackBar.open('成功しました。');\n }).catch((error) => {\n console.error(error);\n app.snackBar.open(`エラー: ${error.message}`);\n });\n });\n };\n }),\n ]\n }\n\n static provideNavModeToggleEffect(): Provider {\n return provideEffect(ActionId.TOGGLE_VARIABLES_FORM, () => {\n const store = inject(QueryPageStore);\n return () => {\n store.navMode.set(store.navMode() === 'collapsed' ? 'expanded' : 'collapsed');\n };\n });\n }\n\n static provideChangeWidthEffect(): Provider {\n return provideEffect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH, () => {\n return (payload: {index: number, width: number}) => {\n const store = inject(QueryPageStore);\n const columns = store.form().value.columns;\n const name = columns.ids[payload.index];\n const column = columns.map[name];\n store.form().patchValue({\n columns: { ...columns, map: { ...columns.map, [name]: { ...column, width: payload.width } } }\n })\n };\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly config = QueryPageStore.Config.inject();\n readonly feature = inject(QueryFeature);\n readonly indexFormBuilder = injectIndexFormBuilder();\n\n readonly navMode = signal<'expanded' | 'collapsed'>('collapsed');\n readonly style = input(_computed(() => this.config().style));\n readonly query = input<Query>(null);\n\n readonly navStartActions = injectNavStartActionsV2();\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly title = input<string>(_computed(() => this.query()?.title));\n readonly titleEditable = input<boolean>(_computed(() => this.config().titleEditable));\n readonly itemsMap = input<ItemsMap<any>>(_computed(() => buildItemsMap(this.feature.result() as any ?? {})));\n readonly items = computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.items ?? []);\n readonly itemsLength = input(_computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.itemsLength ?? 0));\n readonly childrenKey = input<string>(_computed(() => this.config().childrenKey));\n readonly additionalColumns = input(_computed(() => this.config().additionalColumns))\n readonly additionalColumnNames = input(_computed(() => this.additionalColumns()(this.items())));\n readonly extractedColumnNames = input(_computed(() => QueryHelper.extractColumnNames(this.items(), this.childrenKey())));\n readonly columnNames = input(_computed(() => [...this.extractedColumnNames(), ...this.additionalColumnNames()]));\n readonly sticky = input(_computed(() => ({ stickyStart: 2, stickyEnd: 1 })));\n readonly form = input(_computed(() => this.indexFormBuilder.build({\n columns: buildColumns([...this.columnNames(), '__actions'], this.sticky()),\n })));\n readonly itemActions = input<Actions>((item: any) => []);\n readonly tableTreeControl = new FlatTreeControl<any>(n => n.level, n => n.isExpandable, {trackBy: (n: any) => n.id});\n readonly variablesForm = input(_computed<FormGroup>(() => this.feature.variablesForm() ?? new FormGroup({})));\n readonly variablesFormFieldMap = input(_computed(() => ({} as FormFieldMap)));\n readonly variablesFormValue = derivedAsync(() => getRawValue$(this.variablesForm()), { equal: isEqual });\n readonly variablesFormValue$ = toObservable(this.variablesFormValue);\n readonly variablesFormDisplayed = input(_computed(() => Object.keys(this.feature.variablesValue())?.length > 0));\n readonly routerOutletFrameEvent = new EventEmitter<string>();\n\n constructor() {\n super();\n QueryPageStore.Initializer.initializeStore(this);\n effect(() => {\n this.feature.form.patchValue(this.query());\n });\n\n this.variablesFormValue$.pipe(takeUntilDestroyed()).subscribe((value) => {\n this.feature.variablesFormValue$.next(value);\n });\n }\n readonly tableColumnFormFieldMap = input<FormFieldMap>(_computed(() => ({})));\n}\n\n@Component({\n selector: 'pages-query',\n imports: [\n IndexTemplate,\n RouterOutletFrame,\n NgAtomicFormSectionBuilder,\n QueryFormGroup,\n ],\n providers: [\n QueryFeature,\n ],\n template: `\n <frames-router-outlet (events)=\"store.routerOutletFrameEvent.emit($event)\">\n <templates-index\n [tableColumnFormFieldMap]=\"store.tableColumnFormFieldMap()\"\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [titleControl]=\"store.feature.form.get(['title'])\"\n [titleEditable]=\"store.titleEditable()\"\n [type]=\"'table'\"\n [tableChildrenKey]=\"store.childrenKey()\"\n [tableTreeControl]=\"store.tableTreeControl\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [form]=\"store.form()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.variablesFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.variablesForm()\"\n [fieldMap]=\"store.variablesFormFieldMap()\"\n />\n </div>\n }\n <groups-query-form dashboard (action)=\"dispatch($event)\" />\n </templates-index>\n </frames-router-outlet>\n `,\n styleUrl: './query.page.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: QueryPageStore,\n inputs: [\n 'query',\n 'titleEditable',\n 'variablesForm',\n 'variablesFormFieldMap',\n ]\n },\n ]\n})\nexport class QueryPage extends NgAtomicComponent {\n readonly fb = inject(FormBuilder);\n readonly route = inject(ActivatedRoute);\n protected readonly app = inject(AppService);\n protected readonly store = inject(QueryPageStore);\n protected readonly reducer = inject(QueryActionReducer);\n protected readonly query = inject(QueryService);\n\n readonly template = viewChild(IndexTemplate);\n\n constructor() {\n super();\n this.reducer.action$.subscribe((action) => this.dispatch(action));\n }\n\n @Effect(IndexTemplateStore.ActionId.BACK)\n async back() {\n history.back();\n }\n\n @Effect(ActionId.NAVIGATE_TO_IFRAME)\n async navigateToIframe(item: {id: string}) {\n this.app.router.navigate(['invoices', item.id], {\n relativeTo: this.route,\n });\n }\n\n @Effect(ActionId.TOGGLE_PAGE)\n async expandPage() {\n updateInput(this.store, 'style', (style) => ({\n ...style,\n width: style?.width === 'var(--page-width-lv3)' ? 'var(--page-width-lv2)' : 'var(--page-width-lv3)',\n }))\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-pages-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/pages/query/query.page.ts","../../../../../packages/@xxmachina/components/src/lib/pages/query/xxmachina-components-pages-query.ts"],"sourcesContent":["import { Component, inject, computed, viewChild, Directive, Injectable, signal, input, ChangeDetectionStrategy, effect, Provider, EventEmitter } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { IndexTemplate, IndexTemplateStore, ItemsMap } from '@ng-atomic/components/templates/_index';\nimport { _computed, Action, Actions, applyToInput, computeFake, createAction, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType, updateInput } from '@ng-atomic/core';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { buildColumns, injectIndexFormBuilder } from '@ng-atomic/components/organisms/table';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { distinctUntilChanged, debounceTime } from 'rxjs';\nimport { getRawValue$, injectHasNext, injectRouteData, injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { ActivatedRoute } from '@angular/router';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandActionPayload } from '@xxmachina/common/domain/builder';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { injectOne } from '@ng-atomic/common/stores/entities';\nimport { injectNavStartActionsV2, makeConfig } from '@ng-atomic/common/services/ui';\nimport { flatten } from 'flat';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { isEqual, merge, omitBy } from 'lodash-es';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { QueryService } from '@xxmachina/components/services/query';\nimport { NgAtomicColumnMoleculeStore } from '@ng-atomic/common/directives/molecules/column';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\n\nexport enum ActionId {\n NAVIGATE_TO_IFRAME = 'NAVIGATE TO IFRAME',\n TOGGLE_PAGE = '全体表示',\n TOGGLE_VARIABLES_FORM = '変数フォームの表示切替',\n}\n\nexport function buildItemsMap(\n itemsResult: Record<string, any[]> = {},\n itemsLengthResult: Record<string, number> = {},\n) {\n return Object.entries(itemsResult).reduce((acc, [key, items]) => ({\n ...acc,\n [key]: {\n items,\n itemsLength: itemsLengthResult[key] ?? items.length,\n }\n }), {});\n}\n\n@Injectable({ providedIn: 'root' })\nexport class QueryActionReducer {\n readonly action = signal<Action>(null);\n readonly action$ = toObservable(this.action);\n\n dispatch(action: Action) {\n this.action.set(action);\n }\n}\n\n@TokenizedType()\n@Directive({standalone: true})\nexport class QueryPageStore extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n return () => ({\n style: <any>{\n width: 'var(--page-width-lv2)',\n },\n titleEditable: true,\n childrenKey: <string>null,\n navEndActions: [],\n additionalColumns: (items: object[]) => [] as string[],\n });\n }, ['@xxmachina/components', 'pages', 'query']);\n\n static readonly Initializer = makeInitializerConfig(QueryPageStore);\n\n static provideDefault(): Provider[] {\n return [\n QueryPageStore.Config.provide(),\n QueryPageStore.provideDefaultInitializes(),\n QueryPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideForCustomPage(): Provider[] {\n return [\n\t\t\tQueryPageStore.provideDefault(),\n\t\t\tQueryPageStore.provideNonEditableConfig(),\n QueryPageStore.provideQueryFromRouteDataQueryIdInitializer(),\n\t\t\tQueryPageStore.provideAutoTogglePageInitializer(),\n\t\t\tQueryPageStore.provideItemActionsFromRouteDataInitializer(),\n ];\n }\n\n static provideNonEditableConfig(): Provider {\n return QueryPageStore.Config.provide(() => {\n return config => ({\n ...config,\n titleEditable: false,\n style: {\n ...config.style,\n width: `var(--page-width-lv3)`,\n '--first-content-height': '0px'\n },\n });\n });\n }\n\n static provideDefaultInitializes(): Provider[] {\n return [\n QueryPageStore.provideAutoTogglePageInitializer(),\n QueryPageStore.provideVariablesFormValueFromMatrixParamsInitializer(),\n ];\n }\n\n static provideNavEndActionsInitializers(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n effect(() => {\n const icon = store.style()?.width === 'var(--page-width-lv3)' ? 'close_fullscreen' : 'open_in_full';\n const navEndActions = [\n createAction(QueryFeature.ActionId.クエリの実行, null, {icon: 'play_arrow'}).create(),\n store.variablesFormDisplayed() ? createAction(ActionId.TOGGLE_PAGE, null, {icon}).create() : null,\n createAction(QueryFeature.ActionId.クエリの更新, null, {icon: 'save'}).create(),\n ].filter(Boolean);\n applyToInput(store, 'navEndActions', navEndActions);\n });\n }),\n QueryPageStore.provideVariablesFromRouteParamDataInitializer(),\n ];\n }\n\n static provideVariablesFromRouteParamDataInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide(store => {\n const data = injectUnflattenRouteParam('data');\n effect(() => {\n const variables = store.variablesFormValue();\n const merged = merge(variables, data());\n store.feature.form.patchValue({\n graphql: {\n variablesJson: JSON.stringify(merged, null, 2),\n }\n })\n });\n }),\n ];\n }\n\n static provideAutoTogglePageInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n const hasNext = injectHasNext();\n let style = store.style();\n effect(() => style = store.style());\n\n store.routerOutletFrameEvent.pipe(\n distinctUntilChanged(),\n debounceTime(2),\n ).subscribe((event) => {\n if (event === 'deactivated') {\n const _style = computeFake(style);\n applyToInput(store, 'style', { ..._style, 'padding-left': 0 });\n }\n });\n effect(() => {\n if (hasNext()) {\n setTimeout(() => {\n applyToInput(store, 'style', { ...style, 'padding-left': 'var(--page-width-lv1)' });\n }, 300);\n }\n });\n }),\n ];\n }\n\n static provideVariablesFormValueFromMatrixParamsInitializer(): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n\t\t\t\tconst data = injectUnflattenRouteParam('data');\n\t\t\t\teffect(() => {\n\t\t\t\t\tstore.variablesForm()?.patchValue({...data()});\n\t\t\t\t});\n\t\t\t}),\n ]\n }\n\n static provideQueryFromRouteDataQueryIdInitializer(key = 'queryId'): Provider[] {\n return [\n QueryPageStore.Initializer.provide((store) => {\n const query = injectOne(Query, { id: injectRouteData<string>(key) });\n const _query = computed(() => {\n return query();\n }, {equal: (pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)});\n\n effect(() => {\n console.debug('[QueryPageStore] query:', _query());\n applyToInput(store, 'query', _query());\n });\n }),\n ];\n }\n\n static provideItemActionsFromRouteDataInitializer(key = 'itemActionsCommandIds'): Provider {\n return QueryPageStore.Initializer.provide((store) => {\n const idOrObjectArray = injectRouteData<string[] | {id: string, options: {queryId}}[]>(key);\n const service = inject(CommandService);\n const itemActions = (item) => {\n const params = (idOrObjectArray() ?? []).map((idOrObject) => ({\n id: typeof idOrObject === 'string' ? idOrObject : idOrObject.id,\n options: typeof idOrObject === 'string' ? {} : idOrObject.options,\n }));\n const builder = service.getActionBuilder().setItem(item);\n const actions = params.map(param => builder.setOptions(param.options).buildAction(param.id));\n console.debug('actions:', actions);\n return actions;\n }\n applyToInput(store, 'itemActions', itemActions);\n });\n }\n\n static provideNavEndActionsFromRouteDataInitializer(key = 'navEndActionsCommandIds'): Provider {\n return QueryPageStore.Initializer.provide((store) => {\n const ids = injectRouteData<(string | {id: string, auto: boolean})[]>(key);\n const queryId = injectRouteData<string>('navEndActionsCommandQueryId');\n const service = inject(CommandService);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext()\n \n effect(() => {\n const actions = service.getActionBuilder().setFilterIds(ids()).setOptions({queryId: queryId()}).buildActions(undefined, { relativeTo: route, replaceUrl: hasNext() });\n applyToInput(store, 'navEndActions', [\n store.variablesFormDisplayed() ? { id: ActionId.TOGGLE_VARIABLES_FORM, icon : store.navMode() === 'collapsed' ? 'expand_less' : 'expand_more' } : null,\n // TODO(@NozomuMiyamoto): 変更\n actions?.length ? {\n id: 'open_command_menu',\n icon: 'more_vert',\n children: [...actions],\n } : null,\n ].filter(Boolean));\n });\n });\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryPageStore.provideCommandNavigateEffect(),\n QueryPageStore.provideNavModeToggleEffect(),\n QueryPageStore.provideChangeWidthEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n\n static provideCommandNavigateEffect(): Provider[] {\n return [\n provideEffect(CommandService.ActionId.NAVIGATE_TO_COMMAND_PAGE, () => {\n const app = inject(AppService);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return (payload: CommandActionPayload<any>) => {\n const flat = flatten<object, object>({data: {id: payload.body?.id}, queryId: payload?.options?.queryId});\n const _flat = omitBy(flat, (value) => value === undefined);\n app.router.navigate(['commands', {skip: true}, payload.command.id, _flat], {\n relativeTo: route,\n replaceUrl: hasNext(),\n });\n }\n }),\n provideEffect(CommandService.ActionId.EXECUTE_COMMAND, () => {\n const commandService = inject(CommandService);\n return async (payload: CommandActionPayload<any>) => {\n const app = inject(AppService);\n const obj = omitBy(payload.body, (value) => typeof value === undefined);\n const command = inject(CommandService).getCommand(payload.command.id);\n console.debug('[QueryPage] payload:', payload);\n if (payload.options?.confirm && !(await payload.options?.confirm())) {\n app.snackBar.open('キャンセルされました。');\n return;\n }\n app.loading.await(() => {\n return commandService.execute(command, obj).then(() => {\n app.snackBar.open('成功しました。');\n }).catch((error) => {\n console.error(error);\n app.snackBar.open(`エラー: ${error.message}`);\n });\n });\n };\n }),\n ]\n }\n\n static provideNavModeToggleEffect(): Provider {\n return provideEffect(ActionId.TOGGLE_VARIABLES_FORM, () => {\n const store = inject(QueryPageStore);\n return () => {\n store.navMode.set(store.navMode() === 'collapsed' ? 'expanded' : 'collapsed');\n };\n });\n }\n\n static provideChangeWidthEffect(): Provider {\n return provideEffect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH, () => {\n return (payload: {index: number, width: number}) => {\n const store = inject(QueryPageStore);\n const columns = store.form().value.columns;\n const name = columns.ids[payload.index];\n const column = columns.map[name];\n store.form().patchValue({\n columns: { ...columns, map: { ...columns.map, [name]: { ...column, width: payload.width } } }\n })\n };\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly config = QueryPageStore.Config.inject();\n readonly feature = inject(QueryFeature);\n readonly indexFormBuilder = injectIndexFormBuilder();\n\n readonly navMode = signal<'expanded' | 'collapsed'>('collapsed');\n readonly style = input(_computed(() => this.config().style));\n readonly query = input<Query>(null);\n\n readonly navStartActions = injectNavStartActionsV2();\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly title = input<string>(_computed(() => this.query()?.title));\n readonly titleEditable = input<boolean>(_computed(() => this.config().titleEditable));\n readonly itemsMap = input<ItemsMap<any>>(_computed(() => buildItemsMap(this.feature.result() as any ?? {})));\n readonly items = computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.items ?? []);\n readonly itemsLength = input(_computed(() => this.itemsMap()[Object.keys(this.itemsMap())[0]]?.itemsLength ?? 0));\n readonly childrenKey = input<string>(_computed(() => this.config().childrenKey));\n readonly additionalColumns = input(_computed(() => this.config().additionalColumns))\n readonly additionalColumnNames = input(_computed(() => this.additionalColumns()(this.items())));\n readonly extractedColumnNames = input(_computed(() => QueryHelper.extractColumnNames(this.items(), this.childrenKey())));\n readonly columnNames = input(_computed(() => [...this.extractedColumnNames(), ...this.additionalColumnNames()]));\n readonly sticky = input(_computed(() => ({ stickyStart: 2, stickyEnd: 1 })));\n readonly form = input(_computed(() => this.indexFormBuilder.build({\n columns: buildColumns([...this.columnNames(), '__actions'], this.sticky()),\n })));\n readonly itemActions = input<Actions>((item: any) => []);\n readonly tableTreeControl = new FlatTreeControl<any>(n => n.level, n => n.isExpandable, {trackBy: (n: any) => n.id});\n readonly variablesForm = input(_computed<FormGroup>(() => this.feature.variablesForm() ?? new FormGroup({})));\n readonly variablesFormFieldMap = input(_computed(() => ({} as FormFieldMap)));\n readonly variablesFormValue = derivedAsync(() => getRawValue$(this.variablesForm()), { equal: isEqual });\n readonly variablesFormValue$ = toObservable(this.variablesFormValue);\n readonly variablesFormDisplayed = input(_computed(() => Object.keys(this.feature.variablesValue())?.length > 0));\n readonly routerOutletFrameEvent = new EventEmitter<string>();\n\n constructor() {\n super();\n QueryPageStore.Initializer.initializeStore(this);\n effect(() => {\n this.feature.form.patchValue(this.query());\n });\n\n this.variablesFormValue$.pipe(takeUntilDestroyed()).subscribe((value) => {\n this.feature.variablesFormValue$.next(value);\n });\n }\n readonly tableColumnFormFieldMap = input<FormFieldMap>(_computed(() => ({})));\n}\n\n@Component({\n selector: 'pages-query',\n imports: [\n IndexTemplate,\n RouterOutletFrame,\n NgAtomicFormSectionBuilder,\n QueryFormGroup,\n ],\n providers: [\n QueryFeature,\n ],\n template: `\n <frames-router-outlet (events)=\"store.routerOutletFrameEvent.emit($event)\">\n <templates-index\n [tableColumnFormFieldMap]=\"store.tableColumnFormFieldMap()\"\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [titleControl]=\"store.feature.form.get(['title'])\"\n [titleEditable]=\"store.titleEditable()\"\n [type]=\"'table'\"\n [tableChildrenKey]=\"store.childrenKey()\"\n [tableTreeControl]=\"store.tableTreeControl\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [form]=\"store.form()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.variablesFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.variablesForm()\"\n [fieldMap]=\"store.variablesFormFieldMap()\"\n />\n </div>\n }\n <groups-query-form dashboard (action)=\"dispatch($event)\" />\n </templates-index>\n </frames-router-outlet>\n `,\n styleUrl: './query.page.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: QueryPageStore,\n inputs: [\n 'query',\n 'titleEditable',\n 'variablesForm',\n 'variablesFormFieldMap',\n ]\n },\n ]\n})\nexport class QueryPage extends NgAtomicComponent {\n readonly fb = inject(FormBuilder);\n readonly route = inject(ActivatedRoute);\n protected readonly app = inject(AppService);\n protected readonly store = inject(QueryPageStore);\n protected readonly reducer = inject(QueryActionReducer);\n protected readonly query = inject(QueryService);\n\n readonly template = viewChild(IndexTemplate);\n\n constructor() {\n super();\n this.reducer.action$.subscribe((action) => this.dispatch(action));\n }\n\n @Effect(IndexTemplateStore.ActionId.BACK)\n async back() {\n history.back();\n }\n\n @Effect(ActionId.NAVIGATE_TO_IFRAME)\n async navigateToIframe(item: {id: string}) {\n this.app.router.navigate(['invoices', item.id], {\n relativeTo: this.route,\n });\n }\n\n @Effect(ActionId.TOGGLE_PAGE)\n async expandPage() {\n updateInput(this.store, 'style', (style) => ({\n ...style,\n width: style?.width === 'var(--page-width-lv3)' ? 'var(--page-width-lv2)' : 'var(--page-width-lv3)',\n }))\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -84,8 +84,8 @@ class CommandService {
84
84
  this.refresh$.next();
85
85
  }
86
86
  async resolveResponse(data) {
87
- console.debug('[CommandService] resolveResponse:', data);
88
- if (data['__typename'] === 'action') {
87
+ console.debug('[CommandService] response:', data);
88
+ if (data?.['__typename'] === 'action') {
89
89
  switch (data['id']) {
90
90
  case 'download': return this.download(data['payload'].url);
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-services-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/command/command.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/command/xxmachina-components-services-command.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { computed, effect, inject, Injectable, InjectionToken } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { catchError, interval, lastValueFrom, map, NEVER, ReplaySubject, shareReplay, switchMap } from 'rxjs';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { Resource } from '@xxmachina/common/domain/models';\nimport { JsonSchemaService } from '@xxmachina/components/services/json-schema';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { distinctUntilChangedArray, injectAll } from '@ng-atomic/common/stores/entities';\nimport { CommandBuilder } from '@xxmachina/common/domain/builder';\nimport { OpenApiService } from '@xxmachina/components/services/openapi';\nimport { CommandActionsBuilder, ActionId, createCommandNavigateAction, CommandActionFactoryOptions, createCommandExecutionAction } from '@xxmachina/common/domain/builder';\nimport { CommandHelper } from '@xxmachina/common/domain/models';\nimport { NavigationExtras } from '@angular/router';\nimport { Action } from '@ng-atomic/core';\nimport { merge } from 'lodash-es';\n\nexport type CommandActionOptions = CommandActionFactoryOptions & { overwrite?: Partial<Action> };\n\nexport type CommandPermissionResolver = (command: Command) => boolean;\nexport const COMMAND_PERMISSION_RESOLVER = new InjectionToken<CommandPermissionResolver>('[@xxmachina/components] COMMAND_PERMISSION_RESOLVER', {\n providedIn: 'root',\n factory: () => (command: Command) => true,\n});\n\nexport function provideCommandPermissionResolver(useFactory: () => CommandPermissionResolver) {\n return { provide: COMMAND_PERMISSION_RESOLVER, useFactory };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CommandService {\n static readonly ActionId = ActionId;\n protected readonly app = inject(AppService);\n protected readonly http = inject(HttpClient);\n protected readonly resources = injectAll(Resource);\n protected readonly resourceUrls = computed(() => {\n return this.resources().filter(resource => resource.type === 'openapi').map((resource) => resource.openapi?.url);\n });\n protected readonly resourceUrls$ = toObservable(this.resourceUrls);\n protected readonly refresh$ = new ReplaySubject<void>(1);\n readonly schema = inject(JsonSchemaService);\n readonly openApi = inject(OpenApiService);\n readonly commands$ = this.refresh$.pipe(\n switchMap(() => this.resourceUrls$),\n this.app.loading.switchMap((urls) => this.openApi.getOpenApiMany(urls).pipe(\n catchError((error) => (console.error(error), NEVER)),\n ), 'commands-refresh'),\n map((openApis) => openApis.filter((openApi) => openApi !== null)),\n map((openApis) => openApis.map((openApi) => new CommandBuilder().buildFromOpenApi(openApi)).flat()),\n distinctUntilChangedArray(),\n shareReplay(1),\n );\n readonly commands = toSignal<Command[]>(this.commands$, {initialValue: [] as any});\n protected readonly permissionResolver = inject(COMMAND_PERMISSION_RESOLVER);\n\n constructor() {\n this.refresh();\n interval(1000 * 5).pipe(takeUntilDestroyed()).subscribe(() => this.refresh());\n\n effect(() => {\n console.debug('[CommandService] commands:', this.commands());\n });\n }\n\n getCommand(id: string): Command | null {\n return this.commands().find((command) => command.id === id) ?? null;\n }\n\n getCommands(ids: string[]): Command[] {\n return this.commands().filter((command) => ids.includes(command.id));\n }\n\n getActionBuilder(item?: any): CommandActionsBuilder {\n return new CommandActionsBuilder().setItem(item).setCommands(this.commands());\n }\n\n async execute(commandOrCommandId: Command | string, data: any): Promise<any> {\n const command = this.resolveCommand(commandOrCommandId);\n if (command === null) throw new Error(`Command not found: ${commandOrCommandId}`);\n if (command.type === 'webApiRequest') {\n const endpoint = CommandHelper.resolveEndpoint(command, data);\n switch (command.webApiRequest.responseContentType) {\n case 'application/octet-stream': {\n return lastValueFrom(this.http.request(command.webApiRequest.method, endpoint, {\n responseType: 'blob',\n observe: 'response',\n body: data,\n })).then((res) => {\n const contentDisposition = res.headers.get('Content-Disposition');\n const name = contentDisposition?.split('filename=')[1]?.replace(/\"/g, '') ?? 'sample.xlsx';\n const u = URL.createObjectURL(res.body);\n const a = document.createElement('a');\n a.href = u;\n a.download = name;\n a.click();\n });\n }\n default: {\n console.debug('[CommandService] execute:', {command, data});\n return lastValueFrom(this.http.request(command.webApiRequest.method, endpoint, { body: data })).then((data) => {\n return this.resolveResponse(data);\n });\n }\n }\n }\n }\n\n async refresh() {\n this.refresh$.next();\n }\n\n async resolveResponse(data: any) {\n console.debug('[CommandService] resolveResponse:', data);\n if (data['__typename'] === 'action') {\n switch (data['id']) {\n case 'download': return this.download(data['payload'].url);\n }\n }\n }\n\n async download(url: string) {\n return lastValueFrom(this.http.get(url, { responseType: 'blob', observe: 'response' })).then((res) => {\n const contentDisposition = res.headers.get('Content-Disposition');\n const name = contentDisposition?.split('filename=')[1]?.replace(/\"/g, '') ?? 'sample.xlsx';\n const u = URL.createObjectURL(res.body);\n const a = document.createElement('a');\n a.href = u;\n a.download = name;\n a.click();\n });\n }\n\n buildNavigationAction(\n commandOrId: Command | string,\n data: any = {},\n navigationExtra: NavigationExtras = {},\n options: CommandActionOptions = {},\n ) {\n const command = this.resolveCommand(commandOrId);\n const overwrite = merge({disabled: !this.permissionResolver(command)}, options?.overwrite ?? {});\n return createCommandNavigateAction(command, navigationExtra, data, options, overwrite);\n }\n\n buildExecutionAction(\n commandOrId: Command | string,\n data: any = {},\n options: CommandActionOptions = {},\n ) {\n const command = this.resolveCommand(commandOrId);\n const overwrite = merge({disabled: !this.hasPermission(command)}, options?.overwrite ?? {});\n return createCommandExecutionAction(command, data, options, overwrite);\n }\n\n hasPermission(commandOrId: Command | string): boolean {\n const command = this.resolveCommand(commandOrId);\n return this.permissionResolver(command);\n }\n\n protected resolveCommand(commandOrId: Command | string): Command | null {\n return typeof commandOrId === 'string' ? this.getCommand(commandOrId) : commandOrId;\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-services-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/command/command.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/command/xxmachina-components-services-command.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { computed, effect, inject, Injectable, InjectionToken } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { catchError, interval, lastValueFrom, map, NEVER, ReplaySubject, shareReplay, switchMap } from 'rxjs';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { Resource } from '@xxmachina/common/domain/models';\nimport { JsonSchemaService } from '@xxmachina/components/services/json-schema';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { distinctUntilChangedArray, injectAll } from '@ng-atomic/common/stores/entities';\nimport { CommandBuilder } from '@xxmachina/common/domain/builder';\nimport { OpenApiService } from '@xxmachina/components/services/openapi';\nimport { CommandActionsBuilder, ActionId, createCommandNavigateAction, CommandActionFactoryOptions, createCommandExecutionAction } from '@xxmachina/common/domain/builder';\nimport { CommandHelper } from '@xxmachina/common/domain/models';\nimport { NavigationExtras } from '@angular/router';\nimport { Action } from '@ng-atomic/core';\nimport { merge } from 'lodash-es';\n\nexport type CommandActionOptions = CommandActionFactoryOptions & { overwrite?: Partial<Action> };\n\nexport type CommandPermissionResolver = (command: Command) => boolean;\nexport const COMMAND_PERMISSION_RESOLVER = new InjectionToken<CommandPermissionResolver>('[@xxmachina/components] COMMAND_PERMISSION_RESOLVER', {\n providedIn: 'root',\n factory: () => (command: Command) => true,\n});\n\nexport function provideCommandPermissionResolver(useFactory: () => CommandPermissionResolver) {\n return { provide: COMMAND_PERMISSION_RESOLVER, useFactory };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CommandService {\n static readonly ActionId = ActionId;\n protected readonly app = inject(AppService);\n protected readonly http = inject(HttpClient);\n protected readonly resources = injectAll(Resource);\n protected readonly resourceUrls = computed(() => {\n return this.resources().filter(resource => resource.type === 'openapi').map((resource) => resource.openapi?.url);\n });\n protected readonly resourceUrls$ = toObservable(this.resourceUrls);\n protected readonly refresh$ = new ReplaySubject<void>(1);\n readonly schema = inject(JsonSchemaService);\n readonly openApi = inject(OpenApiService);\n readonly commands$ = this.refresh$.pipe(\n switchMap(() => this.resourceUrls$),\n this.app.loading.switchMap((urls) => this.openApi.getOpenApiMany(urls).pipe(\n catchError((error) => (console.error(error), NEVER)),\n ), 'commands-refresh'),\n map((openApis) => openApis.filter((openApi) => openApi !== null)),\n map((openApis) => openApis.map((openApi) => new CommandBuilder().buildFromOpenApi(openApi)).flat()),\n distinctUntilChangedArray(),\n shareReplay(1),\n );\n readonly commands = toSignal<Command[]>(this.commands$, {initialValue: [] as any});\n protected readonly permissionResolver = inject(COMMAND_PERMISSION_RESOLVER);\n\n constructor() {\n this.refresh();\n interval(1000 * 5).pipe(takeUntilDestroyed()).subscribe(() => this.refresh());\n\n effect(() => {\n console.debug('[CommandService] commands:', this.commands());\n });\n }\n\n getCommand(id: string): Command | null {\n return this.commands().find((command) => command.id === id) ?? null;\n }\n\n getCommands(ids: string[]): Command[] {\n return this.commands().filter((command) => ids.includes(command.id));\n }\n\n getActionBuilder(item?: any): CommandActionsBuilder {\n return new CommandActionsBuilder().setItem(item).setCommands(this.commands());\n }\n\n async execute(commandOrCommandId: Command | string, data: any): Promise<any> {\n const command = this.resolveCommand(commandOrCommandId);\n if (command === null) throw new Error(`Command not found: ${commandOrCommandId}`);\n if (command.type === 'webApiRequest') {\n const endpoint = CommandHelper.resolveEndpoint(command, data);\n switch (command.webApiRequest.responseContentType) {\n case 'application/octet-stream': {\n return lastValueFrom(this.http.request(command.webApiRequest.method, endpoint, {\n responseType: 'blob',\n observe: 'response',\n body: data,\n })).then((res) => {\n const contentDisposition = res.headers.get('Content-Disposition');\n const name = contentDisposition?.split('filename=')[1]?.replace(/\"/g, '') ?? 'sample.xlsx';\n const u = URL.createObjectURL(res.body);\n const a = document.createElement('a');\n a.href = u;\n a.download = name;\n a.click();\n });\n }\n default: {\n console.debug('[CommandService] execute:', {command, data});\n return lastValueFrom(this.http.request(command.webApiRequest.method, endpoint, { body: data })).then((data) => {\n return this.resolveResponse(data);\n });\n }\n }\n }\n }\n\n async refresh() {\n this.refresh$.next();\n }\n\n async resolveResponse(data: any) {\n console.debug('[CommandService] response:', data);\n if (data?.['__typename'] === 'action') {\n switch (data['id']) {\n case 'download': return this.download(data['payload'].url);\n }\n }\n }\n\n async download(url: string) {\n return lastValueFrom(this.http.get(url, { responseType: 'blob', observe: 'response' })).then((res) => {\n const contentDisposition = res.headers.get('Content-Disposition');\n const name = contentDisposition?.split('filename=')[1]?.replace(/\"/g, '') ?? 'sample.xlsx';\n const u = URL.createObjectURL(res.body);\n const a = document.createElement('a');\n a.href = u;\n a.download = name;\n a.click();\n });\n }\n\n buildNavigationAction(\n commandOrId: Command | string,\n data: any = {},\n navigationExtra: NavigationExtras = {},\n options: CommandActionOptions = {},\n ) {\n const command = this.resolveCommand(commandOrId);\n const overwrite = merge({disabled: !this.permissionResolver(command)}, options?.overwrite ?? {});\n return createCommandNavigateAction(command, navigationExtra, data, options, overwrite);\n }\n\n buildExecutionAction(\n commandOrId: Command | string,\n data: any = {},\n options: CommandActionOptions = {},\n ) {\n const command = this.resolveCommand(commandOrId);\n const overwrite = merge({disabled: !this.hasPermission(command)}, options?.overwrite ?? {});\n return createCommandExecutionAction(command, data, options, overwrite);\n }\n\n hasPermission(commandOrId: Command | string): boolean {\n const command = this.resolveCommand(commandOrId);\n return this.permissionResolver(command);\n }\n\n protected resolveCommand(commandOrId: Command | string): Command | null {\n return typeof commandOrId === 'string' ? this.getCommand(commandOrId) : commandOrId;\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,27 +1,26 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, inject, Injectable } from '@angular/core';
3
- import { toObservable } from '@angular/core/rxjs-interop';
4
- import { AuthService } from '@xxmachina/common/auth';
2
+ import { InjectionToken, makeEnvironmentProviders, inject, Injectable } from '@angular/core';
5
3
  import { reconstruct } from '@nx-ddd/core';
6
- import { shareReplay, filter, map } from 'rxjs';
4
+ import { map } from 'rxjs';
7
5
 
6
+ const QUERY_CONFIG = new InjectionToken('[@xxmachina/components] QUERY_CONFIG');
7
+ function provideQueryConfig(useFactory) {
8
+ return makeEnvironmentProviders([{ provide: QUERY_CONFIG, useFactory }]);
9
+ }
8
10
  class QueryConfigService {
9
11
  constructor() {
10
- this.config = signal(null);
11
- this.config$ = toObservable(this.config).pipe(shareReplay(1));
12
- this.auth = inject(AuthService);
13
- this.auth.accessToken$.subscribe((accessToken) => {
14
- console.debug('[QueryConfigService] accessToken:', accessToken);
15
- this.config.update((config) => ({ ...config, auth: { accessToken } }));
16
- });
12
+ this.config$ = inject(QUERY_CONFIG);
13
+ }
14
+ replaceText(text, config) {
15
+ return Object.entries(config).reduce((text, [key, value]) => text.replaceAll(`$${key}`, value), text);
17
16
  }
18
- replace(params, _config) {
17
+ replace(params, config) {
19
18
  if (typeof params === 'string') {
20
- return params.replaceAll("$MACHINA_AUTH_ACCESS_TOKEN", _config?.auth?.accessToken ?? '');
19
+ return this.replaceText(params, config);
21
20
  }
22
21
  const resonstruceted = reconstruct(params, (_, value) => {
23
22
  if (typeof value === 'string') {
24
- const newValue = value.replaceAll("$MACHINA_AUTH_ACCESS_TOKEN", _config?.auth?.accessToken ?? '');
23
+ const newValue = this.replaceText(value, config);
25
24
  return [true, newValue];
26
25
  }
27
26
  return [false];
@@ -29,7 +28,7 @@ class QueryConfigService {
29
28
  return resonstruceted;
30
29
  }
31
30
  resolve(params) {
32
- return this.config$.pipe(filter((config) => !!config?.auth?.accessToken), map(config => this.replace(params, config)));
31
+ return this.config$.pipe(map(config => this.replace(params, config)));
33
32
  }
34
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
34
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryConfigService, providedIn: 'root' }); }
@@ -37,11 +36,11 @@ class QueryConfigService {
37
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryConfigService, decorators: [{
38
37
  type: Injectable,
39
38
  args: [{ providedIn: 'root' }]
40
- }], ctorParameters: () => [] });
39
+ }] });
41
40
 
42
41
  /**
43
42
  * Generated bundle index. Do not edit.
44
43
  */
45
44
 
46
- export { QueryConfigService };
45
+ export { QUERY_CONFIG, QueryConfigService, provideQueryConfig };
47
46
  //# sourceMappingURL=xxmachina-components-services-query-config.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-services-query-config.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/query-config/query-config.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/query-config/xxmachina-components-services-query-config.ts"],"sourcesContent":["import { inject, Injectable, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport { AuthService } from \"@xxmachina/common/auth\";\nimport { reconstruct } from \"@nx-ddd/core\";\nimport { filter, map, Observable, shareReplay } from \"rxjs\";\n\n@Injectable({providedIn: 'root'})\nexport class QueryConfigService {\n readonly config = signal<{\n auth?: {\n accessToken?: string;\n }\n }>(null);\n readonly config$ = toObservable(this.config).pipe(shareReplay(1));\n readonly auth = inject(AuthService);\n\n constructor() {\n this.auth.accessToken$.subscribe((accessToken) => {\n console.debug('[QueryConfigService] accessToken:', accessToken);\n this.config.update((config) => ({ ...config, auth: { accessToken } }));\n });\n }\n\n protected replace<T extends Record<string, any> | string>(params: T, _config): T {\n if (typeof params === 'string') {\n return params.replaceAll(\"$MACHINA_AUTH_ACCESS_TOKEN\", _config?.auth?.accessToken ?? '') as T;\n }\n const resonstruceted = reconstruct(params, (_, value) => {\n if (typeof value === 'string') {\n const newValue = value.replaceAll(\"$MACHINA_AUTH_ACCESS_TOKEN\", _config?.auth?.accessToken ?? '');\n return [true, newValue];\n }\n return [false];\n });\n return resonstruceted as T;\n }\n\n resolve<T extends object>(params: T): Observable<T> {\n return this.config$.pipe(\n filter((config) => !!config?.auth?.accessToken),\n map(config => this.replace(params, config)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAOa,kBAAkB,CAAA;AAS7B,IAAA,WAAA,GAAA;AARS,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAIrB,IAAI,CAAC;AACC,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAGjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;AAC/C,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,WAAW,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,SAAC,CAAC;;IAGM,OAAO,CAAyC,MAAS,EAAE,OAAO,EAAA;AAC1E,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC9B,YAAA,OAAO,MAAM,CAAC,UAAU,CAAC,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAM;;QAE/F,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;AACtD,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;AACjG,gBAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;;YAEzB,OAAO,CAAC,KAAK,CAAC;AAChB,SAAC,CAAC;AACF,QAAA,OAAO,cAAmB;;AAG5B,IAAA,OAAO,CAAmB,MAAS,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC5C;;8GAlCQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACNhC;;AAEG;;;;"}
1
+ {"version":3,"file":"xxmachina-components-services-query-config.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/query-config/query-config.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/query-config/xxmachina-components-services-query-config.ts"],"sourcesContent":["import { EnvironmentProviders, inject, Injectable, InjectionToken, makeEnvironmentProviders, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport { AuthService } from \"@xxmachina/common/auth\";\nimport { reconstruct } from \"@nx-ddd/core\";\nimport { filter, map, Observable, shareReplay } from \"rxjs\";\n\nexport type QueryConfig = Record<string, string>;\nexport const QUERY_CONFIG = new InjectionToken<Observable<QueryConfig>>('[@xxmachina/components] QUERY_CONFIG');\n\nexport function provideQueryConfig(useFactory: () => Observable<QueryConfig>): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: QUERY_CONFIG, useFactory }]);\n}\n\n@Injectable({providedIn: 'root'})\nexport class QueryConfigService {\n readonly config$ = inject(QUERY_CONFIG);\n\n protected replaceText(text: string, config: QueryConfig): string {\n return Object.entries(config).reduce((text, [key, value]) => text.replaceAll(`$${key}`, value), text);\n }\n\n protected replace<T extends Record<string, any> | string>(params: T, config: QueryConfig): T {\n if (typeof params === 'string') {\n return this.replaceText(params, config) as T;\n }\n const resonstruceted = reconstruct(params, (_, value) => {\n if (typeof value === 'string') {\n const newValue = this.replaceText(value, config);\n return [true, newValue];\n }\n return [false];\n });\n return resonstruceted as T;\n }\n\n resolve<T extends object>(params: T): Observable<T> {\n return this.config$.pipe(\n map(config => this.replace(params, config)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,YAAY,GAAG,IAAI,cAAc,CAA0B,sCAAsC;AAExG,SAAU,kBAAkB,CAAC,UAAyC,EAAA;AAC1E,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1E;MAGa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;AAyBxC;IAvBW,WAAW,CAAC,IAAY,EAAE,MAAmB,EAAA;AACrD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;;IAG7F,OAAO,CAAyC,MAAS,EAAE,MAAmB,EAAA;AACtF,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAM;;QAE9C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;AACtD,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AAChD,gBAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;;YAEzB,OAAO,CAAC,KAAK,CAAC;AAChB,SAAC,CAAC;AACF,QAAA,OAAO,cAAmB;;AAG5B,IAAA,OAAO,CAAmB,MAAS,EAAA;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC5C;;8GAxBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACbhC;;AAEG;;;;"}
@@ -37,10 +37,14 @@ class QueryService {
37
37
  }
38
38
  subscribeQuery(_query) {
39
39
  return this.config.resolve(_query).pipe(switchMap((query) => {
40
- const client = this.apolloMulti.getClient(query.graphql.endpoint, () => this.config.resolve(_query.graphql.headers));
40
+ const client = this.apolloMulti.getClient(query.graphql.endpoint, () => {
41
+ return this.config.resolve(_query.graphql.headers);
42
+ // .pipe(take(1), shareReplay(1));
43
+ });
41
44
  return client.subscribe({
42
45
  query: gql `${query.graphql.query}`,
43
46
  variables: query.graphql.variables,
47
+ fetchPolicy: 'network-only',
44
48
  }).pipe(tap((result) => console.debug('[QueryService] result:', result)), map((result) => QueryHelper.parseResult(result)));
45
49
  }));
46
50
  }
@@ -52,7 +56,10 @@ class QueryService {
52
56
  throw new Error(`endpoint is required ${query}`);
53
57
  }
54
58
  return this.config.resolve({ query, endpoint, variables }).pipe(switchMap(({ query, endpoint, variables }) => {
55
- const client = this.apolloMulti.getClient(endpoint, () => this.config.resolve(headers));
59
+ const client = this.apolloMulti.getClient(endpoint, () => {
60
+ return this.config.resolve(headers);
61
+ // .pipe(take(1), shareReplay(1));
62
+ });
56
63
  return client.subscribe({
57
64
  query: gql `${query}`,
58
65
  variables: variables,
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-services-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/query/query.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/query/xxmachina-components-services-query.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable } from \"@angular/core\";\nimport { map, lastValueFrom, switchMap, tap } from \"rxjs\";\nimport { gql } from 'apollo-angular';\nimport { getIntrospectionQuery } from \"graphql\";\nimport { Query, QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryConfigService } from \"@xxmachina/components/services/query-config\";\nimport { ApolloMultiService } from \"@nx-ddd/hasura\";\nimport { Observable } from \"rxjs\";\n\n@Injectable({providedIn: 'root'})\nexport class QueryService {\n protected readonly http = inject(HttpClient);\n readonly config = inject(QueryConfigService);\n readonly apolloMulti = inject(ApolloMultiService);\n\n execute(\n query: string,\n options: {\n endpoint?: string,\n headers?: Record<string, string>,\n } = {\n endpoint: '',\n headers: {\n 'content-type': 'application/json',\n }\n },\n ) {\n return this.config.resolve(options).pipe(\n switchMap(({endpoint, headers}) => this.http.post(endpoint, { query }, { headers }))\n );\n }\n\n getSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n } = {\n headers: {\n 'content-type': 'application/json',\n }\n }) {\n return this.execute(getIntrospectionQuery(), {...options, endpoint});\n }\n\n subscribeSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n }) {\n return this.subscribe(getIntrospectionQuery(), {\n headers: options.headers,\n endpoint\n }, (result) => result);\n }\n\n subscribeQuery(_query: Pick<Query, 'graphql'>): Observable<Record<string, any>> {\n return this.config.resolve(_query).pipe(\n switchMap((query) => {\n const client = this.apolloMulti.getClient(query.graphql.endpoint, () => this.config.resolve(_query.graphql.headers));\n return client.subscribe<Record<string, any>>({\n query: gql`${query.graphql.query}`,\n variables: query.graphql.variables,\n }).pipe(\n tap((result) => console.debug('[QueryService] result:', result)),\n map((result) => QueryHelper.parseResult(result as any)),\n )}\n ),\n );\n }\n\n subscribe(\n query: string,\n {\n endpoint,\n headers = { 'content-type': 'application/json' },\n variables = {},\n }: {\n endpoint?: string,\n headers?: Record<string, string>,\n variables?: Record<string, any>,\n } = { },\n transformer = (result: any) => QueryHelper.parseResult(result),\n ) {\n if (typeof headers['Authorization'] === 'undefined') {\n throw new Error(`Authorization is not ' ${query}`);\n }\n\n if (!endpoint) {\n throw new Error(`endpoint is required ${query}`);\n }\n return this.config.resolve({query, endpoint, variables}).pipe(\n switchMap(({query, endpoint, variables}) => {\n const client = this.apolloMulti.getClient(endpoint, () => this.config.resolve(headers));\n return client.subscribe<Record<string, any>>({\n query: gql`${query}`,\n variables: variables,\n fetchPolicy: 'network-only',\n }).pipe(\n tap((result) => console.debug('[QueryService] result:', result)),\n map(transformer),\n )}\n ),\n );\n }\n \n async generate(\n instructions: string,\n options: {\n baseUrl: string\n } = {\n baseUrl: '',\n },\n ) {\n const endpoint = `${options.baseUrl}/generate`;\n return lastValueFrom(this.http.post<{query: string}>(endpoint, { instructions }));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-services-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/services/query/query.service.ts","../../../../../packages/@xxmachina/components/src/lib/services/query/xxmachina-components-services-query.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable } from \"@angular/core\";\nimport { map, lastValueFrom, switchMap, tap, shareReplay, take } from \"rxjs\";\nimport { gql } from 'apollo-angular';\nimport { getIntrospectionQuery } from \"graphql\";\nimport { Query, QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryConfigService } from \"@xxmachina/components/services/query-config\";\nimport { ApolloMultiService } from \"@nx-ddd/hasura\";\nimport { Observable } from \"rxjs\";\n\n@Injectable({providedIn: 'root'})\nexport class QueryService {\n protected readonly http = inject(HttpClient);\n readonly config = inject(QueryConfigService);\n readonly apolloMulti = inject(ApolloMultiService);\n\n execute(\n query: string,\n options: {\n endpoint?: string,\n headers?: Record<string, string>,\n } = {\n endpoint: '',\n headers: {\n 'content-type': 'application/json',\n }\n },\n ) {\n return this.config.resolve(options).pipe(\n switchMap(({endpoint, headers}) => this.http.post(endpoint, { query }, { headers }))\n );\n }\n\n getSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n } = {\n headers: {\n 'content-type': 'application/json',\n }\n }) {\n return this.execute(getIntrospectionQuery(), {...options, endpoint});\n }\n\n subscribeSchema(endpoint: string, options: {\n headers?: Record<string, string>,\n }) {\n return this.subscribe(getIntrospectionQuery(), {\n headers: options.headers,\n endpoint\n }, (result) => result);\n }\n\n subscribeQuery(_query: Pick<Query, 'graphql'>): Observable<Record<string, any>> {\n return this.config.resolve(_query).pipe(\n switchMap((query) => {\n const client = this.apolloMulti.getClient(query.graphql.endpoint, () => {\n return this.config.resolve(_query.graphql.headers)\n // .pipe(take(1), shareReplay(1));\n });\n return client.subscribe<Record<string, any>>({\n query: gql`${query.graphql.query}`,\n variables: query.graphql.variables,\n fetchPolicy: 'network-only',\n }).pipe(\n tap((result) => console.debug('[QueryService] result:', result)),\n map((result) => QueryHelper.parseResult(result as any)),\n )}\n ),\n );\n }\n\n subscribe(\n query: string,\n {\n endpoint,\n headers = { 'content-type': 'application/json' },\n variables = {},\n }: {\n endpoint?: string,\n headers?: Record<string, string>,\n variables?: Record<string, any>,\n } = { },\n transformer = (result: any) => QueryHelper.parseResult(result),\n ) {\n if (typeof headers['Authorization'] === 'undefined') {\n throw new Error(`Authorization is not ' ${query}`);\n }\n\n if (!endpoint) {\n throw new Error(`endpoint is required ${query}`);\n }\n return this.config.resolve({query, endpoint, variables}).pipe(\n switchMap(({query, endpoint, variables}) => {\n const client = this.apolloMulti.getClient(endpoint, () => {\n return this.config.resolve(headers)\n // .pipe(take(1), shareReplay(1));\n });\n return client.subscribe<Record<string, any>>({\n query: gql`${query}`,\n variables: variables,\n fetchPolicy: 'network-only',\n }).pipe(\n tap((result) => console.debug('[QueryService] result:', result)),\n map(transformer),\n )}\n ),\n );\n }\n \n async generate(\n instructions: string,\n options: {\n baseUrl: string\n } = {\n baseUrl: '',\n },\n ) {\n const endpoint = `${options.baseUrl}/generate`;\n return lastValueFrom(this.http.post<{query: string}>(endpoint, { instructions }));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xxmachina/components",
3
- "version": "19.0.0-preview.24",
3
+ "version": "19.0.0-preview.26",
4
4
  "license": "MIT",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -174,14 +174,14 @@
174
174
  "types": "./templates/invoice-iframe/index.d.ts",
175
175
  "default": "./fesm2022/xxmachina-components-templates-invoice-iframe.mjs"
176
176
  },
177
- "./templates/video": {
178
- "types": "./templates/video/index.d.ts",
179
- "default": "./fesm2022/xxmachina-components-templates-video.mjs"
180
- },
181
177
  "./templates/scheduler": {
182
178
  "types": "./templates/scheduler/index.d.ts",
183
179
  "default": "./fesm2022/xxmachina-components-templates-scheduler.mjs"
184
180
  },
181
+ "./templates/video": {
182
+ "types": "./templates/video/index.d.ts",
183
+ "default": "./fesm2022/xxmachina-components-templates-video.mjs"
184
+ },
185
185
  "./validators/query": {
186
186
  "types": "./validators/query/index.d.ts",
187
187
  "default": "./fesm2022/xxmachina-components-validators-query.mjs"
@@ -94,12 +94,13 @@ export declare class CommandPageStore extends InjectableComponent {
94
94
  readonly extractedFormFieldMap: import("@angular/core").InputSignal<any>;
95
95
  readonly additionalFormFieldMap: import("@angular/core").InputSignal<FormFieldMap>;
96
96
  readonly formFieldMap: import("@angular/core").InputSignal<FormFieldMap>;
97
+ readonly formFieldKeys: import("@angular/core").InputSignal<string[]>;
97
98
  readonly data: import("@angular/core").Signal<any>;
98
99
  protected readonly formInvalid: import("@angular/core").Signal<boolean>;
99
100
  readonly actions: import("@angular/core").Signal<Action<any>[]>;
100
101
  constructor();
101
102
  static ɵfac: i0.ɵɵFactoryDeclaration<CommandPageStore, never>;
102
- static ɵdir: i0.ɵɵDirectiveDeclaration<CommandPageStore, never, never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; "navEndActions": { "alias": "navEndActions"; "required": false; "isSignal": true; }; "command": { "alias": "command"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "extractedFormFieldMap": { "alias": "extractedFormFieldMap"; "required": false; "isSignal": true; }; "additionalFormFieldMap": { "alias": "additionalFormFieldMap"; "required": false; "isSignal": true; }; "formFieldMap": { "alias": "formFieldMap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
103
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CommandPageStore, never, never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; "navEndActions": { "alias": "navEndActions"; "required": false; "isSignal": true; }; "command": { "alias": "command"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "extractedFormFieldMap": { "alias": "extractedFormFieldMap"; "required": false; "isSignal": true; }; "additionalFormFieldMap": { "alias": "additionalFormFieldMap"; "required": false; "isSignal": true; }; "formFieldMap": { "alias": "formFieldMap"; "required": false; "isSignal": true; }; "formFieldKeys": { "alias": "formFieldKeys"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
103
104
  }
104
105
  export declare class CommandPage extends NgAtomicComponent {
105
106
  protected readonly store: CommandPageStore;
@@ -1,20 +1,13 @@
1
- import { AuthService } from "@xxmachina/common/auth";
1
+ import { EnvironmentProviders, InjectionToken } from "@angular/core";
2
2
  import { Observable } from "rxjs";
3
3
  import * as i0 from "@angular/core";
4
+ export type QueryConfig = Record<string, string>;
5
+ export declare const QUERY_CONFIG: InjectionToken<Observable<QueryConfig>>;
6
+ export declare function provideQueryConfig(useFactory: () => Observable<QueryConfig>): EnvironmentProviders;
4
7
  export declare class QueryConfigService {
5
- readonly config: import("@angular/core").WritableSignal<{
6
- auth?: {
7
- accessToken?: string;
8
- };
9
- }>;
10
- readonly config$: Observable<{
11
- auth?: {
12
- accessToken?: string;
13
- };
14
- }>;
15
- readonly auth: AuthService;
16
- constructor();
17
- protected replace<T extends Record<string, any> | string>(params: T, _config: any): T;
8
+ readonly config$: Observable<QueryConfig>;
9
+ protected replaceText(text: string, config: QueryConfig): string;
10
+ protected replace<T extends Record<string, any> | string>(params: T, config: QueryConfig): T;
18
11
  resolve<T extends object>(params: T): Observable<T>;
19
12
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryConfigService, never>;
20
13
  static ɵprov: i0.ɵɵInjectableDeclaration<QueryConfigService>;