@getlupa/client 0.5.1-alpha-10 → 0.5.1-alpha-11

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.
@@ -51,6 +51,7 @@ export default class SearchResults extends Vue {
51
51
  setLoading: (loading: boolean) => {
52
52
  loading: boolean;
53
53
  };
54
+ defaultSearchResultPageSize: number;
54
55
  handleUrlChange(params?: URLSearchParams): void;
55
56
  query(publicQuery: PublicQuery): void;
56
57
  handleResults({ queryKey, results, }: {
@@ -21893,8 +21893,8 @@ var DEFAULT_OPTIONS_RESULTS = {
21893
21893
  }]
21894
21894
  };
21895
21895
 
21896
- var createPublicQuery = function createPublicQuery(queryParams, sortOptions // will be removed when vuex is implemented
21897
- ) {
21896
+ var createPublicQuery = function createPublicQuery(queryParams, sortOptions, // will be removed when vuex is implemented
21897
+ defaultPageSize) {
21898
21898
  var _a;
21899
21899
 
21900
21900
  var publicQuery = {};
@@ -21912,11 +21912,11 @@ var createPublicQuery = function createPublicQuery(queryParams, sortOptions // w
21912
21912
  break;
21913
21913
 
21914
21914
  case QUERY_PARAMS_PARSED.LIMIT:
21915
- publicQuery.limit = Number(value);
21915
+ publicQuery.limit = Number(value) || defaultPageSize;
21916
21916
  break;
21917
21917
 
21918
21918
  case QUERY_PARAMS_PARSED.PAGE:
21919
- publicQuery.offset = getOffset(Number(value), Number(queryParams[QUERY_PARAMS_PARSED.LIMIT]) || DEFAULT_OPTIONS_RESULTS.pagination.sizeSelection.sizes[0]);
21919
+ publicQuery.offset = getOffset(Number(value), Number(queryParams[QUERY_PARAMS_PARSED.LIMIT]) || defaultPageSize || DEFAULT_OPTIONS_RESULTS.pagination.sizeSelection.sizes[0]);
21920
21920
  break;
21921
21921
 
21922
21922
  case QUERY_PARAMS_PARSED.SORT:
@@ -27454,6 +27454,16 @@ var handleRoutingEvent = function handleRoutingEvent(link, event) {
27454
27454
  event === null || event === void 0 ? void 0 : event.preventDefault();
27455
27455
  emitRoutingEvent(link);
27456
27456
  };
27457
+ var redirectToResultsPage = function redirectToResultsPage(link, searchText, facet) {
27458
+ var routingBehavior = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "direct-link";
27459
+ var url = generateResultLink(link, searchText, facet);
27460
+
27461
+ if (routingBehavior === "event") {
27462
+ emitRoutingEvent(url);
27463
+ } else {
27464
+ window.location.assign(url);
27465
+ }
27466
+ };
27457
27467
 
27458
27468
  var CategoryFilterItem = /*#__PURE__*/function (_Vue) {
27459
27469
  _inherits(CategoryFilterItem, _Vue);
@@ -32386,10 +32396,10 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32386
32396
  key: "mounted",
32387
32397
  value: function mounted() {
32388
32398
  window.addEventListener("resize", this.handleResize);
32389
- this.handleMounted();
32390
32399
  this.setSearchResultOptions({
32391
32400
  options: this.options
32392
32401
  });
32402
+ this.handleMounted();
32393
32403
  this.setInitialFilters({
32394
32404
  initialFilters: this.initialFilters
32395
32405
  });
@@ -32419,7 +32429,7 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32419
32429
  key: "handleUrlChange",
32420
32430
  value: function handleUrlChange(params) {
32421
32431
  var searchParams = params || new URLSearchParams(window.location.search);
32422
- var publicQuery = createPublicQuery(parseParams(searchParams), this.options.sort);
32432
+ var publicQuery = createPublicQuery(parseParams(searchParams), this.options.sort, this.defaultSearchResultPageSize);
32423
32433
  this.setLoading(true);
32424
32434
  this.query(getPublicQuery(publicQuery, this.initialFilters, this.isProductList));
32425
32435
  }
@@ -32433,7 +32443,10 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32433
32443
  query: publicQuery
32434
32444
  });
32435
32445
  var context = getLupaTrackingContext();
32436
- var query = Object.assign(Object.assign({}, publicQuery), context);
32446
+ var limit = publicQuery.limit || this.defaultSearchResultPageSize;
32447
+ var query = Object.assign(Object.assign(Object.assign({}, publicQuery), context), {
32448
+ limit: limit
32449
+ });
32437
32450
  getLupaSdk.query(this.options.queryKey, query, this.options.options).then(function (res) {
32438
32451
  var _a, _b;
32439
32452
 
@@ -32542,6 +32555,8 @@ __decorate([searchResult$1.Action("add")], SearchResults.prototype, "addSearchRe
32542
32555
 
32543
32556
  __decorate([searchResult$1.Action("setLoading")], SearchResults.prototype, "setLoading", void 0);
32544
32557
 
32558
+ __decorate([options$1.Getter("defaultSearchResultPageSize")], SearchResults.prototype, "defaultSearchResultPageSize", void 0);
32559
+
32545
32560
  __decorate([searchResult$1.Action("setColumnCount")], SearchResults.prototype, "setColumnCount", void 0);
32546
32561
 
32547
32562
  SearchResults = __decorate([Component({
@@ -34256,7 +34271,7 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34256
34271
  }, {
34257
34272
  key: "limit",
34258
34273
  get: function get() {
34259
- return Number(this.params[QUERY_PARAMS_PARSED.LIMIT]) || this.defaultLimit;
34274
+ return Number(this.params[QUERY_PARAMS_PARSED.LIMIT]) || this.context.rootGetters["options/defaultSearchResultPageSize"] || this.defaultLimit;
34260
34275
  }
34261
34276
  }, {
34262
34277
  key: "sort",
@@ -34332,6 +34347,8 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34332
34347
  var searchText = _ref3.searchText,
34333
34348
  facet = _ref3.facet;
34334
34349
 
34350
+ var _a;
34351
+
34335
34352
  if (!this.searchResultsLink || this.searchResultsLink === window.location.pathname) {
34336
34353
  var facetParam = facet ? [getFacetParam(facet.key, [facet.title])] : [];
34337
34354
  this.context.dispatch("appendParams", {
@@ -34342,7 +34359,8 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34342
34359
  paramsToRemove: "all"
34343
34360
  });
34344
34361
  } else {
34345
- window.location.assign(generateResultLink(this.searchResultsLink, searchText, facet));
34362
+ var routing = (_a = this.context.rootGetters["options/boxRoutingBehavior"]) !== null && _a !== void 0 ? _a : "direct-link";
34363
+ redirectToResultsPage(this.searchResultsLink, searchText, facet, routing);
34346
34364
  }
34347
34365
 
34348
34366
  this.context.dispatch("tracking/track", {
@@ -34488,6 +34506,20 @@ var OptionsModule = /*#__PURE__*/function (_VuexModule) {
34488
34506
  get: function get() {
34489
34507
  return this.searchResultInitialFilters;
34490
34508
  }
34509
+ }, {
34510
+ key: "boxRoutingBehavior",
34511
+ get: function get() {
34512
+ var _a;
34513
+
34514
+ return (_a = this.searchBoxOptions.routingBehavior) !== null && _a !== void 0 ? _a : "direct-link";
34515
+ }
34516
+ }, {
34517
+ key: "defaultSearchResultPageSize",
34518
+ get: function get() {
34519
+ var _a, _b, _c, _d, _e;
34520
+
34521
+ return (_e = (_d = (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.sizeSelection) === null || _c === void 0 ? void 0 : _c.sizes) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : DEFAULT_PAGE_SIZE;
34522
+ }
34491
34523
  }, {
34492
34524
  key: "setSearchBoxOptions",
34493
34525
  value: function setSearchBoxOptions(_ref) {
@@ -1,4 +1,5 @@
1
1
  import { SearchBoxOptions } from "@/types/search-box/SearchBoxOptions";
2
+ import { RoutingBehavior } from "@/types/search-results/RoutingBehavior";
2
3
  import { SearchResultsOptions } from "@/types/search-results/SearchResultsOptions";
3
4
  import { FilterGroup, Options } from "@getlupa/client-sdk/Types";
4
5
  import { VuexModule } from "vuex-module-decorators";
@@ -9,6 +10,8 @@ export default class OptionsModule extends VuexModule {
9
10
  get envOptions(): Options;
10
11
  get classMap(): Record<string, string>;
11
12
  get initialFilters(): FilterGroup;
13
+ get boxRoutingBehavior(): RoutingBehavior;
14
+ get defaultSearchResultPageSize(): number;
12
15
  setSearchBoxOptions({ options }: {
13
16
  options: SearchBoxOptions;
14
17
  }): void;
@@ -1,9 +1,11 @@
1
1
  import { SdkOptions } from "../General";
2
+ import { RoutingBehavior } from "../search-results/RoutingBehavior";
2
3
  import { SearchBoxHistory } from "./SearchBoxHistory";
3
4
  import { SearchBoxPanel } from "./SearchBoxPanel";
4
5
  export declare type SearchBoxOptions = SearchBoxPanelOptions & {
5
6
  inputSelector: string;
6
7
  searchTriggers?: string[];
8
+ routingBehavior?: RoutingBehavior;
7
9
  };
8
10
  export declare type SearchBoxOptionLabels = {
9
11
  placeholder: string;
@@ -1,5 +1,5 @@
1
1
  import { QueryParams } from "@/types/search-results/QueryParams";
2
2
  import { SearchResultsSortOptions } from "@/types/search-results/SearchResultsSort";
3
3
  import { FilterGroup, PublicQuery } from "@getlupa/client-sdk/Types";
4
- export declare const createPublicQuery: (queryParams: QueryParams, sortOptions?: SearchResultsSortOptions[] | undefined) => PublicQuery;
4
+ export declare const createPublicQuery: (queryParams: QueryParams, sortOptions?: SearchResultsSortOptions[] | undefined, defaultPageSize?: number | undefined) => PublicQuery;
5
5
  export declare const getPublicQuery: (publicQuery: PublicQuery, initialFilters: FilterGroup, isProductList: boolean) => PublicQuery;
@@ -1,2 +1,5 @@
1
+ import { InputSuggestionFacet } from "@/types/search-box/Common";
2
+ import { RoutingBehavior } from "..";
1
3
  export declare const emitRoutingEvent: (url: string) => void;
2
4
  export declare const handleRoutingEvent: (link: string, event?: Event | undefined, hasEventRouting?: boolean) => void;
5
+ export declare const redirectToResultsPage: (link: string, searchText: string, facet?: InputSuggestionFacet | undefined, routingBehavior?: RoutingBehavior) => void;
@@ -51,6 +51,7 @@ export default class SearchResults extends Vue {
51
51
  setLoading: (loading: boolean) => {
52
52
  loading: boolean;
53
53
  };
54
+ defaultSearchResultPageSize: number;
54
55
  handleUrlChange(params?: URLSearchParams): void;
55
56
  query(publicQuery: PublicQuery): void;
56
57
  handleResults({ queryKey, results, }: {
@@ -21889,8 +21889,8 @@ var DEFAULT_OPTIONS_RESULTS = {
21889
21889
  }]
21890
21890
  };
21891
21891
 
21892
- var createPublicQuery = function createPublicQuery(queryParams, sortOptions // will be removed when vuex is implemented
21893
- ) {
21892
+ var createPublicQuery = function createPublicQuery(queryParams, sortOptions, // will be removed when vuex is implemented
21893
+ defaultPageSize) {
21894
21894
  var _a;
21895
21895
 
21896
21896
  var publicQuery = {};
@@ -21908,11 +21908,11 @@ var createPublicQuery = function createPublicQuery(queryParams, sortOptions // w
21908
21908
  break;
21909
21909
 
21910
21910
  case QUERY_PARAMS_PARSED.LIMIT:
21911
- publicQuery.limit = Number(value);
21911
+ publicQuery.limit = Number(value) || defaultPageSize;
21912
21912
  break;
21913
21913
 
21914
21914
  case QUERY_PARAMS_PARSED.PAGE:
21915
- publicQuery.offset = getOffset(Number(value), Number(queryParams[QUERY_PARAMS_PARSED.LIMIT]) || DEFAULT_OPTIONS_RESULTS.pagination.sizeSelection.sizes[0]);
21915
+ publicQuery.offset = getOffset(Number(value), Number(queryParams[QUERY_PARAMS_PARSED.LIMIT]) || defaultPageSize || DEFAULT_OPTIONS_RESULTS.pagination.sizeSelection.sizes[0]);
21916
21916
  break;
21917
21917
 
21918
21918
  case QUERY_PARAMS_PARSED.SORT:
@@ -27450,6 +27450,16 @@ var handleRoutingEvent = function handleRoutingEvent(link, event) {
27450
27450
  event === null || event === void 0 ? void 0 : event.preventDefault();
27451
27451
  emitRoutingEvent(link);
27452
27452
  };
27453
+ var redirectToResultsPage = function redirectToResultsPage(link, searchText, facet) {
27454
+ var routingBehavior = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "direct-link";
27455
+ var url = generateResultLink(link, searchText, facet);
27456
+
27457
+ if (routingBehavior === "event") {
27458
+ emitRoutingEvent(url);
27459
+ } else {
27460
+ window.location.assign(url);
27461
+ }
27462
+ };
27453
27463
 
27454
27464
  var CategoryFilterItem = /*#__PURE__*/function (_Vue) {
27455
27465
  _inherits(CategoryFilterItem, _Vue);
@@ -32382,10 +32392,10 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32382
32392
  key: "mounted",
32383
32393
  value: function mounted() {
32384
32394
  window.addEventListener("resize", this.handleResize);
32385
- this.handleMounted();
32386
32395
  this.setSearchResultOptions({
32387
32396
  options: this.options
32388
32397
  });
32398
+ this.handleMounted();
32389
32399
  this.setInitialFilters({
32390
32400
  initialFilters: this.initialFilters
32391
32401
  });
@@ -32415,7 +32425,7 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32415
32425
  key: "handleUrlChange",
32416
32426
  value: function handleUrlChange(params) {
32417
32427
  var searchParams = params || new URLSearchParams(window.location.search);
32418
- var publicQuery = createPublicQuery(parseParams(searchParams), this.options.sort);
32428
+ var publicQuery = createPublicQuery(parseParams(searchParams), this.options.sort, this.defaultSearchResultPageSize);
32419
32429
  this.setLoading(true);
32420
32430
  this.query(getPublicQuery(publicQuery, this.initialFilters, this.isProductList));
32421
32431
  }
@@ -32429,7 +32439,10 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
32429
32439
  query: publicQuery
32430
32440
  });
32431
32441
  var context = getLupaTrackingContext();
32432
- var query = Object.assign(Object.assign({}, publicQuery), context);
32442
+ var limit = publicQuery.limit || this.defaultSearchResultPageSize;
32443
+ var query = Object.assign(Object.assign(Object.assign({}, publicQuery), context), {
32444
+ limit: limit
32445
+ });
32433
32446
  getLupaSdk.query(this.options.queryKey, query, this.options.options).then(function (res) {
32434
32447
  var _a, _b;
32435
32448
 
@@ -32538,6 +32551,8 @@ __decorate([searchResult$1.Action("add")], SearchResults.prototype, "addSearchRe
32538
32551
 
32539
32552
  __decorate([searchResult$1.Action("setLoading")], SearchResults.prototype, "setLoading", void 0);
32540
32553
 
32554
+ __decorate([options$1.Getter("defaultSearchResultPageSize")], SearchResults.prototype, "defaultSearchResultPageSize", void 0);
32555
+
32541
32556
  __decorate([searchResult$1.Action("setColumnCount")], SearchResults.prototype, "setColumnCount", void 0);
32542
32557
 
32543
32558
  SearchResults = __decorate([Component({
@@ -34252,7 +34267,7 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34252
34267
  }, {
34253
34268
  key: "limit",
34254
34269
  get: function get() {
34255
- return Number(this.params[QUERY_PARAMS_PARSED.LIMIT]) || this.defaultLimit;
34270
+ return Number(this.params[QUERY_PARAMS_PARSED.LIMIT]) || this.context.rootGetters["options/defaultSearchResultPageSize"] || this.defaultLimit;
34256
34271
  }
34257
34272
  }, {
34258
34273
  key: "sort",
@@ -34328,6 +34343,8 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34328
34343
  var searchText = _ref3.searchText,
34329
34344
  facet = _ref3.facet;
34330
34345
 
34346
+ var _a;
34347
+
34331
34348
  if (!this.searchResultsLink || this.searchResultsLink === window.location.pathname) {
34332
34349
  var facetParam = facet ? [getFacetParam(facet.key, [facet.title])] : [];
34333
34350
  this.context.dispatch("appendParams", {
@@ -34338,7 +34355,8 @@ var ParamsModule = /*#__PURE__*/function (_VuexModule) {
34338
34355
  paramsToRemove: "all"
34339
34356
  });
34340
34357
  } else {
34341
- window.location.assign(generateResultLink(this.searchResultsLink, searchText, facet));
34358
+ var routing = (_a = this.context.rootGetters["options/boxRoutingBehavior"]) !== null && _a !== void 0 ? _a : "direct-link";
34359
+ redirectToResultsPage(this.searchResultsLink, searchText, facet, routing);
34342
34360
  }
34343
34361
 
34344
34362
  this.context.dispatch("tracking/track", {
@@ -34484,6 +34502,20 @@ var OptionsModule = /*#__PURE__*/function (_VuexModule) {
34484
34502
  get: function get() {
34485
34503
  return this.searchResultInitialFilters;
34486
34504
  }
34505
+ }, {
34506
+ key: "boxRoutingBehavior",
34507
+ get: function get() {
34508
+ var _a;
34509
+
34510
+ return (_a = this.searchBoxOptions.routingBehavior) !== null && _a !== void 0 ? _a : "direct-link";
34511
+ }
34512
+ }, {
34513
+ key: "defaultSearchResultPageSize",
34514
+ get: function get() {
34515
+ var _a, _b, _c, _d, _e;
34516
+
34517
+ return (_e = (_d = (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.sizeSelection) === null || _c === void 0 ? void 0 : _c.sizes) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : DEFAULT_PAGE_SIZE;
34518
+ }
34487
34519
  }, {
34488
34520
  key: "setSearchBoxOptions",
34489
34521
  value: function setSearchBoxOptions(_ref) {
@@ -1,4 +1,5 @@
1
1
  import { SearchBoxOptions } from "@/types/search-box/SearchBoxOptions";
2
+ import { RoutingBehavior } from "@/types/search-results/RoutingBehavior";
2
3
  import { SearchResultsOptions } from "@/types/search-results/SearchResultsOptions";
3
4
  import { FilterGroup, Options } from "@getlupa/client-sdk/Types";
4
5
  import { VuexModule } from "vuex-module-decorators";
@@ -9,6 +10,8 @@ export default class OptionsModule extends VuexModule {
9
10
  get envOptions(): Options;
10
11
  get classMap(): Record<string, string>;
11
12
  get initialFilters(): FilterGroup;
13
+ get boxRoutingBehavior(): RoutingBehavior;
14
+ get defaultSearchResultPageSize(): number;
12
15
  setSearchBoxOptions({ options }: {
13
16
  options: SearchBoxOptions;
14
17
  }): void;
@@ -1,9 +1,11 @@
1
1
  import { SdkOptions } from "../General";
2
+ import { RoutingBehavior } from "../search-results/RoutingBehavior";
2
3
  import { SearchBoxHistory } from "./SearchBoxHistory";
3
4
  import { SearchBoxPanel } from "./SearchBoxPanel";
4
5
  export declare type SearchBoxOptions = SearchBoxPanelOptions & {
5
6
  inputSelector: string;
6
7
  searchTriggers?: string[];
8
+ routingBehavior?: RoutingBehavior;
7
9
  };
8
10
  export declare type SearchBoxOptionLabels = {
9
11
  placeholder: string;
@@ -1,5 +1,5 @@
1
1
  import { QueryParams } from "@/types/search-results/QueryParams";
2
2
  import { SearchResultsSortOptions } from "@/types/search-results/SearchResultsSort";
3
3
  import { FilterGroup, PublicQuery } from "@getlupa/client-sdk/Types";
4
- export declare const createPublicQuery: (queryParams: QueryParams, sortOptions?: SearchResultsSortOptions[] | undefined) => PublicQuery;
4
+ export declare const createPublicQuery: (queryParams: QueryParams, sortOptions?: SearchResultsSortOptions[] | undefined, defaultPageSize?: number | undefined) => PublicQuery;
5
5
  export declare const getPublicQuery: (publicQuery: PublicQuery, initialFilters: FilterGroup, isProductList: boolean) => PublicQuery;
@@ -1,2 +1,5 @@
1
+ import { InputSuggestionFacet } from "@/types/search-box/Common";
2
+ import { RoutingBehavior } from "..";
1
3
  export declare const emitRoutingEvent: (url: string) => void;
2
4
  export declare const handleRoutingEvent: (link: string, event?: Event | undefined, hasEventRouting?: boolean) => void;
5
+ export declare const redirectToResultsPage: (link: string, searchText: string, facet?: InputSuggestionFacet | undefined, routingBehavior?: RoutingBehavior) => void;
@@ -51,6 +51,7 @@ export default class SearchResults extends Vue {
51
51
  setLoading: (loading: boolean) => {
52
52
  loading: boolean;
53
53
  };
54
+ defaultSearchResultPageSize: number;
54
55
  handleUrlChange(params?: URLSearchParams): void;
55
56
  query(publicQuery: PublicQuery): void;
56
57
  handleResults({ queryKey, results, }: {