@ibyar/core 2.5.0 → 3.0.0
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/annotation/decorators.d.ts +2 -30
- package/annotation/decorators.d.ts.map +1 -1
- package/annotation/decorators.js +2 -89
- package/annotation/decorators.js.map +1 -1
- package/annotation/options.d.ts +11 -6
- package/annotation/options.d.ts.map +1 -1
- package/annotation/options.js.map +1 -1
- package/binding/binding.expressions copy.d.ts +43 -0
- package/binding/binding.expressions copy.d.ts.map +1 -0
- package/binding/binding.expressions copy.js +161 -0
- package/binding/binding.expressions copy.js.map +1 -0
- package/binding/signal.expressions.d.ts +50 -0
- package/binding/signal.expressions.d.ts.map +1 -0
- package/binding/signal.expressions.js +182 -0
- package/binding/signal.expressions.js.map +1 -0
- package/component/component.d.ts +1 -1
- package/component/component.d.ts.map +1 -1
- package/component/component.js +5 -8
- package/component/component.js.map +1 -1
- package/component/custom-element.d.ts +4 -15
- package/component/custom-element.d.ts.map +1 -1
- package/component/custom-element.js +1 -2
- package/component/custom-element.js.map +1 -1
- package/component/initializer.d.ts +39 -27
- package/component/initializer.d.ts.map +1 -1
- package/component/initializer.js +47 -29
- package/component/initializer.js.map +1 -1
- package/component/reflect.d.ts.map +1 -1
- package/component/reflect.js +8 -2
- package/component/reflect.js.map +1 -1
- package/di/provider.d.ts +1 -0
- package/di/provider.d.ts.map +1 -1
- package/di/provider.js +11 -0
- package/di/provider.js.map +1 -1
- package/directive/directive.d.ts +21 -12
- package/directive/directive.d.ts.map +1 -1
- package/directive/directive.js +76 -27
- package/directive/directive.js.map +1 -1
- package/html/deserialize.d.ts.map +1 -1
- package/html/deserialize.js +7 -0
- package/html/deserialize.js.map +1 -1
- package/html/expression.d.ts.map +1 -1
- package/html/expression.js +41 -8
- package/html/expression.js.map +1 -1
- package/linker/change-detector-ref.d.ts +3 -3
- package/linker/change-detector-ref.js.map +1 -1
- package/linker/template-ref.js +3 -3
- package/linker/template-ref.js.map +1 -1
- package/linker/view-container-ref.d.ts.map +1 -1
- package/linker/view-container-ref.js +4 -4
- package/linker/view-container-ref.js.map +1 -1
- package/linker/view-ref.d.ts +2 -2
- package/linker/view-ref.js.map +1 -1
- package/package.json +7 -7
- package/pipe/pipe.d.ts +2 -2
- package/pipe/pipe.js +2 -2
- package/pipe/pipe.js.map +1 -1
- package/signals/factory.d.ts +3 -7
- package/signals/factory.d.ts.map +1 -1
- package/signals/factory.js +6 -12
- package/signals/factory.js.map +1 -1
- package/signals/runtime.d.ts +6 -6
- package/signals/runtime.d.ts.map +1 -1
- package/signals/runtime.js +29 -18
- package/signals/runtime.js.map +1 -1
- package/signals/scopes.d.ts +4 -0
- package/signals/scopes.d.ts.map +1 -0
- package/signals/scopes.js +4 -0
- package/signals/scopes.js.map +1 -0
- package/signals/signals.d.ts +2 -7
- package/signals/signals.d.ts.map +1 -1
- package/signals/signals.js +0 -9
- package/signals/signals.js.map +1 -1
- package/utils/elements-util.d.ts +0 -1
- package/utils/elements-util.d.ts.map +1 -1
- package/utils/elements-util.js +0 -9
- package/utils/elements-util.js.map +1 -1
- package/view/base-view.d.ts.map +1 -1
- package/view/base-view.js +38 -84
- package/view/base-view.js.map +1 -1
- package/view/render.d.ts +5 -3
- package/view/render.d.ts.map +1 -1
- package/view/render.js +64 -30
- package/view/render.js.map +1 -1
- package/view/view.d.ts.map +1 -1
- package/view/view.js +3 -16
- package/view/view.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../../src/core/component/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../../src/core/component/initializer.ts"],"names":[],"mappings":"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"}
|
package/component/initializer.js
CHANGED
|
@@ -1,22 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Signal } from '@ibyar/expressions';
|
|
2
2
|
import { signalScopeFactory } from '../signals/factory.js';
|
|
3
3
|
import { InjectionToken } from '../di/provider.js';
|
|
4
4
|
import { inject } from '../di/inject.js';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export class InputSignal extends Signal {
|
|
6
|
+
options;
|
|
7
|
+
constructor(scope, index, initValue, options) {
|
|
8
|
+
super(scope, index, initValue);
|
|
9
|
+
this.options = options;
|
|
10
|
+
}
|
|
11
|
+
set(value) {
|
|
12
|
+
if (this.options?.transform) {
|
|
13
|
+
value = this.options.transform(value);
|
|
14
|
+
}
|
|
15
|
+
super.set(value);
|
|
10
16
|
}
|
|
11
|
-
;
|
|
12
|
-
return signal;
|
|
13
17
|
}
|
|
14
|
-
function
|
|
15
|
-
return
|
|
18
|
+
export function isInputSignal(signal) {
|
|
19
|
+
return signal instanceof InputSignal;
|
|
20
|
+
}
|
|
21
|
+
export function input(initValue, options) {
|
|
22
|
+
options = Object.assign(options ?? {}, { required: false });
|
|
23
|
+
return signalScopeFactory.factory((scope, index) => new InputSignal(scope, index, initValue, options));
|
|
24
|
+
}
|
|
25
|
+
function requiredInput(options) {
|
|
26
|
+
options = Object.assign(options ?? {}, { required: true });
|
|
27
|
+
return signalScopeFactory.factory((scope, index) => new InputSignal(scope, index, undefined, options));
|
|
16
28
|
}
|
|
17
29
|
input.required = requiredInput;
|
|
30
|
+
export class FormValueSignal extends Signal {
|
|
31
|
+
options;
|
|
32
|
+
constructor(scope, index, initValue, options) {
|
|
33
|
+
super(scope, index, initValue);
|
|
34
|
+
this.options = options;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function formValue(initValue) {
|
|
38
|
+
return signalScopeFactory.factory((scope, index) => new FormValueSignal(scope, index, initValue, { required: false }));
|
|
39
|
+
}
|
|
40
|
+
function requiredFormValue() {
|
|
41
|
+
return signalScopeFactory.factory((scope, index) => new FormValueSignal(scope, index, undefined, { required: true }));
|
|
42
|
+
}
|
|
43
|
+
formValue.required = requiredFormValue;
|
|
18
44
|
export class OutputSignal extends Signal {
|
|
19
45
|
options;
|
|
46
|
+
constructor(scope, index, options) {
|
|
47
|
+
super(scope, index);
|
|
48
|
+
this.options = options;
|
|
49
|
+
}
|
|
20
50
|
emit(value) {
|
|
21
51
|
this.scope.set(this.index, value);
|
|
22
52
|
}
|
|
@@ -24,36 +54,24 @@ export class OutputSignal extends Signal {
|
|
|
24
54
|
export function isOutputSignal(signal) {
|
|
25
55
|
return signal instanceof OutputSignal;
|
|
26
56
|
}
|
|
27
|
-
export function output(
|
|
28
|
-
|
|
29
|
-
signal.options = opts;
|
|
30
|
-
return signal;
|
|
57
|
+
export function output(options) {
|
|
58
|
+
return signalScopeFactory.factory((scope, index) => new OutputSignal(scope, index, options));
|
|
31
59
|
}
|
|
32
|
-
export function model(opts) {
|
|
33
|
-
const signal = signalScopeFactory.signalFn(undefined);
|
|
34
|
-
const node = getReactiveNode(signal);
|
|
35
|
-
if (node) {
|
|
36
|
-
signal.subscribe = node.subscribe.bind(signal);
|
|
37
|
-
}
|
|
38
|
-
return signal;
|
|
39
|
-
}
|
|
40
|
-
function requiredModel(opts) {
|
|
41
|
-
return model(opts);
|
|
42
|
-
}
|
|
43
|
-
model.required = requiredModel;
|
|
44
60
|
export const VIEW_TOKEN = new InjectionToken('VIEW');
|
|
45
61
|
export function view() {
|
|
46
62
|
return inject(VIEW_TOKEN);
|
|
47
63
|
}
|
|
48
64
|
export class ViewChildSignal extends Signal {
|
|
49
65
|
selector;
|
|
66
|
+
constructor(scope, index, selector) {
|
|
67
|
+
super(scope, index);
|
|
68
|
+
this.selector = selector;
|
|
69
|
+
}
|
|
50
70
|
}
|
|
51
71
|
export function isViewChildSignal(signal) {
|
|
52
72
|
return signal instanceof ViewChildSignal;
|
|
53
73
|
}
|
|
54
74
|
export function viewChild(selector) {
|
|
55
|
-
|
|
56
|
-
signal.selector = selector;
|
|
57
|
-
return signal;
|
|
75
|
+
return signalScopeFactory.factory((scope, index) => new ViewChildSignal(scope, index, selector));
|
|
58
76
|
}
|
|
59
77
|
//# sourceMappingURL=initializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../../src/core/component/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../../src/core/component/initializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Signal, SignalScope } from '@ibyar/expressions';\nimport { signalScopeFactory } from '../signals/factory.js';\nimport { InjectionToken } from '../di/provider.js';\nimport { inject } from '../di/inject.js';\nimport { Type } from '../utils/typeof.js';\nimport { HTMLComponent } from './custom-element.js';\nimport { OutputEventInit } from '../annotation/options.js';\n\n\nexport interface InputOptions<T, TransformT> {\n\talias?: string;\n\ttransform?: (v: TransformT) => T;\n}\n\nexport type InputOptionsWithoutTransform<T> = Omit<InputOptions<T, T>, 'transform'>;\n\nexport type InputOptionsWithTransform<T, TransformT> = Required<Pick<InputOptions<T, TransformT>, 'transform'>> & InputOptions<T, TransformT>;\n\nexport interface InputWithTransform<T, TransformT = T> extends Signal<T> {\n\toptions?: InputOptions<T, TransformT>;\n}\n\nexport interface InputWithoutTransform<T> extends InputWithTransform<T, T> {\n\toptions?: InputOptionsWithoutTransform<T>;\n}\n\nexport class InputSignal<T, TransformT = T> extends Signal<T> implements InputWithoutTransform<T> {\n\n\n\tconstructor(scope: SignalScope, index: number, initValue?: T, public options?: InputOptions<T, TransformT> & { required?: boolean }) {\n\t\tsuper(scope, index, initValue);\n\t}\n\n\toverride set(value: T): void;\n\toverride set(value: TransformT): void;\n\toverride set(value: T | TransformT): void {\n\t\tif (this.options?.transform) {\n\t\t\tvalue = this.options.transform(value as TransformT);\n\t\t}\n\t\tsuper.set(value as T);\n\t}\n}\n\nexport function isInputSignal<T = any>(signal: any): signal is InputSignal<T> {\n\treturn signal instanceof InputSignal;\n}\n\nexport function input<T>(): InputWithoutTransform<T>;\nexport function input<T, TransformT = T>(initValue: T, options: InputOptionsWithTransform<T, TransformT>): InputWithTransform<T, TransformT>;\nexport function input<T>(initValue: T, options?: InputOptionsWithoutTransform<T>): InputWithoutTransform<T>;\nexport function input<T, TransformT = T>(initValue?: T, options?: InputOptions<T, TransformT>): InputWithTransform<T, TransformT>;\nexport function input<T, TransformT = T>(initValue?: T, options?: InputOptions<T, TransformT>): InputWithTransform<T, TransformT> {\n\toptions = Object.assign(options ?? {}, { required: false });\n\treturn signalScopeFactory.factory((scope, index) => new InputSignal<T, TransformT>(scope, index, initValue, options));\n}\n\nfunction requiredInput<T, TransformT = T>(options?: InputOptions<T, TransformT>): InputWithTransform<T, TransformT> {\n\toptions = Object.assign(options ?? {}, { required: true });\n\treturn signalScopeFactory.factory((scope, index) => new InputSignal<T, TransformT>(scope, index, undefined, options));\n}\n\ninput.required = requiredInput;\n\nexport class FormValueSignal<T> extends Signal<T> {\n\n\tconstructor(scope: SignalScope, index: number, initValue?: T, public options?: { required?: boolean }) {\n\t\tsuper(scope, index, initValue);\n\t}\n\n}\n\nexport function formValue<T>(initValue?: T): FormValueSignal<T> {\n\treturn signalScopeFactory.factory((scope, index) => new FormValueSignal<T>(scope, index, initValue, { required: false }));\n}\n\nfunction requiredFormValue<T>(): FormValueSignal<T> {\n\treturn signalScopeFactory.factory((scope, index) => new FormValueSignal<T>(scope, index, undefined, { required: true }));\n}\n\nformValue.required = requiredFormValue;\n\ntype OutputOption = OutputEventInit & { alias?: string };\n\nexport interface OutputSignal<T> extends Signal<T> {\n\tset: never;\n\tupdate: never;\n}\n\nexport class OutputSignal<T> extends Signal<T> {\n\n\tconstructor(scope: SignalScope, index: number, public options?: OutputOption) {\n\t\tsuper(scope, index);\n\t}\n\n\temit(value: T) {\n\t\tthis.scope.set(this.index, value);\n\t}\n}\n\nexport function isOutputSignal<T = any>(signal: any): signal is OutputSignal<T> {\n\treturn signal instanceof OutputSignal;\n}\n\nexport function output<T>(options?: OutputOption): OutputSignal<T> {\n\treturn signalScopeFactory.factory((scope, index) => new OutputSignal<T>(scope, index, options));\n}\n\nexport const VIEW_TOKEN = new InjectionToken<HTMLElement>('VIEW');\n\nexport function view(): HTMLElement;\nexport function view<T extends keyof HTMLElementTagNameMap>(extend: T): HTMLElementTagNameMap[T];\nexport function view<T>(type: Type<T>): HTMLComponent<T>;\nexport function view<T, V extends keyof HTMLElementTagNameMap>(type: Type<T>, extend: V): HTMLComponent<T> & HTMLElementTagNameMap[V];\nexport function view(): any {\n\treturn inject(VIEW_TOKEN)!;\n}\n\nexport class ViewChildSignal<T> extends Signal<T> {\n\n\tconstructor(scope: SignalScope, index: number, public selector: string | Type<T> | HTMLElement | keyof HTMLElementTagNameMap) {\n\t\tsuper(scope, index);\n\t}\n}\n\nexport function isViewChildSignal<T = any>(signal: any): signal is ViewChildSignal<T> {\n\treturn signal instanceof ViewChildSignal;\n}\n\nexport function viewChild<T extends HTMLElement>(selector: Type<T>): Signal<T>;\nexport function viewChild<T>(selector: Type<T>): Signal<HTMLComponent<T>>;\nexport function viewChild<T extends keyof HTMLElementTagNameMap>(selector: T): Signal<HTMLElementTagNameMap[T]>;\nexport function viewChild<T extends HTMLElement>(selector: string): Signal<T>;\nexport function viewChild<T>(selector: string | Type<T> | HTMLElement | keyof HTMLElementTagNameMap): Signal<T> {\n\treturn signalScopeFactory.factory((scope, index) => new ViewChildSignal<T>(scope, index, selector));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/core/component/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,WAAW;IACJ,aAAa,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM;gBAAnD,aAAa,EAAE,MAAM,EAAY,SAAS,CAAC,EAAE,MAAM,YAAA;IACtE,IAAI,aAAa,IAAI,MAAM,CAE1B;CACD;AAED,qBAAa,gBAAiB,SAAQ,WAAW;CAEhD;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IACY,OAAO,CAAC,EAAE,eAAe;gBAA1E,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAS,OAAO,CAAC,EAAE,eAAe,YAAA;CAGtF;AAED,qBAAa,QAAQ;IAEZ,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAO,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,wBAAwB;IAC5F,YAAY,CAAC,EAAE,YAAY;gBAF3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAO,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,wBAAwB,EAC5F,YAAY,CAAC,EAAE,YAAY,YAAA;CAEnC;AAED,qBAAa,WAAW;IACJ,SAAS,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM,EAAE;IAAS,iBAAiB,EAAE,MAAM;gBAA1E,SAAS,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,EAAE,EAAS,iBAAiB,EAAE,MAAM;CAC7F;AAED,qBAAa,cAAc;IACP,iBAAiB,EAAE,MAAM;IAAS,gBAAgB,EAAE,MAAM;gBAA1D,iBAAiB,EAAE,MAAM,EAAS,gBAAgB,EAAE,MAAM;CAC7E;AAED,MAAM,WAAW,iBAAiB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAGD,qBAAa,iBAAiB;IAE7B,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa;IAI7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/core/component/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE9E,qBAAa,WAAW;IACJ,aAAa,EAAE,MAAM;IAAE,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM;gBAAnD,aAAa,EAAE,MAAM,EAAY,SAAS,CAAC,EAAE,MAAM,YAAA;IACtE,IAAI,aAAa,IAAI,MAAM,CAE1B;CACD;AAED,qBAAa,gBAAiB,SAAQ,WAAW;CAEhD;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IACY,OAAO,CAAC,EAAE,eAAe;gBAA1E,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAS,OAAO,CAAC,EAAE,eAAe,YAAA;CAGtF;AAED,qBAAa,QAAQ;IAEZ,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAO,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,wBAAwB;IAC5F,YAAY,CAAC,EAAE,YAAY;gBAF3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAO,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,wBAAwB,EAC5F,YAAY,CAAC,EAAE,YAAY,YAAA;CAEnC;AAED,qBAAa,WAAW;IACJ,SAAS,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM,EAAE;IAAS,iBAAiB,EAAE,MAAM;gBAA1E,SAAS,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,EAAE,EAAS,iBAAiB,EAAE,MAAM;CAC7F;AAED,qBAAa,cAAc;IACP,iBAAiB,EAAE,MAAM;IAAS,gBAAgB,EAAE,MAAM;gBAA1D,iBAAiB,EAAE,MAAM,EAAS,gBAAgB,EAAE,MAAM;CAC7E;AAED,MAAM,WAAW,iBAAiB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAGD,qBAAa,iBAAiB;IAE7B,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa;IAI7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAO9E,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe;IAOzG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM;IAIpE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,WAAW,GAAG,wBAAwB,EAAE,YAAY,CAAC,EAAE,YAAY;IAI/J,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,WAAW,GAAG,wBAAwB;IAIrI,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAIxG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;CAG9F"}
|
package/component/reflect.js
CHANGED
|
@@ -52,10 +52,16 @@ export class ReflectComponents {
|
|
|
52
52
|
return metadataHoler.get(constructor[Symbol.metadata]);
|
|
53
53
|
}
|
|
54
54
|
static addInput(metadata, modelName, viewName) {
|
|
55
|
-
(metadata.inputs
|
|
55
|
+
let inputs = (metadata.inputs ?? []);
|
|
56
|
+
inputs = inputs.filter(i => i.modelProperty !== modelName);
|
|
57
|
+
inputs.push(new InputPropertyRef(modelName, viewName));
|
|
58
|
+
metadata.inputs = inputs;
|
|
56
59
|
}
|
|
57
60
|
static addOutput(metadata, modelName, viewName, options) {
|
|
58
|
-
(metadata.outputs
|
|
61
|
+
let outputs = (metadata.outputs ?? []);
|
|
62
|
+
outputs = outputs.filter(i => i.modelProperty !== modelName);
|
|
63
|
+
outputs.push(new OutputPropertyRef(modelName, viewName, options));
|
|
64
|
+
metadata.outputs = outputs;
|
|
59
65
|
}
|
|
60
66
|
static setComponentView(metadata, modelName) {
|
|
61
67
|
metadata.view = modelName;
|
package/component/reflect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/core/component/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4C,MAAM,mBAAmB,CAAC;AAG5F,MAAM,OAAO,WAAW;IACJ;IAAiC;IAApD,YAAmB,aAAqB,EAAY,SAAkB;QAAnD,kBAAa,GAAb,aAAa,CAAQ;QAAY,cAAS,GAAT,SAAS,CAAS;IAAI,CAAC;IAC3E,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;IAC7C,CAAC;CACD;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAAW;CAEhD;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACY;IAA7D,YAAY,aAAqB,EAAE,QAAiB,EAAS,OAAyB;QACrF,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAD6B,YAAO,GAAP,OAAO,CAAkB;IAEtF,CAAC;CACD;AAED,MAAM,OAAO,QAAQ;IAEZ;IACA;IACA;IAHR,YACQ,SAAiB,EACjB,QAA4F,EAC5F,YAA2B;QAF3B,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAoF;QAC5F,iBAAY,GAAZ,YAAY,CAAe;IAC/B,CAAC;CACL;AAED,MAAM,OAAO,WAAW;IACJ;IAA0B;IAAuB;IAApE,YAAmB,SAAiB,EAAS,IAAc,EAAS,iBAAyB;QAA1E,cAAS,GAAT,SAAS,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAU;QAAS,sBAAiB,GAAjB,iBAAiB,CAAQ;IAAI,CAAC;CAClG;AAED,MAAM,OAAO,cAAc;IACP;IAAkC;IAArD,YAAmB,iBAAyB,EAAS,gBAAwB;QAA1D,sBAAiB,GAAjB,iBAAiB,CAAQ;QAAS,qBAAgB,GAAhB,gBAAgB,CAAQ;IAAI,CAAC;CAClF;AAOD,MAAM,OAAO,iBAAiB;IAE7B,MAAM,CAAC,WAAW,CAAC,WAA0B;QAC5C,OAAO,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAyB,EAAE,SAAiB,EAAE,QAAgB;QAC7E,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/core/component/reflect.ts"],"names":[],"mappings":"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","sourcesContent":["import { metadataHoler, type MetadataClass, type MetadataContext } from '@ibyar/decorators';\nimport type { ChildOptions, OutputEventInit } from '../annotation/options.js';\n\nexport class PropertyRef {\n\tconstructor(public modelProperty: string, protected _viewName?: string) { }\n\tget viewAttribute(): string {\n\t\treturn this._viewName || this.modelProperty;\n\t}\n}\n\nexport class InputPropertyRef extends PropertyRef {\n\n}\n\nexport class OutputPropertyRef extends PropertyRef {\n\tconstructor(modelProperty: string, viewName?: string, public options?: OutputEventInit) {\n\t\tsuper(modelProperty, viewName);\n\t}\n}\n\nexport class ChildRef {\n\tconstructor(\n\t\tpublic modelName: string,\n\t\tpublic selector: string | { new(): HTMLElement; prototype: HTMLElement } | CustomElementConstructor,\n\t\tpublic childOptions?: ChildOptions\n\t) { }\n}\n\nexport class ListenerRef {\n\tconstructor(public eventName: string, public args: string[], public modelCallbackName: string) { }\n}\n\nexport class HostBindingRef {\n\tconstructor(public modelPropertyName: string, public hostPropertyName: string) { }\n}\n\nexport interface BootstrapMetadata {\n\t[key: string]: any;\n}\n\n\nexport class ReflectComponents {\n\n\tstatic getMetaDate(constructor: MetadataClass) {\n\t\treturn metadataHoler.get(constructor[Symbol.metadata]);\n\t}\n\n\tstatic addInput(metadata: MetadataContext, modelName: string, viewName: string) {\n\t\tlet inputs = (metadata.inputs ?? []) as InputPropertyRef[];\n\t\tinputs = inputs.filter(i => i.modelProperty !== modelName);\n\t\tinputs.push(new InputPropertyRef(modelName, viewName));\n\t\tmetadata.inputs = inputs;\n\t}\n\n\tstatic addOutput(metadata: MetadataContext, modelName: string, viewName: string, options: OutputEventInit) {\n\t\tlet outputs = (metadata.outputs ?? []) as OutputPropertyRef[];\n\t\toutputs = outputs.filter(i => i.modelProperty !== modelName);\n\t\toutputs.push(new OutputPropertyRef(modelName, viewName, options));\n\t\tmetadata.outputs = outputs;\n\t}\n\n\tstatic setComponentView(metadata: MetadataContext, modelName: string) {\n\t\tmetadata.view = modelName;\n\t}\n\n\tstatic addViewChild(metadata: MetadataContext, modelName: string, selector: string | typeof HTMLElement | CustomElementConstructor, childOptions?: ChildOptions) {\n\t\t(metadata.viewChild ??= []).push(new ChildRef(modelName, selector, childOptions));\n\t}\n\n\tstatic addViewChildren(metadata: MetadataContext, modelName: string, selector: string | typeof HTMLElement | CustomElementConstructor) {\n\t\t(metadata.ViewChildren ??= []).push(new ChildRef(modelName, selector));\n\t}\n\n\tstatic addHostListener(metadata: MetadataContext, propertyKey: string, eventName: string, args: string[]) {\n\t\t(metadata.hostListeners ??= []).push(new ListenerRef(eventName, args, propertyKey));\n\t}\n\n\tstatic addHostBinding(metadata: MetadataContext, propertyKey: string, hostPropertyName: string) {\n\t\t(metadata.hostBindings ??= []).push(new HostBindingRef(propertyKey, hostPropertyName));\n\t}\n}\n"]}
|
package/di/provider.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AbstractType, Type } from '../utils/typeof.js';
|
|
|
2
2
|
export declare class InjectionToken<T> {
|
|
3
3
|
token: string;
|
|
4
4
|
constructor(token: string);
|
|
5
|
+
withType<V>(): InjectionToken<V>;
|
|
5
6
|
}
|
|
6
7
|
export type Provider<T> = Type<T> | AbstractType<T> | InjectionToken<T>;
|
|
7
8
|
export declare class InjectionProvider {
|
package/di/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/di/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG7D,qBAAa,cAAc,CAAC,CAAC;IACT,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/di/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG7D,qBAAa,cAAc,CAAC,CAAC;IACT,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;IAEhC,QAAQ,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;CAGhC;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAIxE,qBAAa,iBAAiB;IAKjB,OAAO,CAAC,MAAM,CAAC;IAH3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;gBAE1C,MAAM,CAAC,EAAE,iBAAiB,YAAA;IAE9C,IAAI,IAAI,iBAAiB;IAIzB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK;IAIhE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,iBAAiB,GAAG,KAAK;IAI1E,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAQpD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;IAmBtD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAIhE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIrD,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAQ9C,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAOlD,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;CAUxC"}
|
package/di/provider.js
CHANGED
|
@@ -3,6 +3,9 @@ export class InjectionToken {
|
|
|
3
3
|
constructor(token) {
|
|
4
4
|
this.token = token;
|
|
5
5
|
}
|
|
6
|
+
withType() {
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
6
9
|
}
|
|
7
10
|
const REQUIRE_INIT = Symbol('REQUIRE_INIT');
|
|
8
11
|
export class InjectionProvider {
|
|
@@ -30,6 +33,14 @@ export class InjectionProvider {
|
|
|
30
33
|
}
|
|
31
34
|
getInstance(type) {
|
|
32
35
|
let instance = this.types.get(type);
|
|
36
|
+
if (instance === undefined) {
|
|
37
|
+
for (const providerType of this.types.keys()) {
|
|
38
|
+
if (type.prototype instanceof providerType) {
|
|
39
|
+
instance = this.types.get(providerType);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
33
44
|
if (instance === REQUIRE_INIT) {
|
|
34
45
|
instance = new type();
|
|
35
46
|
this.types.set(type, instance);
|
package/di/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/di/provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IACP;IAAnB,YAAmB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/di/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractType, Type } from '../utils/typeof.js';\n\n\nexport class InjectionToken<T> {\n\tconstructor(public token: string) { }\n\n\twithType<V>(): InjectionToken<V> {\n\t\treturn this;\n\t}\n}\n\nexport type Provider<T> = Type<T> | AbstractType<T> | InjectionToken<T>;\n\nconst REQUIRE_INIT = Symbol('REQUIRE_INIT');\n\nexport class InjectionProvider {\n\n\tprivate readonly types = new Map<Type<any> | AbstractType<any>, any>();\n\tprivate readonly tokens = new Map<InjectionToken<any>, any>();\n\n\tconstructor(private parent?: InjectionProvider) { }\n\n\tfork(): InjectionProvider {\n\t\treturn new InjectionProvider(this);\n\t}\n\n\thasToken<T>(token: InjectionToken<T>): InjectionProvider | false {\n\t\treturn this.tokens.has(token) ? this : false;\n\t}\n\n\thasType<T>(type: Type<any> | AbstractType<any>): InjectionProvider | false {\n\t\treturn this.types.has(type) ? this : false;\n\t}\n\n\tgetToken<T>(token: InjectionToken<T>): T | undefined {\n\t\tlet value = this.tokens.get(token);\n\t\tif (value === undefined && this.parent) {\n\t\t\tvalue = this.parent.getToken(token);\n\t\t}\n\t\treturn value;\n\t}\n\n\tgetInstance<T>(type: Type<any> | AbstractType<any>): T {\n\t\tlet instance = this.types.get(type);\n\t\tif (instance === undefined) {\n\t\t\tfor (const providerType of this.types.keys()) {\n\t\t\t\tif (type.prototype instanceof providerType) {\n\t\t\t\t\tinstance = this.types.get(providerType);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (instance === REQUIRE_INIT) {\n\t\t\tinstance = new (type as Type<any>)();\n\t\t\tthis.types.set(type, instance);\n\t\t} else if (instance === undefined && this.parent) {\n\t\t\tinstance = this.parent.getInstance(type);\n\t\t}\n\t\treturn instance;\n\t}\n\n\tsetType<T>(type: Type<any> | AbstractType<any>, value?: T): void {\n\t\tthis.types.set(type, value ?? REQUIRE_INIT);\n\t}\n\n\tsetToken<T>(token: InjectionToken<T>, value: T): void {\n\t\tthis.tokens.set(token, value);\n\t}\n\n\tprovide<T>(typeOrToken: Provider<T>, value?: T) {\n\t\tif (typeOrToken instanceof InjectionToken) {\n\t\t\tthis.setToken(typeOrToken, value);\n\t\t} else {\n\t\t\tthis.setType(typeOrToken, value ?? REQUIRE_INIT as unknown as T);\n\t\t}\n\t}\n\n\tinject<T>(typeOrToken: Provider<T>): T | undefined {\n\t\tif (typeOrToken instanceof InjectionToken) {\n\t\t\treturn this.getToken(typeOrToken);\n\t\t}\n\t\treturn this.getInstance(typeOrToken);\n\t}\n\n\tclear<T>(typeOrToken: Provider<T>): void {\n\t\tif (typeOrToken instanceof InjectionToken) {\n\t\t\tconst provider = this.parent?.hasToken(typeOrToken) || this;\n\t\t\tprovider.tokens.delete(typeOrToken);\n\t\t} else {\n\t\t\tconst provider = this.parent?.hasType(typeOrToken) || this;\n\t\t\tprovider.types.delete(typeOrToken);\n\t\t}\n\t}\n\n}\n"]}
|
package/directive/directive.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import { Context, ReactiveScope, ReadOnlyScope, Scope, ScopeSubscription, ValueChangedCallback } from '@ibyar/expressions';
|
|
1
2
|
import { HTMLComponent } from '../component/custom-element.js';
|
|
3
|
+
import { InjectionToken } from '../di/provider.js';
|
|
2
4
|
import { TemplateRef } from '../linker/template-ref.js';
|
|
3
5
|
import { ViewContainerRef } from '../linker/view-container-ref.js';
|
|
4
6
|
import { AuroraZone } from '../zone/zone.js';
|
|
7
|
+
export declare const NATIVE_HOST_TOKEN: InjectionToken<HTMLElement>;
|
|
8
|
+
export declare const DIRECTIVE_HOST_TOKEN: InjectionToken<HTMLComponent<any> | StructuralDirective>;
|
|
9
|
+
export declare const SUCCESSORS_TOKEN: InjectionToken<Record<string, TemplateRef>>;
|
|
5
10
|
/**
|
|
6
11
|
* A structural directive selector as '*if' '*for'
|
|
7
12
|
*/
|
|
8
13
|
export declare class StructuralDirective {
|
|
14
|
+
protected zone: AuroraZone;
|
|
9
15
|
protected templateRef: TemplateRef;
|
|
10
|
-
protected viewContainerRef: ViewContainerRef;
|
|
11
16
|
protected host: HTMLComponent<any> | StructuralDirective;
|
|
12
|
-
protected _zone: AuroraZone;
|
|
13
17
|
private successors;
|
|
14
|
-
|
|
18
|
+
protected viewContainerRef: ViewContainerRef;
|
|
15
19
|
getSuccessor(name: string): TemplateRef | undefined;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
@@ -19,15 +23,20 @@ export declare class StructuralDirective {
|
|
|
19
23
|
*/
|
|
20
24
|
export declare class AttributeDirective {
|
|
21
25
|
protected el: HTMLElement;
|
|
22
|
-
protected
|
|
23
|
-
constructor(el: HTMLElement, _zone: AuroraZone);
|
|
26
|
+
protected zone: AuroraZone;
|
|
24
27
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
export declare class ReactiveSignalScope<T extends Context> extends ReactiveScope<T> {
|
|
29
|
+
static for<T extends Context>(context: T, propertyKeys?: (keyof T)[]): ReactiveSignalScope<T>;
|
|
30
|
+
static blockScope<T extends Context>(propertyKeys?: (keyof T)[]): ReactiveSignalScope<T>;
|
|
31
|
+
static scopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): Scope<{
|
|
32
|
+
this: T;
|
|
33
|
+
}>;
|
|
34
|
+
static readOnlyScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): ReadOnlyScope<{
|
|
35
|
+
this: T;
|
|
36
|
+
}>;
|
|
37
|
+
get(propertyKey: keyof T): any;
|
|
38
|
+
set(propertyKey: keyof T, newValue: any, receiver?: any): boolean;
|
|
39
|
+
subscribe(propertyKey: keyof T, callback: ValueChangedCallback): ScopeSubscription<T>;
|
|
40
|
+
unsubscribe(propertyKey?: keyof T | undefined, subscription?: ScopeSubscription<T> | undefined): void;
|
|
32
41
|
}
|
|
33
42
|
//# sourceMappingURL=directive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../../src/core/directive/directive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../../src/core/directive/directive.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EACP,aAAa,EAAE,aAAa,EAAE,KAAK,EACnC,iBAAiB,EAAE,oBAAoB,EACvC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,iBAAiB,6BAAiD,CAAC;AAChF,eAAO,MAAM,oBAAoB,0DAAiF,CAAC;AACnH,eAAO,MAAM,gBAAgB,6CAAsE,CAAC;AAEpG;;GAEG;AACH,qBAAa,mBAAmB;IAC/B,SAAS,CAAC,IAAI,aAAsB;IACpC,SAAS,CAAC,WAAW,cAAuB;IAC5C,SAAS,CAAC,IAAI,2CAAiC;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,SAAS,CAAC,gBAAgB,mBAA4B;IAEtD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAInD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC9B,SAAS,CAAC,EAAE,cAA8B;IAC1C,SAAS,CAAC,IAAI,aAAsB;CACpC;AAGD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAE3E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAIpE,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAI/D,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IAUzE,MAAM,CAAC,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IAUxE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;IAQxB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO;IAUjE,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,CAAC;IASrF,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI;CAW9G"}
|
package/directive/directive.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
+
import { isReactive, isSignal, ReactiveScope, ReadOnlyScope, Scope } from '@ibyar/expressions';
|
|
2
|
+
import { inject } from '../di/inject.js';
|
|
3
|
+
import { InjectionToken } from '../di/provider.js';
|
|
4
|
+
import { TemplateRef } from '../linker/template-ref.js';
|
|
5
|
+
import { ViewContainerRef } from '../linker/view-container-ref.js';
|
|
6
|
+
import { AuroraZone } from '../zone/zone.js';
|
|
7
|
+
export const NATIVE_HOST_TOKEN = new InjectionToken('NATIVE_HOST');
|
|
8
|
+
export const DIRECTIVE_HOST_TOKEN = new InjectionToken('DIRECTIVE_HOST');
|
|
9
|
+
export const SUCCESSORS_TOKEN = new InjectionToken('SUCCESSORS_TOKEN');
|
|
1
10
|
/**
|
|
2
11
|
* A structural directive selector as '*if' '*for'
|
|
3
12
|
*/
|
|
4
13
|
export class StructuralDirective {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
host;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(templateRef, viewContainerRef, host, _zone, successors) {
|
|
11
|
-
this.templateRef = templateRef;
|
|
12
|
-
this.viewContainerRef = viewContainerRef;
|
|
13
|
-
this.host = host;
|
|
14
|
-
this._zone = _zone;
|
|
15
|
-
this.successors = successors;
|
|
16
|
-
}
|
|
14
|
+
zone = inject(AuroraZone);
|
|
15
|
+
templateRef = inject(TemplateRef);
|
|
16
|
+
host = inject(DIRECTIVE_HOST_TOKEN);
|
|
17
|
+
successors = inject(SUCCESSORS_TOKEN);
|
|
18
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
17
19
|
getSuccessor(name) {
|
|
18
20
|
return this.successors[name];
|
|
19
21
|
}
|
|
@@ -22,22 +24,69 @@ export class StructuralDirective {
|
|
|
22
24
|
* An attributes directive selector as '[class] [style]'
|
|
23
25
|
*/
|
|
24
26
|
export class AttributeDirective {
|
|
25
|
-
el;
|
|
26
|
-
|
|
27
|
-
constructor(el, _zone) {
|
|
28
|
-
this.el = el;
|
|
29
|
-
this._zone = _zone;
|
|
30
|
-
}
|
|
27
|
+
el = inject(NATIVE_HOST_TOKEN);
|
|
28
|
+
zone = inject(AuroraZone);
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
export class ReactiveSignalScope extends ReactiveScope {
|
|
31
|
+
static for(context, propertyKeys) {
|
|
32
|
+
return new ReactiveSignalScope(context, propertyKeys);
|
|
33
|
+
}
|
|
34
|
+
static blockScope(propertyKeys) {
|
|
35
|
+
return new ReactiveSignalScope({}, propertyKeys);
|
|
36
|
+
}
|
|
37
|
+
static scopeForThis(ctx, propertyKeys) {
|
|
38
|
+
const thisScope = ReactiveSignalScope.for(ctx, propertyKeys);
|
|
39
|
+
const thisCtx = {
|
|
40
|
+
'this': ctx,
|
|
41
|
+
};
|
|
42
|
+
const rootScope = Scope.for(thisCtx, ['this']);
|
|
43
|
+
rootScope.setInnerScope('this', thisScope);
|
|
44
|
+
return rootScope;
|
|
45
|
+
}
|
|
46
|
+
static readOnlyScopeForThis(ctx, propertyKeys) {
|
|
47
|
+
const thisScope = ReactiveSignalScope.for(ctx, propertyKeys);
|
|
48
|
+
const thisCtx = {
|
|
49
|
+
'this': ctx,
|
|
50
|
+
};
|
|
51
|
+
const rootScope = ReadOnlyScope.for(thisCtx, ['this']);
|
|
52
|
+
rootScope.setInnerScope('this', thisScope);
|
|
53
|
+
return rootScope;
|
|
54
|
+
}
|
|
55
|
+
get(propertyKey) {
|
|
56
|
+
const value = super.get(propertyKey);
|
|
57
|
+
if (isReactive(value)) {
|
|
58
|
+
return value.get();
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
set(propertyKey, newValue, receiver) {
|
|
63
|
+
const value = Reflect.get(this._ctx, propertyKey);
|
|
64
|
+
if (isSignal(value)) {
|
|
65
|
+
value.set(newValue);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return super.set(propertyKey, newValue, receiver);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
subscribe(propertyKey, callback) {
|
|
73
|
+
const value = Reflect.get(this._ctx, propertyKey);
|
|
74
|
+
if (isReactive(value)) {
|
|
75
|
+
return value.subscribe(callback);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return super.subscribe(propertyKey, callback);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
unsubscribe(propertyKey, subscription) {
|
|
82
|
+
if (propertyKey) {
|
|
83
|
+
const value = Reflect.get(this._ctx, propertyKey);
|
|
84
|
+
if (isReactive(value)) {
|
|
85
|
+
value.getScope().unsubscribe(value.getIndex(), subscription);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
super.unsubscribe(propertyKey, subscription);
|
|
41
90
|
}
|
|
42
91
|
}
|
|
43
92
|
//# sourceMappingURL=directive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../../../src/core/directive/directive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../../../src/core/directive/directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tContext, isReactive, isSignal,\n\tReactiveScope, ReadOnlyScope, Scope,\n\tScopeSubscription, ValueChangedCallback\n} from '@ibyar/expressions';\nimport { HTMLComponent } from '../component/custom-element.js';\nimport { inject } from '../di/inject.js';\nimport { InjectionToken } from '../di/provider.js';\nimport { TemplateRef } from '../linker/template-ref.js';\nimport { ViewContainerRef } from '../linker/view-container-ref.js';\nimport { AuroraZone } from '../zone/zone.js';\n\nexport const NATIVE_HOST_TOKEN = new InjectionToken<HTMLElement>('NATIVE_HOST');\nexport const DIRECTIVE_HOST_TOKEN = new InjectionToken<HTMLComponent<any> | StructuralDirective>('DIRECTIVE_HOST');\nexport const SUCCESSORS_TOKEN = new InjectionToken<Record<string, TemplateRef>>('SUCCESSORS_TOKEN');\n\n/**\n * A structural directive selector as '*if' '*for'\n */\nexport class StructuralDirective {\n\tprotected zone = inject(AuroraZone);\n\tprotected templateRef = inject(TemplateRef);\n\tprotected host = inject(DIRECTIVE_HOST_TOKEN)!;\n\tprivate successors = inject(SUCCESSORS_TOKEN)!;\n\tprotected viewContainerRef = inject(ViewContainerRef);\n\n\tgetSuccessor(name: string): TemplateRef | undefined {\n\t\treturn this.successors[name];\n\t}\n\n}\n\n/**\n * An attributes directive selector as '[class] [style]'\n */\nexport class AttributeDirective {\n\tprotected el = inject(NATIVE_HOST_TOKEN)!;\n\tprotected zone = inject(AuroraZone);\n}\n\n\nexport class ReactiveSignalScope<T extends Context> extends ReactiveScope<T> {\n\n\tstatic for<T extends Context>(context: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveSignalScope(context, propertyKeys);\n\t}\n\n\tstatic blockScope<T extends Context>(propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveSignalScope({} as T, propertyKeys);\n\t}\n\n\tstatic scopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveSignalScope.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = Scope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\n\tstatic readOnlyScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveSignalScope.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = ReadOnlyScope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\n\toverride get(propertyKey: keyof T) {\n\t\tconst value = super.get(propertyKey);\n\t\tif (isReactive(value)) {\n\t\t\treturn value.get();\n\t\t}\n\t\treturn value;\n\t}\n\n\toverride set(propertyKey: keyof T, newValue: any, receiver?: any): boolean {\n\t\tconst value = Reflect.get(this._ctx, propertyKey) as any;\n\t\tif (isSignal(value)) {\n\t\t\tvalue.set(newValue);\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn super.set(propertyKey, newValue, receiver);\n\t\t}\n\t}\n\n\toverride subscribe(propertyKey: keyof T, callback: ValueChangedCallback): ScopeSubscription<T> {\n\t\tconst value = Reflect.get(this._ctx, propertyKey) as any;\n\t\tif (isReactive(value)) {\n\t\t\treturn value.subscribe(callback);\n\t\t} else {\n\t\t\treturn super.subscribe(propertyKey, callback);\n\t\t}\n\t}\n\n\toverride unsubscribe(propertyKey?: keyof T | undefined, subscription?: ScopeSubscription<T> | undefined): void {\n\t\tif (propertyKey) {\n\t\t\tconst value = Reflect.get(this._ctx, propertyKey) as any;\n\t\t\tif (isReactive(value)) {\n\t\t\t\tvalue.getScope().unsubscribe(value.getIndex(), subscription);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tsuper.unsubscribe(propertyKey, subscription);\n\t}\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/core/html/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,EACgD,OAAO,EAI7D,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/core/html/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,EACgD,OAAO,EAI7D,MAAM,iBAAiB,CAAC;AAqFzB,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,QAMvD"}
|
package/html/deserialize.js
CHANGED
|
@@ -18,6 +18,11 @@ function deserializeLiveAttribute(attr) {
|
|
|
18
18
|
attr.expression = deserialize(attr.expression);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
function deserializeAssignmentAttributeUpdateElement(attr) {
|
|
22
|
+
if (attr.expression) {
|
|
23
|
+
attr.expression = deserialize(attr.expression);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
21
26
|
function deserializeLiveAttributeUpdateElement(attr) {
|
|
22
27
|
if (attr.expression) {
|
|
23
28
|
attr.expression = deserialize(attr.expression);
|
|
@@ -34,6 +39,7 @@ function deserializeAttributeDirectives(directive) {
|
|
|
34
39
|
directive.outputs?.forEach(deserializeOutputExpression);
|
|
35
40
|
directive.twoWayBinding?.forEach(deserializeLiveAttribute);
|
|
36
41
|
directive.templateAttrs?.forEach(deserializeLiveAttributeUpdateElement);
|
|
42
|
+
directive.attributes?.forEach(deserializeAssignmentAttributeUpdateElement);
|
|
37
43
|
}
|
|
38
44
|
function deserializeBaseNode(base) {
|
|
39
45
|
base.inputs?.forEach(deserializeLiveAttributeUpdateElement);
|
|
@@ -41,6 +47,7 @@ function deserializeBaseNode(base) {
|
|
|
41
47
|
base.twoWayBinding?.forEach(deserializeLiveAttribute);
|
|
42
48
|
base.templateAttrs?.forEach(deserializeLiveAttributeUpdateElement);
|
|
43
49
|
base.attributeDirectives?.forEach(deserializeAttributeDirectives);
|
|
50
|
+
base.attributes?.forEach(deserializeAssignmentAttributeUpdateElement);
|
|
44
51
|
}
|
|
45
52
|
function deserializeChild(child) {
|
|
46
53
|
if (child instanceof DomElementNode) {
|
package/html/deserialize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../../src/core/html/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,EACI,0BAA0B,EAAE,cAAc,EACpD,eAAe,EACf,iBAAiB,EACU,sBAAsB,EACjD,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,SAAS,mBAAmB,CAAC,IAAqB;IACjD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAA2B,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC;AAED,SAAS,iCAAiC,CAAC,KAA6B;IACvE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;QACnC,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAA+B,CAAC;QACrF,QAAQ,CAAC,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAmB;IACpD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAA2B,CAAC;IAC1E,CAAC;AACF,CAAC;AAED,SAAS,qCAAqC,CAAC,IAAmB;IACjE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAA2B,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAsC;IAC1E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAA2B,CAAC;IAC1E,CAAC;AACF,CAAC;AAED,SAAS,8BAA8B,CAAC,SAAoC;IAC3E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACjE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxD,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3D,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../../src/core/html/deserialize.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tBaseNode, DomStructuralDirectiveNode, DomElementNode, DomNode,\n\tDomFragmentNode, DomParentNode, ElementAttribute,\n\tisLiveTextContent, LiveAttribute, LiveTextContent,\n\tDomAttributeDirectiveNode, LocalTemplateVariables\n} from '@ibyar/elements';\n\nimport type { DomStructuralDirectiveNodeUpgrade } from '@ibyar/elements/node.js';\nimport { deserialize } from '@ibyar/expressions';\nimport { getPipelineNames } from './expression.js';\n\nfunction deserializeLiveText(text: LiveTextContent) {\n\tif (text.expression) {\n\t\ttext.expression = deserialize(text.expression) as typeof text.expression;\n\t\ttext.pipelineNames = getPipelineNames(text.expression.getRight());\n\t}\n}\n\nfunction deserializeLocalTemplateVariables(local: LocalTemplateVariables) {\n\tlocal.variables?.forEach(variable => {\n\t\tvariable.expression = deserialize(variable.expression) as typeof variable.expression;\n\t\tvariable.pipelineNames = getPipelineNames(variable.expression.getRight());\n\t});\n}\n\nfunction deserializeLiveAttribute(attr: LiveAttribute) {\n\tif (attr.expression) {\n\t\tattr.expression = deserialize(attr.expression) as typeof attr.expression;\n\t}\n}\n\nfunction deserializeAssignmentAttributeUpdateElement(attr: ElementAttribute<string, string | number | boolean | object>) {\n\tif (attr.expression) {\n\t\tattr.expression = deserialize(attr.expression) as typeof attr.expression;\n\t}\n}\n\nfunction deserializeLiveAttributeUpdateElement(attr: LiveAttribute) {\n\tif (attr.expression) {\n\t\tattr.expression = deserialize(attr.expression) as typeof attr.expression;\n\t\tattr.pipelineNames = getPipelineNames(attr.expression.getRight());\n\t}\n}\n\nfunction deserializeOutputExpression(attr: ElementAttribute<string, string>) {\n\tif (attr.expression) {\n\t\tattr.expression = deserialize(attr.expression) as typeof attr.expression;\n\t}\n}\n\nfunction deserializeAttributeDirectives(directive: DomAttributeDirectiveNode) {\n\tdirective.inputs?.forEach(deserializeLiveAttributeUpdateElement);\n\tdirective.outputs?.forEach(deserializeOutputExpression);\n\tdirective.twoWayBinding?.forEach(deserializeLiveAttribute);\n\tdirective.templateAttrs?.forEach(deserializeLiveAttributeUpdateElement);\n\tdirective.attributes?.forEach(deserializeAssignmentAttributeUpdateElement);\n}\n\nfunction deserializeBaseNode(base: BaseNode) {\n\tbase.inputs?.forEach(deserializeLiveAttributeUpdateElement);\n\tbase.outputs?.forEach(deserializeOutputExpression);\n\tbase.twoWayBinding?.forEach(deserializeLiveAttribute);\n\tbase.templateAttrs?.forEach(deserializeLiveAttributeUpdateElement);\n\tbase.attributeDirectives?.forEach(deserializeAttributeDirectives);\n\tbase.attributes?.forEach(deserializeAssignmentAttributeUpdateElement);\n}\n\nfunction deserializeChild(child: DomNode) {\n\tif (child instanceof DomElementNode) {\n\t\t// DomElementNode\n\t\tdeserializeBaseNode(child);\n\t\tdeserializeDomParentNode(child);\n\t} else if (child instanceof DomStructuralDirectiveNode) {\n\t\t(child as DomStructuralDirectiveNodeUpgrade).templateExpressions = (child as DomStructuralDirectiveNodeUpgrade).templateExpressions?.map(deserialize) ?? [];\n\t\tdeserializeChild(child.node);\n\t\tdeserializeBaseNode(child);\n\t\tchild.successors?.forEach(deserializeChild);\n\t} else if (isLiveTextContent(child)) {\n\t\tdeserializeLiveText(child);\n\t} else if (child instanceof DomFragmentNode) {\n\t\tdeserializeDomParentNode(child);\n\t} else if (child instanceof LocalTemplateVariables) {\n\t\tdeserializeLocalTemplateVariables(child);\n\t}\n}\n\nfunction deserializeDomParentNode(parent: DomParentNode) {\n\tparent.children?.forEach(deserializeChild);\n}\n\nexport function deserializeExpressionNodes(node: DomNode) {\n\tif (node instanceof DomFragmentNode) {\n\t\tdeserializeDomParentNode(node);\n\t} else {\n\t\tdeserializeChild(node);\n\t}\n}\n"]}
|
package/html/expression.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/core/html/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAEsC,OAAO,EAKnD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,cAAc,EAMd,MAAM,oBAAoB,CAAC;AAoF5B,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,cAAc,GAAG,MAAM,EAAE,GAAG,SAAS,CAWtF;
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/core/html/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAEsC,OAAO,EAKnD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,cAAc,EAMd,MAAM,oBAAoB,CAAC;AAoF5B,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,cAAc,GAAG,MAAM,EAAE,GAAG,SAAS,CAWtF;AA8HD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,QAMjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAE/D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,QAE/C"}
|