Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/NadeemAfana/select2 into …
Browse files Browse the repository at this point in the history
…develop
  • Loading branch information
alexweissman committed Oct 26, 2017
2 parents 77acc56 + b6f0f3a commit 62c4f63
Show file tree
Hide file tree
Showing 15 changed files with 145 additions and 47 deletions.
7 changes: 4 additions & 3 deletions src/js/jquery.select2.js
Expand Up @@ -3,8 +3,9 @@ define([
'jquery-mousewheel',

'./select2/core',
'./select2/defaults'
], function ($, _, Select2, Defaults) {
'./select2/defaults',
'./select2/utils'
], function ($, _, Select2, Defaults, Utils) {
if ($.fn.select2 == null) {
// All methods that should return the element
var thisMethods = ['open', 'close', 'destroy'];
Expand All @@ -25,7 +26,7 @@ define([
var args = Array.prototype.slice.call(arguments, 1);

this.each(function () {
var instance = $(this).data('select2');
var instance = Utils.GetData(this, 'select2');

if (instance == null && window.console && console.error) {
console.error(
Expand Down
7 changes: 4 additions & 3 deletions src/js/select2/compat/inputData.js
@@ -1,6 +1,7 @@
define([
'jquery'
], function ($) {
'jquery',
'../utils'
], function ($, Utils) {
function InputData (decorated, $element, options) {
this._currentData = [];
this._valueSeparator = options.get('valueSeparator') || ',';
Expand Down Expand Up @@ -117,7 +118,7 @@ define([

InputData.prototype.addOptions = function (_, $options) {
var options = $.map($options, function ($option) {
return $.data($option[0], 'data');
return Utils.GetData($option[0], 'data');
});

this._currentData.push.apply(this._currentData, options);
Expand Down
15 changes: 8 additions & 7 deletions src/js/select2/core.js
Expand Up @@ -5,8 +5,8 @@ define([
'./keys'
], function ($, Options, Utils, KEYS) {
var Select2 = function ($element, options) {
if ($element.data('select2') != null) {
$element.data('select2').destroy();
if (Utils.GetData($element[0], 'select2') != null) {
Utils.GetData($element[0], 'select2').destroy();
}

this.$element = $element;
Expand All @@ -22,7 +22,7 @@ define([
// Set up the tabindex

var tabindex = $element.attr('tabindex') || 0;
$element.data('old-tabindex', tabindex);
Utils.StoreData($element[0], 'old-tabindex', tabindex);
$element.attr('tabindex', '-1');

// Set up containers and adapters
Expand Down Expand Up @@ -83,7 +83,7 @@ define([
// Synchronize any monitored attributes
this._syncAttributes();

$element.data('select2', this);
Utils.StoreData($element[0], 'select2', this);
};

Utils.Extend(Select2, Utils.Observable);
Expand Down Expand Up @@ -573,11 +573,12 @@ define([
this._syncS = null;

this.$element.off('.select2');
this.$element.attr('tabindex', this.$element.data('old-tabindex'));
this.$element.attr('tabindex',
Utils.GetData(this.$element[0], 'old-tabindex'));

this.$element.removeClass('select2-hidden-accessible');
this.$element.attr('aria-hidden', 'false');
this.$element.removeData('select2');
Utils.RemoveData(this.$element[0]);

this.dataAdapter.destroy();
this.selection.destroy();
Expand All @@ -604,7 +605,7 @@ define([

this.$container.addClass('select2-container--' + this.options.get('theme'));

$container.data('element', this.$element);
Utils.StoreData($container[0], 'element', this.$element);

return $container;
};
Expand Down
8 changes: 4 additions & 4 deletions src/js/select2/data/select.js
Expand Up @@ -119,7 +119,7 @@ define([
// Remove anything added to child elements
this.$element.find('*').each(function () {
// Remove any custom data set by Select2
$.removeData(this, 'data');
Utils.RemoveData(this);
});
};

Expand Down Expand Up @@ -192,15 +192,15 @@ define([
normalizedData.element = option;

// Override the option's data with the combined data
$.data(option, 'data', normalizedData);
Utils.StoreData(option, 'data', normalizedData);

return $option;
};

SelectAdapter.prototype.item = function ($option) {
var data = {};

data = $.data($option[0], 'data');
data = Utils.GetData($option[0], 'data');

if (data != null) {
return data;
Expand Down Expand Up @@ -238,7 +238,7 @@ define([
data = this._normalizeItem(data);
data.element = $option[0];

$.data($option[0], 'data', data);
Utils.StoreData($option[0], 'data', data);

return data;
};
Expand Down
4 changes: 2 additions & 2 deletions src/js/select2/dropdown/attachBody.js
Expand Up @@ -90,14 +90,14 @@ define([

var $watchers = this.$container.parents().filter(Utils.hasScroll);
$watchers.each(function () {
$(this).data('select2-scroll-position', {
Utils.StoreData(this, 'select2-scroll-position', {
x: $(this).scrollLeft(),
y: $(this).scrollTop()
});
});

$watchers.on(scrollEvent, function (ev) {
var position = $(this).data('select2-scroll-position');
var position = Utils.GetData(this, 'select2-scroll-position');
$(this).scrollTop(position.y);
});

Expand Down
6 changes: 3 additions & 3 deletions src/js/select2/dropdown/selectOnClose.js
@@ -1,6 +1,6 @@
define([

], function () {
'../utils'
], function (Utils) {
function SelectOnClose () { }

SelectOnClose.prototype.bind = function (decorated, container, $container) {
Expand Down Expand Up @@ -31,7 +31,7 @@ define([
return;
}

var data = $highlightedResults.data('data');
var data = Utils.GetData($highlightedResults[0], 'data');

// Don't re-select already selected resulte
if (
Expand Down
17 changes: 9 additions & 8 deletions src/js/select2/options.js
Expand Up @@ -55,7 +55,7 @@ define([
$e.prop('disabled', this.options.disabled);
$e.prop('multiple', this.options.multiple);

if ($e.data('select2Tags')) {
if (Utils.GetData($e[0], 'select2Tags')) {
if (this.options.debug && window.console && console.warn) {
console.warn(
'Select2: The `data-select2-tags` attribute has been changed to ' +
Expand All @@ -64,11 +64,11 @@ define([
);
}

$e.data('data', $e.data('select2Tags'));
$e.data('tags', true);
Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
Utils.StoreData($e[0], 'tags', true);
}

if ($e.data('ajaxUrl')) {
if (Utils.GetData($e[0], 'ajaxUrl')) {
if (this.options.debug && window.console && console.warn) {
console.warn(
'Select2: The `data-ajax-url` attribute has been changed to ' +
Expand All @@ -77,18 +77,19 @@ define([
);
}

$e.attr('ajax--url', $e.data('ajaxUrl'));
$e.data('ajax--url', $e.data('ajaxUrl'));
$e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));

}

var dataset = {};

// Prefer the element's `dataset` attribute if it exists
// jQuery 1.x does not correctly handle data attributes with multiple dashes
if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
dataset = $.extend(true, {}, $e[0].dataset, $e.data());
dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0]));
} else {
dataset = $e.data();
dataset = Utils.GetData($e[0]);
}

var data = $.extend(true, {}, dataset);
Expand Down
10 changes: 5 additions & 5 deletions src/js/select2/results.js
Expand Up @@ -130,7 +130,7 @@ define([
$options.each(function () {
var $option = $(this);

var item = $.data(this, 'data');
var item = Utils.GetData(this, 'data');

// id needs to be converted to a string when comparing
var id = '' + item.id;
Expand Down Expand Up @@ -235,7 +235,7 @@ define([
this.template(data, option);
}

$.data(option, 'data', data);
Utils.StoreData(option, 'data', data);

return option;
};
Expand Down Expand Up @@ -321,7 +321,7 @@ define([
return;
}

var data = $highlighted.data('data');
var data = Utils.GetData($highlighted[0], 'data');

if ($highlighted.attr('aria-selected') == 'true') {
self.trigger('close', {});
Expand Down Expand Up @@ -433,7 +433,7 @@ define([
function (evt) {
var $this = $(this);

var data = $this.data('data');
var data = Utils.GetData(this, 'data');

if ($this.attr('aria-selected') === 'true') {
if (self.options.get('multiple')) {
Expand All @@ -456,7 +456,7 @@ define([

this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
function (evt) {
var data = $(this).data('data');
var data = Utils.GetData(this, 'data');

self.getHighlightedResults()
.removeClass('select2-results__option--highlighted');
Expand Down
9 changes: 5 additions & 4 deletions src/js/select2/selection/allowClear.js
@@ -1,7 +1,8 @@
define([
'jquery',
'../keys'
], function ($, KEYS) {
'../keys',
'../utils'
], function ($, KEYS, Utils) {
function AllowClear () { }

AllowClear.prototype.bind = function (decorated, container, $container) {
Expand Down Expand Up @@ -43,7 +44,7 @@ define([

evt.stopPropagation();

var data = $clear.data('data');
var data = Utils.GetData($clear[0], 'data');

var previousVal = this.$element.val();
this.$element.val(this.placeholder.id);
Expand Down Expand Up @@ -101,7 +102,7 @@ define([
'×' +
'</span>'
);
$remove.data('data', data);
Utils.StoreData($remove[0], 'data', data);

this.$selection.find('.select2-selection__rendered').prepend($remove);
};
Expand Down
6 changes: 3 additions & 3 deletions src/js/select2/selection/base.js
Expand Up @@ -21,8 +21,8 @@ define([

this._tabindex = 0;

if (this.$element.data('old-tabindex') != null) {
this._tabindex = this.$element.data('old-tabindex');
if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
} else if (this.$element.attr('tabindex') != null) {
this._tabindex = this.$element.attr('tabindex');
}
Expand Down Expand Up @@ -130,7 +130,7 @@ define([
return;
}

var $element = $this.data('element');
var $element = Utils.GetData(this, 'element');

$element.select2('close');
});
Expand Down
4 changes: 2 additions & 2 deletions src/js/select2/selection/multiple.js
Expand Up @@ -44,7 +44,7 @@ define([
var $remove = $(this);
var $selection = $remove.parent();

var data = $selection.data('data');
var data = Utils.GetData($selection[0], 'data');

self.trigger('unselect', {
originalEvent: evt,
Expand Down Expand Up @@ -97,7 +97,7 @@ define([
$selection.append(formatted);
$selection.attr('title', selection.title || selection.text);

$selection.data('data', selection);
Utils.StoreData($selection[0], 'data', selection);

$selections.push($selection);
}
Expand Down
2 changes: 1 addition & 1 deletion src/js/select2/selection/search.js
Expand Up @@ -81,7 +81,7 @@ define([
.prev('.select2-selection__choice');

if ($previousChoice.length > 0) {
var item = $previousChoice.data('data');
var item = Utils.GetData($previousChoice[0], 'data');

self.searchRemoveChoice(item);

Expand Down

0 comments on commit 62c4f63

Please sign in to comment.