@getlupa/client 0.10.0-alpha-2 → 0.10.1

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.
@@ -65,5 +65,6 @@ export default class SearchBox extends Vue {
65
65
  trackDocumentClick(doc: HighlightedDocInfo): void;
66
66
  trackSuggestionClick(suggestion?: string): void;
67
67
  resetValues(): void;
68
+ handleProductClick(): void;
68
69
  }
69
70
  export {};
@@ -27,6 +27,8 @@ export default class TermFacet extends Vue {
27
27
  get facetMax(): number;
28
28
  get statsSummary(): string;
29
29
  get separator(): string;
30
+ get isIntegerRange(): boolean;
31
+ get interval(): 1 | 0.01;
30
32
  get sliderInputFormat(): string | undefined;
31
33
  onMinValueChange(): void;
32
34
  onMaxValueChange(): void;
@@ -10828,6 +10828,13 @@ const getProductKey = (index, product, idKey) => {
10828
10828
  }
10829
10829
  return index;
10830
10830
  };
10831
+ const normalizeFloat = (value) => {
10832
+ var _a;
10833
+ if (!value) {
10834
+ return 0;
10835
+ }
10836
+ return +((_a = value === null || value === void 0 ? void 0 : value.replace(/[^0-9,.]/g, "")) === null || _a === void 0 ? void 0 : _a.replace(",", "."));
10837
+ };
10831
10838
  const escapeHtml = (value) => {
10832
10839
  if (!value) {
10833
10840
  return "";
@@ -12289,6 +12296,7 @@ let SearchBoxProduct = class SearchBoxProduct extends Vue$1 {
12289
12296
  if (!this.link) {
12290
12297
  return;
12291
12298
  }
12299
+ this.$emit("product-click");
12292
12300
  handleRoutingEvent(this.link, event, this.boxRoutingBehavior === "event");
12293
12301
  }
12294
12302
  };
@@ -12465,6 +12473,11 @@ var __vue_render__$11 = function () {
12465
12473
  highlighted: index === _vm.highlightedIndex,
12466
12474
  inputValue: _vm.inputValue,
12467
12475
  },
12476
+ on: {
12477
+ "product-click": function ($event) {
12478
+ return _vm.$emit("product-click")
12479
+ },
12480
+ },
12468
12481
  })
12469
12482
  }),
12470
12483
  1
@@ -12583,6 +12596,11 @@ var __vue_render__$10 = function () {
12583
12596
  labels: _vm.labels,
12584
12597
  inputValue: _vm.inputValue,
12585
12598
  },
12599
+ on: {
12600
+ "product-click": function ($event) {
12601
+ return _vm.$emit("product-click")
12602
+ },
12603
+ },
12586
12604
  })
12587
12605
  };
12588
12606
  var __vue_staticRenderFns__$10 = [];
@@ -12591,7 +12609,7 @@ __vue_render__$10._withStripped = true;
12591
12609
  /* style */
12592
12610
  const __vue_inject_styles__$10 = function (inject) {
12593
12611
  if (!inject) return
12594
- inject("data-v-45bb68b4_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: undefined, media: undefined });
12612
+ inject("data-v-58b6ab21_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: undefined, media: undefined });
12595
12613
 
12596
12614
  };
12597
12615
  /* scoped */
@@ -13462,6 +13480,9 @@ var __vue_render__$V = function () {
13462
13480
  itemSelect: function (item) {
13463
13481
  return _vm.$emit("itemSelect", item)
13464
13482
  },
13483
+ "product-click": function ($event) {
13484
+ return _vm.$emit("product-click")
13485
+ },
13465
13486
  },
13466
13487
  })
13467
13488
  : _vm._e(),
@@ -13511,7 +13532,7 @@ __vue_render__$V._withStripped = true;
13511
13532
  /* style */
13512
13533
  const __vue_inject_styles__$V = function (inject) {
13513
13534
  if (!inject) return
13514
- inject("data-v-0b92689b_0", { source: "#lupa-search-box-panel {\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n.lupa-more-results {\n text-align: center;\n}", map: undefined, media: undefined });
13535
+ inject("data-v-d48b96f0_0", { source: "#lupa-search-box-panel {\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n.lupa-more-results {\n text-align: center;\n}", map: undefined, media: undefined });
13515
13536
 
13516
13537
  };
13517
13538
  /* scoped */
@@ -30969,6 +30990,9 @@ let SearchBox = class SearchBox extends Vue$1 {
30969
30990
  this.inputValue = "";
30970
30991
  this.suggestedValue = defaultSuggestedValue;
30971
30992
  }
30993
+ handleProductClick() {
30994
+ this.opened = false;
30995
+ }
30972
30996
  };
30973
30997
  __decorate([
30974
30998
  Prop()
@@ -31046,6 +31070,7 @@ var __vue_render__$U = function () {
31046
31070
  fetched: _vm.handleItemsFetch,
31047
31071
  itemSelect: _vm.handleItemSelect,
31048
31072
  "go-to-results": _vm.handleSearch,
31073
+ "product-click": _vm.handleProductClick,
31049
31074
  },
31050
31075
  })
31051
31076
  : _vm._e(),
@@ -31060,7 +31085,7 @@ __vue_render__$U._withStripped = true;
31060
31085
  /* style */
31061
31086
  const __vue_inject_styles__$U = function (inject) {
31062
31087
  if (!inject) return
31063
- inject("data-v-289ccc0f_0", { source: "\n#lupa-search-box {\n width: 100%;\n}\n.lupa-search-box-wrapper {\n position: relative;\n}\n", map: undefined, media: undefined });
31088
+ inject("data-v-ed058b02_0", { source: "\n#lupa-search-box {\n width: 100%;\n}\n.lupa-search-box-wrapper {\n position: relative;\n}\n", map: undefined, media: undefined });
31064
31089
 
31065
31090
  };
31066
31091
  /* scoped */
@@ -32077,8 +32102,7 @@ let TermFacet = class TermFacet extends Vue$1 {
32077
32102
  : `${this.sliderRange[0]}`;
32078
32103
  }
32079
32104
  set fromValue(stringValue) {
32080
- const numberString = stringValue.replace(/[^0-9,.]/, "");
32081
- let value = +numberString;
32105
+ let value = normalizeFloat(stringValue);
32082
32106
  if (value < this.facetMin) {
32083
32107
  value = this.facetMin;
32084
32108
  }
@@ -32094,8 +32118,7 @@ let TermFacet = class TermFacet extends Vue$1 {
32094
32118
  : `${this.sliderRange[1]}`;
32095
32119
  }
32096
32120
  set toValue(stringValue) {
32097
- const numberString = stringValue.replace(/[^0-9,.]/, "");
32098
- let value = +numberString;
32121
+ let value = normalizeFloat(stringValue);
32099
32122
  if (value > this.facetMax) {
32100
32123
  value = this.facetMax;
32101
32124
  }
@@ -32157,6 +32180,13 @@ let TermFacet = class TermFacet extends Vue$1 {
32157
32180
  var _a, _b, _c;
32158
32181
  return (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b.priceSeparator) !== null && _c !== void 0 ? _c : ",";
32159
32182
  }
32183
+ get isIntegerRange() {
32184
+ return (Number.isInteger(this.currentMinValue) &&
32185
+ Number.isInteger(this.currentMaxValue));
32186
+ }
32187
+ get interval() {
32188
+ return this.isIntegerRange ? 1 : 0.01;
32189
+ }
32160
32190
  get sliderInputFormat() {
32161
32191
  return this.isPrice ? `[0-9]+([${this.separator}][0-9]{1,2})?` : undefined;
32162
32192
  }
@@ -32326,6 +32356,7 @@ var __vue_render__$P = function () {
32326
32356
  lazy: true,
32327
32357
  silent: true,
32328
32358
  duration: 0.1,
32359
+ interval: _vm.interval,
32329
32360
  },
32330
32361
  on: {
32331
32362
  change: _vm.handleChange,
@@ -38340,9 +38371,9 @@ let SearchResultsEntry = class SearchResultsEntry extends Vue$1 {
38340
38371
  return merge(DEFAULT_OPTIONS_RESULTS, options);
38341
38372
  }
38342
38373
  fetch() {
38343
- var _a;
38374
+ var _a, _b;
38344
38375
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
38345
- (_a = this.$refs.searchResults) === null || _a === void 0 ? void 0 : _a.handleMounted();
38376
+ (_b = (_a = this.$refs.searchResults) === null || _a === void 0 ? void 0 : _a.handleUrlChange) === null || _b === void 0 ? void 0 : _b.call(_a);
38346
38377
  }
38347
38378
  };
38348
38379
  __decorate([
@@ -5,4 +5,5 @@ export declare const addParamsToLabel: (label: string, ...params: unknown[]) =>
5
5
  export declare const getRandomString: (length: number) => string;
6
6
  export declare const getDisplayValue: (value?: string | number | undefined) => string;
7
7
  export declare const getProductKey: (index: string, product: Document, idKey: string | undefined) => string;
8
+ export declare const normalizeFloat: (value?: string | undefined) => number;
8
9
  export declare const escapeHtml: (value?: string | undefined) => string;
@@ -65,5 +65,6 @@ export default class SearchBox extends Vue {
65
65
  trackDocumentClick(doc: HighlightedDocInfo): void;
66
66
  trackSuggestionClick(suggestion?: string): void;
67
67
  resetValues(): void;
68
+ handleProductClick(): void;
68
69
  }
69
70
  export {};
@@ -27,6 +27,8 @@ export default class TermFacet extends Vue {
27
27
  get facetMax(): number;
28
28
  get statsSummary(): string;
29
29
  get separator(): string;
30
+ get isIntegerRange(): boolean;
31
+ get interval(): 1 | 0.01;
30
32
  get sliderInputFormat(): string | undefined;
31
33
  onMinValueChange(): void;
32
34
  onMaxValueChange(): void;
@@ -10824,6 +10824,13 @@ const getProductKey = (index, product, idKey) => {
10824
10824
  }
10825
10825
  return index;
10826
10826
  };
10827
+ const normalizeFloat = (value) => {
10828
+ var _a;
10829
+ if (!value) {
10830
+ return 0;
10831
+ }
10832
+ return +((_a = value === null || value === void 0 ? void 0 : value.replace(/[^0-9,.]/g, "")) === null || _a === void 0 ? void 0 : _a.replace(",", "."));
10833
+ };
10827
10834
  const escapeHtml = (value) => {
10828
10835
  if (!value) {
10829
10836
  return "";
@@ -12285,6 +12292,7 @@ let SearchBoxProduct = class SearchBoxProduct extends Vue$1 {
12285
12292
  if (!this.link) {
12286
12293
  return;
12287
12294
  }
12295
+ this.$emit("product-click");
12288
12296
  handleRoutingEvent(this.link, event, this.boxRoutingBehavior === "event");
12289
12297
  }
12290
12298
  };
@@ -12461,6 +12469,11 @@ var __vue_render__$11 = function () {
12461
12469
  highlighted: index === _vm.highlightedIndex,
12462
12470
  inputValue: _vm.inputValue,
12463
12471
  },
12472
+ on: {
12473
+ "product-click": function ($event) {
12474
+ return _vm.$emit("product-click")
12475
+ },
12476
+ },
12464
12477
  })
12465
12478
  }),
12466
12479
  1
@@ -12579,6 +12592,11 @@ var __vue_render__$10 = function () {
12579
12592
  labels: _vm.labels,
12580
12593
  inputValue: _vm.inputValue,
12581
12594
  },
12595
+ on: {
12596
+ "product-click": function ($event) {
12597
+ return _vm.$emit("product-click")
12598
+ },
12599
+ },
12582
12600
  })
12583
12601
  };
12584
12602
  var __vue_staticRenderFns__$10 = [];
@@ -12587,7 +12605,7 @@ __vue_render__$10._withStripped = true;
12587
12605
  /* style */
12588
12606
  const __vue_inject_styles__$10 = function (inject) {
12589
12607
  if (!inject) return
12590
- inject("data-v-45bb68b4_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: undefined, media: undefined });
12608
+ inject("data-v-58b6ab21_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", map: undefined, media: undefined });
12591
12609
 
12592
12610
  };
12593
12611
  /* scoped */
@@ -13458,6 +13476,9 @@ var __vue_render__$V = function () {
13458
13476
  itemSelect: function (item) {
13459
13477
  return _vm.$emit("itemSelect", item)
13460
13478
  },
13479
+ "product-click": function ($event) {
13480
+ return _vm.$emit("product-click")
13481
+ },
13461
13482
  },
13462
13483
  })
13463
13484
  : _vm._e(),
@@ -13507,7 +13528,7 @@ __vue_render__$V._withStripped = true;
13507
13528
  /* style */
13508
13529
  const __vue_inject_styles__$V = function (inject) {
13509
13530
  if (!inject) return
13510
- inject("data-v-0b92689b_0", { source: "#lupa-search-box-panel {\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n.lupa-more-results {\n text-align: center;\n}", map: undefined, media: undefined });
13531
+ inject("data-v-d48b96f0_0", { source: "#lupa-search-box-panel {\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n}\n.lupa-more-results {\n text-align: center;\n}", map: undefined, media: undefined });
13511
13532
 
13512
13533
  };
13513
13534
  /* scoped */
@@ -30965,6 +30986,9 @@ let SearchBox = class SearchBox extends Vue$1 {
30965
30986
  this.inputValue = "";
30966
30987
  this.suggestedValue = defaultSuggestedValue;
30967
30988
  }
30989
+ handleProductClick() {
30990
+ this.opened = false;
30991
+ }
30968
30992
  };
30969
30993
  __decorate([
30970
30994
  Prop()
@@ -31042,6 +31066,7 @@ var __vue_render__$U = function () {
31042
31066
  fetched: _vm.handleItemsFetch,
31043
31067
  itemSelect: _vm.handleItemSelect,
31044
31068
  "go-to-results": _vm.handleSearch,
31069
+ "product-click": _vm.handleProductClick,
31045
31070
  },
31046
31071
  })
31047
31072
  : _vm._e(),
@@ -31056,7 +31081,7 @@ __vue_render__$U._withStripped = true;
31056
31081
  /* style */
31057
31082
  const __vue_inject_styles__$U = function (inject) {
31058
31083
  if (!inject) return
31059
- inject("data-v-289ccc0f_0", { source: "\n#lupa-search-box {\n width: 100%;\n}\n.lupa-search-box-wrapper {\n position: relative;\n}\n", map: undefined, media: undefined });
31084
+ inject("data-v-ed058b02_0", { source: "\n#lupa-search-box {\n width: 100%;\n}\n.lupa-search-box-wrapper {\n position: relative;\n}\n", map: undefined, media: undefined });
31060
31085
 
31061
31086
  };
31062
31087
  /* scoped */
@@ -32073,8 +32098,7 @@ let TermFacet = class TermFacet extends Vue$1 {
32073
32098
  : `${this.sliderRange[0]}`;
32074
32099
  }
32075
32100
  set fromValue(stringValue) {
32076
- const numberString = stringValue.replace(/[^0-9,.]/, "");
32077
- let value = +numberString;
32101
+ let value = normalizeFloat(stringValue);
32078
32102
  if (value < this.facetMin) {
32079
32103
  value = this.facetMin;
32080
32104
  }
@@ -32090,8 +32114,7 @@ let TermFacet = class TermFacet extends Vue$1 {
32090
32114
  : `${this.sliderRange[1]}`;
32091
32115
  }
32092
32116
  set toValue(stringValue) {
32093
- const numberString = stringValue.replace(/[^0-9,.]/, "");
32094
- let value = +numberString;
32117
+ let value = normalizeFloat(stringValue);
32095
32118
  if (value > this.facetMax) {
32096
32119
  value = this.facetMax;
32097
32120
  }
@@ -32153,6 +32176,13 @@ let TermFacet = class TermFacet extends Vue$1 {
32153
32176
  var _a, _b, _c;
32154
32177
  return (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b.priceSeparator) !== null && _c !== void 0 ? _c : ",";
32155
32178
  }
32179
+ get isIntegerRange() {
32180
+ return (Number.isInteger(this.currentMinValue) &&
32181
+ Number.isInteger(this.currentMaxValue));
32182
+ }
32183
+ get interval() {
32184
+ return this.isIntegerRange ? 1 : 0.01;
32185
+ }
32156
32186
  get sliderInputFormat() {
32157
32187
  return this.isPrice ? `[0-9]+([${this.separator}][0-9]{1,2})?` : undefined;
32158
32188
  }
@@ -32322,6 +32352,7 @@ var __vue_render__$P = function () {
32322
32352
  lazy: true,
32323
32353
  silent: true,
32324
32354
  duration: 0.1,
32355
+ interval: _vm.interval,
32325
32356
  },
32326
32357
  on: {
32327
32358
  change: _vm.handleChange,
@@ -38336,9 +38367,9 @@ let SearchResultsEntry = class SearchResultsEntry extends Vue$1 {
38336
38367
  return merge(DEFAULT_OPTIONS_RESULTS, options);
38337
38368
  }
38338
38369
  fetch() {
38339
- var _a;
38370
+ var _a, _b;
38340
38371
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
38341
- (_a = this.$refs.searchResults) === null || _a === void 0 ? void 0 : _a.handleMounted();
38372
+ (_b = (_a = this.$refs.searchResults) === null || _a === void 0 ? void 0 : _a.handleUrlChange) === null || _b === void 0 ? void 0 : _b.call(_a);
38342
38373
  }
38343
38374
  };
38344
38375
  __decorate([
@@ -5,4 +5,5 @@ export declare const addParamsToLabel: (label: string, ...params: unknown[]) =>
5
5
  export declare const getRandomString: (length: number) => string;
6
6
  export declare const getDisplayValue: (value?: string | number | undefined) => string;
7
7
  export declare const getProductKey: (index: string, product: Document, idKey: string | undefined) => string;
8
+ export declare const normalizeFloat: (value?: string | undefined) => number;
8
9
  export declare const escapeHtml: (value?: string | undefined) => string;
@@ -65,5 +65,6 @@ export default class SearchBox extends Vue {
65
65
  trackDocumentClick(doc: HighlightedDocInfo): void;
66
66
  trackSuggestionClick(suggestion?: string): void;
67
67
  resetValues(): void;
68
+ handleProductClick(): void;
68
69
  }
69
70
  export {};
@@ -27,6 +27,8 @@ export default class TermFacet extends Vue {
27
27
  get facetMax(): number;
28
28
  get statsSummary(): string;
29
29
  get separator(): string;
30
+ get isIntegerRange(): boolean;
31
+ get interval(): 1 | 0.01;
30
32
  get sliderInputFormat(): string | undefined;
31
33
  onMinValueChange(): void;
32
34
  onMaxValueChange(): void;