@searchspring/snap-controller 0.27.5 → 0.27.8
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/dist/cjs/Abstract/AbstractController.d.ts +5 -4
- package/dist/cjs/Abstract/AbstractController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts +6 -5
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +43 -37
- package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderController.js +4 -1
- package/dist/cjs/Recommendation/RecommendationController.d.ts +26 -12
- package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationController.js +12 -11
- package/dist/cjs/Search/SearchController.d.ts +1 -1
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +39 -36
- package/dist/cjs/types.d.ts +3 -3
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/getParams.d.ts +2 -1
- package/dist/cjs/utils/getParams.d.ts.map +1 -1
- package/dist/cjs/utils/getParams.js +0 -1
- package/dist/esm/Abstract/AbstractController.d.ts +5 -4
- package/dist/esm/Abstract/AbstractController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.d.ts +6 -5
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +13 -8
- package/dist/esm/Finder/FinderController.d.ts.map +1 -1
- package/dist/esm/Finder/FinderController.js +4 -1
- package/dist/esm/Recommendation/RecommendationController.d.ts +26 -12
- package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationController.js +11 -10
- package/dist/esm/Search/SearchController.d.ts +1 -1
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +8 -5
- package/dist/esm/types.d.ts +3 -3
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/getParams.d.ts +2 -1
- package/dist/esm/utils/getParams.d.ts.map +1 -1
- package/dist/esm/utils/getParams.js +0 -1
- package/package.json +11 -11
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LogMode } from '@searchspring/snap-logger';
|
|
2
2
|
import { DomTargeter } from '@searchspring/snap-toolbox';
|
|
3
|
+
import type { Client } from '@searchspring/snap-client';
|
|
3
4
|
import type { AbstractStore } from '@searchspring/snap-store-mobx';
|
|
4
5
|
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
5
6
|
import type { EventManager, Middleware } from '@searchspring/snap-event-manager';
|
|
@@ -12,7 +13,7 @@ export declare abstract class AbstractController {
|
|
|
12
13
|
id: string;
|
|
13
14
|
type: string;
|
|
14
15
|
config: ControllerConfig;
|
|
15
|
-
client:
|
|
16
|
+
client: Client;
|
|
16
17
|
store: AbstractStore;
|
|
17
18
|
urlManager: UrlManager;
|
|
18
19
|
eventManager: EventManager;
|
|
@@ -27,14 +28,14 @@ export declare abstract class AbstractController {
|
|
|
27
28
|
private _environment;
|
|
28
29
|
get initialized(): boolean;
|
|
29
30
|
constructor(config: ControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
|
|
30
|
-
createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter;
|
|
31
|
-
addTargeter(target: DomTargeter): DomTargeter;
|
|
31
|
+
createTargeter(target: Target, onTarget: OnTarget, document?: Document): DomTargeter | undefined;
|
|
32
|
+
addTargeter(target: DomTargeter): DomTargeter | undefined;
|
|
32
33
|
set environment(env: LogMode);
|
|
33
34
|
get environment(): LogMode;
|
|
34
35
|
init(): Promise<void>;
|
|
35
36
|
retarget(): void;
|
|
36
37
|
abstract search(): Promise<void>;
|
|
37
|
-
plugin(func: (cntrlr: AbstractController, ...args: any
|
|
38
|
+
plugin(func: (cntrlr: AbstractController, ...args: any) => Promise<void>, ...args: unknown[]): Promise<void>;
|
|
38
39
|
on<T>(event: string, ...func: Middleware<T>[]): void;
|
|
39
40
|
use(attachments: Attachments): void;
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractController.d.ts","sourceRoot":"","sources":["../../../src/Abstract/AbstractController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGpG,8BAAsB,kBAAkB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,SAAc;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC3B,CAAM;IAEP,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsB;IAE1C,IAAI,WAAW,IAAI,OAAO,CAEzB;gBAGA,MAAM,EAAE,gBAAgB,EACxB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,GAAE,gBAAqB;IA2ExB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAIhG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAShE,IAAW,WAAW,CAAC,GAAG,EAAE,OAAO,EAKlC;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,QAAQ,IAAI,IAAI;aAMP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlH,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAoC1C"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { StorageStore } from '@searchspring/snap-store-mobx';
|
|
2
3
|
import { AbstractController } from '../Abstract/AbstractController';
|
|
3
4
|
import { ControllerTypes } from '../types';
|
|
4
|
-
import
|
|
5
|
+
import { AutocompleteStore } from '@searchspring/snap-store-mobx';
|
|
5
6
|
import type { AutocompleteControllerConfig, ControllerServices, ContextVariables } from '../types';
|
|
6
7
|
import type { AutocompleteRequestModel } from '@searchspring/snapi-types';
|
|
7
8
|
export declare const INPUT_DELAY = 200;
|
|
8
9
|
declare type AutocompleteTrackMethods = {
|
|
9
10
|
product: {
|
|
10
|
-
click: (e:
|
|
11
|
+
click: (e: MouseEvent, result: any) => void;
|
|
11
12
|
};
|
|
12
13
|
};
|
|
13
14
|
export declare class AutocompleteController extends AbstractController {
|
|
@@ -22,12 +23,12 @@ export declare class AutocompleteController extends AbstractController {
|
|
|
22
23
|
reset(): void;
|
|
23
24
|
handlers: {
|
|
24
25
|
input: {
|
|
25
|
-
enterKey: (e: KeyboardEvent) => Promise<boolean>;
|
|
26
|
+
enterKey: (e: KeyboardEvent) => Promise<boolean | undefined>;
|
|
26
27
|
escKey: (e: KeyboardEvent) => void;
|
|
27
28
|
focus: (e: FocusEvent) => void;
|
|
28
|
-
formSubmit: (e:
|
|
29
|
+
formSubmit: (e: React.FormEvent<HTMLInputElement>) => Promise<void>;
|
|
29
30
|
keyUp: (e: KeyboardEvent) => void;
|
|
30
|
-
timeoutDelay:
|
|
31
|
+
timeoutDelay: NodeJS.Timeout;
|
|
31
32
|
};
|
|
32
33
|
document: {
|
|
33
34
|
click: (e: MouseEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,
|
|
1
|
+
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACX,4BAA4B,EAI5B,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA+BrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBA6CpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;uBA0C5D,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAYR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAsBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAgH9B;CACF"}
|
|
@@ -108,9 +108,9 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
108
108
|
input: {
|
|
109
109
|
enterKey: function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
110
110
|
var input, actionUrl, err_1;
|
|
111
|
-
var _a, _b, _c;
|
|
112
|
-
return __generator(this, function (
|
|
113
|
-
switch (
|
|
111
|
+
var _a, _b, _c, _d;
|
|
112
|
+
return __generator(this, function (_e) {
|
|
113
|
+
switch (_e.label) {
|
|
114
114
|
case 0:
|
|
115
115
|
if (!(e.keyCode == KEY_ENTER)) return [3 /*break*/, 10];
|
|
116
116
|
input = e.target;
|
|
@@ -123,35 +123,35 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
123
123
|
case 1:
|
|
124
124
|
// wait until loading is complete before submission
|
|
125
125
|
// TODO make this better
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
_e.sent();
|
|
127
|
+
_e.label = 2;
|
|
128
128
|
case 2:
|
|
129
129
|
if (!this.store.loading) return [3 /*break*/, 4];
|
|
130
130
|
return [4 /*yield*/, timeout(exports.INPUT_DELAY)];
|
|
131
131
|
case 3:
|
|
132
|
-
|
|
132
|
+
_e.sent();
|
|
133
133
|
return [3 /*break*/, 2];
|
|
134
134
|
case 4:
|
|
135
135
|
// use corrected query and originalQuery
|
|
136
136
|
if (this.store.search.originalQuery) {
|
|
137
|
-
input.value = this.store.search.query.string;
|
|
138
|
-
actionUrl = actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
|
|
137
|
+
input.value = (_d = this.store.search.query) === null || _d === void 0 ? void 0 : _d.string;
|
|
138
|
+
actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
|
|
139
139
|
}
|
|
140
|
-
|
|
140
|
+
_e.label = 5;
|
|
141
141
|
case 5:
|
|
142
|
-
actionUrl = actionUrl.set('query', input.value);
|
|
143
|
-
|
|
142
|
+
actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set('query', input.value);
|
|
143
|
+
_e.label = 6;
|
|
144
144
|
case 6:
|
|
145
|
-
|
|
145
|
+
_e.trys.push([6, 8, , 9]);
|
|
146
146
|
return [4 /*yield*/, this.eventManager.fire('beforeSubmit', {
|
|
147
147
|
controller: this,
|
|
148
148
|
input: input,
|
|
149
149
|
})];
|
|
150
150
|
case 7:
|
|
151
|
-
|
|
151
|
+
_e.sent();
|
|
152
152
|
return [3 /*break*/, 9];
|
|
153
153
|
case 8:
|
|
154
|
-
err_1 =
|
|
154
|
+
err_1 = _e.sent();
|
|
155
155
|
if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
|
|
156
156
|
this.log.warn("'beforeSubmit' middleware cancelled");
|
|
157
157
|
return [2 /*return*/];
|
|
@@ -162,8 +162,8 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
162
162
|
}
|
|
163
163
|
return [3 /*break*/, 9];
|
|
164
164
|
case 9:
|
|
165
|
-
window.location.href = actionUrl.href;
|
|
166
|
-
|
|
165
|
+
window.location.href = (actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.href) || '';
|
|
166
|
+
_e.label = 10;
|
|
167
167
|
case 10: return [2 /*return*/];
|
|
168
168
|
}
|
|
169
169
|
});
|
|
@@ -183,9 +183,9 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
183
183
|
},
|
|
184
184
|
formSubmit: function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
185
185
|
var form, input, err_2;
|
|
186
|
-
var _a, _b, _c;
|
|
187
|
-
return __generator(this, function (
|
|
188
|
-
switch (
|
|
186
|
+
var _a, _b, _c, _d;
|
|
187
|
+
return __generator(this, function (_e) {
|
|
188
|
+
switch (_e.label) {
|
|
189
189
|
case 0:
|
|
190
190
|
form = e.target;
|
|
191
191
|
input = form.querySelector("input[".concat(INPUT_ATTRIBUTE, "]"));
|
|
@@ -197,31 +197,33 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
197
197
|
case 1:
|
|
198
198
|
// wait until loading is complete before submission
|
|
199
199
|
// TODO make this better
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
_e.sent();
|
|
201
|
+
_e.label = 2;
|
|
202
202
|
case 2:
|
|
203
203
|
if (!this.store.loading) return [3 /*break*/, 4];
|
|
204
204
|
return [4 /*yield*/, timeout(exports.INPUT_DELAY)];
|
|
205
205
|
case 3:
|
|
206
|
-
|
|
206
|
+
_e.sent();
|
|
207
207
|
return [3 /*break*/, 2];
|
|
208
208
|
case 4:
|
|
209
209
|
if (this.store.search.originalQuery) {
|
|
210
|
-
input
|
|
210
|
+
if (input) {
|
|
211
|
+
input.value = (_d = this.store.search.query) === null || _d === void 0 ? void 0 : _d.string;
|
|
212
|
+
}
|
|
211
213
|
addHiddenFormInput(form, PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
|
|
212
214
|
}
|
|
213
|
-
|
|
215
|
+
_e.label = 5;
|
|
214
216
|
case 5:
|
|
215
|
-
|
|
217
|
+
_e.trys.push([5, 7, , 8]);
|
|
216
218
|
return [4 /*yield*/, this.eventManager.fire('beforeSubmit', {
|
|
217
219
|
controller: this,
|
|
218
220
|
input: input,
|
|
219
221
|
})];
|
|
220
222
|
case 6:
|
|
221
|
-
|
|
223
|
+
_e.sent();
|
|
222
224
|
return [3 /*break*/, 8];
|
|
223
225
|
case 7:
|
|
224
|
-
err_2 =
|
|
226
|
+
err_2 = _e.sent();
|
|
225
227
|
if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
|
|
226
228
|
this.log.warn("'beforeSubmit' middleware cancelled");
|
|
227
229
|
return [2 /*return*/];
|
|
@@ -238,7 +240,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
238
240
|
});
|
|
239
241
|
}); },
|
|
240
242
|
keyUp: function (e) {
|
|
241
|
-
var _a, _b, _c;
|
|
243
|
+
var _a, _b, _c, _d, _e;
|
|
242
244
|
// ignore enter and escape keys
|
|
243
245
|
if ((e === null || e === void 0 ? void 0 : e.keyCode) == KEY_ENTER || (e === null || e === void 0 ? void 0 : e.keyCode) == KEY_ESCAPE)
|
|
244
246
|
return;
|
|
@@ -252,7 +254,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
252
254
|
return;
|
|
253
255
|
}
|
|
254
256
|
_this.store.state.input = value;
|
|
255
|
-
if (_this.config.settings.syncInputs) {
|
|
257
|
+
if ((_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.syncInputs) {
|
|
256
258
|
var inputs = document.querySelectorAll(_this.config.selector);
|
|
257
259
|
inputs.forEach(function (input) {
|
|
258
260
|
input.value = value;
|
|
@@ -263,7 +265,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
263
265
|
// TODO cancel any current requests?
|
|
264
266
|
_this.store.reset();
|
|
265
267
|
_this.urlManager.reset().go();
|
|
266
|
-
if (((
|
|
268
|
+
if (((_c = _this.store.trending) === null || _c === void 0 ? void 0 : _c.length) && ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.trending) === null || _e === void 0 ? void 0 : _e.showResults)) {
|
|
267
269
|
_this.store.trending[0].preview();
|
|
268
270
|
}
|
|
269
271
|
}
|
|
@@ -357,11 +359,13 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
357
359
|
return [4 /*yield*/, this.client.autocomplete(params)];
|
|
358
360
|
case 6:
|
|
359
361
|
_a = _d.sent(), meta = _a[0], response = _a[1];
|
|
362
|
+
// @ts-ignore
|
|
360
363
|
if (!response.meta) {
|
|
361
364
|
/**
|
|
362
365
|
* MockClient will overwrite the client search() method and use
|
|
363
366
|
* SearchData to return mock data which already contains meta data
|
|
364
367
|
*/
|
|
368
|
+
// @ts-ignore
|
|
365
369
|
response.meta = meta;
|
|
366
370
|
}
|
|
367
371
|
searchProfile.stop();
|
|
@@ -394,6 +398,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
394
398
|
afterSearchProfile.stop();
|
|
395
399
|
this.log.profile(afterSearchProfile);
|
|
396
400
|
// update the store
|
|
401
|
+
// @ts-ignore
|
|
397
402
|
this.store.update(response);
|
|
398
403
|
afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
399
404
|
_d.label = 11;
|
|
@@ -623,27 +628,28 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
623
628
|
document.removeEventListener('click', this.handlers.document.click);
|
|
624
629
|
};
|
|
625
630
|
AutocompleteController.prototype.bind = function () {
|
|
626
|
-
var _a, _b, _c;
|
|
631
|
+
var _a, _b, _c, _d, _e;
|
|
627
632
|
return __awaiter(this, void 0, void 0, function () {
|
|
628
633
|
var inputs;
|
|
629
634
|
var _this = this;
|
|
630
|
-
return __generator(this, function (
|
|
631
|
-
switch (
|
|
635
|
+
return __generator(this, function (_f) {
|
|
636
|
+
switch (_f.label) {
|
|
632
637
|
case 0:
|
|
633
638
|
if (!!this.initialized) return [3 /*break*/, 2];
|
|
634
639
|
return [4 /*yield*/, this.init()];
|
|
635
640
|
case 1:
|
|
636
|
-
|
|
637
|
-
|
|
641
|
+
_f.sent();
|
|
642
|
+
_f.label = 2;
|
|
638
643
|
case 2:
|
|
639
644
|
this.unbind();
|
|
640
645
|
inputs = document.querySelectorAll(this.config.selector);
|
|
641
646
|
inputs.forEach(function (input) {
|
|
647
|
+
var _a, _b;
|
|
642
648
|
input.setAttribute('spellcheck', 'false');
|
|
643
649
|
input.setAttribute('autocomplete', 'off');
|
|
644
650
|
input.setAttribute(INPUT_ATTRIBUTE, '');
|
|
645
651
|
input.addEventListener('keyup', _this.handlers.input.keyUp);
|
|
646
|
-
if (_this.config.settings.initializeFromUrl && !input.value && _this.store.state.input) {
|
|
652
|
+
if (((_b = (_a = _this.config) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.initializeFromUrl) && !input.value && _this.store.state.input) {
|
|
647
653
|
input.value = _this.store.state.input;
|
|
648
654
|
}
|
|
649
655
|
input.addEventListener('focus', _this.handlers.input.focus);
|
|
@@ -668,7 +674,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
668
674
|
_this.setFocused(input);
|
|
669
675
|
}
|
|
670
676
|
});
|
|
671
|
-
if (((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.trending) === null || _b === void 0 ? void 0 : _b.limit) > 0 && !((
|
|
677
|
+
if (((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.trending) === null || _b === void 0 ? void 0 : _b.limit) && ((_d = (_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.trending) === null || _d === void 0 ? void 0 : _d.limit) > 0 && !((_e = this.store.trending) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
672
678
|
this.searchTrending();
|
|
673
679
|
}
|
|
674
680
|
document.addEventListener('click', this.handlers.document.click);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;
|
|
1
|
+
{"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAmC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBzI,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAchC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoH9B;CACF"}
|
|
@@ -167,14 +167,16 @@ var FinderController = /** @class */ (function (_super) {
|
|
|
167
167
|
return [3 /*break*/, 7];
|
|
168
168
|
case 7:
|
|
169
169
|
searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
170
|
-
return [4 /*yield*/, this.client.
|
|
170
|
+
return [4 /*yield*/, this.client.finder(params)];
|
|
171
171
|
case 8:
|
|
172
172
|
_a = _b.sent(), meta = _a[0], response = _a[1];
|
|
173
|
+
// @ts-ignore
|
|
173
174
|
if (!response.meta) {
|
|
174
175
|
/**
|
|
175
176
|
* MockClient will overwrite the client search() method and use
|
|
176
177
|
* SearchData to return mock data which already contains meta data
|
|
177
178
|
*/
|
|
179
|
+
// @ts-ignore
|
|
178
180
|
response.meta = meta;
|
|
179
181
|
}
|
|
180
182
|
searchProfile.stop();
|
|
@@ -207,6 +209,7 @@ var FinderController = /** @class */ (function (_super) {
|
|
|
207
209
|
afterSearchProfile.stop();
|
|
208
210
|
this.log.profile(afterSearchProfile);
|
|
209
211
|
// update the store
|
|
212
|
+
// @ts-ignore
|
|
210
213
|
this.store.update(response);
|
|
211
214
|
afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
212
215
|
_b.label = 13;
|
|
@@ -1,31 +1,45 @@
|
|
|
1
1
|
import { AbstractController } from '../Abstract/AbstractController';
|
|
2
2
|
import { ControllerTypes } from '../types';
|
|
3
|
-
import
|
|
3
|
+
import { BeaconEvent } from '@searchspring/snap-tracker';
|
|
4
4
|
import type { RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
5
5
|
import type { RecommendationControllerConfig, ControllerServices, ContextVariables } from '../types';
|
|
6
6
|
declare type RecommendationTrackMethods = {
|
|
7
7
|
product: {
|
|
8
|
-
click: (e:
|
|
9
|
-
render: (result: any) => BeaconEvent;
|
|
10
|
-
impression: (result: any) => BeaconEvent;
|
|
8
|
+
click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
|
|
9
|
+
render: (result: any) => BeaconEvent | undefined;
|
|
10
|
+
impression: (result: any) => BeaconEvent | undefined;
|
|
11
11
|
};
|
|
12
|
-
click: (e:
|
|
13
|
-
impression: () => BeaconEvent;
|
|
14
|
-
render: () => BeaconEvent;
|
|
12
|
+
click: (e: MouseEvent) => BeaconEvent | undefined;
|
|
13
|
+
impression: () => BeaconEvent | undefined;
|
|
14
|
+
render: () => BeaconEvent | undefined;
|
|
15
|
+
};
|
|
16
|
+
declare type RecommendCombinedRequestModel = {
|
|
17
|
+
tag: string;
|
|
18
|
+
siteId: string;
|
|
19
|
+
product?: string;
|
|
20
|
+
shopper?: string;
|
|
21
|
+
categories?: string[];
|
|
22
|
+
cart?: string[];
|
|
23
|
+
lastViewed?: string[];
|
|
24
|
+
test?: boolean;
|
|
25
|
+
branch?: string;
|
|
15
26
|
};
|
|
16
27
|
export declare class RecommendationController extends AbstractController {
|
|
17
28
|
type: ControllerTypes;
|
|
18
29
|
store: RecommendationStore;
|
|
19
30
|
config: RecommendationControllerConfig;
|
|
20
31
|
events: {
|
|
21
|
-
click
|
|
22
|
-
impression
|
|
23
|
-
render
|
|
24
|
-
product
|
|
32
|
+
click?: BeaconEvent;
|
|
33
|
+
impression?: BeaconEvent;
|
|
34
|
+
render?: BeaconEvent;
|
|
35
|
+
product?: Record<string, {
|
|
36
|
+
impression?: BeaconEvent;
|
|
37
|
+
render?: BeaconEvent;
|
|
38
|
+
}>;
|
|
25
39
|
};
|
|
26
40
|
constructor(config: RecommendationControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
|
|
27
41
|
track: RecommendationTrackMethods;
|
|
28
|
-
get params():
|
|
42
|
+
get params(): RecommendCombinedRequestModel;
|
|
29
43
|
search: () => Promise<void>;
|
|
30
44
|
}
|
|
31
45
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,
|
|
1
|
+
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAkC,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhJ,aAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QAC/D,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;QACjD,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KACrD,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,WAAW,GAAG,SAAS,CAAC;IAClD,UAAU,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,aAAK,6BAA6B,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,EAAE,WAAW,CAAC;YAAC,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC7E,CAKC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8B3B,KAAK,EAAE,0BAA0B,CAqK/B;IAEF,IAAI,MAAM,IAAI,6BAA6B,CA0B1C;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqG9B;CACF"}
|
|
@@ -86,9 +86,9 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
86
86
|
var _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
|
|
87
87
|
_this.type = types_1.ControllerTypes.recommendation;
|
|
88
88
|
_this.events = {
|
|
89
|
-
click:
|
|
90
|
-
impression:
|
|
91
|
-
render:
|
|
89
|
+
click: undefined,
|
|
90
|
+
impression: undefined,
|
|
91
|
+
render: undefined,
|
|
92
92
|
product: {},
|
|
93
93
|
};
|
|
94
94
|
_this.track = {
|
|
@@ -99,7 +99,7 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
99
99
|
var payload = {
|
|
100
100
|
type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_CLICK,
|
|
101
101
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
102
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
102
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
103
103
|
event: {
|
|
104
104
|
context: {
|
|
105
105
|
action: 'navigate',
|
|
@@ -123,12 +123,12 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
123
123
|
},
|
|
124
124
|
impression: function (result) {
|
|
125
125
|
var _a;
|
|
126
|
-
if (!_this.store.profile.tag || !result || !_this.events.impression || ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression))
|
|
126
|
+
if (!_this.store.profile.tag || !result || !_this.events.impression || (_this.events.product && ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression)))
|
|
127
127
|
return;
|
|
128
128
|
var payload = {
|
|
129
129
|
type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_IMPRESSION,
|
|
130
130
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
131
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
131
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
132
132
|
event: {
|
|
133
133
|
context: {
|
|
134
134
|
placement: _this.store.profile.placement,
|
|
@@ -157,7 +157,7 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
157
157
|
var payload = {
|
|
158
158
|
type: snap_tracker_1.BeaconType.PROFILE_PRODUCT_RENDER,
|
|
159
159
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
160
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
160
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
161
161
|
event: {
|
|
162
162
|
context: {
|
|
163
163
|
placement: _this.store.profile.placement,
|
|
@@ -186,7 +186,7 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
186
186
|
var event = _this.tracker.track.event({
|
|
187
187
|
type: snap_tracker_1.BeaconType.PROFILE_CLICK,
|
|
188
188
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
189
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
189
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
190
190
|
event: {
|
|
191
191
|
context: {
|
|
192
192
|
action: 'navigate',
|
|
@@ -212,7 +212,7 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
212
212
|
var event = _this.tracker.track.event({
|
|
213
213
|
type: snap_tracker_1.BeaconType.PROFILE_IMPRESSION,
|
|
214
214
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
215
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
215
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
216
216
|
event: {
|
|
217
217
|
context: {
|
|
218
218
|
placement: _this.store.profile.placement,
|
|
@@ -237,7 +237,7 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
237
237
|
var event = _this.tracker.track.event({
|
|
238
238
|
type: snap_tracker_1.BeaconType.PROFILE_RENDER,
|
|
239
239
|
category: snap_tracker_1.BeaconCategory.RECOMMENDATIONS,
|
|
240
|
-
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } :
|
|
240
|
+
context: _this.config.globals.siteId ? { website: { trackingCode: _this.config.globals.siteId } } : undefined,
|
|
241
241
|
event: {
|
|
242
242
|
context: {
|
|
243
243
|
placement: _this.store.profile.placement,
|
|
@@ -427,7 +427,8 @@ var RecommendationController = /** @class */ (function (_super) {
|
|
|
427
427
|
}
|
|
428
428
|
Object.defineProperty(RecommendationController.prototype, "params", {
|
|
429
429
|
get: function () {
|
|
430
|
-
var
|
|
430
|
+
var _a, _b;
|
|
431
|
+
var params = __assign({ tag: this.config.tag, batched: this.config.batched, branch: this.config.branch || 'production', order: (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.order }, this.config.globals);
|
|
431
432
|
var shopperId = this.tracker.context.shopperId;
|
|
432
433
|
var cart = this.tracker.cookies.cart.get();
|
|
433
434
|
var lastViewed = this.tracker.cookies.viewed.get();
|
|
@@ -7,7 +7,7 @@ import type { SearchControllerConfig, ControllerServices, ContextVariables } fro
|
|
|
7
7
|
import type { SearchRequestModel } from '@searchspring/snapi-types';
|
|
8
8
|
declare type SearchTrackMethods = {
|
|
9
9
|
product: {
|
|
10
|
-
click: (e:
|
|
10
|
+
click: (e: MouseEvent, result: any) => BeaconEvent | undefined;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
13
|
export declare class SearchController extends AbstractController {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAElB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
|