@shoper/phoenix_design_system 1.18.10-7 → 1.18.10-9
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 +5 -14
- package/build/cjs/packages/phoenix/src/components/accordion/accordion.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_constants.js +2 -10
- 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 +17 -43
- 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 +28 -194
- 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 +7 -23
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/details/details.js +41 -0
- package/build/cjs/packages/phoenix/src/components/details/details.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/details/details_constants.js +23 -0
- package/build/{esm/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js.map → cjs/packages/phoenix/src/components/details/details_constants.js.map} +1 -1
- package/build/cjs/packages/phoenix/src/components/details/details_content.js +38 -0
- package/build/cjs/packages/phoenix/src/components/details/details_content.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/details/details_group.js +177 -0
- package/build/cjs/packages/phoenix/src/components/details/details_group.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/details/details_toggler.js +27 -0
- package/build/cjs/packages/phoenix/src/components/details/details_toggler.js.map +1 -0
- package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -1
- package/build/cjs/packages/phoenix/src/index.js +33 -2
- package/build/cjs/packages/phoenix/src/index.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion.d.ts +0 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion.js +6 -15
- 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 +2 -8
- package/build/esm/packages/phoenix/src/components/accordion/accordion_constants.js +3 -9
- 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 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +18 -44
- 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 +0 -16
- package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js +29 -195
- 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 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js +7 -23
- package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/details/details.d.ts +10 -0
- package/build/esm/packages/phoenix/src/components/details/details.js +39 -0
- package/build/esm/packages/phoenix/src/components/details/details.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/details/details_constants.d.ts +13 -0
- package/build/esm/packages/phoenix/src/components/details/details_constants.js +16 -0
- package/build/esm/packages/{utilities/build/esm/packages/utilities/src/json_utils.js.map → phoenix/src/components/details/details_constants.js.map} +1 -1
- package/build/esm/packages/phoenix/src/components/details/details_content.d.ts +6 -0
- package/build/esm/packages/phoenix/src/components/details/details_content.js +36 -0
- package/build/esm/packages/phoenix/src/components/details/details_content.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/details/details_group.d.ts +30 -0
- package/build/esm/packages/phoenix/src/components/details/details_group.js +175 -0
- package/build/esm/packages/phoenix/src/components/details/details_group.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/details/details_toggler.d.ts +4 -0
- package/build/esm/packages/phoenix/src/components/details/details_toggler.js +25 -0
- package/build/{cjs/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js.map → esm/packages/phoenix/src/components/details/details_toggler.js.map} +1 -1
- package/build/esm/packages/phoenix/src/components/details/details_types.d.ts +35 -0
- package/build/esm/packages/phoenix/src/components/details/details_types.js +7 -0
- package/build/esm/packages/phoenix/src/components/details/details_types.js.map +1 -0
- package/build/esm/packages/phoenix/src/components/messages/base_message.js +1 -1
- package/build/esm/packages/phoenix/src/index.d.ts +6 -0
- package/build/esm/packages/phoenix/src/index.js +6 -1
- package/build/esm/packages/phoenix/src/index.js.map +1 -1
- package/package.json +2 -2
- package/build/cjs/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js +0 -26
- package/build/cjs/packages/utilities/build/esm/packages/utilities/src/json_utils.js +0 -25
- package/build/cjs/packages/utilities/build/esm/packages/utilities/src/json_utils.js.map +0 -1
- package/build/esm/packages/utilities/build/esm/packages/utilities/src/feature_flag_utils.js +0 -22
- package/build/esm/packages/utilities/build/esm/packages/utilities/src/json_utils.js +0 -21
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { html } from 'lit';
|
|
3
2
|
import { property, state } from 'lit/decorators';
|
|
4
3
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
5
4
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
@@ -7,11 +6,7 @@ import { Observer } from '../../core/classes/observer/observer.js';
|
|
|
7
6
|
import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
|
|
8
7
|
import { BehaviorSubject } from '../../core/classes/behavior_subject/behavior_subject.js';
|
|
9
8
|
import { ContextProviderController } from '../../core/context/context_provider_controller.js';
|
|
10
|
-
import
|
|
11
|
-
import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS, ACCORDION_CSS_CLASSES, ACCORDION_ANIMATION_DURATION } from './accordion_constants.js';
|
|
12
|
-
import { FeatureFlagUtils } from '../../../../utilities/build/esm/packages/utilities/src/feature_flag_utils.js';
|
|
13
|
-
import { createRef, ref } from 'lit/directives/ref';
|
|
14
|
-
import { when } from 'lit/directives/when';
|
|
9
|
+
import { ACCORDION_MODE, ACCORDION_CONTEXTS, ACCORDION_EVENTS } from './accordion_constants.js';
|
|
15
10
|
|
|
16
11
|
let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
17
12
|
constructor() {
|
|
@@ -21,74 +16,19 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
|
21
16
|
this._regionId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
|
|
22
17
|
this._controlsId = typeof self.crypto.randomUUID === 'function' ? self.crypto.randomUUID() : (Math.random() + 1).toString(36).substring(3);
|
|
23
18
|
this._mode = ACCORDION_MODE.multi;
|
|
24
|
-
this._$parentAccordion = null;
|
|
25
|
-
this._detailsRef = createRef();
|
|
26
|
-
this._togglerId = v4();
|
|
27
|
-
this._animationFrameId = null;
|
|
28
|
-
this._closeTimeoutId = null;
|
|
29
|
-
this._syncWithParentAccordion = () => {
|
|
30
|
-
if (!this._$parentAccordion)
|
|
31
|
-
return;
|
|
32
|
-
this._mode = this._$parentAccordion.mode;
|
|
33
|
-
const shouldBeDisabled = this._$parentAccordion.disabled;
|
|
34
|
-
const hasDisabledStateChanged = shouldBeDisabled !== this._isDisabled;
|
|
35
|
-
if (hasDisabledStateChanged) {
|
|
36
|
-
shouldBeDisabled ? this.disable() : this.enable();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
this._hideOtherDetailsGroups = () => {
|
|
40
|
-
var _a;
|
|
41
|
-
if (this._isDisabled)
|
|
42
|
-
return;
|
|
43
|
-
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.querySelectorAll('h-accordion-group').forEach(($accordionGroup) => {
|
|
44
|
-
if ($accordionGroup === this)
|
|
45
|
-
return;
|
|
46
|
-
$accordionGroup.hide();
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
19
|
this._accordionToggle = () => {
|
|
50
20
|
this.toggle();
|
|
51
21
|
};
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
57
|
-
this._isDevAccordionOptimizationFlagEnabled = FeatureFlagUtils.isEnabled('dev_accordion_optimization');
|
|
58
|
-
if (!this._isDevAccordionOptimizationFlagEnabled) {
|
|
59
|
-
this._accordionGroupPropsSubject = new BehaviorSubject(this._getProps());
|
|
60
|
-
this._accordionGroupContext = new ContextProviderController(this);
|
|
61
|
-
this._accordionGroupContext.provide(ACCORDION_CONTEXTS.accordionGroupProps, this._accordionGroupPropsSubject);
|
|
62
|
-
this.setAttribute('role', 'none');
|
|
63
|
-
}
|
|
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');
|
|
64
26
|
}
|
|
65
27
|
connectedCallback() {
|
|
66
|
-
var _a;
|
|
67
28
|
super.connectedCallback();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.addEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
|
|
72
|
-
this._syncWithParentAccordion();
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this._accordionContextConsumer = new ContextConsumerController(this);
|
|
76
|
-
this._subscribeObserver();
|
|
77
|
-
this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
_addClassedToSlottedContentElements() {
|
|
81
|
-
const slottedContentElements = Array.from(this.querySelectorAll('[slot="content"]'));
|
|
82
|
-
slottedContentElements.forEach(($element) => {
|
|
83
|
-
$element.classList.add(ACCORDION_CSS_CLASSES.content);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
firstUpdated(props) {
|
|
87
|
-
super.firstUpdated(props);
|
|
88
|
-
if (this._isDevAccordionOptimizationFlagEnabled) {
|
|
89
|
-
if (this.opened)
|
|
90
|
-
this.show();
|
|
91
|
-
}
|
|
29
|
+
this._accordionContextConsumer = new ContextConsumerController(this);
|
|
30
|
+
this._subscribeObserver();
|
|
31
|
+
this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
92
32
|
}
|
|
93
33
|
async _subscribeObserver() {
|
|
94
34
|
this._accordionProps = await this._accordionContextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionProps);
|
|
@@ -108,116 +48,34 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
|
108
48
|
this._accordionProps.subscribe(this._accordionPropsObserver);
|
|
109
49
|
}
|
|
110
50
|
disconnectedCallback() {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (this._isDevAccordionOptimizationFlagEnabled) {
|
|
114
|
-
(_a = this._$parentAccordion) === null || _a === void 0 ? void 0 : _a.removeEventListener(ACCORDION_EVENTS.update, this._syncWithParentAccordion);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this._accordionProps.unsubscribe(this._accordionPropsObserver);
|
|
118
|
-
this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
119
|
-
}
|
|
51
|
+
this._accordionProps.unsubscribe(this._accordionPropsObserver);
|
|
52
|
+
this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
120
53
|
}
|
|
121
54
|
show() {
|
|
122
|
-
if (this.
|
|
123
|
-
this.
|
|
124
|
-
|
|
125
|
-
if (!$details)
|
|
126
|
-
return;
|
|
127
|
-
this._clearPendingAnimations();
|
|
128
|
-
$details.setAttribute('open', '');
|
|
129
|
-
this._animationFrameId = requestAnimationFrame(() => {
|
|
130
|
-
$details.classList.add(ACCORDION_CSS_CLASSES.open);
|
|
131
|
-
this._animationFrameId = null;
|
|
132
|
-
});
|
|
133
|
-
this._dispatchToggleEvent($details, true);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
if (this._mode === ACCORDION_MODE.single)
|
|
137
|
-
this._closeOtherAccordionGroups();
|
|
138
|
-
this.opened = true;
|
|
139
|
-
}
|
|
55
|
+
if (this._mode === ACCORDION_MODE.single)
|
|
56
|
+
this._closeOtherAccordionGroups();
|
|
57
|
+
this.opened = true;
|
|
140
58
|
}
|
|
141
59
|
hide() {
|
|
142
|
-
|
|
143
|
-
const $details = this._detailsRef.value;
|
|
144
|
-
if (!$details)
|
|
145
|
-
return;
|
|
146
|
-
this._clearPendingAnimations();
|
|
147
|
-
$details.classList.remove(ACCORDION_CSS_CLASSES.open);
|
|
148
|
-
this._closeTimeoutId = setTimeout(() => {
|
|
149
|
-
$details.removeAttribute('open');
|
|
150
|
-
this._closeTimeoutId = null;
|
|
151
|
-
}, ACCORDION_ANIMATION_DURATION);
|
|
152
|
-
this._dispatchToggleEvent($details, false);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
this.opened = false;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
_clearPendingAnimations() {
|
|
159
|
-
if (this._animationFrameId !== null) {
|
|
160
|
-
cancelAnimationFrame(this._animationFrameId);
|
|
161
|
-
this._animationFrameId = null;
|
|
162
|
-
}
|
|
163
|
-
if (this._closeTimeoutId !== null) {
|
|
164
|
-
clearTimeout(this._closeTimeoutId);
|
|
165
|
-
this._closeTimeoutId = null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
_dispatchToggleEvent($details, open) {
|
|
169
|
-
this.emitCustomEvent(ACCORDION_EVENTS.toggle, {
|
|
170
|
-
detail: { open, target: $details }
|
|
171
|
-
});
|
|
60
|
+
this.opened = false;
|
|
172
61
|
}
|
|
173
62
|
toggle() {
|
|
174
|
-
if (this.
|
|
175
|
-
this.
|
|
176
|
-
|
|
177
|
-
if (!$details)
|
|
178
|
-
return;
|
|
179
|
-
const isOpen = $details.hasAttribute('open');
|
|
180
|
-
isOpen ? this.hide() : this.show();
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
if (this._mode === ACCORDION_MODE.single)
|
|
184
|
-
this._closeOtherAccordionGroups();
|
|
185
|
-
this.opened = !this.opened;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
_handleSingleModeConstraint() {
|
|
189
|
-
if (this._mode === ACCORDION_MODE.single) {
|
|
190
|
-
this._hideOtherDetailsGroups();
|
|
191
|
-
}
|
|
63
|
+
if (this._mode === ACCORDION_MODE.single)
|
|
64
|
+
this._closeOtherAccordionGroups();
|
|
65
|
+
this.opened = !this.opened;
|
|
192
66
|
}
|
|
193
67
|
enable() {
|
|
194
|
-
if (this.
|
|
195
|
-
|
|
196
|
-
return;
|
|
197
|
-
this._isDisabled = false;
|
|
68
|
+
if (this._isDisabled) {
|
|
69
|
+
this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
198
70
|
this.hide();
|
|
199
|
-
|
|
200
|
-
else {
|
|
201
|
-
if (this._isDisabled) {
|
|
202
|
-
this.addEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
203
|
-
this.hide();
|
|
204
|
-
this._isDisabled = false;
|
|
205
|
-
}
|
|
71
|
+
this._isDisabled = false;
|
|
206
72
|
}
|
|
207
73
|
}
|
|
208
74
|
disable() {
|
|
209
|
-
if (this.
|
|
210
|
-
|
|
211
|
-
return;
|
|
212
|
-
this._isDisabled = true;
|
|
75
|
+
if (!this._isDisabled) {
|
|
76
|
+
this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
213
77
|
this.show();
|
|
214
|
-
|
|
215
|
-
else {
|
|
216
|
-
if (!this._isDisabled) {
|
|
217
|
-
this.removeEventListener(ACCORDION_EVENTS.toggle, this._accordionToggle);
|
|
218
|
-
this.show();
|
|
219
|
-
this._isDisabled = true;
|
|
220
|
-
}
|
|
78
|
+
this._isDisabled = true;
|
|
221
79
|
}
|
|
222
80
|
}
|
|
223
81
|
_closeOtherAccordionGroups() {
|
|
@@ -229,18 +87,14 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
|
229
87
|
}
|
|
230
88
|
}
|
|
231
89
|
notify() {
|
|
232
|
-
|
|
233
|
-
this._accordionGroupPropsSubject.notify(this._getProps());
|
|
234
|
-
}
|
|
90
|
+
this._accordionGroupPropsSubject.notify(this._getProps());
|
|
235
91
|
}
|
|
236
92
|
updated(_changedProperties) {
|
|
237
|
-
if (
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
this.notify();
|
|
243
|
-
}
|
|
93
|
+
if (_changedProperties.has('opened') ||
|
|
94
|
+
_changedProperties.has('_isDisabled') ||
|
|
95
|
+
_changedProperties.has('_regionId') ||
|
|
96
|
+
_changedProperties.has('_controlsId')) {
|
|
97
|
+
this.notify();
|
|
244
98
|
}
|
|
245
99
|
}
|
|
246
100
|
_getProps() {
|
|
@@ -251,26 +105,6 @@ let HAccordionGroup = class HAccordionGroup extends PhoenixLightLitElement {
|
|
|
251
105
|
controlsId: this._controlsId
|
|
252
106
|
};
|
|
253
107
|
}
|
|
254
|
-
render() {
|
|
255
|
-
return when(this._isDevAccordionOptimizationFlagEnabled, () => html `
|
|
256
|
-
<details
|
|
257
|
-
${ref(this._detailsRef)}
|
|
258
|
-
class="accordion__details ${this._isDisabled ? 'accordion__details_disabled' : ''}"
|
|
259
|
-
aria-disabled="${this._isDisabled ? 'true' : 'false'}"
|
|
260
|
-
aria-labelledby="${this._togglerId}"
|
|
261
|
-
>
|
|
262
|
-
<summary
|
|
263
|
-
class="accordion__summary"
|
|
264
|
-
id="${this._togglerId}"
|
|
265
|
-
@click=${this._summaryClickHandler}
|
|
266
|
-
>
|
|
267
|
-
${this.getSlot('toggler')}
|
|
268
|
-
</summary>
|
|
269
|
-
|
|
270
|
-
${this.getSlot('content')}
|
|
271
|
-
</details>
|
|
272
|
-
`);
|
|
273
|
-
}
|
|
274
108
|
};
|
|
275
109
|
__decorate([
|
|
276
110
|
property({ type: Boolean, reflect: true }),
|
|
@@ -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
|
|
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;"}
|
|
@@ -3,7 +3,6 @@ export declare class HAccordionToggler extends PhoenixLightLitElement {
|
|
|
3
3
|
private _contextConsumer;
|
|
4
4
|
private _accordionGroupProps;
|
|
5
5
|
private _accordionGroupPropsObserver;
|
|
6
|
-
private _isDevAccordionOptimizationFlagEnabled;
|
|
7
6
|
constructor();
|
|
8
7
|
connectedCallback(): Promise<void>;
|
|
9
8
|
private _setAttributes;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { FeatureFlagUtils, UiDomUtils } from '@dreamcommerce/utilities';
|
|
3
2
|
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
3
|
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
5
4
|
import { Observer } from '../../core/classes/observer/observer.js';
|
|
6
5
|
import { ContextConsumerController } from '../../core/context/context_consumer_controller.js';
|
|
7
6
|
import { ACCORDION_EVENTS, ACCORDION_CONTEXTS } from './accordion_constants.js';
|
|
8
|
-
import { HAccordionGroup } from './accordion_group.js';
|
|
9
7
|
|
|
10
8
|
let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
|
|
11
9
|
constructor() {
|
|
@@ -20,29 +18,15 @@ let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
|
|
|
20
18
|
this._emitTogglerClicked = () => {
|
|
21
19
|
this.emitCustomEvent(ACCORDION_EVENTS.toggle);
|
|
22
20
|
};
|
|
23
|
-
this.
|
|
24
|
-
if (this._isDevAccordionOptimizationFlagEnabled) {
|
|
25
|
-
if (this.parentElement instanceof HAccordionGroup) {
|
|
26
|
-
this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
const contentToSlot = UiDomUtils.findParentByCondition(this, ($el) => $el.parentElement instanceof HAccordionGroup);
|
|
30
|
-
contentToSlot === null || contentToSlot === void 0 ? void 0 : contentToSlot.setAttribute('slot', 'toggler');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this._contextConsumer = new ContextConsumerController(this);
|
|
35
|
-
}
|
|
21
|
+
this._contextConsumer = new ContextConsumerController(this);
|
|
36
22
|
}
|
|
37
23
|
async connectedCallback() {
|
|
38
24
|
super.connectedCallback();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.addEventListener('keydown', this._emitTogglerClickedWithKeyboard);
|
|
45
|
-
}
|
|
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);
|
|
46
30
|
}
|
|
47
31
|
_setAttributes({ regionId, opened, controlsId, disabled }) {
|
|
48
32
|
this.setAttribute('id', regionId);
|
|
@@ -59,7 +43,7 @@ let HAccordionToggler = class HAccordionToggler extends PhoenixLightLitElement {
|
|
|
59
43
|
}
|
|
60
44
|
}
|
|
61
45
|
disconnectedCallback() {
|
|
62
|
-
if (this._accordionGroupProps
|
|
46
|
+
if (this._accordionGroupProps) {
|
|
63
47
|
this._accordionGroupProps.unsubscribe(this._accordionGroupPropsObserver);
|
|
64
48
|
}
|
|
65
49
|
}
|
|
@@ -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;
|
|
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;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IDetails, TDetailsMode } from './details_types';
|
|
2
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
3
|
+
export declare class HDetails extends PhoenixLightLitElement implements IDetails {
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
mode: TDetailsMode;
|
|
6
|
+
enable(): void;
|
|
7
|
+
disable(): void;
|
|
8
|
+
updated(): void;
|
|
9
|
+
notify(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { property } from 'lit/decorators';
|
|
3
|
+
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
4
|
+
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
5
|
+
import { DETAILS_MODE, DETAILS_EVENTS } from './details_constants.js';
|
|
6
|
+
|
|
7
|
+
let HDetails = class HDetails extends PhoenixLightLitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.disabled = false;
|
|
11
|
+
this.mode = DETAILS_MODE.multi;
|
|
12
|
+
}
|
|
13
|
+
enable() {
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
}
|
|
16
|
+
disable() {
|
|
17
|
+
this.disabled = true;
|
|
18
|
+
}
|
|
19
|
+
updated() {
|
|
20
|
+
this.notify();
|
|
21
|
+
}
|
|
22
|
+
notify() {
|
|
23
|
+
this.dispatchEvent(new Event(DETAILS_EVENTS.update));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
__decorate([
|
|
27
|
+
property({ type: Boolean, reflect: true }),
|
|
28
|
+
__metadata("design:type", Object)
|
|
29
|
+
], HDetails.prototype, "disabled", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
property({ type: String }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], HDetails.prototype, "mode", void 0);
|
|
34
|
+
HDetails = __decorate([
|
|
35
|
+
phoenixCustomElement('h-details')
|
|
36
|
+
], HDetails);
|
|
37
|
+
|
|
38
|
+
export { HDetails };
|
|
39
|
+
//# sourceMappingURL=details.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const DETAILS_EVENTS: {
|
|
2
|
+
readonly toggle: "toggleDetails";
|
|
3
|
+
readonly update: "updateDetails";
|
|
4
|
+
};
|
|
5
|
+
export declare const DETAILS_CSS_CLASSES: {
|
|
6
|
+
readonly open: "details__open";
|
|
7
|
+
readonly content: "details__content";
|
|
8
|
+
};
|
|
9
|
+
export declare const DETAILS_MODE: {
|
|
10
|
+
readonly single: "single";
|
|
11
|
+
readonly multi: "multi";
|
|
12
|
+
};
|
|
13
|
+
export declare const DETAILS_ANIMATION_DURATION = 400;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const DETAILS_EVENTS = {
|
|
2
|
+
toggle: 'toggleDetails',
|
|
3
|
+
update: 'updateDetails'
|
|
4
|
+
};
|
|
5
|
+
const DETAILS_CSS_CLASSES = {
|
|
6
|
+
open: 'details__open',
|
|
7
|
+
content: 'details__content'
|
|
8
|
+
};
|
|
9
|
+
const DETAILS_MODE = {
|
|
10
|
+
single: 'single',
|
|
11
|
+
multi: 'multi'
|
|
12
|
+
};
|
|
13
|
+
const DETAILS_ANIMATION_DURATION = 400;
|
|
14
|
+
|
|
15
|
+
export { DETAILS_ANIMATION_DURATION, DETAILS_CSS_CLASSES, DETAILS_EVENTS, DETAILS_MODE };
|
|
16
|
+
//# sourceMappingURL=details_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
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;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { property } from 'lit/decorators';
|
|
3
|
+
import { UiDomUtils } from '@dreamcommerce/utilities';
|
|
4
|
+
import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
|
|
5
|
+
import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
|
|
6
|
+
import { DETAILS_CSS_CLASSES } from './details_constants.js';
|
|
7
|
+
import { HDetailsGroup } from './details_group.js';
|
|
8
|
+
|
|
9
|
+
let HDetailsContent = class HDetailsContent extends PhoenixLightLitElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.transitionName = 'details-toggle';
|
|
13
|
+
if (this.parentElement instanceof HDetailsGroup) {
|
|
14
|
+
this.slot = this.hasAttribute('slot') ? this.slot : 'content';
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const contentToSlot = UiDomUtils.findParentByCondition(this, ($el) => $el.parentElement instanceof HDetailsGroup);
|
|
18
|
+
contentToSlot === null || contentToSlot === void 0 ? void 0 : contentToSlot.setAttribute('slot', 'content');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
connectedCallback() {
|
|
22
|
+
super.connectedCallback();
|
|
23
|
+
this.classList.add(DETAILS_CSS_CLASSES.content);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
__decorate([
|
|
27
|
+
property(),
|
|
28
|
+
__metadata("design:type", Object)
|
|
29
|
+
], HDetailsContent.prototype, "transitionName", void 0);
|
|
30
|
+
HDetailsContent = __decorate([
|
|
31
|
+
phoenixCustomElement('h-details-content'),
|
|
32
|
+
__metadata("design:paramtypes", [])
|
|
33
|
+
], HDetailsContent);
|
|
34
|
+
|
|
35
|
+
export { HDetailsContent };
|
|
36
|
+
//# sourceMappingURL=details_content.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IDetails, IDetailsGroup } from './details_types';
|
|
2
|
+
import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
|
|
3
|
+
import { PropertyValues } from 'lit';
|
|
4
|
+
export declare class HDetailsGroup extends PhoenixLightLitElement implements IDetailsGroup, IDetails {
|
|
5
|
+
opened: boolean;
|
|
6
|
+
private _isDisabled;
|
|
7
|
+
private _mode;
|
|
8
|
+
private _$parentDetails;
|
|
9
|
+
private _detailsRef;
|
|
10
|
+
private _togglerId;
|
|
11
|
+
private _animationFrameId;
|
|
12
|
+
private _closeTimeoutId;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
private _addAttributesToSlottedContentElements;
|
|
15
|
+
firstUpdated(props: PropertyValues): void;
|
|
16
|
+
disconnectedCallback(): void;
|
|
17
|
+
private _syncWithParentDetails;
|
|
18
|
+
show(): void;
|
|
19
|
+
hide(): void;
|
|
20
|
+
private _clearPendingAnimations;
|
|
21
|
+
private _dispatchToggleEvent;
|
|
22
|
+
toggle(): void;
|
|
23
|
+
private _handleSingleModeConstraint;
|
|
24
|
+
private _hideOtherDetailsGroups;
|
|
25
|
+
enable(): void;
|
|
26
|
+
disable(): void;
|
|
27
|
+
notify(): void;
|
|
28
|
+
private _summaryClickHandler;
|
|
29
|
+
protected render(): unknown;
|
|
30
|
+
}
|