@searchspring/snap-controller 0.67.3 → 0.67.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.
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,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,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,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;IA8E3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA2I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,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,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,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;IAkF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -186,22 +186,15 @@ var AutocompleteController = /** @class */ (function (_super) {
186
186
  input = e.target;
187
187
  actionUrl = this.store.services.urlManager;
188
188
  e.preventDefault();
189
- if (!((_c = (_b = (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.spellCorrection)) return [3 /*break*/, 5];
190
- // wait until loading is complete before submission
191
- // TODO make this better
192
- return [4 /*yield*/, timeout(exports.INPUT_DELAY + 1)];
189
+ if (!((_c = (_b = (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.spellCorrection)) return [3 /*break*/, 4];
190
+ _e.label = 1;
193
191
  case 1:
194
- // wait until loading is complete before submission
195
- // TODO make this better
196
- _e.sent();
197
- _e.label = 2;
198
- case 2:
199
- if (!this.store.loading) return [3 /*break*/, 4];
192
+ if (!this.store.loading) return [3 /*break*/, 3];
200
193
  return [4 /*yield*/, timeout(exports.INPUT_DELAY)];
201
- case 3:
194
+ case 2:
202
195
  _e.sent();
203
- return [3 /*break*/, 2];
204
- case 4:
196
+ return [3 /*break*/, 1];
197
+ case 3:
205
198
  if (this.config.settings.integratedSpellCorrection) {
206
199
  //set fallbackQuery to the correctedQuery
207
200
  if (this.store.search.correctedQuery) {
@@ -213,9 +206,14 @@ var AutocompleteController = /** @class */ (function (_super) {
213
206
  input.value = (_d = this.store.search.query) === null || _d === void 0 ? void 0 : _d.string;
214
207
  actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set(PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
215
208
  }
216
- _e.label = 5;
217
- case 5:
209
+ _e.label = 4;
210
+ case 4:
218
211
  actionUrl = actionUrl === null || actionUrl === void 0 ? void 0 : actionUrl.set('query', input.value);
212
+ // wait for input delay
213
+ return [4 /*yield*/, timeout(exports.INPUT_DELAY + 1)];
214
+ case 5:
215
+ // wait for input delay
216
+ _e.sent();
219
217
  _e.label = 6;
220
218
  case 6:
221
219
  _e.trys.push([6, 8, , 9]);
@@ -266,22 +264,15 @@ var AutocompleteController = /** @class */ (function (_super) {
266
264
  form = e.target;
267
265
  input = form.querySelector("input[".concat(INPUT_ATTRIBUTE, "]"));
268
266
  e.preventDefault();
269
- if (!((_c = (_b = (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.spellCorrection)) return [3 /*break*/, 5];
270
- // wait until loading is complete before submission
271
- // TODO make this better
272
- return [4 /*yield*/, timeout(exports.INPUT_DELAY + 1)];
267
+ if (!((_c = (_b = (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.spellCorrection)) return [3 /*break*/, 4];
268
+ _e.label = 1;
273
269
  case 1:
274
- // wait until loading is complete before submission
275
- // TODO make this better
276
- _e.sent();
277
- _e.label = 2;
278
- case 2:
279
- if (!this.store.loading) return [3 /*break*/, 4];
270
+ if (!this.store.loading) return [3 /*break*/, 3];
280
271
  return [4 /*yield*/, timeout(exports.INPUT_DELAY)];
281
- case 3:
272
+ case 2:
282
273
  _e.sent();
283
- return [3 /*break*/, 2];
284
- case 4:
274
+ return [3 /*break*/, 1];
275
+ case 3:
285
276
  if (this.config.settings.integratedSpellCorrection) {
286
277
  //set fallbackQuery to the correctedQuery
287
278
  if (this.store.search.correctedQuery) {
@@ -295,17 +286,24 @@ var AutocompleteController = /** @class */ (function (_super) {
295
286
  }
296
287
  addHiddenFormInput(form, PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
297
288
  }
298
- _e.label = 5;
289
+ _e.label = 4;
290
+ case 4:
291
+ // wait for input delay
292
+ return [4 /*yield*/, timeout(exports.INPUT_DELAY + 1)];
299
293
  case 5:
300
- _e.trys.push([5, 7, , 8]);
294
+ // wait for input delay
295
+ _e.sent();
296
+ _e.label = 6;
297
+ case 6:
298
+ _e.trys.push([6, 8, , 9]);
301
299
  return [4 /*yield*/, this.eventManager.fire('beforeSubmit', {
302
300
  controller: this,
303
301
  input: input,
304
302
  })];
305
- case 6:
306
- _e.sent();
307
- return [3 /*break*/, 8];
308
303
  case 7:
304
+ _e.sent();
305
+ return [3 /*break*/, 9];
306
+ case 8:
309
307
  err_2 = _e.sent();
310
308
  if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
311
309
  this.log.warn("'beforeSubmit' middleware cancelled");
@@ -315,8 +313,8 @@ var AutocompleteController = /** @class */ (function (_super) {
315
313
  this.log.error("error in 'beforeSubmit' middleware");
316
314
  console.error(err_2);
317
315
  }
318
- return [3 /*break*/, 8];
319
- case 8:
316
+ return [3 /*break*/, 9];
317
+ case 9:
320
318
  form.submit();
321
319
  return [2 /*return*/];
322
320
  }
@@ -457,6 +455,8 @@ var AutocompleteController = /** @class */ (function (_super) {
457
455
  return [2 /*return*/];
458
456
  }
459
457
  this.store.loading = true;
458
+ // clear the redirect URL until proper abort functionality is implemented
459
+ this.store.merchandising.redirect = '';
460
460
  _d.label = 3;
461
461
  case 3:
462
462
  _d.trys.push([3, 5, , 6]);
@@ -671,15 +671,19 @@ var AutocompleteController = /** @class */ (function (_super) {
671
671
  });
672
672
  }); });
673
673
  _this.eventManager.on('beforeSubmit', function (ac, next) { return __awaiter(_this, void 0, void 0, function () {
674
- var redirectURL, results, filteredResults, singleResultUrl;
674
+ var loading, inputState, redirectURL, results, filteredResults, singleResultUrl;
675
675
  var _a, _b, _c, _d, _e, _f, _g, _h;
676
676
  return __generator(this, function (_j) {
677
677
  switch (_j.label) {
678
678
  case 0: return [4 /*yield*/, next()];
679
679
  case 1:
680
680
  _j.sent();
681
+ loading = ac.controller.store.loading;
682
+ if (loading)
683
+ return [2 /*return*/];
684
+ inputState = ac.controller.store.state.input;
681
685
  redirectURL = (_a = ac.controller.store.merchandising) === null || _a === void 0 ? void 0 : _a.redirect;
682
- if (redirectURL && ((_d = (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.settings) === null || _c === void 0 ? void 0 : _c.redirects) === null || _d === void 0 ? void 0 : _d.merchandising)) {
686
+ if (((_d = (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.settings) === null || _c === void 0 ? void 0 : _c.redirects) === null || _d === void 0 ? void 0 : _d.merchandising) && inputState && redirectURL) {
683
687
  this.track.redirect(redirectURL);
684
688
  window.location.href = redirectURL;
685
689
  return [2 /*return*/, false];
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,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,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,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;IA8E3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA2I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,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,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,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;IAkF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -108,8 +108,6 @@ export class AutocompleteController extends AbstractController {
108
108
  // when spellCorrection is enabled
109
109
  if (this.config.globals?.search?.query?.spellCorrection) {
110
110
  // wait until loading is complete before submission
111
- // TODO make this better
112
- await timeout(INPUT_DELAY + 1);
113
111
  while (this.store.loading) {
114
112
  await timeout(INPUT_DELAY);
115
113
  }
@@ -126,7 +124,8 @@ export class AutocompleteController extends AbstractController {
126
124
  }
127
125
  }
128
126
  actionUrl = actionUrl?.set('query', input.value);
129
- // TODO expected spell correct behavior queryAssumption
127
+ // wait for input delay
128
+ await timeout(INPUT_DELAY + 1);
130
129
  try {
131
130
  await this.eventManager.fire('beforeSubmit', {
132
131
  controller: this,
@@ -166,8 +165,6 @@ export class AutocompleteController extends AbstractController {
166
165
  // when spellCorrection is enabled
167
166
  if (this.config.globals?.search?.query?.spellCorrection) {
168
167
  // wait until loading is complete before submission
169
- // TODO make this better
170
- await timeout(INPUT_DELAY + 1);
171
168
  while (this.store.loading) {
172
169
  await timeout(INPUT_DELAY);
173
170
  }
@@ -185,7 +182,8 @@ export class AutocompleteController extends AbstractController {
185
182
  addHiddenFormInput(form, PARAM_ORIGINAL_QUERY, this.store.search.originalQuery.string);
186
183
  }
187
184
  }
188
- // TODO expected spell correct behavior queryAssumption
185
+ // wait for input delay
186
+ await timeout(INPUT_DELAY + 1);
189
187
  try {
190
188
  await this.eventManager.fire('beforeSubmit', {
191
189
  controller: this,
@@ -320,6 +318,8 @@ export class AutocompleteController extends AbstractController {
320
318
  return;
321
319
  }
322
320
  this.store.loading = true;
321
+ // clear the redirect URL until proper abort functionality is implemented
322
+ this.store.merchandising.redirect = '';
323
323
  try {
324
324
  await this.eventManager.fire('beforeSearch', {
325
325
  controller: this,
@@ -489,8 +489,12 @@ export class AutocompleteController extends AbstractController {
489
489
  });
490
490
  this.eventManager.on('beforeSubmit', async (ac, next) => {
491
491
  await next();
492
+ const loading = ac.controller.store.loading;
493
+ if (loading)
494
+ return;
495
+ const inputState = ac.controller.store.state.input;
492
496
  const redirectURL = ac.controller.store.merchandising?.redirect;
493
- if (redirectURL && this.config?.settings?.redirects?.merchandising) {
497
+ if (this.config?.settings?.redirects?.merchandising && inputState && redirectURL) {
494
498
  this.track.redirect(redirectURL);
495
499
  window.location.href = redirectURL;
496
500
  return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.67.3",
3
+ "version": "0.67.5",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,22 +20,22 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "0.67.3",
23
+ "@searchspring/snap-toolbox": "0.67.5",
24
24
  "css.escape": "1.5.1",
25
25
  "deepmerge": "4.3.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@searchspring/snap-client": "0.67.3",
29
- "@searchspring/snap-event-manager": "0.67.3",
30
- "@searchspring/snap-logger": "0.67.3",
31
- "@searchspring/snap-profiler": "0.67.3",
32
- "@searchspring/snap-store-mobx": "0.67.3",
33
- "@searchspring/snap-tracker": "0.67.3",
34
- "@searchspring/snap-url-manager": "0.67.3"
28
+ "@searchspring/snap-client": "0.67.5",
29
+ "@searchspring/snap-event-manager": "0.67.5",
30
+ "@searchspring/snap-logger": "0.67.5",
31
+ "@searchspring/snap-profiler": "0.67.5",
32
+ "@searchspring/snap-store-mobx": "0.67.5",
33
+ "@searchspring/snap-tracker": "0.67.5",
34
+ "@searchspring/snap-url-manager": "0.67.5"
35
35
  },
36
36
  "sideEffects": false,
37
37
  "files": [
38
38
  "dist/**/*"
39
39
  ],
40
- "gitHead": "77d0386b8c9d4f1e8b55a6b28f6227f1f838f5ef"
40
+ "gitHead": "9d3779d4456c454bd73b5e601946298bd89089eb"
41
41
  }