@piying/view-angular 1.5.6 → 1.5.8

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.
@@ -698,20 +698,17 @@ class FieldControlDirective {
698
698
  get ngControl() {
699
699
  return (this.#_ngControl ??= new InteropNgControl(() => this.fieldControl()));
700
700
  }
701
- ngOnInit() {
702
- this.disposeList.push(createViewControlLink(this.fieldControl, this.cva, this.injector));
703
- }
704
- disposeList = [];
705
- clear() {
706
- this.disposeList.forEach((fn) => fn());
707
- this.disposeList = [];
701
+ #disposeFn;
702
+ ngOnChanges() {
703
+ this.#disposeFn?.();
704
+ this.#disposeFn = createViewControlLink(this.fieldControl, this.cva, this.injector);
708
705
  }
709
706
  /** @docs-private */
710
707
  ngOnDestroy() {
711
- this.clear();
708
+ this.#disposeFn?.(true);
712
709
  }
713
710
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FieldControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
714
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.3", type: FieldControlDirective, isStandalone: false, selector: "[fieldControl]", inputs: { fieldControl: { classPropertyName: "fieldControl", publicName: "fieldControl", isSignal: true, isRequired: true, transformFunction: null } }, providers: [formControlBinding], ngImport: i0 });
711
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.3", type: FieldControlDirective, isStandalone: false, selector: "[fieldControl]", inputs: { fieldControl: { classPropertyName: "fieldControl", publicName: "fieldControl", isSignal: true, isRequired: true, transformFunction: null } }, providers: [formControlBinding], usesOnChanges: true, ngImport: i0 });
715
712
  }
716
713
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FieldControlDirective, decorators: [{
717
714
  type: Directive,
@@ -1015,24 +1012,20 @@ class PiyingView {
1015
1012
  ngOnChanges(changes) {
1016
1013
  const rFields = this.#resolvedFields$$();
1017
1014
  if (this.#lastRF !== rFields || 'model' in changes) {
1018
- this.#modelChange$$();
1015
+ this.#updateValue(this.model());
1019
1016
  }
1020
1017
  this.#lastRF = rFields;
1021
1018
  }
1022
- #modelChange$$ = computed(() => {
1023
- const model = this.model();
1024
- untracked(() => this.#updateField(model));
1025
- });
1026
1019
  #resolvedFields$$ = computed(() => {
1027
1020
  this.schema();
1028
- return untracked(() => this.#updateForm());
1021
+ return untracked(() => this.#updateField());
1029
1022
  });
1030
1023
  #injector = inject(Injector);
1031
1024
  #envInjector = inject(EnvironmentInjector);
1032
1025
  #builderEnvInjector;
1033
1026
  resolvedField$ = signal(undefined);
1034
- #disposeList = [];
1035
- #updateForm() {
1027
+ #listenDispose;
1028
+ #updateField() {
1036
1029
  this.#clean();
1037
1030
  // 临时销毁
1038
1031
  const envInjector = createEnvironmentInjector([], this.#envInjector);
@@ -1048,6 +1041,17 @@ class PiyingView {
1048
1041
  },
1049
1042
  });
1050
1043
  this.resolvedField$.set(result);
1044
+ return result;
1045
+ }
1046
+ #clean() {
1047
+ if (this.#builderEnvInjector) {
1048
+ this.#builderEnvInjector.destroy();
1049
+ this.#builderEnvInjector = undefined;
1050
+ }
1051
+ }
1052
+ #updateValue(model) {
1053
+ this.#listenDispose?.();
1054
+ const result = this.resolvedField$();
1051
1055
  if (result.form.control) {
1052
1056
  // 监听初始化,每次field变更会初始化
1053
1057
  const ref = initListen(this.model(), result.form.control,
@@ -1059,24 +1063,12 @@ class PiyingView {
1059
1063
  }
1060
1064
  });
1061
1065
  });
1062
- this.#disposeList.push(() => ref.destroy());
1063
- }
1064
- return result;
1065
- }
1066
- #clean(isDestoryed = false) {
1067
- this.#disposeList.forEach((item) => item());
1068
- this.#disposeList = [];
1069
- if (!isDestoryed && this.#builderEnvInjector) {
1070
- this.#builderEnvInjector.destroy();
1071
- this.#builderEnvInjector = undefined;
1072
- }
1073
- }
1074
- #updateField(model) {
1075
- if (!this.resolvedField$()) {
1076
- return;
1066
+ this.#listenDispose = () => {
1067
+ ref.destroy();
1068
+ this.#listenDispose = undefined;
1069
+ };
1070
+ result.form.control.updateValue(model);
1077
1071
  }
1078
- const field = this.resolvedField$();
1079
- field.form.control?.updateValue(model);
1080
1072
  }
1081
1073
  groupInputsValue = (inputs, fieldTemplateRef) => computed(() => ({
1082
1074
  ...inputs(),
@@ -1103,7 +1095,7 @@ class PiyingView {
1103
1095
  }
1104
1096
  }
1105
1097
  ngOnDestroy() {
1106
- this.#clean(true);
1098
+ this.#listenDispose?.();
1107
1099
  }
1108
1100
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: PiyingView, deps: [], target: i0.ɵɵFactoryTarget.Component });
1109
1101
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: PiyingView, isStandalone: true, selector: "piying-view", inputs: { schema: { classPropertyName: "schema", publicName: "schema", isSignal: true, isRequired: true, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modelChange: "modelChange" }, usesOnChanges: true, ngImport: i0, template: "<ng-template #dynamicComponent let-field>\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @let typeResource = resolvedComponent | pure: field.define;\n @let type = typeResource.value();\n @let wrappersResource = resolvedWrapper | pure: field.wrappers();\n @let wrappers = wrappersResource.value();\n @if (type) {\n @if (field.fixedChildren || field.restChildren) {\n @if (!(groupHidden | pure: field)()) {\n <!-- \u81EA\u5B9A\u4E49group -->\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"\n (groupInputsValue | pure: field.inputs : dynamicComponent)?.()\n \"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n ></ng-container>\n }\n } @else {\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"field.inputs()\"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletContent]=\"field.contents\"\n ></ng-container>\n }\n }\n }\n</ng-template>\n\n@if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"dynamicComponent; context: { $implicit: field }\"\n ></ng-container>\n}\n", dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletOutputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletFormControl", "ngComponentOutletWrappers", "ngComponentOutletTopDirectives", "ngComponentOutletDirectives", "ngComponentOutletField"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: PurePipe, name: "pure" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -1 +1 @@
1
- {"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/const.ts","../../../projects/view-angular/lib/util/component-config.equal.ts","../../../projects/view-angular/lib/hook/directive_matching.ts","../../../projects/view-angular/lib/hook/selector.ts","../../../projects/view-angular/lib/component/dynamic-define.component.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/ng_component_outlet.ts","../../../projects/view-angular/lib/util/async-cache.ts","../../../projects/view-angular/lib/builder.ts","../../../projects/view-angular/lib/schema/ng-schema.ts","../../../projects/view-angular/lib/pipe/pure.pipe.ts","../../../projects/view-angular/lib/view.component.ts","../../../projects/view-angular/lib/component.html","../../../projects/view-angular/lib/component/wrapper-base.component.ts","../../../projects/view-angular/lib/schema/action/raw-config.ts","../../../projects/view-angular/lib/schema/action/directive.ts","../../../projects/view-angular/lib/component/form/control.base.component.ts","../../../projects/view-angular/piying-view-angular.ts"],"sourcesContent":["/** component */\n\nimport { InjectionToken, Signal, EventEmitter } from '@angular/core';\nimport { DynamicComponentConfig } from './component';\nimport { PiResolvedViewFieldConfig } from './group';\n\n/** wrapper中可以使用,已解析的配置 */\nexport const PI_VIEW_FIELD_TOKEN = new InjectionToken<\n Signal<PiResolvedViewFieldConfig>\n>('PI_VIEW_FIELD_TOKEN');\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","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { PI_VIEW_FIELD_TOKEN } 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 = input.required<TemplateRef<any>>();\n}\n","import { ChangeDetectionStrategy, Component } 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","@for (field of children$$(); track field.id || $index) {\n <ng-container\n *ngTemplateOutlet=\"fieldTemplateRef(); context: { $implicit: field }\"\n ></ng-container>\n}\n","import { ConfigMergeStrategyObject } from './type';\n\nexport const EMPTY_ARRAY = [];\nexport const NG_CONFIG_DEFAULT_MERGE_STRAGEGY: ConfigMergeStrategyObject = {\n directives: 'merge',\n formConfig: 'merge',\n inputs: 'merge',\n outputs: 'merge',\n props: 'merge',\n renderConfig: 'merge',\n wrappers: 'replace',\n attributes: 'merge',\n};\n","import { DynamicComponentConfig } from '../type/component';\n\nexport function getComponentCheckConfig(a: DynamicComponentConfig) {\n return {\n ...a,\n inputs: Object.keys(a.inputs() ?? {}).join(','),\n // todo 需要等修改为动态的再比较key\n attributes: Object.entries(a.attributes() ?? {})\n .map((key, value) => `${key}:${value}`)\n .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 contents: a.contents?.map((item) => ({ ...item, text: !!item.text })),\n };\n}\n\nexport type ComponentCheckConfig = ReturnType<typeof getComponentCheckConfig>;\n","//packages/compiler/src/directive_matching.ts\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\nconst _SELECTOR_REGEXP = new RegExp(\n '(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"\\']?)([^\\\\]\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n 'g',\n);\n\n/**\n * These offsets should match the match-groups in `_SELECTOR_REGEXP` offsets.\n */\nconst enum SelectorRegexp {\n ALL = 0, // The whole match\n NOT = 1,\n TAG = 2,\n PREFIX = 3,\n ATTRIBUTE = 4,\n ATTRIBUTE_STRING = 5,\n ATTRIBUTE_VALUE = 6,\n NOT_END = 7,\n SEPARATOR = 8,\n}\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nexport class CssSelector {\n element: string | null = null;\n classNames: string[] = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n attrs: string[] = [];\n notSelectors: CssSelector[] = [];\n\n static parse(selector: string): CssSelector[] {\n const results: CssSelector[] = [];\n const _addResult = (res: CssSelector[], cssSel: CssSelector) => {\n if (\n cssSel.notSelectors.length > 0 &&\n !cssSel.element &&\n cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0\n ) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match: string[] | null;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while ((match = _SELECTOR_REGEXP.exec(selector))) {\n if (match[SelectorRegexp.NOT]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[SelectorRegexp.TAG];\n if (tag) {\n const prefix = match[SelectorRegexp.PREFIX];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n } else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n } else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[SelectorRegexp.ATTRIBUTE];\n\n if (attribute) {\n current.addAttribute(\n current.unescapeAttribute(attribute),\n match[SelectorRegexp.ATTRIBUTE_VALUE],\n );\n }\n if (match[SelectorRegexp.NOT_END]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[SelectorRegexp.SEPARATOR]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr: string): string {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(\n `Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`,\n );\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string.\n */\n escapeAttribute(attr: string): string {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n\n setElement(element: string | null = null) {\n this.element = element;\n }\n\n addAttribute(name: string, value: string = '') {\n this.attrs.push(name, (value && value.toLowerCase()) || '');\n }\n\n addClassName(name: string) {\n this.classNames.push(name.toLowerCase());\n }\n\n toString(): string {\n let res: string = this.element || '';\n if (this.classNames) {\n this.classNames.forEach((klass) => (res += `.${klass}`));\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach((notSelector) => (res += `:not(${notSelector})`));\n return res;\n }\n}\n","import { CssSelector } from './directive_matching';\n// packages/compiler/src/core.ts\n/**\n * Flags used to generate R3-style CSS Selectors. They are pasted from\n * core/src/render3/projection.ts because they cannot be referenced directly.\n */\nconst enum SelectorFlags {\n /** Indicates this is the beginning of a new negative selector */\n NOT = 0b0001,\n\n /** Mode for matching attributes */\n ATTRIBUTE = 0b0010,\n\n /** Mode for matching tag names */\n ELEMENT = 0b0100,\n\n /** Mode for matching class names */\n CLASS = 0b1000,\n}\n\n// These are a copy the CSS types from core/src/render3/interfaces/projection.ts\n// They are duplicated here as they cannot be directly referenced from core.\ntype R3CssSelector = (string | SelectorFlags)[];\ntype R3CssSelectorList = R3CssSelector[];\n\nfunction parserSelectorToSimpleSelector(selector: CssSelector): R3CssSelector {\n const classes =\n selector.classNames && selector.classNames.length\n ? [SelectorFlags.CLASS, ...selector.classNames]\n : [];\n const elementName =\n selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\n\nfunction parserSelectorToNegativeSelector(\n selector: CssSelector,\n): R3CssSelector {\n const classes =\n selector.classNames && selector.classNames.length\n ? [SelectorFlags.CLASS, ...selector.classNames]\n : [];\n\n if (selector.element) {\n return [\n SelectorFlags.NOT | SelectorFlags.ELEMENT,\n selector.element,\n ...selector.attrs,\n ...classes,\n ];\n } else if (selector.attrs.length) {\n return [\n SelectorFlags.NOT | SelectorFlags.ATTRIBUTE,\n ...selector.attrs,\n ...classes,\n ];\n } else {\n return selector.classNames && selector.classNames.length\n ? [SelectorFlags.NOT | SelectorFlags.CLASS, ...selector.classNames]\n : [];\n }\n}\n\nfunction parserSelectorToR3Selector(selector: CssSelector): R3CssSelector {\n const positive = parserSelectorToSimpleSelector(selector);\n\n const negative: R3CssSelectorList =\n selector.notSelectors && selector.notSelectors.length\n ? selector.notSelectors.map((notSelector) =>\n parserSelectorToNegativeSelector(notSelector),\n )\n : [];\n\n return positive.concat(...negative);\n}\n\nexport function parseSelectorToR3Selector(\n selector: string | null,\n): R3CssSelectorList {\n return selector\n ? CssSelector.parse(selector).map(parserSelectorToR3Selector)\n : [];\n}\n","import {\n ɵɵdefineComponent,\n ɵɵelementStart,\n ɵɵtwoWayBindingSet,\n ɵɵelementEnd,\n ɵɵtwoWayProperty,\n Type,\n Signal,\n ɵɵproperty,\n ɵɵlistener,\n WritableSignal,\n viewChild,\n TemplateRef,\n ɵRenderFlags,\n ɵɵtemplate,\n ɵɵviewQuerySignal,\n ɵɵqueryAdvance,\n reflectComponentType,\n ElementRef,\n ɵɵprojectionDef,\n ɵɵprojection,\n ɵɵtext,\n ɵɵtextInterpolate,\n computed,\n ɵɵclassMap,\n} from '@angular/core';\nimport { ComponentContent } from '../type/component';\nimport { parseSelectorToR3Selector } from '../hook/selector';\nimport {\n CoreRawViewAttributes,\n CoreRawViewOutputs,\n} from '@piying/view-angular-core';\n\nexport type DirectiveConfig<T = any> = {\n /** string表示是标签,type<any>是组件或者指令 */\n type: Type<T> | string;\n inputs?: Signal<Record<string, any>>;\n outputs?: CoreRawViewOutputs;\n model?: Record<string, WritableSignal<any>>;\n selector?: string;\n attributes?: Signal<CoreRawViewAttributes | undefined>;\n contents?: ComponentContent;\n};\ntype InputDirectives = DirectiveConfig[];\nfunction parseDirectives(\n component: InputDirectives[number],\n list: InputDirectives,\n) {\n let vars = 0;\n const consts: (string | number)[] = [];\n const directiveList: Type<any>[] = [];\n const propertyList: { signal: Signal<any>; keyList: string[] }[] = [];\n const listenerList = [];\n const modelList = [];\n let classData: Signal<any> | undefined;\n let elementTag: string;\n if (typeof component.type === 'string') {\n elementTag = component.type;\n } else {\n const componentDefine = reflectComponentType(component.type);\n elementTag = component.selector ?? componentDefine!.selector;\n directiveList.push(component.type);\n }\n if (!elementTag) {\n throw new Error('未找到元素对应的选择器');\n }\n const attributes = component.attributes?.();\n if (attributes) {\n for (const key in attributes) {\n if (key === 'class') {\n classData = computed(() => component.attributes!()![key]);\n vars += 2;\n continue;\n }\n consts.push(key, attributes[key]);\n }\n }\n const mergedList = [component, ...list];\n for (let i = 0; i < mergedList.length; i++) {\n const item = mergedList[i];\n if (i > 0) {\n directiveList.push(item.type as Type<any>);\n const define = (item.type as any)['ɵdir'];\n const selectors = define.selectors as string[][];\n const selector =\n item.selector ??\n selectors.find(\n (selectorList) =>\n selectorList.length === 3 &&\n selectorList[0] === '' &&\n selectorList[2] === '',\n )![1];\n if (\n ((item.inputs && !(selector in item.inputs())) || !item.inputs) &&\n ((item.model && !(selector in item.model)) || !item.model)\n ) {\n consts.push(selector, '');\n }\n }\n if (item.inputs) {\n propertyList[i] = { signal: item.inputs, keyList: [] };\n for (const key in item.inputs()) {\n vars++;\n propertyList[i].keyList.push(key);\n }\n }\n for (const key in item.outputs) {\n listenerList.push({\n eventName: key,\n listenerFn: item.outputs[key],\n });\n }\n for (const key in item.model) {\n vars++;\n modelList.push({\n key: key,\n eventName: `${key}Change`,\n signal: item.model[key],\n });\n }\n }\n // packages/core/src/render3/interfaces/attribute_marker.ts\n consts.push(3);\n consts.push(\n ...new Set([\n ...listenerList.map(({ eventName }) => eventName),\n ...modelList.map(({ eventName }) => eventName),\n ]),\n );\n consts.push(\n ...new Set([\n ...propertyList.flatMap((item) => item.keyList),\n ...modelList.map(({ key }) => key),\n ]),\n );\n return {\n vars,\n consts: [['el', ''], consts],\n directiveList,\n propertyList: propertyList,\n listenerList: listenerList,\n modelList,\n elementTag,\n classData,\n };\n}\n/** 常量不变 */\nconst EL_QUERY = ['el'] as ['el'];\nlet index = 0;\nexport function createDynamicComponentDefine<T extends DirectiveConfig>(\n component: T,\n directives: InputDirectives,\n) {\n const result = parseDirectives(component, directives);\n let contentArray: '*'[] | undefined;\n let contentData;\n if (component.contents?.length) {\n contentArray = new Array(component.contents!.length).fill('*');\n contentData;\n }\n function templateFn(rf: ɵRenderFlags, ctx: any) {\n if (rf & 1) {\n ɵɵelementStart(0, result.elementTag, 1, 0);\n result.listenerList.reduce(\n (fn, item) => fn(item.eventName, item.listenerFn),\n ɵɵlistener,\n );\n result.modelList.reduce(\n (fn, item) =>\n fn(item.eventName, (value) => {\n ɵɵtwoWayBindingSet(item.signal, value);\n })!,\n ɵɵlistener,\n );\n if (component.contents?.length) {\n component.contents.forEach((item, index) => {\n if (item.select) {\n ɵɵprojection(\n index + 2,\n index,\n [\n 'ngProjectAs',\n item.select,\n 5,\n parseSelectorToR3Selector(item.select)[0] as any,\n ],\n item.text\n ? (rf, ctx) => {\n if (rf & 1) {\n ɵɵtext(0);\n }\n if (rf & 2) {\n ɵɵtextInterpolate(item.text!());\n }\n }\n : undefined,\n item.text ? 1 : undefined,\n item.text ? 1 : undefined,\n );\n } else {\n ɵɵprojection(index + 1, index);\n }\n });\n }\n ɵɵelementEnd();\n }\n if (rf & 2) {\n if (result.classData) {\n ɵɵclassMap(result.classData());\n }\n result.propertyList.reduce((fn, { signal, keyList }) => {\n const value = signal();\n return keyList.reduce((fn, key) => fn(key, value[key]), fn);\n }, ɵɵproperty);\n result.modelList.reduce(\n (fn, item) => fn(item.key, item.signal)!,\n ɵɵtwoWayProperty,\n );\n }\n }\n return class D {\n templateRef = viewChild.required(TemplateRef) as any as Signal<\n TemplateRef<any>\n >;\n componentInstance = viewChild('el') as any as Signal<\n | (T['type'] extends string ? ElementRef<HTMLElement> : T['type'])\n | undefined\n >;\n elementRef = viewChild('el', { read: ElementRef }) as any as Signal<\n ElementRef<HTMLElement> | undefined\n >;\n directiveRefList = directives.map(\n ({ type }) =>\n viewChild('el', { read: type as any }) as any as Signal<any>,\n );\n static ɵfac = (_: any) => new (_ || D)();\n static ɵcmp = ɵɵdefineComponent({\n type: D,\n selectors: [[`d-${index++}`]],\n ngContentSelectors: contentArray,\n decls: 1,\n vars: 0,\n consts: result.consts,\n template: (rf, ctx) => {\n if (rf & 1) {\n if (contentArray) {\n ɵɵprojectionDef(contentArray);\n }\n ɵɵtemplate(\n 0,\n templateFn,\n 2 + (component.contents?.length ?? 0),\n result.vars,\n 'ng-template',\n );\n }\n },\n viewQuery: (rf, ctx) => {\n if (rf & 1) {\n ɵɵviewQuerySignal(ctx.templateRef, TemplateRef, 5 as any);\n ɵɵviewQuerySignal(ctx.componentInstance, EL_QUERY, 5 as any);\n ɵɵviewQuerySignal(ctx.elementRef, EL_QUERY, 5 as any, ElementRef);\n directives.forEach(({ type }, index) => {\n ɵɵviewQuerySignal(\n ctx.directiveRefList[index],\n EL_QUERY,\n 5 as any,\n type as any,\n );\n });\n }\n if (rf & 2) {\n ɵɵqueryAdvance(3 + directives.length);\n }\n },\n dependencies: result.directiveList,\n encapsulation: 2,\n changeDetection: 0,\n });\n };\n}\n","import {\n computed,\n createComponent,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n inject,\n Injector,\n signal,\n Signal,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { PiResolvedViewFieldConfig } from '../type';\nimport { ComponentContent, DynamicComponentConfig } from '../type/component';\nimport {\n ComponentCheckConfig,\n getComponentCheckConfig,\n} from '../util/component-config.equal';\nimport { createDynamicComponentDefine } from './dynamic-define.component';\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';\nconst EmptyOBJ = {};\n@Directive()\nexport class BaseComponent {\n /** 第一次默认为空 */\n #index = inject(PI_COMPONENT_INDEX, { optional: true })!;\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 /** 比较时使用 */\n #componentCheckConfig$$!: Signal<ComponentCheckConfig>;\n #setComponentCheck(config: DynamicComponentConfig) {\n this.#componentCheckConfig$$ = computed(() =>\n untracked(() => getComponentCheckConfig(config)),\n );\n }\n setFieldData(field: Signal<PiResolvedViewFieldConfig>, index: number) {\n this.#index = index;\n }\n /**\n * 输入引用绑定\n * 1. 上次传入的数据格式和当前一样,只触发更新\n * 2. 上次传入的数据格式和当前不一样,直接重新创建\n */\n #inputCache!: {\n inputs?: Signal<Record<string, any>>;\n attributes?: Signal<Record<string, any>>;\n directiveList?: (Signal<Record<string, any>> | undefined)[];\n };\n #contentCache!: ComponentContent | undefined;\n\n #configUpdate$ = signal(0);\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 componentConfig = list[this.#index];\n\n this.#componentConfig = componentConfig;\n this.#inputCache = {\n inputs: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.inputs!() ?? EmptyOBJ;\n }),\n attributes: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.attributes!() ?? EmptyOBJ;\n }),\n directiveList: this.#componentConfig?.directives?.map((config, index) =>\n config.inputs\n ? computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.directives![index].inputs!();\n })\n : undefined,\n ),\n };\n this.#contentCache = componentConfig.contents?.map((item, index) => {\n if (item.text) {\n return {\n ...item,\n text: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig.contents![index].text!();\n }),\n };\n }\n return item;\n });\n this.#setComponentCheck(componentConfig);\n const SidecarComponent = createDynamicComponentDefine(\n {\n ...componentConfig,\n inputs: this.#inputCache.inputs,\n attributes: this.#inputCache.attributes,\n contents: this.#contentCache,\n },\n componentConfig.directives?.map((config, index) => ({\n ...config,\n inputs: this.#inputCache.directiveList![index],\n })) ?? [],\n );\n const componentInjector = Injector.create({\n providers: [\n { provide: PI_COMPONENT_LIST, useValue: list },\n { provide: PI_COMPONENT_INDEX, useValue: this.#index + 1 },\n { provide: PI_COMPONENT_LIST_LISTEN, useValue: this.#eventEmitter },\n ],\n parent: componentConfig.injector ?? viewContainerRef.injector,\n });\n const componentRef = createComponent(SidecarComponent, {\n elementInjector: componentInjector,\n environmentInjector: componentInjector.get(EnvironmentInjector),\n projectableNodes: componentConfig.contents\n ?.map(({ nodes }) => nodes!)\n .filter(Boolean),\n });\n // todo 这里需不需要加注入?\n viewContainerRef.createEmbeddedView(componentRef.instance.templateRef());\n\n this.fieldComponentInstance = componentRef.instance.componentInstance()!;\n this.fieldElementRef = componentRef.instance.elementRef()!;\n this.fieldDirectiveRefList = componentRef.instance.directiveRefList.map(\n (item) => item(),\n );\n this.destroyComponentFn = () => {\n viewContainerRef.clear();\n componentRef.destroy();\n this.#eventEmitter.unsubscribe();\n };\n if (list.length === this.#index + 1) {\n const field = componentInjector.get(PI_VIEW_FIELD_TOKEN)();\n field.hooks?.afterCreateComponent?.(field);\n }\n }\n\n update(list: DynamicComponentConfig[]) {\n const item = list[this.#index];\n const currentCheckConfig = getComponentCheckConfig(item);\n const isEqual = deepEqual(\n currentCheckConfig,\n this.#componentCheckConfig$$(),\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: false,\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 ngOnInit(): void {\n this.disposeList.push(\n createViewControlLink(this.fieldControl, this.cva, this.injector),\n );\n }\n\n disposeList: (() => any)[] = [];\n\n clear() {\n this.disposeList.forEach((fn) => fn());\n this.disposeList = [];\n }\n /** @docs-private */\n ngOnDestroy() {\n this.clear();\n }\n}\n","import {\n computed,\n createNgModule,\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 RawDirectiveOutputs,\n ComponentContent,\n NgResolvedComponentDefine2,\n} from '../type/component';\nimport { EMPTY_ARRAY } from '../const';\nimport { BaseComponent } from '../component/base.component';\nimport { DirectiveConfig } from '../component/dynamic-define.component';\nimport { deepEqual } from 'fast-equals';\nimport { FieldControl } from '@piying/view-angular-core';\nimport { PI_COMPONENT_INDEX, PI_VIEW_FIELD_TOKEN } from '../type/view-token';\nimport { FieldControlDirective } from '../directives/field-control-directive';\n\n@Directive({\n selector: '[ngComponentOutlet]',\n exportAs: 'ngComponentOutlet',\n standalone: true,\n})\nexport class NgComponentOutlet<T = any>\n extends BaseComponent\n implements OnChanges, OnDestroy\n{\n /** 输入 */\n ngComponentOutlet = input<NgResolvedComponentDefine2>();\n ngComponentOutletInputs = input<Record<string, unknown>>();\n ngComponentOutletOutputs = input<RawDirectiveOutputs>();\n ngComponentOutletInjector = input<Injector>();\n ngComponentOutletContent = input<ComponentContent>();\n /** 控件用 */\n ngComponentOutletFormControl = input<FieldControl>();\n /** 包裹用 */\n ngComponentOutletWrappers = input<NgResolvedWraaperConfig[]>();\n ngComponentOutletTopDirectives = input<DirectiveConfig[]>();\n ngComponentOutletDirectives =\n input<PiResolvedViewFieldConfig['directives']>();\n\n ngComponentOutletField = input.required<PiResolvedViewFieldConfig>();\n #viewContainerRef = inject(ViewContainerRef);\n // 这里感觉会在非发射时出现多次输入?\n #wrappers = computed(() =>\n this.ngComponentOutletWrappers()?.map((item) => ({\n ...item,\n type: item.type.component,\n module: item.type.module,\n })),\n );\n #onputEqual$$ = computed(() => this.ngComponentOutletOutputs(), {\n equal: deepEqual,\n });\n\n #moduleDestroy?: () => void;\n\n #moduleRef$$ = computed(() => {\n this.#moduleDestroy?.();\n const injector = this.ngComponentOutletInjector() || this.#injector;\n const module = this.ngComponentOutlet()?.type.module;\n if (!module) {\n return;\n }\n const moduleRef = createNgModule(module, injector);\n this.#moduleDestroy = () => {\n moduleRef.destroy();\n this.#moduleDestroy = undefined;\n };\n return moduleRef;\n });\n #usedEnvInjector$$ = computed(() => {\n const injector =\n this.#moduleRef$$()?.injector ??\n (this.ngComponentOutletInjector() || this.#injector);\n return Injector.create({\n providers: [\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: this.ngComponentOutletField,\n },\n {\n provide: PI_COMPONENT_INDEX,\n useValue: 0,\n },\n ],\n parent: injector,\n }).get(Injector);\n });\n #injector = inject(Injector);\n #formControlDirectiveConfig$$ = computed(() => {\n const fieldControl = this.ngComponentOutletFormControl();\n return fieldControl\n ? ({\n type: FieldControlDirective,\n inputs: computed(() => ({ 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\n #componentConfig$$ = computed(() => {\n const define = this.ngComponentOutlet();\n if (!define) {\n return;\n }\n const directives = this.#directiveConfigList$$();\n return {\n ...define!,\n type: define!.type.component,\n module: define!.type.module,\n inputs: this.ngComponentOutletInputs,\n directives: directives\n ? directives.map((item) => {\n const outputs = item.outputs;\n if (outputs) {\n return {\n ...item,\n outputs: outputs,\n };\n }\n return item;\n })\n : undefined,\n outputs: this.#onputEqual$$(),\n contents: this.ngComponentOutletContent(),\n } as DynamicComponentConfig;\n });\n #componentList$$ = computed(() => {\n const componentConfig = this.#componentConfig$$();\n if (!componentConfig) {\n return EMPTY_ARRAY;\n }\n const injector = this.#usedEnvInjector$$();\n const list: DynamicComponentConfig[] = [\n ...(this.#wrappers() ?? []),\n componentConfig,\n ];\n\n list[0] = { ...list[0], injector };\n\n return list;\n });\n\n #lastList?: DynamicComponentConfig[];\n ngOnChanges() {\n //todo 变更时的一些检测,相同时应该不处理\n const list = this.#componentList$$();\n if (!list.length) {\n return this.destroyComponentFn?.();\n }\n if (!this.#lastList) {\n const field = this.ngComponentOutletField();\n field.hooks?.beforeCreateComponent?.(field);\n this.setFieldData(this.ngComponentOutletField, 0);\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.#moduleDestroy?.();\n this.destroyComponentFn?.();\n }\n}\n","import {\n computed,\n Injector,\n reflectComponentType,\n resource,\n Type,\n untracked,\n} from '@angular/core';\nimport { NgResolvedComponentDefine2 } from '../type/component';\nimport { NgResolvedComponentDefine1 } from '../type';\nimport { getLazyImport, isLazyMark } from '@piying/view-angular-core';\nfunction isComponentType(input: any): input is Type<any> {\n return !!reflectComponentType(input as any);\n}\nexport function createAsyncCache<One extends boolean, Result>(\n one: One,\n injector: Injector,\n) {\n const loading = new Map<any, Promise<Result>>();\n const cached = new Map<any, Result>();\n return (\n list:\n | (One extends true\n ? NgResolvedComponentDefine2\n : NgResolvedComponentDefine2[])\n | undefined,\n ) =>\n untracked(() => {\n if (!list) {\n return { value: computed(() => undefined) };\n }\n let hasPromise = false;\n const result = (\n ((one as One) ? [list] : list) as any as NgResolvedComponentDefine1[]\n ).map((item) => {\n if (cached.has(item)) {\n return cached.get(item)!;\n } else if (loading.has(item)) {\n hasPromise = true;\n return loading.get(item)!;\n }\n const resolved = item;\n const type = resolved.type;\n if (typeof type === 'string' || isComponentType(type)) {\n const result = { ...resolved, type: { component: type } };\n cached.set(item, result as any);\n return result;\n } else if (typeof type === 'function' || isLazyMark(type)) {\n hasPromise = true;\n const result$$ = getLazyImport<() => Promise<any>>(type)!().then(\n (value) => {\n const result = {\n ...resolved,\n type: isComponentType(value) ? { component: value } : value,\n } as any;\n cached.set(item, result);\n loading.delete(item);\n return result;\n },\n );\n loading.set(item, result$$);\n return result$$;\n } else {\n return resolved;\n }\n });\n if (hasPromise) {\n return resource<Result, undefined>({\n loader: async () => (one ? result[0] : Promise.all(result)) as any,\n injector: injector,\n });\n } else {\n return {\n value: computed<Result>(() => (one ? result[0] : result) as any),\n };\n }\n });\n}\n","import {\n PiComponentDefaultConfig,\n PiResolvedViewFieldConfig,\n ConfigMergeStrategyObject,\n PiViewConfig,\n NgResolvedComponentDefine1,\n} from './type';\nimport { inject, Injectable, Type } from '@angular/core';\n\nimport { FormBuilder, PI_VIEW_CONFIG_TOKEN } from '@piying/view-angular-core';\nimport { NG_CONFIG_DEFAULT_MERGE_STRAGEGY } from './const';\nimport { NgSchemaHandle } from './schema/ng-schema';\n\n@Injectable()\nexport class AngularFormBuilder extends FormBuilder<NgSchemaHandle> {\n #globalConfig: PiViewConfig = inject(PI_VIEW_CONFIG_TOKEN) as any;\n override afterResolveConfig(\n rawConfig: NgSchemaHandle,\n config: PiResolvedViewFieldConfig,\n ): PiResolvedViewFieldConfig {\n const field = rawConfig;\n const type = rawConfig.type;\n let componentDefaultConfig: PiComponentDefaultConfig | undefined;\n let define;\n const mergeStrategy = this.#globalConfig\n .defaultConfigMergeStrategy as ConfigMergeStrategyObject;\n\n if (type) {\n const result = this.#resolveComponent(type);\n define = result.define;\n componentDefaultConfig = result.defaultConfig;\n }\n\n const directives = this.configMerge(\n [componentDefaultConfig?.directives, field.directives],\n true,\n mergeStrategy?.directives ?? NG_CONFIG_DEFAULT_MERGE_STRAGEGY.directives,\n );\n return {\n ...config,\n contents: field.contents?.sort((a, b) =>\n a.nodes && b.nodes ? 0 : a.nodes ? -1 : 1,\n ),\n directives: directives,\n };\n }\n\n #resolveComponent(type: string | Type<any> | (() => Promise<Type<any>>)) {\n let define;\n let defaultConfig;\n // 查引用\n if (typeof type === 'string') {\n const config = this.#globalConfig.types?.[type];\n if (!config) {\n throw new Error(`未注册${type}`);\n }\n defaultConfig = config;\n if (Object.keys(config).length) {\n define = {\n ...config,\n } as NgResolvedComponentDefine1;\n }\n } else {\n // 直接使用视为独立组件,并且selector只有一个\n define = { type } as NgResolvedComponentDefine1;\n }\n return {\n define,\n defaultConfig,\n };\n }\n}\n","import { CoreSchemaHandle } from '@piying/view-angular-core';\nimport { PiResolvedViewFieldConfig, NgDirectiveConfig } from '../type';\nimport { ComponentContent } from '../type/component';\n\nexport class NgSchemaHandle extends CoreSchemaHandle<\n NgSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type?: any;\n contents?: ComponentContent;\n directives?: NgDirectiveConfig[];\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'pure',\n standalone: true,\n})\nexport class PurePipe implements PipeTransform {\n transform<T extends (...args: any[]) => any>(fn: T, ...args: Parameters<T>) {\n return fn(...args) as ReturnType<T>;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n createEnvironmentInjector,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n untracked,\n} from '@angular/core';\nimport { NgComponentOutlet } from './hook/ng_component_outlet';\n\nimport {\n PiViewConfig,\n PiResolvedViewFieldConfig,\n NgResolvedWraaperConfig,\n} from './type';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NgResolvedComponentDefine2 } from './type/component';\nimport { createAsyncCache } from './util/async-cache';\nimport {\n convert,\n FieldArray,\n FieldControl,\n FieldGroup,\n initListen,\n isFieldArray,\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';\nimport { PurePipe } from './pipe/pure.pipe';\nconst DefaultConvertOptions = {\n builder: AngularFormBuilder,\n handle: NgSchemaHandle as any,\n};\n@Component({\n selector: 'piying-view',\n imports: [NgComponentOutlet, PurePipe, NgTemplateOutlet],\n templateUrl: './component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingView implements OnChanges {\n schema = input.required<\n v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>\n >();\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.#modelChange$$();\n }\n this.#lastRF = rFields;\n }\n #modelChange$$ = computed(() => {\n const model = this.model();\n untracked(() => this.#updateField(model));\n });\n #resolvedFields$$ = computed(() => {\n this.schema();\n return untracked(() => this.#updateForm());\n });\n\n #injector = inject(Injector);\n #envInjector = inject(EnvironmentInjector);\n #builderEnvInjector?: EnvironmentInjector;\n resolvedField$ = signal<PiResolvedViewFieldConfig | undefined>(undefined);\n #disposeList: (() => void)[] = [];\n #updateForm() {\n this.#clean();\n // 临时销毁\n const envInjector = createEnvironmentInjector([], this.#envInjector);\n this.#builderEnvInjector = envInjector;\n const result = convert<PiResolvedViewFieldConfig>(this.schema() as any, {\n ...DefaultConvertOptions,\n ...this.options(),\n injector: envInjector,\n registerOnDestroy: (fn) => {\n envInjector.get(DestroyRef).onDestroy(() => {\n fn();\n });\n },\n });\n this.resolvedField$.set(result);\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.#disposeList.push(() => ref.destroy());\n }\n return result;\n }\n #clean(isDestoryed = false) {\n this.#disposeList.forEach((item) => item());\n this.#disposeList = [];\n if (!isDestoryed && this.#builderEnvInjector) {\n this.#builderEnvInjector.destroy();\n this.#builderEnvInjector = undefined;\n }\n }\n\n #updateField(model: Record<string, any> | undefined) {\n if (!this.resolvedField$()) {\n return;\n }\n const field = this.resolvedField$()!;\n field.form.control?.updateValue(model);\n }\n\n groupInputsValue = (\n inputs: PiResolvedViewFieldConfig['inputs'],\n\n fieldTemplateRef: TemplateRef<any>,\n ) =>\n computed(() => ({\n ...inputs(),\n fieldTemplateRef,\n }));\n\n resolvedComponent = createAsyncCache<true, NgResolvedComponentDefine2>(\n true,\n this.#injector,\n );\n // 这里的组件还是不准确,因为type已经改了,\n resolvedWrapper = createAsyncCache<false, NgResolvedWraaperConfig[]>(\n false,\n this.#injector,\n );\n\n groupHidden = (field: PiResolvedViewFieldConfig) =>\n computed(() => this.#groupHidden(field));\n #groupHidden(field: PiResolvedViewFieldConfig): boolean {\n if (isFieldArray(field.form.control) || field.restChildren) {\n return false;\n }\n if (field.fixedChildren) {\n if (!field.fixedChildren?.().length) {\n return true;\n } else {\n return field.fixedChildren().every((field) => this.#groupHidden(field));\n }\n } else {\n return !field.define || !!field.renderConfig().hidden;\n }\n }\n ngOnDestroy(): void {\n this.#clean(true);\n }\n}\n","<ng-template #dynamicComponent let-field>\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @let typeResource = resolvedComponent | pure: field.define;\n @let type = typeResource.value();\n @let wrappersResource = resolvedWrapper | pure: field.wrappers();\n @let wrappers = wrappersResource.value();\n @if (type) {\n @if (field.fixedChildren || field.restChildren) {\n @if (!(groupHidden | pure: field)()) {\n <!-- 自定义group -->\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"\n (groupInputsValue | pure: field.inputs : dynamicComponent)?.()\n \"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n ></ng-container>\n }\n } @else {\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"field.inputs()\"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletContent]=\"field.contents\"\n ></ng-container>\n }\n }\n }\n</ng-template>\n\n@if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"dynamicComponent; context: { $implicit: field }\"\n ></ng-container>\n}\n","import {\n computed,\n Directive,\n inject,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { BaseComponent } from './base.component';\nimport {\n PI_COMPONENT_LIST,\n PI_COMPONENT_LIST_LISTEN,\n PI_VIEW_FIELD_TOKEN,\n} from '../type/view-token';\n\n@Directive()\nexport class PiyingViewWrapperBase extends BaseComponent {\n fieldComponentAnchor = viewChild('fieldComponent', {\n read: ViewContainerRef,\n });\n field$$ = inject(PI_VIEW_FIELD_TOKEN);\n props$$ = computed(() => this.field$$().props());\n #listen = inject(PI_COMPONENT_LIST_LISTEN);\n #list = inject(PI_COMPONENT_LIST);\n override createComponent() {\n const result = super.createComponent(\n this.#list,\n this.fieldComponentAnchor()!,\n );\n this.#listen.subscribe((list) => {\n this.update(list);\n });\n return result;\n }\n ngOnInit(): void {\n this.createComponent();\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 _PiResolvedCommonViewFieldConfig,\n asyncInputMerge,\n mergeHooksFn,\n} from '@piying/view-angular-core';\nimport { NgDirectiveConfig } from '../../type';\nimport { rawConfig } from './raw-config';\nimport { NgSchemaHandle } from '../ng-schema';\nimport { linkedSignal, signal } from '@angular/core';\n\nexport function setDirectives<T>(items: NgDirectiveConfig[]) {\n return rawConfig<T>((field) => {\n field.directives = items;\n });\n}\nexport function patchDirectives<T>(items: NgDirectiveConfig[]) {\n return rawConfig<T>((field) => {\n field.directives ??= [];\n field.directives.push(...items);\n });\n}\nexport function patchAsyncDirective<T>(\n fn: (\n field: _PiResolvedCommonViewFieldConfig,\n ) => Omit<NgDirectiveConfig, 'inputs'> & { inputs?: Record<string, any> },\n) {\n return rawConfig<T>((field) => {\n mergeHooksFn<NgSchemaHandle>(\n {\n fieldResolved: (field) => {\n field.directives ??= signal([]);\n const directive = fn(field);\n const inputs = directive.inputs;\n let inputs$ = signal<Record<string, any>>({});\n if (inputs) {\n inputs$.set(\n Object.keys(inputs).reduce(\n (obj, key) => {\n obj[key] = undefined;\n return obj;\n },\n {} as Record<string, any>,\n ),\n );\n inputs$ = asyncInputMerge(inputs, inputs$);\n }\n const oldDirectives = field.directives;\n field.directives = linkedSignal(() => [\n ...oldDirectives(),\n { ...directive, inputs: inputs$ },\n ]);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\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: any) {\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 disabled$ = signal(false);\n setDisabledState(isDisabled: boolean): void {\n this.disabled$.set(isDisabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵɵelementStart","ɵɵlistener","ɵɵtwoWayBindingSet","ɵɵprojection","ɵɵtext","ɵɵtextInterpolate","ɵɵelementEnd","ɵɵclassMap","ɵɵproperty","ɵɵtwoWayProperty","ɵɵdefineComponent","ɵɵprojectionDef","ɵɵtemplate","ɵɵviewQuerySignal","ɵɵqueryAdvance","originRawConfig"],"mappings":"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"}
1
+ {"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/const.ts","../../../projects/view-angular/lib/util/component-config.equal.ts","../../../projects/view-angular/lib/hook/directive_matching.ts","../../../projects/view-angular/lib/hook/selector.ts","../../../projects/view-angular/lib/component/dynamic-define.component.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/ng_component_outlet.ts","../../../projects/view-angular/lib/util/async-cache.ts","../../../projects/view-angular/lib/builder.ts","../../../projects/view-angular/lib/schema/ng-schema.ts","../../../projects/view-angular/lib/pipe/pure.pipe.ts","../../../projects/view-angular/lib/view.component.ts","../../../projects/view-angular/lib/component.html","../../../projects/view-angular/lib/component/wrapper-base.component.ts","../../../projects/view-angular/lib/schema/action/raw-config.ts","../../../projects/view-angular/lib/schema/action/directive.ts","../../../projects/view-angular/lib/component/form/control.base.component.ts","../../../projects/view-angular/piying-view-angular.ts"],"sourcesContent":["/** component */\n\nimport { InjectionToken, Signal, EventEmitter } from '@angular/core';\nimport { DynamicComponentConfig } from './component';\nimport { PiResolvedViewFieldConfig } from './group';\n\n/** wrapper中可以使用,已解析的配置 */\nexport const PI_VIEW_FIELD_TOKEN = new InjectionToken<\n Signal<PiResolvedViewFieldConfig>\n>('PI_VIEW_FIELD_TOKEN');\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","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { PI_VIEW_FIELD_TOKEN } 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 = input.required<TemplateRef<any>>();\n}\n","import { ChangeDetectionStrategy, Component } 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","@for (field of children$$(); track field.id || $index) {\n <ng-container\n *ngTemplateOutlet=\"fieldTemplateRef(); context: { $implicit: field }\"\n ></ng-container>\n}\n","import { ConfigMergeStrategyObject } from './type';\n\nexport const EMPTY_ARRAY = [];\nexport const NG_CONFIG_DEFAULT_MERGE_STRAGEGY: ConfigMergeStrategyObject = {\n directives: 'merge',\n formConfig: 'merge',\n inputs: 'merge',\n outputs: 'merge',\n props: 'merge',\n renderConfig: 'merge',\n wrappers: 'replace',\n attributes: 'merge',\n};\n","import { DynamicComponentConfig } from '../type/component';\n\nexport function getComponentCheckConfig(a: DynamicComponentConfig) {\n return {\n ...a,\n inputs: Object.keys(a.inputs() ?? {}).join(','),\n // todo 需要等修改为动态的再比较key\n attributes: Object.entries(a.attributes() ?? {})\n .map((key, value) => `${key}:${value}`)\n .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 contents: a.contents?.map((item) => ({ ...item, text: !!item.text })),\n };\n}\n\nexport type ComponentCheckConfig = ReturnType<typeof getComponentCheckConfig>;\n","//packages/compiler/src/directive_matching.ts\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\nconst _SELECTOR_REGEXP = new RegExp(\n '(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"\\']?)([^\\\\]\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n 'g',\n);\n\n/**\n * These offsets should match the match-groups in `_SELECTOR_REGEXP` offsets.\n */\nconst enum SelectorRegexp {\n ALL = 0, // The whole match\n NOT = 1,\n TAG = 2,\n PREFIX = 3,\n ATTRIBUTE = 4,\n ATTRIBUTE_STRING = 5,\n ATTRIBUTE_VALUE = 6,\n NOT_END = 7,\n SEPARATOR = 8,\n}\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nexport class CssSelector {\n element: string | null = null;\n classNames: string[] = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n attrs: string[] = [];\n notSelectors: CssSelector[] = [];\n\n static parse(selector: string): CssSelector[] {\n const results: CssSelector[] = [];\n const _addResult = (res: CssSelector[], cssSel: CssSelector) => {\n if (\n cssSel.notSelectors.length > 0 &&\n !cssSel.element &&\n cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0\n ) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match: string[] | null;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while ((match = _SELECTOR_REGEXP.exec(selector))) {\n if (match[SelectorRegexp.NOT]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[SelectorRegexp.TAG];\n if (tag) {\n const prefix = match[SelectorRegexp.PREFIX];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n } else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n } else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[SelectorRegexp.ATTRIBUTE];\n\n if (attribute) {\n current.addAttribute(\n current.unescapeAttribute(attribute),\n match[SelectorRegexp.ATTRIBUTE_VALUE],\n );\n }\n if (match[SelectorRegexp.NOT_END]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[SelectorRegexp.SEPARATOR]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr: string): string {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(\n `Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`,\n );\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string.\n */\n escapeAttribute(attr: string): string {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n\n setElement(element: string | null = null) {\n this.element = element;\n }\n\n addAttribute(name: string, value: string = '') {\n this.attrs.push(name, (value && value.toLowerCase()) || '');\n }\n\n addClassName(name: string) {\n this.classNames.push(name.toLowerCase());\n }\n\n toString(): string {\n let res: string = this.element || '';\n if (this.classNames) {\n this.classNames.forEach((klass) => (res += `.${klass}`));\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach((notSelector) => (res += `:not(${notSelector})`));\n return res;\n }\n}\n","import { CssSelector } from './directive_matching';\n// packages/compiler/src/core.ts\n/**\n * Flags used to generate R3-style CSS Selectors. They are pasted from\n * core/src/render3/projection.ts because they cannot be referenced directly.\n */\nconst enum SelectorFlags {\n /** Indicates this is the beginning of a new negative selector */\n NOT = 0b0001,\n\n /** Mode for matching attributes */\n ATTRIBUTE = 0b0010,\n\n /** Mode for matching tag names */\n ELEMENT = 0b0100,\n\n /** Mode for matching class names */\n CLASS = 0b1000,\n}\n\n// These are a copy the CSS types from core/src/render3/interfaces/projection.ts\n// They are duplicated here as they cannot be directly referenced from core.\ntype R3CssSelector = (string | SelectorFlags)[];\ntype R3CssSelectorList = R3CssSelector[];\n\nfunction parserSelectorToSimpleSelector(selector: CssSelector): R3CssSelector {\n const classes =\n selector.classNames && selector.classNames.length\n ? [SelectorFlags.CLASS, ...selector.classNames]\n : [];\n const elementName =\n selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\n\nfunction parserSelectorToNegativeSelector(\n selector: CssSelector,\n): R3CssSelector {\n const classes =\n selector.classNames && selector.classNames.length\n ? [SelectorFlags.CLASS, ...selector.classNames]\n : [];\n\n if (selector.element) {\n return [\n SelectorFlags.NOT | SelectorFlags.ELEMENT,\n selector.element,\n ...selector.attrs,\n ...classes,\n ];\n } else if (selector.attrs.length) {\n return [\n SelectorFlags.NOT | SelectorFlags.ATTRIBUTE,\n ...selector.attrs,\n ...classes,\n ];\n } else {\n return selector.classNames && selector.classNames.length\n ? [SelectorFlags.NOT | SelectorFlags.CLASS, ...selector.classNames]\n : [];\n }\n}\n\nfunction parserSelectorToR3Selector(selector: CssSelector): R3CssSelector {\n const positive = parserSelectorToSimpleSelector(selector);\n\n const negative: R3CssSelectorList =\n selector.notSelectors && selector.notSelectors.length\n ? selector.notSelectors.map((notSelector) =>\n parserSelectorToNegativeSelector(notSelector),\n )\n : [];\n\n return positive.concat(...negative);\n}\n\nexport function parseSelectorToR3Selector(\n selector: string | null,\n): R3CssSelectorList {\n return selector\n ? CssSelector.parse(selector).map(parserSelectorToR3Selector)\n : [];\n}\n","import {\n ɵɵdefineComponent,\n ɵɵelementStart,\n ɵɵtwoWayBindingSet,\n ɵɵelementEnd,\n ɵɵtwoWayProperty,\n Type,\n Signal,\n ɵɵproperty,\n ɵɵlistener,\n WritableSignal,\n viewChild,\n TemplateRef,\n ɵRenderFlags,\n ɵɵtemplate,\n ɵɵviewQuerySignal,\n ɵɵqueryAdvance,\n reflectComponentType,\n ElementRef,\n ɵɵprojectionDef,\n ɵɵprojection,\n ɵɵtext,\n ɵɵtextInterpolate,\n computed,\n ɵɵclassMap,\n} from '@angular/core';\nimport { ComponentContent } from '../type/component';\nimport { parseSelectorToR3Selector } from '../hook/selector';\nimport {\n CoreRawViewAttributes,\n CoreRawViewOutputs,\n} from '@piying/view-angular-core';\n\nexport type DirectiveConfig<T = any> = {\n /** string表示是标签,type<any>是组件或者指令 */\n type: Type<T> | string;\n inputs?: Signal<Record<string, any>>;\n outputs?: CoreRawViewOutputs;\n model?: Record<string, WritableSignal<any>>;\n selector?: string;\n attributes?: Signal<CoreRawViewAttributes | undefined>;\n contents?: ComponentContent;\n};\ntype InputDirectives = DirectiveConfig[];\nfunction parseDirectives(\n component: InputDirectives[number],\n list: InputDirectives,\n) {\n let vars = 0;\n const consts: (string | number)[] = [];\n const directiveList: Type<any>[] = [];\n const propertyList: { signal: Signal<any>; keyList: string[] }[] = [];\n const listenerList = [];\n const modelList = [];\n let classData: Signal<any> | undefined;\n let elementTag: string;\n if (typeof component.type === 'string') {\n elementTag = component.type;\n } else {\n const componentDefine = reflectComponentType(component.type);\n elementTag = component.selector ?? componentDefine!.selector;\n directiveList.push(component.type);\n }\n if (!elementTag) {\n throw new Error('未找到元素对应的选择器');\n }\n const attributes = component.attributes?.();\n if (attributes) {\n for (const key in attributes) {\n if (key === 'class') {\n classData = computed(() => component.attributes!()![key]);\n vars += 2;\n continue;\n }\n consts.push(key, attributes[key]);\n }\n }\n const mergedList = [component, ...list];\n for (let i = 0; i < mergedList.length; i++) {\n const item = mergedList[i];\n if (i > 0) {\n directiveList.push(item.type as Type<any>);\n const define = (item.type as any)['ɵdir'];\n const selectors = define.selectors as string[][];\n const selector =\n item.selector ??\n selectors.find(\n (selectorList) =>\n selectorList.length === 3 &&\n selectorList[0] === '' &&\n selectorList[2] === '',\n )![1];\n if (\n ((item.inputs && !(selector in item.inputs())) || !item.inputs) &&\n ((item.model && !(selector in item.model)) || !item.model)\n ) {\n consts.push(selector, '');\n }\n }\n if (item.inputs) {\n propertyList[i] = { signal: item.inputs, keyList: [] };\n for (const key in item.inputs()) {\n vars++;\n propertyList[i].keyList.push(key);\n }\n }\n for (const key in item.outputs) {\n listenerList.push({\n eventName: key,\n listenerFn: item.outputs[key],\n });\n }\n for (const key in item.model) {\n vars++;\n modelList.push({\n key: key,\n eventName: `${key}Change`,\n signal: item.model[key],\n });\n }\n }\n // packages/core/src/render3/interfaces/attribute_marker.ts\n consts.push(3);\n consts.push(\n ...new Set([\n ...listenerList.map(({ eventName }) => eventName),\n ...modelList.map(({ eventName }) => eventName),\n ]),\n );\n consts.push(\n ...new Set([\n ...propertyList.flatMap((item) => item.keyList),\n ...modelList.map(({ key }) => key),\n ]),\n );\n return {\n vars,\n consts: [['el', ''], consts],\n directiveList,\n propertyList: propertyList,\n listenerList: listenerList,\n modelList,\n elementTag,\n classData,\n };\n}\n/** 常量不变 */\nconst EL_QUERY = ['el'] as ['el'];\nlet index = 0;\nexport function createDynamicComponentDefine<T extends DirectiveConfig>(\n component: T,\n directives: InputDirectives,\n) {\n const result = parseDirectives(component, directives);\n let contentArray: '*'[] | undefined;\n let contentData;\n if (component.contents?.length) {\n contentArray = new Array(component.contents!.length).fill('*');\n contentData;\n }\n function templateFn(rf: ɵRenderFlags, ctx: any) {\n if (rf & 1) {\n ɵɵelementStart(0, result.elementTag, 1, 0);\n result.listenerList.reduce(\n (fn, item) => fn(item.eventName, item.listenerFn),\n ɵɵlistener,\n );\n result.modelList.reduce(\n (fn, item) =>\n fn(item.eventName, (value) => {\n ɵɵtwoWayBindingSet(item.signal, value);\n })!,\n ɵɵlistener,\n );\n if (component.contents?.length) {\n component.contents.forEach((item, index) => {\n if (item.select) {\n ɵɵprojection(\n index + 2,\n index,\n [\n 'ngProjectAs',\n item.select,\n 5,\n parseSelectorToR3Selector(item.select)[0] as any,\n ],\n item.text\n ? (rf, ctx) => {\n if (rf & 1) {\n ɵɵtext(0);\n }\n if (rf & 2) {\n ɵɵtextInterpolate(item.text!());\n }\n }\n : undefined,\n item.text ? 1 : undefined,\n item.text ? 1 : undefined,\n );\n } else {\n ɵɵprojection(index + 1, index);\n }\n });\n }\n ɵɵelementEnd();\n }\n if (rf & 2) {\n if (result.classData) {\n ɵɵclassMap(result.classData());\n }\n result.propertyList.reduce((fn, { signal, keyList }) => {\n const value = signal();\n return keyList.reduce((fn, key) => fn(key, value[key]), fn);\n }, ɵɵproperty);\n result.modelList.reduce(\n (fn, item) => fn(item.key, item.signal)!,\n ɵɵtwoWayProperty,\n );\n }\n }\n return class D {\n templateRef = viewChild.required(TemplateRef) as any as Signal<\n TemplateRef<any>\n >;\n componentInstance = viewChild('el') as any as Signal<\n | (T['type'] extends string ? ElementRef<HTMLElement> : T['type'])\n | undefined\n >;\n elementRef = viewChild('el', { read: ElementRef }) as any as Signal<\n ElementRef<HTMLElement> | undefined\n >;\n directiveRefList = directives.map(\n ({ type }) =>\n viewChild('el', { read: type as any }) as any as Signal<any>,\n );\n static ɵfac = (_: any) => new (_ || D)();\n static ɵcmp = ɵɵdefineComponent({\n type: D,\n selectors: [[`d-${index++}`]],\n ngContentSelectors: contentArray,\n decls: 1,\n vars: 0,\n consts: result.consts,\n template: (rf, ctx) => {\n if (rf & 1) {\n if (contentArray) {\n ɵɵprojectionDef(contentArray);\n }\n ɵɵtemplate(\n 0,\n templateFn,\n 2 + (component.contents?.length ?? 0),\n result.vars,\n 'ng-template',\n );\n }\n },\n viewQuery: (rf, ctx) => {\n if (rf & 1) {\n ɵɵviewQuerySignal(ctx.templateRef, TemplateRef, 5 as any);\n ɵɵviewQuerySignal(ctx.componentInstance, EL_QUERY, 5 as any);\n ɵɵviewQuerySignal(ctx.elementRef, EL_QUERY, 5 as any, ElementRef);\n directives.forEach(({ type }, index) => {\n ɵɵviewQuerySignal(\n ctx.directiveRefList[index],\n EL_QUERY,\n 5 as any,\n type as any,\n );\n });\n }\n if (rf & 2) {\n ɵɵqueryAdvance(3 + directives.length);\n }\n },\n dependencies: result.directiveList,\n encapsulation: 2,\n changeDetection: 0,\n });\n };\n}\n","import {\n computed,\n createComponent,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n inject,\n Injector,\n signal,\n Signal,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { PiResolvedViewFieldConfig } from '../type';\nimport { ComponentContent, DynamicComponentConfig } from '../type/component';\nimport {\n ComponentCheckConfig,\n getComponentCheckConfig,\n} from '../util/component-config.equal';\nimport { createDynamicComponentDefine } from './dynamic-define.component';\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';\nconst EmptyOBJ = {};\n@Directive()\nexport class BaseComponent {\n /** 第一次默认为空 */\n #index = inject(PI_COMPONENT_INDEX, { optional: true })!;\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 /** 比较时使用 */\n #componentCheckConfig$$!: Signal<ComponentCheckConfig>;\n #setComponentCheck(config: DynamicComponentConfig) {\n this.#componentCheckConfig$$ = computed(() =>\n untracked(() => getComponentCheckConfig(config)),\n );\n }\n setFieldData(field: Signal<PiResolvedViewFieldConfig>, index: number) {\n this.#index = index;\n }\n /**\n * 输入引用绑定\n * 1. 上次传入的数据格式和当前一样,只触发更新\n * 2. 上次传入的数据格式和当前不一样,直接重新创建\n */\n #inputCache!: {\n inputs?: Signal<Record<string, any>>;\n attributes?: Signal<Record<string, any>>;\n directiveList?: (Signal<Record<string, any>> | undefined)[];\n };\n #contentCache!: ComponentContent | undefined;\n\n #configUpdate$ = signal(0);\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 componentConfig = list[this.#index];\n\n this.#componentConfig = componentConfig;\n this.#inputCache = {\n inputs: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.inputs!() ?? EmptyOBJ;\n }),\n attributes: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.attributes!() ?? EmptyOBJ;\n }),\n directiveList: this.#componentConfig?.directives?.map((config, index) =>\n config.inputs\n ? computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.directives![index].inputs!();\n })\n : undefined,\n ),\n };\n this.#contentCache = componentConfig.contents?.map((item, index) => {\n if (item.text) {\n return {\n ...item,\n text: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig.contents![index].text!();\n }),\n };\n }\n return item;\n });\n this.#setComponentCheck(componentConfig);\n const SidecarComponent = createDynamicComponentDefine(\n {\n ...componentConfig,\n inputs: this.#inputCache.inputs,\n attributes: this.#inputCache.attributes,\n contents: this.#contentCache,\n },\n componentConfig.directives?.map((config, index) => ({\n ...config,\n inputs: this.#inputCache.directiveList![index],\n })) ?? [],\n );\n const componentInjector = Injector.create({\n providers: [\n { provide: PI_COMPONENT_LIST, useValue: list },\n { provide: PI_COMPONENT_INDEX, useValue: this.#index + 1 },\n { provide: PI_COMPONENT_LIST_LISTEN, useValue: this.#eventEmitter },\n ],\n parent: componentConfig.injector ?? viewContainerRef.injector,\n });\n const componentRef = createComponent(SidecarComponent, {\n elementInjector: componentInjector,\n environmentInjector: componentInjector.get(EnvironmentInjector),\n projectableNodes: componentConfig.contents\n ?.map(({ nodes }) => nodes!)\n .filter(Boolean),\n });\n // todo 这里需不需要加注入?\n viewContainerRef.createEmbeddedView(componentRef.instance.templateRef());\n\n this.fieldComponentInstance = componentRef.instance.componentInstance()!;\n this.fieldElementRef = componentRef.instance.elementRef()!;\n this.fieldDirectiveRefList = componentRef.instance.directiveRefList.map(\n (item) => item(),\n );\n this.destroyComponentFn = () => {\n viewContainerRef.clear();\n componentRef.destroy();\n this.#eventEmitter.unsubscribe();\n };\n if (list.length === this.#index + 1) {\n const field = componentInjector.get(PI_VIEW_FIELD_TOKEN)();\n field.hooks?.afterCreateComponent?.(field);\n }\n }\n\n update(list: DynamicComponentConfig[]) {\n const item = list[this.#index];\n const currentCheckConfig = getComponentCheckConfig(item);\n const isEqual = deepEqual(\n currentCheckConfig,\n this.#componentCheckConfig$$(),\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: false,\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","import {\n computed,\n createNgModule,\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 RawDirectiveOutputs,\n ComponentContent,\n NgResolvedComponentDefine2,\n} from '../type/component';\nimport { EMPTY_ARRAY } from '../const';\nimport { BaseComponent } from '../component/base.component';\nimport { DirectiveConfig } from '../component/dynamic-define.component';\nimport { deepEqual } from 'fast-equals';\nimport { FieldControl } from '@piying/view-angular-core';\nimport { PI_COMPONENT_INDEX, PI_VIEW_FIELD_TOKEN } from '../type/view-token';\nimport { FieldControlDirective } from '../directives/field-control-directive';\n\n@Directive({\n selector: '[ngComponentOutlet]',\n exportAs: 'ngComponentOutlet',\n standalone: true,\n})\nexport class NgComponentOutlet<T = any>\n extends BaseComponent\n implements OnChanges, OnDestroy\n{\n /** 输入 */\n ngComponentOutlet = input<NgResolvedComponentDefine2>();\n ngComponentOutletInputs = input<Record<string, unknown>>();\n ngComponentOutletOutputs = input<RawDirectiveOutputs>();\n ngComponentOutletInjector = input<Injector>();\n ngComponentOutletContent = input<ComponentContent>();\n /** 控件用 */\n ngComponentOutletFormControl = input<FieldControl>();\n /** 包裹用 */\n ngComponentOutletWrappers = input<NgResolvedWraaperConfig[]>();\n ngComponentOutletTopDirectives = input<DirectiveConfig[]>();\n ngComponentOutletDirectives =\n input<PiResolvedViewFieldConfig['directives']>();\n\n ngComponentOutletField = input.required<PiResolvedViewFieldConfig>();\n #viewContainerRef = inject(ViewContainerRef);\n // 这里感觉会在非发射时出现多次输入?\n #wrappers = computed(() =>\n this.ngComponentOutletWrappers()?.map((item) => ({\n ...item,\n type: item.type.component,\n module: item.type.module,\n })),\n );\n #onputEqual$$ = computed(() => this.ngComponentOutletOutputs(), {\n equal: deepEqual,\n });\n\n #moduleDestroy?: () => void;\n\n #moduleRef$$ = computed(() => {\n this.#moduleDestroy?.();\n const injector = this.ngComponentOutletInjector() || this.#injector;\n const module = this.ngComponentOutlet()?.type.module;\n if (!module) {\n return;\n }\n const moduleRef = createNgModule(module, injector);\n this.#moduleDestroy = () => {\n moduleRef.destroy();\n this.#moduleDestroy = undefined;\n };\n return moduleRef;\n });\n #usedEnvInjector$$ = computed(() => {\n const injector =\n this.#moduleRef$$()?.injector ??\n (this.ngComponentOutletInjector() || this.#injector);\n return Injector.create({\n providers: [\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: this.ngComponentOutletField,\n },\n {\n provide: PI_COMPONENT_INDEX,\n useValue: 0,\n },\n ],\n parent: injector,\n }).get(Injector);\n });\n #injector = inject(Injector);\n #formControlDirectiveConfig$$ = computed(() => {\n const fieldControl = this.ngComponentOutletFormControl();\n return fieldControl\n ? ({\n type: FieldControlDirective,\n inputs: computed(() => ({ 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\n #componentConfig$$ = computed(() => {\n const define = this.ngComponentOutlet();\n if (!define) {\n return;\n }\n const directives = this.#directiveConfigList$$();\n return {\n ...define!,\n type: define!.type.component,\n module: define!.type.module,\n inputs: this.ngComponentOutletInputs,\n directives: directives\n ? directives.map((item) => {\n const outputs = item.outputs;\n if (outputs) {\n return {\n ...item,\n outputs: outputs,\n };\n }\n return item;\n })\n : undefined,\n outputs: this.#onputEqual$$(),\n contents: this.ngComponentOutletContent(),\n } as DynamicComponentConfig;\n });\n #componentList$$ = computed(() => {\n const componentConfig = this.#componentConfig$$();\n if (!componentConfig) {\n return EMPTY_ARRAY;\n }\n const injector = this.#usedEnvInjector$$();\n const list: DynamicComponentConfig[] = [\n ...(this.#wrappers() ?? []),\n componentConfig,\n ];\n\n list[0] = { ...list[0], injector };\n\n return list;\n });\n\n #lastList?: DynamicComponentConfig[];\n ngOnChanges() {\n //todo 变更时的一些检测,相同时应该不处理\n const list = this.#componentList$$();\n if (!list.length) {\n return this.destroyComponentFn?.();\n }\n if (!this.#lastList) {\n const field = this.ngComponentOutletField();\n field.hooks?.beforeCreateComponent?.(field);\n this.setFieldData(this.ngComponentOutletField, 0);\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.#moduleDestroy?.();\n this.destroyComponentFn?.();\n }\n}\n","import {\n computed,\n Injector,\n reflectComponentType,\n resource,\n Type,\n untracked,\n} from '@angular/core';\nimport { NgResolvedComponentDefine2 } from '../type/component';\nimport { NgResolvedComponentDefine1 } from '../type';\nimport { getLazyImport, isLazyMark } from '@piying/view-angular-core';\nfunction isComponentType(input: any): input is Type<any> {\n return !!reflectComponentType(input as any);\n}\nexport function createAsyncCache<One extends boolean, Result>(\n one: One,\n injector: Injector,\n) {\n const loading = new Map<any, Promise<Result>>();\n const cached = new Map<any, Result>();\n return (\n list:\n | (One extends true\n ? NgResolvedComponentDefine2\n : NgResolvedComponentDefine2[])\n | undefined,\n ) =>\n untracked(() => {\n if (!list) {\n return { value: computed(() => undefined) };\n }\n let hasPromise = false;\n const result = (\n ((one as One) ? [list] : list) as any as NgResolvedComponentDefine1[]\n ).map((item) => {\n if (cached.has(item)) {\n return cached.get(item)!;\n } else if (loading.has(item)) {\n hasPromise = true;\n return loading.get(item)!;\n }\n const resolved = item;\n const type = resolved.type;\n if (typeof type === 'string' || isComponentType(type)) {\n const result = { ...resolved, type: { component: type } };\n cached.set(item, result as any);\n return result;\n } else if (typeof type === 'function' || isLazyMark(type)) {\n hasPromise = true;\n const result$$ = getLazyImport<() => Promise<any>>(type)!().then(\n (value) => {\n const result = {\n ...resolved,\n type: isComponentType(value) ? { component: value } : value,\n } as any;\n cached.set(item, result);\n loading.delete(item);\n return result;\n },\n );\n loading.set(item, result$$);\n return result$$;\n } else {\n return resolved;\n }\n });\n if (hasPromise) {\n return resource<Result, undefined>({\n loader: async () => (one ? result[0] : Promise.all(result)) as any,\n injector: injector,\n });\n } else {\n return {\n value: computed<Result>(() => (one ? result[0] : result) as any),\n };\n }\n });\n}\n","import {\n PiComponentDefaultConfig,\n PiResolvedViewFieldConfig,\n ConfigMergeStrategyObject,\n PiViewConfig,\n NgResolvedComponentDefine1,\n} from './type';\nimport { inject, Injectable, Type } from '@angular/core';\n\nimport { FormBuilder, PI_VIEW_CONFIG_TOKEN } from '@piying/view-angular-core';\nimport { NG_CONFIG_DEFAULT_MERGE_STRAGEGY } from './const';\nimport { NgSchemaHandle } from './schema/ng-schema';\n\n@Injectable()\nexport class AngularFormBuilder extends FormBuilder<NgSchemaHandle> {\n #globalConfig: PiViewConfig = inject(PI_VIEW_CONFIG_TOKEN) as any;\n override afterResolveConfig(\n rawConfig: NgSchemaHandle,\n config: PiResolvedViewFieldConfig,\n ): PiResolvedViewFieldConfig {\n const field = rawConfig;\n const type = rawConfig.type;\n let componentDefaultConfig: PiComponentDefaultConfig | undefined;\n let define;\n const mergeStrategy = this.#globalConfig\n .defaultConfigMergeStrategy as ConfigMergeStrategyObject;\n\n if (type) {\n const result = this.#resolveComponent(type);\n define = result.define;\n componentDefaultConfig = result.defaultConfig;\n }\n\n const directives = this.configMerge(\n [componentDefaultConfig?.directives, field.directives],\n true,\n mergeStrategy?.directives ?? NG_CONFIG_DEFAULT_MERGE_STRAGEGY.directives,\n );\n return {\n ...config,\n contents: field.contents?.sort((a, b) =>\n a.nodes && b.nodes ? 0 : a.nodes ? -1 : 1,\n ),\n directives: directives,\n };\n }\n\n #resolveComponent(type: string | Type<any> | (() => Promise<Type<any>>)) {\n let define;\n let defaultConfig;\n // 查引用\n if (typeof type === 'string') {\n const config = this.#globalConfig.types?.[type];\n if (!config) {\n throw new Error(`未注册${type}`);\n }\n defaultConfig = config;\n if (Object.keys(config).length) {\n define = {\n ...config,\n } as NgResolvedComponentDefine1;\n }\n } else {\n // 直接使用视为独立组件,并且selector只有一个\n define = { type } as NgResolvedComponentDefine1;\n }\n return {\n define,\n defaultConfig,\n };\n }\n}\n","import { CoreSchemaHandle } from '@piying/view-angular-core';\nimport { PiResolvedViewFieldConfig, NgDirectiveConfig } from '../type';\nimport { ComponentContent } from '../type/component';\n\nexport class NgSchemaHandle extends CoreSchemaHandle<\n NgSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type?: any;\n contents?: ComponentContent;\n directives?: NgDirectiveConfig[];\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'pure',\n standalone: true,\n})\nexport class PurePipe implements PipeTransform {\n transform<T extends (...args: any[]) => any>(fn: T, ...args: Parameters<T>) {\n return fn(...args) as ReturnType<T>;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n createEnvironmentInjector,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n untracked,\n} from '@angular/core';\nimport { NgComponentOutlet } from './hook/ng_component_outlet';\n\nimport {\n PiViewConfig,\n PiResolvedViewFieldConfig,\n NgResolvedWraaperConfig,\n} from './type';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NgResolvedComponentDefine2 } from './type/component';\nimport { createAsyncCache } from './util/async-cache';\nimport {\n convert,\n FieldArray,\n FieldControl,\n FieldGroup,\n initListen,\n isFieldArray,\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';\nimport { PurePipe } from './pipe/pure.pipe';\nconst DefaultConvertOptions = {\n builder: AngularFormBuilder,\n handle: NgSchemaHandle as any,\n};\n@Component({\n selector: 'piying-view',\n imports: [NgComponentOutlet, PurePipe, NgTemplateOutlet],\n templateUrl: './component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingView implements OnChanges {\n schema = input.required<\n v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>\n >();\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 #envInjector = inject(EnvironmentInjector);\n #builderEnvInjector?: EnvironmentInjector;\n resolvedField$ = signal<PiResolvedViewFieldConfig | undefined>(undefined);\n #listenDispose?: () => void;\n\n #updateField() {\n this.#clean();\n // 临时销毁\n const envInjector = createEnvironmentInjector([], this.#envInjector);\n this.#builderEnvInjector = envInjector;\n const result = convert<PiResolvedViewFieldConfig>(this.schema() as any, {\n ...DefaultConvertOptions,\n ...this.options(),\n injector: envInjector,\n registerOnDestroy: (fn) => {\n envInjector.get(DestroyRef).onDestroy(() => {\n fn();\n });\n },\n });\n this.resolvedField$.set(result);\n return result;\n }\n #clean() {\n if (this.#builderEnvInjector) {\n this.#builderEnvInjector.destroy();\n this.#builderEnvInjector = 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 groupInputsValue = (\n inputs: PiResolvedViewFieldConfig['inputs'],\n\n fieldTemplateRef: TemplateRef<any>,\n ) =>\n computed(() => ({\n ...inputs(),\n fieldTemplateRef,\n }));\n\n resolvedComponent = createAsyncCache<true, NgResolvedComponentDefine2>(\n true,\n this.#injector,\n );\n // 这里的组件还是不准确,因为type已经改了,\n resolvedWrapper = createAsyncCache<false, NgResolvedWraaperConfig[]>(\n false,\n this.#injector,\n );\n\n groupHidden = (field: PiResolvedViewFieldConfig) =>\n computed(() => this.#groupHidden(field));\n #groupHidden(field: PiResolvedViewFieldConfig): boolean {\n if (isFieldArray(field.form.control) || field.restChildren) {\n return false;\n }\n if (field.fixedChildren) {\n if (!field.fixedChildren?.().length) {\n return true;\n } else {\n return field.fixedChildren().every((field) => this.#groupHidden(field));\n }\n } else {\n return !field.define || !!field.renderConfig().hidden;\n }\n }\n ngOnDestroy(): void {\n this.#listenDispose?.();\n }\n}\n","<ng-template #dynamicComponent let-field>\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @let typeResource = resolvedComponent | pure: field.define;\n @let type = typeResource.value();\n @let wrappersResource = resolvedWrapper | pure: field.wrappers();\n @let wrappers = wrappersResource.value();\n @if (type) {\n @if (field.fixedChildren || field.restChildren) {\n @if (!(groupHidden | pure: field)()) {\n <!-- 自定义group -->\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"\n (groupInputsValue | pure: field.inputs : dynamicComponent)?.()\n \"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n ></ng-container>\n }\n } @else {\n <ng-container\n [ngComponentOutlet]=\"type\"\n [ngComponentOutletInputs]=\"field.inputs()\"\n [ngComponentOutletOutputs]=\"field.outputs()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"wrappers\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletContent]=\"field.contents\"\n ></ng-container>\n }\n }\n }\n</ng-template>\n\n@if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"dynamicComponent; context: { $implicit: field }\"\n ></ng-container>\n}\n","import {\n computed,\n Directive,\n inject,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { BaseComponent } from './base.component';\nimport {\n PI_COMPONENT_LIST,\n PI_COMPONENT_LIST_LISTEN,\n PI_VIEW_FIELD_TOKEN,\n} from '../type/view-token';\n\n@Directive()\nexport class PiyingViewWrapperBase extends BaseComponent {\n fieldComponentAnchor = viewChild('fieldComponent', {\n read: ViewContainerRef,\n });\n field$$ = inject(PI_VIEW_FIELD_TOKEN);\n props$$ = computed(() => this.field$$().props());\n #listen = inject(PI_COMPONENT_LIST_LISTEN);\n #list = inject(PI_COMPONENT_LIST);\n override createComponent() {\n const result = super.createComponent(\n this.#list,\n this.fieldComponentAnchor()!,\n );\n this.#listen.subscribe((list) => {\n this.update(list);\n });\n return result;\n }\n ngOnInit(): void {\n this.createComponent();\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 _PiResolvedCommonViewFieldConfig,\n asyncInputMerge,\n mergeHooksFn,\n} from '@piying/view-angular-core';\nimport { NgDirectiveConfig } from '../../type';\nimport { rawConfig } from './raw-config';\nimport { NgSchemaHandle } from '../ng-schema';\nimport { linkedSignal, signal } from '@angular/core';\n\nexport function setDirectives<T>(items: NgDirectiveConfig[]) {\n return rawConfig<T>((field) => {\n field.directives = items;\n });\n}\nexport function patchDirectives<T>(items: NgDirectiveConfig[]) {\n return rawConfig<T>((field) => {\n field.directives ??= [];\n field.directives.push(...items);\n });\n}\nexport function patchAsyncDirective<T>(\n fn: (\n field: _PiResolvedCommonViewFieldConfig,\n ) => Omit<NgDirectiveConfig, 'inputs'> & { inputs?: Record<string, any> },\n) {\n return rawConfig<T>((field) => {\n mergeHooksFn<NgSchemaHandle>(\n {\n fieldResolved: (field) => {\n field.directives ??= signal([]);\n const directive = fn(field);\n const inputs = directive.inputs;\n let inputs$ = signal<Record<string, any>>({});\n if (inputs) {\n inputs$.set(\n Object.keys(inputs).reduce(\n (obj, key) => {\n obj[key] = undefined;\n return obj;\n },\n {} as Record<string, any>,\n ),\n );\n inputs$ = asyncInputMerge(inputs, inputs$);\n }\n const oldDirectives = field.directives;\n field.directives = linkedSignal(() => [\n ...oldDirectives(),\n { ...directive, inputs: inputs$ },\n ]);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\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: any) {\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 disabled$ = signal(false);\n setDisabledState(isDisabled: boolean): void {\n this.disabled$.set(isDisabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵɵelementStart","ɵɵlistener","ɵɵtwoWayBindingSet","ɵɵprojection","ɵɵtext","ɵɵtextInterpolate","ɵɵelementEnd","ɵɵclassMap","ɵɵproperty","ɵɵtwoWayProperty","ɵɵdefineComponent","ɵɵprojectionDef","ɵɵtemplate","ɵɵviewQuerySignal","ɵɵqueryAdvance","originRawConfig"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piying/view-angular",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "Piying view For Angular;Valibot to Component",
5
5
  "homepage": "https://piying-org.github.io/website/docs/client/intro",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "valibot": "^1.1.0"
39
39
  },
40
40
  "dependencies": {
41
- "@piying/view-angular-core": "^1.5.6",
41
+ "@piying/view-angular-core": "^1.5.8",
42
42
  "tslib": "^2.3.0"
43
43
  },
44
44
  "sideEffects": false,