@piying/view-angular 1.10.4 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/piying-view-angular.mjs +127 -121
- package/fesm2022/piying-view-angular.mjs.map +1 -1
- package/index.d.ts +118 -72
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, computed, input, Directive, viewChild, ChangeDetectionStrategy, Component, Renderer2, ElementRef, reflectComponentType, inputBinding, outputBinding, untracked, signal, ApplicationRef, PendingTasks, EventEmitter, Injector, createNgModule, createComponent, EnvironmentInjector, ViewContainerRef, Injectable, Pipe, output, createEnvironmentInjector, DestroyRef
|
|
2
|
+
import { InjectionToken, inject, computed, input, Directive, viewChild, ChangeDetectionStrategy, Component, Renderer2, ElementRef, reflectComponentType, inputBinding, outputBinding, untracked, signal, ApplicationRef, PendingTasks, EventEmitter, Injector, createNgModule, createComponent, EnvironmentInjector, ViewContainerRef, Injectable, Pipe, output, createEnvironmentInjector, DestroyRef } from '@angular/core';
|
|
3
3
|
import { NgTemplateOutlet } from '@angular/common';
|
|
4
4
|
import { deepEqual } from 'fast-equals';
|
|
5
|
-
import { isLazyMark, getLazyImport, PENDING, createViewControlLink,
|
|
5
|
+
import { isLazyMark, getLazyImport, PENDING, createViewControlLink, asyncObjectSignal, FormBuilder, CoreSchemaHandle, combineSignal, convert, initListen, rawConfig as rawConfig$1, mergeHooksFn, CustomDataSymbol, actions as actions$1 } from '@piying/view-angular-core';
|
|
6
6
|
export { asControl, asVirtualGroup, condition, layout } from '@piying/view-angular-core';
|
|
7
7
|
import { NgControl, Validators, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
8
|
|
|
@@ -46,32 +46,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
46
46
|
}] });
|
|
47
47
|
|
|
48
48
|
const EMPTY_ARRAY = [];
|
|
49
|
-
/** @deprecated 使用 defaultConfig->actions */
|
|
50
|
-
const NG_CONFIG_DEFAULT_MERGE_STRAGEGY = {
|
|
51
|
-
directives: 'merge',
|
|
52
|
-
formConfig: 'merge',
|
|
53
|
-
inputs: 'merge',
|
|
54
|
-
outputs: 'merge',
|
|
55
|
-
props: 'merge',
|
|
56
|
-
renderConfig: 'merge',
|
|
57
|
-
wrappers: 'replace',
|
|
58
|
-
attributes: 'merge',
|
|
59
|
-
};
|
|
60
49
|
|
|
61
50
|
function getComponentCheckConfig(a) {
|
|
62
51
|
return {
|
|
63
52
|
...a,
|
|
64
53
|
inputs: Object.keys(a.inputs() ?? {}).join(','),
|
|
65
|
-
// todo 需要等修改为动态的再比较key
|
|
66
|
-
attributes: Object.entries(a.attributes() ?? {})
|
|
67
|
-
.map((key, value) => `${key}:${value}`)
|
|
68
|
-
.join(','),
|
|
69
54
|
directives: a.directives
|
|
70
55
|
? a.directives.map((config) => ({
|
|
71
56
|
...config,
|
|
72
|
-
inputs: `${config.inputs ? Object.keys(config.inputs()).join(',') : ''}`,
|
|
57
|
+
inputs: `${config.inputs ? Object.keys(config.inputs() ?? {}).join(',') : ''}`,
|
|
73
58
|
}))
|
|
74
59
|
: undefined,
|
|
60
|
+
// todo 这里是为了schema被替换时,进行比较,感觉应该有更好的方法
|
|
61
|
+
attributes: Object.entries(a.attributes() ?? {})
|
|
62
|
+
.map((key, value) => `${key}:${value}`)
|
|
63
|
+
.join(','),
|
|
64
|
+
events: Object.keys(a.events() ?? {}).join(','),
|
|
65
|
+
outputs: Object.keys(a.events() ?? {}).join(','),
|
|
75
66
|
};
|
|
76
67
|
}
|
|
77
68
|
|
|
@@ -114,6 +105,36 @@ function isComponentType(input) {
|
|
|
114
105
|
return !!reflectComponentType(input);
|
|
115
106
|
}
|
|
116
107
|
|
|
108
|
+
class EventsDirective {
|
|
109
|
+
events = input.required();
|
|
110
|
+
#renderer = inject(Renderer2);
|
|
111
|
+
#el = inject(ElementRef).nativeElement;
|
|
112
|
+
#cleanList = [];
|
|
113
|
+
ngOnChanges() {
|
|
114
|
+
this.#clean();
|
|
115
|
+
this.#cleanList = [];
|
|
116
|
+
for (const key in this.events()) {
|
|
117
|
+
const event = this.events()[key];
|
|
118
|
+
this.#cleanList.push(this.#renderer.listen(this.#el, key, event));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
#clean() {
|
|
122
|
+
this.#cleanList.forEach((fn) => fn());
|
|
123
|
+
}
|
|
124
|
+
ngOnDestroy() {
|
|
125
|
+
this.#clean();
|
|
126
|
+
}
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: EventsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
128
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.3", type: EventsDirective, isStandalone: true, selector: "[events]", inputs: { events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 });
|
|
129
|
+
}
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: EventsDirective, decorators: [{
|
|
131
|
+
type: Directive,
|
|
132
|
+
args: [{
|
|
133
|
+
standalone: true,
|
|
134
|
+
selector: '[events]',
|
|
135
|
+
}]
|
|
136
|
+
}] });
|
|
137
|
+
|
|
117
138
|
function createInputsBind(inputs) {
|
|
118
139
|
if (!inputs || !inputs()) {
|
|
119
140
|
return [];
|
|
@@ -121,10 +142,10 @@ function createInputsBind(inputs) {
|
|
|
121
142
|
return Object.keys(inputs()).map((key) => inputBinding(key, computed(() => inputs()[key])));
|
|
122
143
|
}
|
|
123
144
|
function createOutputsBind(outputs, config) {
|
|
124
|
-
if (!outputs) {
|
|
145
|
+
if (!outputs?.()) {
|
|
125
146
|
return [];
|
|
126
147
|
}
|
|
127
|
-
return Object.entries(outputs).map(([key, value]) => outputBinding(key, config ? (event) => value(event, config()) : value));
|
|
148
|
+
return Object.entries(outputs()).map(([key, value]) => outputBinding(key, config ? (event) => value(event, config()) : value));
|
|
128
149
|
}
|
|
129
150
|
function createAttributesDirective(attributes) {
|
|
130
151
|
if (attributes()) {
|
|
@@ -137,6 +158,17 @@ function createAttributesDirective(attributes) {
|
|
|
137
158
|
}
|
|
138
159
|
return [];
|
|
139
160
|
}
|
|
161
|
+
function createEventsDirective(events) {
|
|
162
|
+
if (events()) {
|
|
163
|
+
return [
|
|
164
|
+
{
|
|
165
|
+
type: EventsDirective,
|
|
166
|
+
bindings: [inputBinding('events', events)],
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
}
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
140
172
|
const EmptyOBJ = {};
|
|
141
173
|
class BaseComponent {
|
|
142
174
|
/** 第一次默认为空 */
|
|
@@ -198,14 +230,10 @@ class BaseComponent {
|
|
|
198
230
|
this.#configUpdate$();
|
|
199
231
|
return this.#componentConfig.inputs() ?? EmptyOBJ;
|
|
200
232
|
}),
|
|
201
|
-
attributes: computed(() => {
|
|
202
|
-
this.#configUpdate$();
|
|
203
|
-
return this.#componentConfig.attributes() ?? EmptyOBJ;
|
|
204
|
-
}),
|
|
205
233
|
directiveList: this.#componentConfig?.directives?.map((config, index) => config.inputs
|
|
206
234
|
? computed(() => {
|
|
207
235
|
this.#configUpdate$();
|
|
208
|
-
return this.#componentConfig.directives[index].inputs();
|
|
236
|
+
return (this.#componentConfig.directives[index].inputs() ?? {});
|
|
209
237
|
})
|
|
210
238
|
: undefined),
|
|
211
239
|
};
|
|
@@ -239,7 +267,10 @@ class BaseComponent {
|
|
|
239
267
|
})),
|
|
240
268
|
...(COMPONENT_VERSION === 2
|
|
241
269
|
? []
|
|
242
|
-
:
|
|
270
|
+
: [
|
|
271
|
+
...createAttributesDirective(componentConfig.attributes),
|
|
272
|
+
...createEventsDirective(componentConfig.events),
|
|
273
|
+
]),
|
|
243
274
|
],
|
|
244
275
|
});
|
|
245
276
|
this.fieldComponentInstance = componentRef.instance;
|
|
@@ -249,6 +280,7 @@ class BaseComponent {
|
|
|
249
280
|
const templateRef = componentRef.instance.templateRef();
|
|
250
281
|
viewContainerRef.createEmbeddedView(templateRef, {
|
|
251
282
|
attributes: componentConfig.attributes,
|
|
283
|
+
events: componentConfig.events,
|
|
252
284
|
});
|
|
253
285
|
this.#app.attachView(componentRef.hostView);
|
|
254
286
|
componentRef.changeDetectorRef.detectChanges();
|
|
@@ -412,7 +444,7 @@ class NgComponentOutlet extends BaseComponent {
|
|
|
412
444
|
return fieldControl
|
|
413
445
|
? {
|
|
414
446
|
type: FieldControlDirective,
|
|
415
|
-
inputs:
|
|
447
|
+
inputs: asyncObjectSignal({ fieldControl: fieldControl }),
|
|
416
448
|
}
|
|
417
449
|
: undefined;
|
|
418
450
|
});
|
|
@@ -435,20 +467,9 @@ class NgComponentOutlet extends BaseComponent {
|
|
|
435
467
|
const directives = this.#directiveConfigList$$();
|
|
436
468
|
return {
|
|
437
469
|
...define,
|
|
438
|
-
outputs: define.outputs
|
|
470
|
+
outputs: define.outputs,
|
|
439
471
|
inputs: this.#componentInput$$,
|
|
440
|
-
directives: directives
|
|
441
|
-
? directives.map((item) => {
|
|
442
|
-
const outputs = item.outputs;
|
|
443
|
-
if (outputs) {
|
|
444
|
-
return {
|
|
445
|
-
...item,
|
|
446
|
-
outputs: outputs,
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
return item;
|
|
450
|
-
})
|
|
451
|
-
: undefined,
|
|
472
|
+
directives: directives,
|
|
452
473
|
};
|
|
453
474
|
});
|
|
454
475
|
#componentList$$ = computed(() => {
|
|
@@ -497,49 +518,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
497
518
|
}] });
|
|
498
519
|
|
|
499
520
|
class AngularFormBuilder extends FormBuilder {
|
|
500
|
-
#globalConfig = inject(PI_VIEW_CONFIG_TOKEN);
|
|
501
521
|
afterResolveConfig(rawConfig, config) {
|
|
502
522
|
const field = rawConfig;
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
let define;
|
|
506
|
-
const mergeStrategy = this.#globalConfig
|
|
507
|
-
.defaultConfigMergeStrategy;
|
|
508
|
-
if (type) {
|
|
509
|
-
const result = this.#resolveComponent(type);
|
|
510
|
-
define = result.define;
|
|
511
|
-
componentDefaultConfig = result.defaultConfig;
|
|
512
|
-
}
|
|
513
|
-
const directives = this.configMerge([componentDefaultConfig?.directives, field.directives], true, mergeStrategy?.directives ?? NG_CONFIG_DEFAULT_MERGE_STRAGEGY.directives);
|
|
514
|
-
return {
|
|
515
|
-
...config,
|
|
516
|
-
directives: directives,
|
|
517
|
-
};
|
|
518
|
-
}
|
|
519
|
-
#resolveComponent(type) {
|
|
520
|
-
let define;
|
|
521
|
-
let defaultConfig;
|
|
522
|
-
// 查引用
|
|
523
|
-
if (typeof type === 'string') {
|
|
524
|
-
const config = this.#globalConfig.types?.[type];
|
|
525
|
-
if (!config) {
|
|
526
|
-
throw new Error(`未注册${type}`);
|
|
527
|
-
}
|
|
528
|
-
defaultConfig = config;
|
|
529
|
-
if (Object.keys(config).length) {
|
|
530
|
-
define = {
|
|
531
|
-
...config,
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
else {
|
|
536
|
-
// 直接使用视为独立组件,并且selector只有一个
|
|
537
|
-
define = { type };
|
|
538
|
-
}
|
|
539
|
-
return {
|
|
540
|
-
define,
|
|
541
|
-
defaultConfig,
|
|
542
|
-
};
|
|
523
|
+
config.directives = field.directives;
|
|
524
|
+
return config;
|
|
543
525
|
}
|
|
544
526
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AngularFormBuilder, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
545
527
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AngularFormBuilder });
|
|
@@ -549,7 +531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
549
531
|
}] });
|
|
550
532
|
|
|
551
533
|
class NgSchemaHandle extends CoreSchemaHandle {
|
|
552
|
-
directives;
|
|
534
|
+
directives = combineSignal([]);
|
|
553
535
|
}
|
|
554
536
|
|
|
555
537
|
class PurePipe {
|
|
@@ -669,68 +651,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
669
651
|
args: [{ selector: 'piying-view', imports: [NgComponentOutlet, PurePipe, NgTemplateOutlet], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #dynamicComponent let-field let-envInjector=\"envInjector\">\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @if (field.fixedChildren || field.restChildren) {\n <!-- \u81EA\u5B9A\u4E49group -->\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletExtraInputs]=\"\n groupInputsValue | pure: dynamicComponent\n \"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n }\n }\n</ng-template>\n<ng-template #templateRef>\n @if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicComponent;\n context: { $implicit: field, envInjector: envInjector2$$ }\n \"\n ></ng-container>\n }\n</ng-template>\n@if (!selectorless()) {\n <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\n}\n" }]
|
|
670
652
|
}] });
|
|
671
653
|
|
|
672
|
-
class
|
|
673
|
-
|
|
674
|
-
read: ViewContainerRef,
|
|
675
|
-
});
|
|
676
|
-
field$$ = inject(PI_VIEW_FIELD_TOKEN);
|
|
677
|
-
props$$ = computed(() => this.field$$().props());
|
|
654
|
+
class InsertFieldDirective extends BaseComponent {
|
|
655
|
+
#viewContainerRef = inject(ViewContainerRef);
|
|
678
656
|
#listen = inject(PI_COMPONENT_LIST_LISTEN);
|
|
679
657
|
#list = inject(PI_COMPONENT_LIST);
|
|
680
658
|
createComponent(list, viewContainerRef) {
|
|
681
|
-
const result = super.createComponent(list ?? this.#list, viewContainerRef
|
|
659
|
+
const result = super.createComponent(list ?? this.#list, this.#viewContainerRef);
|
|
682
660
|
this.#listen.subscribe((list) => {
|
|
683
661
|
this.update(list);
|
|
684
662
|
});
|
|
685
663
|
return result;
|
|
686
664
|
}
|
|
687
|
-
|
|
665
|
+
constructor() {
|
|
666
|
+
super();
|
|
688
667
|
this.createComponent();
|
|
689
668
|
}
|
|
690
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type:
|
|
691
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
669
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: InsertFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
670
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.3", type: InsertFieldDirective, isStandalone: true, selector: "[insertField]", exportAs: ["insertField"], usesInheritance: true, ngImport: i0 });
|
|
692
671
|
}
|
|
693
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type:
|
|
694
|
-
type: Directive
|
|
695
|
-
|
|
672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: InsertFieldDirective, decorators: [{
|
|
673
|
+
type: Directive,
|
|
674
|
+
args: [{
|
|
675
|
+
selector: '[insertField]',
|
|
676
|
+
exportAs: 'insertField',
|
|
677
|
+
}]
|
|
678
|
+
}], ctorParameters: () => [] });
|
|
696
679
|
|
|
697
680
|
const rawConfig = rawConfig$1;
|
|
698
681
|
|
|
699
|
-
function
|
|
700
|
-
return rawConfig((field) => {
|
|
701
|
-
|
|
682
|
+
function createSetOrPatchDirectivePropertyFn(isPatch) {
|
|
683
|
+
return (items) => rawConfig((field) => {
|
|
684
|
+
if (!isPatch) {
|
|
685
|
+
field.directives.clean();
|
|
686
|
+
}
|
|
687
|
+
items.forEach((item) => {
|
|
688
|
+
field.directives.add(signal({
|
|
689
|
+
type: item.type,
|
|
690
|
+
inputs: asyncObjectSignal(item.inputs ?? {}),
|
|
691
|
+
outputs: asyncObjectSignal(item.outputs ?? {}),
|
|
692
|
+
attributes: asyncObjectSignal(item.attributes ?? {}),
|
|
693
|
+
events: asyncObjectSignal(item.events ?? {}),
|
|
694
|
+
model: asyncObjectSignal(item.model ?? {}),
|
|
695
|
+
}));
|
|
696
|
+
});
|
|
702
697
|
});
|
|
703
698
|
}
|
|
704
|
-
function
|
|
705
|
-
return rawConfig((
|
|
706
|
-
|
|
707
|
-
|
|
699
|
+
function patchAsyncDirective(type, actions, options) {
|
|
700
|
+
return rawConfig((rawFiled) => {
|
|
701
|
+
mergeHooksFn({
|
|
702
|
+
allFieldsResolved: (field) => {
|
|
703
|
+
const initData = signal({
|
|
704
|
+
type,
|
|
705
|
+
attributes: asyncObjectSignal({}),
|
|
706
|
+
events: asyncObjectSignal({}),
|
|
707
|
+
inputs: asyncObjectSignal({}),
|
|
708
|
+
outputs: asyncObjectSignal({}),
|
|
709
|
+
model: asyncObjectSignal({}),
|
|
710
|
+
});
|
|
711
|
+
field.directives.add(initData, options?.insertIndex);
|
|
712
|
+
for (const item of actions ?? []) {
|
|
713
|
+
const tempField = {};
|
|
714
|
+
item.value(tempField, undefined, {
|
|
715
|
+
[CustomDataSymbol]: initData,
|
|
716
|
+
});
|
|
717
|
+
tempField.hooks?.allFieldsResolved?.(field);
|
|
718
|
+
}
|
|
719
|
+
},
|
|
720
|
+
}, { position: 'bottom' }, rawFiled);
|
|
708
721
|
});
|
|
709
722
|
}
|
|
710
|
-
function
|
|
723
|
+
function removeDirectives(removeList) {
|
|
711
724
|
return rawConfig((field) => {
|
|
712
725
|
mergeHooksFn({
|
|
713
|
-
|
|
714
|
-
field.directives
|
|
715
|
-
const directive = fn(field);
|
|
716
|
-
const inputs = directive.inputs;
|
|
717
|
-
let inputs$ = signal({});
|
|
718
|
-
if (inputs) {
|
|
719
|
-
inputs$.set(Object.keys(inputs).reduce((obj, key) => {
|
|
720
|
-
obj[key] = undefined;
|
|
721
|
-
return obj;
|
|
722
|
-
}, {}));
|
|
723
|
-
inputs$ = asyncInputMerge(inputs, inputs$);
|
|
724
|
-
}
|
|
725
|
-
const oldDirectives = field.directives;
|
|
726
|
-
field.directives = linkedSignal(() => [
|
|
727
|
-
...oldDirectives(),
|
|
728
|
-
{ ...directive, inputs: inputs$ },
|
|
729
|
-
]);
|
|
726
|
+
allFieldsResolved: (field) => {
|
|
727
|
+
field.directives.update(removeList);
|
|
730
728
|
},
|
|
731
729
|
}, { position: 'bottom' }, field);
|
|
732
730
|
});
|
|
733
731
|
}
|
|
732
|
+
const directives = {
|
|
733
|
+
set: createSetOrPatchDirectivePropertyFn(),
|
|
734
|
+
patch: createSetOrPatchDirectivePropertyFn(true),
|
|
735
|
+
patchAsync: patchAsyncDirective,
|
|
736
|
+
remove: removeDirectives,
|
|
737
|
+
};
|
|
738
|
+
|
|
739
|
+
const actions = { ...actions$1, directives };
|
|
734
740
|
|
|
735
741
|
class BaseControl {
|
|
736
742
|
defaultValue = undefined;
|
|
@@ -764,5 +770,5 @@ class BaseControl {
|
|
|
764
770
|
* Generated bundle index. Do not edit.
|
|
765
771
|
*/
|
|
766
772
|
|
|
767
|
-
export { AngularFormBuilder, AttributesDirective, BaseControl, NgSchemaHandle, PI_COMPONENT_INDEX, PI_COMPONENT_LIST, PI_COMPONENT_LIST_LISTEN, PI_INPUT_MODEL_TOKEN, PI_INPUT_OPTIONS_TOKEN, PI_INPUT_SCHEMA_TOKEN, PI_VIEW_FIELD_TOKEN, PiyingView, PiyingViewGroup, PiyingViewGroupBase,
|
|
773
|
+
export { AngularFormBuilder, AttributesDirective, BaseControl, InsertFieldDirective, NgSchemaHandle, PI_COMPONENT_INDEX, PI_COMPONENT_LIST, PI_COMPONENT_LIST_LISTEN, PI_INPUT_MODEL_TOKEN, PI_INPUT_OPTIONS_TOKEN, PI_INPUT_SCHEMA_TOKEN, PI_VIEW_FIELD_TOKEN, PiyingView, PiyingViewGroup, PiyingViewGroupBase, actions, directives, rawConfig };
|
|
768
774
|
//# sourceMappingURL=piying-view-angular.mjs.map
|
|
@@ -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/directives/attributes.directive.ts","../../../projects/view-angular/lib/util/async-cache.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/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';\nimport { SetOptional } from '@piying/view-angular-core';\nimport { NgConvertOptions } from './builder-type';\nimport { PiViewConfig } from './view-config';\nimport * as v from 'valibot';\nexport const PI_INPUT_OPTIONS_TOKEN = new InjectionToken<\n Signal<\n Omit<\n SetOptional<NgConvertOptions, 'builder' | 'handle'>,\n 'fieldGlobalConfig'\n > & { fieldGlobalConfig?: PiViewConfig }\n >\n>('PI_INPUT_OPTIONS');\nexport const PI_INPUT_SCHEMA_TOKEN = new InjectionToken<\n Signal<v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>>\n>('PI_INPUT_SCHEMA');\nexport const PI_INPUT_MODEL_TOKEN = new InjectionToken<Signal<any>>(\n 'PI_INPUT_MODEL',\n);\n/** wrapper中可以使用,已解析的配置 */\nexport const PI_VIEW_FIELD_TOKEN = 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, viewChild } from '@angular/core';\n\nimport { PiyingViewGroupBase } from './component.base';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'piying-view-group',\n imports: [NgTemplateOutlet],\n templateUrl: './component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingViewGroup extends PiyingViewGroupBase {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n}\n","<ng-template #templateRef>\n @for (field of children$$(); track field.id || $index) {\n <ng-container\n *ngTemplateOutlet=\"fieldTemplateRef(); context: { $implicit: field }\"\n ></ng-container>\n }\n</ng-template>\n","import { ConfigMergeStrategyObject } from './type';\n\nexport const EMPTY_ARRAY = [];\n/** @deprecated 使用 defaultConfig->actions */\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 };\n}\n\nexport type ComponentCheckConfig = ReturnType<typeof getComponentCheckConfig>;\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[attributes]',\n})\nexport class AttributesDirective {\n attributes = input.required<Record<string, any>>();\n excludes = input<string[]>([]);\n #rederer = inject(Renderer2);\n #el = inject(ElementRef).nativeElement;\n ngOnChanges(changes: SimpleChanges): void {\n const { previousValue, currentValue, firstChange } = changes['attributes'];\n for (const key in currentValue) {\n if (this.excludes().includes(key)) {\n continue;\n }\n this.#rederer.setAttribute(this.#el, key, currentValue[key]);\n }\n if (!firstChange) {\n for (const key in previousValue) {\n if (this.excludes().includes(key)) {\n continue;\n }\n if (!(key in currentValue)) {\n this.#rederer.removeAttribute(this.#el, key);\n }\n }\n }\n }\n}\n","import { reflectComponentType, Type } from '@angular/core';\nexport function isComponentType(input: any): input is Type<any> {\n return !!reflectComponentType(input as any);\n}\n","import {\n ApplicationRef,\n computed,\n createComponent,\n createNgModule,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n inject,\n Injector,\n inputBinding,\n outputBinding,\n PendingTasks,\n signal,\n Signal,\n TemplateRef,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { ComponentRawType, PiResolvedViewFieldConfig } from '../type';\nimport { DynamicComponentConfig, NgComponentDefine } from '../type/component';\nimport {\n ComponentCheckConfig,\n getComponentCheckConfig,\n} from '../util/component-config.equal';\nimport { deepEqual } from 'fast-equals';\nimport {\n PI_COMPONENT_INDEX,\n PI_COMPONENT_LIST,\n PI_COMPONENT_LIST_LISTEN,\n PI_VIEW_FIELD_TOKEN,\n} from '../type/view-token';\nimport {\n CoreRawViewAttributes,\n CoreRawViewInputs,\n CoreRawViewOutputs,\n getLazyImport,\n isLazyMark,\n} from '@piying/view-angular-core';\nimport { AttributesDirective } from '../directives/attributes.directive';\nimport { isComponentType } from '../util/async-cache';\nfunction createInputsBind(inputs?: Signal<CoreRawViewInputs | undefined>) {\n if (!inputs || !inputs()) {\n return [];\n }\n return Object.keys(inputs()!).map((key) =>\n inputBinding(\n key,\n computed(() => inputs()![key]),\n ),\n );\n}\nfunction createOutputsBind(\n outputs?: CoreRawViewOutputs,\n config?: Signal<PiResolvedViewFieldConfig>,\n) {\n if (!outputs) {\n return [];\n }\n return Object.entries(outputs).map(([key, value]) =>\n outputBinding(key, config ? (event) => value(event, config()) : value),\n );\n}\nfunction createAttributesDirective(\n attributes: Signal<CoreRawViewAttributes | undefined>,\n) {\n if (attributes()) {\n return [\n {\n type: AttributesDirective,\n bindings: [inputBinding('attributes', attributes)],\n },\n ];\n }\n return [];\n}\nconst EmptyOBJ = {};\n@Directive()\nexport class BaseComponent {\n /** 第一次默认为空 */\n #index = inject(PI_COMPONENT_INDEX, { optional: true }) ?? 0!;\n\n /** 发射提供到下一级 */\n #eventEmitter!: EventEmitter<DynamicComponentConfig[]>;\n #componentConfig!: DynamicComponentConfig;\n #viewContainerRef?: ViewContainerRef;\n\n destroyComponentFn?: () => void;\n fieldComponentInstance?: any;\n fieldElementRef?: ElementRef<HTMLElement>;\n fieldDirectiveRefList?: any[];\n /** 比较时使用 */\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 #configUpdate$ = signal(0);\n #app = inject(ApplicationRef);\n #task = inject(PendingTasks);\n #loadComponent(\n type: ComponentRawType,\n loadFn: (input: NgComponentDefine) => void,\n ) {\n if (isComponentType(type)) {\n loadFn({ component: type });\n return;\n }\n if (typeof type === 'function' || isLazyMark(type)) {\n this.#task.run(() =>\n getLazyImport<() => Promise<any>>(type)!()\n .then((type) => {\n if (isComponentType(type)) {\n return { component: type };\n }\n return type;\n })\n .then((data) => loadFn(data)),\n );\n return;\n }\n loadFn(type as any);\n }\n createComponent(\n list: DynamicComponentConfig[],\n viewContainerRef: ViewContainerRef,\n envInjector?: EnvironmentInjector,\n ) {\n // 销毁\n this.destroyComponentFn?.();\n this.#viewContainerRef = viewContainerRef;\n // 取消上一级的定义\n this.#eventEmitter = new EventEmitter();\n const componentConfig = list[this.#index];\n\n this.#loadComponent(componentConfig.type, (componentDefine) => {\n this.#componentConfig = componentConfig;\n this.#inputCache = {\n inputs: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.inputs!() ?? EmptyOBJ;\n }),\n attributes: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.attributes!() ?? EmptyOBJ;\n }),\n directiveList: this.#componentConfig?.directives?.map(\n (config, index) =>\n config.inputs\n ? computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.directives![index].inputs!();\n })\n : undefined,\n ),\n };\n this.#setComponentCheck(componentConfig);\n\n const componentInjector = Injector.create({\n providers: [\n { provide: PI_COMPONENT_LIST, useValue: list },\n { provide: PI_COMPONENT_INDEX, useValue: this.#index + 1 },\n { provide: PI_COMPONENT_LIST_LISTEN, useValue: this.#eventEmitter },\n ],\n parent: componentConfig.injector ?? viewContainerRef.injector,\n });\n const COMPONENT_VERSION: number | undefined = (\n componentDefine.component as any\n ).__version;\n const injector = componentDefine.module\n ? createNgModule(componentDefine.module, componentInjector).injector\n : componentInjector;\n const componentRef = createComponent(componentDefine.component, {\n elementInjector: injector,\n environmentInjector: envInjector ?? injector.get(EnvironmentInjector),\n bindings: [\n ...createInputsBind(this.#inputCache.inputs),\n ...createOutputsBind(componentConfig.outputs),\n ],\n directives: [\n ...(componentConfig.directives ?? []).map((item, index) => ({\n type: item.type,\n bindings: [\n ...createInputsBind(this.#inputCache.directiveList![index]),\n ...createOutputsBind(\n item.outputs,\n injector!.get(PI_VIEW_FIELD_TOKEN),\n ),\n ],\n })),\n ...(COMPONENT_VERSION === 2\n ? []\n : createAttributesDirective(componentConfig.attributes)),\n ],\n });\n this.fieldComponentInstance = componentRef.instance;\n this.fieldElementRef = componentRef.location;\n this.fieldDirectiveRefList = (componentConfig.directives ?? []).map(\n (item) => componentRef.injector.get(item.type),\n );\n if (COMPONENT_VERSION === 2) {\n const templateRef = (\n componentRef.instance as { templateRef: Signal<TemplateRef<any>> }\n ).templateRef();\n viewContainerRef.createEmbeddedView(templateRef, {\n attributes: componentConfig.attributes,\n });\n this.#app.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n } else {\n viewContainerRef.insert(componentRef.hostView);\n }\n this.destroyComponentFn = () => {\n viewContainerRef.clear();\n componentRef.destroy();\n this.#eventEmitter.unsubscribe();\n };\n if (list.length === this.#index + 1) {\n const field = componentInjector.get(PI_VIEW_FIELD_TOKEN)();\n field.hooks?.afterCreateComponent?.(field);\n }\n });\n }\n\n update(list: DynamicComponentConfig[], envInjector?: EnvironmentInjector) {\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!, envInjector);\n }\n }\n}\n","import {\n NgControl,\n Validators,\n type AbstractControl,\n type ValidationErrors,\n} from '@angular/forms';\nimport { FieldControl, PENDING } from '@piying/view-angular-core';\n\nexport type InteropSharedKeys =\n | 'value'\n | 'valid'\n | 'invalid'\n | 'touched'\n | 'untouched'\n | 'disabled'\n | 'enabled'\n | 'errors'\n | 'pristine'\n | 'dirty';\n\nexport class InteropNgControl extends NgControl {\n constructor(protected field: () => FieldControl<unknown>) {\n super();\n }\n\n readonly control: AbstractControl<any, any> =\n this as unknown as AbstractControl<any, any>;\n\n override get value(): any {\n return this.field().value;\n }\n\n override get valid(): boolean {\n return this.field().valid;\n }\n\n override get invalid(): boolean {\n return !this.field().valid;\n }\n\n override get pending(): boolean | null {\n return this.field().status$$() === PENDING;\n }\n\n override get disabled(): boolean {\n return this.field().disabled;\n }\n\n override get enabled(): boolean {\n return !this.field().disabled;\n }\n\n override get errors(): ValidationErrors | null {\n const errors = this.field().errors;\n return errors ?? null;\n }\n\n override get pristine(): boolean {\n return this.field().pristine;\n }\n\n override get dirty(): boolean {\n return this.field().dirty;\n }\n\n override get touched(): boolean {\n return this.field().touched;\n }\n\n override get untouched(): boolean {\n return !this.field().touched;\n }\n\n get submitted(): boolean {\n return false;\n }\n\n override viewToModelUpdate(newValue: any): void {}\n override get valueChanges() {\n return this.field().valueChanges;\n }\n override get statusChanges() {\n return this.field().statusChanges;\n }\n hasValidator(input: any) {\n if (Validators.required === input) {\n return this.field().required$$();\n }\n return false;\n }\n}\n","import {\n Directive,\n inject,\n Injector,\n input,\n OnDestroy,\n Provider,\n} from '@angular/core';\n\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgControl,\n} from '@angular/forms';\nimport { createViewControlLink, FieldControl } from '@piying/view-angular-core';\nimport { InteropNgControl } from './interop_ng_control';\n\nconst formControlBinding: Provider = {\n provide: NgControl,\n useFactory: () => inject(FieldControlDirective).ngControl,\n};\n\n@Directive({\n selector: '[fieldControl]',\n providers: [formControlBinding],\n standalone: true,\n})\nexport class FieldControlDirective implements OnDestroy {\n fieldControl = input.required<FieldControl>();\n readonly cvaArray = inject<ControlValueAccessor[]>(NG_VALUE_ACCESSOR);\n readonly injector = inject(Injector);\n\n get cva() {\n return this.cvaArray[0];\n }\n #_ngControl: InteropNgControl | undefined;\n\n get ngControl(): NgControl {\n return (this.#_ngControl ??= new InteropNgControl(() =>\n this.fieldControl(),\n )) as unknown as NgControl;\n }\n\n #disposeFn?: (destroyed?: boolean) => void;\n ngOnChanges(): void {\n this.#disposeFn?.();\n this.#disposeFn = createViewControlLink(\n this.fieldControl,\n this.cva,\n this.injector,\n );\n }\n\n /** @docs-private */\n ngOnDestroy() {\n this.#disposeFn?.(true);\n }\n}\n","import {\n computed,\n Directive,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n OnChanges,\n OnDestroy,\n ViewContainerRef,\n} from '@angular/core';\nimport { PiResolvedViewFieldConfig, NgResolvedWraaperConfig } from '../type';\nimport {\n DynamicComponentConfig,\n NgResolvedComponentDefine2,\n} from '../type/component';\nimport { EMPTY_ARRAY } from '../const';\nimport { BaseComponent } from '../component/base.component';\nimport { DirectiveConfig } from '../component/dynamic-define.component';\nimport { FieldControl } from '@piying/view-angular-core';\nimport { PI_VIEW_FIELD_TOKEN } from '../type/view-token';\nimport { FieldControlDirective } from '../directives/field-control-directive';\n\n@Directive({\n selector: '[ngComponentOutlet]',\n standalone: true,\n})\nexport class NgComponentOutlet<T = any>\n extends BaseComponent\n implements OnChanges, OnDestroy\n{\n /** 输入 */\n ngComponentOutlet = input<NgResolvedComponentDefine2>();\n ngComponentOutletExtraInputs = input<Record<string, unknown>>();\n /** 控件用 */\n ngComponentOutletFormControl = input<FieldControl>();\n /** 包裹用 */\n ngComponentOutletWrappers = input<NgResolvedWraaperConfig[]>();\n ngComponentOutletDirectives =\n input<PiResolvedViewFieldConfig['directives']>();\n\n ngComponentOutletField = input.required<PiResolvedViewFieldConfig>();\n #viewContainerRef = inject(ViewContainerRef);\n // 这里感觉会在非发射时出现多次输入?\n ngComponentOutletEnvInjector = input<EnvironmentInjector | undefined>();\n\n #injector$$ = computed(() =>\n Injector.create({\n providers: [\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: this.ngComponentOutletField,\n },\n ],\n parent: this.#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 #componentInput$$ = computed(() => ({\n ...this.ngComponentOutlet()?.inputs?.(),\n ...this.ngComponentOutletExtraInputs(),\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 outputs: define.outputs?.(),\n inputs: this.#componentInput$$,\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 } as DynamicComponentConfig;\n });\n #componentList$$ = computed(() => {\n const componentConfig = this.#componentConfig$$();\n if (!componentConfig) {\n return EMPTY_ARRAY;\n }\n const list = [\n ...(this.ngComponentOutletWrappers() ?? []),\n componentConfig,\n ] as DynamicComponentConfig[];\n list[0].injector = this.#injector$$();\n return list;\n });\n\n #lastList?: DynamicComponentConfig[];\n ngOnChanges() {\n //todo 变更时的一些检测,相同时应该不处理\n const list = this.#componentList$$();\n if (!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(\n list,\n this.#viewContainerRef,\n this.ngComponentOutletEnvInjector(),\n );\n } else if (this.#lastList !== list) {\n this.update(list, this.ngComponentOutletEnvInjector());\n }\n // 监听输入/输出变更,重新进行赋值\n\n this.#lastList = list;\n }\n\n ngOnDestroy() {\n this.destroyComponentFn?.();\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 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';\n\nexport class NgSchemaHandle extends CoreSchemaHandle<\n NgSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type?: any;\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 viewChild,\n} from '@angular/core';\nimport { NgComponentOutlet } from './hook/ng_component_outlet';\n\nimport {\n PiViewConfig,\n PiResolvedViewFieldConfig,\n PI_INPUT_OPTIONS_TOKEN,\n PI_INPUT_SCHEMA_TOKEN,\n PI_INPUT_MODEL_TOKEN,\n} from './type';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n convert,\n FieldArray,\n FieldControl,\n FieldGroup,\n initListen,\n} from '@piying/view-angular-core';\nimport { AngularFormBuilder } from './builder';\nimport { NgSchemaHandle } from './schema/ng-schema';\nimport { NgConvertOptions } from './type/builder-type';\nimport type { SetOptional } from '@piying/view-angular-core';\nimport * as v from 'valibot';\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 templateRef = viewChild.required('templateRef');\n readonly selectorless = input<boolean>(false);\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 envInjector2$$ = createEnvironmentInjector(\n [\n {\n provide: PI_INPUT_OPTIONS_TOKEN,\n useValue: this.options,\n },\n {\n provide: PI_INPUT_SCHEMA_TOKEN,\n useValue: this.schema,\n },\n {\n provide: PI_INPUT_MODEL_TOKEN,\n useValue: this.model,\n },\n ],\n this.#envInjector,\n );\n #updateField() {\n this.#clean();\n // 临时销毁\n const envInjector = createEnvironmentInjector([], this.envInjector2$$);\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(fieldTemplateRef: TemplateRef<any>) {\n return { fieldTemplateRef };\n }\n\n ngOnDestroy(): void {\n this.#listenDispose?.();\n }\n}\n","<ng-template #dynamicComponent let-field let-envInjector=\"envInjector\">\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @if (field.fixedChildren || field.restChildren) {\n <!-- 自定义group -->\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletExtraInputs]=\"\n groupInputsValue | pure: dynamicComponent\n \"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n }\n }\n</ng-template>\n<ng-template #templateRef>\n @if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicComponent;\n context: { $implicit: field, envInjector: envInjector2$$ }\n \"\n ></ng-container>\n }\n</ng-template>\n@if (!selectorless()) {\n <ng-container *ngTemplateOutlet=\"templateRef\"></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';\nimport { DynamicComponentConfig } from '../type/component';\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 list?: DynamicComponentConfig[],\n viewContainerRef?: ViewContainerRef,\n ) {\n const result = super.createComponent(\n list ?? this.#list,\n viewContainerRef ?? 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":["originRawConfig"],"mappings":";;;;;;;;AAAA;MASa,sBAAsB,GAAG,IAAI,cAAc,CAOtD,kBAAkB;MACP,qBAAqB,GAAG,IAAI,cAAc,CAErD,iBAAiB;MACN,oBAAoB,GAAG,IAAI,cAAc,CACpD,gBAAgB;AAElB;MACa,mBAAmB,GAAG,IAAI,cAAc,CAEnD,qBAAqB;AAEvB;;;AAGG;MACU,iBAAiB,GAAG,IAAI,cAAc,CACjD,mBAAmB;MAER,kBAAkB,GAAG,IAAI,cAAc,CAClD,oBAAoB;MAET,wBAAwB,GAAG,IAAI,cAAc,CAExD,0BAA0B;;MCpCf,mBAAmB,CAAA;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACrC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;AAChD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAS,EAAE,CAAC;AACvD,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;AACxE,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;AACtE,IAAA,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAoB;uGAN1C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACSK,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AACtD,IAAA,OAAO,SAAS,GAAG,CAAC;AACpB,IAAA,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;uGAFpC,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ5B,uOAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;+BACE,mBAAmB,EAAA,OAAA,EACpB,CAAC,gBAAgB,CAAC,cAEf,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uOAAA,EAAA;;;AER1C,MAAM,WAAW,GAAG,EAAE;AAC7B;AACO,MAAM,gCAAgC,GAA8B;AACzE,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,YAAY,EAAE,OAAO;AACrB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,UAAU,EAAE,OAAO;CACpB;;ACXK,SAAU,uBAAuB,CAAC,CAAyB,EAAA;IAC/D,OAAO;AACL,QAAA,GAAG,CAAC;AACJ,QAAA,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;QAE/C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE;AAC5C,aAAA,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,EAAE;aACrC,IAAI,CAAC,GAAG,CAAC;QACZ,UAAU,EAAE,CAAC,CAAC;AACZ,cAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AAC5B,gBAAA,GAAG,MAAM;gBACT,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAE;AACzE,aAAA,CAAC;AACJ,cAAE,SAAS;KACd;AACH;;MCJa,mBAAmB,CAAA;AAC9B,IAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAuB;AAClD,IAAA,QAAQ,GAAG,KAAK,CAAW,EAAE,CAAC;AAC9B,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,IAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AACtC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;AAC1E,QAAA,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;YAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACjC;YACF;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9D;QACA,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjC;gBACF;AACA,gBAAA,IAAI,EAAE,GAAG,IAAI,YAAY,CAAC,EAAE;oBAC1B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC9C;YACF;QACF;IACF;uGAvBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;;;ACXK,SAAU,eAAe,CAAC,KAAU,EAAA;AACxC,IAAA,OAAO,CAAC,CAAC,oBAAoB,CAAC,KAAY,CAAC;AAC7C;;ACuCA,SAAS,gBAAgB,CAAC,MAA8C,EAAA;AACtE,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE;AACxB,QAAA,OAAO,EAAE;IACX;AACA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KACpC,YAAY,CACV,GAAG,EACH,QAAQ,CAAC,MAAM,MAAM,EAAG,CAAC,GAAG,CAAC,CAAC,CAC/B,CACF;AACH;AACA,SAAS,iBAAiB,CACxB,OAA4B,EAC5B,MAA0C,EAAA;IAE1C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE;IACX;IACA,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAC9C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CACvE;AACH;AACA,SAAS,yBAAyB,CAChC,UAAqD,EAAA;IAErD,IAAI,UAAU,EAAE,EAAE;QAChB,OAAO;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACnD,aAAA;SACF;IACH;AACA,IAAA,OAAO,EAAE;AACX;AACA,MAAM,QAAQ,GAAG,EAAE;MAEN,aAAa,CAAA;;AAExB,IAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAE;;AAG7D,IAAA,aAAa;AACb,IAAA,gBAAgB;AAChB,IAAA,iBAAiB;AAEjB,IAAA,kBAAkB;AAClB,IAAA,sBAAsB;AACtB,IAAA,eAAe;AACf,IAAA,qBAAqB;;AAErB,IAAA,uBAAuB;AACvB,IAAA,kBAAkB,CAAC,MAA8B,EAAA;AAC/C,QAAA,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,MACtC,SAAS,CAAC,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC,CACjD;IACH;IACA,YAAY,CAAC,KAAwC,EAAE,KAAa,EAAA;AAClE,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACrB;AACA;;;;AAIG;AACH,IAAA,WAAW;AAKX,IAAA,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC;AAC1B,IAAA,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7B,IAAA,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5B,cAAc,CACZ,IAAsB,EACtB,MAA0C,EAAA;AAE1C,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;AACzB,YAAA,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3B;QACF;QACA,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MACb,aAAa,CAAqB,IAAI,CAAE;AACrC,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;AACzB,oBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;gBAC5B;AACA,gBAAA,OAAO,IAAI;AACb,YAAA,CAAC;AACA,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAChC;YACD;QACF;QACA,MAAM,CAAC,IAAW,CAAC;IACrB;AACA,IAAA,eAAe,CACb,IAA8B,EAC9B,gBAAkC,EAClC,WAAiC,EAAA;;AAGjC,QAAA,IAAI,CAAC,kBAAkB,IAAI;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;;AAEzC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE;QACvC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAEzC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,eAAe,KAAI;AAC5D,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;YACvC,IAAI,CAAC,WAAW,GAAG;AACjB,gBAAA,MAAM,EAAE,QAAQ,CAAC,MAAK;oBACpB,IAAI,CAAC,cAAc,EAAE;oBACrB,OAAO,IAAI,CAAC,gBAAiB,CAAC,MAAO,EAAE,IAAI,QAAQ;AACrD,gBAAA,CAAC,CAAC;AACF,gBAAA,UAAU,EAAE,QAAQ,CAAC,MAAK;oBACxB,IAAI,CAAC,cAAc,EAAE;oBACrB,OAAO,IAAI,CAAC,gBAAiB,CAAC,UAAW,EAAE,IAAI,QAAQ;AACzD,gBAAA,CAAC,CAAC;AACF,gBAAA,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,GAAG,CACnD,CAAC,MAAM,EAAE,KAAK,KACZ,MAAM,CAAC;AACL,sBAAE,QAAQ,CAAC,MAAK;wBACZ,IAAI,CAAC,cAAc,EAAE;wBACrB,OAAO,IAAI,CAAC,gBAAiB,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC,MAAO,EAAE;AAC5D,oBAAA,CAAC;sBACD,SAAS,CAChB;aACF;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;AAExC,YAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;AACxC,gBAAA,SAAS,EAAE;AACT,oBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1D,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE;AACpE,iBAAA;AACD,gBAAA,MAAM,EAAE,eAAe,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ;AAC9D,aAAA,CAAC;AACF,YAAA,MAAM,iBAAiB,GACrB,eAAe,CAAC,SACjB,CAAC,SAAS;AACX,YAAA,MAAM,QAAQ,GAAG,eAAe,CAAC;kBAC7B,cAAc,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;kBAC1D,iBAAiB;AACrB,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,SAAS,EAAE;AAC9D,gBAAA,eAAe,EAAE,QAAQ;gBACzB,mBAAmB,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACrE,gBAAA,QAAQ,EAAE;AACR,oBAAA,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5C,oBAAA,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC;AAC9C,iBAAA;AACD,gBAAA,UAAU,EAAE;AACV,oBAAA,GAAG,CAAC,eAAe,CAAC,UAAU,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM;wBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,wBAAA,QAAQ,EAAE;4BACR,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAc,CAAC,KAAK,CAAC,CAAC;AAC3D,4BAAA,GAAG,iBAAiB,CAClB,IAAI,CAAC,OAAO,EACZ,QAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CACnC;AACF,yBAAA;AACF,qBAAA,CAAC,CAAC;oBACH,IAAI,iBAAiB,KAAK;AACxB,0BAAE;AACF,0BAAE,yBAAyB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC3D,iBAAA;AACF,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,sBAAsB,GAAG,YAAY,CAAC,QAAQ;AACnD,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,QAAQ;AAC5C,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,eAAe,CAAC,UAAU,IAAI,EAAE,EAAE,GAAG,CACjE,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C;AACD,YAAA,IAAI,iBAAiB,KAAK,CAAC,EAAE;gBAC3B,MAAM,WAAW,GACf,YAAY,CAAC,QACd,CAAC,WAAW,EAAE;AACf,gBAAA,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBAC/C,UAAU,EAAE,eAAe,CAAC,UAAU;AACvC,iBAAA,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC3C,gBAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;YAChD;iBAAO;AACL,gBAAA,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;YAChD;AACA,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAK;gBAC7B,gBAAgB,CAAC,KAAK,EAAE;gBACxB,YAAY,CAAC,OAAO,EAAE;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAClC,YAAA,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;gBAC1D,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,KAAK,CAAC;YAC5C;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,CAAC,IAA8B,EAAE,WAAiC,EAAA;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,QAAA,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,SAAS,CACvB,kBAAkB,EAClB,IAAI,CAAC,uBAAuB,EAAE,CAC/B;;QAED,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAExC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B;aAAO;YACL,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAkB,EAAE,WAAW,CAAC;QAClE;IACF;uGAhLW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;AC1DK,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AACvB,IAAA,KAAA;AAAtB,IAAA,WAAA,CAAsB,KAAkC,EAAA;AACtD,QAAA,KAAK,EAAE;QADa,IAAA,CAAA,KAAK,GAAL,KAAK;IAE3B;IAES,OAAO,GACd,IAA4C;AAE9C,IAAA,IAAa,KAAK,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK;IAC3B;AAEA,IAAA,IAAa,KAAK,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK;IAC3B;AAEA,IAAA,IAAa,OAAO,GAAA;AAClB,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK;IAC5B;AAEA,IAAA,IAAa,OAAO,GAAA;QAClB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;IAC5C;AAEA,IAAA,IAAa,QAAQ,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ;IAC9B;AAEA,IAAA,IAAa,OAAO,GAAA;AAClB,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ;IAC/B;AAEA,IAAA,IAAa,MAAM,GAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM;QAClC,OAAO,MAAM,IAAI,IAAI;IACvB;AAEA,IAAA,IAAa,QAAQ,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ;IAC9B;AAEA,IAAA,IAAa,KAAK,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK;IAC3B;AAEA,IAAA,IAAa,OAAO,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO;IAC7B;AAEA,IAAA,IAAa,SAAS,GAAA;AACpB,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO;IAC9B;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,KAAK;IACd;IAES,iBAAiB,CAAC,QAAa,EAAA,EAAS;AACjD,IAAA,IAAa,YAAY,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY;IAClC;AACA,IAAA,IAAa,aAAa,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa;IACnC;AACA,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE;QAClC;AACA,QAAA,OAAO,KAAK;IACd;AACD;;ACzED,MAAM,kBAAkB,GAAa;AACnC,IAAA,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS;CAC1D;MAOY,qBAAqB,CAAA;AAChC,IAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAgB;AACpC,IAAA,QAAQ,GAAG,MAAM,CAAyB,iBAAiB,CAAC;AAC5D,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEpC,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzB;AACA,IAAA,WAAW;AAEX,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,QAAQ,IAAI,CAAC,WAAW,KAAK,IAAI,gBAAgB,CAAC,MAChD,IAAI,CAAC,YAAY,EAAE,CACpB;IACH;AAEA,IAAA,UAAU;IACV,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,IAAI;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CACrC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,CACd;IACH;;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB;uGA7BW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAHrB,CAAC,kBAAkB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAGpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACCK,MAAO,iBACX,SAAQ,aAAa,CAAA;;IAIrB,iBAAiB,GAAG,KAAK,EAA8B;IACvD,4BAA4B,GAAG,KAAK,EAA2B;;IAE/D,4BAA4B,GAAG,KAAK,EAAgB;;IAEpD,yBAAyB,GAAG,KAAK,EAA6B;IAC9D,2BAA2B,GACzB,KAAK,EAA2C;AAElD,IAAA,sBAAsB,GAAG,KAAK,CAAC,QAAQ,EAA6B;AACpE,IAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;IAE5C,4BAA4B,GAAG,KAAK,EAAmC;IAEvE,WAAW,GAAG,QAAQ,CAAC,MACrB,QAAQ,CAAC,MAAM,CAAC;AACd,QAAA,SAAS,EAAE;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,sBAAsB;AACtC,aAAA;AACF,SAAA;QACD,MAAM,EAAE,IAAI,CAAC,SAAS;AACvB,KAAA,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CACjB;AACD,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,6BAA6B,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,EAAE;AACxD,QAAA,OAAO;AACL,cAAG;AACC,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;AACrC;cACrB,SAAS;AACf,IAAA,CAAC,CAAC;AACF,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AACrC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAC3D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,6BAA6B,EAAE;AACvD,QAAA,OAAO;AACL,cAAE,CAAC,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU;AAC9C,cAAE,gBAAgB,IAAI;AAC1B,IAAA,CAAC,CAAC;AACF,IAAA,iBAAiB,GAAG,QAAQ,CAAC,OAAO;AAClC,QAAA,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,IAAI;QACvC,GAAG,IAAI,CAAC,4BAA4B,EAAE;AACvC,KAAA,CAAC,CAAC;AACH,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACvC,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AACA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAChD,OAAO;AACL,YAAA,GAAG,MAAO;AACV,YAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI;YAC3B,MAAM,EAAE,IAAI,CAAC,iBAAiB;AAC9B,YAAA,UAAU,EAAE;kBACR,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACtB,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;oBAC5B,IAAI,OAAO,EAAE;wBACX,OAAO;AACL,4BAAA,GAAG,IAAI;AACP,4BAAA,OAAO,EAAE,OAAO;yBACjB;oBACH;AACA,oBAAA,OAAO,IAAI;AACb,gBAAA,CAAC;AACH,kBAAE,SAAS;SACY;AAC7B,IAAA,CAAC,CAAC;AACF,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAC/B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACjD,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,OAAO,WAAW;QACpB;AACA,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC;YAC3C,eAAe;SACY;QAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC;AAEF,IAAA,SAAS;IACT,WAAW,GAAA;;AAET,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,kBAAkB,IAAI;QACpC;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE;YAC3C,KAAK,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,eAAe,CAClB,IAAI,EACJ,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,4BAA4B,EAAE,CACpC;QACH;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACxD;;AAGA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,IAAI;IAC7B;uGAlHW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACZK,MAAO,kBAAmB,SAAQ,WAA2B,CAAA;AACjE,IAAA,aAAa,GAAiB,MAAM,CAAC,oBAAoB,CAAQ;IACxD,kBAAkB,CACzB,SAAyB,EACzB,MAAiC,EAAA;QAEjC,MAAM,KAAK,GAAG,SAAS;AACvB,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI;AAC3B,QAAA,IAAI,sBAA4D;AAChE,QAAA,IAAI,MAAM;AACV,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC;AACxB,aAAA,0BAAuD;QAE1D,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC3C,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM;AACtB,YAAA,sBAAsB,GAAG,MAAM,CAAC,aAAa;QAC/C;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CACjC,CAAC,sBAAsB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EACtD,IAAI,EACJ,aAAa,EAAE,UAAU,IAAI,gCAAgC,CAAC,UAAU,CACzE;QACD,OAAO;AACL,YAAA,GAAG,MAAM;AACT,YAAA,UAAU,EAAE,UAAU;SACvB;IACH;AAEA,IAAA,iBAAiB,CAAC,IAAqD,EAAA;AACrE,QAAA,IAAI,MAAM;AACV,QAAA,IAAI,aAAa;;AAEjB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAA,CAAE,CAAC;YAC/B;YACA,aAAa,GAAG,MAAM;YACtB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AAC9B,gBAAA,MAAM,GAAG;AACP,oBAAA,GAAG,MAAM;iBACoB;YACjC;QACF;aAAO;;AAEL,YAAA,MAAM,GAAG,EAAE,IAAI,EAAgC;QACjD;QACA,OAAO;YACL,MAAM;YACN,aAAa;SACd;IACH;uGArDW,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAlB,kBAAkB,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;ACVK,MAAO,cAAe,SAAQ,gBAGnC,CAAA;AAEC,IAAA,UAAU;AACX;;MCHY,QAAQ,CAAA;AACnB,IAAA,SAAS,CAAoC,EAAK,EAAE,GAAG,IAAmB,EAAA;AACxE,QAAA,OAAO,EAAE,CAAC,GAAG,IAAI,CAAkB;IACrC;uGAHW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACqCD,MAAM,qBAAqB,GAAG;AAC5B,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,MAAM,EAAE,cAAqB;CAC9B;MAQY,UAAU,CAAA;AACrB,IAAA,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtC,IAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC;AAC7C,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAEpB;AACH,IAAA,KAAK,GAAG,KAAK,CAAM,SAAS,CAAC;IAC7B,WAAW,GAAG,MAAM,EAAO;IAC3B,OAAO,GAAG,KAAK,EAKZ;AACH,IAAA,MAAM,GAAG,QAAQ,CACf,MACE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,OAEf,CAChB;AAED,IAAA,OAAO;AACP,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACxC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE;YAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AAEA,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,CAAC,MAAM,EAAE;QACb,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7C,IAAA,CAAC,CAAC;AAEF,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC1C,IAAA,mBAAmB;AACnB,IAAA,cAAc,GAAG,MAAM,CAAwC,SAAS,CAAC;AACzE,IAAA,cAAc;IACd,cAAc,GAAG,yBAAyB,CACxC;AACE,QAAA;AACE,YAAA,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO;AACvB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK;AACrB,SAAA;AACF,KAAA,EACD,IAAI,CAAC,YAAY,CAClB;IACD,YAAY,GAAA;QACV,IAAI,CAAC,MAAM,EAAE;;QAEb,MAAM,WAAW,GAAG,yBAAyB,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC;AACtE,QAAA,IAAI,CAAC,mBAAmB,GAAG,WAAW;QACtC,MAAM,MAAM,GAAG,OAAO,CAA4B,IAAI,CAAC,MAAM,EAAS,EAAE;AACtE,YAAA,GAAG,qBAAqB;YACxB,GAAG,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,iBAAiB,EAAE,CAAC,EAAE,KAAI;gBACxB,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AACzC,oBAAA,EAAE,EAAE;AACN,gBAAA,CAAC,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/B,QAAA,OAAO,MAAM;IACf;IACA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;IACF;AAEA,IAAA,YAAY,CAAC,KAAsC,EAAA;AACjD,QAAA,IAAI,CAAC,cAAc,IAAI;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAG;AACrC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;;AAEvB,YAAA,MAAM,GAAG,GAAG,UAAU,CACpB,IAAI,CAAC,KAAK,EAAE,EACZ,MAAO,CAAC,IAAI,CAAC,OAAO;;AAEpB,YAAA,IAAI,CAAC,SAAS,EACd,CAAC,KAAK,KAAI;gBACR,SAAS,CAAC,MAAK;oBACb,IAAI,MAAO,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE;AAC1C,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC9B;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CACF;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,MAAK;gBACzB,GAAG,CAAC,OAAO,EAAE;AACb,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AACjC,YAAA,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;QACxC;IACF;AAEA,IAAA,gBAAgB,CAAC,gBAAkC,EAAA;QACjD,OAAO,EAAE,gBAAgB,EAAE;IAC7B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,IAAI;IACzB;uGAlHW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,0wBCrDvB,g9CAwCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQY,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,wBAAA,EAAA,8BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,QAAQ,6CAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAK5C,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,OAAA,EACd,CAAC,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAA,UAAA,EAE5C,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g9CAAA,EAAA;;;AElC3C,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AACtD,IAAA,oBAAoB,GAAG,SAAS,CAAC,gBAAgB,EAAE;AACjD,QAAA,IAAI,EAAE,gBAAgB;AACvB,KAAA,CAAC;AACF,IAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACrC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;AAChD,IAAA,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC1C,IAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxB,eAAe,CACtB,IAA+B,EAC/B,gBAAmC,EAAA;AAEnC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAClC,IAAI,IAAI,IAAI,CAAC,KAAK,EAClB,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,EAAG,CACjD;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACnB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM;IACf;IACA,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;IACxB;uGAvBW,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,iJAExB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAFb,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACbM,MAAM,SAAS,GAAGA;;ACOnB,SAAU,aAAa,CAAI,KAA0B,EAAA;AACzD,IAAA,OAAO,SAAS,CAAI,CAAC,KAAK,KAAI;AAC5B,QAAA,KAAK,CAAC,UAAU,GAAG,KAAK;AAC1B,IAAA,CAAC,CAAC;AACJ;AACM,SAAU,eAAe,CAAI,KAA0B,EAAA;AAC3D,IAAA,OAAO,SAAS,CAAI,CAAC,KAAK,KAAI;AAC5B,QAAA,KAAK,CAAC,UAAU,KAAK,EAAE;QACvB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACjC,IAAA,CAAC,CAAC;AACJ;AACM,SAAU,mBAAmB,CACjC,EAEyE,EAAA;AAEzE,IAAA,OAAO,SAAS,CAAI,CAAC,KAAK,KAAI;AAC5B,QAAA,YAAY,CACV;AACE,YAAA,aAAa,EAAE,CAAC,KAAK,KAAI;AACvB,gBAAA,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAC/B,gBAAA,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC;AAC3B,gBAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM;AAC/B,gBAAA,IAAI,OAAO,GAAG,MAAM,CAAsB,EAAE,CAAC;gBAC7C,IAAI,MAAM,EAAE;AACV,oBAAA,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,GAAG,KAAI;AACX,wBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS;AACpB,wBAAA,OAAO,GAAG;AACZ,oBAAA,CAAC,EACD,EAAyB,CAC1B,CACF;AACD,oBAAA,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5C;AACA,gBAAA,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU;AACtC,gBAAA,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM;AACpC,oBAAA,GAAG,aAAa,EAAE;AAClB,oBAAA,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AAClC,iBAAA,CAAC;YACJ,CAAC;SACF,EACD,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtB,KAAK,CACN;AACH,IAAA,CAAC,CAAC;AACJ;;MCtDa,WAAW,CAAA;IACb,YAAY,GAAQ,SAAS;IACtC,MAAM,GAAG,MAAM,CAAI,IAAI,CAAC,YAAY,IAAK,SAAiB,CAAC;AAEjD,IAAA,SAAS;AACnB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB;AAEA,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;IACnC;AACA,IAAA,QAAQ;AACR,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;IACA,aAAa,GAAA;QACX,IAAI,CAAC,QAAS,EAAE;IAClB;AACA,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;AACD;;AC/BD;;AAEG;;;;"}
|
|
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/directives/attributes.directive.ts","../../../projects/view-angular/lib/util/async-cache.ts","../../../projects/view-angular/lib/directives/events.directive.ts","../../../projects/view-angular/lib/component/base.component.ts","../../../projects/view-angular/lib/directives/interop_ng_control.ts","../../../projects/view-angular/lib/directives/field-control-directive.ts","../../../projects/view-angular/lib/hook/ng_component_outlet.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/insert-field.directive.ts","../../../projects/view-angular/lib/schema/action/raw-config.ts","../../../projects/view-angular/lib/schema/action/directive.ts","../../../projects/view-angular/lib/schema/action/index.ts","../../../projects/view-angular/lib/component/form/control.base.component.ts","../../../projects/view-angular/piying-view-angular.ts"],"sourcesContent":["/** component */\n\nimport { InjectionToken, Signal, EventEmitter } from '@angular/core';\nimport { DynamicComponentConfig } from './component';\nimport { PiResolvedViewFieldConfig } from './group';\nimport { SetOptional } from '@piying/view-angular-core';\nimport { NgConvertOptions } from './builder-type';\nimport { PiViewConfig } from './view-config';\nimport * as v from 'valibot';\nexport const PI_INPUT_OPTIONS_TOKEN = new InjectionToken<\n Signal<\n Omit<\n SetOptional<NgConvertOptions, 'builder' | 'handle'>,\n 'fieldGlobalConfig'\n > & { fieldGlobalConfig?: PiViewConfig }\n >\n>('PI_INPUT_OPTIONS');\nexport const PI_INPUT_SCHEMA_TOKEN = new InjectionToken<\n Signal<v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>>\n>('PI_INPUT_SCHEMA');\nexport const PI_INPUT_MODEL_TOKEN = new InjectionToken<Signal<any>>(\n 'PI_INPUT_MODEL',\n);\n/** wrapper中可以使用,已解析的配置 */\nexport const PI_VIEW_FIELD_TOKEN = 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, viewChild } from '@angular/core';\n\nimport { PiyingViewGroupBase } from './component.base';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'piying-view-group',\n imports: [NgTemplateOutlet],\n templateUrl: './component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PiyingViewGroup extends PiyingViewGroupBase {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n}\n","<ng-template #templateRef>\n @for (field of children$$(); track field.id || $index) {\n <ng-container\n *ngTemplateOutlet=\"fieldTemplateRef(); context: { $implicit: field }\"\n ></ng-container>\n }\n</ng-template>\n","export const EMPTY_ARRAY = [];\n","import { DynamicComponentConfig } from '../type/component';\n\nexport function getComponentCheckConfig(a: DynamicComponentConfig) {\n return {\n ...a,\n inputs: Object.keys(a.inputs() ?? {}).join(','),\n directives: a.directives\n ? a.directives.map((config) => ({\n ...config,\n inputs: `${config.inputs ? Object.keys(config.inputs() ?? {}).join(',') : ''}`,\n }))\n : undefined,\n // todo 这里是为了schema被替换时,进行比较,感觉应该有更好的方法\n attributes: Object.entries(a.attributes() ?? {})\n .map((key, value) => `${key}:${value}`)\n .join(','),\n events: Object.keys(a.events() ?? {}).join(','),\n outputs: Object.keys(a.events() ?? {}).join(','),\n };\n}\n\nexport type ComponentCheckConfig = ReturnType<typeof getComponentCheckConfig>;\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[attributes]',\n})\nexport class AttributesDirective {\n attributes = input.required<Record<string, any>>();\n excludes = input<string[]>([]);\n #rederer = inject(Renderer2);\n #el = inject(ElementRef).nativeElement;\n ngOnChanges(changes: SimpleChanges): void {\n const { previousValue, currentValue, firstChange } = changes['attributes'];\n for (const key in currentValue) {\n if (this.excludes().includes(key)) {\n continue;\n }\n this.#rederer.setAttribute(this.#el, key, currentValue[key]);\n }\n if (!firstChange) {\n for (const key in previousValue) {\n if (this.excludes().includes(key)) {\n continue;\n }\n if (!(key in currentValue)) {\n this.#rederer.removeAttribute(this.#el, key);\n }\n }\n }\n }\n}\n","import { reflectComponentType, Type } from '@angular/core';\nexport function isComponentType(input: any): input is Type<any> {\n return !!reflectComponentType(input as any);\n}\n","import { Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[events]',\n})\nexport class EventsDirective {\n events = input.required<Record<string, (event: any) => any>>();\n #renderer = inject(Renderer2);\n #el = inject(ElementRef).nativeElement;\n #cleanList: (() => void)[] = [];\n ngOnChanges(): void {\n this.#clean();\n this.#cleanList = [];\n for (const key in this.events()) {\n const event = this.events()[key];\n this.#cleanList.push(this.#renderer.listen(this.#el, key, event));\n }\n }\n #clean() {\n this.#cleanList.forEach((fn) => fn());\n }\n ngOnDestroy(): void {\n this.#clean();\n }\n}\n","import {\n ApplicationRef,\n computed,\n createComponent,\n createNgModule,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n inject,\n Injector,\n inputBinding,\n outputBinding,\n PendingTasks,\n signal,\n Signal,\n TemplateRef,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { ComponentRawType, PiResolvedViewFieldConfig } from '../type';\nimport { DynamicComponentConfig, NgComponentDefine } from '../type/component';\nimport {\n ComponentCheckConfig,\n getComponentCheckConfig,\n} from '../util/component-config.equal';\nimport { deepEqual } from 'fast-equals';\nimport {\n PI_COMPONENT_INDEX,\n PI_COMPONENT_LIST,\n PI_COMPONENT_LIST_LISTEN,\n PI_VIEW_FIELD_TOKEN,\n} from '../type/view-token';\nimport {\n ViewAttributes,\n ViewInputs,\n ViewOutputs,\n getLazyImport,\n isLazyMark,\n} from '@piying/view-angular-core';\nimport { AttributesDirective } from '../directives/attributes.directive';\nimport { isComponentType } from '../util/async-cache';\nimport { EventsDirective } from '../directives/events.directive';\nfunction createInputsBind(inputs?: Signal<ViewInputs | undefined>) {\n if (!inputs || !inputs()) {\n return [];\n }\n return Object.keys(inputs()!).map((key) =>\n inputBinding(\n key,\n computed(() => inputs()![key]),\n ),\n );\n}\nfunction createOutputsBind(\n outputs?: () => ViewOutputs | undefined,\n config?: Signal<PiResolvedViewFieldConfig>,\n) {\n if (!outputs?.()) {\n return [];\n }\n return Object.entries(outputs!()!).map(([key, value]) =>\n outputBinding(key, config ? (event) => value(event, config()) : value),\n );\n}\nfunction createAttributesDirective(\n attributes: Signal<ViewAttributes | undefined>,\n) {\n if (attributes()) {\n return [\n {\n type: AttributesDirective,\n bindings: [inputBinding('attributes', attributes)],\n },\n ];\n }\n return [];\n}\nfunction createEventsDirective(events: Signal<ViewAttributes | undefined>) {\n if (events()) {\n return [\n {\n type: EventsDirective,\n bindings: [inputBinding('events', events)],\n },\n ];\n }\n return [];\n}\nconst EmptyOBJ = {};\n@Directive()\nexport class BaseComponent {\n /** 第一次默认为空 */\n #index = inject(PI_COMPONENT_INDEX, { optional: true }) ?? 0!;\n\n /** 发射提供到下一级 */\n #eventEmitter!: EventEmitter<DynamicComponentConfig[]>;\n #componentConfig!: DynamicComponentConfig;\n #viewContainerRef?: ViewContainerRef;\n\n destroyComponentFn?: () => void;\n fieldComponentInstance?: any;\n fieldElementRef?: ElementRef<HTMLElement>;\n fieldDirectiveRefList?: any[];\n /** 比较时使用 */\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 directiveList?: (Signal<Record<string, any>> | undefined)[];\n };\n #configUpdate$ = signal(0);\n #app = inject(ApplicationRef);\n #task = inject(PendingTasks);\n #loadComponent(\n type: ComponentRawType,\n loadFn: (input: NgComponentDefine) => void,\n ) {\n if (isComponentType(type)) {\n loadFn({ component: type });\n return;\n }\n if (typeof type === 'function' || isLazyMark(type)) {\n this.#task.run(() =>\n getLazyImport<() => Promise<any>>(type)!()\n .then((type) => {\n if (isComponentType(type)) {\n return { component: type };\n }\n return type;\n })\n .then((data) => loadFn(data)),\n );\n return;\n }\n loadFn(type as any);\n }\n createComponent(\n list: DynamicComponentConfig[],\n viewContainerRef: ViewContainerRef,\n envInjector?: EnvironmentInjector,\n ) {\n // 销毁\n this.destroyComponentFn?.();\n this.#viewContainerRef = viewContainerRef;\n // 取消上一级的定义\n this.#eventEmitter = new EventEmitter();\n const componentConfig = list[this.#index];\n\n this.#loadComponent(componentConfig.type, (componentDefine) => {\n this.#componentConfig = componentConfig;\n this.#inputCache = {\n inputs: computed(() => {\n this.#configUpdate$();\n return this.#componentConfig!.inputs!() ?? EmptyOBJ;\n }),\n\n directiveList: this.#componentConfig?.directives?.map(\n (config, index) =>\n config.inputs\n ? computed(() => {\n this.#configUpdate$();\n return (\n this.#componentConfig!.directives![index].inputs!() ?? {}\n );\n })\n : undefined,\n ),\n };\n this.#setComponentCheck(componentConfig);\n\n const componentInjector = Injector.create({\n providers: [\n { provide: PI_COMPONENT_LIST, useValue: list },\n { provide: PI_COMPONENT_INDEX, useValue: this.#index + 1 },\n { provide: PI_COMPONENT_LIST_LISTEN, useValue: this.#eventEmitter },\n ],\n parent: componentConfig.injector ?? viewContainerRef.injector,\n });\n const COMPONENT_VERSION: number | undefined = (\n componentDefine.component as any\n ).__version;\n const injector = componentDefine.module\n ? createNgModule(componentDefine.module, componentInjector).injector\n : componentInjector;\n const componentRef = createComponent(componentDefine.component, {\n elementInjector: injector,\n environmentInjector: envInjector ?? injector.get(EnvironmentInjector),\n bindings: [\n ...createInputsBind(this.#inputCache.inputs),\n ...createOutputsBind(componentConfig.outputs),\n ],\n directives: [\n ...(componentConfig.directives ?? []).map((item, index) => ({\n type: item.type,\n bindings: [\n ...createInputsBind(this.#inputCache.directiveList![index]),\n ...createOutputsBind(\n item.outputs,\n injector!.get(PI_VIEW_FIELD_TOKEN),\n ),\n ],\n })),\n ...(COMPONENT_VERSION === 2\n ? []\n : [\n ...createAttributesDirective(componentConfig.attributes),\n ...createEventsDirective(componentConfig.events),\n ]),\n ],\n });\n this.fieldComponentInstance = componentRef.instance;\n this.fieldElementRef = componentRef.location;\n this.fieldDirectiveRefList = (componentConfig.directives ?? []).map(\n (item) => componentRef.injector.get(item.type),\n );\n if (COMPONENT_VERSION === 2) {\n const templateRef = (\n componentRef.instance as { templateRef: Signal<TemplateRef<any>> }\n ).templateRef();\n viewContainerRef.createEmbeddedView(templateRef, {\n attributes: componentConfig.attributes,\n events: componentConfig.events,\n });\n this.#app.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n } else {\n viewContainerRef.insert(componentRef.hostView);\n }\n this.destroyComponentFn = () => {\n viewContainerRef.clear();\n componentRef.destroy();\n this.#eventEmitter.unsubscribe();\n };\n if (list.length === this.#index + 1) {\n const field = componentInjector.get(PI_VIEW_FIELD_TOKEN)();\n field.hooks?.afterCreateComponent?.(field);\n }\n });\n }\n\n update(list: DynamicComponentConfig[], envInjector?: EnvironmentInjector) {\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!, envInjector);\n }\n }\n}\n","import {\n NgControl,\n Validators,\n type AbstractControl,\n type ValidationErrors,\n} from '@angular/forms';\nimport { FieldControl, PENDING } from '@piying/view-angular-core';\n\nexport type InteropSharedKeys =\n | 'value'\n | 'valid'\n | 'invalid'\n | 'touched'\n | 'untouched'\n | 'disabled'\n | 'enabled'\n | 'errors'\n | 'pristine'\n | 'dirty';\n\nexport class InteropNgControl extends NgControl {\n constructor(protected field: () => FieldControl<unknown>) {\n super();\n }\n\n readonly control: AbstractControl<any, any> =\n this as unknown as AbstractControl<any, any>;\n\n override get value(): any {\n return this.field().value;\n }\n\n override get valid(): boolean {\n return this.field().valid;\n }\n\n override get invalid(): boolean {\n return !this.field().valid;\n }\n\n override get pending(): boolean | null {\n return this.field().status$$() === PENDING;\n }\n\n override get disabled(): boolean {\n return this.field().disabled;\n }\n\n override get enabled(): boolean {\n return !this.field().disabled;\n }\n\n override get errors(): ValidationErrors | null {\n const errors = this.field().errors;\n return errors ?? null;\n }\n\n override get pristine(): boolean {\n return this.field().pristine;\n }\n\n override get dirty(): boolean {\n return this.field().dirty;\n }\n\n override get touched(): boolean {\n return this.field().touched;\n }\n\n override get untouched(): boolean {\n return !this.field().touched;\n }\n\n get submitted(): boolean {\n return false;\n }\n\n override viewToModelUpdate(newValue: any): void {}\n override get valueChanges() {\n return this.field().valueChanges;\n }\n override get statusChanges() {\n return this.field().statusChanges;\n }\n hasValidator(input: any) {\n if (Validators.required === input) {\n return this.field().required$$();\n }\n return false;\n }\n}\n","import {\n Directive,\n inject,\n Injector,\n input,\n OnDestroy,\n Provider,\n} from '@angular/core';\n\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NgControl,\n} from '@angular/forms';\nimport { createViewControlLink, FieldControl } from '@piying/view-angular-core';\nimport { InteropNgControl } from './interop_ng_control';\n\nconst formControlBinding: Provider = {\n provide: NgControl,\n useFactory: () => inject(FieldControlDirective).ngControl,\n};\n\n@Directive({\n selector: '[fieldControl]',\n providers: [formControlBinding],\n standalone: true,\n})\nexport class FieldControlDirective implements OnDestroy {\n fieldControl = input.required<FieldControl>();\n readonly cvaArray = inject<ControlValueAccessor[]>(NG_VALUE_ACCESSOR);\n readonly injector = inject(Injector);\n\n get cva() {\n return this.cvaArray[0];\n }\n #_ngControl: InteropNgControl | undefined;\n\n get ngControl(): NgControl {\n return (this.#_ngControl ??= new InteropNgControl(() =>\n this.fieldControl(),\n )) as unknown as NgControl;\n }\n\n #disposeFn?: (destroyed?: boolean) => void;\n ngOnChanges(): void {\n this.#disposeFn?.();\n this.#disposeFn = createViewControlLink(\n this.fieldControl,\n this.cva,\n this.injector,\n );\n }\n\n /** @docs-private */\n ngOnDestroy() {\n this.#disposeFn?.(true);\n }\n}\n","import {\n computed,\n Directive,\n EnvironmentInjector,\n inject,\n Injector,\n input,\n OnChanges,\n OnDestroy,\n ViewContainerRef,\n} from '@angular/core';\nimport { PiResolvedViewFieldConfig, NgResolvedWraaperConfig } from '../type';\nimport {\n DynamicComponentConfig,\n NgResolvedComponentDefine2,\n} from '../type/component';\nimport { EMPTY_ARRAY } from '../const';\nimport { BaseComponent } from '../component/base.component';\nimport { DirectiveConfig } from '../component/dynamic-define.component';\nimport { asyncObjectSignal, FieldControl } from '@piying/view-angular-core';\nimport { PI_VIEW_FIELD_TOKEN } from '../type/view-token';\nimport { FieldControlDirective } from '../directives/field-control-directive';\n\n@Directive({\n selector: '[ngComponentOutlet]',\n standalone: true,\n})\nexport class NgComponentOutlet<T = any>\n extends BaseComponent\n implements OnChanges, OnDestroy\n{\n /** 输入 */\n ngComponentOutlet = input<NgResolvedComponentDefine2>();\n ngComponentOutletExtraInputs = input<Record<string, unknown>>();\n /** 控件用 */\n ngComponentOutletFormControl = input<FieldControl>();\n /** 包裹用 */\n ngComponentOutletWrappers = input<NgResolvedWraaperConfig[]>();\n ngComponentOutletDirectives =\n input<PiResolvedViewFieldConfig['directives']>();\n\n ngComponentOutletField = input.required<PiResolvedViewFieldConfig>();\n #viewContainerRef = inject(ViewContainerRef);\n // 这里感觉会在非发射时出现多次输入?\n ngComponentOutletEnvInjector = input<EnvironmentInjector | undefined>();\n\n #injector$$ = computed(() =>\n Injector.create({\n providers: [\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: this.ngComponentOutletField,\n },\n ],\n parent: this.#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: asyncObjectSignal({ fieldControl: fieldControl }),\n } as DirectiveConfig)\n : undefined;\n });\n #directiveConfigList$$ = computed(() => {\n const directivesInputs = this.ngComponentOutletDirectives();\n const formConfig = this.#formControlDirectiveConfig$$();\n return formConfig\n ? [...(directivesInputs?.() ?? []), formConfig]\n : directivesInputs?.();\n });\n #componentInput$$ = computed(() => ({\n ...this.ngComponentOutlet()?.inputs?.(),\n ...this.ngComponentOutletExtraInputs(),\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 outputs: define.outputs,\n inputs: this.#componentInput$$,\n directives: directives,\n } as DynamicComponentConfig;\n });\n #componentList$$ = computed(() => {\n const componentConfig = this.#componentConfig$$();\n if (!componentConfig) {\n return EMPTY_ARRAY;\n }\n const list = [\n ...(this.ngComponentOutletWrappers() ?? []),\n componentConfig,\n ] as DynamicComponentConfig[];\n list[0].injector = this.#injector$$();\n return list;\n });\n\n #lastList?: DynamicComponentConfig[];\n ngOnChanges() {\n //todo 变更时的一些检测,相同时应该不处理\n const list = this.#componentList$$();\n if (!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(\n list,\n this.#viewContainerRef,\n this.ngComponentOutletEnvInjector(),\n );\n } else if (this.#lastList !== list) {\n this.update(list, this.ngComponentOutletEnvInjector());\n }\n // 监听输入/输出变更,重新进行赋值\n\n this.#lastList = list;\n }\n\n ngOnDestroy() {\n this.destroyComponentFn?.();\n }\n}\n","import { PiResolvedViewFieldConfig } from './type';\nimport { Injectable } from '@angular/core';\n\nimport { FormBuilder } from '@piying/view-angular-core';\nimport { NgSchemaHandle } from './schema/ng-schema';\n\n@Injectable()\nexport class AngularFormBuilder extends FormBuilder<NgSchemaHandle> {\n override afterResolveConfig(\n rawConfig: NgSchemaHandle,\n config: PiResolvedViewFieldConfig,\n ): PiResolvedViewFieldConfig {\n const field = rawConfig;\n\n config.directives = field.directives;\n return config;\n }\n}\n","import { combineSignal, CoreSchemaHandle } from '@piying/view-angular-core';\nimport { PiResolvedViewFieldConfig, NgDirectiveConfig } from '../type';\n\nexport class NgSchemaHandle extends CoreSchemaHandle<\n NgSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type?: any;\n directives = combineSignal<NgDirectiveConfig>([]);\n}\n","import { 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 viewChild,\n} from '@angular/core';\nimport { NgComponentOutlet } from './hook/ng_component_outlet';\n\nimport {\n PiViewConfig,\n PiResolvedViewFieldConfig,\n PI_INPUT_OPTIONS_TOKEN,\n PI_INPUT_SCHEMA_TOKEN,\n PI_INPUT_MODEL_TOKEN,\n} from './type';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n convert,\n FieldArray,\n FieldControl,\n FieldGroup,\n initListen,\n} from '@piying/view-angular-core';\nimport { AngularFormBuilder } from './builder';\nimport { NgSchemaHandle } from './schema/ng-schema';\nimport { NgConvertOptions } from './type/builder-type';\nimport type { FormBuilder, SetOptional } from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport { PurePipe } from './pipe/pure.pipe';\nconst DefaultConvertOptions = {\n builder: AngularFormBuilder as unknown as typeof FormBuilder<any>,\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 templateRef = viewChild.required('templateRef');\n readonly selectorless = input<boolean>(false);\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 envInjector2$$ = createEnvironmentInjector(\n [\n {\n provide: PI_INPUT_OPTIONS_TOKEN,\n useValue: this.options,\n },\n {\n provide: PI_INPUT_SCHEMA_TOKEN,\n useValue: this.schema,\n },\n {\n provide: PI_INPUT_MODEL_TOKEN,\n useValue: this.model,\n },\n ],\n this.#envInjector,\n );\n #updateField() {\n this.#clean();\n // 临时销毁\n const envInjector = createEnvironmentInjector([], this.envInjector2$$);\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(fieldTemplateRef: TemplateRef<any>) {\n return { fieldTemplateRef };\n }\n\n ngOnDestroy(): void {\n this.#listenDispose?.();\n }\n}\n","<ng-template #dynamicComponent let-field let-envInjector=\"envInjector\">\n @let renderConfig = field.renderConfig();\n @if (!renderConfig?.hidden) {\n @if (field.fixedChildren || field.restChildren) {\n <!-- 自定义group -->\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletExtraInputs]=\"\n groupInputsValue | pure: dynamicComponent\n \"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"field.define?.()\"\n [ngComponentOutletFormControl]=\"$any(field.form.control)\"\n [ngComponentOutletWrappers]=\"field.wrappers()\"\n [ngComponentOutletField]=\"field\"\n [ngComponentOutletDirectives]=\"field.directives\"\n [ngComponentOutletEnvInjector]=\"envInjector ?? envInjector2$$\"\n ></ng-container>\n }\n }\n</ng-template>\n<ng-template #templateRef>\n @if (resolvedField$(); as field) {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicComponent;\n context: { $implicit: field, envInjector: envInjector2$$ }\n \"\n ></ng-container>\n }\n</ng-template>\n@if (!selectorless()) {\n <ng-container *ngTemplateOutlet=\"templateRef\"></ng-container>\n}\n","import { Directive, inject, ViewContainerRef } from '@angular/core';\nimport { PI_COMPONENT_LIST_LISTEN, PI_COMPONENT_LIST } from '../type';\nimport { DynamicComponentConfig } from '../type/component';\nimport { BaseComponent } from './base.component';\n\n@Directive({\n selector: '[insertField]',\n exportAs: 'insertField',\n})\nexport class InsertFieldDirective extends BaseComponent {\n #viewContainerRef = inject(ViewContainerRef);\n #listen = inject(PI_COMPONENT_LIST_LISTEN);\n #list = inject(PI_COMPONENT_LIST);\n override createComponent(\n list?: DynamicComponentConfig[],\n viewContainerRef?: ViewContainerRef,\n ) {\n const result = super.createComponent(\n list ?? this.#list,\n this.#viewContainerRef,\n );\n this.#listen.subscribe((list) => {\n this.update(list);\n });\n return result;\n }\n\n constructor() {\n super();\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 asyncObjectSignal,\n mergeHooksFn,\n SetOptional,\n SetUnWrapper$,\n CustomDataSymbol,\n} from '@piying/view-angular-core';\nimport { NgDirectiveConfig } from '../../type';\nimport { rawConfig } from './raw-config';\nimport { Signal, signal, Type } from '@angular/core';\nimport { RawConfigAction } from '@piying/valibot-visit';\nfunction createSetOrPatchDirectivePropertyFn(isPatch?: boolean) {\n return <T>(\n items: SetOptional<\n SetUnWrapper$<\n NgDirectiveConfig,\n 'inputs' | 'outputs' | 'attributes' | 'events' | 'model'\n >,\n 'inputs' | 'outputs' | 'attributes' | 'events' | 'model'\n >[],\n ) =>\n rawConfig<T>((field) => {\n if (!isPatch) {\n field.directives.clean();\n }\n items.forEach((item) => {\n field.directives.add(\n signal<NgDirectiveConfig>({\n type: item.type,\n inputs: asyncObjectSignal(item.inputs ?? {}),\n outputs: asyncObjectSignal(item.outputs ?? {}),\n attributes: asyncObjectSignal(item.attributes ?? {}),\n events: asyncObjectSignal(item.events ?? {}),\n model: asyncObjectSignal(item.model ?? {}),\n }),\n );\n });\n });\n}\n\nfunction patchAsyncDirective<T>(\n type: Type<any>,\n actions?: RawConfigAction<'viewRawConfig', any, any>[],\n options?: { insertIndex?: number },\n) {\n return rawConfig<T>((rawFiled) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const initData = signal({\n type,\n attributes: asyncObjectSignal({}),\n events: asyncObjectSignal({}),\n inputs: asyncObjectSignal({}),\n outputs: asyncObjectSignal({}),\n model: asyncObjectSignal({}),\n } as NgDirectiveConfig);\n field.directives!.add(initData, options?.insertIndex);\n for (const item of actions ?? []) {\n const tempField = {};\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: initData,\n });\n (tempField as any).hooks?.allFieldsResolved?.(field);\n }\n },\n },\n { position: 'bottom' },\n rawFiled,\n );\n });\n}\nfunction removeDirectives<T>(\n removeList: (\n list: Signal<NgDirectiveConfig>[],\n ) => Signal<NgDirectiveConfig>[],\n) {\n return rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n field.directives!.update(removeList);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\nexport const directives = {\n set: createSetOrPatchDirectivePropertyFn(),\n patch: createSetOrPatchDirectivePropertyFn(true),\n patchAsync: patchAsyncDirective,\n remove: removeDirectives,\n};\n","import { actions as coreActions } from '@piying/view-angular-core';\nimport { directives } from './directive';\nexport * from './raw-config';\nexport {\n asControl,\n condition,\n asVirtualGroup,\n layout,\n} from '@piying/view-angular-core';\nexport * from './directive';\nexport const actions = { ...coreActions, directives };\n","import { signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport class BaseControl<T = any> implements ControlValueAccessor {\n readonly defaultValue: any = undefined;\n value$ = signal<T>(this.defaultValue ?? (undefined as any));\n\n protected emitValue?: (value: any) => void;\n registerOnChange(fn: any): void {\n this.emitValue = fn;\n }\n /** 同时发射和value变更 */\n valueChange(value: 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":["originRawConfig","coreActions"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, Type,
|
|
2
|
+
import { TemplateRef, Type, WritableSignal, Signal, Injector, InjectionToken, EventEmitter, OnChanges, SimpleChanges, EnvironmentInjector, ElementRef, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import * as _piying_view_angular from '@piying/view-angular';
|
|
4
|
-
import
|
|
4
|
+
import * as _piying_view_angular_core from '@piying/view-angular-core';
|
|
5
|
+
import { AsyncObjectSignal, ViewInputs, ViewOutputs, ViewEvents, ViewAttributes, CoreResolvedComponentDefine, LazyImport, LazyMarkType, PiResolvedCommonViewFieldConfig, CombineSignal, CoreWrapperConfig, PiCommonConfig, SetOptional, FormBuilder, FieldArray, FieldControl, FieldGroup, CoreSchemaHandle, SetUnWrapper$ } from '@piying/view-angular-core';
|
|
5
6
|
export { asControl, asVirtualGroup, condition, layout } from '@piying/view-angular-core';
|
|
6
7
|
import * as _piying_valibot_visit from '@piying/valibot-visit';
|
|
7
|
-
import { ConvertOptions, RawConfigCommon } from '@piying/valibot-visit';
|
|
8
|
+
import { ConvertOptions, RawConfigCommon, RawConfigAction } from '@piying/valibot-visit';
|
|
8
9
|
import * as v from 'valibot';
|
|
10
|
+
import * as clsx from 'clsx';
|
|
9
11
|
import { ControlValueAccessor } from '@angular/forms';
|
|
10
12
|
|
|
11
13
|
declare class PiyingViewGroupBase {
|
|
@@ -29,73 +31,42 @@ declare class PiyingViewGroup extends PiyingViewGroupBase {
|
|
|
29
31
|
type DirectiveConfig<T = any> = {
|
|
30
32
|
/** string表示是标签,type<any>是组件或者指令 */
|
|
31
33
|
type: Type<T>;
|
|
32
|
-
inputs?:
|
|
33
|
-
outputs?:
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
inputs?: AsyncObjectSignal<ViewInputs>;
|
|
35
|
+
outputs?: AsyncObjectSignal<ViewOutputs>;
|
|
36
|
+
events?: AsyncObjectSignal<ViewEvents>;
|
|
37
|
+
model?: AsyncObjectSignal<Record<string, WritableSignal<any>>>;
|
|
38
|
+
attributes?: AsyncObjectSignal<ViewAttributes>;
|
|
36
39
|
};
|
|
37
40
|
|
|
38
|
-
/** todo 这个没有支持 */
|
|
39
|
-
interface RawDirectiveOutputs {
|
|
40
|
-
[name: string]: (event: any, field: PiResolvedViewFieldConfig) => void;
|
|
41
|
-
}
|
|
42
|
-
interface DynamicComponentConfig {
|
|
43
|
-
type: Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>;
|
|
44
|
-
attributes: Signal<CoreRawViewAttributes | undefined>;
|
|
45
|
-
inputs: Signal<CoreRawViewInputs | undefined>;
|
|
46
|
-
directives?: DirectiveConfig[];
|
|
47
|
-
outputs?: CoreRawViewOutputs;
|
|
48
|
-
injector?: Injector;
|
|
49
|
-
}
|
|
50
|
-
/** component,wrapper通用定义 */
|
|
51
|
-
type NgComponentDefine = {
|
|
52
|
-
component: Type<any>;
|
|
53
|
-
module?: Type<any>;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
declare class NgSchemaHandle extends CoreSchemaHandle<NgSchemaHandle, () => PiResolvedViewFieldConfig> {
|
|
57
|
-
type?: any;
|
|
58
|
-
directives?: NgDirectiveConfig[];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
41
|
/** 指令配置 */
|
|
62
|
-
type NgDirectiveConfig =
|
|
63
|
-
inputs?: Signal<Record<string, any>>;
|
|
64
|
-
outputs?: RawDirectiveOutputs;
|
|
65
|
-
};
|
|
42
|
+
type NgDirectiveConfig = DirectiveConfig;
|
|
66
43
|
/** 用于全局可选配置 */
|
|
67
|
-
type PiDefaultRawViewFieldConfig = Pick<NgSchemaHandle, 'inputs' | 'outputs' | 'wrappers' | 'formConfig' | 'renderConfig' | 'props' | 'directives' | 'attributes'>;
|
|
68
|
-
type NgRawComponentDefine = Omit<CoreRawComponentDefine, 'type'> & {
|
|
69
|
-
type?: string | Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>;
|
|
70
|
-
};
|
|
71
44
|
/** 解析后但是未加载 */
|
|
72
45
|
type NgResolvedComponentDefine1 = Omit<CoreResolvedComponentDefine, 'type'> & {
|
|
73
46
|
type: Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>;
|
|
74
47
|
};
|
|
75
48
|
type PiResolvedViewFieldConfig = PiResolvedCommonViewFieldConfig<() => PiResolvedViewFieldConfig, NgResolvedComponentDefine1> & {
|
|
76
|
-
directives?:
|
|
49
|
+
directives?: CombineSignal<NgDirectiveConfig>;
|
|
77
50
|
};
|
|
78
|
-
type NgResolvedWraaperConfig = Omit<
|
|
51
|
+
type NgResolvedWraaperConfig = Omit<CoreWrapperConfig, ''>;
|
|
79
52
|
type ComponentRawType = Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>;
|
|
80
53
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
types?: Record<string, PiComponentDefaultConfig & {
|
|
90
|
-
/** @deprecated 使用actions */ props?: Record<string, any>;
|
|
91
|
-
}>;
|
|
92
|
-
wrappers?: Record<string, Omit<CoreWrapperConfig1, 'type'> & {
|
|
93
|
-
type: Type<any> | LazyImport<Type<any>>;
|
|
94
|
-
}>;
|
|
95
|
-
defaultConfig?: PiDefaultRawViewFieldConfig;
|
|
96
|
-
/** merge 数组/对象会合并 replace 优先自身/组件/全局 */
|
|
97
|
-
defaultConfigMergeStrategy?: ConfigMergeStrategyObject;
|
|
54
|
+
interface DynamicComponentConfig {
|
|
55
|
+
type: Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>;
|
|
56
|
+
attributes: Signal<ViewAttributes | undefined>;
|
|
57
|
+
events: Signal<Record<string, (event: any) => any> | undefined>;
|
|
58
|
+
inputs: Signal<ViewInputs | undefined>;
|
|
59
|
+
directives?: DirectiveConfig[];
|
|
60
|
+
outputs?: Signal<ViewOutputs>;
|
|
61
|
+
injector?: Injector;
|
|
98
62
|
}
|
|
63
|
+
/** component,wrapper通用定义 */
|
|
64
|
+
type NgComponentDefine = {
|
|
65
|
+
component: Type<any>;
|
|
66
|
+
module?: Type<any>;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
type PiViewConfig = PiCommonConfig<Type<any> | LazyImport<Type<any>> | NgComponentDefine | LazyImport<NgComponentDefine> | LazyMarkType<Type<any>> | LazyMarkType<NgComponentDefine>, Type<any> | LazyImport<Type<any>>>;
|
|
99
70
|
|
|
100
71
|
type NgConvertOptions = SetOptional<ConvertOptions, 'handle'> & {
|
|
101
72
|
builder: typeof FormBuilder;
|
|
@@ -149,27 +120,102 @@ declare class BaseComponent {
|
|
|
149
120
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseComponent, never, never, {}, {}, never, never, true, never>;
|
|
150
121
|
}
|
|
151
122
|
|
|
152
|
-
declare class
|
|
123
|
+
declare class InsertFieldDirective extends BaseComponent {
|
|
153
124
|
#private;
|
|
154
|
-
fieldComponentAnchor: _angular_core.Signal<ViewContainerRef | undefined>;
|
|
155
|
-
field$$: _angular_core.Signal<_piying_view_angular.PiResolvedViewFieldConfig>;
|
|
156
|
-
props$$: _angular_core.Signal<Record<string, any>>;
|
|
157
125
|
createComponent(list?: DynamicComponentConfig[], viewContainerRef?: ViewContainerRef): void;
|
|
158
|
-
|
|
159
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<
|
|
160
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<
|
|
126
|
+
constructor();
|
|
127
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InsertFieldDirective, never>;
|
|
128
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InsertFieldDirective, "[insertField]", ["insertField"], {}, {}, never, never, true, never>;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
declare class NgSchemaHandle extends CoreSchemaHandle<NgSchemaHandle, () => PiResolvedViewFieldConfig> {
|
|
132
|
+
type?: any;
|
|
133
|
+
directives: _piying_view_angular_core.CombineSignal<NgDirectiveConfig>;
|
|
161
134
|
}
|
|
162
135
|
|
|
163
136
|
declare const rawConfig: RawConfigCommon<NgSchemaHandle>;
|
|
164
137
|
|
|
165
|
-
declare function
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
138
|
+
declare function patchAsyncDirective<T>(type: Type<any>, actions?: RawConfigAction<'viewRawConfig', any, any>[], options?: {
|
|
139
|
+
insertIndex?: number;
|
|
140
|
+
}): RawConfigAction<string, T, any>;
|
|
141
|
+
declare function removeDirectives<T>(removeList: (list: Signal<NgDirectiveConfig>[]) => Signal<NgDirectiveConfig>[]): RawConfigAction<string, T, any>;
|
|
142
|
+
declare const directives: {
|
|
143
|
+
set: <T>(items: SetOptional<SetUnWrapper$<NgDirectiveConfig, "inputs" | "outputs" | "attributes" | "events" | "model">, "inputs" | "outputs" | "attributes" | "events" | "model">[]) => RawConfigAction<string, T, any>;
|
|
144
|
+
patch: <T>(items: SetOptional<SetUnWrapper$<NgDirectiveConfig, "inputs" | "outputs" | "attributes" | "events" | "model">, "inputs" | "outputs" | "attributes" | "events" | "model">[]) => RawConfigAction<string, T, any>;
|
|
145
|
+
patchAsync: typeof patchAsyncDirective;
|
|
146
|
+
remove: typeof removeDirectives;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
declare const actions: {
|
|
150
|
+
directives: {
|
|
151
|
+
set: <T>(items: _piying_view_angular_core.SetOptional<_piying_view_angular_core.SetUnWrapper$<_piying_view_angular.NgDirectiveConfig, "inputs" | "outputs" | "attributes" | "events" | "model">, "inputs" | "outputs" | "attributes" | "events" | "model">[]) => _piying_valibot_visit.RawConfigAction<string, T, any>;
|
|
152
|
+
patch: <T>(items: _piying_view_angular_core.SetOptional<_piying_view_angular_core.SetUnWrapper$<_piying_view_angular.NgDirectiveConfig, "inputs" | "outputs" | "attributes" | "events" | "model">, "inputs" | "outputs" | "attributes" | "events" | "model">[]) => _piying_valibot_visit.RawConfigAction<string, T, any>;
|
|
153
|
+
patchAsync: <T>(type: _angular_core.Type<any>, actions?: _piying_valibot_visit.RawConfigAction<"viewRawConfig", any, any>[], options?: {
|
|
154
|
+
insertIndex?: number;
|
|
155
|
+
}) => _piying_valibot_visit.RawConfigAction<string, T, any>;
|
|
156
|
+
remove: <T>(removeList: (list: _angular_core.Signal<_piying_view_angular.NgDirectiveConfig>[]) => _angular_core.Signal<_piying_view_angular.NgDirectiveConfig>[]) => _piying_valibot_visit.RawConfigAction<string, T, any>;
|
|
157
|
+
};
|
|
158
|
+
class: {
|
|
159
|
+
top: <T>(className: clsx.ClassValue, merge?: boolean) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
160
|
+
bottom: <T>(className: clsx.ClassValue, merge?: boolean) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
161
|
+
component: <T>(className: clsx.ClassValue, merge?: boolean) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
162
|
+
asyncTop: <T>(classNameFn: _piying_view_angular_core.AsyncCallback<clsx.ClassValue>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
163
|
+
asyncBottom: <T>(fn: _piying_view_angular_core.AsyncCallback<string>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
164
|
+
asyncComponent: <T>(fn: _piying_view_angular_core.AsyncCallback<string>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
165
|
+
};
|
|
166
|
+
wrappers: {
|
|
167
|
+
set: <T>(wrappers: (_piying_view_angular_core.SetOptional<_piying_view_angular_core.SetUnWrapper$<_piying_view_angular_core.CoreWrapperConfig, "inputs" | "outputs" | "attributes" | "events">, "inputs" | "outputs" | "attributes" | "events"> | string)[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
168
|
+
patchAsync: <T>(type: any, actions?: _piying_view_angular_core.ConfigAction<any>[], options?: {
|
|
169
|
+
insertIndex?: number;
|
|
170
|
+
}) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
171
|
+
remove: <T>(removeList: string[] | ((list: _angular_core.Signal<_piying_view_angular_core.CoreWrapperConfig>[]) => _angular_core.Signal<_piying_view_angular_core.CoreWrapperConfig>[])) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
172
|
+
changeAsync: <T>(indexFn: (list: _angular_core.Signal<_piying_view_angular_core.CoreWrapperConfig>[]) => any, actions: _piying_view_angular_core.ConfigAction<any>[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
173
|
+
};
|
|
174
|
+
inputs: {
|
|
175
|
+
patch: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
176
|
+
set: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
177
|
+
patchAsync: <T>(dataObj: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
178
|
+
remove: <T>(list: string[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
179
|
+
map: <T>(fn: (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
180
|
+
mapAsync: <T>(fn: (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
181
|
+
};
|
|
182
|
+
outputs: {
|
|
183
|
+
patch: <T>(value: Record<string, (...args: any[]) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
184
|
+
set: <T>(value: Record<string, (...args: any[]) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
185
|
+
patchAsync: <T>(dataObj: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (...args: any[]) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
186
|
+
remove: <T>(list: string[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
187
|
+
merge: <T>(outputs: Record<string, (...args: any[]) => void>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
188
|
+
mergeAsync: <T>(outputs: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (...args: any[]) => void>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
189
|
+
map: <T>(fn: (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
190
|
+
mapAsync: <T>(fn: (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
191
|
+
};
|
|
192
|
+
attributes: {
|
|
193
|
+
patch: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
194
|
+
set: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
195
|
+
patchAsync: <T>(dataObj: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
196
|
+
remove: <T>(list: string[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
197
|
+
map: <T>(fn: (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
198
|
+
mapAsync: <T>(fn: (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
199
|
+
};
|
|
200
|
+
events: {
|
|
201
|
+
patch: <T>(value: Record<string, (event: Event) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
202
|
+
set: <T>(value: Record<string, (event: Event) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
203
|
+
patchAsync: <T>(dataObj: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (event: Event) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
204
|
+
remove: <T>(list: string[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
205
|
+
map: <T>(fn: (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
206
|
+
mapAsync: <T>(fn: (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
207
|
+
};
|
|
208
|
+
props: {
|
|
209
|
+
patch: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
210
|
+
set: <T>(value: Record<string, any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
211
|
+
patchAsync: <T>(dataObj: Record<string, (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => any>) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
212
|
+
remove: <T>(list: string[]) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
213
|
+
map: <T>(fn: (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
214
|
+
mapAsync: <T>(fn: (field: _piying_view_angular_core._PiResolvedCommonViewFieldConfig) => (value: any) => any) => _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
215
|
+
};
|
|
216
|
+
};
|
|
170
217
|
|
|
171
218
|
declare class AngularFormBuilder extends FormBuilder<NgSchemaHandle> {
|
|
172
|
-
#private;
|
|
173
219
|
afterResolveConfig(rawConfig: NgSchemaHandle, config: PiResolvedViewFieldConfig): PiResolvedViewFieldConfig;
|
|
174
220
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AngularFormBuilder, never>;
|
|
175
221
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AngularFormBuilder>;
|
|
@@ -199,5 +245,5 @@ declare class AttributesDirective {
|
|
|
199
245
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AttributesDirective, "[attributes]", never, { "attributes": { "alias": "attributes"; "required": true; "isSignal": true; }; "excludes": { "alias": "excludes"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
200
246
|
}
|
|
201
247
|
|
|
202
|
-
export { AngularFormBuilder, AttributesDirective, BaseControl, NgSchemaHandle, PI_COMPONENT_INDEX, PI_COMPONENT_LIST_LISTEN, PI_INPUT_MODEL_TOKEN, PI_INPUT_OPTIONS_TOKEN, PI_INPUT_SCHEMA_TOKEN, PI_VIEW_FIELD_TOKEN, PiyingView, PiyingViewGroup, PiyingViewGroupBase,
|
|
203
|
-
export type { ComponentRawType,
|
|
248
|
+
export { AngularFormBuilder, AttributesDirective, BaseControl, InsertFieldDirective, NgSchemaHandle, PI_COMPONENT_INDEX, PI_COMPONENT_LIST_LISTEN, PI_INPUT_MODEL_TOKEN, PI_INPUT_OPTIONS_TOKEN, PI_INPUT_SCHEMA_TOKEN, PI_VIEW_FIELD_TOKEN, PiyingView, PiyingViewGroup, PiyingViewGroupBase, actions, directives, rawConfig };
|
|
249
|
+
export type { ComponentRawType, NgDirectiveConfig, NgResolvedComponentDefine1, NgResolvedWraaperConfig, PiResolvedViewFieldConfig, PiViewConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@piying/view-angular",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
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": "^
|
|
41
|
+
"@piying/view-angular-core": "^2.0.1",
|
|
42
42
|
"tslib": "^2.3.0"
|
|
43
43
|
},
|
|
44
44
|
"sideEffects": false,
|