@shoper/phoenix_design_system 0.27.1 → 1.0.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 (199) hide show
  1. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +32 -56
  2. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js +2 -0
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +3 -22
  6. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js +9 -4
  8. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/icon/icon_constants.js +1 -14
  10. package/build/cjs/packages/phoenix/src/components/icon/icon_constants.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js +1 -3
  12. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +1 -2
  14. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/controllers/btn_controller.js +1 -1
  16. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +8 -44
  17. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  18. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js +8 -0
  19. package/build/{esm/packages/phoenix/src/components/messages/hints/hint_constants.js.map → cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js.map} +0 -0
  20. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +1 -1
  21. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js +2 -22
  22. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +4 -11
  24. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  25. package/build/cjs/packages/phoenix/src/index.js +0 -77
  26. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  27. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +6 -9
  28. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +33 -57
  29. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  30. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.d.ts +1 -0
  31. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js +2 -1
  32. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.d.ts +0 -3
  34. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +4 -23
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.d.ts +0 -4
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.js +1 -2
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.js.map +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/input/input_icon.d.ts +1 -0
  40. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js +9 -4
  41. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/components/groups/toggle_button_group/toggle_button.d.ts +1 -1
  43. package/build/esm/packages/phoenix/src/components/icon/icon_constants.d.ts +0 -13
  44. package/build/esm/packages/phoenix/src/components/icon/icon_constants.js +2 -14
  45. package/build/esm/packages/phoenix/src/components/icon/icon_constants.js.map +1 -1
  46. package/build/esm/packages/phoenix/src/components/portal/portal_constants.d.ts +0 -1
  47. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js +2 -3
  48. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  49. package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +0 -1
  50. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +1 -2
  51. package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  52. package/build/esm/packages/phoenix/src/controllers/btn_controller.js +1 -1
  53. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.d.ts +2 -8
  54. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +8 -44
  55. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  56. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.d.ts +1 -0
  57. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js +4 -0
  58. package/build/esm/packages/phoenix/src/{components/color_swatches/color_item/color_item_constants.js.map → controllers/keystrokes_controller/keystrokes_controller_constants.js.map} +1 -1
  59. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_types.d.ts +1 -1
  60. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +1 -1
  61. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.d.ts +0 -34
  62. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js +3 -20
  63. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js.map +1 -1
  64. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js +1 -2
  65. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js.map +1 -1
  66. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.d.ts +2 -5
  67. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +4 -11
  68. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  69. package/build/esm/packages/phoenix/src/index.d.ts +0 -11
  70. package/build/esm/packages/phoenix/src/index.js +0 -11
  71. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  72. package/package.json +4 -4
  73. package/build/cjs/external/lit/external/lit-html/directive.js +0 -14
  74. package/build/cjs/external/lit/external/lit-html/directive.js.map +0 -1
  75. package/build/cjs/external/lit/external/lit-html/lit-html.js +0 -14
  76. package/build/cjs/external/lit/external/lit-html/lit-html.js.map +0 -1
  77. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js +0 -70
  78. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +0 -1
  79. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +0 -12
  80. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js.map +0 -1
  81. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js +0 -115
  82. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js.map +0 -1
  83. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +0 -22
  84. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +0 -1
  85. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js +0 -38
  86. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js.map +0 -1
  87. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js +0 -12
  88. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js.map +0 -1
  89. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +0 -75
  90. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +0 -1
  91. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js +0 -13
  92. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js.map +0 -1
  93. package/build/cjs/packages/phoenix/src/components/icon/icon.js +0 -64
  94. package/build/cjs/packages/phoenix/src/components/icon/icon.js.map +0 -1
  95. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +0 -155
  96. package/build/cjs/packages/phoenix/src/components/messages/base_message.js.map +0 -1
  97. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js +0 -27
  98. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js.map +0 -1
  99. package/build/cjs/packages/phoenix/src/components/messages/base_message_content.js +0 -32
  100. package/build/cjs/packages/phoenix/src/components/messages/base_message_content.js.map +0 -1
  101. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js +0 -34
  102. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js.map +0 -1
  103. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_constants.js +0 -16
  104. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_constants.js.map +0 -1
  105. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_content.js +0 -19
  106. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_content.js.map +0 -1
  107. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js +0 -29
  108. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +0 -1
  109. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js +0 -14
  110. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js.map +0 -1
  111. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_content.js +0 -19
  112. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_content.js.map +0 -1
  113. package/build/cjs/packages/phoenix/src/components/tag/tag.js +0 -47
  114. package/build/cjs/packages/phoenix/src/components/tag/tag.js.map +0 -1
  115. package/build/cjs/packages/phoenix/src/components/tag/tag_constants.js +0 -20
  116. package/build/cjs/packages/phoenix/src/components/tag/tag_constants.js.map +0 -1
  117. package/build/cjs/packages/phoenix/src/components/tag/tag_remove_button.js +0 -29
  118. package/build/cjs/packages/phoenix/src/components/tag/tag_remove_button.js.map +0 -1
  119. package/build/cjs/packages/phoenix/src/directives/namespaced_attribure_directive.js +0 -22
  120. package/build/cjs/packages/phoenix/src/directives/namespaced_attribure_directive.js.map +0 -1
  121. package/build/esm/external/lit/external/lit-html/directive.js +0 -9
  122. package/build/esm/external/lit/external/lit-html/directive.js.map +0 -1
  123. package/build/esm/external/lit/external/lit-html/lit-html.js +0 -9
  124. package/build/esm/external/lit/external/lit-html/lit-html.js.map +0 -1
  125. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.d.ts +0 -14
  126. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js +0 -68
  127. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +0 -1
  128. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.d.ts +0 -4
  129. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +0 -7
  130. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.d.ts +0 -5
  131. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.js +0 -2
  132. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.js.map +0 -1
  133. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.d.ts +0 -21
  134. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js +0 -113
  135. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js.map +0 -1
  136. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.d.ts +0 -11
  137. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +0 -15
  138. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +0 -1
  139. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.d.ts +0 -3
  140. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.js +0 -2
  141. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.js.map +0 -1
  142. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.d.ts +0 -9
  143. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js +0 -36
  144. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js.map +0 -1
  145. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.d.ts +0 -4
  146. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js +0 -7
  147. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js.map +0 -1
  148. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.d.ts +0 -14
  149. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +0 -73
  150. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +0 -1
  151. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.d.ts +0 -5
  152. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js +0 -9
  153. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js.map +0 -1
  154. package/build/esm/packages/phoenix/src/components/icon/icon.d.ts +0 -14
  155. package/build/esm/packages/phoenix/src/components/icon/icon.js +0 -62
  156. package/build/esm/packages/phoenix/src/components/icon/icon.js.map +0 -1
  157. package/build/esm/packages/phoenix/src/components/messages/base_message.d.ts +0 -27
  158. package/build/esm/packages/phoenix/src/components/messages/base_message.js +0 -151
  159. package/build/esm/packages/phoenix/src/components/messages/base_message.js.map +0 -1
  160. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.d.ts +0 -9
  161. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js +0 -15
  162. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js.map +0 -1
  163. package/build/esm/packages/phoenix/src/components/messages/base_message_content.d.ts +0 -6
  164. package/build/esm/packages/phoenix/src/components/messages/base_message_content.js +0 -28
  165. package/build/esm/packages/phoenix/src/components/messages/base_message_content.js.map +0 -1
  166. package/build/esm/packages/phoenix/src/components/messages/base_message_types.d.ts +0 -4
  167. package/build/esm/packages/phoenix/src/components/messages/base_message_types.js +0 -2
  168. package/build/esm/packages/phoenix/src/components/messages/base_message_types.js.map +0 -1
  169. package/build/esm/packages/phoenix/src/components/messages/hints/hint.d.ts +0 -7
  170. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js +0 -32
  171. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js.map +0 -1
  172. package/build/esm/packages/phoenix/src/components/messages/hints/hint_constants.d.ts +0 -6
  173. package/build/esm/packages/phoenix/src/components/messages/hints/hint_constants.js +0 -8
  174. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.d.ts +0 -4
  175. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.js +0 -17
  176. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.js.map +0 -1
  177. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.d.ts +0 -6
  178. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js +0 -27
  179. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +0 -1
  180. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.d.ts +0 -4
  181. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js +0 -7
  182. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js.map +0 -1
  183. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.d.ts +0 -4
  184. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.js +0 -17
  185. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.js.map +0 -1
  186. package/build/esm/packages/phoenix/src/components/tag/tag.d.ts +0 -9
  187. package/build/esm/packages/phoenix/src/components/tag/tag.js +0 -45
  188. package/build/esm/packages/phoenix/src/components/tag/tag.js.map +0 -1
  189. package/build/esm/packages/phoenix/src/components/tag/tag_constants.d.ts +0 -10
  190. package/build/esm/packages/phoenix/src/components/tag/tag_constants.js +0 -14
  191. package/build/esm/packages/phoenix/src/components/tag/tag_constants.js.map +0 -1
  192. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.d.ts +0 -7
  193. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.js +0 -27
  194. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.js.map +0 -1
  195. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js +0 -4
  196. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js.map +0 -1
  197. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.d.ts +0 -8
  198. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.js +0 -18
  199. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.js.map +0 -1
@@ -11,7 +11,6 @@ var portal_constants = require('../portal/portal_constants.js');
11
11
  var litHtml = require('lit-html');
12
12
  var backdrop_controller = require('../backdrop/controller/backdrop_controller.js');
13
13
  var decorators_js = require('@lit/reactive-element/decorators.js');
14
- var keystrokes_controller = require('../../controllers/keystrokes_controller/keystrokes_controller.js');
15
14
  var global_constants = require('../../global_constants.js');
16
15
  var dropdown_constants = require('./dropdown_constants.js');
17
16
  var relative_position_controller_constants = require('../../controllers/relative_position_controller/relative_position_controller_constants.js');
@@ -22,7 +21,7 @@ var relative_position_controller = require('../../controllers/relative_position_
22
21
  var HDropdown_1;
23
22
  exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_element.PhoenixLightLitElement {
24
23
  constructor() {
25
- super();
24
+ super(...arguments);
26
25
  this.opened = false;
27
26
  this.direction = relative_position_controller_constants.DIRECTIONS.bottomCenter;
28
27
  this.toggleOnHover = false;
@@ -41,12 +40,7 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
41
40
  await this._hideDropdownsSequentially();
42
41
  };
43
42
  this.toggle = async () => {
44
- if (this.opened) {
45
- await this._hideDropdownsSequentially();
46
- return;
47
- }
48
- await this.show();
49
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
43
+ this.opened ? await this._hideDropdownsSequentially() : await this.show();
50
44
  };
51
45
  this.show = async () => {
52
46
  return new Promise((resolve) => {
@@ -61,12 +55,13 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
61
55
  }, 0);
62
56
  const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
63
57
  setTimeout(() => {
64
- var _a, _b;
58
+ var _a, _b, _c;
65
59
  this._dispatchShowDropdownEvent();
66
60
  (_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${dropdown_constants.DROPDOWN_CONTENT_SHOW}-${this.transition}-start`, `${dropdown_constants.DROPDOWN_CONTENT_SHOW}-${this.transition}-end`);
67
61
  this._toggleScroll();
68
62
  if (!this._lastFocusableElement)
69
63
  this._lastFocusableElement = (_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.lastElementChild;
64
+ this._focusOnNextSibling((_c = this.$dropdownContent) === null || _c === void 0 ? void 0 : _c.firstElementChild);
70
65
  resolve();
71
66
  }, transitionDuration);
72
67
  });
@@ -137,35 +132,20 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
137
132
  return;
138
133
  await this.hide();
139
134
  };
140
- this._handleForwardFocus = async (ev) => {
141
- const $focusableElementsWithinDropdownContent = utilities.UiDomUtils.getFocusableElements(this.$dropdownContent);
142
- const doesNotHaveFocusableElementsInsideContent = $focusableElementsWithinDropdownContent.length <= 0 && this.opened;
143
- const isActiveElementLastFocusableElement = document.activeElement === this._lastFocusableElement;
144
- if (doesNotHaveFocusableElementsInsideContent || isActiveElementLastFocusableElement)
145
- this._focusOnNextElementAfterToggler(ev);
146
- };
147
- this._focusOnNextElementAfterToggler = async (ev) => {
148
- ev.preventDefault();
149
- const $focusableElements = utilities.UiDomUtils.getFocusableElements(document.body);
150
- const indexOfDropdownToggler = $focusableElements.indexOf(this.$dropdownToggler);
151
- const $nextElementToFocus = $focusableElements.find((currentElement, index) => {
152
- if (index > indexOfDropdownToggler && !currentElement.closest(`${dropdown_constants.DROPDOWN_TOGGLER_NAME}[name="${this.name}"]`))
153
- return currentElement;
154
- return null;
155
- });
156
- if ($nextElementToFocus)
157
- $nextElementToFocus.focus();
158
- await this._hideDropdownsSequentially();
159
- await this.hide();
160
- };
161
- this._handleBackwardFocus = async (ev) => {
135
+ this._handleFocusWithinDropdown = async (ev) => {
162
136
  var _a;
137
+ const hasTabBeenPressed = ev.key.toLowerCase() === 'tab';
138
+ if (hasTabBeenPressed && document.activeElement === this._lastFocusableElement) {
139
+ ev.preventDefault();
140
+ this._focusOnNextSibling(this.nextElementSibling || this);
141
+ await this._hideDropdownsSequentially();
142
+ }
163
143
  const $firstFocusableElement = this.$dropdownContent && utilities.UiDomUtils.getFocusableElement(this.$dropdownContent);
164
- if (document.activeElement !== $firstFocusableElement)
165
- return;
166
- ev.preventDefault();
167
- (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
168
- await this._hideDropdownsSequentially();
144
+ if (hasTabBeenPressed && ev.shiftKey && document.activeElement === $firstFocusableElement) {
145
+ ev.preventDefault();
146
+ (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
147
+ await this._hideDropdownsSequentially();
148
+ }
169
149
  };
170
150
  this._hoverToggle = async (ev) => {
171
151
  if (window.innerWidth < global_constants.BREAKPOINTS.xs)
@@ -177,13 +157,11 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
177
157
  const isHoveredWithinDropdown = this._isHoveredWithinDropdown(ev.target);
178
158
  if (isHoveredWithinDropdown && !this.opened) {
179
159
  await this.show();
180
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
181
160
  return;
182
161
  }
183
162
  if (!isHoveredWithinDropdown && this.opened)
184
163
  await this._hideDropdownsSequentially();
185
164
  };
186
- this.isOpened = () => this.opened;
187
165
  this._positionDropdownContent = () => {
188
166
  requestAnimationFrame(() => {
189
167
  this.opened && window.innerWidth < global_constants.BREAKPOINTS.xs
@@ -191,20 +169,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
191
169
  : this._positionController.position();
192
170
  });
193
171
  };
194
- new keystrokes_controller.KeystrokesController({
195
- host: this,
196
- target: document.body,
197
- keys: ['tab'],
198
- callback: this._handleForwardFocus
199
- });
200
- new keystrokes_controller.KeystrokesController({
201
- host: this,
202
- target: document.body,
203
- keys: [['shift', 'tab']],
204
- callback: this._handleBackwardFocus
205
- });
206
172
  }
207
- async connectedCallback() {
173
+ connectedCallback() {
208
174
  var _a;
209
175
  super.connectedCallback();
210
176
  HDropdown_1._appendDropdownPortal();
@@ -234,8 +200,6 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
234
200
  name: this.name,
235
201
  action: this._handleClickOutside
236
202
  });
237
- if (this.opened)
238
- await this.show();
239
203
  this._setupListeners();
240
204
  this._setupInitialDropdownProperties();
241
205
  }
@@ -261,6 +225,7 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
261
225
  document.addEventListener(dropdown_constants.DROPDOWN_EVENTS.hide, this.hide);
262
226
  window.addEventListener('resize', this._observeScrollToggling);
263
227
  document.addEventListener('keydown', this._closeDropdownOnEscape);
228
+ document.addEventListener('keydown', this._handleFocusWithinDropdown);
264
229
  if (this.toggleOnHover)
265
230
  document.addEventListener('mouseover', this._hoverToggle);
266
231
  }
@@ -280,6 +245,17 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
280
245
  (_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(global_constants.SCROLLABLE_CLASS_NAME);
281
246
  }
282
247
  }
248
+ _focusOnNextSibling(el) {
249
+ el.focus();
250
+ if (el === document.activeElement)
251
+ return;
252
+ if (el.firstElementChild) {
253
+ this._focusOnNextSibling(el.firstElementChild);
254
+ return;
255
+ }
256
+ if (el.nextElementSibling)
257
+ this._focusOnNextSibling(el.nextElementSibling);
258
+ }
283
259
  _isHoveredWithinDropdown(element) {
284
260
  var _a;
285
261
  if (element === this)
@@ -311,6 +287,7 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
311
287
  window.removeEventListener('resize', this._observeScrollToggling);
312
288
  document.removeEventListener('keydown', this._closeDropdownOnEscape);
313
289
  document.removeEventListener(dropdown_constants.DROPDOWN_EVENTS.hide, this.hide);
290
+ document.removeEventListener('keydown', this._handleFocusWithinDropdown);
314
291
  if (this.toggleOnHover)
315
292
  document.removeEventListener('mouseover', this._hoverToggle);
316
293
  if (this.opened) {
@@ -334,7 +311,7 @@ tslib_es6.__decorate([
334
311
  ], exports.HDropdown.prototype, "opened", void 0);
335
312
  tslib_es6.__decorate([
336
313
  decorators_js.property({ type: String, reflect: true }),
337
- tslib_es6.__metadata("design:type", String)
314
+ tslib_es6.__metadata("design:type", Object)
338
315
  ], exports.HDropdown.prototype, "direction", void 0);
339
316
  tslib_es6.__decorate([
340
317
  decorators_js.property({ type: Boolean }),
@@ -357,7 +334,6 @@ tslib_es6.__decorate([
357
334
  tslib_es6.__metadata("design:type", Object)
358
335
  ], exports.HDropdown.prototype, "_lastFocusableElement", void 0);
359
336
  exports.HDropdown = HDropdown_1 = tslib_es6.__decorate([
360
- phoenix_custom_element.phoenixCustomElement('h-dropdown'),
361
- tslib_es6.__metadata("design:paramtypes", [])
337
+ phoenix_custom_element.phoenixCustomElement('h-dropdown')
362
338
  ], exports.HDropdown);
363
339
  //# sourceMappingURL=dropdown.js.map
@@ -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;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,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;"}
@@ -15,6 +15,7 @@ const DROPDOWN_EVENTS = {
15
15
  showed: `${DROPDOWN_EVENT_NAME}.showed`,
16
16
  hidden: `${DROPDOWN_EVENT_NAME}.hidden`
17
17
  };
18
+ const DROPDOWN_OPENED_ATTRIBUTE_NAME = 'opened';
18
19
  const DROPDOWN_CSS_CLASS = 'dropdown';
19
20
  const DROPDOWN_CONTENT_CSS_CLASS = `${DROPDOWN_CSS_CLASS}__content`;
20
21
  const DROPDOWN_TOGGLER_CSS_CLASS = `${DROPDOWN_CSS_CLASS}__toggler`;
@@ -32,6 +33,7 @@ exports.DROPDOWN_CONTENT_VISIBLE_CLASS = DROPDOWN_CONTENT_VISIBLE_CLASS;
32
33
  exports.DROPDOWN_CSS_CLASS = DROPDOWN_CSS_CLASS;
33
34
  exports.DROPDOWN_EVENTS = DROPDOWN_EVENTS;
34
35
  exports.DROPDOWN_NAME = DROPDOWN_NAME;
36
+ exports.DROPDOWN_OPENED_ATTRIBUTE_NAME = DROPDOWN_OPENED_ATTRIBUTE_NAME;
35
37
  exports.DROPDOWN_TOGGLER_CSS_CLASS = DROPDOWN_TOGGLER_CSS_CLASS;
36
38
  exports.DROPDOWN_TOGGLER_NAME = DROPDOWN_TOGGLER_NAME;
37
39
  //# sourceMappingURL=dropdown_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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6 @@ 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');
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');
10
9
  var btn_controller = require('../../controllers/btn_controller.js');
@@ -24,37 +23,19 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
24
23
  });
25
24
  this.dispatchEvent(toggleDropdownEvent);
26
25
  };
27
- this._handleFocusToOpenedDropdown = async (ev) => {
28
- if (ev.target !== this)
29
- return;
30
- const isOpened = this._$dropdown.isOpened();
31
- if (!isOpened)
32
- return;
33
- const $dropdownContent = document.querySelector(`${dropdown_constants.DROPDOWN_CONTENT_NAME}[name="${this.name}"]`);
34
- if (!$dropdownContent)
35
- return;
36
- ev.preventDefault();
37
- utilities.UiDomUtils.setFocusToFirstFocusableElementInContainer($dropdownContent);
38
- };
39
26
  this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
40
27
  this.className = `${dropdown_constants.DROPDOWN_TOGGLER_CSS_CLASS} ${this.className}`;
41
28
  }
42
29
  connectedCallback() {
43
- var _a;
44
30
  super.connectedCallback();
45
31
  this._btnController = new btn_controller.BtnController(this, this._dispatchToggleDropdownEvent);
46
- this._$dropdown = this.parentElement;
32
+ const dropdown = this.parentElement;
47
33
  this._toggleElementAriaController = new toggle_element_aria_controller.ToggleElementAriaController({
48
34
  host: this,
49
- initialAriaExpandedValue: this._$dropdown.isOpened()
35
+ initialAriaExpandedValue: !!(dropdown === null || dropdown === void 0 ? void 0 : dropdown.getAttribute(dropdown_constants.DROPDOWN_OPENED_ATTRIBUTE_NAME))
50
36
  });
51
- this.toggleOnHover = ((_a = this._$dropdown) === null || _a === void 0 ? void 0 : _a.getAttribute('toggleOnHover')) !== null;
37
+ this.toggleOnHover = (dropdown === null || dropdown === void 0 ? void 0 : dropdown.getAttribute('toggleOnHover')) !== null;
52
38
  this.addEventListener('click', this._dispatchToggleDropdownEvent);
53
- document.addEventListener('keydown', this._handleFocusToOpenedDropdown);
54
- }
55
- disconnectedCallback() {
56
- super.disconnectedCallback();
57
- document.removeEventListener('keydown', this._handleFocusToOpenedDropdown);
58
39
  }
59
40
  };
60
41
  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;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;"}
@@ -10,21 +10,26 @@ var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_el
10
10
  var input_constants = require('./input_constants.js');
11
11
  var icon_constants = require('../../icon/icon_constants.js');
12
12
 
13
- exports.HInputIcon = class HInputIcon extends phoenix_light_lit_element.PhoenixLightLitElement {
13
+ var HInputIcon_1;
14
+ exports.HInputIcon = HInputIcon_1 = class HInputIcon extends phoenix_light_lit_element.PhoenixLightLitElement {
14
15
  connectedCallback() {
15
16
  super.connectedCallback();
16
17
  this.classList.add(input_constants.INPUT_CONTROL_CSS_CLASSES.inputIcon, icon_constants.ICON_CSS_CLASSES.icon);
17
18
  }
18
19
  render() {
19
20
  super.render();
20
- return lit.html ` <h-icon icon-name=${this.iconName}></h-icon> `;
21
+ return lit.html `
22
+ <svg>
23
+ <use xlink:href="${HInputIcon_1.src}#${this.iconName}"></use>
24
+ </svg>
25
+ `;
21
26
  }
22
27
  };
23
28
  tslib_es6.__decorate([
24
- decorators.property({ type: String, attribute: 'icon-name' }),
29
+ decorators.property({ type: String }),
25
30
  tslib_es6.__metadata("design:type", String)
26
31
  ], exports.HInputIcon.prototype, "iconName", void 0);
27
- exports.HInputIcon = tslib_es6.__decorate([
32
+ exports.HInputIcon = HInputIcon_1 = tslib_es6.__decorate([
28
33
  phoenix_custom_element.phoenixCustomElement('h-input-icon')
29
34
  ], exports.HInputIcon);
30
35
  //# sourceMappingURL=input_icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -2,22 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const iconBaseClass = 'icon';
6
5
  const ICON_CSS_CLASSES = {
7
- icon: iconBaseClass,
8
- iconFilled: `${iconBaseClass}_filled`,
9
- iconNoStroke: `${iconBaseClass}_no-stroke`,
10
- iconSizeL: `${iconBaseClass}_l`,
11
- iconSizeXl: `${iconBaseClass}_xl`,
12
- iconSizeXxl: `${iconBaseClass}_xxl`,
13
- iconClickable: `${iconBaseClass}_clickable`
14
- };
15
- const ICON_SIZES_CSS_CLASS_MAP = {
16
- l: ICON_CSS_CLASSES.iconSizeL,
17
- xl: ICON_CSS_CLASSES.iconSizeXl,
18
- xxl: ICON_CSS_CLASSES.iconSizeXxl
6
+ icon: 'icon'
19
7
  };
20
8
 
21
9
  exports.ICON_CSS_CLASSES = ICON_CSS_CLASSES;
22
- exports.ICON_SIZES_CSS_CLASS_MAP = ICON_SIZES_CSS_CLASS_MAP;
23
10
  //# sourceMappingURL=icon_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;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;"}
@@ -7,11 +7,9 @@ const PORTAL_EVENTS = {
7
7
  close: 'portal.close'
8
8
  };
9
9
  const PORTAL_TARGET_NAME_PROP = 'name';
10
- const PORTAL_TARGET_COMPONENT_NAME = 'h-portal-target';
11
- const PORTAL_TARGET_ATTRIBUTE_NAME = 'portal-target';
10
+ const PORTAL_TARGET_COMPONENT_NAME = 'h-portal-target';
12
11
 
13
12
  exports.PORTAL_EVENTS = PORTAL_EVENTS;
14
- exports.PORTAL_TARGET_ATTRIBUTE_NAME = PORTAL_TARGET_ATTRIBUTE_NAME;
15
13
  exports.PORTAL_TARGET_COMPONENT_NAME = PORTAL_TARGET_COMPONENT_NAME;
16
14
  exports.PORTAL_TARGET_NAME_PROP = PORTAL_TARGET_NAME_PROP;
17
15
  //# sourceMappingURL=portal_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;"}
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;"}
@@ -15,7 +15,6 @@ var tabs_constants = require('./tabs_constants.js');
15
15
  exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitElement {
16
16
  constructor() {
17
17
  super(...arguments);
18
- this.watchChildrenRendered = true;
19
18
  this._handleArrowNavigation = ({ key }) => {
20
19
  const currentTabIndex = this._getFocusedTabIndex();
21
20
  if (currentTabIndex === undefined)
@@ -44,7 +43,7 @@ exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitEle
44
43
  this._$tabs = [...this.querySelectorAll('h-tab')];
45
44
  new keystrokes_controller.KeystrokesController({
46
45
  host: this,
47
- keys: ['ArrowRight', 'ArrowLeft'],
46
+ keySequences: [['ArrowRight'], ['ArrowLeft']],
48
47
  callback: this._handleArrowNavigation,
49
48
  target: this
50
49
  });
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -12,7 +12,7 @@ class BtnController {
12
12
  this.host.setAttribute('role', 'button');
13
13
  this._keystrokesController = new keystrokes_controller.KeystrokesController({
14
14
  host,
15
- keys: ['enter', ' '],
15
+ keySequences: [['enter'], [' ']],
16
16
  callback,
17
17
  target: host
18
18
  });
@@ -7,7 +7,7 @@ require('lit');
7
7
 
8
8
  var _KeystrokesController_host, _KeystrokesController_target;
9
9
  class KeystrokesController {
10
- constructor({ host, keys, callback, target }) {
10
+ constructor({ host, keySequences, callback, target }) {
11
11
  _KeystrokesController_host.set(this, void 0);
12
12
  _KeystrokesController_target.set(this, void 0);
13
13
  this._buffer = [];
@@ -21,51 +21,15 @@ class KeystrokesController {
21
21
  this._bindSavedKeysWithCallback(ev, this._buffer);
22
22
  };
23
23
  this._bindSavedKeysWithCallback = (ev, savedKeys) => {
24
- if (typeof this._keys === 'string') {
25
- this._bindWithOneKey(ev, savedKeys);
26
- return;
27
- }
28
- const areAllKeysPressed = this._isKeySequenceMultiple(this._keys)
29
- ? this._areAllKeysPressedInMultipleSequences(this._keys, savedKeys)
30
- : this._isOneOfTheKeysPressed(this._keys, savedKeys);
24
+ const areAllKeysPressed = !!this._keySequences.find((keySequence) => {
25
+ const keysPressedStatuses = keySequence.reduce((keysPressStatuses, keyInSequence) => {
26
+ return [...keysPressStatuses, savedKeys.includes(keyInSequence.toLowerCase())];
27
+ }, []);
28
+ return keysPressedStatuses.find((keyPressedStatus) => keyPressedStatus === false) === undefined;
29
+ });
31
30
  if (areAllKeysPressed)
32
31
  this._callback(ev);
33
32
  };
34
- this._bindWithOneKey = (ev, savedKeys) => {
35
- if (!savedKeys.includes(this._keys))
36
- return;
37
- this._callback(ev);
38
- };
39
- this._isKeySequenceMultiple = (keySequence) => {
40
- const firstSequence = keySequence[0];
41
- if (typeof firstSequence === 'object')
42
- return true;
43
- return false;
44
- };
45
- this._areAllKeysPressedInMultipleSequences = (keySequences, savedKeys) => {
46
- return !!keySequences.find((keySequence) => {
47
- return this._areAllKeysPressedInSingleSequence(keySequence, savedKeys);
48
- });
49
- };
50
- this._areAllKeysPressedInSingleSequence = (keySequence, savedKeys) => {
51
- const indexesInSavedKeys = this._calculateIndexesInSavedKeys(keySequence, savedKeys);
52
- if (indexesInSavedKeys.includes(-1))
53
- return false;
54
- const firstPressedKeyIndex = indexesInSavedKeys[0];
55
- const lastPressedKeyIndex = indexesInSavedKeys[indexesInSavedKeys.length - 1];
56
- const areKeysPressedSequentially = lastPressedKeyIndex - firstPressedKeyIndex === indexesInSavedKeys.length - 1;
57
- return areKeysPressedSequentially;
58
- };
59
- this._isOneOfTheKeysPressed = (keys, savedKeys) => {
60
- const indexesInSavedKeys = this._calculateIndexesInSavedKeys(keys, savedKeys);
61
- return typeof indexesInSavedKeys.find((index) => index > -1) === 'number';
62
- };
63
- this._calculateIndexesInSavedKeys = (keySequence, savedKeys) => {
64
- return keySequence.reduce((allIndexes, currentKeyInSequence) => {
65
- return [...allIndexes, savedKeys.indexOf(currentKeyInSequence.toLowerCase())];
66
- }, []);
67
- };
68
- // do ogrania jeszcze string czyli zapięcie się na jeden guzik
69
33
  this._removeKey = (ev) => {
70
34
  const key = ev.key.toLowerCase();
71
35
  if (this._buffer.includes(key))
@@ -73,7 +37,7 @@ class KeystrokesController {
73
37
  };
74
38
  tslib_es6.__classPrivateFieldSet(this, _KeystrokesController_host, host, "f");
75
39
  tslib_es6.__classPrivateFieldSet(this, _KeystrokesController_target, target, "f");
76
- this._keys = keys;
40
+ this._keySequences = keySequences;
77
41
  this._callback = callback;
78
42
  tslib_es6.__classPrivateFieldGet(this, _KeystrokesController_host, "f").addController(this);
79
43
  tslib_es6.__classPrivateFieldGet(this, _KeystrokesController_target, "f").addEventListener('keydown', this._saveKey);
@@ -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;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;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const KEYSTROKE_DELAY_IN_MS = 500;
6
+
7
+ exports.KEYSTROKE_DELAY_IN_MS = KEYSTROKE_DELAY_IN_MS;
8
+ //# sourceMappingURL=keystrokes_controller_constants.js.map
@@ -11,7 +11,7 @@ var throttle = require('../../../../../external/lodash/throttle.js');
11
11
 
12
12
  var _RelativePositionController_host, _RelativePositionController_container, _RelativePositionController_nearestNonStaticElementFromElementToPosition, _RelativePositionController_direction, _RelativePositionController_nearestScrollableElement, _RelativePositionController_relativeElement, _RelativePositionController_elementToPosition, _RelativePositionController_disablePositioningOnCondition, _RelativePositionController_portalElementsNames, _RelativePositionController_isInitiallyScrollable, _RelativePositionController_initialMaxHeight, _RelativePositionController_initialHeight, _RelativePositionController_calculatedDirection, _RelativePositionController_hasPositioningBeenDisabled, _RelativePositionController_doesCurrentlyHaveShrinkMode, _RelativePositionController_offset, _RelativePositionController_throttledReposition, _RelativePositionController_throttledRepositionForScroll;
13
13
  class RelativePositionController {
14
- constructor({ host, container, direction, relativeElement, elementToPosition, disablePositioningOnCondition = () => false, portalElementsNames = [], offset = 0 }) {
14
+ constructor({ host, container, direction, relativeElement, elementToPosition, disablePositioningOnCondition = () => true, portalElementsNames = [], offset = 0 }) {
15
15
  _RelativePositionController_host.set(this, void 0);
16
16
  _RelativePositionController_container.set(this, void 0);
17
17
  _RelativePositionController_nearestNonStaticElementFromElementToPosition.set(this, void 0);
@@ -2,15 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const VERTICAL_DIRECTIONS = {
5
+ const DIRECTIONS = {
6
6
  bottomLeft: 'bottom-left',
7
7
  bottomRight: 'bottom-right',
8
8
  bottomCenter: 'bottom-center',
9
9
  topLeft: 'top-left',
10
10
  topRight: 'top-right',
11
- topCenter: 'top-center'
12
- };
13
- const HORIZONTAL_DIRECTIONS = {
11
+ topCenter: 'top-center',
14
12
  rightTop: 'right-top',
15
13
  rightCenter: 'right-center',
16
14
  rightBottom: 'right-bottom',
@@ -18,21 +16,6 @@ const HORIZONTAL_DIRECTIONS = {
18
16
  leftCenter: 'left-center',
19
17
  leftBottom: 'left-bottom'
20
18
  };
21
- const CENTER_DIRECTIONS = {
22
- centerTop: 'center-top',
23
- centerRight: 'center-right',
24
- centerBottom: 'center-bottom',
25
- centerLeft: 'center-left',
26
- top: 'top',
27
- right: 'right',
28
- bottom: 'bottom',
29
- left: 'left'
30
- };
31
- const DIRECTIONS = {
32
- ...HORIZONTAL_DIRECTIONS,
33
- ...VERTICAL_DIRECTIONS,
34
- ...CENTER_DIRECTIONS
35
- };
36
19
  const CALCULATOR_DIRECTIONS = {
37
20
  bottom: 'bottom',
38
21
  top: 'top',
@@ -54,16 +37,13 @@ const RELATIVE_POSITION_CONTROLLER_EVENTS = {
54
37
  };
55
38
 
56
39
  exports.CALCULATOR_DIRECTIONS = CALCULATOR_DIRECTIONS;
57
- exports.CENTER_DIRECTIONS = CENTER_DIRECTIONS;
58
40
  exports.DEFAULT_SCROLL_THROTTLE_WAIT_TIME = DEFAULT_SCROLL_THROTTLE_WAIT_TIME;
59
41
  exports.DEFAULT_THROTTLE_WAIT_TIME = DEFAULT_THROTTLE_WAIT_TIME;
60
42
  exports.DIRECTIONS = DIRECTIONS;
61
- exports.HORIZONTAL_DIRECTIONS = HORIZONTAL_DIRECTIONS;
62
43
  exports.NON_STATIC_POSITIONS = NON_STATIC_POSITIONS;
63
44
  exports.OVERFLOW_AUTO = OVERFLOW_AUTO;
64
45
  exports.OVERFLOW_SCROLL = OVERFLOW_SCROLL;
65
46
  exports.RELATIVE_POSITION_CONTROLLER_EVENTS = RELATIVE_POSITION_CONTROLLER_EVENTS;
66
47
  exports.SHRINK_MODE_BOTTOM_MARGIN = SHRINK_MODE_BOTTOM_MARGIN;
67
48
  exports.SHRINK_MODE_MIN_HEIGHT = SHRINK_MODE_MIN_HEIGHT;
68
- exports.VERTICAL_DIRECTIONS = VERTICAL_DIRECTIONS;
69
49
  //# sourceMappingURL=relative_position_controller_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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -12,8 +12,6 @@ class PhoenixLightLitElement extends lit.LitElement {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this._slots = {};
15
- this.watchChildrenRendered = false;
16
- this.watchChildrenConnected = false;
17
15
  this.isWebComponentConnected = false;
18
16
  this.isWebComponentRendered = false;
19
17
  this._childrenForConnectionToWatch = [];
@@ -56,16 +54,14 @@ class PhoenixLightLitElement extends lit.LitElement {
56
54
  this._dispatchLifecycleEvent(phoenix_light_lit_elements_constants.PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.rendered);
57
55
  this.isWebComponentRendered = true;
58
56
  }
59
- _setupChildrenConnectedWatch() {
57
+ _setupChildrenWatch() {
60
58
  this._childrenForConnectionToWatch = this.childrenToWatch ? this.childrenToWatch : this._getComponentsNamesForConnectionToWatch();
59
+ this._childrenForRenderToWatch = this.childrenToWatch ? this.childrenToWatch : this._getComponentsNamesForRenderedToWatch();
61
60
  if (!this._childrenForConnectionToWatch.length)
62
61
  this.allChildrenConnected();
63
- this.addEventListener(phoenix_light_lit_elements_constants.PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.connected, this._handleComponentConnected);
64
- }
65
- _setupChildrenRenderWatch() {
66
- this._childrenForRenderToWatch = this.childrenToWatch ? this.childrenToWatch : this._getComponentsNamesForRenderedToWatch();
67
62
  if (!this._childrenForRenderToWatch.length)
68
63
  this.allChildrenRendered();
64
+ this.addEventListener(phoenix_light_lit_elements_constants.PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.connected, this._handleComponentConnected);
69
65
  this.addEventListener(phoenix_light_lit_elements_constants.PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.rendered, this._handleComponentRendered);
70
66
  }
71
67
  _getComponentsNamesForConnectionToWatch() {
@@ -78,10 +74,7 @@ class PhoenixLightLitElement extends lit.LitElement {
78
74
  super.connectedCallback();
79
75
  this._dispatchLifecycleEvent(phoenix_light_lit_elements_constants.PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.connected);
80
76
  this.isWebComponentConnected = true;
81
- if (this.watchChildrenConnected)
82
- this._setupChildrenConnectedWatch();
83
- if (this.watchChildrenRendered)
84
- this._setupChildrenRenderWatch();
77
+ this._setupChildrenWatch();
85
78
  }
86
79
  allChildrenConnected() { }
87
80
  allChildrenRendered() { }
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}