@delicity/client-cart 1.2.11 → 1.2.12

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.
Files changed (54) hide show
  1. package/README.md +1 -0
  2. package/coverage/clover.xml +71 -0
  3. package/coverage/coverage-final.json +3 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/classes/Cart.ts.html +340 -0
  7. package/coverage/lcov-report/classes/index.html +116 -0
  8. package/coverage/lcov-report/favicon.png +0 -0
  9. package/coverage/lcov-report/index.html +131 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/service/CartService.ts.html +238 -0
  13. package/coverage/lcov-report/service/index.html +116 -0
  14. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  15. package/coverage/lcov-report/sorter.js +196 -0
  16. package/coverage/lcov.info +129 -0
  17. package/jest.config.js +8 -0
  18. package/package.json +1 -1
  19. package/src/classes/Cart.ts +563 -0
  20. package/src/index.ts +3 -0
  21. package/src/service/CartService.ts +139 -0
  22. package/src/service/CategoryAvailabilityService.ts +121 -0
  23. package/src/service/DeliveryService.ts +17 -0
  24. package/src/service/HelperService.ts +9 -0
  25. package/src/test/availability.test.ts +346 -0
  26. package/src/test/class.test.ts +497 -0
  27. package/src/test/data/CartData.json +244 -0
  28. package/src/test/data/menu.json +5875 -0
  29. package/src/test/data/merchant.json +186 -0
  30. package/tsconfig.json +24 -0
  31. package/classes/Cart.d.ts +0 -129
  32. package/classes/Cart.d.ts.map +0 -1
  33. package/classes/Cart.js +0 -482
  34. package/classes/Cart.js.map +0 -1
  35. package/index.d.ts +0 -4
  36. package/index.d.ts.map +0 -1
  37. package/index.js +0 -20
  38. package/index.js.map +0 -1
  39. package/service/CartService.d.ts +0 -14
  40. package/service/CartService.d.ts.map +0 -1
  41. package/service/CartService.js +0 -130
  42. package/service/CartService.js.map +0 -1
  43. package/service/CategoryAvailabilityService.d.ts +0 -23
  44. package/service/CategoryAvailabilityService.d.ts.map +0 -1
  45. package/service/CategoryAvailabilityService.js +0 -103
  46. package/service/CategoryAvailabilityService.js.map +0 -1
  47. package/service/DeliveryService.d.ts +0 -4
  48. package/service/DeliveryService.d.ts.map +0 -1
  49. package/service/DeliveryService.js +0 -30
  50. package/service/DeliveryService.js.map +0 -1
  51. package/service/HelperService.d.ts +0 -2
  52. package/service/HelperService.d.ts.map +0 -1
  53. package/service/HelperService.js +0 -14
  54. package/service/HelperService.js.map +0 -1
@@ -0,0 +1,186 @@
1
+ {
2
+ "source": "delicity",
3
+ "placeId": "ChIJ2b3q9CvbzRIR2lXOKaBFNaY",
4
+ "id": 3,
5
+ "name": "Starbucks - Nice Masséna",
6
+ "subtitle": null,
7
+ "descriptionTitle": "Starbucks - Nice Masséna",
8
+ "description": "Starbucks, un lieu de rencontre et de détente pour de nombreux amateurs de café du monde entier. À première vue, l'extérieur du café présente une façade moderne en verre avec le logo emblématique de Starbucks - une sirène verte - placé de manière proéminente au-dessus de l'entrée principale. \r\n\r\nEn approchant, on peut observer les tables en bois sombre et les chaises en fer forgé qui bordent la terrasse, offrant un espace agréable pour ceux qui souhaitent profiter de leur boisson à l'extérieur.\r\n\r\nEn franchissant les portes coulissantes, une odeur riche et invitante de café fraîchement moulu envahit les narines. L'intérieur est spacieux, avec un mélange harmonieux de tons marrons, verts et crèmes qui reflètent l'esthétique de la marque. Des canapés confortables et des fauteuils rembourrés sont disposés dans des coins tranquilles, tandis que de longues tables en bois avec des bancs offrent un espace pour les groupes plus importants ou pour ceux qui souhaitent travailler. \r\nDes prises électriques sont astucieusement placées pour permettre aux clients de charger leurs appareils.",
9
+ "slug": "starbucks-nice-masseacutena",
10
+ "website": null,
11
+ "schedule": {
12
+ "slots": [
13
+ {
14
+ "id": 3165,
15
+ "day": 1,
16
+ "start": "08:00",
17
+ "end": "23:00"
18
+ },
19
+ {
20
+ "id": 3166,
21
+ "day": 2,
22
+ "start": "08:00",
23
+ "end": "23:00"
24
+ },
25
+ {
26
+ "id": 3166,
27
+ "day": 3,
28
+ "start": "08:00",
29
+ "end": "23:00"
30
+ },
31
+ {
32
+ "id": 3168,
33
+ "day": 4,
34
+ "start": "08:00",
35
+ "end": "23:00"
36
+ },
37
+ {
38
+ "id": 3208,
39
+ "day": 5,
40
+ "start": "08:00",
41
+ "end": "23:00"
42
+ },
43
+ {
44
+ "id": 3171,
45
+ "day": 7,
46
+ "start": "08:00",
47
+ "end": "23:00"
48
+ }
49
+ ],
50
+ "closes": [],
51
+ "options": {
52
+ "closeFilter": [
53
+ "all",
54
+ "order"
55
+ ],
56
+ "closeModeFilter": [
57
+ "ponctual",
58
+ "recuring"
59
+ ],
60
+ "timezone": "Europe/Paris"
61
+ }
62
+ },
63
+ "gallery": [
64
+ {
65
+ "small": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/6ZZgIm9XwI0aDvyD_150x150.jpg",
66
+ "large": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/rMw2zd2AieSWAAX3_500x500.jpg"
67
+ },
68
+ {
69
+ "small": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/5NESEIZ1WbShAFId_150x150.jpg",
70
+ "large": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/dBgAp9K09fqzmBxe_500x500.jpg"
71
+ },
72
+ {
73
+ "small": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/7Ekad6leiCdjW5lP_150x150.jpg",
74
+ "large": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/I7HHvkk6HUOSVrQM_500x500.jpg"
75
+ },
76
+ {
77
+ "small": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/TV3tBS5Ccmf1bz72_150x150.jpg",
78
+ "large": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/hflJZtqi9sFjV2yZ_500x500.jpg"
79
+ },
80
+ {
81
+ "small": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/S6qNuLwgbefZHboV_150x150.jpg",
82
+ "large": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/rBkhPzPCSOS7WWIN_500x500.jpg"
83
+ }
84
+ ],
85
+ "hashtags": [],
86
+ "zoneId": 1,
87
+ "address": {
88
+ "uuid": "addr_YLvD5cI7YjuMGbSsqUN3",
89
+ "address": "26 Rue Massena",
90
+ "position": {
91
+ "type": "Point",
92
+ "coordinates": [
93
+ 7.2660614,
94
+ 43.6972996
95
+ ]
96
+ },
97
+ "city": "Nice",
98
+ "zip": "06000",
99
+ "countryCode": "fr",
100
+ "addressShort": "26 Rue Massena, Nice",
101
+ "additional_informations": null
102
+ },
103
+ "logo": "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/logo/mRE5SV83Bo6j2EJ4_200x200.jpg",
104
+ "phone": {
105
+ "e164": "+33640604023",
106
+ "national": "06 40 60 40 23",
107
+ "country": "FR"
108
+ },
109
+ "banners": [
110
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/banner/UP6Xyu1pO457ewGc_1600x500.jpg",
111
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/rMw2zd2AieSWAAX3_500x500.jpg",
112
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/dBgAp9K09fqzmBxe_500x500.jpg",
113
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/I7HHvkk6HUOSVrQM_500x500.jpg",
114
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/hflJZtqi9sFjV2yZ_500x500.jpg",
115
+ "https://delicity-dev-bucket.s3.amazonaws.com/public/merchants/starbucks-nice-masseacutena/products/rBkhPzPCSOS7WWIN_500x500.jpg"
116
+ ],
117
+ "stats": {
118
+ "favorites": 1,
119
+ "rating": 3.1,
120
+ "reviewCount": null,
121
+ "priceRange": 2
122
+ },
123
+ "features": {
124
+ "booking": true,
125
+ "delivery": true,
126
+ "pickup": true,
127
+ "onsiteCounter": false,
128
+ "onsitePayment": true,
129
+ "internCourier": false,
130
+ "internCourierByDefault": false
131
+ },
132
+ "settings": {
133
+ "preparationAvgDuration": 15,
134
+ "preparationAvgDurationMax": 30,
135
+ "minDeliveryOrderPrice": 1000
136
+ },
137
+ "reviews": {
138
+ "display": true,
139
+ "total": null,
140
+ "items": [],
141
+ "repartition": {
142
+ "1": 0,
143
+ "2": 0,
144
+ "3": 0,
145
+ "4": 0,
146
+ "5": 0
147
+ }
148
+ },
149
+ "categories": [
150
+ {
151
+ "value": "Boulangerie",
152
+ "id": 22
153
+ },
154
+ {
155
+ "value": "Brunchs",
156
+ "id": 23
157
+ },
158
+ {
159
+ "value": "Snacks",
160
+ "id": 48
161
+ }
162
+ ],
163
+ "socials": [
164
+ {
165
+ "logo": "/images/social/instagram.png",
166
+ "url": "https://www.instagram.com/starbucksfrance/?hl=fr",
167
+ "type": "instagram"
168
+ },
169
+ {
170
+ "logo": "/images/social/tiktok.png",
171
+ "url": "https://www.tiktok.com/@starbucks_france?utm_source=linktree&utm_medium=socialmedia&utm_campaign=linktree_tiktok&utm_id=linktree",
172
+ "type": "tiktok"
173
+ },
174
+ {
175
+ "logo": "/images/social/twitter.png",
176
+ "url": "https://twitter.com/StarbucksFrance?utm_source=linktree&utm_medium=socialmedia&utm_campaign=linktree_twitter&utm_id=linktree",
177
+ "type": "twitter"
178
+ },
179
+ {
180
+ "logo": "/images/social/facebook.png",
181
+ "url": "https://www.facebook.com/StarbucksFrance/?utm_source=linktree&utm_medium=socialmedia&utm_campaign=linktree_fb&utm_id=linktree",
182
+ "type": "facebook"
183
+ }
184
+ ],
185
+ "shareUrl": "https://delicity.com/starbucks-nice-masseacutena"
186
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2016",
4
+ "module": "commonjs",
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "sourceMap": true,
8
+ "outDir": "./dist",
9
+ "esModuleInterop": true,
10
+ "resolveJsonModule": true,
11
+ //"forceConsistentCasingInFileNames": true,
12
+ "strict": true,
13
+ "rootDir": "./src",
14
+ "types": [
15
+ "jest"
16
+ ],
17
+ "paths": {
18
+ "@/*": ["./src/*"],
19
+ },
20
+ "skipLibCheck": true
21
+ },
22
+ "include": ["src"],
23
+ "exclude": ["node_modules", "src/test"]
24
+ }
package/classes/Cart.d.ts DELETED
@@ -1,129 +0,0 @@
1
- import { IAddress, ICart, ICartDelivery, ICartDiscount, ICartItem, ICartModifierGroup, ICartPaymentMethod, ICartPrice, IClientConfig, Menu, MenuItem, Merchant, OrderModesEnum } from "@delicity/client-types";
2
- export interface CartClass {
3
- setMenu(menu: Menu): Cart;
4
- setCart(cart: ICart): Cart;
5
- setWhen(when: string | null): Cart;
6
- setOrderMode(mode: OrderModesEnum): Cart;
7
- setAddress(address: IAddress): Promise<Cart>;
8
- setAddressComment(comment: string | null): Cart;
9
- setCartComment(comment: string | null): Cart;
10
- setAcceptCondition(acceptCondition: boolean): Cart;
11
- setPaymentMethods(paymentMethod: ICartPaymentMethod[]): Cart;
12
- pushError(field: string, code: string, vars: any): Cart;
13
- setErrors(errors: {
14
- field: string;
15
- code: string;
16
- vars: any;
17
- }[]): Cart;
18
- getCart(): ICart;
19
- getItems(): ICartItem[];
20
- getTotalItems(): number;
21
- getTotalItemPrice(): number;
22
- getMerchantId(): number;
23
- getCartUUID(): string | undefined;
24
- getOrderMode(): OrderModesEnum;
25
- getCartComment(): string | null;
26
- getDeliveryInfos(): ICartDelivery | undefined;
27
- getPrices(): null | ICartPrice;
28
- getWhen(): null | string;
29
- getAcceptCondition(): boolean;
30
- getPreparationDurationBetween(): number[] | null;
31
- getPaymentMethods(): ICartPaymentMethod[];
32
- getErrors(): {
33
- field: string;
34
- code: string;
35
- vars: any;
36
- }[];
37
- getDiscounts(): ICartDiscount[];
38
- getCoupons(): ICartDiscount[];
39
- canBePayOnsite(): boolean;
40
- getRemoteErrors(): any[];
41
- synchronize(): Promise<Cart>;
42
- addToCart(item: MenuItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
43
- updateCart(cartItem: ICartItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
44
- removeFromCart(cartItem: ICartItem): Cart;
45
- paymentMethodCard(type: 'card_token' | 'payment_method_id', token: string, brand: string, last4: string, expiration: string, amount?: number): Cart;
46
- paymentMethodWallet(type: 'apple_pay' | 'google_pay', amount?: number): Cart;
47
- paymentMethodOnsite(amount?: number): Cart;
48
- validateCart(): Cart;
49
- validateMerchantSchedule(): Cart;
50
- validateCartIfError(): Cart;
51
- resetErrors(): Cart;
52
- cartIntegrity(): void;
53
- }
54
- export declare class Cart implements CartClass {
55
- private cart;
56
- private merchant;
57
- private menu;
58
- private config;
59
- private acceptCondition;
60
- private errors;
61
- private listeners;
62
- private isPriceLoading;
63
- private isDeliveryLoading;
64
- private merchantSchedule;
65
- private remoteErrors;
66
- constructor(config: IClientConfig, merchant: Merchant, menu: Menu, OrderMode: OrderModesEnum, when: string | null);
67
- on(event: string, callback: any): void;
68
- off(event: string, callback: any): void;
69
- trigger(event: string, ...args: any): void;
70
- setMenu(menu: Menu): Cart;
71
- setCart(cart: ICart): Cart;
72
- getPrices(): null | ICartPrice;
73
- getAcceptCondition(): boolean;
74
- setAcceptCondition(acceptCondition: boolean): Cart;
75
- getPreparationDurationBetween(): number[] | null;
76
- getIsDeliveryLoading(): boolean;
77
- getIsPriceLoading(): boolean;
78
- getRemoteErrors(): any[];
79
- setAddress(address: IAddress): Promise<Cart>;
80
- getDeliveryInfos(): ICartDelivery | undefined;
81
- setCartComment(comment: string | null): Cart;
82
- getCartComment(): string | null;
83
- updateCartProductPrices(): void;
84
- setOrderMode(mode: OrderModesEnum): Cart;
85
- setWhen(when: string | null): Cart;
86
- setAddressComment(comment: string | null): Cart;
87
- getMerchantId(): number;
88
- getCartUUID(): string | undefined;
89
- getOrderMode(): OrderModesEnum;
90
- getWhen(): null | string;
91
- getPaymentMethods(): ICartPaymentMethod[];
92
- setPaymentMethods(paymentMethods: ICartPaymentMethod[]): Cart;
93
- getPaymentMethodTotalAmount(): number;
94
- paymentMethodCard(type: 'card_token' | 'payment_method_id', token: string, brand: string, last4: string, expiration: string, amount?: number): Cart;
95
- paymentMethodWallet(type: 'apple_pay' | 'google_pay', amount?: number): Cart;
96
- paymentMethodOnsite(amount?: number): Cart;
97
- addToCart(item: MenuItem, modifierGroups: ICartModifierGroup[], quantity: number, comment?: string, replace?: ICartItem): Cart;
98
- removeFromCart(cartItem: ICartItem): Cart;
99
- updateCart(cartItem: ICartItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
100
- getCart(): ICart;
101
- getItems(): ICartItem[];
102
- getTotalItems(): number;
103
- getTotalItemPrice(): number;
104
- getTotalPrice(): number;
105
- canBePayOnsite(): boolean;
106
- synchronize(): Promise<Cart>;
107
- validateMerchantSchedule(): Cart;
108
- validateCart(): Cart;
109
- validateCartIfError(): Cart;
110
- resetErrors(): Cart;
111
- getErrors(): {
112
- field: string;
113
- code: string;
114
- vars: any;
115
- }[];
116
- pushError(field: string, code: string, vars: any): Cart;
117
- setErrors(errors: {
118
- field: string;
119
- code: string;
120
- vars: any;
121
- }[]): Cart;
122
- updatePaymentMethodAmount(): void;
123
- addDiscountCoupon(code: string): Promise<Cart>;
124
- getDiscounts(): ICartDiscount[];
125
- getCoupons(): ICartDiscount[];
126
- removeDiscount(discount: number): Promise<Cart>;
127
- cartIntegrity(event?: boolean): void;
128
- }
129
- //# sourceMappingURL=Cart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cart.d.ts","sourceRoot":"","sources":["../../src/classes/Cart.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,KAAK,EACL,aAAa,EAAE,aAAa,EAC5B,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,cAAc,EACjB,MAAM,wBAAwB,CAAC;AAuBhC,MAAM,WAAW,SAAS;IAEtB,OAAO,CAAC,IAAI,EAAC,IAAI,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,IAAI,EAAC,KAAK,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,IAAI,EAAC,MAAM,GAAC,IAAI,GAAG,IAAI,CAAA;IAC/B,YAAY,CAAC,IAAI,EAAC,cAAc,GAAG,IAAI,CAAA;IACvC,UAAU,CAAC,OAAO,EAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAC,IAAI,GAAG,IAAI,CAAA;IAC7C,cAAc,CAAC,OAAO,EAAC,MAAM,GAAC,IAAI,GAAG,IAAI,CAAA;IACzC,kBAAkB,CAAC,eAAe,EAAC,OAAO,GAAE,IAAI,CAAA;IAChD,iBAAiB,CAAC,aAAa,EAAC,kBAAkB,EAAE,GAAE,IAAI,CAAA;IAC1D,SAAS,CAAC,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAG,IAAI,CAAA;IACpD,SAAS,CAAC,MAAM,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,GAAG,CAAA;KAAC,EAAE,GAAG,IAAI,CAAA;IAG/D,OAAO,IAAI,KAAK,CAAA;IAChB,QAAQ,IAAI,SAAS,EAAE,CAAA;IACvB,aAAa,IAAI,MAAM,CAAA;IACvB,iBAAiB,IAAI,MAAM,CAAA;IAC3B,aAAa,IAAG,MAAM,CAAA;IACtB,WAAW,IAAG,MAAM,GAAC,SAAS,CAAA;IAC9B,YAAY,IAAI,cAAc,CAAA;IAC9B,cAAc,IAAG,MAAM,GAAC,IAAI,CAAA;IAC5B,gBAAgB,IAAG,aAAa,GAAC,SAAS,CAAA;IAC1C,SAAS,IAAG,IAAI,GAAC,UAAU,CAAA;IAC3B,OAAO,IAAG,IAAI,GAAC,MAAM,CAAA;IACrB,kBAAkB,IAAG,OAAO,CAAA;IAC5B,6BAA6B,IAAG,MAAM,EAAE,GAAC,IAAI,CAAA;IAC7C,iBAAiB,IAAI,kBAAkB,EAAE,CAAA;IACzC,SAAS,IAAI;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,GAAG,CAAA;KAAC,EAAE,CAAA;IACpD,YAAY,IAAI,aAAa,EAAE,CAAA;IAC/B,UAAU,IAAI,aAAa,EAAE,CAAA;IAC7B,cAAc,IAAI,OAAO,CAAA;IACzB,eAAe,IAAI,GAAG,EAAE,CAAA;IAGxB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,EAAC,MAAM,GAAG,IAAI,CAAA;IACrG,UAAU,CAAC,QAAQ,EAAC,SAAS,EAAE,aAAa,EAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,EAAC,MAAM,GAAG,IAAI,CAAA;IAC1G,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IACzC,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI,CAAA;IAChJ,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI,CAAA;IAC3E,mBAAmB,CAAC,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI,CAAA;IACzC,YAAY,IAAI,IAAI,CAAA;IACpB,wBAAwB,IAAI,IAAI,CAAA;IAChC,mBAAmB,IAAI,IAAI,CAAA;IAC3B,WAAW,IAAI,IAAI,CAAA;IACnB,aAAa,IAAI,IAAI,CAAA;CACxB;AAED,qBAAa,IAAK,YAAW,SAAS;IAClC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,YAAY,CAAQ;gBAEhB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAC,IAAI;IAyB/G,EAAE,CAAC,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG;IAO7B,GAAG,CAAC,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG;IAK9B,OAAO,CAAC,KAAK,EAAC,MAAM,EAAE,GAAG,IAAI,EAAC,GAAG;IAUjC,OAAO,CAAC,IAAI,EAAC,IAAI,GAAG,IAAI;IAOxB,OAAO,CAAC,IAAI,EAAC,KAAK,GAAG,IAAI;IAOzB,SAAS,IAAG,IAAI,GAAC,UAAU;IAG3B,kBAAkB,IAAG,OAAO;IAG5B,kBAAkB,CAAC,eAAe,EAAC,OAAO,GAAE,IAAI;IAIhD,6BAA6B,IAAG,MAAM,EAAE,GAAC,IAAI;IAI7C,oBAAoB,IAAG,OAAO;IAG9B,iBAAiB,IAAG,OAAO;IAG3B,eAAe,IAAI,GAAG,EAAE;IAIlB,UAAU,CAAC,OAAO,EAAC,QAAQ,GAAE,OAAO,CAAC,IAAI,CAAC;IAYhD,gBAAgB,IAAG,aAAa,GAAC,SAAS;IAI1C,cAAc,CAAC,OAAO,EAAC,MAAM,GAAC,IAAI,GAAG,IAAI;IAIzC,cAAc,IAAG,MAAM,GAAC,IAAI;IAI5B,uBAAuB;IAqBvB,YAAY,CAAC,IAAI,EAAC,cAAc,GAAG,IAAI;IASvC,OAAO,CAAC,IAAI,EAAC,MAAM,GAAC,IAAI,GAAG,IAAI;IAO/B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAC,IAAI,GAAG,IAAI;IAM7C,aAAa,IAAG,MAAM;IAGtB,WAAW,IAAG,MAAM,GAAC,SAAS;IAG9B,YAAY,IAAI,cAAc;IAG9B,OAAO,IAAI,IAAI,GAAC,MAAM;IAGtB,iBAAiB,IAAI,kBAAkB,EAAE;IAGzC,iBAAiB,CAAC,cAAc,EAAC,kBAAkB,EAAE,GAAE,IAAI;IAM3D,2BAA2B,IAAG,MAAM;IAKpC,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI;IAoBhJ,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI;IAoB3E,mBAAmB,CAAC,MAAM,CAAC,EAAC,MAAM,GAAG,IAAI;IAoBzC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,EAAC,SAAS,GAAG,IAAI;IA6C3H,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAYzC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC,MAAM,GAAG,IAAI;IAI5G,OAAO,IAAI,KAAK;IAGhB,QAAQ,IAAI,SAAS,EAAE;IAGvB,aAAa,IAAI,MAAM;IAGvB,iBAAiB,IAAI,MAAM;IAG3B,aAAa,IAAI,MAAM;IAIvB,cAAc,IAAI,OAAO;IAInB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,wBAAwB,IAAI,IAAI;IAQhC,YAAY,IAAI,IAAI;IAUpB,mBAAmB,IAAI,IAAI;IAI3B,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,GAAG,CAAA;KAAC,EAAE;IAGpD,SAAS,CAAC,KAAK,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAG,IAAI;IAIpD,SAAS,CAAC,MAAM,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,GAAG,CAAA;KAAC,EAAE,GAAG,IAAI;IAI/D,yBAAyB;IAcnB,iBAAiB,CAAC,IAAI,EAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,YAAY,IAAI,aAAa,EAAE;IAG/B,UAAU,IAAI,aAAa,EAAE;IAGvB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,aAAa,CAAC,KAAK,GAAC,OAAa,GAAG,IAAI;CAmD3C"}