@shoper/phoenix_design_system 0.8.1 → 0.8.3-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.
- package/build/cjs/packages/phoenix/src/components/backdrop/backdrop.js +91 -0
- package/build/cjs/packages/phoenix/src/components/{modal/modal_backdrop.js.map → backdrop/backdrop.js.map} +1 -1
- package/build/cjs/packages/phoenix/src/components/backdrop/backdrop_constants.js +17 -0
- package/build/cjs/packages/phoenix/src/components/backdrop/backdrop_constants.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +62 -50
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js +0 -2
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal.js +13 -10
- package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +4 -2
- package/build/cjs/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
- package/build/cjs/packages/phoenix/src/global_constants.js +9 -2
- package/build/cjs/packages/phoenix/src/global_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/index.js +7 -7
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop.d.ts +17 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop.js +89 -0
- package/build/esm/packages/phoenix/src/components/{modal/modal_backdrop.js.map → backdrop/backdrop.js.map} +1 -1
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.d.ts +7 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.js +11 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_constants.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.d.ts +3 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.js +2 -0
- package/build/esm/packages/phoenix/src/components/backdrop/backdrop_types.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +4 -2
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +63 -51
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.d.ts +0 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js +1 -2
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_content.d.ts +1 -1
- package/build/esm/packages/phoenix/src/components/modal/modal.d.ts +1 -2
- package/build/esm/packages/phoenix/src/components/modal/modal.js +13 -10
- package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js +4 -2
- package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/click_outside_controller/click_outside_controller_types.d.ts +4 -0
- package/build/esm/packages/phoenix/src/global_constants.d.ts +8 -1
- package/build/esm/packages/phoenix/src/global_constants.js +9 -2
- package/build/esm/packages/phoenix/src/global_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/index.d.ts +1 -1
- package/build/esm/packages/phoenix/src/index.js +1 -1
- package/package.json +1 -1
- package/build/cjs/packages/phoenix/src/components/modal/modal_backdrop.js +0 -66
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_backdrop.d.ts +0 -11
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_backdrop.js +0 -54
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_backdrop.js.map +0 -1
- package/build/esm/packages/phoenix/src/components/modal/modal_backdrop.d.ts +0 -12
- package/build/esm/packages/phoenix/src/components/modal/modal_backdrop.js +0 -64
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backdrop_types.js","sourceRoot":"","sources":["../../../../../../../src/components/backdrop/backdrop_types.ts"],"names":[],"mappings":""}
|
|
@@ -10,18 +10,20 @@ export declare class HDropdown extends PhoenixLightLitElement implements IDropdo
|
|
|
10
10
|
portalTarget: string;
|
|
11
11
|
$dropdownToggler: HTMLElement | null;
|
|
12
12
|
$dropdownContent: HTMLElement | null;
|
|
13
|
+
$nestedDropdownContent: HTMLElement | null;
|
|
13
14
|
private _positionController;
|
|
14
15
|
private _clickOutsideController;
|
|
15
16
|
connectedCallback(): void;
|
|
16
17
|
private _appendDropdownPortal;
|
|
17
|
-
private _appendDropdownBackdrop;
|
|
18
18
|
private _setupListeners;
|
|
19
19
|
private _handleClickOutside;
|
|
20
20
|
toggle: () => void;
|
|
21
21
|
show: () => Promise<void>;
|
|
22
|
+
private _dispatchShowDropdownEvent;
|
|
22
23
|
hide: () => Promise<void>;
|
|
24
|
+
private _dispatchHideDropdownEvent;
|
|
23
25
|
private _hoverToggle;
|
|
24
|
-
private
|
|
26
|
+
private _isHoveredWithinDropdown;
|
|
25
27
|
private _positionDropdownContent;
|
|
26
28
|
disconnectedCallback(): void;
|
|
27
29
|
render(): TemplateResult;
|
|
@@ -4,11 +4,12 @@ import { property } from 'lit/decorators';
|
|
|
4
4
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element.js';
|
|
5
5
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
6
6
|
import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
|
|
7
|
-
import {
|
|
7
|
+
import { BACKDROP_EVENTS } from '../backdrop/backdrop_constants.js';
|
|
8
|
+
import { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CONTENT_SHOW, DROPDOWN_EVENTS, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_TOGGLER_NAME, DROPDOWN_CONTAINER_NAME } from './dropdown_constants.js';
|
|
9
|
+
import { BREAKPOINTS } from '../../global_constants.js';
|
|
8
10
|
import { CLICK_OUTSIDE_CONTROLLER_MESSAGES } from '../../controllers/click_outside_controller/click_outside_controller_messages.js';
|
|
9
11
|
import { ClickOutsideController } from '../../controllers/click_outside_controller/click_outside_controller.js';
|
|
10
12
|
import { DIRECTIONS } from '../../controllers/relative_position_controller/relative_position_controller_constants.js';
|
|
11
|
-
import { MOBILE_SCREEN_WIDTH } from '../../global_constants.js';
|
|
12
13
|
import { RelativePositionController } from '../../controllers/relative_position_controller/relative_position_controller.js';
|
|
13
14
|
|
|
14
15
|
let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
@@ -24,10 +25,6 @@ let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
|
24
25
|
this.opened ? this.hide() : this.show();
|
|
25
26
|
};
|
|
26
27
|
this.show = async () => {
|
|
27
|
-
const showDropdownEvent = new Event(DROPDOWN_EVENTS.show, {
|
|
28
|
-
bubbles: true
|
|
29
|
-
});
|
|
30
|
-
this.dispatchEvent(showDropdownEvent);
|
|
31
28
|
return new Promise((resolve) => {
|
|
32
29
|
var _a;
|
|
33
30
|
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.add(DROPDOWN_CONTENT_VISIBLE_CLASS, `${DROPDOWN_CONTENT_SHOW}-${this.transition}-start`);
|
|
@@ -40,42 +37,60 @@ let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
|
40
37
|
setTimeout(() => {
|
|
41
38
|
var _a;
|
|
42
39
|
this.opened = true;
|
|
43
|
-
this.
|
|
40
|
+
this._dispatchShowDropdownEvent();
|
|
44
41
|
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_SHOW}-${this.transition}-start`, `${DROPDOWN_CONTENT_SHOW}-${this.transition}-end`);
|
|
45
42
|
resolve();
|
|
46
43
|
}, transitionDuration);
|
|
47
44
|
});
|
|
48
45
|
});
|
|
49
46
|
};
|
|
50
|
-
this.
|
|
47
|
+
this._dispatchShowDropdownEvent = () => {
|
|
48
|
+
const showDropdownEvent = new Event(DROPDOWN_EVENTS.show, {
|
|
49
|
+
bubbles: true
|
|
50
|
+
});
|
|
51
|
+
this.dispatchEvent(showDropdownEvent);
|
|
52
|
+
if (window.innerWidth >= BREAKPOINTS.xs)
|
|
53
|
+
return;
|
|
54
|
+
const showBackdropEvent = new Event(BACKDROP_EVENTS.show, {
|
|
55
|
+
bubbles: true
|
|
56
|
+
});
|
|
57
|
+
document.dispatchEvent(showBackdropEvent);
|
|
58
|
+
};
|
|
59
|
+
this.hide = async () => new Promise((resolve) => {
|
|
60
|
+
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
61
|
+
window.requestAnimationFrame(() => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_HIDE}-${this.transition}-start`);
|
|
64
|
+
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(`${DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
65
|
+
setTimeout(() => {
|
|
66
|
+
var _a;
|
|
67
|
+
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_HIDE}-${this.transition}-start`, `${DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
68
|
+
this.opened = false;
|
|
69
|
+
this._dispatchHideDropdownEvent();
|
|
70
|
+
resolve();
|
|
71
|
+
}, transitionDuration);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
this._dispatchHideDropdownEvent = () => {
|
|
51
75
|
const hideDropdownEvent = new Event(DROPDOWN_EVENTS.hide, {
|
|
52
76
|
bubbles: true
|
|
53
77
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(`${DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
60
|
-
setTimeout(() => {
|
|
61
|
-
var _a;
|
|
62
|
-
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_HIDE}-${this.transition}-start`, `${DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
63
|
-
this.opened = false;
|
|
64
|
-
this.dispatchEvent(hideDropdownEvent);
|
|
65
|
-
resolve();
|
|
66
|
-
}, transitionDuration);
|
|
67
|
-
});
|
|
78
|
+
this.dispatchEvent(hideDropdownEvent);
|
|
79
|
+
if (window.innerWidth >= BREAKPOINTS.xs)
|
|
80
|
+
return;
|
|
81
|
+
const hideBackdropEvent = new Event(BACKDROP_EVENTS.hide, {
|
|
82
|
+
bubbles: true
|
|
68
83
|
});
|
|
84
|
+
document.dispatchEvent(hideBackdropEvent);
|
|
69
85
|
};
|
|
70
86
|
this._hoverToggle = async (ev) => {
|
|
87
|
+
if (window.innerWidth < BREAKPOINTS.xs)
|
|
88
|
+
return;
|
|
71
89
|
if (!ev.target) {
|
|
72
90
|
await this.hide();
|
|
73
91
|
return;
|
|
74
92
|
}
|
|
75
|
-
const isHoveredWithinDropdown = this.
|
|
76
|
-
(this.$dropdownContent && this._isDescendantOfParent(this.$dropdownContent, ev.target)) ||
|
|
77
|
-
ev.target === this ||
|
|
78
|
-
ev.target === this.$dropdownContent;
|
|
93
|
+
const isHoveredWithinDropdown = this._isHoveredWithinDropdown(ev.target);
|
|
79
94
|
if (isHoveredWithinDropdown && !this.opened) {
|
|
80
95
|
await this.show();
|
|
81
96
|
return;
|
|
@@ -85,15 +100,6 @@ let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
|
85
100
|
return;
|
|
86
101
|
}
|
|
87
102
|
};
|
|
88
|
-
this._isDescendantOfParent = function (parent, child) {
|
|
89
|
-
let parentNode = child.parentNode;
|
|
90
|
-
while (parentNode) {
|
|
91
|
-
if (parentNode === parent)
|
|
92
|
-
return true;
|
|
93
|
-
parentNode = parentNode.parentNode;
|
|
94
|
-
}
|
|
95
|
-
return false;
|
|
96
|
-
};
|
|
97
103
|
this._positionDropdownContent = () => {
|
|
98
104
|
requestAnimationFrame(() => {
|
|
99
105
|
this.opened && this._positionController.position();
|
|
@@ -103,11 +109,13 @@ let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
|
103
109
|
connectedCallback() {
|
|
104
110
|
super.connectedCallback();
|
|
105
111
|
this._appendDropdownPortal();
|
|
106
|
-
this._appendDropdownBackdrop();
|
|
107
112
|
if (!this.$dropdownContent)
|
|
108
113
|
this.$dropdownContent = this.querySelector(DROPDOWN_CONTENT_NAME);
|
|
109
114
|
if (!this.$dropdownToggler)
|
|
110
115
|
this.$dropdownToggler = this.querySelector(DROPDOWN_TOGGLER_NAME);
|
|
116
|
+
const nestedDropdown = this.$dropdownContent.querySelector(DROPDOWN_CONTAINER_NAME);
|
|
117
|
+
if (nestedDropdown)
|
|
118
|
+
this.$nestedDropdownContent = nestedDropdown.querySelector(DROPDOWN_CONTENT_NAME);
|
|
111
119
|
if (!this._positionController)
|
|
112
120
|
this._positionController = new RelativePositionController({
|
|
113
121
|
host: this,
|
|
@@ -131,36 +139,40 @@ let HDropdown = class HDropdown extends PhoenixLightLitElement {
|
|
|
131
139
|
document.body.appendChild($portalTarget);
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
|
-
_appendDropdownBackdrop() {
|
|
135
|
-
const $dropdownBackdrop = document.querySelector(DROPDOWN_BACKDROP_NAME);
|
|
136
|
-
if (!$dropdownBackdrop) {
|
|
137
|
-
const $backdrop = document.createElement(DROPDOWN_BACKDROP_NAME);
|
|
138
|
-
document.body.appendChild($backdrop);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
142
|
_setupListeners() {
|
|
142
143
|
var _a;
|
|
143
144
|
this.addEventListener(CLICK_OUTSIDE_CONTROLLER_MESSAGES.clickedOutside, this._handleClickOutside);
|
|
144
145
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.toggle);
|
|
145
|
-
if (this.toggleOnHover
|
|
146
|
+
if (this.toggleOnHover)
|
|
146
147
|
document.addEventListener('mouseover', this._hoverToggle);
|
|
147
|
-
}
|
|
148
148
|
}
|
|
149
|
-
_handleClickOutside() {
|
|
150
|
-
var _a;
|
|
149
|
+
_handleClickOutside(ev) {
|
|
150
|
+
var _a, _b;
|
|
151
151
|
if (!this.opened)
|
|
152
152
|
return;
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
const target = ev.detail.target;
|
|
154
|
+
const clickedWithinNestedDropdown = this.$nestedDropdownContent && this.$nestedDropdownContent.contains(target);
|
|
155
|
+
const shouldHideElements = !((_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.contains(target)) && !this.contains(target) && !clickedWithinNestedDropdown;
|
|
156
|
+
if (shouldHideElements) {
|
|
157
|
+
this.hide();
|
|
158
|
+
(_b = this.$dropdownToggler) === null || _b === void 0 ? void 0 : _b.setAttribute('aria-expanded', 'false');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
_isHoveredWithinDropdown(element) {
|
|
162
|
+
const isDescendantOfDropdown = element.closest(`${DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null;
|
|
163
|
+
const isDescendantOfContent = this.$dropdownContent && element.closest(`${DROPDOWN_CONTENT_NAME}[name="${this.name}"]`) !== null;
|
|
164
|
+
return isDescendantOfDropdown || isDescendantOfContent || element === this || element === this.$dropdownContent;
|
|
155
165
|
}
|
|
156
166
|
disconnectedCallback() {
|
|
157
167
|
var _a;
|
|
158
168
|
super.disconnectedCallback();
|
|
159
169
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.removeEventListener('toggle', this.toggle);
|
|
160
|
-
if (this.toggleOnHover
|
|
170
|
+
if (this.toggleOnHover)
|
|
161
171
|
document.removeEventListener('mouseover', this._hoverToggle);
|
|
172
|
+
if (this.opened) {
|
|
173
|
+
this.opened = false;
|
|
174
|
+
this._dispatchHideDropdownEvent();
|
|
162
175
|
}
|
|
163
|
-
this.opened = false;
|
|
164
176
|
}
|
|
165
177
|
render() {
|
|
166
178
|
super.render();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -2,7 +2,6 @@ export declare const DROPDOWN_NAME = "dropdown";
|
|
|
2
2
|
export declare const DROPDOWN_CONTAINER_NAME: string;
|
|
3
3
|
export declare const DROPDOWN_TOGGLER_NAME: string;
|
|
4
4
|
export declare const DROPDOWN_CONTENT_NAME: string;
|
|
5
|
-
export declare const DROPDOWN_BACKDROP_NAME: string;
|
|
6
5
|
export declare const DEFAULT_DROPDOWN_PORTAL_NAME = "dropdown-portal";
|
|
7
6
|
export declare const DROPDOWN_EVENTS: {
|
|
8
7
|
readonly show: "dropdown.show";
|
|
@@ -2,7 +2,6 @@ const DROPDOWN_NAME = 'dropdown';
|
|
|
2
2
|
const DROPDOWN_CONTAINER_NAME = `h-${DROPDOWN_NAME}`;
|
|
3
3
|
const DROPDOWN_TOGGLER_NAME = `${DROPDOWN_CONTAINER_NAME}-toggler`;
|
|
4
4
|
const DROPDOWN_CONTENT_NAME = `${DROPDOWN_CONTAINER_NAME}-content`;
|
|
5
|
-
const DROPDOWN_BACKDROP_NAME = `${DROPDOWN_CONTAINER_NAME}-backdrop`;
|
|
6
5
|
const DEFAULT_DROPDOWN_PORTAL_NAME = 'dropdown-portal';
|
|
7
6
|
const DROPDOWN_EVENT = 'dropdown';
|
|
8
7
|
const DROPDOWN_EVENTS = {
|
|
@@ -17,5 +16,5 @@ const DROPDOWN_CONTENT_VISIBLE_CLASS = `${DROPDOWN_CONTENT_CLASS}_visible`;
|
|
|
17
16
|
const DROPDOWN_CONTENT_SHOW = `${DROPDOWN_CONTENT_CLASS}_show`;
|
|
18
17
|
const DROPDOWN_CONTENT_HIDE = `${DROPDOWN_CONTENT_CLASS}_hide`;
|
|
19
18
|
|
|
20
|
-
export { DEFAULT_DROPDOWN_PORTAL_NAME,
|
|
19
|
+
export { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CLASS, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_CLASS, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_CONTENT_SHOW, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_EVENTS, DROPDOWN_NAME, DROPDOWN_OPENED_ATTRIBUTE_NAME, DROPDOWN_TOGGLER_CLASS, DROPDOWN_TOGGLER_NAME };
|
|
21
20
|
//# sourceMappingURL=dropdown_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
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;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
|
|
2
1
|
import { TemplateResult } from 'lit';
|
|
2
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
|
|
3
3
|
export declare class HDropdownContent extends PhoenixLightLitElement {
|
|
4
4
|
constructor();
|
|
5
5
|
protected render(): TemplateResult;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropertyValues, TemplateResult } from 'lit';
|
|
2
2
|
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
|
|
3
3
|
export declare class HModal extends PhoenixLightLitElement {
|
|
4
4
|
opened: boolean;
|
|
@@ -13,7 +13,6 @@ export declare class HModal extends PhoenixLightLitElement {
|
|
|
13
13
|
private _propsChangeStrategies;
|
|
14
14
|
private static openModals;
|
|
15
15
|
private static _appendModalsPortal;
|
|
16
|
-
private static _appendModalsBackdrop;
|
|
17
16
|
static isSomeModalOpen(): boolean;
|
|
18
17
|
constructor();
|
|
19
18
|
connectedCallback(): void;
|
|
@@ -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]
|
|
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
|
|
19
|
-
|
|
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;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;"}
|
|
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';
|
|
@@ -20,3 +19,4 @@ export { ClickOutsideController } from './controllers/click_outside_controller/c
|
|
|
20
19
|
export { KeystrokesController } from './controllers/keystrokes_controller/keystrokes_controller';
|
|
21
20
|
export { RelativePositionController } from './controllers/relative_position_controller/relative_position_controller';
|
|
22
21
|
export { ToggleElementAriaController } from './controllers/toggle_element_aria_controller/toggle_element_aria_controller';
|
|
22
|
+
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';
|
|
@@ -19,4 +18,5 @@ export { HDropdown } from './components/dropdown/dropdown.js';
|
|
|
19
18
|
export { ToggleElementAriaController } from './controllers/toggle_element_aria_controller/toggle_element_aria_controller.js';
|
|
20
19
|
export { HDropdownToggler } from './components/dropdown/dropdown_toggler.js';
|
|
21
20
|
export { HDropdownContent } from './components/dropdown/dropdown_content.js';
|
|
21
|
+
export { HBackdrop } from './components/backdrop/backdrop.js';
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -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,11 +0,0 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
2
|
-
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
|
|
3
|
-
export declare class HDropdownBackdrop extends PhoenixLightLitElement {
|
|
4
|
-
visible: boolean;
|
|
5
|
-
connectedCallback(): void;
|
|
6
|
-
disconnectedCallback(): void;
|
|
7
|
-
private _show;
|
|
8
|
-
private _hide;
|
|
9
|
-
private _closeDropdown;
|
|
10
|
-
protected render(): TemplateResult;
|
|
11
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { DROPDOWN_BACKDROP_CLASS, DROPDOWN_CONTAINER_NAME, DROPDOWN_EVENTS } from '@phoenixRoot/components/dropdown/dropdown_constants';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import './dropdown_types';
|
|
5
|
-
import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element';
|
|
6
|
-
import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
|
|
7
|
-
import { property } from 'lit/decorators';
|
|
8
|
-
let HDropdownBackdrop = class HDropdownBackdrop extends PhoenixLightLitElement {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.visible = false;
|
|
12
|
-
this._show = () => {
|
|
13
|
-
this.visible = true;
|
|
14
|
-
};
|
|
15
|
-
this._hide = () => {
|
|
16
|
-
this.visible = false;
|
|
17
|
-
};
|
|
18
|
-
this._closeDropdown = () => {
|
|
19
|
-
const dropdowns = document.querySelectorAll(DROPDOWN_CONTAINER_NAME);
|
|
20
|
-
dropdowns.forEach((dropdown) => {
|
|
21
|
-
const opened = dropdown.getAttribute('opened');
|
|
22
|
-
if (opened !== null)
|
|
23
|
-
dropdown.hide();
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
connectedCallback() {
|
|
28
|
-
super.connectedCallback();
|
|
29
|
-
document.addEventListener(DROPDOWN_EVENTS.show, this._show);
|
|
30
|
-
document.addEventListener(DROPDOWN_EVENTS.hide, this._hide);
|
|
31
|
-
}
|
|
32
|
-
disconnectedCallback() {
|
|
33
|
-
super.disconnectedCallback();
|
|
34
|
-
document.removeEventListener(DROPDOWN_EVENTS.show, this._show);
|
|
35
|
-
document.removeEventListener(DROPDOWN_EVENTS.hide, this._hide);
|
|
36
|
-
}
|
|
37
|
-
render() {
|
|
38
|
-
return html ` <div
|
|
39
|
-
aria-hidden="true"
|
|
40
|
-
?hidden="${!this.visible}"
|
|
41
|
-
@click="${this._closeDropdown}"
|
|
42
|
-
class="${DROPDOWN_BACKDROP_CLASS}"
|
|
43
|
-
></div>`;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
__decorate([
|
|
47
|
-
property({ type: Boolean }),
|
|
48
|
-
__metadata("design:type", Object)
|
|
49
|
-
], HDropdownBackdrop.prototype, "visible", void 0);
|
|
50
|
-
HDropdownBackdrop = __decorate([
|
|
51
|
-
phoenixCustomElement('h-dropdown-backdrop')
|
|
52
|
-
], HDropdownBackdrop);
|
|
53
|
-
export { HDropdownBackdrop };
|
|
54
|
-
//# sourceMappingURL=dropdown_backdrop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown_backdrop.js","sourceRoot":"","sources":["../../../../../../../src/components/dropdown/dropdown_backdrop.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACxI,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3C,OAA0B,kBAAkB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,sBAAsB;IAA7D;;QAEI,YAAO,GAAG,KAAK,CAAC;QAgBR,UAAK,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEM,UAAK,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;YAErE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,MAAM,KAAK,IAAI;oBAAG,QAAiC,CAAC,IAAI,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IAUN,CAAC;IAvCU,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAEM,oBAAoB;QACvB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE7B,QAAQ,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,QAAQ,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IAmBS,MAAM;QACZ,OAAO,IAAI,CAAA;;uBAEI,CAAC,IAAI,CAAC,OAAO;sBACd,IAAI,CAAC,cAAc;qBACpB,uBAAuB;gBAC5B,CAAC;IACb,CAAC;CACJ,CAAA;AAzCG;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;kDACZ;AAFP,iBAAiB;IAD7B,oBAAoB,CAAC,qBAAqB,CAAC;GAC/B,iBAAiB,CA2C7B;SA3CY,iBAAiB"}
|
|
@@ -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
|
-
}
|