@shoper/phoenix_design_system 1.6.16 → 1.6.18

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 (50) hide show
  1. package/build/cjs/packages/phoenix/src/components/form/search/search.js +16 -3
  2. package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/form/search/search_constants.js +12 -2
  4. package/build/cjs/packages/phoenix/src/components/form/search/search_constants.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +5 -5
  6. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_submit.js +5 -5
  7. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +19 -0
  8. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js +12 -1
  10. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +11 -1
  12. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +16 -1
  14. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +11 -3
  16. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +123 -66
  18. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  19. package/build/cjs/packages/phoenix/src/index.js +2 -0
  20. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  21. package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +3 -1
  22. package/build/esm/packages/phoenix/src/components/form/search/search.js +17 -4
  23. package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
  24. package/build/esm/packages/phoenix/src/components/form/search/search_constants.d.ts +8 -0
  25. package/build/esm/packages/phoenix/src/components/form/search/search_constants.js +11 -3
  26. package/build/esm/packages/phoenix/src/components/form/search/search_constants.js.map +1 -1
  27. package/build/esm/packages/phoenix/src/components/form/search/search_types.d.ts +9 -1
  28. package/build/esm/packages/phoenix/src/components/form/search/search_types.js.map +1 -1
  29. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +6 -6
  30. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_submit.js +6 -6
  31. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.d.ts +1 -0
  32. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +20 -1
  33. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  34. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.d.ts +1 -0
  35. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js +13 -2
  36. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js.map +1 -1
  37. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.d.ts +2 -0
  38. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +11 -1
  39. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  40. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.d.ts +2 -0
  41. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +16 -1
  42. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  43. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.d.ts +2 -0
  44. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +11 -3
  45. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  46. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.d.ts +13 -8
  47. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +125 -68
  48. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  49. package/build/esm/packages/phoenix/src/index.js +1 -1
  50. package/package.json +1 -1
@@ -148,7 +148,6 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
148
148
  });
149
149
  this.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.searchInput, (ev) => this._updateSearchView(ev.detail.searchPhrase, false));
150
150
  this.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.clear, () => {
151
- this._searchInput.focus();
152
151
  this._updateSearchView('', false);
153
152
  });
154
153
  this.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.submit, () => {
@@ -277,6 +276,8 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
277
276
  .results="${this._searchResults}"
278
277
  search-phrase="${this._searchPhrase}"
279
278
  .settings="${this.settings}"
279
+ locale="${this.locale}"
280
+ view="${this.view}"
280
281
  .translations="${this._translations}"
281
282
  active-item-id="${this._activeItemId}"
282
283
  ></h-search-results>`)}
@@ -284,6 +285,18 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
284
285
  `;
285
286
  }
286
287
  };
288
+ tslib_es6.__decorate([
289
+ decorators.property({ type: Object }),
290
+ tslib_es6.__metadata("design:type", Object)
291
+ ], exports.HSearch.prototype, "settings", void 0);
292
+ tslib_es6.__decorate([
293
+ decorators.property({ type: String }),
294
+ tslib_es6.__metadata("design:type", String)
295
+ ], exports.HSearch.prototype, "view", void 0);
296
+ tslib_es6.__decorate([
297
+ decorators.property({ type: String }),
298
+ tslib_es6.__metadata("design:type", String)
299
+ ], exports.HSearch.prototype, "locale", void 0);
287
300
  tslib_es6.__decorate([
288
301
  decorators.state(),
289
302
  tslib_es6.__metadata("design:type", Boolean)
@@ -321,9 +334,9 @@ tslib_es6.__decorate([
321
334
  tslib_es6.__metadata("design:type", Number)
322
335
  ], exports.HSearch.prototype, "_activeItemId", void 0);
323
336
  tslib_es6.__decorate([
324
- decorators.property({ type: Object }),
337
+ decorators.state(),
325
338
  tslib_es6.__metadata("design:type", Object)
326
- ], exports.HSearch.prototype, "settings", void 0);
339
+ ], exports.HSearch.prototype, "_translations", void 0);
327
340
  exports.HSearch = tslib_es6.__decorate([
328
341
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.search)
329
342
  ], exports.HSearch);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAA6E;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAA6E;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -29,7 +29,8 @@ const SEARCH_CUSTOM_EVENT_NAMES = {
29
29
  close: 'search.close',
30
30
  focusinInput: 'search.input.focusin',
31
31
  keyupInput: 'search.input.keyup',
32
- searchInput: 'search.input.search'
32
+ searchInput: 'search.input.search',
33
+ updateSearchPhrase: 'search.updateSearchPhrase'
33
34
  };
34
35
  const SEARCH_NATIVE_EVENT_NAMES = {
35
36
  click: 'click'
@@ -58,6 +59,7 @@ const SEARCH_CLASS_NAMES = {
58
59
  productPriceRegular: `${baseSearchCssClass}__product-price_regular`,
59
60
  productPricePromotion: `${baseSearchCssClass}__product-price_promotion`,
60
61
  productPricePromotionIcon: `${baseSearchCssClass}__product-price_promotion-icon`,
62
+ productPercentPromotion: `${baseSearchCssClass}__product-price_promotion-percent`,
61
63
  productAvailability: `${baseSearchCssClass}__product-availability`,
62
64
  starScore: 'star-score',
63
65
  historyItemValue: `${baseSearchCssClass}__history-item-value`,
@@ -98,8 +100,15 @@ const EMPTY_SEARCH_RESULTS = {
98
100
  const SCROLL_DIRECTIONS = {
99
101
  up: 'up',
100
102
  down: 'down'
101
- };
103
+ };
104
+ const SUGGESTIONS_TYPE = {
105
+ suggestion: 'suggestion',
106
+ suggestionInCategory: 'suggestionInCategory',
107
+ category: 'category'
108
+ };
109
+ const DEFAULT_VIEW = 'default';
102
110
 
111
+ exports.DEFAULT_VIEW = DEFAULT_VIEW;
103
112
  exports.EMPTY_SEARCH_RESULTS = EMPTY_SEARCH_RESULTS;
104
113
  exports.SCROLL_DIRECTIONS = SCROLL_DIRECTIONS;
105
114
  exports.SEARCH_CLASS_NAMES = SEARCH_CLASS_NAMES;
@@ -110,4 +119,5 @@ exports.SEARCH_CUSTOM_EVENT_NAMES = SEARCH_CUSTOM_EVENT_NAMES;
110
119
  exports.SEARCH_NATIVE_EVENT_NAMES = SEARCH_NATIVE_EVENT_NAMES;
111
120
  exports.SEARCH_PORTAL_DESTINATIONS = SEARCH_PORTAL_DESTINATIONS;
112
121
  exports.SEARCH_SLOT_NAMES = SEARCH_SLOT_NAMES;
122
+ exports.SUGGESTIONS_TYPE = SUGGESTIONS_TYPE;
113
123
  //# sourceMappingURL=search_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -18,6 +18,11 @@ exports.HSearchClear = class HSearchClear extends phoenix_light_lit_element.Phoe
18
18
  super();
19
19
  this._shouldShow = false;
20
20
  this._isRequestPending = false;
21
+ this._dispatchClearEvent = () => {
22
+ this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.clear, {
23
+ bubbles: true
24
+ }));
25
+ };
21
26
  this._btnController = new btn_controller.BtnController(this, this._dispatchClearEvent);
22
27
  }
23
28
  connectedCallback() {
@@ -25,11 +30,6 @@ exports.HSearchClear = class HSearchClear extends phoenix_light_lit_element.Phoe
25
30
  this._searchContextSetup();
26
31
  this.addEventListener(search_constants.SEARCH_NATIVE_EVENT_NAMES.click, this._dispatchClearEvent);
27
32
  }
28
- _dispatchClearEvent() {
29
- this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.clear, {
30
- bubbles: true
31
- }));
32
- }
33
33
  async _searchContextSetup() {
34
34
  try {
35
35
  this._searchContextConsumer = new context_consumer_controller.ContextConsumerController(this);
@@ -11,17 +11,17 @@ var search_constants = require('../../search_constants.js');
11
11
  exports.HSearchSubmit = class HSearchSubmit extends phoenix_light_lit_element.PhoenixLightLitElement {
12
12
  constructor() {
13
13
  super();
14
+ this._dispatchSubmitEvent = () => {
15
+ this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.submit, {
16
+ bubbles: true
17
+ }));
18
+ };
14
19
  this._btnController = new btn_controller.BtnController(this, this._dispatchSubmitEvent);
15
20
  }
16
21
  connectedCallback() {
17
22
  super.connectedCallback();
18
23
  this.addEventListener(search_constants.SEARCH_NATIVE_EVENT_NAMES.click, this._dispatchSubmitEvent);
19
24
  }
20
- _dispatchSubmitEvent() {
21
- this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.submit, {
22
- bubbles: true
23
- }));
24
- }
25
25
  };
26
26
  exports.HSearchSubmit = tslib_es6.__decorate([
27
27
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.submitButton),
@@ -3,11 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
6
7
  var phoenix_light_lit_element = require('../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
7
8
  var phoenix_custom_element = require('../../../../../core/decorators/phoenix_custom_element.js');
8
9
  var search_constants = require('../../search_constants.js');
9
10
 
10
11
  exports.HSearchInput = class HSearchInput extends phoenix_light_lit_element.PhoenixLightLitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this._isSearchPhraseCleared = false;
15
+ }
11
16
  connectedCallback() {
12
17
  super.connectedCallback();
13
18
  this._input = this.querySelector('input[type="search"]');
@@ -51,6 +56,10 @@ exports.HSearchInput = class HSearchInput extends phoenix_light_lit_element.Phoe
51
56
  this._dispatchCustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.keyupInput, ev.target.value);
52
57
  return;
53
58
  }
59
+ if (this._isSearchPhraseCleared) {
60
+ this._isSearchPhraseCleared = false;
61
+ return;
62
+ }
54
63
  this._dispatchCustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.submit, ev.target.value);
55
64
  });
56
65
  this._input.addEventListener('search', (ev) => {
@@ -60,7 +69,13 @@ exports.HSearchInput = class HSearchInput extends phoenix_light_lit_element.Phoe
60
69
  this._dispatchCustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.searchInput, ev.target.value);
61
70
  });
62
71
  document.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.clear, () => {
72
+ this._isSearchPhraseCleared = true;
63
73
  this._input.value = '';
74
+ this._input.focus();
75
+ });
76
+ document.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.updateSearchPhrase, (ev) => {
77
+ this._input.value = ev.detail.searchPhrase;
78
+ this._dispatchCustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.keyupInput, ev.detail.searchPhrase);
64
79
  });
65
80
  }
66
81
  _dispatchCustomEvent(eventName, searchPhrase) {
@@ -72,6 +87,10 @@ exports.HSearchInput = class HSearchInput extends phoenix_light_lit_element.Phoe
72
87
  }));
73
88
  }
74
89
  };
90
+ tslib_es6.__decorate([
91
+ decorators.state(),
92
+ tslib_es6.__metadata("design:type", Boolean)
93
+ ], exports.HSearchInput.prototype, "_isSearchPhraseCleared", void 0);
75
94
  exports.HSearchInput = tslib_es6.__decorate([
76
95
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.searchInput)
77
96
  ], exports.HSearchInput);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -37,10 +37,21 @@ exports.HSearchMessage = class HSearchMessage extends phoenix_light_lit_element.
37
37
  _hasNoHistoryAndEmptyPhrase() {
38
38
  return this.searchPhrase === '' && this.history.length === 0;
39
39
  }
40
+ handleGoToResults() {
41
+ this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.searchPhraseSubmitted, {
42
+ bubbles: true,
43
+ detail: {
44
+ searchPhrase: this.searchPhrase
45
+ }
46
+ }));
47
+ }
40
48
  render() {
41
49
  return lit.html `
42
50
  ${when.when(this._isNoResultsForSearchPhrase(), () => lit.html `<p class="${search_constants.SEARCH_CLASS_NAMES.messageNoResults}">
43
- ${this.searchPhrase} - <a class="${search_constants.SEARCH_CLASS_NAMES.messageText}">${this.translations.searchInStore}</a>
51
+ ${this.searchPhrase} -
52
+ <button class="${search_constants.SEARCH_CLASS_NAMES.messageText}" @click="${this.handleGoToResults}" type="button">
53
+ ${this.translations.searchInStore}
54
+ </button>
44
55
  </p>`, () => lit.html `${when.when(this._hasHistoryAndEmptyPhrase(), () => lit.html `<p class="${search_constants.SEARCH_CLASS_NAMES.message} ${search_constants.SEARCH_CLASS_NAMES.messageWithHistory}">
45
56
  ${this.translations.enterSearchPraseOrChooseFromHistory}
46
57
  </p>`)}
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,sBAAsB,oDAAwD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,sBAAsB,oDAAwD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -16,6 +16,12 @@ exports.HSearchProducerContent = class HSearchProducerContent extends phoenix_li
16
16
  super(...arguments);
17
17
  this.initialItemIds = {};
18
18
  this.translations = {};
19
+ this.searchPhrase = '';
20
+ }
21
+ _getMatchedPhrase(phrase) {
22
+ return phrase.toLowerCase().startsWith(this.searchPhrase)
23
+ ? lit.html `${phrase.substring(0, this.searchPhrase.length)}<strong>${phrase.substring(this.searchPhrase.length)}</strong>`
24
+ : lit.html `${phrase}`;
19
25
  }
20
26
  render() {
21
27
  return lit.html `
@@ -37,7 +43,7 @@ exports.HSearchProducerContent = class HSearchProducerContent extends phoenix_li
37
43
  >
38
44
  ${when.when((_b = producer.image) === null || _b === void 0 ? void 0 : _b.imagePath, () => { var _a; return lit.html `<img src="${(_a = producer.image) === null || _a === void 0 ? void 0 : _a.imagePath}" alt="${producer.name}" />`; })}
39
45
 
40
- <span>${producer.name}</span>
46
+ <span>${this._getMatchedPhrase(producer.name)}</span>
41
47
  </a>
42
48
  </li>`;
43
49
  })}
@@ -61,6 +67,10 @@ tslib_es6.__decorate([
61
67
  decorators.property({ type: Object }),
62
68
  tslib_es6.__metadata("design:type", Object)
63
69
  ], exports.HSearchProducerContent.prototype, "translations", void 0);
70
+ tslib_es6.__decorate([
71
+ decorators.property({ type: String, attribute: 'search-phrase' }),
72
+ tslib_es6.__metadata("design:type", String)
73
+ ], exports.HSearchProducerContent.prototype, "searchPhrase", void 0);
64
74
  exports.HSearchProducerContent = tslib_es6.__decorate([
65
75
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.searchProducerContent)
66
76
  ], exports.HSearchProducerContent);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -29,7 +29,21 @@ exports.HSearchProductContent = class HSearchProductContent extends phoenix_ligh
29
29
  };
30
30
  }
31
31
  _getShortenProductName(productName) {
32
- return productName.substring(0, search_constants.SEARCH_CONFIGURATION.maxCharactersInProductName) + '...';
32
+ return productName.length > search_constants.SEARCH_CONFIGURATION.maxCharactersInProductName
33
+ ? productName.substring(0, search_constants.SEARCH_CONFIGURATION.maxCharactersInProductName) + '...'
34
+ : productName;
35
+ }
36
+ extractNumber(text) {
37
+ const numberArray = text
38
+ .split(' ')
39
+ .map((word) => parseFloat(word))
40
+ .filter((number) => !isNaN(number));
41
+ return numberArray[0];
42
+ }
43
+ _getPercentPromotion(prices) {
44
+ const regularPrice = this.extractNumber(prices.basic.text);
45
+ const promotionPrice = this.extractNumber(prices.promotion.text);
46
+ return `-${Math.round(((regularPrice - promotionPrice) / regularPrice) * 100)}%`;
33
47
  }
34
48
  render() {
35
49
  return lit.html `
@@ -65,6 +79,7 @@ exports.HSearchProductContent = class HSearchProductContent extends phoenix_ligh
65
79
  <div class="${search_constants.SEARCH_CLASS_NAMES.productPriceRegular}">
66
80
  <span>${this.translations.regularPrice}:</span>
67
81
  <span class="${search_constants.SEARCH_CLASS_NAMES.productPriceBasic}">${product.prices.basic.text}</span>
82
+ <span class="${search_constants.SEARCH_CLASS_NAMES.productPercentPromotion}">${this._getPercentPromotion(product.prices)}</span>
68
83
  </div>
69
84
  </div>`, () => lit.html `<div class="${search_constants.SEARCH_CLASS_NAMES.productText}">${product.prices.basic.text}</div>`)}
70
85
  ${when.when(product.isStock, () => lit.html `<div class="${search_constants.SEARCH_CLASS_NAMES.productPriceInfo}">
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -63,12 +63,11 @@ exports.HSearchResults = class HSearchResults extends phoenix_light_lit_element.
63
63
  return lit.html `
64
64
  ${when.when(((_a = this.results.suggestions) === null || _a === void 0 ? void 0 : _a.length) || ((_b = this.results.categories) === null || _b === void 0 ? void 0 : _b.length), () => lit.html ` <h-search-suggestion-content
65
65
  class="${search_constants.SEARCH_CLASS_NAMES.section}"
66
- .suggestions="${this.results.suggestions}"
67
- .categories="${this.results.categories}"
68
- .products="${this.results.products}"
69
66
  active-item-id="${this.activeItemId}"
70
67
  .initialItemIds="${this._getInitialItemsIds()}"
71
68
  .translations="${this.translations}"
69
+ locale="${this.locale}"
70
+ view="${this.view}"
72
71
  >
73
72
  </h-search-suggestion-content>`)}
74
73
  ${when.when((_c = this.results.products) === null || _c === void 0 ? void 0 : _c.length, () => lit.html `
@@ -100,6 +99,7 @@ exports.HSearchResults = class HSearchResults extends phoenix_light_lit_element.
100
99
  active-item-id="${this.activeItemId}"
101
100
  .initialItemIds="${this._getInitialItemsIds()}"
102
101
  .translations="${this.translations}"
102
+ search-phrase="${this.searchPhrase}"
103
103
  ></h-search-producer-content>`)}
104
104
  `;
105
105
  });
@@ -117,6 +117,14 @@ tslib_es6.__decorate([
117
117
  decorators.property({ type: Object }),
118
118
  tslib_es6.__metadata("design:type", Object)
119
119
  ], exports.HSearchResults.prototype, "settings", void 0);
120
+ tslib_es6.__decorate([
121
+ decorators.property({ type: String }),
122
+ tslib_es6.__metadata("design:type", String)
123
+ ], exports.HSearchResults.prototype, "view", void 0);
124
+ tslib_es6.__decorate([
125
+ decorators.property({ type: String }),
126
+ tslib_es6.__metadata("design:type", String)
127
+ ], exports.HSearchResults.prototype, "locale", void 0);
120
128
  tslib_es6.__decorate([
121
129
  decorators.property({ type: Number, attribute: 'active-item-id' }),
122
130
  tslib_es6.__metadata("design:type", Number)
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,sBAAsB,oDAAwD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,sBAAsB,oDAAwD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -7,6 +7,8 @@ var lit = require('lit');
7
7
  var decorators = require('lit/decorators');
8
8
  var phoenix_light_lit_element = require('../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
9
  var phoenix_custom_element = require('../../../../../core/decorators/phoenix_custom_element.js');
10
+ var observer = require('../../../../../core/classes/observer/observer.js');
11
+ var context_consumer_controller = require('../../../../../core/context/context_consumer_controller.js');
10
12
  var when = require('../../../../../../../../external/lit/external/lit-html/directives/when.js');
11
13
  var search_constants = require('../../search_constants.js');
12
14
  var repeat = require('../../../../../../../../external/lit/external/lit-html/directives/repeat.js');
@@ -14,85 +16,124 @@ var repeat = require('../../../../../../../../external/lit/external/lit-html/dir
14
16
  exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoenix_light_lit_element.PhoenixLightLitElement {
15
17
  constructor() {
16
18
  super(...arguments);
17
- this.suggestions = [];
18
19
  this.initialItemIds = {};
19
20
  this.translations = {};
20
- this.getSuggestionListHtml = () => {
21
- return lit.html `
22
- <h3 class="${search_constants.SEARCH_CLASS_NAMES.headline}">${this.translations.suggestions}</h3>
23
-
24
- <ul>
25
- ${when.when(this.suggestions, () => lit.html `${repeat.repeat(this.suggestions, (suggestion, index) => lit.html `<li
26
- @click=${() => this.handleSuggestion(suggestion)}
27
- class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${index === this.activeItemId
28
- ? search_constants.SEARCH_CLASS_NAMES.itemActive
29
- : ''}"
30
- data-suggested-value="${suggestion}"
31
- data-search-item-id="${index}"
32
- >
33
- <span>${suggestion}</span>
34
- <h-icon icon-name="icon-arrow-up-left" clickable=${true}></h-icon>
35
- </li>`)}`)}
36
- ${when.when(this._isProductInTheCategory(), () => lit.html `<li
37
- @click=${() => this.handleSuggestion(this.suggestions[0])}
38
- class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${this.initialItemIds.suggestionInCategory ===
39
- this.activeItemId
40
- ? search_constants.SEARCH_CLASS_NAMES.itemActive
41
- : ''}"
42
- data-suggested-value="${this.suggestions[0]}"
43
- data-search-item-id="${this.initialItemIds.suggestionInCategory}"
44
- >
45
- <p class="${search_constants.SEARCH_CLASS_NAMES.link}">
46
- <span>${this.suggestions[0]}</span>
47
- <span class="${search_constants.SEARCH_CLASS_NAMES.categoryTitle}">${this.translations.inTheCategory}</span>
48
- <span>${this.products[0].category.name}</span>
49
- </p>
50
- </li>`)}
51
- ${when.when(this.categories, () => lit.html `${repeat.repeat(this.categories, (category, index) => lit.html `<li
52
- class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${this.initialItemIds.categories +
53
- index ===
54
- this.activeItemId
55
- ? search_constants.SEARCH_CLASS_NAMES.itemActive
56
- : ''}"
57
- data-search-item-id="${this.initialItemIds.categories + index}"
58
- >
59
- <a class="${search_constants.SEARCH_CLASS_NAMES.link}" href="${category.url}">
60
- <span>${category.name}</span>
61
- <span class="${search_constants.SEARCH_CLASS_NAMES.categoryTitle}">${this.translations.category}</span>
62
- </a>
63
- </li>`)}`)}
64
- </ul>
65
- `;
21
+ this.view = search_constants.DEFAULT_VIEW;
22
+ this._searchPhrase = '';
23
+ this._suggestionsData = [];
24
+ this._updateSearchPhrase = (ev, suggestion) => {
25
+ ev.stopPropagation();
26
+ this._dispatchEventWithSearchPhrase(search_constants.SEARCH_CUSTOM_EVENT_NAMES.updateSearchPhrase, suggestion);
66
27
  };
67
- this._shouldShowSuggestionContent = () => { var _a, _b; return ((_a = this.suggestions) === null || _a === void 0 ? void 0 : _a.length) || ((_b = this.categories) === null || _b === void 0 ? void 0 : _b.length); };
68
28
  }
69
- handleSuggestion(suggestion) {
70
- this.dispatchEvent(new CustomEvent(search_constants.SEARCH_CUSTOM_EVENT_NAMES.searchPhraseSubmitted, {
29
+ async connectedCallback() {
30
+ super.connectedCallback();
31
+ try {
32
+ this._searchContextConsumer = new context_consumer_controller.ContextConsumerController(this);
33
+ this._searchContext$ = await this._searchContextConsumer.consumeAsync(search_constants.SEARCH_CONTEXT_NAMES.searchContext);
34
+ this._searchContextObserver = new observer.Observer((searchData) => {
35
+ this._searchPhrase = searchData.searchPhrase;
36
+ this._setupSuggestionData(searchData.results);
37
+ });
38
+ this._searchContext$.subscribe(this._searchContextObserver);
39
+ }
40
+ catch (_a) {
41
+ console.error('Search context is not provided');
42
+ }
43
+ }
44
+ _setupSuggestionData(results) {
45
+ let suggestionsData = [];
46
+ if (results.suggestions.length) {
47
+ results.suggestions.forEach((suggestion, index) => {
48
+ suggestionsData.push({ suggestionName: suggestion, type: search_constants.SUGGESTIONS_TYPE.suggestion });
49
+ if (index)
50
+ return;
51
+ const isProductInTheCategory = results.products.length;
52
+ if (isProductInTheCategory) {
53
+ const lang = this.locale.split('_')[0];
54
+ suggestionsData.push({
55
+ suggestionName: suggestion,
56
+ categoryName: results.products[0].category.name,
57
+ type: search_constants.SUGGESTIONS_TYPE.suggestionInCategory,
58
+ url: `/${lang}/c/${results.products[0].category.name}/${results.products[0].category.categoryId}/1/${this.view}/1/searchquery/${suggestion}`
59
+ });
60
+ }
61
+ if (results.categories.length) {
62
+ suggestionsData = [
63
+ ...suggestionsData,
64
+ ...results.categories.map((category) => ({
65
+ categoryName: category.name,
66
+ url: category.url,
67
+ type: search_constants.SUGGESTIONS_TYPE.category
68
+ }))
69
+ ];
70
+ }
71
+ });
72
+ }
73
+ else if (results.categories.length) {
74
+ suggestionsData = [
75
+ ...results.categories.map((category) => ({
76
+ categoryName: category.name,
77
+ url: category.url,
78
+ type: search_constants.SUGGESTIONS_TYPE.category
79
+ }))
80
+ ];
81
+ }
82
+ this._suggestionsData = suggestionsData;
83
+ }
84
+ _handleSuggestion(suggestion, suggestionType) {
85
+ if (suggestionType !== search_constants.SUGGESTIONS_TYPE.suggestion)
86
+ return;
87
+ this._dispatchEventWithSearchPhrase(search_constants.SEARCH_CUSTOM_EVENT_NAMES.searchPhraseSubmitted, suggestion);
88
+ }
89
+ _dispatchEventWithSearchPhrase(eventName, searchPhrase) {
90
+ this.dispatchEvent(new CustomEvent(eventName, {
71
91
  bubbles: true,
72
92
  detail: {
73
- searchPhrase: suggestion
93
+ searchPhrase
74
94
  }
75
95
  }));
76
96
  }
77
- _isProductInTheCategory() {
78
- return this.products.length && this.suggestions.length;
97
+ _getMatchedPhrase(phrase) {
98
+ const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this._searchPhrase);
99
+ if (!phraseIncludesSearchPhrase)
100
+ return lit.html `${phrase}`;
101
+ const index = phrase.toLowerCase().indexOf(this._searchPhrase) + this._searchPhrase.length;
102
+ return lit.html `${phrase.substring(0, index)}<strong>${phrase.substring(index)}</strong>`;
79
103
  }
80
104
  render() {
81
- return when.when(this._shouldShowSuggestionContent(), this.getSuggestionListHtml);
105
+ return when.when(this._suggestionsData.length, () => lit.html `
106
+ <h3 class="${search_constants.SEARCH_CLASS_NAMES.headline}">${this.translations.suggestions}</h3>
107
+
108
+ <ul>
109
+ ${repeat.repeat(this._suggestionsData, (suggestion, index) => lit.html `<li
110
+ @click=${() => this._handleSuggestion(suggestion.suggestionName, suggestion.type)}
111
+ class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${index === this.activeItemId
112
+ ? search_constants.SEARCH_CLASS_NAMES.itemActive
113
+ : ''}"
114
+ data-suggested-value="${suggestion.suggestionName}"
115
+ data-search-item-id="${index}"
116
+ >
117
+ ${when.when(suggestion.type === search_constants.SUGGESTIONS_TYPE.suggestion, () => lit.html ` <span> ${this._getMatchedPhrase(suggestion.suggestionName)} </span>
118
+ <h-icon
119
+ icon-name="icon-arrow-up-left"
120
+ clickable=${true}
121
+ @click=${(ev) => this._updateSearchPhrase(ev, suggestion.suggestionName)}
122
+ ></h-icon>`)}
123
+ ${when.when(suggestion.type === search_constants.SUGGESTIONS_TYPE.suggestionInCategory, () => lit.html ` <a class="${search_constants.SEARCH_CLASS_NAMES.link}" href=${suggestion.url}>
124
+ <span> ${this._getMatchedPhrase(suggestion.suggestionName)} </span>
125
+ <span class="${search_constants.SEARCH_CLASS_NAMES.categoryTitle}"> ${this.translations.inTheCategory} </span>
126
+ <span> ${suggestion.categoryName} </span>
127
+ </a>`)}
128
+ ${when.when(suggestion.type === search_constants.SUGGESTIONS_TYPE.category, () => lit.html ` <a class="${search_constants.SEARCH_CLASS_NAMES.link}" href="${suggestion.url}">
129
+ <span> ${this._getMatchedPhrase(suggestion.categoryName)} </span>
130
+ <span class="${search_constants.SEARCH_CLASS_NAMES.categoryTitle}"> ${this.translations.category} </span>
131
+ </a>`)}
132
+ </li>`)}
133
+ </ul>
134
+ `);
82
135
  }
83
136
  };
84
- tslib_es6.__decorate([
85
- decorators.property({ type: Object, reflect: true }),
86
- tslib_es6.__metadata("design:type", Array)
87
- ], exports.HSearchSuggestionContent.prototype, "suggestions", void 0);
88
- tslib_es6.__decorate([
89
- decorators.property({ type: Object, reflect: true }),
90
- tslib_es6.__metadata("design:type", Array)
91
- ], exports.HSearchSuggestionContent.prototype, "categories", void 0);
92
- tslib_es6.__decorate([
93
- decorators.property({ type: Object, reflect: true }),
94
- tslib_es6.__metadata("design:type", Array)
95
- ], exports.HSearchSuggestionContent.prototype, "products", void 0);
96
137
  tslib_es6.__decorate([
97
138
  decorators.property({ type: Number, attribute: 'active-item-id' }),
98
139
  tslib_es6.__metadata("design:type", Number)
@@ -105,6 +146,22 @@ tslib_es6.__decorate([
105
146
  decorators.property({ type: Object }),
106
147
  tslib_es6.__metadata("design:type", Object)
107
148
  ], exports.HSearchSuggestionContent.prototype, "translations", void 0);
149
+ tslib_es6.__decorate([
150
+ decorators.property({ type: String }),
151
+ tslib_es6.__metadata("design:type", Object)
152
+ ], exports.HSearchSuggestionContent.prototype, "view", void 0);
153
+ tslib_es6.__decorate([
154
+ decorators.property({ type: String }),
155
+ tslib_es6.__metadata("design:type", String)
156
+ ], exports.HSearchSuggestionContent.prototype, "locale", void 0);
157
+ tslib_es6.__decorate([
158
+ decorators.state(),
159
+ tslib_es6.__metadata("design:type", String)
160
+ ], exports.HSearchSuggestionContent.prototype, "_searchPhrase", void 0);
161
+ tslib_es6.__decorate([
162
+ decorators.state(),
163
+ tslib_es6.__metadata("design:type", Array)
164
+ ], exports.HSearchSuggestionContent.prototype, "_suggestionsData", void 0);
108
165
  exports.HSearchSuggestionContent = tslib_es6.__decorate([
109
166
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.searchSuggestionContent)
110
167
  ], exports.HSearchSuggestionContent);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2EAAmF;AACtG;AACA,qBAAqB,6EAAqF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -560,6 +560,7 @@ Object.defineProperty(exports, 'HButtonStepper', {
560
560
  return button_stepper.HButtonStepper;
561
561
  }
562
562
  });
563
+ exports.DEFAULT_VIEW = search_constants.DEFAULT_VIEW;
563
564
  exports.EMPTY_SEARCH_RESULTS = search_constants.EMPTY_SEARCH_RESULTS;
564
565
  exports.SCROLL_DIRECTIONS = search_constants.SCROLL_DIRECTIONS;
565
566
  exports.SEARCH_CLASS_NAMES = search_constants.SEARCH_CLASS_NAMES;
@@ -570,6 +571,7 @@ exports.SEARCH_CUSTOM_EVENT_NAMES = search_constants.SEARCH_CUSTOM_EVENT_NAMES;
570
571
  exports.SEARCH_NATIVE_EVENT_NAMES = search_constants.SEARCH_NATIVE_EVENT_NAMES;
571
572
  exports.SEARCH_PORTAL_DESTINATIONS = search_constants.SEARCH_PORTAL_DESTINATIONS;
572
573
  exports.SEARCH_SLOT_NAMES = search_constants.SEARCH_SLOT_NAMES;
574
+ exports.SUGGESTIONS_TYPE = search_constants.SUGGESTIONS_TYPE;
573
575
  Object.defineProperty(exports, 'HSearch', {
574
576
  enumerable: true,
575
577
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}