@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,91 @@
|
|
|
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 backdrop_constants = require('./backdrop_constants.js');
|
|
11
|
+
|
|
12
|
+
exports.HBackdrop = class HBackdrop extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.visible = false;
|
|
16
|
+
this.onClickArray = [];
|
|
17
|
+
this._backdropLayerCounter = 0;
|
|
18
|
+
this._appendBackdrop = () => {
|
|
19
|
+
const $backdrop = document.querySelector(backdrop_constants.BACKDROP_NAME);
|
|
20
|
+
if (!$backdrop) {
|
|
21
|
+
const $newBackdrop = document.createElement(backdrop_constants.BACKDROP_NAME);
|
|
22
|
+
document.body.appendChild($newBackdrop);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
this._show = () => {
|
|
26
|
+
this._backdropLayerCounter += 1;
|
|
27
|
+
this.visible = true;
|
|
28
|
+
};
|
|
29
|
+
this._hide = () => {
|
|
30
|
+
this._backdropLayerCounter -= 1;
|
|
31
|
+
if (this._backdropLayerCounter !== 0)
|
|
32
|
+
return;
|
|
33
|
+
this.visible = false;
|
|
34
|
+
};
|
|
35
|
+
this._dispatchBackdropClickedEvent = () => {
|
|
36
|
+
const backdropClickedEvent = new CustomEvent(backdrop_constants.BACKDROP_EVENTS.clicked, {
|
|
37
|
+
bubbles: true
|
|
38
|
+
});
|
|
39
|
+
document.dispatchEvent(backdropClickedEvent);
|
|
40
|
+
};
|
|
41
|
+
this._appendBackdrop();
|
|
42
|
+
document.addEventListener(backdrop_constants.BACKDROP_EVENTS.show, this._show);
|
|
43
|
+
document.addEventListener(backdrop_constants.BACKDROP_EVENTS.hide, this._hide);
|
|
44
|
+
}
|
|
45
|
+
disconnectedCallback() {
|
|
46
|
+
super.disconnectedCallback();
|
|
47
|
+
document.removeEventListener(backdrop_constants.BACKDROP_EVENTS.show, this._show);
|
|
48
|
+
document.removeEventListener(backdrop_constants.BACKDROP_EVENTS.hide, this._hide);
|
|
49
|
+
}
|
|
50
|
+
updated() {
|
|
51
|
+
if (this.visible) {
|
|
52
|
+
this._disableScrolling();
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this._enableScrolling();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
_disableScrolling() {
|
|
59
|
+
document.body.style.overflow = 'hidden';
|
|
60
|
+
document.body.style.paddingRight = '15px';
|
|
61
|
+
}
|
|
62
|
+
_enableScrolling() {
|
|
63
|
+
document.body.style.removeProperty('overflow');
|
|
64
|
+
document.body.style.removeProperty('padding-right');
|
|
65
|
+
}
|
|
66
|
+
render() {
|
|
67
|
+
return lit.html ` <div
|
|
68
|
+
aria-hidden="true"
|
|
69
|
+
?hidden="${!this.visible}"
|
|
70
|
+
@click="${this._dispatchBackdropClickedEvent}"
|
|
71
|
+
class="${backdrop_constants.BACKDROP_CLASS}"
|
|
72
|
+
></div>`;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
tslib_es6.__decorate([
|
|
76
|
+
decorators.property({ type: Boolean }),
|
|
77
|
+
tslib_es6.__metadata("design:type", Object)
|
|
78
|
+
], exports.HBackdrop.prototype, "visible", void 0);
|
|
79
|
+
tslib_es6.__decorate([
|
|
80
|
+
decorators.state(),
|
|
81
|
+
tslib_es6.__metadata("design:type", Array)
|
|
82
|
+
], exports.HBackdrop.prototype, "onClickArray", void 0);
|
|
83
|
+
tslib_es6.__decorate([
|
|
84
|
+
decorators.state(),
|
|
85
|
+
tslib_es6.__metadata("design:type", Object)
|
|
86
|
+
], exports.HBackdrop.prototype, "_backdropLayerCounter", void 0);
|
|
87
|
+
exports.HBackdrop = tslib_es6.__decorate([
|
|
88
|
+
phoenix_custom_element.phoenixCustomElement('h-backdrop'),
|
|
89
|
+
tslib_es6.__metadata("design:paramtypes", [])
|
|
90
|
+
], exports.HBackdrop);
|
|
91
|
+
//# sourceMappingURL=backdrop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const BACKDROP_NAME = 'h-backdrop';
|
|
6
|
+
const BACKDROP_CLASS = 'backdrop';
|
|
7
|
+
const BACKDROP_EVENT = 'backdrop';
|
|
8
|
+
const BACKDROP_EVENTS = {
|
|
9
|
+
show: `${BACKDROP_EVENT}.show`,
|
|
10
|
+
hide: `${BACKDROP_EVENT}.hide`,
|
|
11
|
+
clicked: `${BACKDROP_EVENT}.clicked`
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.BACKDROP_CLASS = BACKDROP_CLASS;
|
|
15
|
+
exports.BACKDROP_EVENTS = BACKDROP_EVENTS;
|
|
16
|
+
exports.BACKDROP_NAME = BACKDROP_NAME;
|
|
17
|
+
//# sourceMappingURL=backdrop_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;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -8,11 +8,12 @@ var decorators = require('lit/decorators');
|
|
|
8
8
|
var phoenix_light_lit_element = require('../../core/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
|
+
var backdrop_constants = require('../backdrop/backdrop_constants.js');
|
|
11
12
|
var dropdown_constants = require('./dropdown_constants.js');
|
|
13
|
+
var global_constants = require('../../global_constants.js');
|
|
12
14
|
var click_outside_controller_messages = require('../../controllers/click_outside_controller/click_outside_controller_messages.js');
|
|
13
15
|
var click_outside_controller = require('../../controllers/click_outside_controller/click_outside_controller.js');
|
|
14
16
|
var relative_position_controller_constants = require('../../controllers/relative_position_controller/relative_position_controller_constants.js');
|
|
15
|
-
var global_constants = require('../../global_constants.js');
|
|
16
17
|
var relative_position_controller = require('../../controllers/relative_position_controller/relative_position_controller.js');
|
|
17
18
|
|
|
18
19
|
exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
@@ -28,10 +29,6 @@ exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLig
|
|
|
28
29
|
this.opened ? this.hide() : this.show();
|
|
29
30
|
};
|
|
30
31
|
this.show = async () => {
|
|
31
|
-
const showDropdownEvent = new Event(dropdown_constants.DROPDOWN_EVENTS.show, {
|
|
32
|
-
bubbles: true
|
|
33
|
-
});
|
|
34
|
-
this.dispatchEvent(showDropdownEvent);
|
|
35
32
|
return new Promise((resolve) => {
|
|
36
33
|
var _a;
|
|
37
34
|
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.add(dropdown_constants.DROPDOWN_CONTENT_VISIBLE_CLASS, `${dropdown_constants.DROPDOWN_CONTENT_SHOW}-${this.transition}-start`);
|
|
@@ -44,42 +41,60 @@ exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLig
|
|
|
44
41
|
setTimeout(() => {
|
|
45
42
|
var _a;
|
|
46
43
|
this.opened = true;
|
|
47
|
-
this.
|
|
44
|
+
this._dispatchShowDropdownEvent();
|
|
48
45
|
(_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`);
|
|
49
46
|
resolve();
|
|
50
47
|
}, transitionDuration);
|
|
51
48
|
});
|
|
52
49
|
});
|
|
53
50
|
};
|
|
54
|
-
this.
|
|
51
|
+
this._dispatchShowDropdownEvent = () => {
|
|
52
|
+
const showDropdownEvent = new Event(dropdown_constants.DROPDOWN_EVENTS.show, {
|
|
53
|
+
bubbles: true
|
|
54
|
+
});
|
|
55
|
+
this.dispatchEvent(showDropdownEvent);
|
|
56
|
+
if (window.innerWidth >= global_constants.BREAKPOINTS.xs)
|
|
57
|
+
return;
|
|
58
|
+
const showBackdropEvent = new Event(backdrop_constants.BACKDROP_EVENTS.show, {
|
|
59
|
+
bubbles: true
|
|
60
|
+
});
|
|
61
|
+
document.dispatchEvent(showBackdropEvent);
|
|
62
|
+
};
|
|
63
|
+
this.hide = async () => new Promise((resolve) => {
|
|
64
|
+
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
65
|
+
window.requestAnimationFrame(() => {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-start`);
|
|
68
|
+
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(`${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
69
|
+
setTimeout(() => {
|
|
70
|
+
var _a;
|
|
71
|
+
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-start`, `${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
72
|
+
this.opened = false;
|
|
73
|
+
this._dispatchHideDropdownEvent();
|
|
74
|
+
resolve();
|
|
75
|
+
}, transitionDuration);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
this._dispatchHideDropdownEvent = () => {
|
|
55
79
|
const hideDropdownEvent = new Event(dropdown_constants.DROPDOWN_EVENTS.hide, {
|
|
56
80
|
bubbles: true
|
|
57
81
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(`${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
64
|
-
setTimeout(() => {
|
|
65
|
-
var _a;
|
|
66
|
-
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-start`, `${dropdown_constants.DROPDOWN_CONTENT_HIDE}-${this.transition}-end`);
|
|
67
|
-
this.opened = false;
|
|
68
|
-
this.dispatchEvent(hideDropdownEvent);
|
|
69
|
-
resolve();
|
|
70
|
-
}, transitionDuration);
|
|
71
|
-
});
|
|
82
|
+
this.dispatchEvent(hideDropdownEvent);
|
|
83
|
+
if (window.innerWidth >= global_constants.BREAKPOINTS.xs)
|
|
84
|
+
return;
|
|
85
|
+
const hideBackdropEvent = new Event(backdrop_constants.BACKDROP_EVENTS.hide, {
|
|
86
|
+
bubbles: true
|
|
72
87
|
});
|
|
88
|
+
document.dispatchEvent(hideBackdropEvent);
|
|
73
89
|
};
|
|
74
90
|
this._hoverToggle = async (ev) => {
|
|
91
|
+
if (window.innerWidth < global_constants.BREAKPOINTS.xs)
|
|
92
|
+
return;
|
|
75
93
|
if (!ev.target) {
|
|
76
94
|
await this.hide();
|
|
77
95
|
return;
|
|
78
96
|
}
|
|
79
|
-
const isHoveredWithinDropdown = this.
|
|
80
|
-
(this.$dropdownContent && this._isDescendantOfParent(this.$dropdownContent, ev.target)) ||
|
|
81
|
-
ev.target === this ||
|
|
82
|
-
ev.target === this.$dropdownContent;
|
|
97
|
+
const isHoveredWithinDropdown = this._isHoveredWithinDropdown(ev.target);
|
|
83
98
|
if (isHoveredWithinDropdown && !this.opened) {
|
|
84
99
|
await this.show();
|
|
85
100
|
return;
|
|
@@ -89,15 +104,6 @@ exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLig
|
|
|
89
104
|
return;
|
|
90
105
|
}
|
|
91
106
|
};
|
|
92
|
-
this._isDescendantOfParent = function (parent, child) {
|
|
93
|
-
let parentNode = child.parentNode;
|
|
94
|
-
while (parentNode) {
|
|
95
|
-
if (parentNode === parent)
|
|
96
|
-
return true;
|
|
97
|
-
parentNode = parentNode.parentNode;
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
100
|
-
};
|
|
101
107
|
this._positionDropdownContent = () => {
|
|
102
108
|
requestAnimationFrame(() => {
|
|
103
109
|
this.opened && this._positionController.position();
|
|
@@ -107,11 +113,13 @@ exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLig
|
|
|
107
113
|
connectedCallback() {
|
|
108
114
|
super.connectedCallback();
|
|
109
115
|
this._appendDropdownPortal();
|
|
110
|
-
this._appendDropdownBackdrop();
|
|
111
116
|
if (!this.$dropdownContent)
|
|
112
117
|
this.$dropdownContent = this.querySelector(dropdown_constants.DROPDOWN_CONTENT_NAME);
|
|
113
118
|
if (!this.$dropdownToggler)
|
|
114
119
|
this.$dropdownToggler = this.querySelector(dropdown_constants.DROPDOWN_TOGGLER_NAME);
|
|
120
|
+
const nestedDropdown = this.$dropdownContent.querySelector(dropdown_constants.DROPDOWN_CONTAINER_NAME);
|
|
121
|
+
if (nestedDropdown)
|
|
122
|
+
this.$nestedDropdownContent = nestedDropdown.querySelector(dropdown_constants.DROPDOWN_CONTENT_NAME);
|
|
115
123
|
if (!this._positionController)
|
|
116
124
|
this._positionController = new relative_position_controller.RelativePositionController({
|
|
117
125
|
host: this,
|
|
@@ -135,36 +143,40 @@ exports.HDropdown = class HDropdown extends phoenix_light_lit_element.PhoenixLig
|
|
|
135
143
|
document.body.appendChild($portalTarget);
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
|
-
_appendDropdownBackdrop() {
|
|
139
|
-
const $dropdownBackdrop = document.querySelector(dropdown_constants.DROPDOWN_BACKDROP_NAME);
|
|
140
|
-
if (!$dropdownBackdrop) {
|
|
141
|
-
const $backdrop = document.createElement(dropdown_constants.DROPDOWN_BACKDROP_NAME);
|
|
142
|
-
document.body.appendChild($backdrop);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
146
|
_setupListeners() {
|
|
146
147
|
var _a;
|
|
147
148
|
this.addEventListener(click_outside_controller_messages.CLICK_OUTSIDE_CONTROLLER_MESSAGES.clickedOutside, this._handleClickOutside);
|
|
148
149
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.toggle);
|
|
149
|
-
if (this.toggleOnHover
|
|
150
|
+
if (this.toggleOnHover)
|
|
150
151
|
document.addEventListener('mouseover', this._hoverToggle);
|
|
151
|
-
}
|
|
152
152
|
}
|
|
153
|
-
_handleClickOutside() {
|
|
154
|
-
var _a;
|
|
153
|
+
_handleClickOutside(ev) {
|
|
154
|
+
var _a, _b;
|
|
155
155
|
if (!this.opened)
|
|
156
156
|
return;
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
const target = ev.detail.target;
|
|
158
|
+
const clickedWithinNestedDropdown = this.$nestedDropdownContent && this.$nestedDropdownContent.contains(target);
|
|
159
|
+
const shouldHideElements = !((_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.contains(target)) && !this.contains(target) && !clickedWithinNestedDropdown;
|
|
160
|
+
if (shouldHideElements) {
|
|
161
|
+
this.hide();
|
|
162
|
+
(_b = this.$dropdownToggler) === null || _b === void 0 ? void 0 : _b.setAttribute('aria-expanded', 'false');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
_isHoveredWithinDropdown(element) {
|
|
166
|
+
const isDescendantOfDropdown = element.closest(`${dropdown_constants.DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null;
|
|
167
|
+
const isDescendantOfContent = this.$dropdownContent && element.closest(`${dropdown_constants.DROPDOWN_CONTENT_NAME}[name="${this.name}"]`) !== null;
|
|
168
|
+
return isDescendantOfDropdown || isDescendantOfContent || element === this || element === this.$dropdownContent;
|
|
159
169
|
}
|
|
160
170
|
disconnectedCallback() {
|
|
161
171
|
var _a;
|
|
162
172
|
super.disconnectedCallback();
|
|
163
173
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.removeEventListener('toggle', this.toggle);
|
|
164
|
-
if (this.toggleOnHover
|
|
174
|
+
if (this.toggleOnHover)
|
|
165
175
|
document.removeEventListener('mouseover', this._hoverToggle);
|
|
176
|
+
if (this.opened) {
|
|
177
|
+
this.opened = false;
|
|
178
|
+
this._dispatchHideDropdownEvent();
|
|
166
179
|
}
|
|
167
|
-
this.opened = false;
|
|
168
180
|
}
|
|
169
181
|
render() {
|
|
170
182
|
super.render();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -6,7 +6,6 @@ const DROPDOWN_NAME = 'dropdown';
|
|
|
6
6
|
const DROPDOWN_CONTAINER_NAME = `h-${DROPDOWN_NAME}`;
|
|
7
7
|
const DROPDOWN_TOGGLER_NAME = `${DROPDOWN_CONTAINER_NAME}-toggler`;
|
|
8
8
|
const DROPDOWN_CONTENT_NAME = `${DROPDOWN_CONTAINER_NAME}-content`;
|
|
9
|
-
const DROPDOWN_BACKDROP_NAME = `${DROPDOWN_CONTAINER_NAME}-backdrop`;
|
|
10
9
|
const DEFAULT_DROPDOWN_PORTAL_NAME = 'dropdown-portal';
|
|
11
10
|
const DROPDOWN_EVENT = 'dropdown';
|
|
12
11
|
const DROPDOWN_EVENTS = {
|
|
@@ -22,7 +21,6 @@ const DROPDOWN_CONTENT_SHOW = `${DROPDOWN_CONTENT_CLASS}_show`;
|
|
|
22
21
|
const DROPDOWN_CONTENT_HIDE = `${DROPDOWN_CONTENT_CLASS}_hide`;
|
|
23
22
|
|
|
24
23
|
exports.DEFAULT_DROPDOWN_PORTAL_NAME = DEFAULT_DROPDOWN_PORTAL_NAME;
|
|
25
|
-
exports.DROPDOWN_BACKDROP_NAME = DROPDOWN_BACKDROP_NAME;
|
|
26
24
|
exports.DROPDOWN_CLASS = DROPDOWN_CLASS;
|
|
27
25
|
exports.DROPDOWN_CONTAINER_NAME = DROPDOWN_CONTAINER_NAME;
|
|
28
26
|
exports.DROPDOWN_CONTENT_CLASS = DROPDOWN_CONTENT_CLASS;
|
|
@@ -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;
|
|
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;"}
|
|
@@ -10,6 +10,7 @@ var phoenix_custom_element = require('../../core/decorators/phoenix_custom_eleme
|
|
|
10
10
|
var portal_constants = require('../portal/portal_constants.js');
|
|
11
11
|
var modal_constants = require('./modal_constants.js');
|
|
12
12
|
var ref = require('../../../../../external/lit-html/directives/ref.js');
|
|
13
|
+
var backdrop_constants = require('../backdrop/backdrop_constants.js');
|
|
13
14
|
|
|
14
15
|
var HModal_1;
|
|
15
16
|
exports.HModal = HModal_1 = class HModal extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
@@ -93,26 +94,21 @@ exports.HModal = HModal_1 = class HModal extends phoenix_light_lit_element.Phoen
|
|
|
93
94
|
document.body.appendChild($portalTarget);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
static _appendModalsBackdrop() {
|
|
97
|
-
const $modalsBackdrop = document.querySelector('h-modal-backdrop');
|
|
98
|
-
if (!$modalsBackdrop) {
|
|
99
|
-
const $backdrop = document.createElement('h-modal-backdrop');
|
|
100
|
-
document.body.appendChild($backdrop);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
97
|
static isSomeModalOpen() {
|
|
104
98
|
return HModal_1.openModals.some((modal) => modal.opened);
|
|
105
99
|
}
|
|
106
100
|
connectedCallback() {
|
|
107
101
|
super.connectedCallback();
|
|
108
102
|
HModal_1._appendModalsPortal();
|
|
109
|
-
HModal_1._appendModalsBackdrop();
|
|
110
103
|
document.addEventListener('keydown', this._keepFocusWithinModal);
|
|
111
104
|
document.addEventListener(modal_constants.MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
112
105
|
}
|
|
113
106
|
disconnectedCallback() {
|
|
114
107
|
super.disconnectedCallback();
|
|
115
|
-
this[modal_constants.MODAL_OPENED_PROP]
|
|
108
|
+
if (this[modal_constants.MODAL_OPENED_PROP]) {
|
|
109
|
+
this[modal_constants.MODAL_OPENED_PROP] = false;
|
|
110
|
+
this._dispatchModalClosedEvent();
|
|
111
|
+
}
|
|
116
112
|
document.removeEventListener(modal_constants.MODAL_EVENTS.close, this._handleCloseFromCloseComponent);
|
|
117
113
|
document.removeEventListener('keydown', this._bindCloseOnEsc);
|
|
118
114
|
}
|
|
@@ -139,7 +135,6 @@ exports.HModal = HModal_1 = class HModal extends phoenix_light_lit_element.Phoen
|
|
|
139
135
|
setTimeout(() => {
|
|
140
136
|
var _a;
|
|
141
137
|
this[modal_constants.MODAL_OPENED_PROP] = true;
|
|
142
|
-
this._dispatchModalOpenedEvent();
|
|
143
138
|
(_a = this._contentRef.value) === null || _a === void 0 ? void 0 : _a.classList.remove(`modal_show-${this.transition}-start`, `modal_show-${this.transition}-end`);
|
|
144
139
|
resolve();
|
|
145
140
|
}, transitionDuration);
|
|
@@ -151,6 +146,10 @@ exports.HModal = HModal_1 = class HModal extends phoenix_light_lit_element.Phoen
|
|
|
151
146
|
bubbles: true
|
|
152
147
|
});
|
|
153
148
|
this.dispatchEvent(openModalEvent);
|
|
149
|
+
const openBackdropEvent = new CustomEvent(backdrop_constants.BACKDROP_EVENTS.show, {
|
|
150
|
+
bubbles: true
|
|
151
|
+
});
|
|
152
|
+
document.dispatchEvent(openBackdropEvent);
|
|
154
153
|
}
|
|
155
154
|
async close() {
|
|
156
155
|
return new Promise((resolve) => {
|
|
@@ -174,6 +173,10 @@ exports.HModal = HModal_1 = class HModal extends phoenix_light_lit_element.Phoen
|
|
|
174
173
|
bubbles: true
|
|
175
174
|
});
|
|
176
175
|
this.dispatchEvent(closeModalEvent);
|
|
176
|
+
const closeBackdropEvent = new CustomEvent(backdrop_constants.BACKDROP_EVENTS.hide, {
|
|
177
|
+
bubbles: true
|
|
178
|
+
});
|
|
179
|
+
document.dispatchEvent(closeBackdropEvent);
|
|
177
180
|
}
|
|
178
181
|
render() {
|
|
179
182
|
return lit.html `
|
|
@@ -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,kBAAkB,oDAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kBAAkB,oDAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -19,8 +19,10 @@ class ClickOutsideController {
|
|
|
19
19
|
name: this._name
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const target = ev.target;
|
|
23
|
+
const isContainerWithinTarget = target.contains(tslib_es6.__classPrivateFieldGet(this, _ClickOutsideController_container, "f")) && target !== tslib_es6.__classPrivateFieldGet(this, _ClickOutsideController_container, "f");
|
|
24
|
+
const isTargetWithinContainer = tslib_es6.__classPrivateFieldGet(this, _ClickOutsideController_container, "f").contains(target);
|
|
25
|
+
if (isContainerWithinTarget || !isTargetWithinContainer) {
|
|
24
26
|
tslib_es6.__classPrivateFieldGet(this, _ClickOutsideController_host, "f").dispatchEvent(clickedOutsideEvent);
|
|
25
27
|
}
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const BREAKPOINTS = {
|
|
6
|
+
xs: 576,
|
|
7
|
+
sm: 768,
|
|
8
|
+
md: 1000,
|
|
9
|
+
lg: 1200,
|
|
10
|
+
xl: 1440,
|
|
11
|
+
xxl: 1920
|
|
12
|
+
};
|
|
6
13
|
|
|
7
|
-
exports.
|
|
14
|
+
exports.BREAKPOINTS = BREAKPOINTS;
|
|
8
15
|
//# sourceMappingURL=global_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;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;"}
|
|
@@ -10,7 +10,6 @@ var portal_target = require('./components/portal/portal_target.js');
|
|
|
10
10
|
var portal = require('./components/portal/portal.js');
|
|
11
11
|
var modal = require('./components/modal/modal.js');
|
|
12
12
|
var modal_opener = require('./components/modal/modal_opener.js');
|
|
13
|
-
var modal_backdrop = require('./components/modal/modal_backdrop.js');
|
|
14
13
|
var modal_body = require('./components/modal/modal_body.js');
|
|
15
14
|
var modal_footer = require('./components/modal/modal_footer.js');
|
|
16
15
|
var modal_header = require('./components/modal/modal_header.js');
|
|
@@ -23,6 +22,7 @@ var dropdown = require('./components/dropdown/dropdown.js');
|
|
|
23
22
|
var toggle_element_aria_controller = require('./controllers/toggle_element_aria_controller/toggle_element_aria_controller.js');
|
|
24
23
|
var dropdown_toggler = require('./components/dropdown/dropdown_toggler.js');
|
|
25
24
|
var dropdown_content = require('./components/dropdown/dropdown_content.js');
|
|
25
|
+
var backdrop = require('./components/backdrop/backdrop.js');
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
@@ -59,12 +59,6 @@ Object.defineProperty(exports, 'HModalOpener', {
|
|
|
59
59
|
return modal_opener.HModalOpener;
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
|
-
Object.defineProperty(exports, 'HModalBackdrop', {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
get: function () {
|
|
65
|
-
return modal_backdrop.HModalBackdrop;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
62
|
Object.defineProperty(exports, 'HModalBody', {
|
|
69
63
|
enumerable: true,
|
|
70
64
|
get: function () {
|
|
@@ -112,4 +106,10 @@ Object.defineProperty(exports, 'HDropdownContent', {
|
|
|
112
106
|
return dropdown_content.HDropdownContent;
|
|
113
107
|
}
|
|
114
108
|
});
|
|
109
|
+
Object.defineProperty(exports, 'HBackdrop', {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () {
|
|
112
|
+
return backdrop.HBackdrop;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
115
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element";
|
|
3
|
+
export declare class HBackdrop extends PhoenixLightLitElement {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
onClickArray: (() => void)[];
|
|
6
|
+
private _backdropLayerCounter;
|
|
7
|
+
constructor();
|
|
8
|
+
disconnectedCallback(): void;
|
|
9
|
+
private _appendBackdrop;
|
|
10
|
+
private _show;
|
|
11
|
+
private _hide;
|
|
12
|
+
protected updated(): void;
|
|
13
|
+
private _disableScrolling;
|
|
14
|
+
private _enableScrolling;
|
|
15
|
+
private _dispatchBackdropClickedEvent;
|
|
16
|
+
protected render(): TemplateResult;
|
|
17
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { property, state } 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 { BACKDROP_NAME, BACKDROP_EVENTS, BACKDROP_CLASS } from './backdrop_constants.js';
|
|
7
|
+
|
|
8
|
+
let HBackdrop = class HBackdrop extends PhoenixLightLitElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.visible = false;
|
|
12
|
+
this.onClickArray = [];
|
|
13
|
+
this._backdropLayerCounter = 0;
|
|
14
|
+
this._appendBackdrop = () => {
|
|
15
|
+
const $backdrop = document.querySelector(BACKDROP_NAME);
|
|
16
|
+
if (!$backdrop) {
|
|
17
|
+
const $newBackdrop = document.createElement(BACKDROP_NAME);
|
|
18
|
+
document.body.appendChild($newBackdrop);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
this._show = () => {
|
|
22
|
+
this._backdropLayerCounter += 1;
|
|
23
|
+
this.visible = true;
|
|
24
|
+
};
|
|
25
|
+
this._hide = () => {
|
|
26
|
+
this._backdropLayerCounter -= 1;
|
|
27
|
+
if (this._backdropLayerCounter !== 0)
|
|
28
|
+
return;
|
|
29
|
+
this.visible = false;
|
|
30
|
+
};
|
|
31
|
+
this._dispatchBackdropClickedEvent = () => {
|
|
32
|
+
const backdropClickedEvent = new CustomEvent(BACKDROP_EVENTS.clicked, {
|
|
33
|
+
bubbles: true
|
|
34
|
+
});
|
|
35
|
+
document.dispatchEvent(backdropClickedEvent);
|
|
36
|
+
};
|
|
37
|
+
this._appendBackdrop();
|
|
38
|
+
document.addEventListener(BACKDROP_EVENTS.show, this._show);
|
|
39
|
+
document.addEventListener(BACKDROP_EVENTS.hide, this._hide);
|
|
40
|
+
}
|
|
41
|
+
disconnectedCallback() {
|
|
42
|
+
super.disconnectedCallback();
|
|
43
|
+
document.removeEventListener(BACKDROP_EVENTS.show, this._show);
|
|
44
|
+
document.removeEventListener(BACKDROP_EVENTS.hide, this._hide);
|
|
45
|
+
}
|
|
46
|
+
updated() {
|
|
47
|
+
if (this.visible) {
|
|
48
|
+
this._disableScrolling();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this._enableScrolling();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
_disableScrolling() {
|
|
55
|
+
document.body.style.overflow = 'hidden';
|
|
56
|
+
document.body.style.paddingRight = '15px';
|
|
57
|
+
}
|
|
58
|
+
_enableScrolling() {
|
|
59
|
+
document.body.style.removeProperty('overflow');
|
|
60
|
+
document.body.style.removeProperty('padding-right');
|
|
61
|
+
}
|
|
62
|
+
render() {
|
|
63
|
+
return html ` <div
|
|
64
|
+
aria-hidden="true"
|
|
65
|
+
?hidden="${!this.visible}"
|
|
66
|
+
@click="${this._dispatchBackdropClickedEvent}"
|
|
67
|
+
class="${BACKDROP_CLASS}"
|
|
68
|
+
></div>`;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
__decorate([
|
|
72
|
+
property({ type: Boolean }),
|
|
73
|
+
__metadata("design:type", Object)
|
|
74
|
+
], HBackdrop.prototype, "visible", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
state(),
|
|
77
|
+
__metadata("design:type", Array)
|
|
78
|
+
], HBackdrop.prototype, "onClickArray", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
state(),
|
|
81
|
+
__metadata("design:type", Object)
|
|
82
|
+
], HBackdrop.prototype, "_backdropLayerCounter", void 0);
|
|
83
|
+
HBackdrop = __decorate([
|
|
84
|
+
phoenixCustomElement('h-backdrop'),
|
|
85
|
+
__metadata("design:paramtypes", [])
|
|
86
|
+
], HBackdrop);
|
|
87
|
+
|
|
88
|
+
export { HBackdrop };
|
|
89
|
+
//# sourceMappingURL=backdrop.js.map
|
|
@@ -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;"}
|
|
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;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const BACKDROP_NAME = 'h-backdrop';
|
|
2
|
+
const BACKDROP_CLASS = 'backdrop';
|
|
3
|
+
const BACKDROP_EVENT = 'backdrop';
|
|
4
|
+
const BACKDROP_EVENTS = {
|
|
5
|
+
show: `${BACKDROP_EVENT}.show`,
|
|
6
|
+
hide: `${BACKDROP_EVENT}.hide`,
|
|
7
|
+
clicked: `${BACKDROP_EVENT}.clicked`
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { BACKDROP_CLASS, BACKDROP_EVENTS, BACKDROP_NAME };
|
|
11
|
+
//# sourceMappingURL=backdrop_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;"}
|