@shoper/phoenix_design_system 1.11.10-0 → 1.11.10-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.
Files changed (53) hide show
  1. package/build/cjs/packages/phoenix/src/components/form/file_picker/file_picker.js +0 -1
  2. package/build/cjs/packages/phoenix/src/components/form/file_picker/file_picker.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/form/search/search.js +247 -66
  4. package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/search/search_constants.js +1 -1
  6. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +5 -0
  7. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js.map +1 -1
  8. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js +26 -7
  9. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js.map +1 -1
  10. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +20 -10
  11. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  12. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +15 -4
  13. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  14. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +15 -4
  15. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  16. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +22 -3
  17. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  18. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +17 -4
  19. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  20. package/build/cjs/packages/phoenix/src/components/form/select/select.js +1 -1
  21. package/build/cjs/packages/phoenix/src/index.js +6 -6
  22. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker.js +0 -1
  23. package/build/esm/packages/phoenix/src/components/form/file_picker/file_picker.js.map +1 -1
  24. package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +22 -2
  25. package/build/esm/packages/phoenix/src/components/form/search/search.js +248 -67
  26. package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
  27. package/build/esm/packages/phoenix/src/components/form/search/search_constants.d.ts +1 -1
  28. package/build/esm/packages/phoenix/src/components/form/search/search_constants.js +1 -1
  29. package/build/esm/packages/phoenix/src/components/form/search/search_types.d.ts +10 -0
  30. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.d.ts +2 -1
  31. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +5 -0
  32. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.d.ts +2 -1
  34. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js +26 -7
  35. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.d.ts +2 -1
  37. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +21 -11
  38. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.d.ts +3 -1
  40. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +15 -4
  41. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.d.ts +3 -1
  43. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +15 -4
  44. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.d.ts +4 -1
  46. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +22 -3
  47. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  48. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.d.ts +3 -1
  49. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +17 -4
  50. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  51. package/build/esm/packages/phoenix/src/components/form/select/select.js +1 -1
  52. package/build/esm/packages/phoenix/src/index.js +2 -2
  53. package/package.json +1 -1
@@ -97,7 +97,6 @@ exports.HFilePicker = class HFilePicker extends phoenix_light_lit_element.Phoeni
97
97
  control-id="${this.controlId}"
98
98
  label-text="${this.labelText}"
99
99
  label-icon-name="${ifDefined_js.ifDefined(this.labelIconName)}"
100
- focus-priority
101
100
  />`
102
101
  : lit.nothing}
103
102
  ${((_b = this._file) === null || _b === void 0 ? void 0 : _b.name)
@@ -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,oBAAoB,0CAA8C;AAClE;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB,0CAA8C;AAClE;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -5,14 +5,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
6
6
  var lit = require('lit');
7
7
  var decorators = require('lit/decorators');
8
+ var utilities = require('@dreamcommerce/utilities');
8
9
  var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
10
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
10
11
  var icon_constants = require('../../icon/icon_constants.js');
11
12
  var observer = require('../../../core/classes/observer/observer.js');
12
13
  var context_consumer_controller = require('../../../core/context/context_consumer_controller.js');
13
14
  var behavior_subject = require('../../../core/classes/behavior_subject/behavior_subject.js');
15
+ var ref_js = require('lit-html/directives/ref.js');
14
16
  var context_provider_controller = require('../../../core/context/context_provider_controller.js');
15
17
  var global_constants = require('../../../global_constants.js');
18
+ var v4 = require('../../../../../../external/uuid/dist/esm-browser/v4.js');
16
19
  var when = require('../../../../../../external/lit/external/lit-html/directives/when.js');
17
20
  var search_constants = require('./search_constants.js');
18
21
 
@@ -20,6 +23,10 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
20
23
  constructor() {
21
24
  super(...arguments);
22
25
  this.view = search_constants.DEFAULT_VIEW;
26
+ this._id = v4['default']();
27
+ this._searchContentContainerId = v4['default']();
28
+ this._searchResultsRef = ref_js.createRef();
29
+ this._searchHistoryRef = ref_js.createRef();
23
30
  this._shouldShowHistory = false;
24
31
  this._shouldShowResults = false;
25
32
  this._shouldShowMessage = false;
@@ -29,25 +36,36 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
29
36
  this._historyContext = new behavior_subject.BehaviorSubject({
30
37
  showLoadMore: false
31
38
  });
32
- this._activeItemId = -1;
39
+ this._activeItemId = `${this._id}-1`;
33
40
  this._translations = {};
41
+ this._containerRole = 'grid';
34
42
  this._bindKeys = (ev) => {
35
- var _a;
36
- const searchItemsCount = this._getSearchItemsCount();
37
43
  switch (ev.key) {
38
44
  case 'ArrowDown':
39
45
  ev.preventDefault();
40
- this._activeItemId = this._activeItemId === searchItemsCount - 1 ? 0 : this._activeItemId + 1;
41
- this._scroll(search_constants.SCROLL_DIRECTIONS.down);
46
+ this._handleForwardListFocus();
42
47
  break;
43
48
  case 'ArrowUp':
44
49
  ev.preventDefault();
45
- this._activeItemId = this._activeItemId === 0 || this._activeItemId === -1 ? searchItemsCount - 1 : this._activeItemId - 1;
46
- this._scroll(search_constants.SCROLL_DIRECTIONS.up);
50
+ this._handleBackwardListFocus();
51
+ break;
52
+ case 'ArrowLeft':
53
+ ev.preventDefault();
54
+ if (this._containerRole === 'grid')
55
+ this._handleBackwardGridFocus();
56
+ if (this._containerRole === 'listbox')
57
+ this._handleMoveToInputFieldOnArrowLeft();
58
+ break;
59
+ case 'ArrowRight':
60
+ ev.preventDefault();
61
+ if (this._containerRole === 'grid')
62
+ this._handleForwardGridFocus();
63
+ if (this._containerRole === 'listbox')
64
+ this._handleMoveToInputFieldOnArrowRight();
47
65
  break;
48
66
  case 'Enter':
49
67
  ev.preventDefault();
50
- if (this._activeItemId === -1)
68
+ if (this._activeItemId === `${this._id}-1` || !this._shouldShowResults)
51
69
  return;
52
70
  this._handleChooseSearchItem();
53
71
  break;
@@ -56,28 +74,138 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
56
74
  this._inputField.blur();
57
75
  this._resetSearchView();
58
76
  break;
77
+ case 'End':
78
+ ev.preventDefault();
79
+ this._handleFocusOnInputWithMarkerEnd();
80
+ break;
81
+ case 'Home':
82
+ ev.preventDefault();
83
+ this._handleFocusOnInputWithMarkerStart();
84
+ break;
59
85
  case 'Tab':
60
- const isFocusedOnSearchInput = !!((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.matches('input[type="search"]'));
86
+ const isFocusedOnSearchInput = document.activeElement === this._inputField;
87
+ if (ev.shiftKey && !isFocusedOnSearchInput) {
88
+ this._focusOnPreviousElementBeforeSearchInput(ev);
89
+ return;
90
+ }
61
91
  if (!isFocusedOnSearchInput) {
62
92
  const searchBar = this.querySelector(`.${search_constants.SEARCH_CLASS_NAMES.searchBar}`);
63
93
  searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(search_constants.SEARCH_CLASS_NAMES.outline);
64
94
  this._resetSearchView();
65
95
  document.removeEventListener('keyup', this._bindKeys);
96
+ this._focusOnNextElementAfterSearchInput(ev);
66
97
  }
67
98
  break;
68
99
  }
69
100
  };
70
- this._getSearchItemsCount = () => {
71
- if (this._shouldShowHistory)
72
- return this._historyLimitedContent.length;
73
- let searchItemsCount = this._searchResults.products.length +
74
- this._searchResults.categories.length +
75
- this._searchResults.suggestions.length +
76
- this._searchResults.producers.length;
77
- if (this._searchResults.products.length && this._searchResults.suggestions.length) {
78
- searchItemsCount += 1;
101
+ this._focusOnPreviousElementBeforeSearchInput = async (ev) => {
102
+ ev.preventDefault();
103
+ const searchBar = this.querySelector(`.${search_constants.SEARCH_CLASS_NAMES.searchBar}`);
104
+ searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(search_constants.SEARCH_CLASS_NAMES.outline);
105
+ this._resetSearchView();
106
+ document.removeEventListener('keyup', this._bindKeys);
107
+ utilities.UiDomUtils.getPreviousFocusableElement(this._inputField).focus();
108
+ };
109
+ this._focusOnNextElementAfterSearchInput = async (ev) => {
110
+ ev.preventDefault();
111
+ utilities.UiDomUtils.getNextFocusableElement(this._inputField).focus();
112
+ };
113
+ this._preventScrollingOnSearchContentBrowsing = (ev) => {
114
+ var _a;
115
+ const hasArrowBeenPressed = ev.key === "ArrowUp" || ev.key === "ArrowDown";
116
+ const hasSearchContainerParent = !!((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest('.search__container'));
117
+ if (hasArrowBeenPressed && hasSearchContainerParent) {
118
+ ev.preventDefault();
79
119
  }
80
- return searchItemsCount;
120
+ };
121
+ this._handleForwardListFocus = () => {
122
+ var _a, _b;
123
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
124
+ if (!$searchItemsContainer)
125
+ return;
126
+ const isActiveElementAGridSearchItem = (_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.getAttribute('data-search-item-id')) === null || _b === void 0 ? void 0 : _b.includes('grid');
127
+ const $listSearchItems = utilities.UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
128
+ const searchItemId = $el.getAttribute('data-search-item-id');
129
+ const isListSearchItem = !!searchItemId && !searchItemId.includes('grid');
130
+ const isGridSearchItem = !!searchItemId && searchItemId.includes('grid');
131
+ return isActiveElementAGridSearchItem ? isGridSearchItem : isListSearchItem;
132
+ });
133
+ this._handleForwardFocus($listSearchItems);
134
+ };
135
+ this._handleForwardGridFocus = () => {
136
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
137
+ if (!$searchItemsContainer)
138
+ return;
139
+ const $gridSearchItems = utilities.UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
140
+ return !!$el.getAttribute('data-search-item-id');
141
+ });
142
+ this._handleForwardFocus($gridSearchItems);
143
+ };
144
+ this._handleForwardFocus = ($searchItems) => {
145
+ var _a;
146
+ const $activeElement = document.activeElement;
147
+ const indexOfCurrentElement = $searchItems.indexOf($activeElement);
148
+ const indexOfNextElement = indexOfCurrentElement === $searchItems.length - 1 ? 0 : indexOfCurrentElement + 1;
149
+ const $nextSearchItemElement = $searchItems[indexOfNextElement];
150
+ $nextSearchItemElement.focus();
151
+ this._setActiveItemId((_a = $nextSearchItemElement.getAttribute('data-search-item-id')) !== null && _a !== void 0 ? _a : `${this._id}-1`);
152
+ };
153
+ this._handleMoveToInputFieldOnArrowLeft = () => {
154
+ this._inputField.focus();
155
+ const currentPosition = this._inputField.selectionStart || 0;
156
+ const newPosition = Math.max(currentPosition - 1, 0);
157
+ this._inputField.setSelectionRange(newPosition, newPosition);
158
+ };
159
+ this._handleMoveToInputFieldOnArrowRight = () => {
160
+ this._inputField.focus();
161
+ const currentPosition = this._inputField.selectionStart || 0;
162
+ const newPosition = Math.max(currentPosition - 1, 0);
163
+ this._inputField.setSelectionRange(newPosition, newPosition);
164
+ };
165
+ this._handleBackwardListFocus = () => {
166
+ var _a, _b;
167
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
168
+ if (!$searchItemsContainer)
169
+ return;
170
+ const isActiveElementAGridSearchItem = (_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.getAttribute('data-search-item-id')) === null || _b === void 0 ? void 0 : _b.includes('grid');
171
+ const $listSearchItems = utilities.UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
172
+ const searchItemId = $el.getAttribute('data-search-item-id');
173
+ const isListSearchItem = !!searchItemId && !searchItemId.includes('grid');
174
+ const isGridSearchItem = !!searchItemId && searchItemId.includes('grid');
175
+ return isActiveElementAGridSearchItem ? isGridSearchItem : isListSearchItem;
176
+ });
177
+ this._handleBackwardFocus($listSearchItems);
178
+ };
179
+ this._handleBackwardGridFocus = () => {
180
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
181
+ if (!$searchItemsContainer)
182
+ return;
183
+ const $gridSearchItems = utilities.UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
184
+ return !!$el.getAttribute('data-search-item-id');
185
+ });
186
+ this._handleBackwardFocus($gridSearchItems);
187
+ };
188
+ this._handleBackwardFocus = ($searchItems) => {
189
+ var _a;
190
+ const $activeElement = document.activeElement;
191
+ const indexOfCurrentElement = $searchItems.indexOf($activeElement);
192
+ const indexOfPreviousElement = indexOfCurrentElement === 0 ? $searchItems.length - 1 : indexOfCurrentElement - 1;
193
+ const $previousSearchItemElement = $searchItems[indexOfPreviousElement];
194
+ $previousSearchItemElement.focus();
195
+ this._setActiveItemId((_a = $previousSearchItemElement.getAttribute('data-search-item-id')) !== null && _a !== void 0 ? _a : `${this._id}-1`);
196
+ };
197
+ this._setActiveItemId = (newActiveItemId) => {
198
+ this._activeItemId = newActiveItemId;
199
+ this._inputField.setAttribute('aria-activedescendant', this._activeItemId);
200
+ };
201
+ this._handleFocusOnInputWithMarkerEnd = () => {
202
+ this._inputField.focus();
203
+ const endPosition = this._inputField.value.length;
204
+ this._inputField.setSelectionRange(endPosition, endPosition);
205
+ };
206
+ this._handleFocusOnInputWithMarkerStart = () => {
207
+ this._inputField.focus();
208
+ this._inputField.setSelectionRange(0, 0);
81
209
  };
82
210
  this._hideSuggesterOnClickOutside = (ev) => {
83
211
  const outsideClick = typeof ev.composedPath === 'function' && !ev.composedPath().includes(this);
@@ -99,10 +227,21 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
99
227
  try {
100
228
  this._searchContextConsumer = new context_consumer_controller.ContextConsumerController(this);
101
229
  this._searchContext$ = await this._searchContextConsumer.consumeAsync(this.moduleInstanceId);
230
+ const ariaTranslations = {
231
+ historyGuideAriaLabel: this.settings.historyGuideAriaLabel,
232
+ suggesterGuideAriaLabel: this.settings.suggesterGuideAriaLabel,
233
+ historyItemAriaLabel: this.settings.historyItemAriaLabel,
234
+ suggesterItemAriaLabel: this.settings.suggesterItemAriaLabel,
235
+ suggesterProductItemAriaLabel: this.settings.suggesterProductItemAriaLabel,
236
+ suggesterProducerItemAriaLabel: this.settings.suggesterProducerItemAriaLabel
237
+ };
102
238
  this._searchContextObserver = new observer.Observer((searchData) => {
103
239
  this._searchResults = searchData.results;
104
240
  this._searchHistory = searchData.history;
105
- this._translations = searchData.translations;
241
+ this._translations = {
242
+ ...searchData.translations,
243
+ ...ariaTranslations
244
+ };
106
245
  this._searchPhrase = searchData.searchPhrase;
107
246
  this._historyContext.notify({ showLoadMore: this._searchHistory.length > search_constants.SEARCH_CONFIGURATION.historyContentLimit });
108
247
  this._historyLimitedContent = this._searchHistory.slice(0, search_constants.SEARCH_CONFIGURATION.historyContentLimit);
@@ -153,6 +292,7 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
153
292
  const shouldShowMessage = ev.detail.searchPhrase !== '';
154
293
  this._updateSearchView(ev.detail.searchPhrase, shouldShowMessage, false);
155
294
  document.addEventListener('keyup', this._bindKeys);
295
+ document.addEventListener('keydown', this._preventScrollingOnSearchContentBrowsing);
156
296
  });
157
297
  this.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.keyup, (ev) => {
158
298
  const shouldShowMessage = ev.detail.searchPhrase !== '';
@@ -163,7 +303,7 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
163
303
  this._updateSearchView('', false);
164
304
  });
165
305
  this.addEventListener(search_constants.SEARCH_CUSTOM_EVENT_NAMES.submit, () => {
166
- if (this._activeItemId !== -1)
306
+ if (this._activeItemId !== `${this._id}-1`)
167
307
  return;
168
308
  if (this._inputField.value === '') {
169
309
  this._updateSearchView(this._inputField.value, true);
@@ -190,7 +330,8 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
190
330
  }
191
331
  _updateSearchView(searchPhrase, shouldShowMessage, shouldUpdateSearchPhrase = true) {
192
332
  this._shouldShowMessage = shouldShowMessage;
193
- this._activeItemId = -1;
333
+ this._setActiveItemId(`${this._id}-1`);
334
+ this._inputField.setAttribute('aria-activedescendant', this._activeItemId);
194
335
  this._displaySuggester(searchPhrase);
195
336
  if (!shouldUpdateSearchPhrase)
196
337
  return;
@@ -208,36 +349,56 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
208
349
  }
209
350
  }
210
351
  _displayHistorySuggestions() {
211
- this._shouldShowHistory = true;
212
- this._shouldShowResults = false;
352
+ this._handleToggleHistoryAndResults({
353
+ shouldShowHistory: true,
354
+ shouldShowResults: false
355
+ });
213
356
  }
214
357
  _hideHistorySuggestionsAndResults() {
215
- this._shouldShowHistory = false;
216
- this._shouldShowResults = false;
358
+ this._handleToggleHistoryAndResults({
359
+ shouldShowHistory: false,
360
+ shouldShowResults: false
361
+ });
217
362
  }
218
363
  _displayResults() {
219
- this._shouldShowHistory = false;
220
- this._shouldShowResults = true;
364
+ this._handleToggleHistoryAndResults({
365
+ shouldShowHistory: false,
366
+ shouldShowResults: true
367
+ });
221
368
  }
222
- _scroll(direction) {
223
- const searchContainer = this.querySelector(`.${search_constants.SEARCH_CLASS_NAMES.container}`);
224
- const maxScrollTop = searchContainer.scrollHeight - searchContainer.clientHeight;
225
- const activeItem = this.querySelector(`[data-search-item-id="${this._activeItemId}"]`);
226
- const activeItemHeight = (activeItem === null || activeItem === void 0 ? void 0 : activeItem.getBoundingClientRect().height) || 0;
227
- let top;
228
- if (direction === search_constants.SCROLL_DIRECTIONS.up) {
229
- top = searchContainer.scrollTop == 0 ? 0 : searchContainer.scrollTop + 30 - activeItemHeight;
369
+ _handleToggleHistoryAndResults({ shouldShowHistory, shouldShowResults }) {
370
+ this._shouldShowHistory = shouldShowHistory;
371
+ this._shouldShowResults = shouldShowResults;
372
+ this._toggleSearchInputAttributes(shouldShowHistory, shouldShowResults);
373
+ this._toggleSearchContainerAttributes(shouldShowHistory, shouldShowResults);
374
+ }
375
+ _toggleSearchInputAttributes(shouldShowHistory, shouldShowResults) {
376
+ var _a;
377
+ const $input = (_a = this._searchInput) === null || _a === void 0 ? void 0 : _a.input;
378
+ if (!$input)
379
+ return;
380
+ if (!shouldShowHistory && !shouldShowResults) {
381
+ $input.removeAttribute('aria-label');
382
+ $input.setAttribute('aria-activedescendant', '');
383
+ return;
230
384
  }
231
- else {
232
- top = searchContainer.scrollTop == maxScrollTop ? maxScrollTop : activeItemHeight + searchContainer.scrollTop - 30;
385
+ $input.setAttribute('aria-expanded', 'true');
386
+ if (shouldShowHistory) {
387
+ $input.setAttribute('aria-label', this.settings.historyGuideAriaLabel);
388
+ $input.setAttribute('aria-haspopup', 'grid');
233
389
  }
234
- if (this._activeItemId === this._getSearchItemsCount() - 1) {
235
- top = maxScrollTop;
390
+ if (shouldShowResults) {
391
+ $input.setAttribute('aria-label', this.settings.suggesterGuideAriaLabel);
392
+ this._inputField.removeAttribute('aria-haspopup');
236
393
  }
237
- if (this._activeItemId === 0) {
238
- top = 0;
394
+ }
395
+ _toggleSearchContainerAttributes(shouldShowHistory, shouldShowResults) {
396
+ if (shouldShowHistory) {
397
+ this._containerRole = 'grid';
398
+ }
399
+ if (shouldShowResults) {
400
+ this._containerRole = 'listbox';
239
401
  }
240
- searchContainer === null || searchContainer === void 0 ? void 0 : searchContainer.scrollTo({ top, behavior: 'smooth' });
241
402
  }
242
403
  _handleChooseSearchItem() {
243
404
  const activeSearchItem = this.querySelector(`[data-search-item-id="${this._activeItemId}"]`);
@@ -248,7 +409,7 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
248
409
  }
249
410
  _resetSearchView() {
250
411
  this._shouldShowMessage = false;
251
- this._activeItemId = -1;
412
+ this._setActiveItemId(`${this._id}-1`);
252
413
  const searchBar = this.querySelector(`.${search_constants.SEARCH_CLASS_NAMES.searchBar}`);
253
414
  searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(search_constants.SEARCH_CLASS_NAMES.outline);
254
415
  this._hideHistorySuggestionsAndResults();
@@ -287,31 +448,47 @@ exports.HSearch = class HSearch extends phoenix_light_lit_element.PhoenixLightLi
287
448
  <div class="labeled-icon__signature">${this._translations.search}</div>
288
449
  </div>
289
450
 
290
- ${when.when(this._isSuggesterLayerVisible(), () => lit.html `<div class="${search_constants.SEARCH_CLASS_NAMES.container}">
291
- ${when.when(this._shouldShowMessage, () => lit.html `<h-search-message
292
- .history="${this._historyLimitedContent}"
293
- .results="${this._searchResults}"
294
- .translations="${this._translations}"
295
- search-phrase="${this._searchPhrase}"
296
- module-instance-id="${this.moduleInstanceId}"
297
- ></h-search-message>`)}
298
- ${when.when(this._shouldShowHistory, () => lit.html `<h-search-history
451
+ ${when.when(this._isSuggesterLayerVisible(), () => lit.html `
452
+ <div
453
+ class="${search_constants.SEARCH_CLASS_NAMES.container}"
454
+ id="${this._searchContentContainerId}"
455
+ role="${this._containerRole}"
456
+ >
457
+ ${when.when(this._shouldShowMessage, () => lit.html `<h-search-message
299
458
  .history="${this._historyLimitedContent}"
300
- .translations="${this._translations}"
301
- active-item-id="${this._activeItemId}"
302
- module-instance-id="${this.moduleInstanceId}"
303
- ></h-search-history>`)}
304
- ${when.when(this._shouldShowResults, () => lit.html `<h-search-results
305
459
  .results="${this._searchResults}"
306
- search-phrase="${this._searchPhrase}"
307
- .settings="${this.settings}"
308
- locale="${this.locale}"
309
- view="${this.view}"
310
460
  .translations="${this._translations}"
311
- active-item-id="${this._activeItemId}"
461
+ search-phrase="${this._searchPhrase}"
312
462
  module-instance-id="${this.moduleInstanceId}"
313
- ></h-search-results>`)}
314
- </div>`)}
463
+ ></h-search-message>`)}
464
+ ${when.when(this._shouldShowHistory, () => lit.html `<h-search-history
465
+ ${ref_js.ref(this._searchHistoryRef)}
466
+ .history="${this._historyLimitedContent}"
467
+ .translations="${this._translations}"
468
+ active-item-id="${this._activeItemId}"
469
+ search-id="${this._id}"
470
+ module-instance-id="${this.moduleInstanceId}"
471
+ ></h-search-history>`)}
472
+ ${when.when(this._shouldShowResults, () => lit.html `<h-search-results
473
+ ${ref_js.ref(this._searchResultsRef)}
474
+ .results="${this._searchResults}"
475
+ search-phrase="${this._searchPhrase}"
476
+ .settings="${this.settings}"
477
+ locale="${this.locale}"
478
+ view="${this.view}"
479
+ .translations="${this._translations}"
480
+ active-item-id="${this._activeItemId}"
481
+ search-id="${this._id}"
482
+ module-instance-id="${this.moduleInstanceId}"
483
+ ></h-search-results>`)}
484
+ </div>
485
+ `, () => lit.html `
486
+ <div
487
+ class="${search_constants.SEARCH_CLASS_NAMES.container}"
488
+ id="${this._searchContentContainerId}"
489
+ role="${this._containerRole}"
490
+ hidden
491
+ ></div>`)}
315
492
  `;
316
493
  }
317
494
  };
@@ -365,12 +542,16 @@ tslib_es6.__decorate([
365
542
  ], exports.HSearch.prototype, "_historyContext", void 0);
366
543
  tslib_es6.__decorate([
367
544
  decorators.state(),
368
- tslib_es6.__metadata("design:type", Number)
545
+ tslib_es6.__metadata("design:type", String)
369
546
  ], exports.HSearch.prototype, "_activeItemId", void 0);
370
547
  tslib_es6.__decorate([
371
548
  decorators.state(),
372
549
  tslib_es6.__metadata("design:type", Object)
373
550
  ], exports.HSearch.prototype, "_translations", void 0);
551
+ tslib_es6.__decorate([
552
+ decorators.state(),
553
+ tslib_es6.__metadata("design:type", String)
554
+ ], exports.HSearch.prototype, "_containerRole", void 0);
374
555
  exports.HSearch = tslib_es6.__decorate([
375
556
  phoenix_custom_element.phoenixCustomElement(search_constants.SEARCH_COMPONENT_NAMES.search)
376
557
  ], 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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,iBAAiB,wDAA4D;AAC7E,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -27,7 +27,7 @@ const SEARCH_CUSTOM_EVENT_NAMES = {
27
27
  clear: 'clearSearchPhrase',
28
28
  submit: 'submitSearchPhrase',
29
29
  close: 'close',
30
- search: 'search',
30
+ search: 'performSearch',
31
31
  updateSearchPhrase: 'updateSearchPhrase',
32
32
  focusin: 'searchFocusIn',
33
33
  keyup: 'searchKeyUp'
@@ -32,6 +32,11 @@ exports.HSearchClear = class HSearchClear extends phoenix_light_lit_element.Phoe
32
32
  this._searchContextSetup();
33
33
  this.addEventListener('click', this._dispatchClearEvent);
34
34
  }
35
+ updated(_changedProperties) {
36
+ super.updated(_changedProperties);
37
+ const newTabIndex = this._shouldShow ? '0' : '-1';
38
+ this.setAttribute('tabindex', newTabIndex);
39
+ }
35
40
  async _searchContextSetup() {
36
41
  try {
37
42
  this._searchContextConsumer = new context_consumer_controller.ContextConsumerController(this);
@@ -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,mBAAmB,2EAAmF;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB,2EAAmF;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -45,22 +45,33 @@ exports.HSearchHistory = class HSearchHistory extends phoenix_light_lit_element.
45
45
  return when.when((_a = this.history) === null || _a === void 0 ? void 0 : _a.length, () => lit.html `<h3 class="${search_constants.SEARCH_CLASS_NAMES.headline}">${this.translations.searchHistory}</h3>
46
46
 
47
47
  <ul>
48
- ${repeat.repeat(this.history, (historyElement, index) => lit.html ` <li
49
- class="${search_constants.SEARCH_CLASS_NAMES.item} ${index === this.activeItemId ? search_constants.SEARCH_CLASS_NAMES.itemActive : ''}"
48
+ ${repeat.repeat(this.history, (historyElement, index) => lit.html `
49
+ <li
50
+ class="
51
+ ${search_constants.SEARCH_CLASS_NAMES.item}
52
+ ${`${this.searchId}${index}` === this.activeItemId ? search_constants.SEARCH_CLASS_NAMES.itemActive : ''}
53
+ "
54
+ role="row"
50
55
  >
51
56
  <h-search-history-select
52
57
  item-label="${historyElement.label}"
53
58
  class="${search_constants.SEARCH_CLASS_NAMES.historySelect}"
54
59
  data-suggested-value="${historyElement.label}"
55
- data-search-item-id="${index}"
60
+ data-search-item-id="${this.searchId}${index}"
56
61
  module-instance-id="${this.moduleInstanceId}"
62
+ aria-label=${this.translations.historyAriaLabel ? `${this.translations.historyAriaLabel} ${historyElement.label}` : undefined}
63
+ role="gridcell"
57
64
  >
58
65
  <h-icon icon-name="icon-clock"></h-icon>
59
66
 
60
67
  <span class="${search_constants.SEARCH_CLASS_NAMES.historyItemValue}">${historyElement.label}</span>
61
68
  </h-search-history-select>
62
69
 
63
- <h-search-history-remove item-id="${historyElement.id}">
70
+ <h-search-history-remove
71
+ data-search-item-id="${this.searchId}${index}-grid"
72
+ item-id="${historyElement.id}"
73
+ role="gridcell"
74
+ >
64
75
  <h-icon
65
76
  icon-name="icon-x"
66
77
  clickable=${true}
@@ -71,7 +82,11 @@ exports.HSearchHistory = class HSearchHistory extends phoenix_light_lit_element.
71
82
  </li>`)}
72
83
  </ul>
73
84
 
74
- <h-search-history-load-more class="${search_constants.SEARCH_CLASS_NAMES.historyLoadMore}" ${ref_js.ref(this.buttonRef)}>
85
+ <h-search-history-load-more
86
+ class="${search_constants.SEARCH_CLASS_NAMES.historyLoadMore}"
87
+ data-search-item-id="${this.searchId}-loadmore"
88
+ ${ref_js.ref(this.buttonRef)}
89
+ >
75
90
  ${this.translations.loadMore}
76
91
  </h-search-history-load-more>`);
77
92
  }
@@ -81,9 +96,13 @@ tslib_es6.__decorate([
81
96
  tslib_es6.__metadata("design:type", Array)
82
97
  ], exports.HSearchHistory.prototype, "history", void 0);
83
98
  tslib_es6.__decorate([
84
- decorators.property({ type: Number, attribute: 'active-item-id' }),
85
- tslib_es6.__metadata("design:type", Number)
99
+ decorators.property({ type: String, attribute: 'active-item-id' }),
100
+ tslib_es6.__metadata("design:type", String)
86
101
  ], exports.HSearchHistory.prototype, "activeItemId", void 0);
102
+ tslib_es6.__decorate([
103
+ decorators.property({ type: String, attribute: 'search-id' }),
104
+ tslib_es6.__metadata("design:type", String)
105
+ ], exports.HSearchHistory.prototype, "searchId", void 0);
87
106
  tslib_es6.__decorate([
88
107
  decorators.property({ type: Object }),
89
108
  tslib_es6.__metadata("design:type", Object)
@@ -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,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;"}
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,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;"}