@piying/view-angular 1.5.5 → 1.5.7
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.
|
@@ -1015,24 +1015,20 @@ class PiyingView {
|
|
|
1015
1015
|
ngOnChanges(changes) {
|
|
1016
1016
|
const rFields = this.#resolvedFields$$();
|
|
1017
1017
|
if (this.#lastRF !== rFields || 'model' in changes) {
|
|
1018
|
-
this.#
|
|
1018
|
+
this.#updateValue(this.model());
|
|
1019
1019
|
}
|
|
1020
1020
|
this.#lastRF = rFields;
|
|
1021
1021
|
}
|
|
1022
|
-
#modelChange$$ = computed(() => {
|
|
1023
|
-
const model = this.model();
|
|
1024
|
-
untracked(() => this.#updateField(model));
|
|
1025
|
-
});
|
|
1026
1022
|
#resolvedFields$$ = computed(() => {
|
|
1027
1023
|
this.schema();
|
|
1028
|
-
return untracked(() => this.#
|
|
1024
|
+
return untracked(() => this.#updateField());
|
|
1029
1025
|
});
|
|
1030
1026
|
#injector = inject(Injector);
|
|
1031
1027
|
#envInjector = inject(EnvironmentInjector);
|
|
1032
1028
|
#builderEnvInjector;
|
|
1033
1029
|
resolvedField$ = signal(undefined);
|
|
1034
|
-
#
|
|
1035
|
-
#
|
|
1030
|
+
#listenDispose;
|
|
1031
|
+
#updateField() {
|
|
1036
1032
|
this.#clean();
|
|
1037
1033
|
// 临时销毁
|
|
1038
1034
|
const envInjector = createEnvironmentInjector([], this.#envInjector);
|
|
@@ -1048,6 +1044,17 @@ class PiyingView {
|
|
|
1048
1044
|
},
|
|
1049
1045
|
});
|
|
1050
1046
|
this.resolvedField$.set(result);
|
|
1047
|
+
return result;
|
|
1048
|
+
}
|
|
1049
|
+
#clean() {
|
|
1050
|
+
if (this.#builderEnvInjector) {
|
|
1051
|
+
this.#builderEnvInjector.destroy();
|
|
1052
|
+
this.#builderEnvInjector = undefined;
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
#updateValue(model) {
|
|
1056
|
+
this.#listenDispose?.();
|
|
1057
|
+
const result = this.resolvedField$();
|
|
1051
1058
|
if (result.form.control) {
|
|
1052
1059
|
// 监听初始化,每次field变更会初始化
|
|
1053
1060
|
const ref = initListen(this.model(), result.form.control,
|
|
@@ -1059,24 +1066,12 @@ class PiyingView {
|
|
|
1059
1066
|
}
|
|
1060
1067
|
});
|
|
1061
1068
|
});
|
|
1062
|
-
this.#
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
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;
|
|
1069
|
+
this.#listenDispose = () => {
|
|
1070
|
+
ref.destroy();
|
|
1071
|
+
this.#listenDispose = undefined;
|
|
1072
|
+
};
|
|
1073
|
+
result.form.control.updateValue(model);
|
|
1077
1074
|
}
|
|
1078
|
-
const field = this.resolvedField$();
|
|
1079
|
-
field.form.control?.updateValue(model);
|
|
1080
1075
|
}
|
|
1081
1076
|
groupInputsValue = (inputs, fieldTemplateRef) => computed(() => ({
|
|
1082
1077
|
...inputs(),
|
|
@@ -1103,7 +1098,7 @@ class PiyingView {
|
|
|
1103
1098
|
}
|
|
1104
1099
|
}
|
|
1105
1100
|
ngOnDestroy() {
|
|
1106
|
-
this.#
|
|
1101
|
+
this.#listenDispose?.();
|
|
1107
1102
|
}
|
|
1108
1103
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: PiyingView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1109
1104
|
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 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.#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.
|
|
3
|
+
"version": "1.5.7",
|
|
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.
|
|
41
|
+
"@piying/view-angular-core": "^1.5.7",
|
|
42
42
|
"tslib": "^2.3.0"
|
|
43
43
|
},
|
|
44
44
|
"sideEffects": false,
|