{"version":3,"file":"piying-view-angular.mjs","sources":["../../../projects/view-angular/lib/type/view-token.ts","../../../projects/view-angular/lib/component/group/component.base.ts","../../../projects/view-angular/lib/component/group/component.ts","../../../projects/view-angular/lib/component/group/component.html","../../../projects/view-angular/lib/util/component-config.equal.ts","../../../projects/view-angular/lib/directives/attributes.directive.ts","../../../projects/view-angular/lib/util/async-cache.ts","../../../projects/view-angular/lib/directives/events.directive.ts","../../../projects/view-angular/lib/component/base.component.ts","../../../projects/view-angular/lib/directives/interop_ng_control.ts","../../../projects/view-angular/lib/directives/field-control-directive.ts","../../../projects/view-angular/lib/hook/chained_injector.ts","../../../projects/view-angular/lib/hook/ng_component_outlet.ts","../../../projects/view-angular/lib/builder.ts","../../../projects/view-angular/lib/schema/ng-schema.ts","../../../projects/view-angular/lib/view.component.ts","../../../projects/view-angular/lib/view.component.html","../../../projects/view-angular/lib/component/insert-field.directive.ts","../../../projects/view-angular/lib/schema/action/raw-config.ts","../../../projects/view-angular/lib/schema/action/directive.ts","../../../projects/view-angular/lib/schema/action/index.ts","../../../projects/view-angular/lib/component/form/control.base.component.ts","../../../projects/view-angular/lib/util/typed-component.ts","../../../projects/view-angular/piying-view-angular.ts"],"sourcesContent":["/** component */\n\nimport {\n  InjectionToken,\n  Signal,\n  EventEmitter,\n  TemplateRef,\n} from '@angular/core';\nimport { DynamicComponentConfig } from './component';\nimport { SetOptional } from '@piying/view-angular-core';\nimport { NgConvertOptions } from './builder-type';\nimport { PiViewConfig } from './view-config';\nimport * as v from 'valibot';\nimport { PI_VIEW_FIELD_TOKEN as PVFT } from '@piying/view-angular-core';\nexport const PI_INPUT_OPTIONS_TOKEN = new InjectionToken<\n  Signal<\n    Omit<\n      SetOptional<NgConvertOptions, 'builder' | 'handle'>,\n      'fieldGlobalConfig'\n    > & { fieldGlobalConfig?: PiViewConfig }\n  >\n>('PI_INPUT_OPTIONS');\nexport const PI_INPUT_SCHEMA_TOKEN = new InjectionToken<\n  Signal<v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>>\n>('PI_INPUT_SCHEMA');\nexport const PI_INPUT_MODEL_TOKEN = new InjectionToken<Signal<any>>(\n  'PI_INPUT_MODEL',\n);\n/** wrapper中可以使用,已解析的配置 */\nexport const PI_VIEW_FIELD_TOKEN = PVFT;\n\n/**\n * @internal\n * 内部传参用\n */\nexport const PI_COMPONENT_LIST = new InjectionToken<DynamicComponentConfig[]>(\n  'PI_COMPONENT_LIST',\n);\nexport const PI_COMPONENT_INDEX = new InjectionToken<number>(\n  'PI_COMPONENT_INDEX',\n);\nexport const PI_COMPONENT_LIST_LISTEN = new InjectionToken<\n  EventEmitter<DynamicComponentConfig[]>\n>('PI_COMPONENT_LIST_LISTEN');\n\nexport const PI_VIEW_FIELD_TEMPLATE_REF_TOKEN = new InjectionToken<\n  TemplateRef<any>\n>('PI_VIEW_TEMPLATE_REF');\n","import { computed, Directive, inject, Injector } from '@angular/core';\nimport {\n  PI_VIEW_FIELD_TEMPLATE_REF_TOKEN,\n  PI_VIEW_FIELD_TOKEN,\n} from '../../type';\n\n@Directive()\nexport class PiyingViewGroupBase {\n  field$$ = inject(PI_VIEW_FIELD_TOKEN);\n  props$$ = computed(() => this.field$$().props());\n  children$$ = computed(() => this.field$$().children!());\n  fixedChildren$$ = computed(() => this.field$$().fixedChildren?.() ?? []);\n  restChildren$$ = computed(() => this.field$$().restChildren?.() ?? []);\n  fieldTemplateRef = inject(PI_VIEW_FIELD_TEMPLATE_REF_TOKEN);\n  injector = inject(Injector);\n}\n","import { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\n\nimport { PiyingViewGroupBase } from './component.base';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'piying-view-group',\n  imports: [NgTemplateOutlet],\n  templateUrl: './component.html',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingViewGroup extends PiyingViewGroupBase {\n  static __version = 2;\n  templateRef = viewChild.required('templateRef');\n}\n","<ng-template #templateRef>\n  @for (field of children$$(); track field.id || $index) {\n    <ng-container\n      *ngTemplateOutlet=\"\n        fieldTemplateRef;\n        context: { $implicit: field, injector }\n      \"\n    ></ng-container>\n  }\n</ng-template>\n","import { DynamicComponentConfig } from '../type/component';\n\nexport function getComponentCheckConfig(a: DynamicComponentConfig) {\n  return {\n    ...a,\n    inputs: Object.keys(a.inputs()).join(','),\n    directives: a.directives\n      ? a.directives.map((config) => ({\n          ...config,\n          inputs: `${config.inputs ? Object.keys(config.inputs()).join(',') : ''}`,\n        }))\n      : undefined,\n    // todo 这里是为了schema被替换时,进行比较,感觉应该有更好的方法\n    attributes: Object.entries(a.attributes())\n      .map((key, value) => `${key}:${value}`)\n      .join(','),\n    events: Object.keys(a.events()).join(','),\n    outputs: Object.keys(a.outputs()).join(','),\n  };\n}\n\nexport type ComponentCheckConfig = ReturnType<typeof getComponentCheckConfig>;\n","import {\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  Renderer2,\n  SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n  standalone: true,\n  selector: '[attributes]',\n})\nexport class AttributesDirective {\n  attributes = input.required<Record<string, any>>();\n  excludes = input<string[]>([]);\n  #rederer = inject(Renderer2);\n  #el = inject(ElementRef).nativeElement;\n  ngOnChanges(changes: SimpleChanges): void {\n    const { previousValue, currentValue, firstChange } = changes['attributes'];\n    for (const key in currentValue) {\n      if (this.excludes().includes(key)) {\n        continue;\n      }\n      this.#rederer.setAttribute(this.#el, key, currentValue[key]);\n    }\n    if (!firstChange) {\n      for (const key in previousValue) {\n        if (this.excludes().includes(key)) {\n          continue;\n        }\n        if (!(key in currentValue)) {\n          this.#rederer.removeAttribute(this.#el, key);\n        }\n      }\n    }\n  }\n}\n","import { reflectComponentType, Type } from '@angular/core';\nexport function isComponentType(input: any): input is Type<any> {\n  return !!reflectComponentType(input as any);\n}\n","import { Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({\n  standalone: true,\n  selector: '[events]',\n})\nexport class EventsDirective {\n  events = input.required<Record<string, (event: any) => any>>();\n  #renderer = inject(Renderer2);\n  #el = inject(ElementRef).nativeElement;\n  #cleanList: (() => void)[] = [];\n  ngOnChanges(): void {\n    this.#clean();\n    this.#cleanList = [];\n    for (const key in this.events()) {\n      const event = this.events()[key];\n      this.#cleanList.push(this.#renderer.listen(this.#el, key, event));\n    }\n  }\n  #clean() {\n    this.#cleanList.forEach((fn) => fn());\n  }\n  ngOnDestroy(): void {\n    this.#clean();\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentRef,\n  computed,\n  createComponent,\n  createNgModule,\n  Directive,\n  ElementRef,\n  EnvironmentInjector,\n  EventEmitter,\n  inject,\n  Injector,\n  inputBinding,\n  outputBinding,\n  PendingTasks,\n  reflectComponentType,\n  signal,\n  Signal,\n  TemplateRef,\n  untracked,\n  ViewContainerRef,\n} from '@angular/core';\nimport { ComponentRawType } from '../type';\nimport {\n  ComponentVersion,\n  DynamicComponentConfig,\n  NgComponentDefine,\n} from '../type/component';\nimport {\n  ComponentCheckConfig,\n  getComponentCheckConfig,\n} from '../util/component-config.equal';\nimport { deepEqual } from 'fast-equals';\nimport {\n  PI_COMPONENT_INDEX,\n  PI_COMPONENT_LIST,\n  PI_COMPONENT_LIST_LISTEN,\n  PI_VIEW_FIELD_TOKEN,\n} from '../type/view-token';\nimport {\n  ViewAttributes,\n  ViewInputs,\n  ViewOutputs,\n  getLazyImport,\n  isLazyMark,\n} from '@piying/view-angular-core';\nimport { AttributesDirective } from '../directives/attributes.directive';\nimport { isComponentType } from '../util/async-cache';\nimport { EventsDirective } from '../directives/events.directive';\nfunction createInputsBind(inputs?: Signal<ViewInputs | undefined>) {\n  if (!inputs?.()) {\n    return [];\n  }\n  return Object.keys(inputs()!).map((key) =>\n    inputBinding(\n      key,\n      computed(() => inputs()![key]),\n    ),\n  );\n}\nfunction createOutputsBind(outputs?: () => ViewOutputs | undefined) {\n  if (!outputs?.()) {\n    return [];\n  }\n  return Object.keys(outputs!()!).map((key) =>\n    outputBinding(key, (event) => outputs()![key](event)),\n  );\n}\nfunction createAttributesDirective(\n  attributes: Signal<ViewAttributes | undefined>,\n) {\n  if (attributes()) {\n    return [\n      {\n        type: AttributesDirective,\n        bindings: [inputBinding('attributes', attributes)],\n      },\n    ];\n  }\n  return [];\n}\nfunction createEventsDirective(events: Signal<ViewAttributes | undefined>) {\n  if (events()) {\n    return [\n      {\n        type: EventsDirective,\n        bindings: [inputBinding('events', events)],\n      },\n    ];\n  }\n  return [];\n}\nfunction deepEqualObject(\n  a: Record<string, any>,\n  b: Record<string, any>,\n  skip: Record<string, boolean>,\n) {\n  for (const key in a) {\n    if (skip[key]) {\n      if (a[key] !== b[key]) {\n        return false;\n      }\n    } else if (!deepEqual(a[key], b[key])) {\n      return false;\n    }\n  }\n  return true;\n}\nconst EmptyOBJ = {};\n@Directive()\nexport class BaseComponent {\n  /** 第一次默认为空 */\n  protected index = inject(PI_COMPONENT_INDEX, { optional: true }) ?? 0!;\n\n  /** 发射提供到下一级 */\n  #eventEmitter!: EventEmitter<DynamicComponentConfig[]>;\n  #componentConfig!: DynamicComponentConfig;\n  #viewContainerRef?: ViewContainerRef;\n\n  destroyComponentFn?: () => void;\n  fieldComponentInstance?: any;\n  fieldElementRef?: ElementRef<HTMLElement>;\n  fieldDirectiveRefList?: any[];\n  componentRef?: ComponentRef<any>;\n  /** 比较时使用 */\n  #componentCheckConfig$$!: Signal<ComponentCheckConfig>;\n  #setComponentCheck(config: DynamicComponentConfig) {\n    this.#componentCheckConfig$$ = computed(() =>\n      untracked(() => getComponentCheckConfig(config)),\n    );\n  }\n\n  /**\n   * 输入引用绑定\n   * 1. 上次传入的数据格式和当前一样,只触发更新\n   * 2. 上次传入的数据格式和当前不一样,直接重新创建\n   */\n  #inputCache!: {\n    inputs?: Signal<Record<string, any>>;\n    directiveList?: (Signal<Record<string, any>> | undefined)[];\n  };\n  #configUpdate$ = signal(0);\n  #app = inject(ApplicationRef);\n  #task = inject(PendingTasks);\n  #loadComponent(\n    type: ComponentRawType,\n    loadFn: (input: NgComponentDefine) => void,\n  ) {\n    if (isComponentType(type)) {\n      loadFn({ component: type });\n      return;\n    }\n    if (typeof type === 'function' || isLazyMark(type)) {\n      this.#task.run(() =>\n        getLazyImport<() => Promise<any>>(type)!()\n          .then((type) => {\n            if (isComponentType(type)) {\n              return { component: type };\n            }\n            return type;\n          })\n          .then((data) => loadFn(data)),\n      );\n      return;\n    }\n    loadFn(type as any);\n  }\n  createComponent(\n    list: DynamicComponentConfig[],\n    viewContainerRef: ViewContainerRef,\n  ) {\n    // 销毁\n    this.destroyComponentFn?.();\n    this.#viewContainerRef = viewContainerRef;\n    // 取消上一级的定义\n    this.#eventEmitter = new EventEmitter();\n    const index = this.index;\n    const componentConfig = list[index];\n    const isLast = list.length === index + 1;\n    this.#loadComponent(componentConfig.type, (componentDefine) => {\n      this.#componentConfig = componentConfig;\n      this.#inputCache = {\n        inputs: computed(() => {\n          this.#configUpdate$();\n          return this.#componentConfig!.inputs!() ?? EmptyOBJ;\n        }),\n\n        directiveList: this.#componentConfig?.directives?.map(\n          (config, index) =>\n            config.inputs\n              ? computed(() => {\n                  this.#configUpdate$();\n                  return (\n                    this.#componentConfig!.directives![index].inputs!() ?? {}\n                  );\n                })\n              : undefined,\n        ),\n      };\n      this.#setComponentCheck(componentConfig);\n\n      const componentInjector = Injector.create({\n        providers: [\n          { provide: PI_COMPONENT_LIST, useValue: list },\n          { provide: PI_COMPONENT_INDEX, useValue: index + 1 },\n          { provide: PI_COMPONENT_LIST_LISTEN, useValue: this.#eventEmitter },\n        ],\n        parent: componentConfig.injector ?? viewContainerRef.injector,\n      });\n      const COMPONENT_VERSION: number | undefined = (\n        componentDefine.component as ComponentVersion\n      ).__version;\n      const injector = componentDefine.module\n        ? createNgModule(componentDefine.module, componentInjector).injector\n        : componentInjector;\n      let projectableNodes;\n      if (isLast) {\n        const cm = reflectComponentType(componentDefine.component)!;\n        const templateSlots = componentConfig.slots!();\n        const templateRefList = cm.ngContentSelectors.map(\n          (key) => templateSlots[key] as TemplateRef<any> | undefined,\n        );\n        const viewRefList = templateRefList.map((item) =>\n          item ? viewContainerRef.createEmbeddedView(item) : undefined,\n        );\n        projectableNodes = viewRefList.map((item) => item?.rootNodes ?? []);\n      }\n      const componentRef = createComponent(componentDefine.component, {\n        elementInjector: injector,\n        environmentInjector: injector.get(EnvironmentInjector),\n        bindings: [\n          ...createInputsBind(this.#inputCache.inputs),\n          ...createOutputsBind(componentConfig.outputs),\n        ],\n        directives: [\n          ...(componentConfig.directives ?? []).map((item, index) => ({\n            type: item.type,\n            bindings: [\n              ...createInputsBind(this.#inputCache.directiveList![index]),\n              ...createOutputsBind(item.outputs),\n            ],\n          })),\n          ...(COMPONENT_VERSION === 2\n            ? []\n            : [\n                ...createAttributesDirective(componentConfig.attributes),\n                ...createEventsDirective(componentConfig.events),\n              ]),\n        ],\n        projectableNodes: projectableNodes,\n      });\n      this.componentRef = componentRef;\n      this.fieldComponentInstance = componentRef.instance;\n      this.fieldElementRef = componentRef.location;\n      this.fieldDirectiveRefList = (componentConfig.directives ?? []).map(\n        (item) => componentRef.injector.get(item.type),\n      );\n      if (COMPONENT_VERSION === 2) {\n        const templateRef = (\n          componentRef.instance as { templateRef: Signal<TemplateRef<any>> }\n        ).templateRef();\n        viewContainerRef.createEmbeddedView(templateRef, {\n          attributes: componentConfig.attributes,\n          events: componentConfig.events,\n        });\n        this.#app.attachView(componentRef.hostView);\n        componentRef.changeDetectorRef.detectChanges();\n      } else {\n        viewContainerRef.insert(componentRef.hostView);\n      }\n      this.destroyComponentFn = () => {\n        viewContainerRef.clear();\n        componentRef.destroy();\n        this.#eventEmitter.unsubscribe();\n      };\n      if (list.length === index + 1) {\n        const field = componentInjector.get(PI_VIEW_FIELD_TOKEN)();\n        field.hooks?.afterCreateComponent?.(field);\n      }\n    });\n  }\n\n  update(list: DynamicComponentConfig[]) {\n    const item = list[this.index];\n    const currentCheckConfig = getComponentCheckConfig(item);\n    const isEqual = deepEqualObject(\n      currentCheckConfig,\n      this.#componentCheckConfig$$(),\n      { slots: true, injector: true, type: true },\n    );\n    // this.#componentCheckConfig$$ = computed(() => currentCheckConfig);\n    if (isEqual) {\n      this.#componentConfig = item;\n      this.#configUpdate$.update((a) => a + 1);\n      // 相等不处理\n      this.#eventEmitter.next(list);\n    } else {\n      this.createComponent(list, this.#viewContainerRef!);\n    }\n  }\n}\n","import {\n  NgControl,\n  Validators,\n  type AbstractControl,\n  type ValidationErrors,\n} from '@angular/forms';\nimport { FieldControl, PENDING } from '@piying/view-angular-core';\n\nexport type InteropSharedKeys =\n  | 'value'\n  | 'valid'\n  | 'invalid'\n  | 'touched'\n  | 'untouched'\n  | 'disabled'\n  | 'enabled'\n  | 'errors'\n  | 'pristine'\n  | 'dirty';\n\nexport class InteropNgControl extends NgControl {\n  constructor(protected field: () => FieldControl<unknown>) {\n    super();\n  }\n\n  readonly control: AbstractControl<any, any> =\n    this as unknown as AbstractControl<any, any>;\n\n  override get value(): any {\n    return this.field().value;\n  }\n\n  override get valid(): boolean {\n    return this.field().valid;\n  }\n\n  override get invalid(): boolean {\n    return !this.field().valid;\n  }\n\n  override get pending(): boolean | null {\n    return this.field().status$$() === PENDING;\n  }\n\n  override get disabled(): boolean {\n    return this.field().disabled;\n  }\n\n  override get enabled(): boolean {\n    return !this.field().disabled;\n  }\n\n  override get errors(): ValidationErrors | null {\n    const errors = this.field().errors;\n    return errors ?? null;\n  }\n\n  override get pristine(): boolean {\n    return this.field().pristine;\n  }\n\n  override get dirty(): boolean {\n    return this.field().dirty;\n  }\n\n  override get touched(): boolean {\n    return this.field().touched;\n  }\n\n  override get untouched(): boolean {\n    return !this.field().touched;\n  }\n\n  get submitted(): boolean {\n    return false;\n  }\n\n  override viewToModelUpdate(newValue: any): void {}\n  override get valueChanges() {\n    return this.field().valueChanges;\n  }\n  override get statusChanges() {\n    return this.field().statusChanges;\n  }\n  hasValidator(input: any) {\n    if (Validators.required === input) {\n      return this.field().required$$();\n    }\n    return false;\n  }\n}\n","import {\n  Directive,\n  inject,\n  Injector,\n  input,\n  OnDestroy,\n  Provider,\n} from '@angular/core';\n\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR,\n  NgControl,\n} from '@angular/forms';\nimport { createViewControlLink, FieldControl } from '@piying/view-angular-core';\nimport { InteropNgControl } from './interop_ng_control';\n\nconst formControlBinding: Provider = {\n  provide: NgControl,\n  useFactory: () => inject(FieldControlDirective).ngControl,\n};\n\n@Directive({\n  selector: '[fieldControl]',\n  providers: [formControlBinding],\n  standalone: true,\n})\nexport class FieldControlDirective implements OnDestroy {\n  fieldControl = input.required<FieldControl>();\n  readonly cvaArray = inject<ControlValueAccessor[]>(NG_VALUE_ACCESSOR);\n  readonly injector = inject(Injector);\n\n  get cva() {\n    return this.cvaArray[0];\n  }\n  #_ngControl: InteropNgControl | undefined;\n\n  get ngControl(): NgControl {\n    return (this.#_ngControl ??= new InteropNgControl(() =>\n      this.fieldControl(),\n    )) as unknown as NgControl;\n  }\n\n  #disposeFn?: (destroyed?: boolean) => void;\n  ngOnChanges(): void {\n    this.#disposeFn?.();\n    this.#disposeFn = createViewControlLink(\n      this.fieldControl,\n      this.cva,\n      this.injector,\n    );\n  }\n\n  /** @docs-private */\n  ngOnDestroy() {\n    this.#disposeFn?.(true);\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { Injector, ProviderToken, InjectOptions } from '@angular/core';\n\nconst NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};\n/**\n * Injector that looks up a value using a specific injector, before falling back to the module\n * injector. Used primarily when creating components or embedded views dynamically.\n */\nexport class ChainedInjector implements Injector {\n  constructor(\n    public injector: Injector,\n    public parentInjector: Injector,\n  ) {}\n\n  get<T>(\n    token: ProviderToken<T>,\n    notFoundValue?: T,\n    options?: InjectOptions,\n  ): T {\n    const value = this.injector.get<\n      T | typeof NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR\n    >(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, options);\n\n    if (\n      value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||\n      notFoundValue === (NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as unknown as T)\n    ) {\n      // Return the value from the root element injector when\n      // - it provides it\n      //   (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n      // - the module injector should not be checked\n      //   (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n      return value as T;\n    }\n\n    return this.parentInjector.get(token, notFoundValue, options);\n  }\n}\n","import {\n  computed,\n  Directive,\n  inject,\n  Injector,\n  input,\n  OnChanges,\n  OnDestroy,\n  ViewContainerRef,\n} from '@angular/core';\nimport { PiResolvedViewFieldConfig, NgResolvedWraaperConfig } from '../type';\nimport {\n  DynamicComponentConfig,\n  NgResolvedComponentDefine2,\n} from '../type/component';\nimport { BaseComponent } from '../component/base.component';\nimport { DirectiveConfig } from '../component/dynamic-define.component';\nimport { asyncObjectSignal } from '@piying/view-angular-core';\nimport { FieldControlDirective } from '../directives/field-control-directive';\nimport { ChainedInjector } from './chained_injector';\n\n@Directive({\n  selector: '[ngComponentOutlet]',\n  standalone: true,\n})\nexport class NgComponentOutlet<T = any>\n  extends BaseComponent\n  implements OnChanges, OnDestroy\n{\n  /** 输入 */\n  ngComponentOutlet = input.required<NgResolvedComponentDefine2>();\n\n  /** 包裹用 */\n  ngComponentOutletWrappers = input<NgResolvedWraaperConfig[]>();\n  ngComponentOutletDirectives =\n    input<PiResolvedViewFieldConfig['directives']>();\n\n  ngComponentOutletField = input.required<PiResolvedViewFieldConfig>();\n  #viewContainerRef = inject(ViewContainerRef);\n  // 这里感觉会在非发射时出现多次输入?\n\n  ngComponentOutletInjector = input.required<Injector>();\n  override index = 0;\n  #injector$$ = computed(\n    () =>\n      new ChainedInjector(\n        this.ngComponentOutletField().injector,\n        this.ngComponentOutletInjector(),\n      ),\n  );\n  /** 控件用 */\n  #ngComponentOutletFormControl$ = computed(() => {\n    const field = this.ngComponentOutletField();\n    return field.fixedChildren || field.restChildren\n      ? undefined\n      : this.ngComponentOutletField().form.control;\n  });\n  #formControlDirectiveConfig$$ = computed(() => {\n    const fieldControl = this.#ngComponentOutletFormControl$();\n    return fieldControl\n      ? ({\n          type: FieldControlDirective,\n          inputs: asyncObjectSignal({ fieldControl: fieldControl }),\n        } as DirectiveConfig)\n      : undefined;\n  });\n  #directiveConfigList$$ = computed(() => {\n    const directivesInputs = this.ngComponentOutletDirectives();\n    const formConfig = this.#formControlDirectiveConfig$$();\n    return formConfig\n      ? [...(directivesInputs?.() ?? []), formConfig]\n      : directivesInputs?.();\n  });\n  #componentConfig$$ = computed(() => {\n    const define = this.ngComponentOutlet();\n    const directives = this.#directiveConfigList$$();\n    return {\n      ...define!,\n      directives: directives,\n    } as DynamicComponentConfig;\n  });\n  #componentList$$ = computed(() => {\n    const componentConfig = this.#componentConfig$$();\n    const list = [\n      ...(this.ngComponentOutletWrappers() ?? []),\n      componentConfig,\n    ] as DynamicComponentConfig[];\n    list[0].injector = this.#injector$$();\n    return list;\n  });\n\n  #lastList?: DynamicComponentConfig[];\n  ngOnChanges() {\n    //todo 变更时的一些检测,相同时应该不处理\n    const list = this.#componentList$$();\n    if (!this.#lastList) {\n      const field = this.ngComponentOutletField();\n      field.hooks?.beforeCreateComponent?.(field);\n      this.createComponent(list, this.#viewContainerRef);\n    } else if (this.#lastList !== list) {\n      this.update(list);\n    }\n    // 监听输入/输出变更,重新进行赋值\n\n    this.#lastList = list;\n  }\n\n  ngOnDestroy() {\n    this.destroyComponentFn?.();\n  }\n}\n","import { PiResolvedViewFieldConfig } from './type';\nimport { Injectable } from '@angular/core';\n\nimport { FormBuilder } from '@piying/view-angular-core';\nimport { NgSchemaHandle } from './schema/ng-schema';\n\n@Injectable()\nexport class AngularFormBuilder extends FormBuilder<NgSchemaHandle> {\n  override afterResolveConfig(\n    rawConfig: NgSchemaHandle,\n    config: PiResolvedViewFieldConfig,\n  ): PiResolvedViewFieldConfig {\n    const field = rawConfig;\n\n    config.directives = field.directives;\n    return config;\n  }\n}\n","import { combineSignal, CoreSchemaHandle } from '@piying/view-angular-core';\nimport { PiResolvedViewFieldConfig, NgDirectiveConfig } from '../type';\n\nexport class NgSchemaHandle extends CoreSchemaHandle<\n  NgSchemaHandle,\n  () => PiResolvedViewFieldConfig\n> {\n  declare type: any;\n  directives = combineSignal<NgDirectiveConfig>([]);\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  DestroyableInjector,\n  inject,\n  Injector,\n  input,\n  OnChanges,\n  output,\n  signal,\n  SimpleChanges,\n  untracked,\n  viewChild,\n} from '@angular/core';\nimport { NgComponentOutlet } from './hook/ng_component_outlet';\n\nimport {\n  PiViewConfig,\n  PiResolvedViewFieldConfig,\n  PI_INPUT_OPTIONS_TOKEN,\n  PI_INPUT_SCHEMA_TOKEN,\n  PI_INPUT_MODEL_TOKEN,\n  PI_VIEW_FIELD_TEMPLATE_REF_TOKEN,\n} from './type';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  convert,\n  FieldArray,\n  FieldControl,\n  FieldGroup,\n  initListen,\n} from '@piying/view-angular-core';\nimport { AngularFormBuilder } from './builder';\nimport { NgSchemaHandle } from './schema/ng-schema';\nimport { NgConvertOptions } from './type/builder-type';\nimport type { SetOptional } from '@piying/view-angular-core';\nimport * as v from 'valibot';\nconst DefaultConvertOptions = {\n  builder: AngularFormBuilder,\n  handle: NgSchemaHandle,\n};\n@Component({\n  selector: 'piying-view',\n  imports: [NgComponentOutlet, NgTemplateOutlet],\n  templateUrl: './view.component.html',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingView implements OnChanges {\n  readonly templateRef = viewChild.required('templateRef');\n  readonly fieldTemplate = viewChild.required('fieldTemplate');\n  readonly selectorless = input<boolean>(false);\n  schema = input.required<v.BaseSchema<any, any, any>>();\n  model = input<any>(undefined);\n  modelChange = output<any>();\n  options = input<\n    Omit<\n      SetOptional<NgConvertOptions, 'builder' | 'handle'>,\n      'fieldGlobalConfig'\n    > & { fieldGlobalConfig?: PiViewConfig }\n  >();\n  form$$ = computed(\n    () =>\n      this.resolvedField$()?.form.control as\n        | (FieldControl | FieldGroup | FieldArray)\n        | undefined,\n  );\n\n  #lastRF?: PiResolvedViewFieldConfig;\n  ngOnChanges(changes: SimpleChanges): void {\n    const rFields = this.#resolvedFields$$();\n    if (this.#lastRF !== rFields || 'model' in changes) {\n      this.#updateValue(this.model());\n    }\n    this.#lastRF = rFields;\n  }\n\n  #resolvedFields$$ = computed(() => {\n    this.schema();\n    return untracked(() => this.#updateField());\n  });\n\n  #injector = inject(Injector);\n  #builderInjector?: DestroyableInjector;\n  resolvedField$ = signal<PiResolvedViewFieldConfig | undefined>(undefined);\n  #listenDispose?: () => void;\n  injector3$$ = computed(() =>\n    Injector.create({\n      providers: [\n        {\n          provide: PI_VIEW_FIELD_TEMPLATE_REF_TOKEN,\n          useValue: this.fieldTemplate(),\n        },\n      ],\n      parent: this.resolvedField$()!.injector,\n    }),\n  );\n  #fieldRoot = Injector.create({\n    providers: [\n      {\n        provide: PI_INPUT_OPTIONS_TOKEN,\n        useValue: this.options,\n      },\n      {\n        provide: PI_INPUT_SCHEMA_TOKEN,\n        useValue: this.schema,\n      },\n      {\n        provide: PI_INPUT_MODEL_TOKEN,\n        useValue: this.model,\n      },\n    ],\n    parent: this.#injector,\n  });\n  #updateField() {\n    this.#clean();\n    // 临时销毁\n    const envInjector = Injector.create({\n      providers: [],\n      parent: this.#fieldRoot,\n    });\n    this.#builderInjector = envInjector;\n    const result = convert<PiResolvedViewFieldConfig>(this.schema() as any, {\n      ...DefaultConvertOptions,\n      ...this.options(),\n      injector: envInjector,\n    });\n    this.resolvedField$.set(result);\n    return result;\n  }\n  #clean() {\n    if (this.#builderInjector) {\n      this.#builderInjector.destroy();\n      this.#builderInjector = undefined;\n    }\n  }\n\n  #updateValue(model: Record<string, any> | undefined) {\n    this.#listenDispose?.();\n    const result = this.resolvedField$()!;\n    if (result.form.control) {\n      // 监听初始化,每次field变更会初始化\n      const ref = initListen(\n        this.model(),\n        result!.form.control,\n        // 使用envInjector会导致在测试中慢一次检查,生产上可能也会慢一点?\n        this.#injector,\n        (value) => {\n          untracked(() => {\n            if (result!.form.control?.valueNoError$$()) {\n              this.modelChange.emit(value);\n            }\n          });\n        },\n      );\n      this.#listenDispose = () => {\n        ref.destroy();\n        this.#listenDispose = undefined;\n      };\n      result.form.control.updateValue(model);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.#listenDispose?.();\n  }\n}\n","<ng-template #fieldTemplate let-field let-injector=\"injector\">\n  @if (field.define && !field.renderConfig()?.hidden) {\n    <ng-container\n      [ngComponentOutlet]=\"field.define()\"\n      [ngComponentOutletWrappers]=\"field.wrappers()\"\n      [ngComponentOutletField]=\"field\"\n      [ngComponentOutletDirectives]=\"field.directives\"\n      [ngComponentOutletInjector]=\"injector ?? injector3$$()\"\n    ></ng-container>\n  }\n</ng-template>\n<ng-template #templateRef>\n  @if (resolvedField$(); as field) {\n    <ng-container\n      *ngTemplateOutlet=\"\n        fieldTemplate;\n        context: {\n          $implicit: field,\n          injector: injector3$$(),\n        }\n      \"\n    ></ng-container>\n  }\n</ng-template>\n@if (!selectorless()) {\n  <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\n}\n","import {\n  Directive,\n  inject,\n  input,\n  SimpleChange,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { PI_COMPONENT_LIST_LISTEN, PI_COMPONENT_LIST } from '../type';\nimport { ComponentVersion, DynamicComponentConfig } from '../type/component';\nimport { BaseComponent } from './base.component';\nimport { PI_VIEW_FIELD_TOKEN } from '@piying/view-angular-core';\n\n@Directive({\n  selector: '[insertField]',\n  exportAs: 'insertField',\n})\nexport class InsertFieldDirective extends BaseComponent {\n  insertFieldSlots = input<Record<string, TemplateRef<any>>>();\n  insertFieldAttributes = input<Record<string, any>>();\n  #viewContainerRef = inject(ViewContainerRef);\n  #listen = inject(PI_COMPONENT_LIST_LISTEN);\n  #list = inject(PI_COMPONENT_LIST);\n  #field = inject(PI_VIEW_FIELD_TOKEN);\n  override createComponent(\n    list?: DynamicComponentConfig[],\n    viewContainerRef?: ViewContainerRef,\n  ) {\n    const result = super.createComponent(\n      list ?? this.#list,\n      this.#viewContainerRef,\n    );\n    this.#listen.subscribe((list) => {\n      this.update(list);\n    });\n    return result;\n  }\n  ngOnChanges(changes: Record<keyof InsertFieldDirective, SimpleChange>): void {\n    if (changes.insertFieldSlots) {\n      this.#field().slots.update((slots) => ({\n        ...slots,\n        ...this.insertFieldSlots(),\n      }));\n    }\n    if (changes.insertFieldAttributes) {\n      this.#field().inputs.update((data) => ({\n        ...data,\n        ...this.insertFieldAttributes(),\n      }));\n    }\n  }\n  ngOnInit(): void {\n    this.createComponent();\n  }\n  ngOnDestroy(): void {\n    if (\n      this.componentRef &&\n      (this.componentRef.componentType as ComponentVersion).__version === 2\n    ) {\n      this.componentRef.destroy();\n    }\n  }\n}\n","import { RawConfigCommon } from '@piying/valibot-visit';\nimport { rawConfig as originRawConfig } from '@piying/view-angular-core';\nimport { NgSchemaHandle } from '../ng-schema';\nexport const rawConfig = originRawConfig as RawConfigCommon<NgSchemaHandle>;\n","import {\n  asyncObjectSignal,\n  mergeHooksFn,\n  SetOptional,\n  SetUnWrapper$,\n  CustomDataSymbol,\n  AnyCoreSchemaHandle,\n  _PiResolvedCommonViewFieldConfig,\n  AsyncObjectSignal,\n} from '@piying/view-angular-core';\nimport { NgDirectiveConfig } from '../../type';\nimport { rawConfig } from './raw-config';\nimport { Signal, signal, Type } from '@angular/core';\nimport { RawConfigAction } from '@piying/valibot-visit';\nfunction createSetOrPatchDirectivePropertyFn(isPatch?: boolean) {\n  return <T>(\n    items: SetOptional<\n      SetUnWrapper$<\n        NgDirectiveConfig,\n        'inputs' | 'outputs' | 'attributes' | 'events' | 'model'\n      >,\n      'inputs' | 'outputs' | 'attributes' | 'events' | 'model'\n    >[],\n  ) =>\n    rawConfig<T>((field) => {\n      if (!isPatch) {\n        field.directives.clean();\n      }\n      items.forEach((item) => {\n        field.directives.add(\n          signal<NgDirectiveConfig>({\n            type: item.type,\n            inputs: asyncObjectSignal(item.inputs ?? {}),\n            outputs: asyncObjectSignal(item.outputs ?? {}),\n            attributes: asyncObjectSignal(item.attributes ?? {}),\n            events: asyncObjectSignal(item.events ?? {}),\n            model: asyncObjectSignal(item.model ?? {}),\n          }),\n        );\n      });\n    });\n}\nfunction setSubInitValue<Key extends string>(\n  key: Key,\n  fn: () => Record<Key, AsyncObjectSignal<any>>,\n  initObj: any,\n) {\n  if (!Object.keys(initObj[key]).length) {\n    return;\n  }\n  fn()[key].set(initObj[key]);\n}\nfunction patchAsyncDirective<T>(\n  type: Type<any>,\n  actions?: RawConfigAction<'viewRawConfig', any, any>[],\n  options?: { insertIndex?: number },\n) {\n  return rawConfig<T>((rawFiled) => {\n    mergeHooksFn(\n      {\n        allFieldsResolved: (field) => {\n          const initData = signal<NgDirectiveConfig>({\n            type,\n            attributes: asyncObjectSignal({}),\n            events: asyncObjectSignal({}),\n            inputs: asyncObjectSignal({}),\n            outputs: asyncObjectSignal({}),\n            model: asyncObjectSignal({}),\n          });\n          field.directives!.add(initData, options?.insertIndex);\n          for (const item of actions ?? []) {\n            const tempField: Partial<AnyCoreSchemaHandle> & { model: any } = {\n              inputs: {},\n              outputs: {},\n              attributes: {},\n              events: {},\n              model: {},\n            };\n            (item.value as any)(tempField, undefined, {\n              [CustomDataSymbol]: (\n                rawField: AnyCoreSchemaHandle,\n                field: _PiResolvedCommonViewFieldConfig,\n              ) => {\n                if (rawField) {\n                  return tempField;\n                }\n                return initData;\n              },\n            });\n            setSubInitValue('inputs', initData as any, tempField);\n            setSubInitValue('outputs', initData as any, tempField);\n            setSubInitValue('attributes', initData as any, tempField);\n            setSubInitValue('events', initData as any, tempField);\n            setSubInitValue('model', initData as any, tempField);\n\n            (tempField as any).hooks?.allFieldsResolved?.(field);\n          }\n        },\n      },\n      { position: 'bottom' },\n      rawFiled,\n    );\n  });\n}\nfunction removeDirectives<T>(\n  removeList: (\n    list: Signal<NgDirectiveConfig>[],\n  ) => Signal<NgDirectiveConfig>[],\n) {\n  return rawConfig<T>((field) => {\n    mergeHooksFn(\n      {\n        allFieldsResolved: (field) => {\n          field.directives!.update(removeList);\n        },\n      },\n      { position: 'bottom' },\n      field,\n    );\n  });\n}\nexport const directives = {\n  set: createSetOrPatchDirectivePropertyFn(),\n  patch: createSetOrPatchDirectivePropertyFn(true),\n  patchAsync: patchAsyncDirective,\n  remove: removeDirectives,\n};\n","import { actions as coreActions } from '@piying/view-angular-core';\nimport { directives } from './directive';\nexport * from './raw-config';\nexport {\n  asControl,\n  condition,\n  asVirtualGroup,\n  layout,\n} from '@piying/view-angular-core';\nexport * from './directive';\nexport const actions = { ...coreActions, directives };\n","import { signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport class BaseControl<T = any> implements ControlValueAccessor {\n  readonly defaultValue: any = undefined;\n  value$ = signal<T>(this.defaultValue ?? (undefined as any));\n\n  protected emitValue?: (value: any) => void;\n  registerOnChange(fn: any): void {\n    this.emitValue = fn;\n  }\n  /** 同时发射和value变更 */\n  valueChange(value: T) {\n    this.emitValue?.(value);\n    this.value$.set(value);\n  }\n\n  writeValue(obj: any): void {\n    this.value$.set(obj ?? undefined);\n  }\n  #touched?: () => void;\n  registerOnTouched(fn: any): void {\n    this.#touched = fn;\n  }\n  touchedChange() {\n    this.#touched!();\n  }\n  valueAndTouchedChange(value: T) {\n    this.valueChange(value);\n    this.touchedChange();\n  }\n  disabled$ = signal(false);\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled$.set(isDisabled);\n  }\n}\n","import {\n  actions as PresetActions,\n  PiCommonConfig,\n  actions,\n  _PiResolvedCommonViewFieldConfig,\n  setComponent,\n  PiTypeConfig,\n  AsyncProperty,\n  NFCSchema,\n} from '@piying/view-angular-core';\n\nimport {\n  InputSignal,\n  InputSignalWithTransform,\n  OutputEmitterRef,\n  Type,\n} from '@angular/core';\nimport {\n  metadataList,\n  MetadataListAction,\n  RawConfigAction,\n} from '@piying/valibot-visit';\nimport { AnyCoreSchemaHandle } from '@piying/view-angular-core';\nimport * as v from 'valibot';\ntype GetKeyWithType<T, ValueType> = {\n  [K in keyof T as T[K] extends ValueType\n    ? T[K] extends any\n      ? any extends T[K]\n        ? never\n        : K\n      : K\n    : never]: T[K];\n};\n\ntype ComponentInputs<Component> = GetKeyWithType<Component, InputSignal<any>>;\n\ntype ComponentInputsOrigin<T> = {\n  [K in keyof T]: T[K] extends InputSignal<infer V>\n    ? V\n    : T[K] extends InputSignalWithTransform<infer V, infer D>\n      ? D\n      : never;\n};\ntype ComponentInputsAsync<T> = {\n  [K in keyof T]: T[K] extends InputSignal<infer V>\n    ? AsyncProperty<V>\n    : T[K] extends InputSignalWithTransform<infer V, infer D>\n      ? AsyncProperty<D>\n      : never;\n};\n\ntype ComponentOutputs<Component> = GetKeyWithType<\n  Component,\n  OutputEmitterRef<any>\n>;\n\ntype ComponentOutputsOrigin<T> = {\n  [K in keyof T]: T[K] extends OutputEmitterRef<infer V>\n    ? (input: V) => void\n    : never;\n};\ntype ComponentOutputsAsync<T> = {\n  [K in keyof T]: T[K] extends OutputEmitterRef<infer V>\n    ? AsyncProperty<(input: V) => void>\n    : never;\n};\n\ntype ComponentInstance<TComponent> =\n  TComponent extends Type<infer Instance> ? Instance : never;\n\n// inputs\ntype GetComponentInputs<TComponent> = ComponentInputs<\n  ComponentInstance<TComponent>\n>;\n\ntype GetComponentInputsOrigin<TComponent> = Partial<\n  ComponentInputsOrigin<GetComponentInputs<TComponent>>\n>;\n\ntype GetComponentInputsAsync<TComponent> = Partial<\n  ComponentInputsAsync<GetComponentInputs<TComponent>>\n>;\n// outputs\ntype GetComponentOutputs<TComponent> = ComponentOutputs<\n  ComponentInstance<TComponent>\n>;\n\ntype GetComponentOutputsOrigin<TComponent> = Partial<\n  ComponentOutputsOrigin<GetComponentOutputs<TComponent>>\n>;\n\ntype GetComponentOutputsAsync<TComponent> = Partial<\n  ComponentOutputsAsync<GetComponentOutputs<TComponent>>\n>;\ntype ReturnAction<Input> = RawConfigAction<\n  'viewRawConfig',\n  Input,\n  AnyCoreSchemaHandle\n>;\ntype ComponentActions<TComponent> = {\n  inputs: {\n    patch: <Input>(\n      value: GetComponentInputsOrigin<TComponent>,\n    ) => ReturnAction<Input>;\n    set: <Input>(\n      value: GetComponentInputsOrigin<TComponent>,\n    ) => ReturnAction<Input>;\n    patchAsync: <Input>(\n      value: GetComponentInputsAsync<TComponent>,\n    ) => ReturnAction<Input>;\n    remove: <Input>(\n      value: (keyof GetComponentInputs<TComponent>)[],\n    ) => ReturnAction<Input>;\n    mapAsync: <Input>(\n      value: (\n        field: _PiResolvedCommonViewFieldConfig,\n      ) => (\n        value: GetComponentInputs<TComponent>,\n      ) => GetComponentInputs<TComponent>,\n    ) => ReturnAction<Input>;\n  };\n  outputs: {\n    patch: <Input>(\n      value: GetComponentOutputsOrigin<TComponent>,\n    ) => ReturnAction<Input>;\n    set: <Input>(\n      value: GetComponentOutputsOrigin<TComponent>,\n    ) => ReturnAction<Input>;\n    patchAsync: <Input>(\n      value: GetComponentOutputsAsync<TComponent>,\n    ) => ReturnAction<Input>;\n    remove: <Input>(\n      value: (keyof GetComponentOutputs<TComponent>)[],\n    ) => ReturnAction<Input>;\n    mapAsync: <Input>(\n      value: (\n        field: _PiResolvedCommonViewFieldConfig,\n      ) => (\n        value: GetComponentOutputs<TComponent>,\n      ) => GetComponentOutputs<TComponent>,\n    ) => ReturnAction<Input>;\n  };\n};\n\ntype ActionComponent<A extends PiTypeConfig> =\n  A['type'] extends Type<any>\n    ? A['type']\n    : NonNullable<A['actions']>[0]['__type'];\n\nexport function typedComponent<T extends PiCommonConfig>(\n  input: T,\n): {\n  define: T;\n  setComponent: <TCName extends keyof T['types'] | Type<any>, K>(\n    input: TCName,\n    fn?: (\n      actions: Omit<typeof PresetActions, 'inputs' | 'outputs'> &\n        ComponentActions<\n          TCName extends keyof T['types']\n            ? ActionComponent<NonNullable<T['types']>[TCName]>\n            : TCName\n        >,\n    ) => any[],\n  ) => MetadataListAction<K>;\n  nfcComponent: <TCName extends keyof T['types'] | Type<any>>(\n    input: TCName,\n    fn?: (\n      actions: Omit<typeof PresetActions, 'inputs' | 'outputs'> &\n        ComponentActions<\n          TCName extends keyof T['types']\n            ? ActionComponent<NonNullable<T['types']>[TCName]>\n            : TCName\n        >,\n    ) => any[],\n  ) => v.SchemaWithPipe<\n    readonly [\n      v.OptionalSchema<v.VoidSchema<undefined>, undefined>,\n      MetadataListAction<void | undefined>,\n    ]\n  >;\n} {\n  return {\n    define: input,\n    setComponent(key, fn) {\n      return metadataList(\n        fn ? [setComponent(key), ...fn(actions as any)] : [setComponent(key)],\n      );\n    },\n    nfcComponent(key, fn) {\n      return v.pipe(\n        NFCSchema,\n        metadataList(\n          fn ? [setComponent(key), ...fn(actions as any)] : [setComponent(key)],\n        ),\n      );\n    },\n  };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["PVFT","PI_VIEW_FIELD_TOKEN","originRawConfig","coreActions","actions"],"mappings":"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"}