@shoper/phoenix_design_system 0.22.3 → 0.22.4-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js +6 -9
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +4 -3
- package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/slider/slider.js +2 -2
- package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js +74 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js +12 -0
- package/build/{esm/packages/utilities/build/esm/web_components_utils.js.map → cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js.map} +1 -1
- package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js +31 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +108 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/tabs/tabs_constants.js +10 -0
- package/build/cjs/packages/{utilities/build/esm/web_components_utils.js.map → phoenix/src/components/tabs/tabs_constants.js.map} +1 -1
- package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
- package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
- package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
- package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
- package/build/cjs/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
- package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
- package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
- package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +4 -4
- package/build/cjs/packages/phoenix/src/index.js +23 -0
- package/build/cjs/packages/phoenix/src/index.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +6 -9
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +4 -3
- package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/slider/slider.js +1 -1
- 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 +72 -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 +7 -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 +8 -0
- package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js +29 -0
- package/build/{cjs/packages/utilities/build/esm/json_utils.js.map → esm/packages/phoenix/src/components/tabs/tab_panel.js.map} +1 -1
- package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +16 -0
- package/build/esm/packages/phoenix/src/components/tabs/tabs.js +106 -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 +6 -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 +4 -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/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.d.ts +15 -2
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js +170 -46
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.d.ts +45 -0
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js +4 -0
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js.map +1 -0
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.d.ts +3 -3
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +10 -6
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.d.ts +4 -11
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js +2 -1
- package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js.map +1 -1
- package/build/esm/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
- package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
- package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
- package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +1 -1
- package/build/esm/packages/phoenix/src/index.d.ts +4 -0
- package/build/esm/packages/phoenix/src/index.js +4 -0
- package/build/esm/packages/phoenix/src/index.js.map +1 -1
- package/package.json +2 -2
- package/build/cjs/packages/utilities/build/esm/json_utils.js +0 -25
- package/build/cjs/packages/utilities/build/esm/web_components_utils.js +0 -18
- package/build/esm/packages/utilities/build/esm/json_utils.js +0 -21
- package/build/esm/packages/utilities/build/esm/json_utils.js.map +0 -1
- package/build/esm/packages/utilities/build/esm/web_components_utils.js +0 -14
|
@@ -15,13 +15,6 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
15
15
|
constructor() {
|
|
16
16
|
super();
|
|
17
17
|
this.transitionName = 'accordion-toggle';
|
|
18
|
-
this._setStylingOptions = () => {
|
|
19
|
-
this.style.setProperty('display', 'block', 'important');
|
|
20
|
-
this.style.height = 'auto';
|
|
21
|
-
this._originalHeight = `${this.getBoundingClientRect().height}px`;
|
|
22
|
-
this.style.display = '';
|
|
23
|
-
this.style.height = this._originalHeight;
|
|
24
|
-
};
|
|
25
18
|
this._expand = () => {
|
|
26
19
|
this._setHeight(this._originalHeight);
|
|
27
20
|
};
|
|
@@ -36,7 +29,12 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
36
29
|
this._transitionController = new transition_controller.TransitionController(this, this.transitionName);
|
|
37
30
|
this._setStylingOptions();
|
|
38
31
|
this._subscribeObserver();
|
|
39
|
-
|
|
32
|
+
}
|
|
33
|
+
_setStylingOptions() {
|
|
34
|
+
this.style.setProperty('display', 'block', 'important');
|
|
35
|
+
this._originalHeight = `${this.getBoundingClientRect().height}px`;
|
|
36
|
+
this.style.display = '';
|
|
37
|
+
this.style.height = this._originalHeight;
|
|
40
38
|
}
|
|
41
39
|
async _subscribeObserver() {
|
|
42
40
|
this._accordionGroupProps = await this._contextConsumer.consumeAsync(accordion_constants.ACCORDION_CONTEXTS.accordionGroupProps);
|
|
@@ -56,7 +54,6 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
56
54
|
disconnectedCallback() {
|
|
57
55
|
super.disconnectedCallback();
|
|
58
56
|
this._accordionGroupProps.unsubscribe(this._accordionGroupPropsObserver);
|
|
59
|
-
window.removeEventListener('resize', this._setStylingOptions);
|
|
60
57
|
}
|
|
61
58
|
};
|
|
62
59
|
tslib_es6.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;"}
|
|
@@ -146,8 +146,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
146
146
|
}
|
|
147
147
|
else if (document.activeElement === this._lastFocusableElement) {
|
|
148
148
|
ev.preventDefault();
|
|
149
|
-
this.
|
|
150
|
-
|
|
149
|
+
await this._rootDropdown._hideDropdownsSequentially();
|
|
150
|
+
this._focusOnNextSibling(this._rootDropdown);
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
};
|
|
@@ -266,7 +266,8 @@ exports.HDropdown = HDropdown_1 = class HDropdown extends phoenix_light_lit_elem
|
|
|
266
266
|
return true;
|
|
267
267
|
if (element === this.$dropdownContent)
|
|
268
268
|
return true;
|
|
269
|
-
const isDescendantOfDropdown = element.closest(`${dropdown_constants.DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null
|
|
269
|
+
const isDescendantOfDropdown = element.closest(`${dropdown_constants.DROPDOWN_CONTAINER_NAME}[name="${this.name}"]`) !== null ||
|
|
270
|
+
element.closest(`${dropdown_constants.DROPDOWN_CONTENT_NAME}[name="${this.name}"]`) !== null;
|
|
270
271
|
if (isDescendantOfDropdown)
|
|
271
272
|
return true;
|
|
272
273
|
const $closestDropdownContent = element.closest(dropdown_constants.DROPDOWN_CONTENT_NAME);
|
|
@@ -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,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;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
|
|
6
6
|
var decorators = require('lit/decorators');
|
|
7
|
-
var
|
|
7
|
+
var utilities = require('@dreamcommerce/utilities');
|
|
8
8
|
var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
9
9
|
var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
|
|
10
10
|
var splide_esm = require('../../../../../external/@splidejs/splide/dist/js/splide.esm.js');
|
|
@@ -25,7 +25,7 @@ exports.HSlider = class HSlider extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
25
25
|
connectedCallback() {
|
|
26
26
|
var _a;
|
|
27
27
|
if (this.settings) {
|
|
28
|
-
this._settings = (_a =
|
|
28
|
+
this._settings = (_a = utilities.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
|
|
29
29
|
}
|
|
30
30
|
this._slider = new splide_esm.Splide(`#${this.id}`, this._settings);
|
|
31
31
|
if (this._settings.mountOnConnectedCallback) {
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
|
|
6
|
+
var decorators = require('lit/decorators');
|
|
7
|
+
var utilities = require('@dreamcommerce/utilities');
|
|
8
|
+
var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
9
|
+
var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
|
|
10
|
+
var btn_controller = require('../../../controllers/btn_controller.js');
|
|
11
|
+
var tab_constants = require('./tab_constants.js');
|
|
12
|
+
|
|
13
|
+
exports.HTab = class HTab extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this._handleTabClicked = () => {
|
|
17
|
+
if (this.disabled)
|
|
18
|
+
return;
|
|
19
|
+
this._dispatchSelectedEvent();
|
|
20
|
+
};
|
|
21
|
+
this._dispatchSelectedEvent = () => {
|
|
22
|
+
this.dispatchEvent(new CustomEvent(tab_constants.TAB_EVENT_NAMES.selected, {
|
|
23
|
+
detail: {
|
|
24
|
+
$el: this
|
|
25
|
+
},
|
|
26
|
+
bubbles: true
|
|
27
|
+
}));
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
get selected() {
|
|
31
|
+
return this.hasAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME);
|
|
32
|
+
}
|
|
33
|
+
set selected(selected) {
|
|
34
|
+
selected ? this.setAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME, '') : this.removeAttribute(tab_constants.TAB_SELECTED_ATTRIBUTE_NAME);
|
|
35
|
+
this.setAttribute('aria-selected', String(selected));
|
|
36
|
+
selected ? utilities.UiDomUtils.makeNavigable(this) : utilities.UiDomUtils.makeUnnavigable(this);
|
|
37
|
+
}
|
|
38
|
+
attributeChangedCallback(name, value, newValue) {
|
|
39
|
+
super.attributeChangedCallback(name, value, newValue);
|
|
40
|
+
switch (name) {
|
|
41
|
+
case tab_constants.TAB_SELECTED_ATTRIBUTE_NAME: {
|
|
42
|
+
this.selected = Boolean(newValue);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
connectedCallback() {
|
|
48
|
+
super.connectedCallback();
|
|
49
|
+
this._btnController = new btn_controller.BtnController(this, this._handleTabClicked);
|
|
50
|
+
this._setupAttributes();
|
|
51
|
+
this._bindEvents();
|
|
52
|
+
this.selected ? utilities.UiDomUtils.makeNavigable(this) : utilities.UiDomUtils.makeUnnavigable(this);
|
|
53
|
+
}
|
|
54
|
+
_setupAttributes() {
|
|
55
|
+
this.setAttribute('role', 'tab');
|
|
56
|
+
this.setAttribute('aria-controls', this.panelName);
|
|
57
|
+
this.setAttribute('aria-selected', String(this.selected));
|
|
58
|
+
}
|
|
59
|
+
_bindEvents() {
|
|
60
|
+
this.addEventListener('click', this._handleTabClicked);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
tslib_es6.__decorate([
|
|
64
|
+
decorators.property({ type: String, reflect: true, attribute: 'panel-name' }),
|
|
65
|
+
tslib_es6.__metadata("design:type", String)
|
|
66
|
+
], exports.HTab.prototype, "panelName", void 0);
|
|
67
|
+
tslib_es6.__decorate([
|
|
68
|
+
decorators.property({ type: Boolean, reflect: true }),
|
|
69
|
+
tslib_es6.__metadata("design:type", Boolean)
|
|
70
|
+
], exports.HTab.prototype, "disabled", void 0);
|
|
71
|
+
exports.HTab = tslib_es6.__decorate([
|
|
72
|
+
phoenix_custom_element.phoenixCustomElement('h-tab')
|
|
73
|
+
], exports.HTab);
|
|
74
|
+
//# sourceMappingURL=tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const TAB_EVENT_NAMES = {
|
|
6
|
+
selected: 'selected'
|
|
7
|
+
};
|
|
8
|
+
const TAB_SELECTED_ATTRIBUTE_NAME = 'selected';
|
|
9
|
+
|
|
10
|
+
exports.TAB_EVENT_NAMES = TAB_EVENT_NAMES;
|
|
11
|
+
exports.TAB_SELECTED_ATTRIBUTE_NAME = TAB_SELECTED_ATTRIBUTE_NAME;
|
|
12
|
+
//# sourceMappingURL=tab_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;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
|
|
6
|
+
var decorators = require('lit/decorators');
|
|
7
|
+
var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
8
|
+
var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
|
|
9
|
+
var visibility_controller = require('../../controllers/visibility_controller/visibility_controller.js');
|
|
10
|
+
|
|
11
|
+
exports.HTabPanel = class HTabPanel extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this._visibilityController = new visibility_controller.VisibilityController(this);
|
|
15
|
+
}
|
|
16
|
+
show() {
|
|
17
|
+
this._visibilityController.show();
|
|
18
|
+
}
|
|
19
|
+
hide() {
|
|
20
|
+
this._visibilityController.hide();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
tslib_es6.__decorate([
|
|
24
|
+
decorators.property({ type: String, reflect: true }),
|
|
25
|
+
tslib_es6.__metadata("design:type", String)
|
|
26
|
+
], exports.HTabPanel.prototype, "name", void 0);
|
|
27
|
+
exports.HTabPanel = tslib_es6.__decorate([
|
|
28
|
+
phoenix_custom_element.phoenixCustomElement('h-tab-panel'),
|
|
29
|
+
tslib_es6.__metadata("design:paramtypes", [])
|
|
30
|
+
], exports.HTabPanel);
|
|
31
|
+
//# sourceMappingURL=tab_panel.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib_es6 = require('../../../../../external/tslib/tslib.es6.js');
|
|
6
|
+
var decorators = require('lit/decorators');
|
|
7
|
+
var utilities = require('@dreamcommerce/utilities');
|
|
8
|
+
var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
|
|
9
|
+
var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
|
|
10
|
+
var keystrokes_controller = require('../../controllers/keystrokes_controller/keystrokes_controller.js');
|
|
11
|
+
var tab_constants = require('./tab/tab_constants.js');
|
|
12
|
+
var tab = require('./tab/tab.js');
|
|
13
|
+
var tabs_constants = require('./tabs_constants.js');
|
|
14
|
+
|
|
15
|
+
exports.HTabs = class HTabs extends phoenix_light_lit_element.PhoenixLightLitElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this._handleArrowNavigation = ({ key }) => {
|
|
19
|
+
const currentTabIndex = this._getFocusedTabIndex();
|
|
20
|
+
if (currentTabIndex === undefined)
|
|
21
|
+
return;
|
|
22
|
+
const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
|
|
23
|
+
if (newTabIndex === undefined)
|
|
24
|
+
return;
|
|
25
|
+
utilities.UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
|
|
26
|
+
utilities.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
|
+
}
|
|
39
|
+
connectedCallback() {
|
|
40
|
+
super.connectedCallback();
|
|
41
|
+
this._setupEvents();
|
|
42
|
+
this.setAttribute('role', 'tablist');
|
|
43
|
+
this._$tabs = [...this.querySelectorAll('h-tab')];
|
|
44
|
+
new keystrokes_controller.KeystrokesController({
|
|
45
|
+
host: this,
|
|
46
|
+
keys: ['ArrowRight', 'ArrowLeft'],
|
|
47
|
+
callback: this._handleArrowNavigation
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
_getFocusedTabIndex() {
|
|
51
|
+
const focusedElement = document.activeElement;
|
|
52
|
+
if ((focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.tagName) !== 'H-TAB')
|
|
53
|
+
return;
|
|
54
|
+
return this._$tabs.findIndex(($tab) => $tab === focusedElement);
|
|
55
|
+
}
|
|
56
|
+
_getNextTabIndex(currentTabIndex) {
|
|
57
|
+
if (currentTabIndex >= this._$tabs.length - 1)
|
|
58
|
+
return;
|
|
59
|
+
return currentTabIndex + 1;
|
|
60
|
+
}
|
|
61
|
+
_getPrevTabIndex(currentTabIndex) {
|
|
62
|
+
if (currentTabIndex <= 0)
|
|
63
|
+
return;
|
|
64
|
+
return currentTabIndex - 1;
|
|
65
|
+
}
|
|
66
|
+
_setupEvents() {
|
|
67
|
+
this.addEventListener(tab_constants.TAB_EVENT_NAMES.selected, this._handleTabSelected);
|
|
68
|
+
}
|
|
69
|
+
allChildrenConnected() {
|
|
70
|
+
const $selectedTab = this.querySelector('h-tab[selected]');
|
|
71
|
+
this._hideNotSelectedAndVisiblePanels();
|
|
72
|
+
if (!$selectedTab)
|
|
73
|
+
return;
|
|
74
|
+
this._$selectedTab = $selectedTab;
|
|
75
|
+
this.switchPanel(this._$selectedTab.panelName);
|
|
76
|
+
}
|
|
77
|
+
_hideNotSelectedAndVisiblePanels() {
|
|
78
|
+
const $notSelectedTabs = [...this.querySelectorAll('h-tab:not([selected])')];
|
|
79
|
+
$notSelectedTabs
|
|
80
|
+
.map(($tab) => $tab.panelName)
|
|
81
|
+
.forEach((panelName) => document.querySelectorAll(`[name="${panelName}"]`).forEach(($panel) => $panel.hide()));
|
|
82
|
+
}
|
|
83
|
+
switchPanel(newPanelName) {
|
|
84
|
+
const $currentPanel = this._$selectedTab && document.querySelectorAll(`[name="${this._$selectedTab.panelName}"]`);
|
|
85
|
+
const $newPanel = document.querySelectorAll(`[name="${newPanelName}"]`);
|
|
86
|
+
if ($currentPanel)
|
|
87
|
+
$currentPanel.forEach(($panel) => $panel.hide());
|
|
88
|
+
if ($newPanel)
|
|
89
|
+
$newPanel.forEach(($panel) => $panel.show());
|
|
90
|
+
}
|
|
91
|
+
_dispatchChangedEvent($previousTab, $newTab) {
|
|
92
|
+
this.dispatchEvent(new CustomEvent(tabs_constants.TABS_EVENT_NAMES.changed, {
|
|
93
|
+
detail: {
|
|
94
|
+
$previousTab,
|
|
95
|
+
$newTab
|
|
96
|
+
},
|
|
97
|
+
bubbles: true
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
tslib_es6.__decorate([
|
|
102
|
+
decorators.state(),
|
|
103
|
+
tslib_es6.__metadata("design:type", tab.HTab)
|
|
104
|
+
], exports.HTabs.prototype, "_$selectedTab", void 0);
|
|
105
|
+
exports.HTabs = tslib_es6.__decorate([
|
|
106
|
+
phoenix_custom_element.phoenixCustomElement('h-tabs')
|
|
107
|
+
], exports.HTabs);
|
|
108
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;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;"}
|