@shoper/phoenix_design_system 1.17.16-1 → 1.17.16-10
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/input/search_input.js +5 -1
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +4 -0
- 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 +66 -3
- 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/input/search_input.d.ts +2 -0
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +5 -1
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +4 -0
- 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 +7 -0
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +66 -3
- package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
- package/package.json +1 -1
package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var tslib_es6 = require('../../../../../../../../external/tslib/tslib.es6.js');
|
|
6
|
+
require('lit');
|
|
6
7
|
var decorators = require('lit/decorators');
|
|
7
8
|
var phoenix_light_lit_element = require('../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
8
9
|
var phoenix_custom_element = require('../../../../../core/decorators/phoenix_custom_element.js');
|
|
@@ -32,10 +33,13 @@ exports.HSearchInput = class HSearchInput extends phoenix_light_lit_element.Phoe
|
|
|
32
33
|
if (!this.input) {
|
|
33
34
|
throw new Error('Search input not found');
|
|
34
35
|
}
|
|
35
|
-
this._setupInitialValue();
|
|
36
36
|
this._setupListeners();
|
|
37
37
|
this._setupAttributes();
|
|
38
38
|
}
|
|
39
|
+
firstUpdated(props) {
|
|
40
|
+
super.firstUpdated(props);
|
|
41
|
+
this._setupInitialValue();
|
|
42
|
+
}
|
|
39
43
|
_setupInitialValue() {
|
|
40
44
|
const searchQueryRegExp = /\/searchquery\/([^/]{1,})/;
|
|
41
45
|
const searchPhraseRegArray = searchQueryRegExp.exec(window.location.pathname);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA,uBAAuB,qDAAyD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,qDAAyD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -76,6 +76,10 @@ 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}"
|
|
79
83
|
.suggestionAriaLabel=${this.settings.suggesterItemAriaLabel}
|
|
80
84
|
>
|
|
81
85
|
</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;AACA;AACA;AACA;AACA;"}
|
|
@@ -39,6 +39,7 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
39
39
|
catch (_a) {
|
|
40
40
|
console.error('Search context is not provided');
|
|
41
41
|
}
|
|
42
|
+
this._setupSuggestionData2();
|
|
42
43
|
}
|
|
43
44
|
_setupSuggestionData(results) {
|
|
44
45
|
let suggestionsData = [];
|
|
@@ -80,6 +81,51 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
80
81
|
}
|
|
81
82
|
this._suggestionsData = suggestionsData;
|
|
82
83
|
}
|
|
84
|
+
_setupSuggestionData2() {
|
|
85
|
+
let suggestionsData = [];
|
|
86
|
+
if (this.suggestions.length) {
|
|
87
|
+
this.suggestions.forEach((suggestion, index) => {
|
|
88
|
+
suggestionsData.push({ suggestionName: suggestion, type: search_constants.SUGGESTIONS_TYPE.suggestion });
|
|
89
|
+
if (index)
|
|
90
|
+
return;
|
|
91
|
+
const isProductInTheCategory = this.products.length;
|
|
92
|
+
if (isProductInTheCategory) {
|
|
93
|
+
const lang = this.locale.split('_')[0];
|
|
94
|
+
suggestionsData.push({
|
|
95
|
+
suggestionName: suggestion,
|
|
96
|
+
categoryName: this.products[0].category.breadcrumbs,
|
|
97
|
+
type: search_constants.SUGGESTIONS_TYPE.suggestionInCategory,
|
|
98
|
+
url: `/${lang}/c/${this.products[0].category.name}/${this.products[0].category.categoryId}/1/${this.view}/1/searchquery/${suggestion}`
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (this.categories.length) {
|
|
102
|
+
suggestionsData = [
|
|
103
|
+
...suggestionsData,
|
|
104
|
+
...this.categories.map((category) => ({
|
|
105
|
+
categoryName: category.name,
|
|
106
|
+
url: category.url,
|
|
107
|
+
type: search_constants.SUGGESTIONS_TYPE.category
|
|
108
|
+
}))
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
else if (this.categories.length) {
|
|
114
|
+
suggestionsData = [
|
|
115
|
+
...this.categories.map((category) => ({
|
|
116
|
+
categoryName: category.name,
|
|
117
|
+
url: category.url,
|
|
118
|
+
type: search_constants.SUGGESTIONS_TYPE.category
|
|
119
|
+
}))
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
this._suggestionsData = suggestionsData;
|
|
123
|
+
}
|
|
124
|
+
_handleSuggestionWithKeyboard(ev, suggestion, suggestionType) {
|
|
125
|
+
if (ev.key !== 'Enter' && ev.key !== ' ')
|
|
126
|
+
return;
|
|
127
|
+
this._handleSuggestion(suggestion, suggestionType);
|
|
128
|
+
}
|
|
83
129
|
_handleSuggestion(suggestion, suggestionType) {
|
|
84
130
|
if (suggestionType !== search_constants.SUGGESTIONS_TYPE.suggestion)
|
|
85
131
|
return;
|
|
@@ -94,10 +140,10 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
94
140
|
});
|
|
95
141
|
}
|
|
96
142
|
_getMatchedPhrase(phrase) {
|
|
97
|
-
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.
|
|
143
|
+
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.searchPhrase);
|
|
98
144
|
if (!phraseIncludesSearchPhrase)
|
|
99
145
|
return lit.html `${phrase}`;
|
|
100
|
-
const index = phrase.toLowerCase().indexOf(this.
|
|
146
|
+
const index = phrase.toLowerCase().indexOf(this.searchPhrase) + this.searchPhrase.length;
|
|
101
147
|
return lit.html `${phrase.substring(0, index)}<strong>${phrase.substring(index)}</strong>`;
|
|
102
148
|
}
|
|
103
149
|
render() {
|
|
@@ -107,6 +153,7 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
107
153
|
<ul>
|
|
108
154
|
${repeat.repeat(this._suggestionsData, (suggestion, index) => lit.html `<li
|
|
109
155
|
@click=${() => this._handleSuggestion(suggestion.suggestionName, suggestion.type)}
|
|
156
|
+
@keydown=${(ev) => this._handleSuggestionWithKeyboard(ev, suggestion.suggestionName, suggestion.type)}
|
|
110
157
|
class="${search_constants.SEARCH_CLASS_NAMES.item} ${search_constants.SEARCH_CLASS_NAMES.itemHoverable} ${String(index) === this.activeItemId
|
|
111
158
|
? search_constants.SEARCH_CLASS_NAMES.itemActive
|
|
112
159
|
: ''}"
|
|
@@ -115,7 +162,7 @@ exports.HSearchSuggestionContent = class HSearchSuggestionContent extends phoeni
|
|
|
115
162
|
aria-label="${this.suggestionAriaLabel ?
|
|
116
163
|
`${this.suggestionAriaLabel} ${suggestion.suggestionName || suggestion.categoryName}` :
|
|
117
164
|
''}"
|
|
118
|
-
tabindex="0
|
|
165
|
+
tabindex=${this.closest('.search_mobile-opened, [display-mode="dropdown"]') || suggestion.type === search_constants.SUGGESTIONS_TYPE.suggestion ? '0' : undefined}
|
|
119
166
|
role="option"
|
|
120
167
|
>
|
|
121
168
|
${when.when(suggestion.type === search_constants.SUGGESTIONS_TYPE.suggestion, () => lit.html ` <span> ${this._getMatchedPhrase(suggestion.suggestionName)} </span>
|
|
@@ -166,6 +213,22 @@ tslib_es6.__decorate([
|
|
|
166
213
|
decorators.property({ type: String, attribute: 'module-instance-id' }),
|
|
167
214
|
tslib_es6.__metadata("design:type", String)
|
|
168
215
|
], exports.HSearchSuggestionContent.prototype, "moduleInstanceId", void 0);
|
|
216
|
+
tslib_es6.__decorate([
|
|
217
|
+
decorators.property({ type: String, attribute: 'search-phrase' }),
|
|
218
|
+
tslib_es6.__metadata("design:type", String)
|
|
219
|
+
], exports.HSearchSuggestionContent.prototype, "searchPhrase", void 0);
|
|
220
|
+
tslib_es6.__decorate([
|
|
221
|
+
decorators.property({ type: Object }),
|
|
222
|
+
tslib_es6.__metadata("design:type", Array)
|
|
223
|
+
], exports.HSearchSuggestionContent.prototype, "suggestions", void 0);
|
|
224
|
+
tslib_es6.__decorate([
|
|
225
|
+
decorators.property({ type: Object }),
|
|
226
|
+
tslib_es6.__metadata("design:type", Array)
|
|
227
|
+
], exports.HSearchSuggestionContent.prototype, "products", void 0);
|
|
228
|
+
tslib_es6.__decorate([
|
|
229
|
+
decorators.property({ type: Object, attribute: false }),
|
|
230
|
+
tslib_es6.__metadata("design:type", Array)
|
|
231
|
+
], exports.HSearchSuggestionContent.prototype, "categories", void 0);
|
|
169
232
|
tslib_es6.__decorate([
|
|
170
233
|
decorators.property({ type: String }),
|
|
171
234
|
tslib_es6.__metadata("design:type", String)
|
|
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { PhoenixLightLitElement } from "../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
2
|
+
import { PropertyValues } from 'lit';
|
|
2
3
|
export declare class HSearchInput extends PhoenixLightLitElement {
|
|
3
4
|
input: HTMLInputElement | null;
|
|
4
5
|
moduleInstanceId: string;
|
|
5
6
|
private _isSearchPhraseCleared;
|
|
6
7
|
connectedCallback(): void;
|
|
8
|
+
firstUpdated(props: PropertyValues): void;
|
|
7
9
|
private _setupInitialValue;
|
|
8
10
|
private _deserializeInputPhrase;
|
|
9
11
|
private _setupListeners;
|
package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import 'lit';
|
|
2
3
|
import { property, state } from 'lit/decorators';
|
|
3
4
|
import { PhoenixLightLitElement } from '../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
5
|
import { phoenixCustomElement } from '../../../../../core/decorators/phoenix_custom_element.js';
|
|
@@ -28,10 +29,13 @@ let HSearchInput = class HSearchInput extends PhoenixLightLitElement {
|
|
|
28
29
|
if (!this.input) {
|
|
29
30
|
throw new Error('Search input not found');
|
|
30
31
|
}
|
|
31
|
-
this._setupInitialValue();
|
|
32
32
|
this._setupListeners();
|
|
33
33
|
this._setupAttributes();
|
|
34
34
|
}
|
|
35
|
+
firstUpdated(props) {
|
|
36
|
+
super.firstUpdated(props);
|
|
37
|
+
this._setupInitialValue();
|
|
38
|
+
}
|
|
35
39
|
_setupInitialValue() {
|
|
36
40
|
const searchQueryRegExp = /\/searchquery\/([^/]{1,})/;
|
|
37
41
|
const searchPhraseRegArray = searchQueryRegExp.exec(window.location.pathname);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA,uBAAuB,qDAAyD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,qDAAyD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6 +72,10 @@ 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}"
|
|
75
79
|
.suggestionAriaLabel=${this.settings.suggesterItemAriaLabel}
|
|
76
80
|
>
|
|
77
81
|
</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;AACA;AACA;AACA;AACA;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
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";
|
|
3
4
|
export declare class HSearchSuggestionContent extends PhoenixLightLitElement {
|
|
4
5
|
private _searchContextConsumer;
|
|
5
6
|
private _searchContext$;
|
|
@@ -11,11 +12,17 @@ export declare class HSearchSuggestionContent extends PhoenixLightLitElement {
|
|
|
11
12
|
view: string;
|
|
12
13
|
locale: string;
|
|
13
14
|
moduleInstanceId: string;
|
|
15
|
+
searchPhrase: string;
|
|
16
|
+
suggestions: string[];
|
|
17
|
+
products: TProduct[];
|
|
18
|
+
categories: TCategory[];
|
|
14
19
|
suggestionAriaLabel?: string;
|
|
15
20
|
private _searchPhrase;
|
|
16
21
|
private _suggestionsData;
|
|
17
22
|
connectedCallback(): Promise<void>;
|
|
18
23
|
private _setupSuggestionData;
|
|
24
|
+
private _setupSuggestionData2;
|
|
25
|
+
private _handleSuggestionWithKeyboard;
|
|
19
26
|
private _handleSuggestion;
|
|
20
27
|
private _dispatchEventWithSearchPhrase;
|
|
21
28
|
private _getMatchedPhrase;
|
|
@@ -35,6 +35,7 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
35
35
|
catch (_a) {
|
|
36
36
|
console.error('Search context is not provided');
|
|
37
37
|
}
|
|
38
|
+
this._setupSuggestionData2();
|
|
38
39
|
}
|
|
39
40
|
_setupSuggestionData(results) {
|
|
40
41
|
let suggestionsData = [];
|
|
@@ -76,6 +77,51 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
76
77
|
}
|
|
77
78
|
this._suggestionsData = suggestionsData;
|
|
78
79
|
}
|
|
80
|
+
_setupSuggestionData2() {
|
|
81
|
+
let suggestionsData = [];
|
|
82
|
+
if (this.suggestions.length) {
|
|
83
|
+
this.suggestions.forEach((suggestion, index) => {
|
|
84
|
+
suggestionsData.push({ suggestionName: suggestion, type: SUGGESTIONS_TYPE.suggestion });
|
|
85
|
+
if (index)
|
|
86
|
+
return;
|
|
87
|
+
const isProductInTheCategory = this.products.length;
|
|
88
|
+
if (isProductInTheCategory) {
|
|
89
|
+
const lang = this.locale.split('_')[0];
|
|
90
|
+
suggestionsData.push({
|
|
91
|
+
suggestionName: suggestion,
|
|
92
|
+
categoryName: this.products[0].category.breadcrumbs,
|
|
93
|
+
type: SUGGESTIONS_TYPE.suggestionInCategory,
|
|
94
|
+
url: `/${lang}/c/${this.products[0].category.name}/${this.products[0].category.categoryId}/1/${this.view}/1/searchquery/${suggestion}`
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (this.categories.length) {
|
|
98
|
+
suggestionsData = [
|
|
99
|
+
...suggestionsData,
|
|
100
|
+
...this.categories.map((category) => ({
|
|
101
|
+
categoryName: category.name,
|
|
102
|
+
url: category.url,
|
|
103
|
+
type: SUGGESTIONS_TYPE.category
|
|
104
|
+
}))
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else if (this.categories.length) {
|
|
110
|
+
suggestionsData = [
|
|
111
|
+
...this.categories.map((category) => ({
|
|
112
|
+
categoryName: category.name,
|
|
113
|
+
url: category.url,
|
|
114
|
+
type: SUGGESTIONS_TYPE.category
|
|
115
|
+
}))
|
|
116
|
+
];
|
|
117
|
+
}
|
|
118
|
+
this._suggestionsData = suggestionsData;
|
|
119
|
+
}
|
|
120
|
+
_handleSuggestionWithKeyboard(ev, suggestion, suggestionType) {
|
|
121
|
+
if (ev.key !== 'Enter' && ev.key !== ' ')
|
|
122
|
+
return;
|
|
123
|
+
this._handleSuggestion(suggestion, suggestionType);
|
|
124
|
+
}
|
|
79
125
|
_handleSuggestion(suggestion, suggestionType) {
|
|
80
126
|
if (suggestionType !== SUGGESTIONS_TYPE.suggestion)
|
|
81
127
|
return;
|
|
@@ -90,10 +136,10 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
90
136
|
});
|
|
91
137
|
}
|
|
92
138
|
_getMatchedPhrase(phrase) {
|
|
93
|
-
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.
|
|
139
|
+
const phraseIncludesSearchPhrase = phrase.toLowerCase().includes(this.searchPhrase);
|
|
94
140
|
if (!phraseIncludesSearchPhrase)
|
|
95
141
|
return html `${phrase}`;
|
|
96
|
-
const index = phrase.toLowerCase().indexOf(this.
|
|
142
|
+
const index = phrase.toLowerCase().indexOf(this.searchPhrase) + this.searchPhrase.length;
|
|
97
143
|
return html `${phrase.substring(0, index)}<strong>${phrase.substring(index)}</strong>`;
|
|
98
144
|
}
|
|
99
145
|
render() {
|
|
@@ -103,6 +149,7 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
103
149
|
<ul>
|
|
104
150
|
${c(this._suggestionsData, (suggestion, index) => html `<li
|
|
105
151
|
@click=${() => this._handleSuggestion(suggestion.suggestionName, suggestion.type)}
|
|
152
|
+
@keydown=${(ev) => this._handleSuggestionWithKeyboard(ev, suggestion.suggestionName, suggestion.type)}
|
|
106
153
|
class="${SEARCH_CLASS_NAMES.item} ${SEARCH_CLASS_NAMES.itemHoverable} ${String(index) === this.activeItemId
|
|
107
154
|
? SEARCH_CLASS_NAMES.itemActive
|
|
108
155
|
: ''}"
|
|
@@ -111,7 +158,7 @@ let HSearchSuggestionContent = class HSearchSuggestionContent extends PhoenixLig
|
|
|
111
158
|
aria-label="${this.suggestionAriaLabel ?
|
|
112
159
|
`${this.suggestionAriaLabel} ${suggestion.suggestionName || suggestion.categoryName}` :
|
|
113
160
|
''}"
|
|
114
|
-
tabindex="0
|
|
161
|
+
tabindex=${this.closest('.search_mobile-opened, [display-mode="dropdown"]') || suggestion.type === SUGGESTIONS_TYPE.suggestion ? '0' : undefined}
|
|
115
162
|
role="option"
|
|
116
163
|
>
|
|
117
164
|
${n(suggestion.type === SUGGESTIONS_TYPE.suggestion, () => html ` <span> ${this._getMatchedPhrase(suggestion.suggestionName)} </span>
|
|
@@ -162,6 +209,22 @@ __decorate([
|
|
|
162
209
|
property({ type: String, attribute: 'module-instance-id' }),
|
|
163
210
|
__metadata("design:type", String)
|
|
164
211
|
], HSearchSuggestionContent.prototype, "moduleInstanceId", void 0);
|
|
212
|
+
__decorate([
|
|
213
|
+
property({ type: String, attribute: 'search-phrase' }),
|
|
214
|
+
__metadata("design:type", String)
|
|
215
|
+
], HSearchSuggestionContent.prototype, "searchPhrase", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
property({ type: Object }),
|
|
218
|
+
__metadata("design:type", Array)
|
|
219
|
+
], HSearchSuggestionContent.prototype, "suggestions", void 0);
|
|
220
|
+
__decorate([
|
|
221
|
+
property({ type: Object }),
|
|
222
|
+
__metadata("design:type", Array)
|
|
223
|
+
], HSearchSuggestionContent.prototype, "products", void 0);
|
|
224
|
+
__decorate([
|
|
225
|
+
property({ type: Object, attribute: false }),
|
|
226
|
+
__metadata("design:type", Array)
|
|
227
|
+
], HSearchSuggestionContent.prototype, "categories", void 0);
|
|
165
228
|
__decorate([
|
|
166
229
|
property({ type: String }),
|
|
167
230
|
__metadata("design:type", String)
|
|
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|