@shoper/phoenix_design_system 1.18.12-0 → 1.18.12-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/accordion/accordion_content.js +22 -76
- package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/select.js +45 -5
- package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.d.ts +2 -7
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +22 -76
- package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +4 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.js +45 -5
- package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,23 +18,9 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super();
|
|
20
20
|
this.transitionName = 'accordion-toggle';
|
|
21
|
-
this.isDevAccordionOptimizationFlagEnabled = false;
|
|
22
|
-
this._resizeObserver = null;
|
|
23
|
-
this._isTransitioning = false;
|
|
24
21
|
this._resizeDebounceTimer = null;
|
|
25
22
|
this._mutationDebounceTimer = null;
|
|
26
23
|
this._mutationObserver = null;
|
|
27
|
-
this._handleResizeObserver = () => {
|
|
28
|
-
if (this._isTransitioning || this.hidden || this.style.height === '0px')
|
|
29
|
-
return;
|
|
30
|
-
this._setOriginalHeightValue(this.scrollHeight);
|
|
31
|
-
};
|
|
32
|
-
this._updateOriginalHeight = () => {
|
|
33
|
-
const previousDisplay = this.style.display;
|
|
34
|
-
this.style.setProperty('display', 'block', 'important');
|
|
35
|
-
this._setOriginalHeightValue(this.scrollHeight);
|
|
36
|
-
this.style.display = previousDisplay;
|
|
37
|
-
};
|
|
38
24
|
this._handleResize = () => {
|
|
39
25
|
if (this._resizeDebounceTimer !== null) {
|
|
40
26
|
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
@@ -51,17 +37,12 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
51
37
|
this.style.setProperty('display', 'block', 'important');
|
|
52
38
|
this.style.height = 'auto';
|
|
53
39
|
requestAnimationFrame(() => {
|
|
54
|
-
this._setOriginalHeightValue(
|
|
40
|
+
this._setOriginalHeightValue();
|
|
55
41
|
this.style.display = previousDisplay;
|
|
56
42
|
this.style.height = this.hidden ? '0px' : this._originalHeight;
|
|
57
43
|
});
|
|
58
44
|
});
|
|
59
45
|
};
|
|
60
|
-
this._setOriginalHeightValue = (height) => {
|
|
61
|
-
if (height !== 0 || this.children.length === 0) {
|
|
62
|
-
this._originalHeight = `${height}px`;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
46
|
this._handleMutation = () => {
|
|
66
47
|
if (this._mutationDebounceTimer !== null) {
|
|
67
48
|
window.clearTimeout(this._mutationDebounceTimer);
|
|
@@ -70,7 +51,7 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
70
51
|
requestAnimationFrame(() => {
|
|
71
52
|
this.style.height = 'auto';
|
|
72
53
|
requestAnimationFrame(() => {
|
|
73
|
-
this._setOriginalHeightValue(
|
|
54
|
+
this._setOriginalHeightValue();
|
|
74
55
|
if (this.hidden) {
|
|
75
56
|
this.style.height = '0px';
|
|
76
57
|
}
|
|
@@ -81,43 +62,31 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
81
62
|
});
|
|
82
63
|
}, MUTATION_DEBOUNCE_MS);
|
|
83
64
|
};
|
|
84
|
-
this.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.
|
|
65
|
+
this._setOriginalHeightValue = () => {
|
|
66
|
+
const newHeight = this.getBoundingClientRect().height;
|
|
67
|
+
if (newHeight !== 0 || this.children.length === 0) {
|
|
68
|
+
this._originalHeight = `${newHeight}px`;
|
|
88
69
|
}
|
|
70
|
+
};
|
|
71
|
+
this._expand = () => {
|
|
89
72
|
this._setHeight(this._originalHeight);
|
|
90
73
|
};
|
|
91
74
|
this._handleTransitionEnd = (e) => {
|
|
92
75
|
if (e.propertyName !== 'height' || e.target !== this) {
|
|
93
76
|
return;
|
|
94
77
|
}
|
|
95
|
-
if (this.isDevAccordionOptimizationFlagEnabled) {
|
|
96
|
-
this._isTransitioning = false;
|
|
97
|
-
}
|
|
98
78
|
if (!this.hidden && this.style.height !== '0px') {
|
|
99
79
|
this.style.height = 'auto';
|
|
100
80
|
}
|
|
101
81
|
};
|
|
102
82
|
this._collapse = () => {
|
|
103
|
-
if (this.isDevAccordionOptimizationFlagEnabled) {
|
|
104
|
-
this._isTransitioning = true;
|
|
105
|
-
}
|
|
106
83
|
const currentHeight = this.getBoundingClientRect().height;
|
|
107
84
|
this._setHeight(`${currentHeight}px`);
|
|
108
|
-
|
|
109
|
-
void this.offsetHeight;
|
|
85
|
+
requestAnimationFrame(() => {
|
|
110
86
|
requestAnimationFrame(() => {
|
|
111
87
|
this._setHeight('0px');
|
|
112
88
|
});
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
requestAnimationFrame(() => {
|
|
116
|
-
requestAnimationFrame(() => {
|
|
117
|
-
this._setHeight('0px');
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
}
|
|
89
|
+
});
|
|
121
90
|
};
|
|
122
91
|
this.setAttribute('role', 'region');
|
|
123
92
|
this._boundHandleTransitionEnd = this._handleTransitionEnd.bind(this);
|
|
@@ -127,24 +96,12 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
127
96
|
this._contextConsumer = new context_consumer_controller.ContextConsumerController(this);
|
|
128
97
|
this._transitionController = new transition_controller.TransitionController(this, this.transitionName);
|
|
129
98
|
this._subscribeObserver();
|
|
130
|
-
|
|
131
|
-
this._resizeObserver = new ResizeObserver(this._handleResizeObserver);
|
|
132
|
-
this._resizeObserver.observe(this);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
window.addEventListener('resize', this._handleResize, { passive: true });
|
|
136
|
-
}
|
|
99
|
+
window.addEventListener('resize', this._handleResize, { passive: true });
|
|
137
100
|
this.addEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
138
101
|
}
|
|
139
102
|
firstUpdated(props) {
|
|
140
103
|
super.firstUpdated(props);
|
|
141
|
-
|
|
142
|
-
this._updateOriginalHeight();
|
|
143
|
-
this.style.height = this.hidden ? '0px' : this._originalHeight;
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
this._setStylingOptions();
|
|
147
|
-
}
|
|
104
|
+
this._setStylingOptions();
|
|
148
105
|
}
|
|
149
106
|
async _subscribeObserver() {
|
|
150
107
|
this._accordionGroupProps = await this._contextConsumer.consumeAsync(accordion_constants.ACCORDION_CONTEXTS.accordionGroupProps);
|
|
@@ -153,10 +110,8 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
153
110
|
accordionProps.opened ? this._transitionController.show(this._expand) : this._transitionController.hide(this._collapse);
|
|
154
111
|
});
|
|
155
112
|
this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
this._mutationObserver.observe(this, { childList: true, subtree: true });
|
|
159
|
-
}
|
|
113
|
+
this._mutationObserver = new MutationObserver(this._handleMutation);
|
|
114
|
+
this._mutationObserver.observe(this, { childList: true, subtree: true });
|
|
160
115
|
}
|
|
161
116
|
_setHeight(height) {
|
|
162
117
|
this.style.height = height;
|
|
@@ -166,33 +121,24 @@ exports.HAccordionContent = class HAccordionContent extends phoenix_light_lit_el
|
|
|
166
121
|
this.setAttribute('labelledby', regionId);
|
|
167
122
|
}
|
|
168
123
|
disconnectedCallback() {
|
|
169
|
-
var _a, _b
|
|
124
|
+
var _a, _b;
|
|
170
125
|
super.disconnectedCallback();
|
|
171
126
|
(_a = this._accordionGroupProps) === null || _a === void 0 ? void 0 : _a.unsubscribe(this._accordionGroupPropsObserver);
|
|
172
|
-
|
|
173
|
-
|
|
127
|
+
(_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
128
|
+
window.removeEventListener('resize', this._handleResize);
|
|
129
|
+
this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
130
|
+
if (this._resizeDebounceTimer !== null) {
|
|
131
|
+
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
174
132
|
}
|
|
175
|
-
|
|
176
|
-
(
|
|
177
|
-
window.removeEventListener('resize', this._handleResize);
|
|
178
|
-
if (this._resizeDebounceTimer !== null) {
|
|
179
|
-
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
180
|
-
}
|
|
181
|
-
if (this._mutationDebounceTimer !== null) {
|
|
182
|
-
window.clearTimeout(this._mutationDebounceTimer);
|
|
183
|
-
}
|
|
133
|
+
if (this._mutationDebounceTimer !== null) {
|
|
134
|
+
window.clearTimeout(this._mutationDebounceTimer);
|
|
184
135
|
}
|
|
185
|
-
this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
186
136
|
}
|
|
187
137
|
};
|
|
188
138
|
tslib_es6.__decorate([
|
|
189
139
|
decorators.property(),
|
|
190
140
|
tslib_es6.__metadata("design:type", Object)
|
|
191
141
|
], exports.HAccordionContent.prototype, "transitionName", void 0);
|
|
192
|
-
tslib_es6.__decorate([
|
|
193
|
-
decorators.property({ type: Boolean, attribute: 'is-dev-accordion-optimization-flag-enabled' }),
|
|
194
|
-
tslib_es6.__metadata("design:type", Boolean)
|
|
195
|
-
], exports.HAccordionContent.prototype, "isDevAccordionOptimizationFlagEnabled", void 0);
|
|
196
142
|
exports.HAccordionContent = tslib_es6.__decorate([
|
|
197
143
|
phoenix_custom_element.phoenixCustomElement('h-accordion-content'),
|
|
198
144
|
tslib_es6.__metadata("design:paramtypes", [])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -44,6 +44,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
44
44
|
this.noDeselect = false;
|
|
45
45
|
this.assistiveTitleId = '';
|
|
46
46
|
this.isDevSelectPlaceholderFlagEnabled = false;
|
|
47
|
+
this.isReactiveSelectionFlagEnabled = false;
|
|
47
48
|
this.translations = {};
|
|
48
49
|
this._selectOptionsId = v4['default']();
|
|
49
50
|
this._searchValue = '';
|
|
@@ -185,7 +186,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
185
186
|
const $options = Array.from(this.querySelectorAll(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option));
|
|
186
187
|
$options.forEach(($option) => $option.setAttribute('slot', select_constants.SELECT_SLOT_NAMES.content));
|
|
187
188
|
const $placeholderEl = this.querySelector(`[slot="${select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`);
|
|
188
|
-
this.$placeholder =
|
|
189
|
+
this.$placeholder = $placeholderEl && ((_a = $placeholderEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ? $placeholderEl : 'Select';
|
|
189
190
|
if (this.multiple)
|
|
190
191
|
this.type = select_constants.SELECT_TYPES.multiple;
|
|
191
192
|
}
|
|
@@ -287,6 +288,12 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
287
288
|
}
|
|
288
289
|
this._setupEvents();
|
|
289
290
|
}
|
|
291
|
+
firstUpdated(changedProperties) {
|
|
292
|
+
super.firstUpdated(changedProperties);
|
|
293
|
+
if (this.isReactiveSelectionFlagEnabled) {
|
|
294
|
+
this._setupMutationObserver();
|
|
295
|
+
}
|
|
296
|
+
}
|
|
290
297
|
attributeChangedCallback(name, _old, value) {
|
|
291
298
|
super.attributeChangedCallback(name, _old, value);
|
|
292
299
|
switch (name) {
|
|
@@ -325,7 +332,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
325
332
|
$content.textContent = this.$placeholder;
|
|
326
333
|
}
|
|
327
334
|
else if (this.$placeholder instanceof Node) {
|
|
328
|
-
Array.from(this.$placeholder.childNodes).forEach(node => {
|
|
335
|
+
Array.from(this.$placeholder.childNodes).forEach((node) => {
|
|
329
336
|
$content.appendChild(node.cloneNode(true));
|
|
330
337
|
});
|
|
331
338
|
}
|
|
@@ -345,6 +352,33 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
345
352
|
this.addEventListener(select_constants.SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
|
|
346
353
|
this.addEventListener(select_components_constatns.SELECT_CLOSE_BTN_EVENT_NAMES.close, this._closeSelect);
|
|
347
354
|
}
|
|
355
|
+
_setupMutationObserver() {
|
|
356
|
+
this._optionsMutationObserver = new MutationObserver((mutations) => {
|
|
357
|
+
var _a;
|
|
358
|
+
let shouldUpdate = false;
|
|
359
|
+
for (const mutation of mutations) {
|
|
360
|
+
const target = mutation.target;
|
|
361
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'selected' && ((_a = target.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'h-option') {
|
|
362
|
+
shouldUpdate = true;
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (shouldUpdate) {
|
|
367
|
+
const currentElements = Array.from(this._$options.values());
|
|
368
|
+
const options = currentElements.map(($el) => select_option_mapper.SelectOptionMapper.toModel($el));
|
|
369
|
+
this._selectController.options$.notify(options);
|
|
370
|
+
const selectedOptions = options.filter((opt) => opt.selected);
|
|
371
|
+
this._selectController.selectedOptions$.notify(selectedOptions);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
if (this._$optionsList.value) {
|
|
375
|
+
this._optionsMutationObserver.observe(this._$optionsList.value, {
|
|
376
|
+
attributes: true,
|
|
377
|
+
attributeFilter: ['selected'],
|
|
378
|
+
subtree: true
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
}
|
|
348
382
|
_appendNewHTMLOption(option, position) {
|
|
349
383
|
const $list = this._$optionsList.value;
|
|
350
384
|
if (!$list)
|
|
@@ -405,9 +439,11 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
405
439
|
this._selectController.select(option);
|
|
406
440
|
}
|
|
407
441
|
disconnectedCallback() {
|
|
442
|
+
var _a;
|
|
408
443
|
super.disconnectedCallback();
|
|
409
444
|
this._selectController.options$.unsubscribe(this._optionsObserver);
|
|
410
445
|
this._$options.clear();
|
|
446
|
+
(_a = this._optionsMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
411
447
|
}
|
|
412
448
|
_getClonedPlaceholderElement() {
|
|
413
449
|
return this.$placeholder instanceof HTMLElement ? this.$placeholder.cloneNode(true) : this.$placeholder;
|
|
@@ -459,9 +495,9 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
459
495
|
<h-select-close-btn class="${select_constants.SELECT_CSS_CLASSES.selectCloseMobileButton}" @close=${this._closeSelect}></h-select-close-btn>
|
|
460
496
|
|
|
461
497
|
<div class=${select_constants.SELECT_CSS_CLASSES.selectLabel}>
|
|
462
|
-
${this.isDevSelectPlaceholderFlagEnabled
|
|
463
|
-
(_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.cloneNode(true)
|
|
464
|
-
lit.html `${this._getClonedPlaceholderElement()}`}
|
|
498
|
+
${this.isDevSelectPlaceholderFlagEnabled
|
|
499
|
+
? (_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.cloneNode(true)
|
|
500
|
+
: lit.html `${this._getClonedPlaceholderElement()}`}
|
|
465
501
|
</div>
|
|
466
502
|
|
|
467
503
|
${isSearchEnabled
|
|
@@ -581,6 +617,10 @@ tslib_es6.__decorate([
|
|
|
581
617
|
decorators_js.property({ type: Boolean, attribute: 'is-dev-select-placeholder-flag-enabled' }),
|
|
582
618
|
tslib_es6.__metadata("design:type", Boolean)
|
|
583
619
|
], exports.HSelect.prototype, "isDevSelectPlaceholderFlagEnabled", void 0);
|
|
620
|
+
tslib_es6.__decorate([
|
|
621
|
+
decorators_js.property({ type: Boolean, attribute: 'is-reactive-selection-flag-enabled' }),
|
|
622
|
+
tslib_es6.__metadata("design:type", Boolean)
|
|
623
|
+
], exports.HSelect.prototype, "isReactiveSelectionFlagEnabled", void 0);
|
|
584
624
|
tslib_es6.__decorate([
|
|
585
625
|
decorators_js.property({
|
|
586
626
|
converter: {
|
|
@@ -1 +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,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -2,14 +2,11 @@ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/pho
|
|
|
2
2
|
import { PropertyValues } from 'lit';
|
|
3
3
|
export declare class HAccordionContent extends PhoenixLightLitElement {
|
|
4
4
|
transitionName: string;
|
|
5
|
-
isDevAccordionOptimizationFlagEnabled: boolean;
|
|
6
5
|
private _transitionController;
|
|
7
6
|
private _contextConsumer;
|
|
8
7
|
private _accordionGroupProps;
|
|
9
8
|
private _accordionGroupPropsObserver;
|
|
10
9
|
private _originalHeight;
|
|
11
|
-
private _resizeObserver;
|
|
12
|
-
private _isTransitioning;
|
|
13
10
|
private _resizeDebounceTimer;
|
|
14
11
|
private _mutationDebounceTimer;
|
|
15
12
|
private _mutationObserver;
|
|
@@ -17,13 +14,11 @@ export declare class HAccordionContent extends PhoenixLightLitElement {
|
|
|
17
14
|
constructor();
|
|
18
15
|
connectedCallback(): void;
|
|
19
16
|
firstUpdated(props: PropertyValues): void;
|
|
20
|
-
private _handleResizeObserver;
|
|
21
|
-
private _updateOriginalHeight;
|
|
22
17
|
private _handleResize;
|
|
23
18
|
private _setStylingOptions;
|
|
24
|
-
private _setOriginalHeightValue;
|
|
25
|
-
private _handleMutation;
|
|
26
19
|
private _subscribeObserver;
|
|
20
|
+
private _handleMutation;
|
|
21
|
+
private _setOriginalHeightValue;
|
|
27
22
|
private _expand;
|
|
28
23
|
private _handleTransitionEnd;
|
|
29
24
|
private _collapse;
|
|
@@ -14,23 +14,9 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
super();
|
|
16
16
|
this.transitionName = 'accordion-toggle';
|
|
17
|
-
this.isDevAccordionOptimizationFlagEnabled = false;
|
|
18
|
-
this._resizeObserver = null;
|
|
19
|
-
this._isTransitioning = false;
|
|
20
17
|
this._resizeDebounceTimer = null;
|
|
21
18
|
this._mutationDebounceTimer = null;
|
|
22
19
|
this._mutationObserver = null;
|
|
23
|
-
this._handleResizeObserver = () => {
|
|
24
|
-
if (this._isTransitioning || this.hidden || this.style.height === '0px')
|
|
25
|
-
return;
|
|
26
|
-
this._setOriginalHeightValue(this.scrollHeight);
|
|
27
|
-
};
|
|
28
|
-
this._updateOriginalHeight = () => {
|
|
29
|
-
const previousDisplay = this.style.display;
|
|
30
|
-
this.style.setProperty('display', 'block', 'important');
|
|
31
|
-
this._setOriginalHeightValue(this.scrollHeight);
|
|
32
|
-
this.style.display = previousDisplay;
|
|
33
|
-
};
|
|
34
20
|
this._handleResize = () => {
|
|
35
21
|
if (this._resizeDebounceTimer !== null) {
|
|
36
22
|
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
@@ -47,17 +33,12 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
47
33
|
this.style.setProperty('display', 'block', 'important');
|
|
48
34
|
this.style.height = 'auto';
|
|
49
35
|
requestAnimationFrame(() => {
|
|
50
|
-
this._setOriginalHeightValue(
|
|
36
|
+
this._setOriginalHeightValue();
|
|
51
37
|
this.style.display = previousDisplay;
|
|
52
38
|
this.style.height = this.hidden ? '0px' : this._originalHeight;
|
|
53
39
|
});
|
|
54
40
|
});
|
|
55
41
|
};
|
|
56
|
-
this._setOriginalHeightValue = (height) => {
|
|
57
|
-
if (height !== 0 || this.children.length === 0) {
|
|
58
|
-
this._originalHeight = `${height}px`;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
42
|
this._handleMutation = () => {
|
|
62
43
|
if (this._mutationDebounceTimer !== null) {
|
|
63
44
|
window.clearTimeout(this._mutationDebounceTimer);
|
|
@@ -66,7 +47,7 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
66
47
|
requestAnimationFrame(() => {
|
|
67
48
|
this.style.height = 'auto';
|
|
68
49
|
requestAnimationFrame(() => {
|
|
69
|
-
this._setOriginalHeightValue(
|
|
50
|
+
this._setOriginalHeightValue();
|
|
70
51
|
if (this.hidden) {
|
|
71
52
|
this.style.height = '0px';
|
|
72
53
|
}
|
|
@@ -77,43 +58,31 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
77
58
|
});
|
|
78
59
|
}, MUTATION_DEBOUNCE_MS);
|
|
79
60
|
};
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this.
|
|
61
|
+
this._setOriginalHeightValue = () => {
|
|
62
|
+
const newHeight = this.getBoundingClientRect().height;
|
|
63
|
+
if (newHeight !== 0 || this.children.length === 0) {
|
|
64
|
+
this._originalHeight = `${newHeight}px`;
|
|
84
65
|
}
|
|
66
|
+
};
|
|
67
|
+
this._expand = () => {
|
|
85
68
|
this._setHeight(this._originalHeight);
|
|
86
69
|
};
|
|
87
70
|
this._handleTransitionEnd = (e) => {
|
|
88
71
|
if (e.propertyName !== 'height' || e.target !== this) {
|
|
89
72
|
return;
|
|
90
73
|
}
|
|
91
|
-
if (this.isDevAccordionOptimizationFlagEnabled) {
|
|
92
|
-
this._isTransitioning = false;
|
|
93
|
-
}
|
|
94
74
|
if (!this.hidden && this.style.height !== '0px') {
|
|
95
75
|
this.style.height = 'auto';
|
|
96
76
|
}
|
|
97
77
|
};
|
|
98
78
|
this._collapse = () => {
|
|
99
|
-
if (this.isDevAccordionOptimizationFlagEnabled) {
|
|
100
|
-
this._isTransitioning = true;
|
|
101
|
-
}
|
|
102
79
|
const currentHeight = this.getBoundingClientRect().height;
|
|
103
80
|
this._setHeight(`${currentHeight}px`);
|
|
104
|
-
|
|
105
|
-
void this.offsetHeight;
|
|
81
|
+
requestAnimationFrame(() => {
|
|
106
82
|
requestAnimationFrame(() => {
|
|
107
83
|
this._setHeight('0px');
|
|
108
84
|
});
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
requestAnimationFrame(() => {
|
|
112
|
-
requestAnimationFrame(() => {
|
|
113
|
-
this._setHeight('0px');
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
}
|
|
85
|
+
});
|
|
117
86
|
};
|
|
118
87
|
this.setAttribute('role', 'region');
|
|
119
88
|
this._boundHandleTransitionEnd = this._handleTransitionEnd.bind(this);
|
|
@@ -123,24 +92,12 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
123
92
|
this._contextConsumer = new ContextConsumerController(this);
|
|
124
93
|
this._transitionController = new TransitionController(this, this.transitionName);
|
|
125
94
|
this._subscribeObserver();
|
|
126
|
-
|
|
127
|
-
this._resizeObserver = new ResizeObserver(this._handleResizeObserver);
|
|
128
|
-
this._resizeObserver.observe(this);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
window.addEventListener('resize', this._handleResize, { passive: true });
|
|
132
|
-
}
|
|
95
|
+
window.addEventListener('resize', this._handleResize, { passive: true });
|
|
133
96
|
this.addEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
134
97
|
}
|
|
135
98
|
firstUpdated(props) {
|
|
136
99
|
super.firstUpdated(props);
|
|
137
|
-
|
|
138
|
-
this._updateOriginalHeight();
|
|
139
|
-
this.style.height = this.hidden ? '0px' : this._originalHeight;
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
this._setStylingOptions();
|
|
143
|
-
}
|
|
100
|
+
this._setStylingOptions();
|
|
144
101
|
}
|
|
145
102
|
async _subscribeObserver() {
|
|
146
103
|
this._accordionGroupProps = await this._contextConsumer.consumeAsync(ACCORDION_CONTEXTS.accordionGroupProps);
|
|
@@ -149,10 +106,8 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
149
106
|
accordionProps.opened ? this._transitionController.show(this._expand) : this._transitionController.hide(this._collapse);
|
|
150
107
|
});
|
|
151
108
|
this._accordionGroupProps.subscribe(this._accordionGroupPropsObserver);
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
this._mutationObserver.observe(this, { childList: true, subtree: true });
|
|
155
|
-
}
|
|
109
|
+
this._mutationObserver = new MutationObserver(this._handleMutation);
|
|
110
|
+
this._mutationObserver.observe(this, { childList: true, subtree: true });
|
|
156
111
|
}
|
|
157
112
|
_setHeight(height) {
|
|
158
113
|
this.style.height = height;
|
|
@@ -162,33 +117,24 @@ let HAccordionContent = class HAccordionContent extends PhoenixLightLitElement {
|
|
|
162
117
|
this.setAttribute('labelledby', regionId);
|
|
163
118
|
}
|
|
164
119
|
disconnectedCallback() {
|
|
165
|
-
var _a, _b
|
|
120
|
+
var _a, _b;
|
|
166
121
|
super.disconnectedCallback();
|
|
167
122
|
(_a = this._accordionGroupProps) === null || _a === void 0 ? void 0 : _a.unsubscribe(this._accordionGroupPropsObserver);
|
|
168
|
-
|
|
169
|
-
|
|
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);
|
|
170
128
|
}
|
|
171
|
-
|
|
172
|
-
(
|
|
173
|
-
window.removeEventListener('resize', this._handleResize);
|
|
174
|
-
if (this._resizeDebounceTimer !== null) {
|
|
175
|
-
window.cancelAnimationFrame(this._resizeDebounceTimer);
|
|
176
|
-
}
|
|
177
|
-
if (this._mutationDebounceTimer !== null) {
|
|
178
|
-
window.clearTimeout(this._mutationDebounceTimer);
|
|
179
|
-
}
|
|
129
|
+
if (this._mutationDebounceTimer !== null) {
|
|
130
|
+
window.clearTimeout(this._mutationDebounceTimer);
|
|
180
131
|
}
|
|
181
|
-
this.removeEventListener('transitionend', this._boundHandleTransitionEnd);
|
|
182
132
|
}
|
|
183
133
|
};
|
|
184
134
|
__decorate([
|
|
185
135
|
property(),
|
|
186
136
|
__metadata("design:type", Object)
|
|
187
137
|
], HAccordionContent.prototype, "transitionName", void 0);
|
|
188
|
-
__decorate([
|
|
189
|
-
property({ type: Boolean, attribute: 'is-dev-accordion-optimization-flag-enabled' }),
|
|
190
|
-
__metadata("design:type", Boolean)
|
|
191
|
-
], HAccordionContent.prototype, "isDevAccordionOptimizationFlagEnabled", void 0);
|
|
192
138
|
HAccordionContent = __decorate([
|
|
193
139
|
phoenixCustomElement('h-accordion-content'),
|
|
194
140
|
__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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -24,6 +24,7 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
24
24
|
noDeselect: boolean;
|
|
25
25
|
assistiveTitleId: string;
|
|
26
26
|
isDevSelectPlaceholderFlagEnabled: boolean;
|
|
27
|
+
isReactiveSelectionFlagEnabled: boolean;
|
|
27
28
|
translations: Record<string, string>;
|
|
28
29
|
private _selectOptionsId;
|
|
29
30
|
get selectedIndex(): number;
|
|
@@ -47,10 +48,12 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
47
48
|
private _selectedOptionsAriaObserver;
|
|
48
49
|
private $placeholder;
|
|
49
50
|
private $searchLabel;
|
|
51
|
+
private _optionsMutationObserver?;
|
|
50
52
|
constructor();
|
|
51
53
|
updated(changedProperties: PropertyValues): void;
|
|
52
54
|
private _focusElementAfterSelectOpened;
|
|
53
55
|
connectedCallback(): void;
|
|
56
|
+
firstUpdated(changedProperties: PropertyValues): void;
|
|
54
57
|
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
55
58
|
private _updateOptions;
|
|
56
59
|
private _getOptions;
|
|
@@ -59,6 +62,7 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
59
62
|
private _createPlaceholderOption;
|
|
60
63
|
private _injectOptionIntoDOM;
|
|
61
64
|
private _setupEvents;
|
|
65
|
+
private _setupMutationObserver;
|
|
62
66
|
private _handleOptionDeselect;
|
|
63
67
|
private _updateOptionsView;
|
|
64
68
|
private _updateLabelAria;
|
|
@@ -40,6 +40,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
40
40
|
this.noDeselect = false;
|
|
41
41
|
this.assistiveTitleId = '';
|
|
42
42
|
this.isDevSelectPlaceholderFlagEnabled = false;
|
|
43
|
+
this.isReactiveSelectionFlagEnabled = false;
|
|
43
44
|
this.translations = {};
|
|
44
45
|
this._selectOptionsId = v4();
|
|
45
46
|
this._searchValue = '';
|
|
@@ -181,7 +182,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
181
182
|
const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
|
|
182
183
|
$options.forEach(($option) => $option.setAttribute('slot', SELECT_SLOT_NAMES.content));
|
|
183
184
|
const $placeholderEl = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`);
|
|
184
|
-
this.$placeholder =
|
|
185
|
+
this.$placeholder = $placeholderEl && ((_a = $placeholderEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ? $placeholderEl : 'Select';
|
|
185
186
|
if (this.multiple)
|
|
186
187
|
this.type = SELECT_TYPES.multiple;
|
|
187
188
|
}
|
|
@@ -283,6 +284,12 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
283
284
|
}
|
|
284
285
|
this._setupEvents();
|
|
285
286
|
}
|
|
287
|
+
firstUpdated(changedProperties) {
|
|
288
|
+
super.firstUpdated(changedProperties);
|
|
289
|
+
if (this.isReactiveSelectionFlagEnabled) {
|
|
290
|
+
this._setupMutationObserver();
|
|
291
|
+
}
|
|
292
|
+
}
|
|
286
293
|
attributeChangedCallback(name, _old, value) {
|
|
287
294
|
super.attributeChangedCallback(name, _old, value);
|
|
288
295
|
switch (name) {
|
|
@@ -321,7 +328,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
321
328
|
$content.textContent = this.$placeholder;
|
|
322
329
|
}
|
|
323
330
|
else if (this.$placeholder instanceof Node) {
|
|
324
|
-
Array.from(this.$placeholder.childNodes).forEach(node => {
|
|
331
|
+
Array.from(this.$placeholder.childNodes).forEach((node) => {
|
|
325
332
|
$content.appendChild(node.cloneNode(true));
|
|
326
333
|
});
|
|
327
334
|
}
|
|
@@ -341,6 +348,33 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
341
348
|
this.addEventListener(SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
|
|
342
349
|
this.addEventListener(SELECT_CLOSE_BTN_EVENT_NAMES.close, this._closeSelect);
|
|
343
350
|
}
|
|
351
|
+
_setupMutationObserver() {
|
|
352
|
+
this._optionsMutationObserver = new MutationObserver((mutations) => {
|
|
353
|
+
var _a;
|
|
354
|
+
let shouldUpdate = false;
|
|
355
|
+
for (const mutation of mutations) {
|
|
356
|
+
const target = mutation.target;
|
|
357
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'selected' && ((_a = target.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'h-option') {
|
|
358
|
+
shouldUpdate = true;
|
|
359
|
+
break;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
if (shouldUpdate) {
|
|
363
|
+
const currentElements = Array.from(this._$options.values());
|
|
364
|
+
const options = currentElements.map(($el) => SelectOptionMapper.toModel($el));
|
|
365
|
+
this._selectController.options$.notify(options);
|
|
366
|
+
const selectedOptions = options.filter((opt) => opt.selected);
|
|
367
|
+
this._selectController.selectedOptions$.notify(selectedOptions);
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
if (this._$optionsList.value) {
|
|
371
|
+
this._optionsMutationObserver.observe(this._$optionsList.value, {
|
|
372
|
+
attributes: true,
|
|
373
|
+
attributeFilter: ['selected'],
|
|
374
|
+
subtree: true
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
}
|
|
344
378
|
_appendNewHTMLOption(option, position) {
|
|
345
379
|
const $list = this._$optionsList.value;
|
|
346
380
|
if (!$list)
|
|
@@ -401,9 +435,11 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
401
435
|
this._selectController.select(option);
|
|
402
436
|
}
|
|
403
437
|
disconnectedCallback() {
|
|
438
|
+
var _a;
|
|
404
439
|
super.disconnectedCallback();
|
|
405
440
|
this._selectController.options$.unsubscribe(this._optionsObserver);
|
|
406
441
|
this._$options.clear();
|
|
442
|
+
(_a = this._optionsMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
407
443
|
}
|
|
408
444
|
_getClonedPlaceholderElement() {
|
|
409
445
|
return this.$placeholder instanceof HTMLElement ? this.$placeholder.cloneNode(true) : this.$placeholder;
|
|
@@ -455,9 +491,9 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
455
491
|
<h-select-close-btn class="${SELECT_CSS_CLASSES.selectCloseMobileButton}" @close=${this._closeSelect}></h-select-close-btn>
|
|
456
492
|
|
|
457
493
|
<div class=${SELECT_CSS_CLASSES.selectLabel}>
|
|
458
|
-
${this.isDevSelectPlaceholderFlagEnabled
|
|
459
|
-
(_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.cloneNode(true)
|
|
460
|
-
html `${this._getClonedPlaceholderElement()}`}
|
|
494
|
+
${this.isDevSelectPlaceholderFlagEnabled
|
|
495
|
+
? (_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.cloneNode(true)
|
|
496
|
+
: html `${this._getClonedPlaceholderElement()}`}
|
|
461
497
|
</div>
|
|
462
498
|
|
|
463
499
|
${isSearchEnabled
|
|
@@ -577,6 +613,10 @@ __decorate([
|
|
|
577
613
|
property({ type: Boolean, attribute: 'is-dev-select-placeholder-flag-enabled' }),
|
|
578
614
|
__metadata("design:type", Boolean)
|
|
579
615
|
], HSelect.prototype, "isDevSelectPlaceholderFlagEnabled", void 0);
|
|
616
|
+
__decorate([
|
|
617
|
+
property({ type: Boolean, attribute: 'is-reactive-selection-flag-enabled' }),
|
|
618
|
+
__metadata("design:type", Boolean)
|
|
619
|
+
], HSelect.prototype, "isReactiveSelectionFlagEnabled", void 0);
|
|
580
620
|
__decorate([
|
|
581
621
|
property({
|
|
582
622
|
converter: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|