@shoper/phoenix_design_system 0.22.3 → 0.22.4-0

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/accordion/accordion_content.js +6 -9
  2. package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +4 -3
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/slider/slider.js +2 -2
  6. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js +74 -0
  7. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
  8. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js +12 -0
  9. package/build/{esm/packages/utilities/build/esm/web_components_utils.js.map → cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js.map} +1 -1
  10. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js +31 -0
  11. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -0
  12. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +108 -0
  13. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
  14. package/build/cjs/packages/phoenix/src/components/tabs/tabs_constants.js +10 -0
  15. package/build/cjs/packages/{utilities/build/esm/web_components_utils.js.map → phoenix/src/components/tabs/tabs_constants.js.map} +1 -1
  16. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
  17. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
  18. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
  19. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  20. package/build/cjs/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
  21. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
  22. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +4 -4
  24. package/build/cjs/packages/phoenix/src/index.js +23 -0
  25. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  26. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +6 -9
  27. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
  28. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +4 -3
  29. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  30. package/build/esm/packages/phoenix/src/components/slider/slider.js +1 -1
  31. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.d.ts +14 -0
  32. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js +72 -0
  33. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
  34. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.d.ts +4 -0
  35. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js +7 -0
  36. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js.map +1 -0
  37. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.d.ts +8 -0
  38. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js +29 -0
  39. package/build/{cjs/packages/utilities/build/esm/json_utils.js.map → esm/packages/phoenix/src/components/tabs/tab_panel.js.map} +1 -1
  40. package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +16 -0
  41. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +106 -0
  42. package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
  43. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.d.ts +3 -0
  44. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js +6 -0
  45. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js.map +1 -0
  46. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.d.ts +4 -0
  47. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js +2 -0
  48. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js.map +1 -0
  49. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.d.ts +15 -2
  50. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
  51. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
  52. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.d.ts +45 -0
  53. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js +4 -0
  54. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js.map +1 -0
  55. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.d.ts +3 -3
  56. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
  57. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  58. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.d.ts +4 -11
  59. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js +2 -1
  60. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js.map +1 -1
  61. package/build/esm/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
  62. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
  63. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  64. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +1 -1
  65. package/build/esm/packages/phoenix/src/index.d.ts +4 -0
  66. package/build/esm/packages/phoenix/src/index.js +4 -0
  67. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  68. package/package.json +2 -2
  69. package/build/cjs/packages/utilities/build/esm/json_utils.js +0 -25
  70. package/build/cjs/packages/utilities/build/esm/web_components_utils.js +0 -18
  71. package/build/esm/packages/utilities/build/esm/json_utils.js +0 -21
  72. package/build/esm/packages/utilities/build/esm/json_utils.js.map +0 -1
  73. package/build/esm/packages/utilities/build/esm/web_components_utils.js +0 -14
@@ -15,13 +15,6 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
15
15
  constructor() {
16
16
  super();
17
17
  this.transitionName = 'accordion-toggle';
18
- this._setStylingOptions = () => {
19
- this.style.setProperty('display', 'block', 'important');
20
- this.style.height = 'auto';
21
- this._originalHeight = `${this.getBoundingClientRect().height}px`;
22
- this.style.display = '';
23
- this.style.height = this._originalHeight;
24
- };
25
18
  this._expand = () => {
26
19
  this._setHeight(this._originalHeight);
27
20
  };
@@ -36,7 +29,12 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
36
29
  this._transitionController = new transition_controller.TransitionController(this, this.transitionName);
37
30
  this._setStylingOptions();
38
31
  this._subscribeObserver();
39
- window.addEventListener('resize', this._setStylingOptions);
32
+ }
33
+ _setStylingOptions() {
34
+ this.style.setProperty('display', 'block', 'important');
35
+ this._originalHeight = `${this.getBoundingClientRect().height}px`;
36
+ this.style.display = '';
37
+ this.style.height = this._originalHeight;
40
38
  }
41
39
  async _subscribeObserver() {
42
40
  this._accordionGroupProps = await this._contextConsumer.consumeAsync(accordion_constants.ACCORDION_CONTEXTS.accordionGroupProps);
@@ -56,7 +54,6 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
56
54
  disconnectedCallback() {
57
55
  super.disconnectedCallback();
58
56
  this._accordionGroupProps.unsubscribe(this._accordionGroupPropsObserver);
59
- window.removeEventListener('resize', this._setStylingOptions);
60
57
  }
61
58
  };
62
59
  tslib_es6.__decorate([
@@ -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;"}
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;"}
@@ -146,8 +146,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
146
146
  }
147
147
  else if (document.activeElement === this._lastFocusableElement) {
148
148
  ev.preventDefault();
149
- this._focusOnNextSibling(this);
150
- await this._hideDropdownsSequentially();
149
+ await this._rootDropdown._hideDropdownsSequentially();
150
+ this._focusOnNextSibling(this._rootDropdown);
151
151
  }
152
152
  }
153
153
  };
@@ -266,7 +266,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
266
266
  return true;
267
267
  if (element === this.$dropdownContent)
268
268
  return true;
269
- const isDescendantOfDropdown = element.closest(`${dropdown_constants.DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null;
269
+ const isDescendantOfDropdown = element.closest(`${dropdown_constants.DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null ||
270
+ element.closest(`${dropdown_constants.DROPDOWN_CONTENT_NAME}[name="${this.name}"]`) !== null;
270
271
  if (isDescendantOfDropdown)
271
272
  return true;
272
273
  const $closestDropdownContent = element.closest(dropdown_constants.DROPDOWN_CONTENT_NAME);
@@ -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,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;"}
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,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;"}
@@ -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 json_utils = require('../../../../utilities/build/esm/json_utils.js');
7
+ var utilities = 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 splide_esm = require('../../../../../external/@splidejs/splide/dist/js/splide.esm.js');
@@ -25,7 +25,7 @@ exports.HSlider = class HSlider extends phoenix_light_lit_element.PhoenixLightLi
25
25
  connectedCallback() {
26
26
  var _a;
27
27
  if (this.settings) {
28
- this._settings = (_a = json_utils.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
28
+ this._settings = (_a = utilities.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
29
29
  }
30
30
  this._slider = new splide_esm.Splide(`#${this.id}`, this._settings);
31
31
  if (this._settings.mountOnConnectedCallback) {
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
7
+ var utilities = require('@dreamcommerce/utilities');
8
+ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
+ var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
10
+ var btn_controller = require('../../../controllers/btn_controller.js');
11
+ var tab_constants = require('./tab_constants.js');
12
+
13
+ exports.HTab = class HTab extends phoenix_light_lit_element.PhoenixLightLitElement {
14
+ constructor() {
15
+ super(...arguments);
16
+ this._handleTabClicked = () => {
17
+ if (this.disabled)
18
+ return;
19
+ this._dispatchSelectedEvent();
20
+ };
21
+ this._dispatchSelectedEvent = () => {
22
+ this.dispatchEvent(new CustomEvent(tab_constants.TAB_EVENT_NAMES.selected, {
23
+ detail: {
24
+ $el: this
25
+ },
26
+ bubbles: true
27
+ }));
28
+ };
29
+ }
30
+ get selected() {
31
+ return this.hasAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME);
32
+ }
33
+ set selected(selected) {
34
+ selected ? this.setAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME, '') : this.removeAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME);
35
+ this.setAttribute('aria-selected', String(selected));
36
+ selected ? utilities.UiDomUtils.makeNavigable(this) : utilities.UiDomUtils.makeUnnavigable(this);
37
+ }
38
+ attributeChangedCallback(name, value, newValue) {
39
+ super.attributeChangedCallback(name, value, newValue);
40
+ switch (name) {
41
+ case tab_constants.TAB_SELECTED_ATTRIBUTE_NAME: {
42
+ this.selected = Boolean(newValue);
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ connectedCallback() {
48
+ super.connectedCallback();
49
+ this._btnController = new btn_controller.BtnController(this, this._handleTabClicked);
50
+ this._setupAttributes();
51
+ this._bindEvents();
52
+ this.selected ? utilities.UiDomUtils.makeNavigable(this) : utilities.UiDomUtils.makeUnnavigable(this);
53
+ }
54
+ _setupAttributes() {
55
+ this.setAttribute('role', 'tab');
56
+ this.setAttribute('aria-controls', this.panelName);
57
+ this.setAttribute('aria-selected', String(this.selected));
58
+ }
59
+ _bindEvents() {
60
+ this.addEventListener('click', this._handleTabClicked);
61
+ }
62
+ };
63
+ tslib_es6.__decorate([
64
+ decorators.property({ type: String, reflect: true, attribute: 'panel-name' }),
65
+ tslib_es6.__metadata("design:type", String)
66
+ ], exports.HTab.prototype, "panelName", void 0);
67
+ tslib_es6.__decorate([
68
+ decorators.property({ type: Boolean, reflect: true }),
69
+ tslib_es6.__metadata("design:type", Boolean)
70
+ ], exports.HTab.prototype, "disabled", void 0);
71
+ exports.HTab = tslib_es6.__decorate([
72
+ phoenix_custom_element.phoenixCustomElement('h-tab')
73
+ ], exports.HTab);
74
+ //# sourceMappingURL=tab.js.map
@@ -0,0 +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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const TAB_EVENT_NAMES = {
6
+ selected: 'selected'
7
+ };
8
+ const TAB_SELECTED_ATTRIBUTE_NAME = 'selected';
9
+
10
+ exports.TAB_EVENT_NAMES = TAB_EVENT_NAMES;
11
+ exports.TAB_SELECTED_ATTRIBUTE_NAME = TAB_SELECTED_ATTRIBUTE_NAME;
12
+ //# sourceMappingURL=tab_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
7
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
8
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
9
+ var visibility_controller = require('../../controllers/visibility_controller/visibility_controller.js');
10
+
11
+ exports.HTabPanel = class HTabPanel extends phoenix_light_lit_element.PhoenixLightLitElement {
12
+ constructor() {
13
+ super();
14
+ this._visibilityController = new visibility_controller.VisibilityController(this);
15
+ }
16
+ show() {
17
+ this._visibilityController.show();
18
+ }
19
+ hide() {
20
+ this._visibilityController.hide();
21
+ }
22
+ };
23
+ tslib_es6.__decorate([
24
+ decorators.property({ type: String, reflect: true }),
25
+ tslib_es6.__metadata("design:type", String)
26
+ ], exports.HTabPanel.prototype, "name", void 0);
27
+ exports.HTabPanel = tslib_es6.__decorate([
28
+ phoenix_custom_element.phoenixCustomElement('h-tab-panel'),
29
+ tslib_es6.__metadata("design:paramtypes", [])
30
+ ], exports.HTabPanel);
31
+ //# sourceMappingURL=tab_panel.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,108 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
7
+ var utilities = require('@dreamcommerce/utilities');
8
+ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
+ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
10
+ var keystrokes_controller = require('../../controllers/keystrokes_controller/keystrokes_controller.js');
11
+ var tab_constants = require('./tab/tab_constants.js');
12
+ var tab = require('./tab/tab.js');
13
+ var tabs_constants = require('./tabs_constants.js');
14
+
15
+ exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ this._handleArrowNavigation = ({ key }) => {
19
+ const currentTabIndex = this._getFocusedTabIndex();
20
+ if (currentTabIndex === undefined)
21
+ return;
22
+ const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
23
+ if (newTabIndex === undefined)
24
+ return;
25
+ utilities.UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
26
+ utilities.UiDomUtils.makeNavigable(this._$tabs[newTabIndex]);
27
+ this._$tabs[newTabIndex].focus();
28
+ };
29
+ this._handleTabSelected = (event) => {
30
+ const $newlySelectedTab = event.detail.$el;
31
+ this.switchPanel($newlySelectedTab.panelName);
32
+ if (this._$selectedTab)
33
+ this._$selectedTab.selected = false;
34
+ $newlySelectedTab.selected = true;
35
+ this._dispatchChangedEvent(this._$selectedTab, $newlySelectedTab);
36
+ this._$selectedTab = $newlySelectedTab;
37
+ };
38
+ }
39
+ connectedCallback() {
40
+ super.connectedCallback();
41
+ this._setupEvents();
42
+ this.setAttribute('role', 'tablist');
43
+ this._$tabs = [...this.querySelectorAll('h-tab')];
44
+ new keystrokes_controller.KeystrokesController({
45
+ host: this,
46
+ keys: ['ArrowRight', 'ArrowLeft'],
47
+ callback: this._handleArrowNavigation
48
+ });
49
+ }
50
+ _getFocusedTabIndex() {
51
+ const focusedElement = document.activeElement;
52
+ if ((focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.tagName) !== 'H-TAB')
53
+ return;
54
+ return this._$tabs.findIndex(($tab) => $tab === focusedElement);
55
+ }
56
+ _getNextTabIndex(currentTabIndex) {
57
+ if (currentTabIndex >= this._$tabs.length - 1)
58
+ return;
59
+ return currentTabIndex + 1;
60
+ }
61
+ _getPrevTabIndex(currentTabIndex) {
62
+ if (currentTabIndex <= 0)
63
+ return;
64
+ return currentTabIndex - 1;
65
+ }
66
+ _setupEvents() {
67
+ this.addEventListener(tab_constants.TAB_EVENT_NAMES.selected, this._handleTabSelected);
68
+ }
69
+ allChildrenConnected() {
70
+ const $selectedTab = this.querySelector('h-tab[selected]');
71
+ this._hideNotSelectedAndVisiblePanels();
72
+ if (!$selectedTab)
73
+ return;
74
+ this._$selectedTab = $selectedTab;
75
+ this.switchPanel(this._$selectedTab.panelName);
76
+ }
77
+ _hideNotSelectedAndVisiblePanels() {
78
+ const $notSelectedTabs = [...this.querySelectorAll('h-tab:not([selected])')];
79
+ $notSelectedTabs
80
+ .map(($tab) => $tab.panelName)
81
+ .forEach((panelName) => document.querySelectorAll(`[name="${panelName}"]`).forEach(($panel) => $panel.hide()));
82
+ }
83
+ switchPanel(newPanelName) {
84
+ const $currentPanel = this._$selectedTab && document.querySelectorAll(`[name="${this._$selectedTab.panelName}"]`);
85
+ const $newPanel = document.querySelectorAll(`[name="${newPanelName}"]`);
86
+ if ($currentPanel)
87
+ $currentPanel.forEach(($panel) => $panel.hide());
88
+ if ($newPanel)
89
+ $newPanel.forEach(($panel) => $panel.show());
90
+ }
91
+ _dispatchChangedEvent($previousTab, $newTab) {
92
+ this.dispatchEvent(new CustomEvent(tabs_constants.TABS_EVENT_NAMES.changed, {
93
+ detail: {
94
+ $previousTab,
95
+ $newTab
96
+ },
97
+ bubbles: true
98
+ }));
99
+ }
100
+ };
101
+ tslib_es6.__decorate([
102
+ decorators.state(),
103
+ tslib_es6.__metadata("design:type", tab.HTab)
104
+ ], exports.HTabs.prototype, "_$selectedTab", void 0);
105
+ exports.HTabs = tslib_es6.__decorate([
106
+ phoenix_custom_element.phoenixCustomElement('h-tabs')
107
+ ], exports.HTabs);
108
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const TABS_EVENT_NAMES = {
6
+ changed: 'changed'
7
+ };
8
+
9
+ exports.TABS_EVENT_NAMES = TABS_EVENT_NAMES;
10
+ //# sourceMappingURL=tabs_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;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;AACA;AACA;AACA;AACA;"}