Skip to content

Commit 0116a10

Browse files
committed
Released 0.7.5.
1 parent 0a35be7 commit 0116a10

17 files changed

+173
-117
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "selectize",
33
"keywords": ["select", "ui", "form", "input", "control", "autocomplete", "tagging", "tag"],
44
"description": "Selectize is a jQuery-based custom <select> UI control. Useful for tagging, contact lists, country selectors, etc.",
5-
"version": "0.7.4",
5+
"version": "0.7.5",
66
"license": "Apache License, Version 2.0",
77
"readmeFilename": "README.md",
88
"repository": {

dist/css/selectize.bootstrap2.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.bootstrap2.css (v0.7.4) - Bootstrap 2 Theme
2+
* selectize.bootstrap2.css (v0.7.5) - Bootstrap 2 Theme
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
7979
border-top: 0 none;
8080
}
8181

82-
.selectize-control.plugin-remove_button .item {
82+
.selectize-control.plugin-remove_button [data-value] {
8383
position: relative;
8484
padding-right: 24px !important;
8585
}
8686

87-
.selectize-control.plugin-remove_button .item .remove {
87+
.selectize-control.plugin-remove_button [data-value] .remove {
8888
position: absolute;
8989
top: 0;
9090
right: 0;
@@ -107,11 +107,11 @@
107107
box-sizing: border-box;
108108
}
109109

110-
.selectize-control.plugin-remove_button .item .remove:hover {
110+
.selectize-control.plugin-remove_button [data-value] .remove:hover {
111111
background: rgba(0, 0, 0, 0.05);
112112
}
113113

114-
.selectize-control.plugin-remove_button .item.active .remove {
114+
.selectize-control.plugin-remove_button [data-value].active .remove {
115115
border-left-color: #0077b3;
116116
}
117117

dist/css/selectize.bootstrap3.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.bootstrap3.css (v0.7.4) - Bootstrap 3 Theme
2+
* selectize.bootstrap3.css (v0.7.5) - Bootstrap 3 Theme
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
7979
border-top: 0 none;
8080
}
8181

82-
.selectize-control.plugin-remove_button .item {
82+
.selectize-control.plugin-remove_button [data-value] {
8383
position: relative;
8484
padding-right: 24px !important;
8585
}
8686

87-
.selectize-control.plugin-remove_button .item .remove {
87+
.selectize-control.plugin-remove_button [data-value] .remove {
8888
position: absolute;
8989
top: 0;
9090
right: 0;
@@ -107,11 +107,11 @@
107107
box-sizing: border-box;
108108
}
109109

110-
.selectize-control.plugin-remove_button .item .remove:hover {
110+
.selectize-control.plugin-remove_button [data-value] .remove:hover {
111111
background: rgba(0, 0, 0, 0.05);
112112
}
113113

114-
.selectize-control.plugin-remove_button .item.active .remove {
114+
.selectize-control.plugin-remove_button [data-value].active .remove {
115115
border-left-color: rgba(0, 0, 0, 0);
116116
}
117117

dist/css/selectize.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.css (v0.7.4)
2+
* selectize.css (v0.7.5)
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
7979
border-top: 0 none;
8080
}
8181

82-
.selectize-control.plugin-remove_button .item {
82+
.selectize-control.plugin-remove_button [data-value] {
8383
position: relative;
8484
padding-right: 24px !important;
8585
}
8686

87-
.selectize-control.plugin-remove_button .item .remove {
87+
.selectize-control.plugin-remove_button [data-value] .remove {
8888
position: absolute;
8989
top: 0;
9090
right: 0;
@@ -107,11 +107,11 @@
107107
box-sizing: border-box;
108108
}
109109

110-
.selectize-control.plugin-remove_button .item .remove:hover {
110+
.selectize-control.plugin-remove_button [data-value] .remove:hover {
111111
background: rgba(0, 0, 0, 0.05);
112112
}
113113

114-
.selectize-control.plugin-remove_button .item.active .remove {
114+
.selectize-control.plugin-remove_button [data-value].active .remove {
115115
border-left-color: #cacaca;
116116
}
117117

dist/css/selectize.default.css

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.default.css (v0.7.4) - Default Theme
2+
* selectize.default.css (v0.7.5) - Default Theme
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
7979
border-top: 0 none;
8080
}
8181

82-
.selectize-control.plugin-remove_button .item {
82+
.selectize-control.plugin-remove_button [data-value] {
8383
position: relative;
8484
padding-right: 24px !important;
8585
}
8686

87-
.selectize-control.plugin-remove_button .item .remove {
87+
.selectize-control.plugin-remove_button [data-value] .remove {
8888
position: absolute;
8989
top: 0;
9090
right: 0;
@@ -107,11 +107,11 @@
107107
box-sizing: border-box;
108108
}
109109

110-
.selectize-control.plugin-remove_button .item .remove:hover {
110+
.selectize-control.plugin-remove_button [data-value] .remove:hover {
111111
background: rgba(0, 0, 0, 0.05);
112112
}
113113

114-
.selectize-control.plugin-remove_button .item.active .remove {
114+
.selectize-control.plugin-remove_button [data-value].active .remove {
115115
border-left-color: #00578d;
116116
}
117117

@@ -403,12 +403,12 @@
403403
}
404404

405405
.selectize-dropdown .optgroup-header {
406+
padding-top: 7px;
406407
font-size: 0.85em;
407408
font-weight: bold;
408409
}
409410

410411
.selectize-dropdown .optgroup {
411-
padding-top: 4px;
412412
border-top: 1px solid #f0f0f0;
413413
}
414414

dist/css/selectize.legacy.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.legacy.css (v0.7.4) - Default Theme
2+
* selectize.legacy.css (v0.7.5) - Default Theme
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -79,12 +79,12 @@
7979
border-top: 0 none;
8080
}
8181

82-
.selectize-control.plugin-remove_button .item {
82+
.selectize-control.plugin-remove_button [data-value] {
8383
position: relative;
8484
padding-right: 24px !important;
8585
}
8686

87-
.selectize-control.plugin-remove_button .item .remove {
87+
.selectize-control.plugin-remove_button [data-value] .remove {
8888
position: absolute;
8989
top: 0;
9090
right: 0;
@@ -107,11 +107,11 @@
107107
box-sizing: border-box;
108108
}
109109

110-
.selectize-control.plugin-remove_button .item .remove:hover {
110+
.selectize-control.plugin-remove_button [data-value] .remove:hover {
111111
background: rgba(0, 0, 0, 0.05);
112112
}
113113

114-
.selectize-control.plugin-remove_button .item.active .remove {
114+
.selectize-control.plugin-remove_button [data-value].active .remove {
115115
border-left-color: #6f9839;
116116
}
117117

dist/js/selectize.js

Lines changed: 65 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* selectize.js (v0.7.4)
2+
* selectize.js (v0.7.5)
33
* Copyright (c) 2013 Brian Reavis & contributors
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -510,6 +510,7 @@
510510

511511
self.initializePlugins(self.settings.plugins);
512512
self.setupCallbacks();
513+
self.setupTemplates();
513514
self.setup();
514515
};
515516

@@ -559,8 +560,7 @@
559560
$dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);
560561

561562
$wrapper.css({
562-
width: self.$input[0].style.width,
563-
display: self.$input.css('display')
563+
width: self.$input[0].style.width
564564
});
565565

566566
if (self.plugins.names.length) {
@@ -680,6 +680,35 @@
680680
}
681681
},
682682

683+
/**
684+
* Sets up default rendering functions.
685+
*/
686+
setupTemplates: function() {
687+
var self = this;
688+
var field_label = self.settings.labelField;
689+
var field_optgroup = self.settings.optgroupLabelField;
690+
691+
var templates = {
692+
'optgroup': function(data) {
693+
return '<div class="optgroup">' + data.html + '</div>';
694+
},
695+
'optgroup_header': function(data, escape) {
696+
return '<div class="optgroup-header">' + escape(data[field_optgroup]) + '</div>';
697+
},
698+
'option': function(data, escape) {
699+
return '<div class="option">' + escape(data[field_label]) + '</div>';
700+
},
701+
'item': function(data, escape) {
702+
return '<div class="item">' + escape(data[field_label]) + '</div>';
703+
},
704+
'option_create': function(data, escape) {
705+
return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>';
706+
},
707+
};
708+
709+
self.settings.render = $.extend({}, templates, self.settings.render);
710+
},
711+
683712
/**
684713
* Maps fired events to callbacks provided
685714
* in the settings used when creating the control.
@@ -2091,29 +2120,7 @@
20912120
}
20922121

20932122
// render markup
2094-
if (self.settings.render && typeof self.settings.render[templateName] === 'function') {
2095-
html = self.settings.render[templateName].apply(this, [data, escape_html]);
2096-
} else {
2097-
label = data[self.settings.labelField];
2098-
switch (templateName) {
2099-
case 'optgroup':
2100-
html = '<div class="optgroup">' + data.html + "</div>";
2101-
break;
2102-
case 'optgroup_header':
2103-
label = data[self.settings.optgroupLabelField];
2104-
html = '<div class="optgroup-header">' + escape_html(label) + '</div>';
2105-
break;
2106-
case 'option':
2107-
html = '<div class="option">' + escape_html(label) + '</div>';
2108-
break;
2109-
case 'item':
2110-
html = '<div class="item">' + escape_html(label) + '</div>';
2111-
break;
2112-
case 'option_create':
2113-
html = '<div class="create">Add <strong>' + escape_html(data.input) + '</strong>&hellip;</div>';
2114-
break;
2115-
}
2116-
}
2123+
html = self.settings.render[templateName].apply(this, [data, escape_html]);
21172124

21182125
// add mandatory attributes
21192126
if (templateName === 'option' || templateName === 'option_create') {
@@ -2459,32 +2466,53 @@
24592466
});
24602467

24612468
Selectize.define('remove_button', function(options) {
2462-
var self = this;
2469+
if (this.settings.mode === 'single') return;
24632470

2464-
if (self.settings.mode === 'single') {
2465-
return;
2466-
}
2471+
options = $.extend({
2472+
label : '&times;',
2473+
title : 'Remove',
2474+
className : 'remove',
2475+
append : true,
2476+
}, options);
2477+
2478+
var self = this;
2479+
var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
24672480

2468-
// override the item rendering method to add a "x" to each
2469-
this.settings.render.item = function(data) {
2470-
var label = data[self.settings.labelField];
2471-
return '<div class="item">' + label + ' <a href="javascript:void(0)" class="remove" tabindex="-1" title="Remove">&times;</a></div>';
2481+
/**
2482+
* Appends an element as a child (with raw HTML).
2483+
*
2484+
* @param {string} html_container
2485+
* @param {string} html_element
2486+
* @return {string}
2487+
*/
2488+
var append = function(html_container, html_element) {
2489+
var pos = html_container.search(/(<\/[^>]+>\s*)$/);
2490+
return html_container.substring(0, pos) + html_element + html_container.substring(pos);
24722491
};
24732492

2474-
// override the setup method to add an extra "click" handler
2475-
// that listens for mousedown events on the "x"
24762493
this.setup = (function() {
24772494
var original = self.setup;
24782495
return function() {
2496+
// override the item rendering method to add the button to each
2497+
if (options.append) {
2498+
var render_item = self.settings.render.item;
2499+
self.settings.render.item = function(data) {
2500+
return append(render_item.apply(this, arguments), options.html);
2501+
};
2502+
}
2503+
24792504
original.apply(this, arguments);
2480-
this.$control.on('click', '.remove', function(e) {
2505+
2506+
// add event listener
2507+
this.$control.on('click', '.' + options.className, function(e) {
24812508
e.preventDefault();
24822509
var $item = $(e.target).parent();
24832510
self.setActiveItem($item);
24842511
if (self.deleteSelection()) {
24852512
self.setCaret(self.items.length);
24862513
}
24872514
});
2515+
24882516
};
24892517
})();
24902518

dist/js/selectize.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)