slim-select 2.0.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/index.d.ts +1 -1
- package/dist/render.d.ts +10 -3
- package/dist/select.d.ts +6 -6
- package/dist/settings.d.ts +0 -3
- package/dist/slimselect.cjs.js +202 -67
- package/dist/slimselect.css +1 -1
- package/dist/slimselect.css.map +1 -1
- package/dist/slimselect.es.js +202 -67
- package/dist/slimselect.global.js +202 -67
- package/dist/slimselect.js +202 -67
- package/dist/slimselect.min.js +1 -1
- package/dist/slimselect.umd.js +202 -67
- package/dist/slimselect.umd.min.js +1 -1
- package/dist/store.d.ts +5 -0
- package/docs/assets/data.js +7 -3
- package/docs/assets/home.css +1 -1
- package/docs/assets/home.js +1 -1
- package/docs/assets/index.css +1 -1
- package/docs/assets/index.js +7 -7
- package/docs/assets/index2.js +119 -35
- package/docs/assets/index3.js +39 -23
- package/docs/assets/index4.js +1 -1
- package/docs/assets/index5.js +147 -9
- package/docs/assets/install.js +4 -4
- package/docs/assets/selects.js +1 -1
- package/package.json +11 -3
- package/src/docs/app.vue +6 -5
- package/src/docs/{images → assets/images}/check-mark.svg +0 -0
- package/src/docs/{images → assets/images}/chrome.svg +0 -0
- package/src/docs/{images → assets/images}/firefox.svg +0 -0
- package/src/docs/{images → assets/images}/github.png +0 -0
- package/src/docs/{images → assets/images}/ie.svg +0 -0
- package/src/docs/{images → assets/images}/npm.png +0 -0
- package/src/docs/{images → assets/images}/opera.svg +0 -0
- package/src/docs/{images → assets/images}/safari.svg +0 -0
- package/src/docs/assets/scss/misc.scss +7 -0
- package/src/docs/env.d.ts +1 -0
- package/src/docs/pages/data.vue +4 -0
- package/src/docs/pages/events/addable.vue +22 -6
- package/src/docs/pages/events/before_after_change.vue +15 -1
- package/src/docs/pages/events/search.vue +31 -16
- package/src/docs/pages/frameworks/vue.vue +375 -7
- package/src/docs/pages/home.vue +104 -57
- package/src/docs/pages/methods/get_data.vue +2 -1
- package/src/docs/pages/methods/open_close.vue +1 -1
- package/src/docs/pages/settings/closable.vue +128 -0
- package/src/docs/pages/settings/index.vue +6 -3
- package/src/docs/pages/settings/select_all.vue +88 -0
- package/src/slim-select/index.ts +4 -2
- package/src/slim-select/render.ts +247 -59
- package/src/slim-select/rollup.config.mjs +5 -0
- package/src/slim-select/select.ts +48 -31
- package/src/slim-select/settings.ts +0 -4
- package/src/slim-select/slimselect.scss +112 -11
- package/src/slim-select/store.ts +19 -1
- package/src/vue/README.md +48 -0
- package/src/vue/dist/slimselectvue.es.js +1752 -0
- package/src/vue/dist/slimselectvue.global.js +1755 -0
- package/src/vue/dist/slimselectvue.ssr.js +1754 -0
- package/src/vue/hello.ts +5 -0
- package/src/vue/package.json +28 -0
- package/src/vue/rollup.config.mjs +44 -0
- package/src/vue/slimselect.vue +39 -5
- package/src/vue/tsconfig.json +14 -0
- package/src/docs/pages/settings/select_by_group.vue +0 -46
|
@@ -54,6 +54,8 @@ var SlimSelect = (function () {
|
|
|
54
54
|
constructor(optgroup) {
|
|
55
55
|
this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;
|
|
56
56
|
this.label = optgroup.label || '';
|
|
57
|
+
this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;
|
|
58
|
+
this.closable = optgroup.closable || 'off';
|
|
57
59
|
this.options = [];
|
|
58
60
|
if (optgroup.options) {
|
|
59
61
|
for (const o of optgroup.options) {
|
|
@@ -200,6 +202,14 @@ var SlimSelect = (function () {
|
|
|
200
202
|
});
|
|
201
203
|
return selectedIDs;
|
|
202
204
|
}
|
|
205
|
+
getOptgroupByID(id) {
|
|
206
|
+
for (let dataObj of this.data) {
|
|
207
|
+
if (dataObj instanceof Optgroup && dataObj.id === id) {
|
|
208
|
+
return dataObj;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
203
213
|
getOptionByID(id) {
|
|
204
214
|
let options = this.filter((opt) => {
|
|
205
215
|
return opt.id === id;
|
|
@@ -234,7 +244,7 @@ var SlimSelect = (function () {
|
|
|
234
244
|
}
|
|
235
245
|
});
|
|
236
246
|
if (optOptions.length > 0) {
|
|
237
|
-
dataSearch.push(new Optgroup(
|
|
247
|
+
dataSearch.push(new Optgroup(dataObj));
|
|
238
248
|
}
|
|
239
249
|
}
|
|
240
250
|
}
|
|
@@ -275,11 +285,18 @@ var SlimSelect = (function () {
|
|
|
275
285
|
list: 'ss-list',
|
|
276
286
|
optgroup: 'ss-optgroup',
|
|
277
287
|
optgroupLabel: 'ss-optgroup-label',
|
|
278
|
-
|
|
288
|
+
optgroupLabelText: 'ss-optgroup-label-text',
|
|
289
|
+
optgroupActions: 'ss-optgroup-actions',
|
|
290
|
+
optgroupSelectAll: 'ss-selectall',
|
|
291
|
+
optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',
|
|
292
|
+
optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',
|
|
293
|
+
optgroupClosable: 'ss-closable',
|
|
279
294
|
option: 'ss-option',
|
|
280
|
-
optionSelected: 'ss-option-selected',
|
|
281
295
|
optionDelete: 'M10,10 L90,90 M10,90 L90,10',
|
|
282
296
|
highlighted: 'ss-highlighted',
|
|
297
|
+
open: 'ss-open',
|
|
298
|
+
close: 'ss-close',
|
|
299
|
+
selected: 'ss-selected',
|
|
283
300
|
error: 'ss-error',
|
|
284
301
|
disabled: 'ss-disabled',
|
|
285
302
|
hide: 'ss-hide',
|
|
@@ -289,8 +306,6 @@ var SlimSelect = (function () {
|
|
|
289
306
|
this.callbacks = callbacks;
|
|
290
307
|
this.main = this.mainDiv();
|
|
291
308
|
this.content = this.contentDiv();
|
|
292
|
-
this.renderValues();
|
|
293
|
-
this.renderOptions(this.store.getData());
|
|
294
309
|
this.settings.contentLocation.appendChild(this.content.main);
|
|
295
310
|
}
|
|
296
311
|
enable() {
|
|
@@ -398,7 +413,21 @@ var SlimSelect = (function () {
|
|
|
398
413
|
if (!this.settings.isEnabled) {
|
|
399
414
|
return;
|
|
400
415
|
}
|
|
401
|
-
|
|
416
|
+
let shouldDelete = true;
|
|
417
|
+
const before = this.store.getSelectedOptions();
|
|
418
|
+
const after = [];
|
|
419
|
+
if (this.callbacks.beforeChange) {
|
|
420
|
+
shouldDelete = this.callbacks.beforeChange(after, before) === true;
|
|
421
|
+
}
|
|
422
|
+
if (shouldDelete) {
|
|
423
|
+
this.callbacks.setSelected(['']);
|
|
424
|
+
if (this.settings.closeOnSelect) {
|
|
425
|
+
this.callbacks.close();
|
|
426
|
+
}
|
|
427
|
+
if (this.callbacks.afterChange) {
|
|
428
|
+
this.callbacks.afterChange(after);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
402
431
|
};
|
|
403
432
|
const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
404
433
|
deselectSvg.setAttribute('viewBox', '0 0 100 100');
|
|
@@ -704,23 +733,48 @@ var SlimSelect = (function () {
|
|
|
704
733
|
this.content.search.input.focus();
|
|
705
734
|
return;
|
|
706
735
|
}
|
|
736
|
+
const runFinish = (oo) => {
|
|
737
|
+
let newOption = new Option(oo);
|
|
738
|
+
this.callbacks.addOption(newOption);
|
|
739
|
+
if (this.settings.isMultiple) {
|
|
740
|
+
let values = this.store.getSelected();
|
|
741
|
+
values.push(newOption.value);
|
|
742
|
+
this.callbacks.setSelected(values);
|
|
743
|
+
}
|
|
744
|
+
else {
|
|
745
|
+
this.callbacks.setSelected([newOption.value]);
|
|
746
|
+
}
|
|
747
|
+
this.callbacks.search('');
|
|
748
|
+
if (this.settings.closeOnSelect) {
|
|
749
|
+
setTimeout(() => {
|
|
750
|
+
this.callbacks.close();
|
|
751
|
+
}, 100);
|
|
752
|
+
}
|
|
753
|
+
};
|
|
707
754
|
const addableValue = this.callbacks.addable(inputValue);
|
|
708
|
-
if (
|
|
709
|
-
|
|
755
|
+
if (addableValue instanceof Promise) {
|
|
756
|
+
addableValue.then((value) => {
|
|
757
|
+
if (typeof value === 'string') {
|
|
758
|
+
runFinish({
|
|
759
|
+
text: value,
|
|
760
|
+
value: value,
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
else {
|
|
764
|
+
runFinish(value);
|
|
765
|
+
}
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
else if (typeof addableValue === 'string') {
|
|
769
|
+
runFinish({
|
|
710
770
|
text: addableValue,
|
|
711
771
|
value: addableValue,
|
|
712
|
-
})
|
|
772
|
+
});
|
|
713
773
|
}
|
|
714
774
|
else {
|
|
715
|
-
|
|
716
|
-
}
|
|
717
|
-
this.callbacks.setSelected([inputValue]);
|
|
718
|
-
this.callbacks.search('');
|
|
719
|
-
if (this.settings.closeOnSelect) {
|
|
720
|
-
setTimeout(() => {
|
|
721
|
-
this.callbacks.close();
|
|
722
|
-
}, 100);
|
|
775
|
+
runFinish(addableValue);
|
|
723
776
|
}
|
|
777
|
+
return;
|
|
724
778
|
};
|
|
725
779
|
main.appendChild(addable);
|
|
726
780
|
searchReturn.addable = {
|
|
@@ -764,25 +818,23 @@ var SlimSelect = (function () {
|
|
|
764
818
|
}
|
|
765
819
|
for (let i = 0; i < options.length; i++) {
|
|
766
820
|
if (options[i].classList.contains(this.classes.highlighted)) {
|
|
767
|
-
options[i]
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
options[0].classList.add(this.classes.highlighted);
|
|
775
|
-
this.ensureElementInView(this.content.list, options[0]);
|
|
821
|
+
const prevOption = options[i];
|
|
822
|
+
prevOption.classList.remove(this.classes.highlighted);
|
|
823
|
+
const prevParent = prevOption.parentElement;
|
|
824
|
+
if (prevParent && prevParent.classList.contains(this.classes.open)) {
|
|
825
|
+
const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);
|
|
826
|
+
if (optgroupLabel) {
|
|
827
|
+
optgroupLabel.click();
|
|
776
828
|
}
|
|
777
829
|
}
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
830
|
+
let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];
|
|
831
|
+
selectOption.classList.add(this.classes.highlighted);
|
|
832
|
+
this.ensureElementInView(this.content.list, selectOption);
|
|
833
|
+
const selectParent = selectOption.parentElement;
|
|
834
|
+
if (selectParent && selectParent.classList.contains(this.classes.close)) {
|
|
835
|
+
const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);
|
|
836
|
+
if (optgroupLabel) {
|
|
837
|
+
optgroupLabel.click();
|
|
786
838
|
}
|
|
787
839
|
}
|
|
788
840
|
return;
|
|
@@ -827,18 +879,95 @@ var SlimSelect = (function () {
|
|
|
827
879
|
optgroupEl.classList.add(this.classes.optgroup);
|
|
828
880
|
const optgroupLabel = document.createElement('div');
|
|
829
881
|
optgroupLabel.classList.add(this.classes.optgroupLabel);
|
|
830
|
-
optgroupLabel
|
|
831
|
-
|
|
832
|
-
|
|
882
|
+
optgroupEl.appendChild(optgroupLabel);
|
|
883
|
+
const optgroupLabelText = document.createElement('div');
|
|
884
|
+
optgroupLabelText.classList.add(this.classes.optgroupLabelText);
|
|
885
|
+
optgroupLabelText.textContent = d.label;
|
|
886
|
+
optgroupLabel.appendChild(optgroupLabelText);
|
|
887
|
+
const optgroupActions = document.createElement('div');
|
|
888
|
+
optgroupActions.classList.add(this.classes.optgroupActions);
|
|
889
|
+
optgroupLabel.appendChild(optgroupActions);
|
|
890
|
+
if (this.settings.isMultiple && d.selectAll) {
|
|
891
|
+
const selectAll = document.createElement('div');
|
|
892
|
+
selectAll.classList.add(this.classes.optgroupSelectAll);
|
|
893
|
+
let allSelected = true;
|
|
894
|
+
for (const o of d.options) {
|
|
895
|
+
if (!o.selected) {
|
|
896
|
+
allSelected = false;
|
|
897
|
+
break;
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
if (allSelected) {
|
|
901
|
+
selectAll.classList.add(this.classes.selected);
|
|
902
|
+
}
|
|
903
|
+
const selectAllText = document.createElement('span');
|
|
904
|
+
selectAllText.textContent = 'Select All';
|
|
905
|
+
selectAll.appendChild(selectAllText);
|
|
906
|
+
const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
907
|
+
selectAllSvg.setAttribute('viewBox', '0 0 100 100');
|
|
908
|
+
selectAll.appendChild(selectAllSvg);
|
|
909
|
+
const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
910
|
+
selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);
|
|
911
|
+
selectAllSvg.appendChild(selectAllBox);
|
|
912
|
+
const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
913
|
+
selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);
|
|
914
|
+
selectAllSvg.appendChild(selectAllCheck);
|
|
915
|
+
selectAll.addEventListener('click', (e) => {
|
|
916
|
+
e.preventDefault();
|
|
917
|
+
e.stopPropagation();
|
|
918
|
+
const currentSelected = this.store.getSelected();
|
|
919
|
+
if (allSelected) {
|
|
920
|
+
const newSelected = currentSelected.filter((s) => {
|
|
921
|
+
for (const o of d.options) {
|
|
922
|
+
if (s === o.value) {
|
|
923
|
+
return false;
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
return true;
|
|
927
|
+
});
|
|
928
|
+
this.callbacks.setSelected(newSelected);
|
|
929
|
+
return;
|
|
930
|
+
}
|
|
931
|
+
else {
|
|
932
|
+
const newSelected = currentSelected.concat(d.options.map((o) => o.value));
|
|
933
|
+
this.callbacks.setSelected(newSelected);
|
|
934
|
+
}
|
|
935
|
+
});
|
|
936
|
+
optgroupActions.appendChild(selectAll);
|
|
937
|
+
}
|
|
938
|
+
if (d.closable !== 'off') {
|
|
939
|
+
const optgroupClosable = document.createElement('div');
|
|
940
|
+
optgroupClosable.classList.add(this.classes.optgroupClosable);
|
|
941
|
+
const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
942
|
+
optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');
|
|
943
|
+
optgroupClosableSvg.classList.add(this.classes.arrow);
|
|
944
|
+
optgroupClosable.appendChild(optgroupClosableSvg);
|
|
945
|
+
const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
946
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrow);
|
|
947
|
+
optgroupClosableSvg.appendChild(optgroupClosableArrow);
|
|
948
|
+
if (d.closable === 'open') {
|
|
949
|
+
optgroupEl.classList.add(this.classes.open);
|
|
950
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
|
|
951
|
+
}
|
|
952
|
+
else if (d.closable === 'close') {
|
|
953
|
+
optgroupEl.classList.add(this.classes.close);
|
|
954
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
|
|
955
|
+
}
|
|
833
956
|
optgroupLabel.addEventListener('click', (e) => {
|
|
834
957
|
e.preventDefault();
|
|
835
958
|
e.stopPropagation();
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
959
|
+
if (optgroupEl.classList.contains(this.classes.close)) {
|
|
960
|
+
optgroupEl.classList.remove(this.classes.close);
|
|
961
|
+
optgroupEl.classList.add(this.classes.open);
|
|
962
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
|
|
963
|
+
}
|
|
964
|
+
else {
|
|
965
|
+
optgroupEl.classList.remove(this.classes.open);
|
|
966
|
+
optgroupEl.classList.add(this.classes.close);
|
|
967
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
|
|
840
968
|
}
|
|
841
969
|
});
|
|
970
|
+
optgroupActions.appendChild(optgroupClosable);
|
|
842
971
|
}
|
|
843
972
|
optgroupEl.appendChild(optgroupLabel);
|
|
844
973
|
for (const o of d.options) {
|
|
@@ -890,10 +1019,10 @@ var SlimSelect = (function () {
|
|
|
890
1019
|
optionEl.classList.add(this.classes.hide);
|
|
891
1020
|
}
|
|
892
1021
|
if (option.selected) {
|
|
893
|
-
optionEl.classList.add(this.classes.
|
|
1022
|
+
optionEl.classList.add(this.classes.selected);
|
|
894
1023
|
}
|
|
895
1024
|
else {
|
|
896
|
-
optionEl.classList.remove(this.classes.
|
|
1025
|
+
optionEl.classList.remove(this.classes.selected);
|
|
897
1026
|
}
|
|
898
1027
|
optionEl.addEventListener('click', (e) => {
|
|
899
1028
|
e.preventDefault();
|
|
@@ -1076,7 +1205,9 @@ var SlimSelect = (function () {
|
|
|
1076
1205
|
}
|
|
1077
1206
|
observeWrapper(mutations) {
|
|
1078
1207
|
if (this.onSelectChange) {
|
|
1208
|
+
this.changeListen(false);
|
|
1079
1209
|
this.onSelectChange(this.getData());
|
|
1210
|
+
this.changeListen(true);
|
|
1080
1211
|
}
|
|
1081
1212
|
}
|
|
1082
1213
|
addObserver() {
|
|
@@ -1084,15 +1215,12 @@ var SlimSelect = (function () {
|
|
|
1084
1215
|
this.disconnectObserver();
|
|
1085
1216
|
this.observer = null;
|
|
1086
1217
|
}
|
|
1087
|
-
this.observer = new MutationObserver(this.observeWrapper);
|
|
1218
|
+
this.observer = new MutationObserver(this.observeWrapper.bind(this));
|
|
1088
1219
|
}
|
|
1089
1220
|
connectObserver() {
|
|
1090
1221
|
if (this.observer) {
|
|
1091
1222
|
this.observer.observe(this.select, {
|
|
1092
|
-
attributes: true,
|
|
1093
1223
|
childList: true,
|
|
1094
|
-
characterData: true,
|
|
1095
|
-
subtree: true,
|
|
1096
1224
|
});
|
|
1097
1225
|
}
|
|
1098
1226
|
}
|
|
@@ -1116,8 +1244,10 @@ var SlimSelect = (function () {
|
|
|
1116
1244
|
}
|
|
1117
1245
|
getDataFromOptgroup(optgroup) {
|
|
1118
1246
|
let data = {
|
|
1119
|
-
id: '',
|
|
1247
|
+
id: (optgroup.dataset ? optgroup.dataset.id : false) || '',
|
|
1120
1248
|
label: optgroup.label,
|
|
1249
|
+
selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,
|
|
1250
|
+
closable: optgroup.dataset ? optgroup.dataset.closable : 'off',
|
|
1121
1251
|
options: [],
|
|
1122
1252
|
};
|
|
1123
1253
|
const options = optgroup.childNodes;
|
|
@@ -1128,6 +1258,22 @@ var SlimSelect = (function () {
|
|
|
1128
1258
|
}
|
|
1129
1259
|
return data;
|
|
1130
1260
|
}
|
|
1261
|
+
getDataFromOption(option) {
|
|
1262
|
+
return {
|
|
1263
|
+
id: (option.dataset ? option.dataset.id : false) || '',
|
|
1264
|
+
value: option.value,
|
|
1265
|
+
text: option.text,
|
|
1266
|
+
html: option.innerHTML,
|
|
1267
|
+
selected: option.selected,
|
|
1268
|
+
display: option.style.display === 'none' ? false : true,
|
|
1269
|
+
disabled: option.disabled,
|
|
1270
|
+
mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
|
|
1271
|
+
placeholder: option.dataset.placeholder === 'true',
|
|
1272
|
+
class: option.className,
|
|
1273
|
+
style: option.style.cssText,
|
|
1274
|
+
data: option.dataset,
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1131
1277
|
getSelectedValues() {
|
|
1132
1278
|
let values = [];
|
|
1133
1279
|
const options = this.select.childNodes;
|
|
@@ -1152,22 +1298,6 @@ var SlimSelect = (function () {
|
|
|
1152
1298
|
}
|
|
1153
1299
|
return values;
|
|
1154
1300
|
}
|
|
1155
|
-
getDataFromOption(option) {
|
|
1156
|
-
return {
|
|
1157
|
-
id: (option.dataset ? option.dataset.id : false) || generateID(),
|
|
1158
|
-
value: option.value,
|
|
1159
|
-
text: option.text,
|
|
1160
|
-
html: option.innerHTML,
|
|
1161
|
-
selected: option.selected,
|
|
1162
|
-
display: option.style.display === 'none' ? false : true,
|
|
1163
|
-
disabled: option.disabled,
|
|
1164
|
-
mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
|
|
1165
|
-
placeholder: option.dataset.placeholder === 'true',
|
|
1166
|
-
class: option.className,
|
|
1167
|
-
style: option.style.cssText,
|
|
1168
|
-
data: option.dataset,
|
|
1169
|
-
};
|
|
1170
|
-
}
|
|
1171
1301
|
setSelected(value) {
|
|
1172
1302
|
const options = this.select.childNodes;
|
|
1173
1303
|
for (const o of options) {
|
|
@@ -1222,6 +1352,12 @@ var SlimSelect = (function () {
|
|
|
1222
1352
|
const optgroupEl = document.createElement('optgroup');
|
|
1223
1353
|
optgroupEl.id = optgroup.id;
|
|
1224
1354
|
optgroupEl.label = optgroup.label;
|
|
1355
|
+
if (optgroup.selectAll) {
|
|
1356
|
+
optgroupEl.dataset.selectAll = 'true';
|
|
1357
|
+
}
|
|
1358
|
+
if (optgroup.closable !== 'off') {
|
|
1359
|
+
optgroupEl.dataset.closable = optgroup.closable;
|
|
1360
|
+
}
|
|
1225
1361
|
if (optgroup.options) {
|
|
1226
1362
|
for (const o of optgroup.options) {
|
|
1227
1363
|
optgroupEl.appendChild(this.createOption(o));
|
|
@@ -1278,8 +1414,6 @@ var SlimSelect = (function () {
|
|
|
1278
1414
|
this.isOpen = false;
|
|
1279
1415
|
this.triggerFocus = true;
|
|
1280
1416
|
this.intervalMove = null;
|
|
1281
|
-
this.mainHeight = 30;
|
|
1282
|
-
this.contentHeight = 0;
|
|
1283
1417
|
if (!settings) {
|
|
1284
1418
|
settings = {};
|
|
1285
1419
|
}
|
|
@@ -1301,7 +1435,6 @@ var SlimSelect = (function () {
|
|
|
1301
1435
|
this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;
|
|
1302
1436
|
this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;
|
|
1303
1437
|
this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;
|
|
1304
|
-
this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false;
|
|
1305
1438
|
this.minSelected = settings.minSelected || 0;
|
|
1306
1439
|
this.maxSelected = settings.maxSelected || 1000;
|
|
1307
1440
|
this.timeoutDelay = settings.timeoutDelay || 200;
|
|
@@ -1408,6 +1541,8 @@ var SlimSelect = (function () {
|
|
|
1408
1541
|
afterChange: this.events.afterChange,
|
|
1409
1542
|
};
|
|
1410
1543
|
this.render = new Render(this.settings, this.store, callbacks);
|
|
1544
|
+
this.render.renderValues();
|
|
1545
|
+
this.render.renderOptions(this.store.getData());
|
|
1411
1546
|
if (this.selectEl.parentNode) {
|
|
1412
1547
|
this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);
|
|
1413
1548
|
}
|