@alterior/annotations 3.0.0-beta.9 → 3.0.0-rc.5
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/LICENSE +21 -0
- package/README.md +3 -9
- package/dist/annotations.d.ts +212 -25
- package/dist/annotations.d.ts.map +1 -0
- package/dist/annotations.js +312 -91
- package/dist/annotations.js.map +1 -1
- package/dist/annotations.test.d.ts +1 -0
- package/dist/annotations.test.d.ts.map +1 -0
- package/dist/annotations.test.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/sealed.d.ts +4 -0
- package/dist/sealed.d.ts.map +1 -0
- package/dist/sealed.js +4 -0
- package/dist/sealed.js.map +1 -1
- package/dist/test.d.ts +1 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js.map +1 -1
- package/dist.esm/annotations.d.ts +432 -0
- package/dist.esm/annotations.d.ts.map +1 -0
- package/dist.esm/annotations.js +769 -0
- package/dist.esm/annotations.js.map +1 -0
- package/dist.esm/annotations.test.d.ts +2 -0
- package/dist.esm/annotations.test.d.ts.map +1 -0
- package/dist.esm/annotations.test.js +688 -0
- package/dist.esm/annotations.test.js.map +1 -0
- package/dist.esm/index.d.ts +3 -0
- package/dist.esm/index.d.ts.map +1 -0
- package/dist.esm/index.js +3 -0
- package/dist.esm/index.js.map +1 -0
- package/dist.esm/sealed.d.ts +13 -0
- package/dist.esm/sealed.d.ts.map +1 -0
- package/dist.esm/sealed.js +13 -0
- package/dist.esm/sealed.js.map +1 -0
- package/dist.esm/test.d.ts +2 -0
- package/dist.esm/test.d.ts.map +1 -0
- package/dist.esm/test.js +6 -0
- package/dist.esm/test.js.map +1 -0
- package/package.json +41 -31
- package/tsconfig.esm.json +8 -0
- package/tsconfig.json +15 -9
- package/tsconfig.tsbuildinfo +4292 -0
- package/dist/visibility.d.ts +0 -16
- package/dist/visibility.js +0 -38
- package/dist/visibility.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-2018 William Lahti
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @alterior/annotations
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@alterior/annotations)
|
|
4
4
|
|
|
5
5
|
Provides a standardized way to define metadata on programmatic elements of a Typescript application by using classes and decorators. The data being attached is called an "annotation" and is represented as an instance of an Annotation class, and the functions which attach the metadata are called "decorators".
|
|
6
6
|
|
|
@@ -72,10 +72,10 @@ Sometimes you may want to add additional behavior to be run when the decorator i
|
|
|
72
72
|
|
|
73
73
|
```typescript
|
|
74
74
|
export const Color = ColorAnnotation.decorator({
|
|
75
|
-
factory
|
|
75
|
+
factory(site : DecoratorTarget, name : string) {
|
|
76
76
|
// do special stuff here before
|
|
77
77
|
// returning the annotation to be attached.
|
|
78
|
-
return new
|
|
78
|
+
return new ColorAnnotation(name);
|
|
79
79
|
}
|
|
80
80
|
})
|
|
81
81
|
```
|
|
@@ -89,9 +89,3 @@ Sometimes you have multiple decorators that are storing the same type of metadat
|
|
|
89
89
|
export const Red = () => Color('red');
|
|
90
90
|
export const Blue = () => Color('red');
|
|
91
91
|
```
|
|
92
|
-
|
|
93
|
-
## Angular
|
|
94
|
-
|
|
95
|
-
(This is probably only useful inside Alterior; it is used to provide Angular compatibility for `@alterior/di`)
|
|
96
|
-
|
|
97
|
-
This library stores annotations the same way that Angular does, and does it in a compatible manner. However, all Alterior annotations will be ignored by Angular unless an Angular-specific metadata name is applied to the annotation. This can be done using the `@NgMetadataName()` decorator. The decorator causes the annotation instances to have their `ngMetadataName` property set to the string passed to the decorator.
|
package/dist/annotations.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @alterior/annotations
|
|
2
|
+
* @alterior/annotations
|
|
3
|
+
* A class library for handling Typescript metadata decorators via "annotation" classes
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
* both Injection-JS and Angular with one set of injection decorators
|
|
5
|
+
* (C) 2017-2019 William Lahti
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
import { NotSupportedError } from '@alterior/common';
|
|
@@ -12,7 +12,6 @@ import { NotSupportedError } from '@alterior/common';
|
|
|
12
12
|
*/
|
|
13
13
|
export interface IAnnotation {
|
|
14
14
|
$metadataName?: string;
|
|
15
|
-
ngMetadataName?: string;
|
|
16
15
|
}
|
|
17
16
|
export declare const ANNOTATIONS_KEY = "__annotations__";
|
|
18
17
|
export declare const CONSTRUCTOR_PARAMETERS_ANNOTATIONS_KEY = "__parameters__";
|
|
@@ -36,15 +35,15 @@ export interface AnnotationDecorator<TS extends any[]> {
|
|
|
36
35
|
(...args: TS): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
37
36
|
(...args: TS): (target: any, propertyKey: string, index: number) => void;
|
|
38
37
|
}
|
|
39
|
-
interface
|
|
38
|
+
export interface DecoratorSite {
|
|
40
39
|
type: 'class' | 'method' | 'property' | 'parameter';
|
|
41
40
|
target: any;
|
|
42
41
|
propertyKey?: string;
|
|
43
42
|
propertyDescriptor?: PropertyDescriptor;
|
|
44
43
|
index?: number;
|
|
45
44
|
}
|
|
46
|
-
interface AnnotationDecoratorOptions<AnnoT, TS extends any[] = []> {
|
|
47
|
-
factory?: (target:
|
|
45
|
+
export interface AnnotationDecoratorOptions<AnnoT, TS extends any[] = []> {
|
|
46
|
+
factory?: (target: DecoratorSite, ...args: TS) => AnnoT | void;
|
|
48
47
|
validTargets?: ('class' | 'property' | 'method' | 'parameter')[];
|
|
49
48
|
allowMultiple?: boolean;
|
|
50
49
|
}
|
|
@@ -57,26 +56,118 @@ export declare class AnnotationTargetError extends NotSupportedError {
|
|
|
57
56
|
private _invalidType;
|
|
58
57
|
private _annotationClass;
|
|
59
58
|
private _supportedTypes;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
get invalidType(): string;
|
|
60
|
+
get supportedTypes(): string[];
|
|
61
|
+
get annotationClass(): Function;
|
|
63
62
|
}
|
|
64
63
|
export declare function MetadataName(name: string): (target: any) => any;
|
|
64
|
+
export interface MutatorDefinition {
|
|
65
|
+
invoke: (site: DecoratorSite) => void;
|
|
66
|
+
options?: AnnotationDecoratorOptions<void>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Mutators are a way to define "mutation decorators" which in some way change the value
|
|
70
|
+
* of the elements they are applied to, as opposed to "annotation decorators", which primarily
|
|
71
|
+
* attach metadata.
|
|
72
|
+
*
|
|
73
|
+
* Create a mutator with Mutator.create().
|
|
74
|
+
*/
|
|
65
75
|
export declare class Mutator {
|
|
66
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Low-level method to ceate a new mutation decorator (mutator) based on the given function.
|
|
78
|
+
* Use `Mutator.define()` instead.
|
|
79
|
+
*/
|
|
80
|
+
static create(mutator: (target: DecoratorSite, ...args: any[]) => void, options?: AnnotationDecoratorOptions<void>): AnnotationDecorator<any[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Define a new mutation decorator (mutator).
|
|
83
|
+
* This should be called and returned from a
|
|
84
|
+
* function definition. For example:
|
|
85
|
+
*
|
|
86
|
+
```
|
|
87
|
+
function Name() {
|
|
88
|
+
return Mutator.define({
|
|
89
|
+
invoke(site) {
|
|
90
|
+
// ...
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
*
|
|
96
|
+
* The `invoke()` function takes a DecoratorSite object which describes the particular
|
|
97
|
+
* invocation that is being run, and importantly, access to the property descriptor
|
|
98
|
+
* for the property being defined. If you wish to completely replace (or wrap) the
|
|
99
|
+
* default value of the property or method you are replacing, set the `value`
|
|
100
|
+
* property of the property descriptor with `site.propertyDescriptor.value`
|
|
101
|
+
*
|
|
102
|
+
* For example:
|
|
103
|
+
* ```
|
|
104
|
+
export function RunTwice() {
|
|
105
|
+
return Mutator.create(
|
|
106
|
+
site => {
|
|
107
|
+
let prop = site.propertyDescriptor;
|
|
108
|
+
let original = prop.value;
|
|
109
|
+
let replacement = function(...args) {
|
|
110
|
+
original.apply(this, args);
|
|
111
|
+
original.apply(this, args);
|
|
112
|
+
}
|
|
113
|
+
prop.value = replacement;
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
static define(definition: MutatorDefinition): (target: any, ...args: any[]) => void;
|
|
67
119
|
}
|
|
68
120
|
/**
|
|
69
121
|
* Represents a metadata annotation which can be applied to classes,
|
|
70
122
|
* constructor parameters, methods, properties, or method parameters
|
|
71
123
|
* via decorators.
|
|
72
124
|
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
125
|
+
* Custom annotations are defined as subclasses of this class.
|
|
126
|
+
* By convention, all custom annotation classes should have a name
|
|
127
|
+
* which ends in "Annotation" such as "NameAnnotation".
|
|
128
|
+
*
|
|
129
|
+
* To create a new annotation create a subclass of `Annotation`
|
|
130
|
+
* with a constructor that takes the parameters you are interested in
|
|
131
|
+
* storing, and save the appropriate information onto fields of the
|
|
132
|
+
* new instance. For your convenience, Annotation provides a default
|
|
133
|
+
* constructor which takes a map object and applies its properties onto
|
|
134
|
+
* the current instance, but you may replace it with a constructor that
|
|
135
|
+
* takes any arguments you wish.
|
|
136
|
+
*
|
|
137
|
+
* You may wish to add type safety to the default constructor parameter.
|
|
138
|
+
* To do so, override the constructor and define it:
|
|
139
|
+
*
|
|
140
|
+
```
|
|
141
|
+
class XYZ extends Annotation {
|
|
142
|
+
constructor(
|
|
143
|
+
options : MyOptions
|
|
144
|
+
) {
|
|
145
|
+
super(options);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
*
|
|
150
|
+
* Annotations are applied by using decorators.
|
|
151
|
+
* When you define a custom annotation, you must also define a
|
|
152
|
+
* custom decorator:
|
|
153
|
+
*
|
|
154
|
+
```
|
|
155
|
+
const Name =
|
|
156
|
+
NameAnnotation.decorator();
|
|
157
|
+
```
|
|
158
|
+
* You can then use that decorator:
|
|
159
|
+
```
|
|
160
|
+
@Name()
|
|
161
|
+
class ABC {
|
|
162
|
+
// ...
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
*
|
|
75
166
|
*/
|
|
76
167
|
export declare class Annotation implements IAnnotation {
|
|
77
168
|
constructor(props?: any);
|
|
78
169
|
readonly $metadataName: string;
|
|
79
|
-
|
|
170
|
+
toString(): string;
|
|
80
171
|
static getMetadataName(): string;
|
|
81
172
|
/**
|
|
82
173
|
* Construct a decorator suitable for attaching annotations of the called type
|
|
@@ -124,16 +215,101 @@ export declare class Annotation implements IAnnotation {
|
|
|
124
215
|
* @param index
|
|
125
216
|
*/
|
|
126
217
|
applyToConstructorParameter(target: any, index: number): this;
|
|
218
|
+
/**
|
|
219
|
+
* Filter the given list of annotations for the ones which match this annotation class
|
|
220
|
+
* based on matching $metadataName.
|
|
221
|
+
*
|
|
222
|
+
* @param this
|
|
223
|
+
* @param annotations
|
|
224
|
+
*/
|
|
225
|
+
static filter<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, annotations: IAnnotation[]): T[];
|
|
226
|
+
/**
|
|
227
|
+
* Get all instances of this annotation class attached to the given class.
|
|
228
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
229
|
+
* that subclass.
|
|
230
|
+
* @param this
|
|
231
|
+
* @param type The class to check
|
|
232
|
+
*/
|
|
127
233
|
static getAllForClass<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any): T[];
|
|
234
|
+
/**
|
|
235
|
+
* Get a single instance of this annotation class attached to the given class.
|
|
236
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
237
|
+
* that subclass.
|
|
238
|
+
*
|
|
239
|
+
* @param this
|
|
240
|
+
* @param type
|
|
241
|
+
*/
|
|
128
242
|
static getForClass<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any): T;
|
|
243
|
+
/**
|
|
244
|
+
* Get all instances of this annotation class attached to the given method.
|
|
245
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
246
|
+
* that subclass.
|
|
247
|
+
*
|
|
248
|
+
* @param this
|
|
249
|
+
* @param type The class where the method is defined
|
|
250
|
+
* @param methodName The name of the method to check
|
|
251
|
+
*/
|
|
129
252
|
static getAllForMethod<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any, methodName: string): T[];
|
|
253
|
+
/**
|
|
254
|
+
* Get one instance of this annotation class attached to the given method.
|
|
255
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
256
|
+
* that subclass.
|
|
257
|
+
*
|
|
258
|
+
* @param this
|
|
259
|
+
* @param type The class where the method is defined
|
|
260
|
+
* @param methodName The name of the method to check
|
|
261
|
+
*/
|
|
130
262
|
static getForMethod<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any, methodName: string): T;
|
|
263
|
+
/**
|
|
264
|
+
* Get all instances of this annotation class attached to the given property.
|
|
265
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
266
|
+
* that subclass.
|
|
267
|
+
*
|
|
268
|
+
* @param this
|
|
269
|
+
* @param type The class where the property is defined
|
|
270
|
+
* @param propertyName The name of the property to check
|
|
271
|
+
*/
|
|
131
272
|
static getAllForProperty<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any, propertyName: string): T[];
|
|
273
|
+
/**
|
|
274
|
+
* Get one instance of this annotation class attached to the given property.
|
|
275
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
276
|
+
* that subclass.
|
|
277
|
+
*
|
|
278
|
+
* @param this
|
|
279
|
+
* @param type The class where the property is defined
|
|
280
|
+
* @param propertyName The name of the property to check
|
|
281
|
+
*/
|
|
132
282
|
static getForProperty<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any, propertyName: string): T;
|
|
283
|
+
/**
|
|
284
|
+
* Get all instances of this annotation class attached to the parameters of the given method.
|
|
285
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
286
|
+
* that subclass.
|
|
287
|
+
*
|
|
288
|
+
* @param this
|
|
289
|
+
* @param type The class where the method is defined
|
|
290
|
+
* @param methodName The name of the method where parameter annotations should be checked for
|
|
291
|
+
*/
|
|
133
292
|
static getAllForParameters<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any, methodName: string): T[][];
|
|
293
|
+
/**
|
|
294
|
+
* Get all instances of this annotation class attached to the parameters of the constructor
|
|
295
|
+
* for the given class.
|
|
296
|
+
* If called on a subclass of Annotation, it returns only annotations that match
|
|
297
|
+
* that subclass.
|
|
298
|
+
*
|
|
299
|
+
* @param this
|
|
300
|
+
* @param type The class where constructor parameter annotations should be checked for
|
|
301
|
+
*/
|
|
134
302
|
static getAllForConstructorParameters<T extends Annotation, TS extends any[]>(this: AnnotationConstructor<T, TS>, type: any): T[][];
|
|
135
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* A helper class for managing annotations
|
|
306
|
+
*/
|
|
136
307
|
export declare class Annotations {
|
|
308
|
+
/**
|
|
309
|
+
* Copy the annotations defined for one class onto another.
|
|
310
|
+
* @param from The class to copy annotations from
|
|
311
|
+
* @param to The class to copy annotations to
|
|
312
|
+
*/
|
|
137
313
|
static copyClassAnnotations(from: Function, to: Function): void;
|
|
138
314
|
/**
|
|
139
315
|
* Apply this annotation to a given target.
|
|
@@ -212,15 +388,31 @@ export declare class Annotations {
|
|
|
212
388
|
* @param methodName
|
|
213
389
|
*/
|
|
214
390
|
static getConstructorParameterAnnotations(type: any): IAnnotation[][];
|
|
391
|
+
/**
|
|
392
|
+
* Get a list of annotations for the given class.
|
|
393
|
+
* @param target
|
|
394
|
+
*/
|
|
215
395
|
private static getListForClass;
|
|
396
|
+
/**
|
|
397
|
+
* Get a list of own annotations for the given class, or create that list.
|
|
398
|
+
* @param target
|
|
399
|
+
*/
|
|
216
400
|
private static getOrCreateListForClass;
|
|
217
|
-
|
|
401
|
+
/**
|
|
402
|
+
* Gets a map of the annotations defined on all properties of the given class/function. To get the annotations of instance fields,
|
|
403
|
+
* make sure to use `Class.prototype`, otherwise static annotations are returned.
|
|
404
|
+
*/
|
|
405
|
+
static getMapForClassProperties(target: Object, mapToPopulate?: Record<string, IAnnotation[]>): Record<string, IAnnotation[]>;
|
|
218
406
|
private static getOrCreateMapForClassProperties;
|
|
219
407
|
private static getListForProperty;
|
|
220
408
|
private static getOrCreateListForProperty;
|
|
221
409
|
private static getOrCreateListForMethod;
|
|
222
410
|
private static getListForMethod;
|
|
223
|
-
|
|
411
|
+
/**
|
|
412
|
+
* Get a map of the annotations defined on all parameters of all methods of the given class/function.
|
|
413
|
+
* To get instance methods, make sure to pass `Class.prototype`, otherwise the results are for static fields.
|
|
414
|
+
*/
|
|
415
|
+
static getMapForMethodParameters(target: Object, mapToPopulate?: Record<string, IAnnotation[][]>): Record<string, IAnnotation[][]>;
|
|
224
416
|
private static getOrCreateMapForMethodParameters;
|
|
225
417
|
private static getListForMethodParameters;
|
|
226
418
|
private static getOrCreateListForMethodParameters;
|
|
@@ -228,18 +420,13 @@ export declare class Annotations {
|
|
|
228
420
|
private static getListForConstructorParameters;
|
|
229
421
|
}
|
|
230
422
|
/**
|
|
231
|
-
*
|
|
423
|
+
* An annotation for attaching a label to a programmatic element.
|
|
424
|
+
* Can be queried with LabelAnnotation.getForClass() for example.
|
|
232
425
|
*/
|
|
233
|
-
export declare class AngularAnnotations {
|
|
234
|
-
static getClassAnnotations(target: any): IAnnotation[];
|
|
235
|
-
static getMethodAnnotations(target: any, methodName: string): IAnnotation[];
|
|
236
|
-
static getPropertyAnnotations(target: any, name: string): IAnnotation[];
|
|
237
|
-
static getParameterAnnotations(target: any, methodName: string): IAnnotation[][];
|
|
238
|
-
}
|
|
239
|
-
export declare function NgMetadataName(name: string): (target: any) => any;
|
|
240
426
|
export declare class LabelAnnotation extends Annotation {
|
|
241
427
|
readonly text: string;
|
|
242
428
|
constructor(text: string);
|
|
243
429
|
}
|
|
244
|
-
export declare const Label: AnnotationDecorator<[string]>;
|
|
430
|
+
export declare const Label: AnnotationDecorator<[text: string]>;
|
|
245
431
|
export {};
|
|
432
|
+
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,aAAa,CAAC,EAAG,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,sCAAsC,mBAAmB,CAAC;AACvE,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAE1E;;;GAGG;AACH,UAAU,qBAAqB,CAAC,KAAK,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE;IACtE,KAAK,GAAG,IAAI,EAAG,EAAE,GAAI,KAAK,CAAC;IAC3B,eAAe,QAAG;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,EAAE,SAAS,GAAG,EAAE;IACjD,CAAC,GAAG,IAAI,EAAG,EAAE,GAAI,CAAC,MAAM,KAAA,EAAE,GAAG,IAAI,OAAA,KAAK,IAAI,CAAC;IAC3C,CAAC,GAAG,IAAI,EAAG,EAAE,GAAI,CAAC,MAAM,KAAA,KAAK,IAAI,CAAC;IAClC,CAAC,GAAG,IAAI,EAAG,EAAE,GAAI,CAAC,MAAM,KAAA,EAAE,WAAW,EAAG,MAAM,KAAK,IAAI,CAAC;IACxD,CAAC,GAAG,IAAI,EAAG,EAAE,GAAI,CAAC,MAAM,KAAA,EAAE,WAAW,EAAG,MAAM,EAAE,UAAU,EAAG,kBAAkB,KAAK,IAAI,CAAC;IACzF,CAAC,GAAG,IAAI,EAAG,EAAE,GAAI,CAAC,MAAM,KAAA,EAAE,WAAW,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,KAAK,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IACrD,MAAM,EAAG,GAAG,CAAC;IACb,WAAW,CAAC,EAAG,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAG,kBAAkB,CAAC;IACzC,KAAK,CAAC,EAAG,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B,CAAC,KAAK,EAAE,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE;IACpE,OAAO,CAAC,EAAG,CAAC,MAAM,EAAG,aAAa,EAAE,GAAG,IAAI,EAAG,EAAE,KAAK,KAAK,GAAG,IAAI,CAAC;IAClE,YAAY,CAAC,EAAG,CAAC,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC;IAClE,aAAa,CAAC,EAAG,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;gBAC5C,eAAe,KAAA,EAAE,WAAW,EAAG,MAAM,EAAE,cAAc,EAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAG,MAAM;IAQ/F,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,eAAe,CAAY;IAEnC,IAAI,WAAW,IAAK,MAAM,CAEzB;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IAED,IAAI,eAAe,IAAI,QAAQ,CAE9B;CACJ;AAkKD,wBAAgB,YAAY,CAAC,IAAI,EAAG,MAAM,wBAEzC;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAG,aAAa,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,qBAAa,OAAO;IAChB;;;OAGG;WACW,MAAM,CAAC,OAAO,EAAG,CAAC,MAAM,EAAG,aAAa,EAAE,GAAG,IAAI,OAAA,KAAK,IAAI,EAAE,OAAO,CAAC,EAAG,0BAA0B,CAAC,IAAI,CAAC;IAQrH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;WACW,MAAM,CAAC,UAAU,EAAG,iBAAiB;CAGtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,UAAW,YAAW,WAAW;gBAEtC,KAAK,CAAC,EAAG,GAAG;IAahB,QAAQ,CAAC,aAAa,EAAG,MAAM,CAAC;IAEhC,QAAQ;IAIR,MAAM,CAAC,eAAe,IAAI,MAAM;IAOhC;;;;;;;;;OASG;WACW,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC1D,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,OAAO,CAAC,EAAG,0BAA0B,CAAC,CAAC,EAAE,EAAE,CAAC;IAUhD;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAG,GAAG,GAAG,IAAI;IAIvC;;;;OAIG;IACI,eAAe,CAAC,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,GAAG,IAAI;IAIzD;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,GAAG,IAAI;IAIvD;;;;;OAKG;IACI,gBAAgB,CAAC,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,GAAG,IAAI;IAI1E;;;;;OAKG;IACI,2BAA2B,CAAC,MAAM,EAAG,GAAG,EAAE,KAAK,EAAG,MAAM,GAAG,IAAI;IAItE;;;;;;OAMG;WACW,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EACvD,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,WAAW,EAAG,WAAW,EAAE,GAC3B,CAAC,EAAE;IAMP;;;;;;OAMG;WACW,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC/D,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,GACX,CAAC,EAAE;IAMN;;;;;;;OAOG;WACW,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC5D,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,GACX,CAAC;IAIJ;;;;;;;;OAQG;WACW,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAChE,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,EACV,UAAU,EAAG,MAAM,GACpB,CAAC,EAAE;IAMN;;;;;;;;OAQG;WACW,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC7D,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,EACV,UAAU,EAAG,MAAM,GACpB,CAAC;IAIJ;;;;;;;;OAQG;WACW,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAClE,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,EACV,YAAY,EAAG,MAAM,GACtB,CAAC,EAAE;IAMN;;;;;;;;OAQG;WACW,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC/D,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,EACV,YAAY,EAAG,MAAM,GACtB,CAAC;IAIJ;;;;;;;;OAQG;WACW,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EACpE,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,EACV,UAAU,EAAG,MAAM,GACpB,CAAC,EAAE,EAAE;IAMR;;;;;;;;OAQG;WACW,8BAA8B,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,GAAG,EAAE,EAC/E,IAAI,EAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACnC,IAAI,EAAG,GAAG,GACX,CAAC,EAAE,EAAE;CAYX;AAED;;GAEG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;WACW,oBAAoB,CAAC,IAAI,EAAG,QAAQ,EAAE,EAAE,EAAG,QAAQ;IAKjE;;;OAGG;WACW,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,EAAE,MAAM,EAAG,GAAG,GAAG,CAAC;IAclF;;;;OAIG;WACW,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,EAAE,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,GAAG,CAAC;IAcpG;;;;OAIG;WACW,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,EAAE,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,GAAG,CAAC;IAelG;;;;;OAKG;WACW,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,EAAE,MAAM,EAAG,GAAG,EAAE,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,GAAG,CAAC;IAarH;;;;;OAKG;WACW,2BAA2B,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,EAAE,MAAM,EAAG,GAAG,EAAE,KAAK,EAAG,MAAM,GAAG,CAAC;IA0BjH;;;;;OAKG;WACW,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAG,CAAC,GAAG,CAAC;IAO7D;;;;;OAKG;WACW,mBAAmB,CAAC,MAAM,EAAG,GAAG,GAAG,WAAW,EAAE;IAK9D;;;;;OAKG;WACW,oBAAoB,CAAC,MAAM,EAAG,GAAG,EAAE,UAAU,EAAG,MAAM,EAAE,QAAQ,GAAG,OAAe,GAAG,WAAW,EAAE;IAKhH;;;;;OAKG;WACW,sBAAsB,CAAC,MAAM,EAAG,GAAG,EAAE,UAAU,EAAG,MAAM,EAAE,QAAQ,GAAG,OAAe,GAAG,WAAW,EAAE;IAKlH;;;;;;;;OAQG;WACW,uBAAuB,CAAC,IAAI,EAAG,GAAG,EAAE,UAAU,EAAG,MAAM,EAAE,QAAQ,GAAG,OAAe,GAAG,WAAW,EAAE,EAAE;IAKnH;;;;;;OAMG;WACW,kCAAkC,CAAC,IAAI,EAAG,GAAG,GAAG,WAAW,EAAE,EAAE;IAK7E;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAMtC;;;OAGG;WACW,wBAAwB,CAAC,MAAM,EAAG,MAAM,EAAE,aAAa,CAAC,EAAG,MAAM,CAAC,MAAM,EAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAC,WAAW,EAAE,CAAC;IAgBpI,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAM/C,OAAO,CAAC,MAAM,CAAC,kBAAkB;IASjC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAQzC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAIvC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;OAGG;WACW,yBAAyB,CAAC,MAAM,EAAG,MAAM,EAAE,aAAa,CAAC,EAAG,MAAM,CAAC,MAAM,EAAC,WAAW,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAC,WAAW,EAAE,EAAE,CAAC;IA2BzI,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAMhD,OAAO,CAAC,MAAM,CAAC,0BAA0B;IASzC,OAAO,CAAC,MAAM,CAAC,kCAAkC;IAQjD,OAAO,CAAC,MAAM,CAAC,uCAAuC;IAMtD,OAAO,CAAC,MAAM,CAAC,+BAA+B;CAGjD;AAED;;;GAGG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC/B,QAAQ,CAAC,IAAI,EAAG,MAAM;gBAAb,IAAI,EAAG,MAAM;CAGrC;AAED,eAAO,MAAM,KAAK,qCAA8B,CAAC"}
|