@ibyar/core 2.4.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 +4 -11
- package/annotation/decorators.d.ts.map +1 -1
- package/annotation/decorators.js +2 -71
- package/annotation/decorators.js.map +1 -1
- package/annotation/options.d.ts +16 -11
- 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 +15 -11
- package/component/component.d.ts.map +1 -1
- package/component/component.js +34 -0
- package/component/component.js.map +1 -1
- package/component/custom-element.d.ts +10 -17
- 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/events.js.map +1 -1
- package/component/initializer.d.ts +79 -0
- package/component/initializer.d.ts.map +1 -0
- package/component/initializer.js +77 -0
- package/component/initializer.js.map +1 -0
- package/component/reflect.d.ts.map +1 -1
- package/component/reflect.js +8 -2
- package/component/reflect.js.map +1 -1
- package/di/inject.d.ts +11 -4
- package/di/inject.d.ts.map +1 -1
- package/di/inject.js +18 -2
- package/di/inject.js.map +1 -1
- package/di/provider.d.ts +8 -5
- package/di/provider.d.ts.map +1 -1
- package/di/provider.js +40 -13
- 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/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/initializer/input.d.ts +1 -0
- package/initializer/input.d.ts.map +1 -0
- package/initializer/input.js +2 -0
- package/initializer/input.js.map +1 -0
- package/linker/change-detector-ref.d.ts +3 -3
- package/linker/change-detector-ref.d.ts.map +1 -1
- package/linker/change-detector-ref.js +26 -4
- 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 +4 -4
- 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 +8 -8
- package/pipe/pipe.d.ts.map +1 -1
- package/pipe/pipe.js +2 -2
- package/pipe/pipe.js.map +1 -1
- package/signals/factory.d.ts +19 -0
- package/signals/factory.d.ts.map +1 -0
- package/signals/factory.js +59 -0
- package/signals/factory.js.map +1 -0
- package/signals/initializer.d.ts +26 -0
- package/signals/initializer.d.ts.map +1 -0
- package/signals/initializer.js +19 -0
- package/signals/initializer.js.map +1 -0
- package/signals/input.d.ts +1 -0
- package/signals/input.d.ts.map +1 -0
- package/signals/input.js +2 -0
- package/signals/input.js.map +1 -0
- package/signals/runtime.d.ts +37 -0
- package/signals/runtime.d.ts.map +1 -0
- package/signals/runtime.js +176 -0
- package/signals/runtime.js.map +1 -0
- 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 +9 -12
- package/signals/signals.d.ts.map +1 -1
- package/signals/signals.js +17 -44
- 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/utils/typeof.d.ts +4 -2
- package/utils/typeof.d.ts.map +1 -1
- package/utils/typeof.js.map +1 -1
- package/view/base-view.d.ts +2 -2
- package/view/base-view.d.ts.map +1 -1
- package/view/base-view.js +72 -100
- package/view/base-view.js.map +1 -1
- package/view/form-view.d.ts +2 -2
- package/view/form-view.d.ts.map +1 -1
- package/view/form-view.js.map +1 -1
- package/view/render.d.ts +7 -3
- package/view/render.d.ts.map +1 -1
- package/view/render.js +80 -30
- package/view/render.js.map +1 -1
- package/view/utils.d.ts +2 -2
- package/view/utils.d.ts.map +1 -1
- package/view/utils.js.map +1 -1
- package/view/view.d.ts +3 -3
- package/view/view.d.ts.map +1 -1
- package/view/view.js +3 -3
- package/view/view.js.map +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Signal, SignalScope } from '@ibyar/expressions';
|
|
2
|
+
import { InjectionToken } from '../di/provider.js';
|
|
3
|
+
import { Type } from '../utils/typeof.js';
|
|
4
|
+
import { HTMLComponent } from './custom-element.js';
|
|
5
|
+
import { OutputEventInit } from '../annotation/options.js';
|
|
6
|
+
export interface InputOptions<T, TransformT> {
|
|
7
|
+
alias?: string;
|
|
8
|
+
transform?: (v: TransformT) => T;
|
|
9
|
+
}
|
|
10
|
+
export type InputOptionsWithoutTransform<T> = Omit<InputOptions<T, T>, 'transform'>;
|
|
11
|
+
export type InputOptionsWithTransform<T, TransformT> = Required<Pick<InputOptions<T, TransformT>, 'transform'>> & InputOptions<T, TransformT>;
|
|
12
|
+
export interface InputWithTransform<T, TransformT = T> extends Signal<T> {
|
|
13
|
+
options?: InputOptions<T, TransformT>;
|
|
14
|
+
}
|
|
15
|
+
export interface InputWithoutTransform<T> extends InputWithTransform<T, T> {
|
|
16
|
+
options?: InputOptionsWithoutTransform<T>;
|
|
17
|
+
}
|
|
18
|
+
export declare class InputSignal<T, TransformT = T> extends Signal<T> implements InputWithoutTransform<T> {
|
|
19
|
+
options?: (InputOptions<T, TransformT> & {
|
|
20
|
+
required?: boolean;
|
|
21
|
+
}) | undefined;
|
|
22
|
+
constructor(scope: SignalScope, index: number, initValue?: T, options?: (InputOptions<T, TransformT> & {
|
|
23
|
+
required?: boolean;
|
|
24
|
+
}) | undefined);
|
|
25
|
+
set(value: T): void;
|
|
26
|
+
set(value: TransformT): void;
|
|
27
|
+
}
|
|
28
|
+
export declare function isInputSignal<T = any>(signal: any): signal is InputSignal<T>;
|
|
29
|
+
export declare function input<T>(): InputWithoutTransform<T>;
|
|
30
|
+
export declare function input<T, TransformT = T>(initValue: T, options: InputOptionsWithTransform<T, TransformT>): InputWithTransform<T, TransformT>;
|
|
31
|
+
export declare function input<T>(initValue: T, options?: InputOptionsWithoutTransform<T>): InputWithoutTransform<T>;
|
|
32
|
+
export declare function input<T, TransformT = T>(initValue?: T, options?: InputOptions<T, TransformT>): InputWithTransform<T, TransformT>;
|
|
33
|
+
export declare namespace input {
|
|
34
|
+
var required: typeof requiredInput;
|
|
35
|
+
}
|
|
36
|
+
declare function requiredInput<T, TransformT = T>(options?: InputOptions<T, TransformT>): InputWithTransform<T, TransformT>;
|
|
37
|
+
export declare class FormValueSignal<T> extends Signal<T> {
|
|
38
|
+
options?: {
|
|
39
|
+
required?: boolean;
|
|
40
|
+
} | undefined;
|
|
41
|
+
constructor(scope: SignalScope, index: number, initValue?: T, options?: {
|
|
42
|
+
required?: boolean;
|
|
43
|
+
} | undefined);
|
|
44
|
+
}
|
|
45
|
+
export declare function formValue<T>(initValue?: T): FormValueSignal<T>;
|
|
46
|
+
export declare namespace formValue {
|
|
47
|
+
var required: typeof requiredFormValue;
|
|
48
|
+
}
|
|
49
|
+
declare function requiredFormValue<T>(): FormValueSignal<T>;
|
|
50
|
+
type OutputOption = OutputEventInit & {
|
|
51
|
+
alias?: string;
|
|
52
|
+
};
|
|
53
|
+
export interface OutputSignal<T> extends Signal<T> {
|
|
54
|
+
set: never;
|
|
55
|
+
update: never;
|
|
56
|
+
}
|
|
57
|
+
export declare class OutputSignal<T> extends Signal<T> {
|
|
58
|
+
options?: OutputOption | undefined;
|
|
59
|
+
constructor(scope: SignalScope, index: number, options?: OutputOption | undefined);
|
|
60
|
+
emit(value: T): void;
|
|
61
|
+
}
|
|
62
|
+
export declare function isOutputSignal<T = any>(signal: any): signal is OutputSignal<T>;
|
|
63
|
+
export declare function output<T>(options?: OutputOption): OutputSignal<T>;
|
|
64
|
+
export declare const VIEW_TOKEN: InjectionToken<HTMLElement>;
|
|
65
|
+
export declare function view(): HTMLElement;
|
|
66
|
+
export declare function view<T extends keyof HTMLElementTagNameMap>(extend: T): HTMLElementTagNameMap[T];
|
|
67
|
+
export declare function view<T>(type: Type<T>): HTMLComponent<T>;
|
|
68
|
+
export declare function view<T, V extends keyof HTMLElementTagNameMap>(type: Type<T>, extend: V): HTMLComponent<T> & HTMLElementTagNameMap[V];
|
|
69
|
+
export declare class ViewChildSignal<T> extends Signal<T> {
|
|
70
|
+
selector: string | Type<T> | HTMLElement | keyof HTMLElementTagNameMap;
|
|
71
|
+
constructor(scope: SignalScope, index: number, selector: string | Type<T> | HTMLElement | keyof HTMLElementTagNameMap);
|
|
72
|
+
}
|
|
73
|
+
export declare function isViewChildSignal<T = any>(signal: any): signal is ViewChildSignal<T>;
|
|
74
|
+
export declare function viewChild<T extends HTMLElement>(selector: Type<T>): Signal<T>;
|
|
75
|
+
export declare function viewChild<T>(selector: Type<T>): Signal<HTMLComponent<T>>;
|
|
76
|
+
export declare function viewChild<T extends keyof HTMLElementTagNameMap>(selector: T): Signal<HTMLElementTagNameMap[T]>;
|
|
77
|
+
export declare function viewChild<T extends HTMLElement>(selector: string): Signal<T>;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=initializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../../src/core/component/initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Signal } from '@ibyar/expressions';
|
|
2
|
+
import { signalScopeFactory } from '../signals/factory.js';
|
|
3
|
+
import { InjectionToken } from '../di/provider.js';
|
|
4
|
+
import { inject } from '../di/inject.js';
|
|
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);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
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));
|
|
28
|
+
}
|
|
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;
|
|
44
|
+
export class OutputSignal extends Signal {
|
|
45
|
+
options;
|
|
46
|
+
constructor(scope, index, options) {
|
|
47
|
+
super(scope, index);
|
|
48
|
+
this.options = options;
|
|
49
|
+
}
|
|
50
|
+
emit(value) {
|
|
51
|
+
this.scope.set(this.index, value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export function isOutputSignal(signal) {
|
|
55
|
+
return signal instanceof OutputSignal;
|
|
56
|
+
}
|
|
57
|
+
export function output(options) {
|
|
58
|
+
return signalScopeFactory.factory((scope, index) => new OutputSignal(scope, index, options));
|
|
59
|
+
}
|
|
60
|
+
export const VIEW_TOKEN = new InjectionToken('VIEW');
|
|
61
|
+
export function view() {
|
|
62
|
+
return inject(VIEW_TOKEN);
|
|
63
|
+
}
|
|
64
|
+
export class ViewChildSignal extends Signal {
|
|
65
|
+
selector;
|
|
66
|
+
constructor(scope, index, selector) {
|
|
67
|
+
super(scope, index);
|
|
68
|
+
this.selector = selector;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export function isViewChildSignal(signal) {
|
|
72
|
+
return signal instanceof ViewChildSignal;
|
|
73
|
+
}
|
|
74
|
+
export function viewChild(selector) {
|
|
75
|
+
return signalScopeFactory.factory((scope, index) => new ViewChildSignal(scope, index, selector));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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/inject.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InjectionToken } from './provider.js';
|
|
3
|
-
export declare function
|
|
1
|
+
import { AbstractType, Type } from '../utils/typeof.js';
|
|
2
|
+
import { InjectionProvider, InjectionToken } from './provider.js';
|
|
3
|
+
export declare function forkProvider(): InjectionProvider;
|
|
4
|
+
export declare function addProvider(modelProvider: InjectionProvider): void;
|
|
5
|
+
export declare function removeProvider(modelProvider: InjectionProvider): void;
|
|
6
|
+
export declare function provide<T>(type: Type<T>): void;
|
|
7
|
+
export declare function provide<T>(type: AbstractType<T>): void;
|
|
8
|
+
export declare function provide<T>(type: Type<T>, value: T): void;
|
|
9
|
+
export declare function provide<T>(type: AbstractType<T>, value: T): void;
|
|
4
10
|
export declare function provide<T>(token: InjectionToken<T>, value: T): void;
|
|
5
|
-
export declare function inject<T>(type:
|
|
11
|
+
export declare function inject<T>(type: Type<T>): T;
|
|
12
|
+
export declare function inject<T>(type: AbstractType<T>): T;
|
|
6
13
|
export declare function inject<T>(token: InjectionToken<T>): T | undefined;
|
|
7
14
|
//# sourceMappingURL=inject.d.ts.map
|
package/di/inject.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/core/di/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/core/di/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AAO5E,wBAAgB,YAAY,IAAI,iBAAiB,CAEhD;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,iBAAiB,QAE3D;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,iBAAiB,QAK9D;AAMD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;AAC1D,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;AAClE,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;AAKrE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC"}
|
package/di/inject.js
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import { InjectionProvider } from './provider.js';
|
|
2
2
|
const ROOT_PROVIDER = new InjectionProvider();
|
|
3
|
+
const PROVIDERS = [ROOT_PROVIDER];
|
|
4
|
+
export function forkProvider() {
|
|
5
|
+
return ROOT_PROVIDER.fork();
|
|
6
|
+
}
|
|
7
|
+
export function addProvider(modelProvider) {
|
|
8
|
+
PROVIDERS.push(modelProvider);
|
|
9
|
+
}
|
|
10
|
+
export function removeProvider(modelProvider) {
|
|
11
|
+
const index = PROVIDERS.findIndex(provider => provider === modelProvider);
|
|
12
|
+
if (index >= 0) {
|
|
13
|
+
PROVIDERS.splice(index, 1);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function getProvider() {
|
|
17
|
+
return PROVIDERS.at(-1) ?? ROOT_PROVIDER;
|
|
18
|
+
}
|
|
3
19
|
export function provide(provider, value) {
|
|
4
|
-
|
|
20
|
+
getProvider().provide(provider, value);
|
|
5
21
|
}
|
|
6
22
|
export function inject(provider) {
|
|
7
|
-
return
|
|
23
|
+
return getProvider().inject(provider);
|
|
8
24
|
}
|
|
9
25
|
//# sourceMappingURL=inject.js.map
|
package/di/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/core/di/inject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,eAAe,CAAC;AAG5E,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/core/di/inject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,eAAe,CAAC;AAG5E,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAE9C,MAAM,SAAS,GAAwB,CAAC,aAAa,CAAC,CAAC;AAEvD,MAAM,UAAU,YAAY;IAC3B,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,aAAgC;IAC3D,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,aAAgC;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC;IAC1E,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAChB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAED,SAAS,WAAW;IACnB,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;AAC1C,CAAC;AAOD,MAAM,UAAU,OAAO,CAAI,QAAqB,EAAE,KAAS;IAC1D,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAKD,MAAM,UAAU,MAAM,CAAI,QAAqB;IAC9C,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC","sourcesContent":["import { AbstractType, Type } from '../utils/typeof.js';\nimport { InjectionProvider, InjectionToken, Provider } from './provider.js';\n\n\nconst ROOT_PROVIDER = new InjectionProvider();\n\nconst PROVIDERS: InjectionProvider[] = [ROOT_PROVIDER];\n\nexport function forkProvider(): InjectionProvider {\n\treturn ROOT_PROVIDER.fork();\n}\n\nexport function addProvider(modelProvider: InjectionProvider) {\n\tPROVIDERS.push(modelProvider);\n}\n\nexport function removeProvider(modelProvider: InjectionProvider) {\n\tconst index = PROVIDERS.findIndex(provider => provider === modelProvider);\n\tif (index >= 0) {\n\t\tPROVIDERS.splice(index, 1);\n\t}\n}\n\nfunction getProvider(): InjectionProvider {\n\treturn PROVIDERS.at(-1) ?? ROOT_PROVIDER;\n}\n\nexport function provide<T>(type: Type<T>): void;\nexport function provide<T>(type: AbstractType<T>): void;\nexport function provide<T>(type: Type<T>, value: T): void;\nexport function provide<T>(type: AbstractType<T>, value: T): void;\nexport function provide<T>(token: InjectionToken<T>, value: T): void;\nexport function provide<T>(provider: Provider<T>, value?: T) {\n\tgetProvider().provide(provider, value);\n}\n\nexport function inject<T>(type: Type<T>): T;\nexport function inject<T>(type: AbstractType<T>): T;\nexport function inject<T>(token: InjectionToken<T>): T | undefined;\nexport function inject<T>(provider: Provider<T>): T | undefined {\n\treturn getProvider().inject(provider);\n}\n"]}
|
package/di/provider.d.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
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
|
-
export type Provider<T> =
|
|
7
|
+
export type Provider<T> = Type<T> | AbstractType<T> | InjectionToken<T>;
|
|
7
8
|
export declare class InjectionProvider {
|
|
8
9
|
private parent?;
|
|
9
10
|
private readonly types;
|
|
10
11
|
private readonly tokens;
|
|
11
12
|
constructor(parent?: InjectionProvider | undefined);
|
|
13
|
+
fork(): InjectionProvider;
|
|
12
14
|
hasToken<T>(token: InjectionToken<T>): InjectionProvider | false;
|
|
13
|
-
hasType<T>(type:
|
|
15
|
+
hasType<T>(type: Type<any> | AbstractType<any>): InjectionProvider | false;
|
|
14
16
|
getToken<T>(token: InjectionToken<T>): T | undefined;
|
|
15
|
-
getInstance<T>(type:
|
|
16
|
-
setType<T>(type:
|
|
17
|
+
getInstance<T>(type: Type<any> | AbstractType<any>): T;
|
|
18
|
+
setType<T>(type: Type<any> | AbstractType<any>, value?: T): void;
|
|
17
19
|
setToken<T>(token: InjectionToken<T>, value: T): void;
|
|
18
20
|
provide<T>(typeOrToken: Provider<T>, value?: T): void;
|
|
19
21
|
inject<T>(typeOrToken: Provider<T>): T | undefined;
|
|
22
|
+
clear<T>(typeOrToken: Provider<T>): void;
|
|
20
23
|
}
|
|
21
24
|
//# sourceMappingURL=provider.d.ts.map
|
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,
|
|
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,15 +3,21 @@ export class InjectionToken {
|
|
|
3
3
|
constructor(token) {
|
|
4
4
|
this.token = token;
|
|
5
5
|
}
|
|
6
|
+
withType() {
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
6
9
|
}
|
|
7
|
-
const
|
|
10
|
+
const REQUIRE_INIT = Symbol('REQUIRE_INIT');
|
|
8
11
|
export class InjectionProvider {
|
|
9
12
|
parent;
|
|
10
|
-
types = new
|
|
11
|
-
tokens = new
|
|
13
|
+
types = new Map();
|
|
14
|
+
tokens = new Map();
|
|
12
15
|
constructor(parent) {
|
|
13
16
|
this.parent = parent;
|
|
14
17
|
}
|
|
18
|
+
fork() {
|
|
19
|
+
return new InjectionProvider(this);
|
|
20
|
+
}
|
|
15
21
|
hasToken(token) {
|
|
16
22
|
return this.tokens.has(token) ? this : false;
|
|
17
23
|
}
|
|
@@ -19,39 +25,60 @@ export class InjectionProvider {
|
|
|
19
25
|
return this.types.has(type) ? this : false;
|
|
20
26
|
}
|
|
21
27
|
getToken(token) {
|
|
22
|
-
|
|
28
|
+
let value = this.tokens.get(token);
|
|
29
|
+
if (value === undefined && this.parent) {
|
|
30
|
+
value = this.parent.getToken(token);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
23
33
|
}
|
|
24
34
|
getInstance(type) {
|
|
25
35
|
let instance = this.types.get(type);
|
|
26
|
-
if (instance ===
|
|
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
|
+
}
|
|
44
|
+
if (instance === REQUIRE_INIT) {
|
|
27
45
|
instance = new type();
|
|
28
46
|
this.types.set(type, instance);
|
|
29
47
|
}
|
|
48
|
+
else if (instance === undefined && this.parent) {
|
|
49
|
+
instance = this.parent.getInstance(type);
|
|
50
|
+
}
|
|
30
51
|
return instance;
|
|
31
52
|
}
|
|
32
53
|
setType(type, value) {
|
|
33
|
-
this.types.set(type, value ??
|
|
54
|
+
this.types.set(type, value ?? REQUIRE_INIT);
|
|
34
55
|
}
|
|
35
56
|
setToken(token, value) {
|
|
36
57
|
this.tokens.set(token, value);
|
|
37
58
|
}
|
|
38
59
|
provide(typeOrToken, value) {
|
|
39
60
|
if (typeOrToken instanceof InjectionToken) {
|
|
40
|
-
|
|
41
|
-
provider.setToken(typeOrToken, value);
|
|
61
|
+
this.setToken(typeOrToken, value);
|
|
42
62
|
}
|
|
43
63
|
else {
|
|
44
|
-
|
|
45
|
-
provider.setType(typeOrToken, value ?? EMPTY_VALUE);
|
|
64
|
+
this.setType(typeOrToken, value ?? REQUIRE_INIT);
|
|
46
65
|
}
|
|
47
66
|
}
|
|
48
67
|
inject(typeOrToken) {
|
|
68
|
+
if (typeOrToken instanceof InjectionToken) {
|
|
69
|
+
return this.getToken(typeOrToken);
|
|
70
|
+
}
|
|
71
|
+
return this.getInstance(typeOrToken);
|
|
72
|
+
}
|
|
73
|
+
clear(typeOrToken) {
|
|
49
74
|
if (typeOrToken instanceof InjectionToken) {
|
|
50
75
|
const provider = this.parent?.hasToken(typeOrToken) || this;
|
|
51
|
-
|
|
76
|
+
provider.tokens.delete(typeOrToken);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const provider = this.parent?.hasType(typeOrToken) || this;
|
|
80
|
+
provider.types.delete(typeOrToken);
|
|
52
81
|
}
|
|
53
|
-
const provider = this.parent?.hasType(typeOrToken) || this;
|
|
54
|
-
return provider.getInstance(typeOrToken);
|
|
55
82
|
}
|
|
56
83
|
}
|
|
57
84
|
//# sourceMappingURL=provider.js.map
|
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":"AAGA,MAAM,OAAO,cAAc;IACP;IAAnB,YAAmB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAI,CAAC;IAErC,QAAQ;QACP,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAID,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE5C,MAAM,OAAO,iBAAiB;IAKT;IAHH,KAAK,GAAG,IAAI,GAAG,EAAsC,CAAC;IACtD,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE9D,YAAoB,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAI,CAAC;IAEnD,IAAI;QACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAI,KAAwB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,OAAO,CAAI,IAAmC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,QAAQ,CAAI,KAAwB;QACnC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,WAAW,CAAI,IAAmC;QACjD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,SAAS,YAAY,YAAY,EAAE,CAAC;oBAC5C,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACxC,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAK,IAAkB,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,CAAI,IAAmC,EAAE,KAAS;QACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAI,KAAwB,EAAE,KAAQ;QAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAI,WAAwB,EAAE,KAAS;QAC7C,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,YAA4B,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;IAED,MAAM,CAAI,WAAwB;QACjC,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAI,WAAwB;QAChC,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;YAC5D,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;YAC3D,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;CAED","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"}
|