@shoper/phoenix_design_system 0.22.2 → 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 (74) hide show
  1. package/build/cjs/{external → packages/phoenix/external}/classnames/index.js +16 -10
  2. package/build/{esm → cjs/packages/phoenix}/external/classnames/index.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +31 -21
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js +1 -4
  6. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  8. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  10. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  12. package/build/cjs/packages/phoenix/src/components/form/input/input.js +1 -1
  13. package/build/cjs/packages/phoenix/src/components/form/input/input.js.map +1 -1
  14. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js +1 -1
  15. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  16. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  18. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  19. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  20. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +1 -1
  21. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
  22. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
  24. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  25. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +14 -45
  26. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  27. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +0 -6
  28. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js.map +1 -1
  29. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants.js +1 -3
  30. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants.js.map +1 -1
  31. package/build/esm/{external → packages/phoenix/external}/classnames/index.js +16 -10
  32. package/build/{cjs → esm/packages/phoenix}/external/classnames/index.js.map +1 -1
  33. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +5 -0
  34. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +31 -21
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js +1 -4
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  40. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  41. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js +1 -1
  42. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  43. package/build/esm/packages/phoenix/src/components/form/input/input.js +1 -1
  44. package/build/esm/packages/phoenix/src/components/form/input/input.js.map +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/radio/radio.js +1 -1
  46. package/build/esm/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  47. package/build/esm/packages/phoenix/src/components/form/switch/switch.js +1 -1
  48. package/build/esm/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  49. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  50. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  51. package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +1 -1
  52. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +1 -1
  53. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.d.ts +15 -2
  54. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
  55. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
  56. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.d.ts +45 -0
  57. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js +4 -0
  58. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js.map +1 -0
  59. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.d.ts +3 -3
  60. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
  61. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  62. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.d.ts +4 -11
  63. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js +2 -1
  64. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js.map +1 -1
  65. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.d.ts +1 -8
  66. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +14 -45
  67. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  68. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.d.ts +0 -1
  69. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +0 -6
  70. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js.map +1 -1
  71. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants.d.ts +1 -2
  72. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants.js +1 -3
  73. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants.js.map +1 -1
  74. package/package.json +2 -2
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _commonjsHelpers = require('../../_virtual/_commonjsHelpers.js');
5
+ var _commonjsHelpers = require('../../../../_virtual/_commonjsHelpers.js');
6
6
 
7
7
  /*!
8
- Copyright (c) 2017 Jed Watson.
8
+ Copyright (c) 2018 Jed Watson.
9
9
  Licensed under the MIT License (MIT), see
10
10
  http://jedwatson.github.io/classnames
11
11
  */
@@ -17,7 +17,7 @@ var classnames = _commonjsHelpers.createCommonjsModule(function (module) {
17
17
 
18
18
  var hasOwn = {}.hasOwnProperty;
19
19
 
20
- function classNames () {
20
+ function classNames() {
21
21
  var classes = [];
22
22
 
23
23
  for (var i = 0; i < arguments.length; i++) {
@@ -28,16 +28,22 @@ var classnames = _commonjsHelpers.createCommonjsModule(function (module) {
28
28
 
29
29
  if (argType === 'string' || argType === 'number') {
30
30
  classes.push(arg);
31
- } else if (Array.isArray(arg) && arg.length) {
32
- var inner = classNames.apply(null, arg);
33
- if (inner) {
34
- classes.push(inner);
31
+ } else if (Array.isArray(arg)) {
32
+ if (arg.length) {
33
+ var inner = classNames.apply(null, arg);
34
+ if (inner) {
35
+ classes.push(inner);
36
+ }
35
37
  }
36
38
  } else if (argType === 'object') {
37
- for (var key in arg) {
38
- if (hasOwn.call(arg, key) && arg[key]) {
39
- classes.push(key);
39
+ if (arg.toString === Object.prototype.toString) {
40
+ for (var key in arg) {
41
+ if (hasOwn.call(arg, key) && arg[key]) {
42
+ classes.push(key);
43
+ }
40
44
  }
45
+ } else {
46
+ classes.push(arg.toString());
41
47
  }
42
48
  }
43
49
  }
@@ -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;"}
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;"}
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
+ require('lit');
6
7
  var decorators = require('lit/decorators');
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 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 ref_js = require('lit-html/directives/ref.js');
14
15
  var global_constants = require('../../global_constants.js');
15
16
  var dropdown_constants = require('./dropdown_constants.js');
16
17
  var relative_position_controller_constants = require('../../controllers/relative_position_controller/relative_position_controller_constants.js');
@@ -29,7 +30,10 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
29
30
  this.transition = 'direction';
30
31
  this.portalTarget = dropdown_constants.DEFAULT_DROPDOWN_PORTAL_NAME;
31
32
  this._backdropController = new backdrop_controller.BackdropController();
33
+ this._firstFocusableElement = undefined;
32
34
  this._lastFocusableElement = undefined;
35
+ this._focusSentinelStart = ref_js.createRef();
36
+ this._focusSentinelEnd = ref_js.createRef();
33
37
  this._handleClickOutside = async (target) => {
34
38
  var _a, _b;
35
39
  if (!this.opened)
@@ -55,13 +59,11 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
55
59
  }, 0);
56
60
  const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
57
61
  setTimeout(() => {
58
- var _a, _b, _c;
62
+ var _a, _b;
59
63
  this._dispatchShowDropdownEvent();
60
64
  (_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`);
61
65
  this._toggleScroll();
62
- if (!this._lastFocusableElement)
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);
66
+ (_b = this._firstFocusableElement) === null || _b === void 0 ? void 0 : _b.focus();
65
67
  resolve();
66
68
  }, transitionDuration);
67
69
  });
@@ -135,16 +137,18 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
135
137
  this._handleFocusWithinDropdown = async (ev) => {
136
138
  var _a;
137
139
  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
- }
143
- const $firstFocusableElement = this.$dropdownContent && utilities.UiDomUtils.getFocusableElement(this.$dropdownContent);
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();
140
+ if (hasTabBeenPressed) {
141
+ if (ev.shiftKey) {
142
+ if (document.activeElement === this._firstFocusableElement) {
143
+ (_a = this._lastFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
144
+ ev.preventDefault();
145
+ }
146
+ }
147
+ else if (document.activeElement === this._lastFocusableElement) {
148
+ ev.preventDefault();
149
+ await this._rootDropdown._hideDropdownsSequentially();
150
+ this._focusOnNextSibling(this._rootDropdown);
151
+ }
148
152
  }
149
153
  };
150
154
  this._hoverToggle = async (ev) => {
@@ -203,6 +207,11 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
203
207
  this._setupListeners();
204
208
  this._setupInitialDropdownProperties();
205
209
  }
210
+ firstUpdated(props) {
211
+ super.firstUpdated(props);
212
+ this._firstFocusableElement = this._focusSentinelStart.value;
213
+ this._lastFocusableElement = this._focusSentinelEnd.value;
214
+ }
206
215
  static _appendDropdownPortal() {
207
216
  const $dropdownPortalTarget = document.querySelector(`[name="${dropdown_constants.DEFAULT_DROPDOWN_PORTAL_NAME}"]`);
208
217
  if (!$dropdownPortalTarget) {
@@ -249,12 +258,7 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
249
258
  el.focus();
250
259
  if (el === document.activeElement)
251
260
  return;
252
- if (el.firstElementChild) {
253
- this._focusOnNextSibling(el.firstElementChild);
254
- return;
255
- }
256
- if (el.nextElementSibling)
257
- this._focusOnNextSibling(el.nextElementSibling);
261
+ this._focusOnNextSibling(el.nextElementSibling);
258
262
  }
259
263
  _isHoveredWithinDropdown(element) {
260
264
  var _a;
@@ -300,7 +304,9 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
300
304
  return litHtml.html `
301
305
  ${this.getSlot('toggler')}
302
306
  <h-portal ?disabled="${!this.opened}" @portal.open="${this._positionDropdownContent}" to="${this.portalTarget}" hidden>
307
+ <div tabindex="0" ${ref_js.ref(this._focusSentinelStart)}></div>
303
308
  ${this.getSlot('content')}
309
+ <div tabindex="0" ${ref_js.ref(this._focusSentinelEnd)}></div>
304
310
  </h-portal>
305
311
  `;
306
312
  }
@@ -329,6 +335,10 @@ tslib_es6.__decorate([
329
335
  decorators_js.property({ type: String }),
330
336
  tslib_es6.__metadata("design:type", Object)
331
337
  ], exports.HDropdown.prototype, "portalTarget", void 0);
338
+ tslib_es6.__decorate([
339
+ decorators.state(),
340
+ tslib_es6.__metadata("design:type", Object)
341
+ ], exports.HDropdown.prototype, "_firstFocusableElement", void 0);
332
342
  tslib_es6.__decorate([
333
343
  decorators.state(),
334
344
  tslib_es6.__metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,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;"}
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;"}
@@ -22,10 +22,7 @@ exports.HDropdownContent = class HDropdownContent extends phoenix_light_lit_elem
22
22
  }
23
23
  render() {
24
24
  super.render();
25
- return lit.html `
26
- <div role="dialog">${this.getSlot('content')}</div>
27
- <div tabindex="0" aria-hidden="true"></div>
28
- `;
25
+ return lit.html ` <div role="dialog">${this.getSlot('content')}</div> `;
29
26
  }
30
27
  };
31
28
  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;"}
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;"}
@@ -18,7 +18,7 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
18
18
  this._dispatchToggleDropdownEvent = (ev) => {
19
19
  ev.preventDefault();
20
20
  ev.stopImmediatePropagation();
21
- const toggleDropdownEvent = new CustomEvent(dropdown_constants.DROPDOWN_EVENTS.toggle, {
21
+ const toggleDropdownEvent = new Event(dropdown_constants.DROPDOWN_EVENTS.toggle, {
22
22
  bubbles: true
23
23
  });
24
24
  this.dispatchEvent(toggleDropdownEvent);
@@ -8,7 +8,7 @@ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element
8
8
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
9
9
  var control_props_sync_controller_constants = require('../controllers/props_synchronizing/control_props_sync_controller_constants.js');
10
10
  var control_props_sync_provider_controller = require('../controllers/props_synchronizing/control_props_sync_provider_controller.js');
11
- var index = require('../../../../../../external/classnames/index.js');
11
+ var index = require('../../../../external/classnames/index.js');
12
12
  var checkbox_constants = require('./checkbox_constants.js');
13
13
 
14
14
  exports.HCheckbox = class HCheckbox extends phoenix_light_lit_element.PhoenixLightLitElement {
@@ -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,oBAAoB,gDAAoD;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,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,7 +8,7 @@ var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_el
8
8
  var litHtml = require('lit-html');
9
9
  var decorators_js = require('@lit/reactive-element/decorators.js');
10
10
  var ref_js = require('lit-html/directives/ref.js');
11
- var index = require('../../../../../../external/classnames/index.js');
11
+ var index = require('../../../../external/classnames/index.js');
12
12
  var control_props_sync_consumer_controller = require('../controllers/props_synchronizing/control_props_sync_consumer_controller.js');
13
13
  var ifDefined_js = require('lit-html/directives/if-defined.js');
14
14
  var checkbox_constants = require('./checkbox_constants.js');
@@ -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,oBAAoB,gDAAoD;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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -9,7 +9,7 @@ var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_el
9
9
  var input_constants = require('./input_constants.js');
10
10
  var control_props_sync_controller_constants = require('../controllers/props_synchronizing/control_props_sync_controller_constants.js');
11
11
  var control_props_sync_provider_controller = require('../controllers/props_synchronizing/control_props_sync_provider_controller.js');
12
- var index = require('../../../../../../external/classnames/index.js');
12
+ var index = require('../../../../external/classnames/index.js');
13
13
 
14
14
  exports.HInput = class HInput extends phoenix_light_lit_element.PhoenixLightLitElement {
15
15
  constructor() {
@@ -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,oBAAoB,gDAAoD;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;"}
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,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,7 +8,7 @@ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element
8
8
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
9
9
  var control_props_sync_controller_constants = require('../controllers/props_synchronizing/control_props_sync_controller_constants.js');
10
10
  var control_props_sync_provider_controller = require('../controllers/props_synchronizing/control_props_sync_provider_controller.js');
11
- var index = require('../../../../../../external/classnames/index.js');
11
+ var index = require('../../../../external/classnames/index.js');
12
12
  var checkbox_constants = require('../checkbox/checkbox_constants.js');
13
13
  var radio_constants = require('./radio_constants.js');
14
14
 
@@ -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,oBAAoB,gDAAoD;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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,7 +8,7 @@ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element
8
8
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
9
9
  var control_props_sync_controller_constants = require('../controllers/props_synchronizing/control_props_sync_controller_constants.js');
10
10
  var control_props_sync_provider_controller = require('../controllers/props_synchronizing/control_props_sync_provider_controller.js');
11
- var index = require('../../../../../../external/classnames/index.js');
11
+ var index = require('../../../../external/classnames/index.js');
12
12
  var checkbox_constants = require('../checkbox/checkbox_constants.js');
13
13
  var switch_constants = require('./switch_constants.js');
14
14
 
@@ -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,oBAAoB,gDAAoD;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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -8,7 +8,7 @@ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element
8
8
  var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
9
9
  var control_props_sync_controller_constants = require('../controllers/props_synchronizing/control_props_sync_controller_constants.js');
10
10
  var control_props_sync_provider_controller = require('../controllers/props_synchronizing/control_props_sync_provider_controller.js');
11
- var index = require('../../../../../../external/classnames/index.js');
11
+ var index = require('../../../../external/classnames/index.js');
12
12
  var textarea_constants = require('./textarea_constants.js');
13
13
 
14
14
  exports.HTextarea = class HTextarea extends phoenix_light_lit_element.PhoenixLightLitElement {
@@ -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,oBAAoB,gDAAoD;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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA8C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -66,7 +66,7 @@ exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitEle
66
66
  _setupEvents() {
67
67
  this.addEventListener(tab_constants.TAB_EVENT_NAMES.selected, this._handleTabSelected);
68
68
  }
69
- allChildrenRendered() {
69
+ allChildrenConnected() {
70
70
  const $selectedTab = this.querySelector('h-tab[selected]');
71
71
  this._hideNotSelectedAndVisiblePanels();
72
72
  if (!$selectedTab)
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
6
  var relative_position_controller_constants = require('./relative_position_controller_constants.js');
7
7
 
8
- var _PositionCalculator_direction, _PositionCalculator_relativeElementRect, _PositionCalculator_positionElementRect, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, _PositionCalculator_containerRect, _PositionCalculator_documentHeight, _PositionCalculator_shouldNotReposition;
8
+ var _PositionCalculator_direction, _PositionCalculator_relativeElementRect, _PositionCalculator_positionElementRect, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, _PositionCalculator_containerRect, _PositionCalculator_documentHeight, _PositionCalculator_shouldNotReposition, _PositionCalculator_offset;
9
9
  class PositionCalculator {
10
- constructor({ direction, relativeElementRect, positionElementRect, container = document.body, nearestNonStaticElementFromElementToPositionRect, shouldNotReposition }) {
10
+ constructor({ direction, relativeElementRect, positionElementRect, container = document.body, nearestNonStaticElementFromElementToPositionRect, offset = 0, shouldNotReposition }) {
11
11
  _PositionCalculator_direction.set(this, void 0);
12
12
  _PositionCalculator_relativeElementRect.set(this, void 0);
13
13
  _PositionCalculator_positionElementRect.set(this, void 0);
@@ -15,20 +15,22 @@ class PositionCalculator {
15
15
  _PositionCalculator_containerRect.set(this, void 0);
16
16
  _PositionCalculator_documentHeight.set(this, void 0);
17
17
  _PositionCalculator_shouldNotReposition.set(this, void 0);
18
+ _PositionCalculator_offset.set(this, void 0);
18
19
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_direction, direction, "f");
19
20
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_relativeElementRect, relativeElementRect, "f");
20
21
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_positionElementRect, positionElementRect, "f");
21
22
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, nearestNonStaticElementFromElementToPositionRect, "f");
22
23
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_containerRect, container.getBoundingClientRect(), "f");
23
24
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_shouldNotReposition, !!shouldNotReposition, "f");
25
+ tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_offset, offset, "f");
24
26
  const body = document.body;
25
27
  const documentElement = document.documentElement;
26
28
  tslib_es6.__classPrivateFieldSet(this, _PositionCalculator_documentHeight, Math.max(body.scrollHeight, body.offsetHeight, documentElement.clientHeight, documentElement.scrollHeight, documentElement.offsetHeight), "f");
27
29
  }
28
30
  calculatePosition() {
29
31
  const [side, alignment = relative_position_controller_constants.CALCULATOR_DIRECTIONS.center] = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_direction, "f").split('-');
30
- const sidePosition = this._calculateSidePosition(side);
31
- const alignmentPosition = this.calculateAlignmentPosition(alignment);
32
+ const sidePosition = this._calculateSidePosition(side, alignment);
33
+ const alignmentPosition = this.calculateAlignmentPosition(alignment, side);
32
34
  return {
33
35
  ...sidePosition,
34
36
  ...alignmentPosition,
@@ -46,66 +48,188 @@ class PositionCalculator {
46
48
  _canFitCenter(centerPosition) {
47
49
  return centerPosition + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height - window.scrollY < window.innerHeight && centerPosition - window.scrollY > 0;
48
50
  }
49
- _calculateSidePosition(side) {
50
- const topSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").top - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
51
- const bottomSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").bottom - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top;
52
- const centerOfRelativeElement = (topSideOfRelativeElement + bottomSideOfRelativeElement) / 2;
51
+ _canFitLeftSide() {
52
+ const positionElementLeftSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").left - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width;
53
+ return positionElementLeftSide >= tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_containerRect, "f").left;
54
+ }
55
+ _canFitRightSide() {
56
+ const positionElementRightSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").right - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left;
57
+ return positionElementRightSide + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width <= tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_containerRect, "f").width;
58
+ }
59
+ _calculateSidePosition(side, alignment) {
60
+ const topSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").top -
61
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top -
62
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height -
63
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
64
+ const bottomSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").bottom - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
65
+ const leftSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").left -
66
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left -
67
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width -
68
+ tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
69
+ const rightSideOfRelativeElement = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").right - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
70
+ const verticalCenterOfRelativeElement = (topSideOfRelativeElement + bottomSideOfRelativeElement) / 2;
71
+ const horizontalCenterOfRelativeElement = (leftSideOfRelativeElement + rightSideOfRelativeElement) / 2;
53
72
  switch (side) {
54
73
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.top:
55
- if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
56
- return { top: topSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
57
- if (!this._canFitTopSide() && !this._canFitBottomSide() && !this._canFitCenter(centerOfRelativeElement))
58
- return { top: bottomSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom, shrinkMode: true };
59
- if (!this._canFitTopSide() && !this._canFitBottomSide())
60
- return { top: centerOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
61
- if (!this._canFitTopSide())
62
- return { top: bottomSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
63
- return { top: topSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
74
+ return this._calculateTopSide({
75
+ topSide: topSideOfRelativeElement,
76
+ bottomSide: bottomSideOfRelativeElement,
77
+ verticalCenter: verticalCenterOfRelativeElement
78
+ });
64
79
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom:
65
- if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
66
- return { top: bottomSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
67
- if (!this._canFitTopSide() && !this._canFitBottomSide() && !this._canFitCenter(centerOfRelativeElement))
68
- return { top: bottomSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom, shrinkMode: true };
69
- if (!this._canFitTopSide() && !this._canFitBottomSide())
70
- return { top: centerOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
71
- if (!this._canFitBottomSide())
72
- return { top: topSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
73
- return { top: bottomSideOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
80
+ return this._calculateBottomSide({
81
+ topSide: topSideOfRelativeElement,
82
+ bottomSide: bottomSideOfRelativeElement,
83
+ verticalCenter: verticalCenterOfRelativeElement
84
+ });
74
85
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.center:
75
- return { top: centerOfRelativeElement, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
86
+ return this._calculateCenterSide({
87
+ verticalCenter: verticalCenterOfRelativeElement,
88
+ horizontalCenter: horizontalCenterOfRelativeElement,
89
+ alignment
90
+ });
76
91
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.left:
77
- // do zaimplementowania
78
- return { top: 0 };
92
+ return this._calculateLeftSide({
93
+ leftSide: leftSideOfRelativeElement,
94
+ rightSide: rightSideOfRelativeElement
95
+ });
79
96
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.right:
80
- // do zaimplementowania
81
- return { top: 0 };
97
+ return this._calculateRightSide({
98
+ leftSide: leftSideOfRelativeElement,
99
+ rightSide: rightSideOfRelativeElement
100
+ });
82
101
  default:
83
102
  return { top: 0 };
84
103
  }
85
104
  }
86
- calculateAlignmentPosition(side) {
105
+ _calculateTopSide({ topSide, bottomSide, verticalCenter }) {
106
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
107
+ return { top: topSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
108
+ if (!this._canFitTopSide() && !this._canFitBottomSide() && !this._canFitCenter(verticalCenter))
109
+ return { top: bottomSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom, shrinkMode: true };
110
+ if (!this._canFitTopSide() && !this._canFitBottomSide())
111
+ return { top: verticalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
112
+ if (!this._canFitTopSide())
113
+ return { top: bottomSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
114
+ return { top: topSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
115
+ }
116
+ _calculateBottomSide({ topSide, bottomSide, verticalCenter }) {
117
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
118
+ return { top: bottomSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
119
+ if (!this._canFitTopSide() && !this._canFitBottomSide() && !this._canFitCenter(verticalCenter))
120
+ return { top: bottomSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom, shrinkMode: true };
121
+ if (!this._canFitTopSide() && !this._canFitBottomSide())
122
+ return { top: verticalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
123
+ if (!this._canFitBottomSide())
124
+ return { top: topSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top };
125
+ return { top: bottomSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
126
+ }
127
+ _calculateCenterSide({ verticalCenter, horizontalCenter, alignment }) {
128
+ if (alignment === relative_position_controller_constants.CALCULATOR_DIRECTIONS.left || alignment === relative_position_controller_constants.CALCULATOR_DIRECTIONS.right)
129
+ return { top: verticalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
130
+ return { left: horizontalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
131
+ }
132
+ _calculateLeftSide({ leftSide, rightSide }) {
133
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
134
+ return { left: leftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
135
+ if (!this._canFitLeftSide() && !this._canFitRightSide())
136
+ return { left: leftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
137
+ if (!this._canFitLeftSide())
138
+ return { left: rightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
139
+ return { left: leftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
140
+ }
141
+ _calculateRightSide({ leftSide, rightSide }) {
142
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
143
+ return { left: rightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
144
+ if (!this._canFitRightSide() && !this._canFitLeftSide())
145
+ return { left: rightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
146
+ if (!this._canFitRightSide())
147
+ return { left: leftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
148
+ return { left: rightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
149
+ }
150
+ calculateAlignmentPosition(alignment, side) {
87
151
  const alignmentToLeftSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").left - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left;
88
152
  const alignmentToRightSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").right - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").left - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width;
89
- const alignmentToCenter = (alignmentToLeftSide + alignmentToRightSide) / 2;
90
- switch (side) {
91
- case relative_position_controller_constants.CALCULATOR_DIRECTIONS.top:
92
- // do zaimplementowania
93
- return { left: 0 };
94
- case relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom:
95
- // do zaimplementowania
96
- return { left: 0 };
97
- case relative_position_controller_constants.CALCULATOR_DIRECTIONS.left:
98
- return { left: alignmentToLeftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
99
- case relative_position_controller_constants.CALCULATOR_DIRECTIONS.right:
100
- return { left: alignmentToRightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
153
+ const alignmentToTopSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").top - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top;
154
+ const alignmentToBottomSide = tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").bottom - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
155
+ const verticalCenterOfRelativeElement = (alignmentToTopSide + alignmentToBottomSide) / 2;
156
+ const horizontalCenterOfRelativeElement = (alignmentToLeftSide + alignmentToRightSide) / 2;
157
+ const isSideCenter = side === relative_position_controller_constants.CALCULATOR_DIRECTIONS.center;
158
+ switch (alignment) {
159
+ case relative_position_controller_constants.CALCULATOR_DIRECTIONS.top: {
160
+ return this._calculateTopAlignment({ topAlignment: alignmentToTopSide, isSideCenter });
161
+ }
162
+ case relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom: {
163
+ return this._calculateBottomAlignment({ bottomAlignment: alignmentToBottomSide, isSideCenter });
164
+ }
165
+ case relative_position_controller_constants.CALCULATOR_DIRECTIONS.left: {
166
+ return this._calculateLeftAlignment({
167
+ leftAlignment: alignmentToLeftSide,
168
+ rightAlignment: alignmentToRightSide,
169
+ isSideCenter
170
+ });
171
+ }
172
+ case relative_position_controller_constants.CALCULATOR_DIRECTIONS.right: {
173
+ return this._calculateRightAlignment({
174
+ leftAlignment: alignmentToLeftSide,
175
+ rightAlignment: alignmentToRightSide,
176
+ isSideCenter
177
+ });
178
+ }
101
179
  case relative_position_controller_constants.CALCULATOR_DIRECTIONS.center:
102
- return { left: alignmentToCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
180
+ return this._calculateCenterAlignment({
181
+ horizontalCenter: horizontalCenterOfRelativeElement,
182
+ verticalCenter: verticalCenterOfRelativeElement,
183
+ side
184
+ });
103
185
  default:
104
186
  return { left: 0 };
105
187
  }
106
188
  }
189
+ _calculateTopAlignment({ topAlignment, isSideCenter }) {
190
+ const alignmentToTop = isSideCenter ? topAlignment - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f") : topAlignment;
191
+ return {
192
+ top: alignmentToTop,
193
+ calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.top
194
+ };
195
+ }
196
+ _calculateBottomAlignment({ bottomAlignment, isSideCenter }) {
197
+ const alignmentToBottom = isSideCenter ? bottomAlignment + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f") : bottomAlignment;
198
+ return { top: alignmentToBottom, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom };
199
+ }
200
+ _calculateLeftAlignment({ leftAlignment, rightAlignment, isSideCenter }) {
201
+ const alignmentToLeftSide = isSideCenter ? leftAlignment - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width : leftAlignment;
202
+ const alignmentToRightSide = rightAlignment + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
203
+ if (!isSideCenter)
204
+ return { left: alignmentToLeftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
205
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
206
+ return { left: alignmentToLeftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
207
+ if (!this._canFitLeftSide() && !this._canFitRightSide())
208
+ return { left: alignmentToLeftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
209
+ if (!this._canFitLeftSide())
210
+ return { left: alignmentToRightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
211
+ return { left: alignmentToLeftSide - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f"), calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
212
+ }
213
+ _calculateRightAlignment({ leftAlignment, rightAlignment, isSideCenter }) {
214
+ const alignmentToRightSide = isSideCenter ? rightAlignment + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width : rightAlignment;
215
+ const alignmentToLeftSide = leftAlignment - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").width - tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f");
216
+ if (!isSideCenter)
217
+ return { left: alignmentToRightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
218
+ if (tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_shouldNotReposition, "f"))
219
+ return { left: alignmentToRightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
220
+ if (!this._canFitLeftSide() && !this._canFitRightSide())
221
+ return { left: alignmentToRightSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
222
+ if (!this._canFitRightSide())
223
+ return { left: alignmentToLeftSide, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.left };
224
+ return { left: alignmentToRightSide + tslib_es6.__classPrivateFieldGet(this, _PositionCalculator_offset, "f"), calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.right };
225
+ }
226
+ _calculateCenterAlignment({ horizontalCenter, verticalCenter, side }) {
227
+ if (side === relative_position_controller_constants.CALCULATOR_DIRECTIONS.top || side === relative_position_controller_constants.CALCULATOR_DIRECTIONS.bottom)
228
+ return { left: horizontalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
229
+ return { top: verticalCenter, calculatedSide: relative_position_controller_constants.CALCULATOR_DIRECTIONS.center };
230
+ }
107
231
  }
108
- _PositionCalculator_direction = new WeakMap(), _PositionCalculator_relativeElementRect = new WeakMap(), _PositionCalculator_positionElementRect = new WeakMap(), _PositionCalculator_nearestNonStaticElementFromElementToPositionRect = new WeakMap(), _PositionCalculator_containerRect = new WeakMap(), _PositionCalculator_documentHeight = new WeakMap(), _PositionCalculator_shouldNotReposition = new WeakMap();
232
+ _PositionCalculator_direction = new WeakMap(), _PositionCalculator_relativeElementRect = new WeakMap(), _PositionCalculator_positionElementRect = new WeakMap(), _PositionCalculator_nearestNonStaticElementFromElementToPositionRect = new WeakMap(), _PositionCalculator_containerRect = new WeakMap(), _PositionCalculator_documentHeight = new WeakMap(), _PositionCalculator_shouldNotReposition = new WeakMap(), _PositionCalculator_offset = new WeakMap();
109
233
 
110
234
  exports.PositionCalculator = PositionCalculator;
111
235
  //# sourceMappingURL=relative_position_calculator.js.map