@shoper/phoenix_design_system 1.10.13 → 1.10.14
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/select.js +16 -19
- 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 +2 -5
- package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select.js +16 -19
- package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.d.ts +1 -1
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.js +2 -5
- package/build/esm/packages/phoenix/src/components/form/select/select_utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,7 +41,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
41
41
|
this.type = select_constants.SELECT_TYPES.select;
|
|
42
42
|
this.noDeselect = false;
|
|
43
43
|
this._searchValue = '';
|
|
44
|
-
this._$options =
|
|
44
|
+
this._$options = new Map();
|
|
45
45
|
this._$dropdown = ref_js.createRef();
|
|
46
46
|
this._$search = ref_js.createRef();
|
|
47
47
|
this._$optionsList = ref_js.createRef();
|
|
@@ -53,13 +53,10 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
53
53
|
const value = $option.getAttribute('value');
|
|
54
54
|
if (!value)
|
|
55
55
|
throw Error('Select option must hava a value');
|
|
56
|
-
if (acc
|
|
56
|
+
if (acc.has(value))
|
|
57
57
|
throw Error('Select options must hava a unique values.');
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
[value]: $option
|
|
61
|
-
};
|
|
62
|
-
}, {});
|
|
58
|
+
return acc.set(value, $option);
|
|
59
|
+
}, new Map());
|
|
63
60
|
const options = $options.map(select_option_mapper.SelectOptionMapper.toModel);
|
|
64
61
|
this._selectController.options$.notify(options);
|
|
65
62
|
if (options.length)
|
|
@@ -89,13 +86,13 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
89
86
|
this._dispatchChangeEvent();
|
|
90
87
|
};
|
|
91
88
|
this._updateOptionsView = (options) => {
|
|
92
|
-
if (options.length <
|
|
89
|
+
if (options.length < Array.from(this._$options.keys()).length)
|
|
93
90
|
this._removeHTMLOptions(options.map((option) => option.value));
|
|
94
91
|
options
|
|
95
92
|
.filter((option) => !option.inactive)
|
|
96
93
|
.forEach((option, index) => {
|
|
97
94
|
const { selected, value } = option;
|
|
98
|
-
const $option = this._$options
|
|
95
|
+
const $option = this._$options.get(value);
|
|
99
96
|
if (!$option) {
|
|
100
97
|
this._appendNewHTMLOption(option, index + 1);
|
|
101
98
|
return;
|
|
@@ -147,20 +144,20 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
147
144
|
const selectedOptions = this._selectController.selectedOptions$.getValue();
|
|
148
145
|
if (!selectedOptions || selectedOptions.length === 0)
|
|
149
146
|
return -1;
|
|
150
|
-
const htmlOptions =
|
|
147
|
+
const htmlOptions = Array.from(this._$options.values());
|
|
151
148
|
return this.multiple
|
|
152
149
|
? select_utils.SelectControlUtils.getFirstIndexSelectedOption(htmlOptions)
|
|
153
150
|
: select_utils.SelectControlUtils.getLastIndexOfSelectedOption(htmlOptions);
|
|
154
151
|
}
|
|
155
152
|
set selectedIndex(index) {
|
|
156
|
-
const option =
|
|
153
|
+
const option = Array.from(this._$options.values()).filter(($option) => !$option.hidden)[index];
|
|
157
154
|
option ? this._selectOption(option.value) : this._selectController.deselectAll();
|
|
158
|
-
|
|
155
|
+
Array.from(this._$options.values()).forEach(($option) => this.updateOptionAriaAttribute($option));
|
|
159
156
|
}
|
|
160
157
|
get selectedOptions() {
|
|
161
158
|
var _a;
|
|
162
159
|
const selectedOptions = (_a = this._selectController.selectedOptions$.getValue()) !== null && _a !== void 0 ? _a : [];
|
|
163
|
-
return selectedOptions.filter((option) => option.selected).map((option) => this._$options
|
|
160
|
+
return selectedOptions.filter((option) => option.selected).map((option) => this._$options.get(option.value));
|
|
164
161
|
}
|
|
165
162
|
get name() {
|
|
166
163
|
return this.controlName;
|
|
@@ -169,7 +166,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
169
166
|
return this.controlId;
|
|
170
167
|
}
|
|
171
168
|
get options() {
|
|
172
|
-
return
|
|
169
|
+
return Array.from(this._$options.values());
|
|
173
170
|
}
|
|
174
171
|
updated(changedProperties) {
|
|
175
172
|
super.updated(changedProperties);
|
|
@@ -232,7 +229,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
232
229
|
const $option = select_utils.SelectControlUtils.createHTMLOption(option);
|
|
233
230
|
if (selected)
|
|
234
231
|
this.updateOptionAriaAttribute($option);
|
|
235
|
-
this._$options
|
|
232
|
+
this._$options.set(value, $option);
|
|
236
233
|
select_utils.SelectControlUtils.appendHTMLOption($option, $list, position);
|
|
237
234
|
}
|
|
238
235
|
updateOptionAriaAttribute($option) {
|
|
@@ -241,7 +238,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
241
238
|
: $option.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', 'true');
|
|
242
239
|
}
|
|
243
240
|
_removeHTMLOptions(optionsValues) {
|
|
244
|
-
this._$options = select_utils.SelectControlUtils.removeHTMLOptions(
|
|
241
|
+
this._$options = select_utils.SelectControlUtils.removeHTMLOptions(Array.from(this._$options.values()), optionsValues);
|
|
245
242
|
}
|
|
246
243
|
_selectOption(value) {
|
|
247
244
|
const option = this._selectController.getOption(value);
|
|
@@ -272,13 +269,13 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
272
269
|
disconnectedCallback() {
|
|
273
270
|
super.disconnectedCallback();
|
|
274
271
|
this._selectController.options$.unsubscribe(this._optionsObserver);
|
|
275
|
-
this._$options
|
|
272
|
+
this._$options.clear();
|
|
276
273
|
}
|
|
277
274
|
_getClonedPlaceholderElement() {
|
|
278
275
|
return this.$placeholder instanceof HTMLElement ? this.$placeholder.cloneNode(true) : this.$placeholder;
|
|
279
276
|
}
|
|
280
277
|
_searchNoResult() {
|
|
281
|
-
return Boolean(!this._selectController.visibleOptionsCount &&
|
|
278
|
+
return Boolean(!this._selectController.visibleOptionsCount && Array.from(this._$options.keys()).length);
|
|
282
279
|
}
|
|
283
280
|
_renderOption(option) {
|
|
284
281
|
const fragment = document.createDocumentFragment();
|
|
@@ -329,7 +326,7 @@ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLi
|
|
|
329
326
|
@optionClicked=${this._handleOptionClicked}
|
|
330
327
|
@optionUpdated=${this._handleOptionUpdated}
|
|
331
328
|
>
|
|
332
|
-
${this._$options ? repeat.repeat(
|
|
329
|
+
${Array.from(this._$options.entries()).length > 0 ? repeat.repeat(Array.from(this._$options.values()), (option) => option.value, (option) => this._renderOption(option)) : lit.nothing}
|
|
333
330
|
</h-options>
|
|
334
331
|
|
|
335
332
|
${this._searchNoResult()
|
|
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -30,13 +30,10 @@ class SelectControlUtils {
|
|
|
30
30
|
static removeHTMLOptions($options, optionsValuesThatExists) {
|
|
31
31
|
return $options.reduce((acc, $option) => {
|
|
32
32
|
if (optionsValuesThatExists.includes($option.value))
|
|
33
|
-
return
|
|
34
|
-
...acc,
|
|
35
|
-
[$option.value]: $option
|
|
36
|
-
};
|
|
33
|
+
return acc.set($option.value, $option);
|
|
37
34
|
$option.remove();
|
|
38
35
|
return acc;
|
|
39
|
-
},
|
|
36
|
+
}, new Map());
|
|
40
37
|
}
|
|
41
38
|
static appendHTMLOption($option, $list, position) {
|
|
42
39
|
if (position !== undefined) {
|
|
@@ -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;"}
|
|
@@ -20,7 +20,7 @@ export declare class HSelect extends PhoenixLightLitElement {
|
|
|
20
20
|
noDeselect: boolean;
|
|
21
21
|
get selectedIndex(): number;
|
|
22
22
|
set selectedIndex(index: number);
|
|
23
|
-
get selectedOptions(): HOption[];
|
|
23
|
+
get selectedOptions(): (HOption | undefined)[];
|
|
24
24
|
get name(): string;
|
|
25
25
|
get id(): string;
|
|
26
26
|
get options(): HOption[];
|
|
@@ -37,7 +37,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
37
37
|
this.type = SELECT_TYPES.select;
|
|
38
38
|
this.noDeselect = false;
|
|
39
39
|
this._searchValue = '';
|
|
40
|
-
this._$options =
|
|
40
|
+
this._$options = new Map();
|
|
41
41
|
this._$dropdown = createRef();
|
|
42
42
|
this._$search = createRef();
|
|
43
43
|
this._$optionsList = createRef();
|
|
@@ -49,13 +49,10 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
49
49
|
const value = $option.getAttribute('value');
|
|
50
50
|
if (!value)
|
|
51
51
|
throw Error('Select option must hava a value');
|
|
52
|
-
if (acc
|
|
52
|
+
if (acc.has(value))
|
|
53
53
|
throw Error('Select options must hava a unique values.');
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
[value]: $option
|
|
57
|
-
};
|
|
58
|
-
}, {});
|
|
54
|
+
return acc.set(value, $option);
|
|
55
|
+
}, new Map());
|
|
59
56
|
const options = $options.map(SelectOptionMapper.toModel);
|
|
60
57
|
this._selectController.options$.notify(options);
|
|
61
58
|
if (options.length)
|
|
@@ -85,13 +82,13 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
85
82
|
this._dispatchChangeEvent();
|
|
86
83
|
};
|
|
87
84
|
this._updateOptionsView = (options) => {
|
|
88
|
-
if (options.length <
|
|
85
|
+
if (options.length < Array.from(this._$options.keys()).length)
|
|
89
86
|
this._removeHTMLOptions(options.map((option) => option.value));
|
|
90
87
|
options
|
|
91
88
|
.filter((option) => !option.inactive)
|
|
92
89
|
.forEach((option, index) => {
|
|
93
90
|
const { selected, value } = option;
|
|
94
|
-
const $option = this._$options
|
|
91
|
+
const $option = this._$options.get(value);
|
|
95
92
|
if (!$option) {
|
|
96
93
|
this._appendNewHTMLOption(option, index + 1);
|
|
97
94
|
return;
|
|
@@ -143,20 +140,20 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
143
140
|
const selectedOptions = this._selectController.selectedOptions$.getValue();
|
|
144
141
|
if (!selectedOptions || selectedOptions.length === 0)
|
|
145
142
|
return -1;
|
|
146
|
-
const htmlOptions =
|
|
143
|
+
const htmlOptions = Array.from(this._$options.values());
|
|
147
144
|
return this.multiple
|
|
148
145
|
? SelectControlUtils.getFirstIndexSelectedOption(htmlOptions)
|
|
149
146
|
: SelectControlUtils.getLastIndexOfSelectedOption(htmlOptions);
|
|
150
147
|
}
|
|
151
148
|
set selectedIndex(index) {
|
|
152
|
-
const option =
|
|
149
|
+
const option = Array.from(this._$options.values()).filter(($option) => !$option.hidden)[index];
|
|
153
150
|
option ? this._selectOption(option.value) : this._selectController.deselectAll();
|
|
154
|
-
|
|
151
|
+
Array.from(this._$options.values()).forEach(($option) => this.updateOptionAriaAttribute($option));
|
|
155
152
|
}
|
|
156
153
|
get selectedOptions() {
|
|
157
154
|
var _a;
|
|
158
155
|
const selectedOptions = (_a = this._selectController.selectedOptions$.getValue()) !== null && _a !== void 0 ? _a : [];
|
|
159
|
-
return selectedOptions.filter((option) => option.selected).map((option) => this._$options
|
|
156
|
+
return selectedOptions.filter((option) => option.selected).map((option) => this._$options.get(option.value));
|
|
160
157
|
}
|
|
161
158
|
get name() {
|
|
162
159
|
return this.controlName;
|
|
@@ -165,7 +162,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
165
162
|
return this.controlId;
|
|
166
163
|
}
|
|
167
164
|
get options() {
|
|
168
|
-
return
|
|
165
|
+
return Array.from(this._$options.values());
|
|
169
166
|
}
|
|
170
167
|
updated(changedProperties) {
|
|
171
168
|
super.updated(changedProperties);
|
|
@@ -228,7 +225,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
228
225
|
const $option = SelectControlUtils.createHTMLOption(option);
|
|
229
226
|
if (selected)
|
|
230
227
|
this.updateOptionAriaAttribute($option);
|
|
231
|
-
this._$options
|
|
228
|
+
this._$options.set(value, $option);
|
|
232
229
|
SelectControlUtils.appendHTMLOption($option, $list, position);
|
|
233
230
|
}
|
|
234
231
|
updateOptionAriaAttribute($option) {
|
|
@@ -237,7 +234,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
237
234
|
: $option.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', 'true');
|
|
238
235
|
}
|
|
239
236
|
_removeHTMLOptions(optionsValues) {
|
|
240
|
-
this._$options = SelectControlUtils.removeHTMLOptions(
|
|
237
|
+
this._$options = SelectControlUtils.removeHTMLOptions(Array.from(this._$options.values()), optionsValues);
|
|
241
238
|
}
|
|
242
239
|
_selectOption(value) {
|
|
243
240
|
const option = this._selectController.getOption(value);
|
|
@@ -268,13 +265,13 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
268
265
|
disconnectedCallback() {
|
|
269
266
|
super.disconnectedCallback();
|
|
270
267
|
this._selectController.options$.unsubscribe(this._optionsObserver);
|
|
271
|
-
this._$options
|
|
268
|
+
this._$options.clear();
|
|
272
269
|
}
|
|
273
270
|
_getClonedPlaceholderElement() {
|
|
274
271
|
return this.$placeholder instanceof HTMLElement ? this.$placeholder.cloneNode(true) : this.$placeholder;
|
|
275
272
|
}
|
|
276
273
|
_searchNoResult() {
|
|
277
|
-
return Boolean(!this._selectController.visibleOptionsCount &&
|
|
274
|
+
return Boolean(!this._selectController.visibleOptionsCount && Array.from(this._$options.keys()).length);
|
|
278
275
|
}
|
|
279
276
|
_renderOption(option) {
|
|
280
277
|
const fragment = document.createDocumentFragment();
|
|
@@ -325,7 +322,7 @@ let HSelect = class HSelect extends PhoenixLightLitElement {
|
|
|
325
322
|
@optionClicked=${this._handleOptionClicked}
|
|
326
323
|
@optionUpdated=${this._handleOptionUpdated}
|
|
327
324
|
>
|
|
328
|
-
${this._$options ? repeat(
|
|
325
|
+
${Array.from(this._$options.entries()).length > 0 ? repeat(Array.from(this._$options.values()), (option) => option.value, (option) => this._renderOption(option)) : nothing}
|
|
329
326
|
</h-options>
|
|
330
327
|
|
|
331
328
|
${this._searchNoResult()
|
|
@@ -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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -4,7 +4,7 @@ import { HOptions } from "./components/select_options";
|
|
|
4
4
|
export declare class SelectControlUtils {
|
|
5
5
|
static createHTMLOption(option: SelectOption): HOption;
|
|
6
6
|
static syncHTMLOptionWithModel(option: SelectOption, $option: HOption): void;
|
|
7
|
-
static removeHTMLOptions($options: HOption[], optionsValuesThatExists: string[]):
|
|
7
|
+
static removeHTMLOptions($options: HOption[], optionsValuesThatExists: string[]): Map<string, HOption>;
|
|
8
8
|
static appendHTMLOption($option: HOption, $list: HOptions, position?: number): void;
|
|
9
9
|
static getFirstIndexSelectedOption(options: HOption[]): number;
|
|
10
10
|
static getLastIndexOfSelectedOption(options: HOption[]): number;
|
|
@@ -26,13 +26,10 @@ class SelectControlUtils {
|
|
|
26
26
|
static removeHTMLOptions($options, optionsValuesThatExists) {
|
|
27
27
|
return $options.reduce((acc, $option) => {
|
|
28
28
|
if (optionsValuesThatExists.includes($option.value))
|
|
29
|
-
return
|
|
30
|
-
...acc,
|
|
31
|
-
[$option.value]: $option
|
|
32
|
-
};
|
|
29
|
+
return acc.set($option.value, $option);
|
|
33
30
|
$option.remove();
|
|
34
31
|
return acc;
|
|
35
|
-
},
|
|
32
|
+
}, new Map());
|
|
36
33
|
}
|
|
37
34
|
static appendHTMLOption($option, $list, position) {
|
|
38
35
|
if (position !== undefined) {
|
|
@@ -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;"}
|