@shoper/phoenix_design_system 1.18.8 → 1.18.10-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.js +6 -19
- package/build/cjs/packages/phoenix/src/components/accordion/accordion.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_constants.js +8 -6
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_constants.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js +2 -125
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js +105 -88
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js +1 -41
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/model/select_option.js +2 -1
- package/build/cjs/packages/phoenix/src/components/form/select/model/select_option.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/model/select_option_mapper.js +3 -2
- package/build/cjs/packages/phoenix/src/components/form/select/model/select_option_mapper.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/select.js +87 -14
- package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js +22 -2
- package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -1
- package/build/cjs/packages/phoenix/src/index.js +9 -6
- package/build/cjs/packages/phoenix/src/index.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion.d.ts +1 -5
- package/build/esm/packages/phoenix/src/components/accordion/accordion.js +7 -20
- package/build/esm/packages/phoenix/src/components/accordion/accordion.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.d.ts +4 -3
- package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.js +7 -6
- package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.d.ts +0 -23
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +2 -125
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_group.d.ts +12 -14
- package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js +106 -89
- package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.d.ts +0 -8
- package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js +1 -41
- package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_types.d.ts +0 -10
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option.d.ts +1 -0
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option.js +2 -1
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.js +3 -2
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/model/select_option_types.d.ts +1 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +5 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.js +87 -14
- package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.d.ts +1 -0
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.js +22 -2
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/messages/base_message.js +1 -1
- package/build/esm/packages/phoenix/src/index.d.ts +1 -0
- package/build/esm/packages/phoenix/src/index.js +3 -2
- package/build/esm/packages/phoenix/src/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,140 +1,17 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import 'lit';
|
|
3
|
-
import { property } from 'lit/decorators';
|
|
4
2
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
5
3
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
6
|
-
import { Observer } from '../../core/classes/observer/observer.js';
|
|
7
|
-
import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
|
|
8
|
-
import { ACCORDION_CONTEXTS } from './accordion_constants.js';
|
|
9
|
-
import { TransitionController } from '../../controllers/transition_controller/transition_controller.js';
|
|
10
4
|
|
|
11
|
-
const RESIZE_DEBOUNCE_MS = 150;
|
|
12
|
-
const MUTATION_DEBOUNCE_MS = 100;
|
|
13
5
|
let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
14
6
|
constructor() {
|
|
15
7
|
super();
|
|
16
|
-
this.
|
|
17
|
-
this._resizeDebounceTimer = null;
|
|
18
|
-
this._mutationDebounceTimer = null;
|
|
19
|
-
this._mutationObserver = null;
|
|
20
|
-
this._handleResize = () => {
|
|
21
|
-
if (this._resizeDebounceTimer !== null) {
|
|
22
|
-
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
23
|
-
}
|
|
24
|
-
this._resizeDebounceTimer = window.requestAnimationFrame(() => {
|
|
25
|
-
setTimeout(() => {
|
|
26
|
-
this._setStylingOptions();
|
|
27
|
-
}, RESIZE_DEBOUNCE_MS);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
this._setStylingOptions = () => {
|
|
31
|
-
requestAnimationFrame(() => {
|
|
32
|
-
const previousDisplay = this.style.display;
|
|
33
|
-
this.style.setProperty('display', 'block', 'important');
|
|
34
|
-
this.style.height = 'auto';
|
|
35
|
-
requestAnimationFrame(() => {
|
|
36
|
-
this._setOriginalHeightValue();
|
|
37
|
-
this.style.display = previousDisplay;
|
|
38
|
-
this.style.height = this.hidden ? '0px' : this._originalHeight;
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
this._handleMutation = () => {
|
|
43
|
-
if (this._mutationDebounceTimer !== null) {
|
|
44
|
-
window.clearTimeout(this._mutationDebounceTimer);
|
|
45
|
-
}
|
|
46
|
-
this._mutationDebounceTimer = window.setTimeout(() => {
|
|
47
|
-
requestAnimationFrame(() => {
|
|
48
|
-
this.style.height = 'auto';
|
|
49
|
-
requestAnimationFrame(() => {
|
|
50
|
-
this._setOriginalHeightValue();
|
|
51
|
-
if (this.hidden) {
|
|
52
|
-
this.style.height = '0px';
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.style.height = this._originalHeight;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
}, MUTATION_DEBOUNCE_MS);
|
|
60
|
-
};
|
|
61
|
-
this._setOriginalHeightValue = () => {
|
|
62
|
-
const newHeight = this.getBoundingClientRect().height;
|
|
63
|
-
if (newHeight !== 0 || this.children.length === 0) {
|
|
64
|
-
this._originalHeight = `${newHeight}px`;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
this._expand = () => {
|
|
68
|
-
this._setHeight(this._originalHeight);
|
|
69
|
-
};
|
|
70
|
-
this._handleTransitionEnd = (e) => {
|
|
71
|
-
if (e.propertyName !== 'height' || e.target !== this) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (!this.hidden && this.style.height !== '0px') {
|
|
75
|
-
this.style.height = 'auto';
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
this._collapse = () => {
|
|
79
|
-
const currentHeight = this.getBoundingClientRect().height;
|
|
80
|
-
this._setHeight(`${currentHeight}px`);
|
|
81
|
-
requestAnimationFrame(() => {
|
|
82
|
-
requestAnimationFrame(() => {
|
|
83
|
-
this._setHeight('0px');
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
this.setAttribute('role', 'region');
|
|
88
|
-
this._boundHandleTransitionEnd = this._handleTransitionEnd.bind(this);
|
|
8
|
+
this.slot = this.hasAttribute('slot') ? this.slot : 'content';
|
|
89
9
|
}
|
|
90
10
|
connectedCallback() {
|
|
91
11
|
super.connectedCallback();
|
|
92
|
-
this.
|
|
93
|
-
this._transitionController = new TransitionController(this, this.transitionName);
|
|
94
|
-
this._subscribeObserver();
|
|
95
|
-
window.addEventListener('resize', this._handleResize, { passive: true });
|
|
96
|
-
this.addEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
97
|
-
}
|
|
98
|
-
firstUpdated(props) {
|
|
99
|
-
super.firstUpdated(props);
|
|
100
|
-
this._setStylingOptions();
|
|
101
|
-
}
|
|
102
|
-
async _subscribeObserver() {
|
|
103
|
-
this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
|
|
104
|
-
this._accordionGroupPropsObserver = new Observer((accordionProps) => {
|
|
105
|
-
this._setAttributes(accordionProps);
|
|
106
|
-
accordionProps.opened ? this._transitionController.show(this._expand) : this._transitionController.hide(this._collapse);
|
|
107
|
-
});
|
|
108
|
-
this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
|
|
109
|
-
this._mutationObserver = new MutationObserver(this._handleMutation);
|
|
110
|
-
this._mutationObserver.observe(this, { childList: true, subtree: true });
|
|
111
|
-
}
|
|
112
|
-
_setHeight(height) {
|
|
113
|
-
this.style.height = height;
|
|
114
|
-
}
|
|
115
|
-
_setAttributes({ regionId, controlsId }) {
|
|
116
|
-
this.setAttribute('id', controlsId);
|
|
117
|
-
this.setAttribute('labelledby', regionId);
|
|
118
|
-
}
|
|
119
|
-
disconnectedCallback() {
|
|
120
|
-
var _a, _b;
|
|
121
|
-
super.disconnectedCallback();
|
|
122
|
-
(_a = this._accordionGroupProps) === null || _a === void 0 ? void 0 : _a.unsubscribe(this._accordionGroupPropsObserver);
|
|
123
|
-
(_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
124
|
-
window.removeEventListener('resize', this._handleResize);
|
|
125
|
-
this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
126
|
-
if (this._resizeDebounceTimer !== null) {
|
|
127
|
-
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
128
|
-
}
|
|
129
|
-
if (this._mutationDebounceTimer !== null) {
|
|
130
|
-
window.clearTimeout(this._mutationDebounceTimer);
|
|
131
|
-
}
|
|
12
|
+
this.classList.add('accordion-content');
|
|
132
13
|
}
|
|
133
14
|
};
|
|
134
|
-
__decorate([
|
|
135
|
-
property(),
|
|
136
|
-
__metadata("design:type", Object)
|
|
137
|
-
], HAccordionContent.prototype, "transitionName", void 0);
|
|
138
15
|
HAccordionContent = __decorate([
|
|
139
16
|
phoenixCustomElement('h-accordion-content'),
|
|
140
17
|
__metadata("design:paramtypes", [])
|
|
@@ -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;
|
|
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;"}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
import type { IAccordion, IAccordionGroup } from './accordion_types';
|
|
2
2
|
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
3
|
+
import { PropertyValues } from 'lit';
|
|
3
4
|
export declare class HAccordionGroup extends PhoenixLightLitElement implements IAccordionGroup, IAccordion {
|
|
4
5
|
opened: boolean;
|
|
5
6
|
private _isDisabled;
|
|
6
|
-
private _regionId;
|
|
7
|
-
private _controlsId;
|
|
8
7
|
private _mode;
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private _accordionProps;
|
|
13
|
-
private _accordionPropsObserver;
|
|
14
|
-
constructor();
|
|
8
|
+
private _$parentAccordion;
|
|
9
|
+
private _detailsRef;
|
|
10
|
+
private _togglerId;
|
|
15
11
|
connectedCallback(): void;
|
|
16
|
-
|
|
12
|
+
firstUpdated(props: PropertyValues): void;
|
|
17
13
|
disconnectedCallback(): void;
|
|
14
|
+
private _syncWithParentAccordion;
|
|
15
|
+
private _handleSingleModeConstraint;
|
|
16
|
+
toggle(): void;
|
|
18
17
|
show(): void;
|
|
19
18
|
hide(): void;
|
|
20
|
-
|
|
19
|
+
private _hideOtherDetailsGroups;
|
|
20
|
+
private _dispatchToggleEvent;
|
|
21
21
|
enable(): void;
|
|
22
22
|
disable(): void;
|
|
23
|
-
private _accordionToggle;
|
|
24
|
-
private _closeOtherAccordionGroups;
|
|
25
23
|
notify(): void;
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
private _summaryClickHandler;
|
|
25
|
+
protected render(): unknown;
|
|
28
26
|
}
|
|
@@ -1,109 +1,135 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { html } from 'lit';
|
|
2
3
|
import { property, state } from 'lit/decorators';
|
|
3
4
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
5
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { ContextProviderController } from '../../core/context/context_provider_controller.js';
|
|
9
|
-
import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS } from './accordion_constants.js';
|
|
6
|
+
import v4 from '../../../../../external/uuid/dist/esm-browser/v4.js';
|
|
7
|
+
import { ACCORDION_MODE, ACCORDION_EVENTS, ACCORDION_CSS_CLASSES, ACCORDION_ANIMATION_DURATION } from './accordion_constants.js';
|
|
8
|
+
import { createRef, ref } from 'lit/directives/ref';
|
|
10
9
|
|
|
11
10
|
let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
12
11
|
constructor() {
|
|
13
|
-
super();
|
|
12
|
+
super(...arguments);
|
|
14
13
|
this.opened = false;
|
|
15
14
|
this._isDisabled = false;
|
|
16
|
-
this._regionId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
|
|
17
|
-
this._controlsId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
|
|
18
15
|
this._mode = ACCORDION_MODE.multi;
|
|
19
|
-
this.
|
|
20
|
-
|
|
16
|
+
this._$parentAccordion = null;
|
|
17
|
+
this._detailsRef = createRef();
|
|
18
|
+
this._togglerId = v4();
|
|
19
|
+
this._syncWithParentAccordion = () => {
|
|
20
|
+
if (!this._$parentAccordion)
|
|
21
|
+
return;
|
|
22
|
+
this._mode = this._$parentAccordion.mode;
|
|
23
|
+
const shouldBeDisabled = this._$parentAccordion.disabled;
|
|
24
|
+
const hasDisabledStateChanged = shouldBeDisabled !== this._isDisabled;
|
|
25
|
+
if (hasDisabledStateChanged) {
|
|
26
|
+
shouldBeDisabled ? this.disable() : this.enable();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
this._hideOtherDetailsGroups = () => {
|
|
30
|
+
var _a;
|
|
31
|
+
if (this._isDisabled)
|
|
32
|
+
return;
|
|
33
|
+
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.querySelectorAll('h-accordion-group').forEach(($accordionGroup) => {
|
|
34
|
+
if ($accordionGroup === this)
|
|
35
|
+
return;
|
|
36
|
+
$accordionGroup.hide();
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
this._summaryClickHandler = (ev) => {
|
|
40
|
+
ev.preventDefault();
|
|
41
|
+
if (!this._isDisabled)
|
|
42
|
+
this.toggle();
|
|
21
43
|
};
|
|
22
|
-
this._accordionGroupPropsSubject = new BehaviorSubject(this._getProps());
|
|
23
|
-
this._accordionGroupContext = new ContextProviderController(this);
|
|
24
|
-
this._accordionGroupContext.provide(ACCORDION_CONTEXTS.accordionGroupProps, this._accordionGroupPropsSubject);
|
|
25
|
-
this.setAttribute('role', 'none');
|
|
26
44
|
}
|
|
27
45
|
connectedCallback() {
|
|
46
|
+
var _a;
|
|
28
47
|
super.connectedCallback();
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
48
|
+
this._$parentAccordion = this.closest('h-accordion');
|
|
49
|
+
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.addEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
|
|
50
|
+
this._syncWithParentAccordion();
|
|
32
51
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
const hasAccordionBeenDisabled = accordionProps.disabled;
|
|
38
|
-
if (hasAccordionBeenDisabled) {
|
|
39
|
-
this.disable();
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const hasAccordionBeenEnabled = accordionProps.disabled === false;
|
|
43
|
-
if (hasAccordionBeenEnabled) {
|
|
44
|
-
this.enable();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
this._accordionProps.subscribe(this._accordionPropsObserver);
|
|
52
|
+
firstUpdated(props) {
|
|
53
|
+
super.firstUpdated(props);
|
|
54
|
+
if (this.opened)
|
|
55
|
+
this.show();
|
|
49
56
|
}
|
|
50
57
|
disconnectedCallback() {
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
var _a;
|
|
59
|
+
super.disconnectedCallback();
|
|
60
|
+
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.removeEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
|
|
61
|
+
}
|
|
62
|
+
_handleSingleModeConstraint() {
|
|
63
|
+
if (this._mode === ACCORDION_MODE.single) {
|
|
64
|
+
this._hideOtherDetailsGroups();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
toggle() {
|
|
68
|
+
this._handleSingleModeConstraint();
|
|
69
|
+
const $details = this._detailsRef.value;
|
|
70
|
+
if (!$details)
|
|
71
|
+
return;
|
|
72
|
+
const isOpen = $details.hasAttribute('open');
|
|
73
|
+
isOpen ? this.hide() : this.show();
|
|
53
74
|
}
|
|
54
75
|
show() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
76
|
+
this._handleSingleModeConstraint();
|
|
77
|
+
const $details = this._detailsRef.value;
|
|
78
|
+
if (!$details)
|
|
79
|
+
return;
|
|
80
|
+
$details.setAttribute('open', '');
|
|
81
|
+
requestAnimationFrame(() => {
|
|
82
|
+
$details.classList.add(ACCORDION_CSS_CLASSES.open);
|
|
83
|
+
});
|
|
84
|
+
this._dispatchToggleEvent($details, true);
|
|
58
85
|
}
|
|
59
86
|
hide() {
|
|
60
|
-
|
|
87
|
+
const $details = this._detailsRef.value;
|
|
88
|
+
if (!$details)
|
|
89
|
+
return;
|
|
90
|
+
$details.classList.remove(ACCORDION_CSS_CLASSES.open);
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
$details.removeAttribute('open');
|
|
93
|
+
}, ACCORDION_ANIMATION_DURATION);
|
|
94
|
+
this._dispatchToggleEvent($details, false);
|
|
61
95
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
96
|
+
_dispatchToggleEvent($details, open) {
|
|
97
|
+
this.emitCustomEvent(ACCORDION_EVENTS.toggle, {
|
|
98
|
+
detail: { open, target: $details }
|
|
99
|
+
});
|
|
66
100
|
}
|
|
67
101
|
enable() {
|
|
68
|
-
if (this._isDisabled)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
102
|
+
if (!this._isDisabled)
|
|
103
|
+
return;
|
|
104
|
+
this._isDisabled = false;
|
|
105
|
+
this.hide();
|
|
73
106
|
}
|
|
74
107
|
disable() {
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
_closeOtherAccordionGroups() {
|
|
82
|
-
if (!this._isDisabled) {
|
|
83
|
-
const $accordion = this.closest('h-accordion');
|
|
84
|
-
const $accordionGroups = [...$accordion.querySelectorAll('h-accordion-group')];
|
|
85
|
-
const $otherAccordionGroupsWithinAccordion = $accordionGroups.filter(($accordionGroup) => $accordionGroup !== this);
|
|
86
|
-
$otherAccordionGroupsWithinAccordion.forEach(($accordionGroup) => $accordionGroup.hide());
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
notify() {
|
|
90
|
-
this._accordionGroupPropsSubject.notify(this._getProps());
|
|
91
|
-
}
|
|
92
|
-
updated(_changedProperties) {
|
|
93
|
-
if (_changedProperties.has('opened') ||
|
|
94
|
-
_changedProperties.has('_isDisabled') ||
|
|
95
|
-
_changedProperties.has('_regionId') ||
|
|
96
|
-
_changedProperties.has('_controlsId')) {
|
|
97
|
-
this.notify();
|
|
98
|
-
}
|
|
108
|
+
if (this._isDisabled)
|
|
109
|
+
return;
|
|
110
|
+
this._isDisabled = true;
|
|
111
|
+
this.show();
|
|
99
112
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
notify() { }
|
|
114
|
+
render() {
|
|
115
|
+
return html `
|
|
116
|
+
<details
|
|
117
|
+
${ref(this._detailsRef)}
|
|
118
|
+
class="accordion__details ${this._isDisabled ? 'accordion__details_disabled' : ''}"
|
|
119
|
+
aria-disabled="${this._isDisabled ? 'true' : 'false'}"
|
|
120
|
+
aria-labelledby="${this._togglerId}"
|
|
121
|
+
>
|
|
122
|
+
<summary
|
|
123
|
+
class="accordion__summary"
|
|
124
|
+
id="${this._togglerId}"
|
|
125
|
+
@click=${this._summaryClickHandler}
|
|
126
|
+
>
|
|
127
|
+
${this.getSlot('toggler')}
|
|
128
|
+
</summary>
|
|
129
|
+
|
|
130
|
+
${this.getSlot('content')}
|
|
131
|
+
</details>
|
|
132
|
+
`;
|
|
107
133
|
}
|
|
108
134
|
};
|
|
109
135
|
__decorate([
|
|
@@ -114,21 +140,12 @@ __decorate([
|
|
|
114
140
|
state(),
|
|
115
141
|
__metadata("design:type", Object)
|
|
116
142
|
], HAccordionGroup.prototype, "_isDisabled", void 0);
|
|
117
|
-
__decorate([
|
|
118
|
-
state(),
|
|
119
|
-
__metadata("design:type", Object)
|
|
120
|
-
], HAccordionGroup.prototype, "_regionId", void 0);
|
|
121
|
-
__decorate([
|
|
122
|
-
state(),
|
|
123
|
-
__metadata("design:type", Object)
|
|
124
|
-
], HAccordionGroup.prototype, "_controlsId", void 0);
|
|
125
143
|
__decorate([
|
|
126
144
|
state(),
|
|
127
145
|
__metadata("design:type", String)
|
|
128
146
|
], HAccordionGroup.prototype, "_mode", void 0);
|
|
129
147
|
HAccordionGroup = __decorate([
|
|
130
|
-
phoenixCustomElement('h-accordion-group')
|
|
131
|
-
__metadata("design:paramtypes", [])
|
|
148
|
+
phoenixCustomElement('h-accordion-group')
|
|
132
149
|
], HAccordionGroup);
|
|
133
150
|
|
|
134
151
|
export { HAccordionGroup };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA,eAAe,qDAAyD;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;"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
2
2
|
export declare class HAccordionToggler extends PhoenixLightLitElement {
|
|
3
|
-
private _contextConsumer;
|
|
4
|
-
private _accordionGroupProps;
|
|
5
|
-
private _accordionGroupPropsObserver;
|
|
6
3
|
constructor();
|
|
7
|
-
connectedCallback(): Promise<void>;
|
|
8
|
-
private _setAttributes;
|
|
9
|
-
private _emitTogglerClickedWithKeyboard;
|
|
10
|
-
private _emitTogglerClicked;
|
|
11
|
-
disconnectedCallback(): void;
|
|
12
4
|
}
|
|
@@ -1,51 +1,11 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
3
3
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
4
|
-
import { Observer } from '../../core/classes/observer/observer.js';
|
|
5
|
-
import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
|
|
6
|
-
import { ACCORDION_EVENTS, ACCORDION_CONTEXTS } from './accordion_constants.js';
|
|
7
4
|
|
|
8
5
|
let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
|
|
9
6
|
constructor() {
|
|
10
7
|
super();
|
|
11
|
-
this.
|
|
12
|
-
if (ev.key !== ' ' && ev.key !== 'Enter')
|
|
13
|
-
return;
|
|
14
|
-
if (this.getAttribute('aria-disabled') === 'true')
|
|
15
|
-
return;
|
|
16
|
-
this._emitTogglerClicked();
|
|
17
|
-
};
|
|
18
|
-
this._emitTogglerClicked = () => {
|
|
19
|
-
this.emitCustomEvent(ACCORDION_EVENTS.toggle);
|
|
20
|
-
};
|
|
21
|
-
this._contextConsumer = new ContextConsumerController(this);
|
|
22
|
-
}
|
|
23
|
-
async connectedCallback() {
|
|
24
|
-
super.connectedCallback();
|
|
25
|
-
this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
|
|
26
|
-
this._accordionGroupPropsObserver = new Observer((accordionProps) => this._setAttributes(accordionProps));
|
|
27
|
-
this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
|
|
28
|
-
this.addEventListener('click', this._emitTogglerClicked);
|
|
29
|
-
this.addEventListener('keydown', this._emitTogglerClickedWithKeyboard);
|
|
30
|
-
}
|
|
31
|
-
_setAttributes({ regionId, opened, controlsId, disabled }) {
|
|
32
|
-
this.setAttribute('id', regionId);
|
|
33
|
-
this.setAttribute('aria-expanded', opened ? 'true' : 'false');
|
|
34
|
-
this.setAttribute('aria-controls', controlsId);
|
|
35
|
-
this.setAttribute('aria-disabled', disabled ? 'true' : 'false');
|
|
36
|
-
if (disabled) {
|
|
37
|
-
this.removeAttribute('role');
|
|
38
|
-
this.setAttribute('tabindex', '-1');
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.setAttribute('role', 'button');
|
|
42
|
-
this.setAttribute('tabindex', '0');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
disconnectedCallback() {
|
|
46
|
-
if (this._accordionGroupProps) {
|
|
47
|
-
this._accordionGroupProps.unsubscribe(this._accordionGroupPropsObserver);
|
|
48
|
-
}
|
|
8
|
+
this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
|
|
49
9
|
}
|
|
50
10
|
};
|
|
51
11
|
HAccordionToggler = __decorate([
|
|
@@ -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;
|
|
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;"}
|
|
@@ -15,16 +15,6 @@ export interface IAccordionGroup {
|
|
|
15
15
|
toggle(): void;
|
|
16
16
|
}
|
|
17
17
|
export declare type TAccordionMode = Any.Keys<typeof ACCORDION_MODE>;
|
|
18
|
-
export declare type TAccordionProps = {
|
|
19
|
-
disabled: boolean;
|
|
20
|
-
mode: TAccordionMode;
|
|
21
|
-
};
|
|
22
|
-
export declare type TAccordionGroupProps = {
|
|
23
|
-
opened: boolean;
|
|
24
|
-
disabled: boolean;
|
|
25
|
-
regionId: string;
|
|
26
|
-
controlsId: string;
|
|
27
|
-
};
|
|
28
18
|
declare global {
|
|
29
19
|
interface HTMLElementTagNameMap {
|
|
30
20
|
'h-accordion': HAccordion;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
class SelectOption {
|
|
2
|
-
constructor({ selected = false, hidden = false, disabled = false, value, content, inactive = false }) {
|
|
2
|
+
constructor({ selected = false, hidden = false, disabled = false, value, content, inactive = false, isPlaceholder = false }) {
|
|
3
3
|
this.value = value;
|
|
4
4
|
this.selected = selected;
|
|
5
5
|
this.hidden = hidden;
|
|
6
6
|
this.disabled = disabled;
|
|
7
7
|
this.content = content;
|
|
8
8
|
this.inactive = inactive;
|
|
9
|
+
this.isPlaceholder = isPlaceholder;
|
|
9
10
|
}
|
|
10
11
|
static create(options) {
|
|
11
12
|
return new SelectOption(options);
|
|
@@ -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;"}
|
|
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;"}
|
|
@@ -6,7 +6,7 @@ class SelectOptionMapper {
|
|
|
6
6
|
const $optionContent = $option.querySelector(SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
7
7
|
const optionContentText = ($optionContent === null || $optionContent === void 0 ? void 0 : $optionContent.textContent) || ($optionContent === null || $optionContent === void 0 ? void 0 : $optionContent.innerText);
|
|
8
8
|
const value = $option.getAttribute('value');
|
|
9
|
-
if (
|
|
9
|
+
if (value === null || value === undefined)
|
|
10
10
|
throw new Error('h-option must contain a unique value');
|
|
11
11
|
if (!optionContentText)
|
|
12
12
|
throw new Error('h-options must contains a h-option-content element inside');
|
|
@@ -16,7 +16,8 @@ class SelectOptionMapper {
|
|
|
16
16
|
hidden: $option.hasAttribute('hidden'),
|
|
17
17
|
inactive: $option.hasAttribute('inactive'),
|
|
18
18
|
content: optionContentText,
|
|
19
|
-
selected: $option.hasAttribute('selected')
|
|
19
|
+
selected: $option.hasAttribute('selected'),
|
|
20
|
+
isPlaceholder: $option.hasAttribute('placeholder')
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
23
|
}
|
package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.js.map
CHANGED
|
@@ -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;"}
|
|
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;"}
|
|
@@ -23,6 +23,7 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
23
23
|
optionsList?: TSelectOption[];
|
|
24
24
|
noDeselect: boolean;
|
|
25
25
|
assistiveTitleId: string;
|
|
26
|
+
isDevSelectPlaceholderFlagEnabled: boolean;
|
|
26
27
|
translations: Record<string, string>;
|
|
27
28
|
private _selectOptionsId;
|
|
28
29
|
get selectedIndex(): number;
|
|
@@ -53,6 +54,10 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
53
54
|
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
54
55
|
private _updateOptions;
|
|
55
56
|
private _getOptions;
|
|
57
|
+
private _addPlaceholderOptionIfNeeded;
|
|
58
|
+
private get _canAddPlaceholder();
|
|
59
|
+
private _createPlaceholderOption;
|
|
60
|
+
private _injectOptionIntoDOM;
|
|
56
61
|
private _setupEvents;
|
|
57
62
|
private _handleOptionDeselect;
|
|
58
63
|
private _updateOptionsView;
|