@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
@@ -12,6 +12,7 @@ var litHtml = require('lit-html');
12
12
  var global_constants = require('../../global_constants.js');
13
13
  var dropdown_constants = require('./dropdown_constants.js');
14
14
  var relative_position_controller_constants = require('../../controllers/relative_position_controller/relative_position_controller_constants.js');
15
+ var v4 = require('../../../../../external/uuid/dist/esm-browser/v4.js');
15
16
  var portal_constants = require('../portal/portal_constants.js');
16
17
  var backdrop_controller = require('../backdrop/controller/backdrop_controller.js');
17
18
  var click_outside_controller = require('../../controllers/click_outside_controller/click_outside_controller.js');
@@ -29,6 +30,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
29
30
  this.transition = 'direction';
30
31
  this.offset = 0;
31
32
  this.portalTarget = dropdown_constants.DEFAULT_DROPDOWN_PORTAL_NAME;
33
+ this.id = v4['default']();
34
+ this.preventFocusTrap = false;
32
35
  this._backdropController = new backdrop_controller.BackdropController();
33
36
  this._handleClickOutside = async (target) => {
34
37
  var _a, _b;
@@ -45,7 +48,7 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
45
48
  return;
46
49
  }
47
50
  await this.show();
48
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
51
+ this._focusOnFirstContentElement();
49
52
  };
50
53
  this.show = async () => {
51
54
  if (this.opened)
@@ -136,44 +139,32 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
136
139
  return;
137
140
  await this.hide();
138
141
  };
139
- this._handleForwardFocus = async (ev) => {
140
- // if (!this.opened) this._handleFocusOnNextElement(ev);
141
- if (!this.opened || ev.shiftKey)
142
+ this._keepFocusWithinDropdownForwards = (ev) => {
143
+ var _a, _b;
144
+ if (ev.shiftKey === true || !this.$dropdownContent || !this.opened)
142
145
  return;
143
- const $focusableElementsWithinDropdownContent = utilities.UiDomUtils.getFocusableElements(this.$dropdownContent).filter((element) => element.closest(dropdown_constants.DROPDOWN_CONTENT_NAME) === this.$dropdownContent);
144
- const doesNotHaveFocusableElementsInsideContent = $focusableElementsWithinDropdownContent.length <= 0 && this.opened;
145
- const indexOfCurrentlyFocusedElement = $focusableElementsWithinDropdownContent.indexOf(document.activeElement);
146
- const isActiveElementLastFocusableElement = indexOfCurrentlyFocusedElement === $focusableElementsWithinDropdownContent.length - 1;
147
- if (doesNotHaveFocusableElementsInsideContent || isActiveElementLastFocusableElement)
148
- this._handleFocusOnNextElement(ev);
149
- };
150
- this._handleFocusOnNextElement = async (ev) => {
151
- var _a;
152
- ev.preventDefault();
153
- const $focusableElements = utilities.UiDomUtils.getFocusableElements(document.body);
154
- const indexOfDropdownToggler = $focusableElements.indexOf(this.$dropdownToggler);
155
- const $nextElementToFocus = (_a = $focusableElements[indexOfDropdownToggler + 1]) !== null && _a !== void 0 ? _a : $focusableElements[0];
156
- await this._hideDropdownsSequentially();
157
- await this.hide();
158
- this._focusOnNextElementAfterToggler($nextElementToFocus);
159
- };
160
- this._focusOnNextElementAfterToggler = ($elementToFocus) => {
161
- var _a;
162
- const isTogglerLastChildOfPreviousDropdown = ($elementToFocus === null || $elementToFocus === void 0 ? void 0 : $elementToFocus.closest(dropdown_constants.DROPDOWN_CONTENT_NAME)) === this.$dropdownContent;
163
- if (isTogglerLastChildOfPreviousDropdown) {
164
- (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
146
+ const $target = ev.target;
147
+ if (((_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.contains($target)) && this.preventFocusTrap) {
148
+ this._handleFocusOnNextElementAfterDropdown(ev);
149
+ return;
150
+ }
151
+ if ((_b = this.$dropdownToggler) === null || _b === void 0 ? void 0 : _b.contains($target)) {
152
+ this._handleFocusFromTogglerForwards(ev);
165
153
  return;
166
154
  }
167
- $elementToFocus === null || $elementToFocus === void 0 ? void 0 : $elementToFocus.focus();
155
+ this._handleFocusFromSentinelEndForwards(ev, $target);
168
156
  };
169
- this._handleBackwardFocus = async (ev) => {
170
- var _a;
171
- const $firstFocusableElement = this.$dropdownContent && utilities.UiDomUtils.getFocusableElement(this.$dropdownContent);
172
- if (document.activeElement !== $firstFocusableElement)
157
+ this._keepFocusWithinDropdownBackwards = (ev) => {
158
+ if (!this.opened || !this.$dropdownContent)
173
159
  return;
174
- ev.preventDefault();
175
- (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
176
- await this._hideDropdownsSequentially();
160
+ const $target = ev.target;
161
+ if (this.preventFocusTrap) {
162
+ this._handleDefaultFocusFromDropdownBackwards(ev);
163
+ }
164
+ else {
165
+ this._handleFocusFromTogglerBackwards(ev, $target);
166
+ this._handleFocusFromSentinelStartBackwards(ev, $target);
167
+ }
177
168
  };
178
169
  this._hoverToggle = async (ev) => {
179
170
  if (window.innerWidth < global_constants.BREAKPOINTS.xs)
@@ -185,12 +176,19 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
185
176
  const isHoveredWithinDropdown = this._isHoveredWithinDropdown(ev.target);
186
177
  if (isHoveredWithinDropdown && !this.opened) {
187
178
  await this.show();
188
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
179
+ this._focusOnFirstContentElement();
189
180
  return;
190
181
  }
191
182
  if (!isHoveredWithinDropdown && this.opened)
192
183
  await this._hideDropdownsSequentially();
193
184
  };
185
+ this._focusOnFirstContentElement = () => {
186
+ if (!this.$dropdownContent)
187
+ return;
188
+ const $firstFocusableElement = this._getTrulyFocusableElements(this.$dropdownContent)[0];
189
+ if ($firstFocusableElement)
190
+ $firstFocusableElement.focus();
191
+ };
194
192
  this.isOpened = () => this.opened;
195
193
  this._positionDropdownContent = () => {
196
194
  if (this.contentWidth === dropdown_constants.DROPDOWN_CONTENT_WIDTH.full)
@@ -216,13 +214,14 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
216
214
  host: this,
217
215
  target: document.body,
218
216
  keys: ['tab'],
219
- callback: this._handleForwardFocus
217
+ callback: this._keepFocusWithinDropdownForwards
220
218
  });
221
219
  new keystrokes_controller.KeystrokesController({
222
220
  host: this,
223
221
  target: document.body,
224
222
  keys: [['shift', 'tab']],
225
- callback: this._handleBackwardFocus
223
+ callback: this._keepFocusWithinDropdownBackwards,
224
+ containerSelectors: ['h-dropdown', 'h-dropdown-content']
226
225
  });
227
226
  }
228
227
  async connectedCallback() {
@@ -298,6 +297,74 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
298
297
  (_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(global_constants.SCROLLABLE_CLASS_NAME);
299
298
  }
300
299
  }
300
+ _handleFocusOnNextElementAfterDropdown(ev) {
301
+ ev.preventDefault();
302
+ this.hide();
303
+ utilities.UiDomUtils.getNextFocusableElement(this.$dropdownToggler || this).focus();
304
+ return;
305
+ }
306
+ _handleFocusFromTogglerForwards(ev) {
307
+ if (!this.$dropdownContent)
308
+ return;
309
+ const trulyFocusableElements = this._getTrulyFocusableElements(this.$dropdownContent);
310
+ if (trulyFocusableElements.length === 0)
311
+ return;
312
+ ev.preventDefault();
313
+ trulyFocusableElements[0].focus();
314
+ }
315
+ _handleFocusFromSentinelEndForwards(ev, $target) {
316
+ var _a;
317
+ if (!this.$dropdownContent)
318
+ return;
319
+ const trulyFocusableElements = this._getTrulyFocusableElements(this.$dropdownContent);
320
+ const $lastFocusableElement = trulyFocusableElements.slice(-1)[0];
321
+ if ($target !== $lastFocusableElement)
322
+ return;
323
+ ev.preventDefault();
324
+ (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
325
+ }
326
+ _handleDefaultFocusFromDropdownBackwards(ev) {
327
+ ev.preventDefault();
328
+ this.hide();
329
+ utilities.UiDomUtils.getPreviousFocusableElement(this.$dropdownToggler || this).focus();
330
+ }
331
+ _handleFocusFromTogglerBackwards(ev, $target) {
332
+ var _a;
333
+ if ($target !== this.$dropdownToggler && !((_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.contains($target)) || !this.$dropdownContent)
334
+ return;
335
+ ev.preventDefault();
336
+ const trulyFocusableElements = this._getTrulyFocusableElements(this.$dropdownContent);
337
+ if (trulyFocusableElements.length === 0)
338
+ return;
339
+ const $lastFocusableElement = trulyFocusableElements.slice(-1)[0];
340
+ $lastFocusableElement.focus();
341
+ }
342
+ _handleFocusFromSentinelStartBackwards(ev, $target) {
343
+ var _a;
344
+ if (!this.$dropdownContent)
345
+ return;
346
+ const $firstFocusableElement = this._getTrulyFocusableElements(this.$dropdownContent)[0];
347
+ if ($target !== $firstFocusableElement)
348
+ return;
349
+ ev.preventDefault();
350
+ (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
351
+ }
352
+ _getTrulyFocusableElements($container) {
353
+ const focusableElements = utilities.UiDomUtils.getFocusableElements($container);
354
+ return focusableElements.filter(($el) => this._isElementTrulyFocusable($el));
355
+ }
356
+ _isElementTrulyFocusable($el) {
357
+ const style = window.getComputedStyle($el);
358
+ if (style.display === 'none' || style.visibility === 'hidden') {
359
+ return false;
360
+ }
361
+ if ($el.nodeName === 'H-PORTAL')
362
+ return true;
363
+ const $parent = $el.parentElement;
364
+ if (!$parent)
365
+ return true;
366
+ return this._isElementTrulyFocusable($parent);
367
+ }
301
368
  _isHoveredWithinDropdown(element) {
302
369
  var _a;
303
370
  if (element === this)
@@ -321,6 +388,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
321
388
  return;
322
389
  if (!this._hasScrollableClassInitially)
323
390
  this._hasScrollableClassInitially = this.$dropdownContent.classList.contains(global_constants.SCROLLABLE_CLASS_NAME);
391
+ if (!this.preventFocusTrap)
392
+ this.$dropdownContent.setAttribute('aria-modal', 'true');
324
393
  }
325
394
  _getDropdownContentWidth() {
326
395
  const isMobileResolution = document.documentElement.clientWidth < global_constants.BREAKPOINTS.xs;
@@ -389,6 +458,14 @@ tslib_es6.__decorate([
389
458
  decorators_js.property({ type: String, attribute: 'mobile-position' }),
390
459
  tslib_es6.__metadata("design:type", String)
391
460
  ], exports.HDropdown.prototype, "mobilePosition", void 0);
461
+ tslib_es6.__decorate([
462
+ decorators_js.property({ type: String, attribute: 'id', reflect: true }),
463
+ tslib_es6.__metadata("design:type", Object)
464
+ ], exports.HDropdown.prototype, "id", void 0);
465
+ tslib_es6.__decorate([
466
+ decorators_js.property({ type: Boolean, attribute: 'prevent-focus-trap' }),
467
+ tslib_es6.__metadata("design:type", Object)
468
+ ], exports.HDropdown.prototype, "preventFocusTrap", void 0);
392
469
  exports.HDropdown = HDropdown_1 = tslib_es6.__decorate([
393
470
  phoenix_custom_element.phoenixCustomElement('h-dropdown'),
394
471
  tslib_es6.__metadata("design:paramtypes", [])
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qDAAyD;AAC1E;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
- var lit = require('lit');
7
6
  var decorators = require('lit/decorators');
8
7
  var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
8
  var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
@@ -23,10 +22,6 @@ exports.HDropdownContent = class HDropdownContent extends phoenix_light_lit_elem
23
22
  element.setAttribute('role', 'menuitem');
24
23
  });
25
24
  }
26
- render() {
27
- super.render();
28
- return lit.html ` <div role="dialog">${this.getSlot('content')}</div> `;
29
- }
30
25
  };
31
26
  tslib_es6.__decorate([
32
27
  decorators.property({ type: String }),
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
6
  var decorators = require('lit/decorators');
7
- var utilities = require('@dreamcommerce/utilities');
7
+ require('@dreamcommerce/utilities');
8
8
  var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
9
  var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
10
10
  var btn_controller = require('../../controllers/btn_controller/btn_controller.js');
@@ -16,6 +16,17 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
16
16
  constructor() {
17
17
  super();
18
18
  this.name = '';
19
+ this._setupTogglerAria = () => {
20
+ this._$dropdown = this.closest(dropdown_constants.DROPDOWN_CONTAINER_NAME);
21
+ if (this._$dropdown.isOpened)
22
+ this._toggleElementAriaController = new toggle_element_aria_controller.ToggleElementAriaController({
23
+ host: this,
24
+ initialAriaExpandedValue: this._$dropdown.isOpened()
25
+ });
26
+ this.setAttribute('aria-haspopup', 'true');
27
+ if (this._$dropdown.id)
28
+ this.setAttribute('aria-controls', this._$dropdown.id);
29
+ };
19
30
  this._dispatchToggleDropdownEventWithKeyboard = (ev) => {
20
31
  ev.stopImmediatePropagation();
21
32
  this._dispatchToggleDropdownEvent(ev);
@@ -29,18 +40,6 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
29
40
  ev.preventDefault();
30
41
  this.emitCustomEvent(dropdown_constants.DROPDOWN_EVENTS.toggle);
31
42
  };
32
- this._handleFocusToOpenedDropdown = async (ev) => {
33
- if (ev.target !== this)
34
- return;
35
- const isOpened = this._$dropdown.isOpened();
36
- if (!isOpened)
37
- return;
38
- const $dropdownContent = document.querySelector(`${dropdown_constants.DROPDOWN_CONTENT_NAME}[name="${this.name}"]`);
39
- if (!$dropdownContent)
40
- return;
41
- ev.preventDefault();
42
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer($dropdownContent);
43
- };
44
43
  this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
45
44
  this.className = `${dropdown_constants.DROPDOWN_CSS_CLASSES.toggler} ${this.className}`;
46
45
  }
@@ -48,13 +47,7 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
48
47
  var _a;
49
48
  super.connectedCallback();
50
49
  this._btnController = new btn_controller.BtnController(this, this._dispatchToggleDropdownEventWithKeyboard);
51
- this._$dropdown = this.closest(dropdown_constants.DROPDOWN_CONTAINER_NAME);
52
- if (this._$dropdown.isOpened)
53
- this._toggleElementAriaController = new toggle_element_aria_controller.ToggleElementAriaController({
54
- host: this,
55
- initialAriaExpandedValue: this._$dropdown.isOpened()
56
- });
57
- document.addEventListener('keydown', this._handleFocusToOpenedDropdown);
50
+ this._setupTogglerAria();
58
51
  const hasToggleOnHover = (_a = this._$dropdown) === null || _a === void 0 ? void 0 : _a.hasAttribute(dropdown_constants.DROPDOWN_TOGGLE_ON_HOVER_ATTRIBUTE_NAME);
59
52
  if (hasToggleOnHover) {
60
53
  this.addEventListener('click', this._dispatchToggleDropdownEventOnMobile);
@@ -62,10 +55,6 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
62
55
  }
63
56
  this.addEventListener('click', this._dispatchToggleDropdownEvent);
64
57
  }
65
- disconnectedCallback() {
66
- super.disconnectedCallback();
67
- document.removeEventListener('keydown', this._handleFocusToOpenedDropdown);
68
- }
69
58
  };
70
59
  tslib_es6.__decorate([
71
60
  decorators.property({ type: String, reflect: true }),
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}