@shoper/phoenix_design_system 1.17.16-11 → 1.17.16-12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +0 -4
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +22 -36
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +0 -4
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.d.ts +2 -6
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +22 -36
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,10 +76,6 @@ exports.HSearchResults = class HSearchResults extends phoenix_light_lit_element.
|
|
|
76
76
|
locale="${this.locale}"
|
|
77
77
|
view="${this.view}"
|
|
78
78
|
module-instance-id="${this.moduleInstanceId}"
|
|
79
|
-
search-phrase="${this.searchPhrase}"
|
|
80
|
-
.suggestions="${this.results.suggestions}"
|
|
81
|
-
.products="${this.results.products}"
|
|
82
|
-
.categories="${this.results.categories}"
|
|
83
79
|
.suggestionAriaLabel=${this.settings.suggesterItemAriaLabel}
|
|
84
80
|
>
|
|
85
81
|
</h-search-suggestion-content>`)}
|
|
@@ -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,iBAAiB,8DAAkE;AACnF,mBAAmB,8DAAkE;AACrF;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;AACA;AACA;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,iBAAiB,8DAAkE;AACnF,mBAAmB,8DAAkE;AACrF;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;AACA;AACA;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,7 +16,9 @@ var repeat = require('../../../../../../../../external/lit-html/directives/repea
|
|
|
16
16
|
exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
+
this.initialItemIds = {};
|
|
19
20
|
this.translations = {};
|
|
21
|
+
this._searchPhrase = '';
|
|
20
22
|
this._suggestionsData = [];
|
|
21
23
|
this._updateSearchPhrase = (ev, suggestion) => {
|
|
22
24
|
ev.stopPropagation();
|
|
@@ -25,12 +27,11 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
25
27
|
}
|
|
26
28
|
async connectedCallback() {
|
|
27
29
|
super.connectedCallback();
|
|
28
|
-
this._setupSuggestionData();
|
|
29
30
|
try {
|
|
30
31
|
this._searchContextConsumer = new context_consumer_controller.ContextConsumerController(this);
|
|
31
32
|
this._searchContext$ = await this._searchContextConsumer.consumeAsync(this.moduleInstanceId);
|
|
32
33
|
this._searchContextObserver = new observer.Observer((searchData) => {
|
|
33
|
-
this.
|
|
34
|
+
this._searchPhrase = searchData.searchPhrase;
|
|
34
35
|
this._setupSuggestionData(searchData.results);
|
|
35
36
|
});
|
|
36
37
|
this._searchContext$.subscribe(this._searchContextObserver);
|
|
@@ -41,26 +42,25 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
41
42
|
}
|
|
42
43
|
_setupSuggestionData(results) {
|
|
43
44
|
let suggestionsData = [];
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
source.suggestions.forEach((suggestion, index) => {
|
|
45
|
+
if (results.suggestions.length) {
|
|
46
|
+
results.suggestions.forEach((suggestion, index) => {
|
|
47
47
|
suggestionsData.push({ suggestionName: suggestion, type: search_constants.SUGGESTIONS_TYPE.suggestion });
|
|
48
48
|
if (index)
|
|
49
49
|
return;
|
|
50
|
-
const isProductInTheCategory =
|
|
50
|
+
const isProductInTheCategory = results.products.length;
|
|
51
51
|
if (isProductInTheCategory) {
|
|
52
52
|
const lang = this.locale.split('_')[0];
|
|
53
53
|
suggestionsData.push({
|
|
54
54
|
suggestionName: suggestion,
|
|
55
|
-
categoryName:
|
|
55
|
+
categoryName: results.products[0].category.breadcrumbs,
|
|
56
56
|
type: search_constants.SUGGESTIONS_TYPE.suggestionInCategory,
|
|
57
|
-
url: `/${lang}/c/${
|
|
57
|
+
url: `/${lang}/c/${results.products[0].category.name}/${results.products[0].category.categoryId}/1/${this.view}/1/searchquery/${suggestion}`
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
if (
|
|
60
|
+
if (results.categories.length) {
|
|
61
61
|
suggestionsData = [
|
|
62
62
|
...suggestionsData,
|
|
63
|
-
...
|
|
63
|
+
...results.categories.map((category) => ({
|
|
64
64
|
categoryName: category.name,
|
|
65
65
|
url: category.url,
|
|
66
66
|
type: search_constants.SUGGESTIONS_TYPE.category
|
|
@@ -69,9 +69,9 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
else if (
|
|
72
|
+
else if (results.categories.length) {
|
|
73
73
|
suggestionsData = [
|
|
74
|
-
...
|
|
74
|
+
...results.categories.map((category) => ({
|
|
75
75
|
categoryName: category.name,
|
|
76
76
|
url: category.url,
|
|
77
77
|
type: search_constants.SUGGESTIONS_TYPE.category
|
|
@@ -80,11 +80,6 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
80
80
|
}
|
|
81
81
|
this._suggestionsData = suggestionsData;
|
|
82
82
|
}
|
|
83
|
-
_handleSuggestionWithKeyboard(ev, suggestion, suggestionType) {
|
|
84
|
-
if (ev.key !== 'Enter' && ev.key !== ' ')
|
|
85
|
-
return;
|
|
86
|
-
this._handleSuggestion(suggestion, suggestionType);
|
|
87
|
-
}
|
|
88
83
|
_handleSuggestion(suggestion, suggestionType) {
|
|
89
84
|
if (suggestionType !== search_constants.SUGGESTIONS_TYPE.suggestion)
|
|
90
85
|
return;
|
|
@@ -99,10 +94,10 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
99
94
|
});
|
|
100
95
|
}
|
|
101
96
|
_getMatchedPhrase(phrase) {
|
|
102
|
-
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.
|
|
97
|
+
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this._searchPhrase);
|
|
103
98
|
if (!phraseIncludesSearchPhrase)
|
|
104
99
|
return lit.html `${phrase}`;
|
|
105
|
-
const index = phrase.toLowerCase().indexOf(this.
|
|
100
|
+
const index = phrase.toLowerCase().indexOf(this._searchPhrase) + this._searchPhrase.length;
|
|
106
101
|
return lit.html `${phrase.substring(0, index)}<strong>${phrase.substring(index)}</strong>`;
|
|
107
102
|
}
|
|
108
103
|
render() {
|
|
@@ -112,7 +107,6 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
112
107
|
<ul>
|
|
113
108
|
${repeat.repeat(this._suggestionsData, (suggestion, index) => lit.html `<li
|
|
114
109
|
@click=${() => this._handleSuggestion(suggestion.suggestionName, suggestion.type)}
|
|
115
|
-
@keydown=${(ev) => this._handleSuggestionWithKeyboard(ev, suggestion.suggestionName, suggestion.type)}
|
|
116
110
|
class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${String(index) === this.activeItemId
|
|
117
111
|
? search_constants.SEARCH_CLASS_NAMES.itemActive
|
|
118
112
|
: ''}"
|
|
@@ -152,6 +146,10 @@ tslib_es6.__decorate([
|
|
|
152
146
|
decorators.property({ type: String, attribute: 'search-id' }),
|
|
153
147
|
tslib_es6.__metadata("design:type", String)
|
|
154
148
|
], exports.HSearchSuggestionContent.prototype, "searchId", void 0);
|
|
149
|
+
tslib_es6.__decorate([
|
|
150
|
+
decorators.property({ type: Object, reflect: true }),
|
|
151
|
+
tslib_es6.__metadata("design:type", Object)
|
|
152
|
+
], exports.HSearchSuggestionContent.prototype, "initialItemIds", void 0);
|
|
155
153
|
tslib_es6.__decorate([
|
|
156
154
|
decorators.property({ type: Object }),
|
|
157
155
|
tslib_es6.__metadata("design:type", Object)
|
|
@@ -168,26 +166,14 @@ tslib_es6.__decorate([
|
|
|
168
166
|
decorators.property({ type: String, attribute: 'module-instance-id' }),
|
|
169
167
|
tslib_es6.__metadata("design:type", String)
|
|
170
168
|
], exports.HSearchSuggestionContent.prototype, "moduleInstanceId", void 0);
|
|
171
|
-
tslib_es6.__decorate([
|
|
172
|
-
decorators.property({ type: String, attribute: 'search-phrase' }),
|
|
173
|
-
tslib_es6.__metadata("design:type", String)
|
|
174
|
-
], exports.HSearchSuggestionContent.prototype, "searchPhrase", void 0);
|
|
175
|
-
tslib_es6.__decorate([
|
|
176
|
-
decorators.property({ type: Object }),
|
|
177
|
-
tslib_es6.__metadata("design:type", Array)
|
|
178
|
-
], exports.HSearchSuggestionContent.prototype, "suggestions", void 0);
|
|
179
|
-
tslib_es6.__decorate([
|
|
180
|
-
decorators.property({ type: Object }),
|
|
181
|
-
tslib_es6.__metadata("design:type", Array)
|
|
182
|
-
], exports.HSearchSuggestionContent.prototype, "products", void 0);
|
|
183
|
-
tslib_es6.__decorate([
|
|
184
|
-
decorators.property({ type: Object, attribute: false }),
|
|
185
|
-
tslib_es6.__metadata("design:type", Array)
|
|
186
|
-
], exports.HSearchSuggestionContent.prototype, "categories", void 0);
|
|
187
169
|
tslib_es6.__decorate([
|
|
188
170
|
decorators.property({ type: String }),
|
|
189
171
|
tslib_es6.__metadata("design:type", String)
|
|
190
172
|
], exports.HSearchSuggestionContent.prototype, "suggestionAriaLabel", void 0);
|
|
173
|
+
tslib_es6.__decorate([
|
|
174
|
+
decorators.state(),
|
|
175
|
+
tslib_es6.__metadata("design:type", String)
|
|
176
|
+
], exports.HSearchSuggestionContent.prototype, "_searchPhrase", void 0);
|
|
191
177
|
tslib_es6.__decorate([
|
|
192
178
|
decorators.state(),
|
|
193
179
|
tslib_es6.__metadata("design:type", Array)
|
|
@@ -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,mBAAmB,8DAAkE;AACrF;AACA,qBAAqB,gEAAoE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8DAAkE;AACrF;AACA,qBAAqB,gEAAoE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -72,10 +72,6 @@ let HSearchResults = class HSearchResults extends PhoenixLightLitElement {
|
|
|
72
72
|
locale="${this.locale}"
|
|
73
73
|
view="${this.view}"
|
|
74
74
|
module-instance-id="${this.moduleInstanceId}"
|
|
75
|
-
search-phrase="${this.searchPhrase}"
|
|
76
|
-
.suggestions="${this.results.suggestions}"
|
|
77
|
-
.products="${this.results.products}"
|
|
78
|
-
.categories="${this.results.categories}"
|
|
79
75
|
.suggestionAriaLabel=${this.settings.suggesterItemAriaLabel}
|
|
80
76
|
>
|
|
81
77
|
</h-search-suggestion-content>`)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA,eAAe,8DAAkE;AACjF,0BAA0B,8DAAkE;AAC5F;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;AACA;AACA;AACA;AACA;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,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA,eAAe,8DAAkE;AACjF,0BAA0B,8DAAkE;AAC5F;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;AACA;AACA;AACA;AACA;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,25 +1,21 @@
|
|
|
1
1
|
import { TemplateResult } from 'lit';
|
|
2
2
|
import { PhoenixLightLitElement } from "../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
3
|
-
import type { TCategory, TProduct } from "../../search_types";
|
|
4
3
|
export declare class HSearchSuggestionContent extends PhoenixLightLitElement {
|
|
5
4
|
private _searchContextConsumer;
|
|
6
5
|
private _searchContext$;
|
|
7
6
|
private _searchContextObserver;
|
|
8
7
|
activeItemId: string;
|
|
9
8
|
searchId: string;
|
|
9
|
+
initialItemIds: Record<string, number>;
|
|
10
10
|
translations: Record<string, string>;
|
|
11
11
|
view: string;
|
|
12
12
|
locale: string;
|
|
13
13
|
moduleInstanceId: string;
|
|
14
|
-
searchPhrase: string;
|
|
15
|
-
suggestions: string[];
|
|
16
|
-
products: TProduct[];
|
|
17
|
-
categories: TCategory[];
|
|
18
14
|
suggestionAriaLabel?: string;
|
|
15
|
+
private _searchPhrase;
|
|
19
16
|
private _suggestionsData;
|
|
20
17
|
connectedCallback(): Promise<void>;
|
|
21
18
|
private _setupSuggestionData;
|
|
22
|
-
private _handleSuggestionWithKeyboard;
|
|
23
19
|
private _handleSuggestion;
|
|
24
20
|
private _dispatchEventWithSearchPhrase;
|
|
25
21
|
private _getMatchedPhrase;
|
|
@@ -12,7 +12,9 @@ import { repeat as c } from '../../../../../../../../external/lit-html/directive
|
|
|
12
12
|
let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLightLitElement {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
|
+
this.initialItemIds = {};
|
|
15
16
|
this.translations = {};
|
|
17
|
+
this._searchPhrase = '';
|
|
16
18
|
this._suggestionsData = [];
|
|
17
19
|
this._updateSearchPhrase = (ev, suggestion) => {
|
|
18
20
|
ev.stopPropagation();
|
|
@@ -21,12 +23,11 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
21
23
|
}
|
|
22
24
|
async connectedCallback() {
|
|
23
25
|
super.connectedCallback();
|
|
24
|
-
this._setupSuggestionData();
|
|
25
26
|
try {
|
|
26
27
|
this._searchContextConsumer = new ContextConsumerController(this);
|
|
27
28
|
this._searchContext$ = await this._searchContextConsumer.consumeAsync(this.moduleInstanceId);
|
|
28
29
|
this._searchContextObserver = new Observer((searchData) => {
|
|
29
|
-
this.
|
|
30
|
+
this._searchPhrase = searchData.searchPhrase;
|
|
30
31
|
this._setupSuggestionData(searchData.results);
|
|
31
32
|
});
|
|
32
33
|
this._searchContext$.subscribe(this._searchContextObserver);
|
|
@@ -37,26 +38,25 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
37
38
|
}
|
|
38
39
|
_setupSuggestionData(results) {
|
|
39
40
|
let suggestionsData = [];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
source.suggestions.forEach((suggestion, index) => {
|
|
41
|
+
if (results.suggestions.length) {
|
|
42
|
+
results.suggestions.forEach((suggestion, index) => {
|
|
43
43
|
suggestionsData.push({ suggestionName: suggestion, type: SUGGESTIONS_TYPE.suggestion });
|
|
44
44
|
if (index)
|
|
45
45
|
return;
|
|
46
|
-
const isProductInTheCategory =
|
|
46
|
+
const isProductInTheCategory = results.products.length;
|
|
47
47
|
if (isProductInTheCategory) {
|
|
48
48
|
const lang = this.locale.split('_')[0];
|
|
49
49
|
suggestionsData.push({
|
|
50
50
|
suggestionName: suggestion,
|
|
51
|
-
categoryName:
|
|
51
|
+
categoryName: results.products[0].category.breadcrumbs,
|
|
52
52
|
type: SUGGESTIONS_TYPE.suggestionInCategory,
|
|
53
|
-
url: `/${lang}/c/${
|
|
53
|
+
url: `/${lang}/c/${results.products[0].category.name}/${results.products[0].category.categoryId}/1/${this.view}/1/searchquery/${suggestion}`
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
if (
|
|
56
|
+
if (results.categories.length) {
|
|
57
57
|
suggestionsData = [
|
|
58
58
|
...suggestionsData,
|
|
59
|
-
...
|
|
59
|
+
...results.categories.map((category) => ({
|
|
60
60
|
categoryName: category.name,
|
|
61
61
|
url: category.url,
|
|
62
62
|
type: SUGGESTIONS_TYPE.category
|
|
@@ -65,9 +65,9 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
else if (
|
|
68
|
+
else if (results.categories.length) {
|
|
69
69
|
suggestionsData = [
|
|
70
|
-
...
|
|
70
|
+
...results.categories.map((category) => ({
|
|
71
71
|
categoryName: category.name,
|
|
72
72
|
url: category.url,
|
|
73
73
|
type: SUGGESTIONS_TYPE.category
|
|
@@ -76,11 +76,6 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
76
76
|
}
|
|
77
77
|
this._suggestionsData = suggestionsData;
|
|
78
78
|
}
|
|
79
|
-
_handleSuggestionWithKeyboard(ev, suggestion, suggestionType) {
|
|
80
|
-
if (ev.key !== 'Enter' && ev.key !== ' ')
|
|
81
|
-
return;
|
|
82
|
-
this._handleSuggestion(suggestion, suggestionType);
|
|
83
|
-
}
|
|
84
79
|
_handleSuggestion(suggestion, suggestionType) {
|
|
85
80
|
if (suggestionType !== SUGGESTIONS_TYPE.suggestion)
|
|
86
81
|
return;
|
|
@@ -95,10 +90,10 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
95
90
|
});
|
|
96
91
|
}
|
|
97
92
|
_getMatchedPhrase(phrase) {
|
|
98
|
-
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.
|
|
93
|
+
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this._searchPhrase);
|
|
99
94
|
if (!phraseIncludesSearchPhrase)
|
|
100
95
|
return html `${phrase}`;
|
|
101
|
-
const index = phrase.toLowerCase().indexOf(this.
|
|
96
|
+
const index = phrase.toLowerCase().indexOf(this._searchPhrase) + this._searchPhrase.length;
|
|
102
97
|
return html `${phrase.substring(0, index)}<strong>${phrase.substring(index)}</strong>`;
|
|
103
98
|
}
|
|
104
99
|
render() {
|
|
@@ -108,7 +103,6 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
108
103
|
<ul>
|
|
109
104
|
${c(this._suggestionsData, (suggestion, index) => html `<li
|
|
110
105
|
@click=${() => this._handleSuggestion(suggestion.suggestionName, suggestion.type)}
|
|
111
|
-
@keydown=${(ev) => this._handleSuggestionWithKeyboard(ev, suggestion.suggestionName, suggestion.type)}
|
|
112
106
|
class="${SEARCH_CLASS_NAMES.item} ${SEARCH_CLASS_NAMES.itemHoverable} ${String(index) === this.activeItemId
|
|
113
107
|
? SEARCH_CLASS_NAMES.itemActive
|
|
114
108
|
: ''}"
|
|
@@ -148,6 +142,10 @@ __decorate([
|
|
|
148
142
|
property({ type: String, attribute: 'search-id' }),
|
|
149
143
|
__metadata("design:type", String)
|
|
150
144
|
], HSearchSuggestionContent.prototype, "searchId", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
property({ type: Object, reflect: true }),
|
|
147
|
+
__metadata("design:type", Object)
|
|
148
|
+
], HSearchSuggestionContent.prototype, "initialItemIds", void 0);
|
|
151
149
|
__decorate([
|
|
152
150
|
property({ type: Object }),
|
|
153
151
|
__metadata("design:type", Object)
|
|
@@ -164,26 +162,14 @@ __decorate([
|
|
|
164
162
|
property({ type: String, attribute: 'module-instance-id' }),
|
|
165
163
|
__metadata("design:type", String)
|
|
166
164
|
], HSearchSuggestionContent.prototype, "moduleInstanceId", void 0);
|
|
167
|
-
__decorate([
|
|
168
|
-
property({ type: String, attribute: 'search-phrase' }),
|
|
169
|
-
__metadata("design:type", String)
|
|
170
|
-
], HSearchSuggestionContent.prototype, "searchPhrase", void 0);
|
|
171
|
-
__decorate([
|
|
172
|
-
property({ type: Object }),
|
|
173
|
-
__metadata("design:type", Array)
|
|
174
|
-
], HSearchSuggestionContent.prototype, "suggestions", void 0);
|
|
175
|
-
__decorate([
|
|
176
|
-
property({ type: Object }),
|
|
177
|
-
__metadata("design:type", Array)
|
|
178
|
-
], HSearchSuggestionContent.prototype, "products", void 0);
|
|
179
|
-
__decorate([
|
|
180
|
-
property({ type: Object, attribute: false }),
|
|
181
|
-
__metadata("design:type", Array)
|
|
182
|
-
], HSearchSuggestionContent.prototype, "categories", void 0);
|
|
183
165
|
__decorate([
|
|
184
166
|
property({ type: String }),
|
|
185
167
|
__metadata("design:type", String)
|
|
186
168
|
], HSearchSuggestionContent.prototype, "suggestionAriaLabel", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
state(),
|
|
171
|
+
__metadata("design:type", String)
|
|
172
|
+
], HSearchSuggestionContent.prototype, "_searchPhrase", void 0);
|
|
187
173
|
__decorate([
|
|
188
174
|
state(),
|
|
189
175
|
__metadata("design:type", Array)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAkE;AAC5F;AACA,4BAA4B,gEAAoE;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;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAkE;AAC5F;AACA,4BAA4B,gEAAoE;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;"}
|
package/package.json
CHANGED