@shoper/phoenix_design_system 1.18.2-16 → 1.18.2-17
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/form/select/components/toggler/select_toggler.js +6 -28
- package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js.map +1 -1
- package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler_constants.js +1 -4
- package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler_constants.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 +64 -6
- 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 +10 -2
- package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.d.ts +0 -2
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js +7 -29
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler_constants.d.ts +0 -3
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler_constants.js +1 -4
- package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler_constants.js.map +1 -1
- 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 +3 -0
- package/build/esm/packages/phoenix/src/components/form/select/select.js +64 -6
- 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.js +10 -2
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/package.json +1 -1
package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js
CHANGED
|
@@ -42,25 +42,6 @@ exports.HSelectToggler = class HSelectToggler extends phoenix_light_lit_element.
|
|
|
42
42
|
this._selectedOptionsObserver = new observer.Observer(this._handleSelectedOptionChanged);
|
|
43
43
|
this.selectedOptions$.subscribe(this._selectedOptionsObserver);
|
|
44
44
|
}
|
|
45
|
-
_getParsedOptionContent(option) {
|
|
46
|
-
const contentLines = (option.content || '')
|
|
47
|
-
.split('\n')
|
|
48
|
-
.map((line) => line.trim())
|
|
49
|
-
.filter((line) => line.length > 0);
|
|
50
|
-
return {
|
|
51
|
-
name: contentLines[0] || '',
|
|
52
|
-
addon: contentLines.slice(1).join(' ')
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
_renderTogglerContent(option) {
|
|
56
|
-
const { name, addon } = this._getParsedOptionContent(option);
|
|
57
|
-
return litHtml.html `
|
|
58
|
-
<div class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerLayout}>
|
|
59
|
-
<span class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerName}>${name}</span>
|
|
60
|
-
${addon ? litHtml.html `<span class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerAddon}>${addon}</span>` : litHtml.nothing}
|
|
61
|
-
</div>
|
|
62
|
-
`;
|
|
63
|
-
}
|
|
64
45
|
disconnectedCallback() {
|
|
65
46
|
var _a;
|
|
66
47
|
super.disconnectedCallback();
|
|
@@ -72,21 +53,18 @@ exports.HSelectToggler = class HSelectToggler extends phoenix_light_lit_element.
|
|
|
72
53
|
return litHtml.html `
|
|
73
54
|
${observable_directive.observe(this.selectedOptions$, (selectOptions) => {
|
|
74
55
|
var _a;
|
|
75
|
-
if (!selectOptions.length)
|
|
56
|
+
if (!selectOptions.length)
|
|
76
57
|
return litHtml.html `${(_a = this.getSlot(select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : litHtml.html `<span class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerPlaceholder}>Select</span>`}`;
|
|
77
|
-
}
|
|
78
58
|
return litHtml.html ` <ul class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
|
|
79
59
|
${this.isMultiselect
|
|
80
|
-
? selectOptions.map((option) =>
|
|
81
|
-
const content = this._renderTogglerContent(option);
|
|
82
|
-
return litHtml.html ` <li>
|
|
60
|
+
? selectOptions.map((option) => litHtml.html ` <li>
|
|
83
61
|
<h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
|
|
84
|
-
${content}
|
|
62
|
+
${option.content}
|
|
63
|
+
|
|
85
64
|
<h-tag-remove-button></h-tag-remove-button>
|
|
86
65
|
</h-tag>
|
|
87
|
-
</li
|
|
88
|
-
}
|
|
89
|
-
: litHtml.html `<li>${this._renderTogglerContent(selectOptions[0])}</li>`}
|
|
66
|
+
</li>`)
|
|
67
|
+
: litHtml.html ` <li>${selectOptions[0].content}</li>`}
|
|
90
68
|
</ul>`;
|
|
91
69
|
})}
|
|
92
70
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -7,10 +7,7 @@ const SELECT_TOGGLER_CSS_CLASSES = {
|
|
|
7
7
|
selectToggler: baseClass,
|
|
8
8
|
selectTogglerSelected: `${baseClass}_selected`,
|
|
9
9
|
selectTogglerValues: `${baseClass}__values`,
|
|
10
|
-
selectTogglerPlaceholder: `${baseClass}__placeholder
|
|
11
|
-
selectTogglerLayout: `${baseClass}__layout`,
|
|
12
|
-
selectTogglerName: `${baseClass}__name`,
|
|
13
|
-
selectTogglerAddon: `${baseClass}__addon`
|
|
10
|
+
selectTogglerPlaceholder: `${baseClass}__placeholder`
|
|
14
11
|
};
|
|
15
12
|
|
|
16
13
|
exports.SELECT_TOGGLER_CSS_CLASSES = SELECT_TOGGLER_CSS_CLASSES;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
class SelectOption {
|
|
6
|
-
constructor({ selected = false, hidden = false, disabled = false, value, content, inactive = false }) {
|
|
6
|
+
constructor({ selected = false, hidden = false, disabled = false, value, content, inactive = false, isPlaceholder = false }) {
|
|
7
7
|
this.value = value;
|
|
8
8
|
this.selected = selected;
|
|
9
9
|
this.hidden = hidden;
|
|
10
10
|
this.disabled = disabled;
|
|
11
11
|
this.content = content;
|
|
12
12
|
this.inactive = inactive;
|
|
13
|
+
this.isPlaceholder = isPlaceholder;
|
|
13
14
|
}
|
|
14
15
|
static create(options) {
|
|
15
16
|
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;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;"}
|
|
@@ -10,7 +10,7 @@ class SelectOptionMapper {
|
|
|
10
10
|
const $optionContent = $option.querySelector(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
11
11
|
const optionContentText = ($optionContent === null || $optionContent === void 0 ? void 0 : $optionContent.textContent) || ($optionContent === null || $optionContent === void 0 ? void 0 : $optionContent.innerText);
|
|
12
12
|
const value = $option.getAttribute('value');
|
|
13
|
-
if (
|
|
13
|
+
if (value === null || value === undefined)
|
|
14
14
|
throw new Error('h-option must contain a unique value');
|
|
15
15
|
if (!optionContentText)
|
|
16
16
|
throw new Error('h-options must contains a h-option-content element inside');
|
|
@@ -20,7 +20,8 @@ class SelectOptionMapper {
|
|
|
20
20
|
hidden: $option.hasAttribute('hidden'),
|
|
21
21
|
inactive: $option.hasAttribute('inactive'),
|
|
22
22
|
content: optionContentText,
|
|
23
|
-
selected: $option.hasAttribute('selected')
|
|
23
|
+
selected: $option.hasAttribute('selected'),
|
|
24
|
+
isPlaceholder: $option.hasAttribute('data-placeholder')
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
}
|
package/build/cjs/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;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;AACA;AACA;AACA;AACA;"}
|
|
@@ -43,6 +43,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
43
43
|
this.type = select_constants.SELECT_TYPES.select;
|
|
44
44
|
this.noDeselect = false;
|
|
45
45
|
this.assistiveTitleId = '';
|
|
46
|
+
this.isDevSelectPlaceholderFlagEnabled = false;
|
|
46
47
|
this.translations = {};
|
|
47
48
|
this._selectOptionsId = v4['default']();
|
|
48
49
|
this._searchValue = '';
|
|
@@ -57,7 +58,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
57
58
|
const $options = this._getOptions();
|
|
58
59
|
this._$options = $options.reduce((acc, $option) => {
|
|
59
60
|
const value = $option.getAttribute('value');
|
|
60
|
-
if (
|
|
61
|
+
if (value === null || value === undefined)
|
|
61
62
|
throw Error('Select option must hava a value');
|
|
62
63
|
if (acc.has(value))
|
|
63
64
|
throw Error('Select options must hava a unique values.');
|
|
@@ -114,12 +115,12 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
114
115
|
if (!this.$searchLabel)
|
|
115
116
|
return;
|
|
116
117
|
(_a = this.$searchLabel.querySelector(`[id="value-label"]`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<span id="value-label" class="sr-only">
|
|
118
|
+
const valueLabel = options.some((option) => !option.isPlaceholder)
|
|
119
|
+
? `<span id="value-label" class="sr-only">
|
|
120
120
|
${options.reduce((totalSelectedContent, currentOption) => (totalSelectedContent += currentOption.content), '')}
|
|
121
|
-
</span
|
|
122
|
-
|
|
121
|
+
</span>`
|
|
122
|
+
: '';
|
|
123
|
+
this.$searchLabel.innerHTML = `${(_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.innerHTML} ${valueLabel}`;
|
|
123
124
|
};
|
|
124
125
|
this._handleOptionClicked = ({ detail }) => {
|
|
125
126
|
if (!(detail === null || detail === void 0 ? void 0 : detail.$option))
|
|
@@ -172,6 +173,8 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
172
173
|
const $options = Array.from(this.querySelectorAll(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option));
|
|
173
174
|
$options.forEach(($option) => $option.setAttribute('slot', select_constants.SELECT_SLOT_NAMES.content));
|
|
174
175
|
this.$placeholder = (_a = this.querySelector(`[slot="${select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`)) !== null && _a !== void 0 ? _a : 'Select';
|
|
176
|
+
// Create default toggler if not provided
|
|
177
|
+
this._ensureTogglerExists();
|
|
175
178
|
if (this.multiple)
|
|
176
179
|
this.type = select_constants.SELECT_TYPES.multiple;
|
|
177
180
|
}
|
|
@@ -203,6 +206,20 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
203
206
|
get options() {
|
|
204
207
|
return Array.from(this._$options.values());
|
|
205
208
|
}
|
|
209
|
+
_ensureTogglerExists() {
|
|
210
|
+
const $existingToggler = this.querySelector(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.toggler);
|
|
211
|
+
if ($existingToggler)
|
|
212
|
+
return;
|
|
213
|
+
// Create default toggler
|
|
214
|
+
const $toggler = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.toggler);
|
|
215
|
+
// Move placeholder into toggler if it exists
|
|
216
|
+
if (this.$placeholder instanceof HTMLElement) {
|
|
217
|
+
const $placeholderClone = this.$placeholder.cloneNode(true);
|
|
218
|
+
$placeholderClone.setAttribute('slot', select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME);
|
|
219
|
+
$toggler.appendChild($placeholderClone);
|
|
220
|
+
}
|
|
221
|
+
this.appendChild($toggler);
|
|
222
|
+
}
|
|
206
223
|
updated(changedProperties) {
|
|
207
224
|
var _a, _b;
|
|
208
225
|
super.updated(changedProperties);
|
|
@@ -217,6 +234,9 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
217
234
|
}
|
|
218
235
|
if (changedProperties.has('optionsList')) {
|
|
219
236
|
this._updateOptions();
|
|
237
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
238
|
+
this._addPlaceholderOptionIfNeeded();
|
|
239
|
+
}
|
|
220
240
|
}
|
|
221
241
|
if (this._$optionsList.value) {
|
|
222
242
|
(_a = this.listBoxController) === null || _a === void 0 ? void 0 : _a.hostDisconnected();
|
|
@@ -265,6 +285,9 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
265
285
|
this._selectedOptionsAriaObserver = new observer.Observer((selectedOptions) => this._updateLabelAria(selectedOptions));
|
|
266
286
|
this._selectController.selectedOptions$.subscribe(this._selectedOptionsAriaObserver);
|
|
267
287
|
this._updateOptions();
|
|
288
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
289
|
+
this._addPlaceholderOptionIfNeeded();
|
|
290
|
+
}
|
|
268
291
|
this._setupEvents();
|
|
269
292
|
}
|
|
270
293
|
attributeChangedCallback(name, _old, value) {
|
|
@@ -277,6 +300,37 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
277
300
|
this.disabled ? this.classList.add(select_constants.SELECT_CSS_CLASSES.selectDisabled) : this.classList.remove(select_constants.SELECT_CSS_CLASSES.selectDisabled);
|
|
278
301
|
}
|
|
279
302
|
}
|
|
303
|
+
_addPlaceholderOptionIfNeeded() {
|
|
304
|
+
if (this.multiple)
|
|
305
|
+
return;
|
|
306
|
+
const selectedOptions = this._selectController.selectedOptions$.getValue();
|
|
307
|
+
if (selectedOptions && selectedOptions.length > 0)
|
|
308
|
+
return;
|
|
309
|
+
const $existingPlaceholder = this.querySelector('h-option[data-placeholder]');
|
|
310
|
+
if ($existingPlaceholder)
|
|
311
|
+
return;
|
|
312
|
+
const $placeholderOption = document.createElement('h-option');
|
|
313
|
+
$placeholderOption.setAttribute('value', '');
|
|
314
|
+
$placeholderOption.setAttribute('selected', 'true');
|
|
315
|
+
$placeholderOption.setAttribute('data-placeholder', 'true');
|
|
316
|
+
$placeholderOption.setAttribute('slot', select_constants.SELECT_SLOT_NAMES.content);
|
|
317
|
+
const $optionContent = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
318
|
+
if (typeof this.$placeholder === 'string') {
|
|
319
|
+
$optionContent.textContent = this.$placeholder;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
$optionContent.innerHTML = this.$placeholder.innerHTML;
|
|
323
|
+
}
|
|
324
|
+
$placeholderOption.appendChild($optionContent);
|
|
325
|
+
const firstOption = this.querySelector(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option);
|
|
326
|
+
if (firstOption) {
|
|
327
|
+
this.insertBefore($placeholderOption, firstOption);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
this.appendChild($placeholderOption);
|
|
331
|
+
}
|
|
332
|
+
this._updateOptions();
|
|
333
|
+
}
|
|
280
334
|
_setupEvents() {
|
|
281
335
|
this.addEventListener(select_constants.SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
|
|
282
336
|
this.addEventListener(select_components_constatns.SELECT_CLOSE_BTN_EVENT_NAMES.close, this._closeSelect);
|
|
@@ -508,6 +562,10 @@ tslib_es6.__decorate([
|
|
|
508
562
|
decorators_js.property({ type: String, attribute: 'assistive-title-id' }),
|
|
509
563
|
tslib_es6.__metadata("design:type", String)
|
|
510
564
|
], exports.HSelect.prototype, "assistiveTitleId", void 0);
|
|
565
|
+
tslib_es6.__decorate([
|
|
566
|
+
decorators_js.property({ type: Boolean, attribute: 'is-dev-select-placeholder-flag-enabled' }),
|
|
567
|
+
tslib_es6.__metadata("design:type", Boolean)
|
|
568
|
+
], exports.HSelect.prototype, "isDevSelectPlaceholderFlagEnabled", void 0);
|
|
511
569
|
tslib_es6.__decorate([
|
|
512
570
|
decorators_js.property({
|
|
513
571
|
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;"}
|
|
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;"}
|
|
@@ -6,7 +6,7 @@ var select_components_constatns = require('./components/select_components_consta
|
|
|
6
6
|
|
|
7
7
|
class SelectControlUtils {
|
|
8
8
|
static createHTMLOption(option) {
|
|
9
|
-
const { selected, value, disabled, hidden, content } = option;
|
|
9
|
+
const { selected, value, disabled, hidden, content, isPlaceholder } = option;
|
|
10
10
|
const $option = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option);
|
|
11
11
|
$option.setAttribute('value', String(value));
|
|
12
12
|
const $optionContent = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
@@ -18,14 +18,22 @@ class SelectControlUtils {
|
|
|
18
18
|
$option.setAttribute('disabled', '');
|
|
19
19
|
if (hidden)
|
|
20
20
|
$option.setAttribute('hidden', '');
|
|
21
|
+
if (isPlaceholder)
|
|
22
|
+
$option.setAttribute('data-placeholder', 'true');
|
|
21
23
|
return $option;
|
|
22
24
|
}
|
|
23
25
|
static syncHTMLOptionWithModel(option, $option) {
|
|
24
|
-
const { selected, value, disabled, hidden } = option;
|
|
26
|
+
const { selected, value, disabled, hidden, isPlaceholder } = option;
|
|
25
27
|
$option.selected = selected;
|
|
26
28
|
$option.value = value;
|
|
27
29
|
$option.disabled = disabled;
|
|
28
30
|
$option.hidden = hidden;
|
|
31
|
+
if (isPlaceholder) {
|
|
32
|
+
$option.setAttribute('data-placeholder', 'true');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
$option.removeAttribute('data-placeholder');
|
|
36
|
+
}
|
|
29
37
|
}
|
|
30
38
|
static removeHTMLOptions($options, optionsValuesThatExists) {
|
|
31
39
|
return $options.reduce((acc, $option) => {
|
|
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.d.ts
CHANGED
|
@@ -11,8 +11,6 @@ export declare class HSelectToggler extends PhoenixLightLitElement {
|
|
|
11
11
|
private _subscribeObserver;
|
|
12
12
|
private _handleSelectedOptionChanged;
|
|
13
13
|
private _dispatchOptionDeselect;
|
|
14
|
-
private _getParsedOptionContent;
|
|
15
|
-
private _renderTogglerContent;
|
|
16
14
|
disconnectedCallback(): void;
|
|
17
15
|
render(): TemplateResult | undefined;
|
|
18
16
|
}
|
package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js
CHANGED
|
@@ -4,7 +4,7 @@ import { PhoenixLightLitElement } from '../../../../../core/phoenix_light_lit_el
|
|
|
4
4
|
import { phoenixCustomElement } from '../../../../../core/decorators/phoenix_custom_element.js';
|
|
5
5
|
import { SELECT_INPUT_PLACEHOLDER_SLOT_NAME, SELECT_RELATED_COMPONENTS_NAMES } from '../select_components_constatns.js';
|
|
6
6
|
import { Observer } from '../../../../../core/classes/observer/observer.js';
|
|
7
|
-
import { html
|
|
7
|
+
import { html } from 'lit-html';
|
|
8
8
|
import { ContextConsumerController } from '../../../../../core/context/context_consumer_controller.js';
|
|
9
9
|
import { SELECT_EVENT_NAMES, SELECT_SLOT_NAMES, SELECT_CONTEXTS } from '../../select_constants.js';
|
|
10
10
|
import { observe } from '../../../../../directives/observable_directive.js';
|
|
@@ -38,25 +38,6 @@ let HSelectToggler = class HSelectToggler extends PhoenixLightLitElement {
|
|
|
38
38
|
this._selectedOptionsObserver = new Observer(this._handleSelectedOptionChanged);
|
|
39
39
|
this.selectedOptions$.subscribe(this._selectedOptionsObserver);
|
|
40
40
|
}
|
|
41
|
-
_getParsedOptionContent(option) {
|
|
42
|
-
const contentLines = (option.content || '')
|
|
43
|
-
.split('\n')
|
|
44
|
-
.map((line) => line.trim())
|
|
45
|
-
.filter((line) => line.length > 0);
|
|
46
|
-
return {
|
|
47
|
-
name: contentLines[0] || '',
|
|
48
|
-
addon: contentLines.slice(1).join(' ')
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
_renderTogglerContent(option) {
|
|
52
|
-
const { name, addon } = this._getParsedOptionContent(option);
|
|
53
|
-
return html `
|
|
54
|
-
<div class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerLayout}>
|
|
55
|
-
<span class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerName}>${name}</span>
|
|
56
|
-
${addon ? html `<span class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerAddon}>${addon}</span>` : nothing}
|
|
57
|
-
</div>
|
|
58
|
-
`;
|
|
59
|
-
}
|
|
60
41
|
disconnectedCallback() {
|
|
61
42
|
var _a;
|
|
62
43
|
super.disconnectedCallback();
|
|
@@ -68,21 +49,18 @@ let HSelectToggler = class HSelectToggler extends PhoenixLightLitElement {
|
|
|
68
49
|
return html `
|
|
69
50
|
${observe(this.selectedOptions$, (selectOptions) => {
|
|
70
51
|
var _a;
|
|
71
|
-
if (!selectOptions.length)
|
|
52
|
+
if (!selectOptions.length)
|
|
72
53
|
return html `${(_a = this.getSlot(SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : html `<span class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerPlaceholder}>Select</span>`}`;
|
|
73
|
-
}
|
|
74
54
|
return html ` <ul class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
|
|
75
55
|
${this.isMultiselect
|
|
76
|
-
? selectOptions.map((option) =>
|
|
77
|
-
const content = this._renderTogglerContent(option);
|
|
78
|
-
return html ` <li>
|
|
56
|
+
? selectOptions.map((option) => html ` <li>
|
|
79
57
|
<h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
|
|
80
|
-
${content}
|
|
58
|
+
${option.content}
|
|
59
|
+
|
|
81
60
|
<h-tag-remove-button></h-tag-remove-button>
|
|
82
61
|
</h-tag>
|
|
83
|
-
</li
|
|
84
|
-
}
|
|
85
|
-
: html `<li>${this._renderTogglerContent(selectOptions[0])}</li>`}
|
|
62
|
+
</li>`)
|
|
63
|
+
: html ` <li>${selectOptions[0].content}</li>`}
|
|
86
64
|
</ul>`;
|
|
87
65
|
})}
|
|
88
66
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4 @@ export declare const SELECT_TOGGLER_CSS_CLASSES: {
|
|
|
3
3
|
readonly selectTogglerSelected: "select-toggler_selected";
|
|
4
4
|
readonly selectTogglerValues: "select-toggler__values";
|
|
5
5
|
readonly selectTogglerPlaceholder: "select-toggler__placeholder";
|
|
6
|
-
readonly selectTogglerLayout: "select-toggler__layout";
|
|
7
|
-
readonly selectTogglerName: "select-toggler__name";
|
|
8
|
-
readonly selectTogglerAddon: "select-toggler__addon";
|
|
9
6
|
};
|
|
@@ -3,10 +3,7 @@ const SELECT_TOGGLER_CSS_CLASSES = {
|
|
|
3
3
|
selectToggler: baseClass,
|
|
4
4
|
selectTogglerSelected: `${baseClass}_selected`,
|
|
5
5
|
selectTogglerValues: `${baseClass}__values`,
|
|
6
|
-
selectTogglerPlaceholder: `${baseClass}__placeholder
|
|
7
|
-
selectTogglerLayout: `${baseClass}__layout`,
|
|
8
|
-
selectTogglerName: `${baseClass}__name`,
|
|
9
|
-
selectTogglerAddon: `${baseClass}__addon`
|
|
6
|
+
selectTogglerPlaceholder: `${baseClass}__placeholder`
|
|
10
7
|
};
|
|
11
8
|
|
|
12
9
|
export { SELECT_TOGGLER_CSS_CLASSES };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -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('data-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;
|
|
@@ -47,12 +48,14 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
47
48
|
private $placeholder;
|
|
48
49
|
private $searchLabel;
|
|
49
50
|
constructor();
|
|
51
|
+
private _ensureTogglerExists;
|
|
50
52
|
updated(changedProperties: PropertyValues): void;
|
|
51
53
|
private _focusElementAfterSelectOpened;
|
|
52
54
|
connectedCallback(): void;
|
|
53
55
|
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
54
56
|
private _updateOptions;
|
|
55
57
|
private _getOptions;
|
|
58
|
+
private _addPlaceholderOptionIfNeeded;
|
|
56
59
|
private _setupEvents;
|
|
57
60
|
private _handleOptionDeselect;
|
|
58
61
|
private _updateOptionsView;
|
|
@@ -39,6 +39,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
39
39
|
this.type = SELECT_TYPES.select;
|
|
40
40
|
this.noDeselect = false;
|
|
41
41
|
this.assistiveTitleId = '';
|
|
42
|
+
this.isDevSelectPlaceholderFlagEnabled = false;
|
|
42
43
|
this.translations = {};
|
|
43
44
|
this._selectOptionsId = v4();
|
|
44
45
|
this._searchValue = '';
|
|
@@ -53,7 +54,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
53
54
|
const $options = this._getOptions();
|
|
54
55
|
this._$options = $options.reduce((acc, $option) => {
|
|
55
56
|
const value = $option.getAttribute('value');
|
|
56
|
-
if (
|
|
57
|
+
if (value === null || value === undefined)
|
|
57
58
|
throw Error('Select option must hava a value');
|
|
58
59
|
if (acc.has(value))
|
|
59
60
|
throw Error('Select options must hava a unique values.');
|
|
@@ -110,12 +111,12 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
110
111
|
if (!this.$searchLabel)
|
|
111
112
|
return;
|
|
112
113
|
(_a = this.$searchLabel.querySelector(`[id="value-label"]`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
<span id="value-label" class="sr-only">
|
|
114
|
+
const valueLabel = options.some((option) => !option.isPlaceholder)
|
|
115
|
+
? `<span id="value-label" class="sr-only">
|
|
116
116
|
${options.reduce((totalSelectedContent, currentOption) => (totalSelectedContent += currentOption.content), '')}
|
|
117
|
-
</span
|
|
118
|
-
|
|
117
|
+
</span>`
|
|
118
|
+
: '';
|
|
119
|
+
this.$searchLabel.innerHTML = `${(_b = this.$searchLabel) === null || _b === void 0 ? void 0 : _b.innerHTML} ${valueLabel}`;
|
|
119
120
|
};
|
|
120
121
|
this._handleOptionClicked = ({ detail }) => {
|
|
121
122
|
if (!(detail === null || detail === void 0 ? void 0 : detail.$option))
|
|
@@ -168,6 +169,8 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
168
169
|
const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
|
|
169
170
|
$options.forEach(($option) => $option.setAttribute('slot', SELECT_SLOT_NAMES.content));
|
|
170
171
|
this.$placeholder = (_a = this.querySelector(`[slot="${SELECT_INPUT_PLACEHOLDER_SLOT_NAME}"]`)) !== null && _a !== void 0 ? _a : 'Select';
|
|
172
|
+
// Create default toggler if not provided
|
|
173
|
+
this._ensureTogglerExists();
|
|
171
174
|
if (this.multiple)
|
|
172
175
|
this.type = SELECT_TYPES.multiple;
|
|
173
176
|
}
|
|
@@ -199,6 +202,20 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
199
202
|
get options() {
|
|
200
203
|
return Array.from(this._$options.values());
|
|
201
204
|
}
|
|
205
|
+
_ensureTogglerExists() {
|
|
206
|
+
const $existingToggler = this.querySelector(SELECT_RELATED_COMPONENTS_NAMES.toggler);
|
|
207
|
+
if ($existingToggler)
|
|
208
|
+
return;
|
|
209
|
+
// Create default toggler
|
|
210
|
+
const $toggler = document.createElement(SELECT_RELATED_COMPONENTS_NAMES.toggler);
|
|
211
|
+
// Move placeholder into toggler if it exists
|
|
212
|
+
if (this.$placeholder instanceof HTMLElement) {
|
|
213
|
+
const $placeholderClone = this.$placeholder.cloneNode(true);
|
|
214
|
+
$placeholderClone.setAttribute('slot', SELECT_INPUT_PLACEHOLDER_SLOT_NAME);
|
|
215
|
+
$toggler.appendChild($placeholderClone);
|
|
216
|
+
}
|
|
217
|
+
this.appendChild($toggler);
|
|
218
|
+
}
|
|
202
219
|
updated(changedProperties) {
|
|
203
220
|
var _a, _b;
|
|
204
221
|
super.updated(changedProperties);
|
|
@@ -213,6 +230,9 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
213
230
|
}
|
|
214
231
|
if (changedProperties.has('optionsList')) {
|
|
215
232
|
this._updateOptions();
|
|
233
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
234
|
+
this._addPlaceholderOptionIfNeeded();
|
|
235
|
+
}
|
|
216
236
|
}
|
|
217
237
|
if (this._$optionsList.value) {
|
|
218
238
|
(_a = this.listBoxController) === null || _a === void 0 ? void 0 : _a.hostDisconnected();
|
|
@@ -261,6 +281,9 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
261
281
|
this._selectedOptionsAriaObserver = new Observer((selectedOptions) => this._updateLabelAria(selectedOptions));
|
|
262
282
|
this._selectController.selectedOptions$.subscribe(this._selectedOptionsAriaObserver);
|
|
263
283
|
this._updateOptions();
|
|
284
|
+
if (this.isDevSelectPlaceholderFlagEnabled) {
|
|
285
|
+
this._addPlaceholderOptionIfNeeded();
|
|
286
|
+
}
|
|
264
287
|
this._setupEvents();
|
|
265
288
|
}
|
|
266
289
|
attributeChangedCallback(name, _old, value) {
|
|
@@ -273,6 +296,37 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
273
296
|
this.disabled ? this.classList.add(SELECT_CSS_CLASSES.selectDisabled) : this.classList.remove(SELECT_CSS_CLASSES.selectDisabled);
|
|
274
297
|
}
|
|
275
298
|
}
|
|
299
|
+
_addPlaceholderOptionIfNeeded() {
|
|
300
|
+
if (this.multiple)
|
|
301
|
+
return;
|
|
302
|
+
const selectedOptions = this._selectController.selectedOptions$.getValue();
|
|
303
|
+
if (selectedOptions && selectedOptions.length > 0)
|
|
304
|
+
return;
|
|
305
|
+
const $existingPlaceholder = this.querySelector('h-option[data-placeholder]');
|
|
306
|
+
if ($existingPlaceholder)
|
|
307
|
+
return;
|
|
308
|
+
const $placeholderOption = document.createElement('h-option');
|
|
309
|
+
$placeholderOption.setAttribute('value', '');
|
|
310
|
+
$placeholderOption.setAttribute('selected', 'true');
|
|
311
|
+
$placeholderOption.setAttribute('data-placeholder', 'true');
|
|
312
|
+
$placeholderOption.setAttribute('slot', SELECT_SLOT_NAMES.content);
|
|
313
|
+
const $optionContent = document.createElement(SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
314
|
+
if (typeof this.$placeholder === 'string') {
|
|
315
|
+
$optionContent.textContent = this.$placeholder;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
$optionContent.innerHTML = this.$placeholder.innerHTML;
|
|
319
|
+
}
|
|
320
|
+
$placeholderOption.appendChild($optionContent);
|
|
321
|
+
const firstOption = this.querySelector(SELECT_RELATED_COMPONENTS_NAMES.option);
|
|
322
|
+
if (firstOption) {
|
|
323
|
+
this.insertBefore($placeholderOption, firstOption);
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
this.appendChild($placeholderOption);
|
|
327
|
+
}
|
|
328
|
+
this._updateOptions();
|
|
329
|
+
}
|
|
276
330
|
_setupEvents() {
|
|
277
331
|
this.addEventListener(SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
|
|
278
332
|
this.addEventListener(SELECT_CLOSE_BTN_EVENT_NAMES.close, this._closeSelect);
|
|
@@ -504,6 +558,10 @@ __decorate([
|
|
|
504
558
|
property({ type: String, attribute: 'assistive-title-id' }),
|
|
505
559
|
__metadata("design:type", String)
|
|
506
560
|
], HSelect.prototype, "assistiveTitleId", void 0);
|
|
561
|
+
__decorate([
|
|
562
|
+
property({ type: Boolean, attribute: 'is-dev-select-placeholder-flag-enabled' }),
|
|
563
|
+
__metadata("design:type", Boolean)
|
|
564
|
+
], HSelect.prototype, "isDevSelectPlaceholderFlagEnabled", void 0);
|
|
507
565
|
__decorate([
|
|
508
566
|
property({
|
|
509
567
|
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;"}
|
|
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;"}
|
|
@@ -2,7 +2,7 @@ import { SELECT_RELATED_COMPONENTS_NAMES } from './components/select_components_
|
|
|
2
2
|
|
|
3
3
|
class SelectControlUtils {
|
|
4
4
|
static createHTMLOption(option) {
|
|
5
|
-
const { selected, value, disabled, hidden, content } = option;
|
|
5
|
+
const { selected, value, disabled, hidden, content, isPlaceholder } = option;
|
|
6
6
|
const $option = document.createElement(SELECT_RELATED_COMPONENTS_NAMES.option);
|
|
7
7
|
$option.setAttribute('value', String(value));
|
|
8
8
|
const $optionContent = document.createElement(SELECT_RELATED_COMPONENTS_NAMES.optionContent);
|
|
@@ -14,14 +14,22 @@ class SelectControlUtils {
|
|
|
14
14
|
$option.setAttribute('disabled', '');
|
|
15
15
|
if (hidden)
|
|
16
16
|
$option.setAttribute('hidden', '');
|
|
17
|
+
if (isPlaceholder)
|
|
18
|
+
$option.setAttribute('data-placeholder', 'true');
|
|
17
19
|
return $option;
|
|
18
20
|
}
|
|
19
21
|
static syncHTMLOptionWithModel(option, $option) {
|
|
20
|
-
const { selected, value, disabled, hidden } = option;
|
|
22
|
+
const { selected, value, disabled, hidden, isPlaceholder } = option;
|
|
21
23
|
$option.selected = selected;
|
|
22
24
|
$option.value = value;
|
|
23
25
|
$option.disabled = disabled;
|
|
24
26
|
$option.hidden = hidden;
|
|
27
|
+
if (isPlaceholder) {
|
|
28
|
+
$option.setAttribute('data-placeholder', 'true');
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
$option.removeAttribute('data-placeholder');
|
|
32
|
+
}
|
|
25
33
|
}
|
|
26
34
|
static removeHTMLOptions($options, optionsValuesThatExists) {
|
|
27
35
|
return $options.reduce((acc, $option) => {
|
|
@@ -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;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|