@xxmachina/components 19.0.0-preview.3 → 19.0.0-preview.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/query/query.feature.d.ts +2 -2
- package/fesm2022/xxmachina-components-features-command.mjs +2 -3
- package/fesm2022/xxmachina-components-features-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-features-query.mjs +2 -3
- package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs +1 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs +1 -1
- package/fesm2022/xxmachina-components-molecules-daily-cell.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-command.mjs +22 -6
- package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-query.mjs +7 -3
- package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-commands-command.routes-CeRVzy3Z.mjs → xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs} +4 -11
- package/fesm2022/xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs.map +1 -0
- package/fesm2022/{xxmachina-components-routes-commands-pages.routes-Cm6Yd40h.mjs → xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs} +4 -4
- package/fesm2022/xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-commands.mjs +5 -3
- package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs +3 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs +9 -0
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-CfrglCIL.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-queries.mjs +6 -4
- package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-query-pages.routes-H2vrF7kQ.mjs → xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs} +9 -9
- package/fesm2022/xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-query.mjs +4 -2
- package/fesm2022/xxmachina-components-routes-query.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-resources-pages.routes-BSjrrV1g.mjs → xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs} +4 -4
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-CzjQOxwT.mjs.map +1 -0
- package/fesm2022/{xxmachina-components-routes-resources-resource.routes-DzGgwitX.mjs → xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs} +3 -3
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-C5KpB3KM.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-resources.mjs +7 -5
- package/fesm2022/xxmachina-components-routes-resources.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes.mjs +4 -4
- package/fesm2022/xxmachina-components-routes.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-assistant.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-calendar.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-command.mjs +4 -6
- package/fesm2022/xxmachina-components-services-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-contract.mjs +1 -1
- package/fesm2022/xxmachina-components-services-contract.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs +1 -1
- package/fesm2022/xxmachina-components-services-forms-schedule.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-invoice.mjs +1 -1
- package/fesm2022/xxmachina-components-services-invoice.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-link.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-openapi.mjs +1 -1
- package/fesm2022/xxmachina-components-services-openapi.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-order.mjs +1 -1
- package/fesm2022/xxmachina-components-services-order.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-partner.mjs +1 -1
- package/fesm2022/xxmachina-components-services-partner.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-query-config.mjs +17 -18
- package/fesm2022/xxmachina-components-services-query-config.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-query.mjs +12 -2
- package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-schedule.mjs +1 -1
- package/fesm2022/xxmachina-components-services-schedule.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-thread.mjs +1 -1
- package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-scheduler.mjs +1 -1
- package/fesm2022/xxmachina-components-templates-scheduler.mjs.map +1 -1
- package/fesm2022/xxmachina-components-validators-query.mjs +6 -3
- package/fesm2022/xxmachina-components-validators-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components.mjs +1 -2
- package/fesm2022/xxmachina-components.mjs.map +1 -1
- package/molecules/daily-cell/daily-cell.molecule.d.ts +1 -1
- package/organisms/calendar-section/calendar-section.organism.d.ts +1 -1
- package/package.json +8 -8
- package/pages/command/command.page.d.ts +3 -1
- package/routes/commands/commands.routes.d.ts +1 -2
- package/routes/commands/index.d.ts +1 -1
- package/routes/commands/pages/command/command.routes.d.ts +2 -2
- package/routes/commands/pages/pages.routes.d.ts +1 -2
- package/routes/pages/index.d.ts +1 -1
- package/routes/pages/pages.routes.d.ts +1 -2
- package/routes/queries/index.d.ts +1 -1
- package/routes/queries/pages/pages.routes.d.ts +1 -2
- package/routes/queries/queries.routes.d.ts +1 -2
- package/routes/query/index.d.ts +1 -1
- package/routes/query/pages/pages.routes.d.ts +1 -2
- package/routes/query/query.routes.d.ts +1 -2
- package/routes/resources/index.d.ts +1 -1
- package/routes/resources/pages/pages.routes.d.ts +1 -2
- package/routes/resources/pages/resource/resource.routes.d.ts +1 -2
- package/routes/resources/resources.routes.d.ts +1 -2
- package/services/assistant/assistant.service.d.ts +1 -1
- package/services/calendar/calendar.service.d.ts +1 -1
- package/services/command/command.service.d.ts +2 -2
- package/services/forms/schedule/schedule.service.d.ts +1 -1
- package/services/invoice/invoice.service.d.ts +1 -1
- package/services/link/link.service.d.ts +1 -1
- package/services/openapi/openapi.service.d.ts +1 -1
- package/services/order/order.service.d.ts +1 -1
- package/services/query-config/query-config.service.d.ts +7 -19
- package/services/schedule/schedule.service.d.ts +1 -1
- package/fesm2022/xxmachina-components-routes-commands-command.routes-CeRVzy3Z.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-commands-pages.routes-Cm6Yd40h.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-BfWsTCij.mjs +0 -9
- package/fesm2022/xxmachina-components-routes-queries-pages.routes-BfWsTCij.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-query-pages.routes-H2vrF7kQ.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-pages.routes-BSjrrV1g.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-DzGgwitX.mjs.map +0 -1
|
@@ -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,
|
|
81
|
-
readonly variablesValue: import("@angular/core").Signal<Record<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>;
|
|
@@ -79,11 +79,10 @@ class CommandFeature {
|
|
|
79
79
|
return this._commandService.execute(command, data);
|
|
80
80
|
}
|
|
81
81
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandFeature, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
82
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandFeature
|
|
82
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandFeature }); }
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandFeature, decorators: [{
|
|
85
|
-
type: Injectable
|
|
86
|
-
args: [{ providedIn: 'any' }]
|
|
85
|
+
type: Injectable
|
|
87
86
|
}] });
|
|
88
87
|
|
|
89
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-features-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/command/command.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/command/xxmachina-components-features-command.ts"],"sourcesContent":["import { computed, inject, Injectable } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed } from '@ng-atomic/core';\nimport { JsonSchemaFormService } from '@ng-atomic/common/services/form/json-schema';\nimport { OpenApi } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { OpenApiService } from '@xxmachina/components/services/openapi';\nimport { switchMap, catchError, of, filter, NEVER } from 'rxjs';\nimport { derivedAsync } from 'ngxtension/derived-async';\n\n\n@Injectable({
|
|
1
|
+
{"version":3,"file":"xxmachina-components-features-command.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/command/command.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/command/xxmachina-components-features-command.ts"],"sourcesContent":["import { computed, inject, Injectable } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed } from '@ng-atomic/core';\nimport { JsonSchemaFormService } from '@ng-atomic/common/services/form/json-schema';\nimport { OpenApi } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\nimport { OpenApiService } from '@xxmachina/components/services/openapi';\nimport { switchMap, catchError, of, filter, NEVER } from 'rxjs';\nimport { derivedAsync } from 'ngxtension/derived-async';\n\n\n@Injectable({providedIn: 'root'})\nexport class CommandFormBuilder {\n protected readonly fb = inject(FormBuilder).nonNullable;\n build() {\n return this.fb.group({\n type: ['webApiRequest'],\n webApiRequest: this.fb.group({\n apiJsonUrl: [''],\n serverUrl: [''],\n path: [''],\n method: [''],\n }),\n });\n }\n}\n\n@Injectable()\nexport class CommandFeature {\n readonly fb = inject(FormBuilder);\n readonly openApiService = inject(OpenApiService);\n readonly _commandService = inject(CommandService);\n readonly commandFb = inject(CommandFormBuilder);\n readonly jsonSchemaFb = inject(JsonSchemaFormService);\n\n readonly commandForm = computed(() => this.commandFb.build());\n readonly commandFormValue = derivedAsync(() => this.commandForm().valueChanges, { initialValue: this.commandForm().value });\n readonly apiJsonUrl = computed(() => this.commandFormValue()?.webApiRequest?.apiJsonUrl);\n readonly path = computed(() => this.commandFormValue()?.webApiRequest?.path);\n readonly method = computed(() => this.commandFormValue()?.webApiRequest?.method?.toLowerCase());\n readonly requestBodySchema = computed(() => this.openApi().getRequestBodySchema(this.path(), this.method()));\n readonly title = computed(() => this.openApi().getSummary(this.path(), this.method()));\n readonly endpointAutoCompleteOptions = computed(() => {\n return this.openApi().getEndpoints().filter((endpoint) => endpoint.startsWith(this.path()));\n });\n readonly methodOptions = computed(() => {\n return this.openApi().getMethods(this.commandFormValue()?.webApiRequest?.path ?? '').map((method) => ({\n name: method.toLocaleUpperCase(), value: method.toLocaleUpperCase()\n }));\n });\n\n readonly openApi = derivedAsync(() => {\n const url = this.apiJsonUrl();\n return of(url).pipe(\n filter((url) => !!url),\n switchMap(() => this.openApiService.getOpenApi(url).pipe(\n catchError((error) => (console.error(error), NEVER)),\n )),\n );\n }, { \n initialValue: new OpenApi({\n openapi: '3.0.0',\n apiJsonUrl: '/api-json',\n info: { title: 'dummy', version: '1.0.0' },\n paths: {},\n }),\n });\n readonly form = computed(() => this.jsonSchemaFb.build(this.requestBodySchema(), {fb: this.fb}));\n readonly extractedFormFieldMap = computed(() => this.jsonSchemaFb.buildFieldMap(this.requestBodySchema(), {\n merge: {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }\n }));\n\n hasPermission(command: Command): boolean {\n return this._commandService.hasPermission(command);\n }\n\n execute(command: Command, data: any) {\n return this._commandService.execute(command, data);\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -152,11 +152,10 @@ class QueryFeature {
|
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryFeature, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
155
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryFeature
|
|
155
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryFeature }); }
|
|
156
156
|
}
|
|
157
157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryFeature, decorators: [{
|
|
158
|
-
type: Injectable
|
|
159
|
-
args: [{ providedIn: 'any' }]
|
|
158
|
+
type: Injectable
|
|
160
159
|
}], ctorParameters: () => [] });
|
|
161
160
|
|
|
162
161
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-features-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/query/query.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/xxmachina-components-features-query.ts"],"sourcesContent":["import { inject, Injectable, Provider } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { FormBuilder, FormGroup, NonNullableFormBuilder } from \"@angular/forms\";\nimport { AuthService } from \"@xxmachina/common/auth\";\nimport { Query, QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryFormService } from \"@xxmachina/components/services/forms/query\";\nimport { QueryService } from \"@xxmachina/components/services/query\";\nimport { AppService } from \"@ng-atomic/common/services/app\";\nimport { JsonSchemaFormUtils } from \"@ng-atomic/common/services/form/json-schema\";\nimport { injectEntityStore } from \"@ng-atomic/common/stores/entities\";\nimport { getValue$ } from \"@ng-atomic/common/utils\";\nimport { provideEffect } from \"@ng-atomic/core\";\nimport { createSchema } from \"genson-js/dist\";\nimport { isEqual } from \"lodash-es\";\nimport { catchError, combineLatest, debounceTime, distinctUntilChanged, filter, map, NEVER, of, ReplaySubject, shareReplay, switchMap, take, tap } from \"rxjs\";\nimport dayjs from \"dayjs\";\n\nexport function buildVariablesForm(value, fb: FormBuilder | NonNullableFormBuilder): FormGroup {\n const _value = JsonSchemaFormUtils.removeObjectPercent(value);\n const schema = createSchema(value);\n if (!schema) return fb.group({});\n return JsonSchemaFormUtils.buildFormByJsonSchema(schema, { fb, value: _value }).form;\n}\n\nexport enum ActionId {\n クエリの実行 = 'クエリの実行',\n クエリの生成 = 'クエリの生成',\n クエリの更新 = 'クエリの更新',\n}\n\n@Injectable({providedIn: 'any'})\nexport class QueryFeature {\n static readonly ActionId = ActionId;\n static provideUpdateQueryEffect(): Provider {\n return [\n provideEffect(ActionId.クエリの更新, () => {\n const feature = inject(QueryFeature);\n return () => feature.update();\n }),\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryFeature.provideExecuteQueryEffect(),\n QueryFeature.provideGenerateQueryEffect(),\n QueryFeature.provideUpdateQueryEffect(),\n ]\n }\n\n static provideExecuteQueryEffect() {\n return provideEffect(ActionId.クエリの実行, () => {\n const feature = inject(QueryFeature);\n const app = inject(AppService);\n const entityStore = injectEntityStore(Query);\n return () => {\n const value = feature.form.getRawValue();\n app.loading.await(() => entityStore.create({\n ...value,\n id: undefined,\n type: 'graphql',\n projectId: 'default',\n title: dayjs().toISOString(),\n summary: 'クエリの実行',\n createdAt: null,\n updatedAt: null,\n }), 'progress');\n feature.refresh();\n }\n });\n }\n\n static provideGenerateQueryEffect(): Provider {\n return provideEffect(ActionId.クエリの生成, () => {\n const app = inject(AppService);\n const query = inject(QueryService);\n const feature = inject(QueryFeature);\n return (instructions: string) => {\n app.loading.await(() => {\n return query.generate(instructions).then((result) => {\n feature.form.get(['query']).setValue(result.query);\n }).then((query) => {\n // this.dispatch({\n // id: ActionId.クエリの実行,\n // payload: query,\n // });\n }).catch((error) => {\n console.error('error:', error);\n });\n });\n };\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly auth = inject(AuthService);\n protected readonly service = inject(QueryService);\n readonly refresh$ = new ReplaySubject<void>();\n protected readonly fb = inject(FormBuilder).nonNullable;\n readonly form = inject(QueryFormService).build();\n protected readonly query$ = getValue$(this.form).pipe(shareReplay(1));\n readonly query = toSignal(this.query$);\n\n readonly parsedQuery$ = this.query$.pipe(\n map((query) => QueryFormService.parse(query)),\n tap((query) => console.debug('[QueryFeature][parsedQuery$] parsedQuery:', query)),\n shareReplay(1),\n );\n readonly parsedQuery = toSignal(this.parsedQuery$);\n\n protected readonly graphqlSchema$ = this.parsedQuery$.pipe(\n debounceTime(300),\n map((query) => ({\n endpoint: query?.graphql?.endpoint,\n headers: QueryHelper.tryParseJson(query?.graphql?.headersJson)\n })),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n filter(({endpoint}) => !!endpoint),\n switchMap(({endpoint, headers}) => this.service.subscribeSchema(endpoint, { headers }).pipe(\n catchError(error => (console.error('[QueryFeature] error', error), NEVER)),\n )),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n filter((result: any) => result?.['data']),\n map((result) => result?.['data']),\n );\n // readonly graphqlSchema$ = of(null);\n readonly graphqlSchema = toSignal(this.graphqlSchema$);\n\n readonly validatedQuery$ = this.parsedQuery$.pipe(\n filter((query) => QueryHelper.validate(query as Query)),\n shareReplay(1),\n tap((query) => console.debug('[QueryFeature][validatedQuery$] validatedQuery:', query)),\n );\n readonly validatedQuery = toSignal(this.validatedQuery$);\n\n protected readonly result$ = this.refresh$.pipe(\n switchMap(() => this.auth.accessToken$.pipe(\n filter(accessToken => !!accessToken),\n )),\n switchMap(() => this.validatedQuery$.pipe(take(1))),\n tap((query) => console.debug('[QueryFeature][result$] execution:', query)),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n debounceTime(500),\n this.app.loading.switchMap((query) => this.service.subscribeQuery(query).pipe(\n catchError(error => {\n this.app.snackBar.openError(error);\n console.error(error);\n return of(null);\n }),\n ), 'progress'),\n filter((result) => !!result),\n shareReplay(1),\n );\n readonly result = toSignal<Record<string, any[]>>(this.result$);\n\n protected readonly variablesValue$ = this.parsedQuery$.pipe(\n map((query) => query?.graphql?.variables ?? {}),\n shareReplay(1),\n );\n readonly variablesValue = toSignal(this.variablesValue$, {initialValue: {}});\n\n readonly variablesForm$ = this.variablesValue$.pipe(\n map((value) => buildVariablesForm(value, this.fb)),\n shareReplay(1),\n );\n readonly variablesForm = toSignal(this.variablesForm$);\n\n readonly variablesFormValue$ = new ReplaySubject<any>(1);\n\n protected readonly overwriteVariablesJson$ = combineLatest({\n current: this.variablesFormValue$,\n pre: this.form.get(['graphql', 'variablesJson']).valueChanges.pipe(\n map((value) => JSON.parse(value)),\n ),\n }).pipe(\n takeUntilDestroyed(),\n filter(({current}) => !!current),\n map(({current, pre}) => ({pre, next: QueryHelper.overwrite(current, pre)})),\n filter(({pre, next}) => JSON.stringify(pre) !== JSON.stringify(next)),\n map(({next}) => JSON.stringify(next, null, 2)),\n shareReplay(1),\n );\n\n constructor() {\n this.form.get(['graphql', 'variablesJson']).valueChanges.pipe(\n takeUntilDestroyed(),\n debounceTime(300),\n distinctUntilChanged(isEqual),\n ).subscribe(() => {\n this.refresh();\n });\n\n this.overwriteVariablesJson$.subscribe((overwriteVariablesJson) => {\n this.form.get(['graphql', 'variablesJson']).setValue(overwriteVariablesJson);\n });\n }\n\n refresh(): void {\n this.refresh$.next();\n }\n protected entity = injectEntityStore(Query);\n\n update() {\n const value = this.form.getRawValue();\n this.app.loading.await(() => {\n return this.entity.save({\n ...value,\n projectId: 'default',\n summary: 'deprecated',\n type: 'graphql',\n createdAt: undefined,\n updatedAt: undefined,\n }).then(() => {\n this.app.snackBar.open('クエリを更新しました');\n }).catch((error) => {\n console.error(error);\n this.app.snackBar.open(`ERROR: ${error.message}`);\n });\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-features-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/query/query.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/xxmachina-components-features-query.ts"],"sourcesContent":["import { inject, Injectable, Provider } from \"@angular/core\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { FormBuilder, FormGroup, NonNullableFormBuilder } from \"@angular/forms\";\nimport { AuthService } from \"@xxmachina/common/auth\";\nimport { Query, QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryFormService } from \"@xxmachina/components/services/forms/query\";\nimport { QueryService } from \"@xxmachina/components/services/query\";\nimport { AppService } from \"@ng-atomic/common/services/app\";\nimport { JsonSchemaFormUtils } from \"@ng-atomic/common/services/form/json-schema\";\nimport { injectEntityStore } from \"@ng-atomic/common/stores/entities\";\nimport { getValue$ } from \"@ng-atomic/common/utils\";\nimport { provideEffect } from \"@ng-atomic/core\";\nimport { createSchema } from \"genson-js/dist\";\nimport { isEqual } from \"lodash-es\";\nimport { catchError, combineLatest, debounceTime, distinctUntilChanged, filter, map, NEVER, of, ReplaySubject, shareReplay, switchMap, take, tap } from \"rxjs\";\nimport dayjs from \"dayjs\";\n\nexport function buildVariablesForm(value, fb: FormBuilder | NonNullableFormBuilder): FormGroup {\n const _value = JsonSchemaFormUtils.removeObjectPercent(value);\n const schema = createSchema(value);\n if (!schema) return fb.group({});\n return JsonSchemaFormUtils.buildFormByJsonSchema(schema, { fb, value: _value }).form;\n}\n\nexport enum ActionId {\n クエリの実行 = 'クエリの実行',\n クエリの生成 = 'クエリの生成',\n クエリの更新 = 'クエリの更新',\n}\n\n@Injectable()\nexport class QueryFeature {\n static readonly ActionId = ActionId;\n static provideUpdateQueryEffect(): Provider {\n return [\n provideEffect(ActionId.クエリの更新, () => {\n const feature = inject(QueryFeature);\n return () => feature.update();\n }),\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryFeature.provideExecuteQueryEffect(),\n QueryFeature.provideGenerateQueryEffect(),\n QueryFeature.provideUpdateQueryEffect(),\n ]\n }\n\n static provideExecuteQueryEffect() {\n return provideEffect(ActionId.クエリの実行, () => {\n const feature = inject(QueryFeature);\n const app = inject(AppService);\n const entityStore = injectEntityStore(Query);\n return () => {\n const value = feature.form.getRawValue();\n app.loading.await(() => entityStore.create({\n ...value,\n id: undefined,\n type: 'graphql',\n projectId: 'default',\n title: dayjs().toISOString(),\n summary: 'クエリの実行',\n createdAt: null,\n updatedAt: null,\n }), 'progress');\n feature.refresh();\n }\n });\n }\n\n static provideGenerateQueryEffect(): Provider {\n return provideEffect(ActionId.クエリの生成, () => {\n const app = inject(AppService);\n const query = inject(QueryService);\n const feature = inject(QueryFeature);\n return (instructions: string) => {\n app.loading.await(() => {\n return query.generate(instructions).then((result) => {\n feature.form.get(['query']).setValue(result.query);\n }).then((query) => {\n // this.dispatch({\n // id: ActionId.クエリの実行,\n // payload: query,\n // });\n }).catch((error) => {\n console.error('error:', error);\n });\n });\n };\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly auth = inject(AuthService);\n protected readonly service = inject(QueryService);\n readonly refresh$ = new ReplaySubject<void>();\n protected readonly fb = inject(FormBuilder).nonNullable;\n readonly form = inject(QueryFormService).build();\n protected readonly query$ = getValue$(this.form).pipe(shareReplay(1));\n readonly query = toSignal(this.query$);\n\n readonly parsedQuery$ = this.query$.pipe(\n map((query) => QueryFormService.parse(query)),\n tap((query) => console.debug('[QueryFeature][parsedQuery$] parsedQuery:', query)),\n shareReplay(1),\n );\n readonly parsedQuery = toSignal(this.parsedQuery$);\n\n protected readonly graphqlSchema$ = this.parsedQuery$.pipe(\n debounceTime(300),\n map((query) => ({\n endpoint: query?.graphql?.endpoint,\n headers: QueryHelper.tryParseJson(query?.graphql?.headersJson)\n })),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n filter(({endpoint}) => !!endpoint),\n switchMap(({endpoint, headers}) => this.service.subscribeSchema(endpoint, { headers }).pipe(\n catchError(error => (console.error('[QueryFeature] error', error), NEVER)),\n )),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n filter((result: any) => result?.['data']),\n map((result) => result?.['data']),\n );\n // readonly graphqlSchema$ = of(null);\n readonly graphqlSchema = toSignal(this.graphqlSchema$);\n\n readonly validatedQuery$ = this.parsedQuery$.pipe(\n filter((query) => QueryHelper.validate(query as Query)),\n shareReplay(1),\n tap((query) => console.debug('[QueryFeature][validatedQuery$] validatedQuery:', query)),\n );\n readonly validatedQuery = toSignal(this.validatedQuery$);\n\n protected readonly result$ = this.refresh$.pipe(\n switchMap(() => this.auth.accessToken$.pipe(\n filter(accessToken => !!accessToken),\n )),\n switchMap(() => this.validatedQuery$.pipe(take(1))),\n tap((query) => console.debug('[QueryFeature][result$] execution:', query)),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n debounceTime(500),\n this.app.loading.switchMap((query) => this.service.subscribeQuery(query).pipe(\n catchError(error => {\n this.app.snackBar.openError(error);\n console.error(error);\n return of(null);\n }),\n ), 'progress'),\n filter((result) => !!result),\n shareReplay(1),\n );\n readonly result = toSignal<Record<string, any[]>>(this.result$);\n\n protected readonly variablesValue$ = this.parsedQuery$.pipe(\n map((query) => query?.graphql?.variables ?? {}),\n shareReplay(1),\n );\n readonly variablesValue = toSignal(this.variablesValue$, {initialValue: {}});\n\n readonly variablesForm$ = this.variablesValue$.pipe(\n map((value) => buildVariablesForm(value, this.fb)),\n shareReplay(1),\n );\n readonly variablesForm = toSignal(this.variablesForm$);\n\n readonly variablesFormValue$ = new ReplaySubject<any>(1);\n\n protected readonly overwriteVariablesJson$ = combineLatest({\n current: this.variablesFormValue$,\n pre: this.form.get(['graphql', 'variablesJson']).valueChanges.pipe(\n map((value) => JSON.parse(value)),\n ),\n }).pipe(\n takeUntilDestroyed(),\n filter(({current}) => !!current),\n map(({current, pre}) => ({pre, next: QueryHelper.overwrite(current, pre)})),\n filter(({pre, next}) => JSON.stringify(pre) !== JSON.stringify(next)),\n map(({next}) => JSON.stringify(next, null, 2)),\n shareReplay(1),\n );\n\n constructor() {\n this.form.get(['graphql', 'variablesJson']).valueChanges.pipe(\n takeUntilDestroyed(),\n debounceTime(300),\n distinctUntilChanged(isEqual),\n ).subscribe(() => {\n this.refresh();\n });\n\n this.overwriteVariablesJson$.subscribe((overwriteVariablesJson) => {\n this.form.get(['graphql', 'variablesJson']).setValue(overwriteVariablesJson);\n });\n }\n\n refresh(): void {\n this.refresh$.next();\n }\n protected entity = injectEntityStore(Query);\n\n update() {\n const value = this.form.getRawValue();\n this.app.loading.await(() => {\n return this.entity.save({\n ...value,\n projectId: 'default',\n summary: 'deprecated',\n type: 'graphql',\n createdAt: undefined,\n updatedAt: undefined,\n }).then(() => {\n this.app.snackBar.open('クエリを更新しました');\n }).catch((error) => {\n console.error(error);\n this.app.snackBar.open(`ERROR: ${error.message}`);\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ class QueryFormGroup extends NgAtomicComponent {
|
|
|
73
73
|
/>
|
|
74
74
|
</ng-template>
|
|
75
75
|
</frames-tabs>
|
|
76
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;padding-top:24px;box-sizing:border-box;height:100%}:host frames-tabs{height:100%}:host frames-tabs extras-editor{height:100%}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "extras-editor" }, { kind: "component", type: TextInputSectionOrganism, selector: "organisms-text-input-section" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;padding-top:24px;box-sizing:border-box;height:100%}:host frames-tabs{height:100%}:host frames-tabs extras-editor{height:100%}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "extras-editor" }, { kind: "component", type: TextInputSectionOrganism, selector: "organisms-text-input-section" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77
77
|
}
|
|
78
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: QueryFormGroup, decorators: [{
|
|
79
79
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-groups-query-form.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/groups/query-form/query-form.group.ts","../../../../../packages/@xxmachina/components/src/lib/groups/query-form/xxmachina-components-groups-query-form.ts"],"sourcesContent":["import { Component, inject, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport { Extension } from '@codemirror/state';\nimport { buildClientSchema } from 'graphql';\nimport { EditorComponent } from \"@ng-atomic/components/extras/editor\";\nimport { _computed, NgAtomicComponent } from '@ng-atomic/core';\nimport { TextInputSectionOrganism } from '@ng-atomic/components/organisms/text-input-section';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { json } from '@codemirror/lang-json';\nimport { Resource } from '@xxmachina/common/domain/models';\nimport { graphql } from 'cm6-graphql';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { injectAll } from '@ng-atomic/common/stores/entities';\n\n@Component({\n selector: 'groups-query-form',\n imports: [\n EditorComponent,\n TextInputSectionOrganism,\n TabsFrame,\n ],\n template: `\n <organisms-text-input-section\n [label]=\"'GraphQL Endpoint'\"\n [control]=\"feature.form.get(['graphql', 'endpoint'])\"\n [placeholder]=\"'http://localhost:4200/api/graphql'\"\n [autoComplete]=\"endpointAutoCompleteOptions()\"\n [hint]=\"'スキーマ取得完了'\"\n />\n <frames-tabs [labels]=\"['Query', 'Variables', 'Headers']\">\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'query']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'query']).setValue($event)\"\n [extensions]=\"queryExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'variablesJson']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'variablesJson']).setValue($event)\"\n [extensions]=\"variablesExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'headersJson']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'headersJson']).setValue($event)\"\n [extensions]=\"headersExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs>\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: column;\n padding-top: 24px;\n box-sizing: border-box;\n height: 100%;\n\n frames-tabs {\n height: 100%;\n\n extras-editor {\n height: 100%;\n }\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class QueryFormGroup extends NgAtomicComponent {\n protected readonly feature = inject(QueryFeature);\n protected readonly keyActions = input([\n { key: 'Ctrl-Enter', actionId: QueryFeature.ActionId.クエリの実行 },\n { key: 'Cmd-Enter', actionId: QueryFeature.ActionId.クエリの実行 },\n { key: 'Cmd-s', actionId: QueryFeature.ActionId.クエリの更新 },\n ]);\n protected readonly resources = injectAll(Resource);\n\n readonly endpointAutoCompleteOptions = computed(() => {\n const query = this.feature.query();\n return this.resources()\n .filter(resource => resource.type === 'graphql')\n .map(resource => resource.graphql.url)\n .filter(url => url.startsWith(query.graphql.endpoint));\n });\n readonly queryExtensions = computed<Extension[]>(() => {\n const schema = this.feature.graphqlSchema();\n return schema ? [graphql(buildClientSchema(schema))] : [];\n });\n readonly variablesExtensions = computed(() => [json()]);\n readonly headersExtensions = computed(() => [json()]);\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-groups-query-form.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/groups/query-form/query-form.group.ts","../../../../../packages/@xxmachina/components/src/lib/groups/query-form/xxmachina-components-groups-query-form.ts"],"sourcesContent":["import { Component, inject, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport { Extension } from '@codemirror/state';\nimport { buildClientSchema } from 'graphql';\nimport { EditorComponent } from \"@ng-atomic/components/extras/editor\";\nimport { _computed, NgAtomicComponent } from '@ng-atomic/core';\nimport { TextInputSectionOrganism } from '@ng-atomic/components/organisms/text-input-section';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { json } from '@codemirror/lang-json';\nimport { Resource } from '@xxmachina/common/domain/models';\nimport { graphql } from 'cm6-graphql';\nimport { QueryFeature } from '@xxmachina/components/features/query';\nimport { injectAll } from '@ng-atomic/common/stores/entities';\n\n@Component({\n selector: 'groups-query-form',\n imports: [\n EditorComponent,\n TextInputSectionOrganism,\n TabsFrame,\n ],\n template: `\n <organisms-text-input-section\n [label]=\"'GraphQL Endpoint'\"\n [control]=\"feature.form.get(['graphql', 'endpoint'])\"\n [placeholder]=\"'http://localhost:4200/api/graphql'\"\n [autoComplete]=\"endpointAutoCompleteOptions()\"\n [hint]=\"'スキーマ取得完了'\"\n />\n <frames-tabs [labels]=\"['Query', 'Variables', 'Headers']\">\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'query']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'query']).setValue($event)\"\n [extensions]=\"queryExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'variablesJson']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'variablesJson']).setValue($event)\"\n [extensions]=\"variablesExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n <ng-template #tab>\n <extras-editor\n [content]=\"feature.form.get(['graphql', 'headersJson']).value\"\n (contentChange)=\"feature.form.get(['graphql', 'headersJson']).setValue($event)\"\n [extensions]=\"headersExtensions()\"\n [keyActions]=\"keyActions()\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs>\n `,\n styles: `\n :host {\n display: flex;\n flex-direction: column;\n padding-top: 24px;\n box-sizing: border-box;\n height: 100%;\n\n frames-tabs {\n height: 100%;\n\n extras-editor {\n height: 100%;\n }\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class QueryFormGroup extends NgAtomicComponent {\n protected readonly feature = inject(QueryFeature);\n protected readonly keyActions = input([\n { key: 'Ctrl-Enter', actionId: QueryFeature.ActionId.クエリの実行 },\n { key: 'Cmd-Enter', actionId: QueryFeature.ActionId.クエリの実行 },\n { key: 'Cmd-s', actionId: QueryFeature.ActionId.クエリの更新 },\n ]);\n protected readonly resources = injectAll(Resource);\n\n readonly endpointAutoCompleteOptions = computed(() => {\n const query = this.feature.query();\n return this.resources()\n .filter(resource => resource.type === 'graphql')\n .map(resource => resource.graphql.url)\n .filter(url => url.startsWith(query.graphql.endpoint));\n });\n readonly queryExtensions = computed<Extension[]>(() => {\n const schema = this.feature.graphqlSchema();\n return schema ? [graphql(buildClientSchema(schema))] : [];\n });\n readonly variablesExtensions = computed(() => [json()]);\n readonly headersExtensions = computed(() => [json()]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/material/tooltip';
|
|
6
6
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
7
|
-
import { Schedule, isConflict } from '@xxmachina/common/domain/models
|
|
7
|
+
import { Schedule, isConflict } from '@xxmachina/common/domain/models';
|
|
8
8
|
import dayjs from 'dayjs';
|
|
9
9
|
|
|
10
10
|
class PercentagePipe {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-molecules-daily-cell.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/molecules/daily-cell/daily-cell.molecule.ts","../../../../../packages/@xxmachina/components/src/lib/molecules/daily-cell/xxmachina-components-molecules-daily-cell.ts"],"sourcesContent":["import { Component, Input, Pipe, PipeTransform } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Schedule, isConflict } from '@xxmachina/common/domain/models
|
|
1
|
+
{"version":3,"file":"xxmachina-components-molecules-daily-cell.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/molecules/daily-cell/daily-cell.molecule.ts","../../../../../packages/@xxmachina/components/src/lib/molecules/daily-cell/xxmachina-components-molecules-daily-cell.ts"],"sourcesContent":["import { Component, Input, Pipe, PipeTransform } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Schedule, isConflict } from '@xxmachina/common/domain/models';\nimport dayjs from 'dayjs';\n\n@Pipe({standalone: true, name: 'percentage'})\nexport class PercentagePipe implements PipeTransform {\n transform(date: dayjs.Dayjs, base: dayjs.Dayjs) {\n if (date.date() > base.date()) return 100;\n const day = 60 * 60 * 24;\n return (date.hour() * 60 * 60 + date.minute() * 60 + date.second()) / day * 100;\n }\n}\n\n@Pipe({standalone: true, name: 'filterByDate', pure: true})\nexport class FilterByDatePipe implements PipeTransform {\n transform(schedules: Schedule[], date: dayjs.Dayjs = dayjs()) {\n const dateSchedule = Schedule.from({\n id: null,\n startAt: date?.clone()?.startOf('day'),\n endAt: date?.clone()?.endOf('day'),\n });\n const filtered = schedules.filter(schedule => {\n return isConflict(schedule, dateSchedule)\n });\n return filtered;\n }\n}\n\n@Pipe({standalone: true, name: 'tooltipText', pure: true})\nexport class ScheduleToolTipTextPipe implements PipeTransform {\n transform(schedule: Schedule): string {\n return `${schedule.startAt.format('HH:mm')} ~ ${schedule.endAt.format('HH:mm')} ${schedule.name} `;\n }\n}\n\n@Component({\n standalone: true,\n selector: 'molecules-daily-cell',\n imports: [\n CommonModule,\n MatTooltipModule,\n PercentagePipe,\n FilterByDatePipe,\n ScheduleToolTipTextPipe,\n ],\n template: `\n <div class=\"background\">\n <div \n class=\"schedule-band\" \n *ngFor=\"let schedule of schedules | filterByDate:date;\"\n [matTooltip]=\"schedule | tooltipText\"\n matTooltipPosition=\"above\"\n [style.background-color]=\"schedule?.color ?? '#F2E7FE'\"\n [style.left.%]=\"schedule.startAt | percentage:date\"\n [style.width.%]=\"(schedule.endAt | percentage:date) - (schedule.startAt | percentage:date)\"\n ></div>\n </div>\n\n <div class=\"date box\" [ngStyle]=\"{\n 'background-color': marked && markingColor,\n 'color': marked && 'white'\n }\">\n <span class=\"date\" *ngIf=\"displayDate\">{{ date | date: 'd' }}</span>\n </div>\n\n <!-- <div class=\"schedules-container\">\n <span *ngFor=\"let schedule of schedules | filterByDate:date;\">\n {{ getScheduleText(schedule) }}\n </span>\n <span *ngIf=\"!schedules?.length\">{{ noSchedulesText }}</span>\n </div> -->\n `,\n styleUrls: ['./daily-cell.molecule.scss']\n})\nexport class DailyCellMolecule {\n\n @Input() date: dayjs.Dayjs;\n @Input() schedules: Schedule[];\n @Input() displayDate = true;\n @Input() noSchedulesText = 'noSchedulesText'\n @Input() toolTipText = 'toolTipText';\n @Input() marked = 'transparent';\n @Input() markingColor = 'red';\n\n getScheduleText(schedule: Schedule) {\n return `${getTimeText(schedule.startAt)} ~ ${getTimeText(schedule.endAt, schedule.startAt)}`;\n }\n\n getToolTipText(schedules: Schedule[]): string {\n return schedules.map(s => this.getScheduleText(s)).join(' ');\n }\n\n}\n\nfunction getTimeText(time: dayjs.Dayjs, base: dayjs.Dayjs = time) {\n return (base.isBefore(time) && time.format('HH:mm') === '00:00')\n ? '24:00'\n : time.format('HH:mm');\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -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-
|
|
15
|
+
`, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-QTFaTiU8: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-QTFaTiU8: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-QTFaTiU8)}: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-
|
|
25
|
+
`, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-QTFaTiU8: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-QTFaTiU8: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-QTFaTiU8)}: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-
|
|
61
|
+
`, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-S8L2aIle: var(--row);--row-num: 0;--row-num-SCOPED-IN-S8L2aIle: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-S8L2aIle: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-S8L2aIle: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-S8L2aIle: 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-S8L2aIle);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-S8L2aIle),var(--row-SCOPED-IN-S8L2aIle));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-S8L2aIle)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-S8L2aIle);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-
|
|
95
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-S8L2aIle: var(--row);--row-num: 0;--row-num-SCOPED-IN-S8L2aIle: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-S8L2aIle: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-S8L2aIle: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-S8L2aIle: 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-S8L2aIle);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-S8L2aIle),var(--row-SCOPED-IN-S8L2aIle));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-S8L2aIle)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-S8L2aIle);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: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-organisms-calendar-section.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/calendar-section/calendar-section.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/calendar-section/xxmachina-components-organisms-calendar-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, inject, OnChanges } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { CommonModule } from '@angular/common';\nimport { CalendarDate, Schedule } from '@xxmachina/common/domain/models
|
|
1
|
+
{"version":3,"file":"xxmachina-components-organisms-calendar-section.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/organisms/calendar-section/calendar-section.organism.ts","../../../../../packages/@xxmachina/components/src/lib/organisms/calendar-section/xxmachina-components-organisms-calendar-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, inject, OnChanges } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { CommonModule } from '@angular/common';\nimport { CalendarDate, Schedule } from '@xxmachina/common/domain/models';\nimport { DailyCellMolecule } from '@xxmachina/components/molecules/daily-cell';\nimport { CalendarPaginatorMolecule } from '@xxmachina/components/molecules/calendar-paginator';\nimport { WeeklyHeaderMolecule } from '@xxmachina/components/molecules/weekly-header';\nimport dayjs from 'dayjs';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n CalendarPaginatorMolecule,\n DailyCellMolecule,\n WeeklyHeaderMolecule,\n MatRippleModule\n ],\n selector: 'organisms-calendar-section',\n template: `\n <!-- <molecules-calendar-paginator\n *ngIf=\"displayPaginator\"\n [date]=\"date\"\n (dateChange)=\"dateChange.emit($event)\"\n /> -->\n <div class=\"calendar header\">\n <molecules-weekly-header/>\n </div>\n <div class=\"calendar contents\">\n <ng-container *ngFor=\"let week of calendar;\">\n <molecules-daily-cell \n *ngFor=\"let date of week;\"\n [date]=\"date.date\"\n [schedules]=\"schedules\"\n [displayDate]=\"displayDays\"\n [marked]=\"isToday(date) || isEndDay(date)\"\n [markingColor]=\"isToday(date) ? '#6200EE' : isEndDay(date) ? '#B00020' : 'transparent'\"\n noSchedulesText=\"予定なし\"\n matRipple\n (click)=\"onDateClick.emit(date)\"\n ></molecules-daily-cell>\n </ng-container>\n </div>\n `,\n styleUrls: ['./calendar-section.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarSectionOrganism implements OnChanges {\n private el = inject(ElementRef);\n @Input() label = 'label';\n @Input() displayDays = true;\n @Input() readonly calendar: CalendarDate[][];\n @Input() schedules: Schedule[] = [];\n @Input() date = dayjs()\n @Input() today = dayjs();\n @Input() displayPaginator = true;\n @Input() displayDescription = true;\n @Output() onDateClick = new EventEmitter();\n @Output() dateChange = new EventEmitter();\n\n\n isToday(date: CalendarDate): boolean {\n return !!date.date.isSame(dayjs(), 'day');\n }\n\n isEndDay(date: CalendarDate): boolean {\n return !!date.date.isSame(dayjs().add(10, 'days'), 'day');\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.calendar) {\n this.el.nativeElement.style.setProperty('--row-num', this.calendar?.length || 0);\n }\n }\n\n // getToolTipText(date: CalendarDate): string {\n // return date.schedules.map(s => {\n // return `${s.startAt.format('HH:mm')}~${s.endAt.format('HH:mm')}`\n // }).join(' ');\n // }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MA+Ca,uBAAuB,CAAA;AAtCpC,IAAA,WAAA,GAAA;AAuCU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QACtB,IAAK,CAAA,KAAA,GAAG,OAAO;QACf,IAAW,CAAA,WAAA,GAAG,IAAI;QAElB,IAAS,CAAA,SAAA,GAAe,EAAE;QAC1B,IAAI,CAAA,IAAA,GAAG,KAAK,EAAE;QACd,IAAK,CAAA,KAAA,GAAG,KAAK,EAAE;QACf,IAAgB,CAAA,gBAAA,GAAG,IAAI;QACvB,IAAkB,CAAA,kBAAA,GAAG,IAAI;AACxB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE;AAsB1C;AAnBC,IAAA,OAAO,CAAC,IAAkB,EAAA;AACxB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC;;AAG3C,IAAA,QAAQ,CAAC,IAAkB,EAAA;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;;AAG3D,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;;;8GAxBzE,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EA5BxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,08CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA/BC,YAAY,EAEZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,mEACpB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA+BN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAtCnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,yBAAyB;wBACzB,iBAAiB;wBACjB,oBAAoB;wBACpB;AACD,qBAAA,EAAA,QAAA,EACS,4BAA4B,EAC5B,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,08CAAA,CAAA,EAAA;8BAItC,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACiB,QAAQ,EAAA,CAAA;sBAAzB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACS,UAAU,EAAA,CAAA;sBAAnB;;;AC1DH;;AAEG;;;;"}
|
|
@@ -11,12 +11,11 @@ import { injectRouteParam, injectRouteData, injectRouteParam$, injectUnflattenRo
|
|
|
11
11
|
import { combineLatest, filter, map, tap, shareReplay } from 'rxjs';
|
|
12
12
|
import { AppService } from '@ng-atomic/common/services/app';
|
|
13
13
|
import { makeConfig, injectNavStartActionsV2 } from '@ng-atomic/common/services/ui';
|
|
14
|
-
import { Query, QueryHelper } from '@xxmachina/common/domain/models';
|
|
14
|
+
import { Query, QueryHelper, EndpointHelper } from '@xxmachina/common/domain/models';
|
|
15
15
|
import { makeInitializerConfig } from '@ng-atomic/common/services/initializer';
|
|
16
16
|
import { pick, merge } from 'lodash-es';
|
|
17
17
|
import { injectOne$ } from '@ng-atomic/common/stores/entities';
|
|
18
18
|
import { MachinaDevService } from '@xxmachina/components/services/debug';
|
|
19
|
-
import { EndpointHelper } from '@xxmachina/common/domain/models/endpoint';
|
|
20
19
|
import { derivedAsync } from 'ngxtension/derived-async';
|
|
21
20
|
import { CommandFeature } from '@xxmachina/components/features/command';
|
|
22
21
|
import { TabsFrame } from '@ng-atomic/components/frames/tabs';
|
|
@@ -216,6 +215,14 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
|
|
|
216
215
|
return () => history.back();
|
|
217
216
|
});
|
|
218
217
|
}
|
|
218
|
+
static provideFileSelectedEffect() {
|
|
219
|
+
return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {
|
|
220
|
+
const store = inject(CommandPageStore_1);
|
|
221
|
+
return (payload) => {
|
|
222
|
+
store.form().patchValue({ file: payload.files?.[0] });
|
|
223
|
+
};
|
|
224
|
+
});
|
|
225
|
+
}
|
|
219
226
|
constructor() {
|
|
220
227
|
super();
|
|
221
228
|
this.feature = inject(CommandFeature);
|
|
@@ -231,13 +238,14 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
|
|
|
231
238
|
...this.extractedFormFieldMap(),
|
|
232
239
|
...this.additionalFormFieldMap()
|
|
233
240
|
})));
|
|
241
|
+
this.formFieldKeys = input(_computed(() => []));
|
|
234
242
|
this.data = injectUnflattenRouteParam('data');
|
|
235
243
|
this.formInvalid = derivedAsync(() => getInvalid$(this.form()));
|
|
236
244
|
this.actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));
|
|
237
245
|
CommandPageStore_1.Initializer.initializeStore(this);
|
|
238
246
|
}
|
|
239
247
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
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 } }, usesInheritance: true, ngImport: i0 }); }
|
|
248
|
+
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 }); }
|
|
241
249
|
};
|
|
242
250
|
CommandPageStore = CommandPageStore_1 = __decorate([
|
|
243
251
|
TokenizedType(),
|
|
@@ -259,12 +267,16 @@ class CommandPage extends NgAtomicComponent {
|
|
|
259
267
|
this.dispatch({ id: ActionId.FILE_SELECTED, payload });
|
|
260
268
|
}
|
|
261
269
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CommandPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: CommandPage, isStandalone: true, selector: "pages-command",
|
|
270
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: CommandPage, isStandalone: true, selector: "pages-command", providers: [
|
|
271
|
+
CommandFeature,
|
|
272
|
+
QueryFeature,
|
|
273
|
+
], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: ["style", "style", "navEndActions", "navEndActions", "command", "command", "form", "form", "additionalFormFieldMap", "additionalFormFieldMap", "formFieldMap", "formFieldMap"] }], ngImport: i0, template: `
|
|
263
274
|
<frames-router-outlet>
|
|
264
275
|
<templates-form
|
|
265
276
|
[form]="store.form()"
|
|
266
277
|
[style]="store.style()"
|
|
267
278
|
[fieldMap]="store.formFieldMap()"
|
|
279
|
+
[fieldKeys]="store.formFieldKeys()"
|
|
268
280
|
[title]="store.feature.title()"
|
|
269
281
|
[navStartActions]="store.navStartActions()"
|
|
270
282
|
[navEndActions]="store.navEndActions()"
|
|
@@ -277,7 +289,7 @@ class CommandPage extends NgAtomicComponent {
|
|
|
277
289
|
</frames-tabs>
|
|
278
290
|
</templates-form>
|
|
279
291
|
</frames-router-outlet>
|
|
280
|
-
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-
|
|
292
|
+
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-PN19: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-PN19)}: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"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["keyActions"] }] }); }
|
|
281
293
|
}
|
|
282
294
|
__decorate([
|
|
283
295
|
Effect(FormTemplateStore.ActionId.FILE_SELECTED),
|
|
@@ -293,12 +305,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
293
305
|
TabsFrame,
|
|
294
306
|
CommandFormGroup,
|
|
295
307
|
QueryFormGroup
|
|
308
|
+
], providers: [
|
|
309
|
+
CommandFeature,
|
|
310
|
+
QueryFeature,
|
|
296
311
|
], template: `
|
|
297
312
|
<frames-router-outlet>
|
|
298
313
|
<templates-form
|
|
299
314
|
[form]="store.form()"
|
|
300
315
|
[style]="store.style()"
|
|
301
316
|
[fieldMap]="store.formFieldMap()"
|
|
317
|
+
[fieldKeys]="store.formFieldKeys()"
|
|
302
318
|
[title]="store.feature.title()"
|
|
303
319
|
[navStartActions]="store.navStartActions()"
|
|
304
320
|
[navEndActions]="store.navEndActions()"
|
|
@@ -323,7 +339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
323
339
|
'formFieldMap',
|
|
324
340
|
]
|
|
325
341
|
},
|
|
326
|
-
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-
|
|
342
|
+
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-PN19: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-PN19)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
|
|
327
343
|
}], propDecorators: { onFileSelected: [] } });
|
|
328
344
|
|
|
329
345
|
/**
|