select2-rails-latest 4.0.5 → 4.0.6.pre.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/select2-rails/version.rb +1 -1
- data/vendor/assets/javascripts/select2-full.js +169 -67
- data/vendor/assets/javascripts/select2.js +165 -64
- data/vendor/assets/javascripts/select2_locale_af.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ar.js +1 -1
- data/vendor/assets/javascripts/select2_locale_az.js +1 -1
- data/vendor/assets/javascripts/select2_locale_bg.js +1 -1
- data/vendor/assets/javascripts/select2_locale_bs.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ca.js +1 -1
- data/vendor/assets/javascripts/select2_locale_cs.js +1 -1
- data/vendor/assets/javascripts/select2_locale_da.js +1 -1
- data/vendor/assets/javascripts/select2_locale_de.js +1 -1
- data/vendor/assets/javascripts/select2_locale_dsb.js +1 -1
- data/vendor/assets/javascripts/select2_locale_el.js +1 -1
- data/vendor/assets/javascripts/select2_locale_en.js +1 -1
- data/vendor/assets/javascripts/select2_locale_es.js +1 -1
- data/vendor/assets/javascripts/select2_locale_et.js +1 -1
- data/vendor/assets/javascripts/select2_locale_eu.js +1 -1
- data/vendor/assets/javascripts/select2_locale_fa.js +1 -1
- data/vendor/assets/javascripts/select2_locale_fi.js +1 -1
- data/vendor/assets/javascripts/select2_locale_fr.js +2 -2
- data/vendor/assets/javascripts/select2_locale_gl.js +1 -1
- data/vendor/assets/javascripts/select2_locale_he.js +1 -1
- data/vendor/assets/javascripts/select2_locale_hi.js +1 -1
- data/vendor/assets/javascripts/select2_locale_hr.js +1 -1
- data/vendor/assets/javascripts/select2_locale_hsb.js +1 -1
- data/vendor/assets/javascripts/select2_locale_hu.js +1 -1
- data/vendor/assets/javascripts/select2_locale_hy.js +1 -1
- data/vendor/assets/javascripts/select2_locale_id.js +1 -1
- data/vendor/assets/javascripts/select2_locale_is.js +1 -1
- data/vendor/assets/javascripts/select2_locale_it.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ja.js +1 -1
- data/vendor/assets/javascripts/select2_locale_km.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ko.js +1 -1
- data/vendor/assets/javascripts/select2_locale_lt.js +1 -1
- data/vendor/assets/javascripts/select2_locale_lv.js +1 -1
- data/vendor/assets/javascripts/select2_locale_mk.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ms.js +1 -1
- data/vendor/assets/javascripts/select2_locale_nb.js +2 -2
- data/vendor/assets/javascripts/select2_locale_nl.js +1 -1
- data/vendor/assets/javascripts/select2_locale_pl.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ps.js +1 -1
- data/vendor/assets/javascripts/select2_locale_pt-BR.js +1 -1
- data/vendor/assets/javascripts/select2_locale_pt.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ro.js +1 -1
- data/vendor/assets/javascripts/select2_locale_ru.js +1 -1
- data/vendor/assets/javascripts/select2_locale_sk.js +1 -1
- data/vendor/assets/javascripts/select2_locale_sl.js +1 -1
- data/vendor/assets/javascripts/select2_locale_sr-Cyrl.js +1 -1
- data/vendor/assets/javascripts/select2_locale_sr.js +1 -1
- data/vendor/assets/javascripts/select2_locale_sv.js +1 -1
- data/vendor/assets/javascripts/select2_locale_th.js +1 -1
- data/vendor/assets/javascripts/select2_locale_tr.js +1 -1
- data/vendor/assets/javascripts/select2_locale_uk.js +1 -1
- data/vendor/assets/javascripts/select2_locale_vi.js +1 -1
- data/vendor/assets/javascripts/select2_locale_zh-CN.js +1 -1
- data/vendor/assets/javascripts/select2_locale_zh-TW.js +1 -1
- data/vendor/assets/stylesheets/select2.css +5 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9d7d288e351bc56acc391b869a468438760b36b
|
4
|
+
data.tar.gz: cb921f4945173fdbab803ed06004e9de648e5cd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fdcd0c811774d9dc511a1af500918d205d97ef0752040d4a2b00b3437df4284ae79302b826388e860f191f17c3981c42732cf28d5750110ffeb9aa15206445b
|
7
|
+
data.tar.gz: 7e7253c664787c09fbff694060d7391e1f859bfa6add42c6580276ca5bc97626af6e4fb6d7715059fa1297f60dacf307e5ca00c8e97fc0a4339a636748c92037
|
@@ -1,11 +1,11 @@
|
|
1
1
|
/*!
|
2
|
-
* Select2 4.0.
|
2
|
+
* Select2 4.0.6-rc.1
|
3
3
|
* https://select2.github.io
|
4
4
|
*
|
5
5
|
* Released under the MIT license
|
6
6
|
* https://github.com/select2/select2/blob/master/LICENSE.md
|
7
7
|
*/
|
8
|
-
(function (factory) {
|
8
|
+
;(function (factory) {
|
9
9
|
if (typeof define === 'function' && define.amd) {
|
10
10
|
// AMD. Register as an anonymous module.
|
11
11
|
define(['jquery'], factory);
|
@@ -574,10 +574,10 @@ S2.define('select2/utils',[
|
|
574
574
|
DecoratedClass.prototype = new ctr();
|
575
575
|
|
576
576
|
for (var m = 0; m < superMethods.length; m++) {
|
577
|
-
|
577
|
+
var superMethod = superMethods[m];
|
578
578
|
|
579
|
-
|
580
|
-
|
579
|
+
DecoratedClass.prototype[superMethod] =
|
580
|
+
SuperClass.prototype[superMethod];
|
581
581
|
}
|
582
582
|
|
583
583
|
var calledMethod = function (methodName) {
|
@@ -772,6 +772,67 @@ S2.define('select2/utils',[
|
|
772
772
|
$element.append($nodes);
|
773
773
|
};
|
774
774
|
|
775
|
+
// Cache objects in Utils.__cache instead of $.data (see #4346)
|
776
|
+
Utils.__cache = {};
|
777
|
+
|
778
|
+
var id = 0;
|
779
|
+
Utils.GetUniqueElementId = function (element) {
|
780
|
+
// Get a unique element Id. If element has no id,
|
781
|
+
// creates a new unique number, stores it in the id
|
782
|
+
// attribute and returns the new id.
|
783
|
+
// If an id already exists, it simply returns it.
|
784
|
+
|
785
|
+
var select2Id = element.getAttribute('data-select2-id');
|
786
|
+
if (select2Id == null) {
|
787
|
+
// If element has id, use it.
|
788
|
+
if (element.id) {
|
789
|
+
select2Id = element.id;
|
790
|
+
element.setAttribute('data-select2-id', select2Id);
|
791
|
+
} else {
|
792
|
+
element.setAttribute('data-select2-id', ++id);
|
793
|
+
select2Id = id.toString();
|
794
|
+
}
|
795
|
+
}
|
796
|
+
return select2Id;
|
797
|
+
};
|
798
|
+
|
799
|
+
Utils.StoreData = function (element, name, value) {
|
800
|
+
// Stores an item in the cache for a specified element.
|
801
|
+
// name is the cache key.
|
802
|
+
var id = Utils.GetUniqueElementId(element);
|
803
|
+
if (!Utils.__cache[id]) {
|
804
|
+
Utils.__cache[id] = {};
|
805
|
+
}
|
806
|
+
|
807
|
+
Utils.__cache[id][name] = value;
|
808
|
+
};
|
809
|
+
|
810
|
+
Utils.GetData = function (element, name) {
|
811
|
+
// Retrieves a value from the cache by its key (name)
|
812
|
+
// name is optional. If no name specified, return
|
813
|
+
// all cache items for the specified element.
|
814
|
+
// and for a specified element.
|
815
|
+
var id = Utils.GetUniqueElementId(element);
|
816
|
+
if (name) {
|
817
|
+
if (Utils.__cache[id]) {
|
818
|
+
return Utils.__cache[id][name] != null ?
|
819
|
+
Utils.__cache[id][name]:
|
820
|
+
$(element).data(name); // Fallback to HTML5 data attribs.
|
821
|
+
}
|
822
|
+
return $(element).data(name); // Fallback to HTML5 data attribs.
|
823
|
+
} else {
|
824
|
+
return Utils.__cache[id];
|
825
|
+
}
|
826
|
+
};
|
827
|
+
|
828
|
+
Utils.RemoveData = function (element) {
|
829
|
+
// Removes all cached items for a specified element.
|
830
|
+
var id = Utils.GetUniqueElementId(element);
|
831
|
+
if (Utils.__cache[id] != null) {
|
832
|
+
delete Utils.__cache[id];
|
833
|
+
}
|
834
|
+
};
|
835
|
+
|
775
836
|
return Utils;
|
776
837
|
});
|
777
838
|
|
@@ -907,7 +968,7 @@ S2.define('select2/results',[
|
|
907
968
|
$options.each(function () {
|
908
969
|
var $option = $(this);
|
909
970
|
|
910
|
-
var item =
|
971
|
+
var item = Utils.GetData(this, 'data');
|
911
972
|
|
912
973
|
// id needs to be converted to a string when comparing
|
913
974
|
var id = '' + item.id;
|
@@ -1012,7 +1073,7 @@ S2.define('select2/results',[
|
|
1012
1073
|
this.template(data, option);
|
1013
1074
|
}
|
1014
1075
|
|
1015
|
-
|
1076
|
+
Utils.StoreData(option, 'data', data);
|
1016
1077
|
|
1017
1078
|
return option;
|
1018
1079
|
};
|
@@ -1098,7 +1159,7 @@ S2.define('select2/results',[
|
|
1098
1159
|
return;
|
1099
1160
|
}
|
1100
1161
|
|
1101
|
-
var data = $highlighted
|
1162
|
+
var data = Utils.GetData($highlighted[0], 'data');
|
1102
1163
|
|
1103
1164
|
if ($highlighted.attr('aria-selected') == 'true') {
|
1104
1165
|
self.trigger('close', {});
|
@@ -1117,7 +1178,8 @@ S2.define('select2/results',[
|
|
1117
1178
|
var currentIndex = $options.index($highlighted);
|
1118
1179
|
|
1119
1180
|
// If we are already at te top, don't move further
|
1120
|
-
|
1181
|
+
// If no options, currentIndex will be -1
|
1182
|
+
if (currentIndex <= 0) {
|
1121
1183
|
return;
|
1122
1184
|
}
|
1123
1185
|
|
@@ -1210,7 +1272,7 @@ S2.define('select2/results',[
|
|
1210
1272
|
function (evt) {
|
1211
1273
|
var $this = $(this);
|
1212
1274
|
|
1213
|
-
var data =
|
1275
|
+
var data = Utils.GetData(this, 'data');
|
1214
1276
|
|
1215
1277
|
if ($this.attr('aria-selected') === 'true') {
|
1216
1278
|
if (self.options.get('multiple')) {
|
@@ -1233,7 +1295,7 @@ S2.define('select2/results',[
|
|
1233
1295
|
|
1234
1296
|
this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
|
1235
1297
|
function (evt) {
|
1236
|
-
var data =
|
1298
|
+
var data = Utils.GetData(this, 'data');
|
1237
1299
|
|
1238
1300
|
self.getHighlightedResults()
|
1239
1301
|
.removeClass('select2-results__option--highlighted');
|
@@ -1348,8 +1410,8 @@ S2.define('select2/selection/base',[
|
|
1348
1410
|
|
1349
1411
|
this._tabindex = 0;
|
1350
1412
|
|
1351
|
-
if (this.$element
|
1352
|
-
this._tabindex = this.$element
|
1413
|
+
if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
|
1414
|
+
this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
|
1353
1415
|
} else if (this.$element.attr('tabindex') != null) {
|
1354
1416
|
this._tabindex = this.$element.attr('tabindex');
|
1355
1417
|
}
|
@@ -1409,6 +1471,9 @@ S2.define('select2/selection/base',[
|
|
1409
1471
|
self.$selection.removeAttr('aria-owns');
|
1410
1472
|
|
1411
1473
|
self.$selection.focus();
|
1474
|
+
window.setTimeout(function () {
|
1475
|
+
self.$selection.focus();
|
1476
|
+
}, 0);
|
1412
1477
|
|
1413
1478
|
self._detachCloseHandler(container);
|
1414
1479
|
});
|
@@ -1457,7 +1522,7 @@ S2.define('select2/selection/base',[
|
|
1457
1522
|
return;
|
1458
1523
|
}
|
1459
1524
|
|
1460
|
-
var $element =
|
1525
|
+
var $element = Utils.GetData(this, 'element');
|
1461
1526
|
|
1462
1527
|
$element.select2('close');
|
1463
1528
|
});
|
@@ -1518,7 +1583,10 @@ S2.define('select2/selection/single',[
|
|
1518
1583
|
|
1519
1584
|
var id = container.id + '-container';
|
1520
1585
|
|
1521
|
-
this.$selection.find('.select2-selection__rendered')
|
1586
|
+
this.$selection.find('.select2-selection__rendered')
|
1587
|
+
.attr('id', id)
|
1588
|
+
.attr('role', 'textbox')
|
1589
|
+
.attr('aria-readonly', 'true');
|
1522
1590
|
this.$selection.attr('aria-labelledby', id);
|
1523
1591
|
|
1524
1592
|
this.$selection.on('mousedown', function (evt) {
|
@@ -1545,14 +1613,12 @@ S2.define('select2/selection/single',[
|
|
1545
1613
|
self.$selection.focus();
|
1546
1614
|
}
|
1547
1615
|
});
|
1548
|
-
|
1549
|
-
container.on('selection:update', function (params) {
|
1550
|
-
self.update(params.data);
|
1551
|
-
});
|
1552
1616
|
};
|
1553
1617
|
|
1554
1618
|
SingleSelection.prototype.clear = function () {
|
1555
|
-
this.$selection.find('.select2-selection__rendered')
|
1619
|
+
var $rendered = this.$selection.find('.select2-selection__rendered');
|
1620
|
+
$rendered.empty();
|
1621
|
+
$rendered.removeAttr('title'); // clear tooltip on empty
|
1556
1622
|
};
|
1557
1623
|
|
1558
1624
|
SingleSelection.prototype.display = function (data, container) {
|
@@ -1578,7 +1644,7 @@ S2.define('select2/selection/single',[
|
|
1578
1644
|
var formatted = this.display(selection, $rendered);
|
1579
1645
|
|
1580
1646
|
$rendered.empty().append(formatted);
|
1581
|
-
$rendered.
|
1647
|
+
$rendered.attr('title', selection.title || selection.text);
|
1582
1648
|
};
|
1583
1649
|
|
1584
1650
|
return SingleSelection;
|
@@ -1630,7 +1696,7 @@ S2.define('select2/selection/multiple',[
|
|
1630
1696
|
var $remove = $(this);
|
1631
1697
|
var $selection = $remove.parent();
|
1632
1698
|
|
1633
|
-
var data = $selection
|
1699
|
+
var data = Utils.GetData($selection[0], 'data');
|
1634
1700
|
|
1635
1701
|
self.trigger('unselect', {
|
1636
1702
|
originalEvent: evt,
|
@@ -1641,7 +1707,9 @@ S2.define('select2/selection/multiple',[
|
|
1641
1707
|
};
|
1642
1708
|
|
1643
1709
|
MultipleSelection.prototype.clear = function () {
|
1644
|
-
this.$selection.find('.select2-selection__rendered')
|
1710
|
+
var $rendered = this.$selection.find('.select2-selection__rendered');
|
1711
|
+
$rendered.empty();
|
1712
|
+
$rendered.removeAttr('title');
|
1645
1713
|
};
|
1646
1714
|
|
1647
1715
|
MultipleSelection.prototype.display = function (data, container) {
|
@@ -1679,9 +1747,9 @@ S2.define('select2/selection/multiple',[
|
|
1679
1747
|
var formatted = this.display(selection, $selection);
|
1680
1748
|
|
1681
1749
|
$selection.append(formatted);
|
1682
|
-
$selection.
|
1750
|
+
$selection.attr('title', selection.title || selection.text);
|
1683
1751
|
|
1684
|
-
$selection
|
1752
|
+
Utils.StoreData($selection[0], 'data', selection);
|
1685
1753
|
|
1686
1754
|
$selections.push($selection);
|
1687
1755
|
}
|
@@ -1746,8 +1814,9 @@ S2.define('select2/selection/placeholder',[
|
|
1746
1814
|
|
1747
1815
|
S2.define('select2/selection/allowClear',[
|
1748
1816
|
'jquery',
|
1749
|
-
'../keys'
|
1750
|
-
|
1817
|
+
'../keys',
|
1818
|
+
'../utils'
|
1819
|
+
], function ($, KEYS, Utils) {
|
1751
1820
|
function AllowClear () { }
|
1752
1821
|
|
1753
1822
|
AllowClear.prototype.bind = function (decorated, container, $container) {
|
@@ -1789,10 +1858,22 @@ S2.define('select2/selection/allowClear',[
|
|
1789
1858
|
|
1790
1859
|
evt.stopPropagation();
|
1791
1860
|
|
1792
|
-
var data = $clear
|
1861
|
+
var data = Utils.GetData($clear[0], 'data');
|
1862
|
+
|
1863
|
+
var previousVal = this.$element.val();
|
1864
|
+
this.$element.val(this.placeholder.id);
|
1865
|
+
|
1866
|
+
var unselectData = {
|
1867
|
+
data: data
|
1868
|
+
};
|
1869
|
+
this.trigger('clear', unselectData);
|
1870
|
+
if (unselectData.prevented) {
|
1871
|
+
this.$element.val(previousVal);
|
1872
|
+
return;
|
1873
|
+
}
|
1793
1874
|
|
1794
1875
|
for (var d = 0; d < data.length; d++) {
|
1795
|
-
|
1876
|
+
unselectData = {
|
1796
1877
|
data: data[d]
|
1797
1878
|
};
|
1798
1879
|
|
@@ -1802,11 +1883,12 @@ S2.define('select2/selection/allowClear',[
|
|
1802
1883
|
|
1803
1884
|
// If the event was prevented, don't clear it out.
|
1804
1885
|
if (unselectData.prevented) {
|
1886
|
+
this.$element.val(previousVal);
|
1805
1887
|
return;
|
1806
1888
|
}
|
1807
1889
|
}
|
1808
1890
|
|
1809
|
-
this.$element.
|
1891
|
+
this.$element.trigger('change');
|
1810
1892
|
|
1811
1893
|
this.trigger('toggle', {});
|
1812
1894
|
};
|
@@ -1834,7 +1916,7 @@ S2.define('select2/selection/allowClear',[
|
|
1834
1916
|
'×' +
|
1835
1917
|
'</span>'
|
1836
1918
|
);
|
1837
|
-
$remove
|
1919
|
+
Utils.StoreData($remove[0], 'data', data);
|
1838
1920
|
|
1839
1921
|
this.$selection.find('.select2-selection__rendered').prepend($remove);
|
1840
1922
|
};
|
@@ -1925,7 +2007,7 @@ S2.define('select2/selection/search',[
|
|
1925
2007
|
.prev('.select2-selection__choice');
|
1926
2008
|
|
1927
2009
|
if ($previousChoice.length > 0) {
|
1928
|
-
var item = $previousChoice
|
2010
|
+
var item = Utils.GetData($previousChoice[0], 'data');
|
1929
2011
|
|
1930
2012
|
self.searchRemoveChoice(item);
|
1931
2013
|
|
@@ -2019,7 +2101,13 @@ S2.define('select2/selection/search',[
|
|
2019
2101
|
|
2020
2102
|
this.resizeSearch();
|
2021
2103
|
if (searchHadFocus) {
|
2022
|
-
this.$
|
2104
|
+
var isTagInput = this.$element.find('[data-select2-tag]').length;
|
2105
|
+
if (isTagInput) {
|
2106
|
+
// fix IE11 bug where tag input lost focus
|
2107
|
+
this.$element.focus();
|
2108
|
+
} else {
|
2109
|
+
this.$search.focus();
|
2110
|
+
}
|
2023
2111
|
}
|
2024
2112
|
};
|
2025
2113
|
|
@@ -2076,10 +2164,13 @@ S2.define('select2/selection/eventRelay',[
|
|
2076
2164
|
'open', 'opening',
|
2077
2165
|
'close', 'closing',
|
2078
2166
|
'select', 'selecting',
|
2079
|
-
'unselect', 'unselecting'
|
2167
|
+
'unselect', 'unselecting',
|
2168
|
+
'clear', 'clearing'
|
2080
2169
|
];
|
2081
2170
|
|
2082
|
-
var preventableEvents = [
|
2171
|
+
var preventableEvents = [
|
2172
|
+
'opening', 'closing', 'selecting', 'unselecting', 'clearing'
|
2173
|
+
];
|
2083
2174
|
|
2084
2175
|
decorated.call(this, container, $container);
|
2085
2176
|
|
@@ -3158,7 +3249,7 @@ S2.define('select2/data/select',[
|
|
3158
3249
|
// Remove anything added to child elements
|
3159
3250
|
this.$element.find('*').each(function () {
|
3160
3251
|
// Remove any custom data set by Select2
|
3161
|
-
|
3252
|
+
Utils.RemoveData(this);
|
3162
3253
|
});
|
3163
3254
|
};
|
3164
3255
|
|
@@ -3231,7 +3322,7 @@ S2.define('select2/data/select',[
|
|
3231
3322
|
normalizedData.element = option;
|
3232
3323
|
|
3233
3324
|
// Override the option's data with the combined data
|
3234
|
-
|
3325
|
+
Utils.StoreData(option, 'data', normalizedData);
|
3235
3326
|
|
3236
3327
|
return $option;
|
3237
3328
|
};
|
@@ -3239,7 +3330,7 @@ S2.define('select2/data/select',[
|
|
3239
3330
|
SelectAdapter.prototype.item = function ($option) {
|
3240
3331
|
var data = {};
|
3241
3332
|
|
3242
|
-
data =
|
3333
|
+
data = Utils.GetData($option[0], 'data');
|
3243
3334
|
|
3244
3335
|
if (data != null) {
|
3245
3336
|
return data;
|
@@ -3277,13 +3368,13 @@ S2.define('select2/data/select',[
|
|
3277
3368
|
data = this._normalizeItem(data);
|
3278
3369
|
data.element = $option[0];
|
3279
3370
|
|
3280
|
-
|
3371
|
+
Utils.StoreData($option[0], 'data', data);
|
3281
3372
|
|
3282
3373
|
return data;
|
3283
3374
|
};
|
3284
3375
|
|
3285
3376
|
SelectAdapter.prototype._normalizeItem = function (item) {
|
3286
|
-
if (
|
3377
|
+
if (item !== Object(item)) {
|
3287
3378
|
item = {
|
3288
3379
|
id: item,
|
3289
3380
|
text: item
|
@@ -3487,7 +3578,8 @@ S2.define('select2/data/ajax',[
|
|
3487
3578
|
}, function () {
|
3488
3579
|
// Attempt to detect if a request was aborted
|
3489
3580
|
// Only works if the transport exposes a status property
|
3490
|
-
if (
|
3581
|
+
if ('status' in $request &&
|
3582
|
+
($request.status === 0 || $request.status === '0')) {
|
3491
3583
|
return;
|
3492
3584
|
}
|
3493
3585
|
|
@@ -3959,6 +4051,7 @@ S2.define('select2/dropdown/search',[
|
|
3959
4051
|
self.$search.attr('tabindex', -1);
|
3960
4052
|
|
3961
4053
|
self.$search.val('');
|
4054
|
+
self.$search.blur();
|
3962
4055
|
});
|
3963
4056
|
|
3964
4057
|
container.on('focus', function () {
|
@@ -4224,14 +4317,14 @@ S2.define('select2/dropdown/attachBody',[
|
|
4224
4317
|
|
4225
4318
|
var $watchers = this.$container.parents().filter(Utils.hasScroll);
|
4226
4319
|
$watchers.each(function () {
|
4227
|
-
|
4320
|
+
Utils.StoreData(this, 'select2-scroll-position', {
|
4228
4321
|
x: $(this).scrollLeft(),
|
4229
4322
|
y: $(this).scrollTop()
|
4230
4323
|
});
|
4231
4324
|
});
|
4232
4325
|
|
4233
4326
|
$watchers.on(scrollEvent, function (ev) {
|
4234
|
-
var position =
|
4327
|
+
var position = Utils.GetData(this, 'select2-scroll-position');
|
4235
4328
|
$(this).scrollTop(position.y);
|
4236
4329
|
});
|
4237
4330
|
|
@@ -4396,8 +4489,8 @@ S2.define('select2/dropdown/minimumResultsForSearch',[
|
|
4396
4489
|
});
|
4397
4490
|
|
4398
4491
|
S2.define('select2/dropdown/selectOnClose',[
|
4399
|
-
|
4400
|
-
], function () {
|
4492
|
+
'../utils'
|
4493
|
+
], function (Utils) {
|
4401
4494
|
function SelectOnClose () { }
|
4402
4495
|
|
4403
4496
|
SelectOnClose.prototype.bind = function (decorated, container, $container) {
|
@@ -4428,7 +4521,7 @@ S2.define('select2/dropdown/selectOnClose',[
|
|
4428
4521
|
return;
|
4429
4522
|
}
|
4430
4523
|
|
4431
|
-
var data = $highlightedResults
|
4524
|
+
var data = Utils.GetData($highlightedResults[0], 'data');
|
4432
4525
|
|
4433
4526
|
// Don't re-select already selected resulte
|
4434
4527
|
if (
|
@@ -4916,7 +5009,7 @@ S2.define('select2/defaults',[
|
|
4916
5009
|
|
4917
5010
|
var convertedData = Utils._convertData(data);
|
4918
5011
|
|
4919
|
-
$.extend(this.defaults, convertedData);
|
5012
|
+
$.extend(true, this.defaults, convertedData);
|
4920
5013
|
};
|
4921
5014
|
|
4922
5015
|
var defaults = new Defaults();
|
@@ -4981,7 +5074,7 @@ S2.define('select2/options',[
|
|
4981
5074
|
$e.prop('disabled', this.options.disabled);
|
4982
5075
|
$e.prop('multiple', this.options.multiple);
|
4983
5076
|
|
4984
|
-
if ($e
|
5077
|
+
if (Utils.GetData($e[0], 'select2Tags')) {
|
4985
5078
|
if (this.options.debug && window.console && console.warn) {
|
4986
5079
|
console.warn(
|
4987
5080
|
'Select2: The `data-select2-tags` attribute has been changed to ' +
|
@@ -4990,11 +5083,11 @@ S2.define('select2/options',[
|
|
4990
5083
|
);
|
4991
5084
|
}
|
4992
5085
|
|
4993
|
-
$e
|
4994
|
-
$e
|
5086
|
+
Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
|
5087
|
+
Utils.StoreData($e[0], 'tags', true);
|
4995
5088
|
}
|
4996
5089
|
|
4997
|
-
if ($e
|
5090
|
+
if (Utils.GetData($e[0], 'ajaxUrl')) {
|
4998
5091
|
if (this.options.debug && window.console && console.warn) {
|
4999
5092
|
console.warn(
|
5000
5093
|
'Select2: The `data-ajax-url` attribute has been changed to ' +
|
@@ -5003,8 +5096,9 @@ S2.define('select2/options',[
|
|
5003
5096
|
);
|
5004
5097
|
}
|
5005
5098
|
|
5006
|
-
$e.attr('ajax--url', $e
|
5007
|
-
$e
|
5099
|
+
$e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
|
5100
|
+
Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
|
5101
|
+
|
5008
5102
|
}
|
5009
5103
|
|
5010
5104
|
var dataset = {};
|
@@ -5012,9 +5106,9 @@ S2.define('select2/options',[
|
|
5012
5106
|
// Prefer the element's `dataset` attribute if it exists
|
5013
5107
|
// jQuery 1.x does not correctly handle data attributes with multiple dashes
|
5014
5108
|
if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
|
5015
|
-
dataset = $.extend(true, {}, $e[0].dataset, $e
|
5109
|
+
dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0]));
|
5016
5110
|
} else {
|
5017
|
-
dataset = $e
|
5111
|
+
dataset = Utils.GetData($e[0]);
|
5018
5112
|
}
|
5019
5113
|
|
5020
5114
|
var data = $.extend(true, {}, dataset);
|
@@ -5054,8 +5148,8 @@ S2.define('select2/core',[
|
|
5054
5148
|
'./keys'
|
5055
5149
|
], function ($, Options, Utils, KEYS) {
|
5056
5150
|
var Select2 = function ($element, options) {
|
5057
|
-
if ($element
|
5058
|
-
$element
|
5151
|
+
if (Utils.GetData($element[0], 'select2') != null) {
|
5152
|
+
Utils.GetData($element[0], 'select2').destroy();
|
5059
5153
|
}
|
5060
5154
|
|
5061
5155
|
this.$element = $element;
|
@@ -5071,7 +5165,7 @@ S2.define('select2/core',[
|
|
5071
5165
|
// Set up the tabindex
|
5072
5166
|
|
5073
5167
|
var tabindex = $element.attr('tabindex') || 0;
|
5074
|
-
$element
|
5168
|
+
Utils.StoreData($element[0], 'old-tabindex', tabindex);
|
5075
5169
|
$element.attr('tabindex', '-1');
|
5076
5170
|
|
5077
5171
|
// Set up containers and adapters
|
@@ -5132,6 +5226,9 @@ S2.define('select2/core',[
|
|
5132
5226
|
// Synchronize any monitored attributes
|
5133
5227
|
this._syncAttributes();
|
5134
5228
|
|
5229
|
+
Utils.StoreData($element[0], 'select2', this);
|
5230
|
+
|
5231
|
+
// Ensure backwards compatibility with $element.data('select2').
|
5135
5232
|
$element.data('select2', this);
|
5136
5233
|
};
|
5137
5234
|
|
@@ -5466,7 +5563,8 @@ S2.define('select2/core',[
|
|
5466
5563
|
'open': 'opening',
|
5467
5564
|
'close': 'closing',
|
5468
5565
|
'select': 'selecting',
|
5469
|
-
'unselect': 'unselecting'
|
5566
|
+
'unselect': 'unselecting',
|
5567
|
+
'clear': 'clearing'
|
5470
5568
|
};
|
5471
5569
|
|
5472
5570
|
if (args === undefined) {
|
@@ -5621,10 +5719,12 @@ S2.define('select2/core',[
|
|
5621
5719
|
this._syncS = null;
|
5622
5720
|
|
5623
5721
|
this.$element.off('.select2');
|
5624
|
-
this.$element.attr('tabindex',
|
5722
|
+
this.$element.attr('tabindex',
|
5723
|
+
Utils.GetData(this.$element[0], 'old-tabindex'));
|
5625
5724
|
|
5626
5725
|
this.$element.removeClass('select2-hidden-accessible');
|
5627
5726
|
this.$element.attr('aria-hidden', 'false');
|
5727
|
+
Utils.RemoveData(this.$element[0]);
|
5628
5728
|
this.$element.removeData('select2');
|
5629
5729
|
|
5630
5730
|
this.dataAdapter.destroy();
|
@@ -5652,7 +5752,7 @@ S2.define('select2/core',[
|
|
5652
5752
|
|
5653
5753
|
this.$container.addClass('select2-container--' + this.options.get('theme'));
|
5654
5754
|
|
5655
|
-
$container
|
5755
|
+
Utils.StoreData($container[0], 'element', this.$element);
|
5656
5756
|
|
5657
5757
|
return $container;
|
5658
5758
|
};
|
@@ -5862,8 +5962,9 @@ S2.define('select2/compat/initSelection',[
|
|
5862
5962
|
});
|
5863
5963
|
|
5864
5964
|
S2.define('select2/compat/inputData',[
|
5865
|
-
'jquery'
|
5866
|
-
|
5965
|
+
'jquery',
|
5966
|
+
'../utils'
|
5967
|
+
], function ($, Utils) {
|
5867
5968
|
function InputData (decorated, $element, options) {
|
5868
5969
|
this._currentData = [];
|
5869
5970
|
this._valueSeparator = options.get('valueSeparator') || ',';
|
@@ -5980,7 +6081,7 @@ S2.define('select2/compat/inputData',[
|
|
5980
6081
|
|
5981
6082
|
InputData.prototype.addOptions = function (_, $options) {
|
5982
6083
|
var options = $.map($options, function ($option) {
|
5983
|
-
return
|
6084
|
+
return Utils.GetData($option[0], 'data');
|
5984
6085
|
});
|
5985
6086
|
|
5986
6087
|
this._currentData.push.apply(this._currentData, options);
|
@@ -6383,8 +6484,9 @@ S2.define('jquery.select2',[
|
|
6383
6484
|
'jquery-mousewheel',
|
6384
6485
|
|
6385
6486
|
'./select2/core',
|
6386
|
-
'./select2/defaults'
|
6387
|
-
|
6487
|
+
'./select2/defaults',
|
6488
|
+
'./select2/utils'
|
6489
|
+
], function ($, _, Select2, Defaults, Utils) {
|
6388
6490
|
if ($.fn.select2 == null) {
|
6389
6491
|
// All methods that should return the element
|
6390
6492
|
var thisMethods = ['open', 'close', 'destroy'];
|
@@ -6405,7 +6507,7 @@ S2.define('jquery.select2',[
|
|
6405
6507
|
var args = Array.prototype.slice.call(arguments, 1);
|
6406
6508
|
|
6407
6509
|
this.each(function () {
|
6408
|
-
var instance =
|
6510
|
+
var instance = Utils.GetData(this, 'select2');
|
6409
6511
|
|
6410
6512
|
if (instance == null && window.console && console.error) {
|
6411
6513
|
console.error(
|