@shoper/phoenix_design_system 1.11.11-0 → 1.11.11-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 (73) hide show
  1. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +114 -37
  2. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js +0 -5
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +13 -24
  6. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/form/search/search.js +79 -246
  8. package/build/cjs/packages/phoenix/src/components/form/search/search.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +0 -5
  10. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js +9 -21
  12. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +0 -10
  14. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js +1 -8
  16. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +4 -9
  18. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  19. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +4 -9
  20. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  21. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +4 -11
  22. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +5 -12
  24. package/build/cjs/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  25. package/build/cjs/packages/phoenix/src/components/form/select/select.js +2 -3
  26. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
  27. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +13 -2
  28. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  29. package/build/cjs/packages/phoenix/src/index.js +12 -12
  30. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +13 -4
  31. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +115 -38
  32. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.d.ts +0 -2
  34. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js +0 -5
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.d.ts +1 -2
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +14 -25
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/search/search.d.ts +5 -22
  40. package/build/esm/packages/phoenix/src/components/form/search/search.js +80 -247
  41. package/build/esm/packages/phoenix/src/components/form/search/search.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.d.ts +1 -2
  43. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js +0 -5
  44. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/buttons/search_clear.js.map +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.d.ts +2 -2
  46. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js +9 -21
  47. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/history/search_history.js.map +1 -1
  48. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.d.ts +0 -1
  49. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js +1 -11
  50. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/input/search_input.js.map +1 -1
  51. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.d.ts +0 -1
  52. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js +1 -8
  53. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/message/search_message.js.map +1 -1
  54. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.d.ts +1 -2
  55. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js +4 -9
  56. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_producer_content.js.map +1 -1
  57. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.d.ts +1 -2
  58. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js +4 -9
  59. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_product_content.js.map +1 -1
  60. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.d.ts +1 -2
  61. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js +4 -11
  62. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_results.js.map +1 -1
  63. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.d.ts +1 -2
  64. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js +5 -12
  65. package/build/esm/packages/phoenix/src/components/form/search/subcomponents/results/search_suggestion_content.js.map +1 -1
  66. package/build/esm/packages/phoenix/src/components/form/select/select.js +2 -3
  67. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
  68. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.d.ts +2 -1
  69. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +13 -2
  70. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  71. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_types.d.ts +1 -0
  72. package/build/esm/packages/phoenix/src/index.js +2 -2
  73. package/package.json +2 -2
@@ -11,19 +11,15 @@ import { BehaviorSubject } from '../../../core/classes/behavior_subject/behavior
11
11
  import { createRef, ref } from 'lit-html/directives/ref.js';
12
12
  import { ContextProviderController } from '../../../core/context/context_provider_controller.js';
13
13
  import { BREAKPOINTS } from '../../../global_constants.js';
14
- import v4 from '../../../../../../external/uuid/dist/esm-browser/v4.js';
15
14
  import { when as n } from '../../../../../../external/lit/external/lit-html/directives/when.js';
16
- import { DEFAULT_VIEW, SEARCH_CLASS_NAMES, SEARCH_COMPONENT_NAMES, SEARCH_CONFIGURATION, SEARCH_CONTEXT_NAMES, SEARCH_CUSTOM_EVENT_NAMES } from './search_constants.js';
15
+ import { DEFAULT_VIEW, SEARCH_CLASS_NAMES, SCROLL_DIRECTIONS, SEARCH_CONFIGURATION, SEARCH_COMPONENT_NAMES, SEARCH_CONTEXT_NAMES, SEARCH_CUSTOM_EVENT_NAMES } from './search_constants.js';
17
16
 
18
17
  let HSearch = class HSearch extends PhoenixLightLitElement {
19
18
  constructor() {
20
19
  super(...arguments);
21
20
  this.view = DEFAULT_VIEW;
22
- this._id = v4();
23
- this._searchContentContainerId = v4();
24
21
  this._searchResultsRef = createRef();
25
22
  this._searchHistoryRef = createRef();
26
- this._searchMessageRef = createRef();
27
23
  this._shouldShowHistory = false;
28
24
  this._shouldShowResults = false;
29
25
  this._shouldShowMessage = false;
@@ -33,220 +29,84 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
33
29
  this._historyContext = new BehaviorSubject({
34
30
  showLoadMore: false
35
31
  });
36
- this._activeItemId = `${this._id}-1`;
32
+ this._activeItemId = -1;
37
33
  this._translations = {};
38
- this._containerRole = 'grid';
39
34
  this._bindKeys = (ev) => {
35
+ var _a;
40
36
  switch (ev.key) {
41
37
  case 'ArrowDown':
42
38
  ev.preventDefault();
43
- this._handleForwardListFocus();
39
+ this._focusOutsideActiveItemsForward();
40
+ this._scroll(SCROLL_DIRECTIONS.down);
44
41
  break;
45
42
  case 'ArrowUp':
46
43
  ev.preventDefault();
47
- this._handleBackwardListFocus();
48
- break;
49
- case 'ArrowLeft':
50
- if (this._containerRole === 'grid') {
51
- ev.preventDefault();
52
- this._handleBackwardGridFocus();
53
- }
54
- if (this._containerRole === 'listbox')
55
- this._handleMoveToInputFieldOnArrowLeft();
56
- break;
57
- case 'ArrowRight':
58
- ev.preventDefault();
59
- if (this._containerRole === 'grid')
60
- this._handleForwardGridFocus();
61
- if (this._containerRole === 'listbox')
62
- this._handleFocusOnInputWithMarkerEnd();
44
+ this._focusOutsideActiveItemsBackward();
45
+ this._scroll(SCROLL_DIRECTIONS.up);
63
46
  break;
64
47
  case 'Enter':
65
48
  ev.preventDefault();
66
- if (this._activeItemId === `${this._id}-1` || !this._shouldShowResults)
49
+ if (this._activeItemId === -1 || !this._shouldShowResults)
67
50
  return;
68
51
  this._handleChooseSearchItem();
69
52
  break;
70
53
  case 'Escape':
71
54
  ev.preventDefault();
72
- if (this._shouldShowHistory || this._shouldShowHistory || this._shouldShowResults) {
73
- this._inputField.focus();
74
- this._resetSearchView();
75
- }
76
- else {
77
- this._inputField.value = '';
78
- }
79
- break;
80
- case 'End':
81
- ev.preventDefault();
82
- this._handleFocusOnInputWithMarkerEnd();
83
- break;
84
- case 'Home':
85
- ev.preventDefault();
86
- this._handleFocusOnInputWithMarkerStart();
55
+ this._inputField.blur();
56
+ this._resetSearchView();
87
57
  break;
88
58
  case 'Tab':
89
- const isFocusedOnSearchInput = document.activeElement === this._inputField;
90
- if (ev.shiftKey && !isFocusedOnSearchInput) {
91
- this._focusOnPreviousElementBeforeSearchInput(ev);
92
- return;
93
- }
59
+ const isFocusedOnSearchInput = !!((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.matches('input[type="search"]'));
94
60
  if (!isFocusedOnSearchInput) {
95
61
  const searchBar = this.querySelector(`.${SEARCH_CLASS_NAMES.searchBar}`);
96
62
  searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(SEARCH_CLASS_NAMES.outline);
97
63
  this._resetSearchView();
98
64
  document.removeEventListener('keyup', this._bindKeys);
99
- this._focusOnNextElementAfterSearchInput(ev);
100
65
  }
101
66
  break;
102
- default:
103
- const isAWriteableCharacter = ev.key.length === 1;
104
- if (isAWriteableCharacter)
105
- this._handleWriteableCharacter(ev);
106
- break;
107
67
  }
108
68
  };
109
- this._focusOnPreviousElementBeforeSearchInput = async (ev) => {
110
- ev.preventDefault();
111
- const searchBar = this.querySelector(`.${SEARCH_CLASS_NAMES.searchBar}`);
112
- searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(SEARCH_CLASS_NAMES.outline);
113
- this._resetSearchView();
114
- document.removeEventListener('keyup', this._bindKeys);
115
- UiDomUtils.getPreviousFocusableElement(this._inputField).focus();
116
- };
117
- this._focusOnNextElementAfterSearchInput = async (ev) => {
118
- ev.preventDefault();
119
- UiDomUtils.getNextFocusableElement(this._inputField).focus();
120
- };
121
- this._preventScrollingOnSearchContentBrowsing = (ev) => {
69
+ this._focusOutsideActiveItemsForward = () => {
122
70
  var _a;
123
- const hasArrowBeenPressed = ev.key === "ArrowUp" || ev.key === "ArrowDown";
124
- const hasHomeOrEndBeenPressed = ev.key === "Home" || ev.key === "End";
125
- const hasSearchContainerParent = !!((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest('.search__container'));
126
- if ((hasArrowBeenPressed || hasHomeOrEndBeenPressed) && hasSearchContainerParent) {
127
- ev.preventDefault();
128
- }
129
- };
130
- this._handleForwardListFocus = () => {
131
- var _a, _b;
132
- const containers = [
133
- this._searchHistoryRef.value,
134
- this._searchResultsRef.value,
135
- this._searchMessageRef.value
136
- ];
137
- const $searchItemsContainer = containers.find(container => container && !UiDomUtils.isElementEmpty(container));
138
- if (!$searchItemsContainer)
139
- return;
140
- 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');
141
- const $listSearchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
142
- const searchItemId = $el.getAttribute('data-search-item-id');
143
- const isListSearchItem = !!searchItemId && !searchItemId.includes('grid');
144
- const isGridSearchItem = !!searchItemId && searchItemId.includes('grid');
145
- return isActiveElementAGridSearchItem ? isGridSearchItem : isListSearchItem;
146
- });
147
- this._handleForwardFocus($listSearchItems);
148
- };
149
- this._handleForwardGridFocus = () => {
150
- const containers = [
151
- this._searchHistoryRef.value,
152
- this._searchResultsRef.value,
153
- this._searchMessageRef.value
154
- ];
155
- const $searchItemsContainer = containers.find(container => container && !UiDomUtils.isElementEmpty(container));
71
+ const $activeElement = document.activeElement;
72
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
156
73
  if (!$searchItemsContainer)
157
74
  return;
158
- const $gridSearchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
75
+ const $searchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
159
76
  return !!$el.getAttribute('data-search-item-id');
160
77
  });
161
- this._handleForwardFocus($gridSearchItems);
162
- };
163
- this._handleForwardFocus = ($searchItems) => {
164
- var _a;
165
- const $activeElement = document.activeElement;
166
78
  const indexOfCurrentElement = $searchItems.indexOf($activeElement);
167
79
  const indexOfNextElement = indexOfCurrentElement === $searchItems.length - 1 ? 0 : indexOfCurrentElement + 1;
168
80
  const $nextSearchItemElement = $searchItems[indexOfNextElement];
169
81
  $nextSearchItemElement.focus();
170
- this._setActiveItemId((_a = $nextSearchItemElement.getAttribute('data-search-item-id')) !== null && _a !== void 0 ? _a : `${this._id}-1`);
171
- };
172
- this._handleMoveToInputFieldOnArrowLeft = () => {
173
- const isFocusedOnSearchInput = document.activeElement === this._inputField;
174
- if (isFocusedOnSearchInput)
175
- return;
176
- this._inputField.focus();
177
- const currentPosition = this._inputField.selectionStart || 0;
178
- const newPosition = Math.max(currentPosition - 1, 0);
179
- this._inputField.setSelectionRange(newPosition, newPosition);
180
- };
181
- this._handleBackwardListFocus = () => {
182
- var _a, _b;
183
- const containers = [
184
- this._searchHistoryRef.value,
185
- this._searchResultsRef.value,
186
- this._searchMessageRef.value
187
- ];
188
- const $searchItemsContainer = containers.find(container => container && !UiDomUtils.isElementEmpty(container));
189
- if (!$searchItemsContainer)
190
- return;
191
- 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');
192
- const $listSearchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
193
- const searchItemId = $el.getAttribute('data-search-item-id');
194
- const isListSearchItem = !!searchItemId && !searchItemId.includes('grid');
195
- const isGridSearchItem = !!searchItemId && searchItemId.includes('grid');
196
- return isActiveElementAGridSearchItem ? isGridSearchItem : isListSearchItem;
197
- });
198
- this._handleBackwardFocus($listSearchItems);
82
+ this._activeItemId = (_a = Number($nextSearchItemElement.getAttribute('data-search-item-id'))) !== null && _a !== void 0 ? _a : -1;
199
83
  };
200
- this._handleBackwardGridFocus = () => {
201
- const containers = [
202
- this._searchHistoryRef.value,
203
- this._searchResultsRef.value,
204
- this._searchMessageRef.value
205
- ];
206
- const $searchItemsContainer = containers.find(container => container && !UiDomUtils.isElementEmpty(container));
84
+ this._focusOutsideActiveItemsBackward = () => {
85
+ var _a;
86
+ const $activeElement = document.activeElement;
87
+ const $searchItemsContainer = this._searchHistoryRef.value || this._searchResultsRef.value;
207
88
  if (!$searchItemsContainer)
208
89
  return;
209
- const $gridSearchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
90
+ const $searchItems = UiDomUtils.getFocusableElements($searchItemsContainer).filter(($el) => {
210
91
  return !!$el.getAttribute('data-search-item-id');
211
92
  });
212
- this._handleBackwardFocus($gridSearchItems);
213
- };
214
- this._handleBackwardFocus = ($searchItems) => {
215
- var _a;
216
- const $activeElement = document.activeElement;
217
93
  const indexOfCurrentElement = $searchItems.indexOf($activeElement);
218
94
  const indexOfPreviousElement = indexOfCurrentElement === 0 ? $searchItems.length - 1 : indexOfCurrentElement - 1;
219
95
  const $previousSearchItemElement = $searchItems[indexOfPreviousElement];
220
96
  $previousSearchItemElement.focus();
221
- this._setActiveItemId((_a = $previousSearchItemElement.getAttribute('data-search-item-id')) !== null && _a !== void 0 ? _a : `${this._id}-1`);
222
- };
223
- this._setActiveItemId = (newActiveItemId) => {
224
- this._activeItemId = newActiveItemId;
225
- if (document.activeElement !== this._inputField) {
226
- this._inputField.setAttribute('aria-activedescendant', this._activeItemId);
227
- }
228
- };
229
- this._handleFocusOnInputWithMarkerEnd = () => {
230
- const isFocusedOnSearchInput = document.activeElement === this._inputField;
231
- if (isFocusedOnSearchInput)
232
- return;
233
- this._inputField.focus();
234
- const endPosition = this._inputField.value.length;
235
- this._inputField.setSelectionRange(endPosition, endPosition);
236
- };
237
- this._handleFocusOnInputWithMarkerStart = () => {
238
- this._inputField.focus();
239
- this._inputField.setSelectionRange(0, 0);
97
+ this._activeItemId = (_a = Number($previousSearchItemElement.getAttribute('data-search-item-id'))) !== null && _a !== void 0 ? _a : -1;
240
98
  };
241
- this._handleWriteableCharacter = (ev) => {
242
- const isFocusedOnSearchInput = document.activeElement === this._inputField;
243
- if (isFocusedOnSearchInput)
244
- return;
245
- this._inputField.focus();
246
- const isAPrintableCharacter = ev.key.match(/\P{C}/u);
247
- if (ev.key.length === 1 && isAPrintableCharacter) {
248
- this._inputField.value = `${this._inputField.value}${ev.key}`;
99
+ this._getSearchItemsCount = () => {
100
+ if (this._shouldShowHistory)
101
+ return this._historyLimitedContent.length;
102
+ let searchItemsCount = this._searchResults.products.length +
103
+ this._searchResults.categories.length +
104
+ this._searchResults.suggestions.length +
105
+ this._searchResults.producers.length;
106
+ if (this._searchResults.products.length && this._searchResults.suggestions.length) {
107
+ searchItemsCount += 1;
249
108
  }
109
+ return searchItemsCount;
250
110
  };
251
111
  this._hideSuggesterOnClickOutside = (ev) => {
252
112
  const outsideClick = typeof ev.composedPath === 'function' && !ev.composedPath().includes(this);
@@ -261,12 +121,6 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
261
121
  ? this.classList.remove(SEARCH_CLASS_NAMES.mobileOpened)
262
122
  : this.classList.add(SEARCH_CLASS_NAMES.mobileOpened);
263
123
  };
264
- this._preventSubmitOnSearchClear = (ev) => {
265
- const $searchClear = this.querySelector(SEARCH_COMPONENT_NAMES.clearButton);
266
- if (ev.key === 'Enter' && ev.target === $searchClear) {
267
- ev.preventDefault();
268
- }
269
- };
270
124
  }
271
125
  async connectedCallback() {
272
126
  super.connectedCallback();
@@ -305,9 +159,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
305
159
  disconnectedCallback() {
306
160
  super.disconnectedCallback();
307
161
  document.removeEventListener('click', this._hideSuggesterOnClickOutside);
308
- document.removeEventListener('keydown', this._preventScrollingOnSearchContentBrowsing);
309
162
  window.removeEventListener('resize', this._switchTypeOfSearchView);
310
- this._searchForm.removeEventListener('keydown', this._preventSubmitOnSearchClear);
311
163
  }
312
164
  _setupContext() {
313
165
  this._historyContextProvider = new ContextProviderController(this);
@@ -316,11 +168,8 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
316
168
  _setupInitialSearchPhrase() {
317
169
  var _a;
318
170
  const searchInput = this.querySelector('input[type="search"]');
319
- const searchForm = this.closest('form');
320
171
  if (searchInput)
321
172
  this._inputField = searchInput;
322
- if (searchForm)
323
- this._searchForm = searchForm;
324
173
  if (!((_a = this._inputField) === null || _a === void 0 ? void 0 : _a.value))
325
174
  return;
326
175
  this._searchPhrase = this._inputField.value;
@@ -344,7 +193,6 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
344
193
  const shouldShowMessage = ev.detail.searchPhrase !== '';
345
194
  this._updateSearchView(ev.detail.searchPhrase, shouldShowMessage, false);
346
195
  document.addEventListener('keyup', this._bindKeys);
347
- document.addEventListener('keydown', this._preventScrollingOnSearchContentBrowsing);
348
196
  });
349
197
  this.addEventListener(SEARCH_CUSTOM_EVENT_NAMES.keyup, (ev) => {
350
198
  const shouldShowMessage = ev.detail.searchPhrase !== '';
@@ -355,7 +203,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
355
203
  this._updateSearchView('', false);
356
204
  });
357
205
  this.addEventListener(SEARCH_CUSTOM_EVENT_NAMES.submit, () => {
358
- if (this._activeItemId !== `${this._id}-1`)
206
+ if (this._activeItemId !== -1)
359
207
  return;
360
208
  if (this._inputField.value === '') {
361
209
  this._updateSearchView(this._inputField.value, true);
@@ -379,12 +227,10 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
379
227
  });
380
228
  document.addEventListener('click', this._hideSuggesterOnClickOutside);
381
229
  window.addEventListener('resize', this._switchTypeOfSearchView);
382
- this._searchForm.addEventListener('keydown', this._preventSubmitOnSearchClear);
383
230
  }
384
231
  _updateSearchView(searchPhrase, shouldShowMessage, shouldUpdateSearchPhrase = true) {
385
232
  this._shouldShowMessage = shouldShowMessage;
386
- this._setActiveItemId(`${this._id}-1`);
387
- this._inputField.setAttribute('aria-activedescendant', '');
233
+ this._activeItemId = -1;
388
234
  this._displaySuggester(searchPhrase);
389
235
  if (!shouldUpdateSearchPhrase)
390
236
  return;
@@ -422,36 +268,42 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
422
268
  _handleToggleHistoryAndResults({ shouldShowHistory, shouldShowResults }) {
423
269
  this._shouldShowHistory = shouldShowHistory;
424
270
  this._shouldShowResults = shouldShowResults;
425
- this._toggleSearchInputAttributes(shouldShowHistory, shouldShowResults);
426
- this._toggleSearchContainerAttributes(shouldShowHistory, shouldShowResults);
271
+ this._toggleSearchInputAria(shouldShowHistory, shouldShowResults);
427
272
  }
428
- _toggleSearchInputAttributes(shouldShowHistory, shouldShowResults) {
273
+ _toggleSearchInputAria(shouldShowHistory, shouldShowResults) {
429
274
  var _a;
430
275
  const $input = (_a = this._searchInput) === null || _a === void 0 ? void 0 : _a.input;
431
276
  if (!$input)
432
277
  return;
433
278
  if (!shouldShowHistory && !shouldShowResults) {
434
279
  $input.removeAttribute('aria-label');
435
- $input.setAttribute('aria-activedescendant', '');
436
280
  return;
437
281
  }
438
282
  $input.setAttribute('aria-expanded', 'true');
439
- if (shouldShowHistory) {
283
+ if (shouldShowHistory)
440
284
  $input.setAttribute('aria-label', this.settings.historyGuideAriaLabel);
441
- $input.setAttribute('aria-haspopup', 'grid');
442
- }
443
- if (shouldShowResults) {
285
+ if (shouldShowResults)
444
286
  $input.setAttribute('aria-label', this.settings.suggesterGuideAriaLabel);
445
- this._inputField.removeAttribute('aria-haspopup');
446
- }
447
287
  }
448
- _toggleSearchContainerAttributes(shouldShowHistory, shouldShowResults) {
449
- if (shouldShowHistory) {
450
- this._containerRole = 'grid';
288
+ _scroll(direction) {
289
+ const searchContainer = this.querySelector(`.${SEARCH_CLASS_NAMES.container}`);
290
+ const maxScrollTop = searchContainer.scrollHeight - searchContainer.clientHeight;
291
+ const activeItem = this.querySelector(`[data-search-item-id="${this._activeItemId}"]`);
292
+ const activeItemHeight = (activeItem === null || activeItem === void 0 ? void 0 : activeItem.getBoundingClientRect().height) || 0;
293
+ let top;
294
+ if (direction === SCROLL_DIRECTIONS.up) {
295
+ top = searchContainer.scrollTop == 0 ? 0 : searchContainer.scrollTop + 30 - activeItemHeight;
296
+ }
297
+ else {
298
+ top = searchContainer.scrollTop == maxScrollTop ? maxScrollTop : activeItemHeight + searchContainer.scrollTop - 30;
451
299
  }
452
- if (shouldShowResults) {
453
- this._containerRole = 'listbox';
300
+ if (this._activeItemId === this._getSearchItemsCount() - 1) {
301
+ top = maxScrollTop;
454
302
  }
303
+ if (this._activeItemId === 0) {
304
+ top = 0;
305
+ }
306
+ searchContainer === null || searchContainer === void 0 ? void 0 : searchContainer.scrollTo({ top, behavior: 'smooth' });
455
307
  }
456
308
  _handleChooseSearchItem() {
457
309
  const activeSearchItem = this.querySelector(`[data-search-item-id="${this._activeItemId}"]`);
@@ -462,7 +314,7 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
462
314
  }
463
315
  _resetSearchView() {
464
316
  this._shouldShowMessage = false;
465
- this._setActiveItemId(`${this._id}-1`);
317
+ this._activeItemId = -1;
466
318
  const searchBar = this.querySelector(`.${SEARCH_CLASS_NAMES.searchBar}`);
467
319
  searchBar === null || searchBar === void 0 ? void 0 : searchBar.classList.remove(SEARCH_CLASS_NAMES.outline);
468
320
  this._hideHistorySuggestionsAndResults();
@@ -501,48 +353,33 @@ let HSearch = class HSearch extends PhoenixLightLitElement {
501
353
  <div class="labeled-icon__signature">${this._translations.search}</div>
502
354
  </div>
503
355
 
504
- ${n(this._isSuggesterLayerVisible(), () => html `
505
- <div
506
- class="${SEARCH_CLASS_NAMES.container}"
507
- id="${this._searchContentContainerId}"
508
- role="${this._containerRole}"
509
- >
510
- ${n(this._shouldShowMessage, () => html `<h-search-message
511
- ${ref(this._searchMessageRef)}
356
+ ${n(this._isSuggesterLayerVisible(), () => html `<div class="${SEARCH_CLASS_NAMES.container}">
357
+ ${n(this._shouldShowMessage, () => html `<h-search-message
358
+ .history="${this._historyLimitedContent}"
359
+ .results="${this._searchResults}"
360
+ .translations="${this._translations}"
361
+ search-phrase="${this._searchPhrase}"
362
+ module-instance-id="${this.moduleInstanceId}"
363
+ ></h-search-message>`)}
364
+ ${n(this._shouldShowHistory, () => html `<h-search-history
365
+ ${ref(this._searchHistoryRef)}
512
366
  .history="${this._historyLimitedContent}"
513
- .results="${this._searchResults}"
514
367
  .translations="${this._translations}"
368
+ active-item-id="${this._activeItemId}"
369
+ module-instance-id="${this.moduleInstanceId}"
370
+ ></h-search-history>`)}
371
+ ${n(this._shouldShowResults, () => html `<h-search-results
372
+ ${ref(this._searchResultsRef)}
373
+ .results="${this._searchResults}"
515
374
  search-phrase="${this._searchPhrase}"
375
+ .settings="${this.settings}"
376
+ locale="${this.locale}"
377
+ view="${this.view}"
378
+ .translations="${this._translations}"
379
+ active-item-id="${this._activeItemId}"
516
380
  module-instance-id="${this.moduleInstanceId}"
517
- ></h-search-message>`)}
518
- ${n(this._shouldShowHistory, () => html `<h-search-history
519
- ${ref(this._searchHistoryRef)}
520
- .history="${this._historyLimitedContent}"
521
- .translations="${this._translations}"
522
- active-item-id="${this._activeItemId}"
523
- search-id="${this._id}"
524
- module-instance-id="${this.moduleInstanceId}"
525
- ></h-search-history>`)}
526
- ${n(this._shouldShowResults, () => html `<h-search-results
527
- ${ref(this._searchResultsRef)}
528
- .results="${this._searchResults}"
529
- search-phrase="${this._searchPhrase}"
530
- .settings="${this.settings}"
531
- locale="${this.locale}"
532
- view="${this.view}"
533
- .translations="${this._translations}"
534
- active-item-id="${this._activeItemId}"
535
- search-id="${this._id}"
536
- module-instance-id="${this.moduleInstanceId}"
537
- ></h-search-results>`)}
538
- </div>
539
- `, () => html `
540
- <div
541
- class="${SEARCH_CLASS_NAMES.container}"
542
- id="${this._searchContentContainerId}"
543
- role="${this._containerRole}"
544
- hidden
545
- ></div>`)}
381
+ ></h-search-results>`)}
382
+ </div>`)}
546
383
  `;
547
384
  }
548
385
  };
@@ -596,16 +433,12 @@ __decorate([
596
433
  ], HSearch.prototype, "_historyContext", void 0);
597
434
  __decorate([
598
435
  state(),
599
- __metadata("design:type", String)
436
+ __metadata("design:type", Number)
600
437
  ], HSearch.prototype, "_activeItemId", void 0);
601
438
  __decorate([
602
439
  state(),
603
440
  __metadata("design:type", Object)
604
441
  ], HSearch.prototype, "_translations", void 0);
605
- __decorate([
606
- state(),
607
- __metadata("design:type", String)
608
- ], HSearch.prototype, "_containerRole", void 0);
609
442
  HSearch = __decorate([
610
443
  phoenixCustomElement(SEARCH_COMPONENT_NAMES.search)
611
444
  ], HSearch);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E,0BAA0B,qEAA6E;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qEAA6E;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4 +1,4 @@
1
- import { PropertyValues, TemplateResult } from 'lit';
1
+ import { TemplateResult } from 'lit';
2
2
  import { PhoenixLightLitElement } from "../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
3
  export declare class HSearchClear extends PhoenixLightLitElement {
4
4
  private _btnController;
@@ -10,7 +10,6 @@ export declare class HSearchClear extends PhoenixLightLitElement {
10
10
  private _searchContextObserver;
11
11
  constructor();
12
12
  connectedCallback(): void;
13
- protected updated(_changedProperties: PropertyValues): void;
14
13
  private _dispatchClearEvent;
15
14
  private _searchContextSetup;
16
15
  protected render(): TemplateResult;
@@ -28,11 +28,6 @@ let HSearchClear = class HSearchClear extends PhoenixLightLitElement {
28
28
  this._searchContextSetup();
29
29
  this.addEventListener('click', this._dispatchClearEvent);
30
30
  }
31
- updated(_changedProperties) {
32
- super.updated(_changedProperties);
33
- const newTabIndex = this._shouldShow ? '0' : '-1';
34
- this.setAttribute('tabindex', newTabIndex);
35
- }
36
31
  async _searchContextSetup() {
37
32
  try {
38
33
  this._searchContextConsumer = new ContextConsumerController(this);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2EAAmF;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,0BAA0B,2EAAmF;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,9 +8,9 @@ export declare class HSearchHistory extends PhoenixLightLitElement {
8
8
  private _historyContext$;
9
9
  private _historyContextObserver;
10
10
  buttonRef: Ref<HSearchHistoryLoadMore>;
11
+ private _loadMoreButtonId;
11
12
  history: TSearchHistoryItem[];
12
- activeItemId: string;
13
- searchId: string;
13
+ activeItemId: number;
14
14
  translations: Record<string, string>;
15
15
  moduleInstanceId: string;
16
16
  connectedCallback(): Promise<void>;
@@ -7,6 +7,7 @@ import { ICONS_SIZES } from '../../../../icon/icon_constants.js';
7
7
  import { Observer } from '../../../../../core/classes/observer/observer.js';
8
8
  import { ContextConsumerController } from '../../../../../core/context/context_consumer_controller.js';
9
9
  import { createRef, ref } from 'lit-html/directives/ref.js';
10
+ import v4 from '../../../../../../../../external/uuid/dist/esm-browser/v4.js';
10
11
  import { when as n } from '../../../../../../../../external/lit/external/lit-html/directives/when.js';
11
12
  import { SEARCH_CONTEXT_NAMES, SEARCH_CLASS_NAMES, SEARCH_COMPONENT_NAMES } from '../../search_constants.js';
12
13
  import { repeat as c } from '../../../../../../../../external/lit/external/lit-html/directives/repeat.js';
@@ -15,6 +16,7 @@ let HSearchHistory = class HSearchHistory extends PhoenixLightLitElement {
15
16
  constructor() {
16
17
  super(...arguments);
17
18
  this.buttonRef = createRef();
19
+ this._loadMoreButtonId = v4();
18
20
  this.history = [];
19
21
  this.translations = {};
20
22
  }
@@ -41,33 +43,23 @@ let HSearchHistory = class HSearchHistory extends PhoenixLightLitElement {
41
43
  return n((_a = this.history) === null || _a === void 0 ? void 0 : _a.length, () => html `<h3 class="${SEARCH_CLASS_NAMES.headline}">${this.translations.searchHistory}</h3>
42
44
 
43
45
  <ul>
44
- ${c(this.history, (historyElement, index) => html `
45
- <li
46
- class="
47
- ${SEARCH_CLASS_NAMES.item}
48
- ${`${this.searchId}${index}` === this.activeItemId ? SEARCH_CLASS_NAMES.itemActive : ''}
49
- "
50
- role="row"
46
+ ${c(this.history, (historyElement, index) => html ` <li
47
+ class="${SEARCH_CLASS_NAMES.item} ${index === this.activeItemId ? SEARCH_CLASS_NAMES.itemActive : ''}"
51
48
  >
52
49
  <h-search-history-select
53
50
  item-label="${historyElement.label}"
54
51
  class="${SEARCH_CLASS_NAMES.historySelect}"
55
52
  data-suggested-value="${historyElement.label}"
56
- data-search-item-id="${this.searchId}${index}"
53
+ data-search-item-id="${index}"
57
54
  module-instance-id="${this.moduleInstanceId}"
58
55
  aria-label=${this.translations.historyAriaLabel ? `${this.translations.historyAriaLabel} ${historyElement.label}` : undefined}
59
- role="gridcell"
60
56
  >
61
57
  <h-icon icon-name="icon-clock"></h-icon>
62
58
 
63
59
  <span class="${SEARCH_CLASS_NAMES.historyItemValue}">${historyElement.label}</span>
64
60
  </h-search-history-select>
65
61
 
66
- <h-search-history-remove
67
- data-search-item-id="${this.searchId}${index}-grid"
68
- item-id="${historyElement.id}"
69
- role="gridcell"
70
- >
62
+ <h-search-history-remove item-id="${historyElement.id}">
71
63
  <h-icon
72
64
  icon-name="icon-x"
73
65
  clickable=${true}
@@ -80,7 +72,7 @@ let HSearchHistory = class HSearchHistory extends PhoenixLightLitElement {
80
72
 
81
73
  <h-search-history-load-more
82
74
  class="${SEARCH_CLASS_NAMES.historyLoadMore}"
83
- data-search-item-id="${this.searchId}-loadmore"
75
+ data-search-item-id="${this._loadMoreButtonId}"
84
76
  ${ref(this.buttonRef)}
85
77
  >
86
78
  ${this.translations.loadMore}
@@ -92,13 +84,9 @@ __decorate([
92
84
  __metadata("design:type", Array)
93
85
  ], HSearchHistory.prototype, "history", void 0);
94
86
  __decorate([
95
- property({ type: String, attribute: 'active-item-id' }),
96
- __metadata("design:type", String)
87
+ property({ type: Number, attribute: 'active-item-id' }),
88
+ __metadata("design:type", Number)
97
89
  ], HSearchHistory.prototype, "activeItemId", void 0);
98
- __decorate([
99
- property({ type: String, attribute: 'search-id' }),
100
- __metadata("design:type", String)
101
- ], HSearchHistory.prototype, "searchId", void 0);
102
90
  __decorate([
103
91
  property({ type: Object }),
104
92
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2EAAmF;AAC7G;AACA,4BAA4B,6EAAqF;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,eAAe,8DAAkE;AACjF,0BAA0B,2EAAmF;AAC7G;AACA,4BAA4B,6EAAqF;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -7,5 +7,4 @@ export declare class HSearchInput extends PhoenixLightLitElement {
7
7
  private _setupInitialValue;
8
8
  private _deserializeInputPhrase;
9
9
  private _setupListeners;
10
- private _setupAttributes;
11
10
  }