glass-easel-miniprogram-adapter 0.1.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/README.md +49 -0
- package/dist/glass_easel_miniprogram_adapter.d.ts +1 -0
- package/dist/glass_easel_miniprogram_adapter.js +2 -0
- package/dist/glass_easel_miniprogram_adapter.js.map +1 -0
- package/dist/types/src/backend.d.ts +51 -0
- package/dist/types/src/backend.d.ts.map +1 -0
- package/dist/types/src/behavior.d.ts +35 -0
- package/dist/types/src/behavior.d.ts.map +1 -0
- package/dist/types/src/component.d.ts +160 -0
- package/dist/types/src/component.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +58 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/selector_query.d.ts +98 -0
- package/dist/types/src/selector_query.d.ts.map +1 -0
- package/dist/types/src/space.d.ts +369 -0
- package/dist/types/src/space.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +77 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/src/utils.d.ts +2 -0
- package/dist/types/src/utils.d.ts.map +1 -0
- package/dist/types/tests/base/env.d.ts +3 -0
- package/dist/types/tests/base/env.d.ts.map +1 -0
- package/dist/types/tests/data_update.test.d.ts +2 -0
- package/dist/types/tests/data_update.test.d.ts.map +1 -0
- package/dist/types/tests/env.test.d.ts +2 -0
- package/dist/types/tests/env.test.d.ts.map +1 -0
- package/dist/types/tests/selector.test.d.ts +2 -0
- package/dist/types/tests/selector.test.d.ts.map +1 -0
- package/dist/types/tests/space.test.d.ts +2 -0
- package/dist/types/tests/space.test.d.ts.map +1 -0
- package/dist/types/tests/trait_behavior.test.d.ts +2 -0
- package/dist/types/tests/trait_behavior.test.d.ts.map +1 -0
- package/jest.config.js +13 -0
- package/package.json +32 -0
- package/src/backend.ts +106 -0
- package/src/behavior.ts +101 -0
- package/src/component.ts +476 -0
- package/src/index.ts +82 -0
- package/src/selector_query.ts +356 -0
- package/src/space.ts +1514 -0
- package/src/types.ts +85 -0
- package/src/utils.ts +3 -0
- package/tests/base/env.ts +20 -0
- package/tests/data_update.test.ts +92 -0
- package/tests/env.test.ts +141 -0
- package/tests/selector.test.ts +407 -0
- package/tests/space.test.ts +953 -0
- package/tests/trait_behavior.test.ts +141 -0
- package/tsconfig.json +11 -0
- package/webpack.config.js +78 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as glassEasel from 'glass-easel';
|
|
2
|
+
import { AssociatedBackend } from './backend';
|
|
3
|
+
import { CodeSpace } from './space';
|
|
4
|
+
export * as glassEasel from 'glass-easel';
|
|
5
|
+
export * as types from './types';
|
|
6
|
+
export { StyleIsolation } from './types';
|
|
7
|
+
export * from './space';
|
|
8
|
+
export { AssociatedBackend, Root } from './backend';
|
|
9
|
+
export * as component from './component';
|
|
10
|
+
/**
|
|
11
|
+
* A mini-program API environment
|
|
12
|
+
*
|
|
13
|
+
* Each environment manages multiple backend contexts.
|
|
14
|
+
* However, a backend context should be exclusively managed by a single environment
|
|
15
|
+
* (to avoid `StyleScopeId` confliction).
|
|
16
|
+
* It is able to create multiple `CodeSpace` within the environment.
|
|
17
|
+
*/
|
|
18
|
+
export declare class MiniProgramEnv {
|
|
19
|
+
private codeSpaceMap;
|
|
20
|
+
private globalCodeSpace;
|
|
21
|
+
/**
|
|
22
|
+
* Create an empty mini-program API environment
|
|
23
|
+
*/
|
|
24
|
+
constructor();
|
|
25
|
+
/**
|
|
26
|
+
* Get a global code space in which global components can be defined
|
|
27
|
+
*
|
|
28
|
+
* External glass-easel based components can be defined in this code space.
|
|
29
|
+
* All global components should be defined before any other `CodeSpace` created!
|
|
30
|
+
*/
|
|
31
|
+
getGlobalCodeSpace(): CodeSpace;
|
|
32
|
+
/**
|
|
33
|
+
* Associate a backend context
|
|
34
|
+
*
|
|
35
|
+
* If `backendContext` is not given, the DOM-based backend is used
|
|
36
|
+
* (causes failure if running outside browsers).
|
|
37
|
+
* The backend context SHOULD NOT be associated by other environments!
|
|
38
|
+
*/
|
|
39
|
+
associateBackend(backendContent?: glassEasel.GeneralBackendContext): AssociatedBackend;
|
|
40
|
+
/**
|
|
41
|
+
* Create a component space that can manage WXML, WXSS, JS and static JSON config files
|
|
42
|
+
*
|
|
43
|
+
* The space can be specified as a *main* space.
|
|
44
|
+
* This makes some features available:
|
|
45
|
+
* * the `app.wxss` will be used as a style sheet for all root components in the space;
|
|
46
|
+
* * the `StyleIsolation.Shared` is accepted for components in the space.
|
|
47
|
+
* Non-main spaces usually act as plugins.
|
|
48
|
+
* `publicComponents` is a map for specifying a map of aliases and component paths.
|
|
49
|
+
*/
|
|
50
|
+
createCodeSpace(id: string, isMainSpace: boolean, publicComponents?: {
|
|
51
|
+
[alias: string]: string;
|
|
52
|
+
}): CodeSpace;
|
|
53
|
+
/**
|
|
54
|
+
* Get a component space by the `id` specified when created
|
|
55
|
+
*/
|
|
56
|
+
getCodeSpace(id: string): CodeSpace | undefined;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EACL,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAAW;IAElC;;OAEG;;IAMH;;;;;OAKG;IACH,kBAAkB,IAAI,SAAS;IAI/B;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,qBAAqB,GAAG,iBAAiB;IAKtF;;;;;;;;;OASG;IACH,eAAe,CACb,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,EACpB,gBAAgB;;KAAqD,GACpE,SAAS;IAMZ;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAGhD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { GeneralComponent } from './component';
|
|
2
|
+
export type SelectorQueryFields = {
|
|
3
|
+
id?: boolean;
|
|
4
|
+
dataset?: boolean;
|
|
5
|
+
mark?: boolean;
|
|
6
|
+
rect?: boolean;
|
|
7
|
+
size?: boolean;
|
|
8
|
+
scrollOffset?: boolean;
|
|
9
|
+
properties?: string[];
|
|
10
|
+
};
|
|
11
|
+
export type SelectorQueryResult<T extends SelectorQueryFields> = {
|
|
12
|
+
id: T['id'] extends true ? string : undefined;
|
|
13
|
+
dataset: T['dataset'] extends true ? {
|
|
14
|
+
[k: string]: any;
|
|
15
|
+
} : undefined;
|
|
16
|
+
mark: T['mark'] extends true ? {
|
|
17
|
+
[k: string]: any;
|
|
18
|
+
} : undefined;
|
|
19
|
+
left: T['rect'] extends true ? number : undefined;
|
|
20
|
+
top: T['rect'] extends true ? number : undefined;
|
|
21
|
+
right: T['rect'] extends true ? number : undefined;
|
|
22
|
+
bottom: T['rect'] extends true ? number : undefined;
|
|
23
|
+
width: T['size'] extends true ? number : undefined;
|
|
24
|
+
height: T['size'] extends true ? number : undefined;
|
|
25
|
+
scrollLeft: T['scrollOffset'] extends true ? number : undefined;
|
|
26
|
+
scrollTop: T['scrollOffset'] extends true ? number : undefined;
|
|
27
|
+
scrollWidth: T['scrollOffset'] extends true ? number : undefined;
|
|
28
|
+
scrollHeight: T['scrollOffset'] extends true ? number : undefined;
|
|
29
|
+
} & {
|
|
30
|
+
[K in T['properties'] extends (infer I extends string)[] ? I : never]: any;
|
|
31
|
+
};
|
|
32
|
+
export type BoundingClientRect = {
|
|
33
|
+
id: string;
|
|
34
|
+
dataset: {
|
|
35
|
+
[k: string]: any;
|
|
36
|
+
};
|
|
37
|
+
left: number;
|
|
38
|
+
top: number;
|
|
39
|
+
right: number;
|
|
40
|
+
bottom: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
};
|
|
44
|
+
export type ScrollOffset = {
|
|
45
|
+
id: string;
|
|
46
|
+
dataset: {
|
|
47
|
+
[k: string]: any;
|
|
48
|
+
};
|
|
49
|
+
scrollLeft: number;
|
|
50
|
+
scrollTop: number;
|
|
51
|
+
scrollWidth: number;
|
|
52
|
+
scrollHeight: number;
|
|
53
|
+
};
|
|
54
|
+
declare class NodesRef<S extends boolean> {
|
|
55
|
+
private _$sq;
|
|
56
|
+
private _$comp;
|
|
57
|
+
private _$sel;
|
|
58
|
+
private _$single;
|
|
59
|
+
constructor(selectorQuery: SelectorQuery, component: GeneralComponent, selector: string | null, selectSingle: S);
|
|
60
|
+
fields<T extends SelectorQueryFields>(fields: T, cb?: (res: S extends true ? SelectorQueryResult<T> : SelectorQueryResult<T>[]) => void): SelectorQuery;
|
|
61
|
+
boundingClientRect(cb?: (res: S extends true ? BoundingClientRect : BoundingClientRect[]) => void): SelectorQuery;
|
|
62
|
+
scrollOffset(cb?: (res: S extends true ? ScrollOffset : ScrollOffset[]) => void): SelectorQuery;
|
|
63
|
+
}
|
|
64
|
+
export declare class SelectorQuery {
|
|
65
|
+
private _$comp;
|
|
66
|
+
/** @internal */
|
|
67
|
+
_$queue: {
|
|
68
|
+
component: GeneralComponent;
|
|
69
|
+
selector: string | null;
|
|
70
|
+
single: boolean;
|
|
71
|
+
fields: SelectorQueryFields;
|
|
72
|
+
cb: (res: any) => void;
|
|
73
|
+
}[];
|
|
74
|
+
/** @internal */
|
|
75
|
+
constructor(component: GeneralComponent);
|
|
76
|
+
/** Change where the node should be selected from */
|
|
77
|
+
in(component: GeneralComponent): this;
|
|
78
|
+
/** Select the first node that matches the selector */
|
|
79
|
+
select(selector: string): NodesRef<true>;
|
|
80
|
+
/** Select all nodes that match the selector */
|
|
81
|
+
selectAll(selector: string): NodesRef<false>;
|
|
82
|
+
/**
|
|
83
|
+
* Select the viewport of the component
|
|
84
|
+
*
|
|
85
|
+
* Only the size and the scroll position is meaningful when the viewport is selected.
|
|
86
|
+
*/
|
|
87
|
+
selectViewport(): NodesRef<true>;
|
|
88
|
+
/** @internal */
|
|
89
|
+
_$push(selector: string | null, component: GeneralComponent, single: boolean, fields: SelectorQueryFields, cb: (res: any) => void): void;
|
|
90
|
+
/**
|
|
91
|
+
* Execute all queries
|
|
92
|
+
*
|
|
93
|
+
* The `cb` is called after all queries done.
|
|
94
|
+
*/
|
|
95
|
+
exec(cb?: (resList: any[]) => void): void;
|
|
96
|
+
}
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=selector_query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector_query.d.ts","sourceRoot":"","sources":["../../../src/selector_query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import * as glassEasel from 'glass-easel';
|
|
2
|
+
import { MiniProgramEnv } from '.';
|
|
3
|
+
import { ComponentStaticConfig, ComponentDefinitionOptions, StyleIsolation, BehaviorDefinition, ComponentDefinition, PageDefinition, utils as typeUtils } from './types';
|
|
4
|
+
import { Behavior, ComponentType, GeneralBehavior, TraitBehavior } from './behavior';
|
|
5
|
+
import { AllData, Component, GeneralComponent } from './component';
|
|
6
|
+
export interface PageConstructor {
|
|
7
|
+
<TData extends DataList, TNewExtraFields extends {
|
|
8
|
+
[k: PropertyKey]: any;
|
|
9
|
+
}>(definition: PageDefinition<TData, TNewExtraFields> & ThisType<Component<TData, Empty, TNewExtraFields, undefined>>): void;
|
|
10
|
+
}
|
|
11
|
+
export interface ComponentConstructor {
|
|
12
|
+
(): ComponentBuilder;
|
|
13
|
+
<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList, TComponentExport>(definition: ComponentDefinition<TData, TProperty, TMethod, TComponentExport> & ThisType<Component<TData, TProperty, TMethod, TComponentExport>>): void;
|
|
14
|
+
}
|
|
15
|
+
export interface BehaviorConstructor {
|
|
16
|
+
(): BehaviorBuilder;
|
|
17
|
+
<TData extends DataList, TProperty extends PropertyList, TMethod extends MethodList, TComponentExport>(definition: BehaviorDefinition<TData, TProperty, TMethod>): Behavior<TData, TProperty, TMethod, never>;
|
|
18
|
+
trait<TIn extends {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}>(): TraitBehavior<TIn, TIn>;
|
|
21
|
+
trait<TIn extends {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}, TOut extends {
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}>(trans: (impl: TIn) => TOut): TraitBehavior<TIn, TOut>;
|
|
26
|
+
}
|
|
27
|
+
export interface ComponentEnv {
|
|
28
|
+
Page: PageConstructor;
|
|
29
|
+
Component: ComponentConstructor;
|
|
30
|
+
Behavior: BehaviorConstructor;
|
|
31
|
+
}
|
|
32
|
+
type Empty = typeUtils.Empty;
|
|
33
|
+
type DataList = typeUtils.DataList;
|
|
34
|
+
type PropertyList = typeUtils.PropertyList;
|
|
35
|
+
type PropertyType = typeUtils.PropertyType;
|
|
36
|
+
type PropertyTypeToValueType<T extends PropertyType> = typeUtils.PropertyTypeToValueType<T>;
|
|
37
|
+
type MethodList = typeUtils.MethodList;
|
|
38
|
+
type ChainingFilterType = typeUtils.ChainingFilterType;
|
|
39
|
+
type ComponentMethod = typeUtils.ComponentMethod;
|
|
40
|
+
type TaggedMethod<Fn extends ComponentMethod> = typeUtils.TaggedMethod<Fn>;
|
|
41
|
+
type ChainingFilterFunc<TAddedFields extends {
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}, TRemovedFields extends string = never> = typeUtils.ChainingFilterFunc<TAddedFields, TRemovedFields>;
|
|
44
|
+
export interface RelationHandler<TTarget, TOut> {
|
|
45
|
+
list(): TTarget[];
|
|
46
|
+
listAsTrait: TOut extends never ? undefined : () => TOut[];
|
|
47
|
+
}
|
|
48
|
+
export type TraitRelationParams<TOut extends {
|
|
49
|
+
[key: string]: any;
|
|
50
|
+
}> = {
|
|
51
|
+
target: TraitBehavior<any, TOut>;
|
|
52
|
+
type: 'ancestor' | 'descendant' | 'parent' | 'child' | 'parent-common-node' | 'child-common-node';
|
|
53
|
+
linked?: (target: GeneralComponent) => void;
|
|
54
|
+
linkChanged?: (target: GeneralComponent) => void;
|
|
55
|
+
unlinked?: (target: GeneralComponent) => void;
|
|
56
|
+
linkFailed?: (target: GeneralComponent) => void;
|
|
57
|
+
};
|
|
58
|
+
export type RelationParams = {
|
|
59
|
+
target?: string | ComponentType<any, any, any, any> | GeneralBehavior | TraitBehavior<any>;
|
|
60
|
+
type: 'ancestor' | 'descendant' | 'parent' | 'child' | 'parent-common-node' | 'child-common-node';
|
|
61
|
+
linked?: (target: GeneralComponent) => void;
|
|
62
|
+
linkChanged?: (target: GeneralComponent) => void;
|
|
63
|
+
unlinked?: (target: GeneralComponent) => void;
|
|
64
|
+
linkFailed?: (target: GeneralComponent) => void;
|
|
65
|
+
};
|
|
66
|
+
export type Lifetimes = {
|
|
67
|
+
created: () => void;
|
|
68
|
+
attached: () => void;
|
|
69
|
+
moved: () => void;
|
|
70
|
+
detached: () => void;
|
|
71
|
+
ready: () => void;
|
|
72
|
+
};
|
|
73
|
+
export interface BuilderContext<TPrevData extends DataList, TProperty extends PropertyList, TMethodCaller> extends ThisType<TMethodCaller> {
|
|
74
|
+
self: TMethodCaller;
|
|
75
|
+
data: typeUtils.DeepReadonly<typeUtils.DataWithPropertyValues<TPrevData, TProperty>>;
|
|
76
|
+
setData: (newData: Partial<typeUtils.SetDataSetter<TPrevData>>, callback?: () => void) => void;
|
|
77
|
+
implement: <TIn extends {
|
|
78
|
+
[x: string]: any;
|
|
79
|
+
}>(traitBehavior: TraitBehavior<TIn, any>, impl: TIn) => void;
|
|
80
|
+
relation<TOut extends {
|
|
81
|
+
[key: string]: any;
|
|
82
|
+
}>(def: TraitRelationParams<TOut> & ThisType<TMethodCaller>): RelationHandler<any, TOut>;
|
|
83
|
+
relation(def: RelationParams & ThisType<TMethodCaller>): RelationHandler<any, never>;
|
|
84
|
+
observer<P extends typeUtils.ObserverDataPathStrings<typeUtils.DataWithPropertyValues<TPrevData, TProperty>>, V = typeUtils.DeepReadonly<typeUtils.GetFromObserverPathString<typeUtils.DataWithPropertyValues<TPrevData, TProperty>, P>>>(paths: P, func: (newValue: V) => void): void;
|
|
85
|
+
observer<P extends typeUtils.ObserverDataPathStrings<typeUtils.DataWithPropertyValues<TPrevData, TProperty>>[], V = {
|
|
86
|
+
[K in keyof P]: typeUtils.DeepReadonly<typeUtils.GetFromObserverPathString<typeUtils.DataWithPropertyValues<TPrevData, TProperty>, P[K]>>;
|
|
87
|
+
}>(paths: readonly [...P], func: (...newValues: V extends any[] ? V : never) => void): void;
|
|
88
|
+
lifetime: <L extends keyof Lifetimes>(name: L, func: Lifetimes[L]) => void;
|
|
89
|
+
pageLifetime: (name: string, func: (...args: any[]) => void) => void;
|
|
90
|
+
method: <Fn extends ComponentMethod>(func: Fn) => TaggedMethod<Fn>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A component space with mini-program code manager
|
|
94
|
+
*/
|
|
95
|
+
export declare class CodeSpace {
|
|
96
|
+
/** @internal */
|
|
97
|
+
_$env: MiniProgramEnv;
|
|
98
|
+
private _$isMainSpace;
|
|
99
|
+
private space;
|
|
100
|
+
private styleScopeManager;
|
|
101
|
+
private staticConfigMap;
|
|
102
|
+
private styleSheetMap;
|
|
103
|
+
private compiledTemplateMap;
|
|
104
|
+
private waitingAliasMap;
|
|
105
|
+
/** @internal */
|
|
106
|
+
_$sharedStyleScope: glassEasel.StyleScopeId;
|
|
107
|
+
/** @internal */
|
|
108
|
+
_$styleIsolationMap: {
|
|
109
|
+
[path: string]: StyleIsolation;
|
|
110
|
+
};
|
|
111
|
+
/** @internal */
|
|
112
|
+
_$overallBehavior: glassEasel.GeneralBehavior | null;
|
|
113
|
+
/** @internal */
|
|
114
|
+
constructor(env: MiniProgramEnv, isMainSpace: boolean, publicComponents: {
|
|
115
|
+
[alias: string]: string;
|
|
116
|
+
}, globalCodeSpace?: CodeSpace);
|
|
117
|
+
isMainSpace(): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Get the underlying component space
|
|
120
|
+
*/
|
|
121
|
+
getComponentSpace(): glassEasel.ComponentSpace;
|
|
122
|
+
/**
|
|
123
|
+
* Add a behavior for all components
|
|
124
|
+
*
|
|
125
|
+
* Must be called before any component registration so that the component will use this behavior.
|
|
126
|
+
* Set to `null` to disable this behavior.
|
|
127
|
+
*/
|
|
128
|
+
setOverallBehavior(behavior: glassEasel.GeneralBehavior): void;
|
|
129
|
+
/**
|
|
130
|
+
* Import another component space as a plugin (must be in the same environment)
|
|
131
|
+
*
|
|
132
|
+
* Components from the imported `codeSpace` can be used with URLs.
|
|
133
|
+
* If `domainAlias` is provided, the URL format is `plugin://DOMAIN_ALIAS/COMPONENT_SPACE_EXPORT_ALIAS` .
|
|
134
|
+
* If `privateImport` is enabled, another URL format is `plugin-private://DOMAIN/COMPONENT_IS` .
|
|
135
|
+
*/
|
|
136
|
+
importCodeSpace(id: string, domainAlias?: string, privateImport?: boolean): void;
|
|
137
|
+
/**
|
|
138
|
+
* Add a style sheet URL with style scope name
|
|
139
|
+
*
|
|
140
|
+
* The URL should be recognized by the target backend.
|
|
141
|
+
* The `path` should not contain the `.wxss` suffix.
|
|
142
|
+
*/
|
|
143
|
+
addStyleSheet(path: string, styleSheetUrl: string, styleScopeName?: string): void;
|
|
144
|
+
/**
|
|
145
|
+
* Get a style sheet URL
|
|
146
|
+
*
|
|
147
|
+
* The URL should be recognized by the target backend.
|
|
148
|
+
* The `path` should not contain the `.wxss` suffix.
|
|
149
|
+
*/
|
|
150
|
+
getStyleSheet(path: string): string | undefined;
|
|
151
|
+
getStyleScopeName(path: string): string | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* Add a compiled template
|
|
154
|
+
*
|
|
155
|
+
* The content is the execution result of the generated string of the template compiler.
|
|
156
|
+
* The `path` should not contain the `.wxml` suffix.
|
|
157
|
+
*/
|
|
158
|
+
addCompiledTemplate(path: string, content: glassEasel.template.ComponentTemplate): void;
|
|
159
|
+
/**
|
|
160
|
+
* Get a compiled template
|
|
161
|
+
*
|
|
162
|
+
* The content is the execution result of the generated string of the template compiler.
|
|
163
|
+
* The `path` should not contain the `.wxml` suffix.
|
|
164
|
+
*/
|
|
165
|
+
getCompiledTemplate(path: string): glassEasel.template.ComponentTemplate | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* Add a static JSON config
|
|
168
|
+
*
|
|
169
|
+
* The `path` should not contain the `.json` suffix.
|
|
170
|
+
*/
|
|
171
|
+
addComponentStaticConfig(path: string, content: ComponentStaticConfig): void;
|
|
172
|
+
/**
|
|
173
|
+
* Get a static JSON config
|
|
174
|
+
*
|
|
175
|
+
* The `path` should not contain the `.json` suffix.
|
|
176
|
+
*/
|
|
177
|
+
getComponentStaticConfig(path: string): ComponentStaticConfig | undefined;
|
|
178
|
+
/** @internal */
|
|
179
|
+
prepareComponentOptions(is: string, options?: ComponentDefinitionOptions): [glassEasel.ComponentOptions, StyleIsolation];
|
|
180
|
+
/**
|
|
181
|
+
* Create a component definition environment
|
|
182
|
+
*
|
|
183
|
+
* During the sync execution of `cb` , `Component` and `Behavior` global vars will be available.
|
|
184
|
+
* `globalObject` should be the JavaScript global object, a.k.a. `window` in DOM.
|
|
185
|
+
* Some global variables, a.k.a `Component` `Behavior` `Page` ,
|
|
186
|
+
* will be written into `globalObject` .
|
|
187
|
+
* `path` should be the component path (without ".js" extension).
|
|
188
|
+
*/
|
|
189
|
+
globalComponentEnv<T>(globalObject: any, path: string, cb: () => T): T;
|
|
190
|
+
/**
|
|
191
|
+
* Create a component definition environment
|
|
192
|
+
*
|
|
193
|
+
* Like `globalComponentEnv` , but the global variables are given as callback arguments.
|
|
194
|
+
*/
|
|
195
|
+
componentEnv<T>(path: string, cb: (env: ComponentEnv) => T): T;
|
|
196
|
+
/**
|
|
197
|
+
* Build a component outside of a definition environment
|
|
198
|
+
*
|
|
199
|
+
* The method do not need a definition environment, so the global object pollution is avoided.
|
|
200
|
+
* `path` should be the component path (without ".js" extension).
|
|
201
|
+
*/
|
|
202
|
+
component(path: string): ComponentBuilder;
|
|
203
|
+
/**
|
|
204
|
+
* Build a behavior outside of a definition environment
|
|
205
|
+
*
|
|
206
|
+
* The method do not need a definition environment, so the global object pollution is avoided.
|
|
207
|
+
* `path` should be the component path (without ".js" extension).
|
|
208
|
+
*/
|
|
209
|
+
behavior(): BehaviorBuilder;
|
|
210
|
+
/**
|
|
211
|
+
* Define a trait behavior
|
|
212
|
+
*/
|
|
213
|
+
traitBehavior<TIn extends {
|
|
214
|
+
[key: string]: any;
|
|
215
|
+
}>(): TraitBehavior<TIn, TIn>;
|
|
216
|
+
traitBehavior<TIn extends {
|
|
217
|
+
[key: string]: any;
|
|
218
|
+
}, TOut extends {
|
|
219
|
+
[key: string]: any;
|
|
220
|
+
}>(trans: (impl: TIn) => TOut): TraitBehavior<TIn, TOut>;
|
|
221
|
+
}
|
|
222
|
+
type ResolveBehaviorBuilder<B, TChainingFilter extends ChainingFilterType> = typeUtils.IsNever<TChainingFilter> extends false ? TChainingFilter extends ChainingFilterType ? Omit<B, TChainingFilter['remove']> & TChainingFilter['add'] : B : B;
|
|
223
|
+
export declare class BaseBehaviorBuilder<TPrevData extends DataList = Empty, TData extends DataList = Empty, TProperty extends PropertyList = Empty, TMethod extends MethodList = Empty, TChainingFilter extends ChainingFilterType = never, TPendingChainingFilter extends ChainingFilterType = never, TComponentExport = undefined> {
|
|
224
|
+
protected _$codeSpace: CodeSpace;
|
|
225
|
+
protected _$: glassEasel.BehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter>;
|
|
226
|
+
protected _$parents: GeneralBehavior[];
|
|
227
|
+
/** Implement a trait behavior */
|
|
228
|
+
implement<TIn extends {
|
|
229
|
+
[key: string]: any;
|
|
230
|
+
}>(traitBehavior: TraitBehavior<TIn, any>, impl: TIn): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
231
|
+
/** Add external classes */
|
|
232
|
+
externalClasses(list: string[]): this;
|
|
233
|
+
data<T extends DataList>(gen: (() => typeUtils.NewFieldList<AllData<TData, TProperty>, T>)): ResolveBehaviorBuilder<BaseBehaviorBuilder<T, TData & T, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
234
|
+
property<N extends string, T extends PropertyType, V extends PropertyTypeToValueType<T>>(name: N, def: N extends keyof (TData & TProperty) ? never : typeUtils.PropertyListItem<T, V>): ResolveBehaviorBuilder<BaseBehaviorBuilder<TPrevData, TData, TProperty & Record<N, unknown extends V ? T : typeUtils.PropertyOption<T, V>>, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
235
|
+
/**
|
|
236
|
+
* Add some public methods
|
|
237
|
+
*
|
|
238
|
+
* The public method can be used as an event handler, and can be visited in component instance.
|
|
239
|
+
*/
|
|
240
|
+
methods<T extends MethodList>(funcs: T & ThisType<Component<TData, TProperty, TMethod & T, any>>): ResolveBehaviorBuilder<BaseBehaviorBuilder<TPrevData, TData, TProperty, TMethod & T, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
241
|
+
/**
|
|
242
|
+
* Add a data observer
|
|
243
|
+
*/
|
|
244
|
+
observer<P extends typeUtils.ObserverDataPathStrings<typeUtils.DataWithPropertyValues<TPrevData, TProperty>>, V = typeUtils.DeepReadonly<typeUtils.GetFromObserverPathString<typeUtils.DataWithPropertyValues<TPrevData, TProperty>, P>>>(paths: P, func: (this: Component<TData, TProperty, TMethod, any>, newValue: V) => void, once?: boolean): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
245
|
+
observer<P extends typeUtils.ObserverDataPathStrings<typeUtils.DataWithPropertyValues<TPrevData, TProperty>>[], V = {
|
|
246
|
+
[K in keyof P]: typeUtils.DeepReadonly<typeUtils.GetFromObserverPathString<typeUtils.DataWithPropertyValues<TPrevData, TProperty>, P[K]>>;
|
|
247
|
+
}>(paths: readonly [...P], func: (this: Component<TData, TProperty, TMethod, any>, ...newValues: V extends any[] ? V : never) => void, once?: boolean): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
248
|
+
/**
|
|
249
|
+
* Add a lifetime callback
|
|
250
|
+
*/
|
|
251
|
+
lifetime<L extends keyof Lifetimes>(name: L, func: (this: Component<TData, TProperty, TMethod, any>, ...args: Parameters<Lifetimes[L]>) => ReturnType<Lifetimes[L]>, once?: boolean): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
252
|
+
/**
|
|
253
|
+
* Add a page-lifetime callback
|
|
254
|
+
*/
|
|
255
|
+
pageLifetime(name: string, func: (this: Component<TData, TProperty, TMethod, any>, ...args: any[]) => any, once?: boolean): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
256
|
+
/**
|
|
257
|
+
* Add a relation
|
|
258
|
+
*/
|
|
259
|
+
relation(name: string, rel: RelationParams & ThisType<Component<TData, TProperty, TMethod, TComponentExport>>): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
260
|
+
init<TExport extends Record<string, TaggedMethod<(...args: any[]) => any>> | void>(func: (this: Component<TData, TProperty, TMethod, TComponentExport>, builderContext: BuilderContext<TPrevData, TProperty, Component<TData, TProperty, TMethod, TComponentExport>>) => TExport): ResolveBehaviorBuilder<BaseBehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
261
|
+
definition<TNewData extends DataList = Empty, TNewProperty extends PropertyList = Empty, TNewMethod extends MethodList = Empty>(def: BehaviorDefinition<TNewData, TNewProperty, TNewMethod> & ThisType<Component<TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TComponentExport>>): ResolveBehaviorBuilder<BaseBehaviorBuilder<TPrevData, TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
262
|
+
}
|
|
263
|
+
export declare class BehaviorBuilder<TPrevData extends DataList = Empty, TData extends DataList = Empty, TProperty extends PropertyList = Empty, TMethod extends MethodList = Empty, TChainingFilter extends ChainingFilterType = never, TPendingChainingFilter extends ChainingFilterType = never, TComponentExport = undefined> extends BaseBehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport> {
|
|
264
|
+
private _$definitionFilter;
|
|
265
|
+
/** @internal */
|
|
266
|
+
static create(codeSpace: CodeSpace): BehaviorBuilder;
|
|
267
|
+
/** Define a chaining filter */
|
|
268
|
+
chainingFilter<TAddedFields extends {
|
|
269
|
+
[key: string]: any;
|
|
270
|
+
}, TRemovedFields extends string = never>(func: ChainingFilterFunc<TAddedFields, TRemovedFields>): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, {
|
|
271
|
+
add: TAddedFields;
|
|
272
|
+
remove: TRemovedFields;
|
|
273
|
+
}, TComponentExport>, TChainingFilter>;
|
|
274
|
+
/** Use another behavior */
|
|
275
|
+
behavior<UData extends DataList, UProperty extends PropertyList, UMethod extends MethodList, UChainingFilter extends ChainingFilterType>(behavior: Behavior<UData, UProperty, UMethod, UChainingFilter>): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData & UData, TProperty & UProperty, TMethod & UMethod, UChainingFilter, TPendingChainingFilter, TComponentExport>, UChainingFilter>;
|
|
276
|
+
/**
|
|
277
|
+
* Add some template data fields
|
|
278
|
+
*
|
|
279
|
+
* It does not support raw data, but a `gen` function which returns the new data fields.
|
|
280
|
+
* The `gen` function executes once during component creation.
|
|
281
|
+
*/
|
|
282
|
+
data<T extends DataList>(gen: (() => typeUtils.NewFieldList<AllData<TData, TProperty>, T>)): ResolveBehaviorBuilder<BehaviorBuilder<T, TData & T, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
283
|
+
/**
|
|
284
|
+
* Add a single property
|
|
285
|
+
*
|
|
286
|
+
* The property name should be different from other properties.
|
|
287
|
+
*/
|
|
288
|
+
property<N extends string, T extends PropertyType, V extends PropertyTypeToValueType<T>>(name: N, def: N extends keyof (TData & TProperty) ? never : typeUtils.PropertyListItem<T, V>): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData, TProperty & Record<N, unknown extends V ? T : typeUtils.PropertyOption<T, V>>, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
289
|
+
/**
|
|
290
|
+
* Add some public methods
|
|
291
|
+
*
|
|
292
|
+
* The public method can be used as an event handler, and can be visited in component instance.
|
|
293
|
+
*/
|
|
294
|
+
methods<T extends MethodList>(funcs: T & ThisType<Component<TData, TProperty, TMethod & T, any>>): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData, TProperty, TMethod & T, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
295
|
+
/**
|
|
296
|
+
* Execute a function while component instance creation
|
|
297
|
+
*
|
|
298
|
+
* A `BuilderContext` is provided to tweak the component creation progress.
|
|
299
|
+
* The return value is used as the "export" value of the behavior,
|
|
300
|
+
* which can be imported by other behaviors.
|
|
301
|
+
*/
|
|
302
|
+
init<TExport extends Record<string, TaggedMethod<(...args: any[]) => any>> | void>(func: (this: Component<TData, TProperty, TMethod, TComponentExport>, builderContext: BuilderContext<TPrevData, TProperty, Component<TData, TProperty, TMethod, TComponentExport>>) => TExport): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
303
|
+
/** Apply a classic definition object */
|
|
304
|
+
definition<TNewData extends DataList = Empty, TNewProperty extends PropertyList = Empty, TNewMethod extends MethodList = Empty>(def: BehaviorDefinition<TNewData, TNewProperty, TNewMethod> & ThisType<Component<TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TComponentExport>>): ResolveBehaviorBuilder<BehaviorBuilder<TPrevData, TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
305
|
+
/**
|
|
306
|
+
* Finish the behavior definition process
|
|
307
|
+
*/
|
|
308
|
+
register(): Behavior<TData, TProperty, TMethod, TPendingChainingFilter>;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* A direct way to create a component
|
|
312
|
+
*/
|
|
313
|
+
export declare class ComponentBuilder<TPrevData extends DataList = Empty, TData extends DataList = Empty, TProperty extends PropertyList = Empty, TMethod extends MethodList = Empty, TChainingFilter extends ChainingFilterType = never, TPendingChainingFilter extends ChainingFilterType = never, TComponentExport = undefined> extends BaseBehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport> {
|
|
314
|
+
private _$is;
|
|
315
|
+
private _$alias?;
|
|
316
|
+
private _$options?;
|
|
317
|
+
private _$export?;
|
|
318
|
+
private _$proto?;
|
|
319
|
+
/** @internal */
|
|
320
|
+
static create(codeSpace: CodeSpace, is: string, alias?: string[]): ComponentBuilder<typeUtils.Empty, typeUtils.Empty, typeUtils.Empty, typeUtils.Empty, never, never, undefined>;
|
|
321
|
+
/**
|
|
322
|
+
* Set the component options
|
|
323
|
+
*
|
|
324
|
+
* If called multiple times, only the latest call is valid.
|
|
325
|
+
*/
|
|
326
|
+
options(options: ComponentDefinitionOptions): ResolveBehaviorBuilder<this, TChainingFilter>;
|
|
327
|
+
/** Use another behavior */
|
|
328
|
+
behavior<UData extends DataList, UProperty extends PropertyList, UMethod extends MethodList, UChainingFilter extends ChainingFilterType>(behavior: Behavior<UData, UProperty, UMethod, UChainingFilter>): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData & UData, TProperty & UProperty, TMethod & UMethod, UChainingFilter, TPendingChainingFilter, TComponentExport>, UChainingFilter>;
|
|
329
|
+
/** Set the export value when the component is being selected */
|
|
330
|
+
export<TNewComponentExport>(f: (this: Component<TData, TProperty, TMethod, TComponentExport>, source: GeneralComponent | null) => TNewComponentExport): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TNewComponentExport>, TChainingFilter>;
|
|
331
|
+
/**
|
|
332
|
+
* Add some template data fields
|
|
333
|
+
*
|
|
334
|
+
* It does not support raw data, but a `gen` function which returns the new data fields.
|
|
335
|
+
* The `gen` function executes once during component creation.
|
|
336
|
+
*/
|
|
337
|
+
data<T extends DataList>(gen: (() => typeUtils.NewFieldList<AllData<TData, TProperty>, T>)): ResolveBehaviorBuilder<ComponentBuilder<T, TData & T, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
338
|
+
/**
|
|
339
|
+
* Add a single property
|
|
340
|
+
*
|
|
341
|
+
* The property name should be different from other properties.
|
|
342
|
+
*/
|
|
343
|
+
property<N extends string, T extends PropertyType, V extends PropertyTypeToValueType<T>>(name: N, def: N extends keyof (TData & TProperty) ? never : typeUtils.PropertyListItem<T, V>): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData, TProperty & Record<N, unknown extends V ? T : typeUtils.PropertyOption<T, V>>, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
344
|
+
/**
|
|
345
|
+
* Add some public methods
|
|
346
|
+
*
|
|
347
|
+
* The public method can be used as an event handler, and can be visited in component instance.
|
|
348
|
+
*/
|
|
349
|
+
methods<T extends MethodList>(funcs: T & ThisType<Component<TData, TProperty, TMethod & T, any>>): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData, TProperty, TMethod & T, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
350
|
+
/**
|
|
351
|
+
* Execute a function while component instance creation
|
|
352
|
+
*
|
|
353
|
+
* A `BuilderContext` is provided to tweak the component creation progress.
|
|
354
|
+
* The return value is used as the "export" value of the behavior,
|
|
355
|
+
* which can be imported by other behaviors.
|
|
356
|
+
*/
|
|
357
|
+
init<TExport extends Record<string, TaggedMethod<(...args: any[]) => any>> | void>(func: (this: Component<TData, TProperty, TMethod, TComponentExport>, builderContext: BuilderContext<TPrevData, TProperty, Component<TData, TProperty, TMethod, TComponentExport>>) => TExport): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
358
|
+
/** Apply a classic definition object */
|
|
359
|
+
definition<TNewData extends DataList = Empty, TNewProperty extends PropertyList = Empty, TNewMethod extends MethodList = Empty, TNewComponentExport = undefined>(def: ComponentDefinition<TNewData, TNewProperty, TNewMethod, TNewComponentExport> & ThisType<Component<TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TNewComponentExport>>): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData & TNewData, TProperty & TNewProperty, TMethod & TNewMethod, TChainingFilter, TPendingChainingFilter, TNewComponentExport>, TChainingFilter>;
|
|
360
|
+
pageDefinition<TNewData extends DataList, TNewExtraFields extends {
|
|
361
|
+
[k: PropertyKey]: any;
|
|
362
|
+
}>(def: PageDefinition<TNewData, TNewExtraFields> & ThisType<Component<TData & TNewData, TProperty, TMethod & TNewExtraFields, undefined>>): ResolveBehaviorBuilder<ComponentBuilder<TPrevData, TData & TNewData, TProperty, TMethod & TNewExtraFields, TChainingFilter, TPendingChainingFilter, TComponentExport>, TChainingFilter>;
|
|
363
|
+
/**
|
|
364
|
+
* Finish the component definition process
|
|
365
|
+
*/
|
|
366
|
+
register(): ComponentType<TData, TProperty, TMethod, TComponentExport>;
|
|
367
|
+
}
|
|
368
|
+
export {};
|
|
369
|
+
//# sourceMappingURL=space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/space.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAA;AAClC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,KAAK,IAAI,SAAS,EACnB,MAAM,SAAS,CAAA;AAIhB,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,OAAO,EACP,SAAS,EAET,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAGpB,MAAM,WAAW,eAAe;IAC9B,CACE,KAAK,SAAS,QAAQ,EACtB,eAAe,SAAS;QAAE,CAAC,CAAC,EAAE,WAAW,GAAG,GAAG,CAAA;KAAE,EAEjD,UAAU,EAAE,cAAc,CACxB,KAAK,EACL,eAAe,CAChB,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,GAChE,IAAI,CAAA;CACR;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,gBAAgB,CAAA;IACpB,CACE,KAAK,SAAS,QAAQ,EACtB,SAAS,SAAS,YAAY,EAC9B,OAAO,SAAS,UAAU,EAC1B,gBAAgB,EAEhB,UAAU,EAAE,mBAAmB,CAC7B,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,CACjB,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,GACnE,IAAI,CAAA;CACR;AAGD,MAAM,WAAW,mBAAmB;IAClC,IAAI,eAAe,CAAA;IACnB,CACE,KAAK,SAAS,QAAQ,EACtB,SAAS,SAAS,YAAY,EAC9B,OAAO,SAAS,UAAU,EAE1B,gBAAgB,EAEhB,UAAU,EAAE,kBAAkB,CAC5B,KAAK,EACL,SAAS,EACT,OAAO,CACR,GACA,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7C,KAAK,CAAC,GAAG,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpE,KAAK,CACH,GAAG,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAClC,IAAI,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EACnC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;CACxD;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,KAAK,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;AAC5B,KAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;AAClC,KAAK,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;AAC1C,KAAK,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;AAC1C,KAAK,uBAAuB,CAAC,CAAC,SAAS,YAAY,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAA;AAC3F,KAAK,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;AACtC,KAAK,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAA;AACtD,KAAK,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;AAChD,KAAK,YAAY,CAAC,EAAE,SAAS,eAAe,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAC1E,KAAK,kBAAkB,CACrB,YAAY,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC3C,cAAc,SAAS,MAAM,GAAG,KAAK,IACnC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;AAE9D,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,IAAI;IAC5C,IAAI,IAAI,OAAO,EAAE,CAAA;IACjB,WAAW,EAAE,IAAI,SAAS,KAAK,GAC3B,SAAS,GACT,MAAM,IAAI,EAAE,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,IAAI;IACrE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,EACA,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,oBAAoB,GACpB,mBAAmB,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3F,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;IAClG,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAA;AAED,MAAM,WAAW,cAAc,CAC7B,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,YAAY,EAC9B,aAAa,CACb,SAAQ,QAAQ,CAAC,aAAa,CAAC;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,OAAO,EAAE,CACP,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,KACxE,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,GAAG,SAAS;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC1C,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EACtC,IAAI,EAAE,GAAG,KACN,IAAI,CAAC;IACV,QAAQ,CAAC,IAAI,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC3C,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACtF,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACpF,QAAQ,CACN,CAAC,SAAS,SAAS,CAAC,uBAAuB,CACzC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CACvD,EACD,CAAC,GAAG,SAAS,CAAC,YAAY,CACzB,SAAS,CAAE,yBAAyB,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAC/F,EAED,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,GAC1B,IAAI,CAAC;IACR,QAAQ,CACN,CAAC,SAAS,SAAS,CAAC,uBAAuB,CACzC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CACvD,EAAE,EACH,CAAC,GAAG;SACD,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,YAAY,CACpC,SAAS,CAAC,yBAAyB,CACjC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,EACtD,CAAC,CAAC,CAAC,CAAC,CACL,CACF;KACF,EAED,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EACtB,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GACxD,IAAI,CAAC;IACR,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACrE,MAAM,EAAE,CAAC,EAAE,SAAS,eAAe,EAAE,IAAI,EAAE,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,gBAAgB;IAChB,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,aAAa,CAAyE;IAC9F,OAAO,CAAC,mBAAmB,CAA2D;IACtF,OAAO,CAAC,eAAe,CAA4B;IACnD,gBAAgB;IAChB,kBAAkB,EAAE,UAAU,CAAC,YAAY,CAAA;IAC3C,gBAAgB;IAChB,mBAAmB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAA;IACvD,gBAAgB;IAChB,iBAAiB,EAAE,UAAU,CAAC,eAAe,GAAG,IAAI,CAAO;IAE3D,gBAAgB;gBAEd,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,OAAO,EACpB,gBAAgB,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAC7C,eAAe,CAAC,EAAE,SAAS;IAyB7B,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,UAAU,CAAC,cAAc;IAI9C;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe;IAIvD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,UAAQ;IASvE;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAI1E;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,iBAAiB;IAIhF;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,GAAG,SAAS;IAIpF;;;;OAIG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;IAIrE;;;;OAIG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAIzE,gBAAgB;IAChB,uBAAuB,CACrB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,0BAA0B,GACnC,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAkDhD;;;;;;;;OAQG;IACH,kBAAkB,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAoBtE;;;;OAIG;IACH,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,CAAC,GAAG,CAAC;IA8F9D;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAIzC;;;;;OAKG;IACH,QAAQ,IAAI,eAAe;IAI3B;;OAEG;IACH,aAAa,CAAC,GAAG,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5E,aAAa,CACX,GAAG,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAClC,IAAI,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EACnC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC;CAUxD;AAED,KAAK,sBAAsB,CAAC,CAAC,EAAE,eAAe,SAAS,kBAAkB,IACvE,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,KAAK,GAC9C,eAAe,SAAS,kBAAkB,GACxC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,GAC3D,CAAC,GACH,CAAC,CAAA;AAEL,qBAAa,mBAAmB,CAC9B,SAAS,SAAS,QAAQ,GAAG,KAAK,EAClC,KAAK,SAAS,QAAQ,GAAG,KAAK,EAC9B,SAAS,SAAS,YAAY,GAAG,KAAK,EACtC,OAAO,SAAS,UAAU,GAAG,KAAK,EAClC,eAAe,SAAS,kBAAkB,GAAG,KAAK,EAClD,sBAAsB,SAAS,kBAAkB,GAAG,KAAK,EACzD,gBAAgB,GAAG,SAAS;IAE5B,SAAS,CAAC,WAAW,EAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,EAAG,UAAU,CAAC,eAAe,CACvC,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,CACvB,CAAA;IACD,SAAS,CAAC,SAAS,EAAE,eAAe,EAAE,CAAK;IAE3C,iCAAiC;IACjC,SAAS,CAAC,GAAG,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC1C,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EACtC,IAAI,EAAE,GAAG,GACR,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAKhD,2BAA2B;IAC3B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrB,GAAG,EAAE,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAChE,sBAAsB,CACvB,mBAAmB,CACjB,CAAC,EACD,KAAK,GAAG,CAAC,EACT,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAKD,QAAQ,CACN,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,EAEpC,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAClF,sBAAsB,CACvB,mBAAmB,CACjB,SAAS,EACT,KAAK,EACL,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7E,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAKD;;;;OAIG;IACH,OAAO,CACL,CAAC,SAAS,UAAU,EAEpB,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GACjE,sBAAsB,CACvB,mBAAmB,CACjB,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,GAAG,CAAC,EACX,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAKD;;OAEG;IACH,QAAQ,CACN,CAAC,SAAS,SAAS,CAAC,uBAAuB,CACzC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CACvD,EACD,CAAC,GAAG,SAAS,CAAC,YAAY,CACxB,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAC/F,EAED,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,EAC5E,IAAI,CAAC,EAAE,OAAO,GACb,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAChD,QAAQ,CACN,CAAC,SAAS,SAAS,CAAC,uBAAuB,CACzC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CACvD,EAAE,EACH,CAAC,GAAG;SACD,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,YAAY,CACpC,SAAS,CAAC,yBAAyB,CACjC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,EACtD,CAAC,CAAC,CAAC,CAAC,CACL,CACF;KACF,EAED,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EACtB,IAAI,EAAE,CACJ,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAC/C,GAAG,SAAS,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,KACtC,IAAI,EACT,IAAI,CAAC,EAAE,OAAO,GACb,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAUhD;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,SAAS,EAChC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CACJ,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAC/C,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAC7B,IAAI,UAAQ,GACX,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAKhD;;OAEG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9E,IAAI,UAAQ,GACX,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAKhD;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,GACrF,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAehD,IAAI,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAC/E,IAAI,EAAE,CACJ,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAC5D,cAAc,EAAE,cAAc,CAC5B,SAAS,EACT,SAAS,EACT,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CACvD,KACE,OAAO,GAEX,sBAAsB,CACvB,mBAAmB,CACjB,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IA+DD,UAAU,CACR,QAAQ,SAAS,QAAQ,GAAG,KAAK,EACjC,YAAY,SAAS,YAAY,GAAG,KAAK,EACzC,UAAU,SAAS,UAAU,GAAG,KAAK,EAErC,GAAG,EAAE,kBAAkB,CACrB,QAAQ,EACR,YAAY,EACZ,UAAU,CACX,GAAG,QAAQ,CACV,SAAS,CACP,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,gBAAgB,CACjB,CACF,GACA,sBAAsB,CACvB,mBAAmB,CACjB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;CAqFF;AAED,qBAAa,eAAe,CAC1B,SAAS,SAAS,QAAQ,GAAG,KAAK,EAClC,KAAK,SAAS,QAAQ,GAAG,KAAK,EAC9B,SAAS,SAAS,YAAY,GAAG,KAAK,EACtC,OAAO,SAAS,UAAU,GAAG,KAAK,EAClC,eAAe,SAAS,kBAAkB,GAAG,KAAK,EAClD,sBAAsB,SAAS,kBAAkB,GAAG,KAAK,EACzD,gBAAgB,GAAG,SAAS,CAC5B,SAAQ,mBAAmB,CAC3B,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB;IACC,OAAO,CAAC,kBAAkB,CAA8B;IAExD,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAQpD,+BAA+B;IAC/B,cAAc,CACZ,YAAY,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAC3C,cAAc,SAAS,MAAM,GAAG,KAAK,EAErC,IAAI,EAAE,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,GACrD,sBAAsB,CACvB,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE;QACrE,GAAG,EAAE,YAAY,CAAC;QAClB,MAAM,EAAE,cAAc,CAAC;KACxB,EAAE,gBAAgB,CAAC,EACpB,eAAe,CAChB;IAKD,2BAA2B;IAC3B,QAAQ,CACN,KAAK,SAAS,QAAQ,EACtB,SAAS,SAAS,YAAY,EAC9B,OAAO,SAAS,UAAU,EAC1B,eAAe,SAAS,kBAAkB,EAE1C,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,GAC7D,sBAAsB,CACvB,eAAe,CACb,SAAS,EACT,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,SAAS,EACrB,OAAO,GAAG,OAAO,EACjB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAOD;;;;;OAKG;IACM,IAAI,CAAC,CAAC,SAAS,QAAQ,EAC9B,GAAG,EAAE,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAChE,sBAAsB,CACvB,eAAe,CACb,CAAC,EACD,KAAK,GAAG,CAAC,EACT,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;OAIG;IACM,QAAQ,CACf,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,EAEpC,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAClF,sBAAsB,CACvB,eAAe,CACb,SAAS,EACT,KAAK,EACL,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7E,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;OAIG;IACM,OAAO,CACd,CAAC,SAAS,UAAU,EAEpB,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GACjE,sBAAsB,CACvB,eAAe,CACb,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,GAAG,CAAC,EACX,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;;;OAMG;IACM,IAAI,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EACxF,IAAI,EAAE,CACJ,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAC5D,cAAc,EAAE,cAAc,CAC5B,SAAS,EACT,SAAS,EACT,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CACvD,KACE,OAAO,GAEX,sBAAsB,CACvB,eAAe,CACb,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID,wCAAwC;IAC/B,UAAU,CACjB,QAAQ,SAAS,QAAQ,GAAG,KAAK,EACjC,YAAY,SAAS,YAAY,GAAG,KAAK,EACzC,UAAU,SAAS,UAAU,GAAG,KAAK,EAErC,GAAG,EAAE,kBAAkB,CACrB,QAAQ,EACR,YAAY,EACZ,UAAU,CACX,GAAG,QAAQ,CACV,SAAS,CACP,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,gBAAgB,CACjB,CACF,GACA,sBAAsB,CACvB,eAAe,CACb,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAMD;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC;CAOxE;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAC3B,SAAS,SAAS,QAAQ,GAAG,KAAK,EAClC,KAAK,SAAS,QAAQ,GAAG,KAAK,EAC9B,SAAS,SAAS,YAAY,GAAG,KAAK,EACtC,OAAO,SAAS,UAAU,GAAG,KAAK,EAClC,eAAe,SAAS,kBAAkB,GAAG,KAAK,EAClD,sBAAsB,SAAS,kBAAkB,GAAG,KAAK,EACzD,gBAAgB,GAAG,SAAS,CAC5B,SAAQ,mBAAmB,CAC3B,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB;IACC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAuD;IACxE,OAAO,CAAC,OAAO,CAAC,CAA6D;IAE7E,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE;IA0BhE;;;;OAIG;IACH,OAAO,CACL,OAAO,EAAE,0BAA0B,GAClC,sBAAsB,CAAC,IAAI,EAAE,eAAe,CAAC;IAKhD,2BAA2B;IAC3B,QAAQ,CACN,KAAK,SAAS,QAAQ,EACtB,SAAS,SAAS,YAAY,EAC9B,OAAO,SAAS,UAAU,EAC1B,eAAe,SAAS,kBAAkB,EAE1C,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,GAC7D,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,SAAS,EACrB,OAAO,GAAG,OAAO,EACjB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAOD,gEAAgE;IAChE,MAAM,CAAC,mBAAmB,EACxB,CAAC,EAAE,CACD,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAC5D,MAAM,EAAE,gBAAgB,GAAG,IAAI,KAC5B,mBAAmB,GACvB,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,mBAAmB,CACpB,EACD,eAAe,CAChB;IAMD;;;;;OAKG;IACM,IAAI,CAAC,CAAC,SAAS,QAAQ,EAC9B,GAAG,EAAE,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAChE,sBAAsB,CACvB,gBAAgB,CACd,CAAC,EACD,KAAK,GAAG,CAAC,EACT,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;OAIG;IACM,QAAQ,CACf,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,EAEpC,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAClF,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,EACL,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7E,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;OAIG;IACM,OAAO,CACd,CAAC,SAAS,UAAU,EAEpB,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GACjE,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,GAAG,CAAC,EACX,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID;;;;;;OAMG;IACM,IAAI,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EACxF,IAAI,EAAE,CACJ,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAC5D,cAAc,EAAE,cAAc,CAC5B,SAAS,EACT,SAAS,EACT,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CACvD,KACE,OAAO,GAEX,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAID,wCAAwC;IAC/B,UAAU,CACjB,QAAQ,SAAS,QAAQ,GAAG,KAAK,EACjC,YAAY,SAAS,YAAY,GAAG,KAAK,EACzC,UAAU,SAAS,UAAU,GAAG,KAAK,EACrC,mBAAmB,GAAG,SAAS,EAE/B,GAAG,EAAE,mBAAmB,CACtB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,mBAAmB,CACpB,GAAG,QAAQ,CACV,SAAS,CACP,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,mBAAmB,CACpB,CACF,GACA,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,UAAU,EACpB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,CACpB,EACD,eAAe,CAChB;IAMD,cAAc,CACZ,QAAQ,SAAS,QAAQ,EACzB,eAAe,SAAS;QAAE,CAAC,CAAC,EAAE,WAAW,GAAG,GAAG,CAAA;KAAE,EAEjD,GAAG,EAAE,cAAc,CACjB,QAAQ,EACR,eAAe,CAChB,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG,eAAe,EAAE,SAAS,CAAC,CAAC,GACzF,sBAAsB,CACvB,gBAAgB,CACd,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,SAAS,EACT,OAAO,GAAG,eAAe,EACzB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,CACjB,EACD,eAAe,CAChB;IAuBD;;OAEG;IACH,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC;CAyBvE"}
|