effective_form_inputs 0.7.0 → 0.7.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23128ed6bfc6abb1d0e7974489405d15958cab24
4
- data.tar.gz: 633a4c5fd1831f215f5659ae2fcfca6ff10ee8de
3
+ metadata.gz: 95f0fe620b21c40e0ac46f0ef1fa5d4f5d2cc540
4
+ data.tar.gz: 5422d218ea19c12c505bcaaa4878d34f1ccc99cc
5
5
  SHA512:
6
- metadata.gz: cdff9165217e98224a7f8c904cbe0dab4111bd8c81d4760a06b548d959affaa21a466e360caf7e76a7ff6bed77fd1a9668d588e2d0cfa4e8b93be3f63dec4a75
7
- data.tar.gz: 54472a6f2f159ce33afe5962d06f157808576b5e65bae47623200cbbbe656c47cc4aaae51228ceedf5e96b1e2ca33eafcf97a907423a365118a59756c361e28e
6
+ metadata.gz: aef0cd4cf861b48f2bcad05a144e3db91395c500159dd86758c7356bd848b2dab1de786756c74bd158eafe9cd0effbfc39875b6538c12d7dd8ef47c2fe72c0c5
7
+ data.tar.gz: b0d77403bfd7c5c8519155a9103fc3ad8b16475bb2b6754d3286d2e7bd34e32af00dee770363ab92870dfc3102bfc1dbdb87c0c36aebddc0d580991f521196e4
data/README.md CHANGED
@@ -42,6 +42,34 @@ and add the following to your application.css:
42
42
 
43
43
  All of the included form inputs will now be available with no additional installation tasks.
44
44
 
45
+ ### Options Passing to JavaScript
46
+
47
+ All `:input_js => options` passed to any effective_form_input will be used to initialize the Javascript library
48
+
49
+ For example:
50
+
51
+ ```ruby
52
+ = form_for @user do |f|
53
+ = f.effective_date_time_picker :updated_at, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
54
+ ```
55
+
56
+ or
57
+
58
+ ```ruby
59
+ = simple_form_for @user do |f|
60
+ = f.input :updated_at, :as => :effective_date_time_picker, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
61
+ ```
62
+
63
+ will result in the following call to the Javascript library:
64
+
65
+ ```coffee
66
+ $('input.effective_date_time_picker').datetimepicker
67
+ format: 'dddd, MMMM Do YYYY',
68
+ showTodayButton: true
69
+ ```
70
+
71
+ Any options passed in this way will be used to initialize the underlying javascript libraries.
72
+
45
73
 
46
74
  ## Effective Date Time Picker
47
75
 
@@ -383,33 +411,6 @@ There are no javascript options for this input.
383
411
  This input also installs a rails view helper `price_to_currency` that takes a value like `10000` and displays it as `$100.00`
384
412
 
385
413
 
386
-
387
- ## Passing Options to JavaScript Behaviour
388
-
389
- All `:input_js => options` passed to any effective_form_input will be used to initialize the Javascript library
390
-
391
- For example:
392
-
393
- ```ruby
394
- = form_for @user do |f|
395
- = f.effective_date_time_picker :updated_at, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
396
- ```
397
-
398
- or
399
-
400
- ```ruby
401
- = simple_form_for @user do |f|
402
- = f.input :updated_at, :as => :effective_date_time_picker, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
403
- ```
404
-
405
- will result in the following call to the Javascript library:
406
-
407
- ```coffee
408
- $('input.effective_date_time_picker').datetimepicker
409
- format: 'dddd, MMMM Do YYYY',
410
- showTodayButton: true
411
- ```
412
-
413
414
  ## License
414
415
 
415
416
  MIT License. Copyright [Code and Effect Inc.](http://www.codeandeffect.com/)
@@ -1041,7 +1041,7 @@ S2.define('select2/results',[
1041
1041
  var data = $highlighted.data('data');
1042
1042
 
1043
1043
  if ($highlighted.attr('aria-selected') == 'true') {
1044
- self.trigger('close');
1044
+ self.trigger('close', {});
1045
1045
  } else {
1046
1046
  self.trigger('select', {
1047
1047
  data: data
@@ -1163,7 +1163,7 @@ S2.define('select2/results',[
1163
1163
  data: data
1164
1164
  });
1165
1165
  } else {
1166
- self.trigger('close');
1166
+ self.trigger('close', {});
1167
1167
  }
1168
1168
 
1169
1169
  return;
@@ -1319,7 +1319,7 @@ S2.define('select2/selection/base',[
1319
1319
  });
1320
1320
 
1321
1321
  this.$selection.on('blur', function (evt) {
1322
- self.trigger('blur', evt);
1322
+ self._handleBlur(evt);
1323
1323
  });
1324
1324
 
1325
1325
  this.$selection.on('keydown', function (evt) {
@@ -1366,6 +1366,24 @@ S2.define('select2/selection/base',[
1366
1366
  });
1367
1367
  };
1368
1368
 
1369
+ BaseSelection.prototype._handleBlur = function (evt) {
1370
+ var self = this;
1371
+
1372
+ // This needs to be delayed as the actve element is the body when the tab
1373
+ // key is pressed, possibly along with others.
1374
+ window.setTimeout(function () {
1375
+ // Don't trigger `blur` if the focus is still in the selection
1376
+ if (
1377
+ (document.activeElement == self.$selection[0]) ||
1378
+ ($.contains(self.$selection[0], document.activeElement))
1379
+ ) {
1380
+ return;
1381
+ }
1382
+
1383
+ self.trigger('blur', evt);
1384
+ }, 1);
1385
+ };
1386
+
1369
1387
  BaseSelection.prototype._attachCloseHandler = function (container) {
1370
1388
  var self = this;
1371
1389
 
@@ -1475,11 +1493,11 @@ S2.define('select2/selection/single',[
1475
1493
  this.$selection.find('.select2-selection__rendered').empty();
1476
1494
  };
1477
1495
 
1478
- SingleSelection.prototype.display = function (data) {
1496
+ SingleSelection.prototype.display = function (data, container) {
1479
1497
  var template = this.options.get('templateSelection');
1480
1498
  var escapeMarkup = this.options.get('escapeMarkup');
1481
1499
 
1482
- return escapeMarkup(template(data));
1500
+ return escapeMarkup(template(data, container));
1483
1501
  };
1484
1502
 
1485
1503
  SingleSelection.prototype.selectionContainer = function () {
@@ -1494,9 +1512,9 @@ S2.define('select2/selection/single',[
1494
1512
 
1495
1513
  var selection = data[0];
1496
1514
 
1497
- var formatted = this.display(selection);
1498
-
1499
1515
  var $rendered = this.$selection.find('.select2-selection__rendered');
1516
+ var formatted = this.display(selection, $rendered);
1517
+
1500
1518
  $rendered.empty().append(formatted);
1501
1519
  $rendered.prop('title', selection.title || selection.text);
1502
1520
  };
@@ -1538,29 +1556,37 @@ S2.define('select2/selection/multiple',[
1538
1556
  });
1539
1557
  });
1540
1558
 
1541
- this.$selection.on('click', '.select2-selection__choice__remove',
1559
+ this.$selection.on(
1560
+ 'click',
1561
+ '.select2-selection__choice__remove',
1542
1562
  function (evt) {
1543
- var $remove = $(this);
1544
- var $selection = $remove.parent();
1563
+ // Ignore the event if it is disabled
1564
+ if (self.options.get('disabled')) {
1565
+ return;
1566
+ }
1545
1567
 
1546
- var data = $selection.data('data');
1568
+ var $remove = $(this);
1569
+ var $selection = $remove.parent();
1547
1570
 
1548
- self.trigger('unselect', {
1549
- originalEvent: evt,
1550
- data: data
1551
- });
1552
- });
1571
+ var data = $selection.data('data');
1572
+
1573
+ self.trigger('unselect', {
1574
+ originalEvent: evt,
1575
+ data: data
1576
+ });
1577
+ }
1578
+ );
1553
1579
  };
1554
1580
 
1555
1581
  MultipleSelection.prototype.clear = function () {
1556
1582
  this.$selection.find('.select2-selection__rendered').empty();
1557
1583
  };
1558
1584
 
1559
- MultipleSelection.prototype.display = function (data) {
1585
+ MultipleSelection.prototype.display = function (data, container) {
1560
1586
  var template = this.options.get('templateSelection');
1561
1587
  var escapeMarkup = this.options.get('escapeMarkup');
1562
1588
 
1563
- return escapeMarkup(template(data));
1589
+ return escapeMarkup(template(data, container));
1564
1590
  };
1565
1591
 
1566
1592
  MultipleSelection.prototype.selectionContainer = function () {
@@ -1587,8 +1613,8 @@ S2.define('select2/selection/multiple',[
1587
1613
  for (var d = 0; d < data.length; d++) {
1588
1614
  var selection = data[d];
1589
1615
 
1590
- var formatted = this.display(selection);
1591
1616
  var $selection = this.selectionContainer();
1617
+ var formatted = this.display(selection, $selection);
1592
1618
 
1593
1619
  $selection.append(formatted);
1594
1620
  $selection.prop('title', selection.title || selection.text);
@@ -1720,7 +1746,7 @@ S2.define('select2/selection/allowClear',[
1720
1746
 
1721
1747
  this.$element.val(this.placeholder.id).trigger('change');
1722
1748
 
1723
- this.trigger('toggle');
1749
+ this.trigger('toggle', {});
1724
1750
  };
1725
1751
 
1726
1752
  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
@@ -1777,6 +1803,8 @@ S2.define('select2/selection/search',[
1777
1803
 
1778
1804
  var $rendered = decorated.call(this);
1779
1805
 
1806
+ this._transferTabIndex();
1807
+
1780
1808
  return $rendered;
1781
1809
  };
1782
1810
 
@@ -1786,32 +1814,34 @@ S2.define('select2/selection/search',[
1786
1814
  decorated.call(this, container, $container);
1787
1815
 
1788
1816
  container.on('open', function () {
1789
- self.$search.attr('tabindex', 0);
1790
-
1791
- self.$search.focus();
1817
+ self.$search.trigger('focus');
1792
1818
  });
1793
1819
 
1794
1820
  container.on('close', function () {
1795
- self.$search.attr('tabindex', -1);
1796
-
1797
1821
  self.$search.val('');
1798
- self.$search.focus();
1822
+ self.$search.trigger('focus');
1799
1823
  });
1800
1824
 
1801
1825
  container.on('enable', function () {
1802
1826
  self.$search.prop('disabled', false);
1827
+
1828
+ self._transferTabIndex();
1803
1829
  });
1804
1830
 
1805
1831
  container.on('disable', function () {
1806
1832
  self.$search.prop('disabled', true);
1807
1833
  });
1808
1834
 
1835
+ container.on('focus', function (evt) {
1836
+ self.$search.trigger('focus');
1837
+ });
1838
+
1809
1839
  this.$selection.on('focusin', '.select2-search--inline', function (evt) {
1810
1840
  self.trigger('focus', evt);
1811
1841
  });
1812
1842
 
1813
1843
  this.$selection.on('focusout', '.select2-search--inline', function (evt) {
1814
- self.trigger('blur', evt);
1844
+ self._handleBlur(evt);
1815
1845
  });
1816
1846
 
1817
1847
  this.$selection.on('keydown', '.select2-search--inline', function (evt) {
@@ -1840,15 +1870,61 @@ S2.define('select2/selection/search',[
1840
1870
  // Workaround for browsers which do not support the `input` event
1841
1871
  // This will prevent double-triggering of events for browsers which support
1842
1872
  // both the `keyup` and `input` events.
1843
- this.$selection.on('input', '.select2-search--inline', function (evt) {
1844
- // Unbind the duplicated `keyup` event
1845
- self.$selection.off('keyup.search');
1846
- });
1873
+ this.$selection.on(
1874
+ 'input.searchcheck',
1875
+ '.select2-search--inline',
1876
+ function (evt) {
1877
+ // Try to detect the IE version should the `documentMode` property that
1878
+ // is stored on the document. This is only implemented in IE and is
1879
+ // slightly cleaner than doing a user agent check.
1880
+ // This property is not available in Edge, but Edge also doesn't have
1881
+ // this bug.
1882
+ var msie = document.documentMode;
1883
+
1884
+ // IE will trigger the `input` event when a placeholder is used on a
1885
+ // search box. To get around this issue, we are forced to ignore all
1886
+ // `input` events in IE and keep using `keyup`.
1887
+ if (msie && msie <= 11) {
1888
+ self.$selection.off('input.search input.searchcheck');
1889
+ return;
1890
+ }
1847
1891
 
1848
- this.$selection.on('keyup.search input', '.select2-search--inline',
1849
- function (evt) {
1850
- self.handleSearch(evt);
1851
- });
1892
+ // Unbind the duplicated `keyup` event
1893
+ self.$selection.off('keyup.search');
1894
+ }
1895
+ );
1896
+
1897
+ this.$selection.on(
1898
+ 'keyup.search input.search',
1899
+ '.select2-search--inline',
1900
+ function (evt) {
1901
+ var key = evt.which;
1902
+
1903
+ // We can freely ignore events from modifier keys
1904
+ if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
1905
+ return;
1906
+ }
1907
+
1908
+ // Tabbing will be handled during the `keydown` phase
1909
+ if (key == KEYS.TAB) {
1910
+ return;
1911
+ }
1912
+
1913
+ self.handleSearch(evt);
1914
+ }
1915
+ );
1916
+ };
1917
+
1918
+ /**
1919
+ * This method will transfer the tabindex attribute from the rendered
1920
+ * selection to the search box. This allows for the search box to be used as
1921
+ * the primary focus instead of the selection container.
1922
+ *
1923
+ * @private
1924
+ */
1925
+ Search.prototype._transferTabIndex = function (decorated) {
1926
+ this.$search.attr('tabindex', this.$selection.attr('tabindex'));
1927
+ this.$selection.attr('tabindex', '-1');
1852
1928
  };
1853
1929
 
1854
1930
  Search.prototype.createPlaceholder = function (decorated, placeholder) {
@@ -1856,6 +1932,8 @@ S2.define('select2/selection/search',[
1856
1932
  };
1857
1933
 
1858
1934
  Search.prototype.update = function (decorated, data) {
1935
+ var searchHadFocus = this.$search[0] == document.activeElement;
1936
+
1859
1937
  this.$search.attr('placeholder', '');
1860
1938
 
1861
1939
  decorated.call(this, data);
@@ -1864,6 +1942,9 @@ S2.define('select2/selection/search',[
1864
1942
  .append(this.$searchContainer);
1865
1943
 
1866
1944
  this.resizeSearch();
1945
+ if (searchHadFocus) {
1946
+ this.$search.focus();
1947
+ }
1867
1948
  };
1868
1949
 
1869
1950
  Search.prototype.handleSearch = function () {
@@ -1885,7 +1966,7 @@ S2.define('select2/selection/search',[
1885
1966
  data: item
1886
1967
  });
1887
1968
 
1888
- this.trigger('open');
1969
+ this.trigger('open', {});
1889
1970
 
1890
1971
  this.$search.val(item.text + ' ');
1891
1972
  };
@@ -3223,7 +3304,7 @@ S2.define('select2/data/array',[
3223
3304
  var existingData = this.item($existingOption);
3224
3305
  var newData = $.extend(true, {}, existingData, item);
3225
3306
 
3226
- var $newOption = this.option(existingData);
3307
+ var $newOption = this.option(newData);
3227
3308
 
3228
3309
  $existingOption.replaceWith($newOption);
3229
3310
 
@@ -3259,7 +3340,7 @@ S2.define('select2/data/ajax',[
3259
3340
  this.processResults = this.ajaxOptions.processResults;
3260
3341
  }
3261
3342
 
3262
- ArrayAdapter.__super__.constructor.call(this, $element, options);
3343
+ AjaxAdapter.__super__.constructor.call(this, $element, options);
3263
3344
  }
3264
3345
 
3265
3346
  Utils.Extend(AjaxAdapter, ArrayAdapter);
@@ -3493,7 +3574,9 @@ S2.define('select2/data/tokenizer',[
3493
3574
  var self = this;
3494
3575
 
3495
3576
  function select (data) {
3496
- self.select(data);
3577
+ self.trigger('select', {
3578
+ data: data
3579
+ });
3497
3580
  }
3498
3581
 
3499
3582
  params.term = params.term || '';
@@ -3541,6 +3624,11 @@ S2.define('select2/data/tokenizer',[
3541
3624
 
3542
3625
  var data = createTag(partParams);
3543
3626
 
3627
+ if (data == null) {
3628
+ i++;
3629
+ continue;
3630
+ }
3631
+
3544
3632
  callback(data);
3545
3633
 
3546
3634
  // Reset the term to not include the tokenized portion
@@ -3963,6 +4051,12 @@ S2.define('select2/dropdown/attachBody',[
3963
4051
  });
3964
4052
  };
3965
4053
 
4054
+ AttachBody.prototype.destroy = function (decorated) {
4055
+ decorated.call(this);
4056
+
4057
+ this.$dropdownContainer.remove();
4058
+ };
4059
+
3966
4060
  AttachBody.prototype.position = function (decorated, $dropdown, $container) {
3967
4061
  // Clone all of the container classes
3968
4062
  $dropdown.attr('class', $container.attr('class'));
@@ -4096,8 +4190,6 @@ S2.define('select2/dropdown/attachBody',[
4096
4190
  };
4097
4191
 
4098
4192
  AttachBody.prototype._resizeDropdown = function () {
4099
- this.$dropdownContainer.width();
4100
-
4101
4193
  var css = {
4102
4194
  width: this.$container.outerWidth(false) + 'px'
4103
4195
  };
@@ -4217,7 +4309,7 @@ S2.define('select2/dropdown/closeOnSelect',[
4217
4309
  return;
4218
4310
  }
4219
4311
 
4220
- this.trigger('close');
4312
+ this.trigger('close', {});
4221
4313
  };
4222
4314
 
4223
4315
  return CloseOnSelect;
@@ -4868,8 +4960,8 @@ S2.define('select2/core',[
4868
4960
 
4869
4961
  // Hide the original select
4870
4962
  $element.addClass('select2-hidden-accessible');
4871
- $element.attr('aria-hidden', 'true');
4872
-
4963
+ $element.attr('aria-hidden', 'true');
4964
+
4873
4965
  // Synchronize any monitored attributes
4874
4966
  this._syncAttributes();
4875
4967
 
@@ -5004,12 +5096,16 @@ S2.define('select2/core',[
5004
5096
 
5005
5097
  Select2.prototype._registerSelectionEvents = function () {
5006
5098
  var self = this;
5007
- var nonRelayEvents = ['toggle'];
5099
+ var nonRelayEvents = ['toggle', 'focus'];
5008
5100
 
5009
5101
  this.selection.on('toggle', function () {
5010
5102
  self.toggleDropdown();
5011
5103
  });
5012
5104
 
5105
+ this.selection.on('focus', function (params) {
5106
+ self.focus(params);
5107
+ });
5108
+
5013
5109
  this.selection.on('*', function (name, params) {
5014
5110
  if ($.inArray(name, nonRelayEvents) !== -1) {
5015
5111
  return;
@@ -5054,17 +5150,13 @@ S2.define('select2/core',[
5054
5150
  self.$container.addClass('select2-container--disabled');
5055
5151
  });
5056
5152
 
5057
- this.on('focus', function () {
5058
- self.$container.addClass('select2-container--focus');
5059
- });
5060
-
5061
5153
  this.on('blur', function () {
5062
5154
  self.$container.removeClass('select2-container--focus');
5063
5155
  });
5064
5156
 
5065
5157
  this.on('query', function (params) {
5066
5158
  if (!self.isOpen()) {
5067
- self.trigger('open');
5159
+ self.trigger('open', {});
5068
5160
  }
5069
5161
 
5070
5162
  this.dataAdapter.query(params, function (data) {
@@ -5088,30 +5180,31 @@ S2.define('select2/core',[
5088
5180
  var key = evt.which;
5089
5181
 
5090
5182
  if (self.isOpen()) {
5091
- if (key === KEYS.ENTER) {
5092
- self.trigger('results:select');
5183
+ if (key === KEYS.ESC || key === KEYS.TAB ||
5184
+ (key === KEYS.UP && evt.altKey)) {
5185
+ self.close();
5186
+
5187
+ evt.preventDefault();
5188
+ } else if (key === KEYS.ENTER) {
5189
+ self.trigger('results:select', {});
5093
5190
 
5094
5191
  evt.preventDefault();
5095
5192
  } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
5096
- self.trigger('results:toggle');
5193
+ self.trigger('results:toggle', {});
5097
5194
 
5098
5195
  evt.preventDefault();
5099
5196
  } else if (key === KEYS.UP) {
5100
- self.trigger('results:previous');
5197
+ self.trigger('results:previous', {});
5101
5198
 
5102
5199
  evt.preventDefault();
5103
5200
  } else if (key === KEYS.DOWN) {
5104
- self.trigger('results:next');
5105
-
5106
- evt.preventDefault();
5107
- } else if (key === KEYS.ESC || key === KEYS.TAB) {
5108
- self.close();
5201
+ self.trigger('results:next', {});
5109
5202
 
5110
5203
  evt.preventDefault();
5111
5204
  }
5112
5205
  } else {
5113
5206
  if (key === KEYS.ENTER || key === KEYS.SPACE ||
5114
- ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) {
5207
+ (key === KEYS.DOWN && evt.altKey)) {
5115
5208
  self.open();
5116
5209
 
5117
5210
  evt.preventDefault();
@@ -5128,9 +5221,9 @@ S2.define('select2/core',[
5128
5221
  this.close();
5129
5222
  }
5130
5223
 
5131
- this.trigger('disable');
5224
+ this.trigger('disable', {});
5132
5225
  } else {
5133
- this.trigger('enable');
5226
+ this.trigger('enable', {});
5134
5227
  }
5135
5228
  };
5136
5229
 
@@ -5185,8 +5278,6 @@ S2.define('select2/core',[
5185
5278
  }
5186
5279
 
5187
5280
  this.trigger('query', {});
5188
-
5189
- this.trigger('open');
5190
5281
  };
5191
5282
 
5192
5283
  Select2.prototype.close = function () {
@@ -5194,13 +5285,27 @@ S2.define('select2/core',[
5194
5285
  return;
5195
5286
  }
5196
5287
 
5197
- this.trigger('close');
5288
+ this.trigger('close', {});
5198
5289
  };
5199
5290
 
5200
5291
  Select2.prototype.isOpen = function () {
5201
5292
  return this.$container.hasClass('select2-container--open');
5202
5293
  };
5203
5294
 
5295
+ Select2.prototype.hasFocus = function () {
5296
+ return this.$container.hasClass('select2-container--focus');
5297
+ };
5298
+
5299
+ Select2.prototype.focus = function (data) {
5300
+ // No need to re-trigger focus events if we are already focused
5301
+ if (this.hasFocus()) {
5302
+ return;
5303
+ }
5304
+
5305
+ this.$container.addClass('select2-container--focus');
5306
+ this.trigger('focus', {});
5307
+ };
5308
+
5204
5309
  Select2.prototype.enable = function (args) {
5205
5310
  if (this.options.get('debug') && window.console && console.warn) {
5206
5311
  console.warn(
@@ -5281,7 +5386,7 @@ S2.define('select2/core',[
5281
5386
  this.$element.attr('tabindex', this.$element.data('old-tabindex'));
5282
5387
 
5283
5388
  this.$element.removeClass('select2-hidden-accessible');
5284
- this.$element.attr('aria-hidden', 'false');
5389
+ this.$element.attr('aria-hidden', 'false');
5285
5390
  this.$element.removeData('select2');
5286
5391
 
5287
5392
  this.dataAdapter.destroy();
@@ -10,3 +10,12 @@
10
10
  right: 10px;
11
11
  margin-top: -1px;
12
12
  }
13
+
14
+ .select2-container--focus:not(.select2-container--open) {
15
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(102, 175, 233, 0.6);
16
+ outline: 0 none;
17
+ }
18
+
19
+ .select2-container--focus > .selection > .select2-selection {
20
+ border: 1px solid #9cd5fe !important;
21
+ }
@@ -40,7 +40,8 @@
40
40
  box-sizing: border-box;
41
41
  border: none;
42
42
  font-size: 100%;
43
- margin-top: 5px; }
43
+ margin-top: 5px;
44
+ padding: 0; }
44
45
  .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
45
46
  -webkit-appearance: none; }
46
47
 
@@ -113,14 +114,14 @@
113
114
  filter: alpha(opacity=0); }
114
115
 
115
116
  .select2-hidden-accessible {
116
- border: 0;
117
- clip: rect(0 0 0 0);
118
- height: 1px;
119
- margin: -1px;
120
- overflow: hidden;
121
- padding: 0;
122
- position: absolute;
123
- width: 1px; }
117
+ border: 0 !important;
118
+ clip: rect(0 0 0 0) !important;
119
+ height: 1px !important;
120
+ margin: -1px !important;
121
+ overflow: hidden !important;
122
+ padding: 0 !important;
123
+ position: absolute !important;
124
+ width: 1px !important; }
124
125
 
125
126
  .select2-container--default .select2-selection--single {
126
127
  background-color: #fff;
@@ -152,19 +153,24 @@
152
153
  position: absolute;
153
154
  top: 50%;
154
155
  width: 0; }
156
+
155
157
  .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
156
158
  float: left; }
159
+
157
160
  .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
158
161
  left: 1px;
159
162
  right: auto; }
163
+
160
164
  .select2-container--default.select2-container--disabled .select2-selection--single {
161
165
  background-color: #eee;
162
166
  cursor: default; }
163
167
  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
164
168
  display: none; }
169
+
165
170
  .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
166
171
  border-color: transparent transparent #888 transparent;
167
172
  border-width: 0 4px 5px 4px; }
173
+
168
174
  .select2-container--default .select2-selection--multiple {
169
175
  background-color: white;
170
176
  border: 1px solid #aaa;
@@ -203,43 +209,59 @@
203
209
  margin-right: 2px; }
204
210
  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
205
211
  color: #333; }
206
- .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder {
212
+
213
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
207
214
  float: right; }
215
+
208
216
  .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
209
217
  margin-left: 5px;
210
218
  margin-right: auto; }
219
+
211
220
  .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
212
221
  margin-left: 2px;
213
222
  margin-right: auto; }
223
+
214
224
  .select2-container--default.select2-container--focus .select2-selection--multiple {
215
225
  border: solid black 1px;
216
226
  outline: 0; }
227
+
217
228
  .select2-container--default.select2-container--disabled .select2-selection--multiple {
218
229
  background-color: #eee;
219
230
  cursor: default; }
231
+
220
232
  .select2-container--default.select2-container--disabled .select2-selection__choice__remove {
221
233
  display: none; }
234
+
222
235
  .select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
223
236
  border-top-left-radius: 0;
224
237
  border-top-right-radius: 0; }
238
+
225
239
  .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
226
240
  border-bottom-left-radius: 0;
227
241
  border-bottom-right-radius: 0; }
242
+
228
243
  .select2-container--default .select2-search--dropdown .select2-search__field {
229
244
  border: 1px solid #aaa; }
245
+
230
246
  .select2-container--default .select2-search--inline .select2-search__field {
231
247
  background: transparent;
232
248
  border: none;
233
- outline: 0; }
249
+ outline: 0;
250
+ box-shadow: none; }
251
+
234
252
  .select2-container--default .select2-results > .select2-results__options {
235
253
  max-height: 200px;
236
254
  overflow-y: auto; }
255
+
237
256
  .select2-container--default .select2-results__option[role=group] {
238
257
  padding: 0; }
258
+
239
259
  .select2-container--default .select2-results__option[aria-disabled=true] {
240
260
  color: #999; }
261
+
241
262
  .select2-container--default .select2-results__option[aria-selected=true] {
242
263
  background-color: #ddd; }
264
+
243
265
  .select2-container--default .select2-results__option .select2-results__option {
244
266
  padding-left: 1em; }
245
267
  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
@@ -259,24 +281,26 @@
259
281
  .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
260
282
  margin-left: -5em;
261
283
  padding-left: 6em; }
284
+
262
285
  .select2-container--default .select2-results__option--highlighted[aria-selected] {
263
286
  background-color: #5897fb;
264
287
  color: white; }
288
+
265
289
  .select2-container--default .select2-results__group {
266
290
  cursor: default;
267
291
  display: block;
268
292
  padding: 6px; }
269
293
 
270
294
  .select2-container--classic .select2-selection--single {
271
- background-color: #f6f6f6;
295
+ background-color: #f7f7f7;
272
296
  border: 1px solid #aaa;
273
297
  border-radius: 4px;
274
298
  outline: 0;
275
- background-image: -webkit-linear-gradient(top, #ffffff 50%, #eeeeee 100%);
276
- background-image: -o-linear-gradient(top, #ffffff 50%, #eeeeee 100%);
277
- background-image: linear-gradient(to bottom, #ffffff 50%, #eeeeee 100%);
299
+ background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
300
+ background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
301
+ background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
278
302
  background-repeat: repeat-x;
279
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); }
303
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
280
304
  .select2-container--classic .select2-selection--single:focus {
281
305
  border: 1px solid #5897fb; }
282
306
  .select2-container--classic .select2-selection--single .select2-selection__rendered {
@@ -304,7 +328,7 @@
304
328
  background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
305
329
  background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
306
330
  background-repeat: repeat-x;
307
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0); }
331
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
308
332
  .select2-container--classic .select2-selection--single .select2-selection__arrow b {
309
333
  border-color: #888 transparent transparent transparent;
310
334
  border-style: solid;
@@ -316,8 +340,10 @@
316
340
  position: absolute;
317
341
  top: 50%;
318
342
  width: 0; }
343
+
319
344
  .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
320
345
  float: left; }
346
+
321
347
  .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
322
348
  border: none;
323
349
  border-right: 1px solid #aaa;
@@ -326,6 +352,7 @@
326
352
  border-bottom-left-radius: 4px;
327
353
  left: 1px;
328
354
  right: auto; }
355
+
329
356
  .select2-container--classic.select2-container--open .select2-selection--single {
330
357
  border: 1px solid #5897fb; }
331
358
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
@@ -334,24 +361,27 @@
334
361
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
335
362
  border-color: transparent transparent #888 transparent;
336
363
  border-width: 0 4px 5px 4px; }
364
+
337
365
  .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
338
366
  border-top: none;
339
367
  border-top-left-radius: 0;
340
368
  border-top-right-radius: 0;
341
- background-image: -webkit-linear-gradient(top, #ffffff 0%, #eeeeee 50%);
342
- background-image: -o-linear-gradient(top, #ffffff 0%, #eeeeee 50%);
343
- background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 50%);
369
+ background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
370
+ background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
371
+ background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
344
372
  background-repeat: repeat-x;
345
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); }
373
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
374
+
346
375
  .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
347
376
  border-bottom: none;
348
377
  border-bottom-left-radius: 0;
349
378
  border-bottom-right-radius: 0;
350
- background-image: -webkit-linear-gradient(top, #eeeeee 50%, #ffffff 100%);
351
- background-image: -o-linear-gradient(top, #eeeeee 50%, #ffffff 100%);
352
- background-image: linear-gradient(to bottom, #eeeeee 50%, #ffffff 100%);
379
+ background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
380
+ background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
381
+ background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
353
382
  background-repeat: repeat-x;
354
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0); }
383
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
384
+
355
385
  .select2-container--classic .select2-selection--multiple {
356
386
  background-color: white;
357
387
  border: 1px solid #aaa;
@@ -383,49 +413,67 @@
383
413
  margin-right: 2px; }
384
414
  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
385
415
  color: #555; }
416
+
386
417
  .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
387
418
  float: right; }
419
+
388
420
  .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
389
421
  margin-left: 5px;
390
422
  margin-right: auto; }
423
+
391
424
  .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
392
425
  margin-left: 2px;
393
426
  margin-right: auto; }
427
+
394
428
  .select2-container--classic.select2-container--open .select2-selection--multiple {
395
429
  border: 1px solid #5897fb; }
430
+
396
431
  .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
397
432
  border-top: none;
398
433
  border-top-left-radius: 0;
399
434
  border-top-right-radius: 0; }
435
+
400
436
  .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
401
437
  border-bottom: none;
402
438
  border-bottom-left-radius: 0;
403
439
  border-bottom-right-radius: 0; }
440
+
404
441
  .select2-container--classic .select2-search--dropdown .select2-search__field {
405
442
  border: 1px solid #aaa;
406
443
  outline: 0; }
444
+
407
445
  .select2-container--classic .select2-search--inline .select2-search__field {
408
- outline: 0; }
446
+ outline: 0;
447
+ box-shadow: none; }
448
+
409
449
  .select2-container--classic .select2-dropdown {
410
450
  background-color: white;
411
451
  border: 1px solid transparent; }
452
+
412
453
  .select2-container--classic .select2-dropdown--above {
413
454
  border-bottom: none; }
455
+
414
456
  .select2-container--classic .select2-dropdown--below {
415
457
  border-top: none; }
458
+
416
459
  .select2-container--classic .select2-results > .select2-results__options {
417
460
  max-height: 200px;
418
461
  overflow-y: auto; }
462
+
419
463
  .select2-container--classic .select2-results__option[role=group] {
420
464
  padding: 0; }
465
+
421
466
  .select2-container--classic .select2-results__option[aria-disabled=true] {
422
467
  color: grey; }
468
+
423
469
  .select2-container--classic .select2-results__option--highlighted[aria-selected] {
424
470
  background-color: #3875d7;
425
471
  color: white; }
472
+
426
473
  .select2-container--classic .select2-results__group {
427
474
  cursor: default;
428
475
  display: block;
429
476
  padding: 6px; }
477
+
430
478
  .select2-container--classic.select2-container--open .select2-dropdown {
431
479
  border-color: #5897fb; }
@@ -1,3 +1,3 @@
1
1
  module EffectiveFormInputs
2
- VERSION = '0.7.0'.freeze
2
+ VERSION = '0.7.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_form_inputs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-20 00:00:00.000000000 Z
11
+ date: 2015-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails