@shoper/phoenix_design_system 0.19.2 → 0.19.3-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.
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +64 -2
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +0 -1
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +12 -2
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +64 -2
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +0 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.d.ts +5 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab.d.ts +14 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js +70 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.d.ts +4 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js +5 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab_panel.d.ts +9 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js +33 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +15 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs.js +103 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.d.ts +3 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js +4 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_types.d.ts +7 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js +2 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
|
|
6
|
+
require('lit');
|
|
7
|
+
var decorators = require('lit/decorators');
|
|
6
8
|
var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
7
9
|
var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
|
|
8
10
|
var portal_constants = require('../portal/portal_constants.js');
|
|
9
11
|
var litHtml = require('lit-html');
|
|
10
12
|
var backdrop_controller = require('../backdrop/controller/backdrop_controller.js');
|
|
11
13
|
var decorators_js = require('@lit/reactive-element/decorators.js');
|
|
14
|
+
var ref_js = require('lit-html/directives/ref.js');
|
|
12
15
|
var global_constants = require('../../global_constants.js');
|
|
13
16
|
var dropdown_constants = require('./dropdown_constants.js');
|
|
14
17
|
var relative_position_controller_constants = require('../../controllers/relative_position_controller/relative_position_controller_constants.js');
|
|
@@ -27,6 +30,10 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
27
30
|
this.transition = 'direction';
|
|
28
31
|
this.portalTarget = dropdown_constants.DEFAULT_DROPDOWN_PORTAL_NAME;
|
|
29
32
|
this._backdropController = new backdrop_controller.BackdropController();
|
|
33
|
+
this._firstFocusableElement = undefined;
|
|
34
|
+
this._lastFocusableElement = undefined;
|
|
35
|
+
this._focusSentinelStart = ref_js.createRef();
|
|
36
|
+
this._focusSentinelEnd = ref_js.createRef();
|
|
30
37
|
this._handleClickOutside = async (target) => {
|
|
31
38
|
var _a, _b;
|
|
32
39
|
if (!this.opened)
|
|
@@ -52,10 +59,11 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
52
59
|
}, 0);
|
|
53
60
|
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
54
61
|
setTimeout(() => {
|
|
55
|
-
var _a;
|
|
62
|
+
var _a, _b;
|
|
56
63
|
this._dispatchShowDropdownEvent();
|
|
57
64
|
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${dropdown_constants.DROPDOWN_CONTENT_SHOW}-${this.transition}-start`, `${dropdown_constants.DROPDOWN_CONTENT_SHOW}-${this.transition}-end`);
|
|
58
65
|
this._toggleScroll();
|
|
66
|
+
(_b = this._firstFocusableElement) === null || _b === void 0 ? void 0 : _b.focus();
|
|
59
67
|
resolve();
|
|
60
68
|
}, transitionDuration);
|
|
61
69
|
});
|
|
@@ -82,8 +90,10 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
82
90
|
}
|
|
83
91
|
await this.hide();
|
|
84
92
|
};
|
|
85
|
-
this.hide = async () => new Promise((resolve) => {
|
|
93
|
+
this.hide = async (ev) => new Promise((resolve) => {
|
|
86
94
|
var _a;
|
|
95
|
+
if (ev && ev.detail.name !== this.name)
|
|
96
|
+
return;
|
|
87
97
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
|
|
88
98
|
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
89
99
|
window.requestAnimationFrame(() => {
|
|
@@ -124,6 +134,23 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
124
134
|
return;
|
|
125
135
|
await this.hide();
|
|
126
136
|
};
|
|
137
|
+
this._handleFocusWithinDropdown = async (ev) => {
|
|
138
|
+
var _a;
|
|
139
|
+
const hasTabBeenPressed = ev.key.toLowerCase() === 'tab';
|
|
140
|
+
if (hasTabBeenPressed) {
|
|
141
|
+
if (ev.shiftKey) {
|
|
142
|
+
if (document.activeElement === this._firstFocusableElement) {
|
|
143
|
+
(_a = this._lastFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
144
|
+
ev.preventDefault();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else if (document.activeElement === this._lastFocusableElement) {
|
|
148
|
+
ev.preventDefault();
|
|
149
|
+
this._focusOnNextSibling(this);
|
|
150
|
+
await this._hideDropdownsSequentially();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
127
154
|
this._hoverToggle = async (ev) => {
|
|
128
155
|
if (window.innerWidth < global_constants.BREAKPOINTS.xs)
|
|
129
156
|
return;
|
|
@@ -148,8 +175,12 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
148
175
|
};
|
|
149
176
|
}
|
|
150
177
|
connectedCallback() {
|
|
178
|
+
var _a;
|
|
151
179
|
super.connectedCallback();
|
|
152
180
|
HDropdown_1._appendDropdownPortal();
|
|
181
|
+
if (!this._rootDropdown)
|
|
182
|
+
this._rootDropdown =
|
|
183
|
+
((_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.tagName.toLowerCase()) === 'h-dropdown-content' ? this._findRootDropdown(this.parentElement) : this;
|
|
153
184
|
if (!this.$dropdownContent)
|
|
154
185
|
this.$dropdownContent = this.querySelector(dropdown_constants.DROPDOWN_CONTENT_NAME);
|
|
155
186
|
if (!this.$dropdownToggler)
|
|
@@ -176,6 +207,11 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
176
207
|
this._setupListeners();
|
|
177
208
|
this._setupInitialDropdownProperties();
|
|
178
209
|
}
|
|
210
|
+
firstUpdated(props) {
|
|
211
|
+
super.firstUpdated(props);
|
|
212
|
+
this._firstFocusableElement = this._focusSentinelStart.value;
|
|
213
|
+
this._lastFocusableElement = this._focusSentinelEnd.value;
|
|
214
|
+
}
|
|
179
215
|
static _appendDropdownPortal() {
|
|
180
216
|
const $dropdownPortalTarget = document.querySelector(`[name="${dropdown_constants.DEFAULT_DROPDOWN_PORTAL_NAME}"]`);
|
|
181
217
|
if (!$dropdownPortalTarget) {
|
|
@@ -184,13 +220,21 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
184
220
|
document.body.appendChild($portalTarget);
|
|
185
221
|
}
|
|
186
222
|
}
|
|
223
|
+
_findRootDropdown(element) {
|
|
224
|
+
var _a;
|
|
225
|
+
if (((_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.tagName.toLowerCase()) !== dropdown_constants.DROPDOWN_CONTENT_NAME && element.tagName.toLowerCase() === dropdown_constants.DROPDOWN_CONTAINER_NAME)
|
|
226
|
+
return element;
|
|
227
|
+
return this._findRootDropdown(element.parentElement || document.body);
|
|
228
|
+
}
|
|
187
229
|
_setupListeners() {
|
|
188
230
|
var _a;
|
|
189
231
|
this.addEventListener(relative_position_controller_constants.RELATIVE_POSITION_CONTROLLER_EVENTS.disabledPositioning, this._handleDisabledPositioning);
|
|
190
232
|
this.addEventListener(relative_position_controller_constants.RELATIVE_POSITION_CONTROLLER_EVENTS.enabledPositioning, this._handleEnabledPositioning);
|
|
191
233
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.addEventListener(dropdown_constants.DROPDOWN_EVENTS.toggle, this.toggle);
|
|
234
|
+
document.addEventListener(dropdown_constants.DROPDOWN_EVENTS.hide, this.hide);
|
|
192
235
|
window.addEventListener('resize', this._observeScrollToggling);
|
|
193
236
|
document.addEventListener('keydown', this._closeDropdownOnEscape);
|
|
237
|
+
document.addEventListener('keydown', this._handleFocusWithinDropdown);
|
|
194
238
|
if (this.toggleOnHover)
|
|
195
239
|
document.addEventListener('mouseover', this._hoverToggle);
|
|
196
240
|
}
|
|
@@ -210,6 +254,12 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
210
254
|
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(global_constants.SCROLLABLE_CLASS_NAME);
|
|
211
255
|
}
|
|
212
256
|
}
|
|
257
|
+
_focusOnNextSibling(el) {
|
|
258
|
+
el.focus();
|
|
259
|
+
if (el === document.activeElement)
|
|
260
|
+
return;
|
|
261
|
+
this._focusOnNextSibling(el.nextElementSibling);
|
|
262
|
+
}
|
|
213
263
|
_isHoveredWithinDropdown(element) {
|
|
214
264
|
var _a;
|
|
215
265
|
if (element === this)
|
|
@@ -239,6 +289,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
239
289
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.removeEventListener(dropdown_constants.DROPDOWN_EVENTS.toggle, this.toggle);
|
|
240
290
|
window.removeEventListener('resize', this._observeScrollToggling);
|
|
241
291
|
document.removeEventListener('keydown', this._closeDropdownOnEscape);
|
|
292
|
+
document.removeEventListener(dropdown_constants.DROPDOWN_EVENTS.hide, this.hide);
|
|
293
|
+
document.removeEventListener('keydown', this._handleFocusWithinDropdown);
|
|
242
294
|
if (this.toggleOnHover)
|
|
243
295
|
document.removeEventListener('mouseover', this._hoverToggle);
|
|
244
296
|
if (this.opened) {
|
|
@@ -251,7 +303,9 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
251
303
|
return litHtml.html `
|
|
252
304
|
${this.getSlot('toggler')}
|
|
253
305
|
<h-portal ?disabled="${!this.opened}" @portal.open="${this._positionDropdownContent}" to="${this.portalTarget}" hidden>
|
|
306
|
+
<div tabindex="0" ${ref_js.ref(this._focusSentinelStart)}></div>
|
|
254
307
|
${this.getSlot('content')}
|
|
308
|
+
<div tabindex="0" ${ref_js.ref(this._focusSentinelEnd)}></div>
|
|
255
309
|
</h-portal>
|
|
256
310
|
`;
|
|
257
311
|
}
|
|
@@ -280,6 +334,14 @@ tslib_es6.__decorate([
|
|
|
280
334
|
decorators_js.property({ type: String }),
|
|
281
335
|
tslib_es6.__metadata("design:type", Object)
|
|
282
336
|
], exports.HDropdown.prototype, "portalTarget", void 0);
|
|
337
|
+
tslib_es6.__decorate([
|
|
338
|
+
decorators.state(),
|
|
339
|
+
tslib_es6.__metadata("design:type", Object)
|
|
340
|
+
], exports.HDropdown.prototype, "_firstFocusableElement", void 0);
|
|
341
|
+
tslib_es6.__decorate([
|
|
342
|
+
decorators.state(),
|
|
343
|
+
tslib_es6.__metadata("design:type", Object)
|
|
344
|
+
], exports.HDropdown.prototype, "_lastFocusableElement", void 0);
|
|
283
345
|
exports.HDropdown = HDropdown_1 = tslib_es6.__decorate([
|
|
284
346
|
phoenix_custom_element.phoenixCustomElement('h-dropdown')
|
|
285
347
|
], exports.HDropdown);
|
|
@@ -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,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -22,7 +22,6 @@ exports.HDropdownToggler = class HDropdownToggler extends phoenix_light_lit_elem
|
|
|
22
22
|
bubbles: true
|
|
23
23
|
});
|
|
24
24
|
this.dispatchEvent(toggleDropdownEvent);
|
|
25
|
-
this._toggleElementAriaController.toggleAriaExpandedAttribute();
|
|
26
25
|
};
|
|
27
26
|
this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
|
|
28
27
|
this.className = `${dropdown_constants.DROPDOWN_TOGGLER_CSS_CLASS} ${this.className}`;
|
|
@@ -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;
|
|
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;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { IDropdown } from "./dropdown_types";
|
|
1
2
|
import { TemplateResult } from 'lit-html';
|
|
2
3
|
import { HDropdownContent } from './dropdown_content';
|
|
3
4
|
import { HDropdownToggler } from './dropdown_toggler';
|
|
4
|
-
import { IDropdown } from "./dropdown_types";
|
|
5
5
|
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
6
|
+
import { PropertyValues } from 'lit';
|
|
6
7
|
export declare class HDropdown extends PhoenixLightLitElement implements IDropdown {
|
|
7
8
|
opened: boolean;
|
|
8
9
|
direction: "bottom-center";
|
|
@@ -18,21 +19,30 @@ export declare class HDropdown extends PhoenixLightLitElement implements IDropdo
|
|
|
18
19
|
private _dropdownContentChildrenHeight;
|
|
19
20
|
private _hasScrollableClassInitially;
|
|
20
21
|
private _backdropController;
|
|
22
|
+
_firstFocusableElement: HTMLElement | undefined;
|
|
23
|
+
_lastFocusableElement: HTMLElement | undefined;
|
|
24
|
+
private _focusSentinelStart;
|
|
25
|
+
private _focusSentinelEnd;
|
|
26
|
+
private _rootDropdown?;
|
|
21
27
|
connectedCallback(): void;
|
|
28
|
+
firstUpdated(props: PropertyValues): void;
|
|
22
29
|
private static _appendDropdownPortal;
|
|
30
|
+
private _findRootDropdown;
|
|
23
31
|
private _setupListeners;
|
|
24
32
|
private _handleClickOutside;
|
|
25
33
|
toggle: () => Promise<void>;
|
|
26
34
|
show: () => Promise<void>;
|
|
27
35
|
private _dispatchShowDropdownEvent;
|
|
28
36
|
private _hideDropdownsSequentially;
|
|
29
|
-
hide: () => Promise<void>;
|
|
37
|
+
hide: (ev?: Event) => Promise<void>;
|
|
30
38
|
private _dispatchHideDropdownEvent;
|
|
31
39
|
private _handleDisabledPositioning;
|
|
32
40
|
private _handleEnabledPositioning;
|
|
33
41
|
private _observeScrollToggling;
|
|
34
42
|
private _toggleScroll;
|
|
35
43
|
private _closeDropdownOnEscape;
|
|
44
|
+
private _handleFocusWithinDropdown;
|
|
45
|
+
private _focusOnNextSibling;
|
|
36
46
|
private _hoverToggle;
|
|
37
47
|
private _isHoveredWithinDropdown;
|
|
38
48
|
private _setupInitialDropdownProperties;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import 'lit';
|
|
3
|
+
import { state } from 'lit/decorators';
|
|
2
4
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
3
5
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
4
6
|
import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal/portal_constants.js';
|
|
5
7
|
import { html } from 'lit-html';
|
|
6
8
|
import { BackdropController } from '../backdrop/controller/backdrop_controller.js';
|
|
7
9
|
import { property } from '@lit/reactive-element/decorators.js';
|
|
10
|
+
import { createRef, ref } from 'lit-html/directives/ref.js';
|
|
8
11
|
import { BREAKPOINTS, SCROLLABLE_CLASS_NAME } from '../../global_constants.js';
|
|
9
12
|
import { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CONTENT_SHOW, DROPDOWN_EVENTS, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_TOGGLER_NAME } from './dropdown_constants.js';
|
|
10
13
|
import { DIRECTIONS, RELATIVE_POSITION_CONTROLLER_EVENTS, DEFAULT_THROTTLE_WAIT_TIME } from '../../controllers/relative_position_controller/relative_position_controller_constants.js';
|
|
@@ -23,6 +26,10 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
23
26
|
this.transition = 'direction';
|
|
24
27
|
this.portalTarget = DEFAULT_DROPDOWN_PORTAL_NAME;
|
|
25
28
|
this._backdropController = new BackdropController();
|
|
29
|
+
this._firstFocusableElement = undefined;
|
|
30
|
+
this._lastFocusableElement = undefined;
|
|
31
|
+
this._focusSentinelStart = createRef();
|
|
32
|
+
this._focusSentinelEnd = createRef();
|
|
26
33
|
this._handleClickOutside = async (target) => {
|
|
27
34
|
var _a, _b;
|
|
28
35
|
if (!this.opened)
|
|
@@ -48,10 +55,11 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
48
55
|
}, 0);
|
|
49
56
|
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
50
57
|
setTimeout(() => {
|
|
51
|
-
var _a;
|
|
58
|
+
var _a, _b;
|
|
52
59
|
this._dispatchShowDropdownEvent();
|
|
53
60
|
(_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_SHOW}-${this.transition}-start`, `${DROPDOWN_CONTENT_SHOW}-${this.transition}-end`);
|
|
54
61
|
this._toggleScroll();
|
|
62
|
+
(_b = this._firstFocusableElement) === null || _b === void 0 ? void 0 : _b.focus();
|
|
55
63
|
resolve();
|
|
56
64
|
}, transitionDuration);
|
|
57
65
|
});
|
|
@@ -78,8 +86,10 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
78
86
|
}
|
|
79
87
|
await this.hide();
|
|
80
88
|
};
|
|
81
|
-
this.hide = async () => new Promise((resolve) => {
|
|
89
|
+
this.hide = async (ev) => new Promise((resolve) => {
|
|
82
90
|
var _a;
|
|
91
|
+
if (ev && ev.detail.name !== this.name)
|
|
92
|
+
return;
|
|
83
93
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
|
|
84
94
|
const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
|
|
85
95
|
window.requestAnimationFrame(() => {
|
|
@@ -120,6 +130,23 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
120
130
|
return;
|
|
121
131
|
await this.hide();
|
|
122
132
|
};
|
|
133
|
+
this._handleFocusWithinDropdown = async (ev) => {
|
|
134
|
+
var _a;
|
|
135
|
+
const hasTabBeenPressed = ev.key.toLowerCase() === 'tab';
|
|
136
|
+
if (hasTabBeenPressed) {
|
|
137
|
+
if (ev.shiftKey) {
|
|
138
|
+
if (document.activeElement === this._firstFocusableElement) {
|
|
139
|
+
(_a = this._lastFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
140
|
+
ev.preventDefault();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else if (document.activeElement === this._lastFocusableElement) {
|
|
144
|
+
ev.preventDefault();
|
|
145
|
+
this._focusOnNextSibling(this);
|
|
146
|
+
await this._hideDropdownsSequentially();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
123
150
|
this._hoverToggle = async (ev) => {
|
|
124
151
|
if (window.innerWidth < BREAKPOINTS.xs)
|
|
125
152
|
return;
|
|
@@ -144,8 +171,12 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
144
171
|
};
|
|
145
172
|
}
|
|
146
173
|
connectedCallback() {
|
|
174
|
+
var _a;
|
|
147
175
|
super.connectedCallback();
|
|
148
176
|
HDropdown_1._appendDropdownPortal();
|
|
177
|
+
if (!this._rootDropdown)
|
|
178
|
+
this._rootDropdown =
|
|
179
|
+
((_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.tagName.toLowerCase()) === 'h-dropdown-content' ? this._findRootDropdown(this.parentElement) : this;
|
|
149
180
|
if (!this.$dropdownContent)
|
|
150
181
|
this.$dropdownContent = this.querySelector(DROPDOWN_CONTENT_NAME);
|
|
151
182
|
if (!this.$dropdownToggler)
|
|
@@ -172,6 +203,11 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
172
203
|
this._setupListeners();
|
|
173
204
|
this._setupInitialDropdownProperties();
|
|
174
205
|
}
|
|
206
|
+
firstUpdated(props) {
|
|
207
|
+
super.firstUpdated(props);
|
|
208
|
+
this._firstFocusableElement = this._focusSentinelStart.value;
|
|
209
|
+
this._lastFocusableElement = this._focusSentinelEnd.value;
|
|
210
|
+
}
|
|
175
211
|
static _appendDropdownPortal() {
|
|
176
212
|
const $dropdownPortalTarget = document.querySelector(`[name="${DEFAULT_DROPDOWN_PORTAL_NAME}"]`);
|
|
177
213
|
if (!$dropdownPortalTarget) {
|
|
@@ -180,13 +216,21 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
180
216
|
document.body.appendChild($portalTarget);
|
|
181
217
|
}
|
|
182
218
|
}
|
|
219
|
+
_findRootDropdown(element) {
|
|
220
|
+
var _a;
|
|
221
|
+
if (((_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.tagName.toLowerCase()) !== DROPDOWN_CONTENT_NAME && element.tagName.toLowerCase() === DROPDOWN_CONTAINER_NAME)
|
|
222
|
+
return element;
|
|
223
|
+
return this._findRootDropdown(element.parentElement || document.body);
|
|
224
|
+
}
|
|
183
225
|
_setupListeners() {
|
|
184
226
|
var _a;
|
|
185
227
|
this.addEventListener(RELATIVE_POSITION_CONTROLLER_EVENTS.disabledPositioning, this._handleDisabledPositioning);
|
|
186
228
|
this.addEventListener(RELATIVE_POSITION_CONTROLLER_EVENTS.enabledPositioning, this._handleEnabledPositioning);
|
|
187
229
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.addEventListener(DROPDOWN_EVENTS.toggle, this.toggle);
|
|
230
|
+
document.addEventListener(DROPDOWN_EVENTS.hide, this.hide);
|
|
188
231
|
window.addEventListener('resize', this._observeScrollToggling);
|
|
189
232
|
document.addEventListener('keydown', this._closeDropdownOnEscape);
|
|
233
|
+
document.addEventListener('keydown', this._handleFocusWithinDropdown);
|
|
190
234
|
if (this.toggleOnHover)
|
|
191
235
|
document.addEventListener('mouseover', this._hoverToggle);
|
|
192
236
|
}
|
|
@@ -206,6 +250,12 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
206
250
|
(_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(SCROLLABLE_CLASS_NAME);
|
|
207
251
|
}
|
|
208
252
|
}
|
|
253
|
+
_focusOnNextSibling(el) {
|
|
254
|
+
el.focus();
|
|
255
|
+
if (el === document.activeElement)
|
|
256
|
+
return;
|
|
257
|
+
this._focusOnNextSibling(el.nextElementSibling);
|
|
258
|
+
}
|
|
209
259
|
_isHoveredWithinDropdown(element) {
|
|
210
260
|
var _a;
|
|
211
261
|
if (element === this)
|
|
@@ -235,6 +285,8 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
235
285
|
(_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.removeEventListener(DROPDOWN_EVENTS.toggle, this.toggle);
|
|
236
286
|
window.removeEventListener('resize', this._observeScrollToggling);
|
|
237
287
|
document.removeEventListener('keydown', this._closeDropdownOnEscape);
|
|
288
|
+
document.removeEventListener(DROPDOWN_EVENTS.hide, this.hide);
|
|
289
|
+
document.removeEventListener('keydown', this._handleFocusWithinDropdown);
|
|
238
290
|
if (this.toggleOnHover)
|
|
239
291
|
document.removeEventListener('mouseover', this._hoverToggle);
|
|
240
292
|
if (this.opened) {
|
|
@@ -247,7 +299,9 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
|
|
|
247
299
|
return html `
|
|
248
300
|
${this.getSlot('toggler')}
|
|
249
301
|
<h-portal ?disabled="${!this.opened}" @portal.open="${this._positionDropdownContent}" to="${this.portalTarget}" hidden>
|
|
302
|
+
<div tabindex="0" ${ref(this._focusSentinelStart)}></div>
|
|
250
303
|
${this.getSlot('content')}
|
|
304
|
+
<div tabindex="0" ${ref(this._focusSentinelEnd)}></div>
|
|
251
305
|
</h-portal>
|
|
252
306
|
`;
|
|
253
307
|
}
|
|
@@ -276,6 +330,14 @@ __decorate([
|
|
|
276
330
|
property({ type: String }),
|
|
277
331
|
__metadata("design:type", Object)
|
|
278
332
|
], HDropdown.prototype, "portalTarget", void 0);
|
|
333
|
+
__decorate([
|
|
334
|
+
state(),
|
|
335
|
+
__metadata("design:type", Object)
|
|
336
|
+
], HDropdown.prototype, "_firstFocusableElement", void 0);
|
|
337
|
+
__decorate([
|
|
338
|
+
state(),
|
|
339
|
+
__metadata("design:type", Object)
|
|
340
|
+
], HDropdown.prototype, "_lastFocusableElement", void 0);
|
|
279
341
|
HDropdown = HDropdown_1 = __decorate([
|
|
280
342
|
phoenixCustomElement('h-dropdown')
|
|
281
343
|
], HDropdown);
|
|
@@ -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,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
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,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -18,7 +18,6 @@ let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
|
|
|
18
18
|
bubbles: true
|
|
19
19
|
});
|
|
20
20
|
this.dispatchEvent(toggleDropdownEvent);
|
|
21
|
-
this._toggleElementAriaController.toggleAriaExpandedAttribute();
|
|
22
21
|
};
|
|
23
22
|
this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
|
|
24
23
|
this.className = `${DROPDOWN_TOGGLER_CSS_CLASS} ${this.className}`;
|
|
@@ -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;
|
|
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;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PhoenixLightLitElement } from "../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
2
|
+
export declare class Tab extends PhoenixLightLitElement {
|
|
3
|
+
panelName: string;
|
|
4
|
+
get selected(): boolean;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
set selected(selected: boolean);
|
|
7
|
+
private _btnController;
|
|
8
|
+
attributeChangedCallback(name: string, value: string | null, newValue: string | null): void;
|
|
9
|
+
connectedCallback(): void;
|
|
10
|
+
private _setupAttributes;
|
|
11
|
+
private _bindEvents;
|
|
12
|
+
private _handleTabClicked;
|
|
13
|
+
_dispatchSelectedEvent: () => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
|
|
3
|
+
import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_element';
|
|
4
|
+
import { BtnController } from '@phoenixRoot/controllers/btn_controller';
|
|
5
|
+
import { property } from 'lit/decorators';
|
|
6
|
+
import { TAB_EVENT_NAMES, TAB_SELECTED_ATTRIBUTE_NAME } from '@phoenixRoot/components/tabs/tab/tab_constants';
|
|
7
|
+
import { UiDomUtils } from '@dreamcommerce/utilities/build/esm/ui_dom_utils';
|
|
8
|
+
let Tab = class Tab extends PhoenixLightLitElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this._handleTabClicked = () => {
|
|
12
|
+
if (this.disabled)
|
|
13
|
+
return;
|
|
14
|
+
this._dispatchSelectedEvent();
|
|
15
|
+
};
|
|
16
|
+
this._dispatchSelectedEvent = () => {
|
|
17
|
+
this.dispatchEvent(new CustomEvent(TAB_EVENT_NAMES.selected, {
|
|
18
|
+
detail: {
|
|
19
|
+
$el: this
|
|
20
|
+
},
|
|
21
|
+
bubbles: true
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
get selected() {
|
|
26
|
+
return this.hasAttribute(TAB_SELECTED_ATTRIBUTE_NAME);
|
|
27
|
+
}
|
|
28
|
+
set selected(selected) {
|
|
29
|
+
selected ? this.setAttribute(TAB_SELECTED_ATTRIBUTE_NAME, '') : this.removeAttribute(TAB_SELECTED_ATTRIBUTE_NAME);
|
|
30
|
+
this.setAttribute('aria-selected', String(selected));
|
|
31
|
+
selected ? UiDomUtils.makeNavigable(this) : UiDomUtils.makeUnnavigable(this);
|
|
32
|
+
}
|
|
33
|
+
attributeChangedCallback(name, value, newValue) {
|
|
34
|
+
super.attributeChangedCallback(name, value, newValue);
|
|
35
|
+
switch (name) {
|
|
36
|
+
case TAB_SELECTED_ATTRIBUTE_NAME: {
|
|
37
|
+
this.selected = Boolean(newValue);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
connectedCallback() {
|
|
43
|
+
super.connectedCallback();
|
|
44
|
+
this._btnController = new BtnController(this, this._dispatchSelectedEvent);
|
|
45
|
+
this._setupAttributes();
|
|
46
|
+
this._bindEvents();
|
|
47
|
+
this.tabIndex = this.selected ? 0 : -1;
|
|
48
|
+
}
|
|
49
|
+
_setupAttributes() {
|
|
50
|
+
this.setAttribute('role', 'tab');
|
|
51
|
+
this.setAttribute('aria-controls', this.panelName);
|
|
52
|
+
this.setAttribute('aria-selected', String(this.selected));
|
|
53
|
+
}
|
|
54
|
+
_bindEvents() {
|
|
55
|
+
this.addEventListener('click', this._handleTabClicked);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
__decorate([
|
|
59
|
+
property({ type: String, reflect: true, attribute: 'panel-name' }),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], Tab.prototype, "panelName", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
property({ type: Boolean, reflect: true }),
|
|
64
|
+
__metadata("design:type", Boolean)
|
|
65
|
+
], Tab.prototype, "disabled", void 0);
|
|
66
|
+
Tab = __decorate([
|
|
67
|
+
phoenixCustomElement('h-tab')
|
|
68
|
+
], Tab);
|
|
69
|
+
export { Tab };
|
|
70
|
+
//# sourceMappingURL=tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../../../../../../src/components/tabs/tab/tab.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab_constants.js","sourceRoot":"","sources":["../../../../../../../../src/components/tabs/tab/tab_constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,QAAQ,EAAE,UAAU;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
2
|
+
export declare class TabPanel extends PhoenixLightLitElement {
|
|
3
|
+
name: string;
|
|
4
|
+
hidden: boolean;
|
|
5
|
+
private _visibilityController;
|
|
6
|
+
constructor();
|
|
7
|
+
show(): void;
|
|
8
|
+
hide(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
|
|
3
|
+
import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_element';
|
|
4
|
+
import { property } from 'lit/decorators';
|
|
5
|
+
import '@phoenixRoot/controllers/visibility_controller/visibility_controller_types';
|
|
6
|
+
import { VisibilityController } from '@phoenixRoot/controllers/visibility_controller/visibility_controller';
|
|
7
|
+
let TabPanel = class TabPanel extends PhoenixLightLitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.hidden = true;
|
|
11
|
+
this._visibilityController = new VisibilityController(this);
|
|
12
|
+
}
|
|
13
|
+
show() {
|
|
14
|
+
this._visibilityController.show();
|
|
15
|
+
}
|
|
16
|
+
hide() {
|
|
17
|
+
this._visibilityController.hide();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
__decorate([
|
|
21
|
+
property({ type: String, reflect: true }),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], TabPanel.prototype, "name", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
property({ type: Boolean, reflect: true }),
|
|
26
|
+
__metadata("design:type", Object)
|
|
27
|
+
], TabPanel.prototype, "hidden", void 0);
|
|
28
|
+
TabPanel = __decorate([
|
|
29
|
+
phoenixCustomElement('h-tab-panel'),
|
|
30
|
+
__metadata("design:paramtypes", [])
|
|
31
|
+
], TabPanel);
|
|
32
|
+
export { TabPanel };
|
|
33
|
+
//# sourceMappingURL=tab_panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab_panel.js","sourceRoot":"","sources":["../../../../../../../src/components/tabs/tab_panel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uEAAuE,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAsC,4EAA4E,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sEAAsE,CAAC;AAG5G,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,sBAAsB;IAShD;QACI,KAAK,EAAE,CAAC;QALL,WAAM,GAAG,IAAI,CAAC;QAOjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACJ,CAAA;AApBG;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sCAC7B;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;wCACtB;AALZ,QAAQ;IADpB,oBAAoB,CAAC,aAAa,CAAC;;GACvB,QAAQ,CAsBpB;SAtBY,QAAQ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
2
|
+
export declare class Tabs extends PhoenixLightLitElement {
|
|
3
|
+
private _$selectedTab;
|
|
4
|
+
private _$tabs;
|
|
5
|
+
connectedCallback(): void;
|
|
6
|
+
private _handleArrowNavigation;
|
|
7
|
+
private _getFocusedTabIndex;
|
|
8
|
+
private _getNextTabIndex;
|
|
9
|
+
private _getPrevTabIndex;
|
|
10
|
+
private _setupEvents;
|
|
11
|
+
private _handleTabSelected;
|
|
12
|
+
private _handleTabConnected;
|
|
13
|
+
switchPanel(newPanelName: string): void;
|
|
14
|
+
private _dispatchChangedEvent;
|
|
15
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_element';
|
|
3
|
+
import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
|
|
4
|
+
import { Tab } from '@phoenixRoot/components/tabs/tab/tab';
|
|
5
|
+
import { state } from 'lit/decorators';
|
|
6
|
+
import '@phoenixRoot/components/tabs/tab_panel';
|
|
7
|
+
import { PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_elements_constants';
|
|
8
|
+
import { TABS_EVENT_NAMES } from '@phoenixRoot/components/tabs/tabs_constants';
|
|
9
|
+
import { TAB_EVENT_NAMES } from '@phoenixRoot/components/tabs/tab/tab_constants';
|
|
10
|
+
import '@phoenixRoot/components/tabs/tabs_types';
|
|
11
|
+
import { KeystrokesController } from '@phoenixRoot/controllers/keystrokes_controller/keystrokes_controller';
|
|
12
|
+
import { UiDomUtils } from '@dreamcommerce/utilities/build/esm/ui_dom_utils';
|
|
13
|
+
let Tabs = class Tabs extends PhoenixLightLitElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this._handleArrowNavigation = ({ key }) => {
|
|
17
|
+
const currentTabIndex = this._getFocusedTabIndex();
|
|
18
|
+
// console.log('currentTabIndex ', currentTabIndex, ' key', key);
|
|
19
|
+
if (currentTabIndex === undefined)
|
|
20
|
+
return;
|
|
21
|
+
const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
|
|
22
|
+
// console.log('newTabIndex ', newTabIndex);
|
|
23
|
+
if (newTabIndex === undefined)
|
|
24
|
+
return;
|
|
25
|
+
UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
|
|
26
|
+
UiDomUtils.makeNavigable(this._$tabs[newTabIndex]);
|
|
27
|
+
this._$tabs[newTabIndex].focus();
|
|
28
|
+
};
|
|
29
|
+
this._handleTabSelected = (event) => {
|
|
30
|
+
const $newlySelectedTab = event.detail.$el;
|
|
31
|
+
this.switchPanel($newlySelectedTab.panelName);
|
|
32
|
+
if (this._$selectedTab)
|
|
33
|
+
this._$selectedTab.selected = false;
|
|
34
|
+
$newlySelectedTab.selected = true;
|
|
35
|
+
this._dispatchChangedEvent(this._$selectedTab, $newlySelectedTab);
|
|
36
|
+
this._$selectedTab = $newlySelectedTab;
|
|
37
|
+
};
|
|
38
|
+
this._handleTabConnected = (event) => {
|
|
39
|
+
const $connectedTab = event.detail.$el;
|
|
40
|
+
if (!$connectedTab.selected)
|
|
41
|
+
return;
|
|
42
|
+
this._$selectedTab = event.detail.$el;
|
|
43
|
+
this.switchPanel(this._$selectedTab.panelName);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
connectedCallback() {
|
|
47
|
+
super.connectedCallback();
|
|
48
|
+
this._setupEvents();
|
|
49
|
+
this.setAttribute('role', 'tablist');
|
|
50
|
+
this._$tabs = [...this.querySelectorAll('h-tab')];
|
|
51
|
+
new KeystrokesController({
|
|
52
|
+
host: this,
|
|
53
|
+
keys: ['ArrowRight', 'ArrowLeft'],
|
|
54
|
+
callback: this._handleArrowNavigation
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
_getFocusedTabIndex() {
|
|
58
|
+
const focusedElement = document.activeElement;
|
|
59
|
+
if ((focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.tagName) !== 'H-TAB')
|
|
60
|
+
return;
|
|
61
|
+
return this._$tabs.findIndex(($tab) => $tab === focusedElement);
|
|
62
|
+
}
|
|
63
|
+
_getNextTabIndex(currentTabIndex) {
|
|
64
|
+
if (currentTabIndex >= this._$tabs.length - 1)
|
|
65
|
+
return;
|
|
66
|
+
return currentTabIndex + 1;
|
|
67
|
+
}
|
|
68
|
+
_getPrevTabIndex(currentTabIndex) {
|
|
69
|
+
if (currentTabIndex <= 0)
|
|
70
|
+
return;
|
|
71
|
+
return currentTabIndex - 1;
|
|
72
|
+
}
|
|
73
|
+
_setupEvents() {
|
|
74
|
+
this.addEventListener(TAB_EVENT_NAMES.selected, this._handleTabSelected);
|
|
75
|
+
this.addEventListener(PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.connected, this._handleTabConnected);
|
|
76
|
+
}
|
|
77
|
+
switchPanel(newPanelName) {
|
|
78
|
+
const $currentPanel = document.querySelectorAll(`[name="${this._$selectedTab.panelName}"]`);
|
|
79
|
+
const $newPanel = document.querySelectorAll(`[name="${newPanelName}"]`);
|
|
80
|
+
if ($currentPanel)
|
|
81
|
+
$currentPanel.forEach(($panel) => $panel.hide());
|
|
82
|
+
if ($newPanel)
|
|
83
|
+
$newPanel.forEach(($panel) => $panel.show());
|
|
84
|
+
}
|
|
85
|
+
_dispatchChangedEvent($previousTab, $newTab) {
|
|
86
|
+
this.dispatchEvent(new CustomEvent(TABS_EVENT_NAMES.changed, {
|
|
87
|
+
detail: {
|
|
88
|
+
$previousTab,
|
|
89
|
+
$newTab
|
|
90
|
+
},
|
|
91
|
+
bubbles: true
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
__decorate([
|
|
96
|
+
state(),
|
|
97
|
+
__metadata("design:type", Tab)
|
|
98
|
+
], Tabs.prototype, "_$selectedTab", void 0);
|
|
99
|
+
Tabs = __decorate([
|
|
100
|
+
phoenixCustomElement('h-tabs')
|
|
101
|
+
], Tabs);
|
|
102
|
+
export { Tabs };
|
|
103
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../../../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs_constants.js","sourceRoot":"","sources":["../../../../../../../src/components/tabs/tabs_constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,OAAO,EAAE,SAAS;CACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs_types.js","sourceRoot":"","sources":["../../../../../../../src/components/tabs/tabs_types.ts"],"names":[],"mappings":"AAAA,OAAoB,sCAAsC,CAAC"}
|
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.19.
|
|
5
|
+
"version": "0.19.3-1",
|
|
6
6
|
"description": "phoenix design system",
|
|
7
7
|
"author": "zefirek",
|
|
8
8
|
"license": "MIT",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@splidejs/splide": "4.0.7"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@dreamcommerce/utilities": "^0.
|
|
33
|
+
"@dreamcommerce/utilities": "^0.10.1",
|
|
34
34
|
"@shoper/jest_config": "^0.0.0",
|
|
35
35
|
"@shoper/tsconfig": "^0.0.0",
|
|
36
36
|
"@splidejs/splide": "4.0.7",
|