{"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, untracked } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame, RouterOutletFrameStore } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, Action, applyToInput, computeFake, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute, ParamMap, Params } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, getValue$, injectHasNext, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteSkip, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay, of } from 'rxjs';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeDI } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { Command } from '@xxmachina/common/domain/models';\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, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';\nimport { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';\nimport { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';\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 DI = makeDI(CommandPageStore, () => {\n    const dev = inject(MachinaDevService);\n    return () => ({\n      title: '' as string,\n      style: <any>{\n        width: 'var(--page-width-lv1)',\n      },\n      baseUrls: [] as string[],\n      command: {\n        id: '1',\n        webApiRequest: {\n          serverUrl: null,\n          apiJsonUrl: null,\n          path: '/users',\n          method: 'GET',\n          bodySchema: null,\n        },\n      } as unknown as Command,\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 Config = CommandPageStore.DI.Config;\n  static readonly Initializer = CommandPageStore.DI.Initializer;\n\n  static provideDefault(): Provider[] {\n    return [\n      CommandPageStore.DI.provideConfig(),\n      CommandPageStore.provideDefaultInitializer(),\n      CommandPageStore.provideDefaultEffects(),\n    ];\n  }\n\n  static provideCustom(): Provider[] {\n    return [\n      CommandPageStore.provideDefault(),\n      CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n      CommandPageStore.provideSetupInitializeQueryInitializer(),\n    ];\n  }\n\n  static provideDefaultV2(): Provider[] {\n    return [\n      CommandPageStore.Config.provide(),\n      CommandPageStore.provideDefaultInitializer(),\n      CommandPageStore.provideDefaultEffects(),\n      CommandPageStore.provideCommandIdFromRouteDataInitializer(),\n      CommandPageStore.provideSetupInitializeQueryInitializer(),\n      CommandPageStore.provideInitialFormValueFromQueryResult(),\n      CommandPageStore.provideQueryFromRouteData(),\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 provideAutoTogglePageInitializer(): Provider[] {\n    return [\n      provideEffect(RouterOutletFrameStore.ActionId.DEACTIVATED, () => {\n        const store = inject(CommandPageStore);\n        const style = computeFake(store.style());\n        return () => applyToInput(store, 'style', { ...style, paddingLeft: `0` });\n      }),\n      CommandPageStore.DI.provideInitializer((store) => {\n        const hasNext = injectHasNext();\n        const style = computeFake(store.style());\n        effect(() => {\n          if (hasNext()) {\n            setTimeout(() => {\n              applyToInput(store, 'style', { ...style, paddingLeft: 'var(--page-width-lv1)' });\n            }, 300);\n          }\n        });\n      }),\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(() => applyToInput(store, 'command', service.getCommand(commandId()!) as never));\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(() => applyToInput(store, 'command', service.getCommand(commandId()) as never));\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((store) => {\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        store.queryFeature.form.patchValue(setupQuery() as never);\n      });\n    });\n  }\n\n  static provideQueryFromRouteData(key = 'query'): Provider {\n    return CommandPageStore.Initializer.provide((store) => {\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),\n        map(({ query, params }) => QueryHelper.setup(query, params)),\n        shareReplay(1),\n      ));\n      effect(() => { store.queryFeature.form.patchValue(setupQuery() as never); });\n    });\n  }\n\n  static provideRouteParamsToDataInitializer(projector: (params: Params) => Record<string, any>): Provider[] {\n    return CommandPageStore.Initializer.provide((store) => {\n      const route = inject(ActivatedRoute);\n      const data = derivedAsync(() => route.params.pipe(map(params => projector(params))));\n      effect(() => applyToInput(store, 'data', data()));\n    });\n  }\n\n  static provideRouteParamMapToDataInitializer(projector: (params: ParamMap) => Record<string, any>): Provider[] {\n    return CommandPageStore.Initializer.provide((store) => {\n      const paramMap = injectRouteParamMap({merge: true});\n      const data = computed(() => projector(paramMap()));\n      effect(() => applyToInput(store, 'data', data()));\n    });\n  }\n\n  static provideSetupInitializeQueryInitializer(): Provider {\n    return CommandPageStore.Initializer.provide((store) => {\n      const initializeQuery = derivedAsync(() => combineLatest({\n        initializeQuery: of(store.initializeQuery()),\n        data: of(store.data())\n      }).pipe(\n        filter(({ initializeQuery, data }) => !!initializeQuery && !!data),\n        map(({ initializeQuery, data }) => QueryHelper.setup(initializeQuery, data)),\n        filter((initializeQuery) => !!initializeQuery),\n        shareReplay(1),\n      ));\n      \n      effect(() => store.queryFeature.form.patchValue(initializeQuery() as never));\n    });\n  }\n\n  static provideInitialFormValueFromQueryResult(): Provider {\n    return CommandPageStore.Initializer.provide((store) => {\n      effect(() => store.form().patchValue(store.queryFeature.result() as never));\n      store.queryFeature.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  static provideFileSelectedEffect(): Provider {\n    return provideEffect(CommandPageStore.ActionId.FILE_SELECTED, () => {\n      const store = inject(CommandPageStore);\n      return (payload) => {\n        store.form().patchValue({ file: payload.files?.[0] })\n      }\n    });\n  }\n\n  static provideDebugFormInitializer(): Provider {\n    return CommandPageStore.Initializer.provide(() => {\n      const store = inject(CommandPageStore);\n      \n      // FormGroupを再帰的に調べる関数（invalidなコントロールのみ）\n      const getInvalidControls = (formGroup: any, path = '') => {\n        let invalidControls: any[] = [];\n        \n        Object.keys(formGroup.controls).forEach(key => {\n          const control = formGroup.controls[key];\n          const currentPath = path ? `${path}.${key}` : key;\n          \n          // invalidなコントロールを記録\n          if (control.invalid) {\n            invalidControls.push({\n              path: currentPath,\n              errors: control.errors,\n              value: control.value,\n              status: control.status,\n              valid: control.valid,\n              invalid: control.invalid,\n              dirty: control.dirty,\n              touched: control.touched\n            });\n          }\n          \n          // FormGroupの場合は再帰的に調べる\n          if (control.controls) {\n            invalidControls = invalidControls.concat(getInvalidControls(control, currentPath));\n          }\n        });\n        \n        return invalidControls;\n      };\n\n      const formValue_ = derivedAsync(() => getValue$(store.form()));\n      \n      effect(() => {\n        const formValue = formValue_();\n        const form = untracked(() => store.form());\n        console.log('[CommandPage] Form value changed:', formValue);\n        console.log('[CommandPage] CommandForm valid:', form?.valid);\n        console.log('[CommandPage] CommandForm status:', form?.status);\n        if (form) {\n          const invalidControls = getInvalidControls(form);\n          const invalidPaths = invalidControls.map(control => control.path);\n          console.log(`[CommandPage] Found ${invalidControls.length} INVALID controls:`);\n          console.log('[CommandPage] INVALID PATHS:', invalidPaths);\n        }\n      });\n    });\n  }\n\n  static provideSelectedFileUploadEffect(\n    callbackFactory: () => (result: {file: File, path: string, url: string}) => void | Promise<void>,\n    {\n      validator = () => null,\n      getPath,\n    }: {\n      validator?: (file: File) => {type: boolean, size: boolean} | null,\n      getPath: () => string,\n    }\n  ): Provider {\n    return provideEffect(CommandPageStore.ActionId.FILE_SELECTED, () => {\n      const storage = inject(CloudStorageService);\n      const app = inject(AppService);\n      const callback = callbackFactory();\n      const errorMessageResolver = injectErrorMessageResolver();\n  \n      return (payload: { scope: string, files: File[]}) => {\n        const file = payload.files?.[0];\n        const errors = validator(file);\n        if (errors && Object.keys(errors).length > 0) {\n          app.snackBar.open(errorMessageResolver(errors));\n          return;\n        }\n        return app.loading.await(() => {\n          const path = getPath();\n          return storage.upload(path, file).then(() => {\n            app.snackBar.open('ファイルをアップロードしました');\n            return storage.getDownloadUrl(path).then((imageUrl) => {\n              return callback({file, path, url: imageUrl});\n            });\n          }).catch((error) => {\n            console.error(error);\n            app.snackBar.open('ファイルのアップロードに失敗しました');\n          });\n        });\n      }\n    });\n  }\n\n  readonly feature = inject(CommandFeature);\n  readonly config = CommandPageStore.Config.inject();\n  readonly queryFeature = inject(QueryFeature);\n  readonly style = input(_computed(() => this.config().style));\n  readonly #navStartActions = injectNavStartActionsV2();\n  readonly navStartActions = input(_computed(() => this.#navStartActions()));\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 formFlatExcludes = input<string[]>(_computed(() => []));\n  protected readonly _initializeQuery = injectRouteData<Query>('query');\n  readonly initializeQuery = input(_computed(() => this._initializeQuery()));\n  protected readonly _data = injectUnflattenRouteParam('data');\n  readonly data = input(_computed(() => this._data()));\n  protected readonly formInvalid = derivedAsync(() => getInvalid$(this.form()));\n  readonly title = input(_computed(() => (this.config() as any).title || this.feature.title()));\n  readonly #actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()!));\n  readonly actions = input(_computed(() => this.#actions()));\n  readonly skip = injectRouteSkip();\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    QueryGraphqlSchemaFeature\n  ],\n  template: `\n  <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n    <templates-form\n      [form]=\"store.form()\"\n      [style]=\"store.style()\"\n      [fieldMap]=\"store.formFieldMap()\"\n      [fieldKeys]=\"store.formFieldKeys()\"\n      [formFlatExcludes]=\"store.formFlatExcludes()\"\n      [title]=\"store.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>\n          <groups-command-form (action)=\"dispatch($event)\"/>\n        </ng-template>\n        <ng-template #tab>\n          <groups-query-form\n            [form]=\"store.queryFeature.form\"\n            (action)=\"dispatch($event)\"\n          />\n        </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        'formFlatExcludes',\n        'initializeQuery',\n        'data',\n        'actions',\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, {optional: true});\n\n  @Effect(FormTemplateStore.ActionId.FILE_SELECTED)\n  protected onFileSelected(payload: any) {\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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"}