@shoper/phoenix_design_system 0.10.0 → 0.10.1-1

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 (62) hide show
  1. package/build/cjs/packages/phoenix/src/components/backdrop/backdrop.js +91 -0
  2. package/build/cjs/packages/phoenix/src/components/{modal/modal_backdrop.js.map → backdrop/backdrop.js.map} +1 -1
  3. package/build/cjs/packages/phoenix/src/components/backdrop/backdrop_constants.js +17 -0
  4. package/build/cjs/packages/phoenix/src/components/backdrop/backdrop_constants.js.map +1 -0
  5. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +114 -23
  6. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js +9 -1
  8. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js +6 -0
  10. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -0
  12. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/modal/modal.js +13 -10
  14. package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +4 -2
  16. package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +2 -2
  18. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +29 -9
  19. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  20. package/build/cjs/packages/phoenix/src/global_constants.js +15 -0
  21. package/build/cjs/packages/phoenix/src/global_constants.js.map +1 -0
  22. package/build/cjs/packages/phoenix/src/index.js +10 -10
  23. package/build/esm/packages/phoenix/src/components/backdrop/backdrop.d.ts +17 -0
  24. package/build/esm/packages/phoenix/src/components/backdrop/backdrop.js +89 -0
  25. package/build/esm/packages/phoenix/src/components/{modal/modal_backdrop.js.map → backdrop/backdrop.js.map} +1 -1
  26. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.d.ts +7 -0
  27. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.js +11 -0
  28. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.js.map +1 -0
  29. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.d.ts +3 -0
  30. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.js +2 -0
  31. package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.js.map +1 -0
  32. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +11 -3
  33. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +115 -24
  34. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  35. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.d.ts +5 -0
  36. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js +6 -2
  37. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  38. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.d.ts +2 -1
  39. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js +6 -0
  40. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.js.map +1 -1
  41. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +2 -1
  42. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  43. package/build/esm/packages/phoenix/src/components/modal/modal.d.ts +1 -2
  44. package/build/esm/packages/phoenix/src/components/modal/modal.js +13 -10
  45. package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
  46. package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +4 -2
  47. package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
  48. package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller_types.d.ts +4 -0
  49. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +2 -2
  50. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.d.ts +2 -1
  51. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +30 -10
  52. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
  53. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.d.ts +2 -0
  54. package/build/esm/packages/phoenix/src/global_constants.d.ts +8 -0
  55. package/build/esm/packages/phoenix/src/global_constants.js +11 -0
  56. package/build/esm/packages/phoenix/src/global_constants.js.map +1 -0
  57. package/build/esm/packages/phoenix/src/index.d.ts +1 -1
  58. package/build/esm/packages/phoenix/src/index.js +2 -2
  59. package/package.json +1 -1
  60. package/build/cjs/packages/phoenix/src/components/modal/modal_backdrop.js +0 -66
  61. package/build/esm/packages/phoenix/src/components/modal/modal_backdrop.d.ts +0 -12
  62. package/build/esm/packages/phoenix/src/components/modal/modal_backdrop.js +0 -64
@@ -6,6 +6,7 @@ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_eleme
6
6
  import { PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
7
7
  import { MODAL_OPENED_PROP, FOCUSABLE_ELEMENTS_WITHIN_MODAL, MODALS_PORTAL_NAME, MODAL_EVENTS } from './modal_constants.js';
8
8
  import { createRef as e, ref as n } from '../../../../../external/lit-html/directives/ref.js';
9
+ import { BACKDROP_EVENTS } from '../backdrop/backdrop_constants.js';
9
10
 
10
11
  var HModal_1;
11
12
  let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
@@ -89,26 +90,21 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
89
90
  document.body.appendChild($portalTarget);
90
91
  }
91
92
  }
92
- static _appendModalsBackdrop() {
93
- const $modalsBackdrop = document.querySelector('h-modal-backdrop');
94
- if (!$modalsBackdrop) {
95
- const $backdrop = document.createElement('h-modal-backdrop');
96
- document.body.appendChild($backdrop);
97
- }
98
- }
99
93
  static isSomeModalOpen() {
100
94
  return HModal_1.openModals.some((modal) => modal.opened);
101
95
  }
102
96
  connectedCallback() {
103
97
  super.connectedCallback();
104
98
  HModal_1._appendModalsPortal();
105
- HModal_1._appendModalsBackdrop();
106
99
  document.addEventListener('keydown', this._keepFocusWithinModal);
107
100
  document.addEventListener(MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
108
101
  }
109
102
  disconnectedCallback() {
110
103
  super.disconnectedCallback();
111
- this[MODAL_OPENED_PROP] = false;
104
+ if (this[MODAL_OPENED_PROP]) {
105
+ this[MODAL_OPENED_PROP] = false;
106
+ this._dispatchModalClosedEvent();
107
+ }
112
108
  document.removeEventListener(MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
113
109
  document.removeEventListener('keydown', this._bindCloseOnEsc);
114
110
  }
@@ -135,7 +131,6 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
135
131
  setTimeout(() => {
136
132
  var _a;
137
133
  this[MODAL_OPENED_PROP] = true;
138
- this._dispatchModalOpenedEvent();
139
134
  (_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`modal_show-${this.transition}-start`, `modal_show-${this.transition}-end`);
140
135
  resolve();
141
136
  }, transitionDuration);
@@ -147,6 +142,10 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
147
142
  bubbles: true
148
143
  });
149
144
  this.dispatchEvent(openModalEvent);
145
+ const openBackdropEvent = new CustomEvent(BACKDROP_EVENTS.show, {
146
+ bubbles: true
147
+ });
148
+ document.dispatchEvent(openBackdropEvent);
150
149
  }
151
150
  async close() {
152
151
  return new Promise((resolve) => {
@@ -170,6 +169,10 @@ let HModal = HModal_1 = class HModal extends PhoenixLightLitElement {
170
169
  bubbles: true
171
170
  });
172
171
  this.dispatchEvent(closeModalEvent);
172
+ const closeBackdropEvent = new CustomEvent(BACKDROP_EVENTS.hide, {
173
+ bubbles: true
174
+ });
175
+ document.dispatchEvent(closeBackdropEvent);
173
176
  }
174
177
  render() {
175
178
  return html `
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAwD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAwD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8 +15,10 @@ class ClickOutsideController {
15
15
  name: this._name
16
16
  }
17
17
  });
18
- const { target } = ev;
19
- if (target.contains(__classPrivateFieldGet(this, _ClickOutsideController_container, "f"))) {
18
+ const target = ev.target;
19
+ const isContainerWithinTarget = target.contains(__classPrivateFieldGet(this, _ClickOutsideController_container, "f")) && target !== __classPrivateFieldGet(this, _ClickOutsideController_container, "f");
20
+ const isTargetWithinContainer = __classPrivateFieldGet(this, _ClickOutsideController_container, "f").contains(target);
21
+ if (isContainerWithinTarget || !isTargetWithinContainer) {
20
22
  __classPrivateFieldGet(this, _ClickOutsideController_host, "f").dispatchEvent(clickedOutsideEvent);
21
23
  }
22
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,3 +4,7 @@ export declare type TClickOutsideControllerProps = {
4
4
  container: HTMLElement;
5
5
  name?: string;
6
6
  };
7
+ export declare type TClickOutsideEvent = {
8
+ target: EventTarget | null;
9
+ name?: string;
10
+ };
@@ -25,11 +25,11 @@ class PositionCalculator {
25
25
  };
26
26
  }
27
27
  _canFitTopSide() {
28
- const elementTop = __classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").top - __classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top - __classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
28
+ const elementTop = __classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").top - __classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
29
29
  return elementTop > __classPrivateFieldGet(this, _PositionCalculator_containerRect, "f").top && elementTop > 0;
30
30
  }
31
31
  _canFitBottomSide() {
32
- const elementBottom = __classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").bottom - __classPrivateFieldGet(this, _PositionCalculator_nearestNonStaticElementFromElementToPositionRect, "f").top + __classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
32
+ const elementBottom = __classPrivateFieldGet(this, _PositionCalculator_relativeElementRect, "f").bottom + __classPrivateFieldGet(this, _PositionCalculator_positionElementRect, "f").height;
33
33
  return elementBottom < __classPrivateFieldGet(this, _PositionCalculator_containerRect, "f").bottom && elementBottom < window.innerHeight;
34
34
  }
35
35
  _calculateSidePosition(side) {
@@ -1,7 +1,7 @@
1
1
  import { IRelativePositionController, TRelativePositionControllerConstructorOptions } from "./relative_position_controller_types";
2
2
  export declare class RelativePositionController implements IRelativePositionController {
3
3
  #private;
4
- constructor({ host, container, direction, relativeElement, elementToPosition }: TRelativePositionControllerConstructorOptions);
4
+ constructor({ host, container, direction, relativeElement, elementToPosition, shouldDisablePositioning, portalElementsNames }: TRelativePositionControllerConstructorOptions);
5
5
  hostConnected(): void;
6
6
  hostDisconnected(): void;
7
7
  position(): void;
@@ -9,4 +9,5 @@ export declare class RelativePositionController implements IRelativePositionCont
9
9
  private _findContainer;
10
10
  private _findParentBasedOnStyle;
11
11
  private _setElementPosition;
12
+ disableRelativePositioning(): void;
12
13
  }
@@ -1,12 +1,12 @@
1
- import { __classPrivateFieldSet, __classPrivateFieldGet } from '../../../../../external/tslib/tslib.es6.js';
1
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import 'lit';
3
3
  import { DEFAULT_THROTTLE_WAIT_TIME, DEFAULT_SCROLL_THROTTLE_WAIT_TIME, OVERFLOW_SCROLL, OVERFLOW_AUTO, NON_STATIC_POSITIONS } from './relative_position_controller_constants.js';
4
4
  import { PositionCalculator } from './relative_position_calculator.js';
5
5
  import lodash from '../../../../../external/lodash/lodash.js';
6
6
 
7
- var _RelativePositionController_host, _RelativePositionController_container, _RelativePositionController_nearestNonStaticElementFromElementToPosition, _RelativePositionController_direction, _RelativePositionController_nearestScrollableElement, _RelativePositionController_relativeElement, _RelativePositionController_elementToPosition, _RelativePositionController_throttledReposition, _RelativePositionController_throttledRepositionForScroll;
7
+ var _RelativePositionController_host, _RelativePositionController_container, _RelativePositionController_nearestNonStaticElementFromElementToPosition, _RelativePositionController_direction, _RelativePositionController_nearestScrollableElement, _RelativePositionController_relativeElement, _RelativePositionController_elementToPosition, _RelativePositionController_shouldDisablePositioning, _RelativePositionController_portalElementsNames, _RelativePositionController_throttledReposition, _RelativePositionController_throttledRepositionForScroll;
8
8
  class RelativePositionController {
9
- constructor({ host, container, direction, relativeElement, elementToPosition }) {
9
+ constructor({ host, container, direction, relativeElement, elementToPosition, shouldDisablePositioning, portalElementsNames = [] }) {
10
10
  _RelativePositionController_host.set(this, void 0);
11
11
  _RelativePositionController_container.set(this, void 0);
12
12
  _RelativePositionController_nearestNonStaticElementFromElementToPosition.set(this, void 0);
@@ -14,30 +14,42 @@ class RelativePositionController {
14
14
  _RelativePositionController_nearestScrollableElement.set(this, void 0);
15
15
  _RelativePositionController_relativeElement.set(this, void 0);
16
16
  _RelativePositionController_elementToPosition.set(this, void 0);
17
+ _RelativePositionController_shouldDisablePositioning.set(this, void 0);
18
+ _RelativePositionController_portalElementsNames.set(this, void 0);
17
19
  _RelativePositionController_throttledReposition.set(this, lodash.throttle(() => {
18
- this.position();
20
+ if (!__classPrivateFieldGet(this, _RelativePositionController_shouldDisablePositioning, "f")) {
21
+ this.position();
22
+ return;
23
+ }
24
+ __classPrivateFieldGet(this, _RelativePositionController_shouldDisablePositioning, "f").call(this) ? this.disableRelativePositioning() : this.position();
19
25
  }, DEFAULT_THROTTLE_WAIT_TIME));
20
26
  _RelativePositionController_throttledRepositionForScroll.set(this, lodash.throttle(() => {
21
- this.position();
27
+ if (!__classPrivateFieldGet(this, _RelativePositionController_shouldDisablePositioning, "f")) {
28
+ this.position();
29
+ return;
30
+ }
31
+ __classPrivateFieldGet(this, _RelativePositionController_shouldDisablePositioning, "f").call(this) ? this.disableRelativePositioning() : this.position();
22
32
  }, DEFAULT_SCROLL_THROTTLE_WAIT_TIME));
23
33
  __classPrivateFieldSet(this, _RelativePositionController_host, host, "f");
24
34
  __classPrivateFieldSet(this, _RelativePositionController_container, container, "f");
25
35
  __classPrivateFieldSet(this, _RelativePositionController_direction, direction, "f");
26
36
  __classPrivateFieldSet(this, _RelativePositionController_relativeElement, relativeElement, "f");
27
37
  __classPrivateFieldSet(this, _RelativePositionController_elementToPosition, elementToPosition, "f");
38
+ __classPrivateFieldSet(this, _RelativePositionController_shouldDisablePositioning, shouldDisablePositioning, "f");
39
+ __classPrivateFieldSet(this, _RelativePositionController_portalElementsNames, portalElementsNames, "f");
28
40
  __classPrivateFieldGet(this, _RelativePositionController_host, "f").addController(this);
29
41
  }
30
42
  hostConnected() {
31
- __classPrivateFieldGet(this, _RelativePositionController_host, "f").addEventListener('resize', __classPrivateFieldGet(this, _RelativePositionController_throttledReposition, "f"));
32
43
  if (!__classPrivateFieldGet(this, _RelativePositionController_relativeElement, "f"))
33
44
  return;
34
45
  if (!__classPrivateFieldGet(this, _RelativePositionController_nearestScrollableElement, "f")) {
35
46
  __classPrivateFieldSet(this, _RelativePositionController_nearestScrollableElement, this._findNearestScrollableElement(__classPrivateFieldGet(this, _RelativePositionController_relativeElement, "f")), "f");
36
47
  }
48
+ window.addEventListener('resize', __classPrivateFieldGet(this, _RelativePositionController_throttledReposition, "f"));
37
49
  __classPrivateFieldGet(this, _RelativePositionController_nearestScrollableElement, "f").addEventListener('scroll', __classPrivateFieldGet(this, _RelativePositionController_throttledRepositionForScroll, "f"));
38
50
  }
39
51
  hostDisconnected() {
40
- __classPrivateFieldGet(this, _RelativePositionController_host, "f").removeEventListener('resize', __classPrivateFieldGet(this, _RelativePositionController_throttledReposition, "f"));
52
+ window.removeEventListener('resize', __classPrivateFieldGet(this, _RelativePositionController_throttledReposition, "f"));
41
53
  if (__classPrivateFieldGet(this, _RelativePositionController_nearestScrollableElement, "f"))
42
54
  __classPrivateFieldGet(this, _RelativePositionController_nearestScrollableElement, "f").removeEventListener('scroll', __classPrivateFieldGet(this, _RelativePositionController_throttledRepositionForScroll, "f"));
43
55
  }
@@ -58,7 +70,8 @@ class RelativePositionController {
58
70
  }
59
71
  _findNearestScrollableElement(element) {
60
72
  const overflowArray = ['overflow', 'overflowY', 'overflowX'];
61
- return this._findParentBasedOnStyle(element, overflowArray, (overflowArray) => overflowArray.includes(OVERFLOW_SCROLL) || overflowArray.includes(OVERFLOW_AUTO));
73
+ const scrollableElement = this._findParentBasedOnStyle(element, overflowArray, (overflowArray) => overflowArray.includes(OVERFLOW_SCROLL) || overflowArray.includes(OVERFLOW_AUTO));
74
+ return scrollableElement !== document.body ? scrollableElement : window;
62
75
  }
63
76
  _findContainer(element) {
64
77
  return this._findParentBasedOnStyle(element, ['position'], ([position]) => NON_STATIC_POSITIONS.includes(position));
@@ -70,7 +83,7 @@ class RelativePositionController {
70
83
  const parentStyles = styles.reduce((styles, currentStyle) => {
71
84
  return [...styles, window.getComputedStyle(parent)[currentStyle]];
72
85
  }, []);
73
- if (callback(parentStyles) || parent === document.body)
86
+ if ((callback(parentStyles) || parent === document.body) && !__classPrivateFieldGet(this, _RelativePositionController_portalElementsNames, "f").includes(parent.localName))
74
87
  return parent;
75
88
  return this._findParentBasedOnStyle(parent, styles, callback);
76
89
  }
@@ -86,8 +99,15 @@ class RelativePositionController {
86
99
  elementStyle.left = '0';
87
100
  __classPrivateFieldGet(this, _RelativePositionController_elementToPosition, "f").style.transform = `translate3d(${position.left}px, ${position.top}px, 0)`;
88
101
  }
102
+ disableRelativePositioning() {
103
+ if (!__classPrivateFieldGet(this, _RelativePositionController_elementToPosition, "f"))
104
+ return;
105
+ const { style: elementStyle } = __classPrivateFieldGet(this, _RelativePositionController_elementToPosition, "f");
106
+ elementStyle.position = '';
107
+ elementStyle.transform = '';
108
+ }
89
109
  }
90
- _RelativePositionController_host = new WeakMap(), _RelativePositionController_container = new WeakMap(), _RelativePositionController_nearestNonStaticElementFromElementToPosition = new WeakMap(), _RelativePositionController_direction = new WeakMap(), _RelativePositionController_nearestScrollableElement = new WeakMap(), _RelativePositionController_relativeElement = new WeakMap(), _RelativePositionController_elementToPosition = new WeakMap(), _RelativePositionController_throttledReposition = new WeakMap(), _RelativePositionController_throttledRepositionForScroll = new WeakMap();
110
+ _RelativePositionController_host = new WeakMap(), _RelativePositionController_container = new WeakMap(), _RelativePositionController_nearestNonStaticElementFromElementToPosition = new WeakMap(), _RelativePositionController_direction = new WeakMap(), _RelativePositionController_nearestScrollableElement = new WeakMap(), _RelativePositionController_relativeElement = new WeakMap(), _RelativePositionController_elementToPosition = new WeakMap(), _RelativePositionController_shouldDisablePositioning = new WeakMap(), _RelativePositionController_portalElementsNames = new WeakMap(), _RelativePositionController_throttledReposition = new WeakMap(), _RelativePositionController_throttledRepositionForScroll = new WeakMap();
91
111
 
92
112
  export { RelativePositionController };
93
113
  //# sourceMappingURL=relative_position_controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA,mBAAmB,0CAA8C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA,mBAAmB,0CAA8C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6 +10,8 @@ export declare type TRelativePositionControllerConstructorOptions = {
10
10
  container?: HTMLElement;
11
11
  relativeElement: HTMLElement;
12
12
  elementToPosition: HTMLElement;
13
+ shouldDisablePositioning?: () => boolean;
14
+ portalElementsNames?: string[];
13
15
  };
14
16
  export interface IRelativePositionController extends ReactiveController {
15
17
  position(): void;
@@ -0,0 +1,8 @@
1
+ export declare const BREAKPOINTS: {
2
+ xs: number;
3
+ sm: number;
4
+ md: number;
5
+ lg: number;
6
+ xl: number;
7
+ xxl: number;
8
+ };
@@ -0,0 +1,11 @@
1
+ const BREAKPOINTS = {
2
+ xs: 576,
3
+ sm: 768,
4
+ md: 1000,
5
+ lg: 1200,
6
+ xl: 1440,
7
+ xxl: 1920
8
+ };
9
+
10
+ export { BREAKPOINTS };
11
+ //# sourceMappingURL=global_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -7,7 +7,6 @@ export { HPortal } from './components/portal/portal';
7
7
  export { HPortalTarget } from './components/portal/portal_target';
8
8
  export { HModal } from './components/modal/modal';
9
9
  export { HModalOpener } from './components/modal/modal_opener';
10
- export { HModalBackdrop } from './components/modal/modal_backdrop';
11
10
  export { HModalBody } from './components/modal/modal_body';
12
11
  export { HModalFooter } from './components/modal/modal_footer';
13
12
  export { HModalHeader } from './components/modal/modal_header';
@@ -30,3 +29,4 @@ export { ClickOutsideController } from './controllers/click_outside_controller/c
30
29
  export { KeystrokesController } from './controllers/keystrokes_controller/keystrokes_controller';
31
30
  export { RelativePositionController } from './controllers/relative_position_controller/relative_position_controller';
32
31
  export { ToggleElementAriaController } from './controllers/toggle_element_aria_controller/toggle_element_aria_controller';
32
+ export { HBackdrop } from './components/backdrop/backdrop';
@@ -6,7 +6,6 @@ export { HPortalTarget } from './components/portal/portal_target.js';
6
6
  export { HPortal } from './components/portal/portal.js';
7
7
  export { HModal } from './components/modal/modal.js';
8
8
  export { HModalOpener } from './components/modal/modal_opener.js';
9
- export { HModalBackdrop } from './components/modal/modal_backdrop.js';
10
9
  export { HModalBody } from './components/modal/modal_body.js';
11
10
  export { HModalFooter } from './components/modal/modal_footer.js';
12
11
  export { HModalHeader } from './components/modal/modal_header.js';
@@ -24,9 +23,10 @@ export { BtnController } from './controllers/btn_controller.js';
24
23
  export { HAccordionToggler } from './components/accordion/accordion_toggler.js';
25
24
  export { HAccordion } from './components/accordion/accordion.js';
26
25
  export { ClickOutsideController } from './controllers/click_outside_controller/click_outside_controller.js';
26
+ export { HDropdownContent } from './components/dropdown/dropdown_content.js';
27
27
  export { RelativePositionController } from './controllers/relative_position_controller/relative_position_controller.js';
28
28
  export { HDropdown } from './components/dropdown/dropdown.js';
29
29
  export { ToggleElementAriaController } from './controllers/toggle_element_aria_controller/toggle_element_aria_controller.js';
30
30
  export { HDropdownToggler } from './components/dropdown/dropdown_toggler.js';
31
- export { HDropdownContent } from './components/dropdown/dropdown_content.js';
31
+ export { HBackdrop } from './components/backdrop/backdrop.js';
32
32
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@shoper/phoenix_design_system",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "0.10.0",
5
+ "version": "0.10.1-1",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
6
- var lit = require('lit');
7
- var decorators = require('lit/decorators');
8
- var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element.js');
9
- var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
10
- var modal_constants = require('./modal_constants.js');
11
- var modal = require('./modal.js');
12
-
13
- exports.HModalBackdrop = class HModalBackdrop extends phoenix_light_lit_element.PhoenixLightLitElement {
14
- constructor() {
15
- super(...arguments);
16
- this.visible = false;
17
- this._show = () => {
18
- if (!this.visible) {
19
- this.visible = true;
20
- }
21
- };
22
- this._hide = () => {
23
- if (!modal.HModal.isSomeModalOpen()) {
24
- this.visible = false;
25
- }
26
- };
27
- }
28
- connectedCallback() {
29
- super.connectedCallback();
30
- document.addEventListener(modal_constants.MODAL_EVENTS.opened, this._show);
31
- document.addEventListener(modal_constants.MODAL_EVENTS.closed, this._hide);
32
- }
33
- disconnectedCallback() {
34
- super.disconnectedCallback();
35
- document.removeEventListener(modal_constants.MODAL_EVENTS.opened, this._show);
36
- document.removeEventListener(modal_constants.MODAL_EVENTS.closed, this._hide);
37
- }
38
- updated() {
39
- if (modal.HModal.isSomeModalOpen()) {
40
- this.visible = true;
41
- this._disableScrolling();
42
- }
43
- else {
44
- this._enableScrolling();
45
- }
46
- }
47
- _disableScrolling() {
48
- document.body.style.overflow = 'hidden';
49
- document.body.style.paddingRight = '15px';
50
- }
51
- _enableScrolling() {
52
- document.body.style.removeProperty('overflow');
53
- document.body.style.removeProperty('padding-right');
54
- }
55
- render() {
56
- return lit.html ` <div aria-hidden="true" ?hidden="${!this.visible}" class="modal-backdrop"></div>`;
57
- }
58
- };
59
- tslib_es6.__decorate([
60
- decorators.property({ type: Boolean }),
61
- tslib_es6.__metadata("design:type", Object)
62
- ], exports.HModalBackdrop.prototype, "visible", void 0);
63
- exports.HModalBackdrop = tslib_es6.__decorate([
64
- phoenix_custom_element.phoenixCustomElement('h-modal-backdrop')
65
- ], exports.HModalBackdrop);
66
- //# sourceMappingURL=modal_backdrop.js.map
@@ -1,12 +0,0 @@
1
- import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
2
- export declare class HModalBackdrop extends PhoenixLightLitElement {
3
- visible: boolean;
4
- connectedCallback(): void;
5
- disconnectedCallback(): void;
6
- private _show;
7
- private _hide;
8
- protected updated(): void;
9
- private _disableScrolling;
10
- private _enableScrolling;
11
- render(): import("lit-html").TemplateResult<1>;
12
- }
@@ -1,64 +0,0 @@
1
- import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
- import { html } from 'lit';
3
- import { property } from 'lit/decorators';
4
- import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element.js';
5
- import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
6
- import { MODAL_EVENTS } from './modal_constants.js';
7
- import { HModal } from './modal.js';
8
-
9
- let HModalBackdrop = class HModalBackdrop extends PhoenixLightLitElement {
10
- constructor() {
11
- super(...arguments);
12
- this.visible = false;
13
- this._show = () => {
14
- if (!this.visible) {
15
- this.visible = true;
16
- }
17
- };
18
- this._hide = () => {
19
- if (!HModal.isSomeModalOpen()) {
20
- this.visible = false;
21
- }
22
- };
23
- }
24
- connectedCallback() {
25
- super.connectedCallback();
26
- document.addEventListener(MODAL_EVENTS.opened, this._show);
27
- document.addEventListener(MODAL_EVENTS.closed, this._hide);
28
- }
29
- disconnectedCallback() {
30
- super.disconnectedCallback();
31
- document.removeEventListener(MODAL_EVENTS.opened, this._show);
32
- document.removeEventListener(MODAL_EVENTS.closed, this._hide);
33
- }
34
- updated() {
35
- if (HModal.isSomeModalOpen()) {
36
- this.visible = true;
37
- this._disableScrolling();
38
- }
39
- else {
40
- this._enableScrolling();
41
- }
42
- }
43
- _disableScrolling() {
44
- document.body.style.overflow = 'hidden';
45
- document.body.style.paddingRight = '15px';
46
- }
47
- _enableScrolling() {
48
- document.body.style.removeProperty('overflow');
49
- document.body.style.removeProperty('padding-right');
50
- }
51
- render() {
52
- return html ` <div aria-hidden="true" ?hidden="${!this.visible}" class="modal-backdrop"></div>`;
53
- }
54
- };
55
- __decorate([
56
- property({ type: Boolean }),
57
- __metadata("design:type", Object)
58
- ], HModalBackdrop.prototype, "visible", void 0);
59
- HModalBackdrop = __decorate([
60
- phoenixCustomElement('h-modal-backdrop')
61
- ], HModalBackdrop);
62
-
63
- export { HModalBackdrop };
64
- //# sourceMappingURL=modal_backdrop.js.map