diff --git a/css/fieldmanager-options.css b/css/fieldmanager-options.css index aed6a780f0..e72f8533f6 100644 --- a/css/fieldmanager-options.css +++ b/css/fieldmanager-options.css @@ -1,3 +1,3 @@ -.chzn-container-multi .chzn-choices .search-field input { +.chosen-container-multi .chosen-choices .search-field input { height: 21px !important; } \ No newline at end of file diff --git a/css/fieldmanager.css b/css/fieldmanager.css index aaa1353630..c9b370984e 100644 --- a/css/fieldmanager.css +++ b/css/fieldmanager.css @@ -278,9 +278,13 @@ div.fm-group-label-wrapper .fmjs-remove { color: #333; } -.chzn-container-multi .chzn-choices .search-field input { +/* Chosen.js overrides */ +.chosen-container-multi .chosen-choices .search-field input { height: 21px !important; } +.chosen-search input { + min-width: 100%; + } /* Grid editor CSS */ .grid-toggle-wrapper { diff --git a/js/chosen/chosen-sprite.png b/js/chosen/chosen-sprite.png index 113dc9885a..c57da70b4b 100644 Binary files a/js/chosen/chosen-sprite.png and b/js/chosen/chosen-sprite.png differ diff --git a/js/chosen/chosen-sprite@2x.png b/js/chosen/chosen-sprite@2x.png new file mode 100644 index 0000000000..6b50545202 Binary files /dev/null and b/js/chosen/chosen-sprite@2x.png differ diff --git a/js/chosen/chosen.css b/js/chosen/chosen.css index 7895721de3..d4219b4916 100644 --- a/js/chosen/chosen.css +++ b/js/chosen/chosen.css @@ -1,397 +1,490 @@ +/*! +Chosen, a Select Box Enhancer for jQuery and Prototype +by Patrick Filler for Harvest, http://getharvest.com + +Version 1.8.2 +Full source at https://github.com/harvesthq/chosen +Copyright (c) 2011-2017 Harvest http://getharvest.com + +MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md +This file is generated by `grunt build`, do not edit it by hand. +*/ + /* @group Base */ -.chzn-container { - font-size: 13px; +.chosen-container { position: relative; display: inline-block; - zoom: 1; - *display: inline; + vertical-align: middle; + font-size: 13px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.chzn-container .chzn-drop { - background: #fff; - border: 1px solid #aaa; - border-top: 0; + +.chosen-container * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.chosen-container .chosen-drop { position: absolute; - top: 29px; - left: 0; - -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15); - -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15); - box-shadow : 0 4px 5px rgba(0,0,0,.15); + top: 100%; z-index: 1010; + width: 100%; + border: 1px solid #aaa; + border-top: 0; + background: #fff; + -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); + clip: rect(0, 0, 0, 0); } -/* @end */ -/* @group Single Chosen */ -.chzn-container-single .chzn-single { - background-color: #ffffff; - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 ); - background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4)); - background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); - background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); - background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); - background-image: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); - -webkit-border-radius: 5px; - -moz-border-radius : 5px; - border-radius : 5px; - -moz-background-clip : padding; - -webkit-background-clip: padding-box; - background-clip : padding-box; - border: 1px solid #aaaaaa; - -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); - -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); - box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); - display: block; +.chosen-container.chosen-with-drop .chosen-drop { + clip: auto; +} + +.chosen-container a { + cursor: pointer; +} + +.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name { + margin-right: 4px; overflow: hidden; white-space: nowrap; + text-overflow: ellipsis; + font-weight: normal; + color: #999999; +} + +.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after { + content: ":"; + padding-left: 2px; + vertical-align: top; +} + +/* @end */ +/* @group Single Chosen */ +.chosen-container-single .chosen-single { position: relative; - height: 23px; - line-height: 24px; + display: block; + overflow: hidden; padding: 0 0 0 8px; - color: #444444; + height: 25px; + border: 1px solid #aaa; + border-radius: 5px; + background-color: #fff; + background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #fff), color-stop(50%, #f6f6f6), color-stop(52%, #eee), to(#f4f4f4)); + background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%); + background-clip: padding-box; + -webkit-box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1); + color: #444; text-decoration: none; + white-space: nowrap; + line-height: 24px; } -.chzn-container-single .chzn-default { + +.chosen-container-single .chosen-default { color: #999; } -.chzn-container-single .chzn-single span { - margin-right: 26px; + +.chosen-container-single .chosen-single span { display: block; overflow: hidden; - white-space: nowrap; - -o-text-overflow: ellipsis; - -ms-text-overflow: ellipsis; + margin-right: 26px; text-overflow: ellipsis; + white-space: nowrap; } -.chzn-container-single .chzn-single abbr { - display: block; + +.chosen-container-single .chosen-single-with-deselect span { + margin-right: 38px; +} + +.chosen-container-single .chosen-single abbr { position: absolute; - right: 26px; top: 6px; + right: 26px; + display: block; width: 12px; - height: 13px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; font-size: 1px; - background: url('chosen-sprite.png') right top no-repeat; } -.chzn-container-single .chzn-single abbr:hover { - background-position: right -11px; + +.chosen-container-single .chosen-single abbr:hover { + background-position: -42px -10px; } -.chzn-container-single.chzn-disabled .chzn-single abbr:hover { - background-position: right top; + +.chosen-container-single.chosen-disabled .chosen-single abbr:hover { + background-position: -42px -10px; } -.chzn-container-single .chzn-single div { + +.chosen-container-single .chosen-single div { position: absolute; - right: 0; top: 0; + right: 0; display: block; - height: 100%; width: 18px; + height: 100%; } -.chzn-container-single .chzn-single div b { - background: url('chosen-sprite.png') no-repeat 0 0; + +.chosen-container-single .chosen-single div b { display: block; width: 100%; height: 100%; + background: url("chosen-sprite.png") no-repeat 0px 2px; } -.chzn-container-single .chzn-search { - padding: 3px 4px; + +.chosen-container-single .chosen-search { position: relative; + z-index: 1010; margin: 0; + padding: 3px 4px; white-space: nowrap; - z-index: 1010; } -.chzn-container-single .chzn-search input { - background: #fff url('chosen-sprite.png') no-repeat 100% -22px; - background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); - background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(#eeeeee 1%, #ffffff 15%); + +.chosen-container-single .chosen-search input[type="text"] { margin: 1px 0; padding: 4px 20px 4px 5px; + width: 100%; + height: auto; outline: 0; border: 1px solid #aaa; - font-family: sans-serif; + background: url("chosen-sprite.png") no-repeat 100% -20px; font-size: 1em; + font-family: sans-serif; + line-height: normal; + border-radius: 0; } -.chzn-container-single .chzn-drop { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius : 0 0 4px 4px; - border-radius : 0 0 4px 4px; - -moz-background-clip : padding; - -webkit-background-clip: padding-box; - background-clip : padding-box; + +.chosen-container-single .chosen-drop { + margin-top: -1px; + border-radius: 0 0 4px 4px; + background-clip: padding-box; } -/* @end */ -.chzn-container-single-nosearch .chzn-search input { +.chosen-container-single.chosen-container-single-nosearch .chosen-search { position: absolute; - left: -9000px; + clip: rect(0, 0, 0, 0); } +/* @end */ +/* @group Results */ +.chosen-container .chosen-results { + color: #444; + position: relative; + overflow-x: hidden; + overflow-y: auto; + margin: 0 4px 4px 0; + padding: 0 0 0 4px; + max-height: 240px; + -webkit-overflow-scrolling: touch; +} + +.chosen-container .chosen-results li { + display: none; + margin: 0; + padding: 5px 6px; + list-style: none; + line-height: 15px; + word-wrap: break-word; + -webkit-touch-callout: none; +} + +.chosen-container .chosen-results li.active-result { + display: list-item; + cursor: pointer; +} + +.chosen-container .chosen-results li.disabled-result { + display: list-item; + color: #ccc; + cursor: default; +} + +.chosen-container .chosen-results li.highlighted { + background-color: #3875d7; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc)); + background-image: linear-gradient(#3875d7 20%, #2a62bc 90%); + color: #fff; +} + +.chosen-container .chosen-results li.no-results { + color: #777; + display: list-item; + background: #f4f4f4; +} + +.chosen-container .chosen-results li.group-result { + display: list-item; + font-weight: bold; + cursor: default; +} + +.chosen-container .chosen-results li.group-option { + padding-left: 15px; +} + +.chosen-container .chosen-results li em { + font-style: normal; + text-decoration: underline; +} + +/* @end */ /* @group Multi Chosen */ -.chzn-container-multi .chzn-choices { - background-color: #fff; - background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); - background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background-image: linear-gradient(#eeeeee 1%, #ffffff 15%); - border: 1px solid #aaa; +.chosen-container-multi .chosen-choices { + position: relative; + overflow: hidden; margin: 0; - padding: 0; + padding: 0 5px; + width: 100%; + height: auto; + border: 1px solid #aaa; + background-color: #fff; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff)); + background-image: linear-gradient(#eee 1%, #fff 15%); cursor: text; - overflow: hidden; - height: auto !important; - height: 1%; - position: relative; } -.chzn-container-multi .chzn-choices li { + +.chosen-container-multi .chosen-choices li { float: left; list-style: none; } -.chzn-container-multi .chzn-choices .search-field { - white-space: nowrap; + +.chosen-container-multi .chosen-choices li.search-field { margin: 0; padding: 0; + white-space: nowrap; } -.chzn-container-multi .chzn-choices .search-field input { - color: #666; - background: transparent !important; - border: 0 !important; - font-family: sans-serif; - font-size: 100%; - height: 15px; - padding: 5px; + +.chosen-container-multi .chosen-choices li.search-field input[type="text"] { margin: 1px 0; + padding: 0; + height: 25px; outline: 0; + border: 0 !important; + background: transparent !important; -webkit-box-shadow: none; - -moz-box-shadow : none; - box-shadow : none; -} -.chzn-container-multi .chzn-choices .search-field .default { + box-shadow: none; color: #999; + font-size: 100%; + font-family: sans-serif; + line-height: normal; + border-radius: 0; + width: 25px; } -.chzn-container-multi .chzn-choices .search-choice { - -webkit-border-radius: 3px; - -moz-border-radius : 3px; - border-radius : 3px; - -moz-background-clip : padding; - -webkit-background-clip: padding-box; - background-clip : padding-box; - background-color: #e4e4e4; - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 ); - background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); - background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); - -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); - box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + +.chosen-container-multi .chosen-choices li.search-choice { + position: relative; + margin: 3px 5px 3px 0; + padding: 3px 20px 3px 5px; + border: 1px solid #aaa; + max-width: 100%; + border-radius: 3px; + background-color: #eeeeee; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + background-size: 100% 19px; + background-repeat: repeat-x; + background-clip: padding-box; + -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); color: #333; - border: 1px solid #aaaaaa; line-height: 13px; - padding: 3px 20px 3px 5px; - margin: 3px 0 3px 5px; - position: relative; cursor: default; } -.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled { - background-color: #e4e4e4; - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 ); - background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); - background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); - color: #666; - border: 1px solid #cccccc; - padding-right: 5px; -} -.chzn-container-multi .chzn-choices .search-choice-focus { - background: #d4d4d4; + +.chosen-container-multi .chosen-choices li.search-choice span { + word-wrap: break-word; } -.chzn-container-multi .chzn-choices .search-choice .search-choice-close { - display: block; + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { position: absolute; - right: 3px; top: 4px; + right: 3px; + display: block; width: 12px; - height: 13px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; font-size: 1px; - background: url('chosen-sprite.png') right top no-repeat; } -.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover { - background-position: right -11px; + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { + background-position: -42px -10px; } -.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close { - background-position: right -11px; + +.chosen-container-multi .chosen-choices li.search-choice-disabled { + padding-right: 5px; + border: 1px solid #ccc; + background-color: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + color: #666; } -/* @end */ -/* @group Results */ -.chzn-container .chzn-results { - margin: 0 4px 4px 0; - max-height: 240px; - padding: 0 0 0 4px; - position: relative; - overflow-x: hidden; - overflow-y: auto; - -webkit-overflow-scrolling: touch; +.chosen-container-multi .chosen-choices li.search-choice-focus { + background: #d4d4d4; } -.chzn-container-multi .chzn-results { - margin: -1px 0 0; - padding: 0; + +.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { + background-position: -42px -10px; } -.chzn-container .chzn-results li { - display: none; - line-height: 15px; - padding: 5px 6px; + +.chosen-container-multi .chosen-results { margin: 0; - list-style: none; -} -.chzn-container .chzn-results .active-result { - cursor: pointer; - display: list-item; -} -.chzn-container .chzn-results .highlighted { - background-color: #3875d7; - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 ); - background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc)); - background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%); - background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%); - background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%); - background-image: linear-gradient(#3875d7 20%, #2a62bc 90%); - color: #fff; -} -.chzn-container .chzn-results li em { - background: #feffde; - font-style: normal; -} -.chzn-container .chzn-results .highlighted em { - background: transparent; + padding: 0; } -.chzn-container .chzn-results .no-results { - background: #f4f4f4; + +.chosen-container-multi .chosen-drop .result-selected { display: list-item; -} -.chzn-container .chzn-results .group-result { + color: #ccc; cursor: default; - color: #999; - font-weight: bold; } -.chzn-container .chzn-results .group-option { - padding-left: 15px; -} -.chzn-container-multi .chzn-drop .result-selected { - display: none; -} -.chzn-container .chzn-results-scroll { - background: white; - margin: 0 4px; - position: absolute; - text-align: center; - width: 321px; /* This should by dynamic with js */ - z-index: 1; -} -.chzn-container .chzn-results-scroll span { - display: inline-block; - height: 17px; - text-indent: -5000px; - width: 9px; -} -.chzn-container .chzn-results-scroll-down { - bottom: 0; -} -.chzn-container .chzn-results-scroll-down span { - background: url('chosen-sprite.png') no-repeat -4px -3px; -} -.chzn-container .chzn-results-scroll-up span { - background: url('chosen-sprite.png') no-repeat -22px -3px; -} -/* @end */ +/* @end */ /* @group Active */ -.chzn-container-active .chzn-single { - -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); - -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); - box-shadow : 0 0 5px rgba(0,0,0,.3); +.chosen-container-active .chosen-single { border: 1px solid #5897fb; + -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); } -.chzn-container-active .chzn-single-with-drop { + +.chosen-container-active.chosen-with-drop .chosen-single { border: 1px solid #aaa; - -webkit-box-shadow: 0 1px 0 #fff inset; - -moz-box-shadow : 0 1px 0 #fff inset; - box-shadow : 0 1px 0 #fff inset; - background-color: #eee; - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 ); - background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff)); - background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%); - background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%); - background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%); - background-image: linear-gradient(#eeeeee 20%, #ffffff 80%); - -webkit-border-bottom-left-radius : 0; - -webkit-border-bottom-right-radius: 0; - -moz-border-radius-bottomleft : 0; - -moz-border-radius-bottomright: 0; - border-bottom-left-radius : 0; border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eee), color-stop(80%, #fff)); + background-image: linear-gradient(#eee 20%, #fff 80%); + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; } -.chzn-container-active .chzn-single-with-drop div { - background: transparent; + +.chosen-container-active.chosen-with-drop .chosen-single div { border-left: none; + background: transparent; } -.chzn-container-active .chzn-single-with-drop div b { - background-position: -18px 1px; + +.chosen-container-active.chosen-with-drop .chosen-single div b { + background-position: -18px 2px; } -.chzn-container-active .chzn-choices { - -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); - -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); - box-shadow : 0 0 5px rgba(0,0,0,.3); + +.chosen-container-active .chosen-choices { border: 1px solid #5897fb; + -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); } -.chzn-container-active .chzn-choices .search-field input { - color: #111 !important; + +.chosen-container-active .chosen-choices li.search-field input[type="text"] { + color: #222 !important; } -/* @end */ +/* @end */ /* @group Disabled Support */ -.chzn-disabled { +.chosen-disabled { + opacity: 0.5 !important; cursor: default; - opacity:0.5 !important; } -.chzn-disabled .chzn-single { + +.chosen-disabled .chosen-single { cursor: default; } -.chzn-disabled .chzn-choices .search-choice .search-choice-close { + +.chosen-disabled .chosen-choices .search-choice .search-choice-close { cursor: default; } +/* @end */ /* @group Right to Left */ -.chzn-rtl { text-align: right; } -.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; } -.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; } +.chosen-rtl { + text-align: right; +} + +.chosen-rtl .chosen-single { + overflow: visible; + padding: 0 8px 0 0; +} -.chzn-rtl .chzn-single div { left: 3px; right: auto; } -.chzn-rtl .chzn-single abbr { +.chosen-rtl .chosen-single span { + margin-right: 0; + margin-left: 26px; + direction: rtl; +} + +.chosen-rtl .chosen-single-with-deselect span { + margin-left: 38px; +} + +.chosen-rtl .chosen-single div { + right: auto; + left: 3px; +} + +.chosen-rtl .chosen-single abbr { + right: auto; left: 26px; +} + +.chosen-rtl .chosen-choices li { + float: right; +} + +.chosen-rtl .chosen-choices li.search-field input[type="text"] { + direction: rtl; +} + +.chosen-rtl .chosen-choices li.search-choice { + margin: 3px 5px 3px 0; + padding: 3px 5px 3px 19px; +} + +.chosen-rtl .chosen-choices li.search-choice .search-choice-close { right: auto; + left: 4px; +} + +.chosen-rtl.chosen-container-single .chosen-results { + margin: 0 0 4px 4px; + padding: 0 4px 0 0; +} + +.chosen-rtl .chosen-results li.group-option { + padding-right: 15px; + padding-left: 0; +} + +.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { + border-right: none; } -.chzn-rtl .chzn-choices .search-field input { direction: rtl; } -.chzn-rtl .chzn-choices li { float: right; } -.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; } -.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;} -.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; } -.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; } -.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; } -.chzn-rtl .chzn-search input { - background: #fff url('chosen-sprite.png') no-repeat -38px -22px; - background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); - background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); - background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(#eeeeee 1%, #ffffff 15%); + +.chosen-rtl .chosen-search input[type="text"] { padding: 4px 5px 4px 20px; + background: url("chosen-sprite.png") no-repeat -30px -20px; direction: rtl; } + +.chosen-rtl.chosen-container-single .chosen-single div b { + background-position: 6px 2px; +} + +.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { + background-position: -12px 2px; +} + +/* @end */ +/* @group Retina compatibility */ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { + .chosen-rtl .chosen-search input[type="text"], + .chosen-container-single .chosen-single abbr, + .chosen-container-single .chosen-single div b, + .chosen-container-single .chosen-search input[type="text"], + .chosen-container-multi .chosen-choices .search-choice .search-choice-close, + .chosen-container .chosen-results-scroll-down span, + .chosen-container .chosen-results-scroll-up span { + background-image: url("chosen-sprite@2x.png") !important; + background-size: 52px 37px !important; + background-repeat: no-repeat !important; + } +} + /* @end */ diff --git a/js/chosen/chosen.jquery.js b/js/chosen/chosen.jquery.js index 3e559e2c54..b8e20eb732 100644 --- a/js/chosen/chosen.jquery.js +++ b/js/chosen/chosen.jquery.js @@ -1,17 +1,22 @@ -// Chosen, a Select Box Enhancer for jQuery and Protoype -// by Patrick Filler for Harvest, http://getharvest.com -// -// Version 0.9.8 -// Full source at https://github.com/harvesthq/chosen -// Copyright (c) 2011 Harvest http://getharvest.com - -// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -// This file is generated by `cake build`, do not edit it by hand. +/*! +Chosen, a Select Box Enhancer for jQuery and Prototype +by Patrick Filler for Harvest, http://getharvest.com + +Version 1.8.2 +Full source at https://github.com/harvesthq/chosen +Copyright (c) 2011-2017 Harvest http://getharvest.com + +MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md +This file is generated by `grunt build`, do not edit it by hand. +*/ + (function() { - var SelectParser; + var $, AbstractChosen, Chosen, SelectParser, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; SelectParser = (function() { - function SelectParser() { this.options_index = 0; this.parsed = []; @@ -26,37 +31,43 @@ }; SelectParser.prototype.add_group = function(group) { - var group_position, option, _i, _len, _ref, _results; + var group_position, i, len, option, ref, results1; group_position = this.parsed.length; this.parsed.push({ array_index: group_position, group: true, label: group.label, + title: group.title ? group.title : void 0, children: 0, - disabled: group.disabled + disabled: group.disabled, + classes: group.className }); - _ref = group.childNodes; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - _results.push(this.add_option(option, group_position, group.disabled)); + ref = group.childNodes; + results1 = []; + for (i = 0, len = ref.length; i < len; i++) { + option = ref[i]; + results1.push(this.add_option(option, group_position, group.disabled)); } - return _results; + return results1; }; SelectParser.prototype.add_option = function(option, group_position, group_disabled) { if (option.nodeName.toUpperCase() === "OPTION") { if (option.text !== "") { - if (group_position != null) this.parsed[group_position].children += 1; + if (group_position != null) { + this.parsed[group_position].children += 1; + } this.parsed.push({ array_index: this.parsed.length, options_index: this.options_index, value: option.value, text: option.text, html: option.innerHTML, + title: option.title ? option.title : void 0, selected: option.selected, disabled: group_disabled === true ? group_disabled : option.disabled, group_array_index: group_position, + group_label: group_position != null ? this.parsed[group_position].label : null, classes: option.className, style: option.style.cssText }); @@ -76,75 +87,84 @@ })(); SelectParser.select_to_array = function(select) { - var child, parser, _i, _len, _ref; + var child, i, len, parser, ref; parser = new SelectParser(); - _ref = select.childNodes; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - child = _ref[_i]; + ref = select.childNodes; + for (i = 0, len = ref.length; i < len; i++) { + child = ref[i]; parser.add_node(child); } return parser.parsed; }; - this.SelectParser = SelectParser; - -}).call(this); - -/* -Chosen source: generate output using 'cake build' -Copyright (c) 2011 by Harvest -*/ - -(function() { - var AbstractChosen, root; - - root = this; - AbstractChosen = (function() { - - function AbstractChosen(form_field, options) { + function AbstractChosen(form_field, options1) { this.form_field = form_field; - this.options = options != null ? options : {}; - this.set_default_values(); + this.options = options1 != null ? options1 : {}; + this.label_click_handler = bind(this.label_click_handler, this); + if (!AbstractChosen.browser_is_supported()) { + return; + } this.is_multiple = this.form_field.multiple; this.set_default_text(); + this.set_default_values(); this.setup(); this.set_up_html(); this.register_observers(); - this.finish_setup(); + this.on_ready(); } AbstractChosen.prototype.set_default_values = function() { - var _this = this; - this.click_test_action = function(evt) { - return _this.test_active_click(evt); - }; - this.activate_action = function(evt) { - return _this.activate_field(evt); - }; + this.click_test_action = (function(_this) { + return function(evt) { + return _this.test_active_click(evt); + }; + })(this); + this.activate_action = (function(_this) { + return function(evt) { + return _this.activate_field(evt); + }; + })(this); this.active_field = false; this.mouse_on_container = false; this.results_showing = false; this.result_highlighted = null; - this.result_single_selected = null; + this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className); this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false; this.disable_search_threshold = this.options.disable_search_threshold || 0; this.disable_search = this.options.disable_search || false; + this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true; + this.group_search = this.options.group_search != null ? this.options.group_search : true; this.search_contains = this.options.search_contains || false; - this.choices = 0; - this.single_backstroke_delete = this.options.single_backstroke_delete || false; - return this.max_selected_options = this.options.max_selected_options || Infinity; + this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true; + this.max_selected_options = this.options.max_selected_options || Infinity; + this.inherit_select_classes = this.options.inherit_select_classes || false; + this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true; + this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true; + this.include_group_label_in_selected = this.options.include_group_label_in_selected || false; + this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY; + this.case_sensitive_search = this.options.case_sensitive_search || false; + return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true; }; AbstractChosen.prototype.set_default_text = function() { if (this.form_field.getAttribute("data-placeholder")) { this.default_text = this.form_field.getAttribute("data-placeholder"); } else if (this.is_multiple) { - this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || "Select Some Options"; + this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text; + } else { + this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text; + } + this.default_text = this.escape_html(this.default_text); + return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text; + }; + + AbstractChosen.prototype.choice_label = function(item) { + if (this.include_group_label_in_selected && (item.group_label != null)) { + return "" + item.group_label + "" + item.html; } else { - this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || "Select an Option"; + return item.html; } - return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || "No results match"; }; AbstractChosen.prototype.mouse_enter = function() { @@ -156,48 +176,153 @@ Copyright (c) 2011 by Harvest }; AbstractChosen.prototype.input_focus = function(evt) { - var _this = this; if (this.is_multiple) { if (!this.active_field) { - return setTimeout((function() { - return _this.container_mousedown(); - }), 50); + return setTimeout(((function(_this) { + return function() { + return _this.container_mousedown(); + }; + })(this)), 50); } } else { - if (!this.active_field) return this.activate_field(); + if (!this.active_field) { + return this.activate_field(); + } } }; AbstractChosen.prototype.input_blur = function(evt) { - var _this = this; if (!this.mouse_on_container) { this.active_field = false; - return setTimeout((function() { - return _this.blur_test(); - }), 100); + return setTimeout(((function(_this) { + return function() { + return _this.blur_test(); + }; + })(this)), 100); } }; - AbstractChosen.prototype.result_add_option = function(option) { - var classes, style; - if (!option.disabled) { - option.dom_id = this.container_id + "_o_" + option.array_index; - classes = option.selected && this.is_multiple ? [] : ["active-result"]; - if (option.selected) classes.push("result-selected"); - if (option.group_array_index != null) classes.push("group-option"); - if (option.classes !== "") classes.push(option.classes); - style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : ""; - return '
  • ' + option.html + '
  • '; + AbstractChosen.prototype.label_click_handler = function(evt) { + if (this.is_multiple) { + return this.container_mousedown(evt); } else { - return ""; + return this.activate_field(); + } + }; + + AbstractChosen.prototype.results_option_build = function(options) { + var content, data, data_content, i, len, ref, shown_results; + content = ''; + shown_results = 0; + ref = this.results_data; + for (i = 0, len = ref.length; i < len; i++) { + data = ref[i]; + data_content = ''; + if (data.group) { + data_content = this.result_add_group(data); + } else { + data_content = this.result_add_option(data); + } + if (data_content !== '') { + shown_results++; + content += data_content; + } + if (options != null ? options.first : void 0) { + if (data.selected && this.is_multiple) { + this.choice_build(data); + } else if (data.selected && !this.is_multiple) { + this.single_set_selected_text(this.choice_label(data)); + } + } + if (shown_results >= this.max_shown_results) { + break; + } } + return content; + }; + + AbstractChosen.prototype.result_add_option = function(option) { + var classes, option_el; + if (!option.search_match) { + return ''; + } + if (!this.include_option_in_results(option)) { + return ''; + } + classes = []; + if (!option.disabled && !(option.selected && this.is_multiple)) { + classes.push("active-result"); + } + if (option.disabled && !(option.selected && this.is_multiple)) { + classes.push("disabled-result"); + } + if (option.selected) { + classes.push("result-selected"); + } + if (option.group_array_index != null) { + classes.push("group-option"); + } + if (option.classes !== "") { + classes.push(option.classes); + } + option_el = document.createElement("li"); + option_el.className = classes.join(" "); + option_el.style.cssText = option.style; + option_el.setAttribute("data-option-array-index", option.array_index); + option_el.innerHTML = option.highlighted_html || option.html; + if (option.title) { + option_el.title = option.title; + } + return this.outerHTML(option_el); + }; + + AbstractChosen.prototype.result_add_group = function(group) { + var classes, group_el; + if (!(group.search_match || group.group_match)) { + return ''; + } + if (!(group.active_options > 0)) { + return ''; + } + classes = []; + classes.push("group-result"); + if (group.classes) { + classes.push(group.classes); + } + group_el = document.createElement("li"); + group_el.className = classes.join(" "); + group_el.innerHTML = group.highlighted_html || this.escape_html(group.label); + if (group.title) { + group_el.title = group.title; + } + return this.outerHTML(group_el); }; AbstractChosen.prototype.results_update_field = function() { - if (!this.is_multiple) this.results_reset_cleanup(); + this.set_default_text(); + if (!this.is_multiple) { + this.results_reset_cleanup(); + } this.result_clear_highlight(); - this.result_single_selected = null; - return this.results_build(); + this.results_build(); + if (this.results_showing) { + return this.winnow_results(); + } + }; + + AbstractChosen.prototype.reset_single_select_options = function() { + var i, len, ref, result, results1; + ref = this.results_data; + results1 = []; + for (i = 0, len = ref.length; i < len; i++) { + result = ref[i]; + if (result.selected) { + results1.push(result.selected = false); + } else { + results1.push(void 0); + } + } + return results1; }; AbstractChosen.prototype.results_toggle = function() { @@ -216,247 +341,540 @@ Copyright (c) 2011 by Harvest } }; + AbstractChosen.prototype.winnow_results = function() { + var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text; + this.no_results_clear(); + results = 0; + query = this.get_search_text(); + escapedQuery = query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + regex = this.get_search_regex(escapedQuery); + ref = this.results_data; + for (i = 0, len = ref.length; i < len; i++) { + option = ref[i]; + option.search_match = false; + results_group = null; + search_match = null; + option.highlighted_html = ''; + if (this.include_option_in_results(option)) { + if (option.group) { + option.group_match = false; + option.active_options = 0; + } + if ((option.group_array_index != null) && this.results_data[option.group_array_index]) { + results_group = this.results_data[option.group_array_index]; + if (results_group.active_options === 0 && results_group.search_match) { + results += 1; + } + results_group.active_options += 1; + } + text = option.group ? option.label : option.text; + if (!(option.group && !this.group_search)) { + search_match = this.search_string_match(text, regex); + option.search_match = search_match != null; + if (option.search_match && !option.group) { + results += 1; + } + if (option.search_match) { + if (query.length) { + startpos = search_match.index; + prefix = text.slice(0, startpos); + fix = text.slice(startpos, startpos + query.length); + suffix = text.slice(startpos + query.length); + option.highlighted_html = (this.escape_html(prefix)) + "" + (this.escape_html(fix)) + "" + (this.escape_html(suffix)); + } + if (results_group != null) { + results_group.group_match = true; + } + } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) { + option.search_match = true; + } + } + } + } + this.result_clear_highlight(); + if (results < 1 && query.length) { + this.update_results_content(""); + return this.no_results(query); + } else { + this.update_results_content(this.results_option_build()); + return this.winnow_results_set_highlight(); + } + }; + + AbstractChosen.prototype.get_search_regex = function(escaped_search_string) { + var regex_flag, regex_string; + regex_string = this.search_contains ? escaped_search_string : "(^|\\s|\\b)" + escaped_search_string + "[^\\s]*"; + if (!(this.enable_split_word_search || this.search_contains)) { + regex_string = "^" + regex_string; + } + regex_flag = this.case_sensitive_search ? "" : "i"; + return new RegExp(regex_string, regex_flag); + }; + + AbstractChosen.prototype.search_string_match = function(search_string, regex) { + var match; + match = regex.exec(search_string); + if (!this.search_contains && (match != null ? match[1] : void 0)) { + match.index += 1; + } + return match; + }; + + AbstractChosen.prototype.choices_count = function() { + var i, len, option, ref; + if (this.selected_option_count != null) { + return this.selected_option_count; + } + this.selected_option_count = 0; + ref = this.form_field.options; + for (i = 0, len = ref.length; i < len; i++) { + option = ref[i]; + if (option.selected) { + this.selected_option_count += 1; + } + } + return this.selected_option_count; + }; + + AbstractChosen.prototype.choices_click = function(evt) { + evt.preventDefault(); + this.activate_field(); + if (!(this.results_showing || this.is_disabled)) { + return this.results_show(); + } + }; + + AbstractChosen.prototype.keydown_checker = function(evt) { + var ref, stroke; + stroke = (ref = evt.which) != null ? ref : evt.keyCode; + this.search_field_scale(); + if (stroke !== 8 && this.pending_backstroke) { + this.clear_backstroke(); + } + switch (stroke) { + case 8: + this.backstroke_length = this.get_search_field_value().length; + break; + case 9: + if (this.results_showing && !this.is_multiple) { + this.result_select(evt); + } + this.mouse_on_container = false; + break; + case 13: + if (this.results_showing) { + evt.preventDefault(); + } + break; + case 27: + if (this.results_showing) { + evt.preventDefault(); + } + break; + case 32: + if (this.disable_search) { + evt.preventDefault(); + } + break; + case 38: + evt.preventDefault(); + this.keyup_arrow(); + break; + case 40: + evt.preventDefault(); + this.keydown_arrow(); + break; + } + }; + AbstractChosen.prototype.keyup_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; + var ref, stroke; + stroke = (ref = evt.which) != null ? ref : evt.keyCode; this.search_field_scale(); switch (stroke) { case 8: - if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) { - return this.keydown_backstroke(); + if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) { + this.keydown_backstroke(); } else if (!this.pending_backstroke) { this.result_clear_highlight(); - return this.results_search(); + this.results_search(); } break; case 13: evt.preventDefault(); - if (this.results_showing) return this.result_select(evt); + if (this.results_showing) { + this.result_select(evt); + } break; case 27: - if (this.results_showing) this.results_hide(); - return true; + if (this.results_showing) { + this.results_hide(); + } + break; case 9: + case 16: + case 17: + case 18: case 38: case 40: - case 16: case 91: - case 17: break; default: - return this.results_search(); + this.results_search(); + break; } }; - AbstractChosen.prototype.generate_field_id = function() { - var new_id; - new_id = this.generate_random_id(); - this.form_field.id = new_id; - return new_id; + AbstractChosen.prototype.clipboard_event_checker = function(evt) { + if (this.is_disabled) { + return; + } + return setTimeout(((function(_this) { + return function() { + return _this.results_search(); + }; + })(this)), 50); }; - AbstractChosen.prototype.generate_random_char = function() { - var chars, newchar, rand; - chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - rand = Math.floor(Math.random() * chars.length); - return newchar = chars.substring(rand, rand + 1); + AbstractChosen.prototype.container_width = function() { + if (this.options.width != null) { + return this.options.width; + } else { + return this.form_field.offsetWidth + "px"; + } }; - return AbstractChosen; + AbstractChosen.prototype.include_option_in_results = function(option) { + if (this.is_multiple && (!this.display_selected_options && option.selected)) { + return false; + } + if (!this.display_disabled_options && option.disabled) { + return false; + } + if (option.empty) { + return false; + } + return true; + }; - })(); + AbstractChosen.prototype.search_results_touchstart = function(evt) { + this.touch_started = true; + return this.search_results_mouseover(evt); + }; - root.AbstractChosen = AbstractChosen; + AbstractChosen.prototype.search_results_touchmove = function(evt) { + this.touch_started = false; + return this.search_results_mouseout(evt); + }; -}).call(this); + AbstractChosen.prototype.search_results_touchend = function(evt) { + if (this.touch_started) { + return this.search_results_mouseup(evt); + } + }; -/* -Chosen source: generate output using 'cake build' -Copyright (c) 2011 by Harvest -*/ + AbstractChosen.prototype.outerHTML = function(element) { + var tmp; + if (element.outerHTML) { + return element.outerHTML; + } + tmp = document.createElement("div"); + tmp.appendChild(element); + return tmp.innerHTML; + }; -(function() { - var $, Chosen, get_side_border_padding, root, - __hasProp = Object.prototype.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }; + AbstractChosen.prototype.get_single_html = function() { + return "\n " + this.default_text + "\n
    \n
    \n
    \n
    \n \n
    \n \n
    "; + }; + + AbstractChosen.prototype.get_multi_html = function() { + return "\n
    \n \n
    "; + }; - root = this; + AbstractChosen.prototype.get_no_results_html = function(terms) { + return "
  • \n " + this.results_none_found + " " + (this.escape_html(terms)) + "\n
  • "; + }; + + AbstractChosen.browser_is_supported = function() { + if ("Microsoft Internet Explorer" === window.navigator.appName) { + return document.documentMode >= 8; + } + if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) { + return false; + } + return true; + }; + + AbstractChosen.default_multiple_text = "Select Some Options"; + + AbstractChosen.default_single_text = "Select an Option"; + + AbstractChosen.default_no_result_text = "No results match"; + + return AbstractChosen; + + })(); $ = jQuery; $.fn.extend({ chosen: function(options) { - if ($.browser.msie && ($.browser.version === "6.0" || ($.browser.version === "7.0" && document.documentMode === 7))) { + if (!AbstractChosen.browser_is_supported()) { return this; } return this.each(function(input_field) { - var $this; + var $this, chosen; $this = $(this); - if (!$this.hasClass("chzn-done")) { - return $this.data('chosen', new Chosen(this, options)); + chosen = $this.data('chosen'); + if (options === 'destroy') { + if (chosen instanceof Chosen) { + chosen.destroy(); + } + return; + } + if (!(chosen instanceof Chosen)) { + $this.data('chosen', new Chosen(this, options)); } }); } }); - Chosen = (function(_super) { - - __extends(Chosen, _super); + Chosen = (function(superClass) { + extend(Chosen, superClass); function Chosen() { - Chosen.__super__.constructor.apply(this, arguments); + return Chosen.__super__.constructor.apply(this, arguments); } Chosen.prototype.setup = function() { this.form_field_jq = $(this.form_field); - this.current_value = this.form_field_jq.val(); - return this.is_rtl = this.form_field_jq.hasClass("chzn-rtl"); - }; - - Chosen.prototype.finish_setup = function() { - return this.form_field_jq.addClass("chzn-done"); + return this.current_selectedIndex = this.form_field.selectedIndex; }; Chosen.prototype.set_up_html = function() { - var container_div, dd_top, dd_width, sf_width; - this.container_id = this.form_field.id.length ? this.form_field.id.replace(/[^\w]/g, '_') : this.generate_field_id(); - this.container_id += "_chzn"; - this.f_width = this.form_field_jq.outerWidth(); - container_div = $("
    ", { - id: this.container_id, - "class": "chzn-container" + (this.is_rtl ? ' chzn-rtl' : ''), - style: 'width: ' + this.f_width + 'px;' - }); + var container_classes, container_props; + container_classes = ["chosen-container"]; + container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single")); + if (this.inherit_select_classes && this.form_field.className) { + container_classes.push(this.form_field.className); + } + if (this.is_rtl) { + container_classes.push("chosen-rtl"); + } + container_props = { + 'class': container_classes.join(' '), + 'title': this.form_field.title + }; + if (this.form_field.id.length) { + container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen"; + } + this.container = $("
    ", container_props); + this.container.width(this.container_width()); if (this.is_multiple) { - container_div.html('
      '); + this.container.html(this.get_multi_html()); } else { - container_div.html('' + this.default_text + '
        '); - } - this.form_field_jq.hide().after(container_div); - this.container = $('#' + this.container_id); - this.container.addClass("chzn-container-" + (this.is_multiple ? "multi" : "single")); - this.dropdown = this.container.find('div.chzn-drop').first(); - dd_top = this.container.height(); - dd_width = this.f_width - get_side_border_padding(this.dropdown); - this.dropdown.css({ - "width": dd_width + "px", - "top": dd_top + "px" - }); + this.container.html(this.get_single_html()); + } + this.form_field_jq.hide().after(this.container); + this.dropdown = this.container.find('div.chosen-drop').first(); this.search_field = this.container.find('input').first(); - this.search_results = this.container.find('ul.chzn-results').first(); + this.search_results = this.container.find('ul.chosen-results').first(); this.search_field_scale(); this.search_no_results = this.container.find('li.no-results').first(); if (this.is_multiple) { - this.search_choices = this.container.find('ul.chzn-choices').first(); + this.search_choices = this.container.find('ul.chosen-choices').first(); this.search_container = this.container.find('li.search-field').first(); } else { - this.search_container = this.container.find('div.chzn-search').first(); - this.selected_item = this.container.find('.chzn-single').first(); - sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field); - this.search_field.css({ - "width": sf_width + "px" - }); + this.search_container = this.container.find('div.chosen-search').first(); + this.selected_item = this.container.find('.chosen-single').first(); } this.results_build(); this.set_tab_index(); - return this.form_field_jq.trigger("liszt:ready", { + return this.set_label_behavior(); + }; + + Chosen.prototype.on_ready = function() { + return this.form_field_jq.trigger("chosen:ready", { chosen: this }); }; Chosen.prototype.register_observers = function() { - var _this = this; - this.container.mousedown(function(evt) { - return _this.container_mousedown(evt); - }); - this.container.mouseup(function(evt) { - return _this.container_mouseup(evt); - }); - this.container.mouseenter(function(evt) { - return _this.mouse_enter(evt); - }); - this.container.mouseleave(function(evt) { - return _this.mouse_leave(evt); - }); - this.search_results.mouseup(function(evt) { - return _this.search_results_mouseup(evt); - }); - this.search_results.mouseover(function(evt) { - return _this.search_results_mouseover(evt); - }); - this.search_results.mouseout(function(evt) { - return _this.search_results_mouseout(evt); - }); - this.form_field_jq.bind("liszt:updated", function(evt) { - return _this.results_update_field(evt); - }); - this.form_field_jq.bind("liszt:activate", function(evt) { - return _this.activate_field(evt); - }); - this.form_field_jq.bind("liszt:open", function(evt) { - return _this.container_mousedown(evt); - }); - this.search_field.blur(function(evt) { - return _this.input_blur(evt); - }); - this.search_field.keyup(function(evt) { - return _this.keyup_checker(evt); - }); - this.search_field.keydown(function(evt) { - return _this.keydown_checker(evt); - }); - this.search_field.focus(function(evt) { - return _this.input_focus(evt); - }); + this.container.on('touchstart.chosen', (function(_this) { + return function(evt) { + _this.container_mousedown(evt); + }; + })(this)); + this.container.on('touchend.chosen', (function(_this) { + return function(evt) { + _this.container_mouseup(evt); + }; + })(this)); + this.container.on('mousedown.chosen', (function(_this) { + return function(evt) { + _this.container_mousedown(evt); + }; + })(this)); + this.container.on('mouseup.chosen', (function(_this) { + return function(evt) { + _this.container_mouseup(evt); + }; + })(this)); + this.container.on('mouseenter.chosen', (function(_this) { + return function(evt) { + _this.mouse_enter(evt); + }; + })(this)); + this.container.on('mouseleave.chosen', (function(_this) { + return function(evt) { + _this.mouse_leave(evt); + }; + })(this)); + this.search_results.on('mouseup.chosen', (function(_this) { + return function(evt) { + _this.search_results_mouseup(evt); + }; + })(this)); + this.search_results.on('mouseover.chosen', (function(_this) { + return function(evt) { + _this.search_results_mouseover(evt); + }; + })(this)); + this.search_results.on('mouseout.chosen', (function(_this) { + return function(evt) { + _this.search_results_mouseout(evt); + }; + })(this)); + this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) { + return function(evt) { + _this.search_results_mousewheel(evt); + }; + })(this)); + this.search_results.on('touchstart.chosen', (function(_this) { + return function(evt) { + _this.search_results_touchstart(evt); + }; + })(this)); + this.search_results.on('touchmove.chosen', (function(_this) { + return function(evt) { + _this.search_results_touchmove(evt); + }; + })(this)); + this.search_results.on('touchend.chosen', (function(_this) { + return function(evt) { + _this.search_results_touchend(evt); + }; + })(this)); + this.form_field_jq.on("chosen:updated.chosen", (function(_this) { + return function(evt) { + _this.results_update_field(evt); + }; + })(this)); + this.form_field_jq.on("chosen:activate.chosen", (function(_this) { + return function(evt) { + _this.activate_field(evt); + }; + })(this)); + this.form_field_jq.on("chosen:open.chosen", (function(_this) { + return function(evt) { + _this.container_mousedown(evt); + }; + })(this)); + this.form_field_jq.on("chosen:close.chosen", (function(_this) { + return function(evt) { + _this.close_field(evt); + }; + })(this)); + this.search_field.on('blur.chosen', (function(_this) { + return function(evt) { + _this.input_blur(evt); + }; + })(this)); + this.search_field.on('keyup.chosen', (function(_this) { + return function(evt) { + _this.keyup_checker(evt); + }; + })(this)); + this.search_field.on('keydown.chosen', (function(_this) { + return function(evt) { + _this.keydown_checker(evt); + }; + })(this)); + this.search_field.on('focus.chosen', (function(_this) { + return function(evt) { + _this.input_focus(evt); + }; + })(this)); + this.search_field.on('cut.chosen', (function(_this) { + return function(evt) { + _this.clipboard_event_checker(evt); + }; + })(this)); + this.search_field.on('paste.chosen', (function(_this) { + return function(evt) { + _this.clipboard_event_checker(evt); + }; + })(this)); if (this.is_multiple) { - return this.search_choices.click(function(evt) { - return _this.choices_click(evt); - }); + return this.search_choices.on('click.chosen', (function(_this) { + return function(evt) { + _this.choices_click(evt); + }; + })(this)); } else { - return this.container.click(function(evt) { - return evt.preventDefault(); + return this.container.on('click.chosen', function(evt) { + evt.preventDefault(); }); } }; + Chosen.prototype.destroy = function() { + $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action); + if (this.form_field_label.length > 0) { + this.form_field_label.off('click.chosen'); + } + if (this.search_field[0].tabIndex) { + this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex; + } + this.container.remove(); + this.form_field_jq.removeData('chosen'); + return this.form_field_jq.show(); + }; + Chosen.prototype.search_field_disabled = function() { - this.is_disabled = this.form_field_jq[0].disabled; + this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled'); + this.container.toggleClass('chosen-disabled', this.is_disabled); + this.search_field[0].disabled = this.is_disabled; + if (!this.is_multiple) { + this.selected_item.off('focus.chosen', this.activate_field); + } if (this.is_disabled) { - this.container.addClass('chzn-disabled'); - this.search_field[0].disabled = true; - if (!this.is_multiple) { - this.selected_item.unbind("focus", this.activate_action); - } return this.close_field(); - } else { - this.container.removeClass('chzn-disabled'); - this.search_field[0].disabled = false; - if (!this.is_multiple) { - return this.selected_item.bind("focus", this.activate_action); - } + } else if (!this.is_multiple) { + return this.selected_item.on('focus.chosen', this.activate_field); } }; Chosen.prototype.container_mousedown = function(evt) { - var target_closelink; - if (!this.is_disabled) { - target_closelink = evt != null ? ($(evt.target)).hasClass("search-choice-close") : false; - if (evt && evt.type === "mousedown" && !this.results_showing) { - evt.stopPropagation(); - } - if (!this.pending_destroy_click && !target_closelink) { - if (!this.active_field) { - if (this.is_multiple) this.search_field.val(""); - $(document).click(this.click_test_action); - this.results_show(); - } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chzn-single").length)) { - evt.preventDefault(); - this.results_toggle(); + var ref; + if (this.is_disabled) { + return; + } + if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) { + evt.preventDefault(); + } + if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) { + if (!this.active_field) { + if (this.is_multiple) { + this.search_field.val(""); } - return this.activate_field(); - } else { - return this.pending_destroy_click = false; + $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action); + this.results_show(); + } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) { + evt.preventDefault(); + this.results_toggle(); } + return this.activate_field(); } }; @@ -466,32 +884,51 @@ Copyright (c) 2011 by Harvest } }; + Chosen.prototype.search_results_mousewheel = function(evt) { + var delta; + if (evt.originalEvent) { + delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail; + } + if (delta != null) { + evt.preventDefault(); + if (evt.type === 'DOMMouseScroll') { + delta = delta * 40; + } + return this.search_results.scrollTop(delta + this.search_results.scrollTop()); + } + }; + Chosen.prototype.blur_test = function(evt) { - if (!this.active_field && this.container.hasClass("chzn-container-active")) { + if (!this.active_field && this.container.hasClass("chosen-container-active")) { return this.close_field(); } }; Chosen.prototype.close_field = function() { - $(document).unbind("click", this.click_test_action); + $(this.container[0].ownerDocument).off("click.chosen", this.click_test_action); this.active_field = false; this.results_hide(); - this.container.removeClass("chzn-container-active"); - this.winnow_results_clear(); + this.container.removeClass("chosen-container-active"); this.clear_backstroke(); this.show_search_field_default(); - return this.search_field_scale(); + this.search_field_scale(); + return this.search_field.blur(); }; Chosen.prototype.activate_field = function() { - this.container.addClass("chzn-container-active"); + if (this.is_disabled) { + return; + } + this.container.addClass("chosen-container-active"); this.active_field = true; this.search_field.val(this.search_field.val()); return this.search_field.focus(); }; Chosen.prototype.test_active_click = function(evt) { - if ($(evt.target).parents('#' + this.container_id).length) { + var active_container; + active_container = $(evt.target).closest('.chosen-container'); + if (active_container.length && this.container[0] === active_container[0]) { return this.active_field = true; } else { return this.close_field(); @@ -499,52 +936,30 @@ Copyright (c) 2011 by Harvest }; Chosen.prototype.results_build = function() { - var content, data, _i, _len, _ref; this.parsing = true; - this.results_data = root.SelectParser.select_to_array(this.form_field); - if (this.is_multiple && this.choices > 0) { + this.selected_option_count = null; + this.results_data = SelectParser.select_to_array(this.form_field); + if (this.is_multiple) { this.search_choices.find("li.search-choice").remove(); - this.choices = 0; } else if (!this.is_multiple) { - this.selected_item.addClass("chzn-default").find("span").text(this.default_text); + this.single_set_selected_text(); if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) { - this.container.addClass("chzn-container-single-nosearch"); + this.search_field[0].readOnly = true; + this.container.addClass("chosen-container-single-nosearch"); } else { - this.container.removeClass("chzn-container-single-nosearch"); - } - } - content = ''; - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - data = _ref[_i]; - if (data.group) { - content += this.result_add_group(data); - } else if (!data.empty) { - content += this.result_add_option(data); - if (data.selected && this.is_multiple) { - this.choice_build(data); - } else if (data.selected && !this.is_multiple) { - this.selected_item.removeClass("chzn-default").find("span").text(data.text); - if (this.allow_single_deselect) this.single_deselect_control_build(); - } + this.search_field[0].readOnly = false; + this.container.removeClass("chosen-container-single-nosearch"); } } + this.update_results_content(this.results_option_build({ + first: true + })); this.search_field_disabled(); this.show_search_field_default(); this.search_field_scale(); - this.search_results.html(content); return this.parsing = false; }; - Chosen.prototype.result_add_group = function(group) { - if (!group.disabled) { - group.dom_id = this.container_id + "_g_" + group.array_index; - return '
      • ' + $("
        ").text(group.label).html() + '
      • '; - } else { - return ""; - } - }; - Chosen.prototype.result_do_highlight = function(el) { var high_bottom, high_top, maxHeight, visible_bottom, visible_top; if (el.length) { @@ -565,62 +980,65 @@ Copyright (c) 2011 by Harvest }; Chosen.prototype.result_clear_highlight = function() { - if (this.result_highlight) this.result_highlight.removeClass("highlighted"); + if (this.result_highlight) { + this.result_highlight.removeClass("highlighted"); + } return this.result_highlight = null; }; Chosen.prototype.results_show = function() { - var dd_top; - if (!this.is_multiple) { - this.selected_item.addClass("chzn-single-with-drop"); - if (this.result_single_selected) { - this.result_do_highlight(this.result_single_selected); - } - } else if (this.max_selected_options <= this.choices) { - this.form_field_jq.trigger("liszt:maxselected", { + if (this.is_multiple && this.max_selected_options <= this.choices_count()) { + this.form_field_jq.trigger("chosen:maxselected", { chosen: this }); return false; } - dd_top = this.is_multiple ? this.container.height() : this.container.height() - 1; - this.form_field_jq.trigger("liszt:showing_dropdown", { - chosen: this - }); - this.dropdown.css({ - "top": dd_top + "px", - "left": 0 - }); + this.container.addClass("chosen-with-drop"); this.results_showing = true; this.search_field.focus(); - this.search_field.val(this.search_field.val()); - return this.winnow_results(); + this.search_field.val(this.get_search_field_value()); + this.winnow_results(); + return this.form_field_jq.trigger("chosen:showing_dropdown", { + chosen: this + }); + }; + + Chosen.prototype.update_results_content = function(content) { + return this.search_results.html(content); }; Chosen.prototype.results_hide = function() { - if (!this.is_multiple) { - this.selected_item.removeClass("chzn-single-with-drop"); + if (this.results_showing) { + this.result_clear_highlight(); + this.container.removeClass("chosen-with-drop"); + this.form_field_jq.trigger("chosen:hiding_dropdown", { + chosen: this + }); } - this.result_clear_highlight(); - this.form_field_jq.trigger("liszt:hiding_dropdown", { - chosen: this - }); - this.dropdown.css({ - "left": "-9000px" - }); return this.results_showing = false; }; Chosen.prototype.set_tab_index = function(el) { var ti; - if (this.form_field_jq.attr("tabindex")) { - ti = this.form_field_jq.attr("tabindex"); - this.form_field_jq.attr("tabindex", -1); - return this.search_field.attr("tabindex", ti); + if (this.form_field.tabIndex) { + ti = this.form_field.tabIndex; + this.form_field.tabIndex = -1; + return this.search_field[0].tabIndex = ti; + } + }; + + Chosen.prototype.set_label_behavior = function() { + this.form_field_label = this.form_field_jq.parents("label"); + if (!this.form_field_label.length && this.form_field.id.length) { + this.form_field_label = $("label[for='" + this.form_field.id + "']"); + } + if (this.form_field_label.length > 0) { + return this.form_field_label.on('click.chosen', this.label_click_handler); } }; Chosen.prototype.show_search_field_default = function() { - if (this.is_multiple && this.choices < 1 && !this.active_field) { + if (this.is_multiple && this.choices_count() < 1 && !this.active_field) { this.search_field.val(this.default_text); return this.search_field.addClass("default"); } else { @@ -642,136 +1060,148 @@ Copyright (c) 2011 by Harvest Chosen.prototype.search_results_mouseover = function(evt) { var target; target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first(); - if (target) return this.result_do_highlight(target); + if (target) { + return this.result_do_highlight(target); + } }; Chosen.prototype.search_results_mouseout = function(evt) { - if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) { + if ($(evt.target).hasClass("active-result") || $(evt.target).parents('.active-result').first()) { return this.result_clear_highlight(); } }; - Chosen.prototype.choices_click = function(evt) { - evt.preventDefault(); - if (this.active_field && !($(evt.target).hasClass("search-choice" || $(evt.target).parents('.search-choice').first)) && !this.results_showing) { - return this.results_show(); - } - }; - Chosen.prototype.choice_build = function(item) { - var choice_id, html, link, - _this = this; - if (this.is_multiple && this.max_selected_options <= this.choices) { - this.form_field_jq.trigger("liszt:maxselected", { - chosen: this - }); - return false; - } - choice_id = this.container_id + "_c_" + item.array_index; - this.choices += 1; + var choice, close_link; + choice = $('
      • ', { + "class": "search-choice" + }).html("" + (this.choice_label(item)) + ""); if (item.disabled) { - html = '
      • ' + item.html + '
      • '; + choice.addClass('search-choice-disabled'); } else { - html = '
      • ' + item.html + '
      • '; + close_link = $('', { + "class": 'search-choice-close', + 'data-option-array-index': item.array_index + }); + close_link.on('click.chosen', (function(_this) { + return function(evt) { + return _this.choice_destroy_link_click(evt); + }; + })(this)); + choice.append(close_link); } - this.search_container.before(html); - link = $('#' + choice_id).find("a").first(); - return link.click(function(evt) { - return _this.choice_destroy_link_click(evt); - }); + return this.search_container.before(choice); }; Chosen.prototype.choice_destroy_link_click = function(evt) { evt.preventDefault(); + evt.stopPropagation(); if (!this.is_disabled) { - this.pending_destroy_click = true; return this.choice_destroy($(evt.target)); - } else { - return evt.stopPropagation; } }; Chosen.prototype.choice_destroy = function(link) { - if (this.result_deselect(link.attr("rel"))) { - this.choices -= 1; - this.show_search_field_default(); - if (this.is_multiple && this.choices > 0 && this.search_field.val().length < 1) { + if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) { + if (this.active_field) { + this.search_field.focus(); + } else { + this.show_search_field_default(); + } + if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) { this.results_hide(); } - return link.parents('li').first().remove(); + link.parents('li').first().remove(); + return this.search_field_scale(); } }; Chosen.prototype.results_reset = function() { + this.reset_single_select_options(); this.form_field.options[0].selected = true; - this.selected_item.find("span").text(this.default_text); - if (!this.is_multiple) this.selected_item.addClass("chzn-default"); + this.single_set_selected_text(); this.show_search_field_default(); this.results_reset_cleanup(); - this.form_field_jq.trigger("change"); - if (this.active_field) return this.results_hide(); + this.trigger_form_field_change(); + if (this.active_field) { + return this.results_hide(); + } }; Chosen.prototype.results_reset_cleanup = function() { - this.current_value = this.form_field_jq.val(); + this.current_selectedIndex = this.form_field.selectedIndex; return this.selected_item.find("abbr").remove(); }; Chosen.prototype.result_select = function(evt) { - var high, high_id, item, position; + var high, item; if (this.result_highlight) { high = this.result_highlight; - high_id = high.attr("id"); this.result_clear_highlight(); + if (this.is_multiple && this.max_selected_options <= this.choices_count()) { + this.form_field_jq.trigger("chosen:maxselected", { + chosen: this + }); + return false; + } if (this.is_multiple) { - this.result_deactivate(high); + high.removeClass("active-result"); } else { - this.search_results.find(".result-selected").removeClass("result-selected"); - this.result_single_selected = high; - this.selected_item.removeClass("chzn-default"); + this.reset_single_select_options(); } high.addClass("result-selected"); - position = high_id.substr(high_id.lastIndexOf("_") + 1); - item = this.results_data[position]; + item = this.results_data[high[0].getAttribute("data-option-array-index")]; item.selected = true; this.form_field.options[item.options_index].selected = true; + this.selected_option_count = null; + this.search_field.val(""); if (this.is_multiple) { this.choice_build(item); } else { - this.selected_item.find("span").first().text(item.text); - if (this.allow_single_deselect) this.single_deselect_control_build(); + this.single_set_selected_text(this.choice_label(item)); } - if (!(evt.metaKey && this.is_multiple)) this.results_hide(); - this.search_field.val(""); - if (this.is_multiple || this.form_field_jq.val() !== this.current_value) { - this.form_field_jq.trigger("change", { - 'selected': this.form_field.options[item.options_index].value + if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) { + this.winnow_results(); + } else { + this.results_hide(); + this.show_search_field_default(); + } + if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) { + this.trigger_form_field_change({ + selected: this.form_field.options[item.options_index].value }); } - this.current_value = this.form_field_jq.val(); + this.current_selectedIndex = this.form_field.selectedIndex; + evt.preventDefault(); return this.search_field_scale(); } }; - Chosen.prototype.result_activate = function(el) { - return el.addClass("active-result"); - }; - - Chosen.prototype.result_deactivate = function(el) { - return el.removeClass("active-result"); + Chosen.prototype.single_set_selected_text = function(text) { + if (text == null) { + text = this.default_text; + } + if (text === this.default_text) { + this.selected_item.addClass("chosen-default"); + } else { + this.single_deselect_control_build(); + this.selected_item.removeClass("chosen-default"); + } + return this.selected_item.find("span").html(text); }; Chosen.prototype.result_deselect = function(pos) { - var result, result_data; + var result_data; result_data = this.results_data[pos]; if (!this.form_field.options[result_data.options_index].disabled) { result_data.selected = false; this.form_field.options[result_data.options_index].selected = false; - result = $("#" + this.container_id + "_o_" + pos); - result.removeClass("result-selected").addClass("active-result").show(); + this.selected_option_count = null; this.result_clear_highlight(); - this.winnow_results(); - this.form_field_jq.trigger("change", { + if (this.results_showing) { + this.winnow_results(); + } + this.trigger_form_field_change({ deselected: this.form_field.options[result_data.options_index].value }); this.search_field_scale(); @@ -782,106 +1212,43 @@ Copyright (c) 2011 by Harvest }; Chosen.prototype.single_deselect_control_build = function() { - if (this.allow_single_deselect && this.selected_item.find("abbr").length < 1) { - return this.selected_item.find("span").first().after(""); + if (!this.allow_single_deselect) { + return; } + if (!this.selected_item.find("abbr").length) { + this.selected_item.find("span").first().after(""); + } + return this.selected_item.addClass("chosen-single-with-deselect"); }; - Chosen.prototype.winnow_results = function() { - var found, option, part, parts, regex, regexAnchor, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref; - this.no_results_clear(); - results = 0; - searchText = this.search_field.val() === this.default_text ? "" : $('
        ').text($.trim(this.search_field.val())).html(); - regexAnchor = this.search_contains ? "" : "^"; - regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - if (!option.disabled && !option.empty) { - if (option.group) { - $('#' + option.dom_id).css('display', 'none'); - } else if (!(this.is_multiple && option.selected)) { - found = false; - result_id = option.dom_id; - result = $("#" + result_id); - if (regex.test(option.html)) { - found = true; - results += 1; - } else if (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0) { - parts = option.html.replace(/\[|\]/g, "").split(" "); - if (parts.length) { - for (_j = 0, _len2 = parts.length; _j < _len2; _j++) { - part = parts[_j]; - if (regex.test(part)) { - found = true; - results += 1; - } - } - } - } - if (found) { - if (searchText.length) { - startpos = option.html.search(zregex); - text = option.html.substr(0, startpos + searchText.length) + '' + option.html.substr(startpos + searchText.length); - text = text.substr(0, startpos) + '' + text.substr(startpos); - } else { - text = option.html; - } - result.html(text); - this.result_activate(result); - if (option.group_array_index != null) { - $("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item'); - } - } else { - if (this.result_highlight && result_id === this.result_highlight.attr('id')) { - this.result_clear_highlight(); - } - this.result_deactivate(result); - } - } - } - } - if (results < 1 && searchText.length) { - return this.no_results(searchText); - } else { - return this.winnow_results_set_highlight(); - } + Chosen.prototype.get_search_field_value = function() { + return this.search_field.val(); }; - Chosen.prototype.winnow_results_clear = function() { - var li, lis, _i, _len, _results; - this.search_field.val(""); - lis = this.search_results.find("li"); - _results = []; - for (_i = 0, _len = lis.length; _i < _len; _i++) { - li = lis[_i]; - li = $(li); - if (li.hasClass("group-result")) { - _results.push(li.css('display', 'auto')); - } else if (!this.is_multiple || !li.hasClass("result-selected")) { - _results.push(this.result_activate(li)); - } else { - _results.push(void 0); - } - } - return _results; + Chosen.prototype.get_search_text = function() { + return $.trim(this.get_search_field_value()); + }; + + Chosen.prototype.escape_html = function(text) { + return $('
        ').text(text).html(); }; Chosen.prototype.winnow_results_set_highlight = function() { var do_high, selected_results; - if (!this.result_highlight) { - selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : []; - do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first(); - if (do_high != null) return this.result_do_highlight(do_high); + selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : []; + do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first(); + if (do_high != null) { + return this.result_do_highlight(do_high); } }; Chosen.prototype.no_results = function(terms) { var no_results_html; - no_results_html = $('
      • ' + this.results_none_found + ' ""
      • '); - no_results_html.find("span").first().html(terms); - return this.search_results.append(no_results_html); + no_results_html = this.get_no_results_html(terms); + this.search_results.append(no_results_html); + return this.form_field_jq.trigger("chosen:no_results", { + chosen: this + }); }; Chosen.prototype.no_results_clear = function() { @@ -889,15 +1256,15 @@ Copyright (c) 2011 by Harvest }; Chosen.prototype.keydown_arrow = function() { - var first_active, next_sib; - if (!this.result_highlight) { - first_active = this.search_results.find("li.active-result").first(); - if (first_active) this.result_do_highlight($(first_active)); - } else if (this.results_showing) { + var next_sib; + if (this.results_showing && this.result_highlight) { next_sib = this.result_highlight.nextAll("li.active-result").first(); - if (next_sib) this.result_do_highlight(next_sib); + if (next_sib) { + return this.result_do_highlight(next_sib); + } + } else { + return this.results_show(); } - if (!this.results_showing) return this.results_show(); }; Chosen.prototype.keyup_arrow = function() { @@ -909,7 +1276,9 @@ Copyright (c) 2011 by Harvest if (prev_sibs.length) { return this.result_do_highlight(prev_sibs.first()); } else { - if (this.choices > 0) this.results_hide(); + if (this.choices_count() > 0) { + this.results_hide(); + } return this.result_clear_highlight(); } } @@ -940,79 +1309,41 @@ Copyright (c) 2011 by Harvest return this.pending_backstroke = null; }; - Chosen.prototype.keydown_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - if (stroke !== 8 && this.pending_backstroke) this.clear_backstroke(); - switch (stroke) { - case 8: - this.backstroke_length = this.search_field.val().length; - break; - case 9: - if (this.results_showing && !this.is_multiple) this.result_select(evt); - this.mouse_on_container = false; - break; - case 13: - evt.preventDefault(); - break; - case 38: - evt.preventDefault(); - this.keyup_arrow(); - break; - case 40: - this.keydown_arrow(); - break; - } - }; - Chosen.prototype.search_field_scale = function() { - var dd_top, div, h, style, style_block, styles, w, _i, _len; - if (this.is_multiple) { - h = 0; - w = 0; - style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; - styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; - for (_i = 0, _len = styles.length; _i < _len; _i++) { - style = styles[_i]; - style_block += style + ":" + this.search_field.css(style) + ";"; - } - div = $('
        ', { - 'style': style_block - }); - div.text(this.search_field.val()); - $('body').append(div); - w = div.width() + 25; - div.remove(); - if (w > this.f_width - 10) w = this.f_width - 10; - this.search_field.css({ - 'width': w + 'px' - }); - dd_top = this.container.height(); - return this.dropdown.css({ - "top": dd_top + "px" - }); + var div, i, len, style, style_block, styles, width; + if (!this.is_multiple) { + return; + } + style_block = { + position: 'absolute', + left: '-1000px', + top: '-1000px', + display: 'none', + whiteSpace: 'pre' + }; + styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing']; + for (i = 0, len = styles.length; i < len; i++) { + style = styles[i]; + style_block[style] = this.search_field.css(style); } + div = $('
        ').css(style_block); + div.text(this.get_search_field_value()); + $('body').append(div); + width = div.width() + 25; + div.remove(); + if (this.container.is(':visible')) { + width = Math.min(this.container.outerWidth() - 10, width); + } + return this.search_field.width(width); }; - Chosen.prototype.generate_random_id = function() { - var string; - string = "sel" + this.generate_random_char() + this.generate_random_char() + this.generate_random_char(); - while ($("#" + string).length > 0) { - string += this.generate_random_char(); - } - return string; + Chosen.prototype.trigger_form_field_change = function(extra) { + this.form_field_jq.trigger("input", extra); + return this.form_field_jq.trigger("change", extra); }; return Chosen; })(AbstractChosen); - get_side_border_padding = function(elmt) { - var side_border_padding; - return side_border_padding = elmt.outerWidth() - elmt.width(); - }; - - root.get_side_border_padding = get_side_border_padding; - }).call(this); diff --git a/js/chosen/chosen.jquery.min.js b/js/chosen/chosen.jquery.min.js index 5b08f7bd2f..d67677fbdf 100644 --- a/js/chosen/chosen.jquery.min.js +++ b/js/chosen/chosen.jquery.min.js @@ -1,10 +1,3 @@ -// Chosen, a Select Box Enhancer for jQuery and Protoype -// by Patrick Filler for Harvest, http://getharvest.com -// -// Version 0.9.8 -// Full source at https://github.com/harvesthq/chosen -// Copyright (c) 2011 Harvest http://getharvest.com +/* Chosen v1.8.2 | (c) 2011-2017 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */ -// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -// This file is generated by `cake build`, do not edit it by hand. -(function(){var SelectParser;SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return child.nodeName.toUpperCase()==="OPTGROUP"?this.add_group(child):this.add_option(child)},SelectParser.prototype.add_group=function(group){var group_position,option,_i,_len,_ref,_results;group_position=this.parsed.length,this.parsed.push({array_index:group_position,group:!0,label:group.label,children:0,disabled:group.disabled}),_ref=group.childNodes,_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++)option=_ref[_i],_results.push(this.add_option(option,group_position,group.disabled));return _results},SelectParser.prototype.add_option=function(option,group_position,group_disabled){if(option.nodeName.toUpperCase()==="OPTION")return option.text!==""?(group_position!=null&&(this.parsed[group_position].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,selected:option.selected,disabled:group_disabled===!0?group_disabled:option.disabled,group_array_index:group_position,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},SelectParser}(),SelectParser.select_to_array=function(select){var child,parser,_i,_len,_ref;parser=new SelectParser,_ref=select.childNodes;for(_i=0,_len=_ref.length;_i<_len;_i++)child=_ref[_i],parser.add_node(child);return parser.parsed},this.SelectParser=SelectParser}).call(this),function(){var AbstractChosen,root;root=this,AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field,this.options=options!=null?options:{},this.set_default_values(),this.is_multiple=this.form_field.multiple,this.set_default_text(),this.setup(),this.set_up_html(),this.register_observers(),this.finish_setup()}return AbstractChosen.prototype.set_default_values=function(){var _this=this;return this.click_test_action=function(evt){return _this.test_active_click(evt)},this.activate_action=function(evt){return _this.activate_field(evt)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=null,this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.search_contains=this.options.search_contains||!1,this.choices=0,this.single_backstroke_delete=this.options.single_backstroke_delete||!1,this.max_selected_options=this.options.max_selected_options||Infinity},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||"Select Some Options":this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||"Select an Option",this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||"No results match"},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(evt){var _this=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return _this.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(evt){var _this=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return _this.blur_test()},100)},AbstractChosen.prototype.result_add_option=function(option){var classes,style;return option.disabled?"":(option.dom_id=this.container_id+"_o_"+option.array_index,classes=option.selected&&this.is_multiple?[]:["active-result"],option.selected&&classes.push("result-selected"),option.group_array_index!=null&&classes.push("group-option"),option.classes!==""&&classes.push(option.classes),style=option.style.cssText!==""?' style="'+option.style+'"':"",'
      • "+option.html+"
      • ")},AbstractChosen.prototype.results_update_field=function(){return this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.result_single_selected=null,this.results_build()},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:evt.preventDefault();if(this.results_showing)return this.result_select(evt);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.generate_field_id=function(){var new_id;return new_id=this.generate_random_id(),this.form_field.id=new_id,new_id},AbstractChosen.prototype.generate_random_char=function(){var chars,newchar,rand;return chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",rand=Math.floor(Math.random()*chars.length),newchar=chars.substring(rand,rand+1)},AbstractChosen}(),root.AbstractChosen=AbstractChosen}.call(this),function(){var $,Chosen,get_side_border_padding,root,__hasProp=Object.prototype.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};root=this,$=jQuery,$.fn.extend({chosen:function(options){return $.browser.msie&&($.browser.version==="6.0"||$.browser.version==="7.0"&&document.documentMode===7)?this:this.each(function(input_field){var $this;$this=$(this);if(!$this.hasClass("chzn-done"))return $this.data("chosen",new Chosen(this,options))})}}),Chosen=function(_super){function Chosen(){Chosen.__super__.constructor.apply(this,arguments)}return __extends(Chosen,_super),Chosen.prototype.setup=function(){return this.form_field_jq=$(this.form_field),this.current_value=this.form_field_jq.val(),this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")},Chosen.prototype.finish_setup=function(){return this.form_field_jq.addClass("chzn-done")},Chosen.prototype.set_up_html=function(){var container_div,dd_top,dd_width,sf_width;return this.container_id=this.form_field.id.length?this.form_field.id.replace(/[^\w]/g,"_"):this.generate_field_id(),this.container_id+="_chzn",this.f_width=this.form_field_jq.outerWidth(),container_div=$("
        ",{id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px;"}),this.is_multiple?container_div.html('
          '):container_div.html('
          '+this.default_text+'
            '),this.form_field_jq.hide().after(container_div),this.container=$("#"+this.container_id),this.container.addClass("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.find("div.chzn-drop").first(),dd_top=this.container.height(),dd_width=this.f_width-get_side_border_padding(this.dropdown),this.dropdown.css({width:dd_width+"px",top:dd_top+"px"}),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chzn-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chzn-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chzn-search").first(),this.selected_item=this.container.find(".chzn-single").first(),sf_width=dd_width-get_side_border_padding(this.search_container)-get_side_border_padding(this.search_field),this.search_field.css({width:sf_width+"px"})),this.results_build(),this.set_tab_index(),this.form_field_jq.trigger("liszt:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this=this;return this.container.mousedown(function(evt){return _this.container_mousedown(evt)}),this.container.mouseup(function(evt){return _this.container_mouseup(evt)}),this.container.mouseenter(function(evt){return _this.mouse_enter(evt)}),this.container.mouseleave(function(evt){return _this.mouse_leave(evt)}),this.search_results.mouseup(function(evt){return _this.search_results_mouseup(evt)}),this.search_results.mouseover(function(evt){return _this.search_results_mouseover(evt)}),this.search_results.mouseout(function(evt){return _this.search_results_mouseout(evt)}),this.form_field_jq.bind("liszt:updated",function(evt){return _this.results_update_field(evt)}),this.form_field_jq.bind("liszt:activate",function(evt){return _this.activate_field(evt)}),this.form_field_jq.bind("liszt:open",function(evt){return _this.container_mousedown(evt)}),this.search_field.blur(function(evt){return _this.input_blur(evt)}),this.search_field.keyup(function(evt){return _this.keyup_checker(evt)}),this.search_field.keydown(function(evt){return _this.keydown_checker(evt)}),this.search_field.focus(function(evt){return _this.input_focus(evt)}),this.is_multiple?this.search_choices.click(function(evt){return _this.choices_click(evt)}):this.container.click(function(evt){return evt.preventDefault()})},Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled)return this.container.addClass("chzn-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus",this.activate_action),this.close_field();this.container.removeClass("chzn-disabled"),this.search_field[0].disabled=!1;if(!this.is_multiple)return this.selected_item.bind("focus",this.activate_action)},Chosen.prototype.container_mousedown=function(evt){var target_closelink;if(!this.is_disabled)return target_closelink=evt!=null?$(evt.target).hasClass("search-choice-close"):!1,evt&&evt.type==="mousedown"&&!this.results_showing&&evt.stopPropagation(),!this.pending_destroy_click&&!target_closelink?(this.active_field?!this.is_multiple&&evt&&($(evt.target)[0]===this.selected_item[0]||$(evt.target).parents("a.chzn-single").length)&&(evt.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),$(document).click(this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chzn-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return $(document).unbind("click",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chzn-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){return $(evt.target).parents("#"+this.container_id).length?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){var content,data,_i,_len,_ref;this.parsing=!0,this.results_data=root.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.find("li.search-choice").remove(),this.choices=0):this.is_multiple||(this.selected_item.addClass("chzn-default").find("span").text(this.default_text),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?this.container.addClass("chzn-container-single-nosearch"):this.container.removeClass("chzn-container-single-nosearch")),content="",_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++)data=_ref[_i],data.group?content+=this.result_add_group(data):data.empty||(content+=this.result_add_option(data),data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&(this.selected_item.removeClass("chzn-default").find("span").text(data.text),this.allow_single_deselect&&this.single_deselect_control_build()));return this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.html(content),this.parsing=!1},Chosen.prototype.result_add_group=function(group){return group.disabled?"":(group.dom_id=this.container_id+"_g_"+group.array_index,'
          • '+$("
            ").text(group.label).html()+"
          • ")},Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;if(el.length){this.result_clear_highlight(),this.result_highlight=el,this.result_highlight.addClass("highlighted"),maxHeight=parseInt(this.search_results.css("maxHeight"),10),visible_top=this.search_results.scrollTop(),visible_bottom=maxHeight+visible_top,high_top=this.result_highlight.position().top+this.search_results.scrollTop(),high_bottom=high_top+this.result_highlight.outerHeight();if(high_bottom>=visible_bottom)return this.search_results.scrollTop(high_bottom-maxHeight>0?high_bottom-maxHeight:0);if(high_top'+item.html+"":html='
          • '+item.html+'
          • ',this.search_container.before(html),link=$("#"+choice_id).find("a").first(),link.click(function(evt){return _this.choice_destroy_link_click(evt)}))},Chosen.prototype.choice_destroy_link_click=function(evt){return evt.preventDefault(),this.is_disabled?evt.stopPropagation:(this.pending_destroy_click=!0,this.choice_destroy($(evt.target)))},Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link.attr("rel")))return this.choices-=1,this.show_search_field_default(),this.is_multiple&&this.choices>0&&this.search_field.val().length<1&&this.results_hide(),link.parents("li").first().remove()},Chosen.prototype.results_reset=function(){this.form_field.options[0].selected=!0,this.selected_item.find("span").text(this.default_text),this.is_multiple||this.selected_item.addClass("chzn-default"),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change");if(this.active_field)return this.results_hide()},Chosen.prototype.results_reset_cleanup=function(){return this.current_value=this.form_field_jq.val(),this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(evt){var high,high_id,item,position;if(this.result_highlight)return high=this.result_highlight,high_id=high.attr("id"),this.result_clear_highlight(),this.is_multiple?this.result_deactivate(high):(this.search_results.find(".result-selected").removeClass("result-selected"),this.result_single_selected=high,this.selected_item.removeClass("chzn-default")),high.addClass("result-selected"),position=high_id.substr(high_id.lastIndexOf("_")+1),item=this.results_data[position],item.selected=!0,this.form_field.options[item.options_index].selected=!0,this.is_multiple?this.choice_build(item):(this.selected_item.find("span").first().text(item.text),this.allow_single_deselect&&this.single_deselect_control_build()),(!evt.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field_jq.val()!==this.current_value)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[item.options_index].value}),this.current_value=this.form_field_jq.val(),this.search_field_scale()},Chosen.prototype.result_activate=function(el){return el.addClass("active-result")},Chosen.prototype.result_deactivate=function(el){return el.removeClass("active-result")},Chosen.prototype.result_deselect=function(pos){var result,result_data;return result_data=this.results_data[pos],this.form_field.options[result_data.options_index].disabled?!1:(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,result=$("#"+this.container_id+"_o_"+pos),result.removeClass("result-selected").addClass("active-result").show(),this.result_clear_highlight(),this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[result_data.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&this.selected_item.find("abbr").length<1)return this.selected_item.find("span").first().after('')},Chosen.prototype.winnow_results=function(){var found,option,part,parts,regex,regexAnchor,result,result_id,results,searchText,startpos,text,zregex,_i,_j,_len,_len2,_ref;this.no_results_clear(),results=0,searchText=this.search_field.val()===this.default_text?"":$("
            ").text($.trim(this.search_field.val())).html(),regexAnchor=this.search_contains?"":"^",regex=new RegExp(regexAnchor+searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),zregex=new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(!option.disabled&&!option.empty)if(option.group)$("#"+option.dom_id).css("display","none");else if(!this.is_multiple||!option.selected){found=!1,result_id=option.dom_id,result=$("#"+result_id);if(regex.test(option.html))found=!0,results+=1;else if(option.html.indexOf(" ")>=0||option.html.indexOf("[")===0){parts=option.html.replace(/\[|\]/g,"").split(" ");if(parts.length)for(_j=0,_len2=parts.length;_j<_len2;_j++)part=parts[_j],regex.test(part)&&(found=!0,results+=1)}found?(searchText.length?(startpos=option.html.search(zregex),text=option.html.substr(0,startpos+searchText.length)+""+option.html.substr(startpos+searchText.length),text=text.substr(0,startpos)+""+text.substr(startpos)):text=option.html,result.html(text),this.result_activate(result),option.group_array_index!=null&&$("#"+this.results_data[option.group_array_index].dom_id).css("display","list-item")):(this.result_highlight&&result_id===this.result_highlight.attr("id")&&this.result_clear_highlight(),this.result_deactivate(result))}}return results<1&&searchText.length?this.no_results(searchText):this.winnow_results_set_highlight()},Chosen.prototype.winnow_results_clear=function(){var li,lis,_i,_len,_results;this.search_field.val(""),lis=this.search_results.find("li"),_results=[];for(_i=0,_len=lis.length;_i<_len;_i++)li=lis[_i],li=$(li),li.hasClass("group-result")?_results.push(li.css("display","auto")):!this.is_multiple||!li.hasClass("result-selected")?_results.push(this.result_activate(li)):_results.push(void 0);return _results},Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;if(!this.result_highlight){selected_results=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),do_high=selected_results.length?selected_results.first():this.search_results.find(".active-result").first();if(do_high!=null)return this.result_do_highlight(do_high)}},Chosen.prototype.no_results=function(terms){var no_results_html;return no_results_html=$('
          • '+this.results_none_found+' ""
          • '),no_results_html.find("span").first().html(terms),this.search_results.append(no_results_html)},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var first_active,next_sib;this.result_highlight?this.results_showing&&(next_sib=this.result_highlight.nextAll("li.active-result").first(),next_sib&&this.result_do_highlight(next_sib)):(first_active=this.search_results.find("li.active-result").first(),first_active&&this.result_do_highlight($(first_active)));if(!this.results_showing)return this.results_show()},Chosen.prototype.keyup_arrow=function(){var prev_sibs;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return prev_sibs=this.result_highlight.prevAll("li.active-result"),prev_sibs.length?this.result_do_highlight(prev_sibs.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;if(this.pending_backstroke)return this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke();next_available_destroy=this.search_container.siblings("li.search-choice").last();if(next_available_destroy.length&&!next_available_destroy.hasClass("search-choice-disabled"))return this.pending_backstroke=next_available_destroy,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale(),stroke!==8&&this.pending_backstroke&&this.clear_backstroke();switch(stroke){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var dd_top,div,h,style,style_block,styles,w,_i,_len;if(this.is_multiple){h=0,w=0,style_block="position:absolute; left: -1000px; top: -1000px; display:none;",styles=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(_i=0,_len=styles.length;_i<_len;_i++)style=styles[_i],style_block+=style+":"+this.search_field.css(style)+";";return div=$("
            ",{style:style_block}),div.text(this.search_field.val()),$("body").append(div),w=div.width()+25,div.remove(),w>this.f_width-10&&(w=this.f_width-10),this.search_field.css({width:w+"px"}),dd_top=this.container.height(),this.dropdown.css({top:dd_top+"px"})}},Chosen.prototype.generate_random_id=function(){var string;string="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while($("#"+string).length>0)string+=this.generate_random_char();return string},Chosen}(AbstractChosen),get_side_border_padding=function(elmt){var side_border_padding;return side_border_padding=elmt.outerWidth()-elmt.width()},root.get_side_border_padding=get_side_border_padding}.call(this); \ No newline at end of file +(function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},o={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s"+t.group_label+""+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.style.cssText=t.style,s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t"+this.escape_html(e)+""+this.escape_html(d)),null!=_&&(_.group_match=!0)):null!=n.group_array_index&&this.results_data[n.group_array_index].search_match&&(n.search_match=!0)));return this.result_clear_highlight(),c<1&&o.length?(this.update_results_content(""),this.no_results(o)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'\n '+this.default_text+'\n
            \n
            \n
            \n \n
              \n
              '},t.prototype.get_multi_html=function(){return'
                \n
              • \n \n
              • \n
              \n
              \n
                \n
                '},t.prototype.get_no_results_html=function(t){return'
              • \n '+this.results_none_found+" "+this.escape_html(t)+"\n
              • "},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return r(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("
                ",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),r=this.search_results.scrollTop(),n=i+r,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("
              • ",{"class":"search-choice"}).html(""+this.choice_label(e)+""),e.disabled?s.addClass("search-choice-disabled"):((i=t("",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.search_field.val(""),this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?this.winnow_results():(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(''),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("
                ").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this); \ No newline at end of file diff --git a/js/chosen/chosen.min.css b/js/chosen/chosen.min.css new file mode 100644 index 0000000000..779d83d915 --- /dev/null +++ b/js/chosen/chosen.min.css @@ -0,0 +1,11 @@ +/*! +Chosen, a Select Box Enhancer for jQuery and Prototype +by Patrick Filler for Harvest, http://getharvest.com + +Version 1.8.2 +Full source at https://github.com/harvesthq/chosen +Copyright (c) 2011-2017 Harvest http://getharvest.com + +MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md +This file is generated by `grunt build`, do not edit it by hand. +*/.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.15);box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),to(#f4f4f4));background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;-webkit-box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#eee),color-stop(15%,#fff));background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:0 0!important;-webkit-box-shadow:none;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#eee),color-stop(80%,#fff));background-image:linear-gradient(#eee 20%,#fff 80%);-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}} \ No newline at end of file diff --git a/js/chosen/chosen.proto.js b/js/chosen/chosen.proto.js deleted file mode 100644 index 017f3b3516..0000000000 --- a/js/chosen/chosen.proto.js +++ /dev/null @@ -1,1025 +0,0 @@ -// Chosen, a Select Box Enhancer for jQuery and Protoype -// by Patrick Filler for Harvest, http://getharvest.com -// -// Version 0.9.8 -// Full source at https://github.com/harvesthq/chosen -// Copyright (c) 2011 Harvest http://getharvest.com - -// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -// This file is generated by `cake build`, do not edit it by hand. -(function() { - var SelectParser; - - SelectParser = (function() { - - function SelectParser() { - this.options_index = 0; - this.parsed = []; - } - - SelectParser.prototype.add_node = function(child) { - if (child.nodeName.toUpperCase() === "OPTGROUP") { - return this.add_group(child); - } else { - return this.add_option(child); - } - }; - - SelectParser.prototype.add_group = function(group) { - var group_position, option, _i, _len, _ref, _results; - group_position = this.parsed.length; - this.parsed.push({ - array_index: group_position, - group: true, - label: group.label, - children: 0, - disabled: group.disabled - }); - _ref = group.childNodes; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - _results.push(this.add_option(option, group_position, group.disabled)); - } - return _results; - }; - - SelectParser.prototype.add_option = function(option, group_position, group_disabled) { - if (option.nodeName.toUpperCase() === "OPTION") { - if (option.text !== "") { - if (group_position != null) this.parsed[group_position].children += 1; - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - value: option.value, - text: option.text, - html: option.innerHTML, - selected: option.selected, - disabled: group_disabled === true ? group_disabled : option.disabled, - group_array_index: group_position, - classes: option.className, - style: option.style.cssText - }); - } else { - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - empty: true - }); - } - return this.options_index += 1; - } - }; - - return SelectParser; - - })(); - - SelectParser.select_to_array = function(select) { - var child, parser, _i, _len, _ref; - parser = new SelectParser(); - _ref = select.childNodes; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - child = _ref[_i]; - parser.add_node(child); - } - return parser.parsed; - }; - - this.SelectParser = SelectParser; - -}).call(this); - -/* -Chosen source: generate output using 'cake build' -Copyright (c) 2011 by Harvest -*/ - -(function() { - var AbstractChosen, root; - - root = this; - - AbstractChosen = (function() { - - function AbstractChosen(form_field, options) { - this.form_field = form_field; - this.options = options != null ? options : {}; - this.set_default_values(); - this.is_multiple = this.form_field.multiple; - this.set_default_text(); - this.setup(); - this.set_up_html(); - this.register_observers(); - this.finish_setup(); - } - - AbstractChosen.prototype.set_default_values = function() { - var _this = this; - this.click_test_action = function(evt) { - return _this.test_active_click(evt); - }; - this.activate_action = function(evt) { - return _this.activate_field(evt); - }; - this.active_field = false; - this.mouse_on_container = false; - this.results_showing = false; - this.result_highlighted = null; - this.result_single_selected = null; - this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false; - this.disable_search_threshold = this.options.disable_search_threshold || 0; - this.disable_search = this.options.disable_search || false; - this.search_contains = this.options.search_contains || false; - this.choices = 0; - this.single_backstroke_delete = this.options.single_backstroke_delete || false; - return this.max_selected_options = this.options.max_selected_options || Infinity; - }; - - AbstractChosen.prototype.set_default_text = function() { - if (this.form_field.getAttribute("data-placeholder")) { - this.default_text = this.form_field.getAttribute("data-placeholder"); - } else if (this.is_multiple) { - this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || "Select Some Options"; - } else { - this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || "Select an Option"; - } - return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || "No results match"; - }; - - AbstractChosen.prototype.mouse_enter = function() { - return this.mouse_on_container = true; - }; - - AbstractChosen.prototype.mouse_leave = function() { - return this.mouse_on_container = false; - }; - - AbstractChosen.prototype.input_focus = function(evt) { - var _this = this; - if (this.is_multiple) { - if (!this.active_field) { - return setTimeout((function() { - return _this.container_mousedown(); - }), 50); - } - } else { - if (!this.active_field) return this.activate_field(); - } - }; - - AbstractChosen.prototype.input_blur = function(evt) { - var _this = this; - if (!this.mouse_on_container) { - this.active_field = false; - return setTimeout((function() { - return _this.blur_test(); - }), 100); - } - }; - - AbstractChosen.prototype.result_add_option = function(option) { - var classes, style; - if (!option.disabled) { - option.dom_id = this.container_id + "_o_" + option.array_index; - classes = option.selected && this.is_multiple ? [] : ["active-result"]; - if (option.selected) classes.push("result-selected"); - if (option.group_array_index != null) classes.push("group-option"); - if (option.classes !== "") classes.push(option.classes); - style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : ""; - return '
              • ' + option.html + '
              • '; - } else { - return ""; - } - }; - - AbstractChosen.prototype.results_update_field = function() { - if (!this.is_multiple) this.results_reset_cleanup(); - this.result_clear_highlight(); - this.result_single_selected = null; - return this.results_build(); - }; - - AbstractChosen.prototype.results_toggle = function() { - if (this.results_showing) { - return this.results_hide(); - } else { - return this.results_show(); - } - }; - - AbstractChosen.prototype.results_search = function(evt) { - if (this.results_showing) { - return this.winnow_results(); - } else { - return this.results_show(); - } - }; - - AbstractChosen.prototype.keyup_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - switch (stroke) { - case 8: - if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) { - return this.keydown_backstroke(); - } else if (!this.pending_backstroke) { - this.result_clear_highlight(); - return this.results_search(); - } - break; - case 13: - evt.preventDefault(); - if (this.results_showing) return this.result_select(evt); - break; - case 27: - if (this.results_showing) this.results_hide(); - return true; - case 9: - case 38: - case 40: - case 16: - case 91: - case 17: - break; - default: - return this.results_search(); - } - }; - - AbstractChosen.prototype.generate_field_id = function() { - var new_id; - new_id = this.generate_random_id(); - this.form_field.id = new_id; - return new_id; - }; - - AbstractChosen.prototype.generate_random_char = function() { - var chars, newchar, rand; - chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - rand = Math.floor(Math.random() * chars.length); - return newchar = chars.substring(rand, rand + 1); - }; - - return AbstractChosen; - - })(); - - root.AbstractChosen = AbstractChosen; - -}).call(this); - -/* -Chosen source: generate output using 'cake build' -Copyright (c) 2011 by Harvest -*/ - -(function() { - var Chosen, get_side_border_padding, root, - __hasProp = Object.prototype.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }; - - root = this; - - Chosen = (function(_super) { - - __extends(Chosen, _super); - - function Chosen() { - Chosen.__super__.constructor.apply(this, arguments); - } - - Chosen.prototype.setup = function() { - this.current_value = this.form_field.value; - return this.is_rtl = this.form_field.hasClassName("chzn-rtl"); - }; - - Chosen.prototype.finish_setup = function() { - return this.form_field.addClassName("chzn-done"); - }; - - Chosen.prototype.set_default_values = function() { - Chosen.__super__.set_default_values.call(this); - this.single_temp = new Template('#{default}
                  '); - this.multi_temp = new Template('
                    '); - this.choice_temp = new Template('
                  • #{choice}
                  • '); - this.choice_noclose_temp = new Template('
                  • #{choice}
                  • '); - return this.no_results_temp = new Template('
                  • ' + this.results_none_found + ' "#{terms}"
                  • '); - }; - - Chosen.prototype.set_up_html = function() { - var base_template, container_props, dd_top, dd_width, sf_width; - this.container_id = this.form_field.identify().replace(/[^\w]/g, '_') + "_chzn"; - this.f_width = this.form_field.getStyle("width") ? parseInt(this.form_field.getStyle("width"), 10) : this.form_field.getWidth(); - container_props = { - 'id': this.container_id, - 'class': "chzn-container" + (this.is_rtl ? ' chzn-rtl' : ''), - 'style': 'width: ' + this.f_width + 'px' - }; - base_template = this.is_multiple ? new Element('div', container_props).update(this.multi_temp.evaluate({ - "default": this.default_text - })) : new Element('div', container_props).update(this.single_temp.evaluate({ - "default": this.default_text - })); - this.form_field.hide().insert({ - after: base_template - }); - this.container = $(this.container_id); - this.container.addClassName("chzn-container-" + (this.is_multiple ? "multi" : "single")); - this.dropdown = this.container.down('div.chzn-drop'); - dd_top = this.container.getHeight(); - dd_width = this.f_width - get_side_border_padding(this.dropdown); - this.dropdown.setStyle({ - "width": dd_width + "px", - "top": dd_top + "px" - }); - this.search_field = this.container.down('input'); - this.search_results = this.container.down('ul.chzn-results'); - this.search_field_scale(); - this.search_no_results = this.container.down('li.no-results'); - if (this.is_multiple) { - this.search_choices = this.container.down('ul.chzn-choices'); - this.search_container = this.container.down('li.search-field'); - } else { - this.search_container = this.container.down('div.chzn-search'); - this.selected_item = this.container.down('.chzn-single'); - sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field); - this.search_field.setStyle({ - "width": sf_width + "px" - }); - } - this.results_build(); - this.set_tab_index(); - return this.form_field.fire("liszt:ready", { - chosen: this - }); - }; - - Chosen.prototype.register_observers = function() { - var _this = this; - this.container.observe("mousedown", function(evt) { - return _this.container_mousedown(evt); - }); - this.container.observe("mouseup", function(evt) { - return _this.container_mouseup(evt); - }); - this.container.observe("mouseenter", function(evt) { - return _this.mouse_enter(evt); - }); - this.container.observe("mouseleave", function(evt) { - return _this.mouse_leave(evt); - }); - this.search_results.observe("mouseup", function(evt) { - return _this.search_results_mouseup(evt); - }); - this.search_results.observe("mouseover", function(evt) { - return _this.search_results_mouseover(evt); - }); - this.search_results.observe("mouseout", function(evt) { - return _this.search_results_mouseout(evt); - }); - this.form_field.observe("liszt:updated", function(evt) { - return _this.results_update_field(evt); - }); - this.form_field.observe("liszt:activate", function(evt) { - return _this.activate_field(evt); - }); - this.form_field.observe("liszt:open", function(evt) { - return _this.container_mousedown(evt); - }); - this.search_field.observe("blur", function(evt) { - return _this.input_blur(evt); - }); - this.search_field.observe("keyup", function(evt) { - return _this.keyup_checker(evt); - }); - this.search_field.observe("keydown", function(evt) { - return _this.keydown_checker(evt); - }); - this.search_field.observe("focus", function(evt) { - return _this.input_focus(evt); - }); - if (this.is_multiple) { - return this.search_choices.observe("click", function(evt) { - return _this.choices_click(evt); - }); - } else { - return this.container.observe("click", function(evt) { - return evt.preventDefault(); - }); - } - }; - - Chosen.prototype.search_field_disabled = function() { - this.is_disabled = this.form_field.disabled; - if (this.is_disabled) { - this.container.addClassName('chzn-disabled'); - this.search_field.disabled = true; - if (!this.is_multiple) { - this.selected_item.stopObserving("focus", this.activate_action); - } - return this.close_field(); - } else { - this.container.removeClassName('chzn-disabled'); - this.search_field.disabled = false; - if (!this.is_multiple) { - return this.selected_item.observe("focus", this.activate_action); - } - } - }; - - Chosen.prototype.container_mousedown = function(evt) { - var target_closelink; - if (!this.is_disabled) { - target_closelink = evt != null ? evt.target.hasClassName("search-choice-close") : false; - if (evt && evt.type === "mousedown" && !this.results_showing) evt.stop(); - if (!this.pending_destroy_click && !target_closelink) { - if (!this.active_field) { - if (this.is_multiple) this.search_field.clear(); - document.observe("click", this.click_test_action); - this.results_show(); - } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) { - this.results_toggle(); - } - return this.activate_field(); - } else { - return this.pending_destroy_click = false; - } - } - }; - - Chosen.prototype.container_mouseup = function(evt) { - if (evt.target.nodeName === "ABBR" && !this.is_disabled) { - return this.results_reset(evt); - } - }; - - Chosen.prototype.blur_test = function(evt) { - if (!this.active_field && this.container.hasClassName("chzn-container-active")) { - return this.close_field(); - } - }; - - Chosen.prototype.close_field = function() { - document.stopObserving("click", this.click_test_action); - this.active_field = false; - this.results_hide(); - this.container.removeClassName("chzn-container-active"); - this.winnow_results_clear(); - this.clear_backstroke(); - this.show_search_field_default(); - return this.search_field_scale(); - }; - - Chosen.prototype.activate_field = function() { - this.container.addClassName("chzn-container-active"); - this.active_field = true; - this.search_field.value = this.search_field.value; - return this.search_field.focus(); - }; - - Chosen.prototype.test_active_click = function(evt) { - if (evt.target.up('#' + this.container_id)) { - return this.active_field = true; - } else { - return this.close_field(); - } - }; - - Chosen.prototype.results_build = function() { - var content, data, _i, _len, _ref; - this.parsing = true; - this.results_data = root.SelectParser.select_to_array(this.form_field); - if (this.is_multiple && this.choices > 0) { - this.search_choices.select("li.search-choice").invoke("remove"); - this.choices = 0; - } else if (!this.is_multiple) { - this.selected_item.addClassName("chzn-default").down("span").update(this.default_text); - if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) { - this.container.addClassName("chzn-container-single-nosearch"); - } else { - this.container.removeClassName("chzn-container-single-nosearch"); - } - } - content = ''; - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - data = _ref[_i]; - if (data.group) { - content += this.result_add_group(data); - } else if (!data.empty) { - content += this.result_add_option(data); - if (data.selected && this.is_multiple) { - this.choice_build(data); - } else if (data.selected && !this.is_multiple) { - this.selected_item.removeClassName("chzn-default").down("span").update(data.html); - if (this.allow_single_deselect) this.single_deselect_control_build(); - } - } - } - this.search_field_disabled(); - this.show_search_field_default(); - this.search_field_scale(); - this.search_results.update(content); - return this.parsing = false; - }; - - Chosen.prototype.result_add_group = function(group) { - if (!group.disabled) { - group.dom_id = this.container_id + "_g_" + group.array_index; - return '
                  • ' + group.label.escapeHTML() + '
                  • '; - } else { - return ""; - } - }; - - Chosen.prototype.result_do_highlight = function(el) { - var high_bottom, high_top, maxHeight, visible_bottom, visible_top; - this.result_clear_highlight(); - this.result_highlight = el; - this.result_highlight.addClassName("highlighted"); - maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10); - visible_top = this.search_results.scrollTop; - visible_bottom = maxHeight + visible_top; - high_top = this.result_highlight.positionedOffset().top; - high_bottom = high_top + this.result_highlight.getHeight(); - if (high_bottom >= visible_bottom) { - return this.search_results.scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0; - } else if (high_top < visible_top) { - return this.search_results.scrollTop = high_top; - } - }; - - Chosen.prototype.result_clear_highlight = function() { - if (this.result_highlight) { - this.result_highlight.removeClassName('highlighted'); - } - return this.result_highlight = null; - }; - - Chosen.prototype.results_show = function() { - var dd_top; - if (!this.is_multiple) { - this.selected_item.addClassName('chzn-single-with-drop'); - if (this.result_single_selected) { - this.result_do_highlight(this.result_single_selected); - } - } else if (this.max_selected_options <= this.choices) { - this.form_field.fire("liszt:maxselected", { - chosen: this - }); - return false; - } - dd_top = this.is_multiple ? this.container.getHeight() : this.container.getHeight() - 1; - this.form_field.fire("liszt:showing_dropdown", { - chosen: this - }); - this.dropdown.setStyle({ - "top": dd_top + "px", - "left": 0 - }); - this.results_showing = true; - this.search_field.focus(); - this.search_field.value = this.search_field.value; - return this.winnow_results(); - }; - - Chosen.prototype.results_hide = function() { - if (!this.is_multiple) { - this.selected_item.removeClassName('chzn-single-with-drop'); - } - this.result_clear_highlight(); - this.form_field.fire("liszt:hiding_dropdown", { - chosen: this - }); - this.dropdown.setStyle({ - "left": "-9000px" - }); - return this.results_showing = false; - }; - - Chosen.prototype.set_tab_index = function(el) { - var ti; - if (this.form_field.tabIndex) { - ti = this.form_field.tabIndex; - this.form_field.tabIndex = -1; - return this.search_field.tabIndex = ti; - } - }; - - Chosen.prototype.show_search_field_default = function() { - if (this.is_multiple && this.choices < 1 && !this.active_field) { - this.search_field.value = this.default_text; - return this.search_field.addClassName("default"); - } else { - this.search_field.value = ""; - return this.search_field.removeClassName("default"); - } - }; - - Chosen.prototype.search_results_mouseup = function(evt) { - var target; - target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); - if (target) { - this.result_highlight = target; - this.result_select(evt); - return this.search_field.focus(); - } - }; - - Chosen.prototype.search_results_mouseover = function(evt) { - var target; - target = evt.target.hasClassName("active-result") ? evt.target : evt.target.up(".active-result"); - if (target) return this.result_do_highlight(target); - }; - - Chosen.prototype.search_results_mouseout = function(evt) { - if (evt.target.hasClassName('active-result') || evt.target.up('.active-result')) { - return this.result_clear_highlight(); - } - }; - - Chosen.prototype.choices_click = function(evt) { - evt.preventDefault(); - if (this.active_field && !(evt.target.hasClassName('search-choice') || evt.target.up('.search-choice')) && !this.results_showing) { - return this.results_show(); - } - }; - - Chosen.prototype.choice_build = function(item) { - var choice_id, link, - _this = this; - if (this.is_multiple && this.max_selected_options <= this.choices) { - this.form_field.fire("liszt:maxselected", { - chosen: this - }); - return false; - } - choice_id = this.container_id + "_c_" + item.array_index; - this.choices += 1; - this.search_container.insert({ - before: (item.disabled ? this.choice_noclose_temp : this.choice_temp).evaluate({ - id: choice_id, - choice: item.html, - position: item.array_index - }) - }); - if (!item.disabled) { - link = $(choice_id).down('a'); - return link.observe("click", function(evt) { - return _this.choice_destroy_link_click(evt); - }); - } - }; - - Chosen.prototype.choice_destroy_link_click = function(evt) { - evt.preventDefault(); - if (!this.is_disabled) { - this.pending_destroy_click = true; - return this.choice_destroy(evt.target); - } - }; - - Chosen.prototype.choice_destroy = function(link) { - if (this.result_deselect(link.readAttribute("rel"))) { - this.choices -= 1; - this.show_search_field_default(); - if (this.is_multiple && this.choices > 0 && this.search_field.value.length < 1) { - this.results_hide(); - } - return link.up('li').remove(); - } - }; - - Chosen.prototype.results_reset = function() { - this.form_field.options[0].selected = true; - this.selected_item.down("span").update(this.default_text); - if (!this.is_multiple) this.selected_item.addClassName("chzn-default"); - this.show_search_field_default(); - this.results_reset_cleanup(); - if (typeof Event.simulate === 'function') this.form_field.simulate("change"); - if (this.active_field) return this.results_hide(); - }; - - Chosen.prototype.results_reset_cleanup = function() { - var deselect_trigger; - this.current_value = this.form_field.value; - deselect_trigger = this.selected_item.down("abbr"); - if (deselect_trigger) return deselect_trigger.remove(); - }; - - Chosen.prototype.result_select = function(evt) { - var high, item, position; - if (this.result_highlight) { - high = this.result_highlight; - this.result_clear_highlight(); - if (this.is_multiple) { - this.result_deactivate(high); - } else { - this.search_results.descendants(".result-selected").invoke("removeClassName", "result-selected"); - this.selected_item.removeClassName("chzn-default"); - this.result_single_selected = high; - } - high.addClassName("result-selected"); - position = high.id.substr(high.id.lastIndexOf("_") + 1); - item = this.results_data[position]; - item.selected = true; - this.form_field.options[item.options_index].selected = true; - if (this.is_multiple) { - this.choice_build(item); - } else { - this.selected_item.down("span").update(item.html); - if (this.allow_single_deselect) this.single_deselect_control_build(); - } - if (!(evt.metaKey && this.is_multiple)) this.results_hide(); - this.search_field.value = ""; - if (typeof Event.simulate === 'function' && (this.is_multiple || this.form_field.value !== this.current_value)) { - this.form_field.simulate("change"); - } - this.current_value = this.form_field.value; - return this.search_field_scale(); - } - }; - - Chosen.prototype.result_activate = function(el) { - return el.addClassName("active-result"); - }; - - Chosen.prototype.result_deactivate = function(el) { - return el.removeClassName("active-result"); - }; - - Chosen.prototype.result_deselect = function(pos) { - var result, result_data; - result_data = this.results_data[pos]; - if (!this.form_field.options[result_data.options_index].disabled) { - result_data.selected = false; - this.form_field.options[result_data.options_index].selected = false; - result = $(this.container_id + "_o_" + pos); - result.removeClassName("result-selected").addClassName("active-result").show(); - this.result_clear_highlight(); - this.winnow_results(); - if (typeof Event.simulate === 'function') { - this.form_field.simulate("change"); - } - this.search_field_scale(); - return true; - } else { - return false; - } - }; - - Chosen.prototype.single_deselect_control_build = function() { - if (this.allow_single_deselect && !this.selected_item.down("abbr")) { - return this.selected_item.down("span").insert({ - after: "" - }); - } - }; - - Chosen.prototype.winnow_results = function() { - var found, option, part, parts, regex, regexAnchor, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref; - this.no_results_clear(); - results = 0; - searchText = this.search_field.value === this.default_text ? "" : this.search_field.value.strip().escapeHTML(); - regexAnchor = this.search_contains ? "" : "^"; - regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); - _ref = this.results_data; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - if (!option.disabled && !option.empty) { - if (option.group) { - $(option.dom_id).hide(); - } else if (!(this.is_multiple && option.selected)) { - found = false; - result_id = option.dom_id; - if (regex.test(option.html)) { - found = true; - results += 1; - } else if (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0) { - parts = option.html.replace(/\[|\]/g, "").split(" "); - if (parts.length) { - for (_j = 0, _len2 = parts.length; _j < _len2; _j++) { - part = parts[_j]; - if (regex.test(part)) { - found = true; - results += 1; - } - } - } - } - if (found) { - if (searchText.length) { - startpos = option.html.search(zregex); - text = option.html.substr(0, startpos + searchText.length) + '' + option.html.substr(startpos + searchText.length); - text = text.substr(0, startpos) + '' + text.substr(startpos); - } else { - text = option.html; - } - if ($(result_id).innerHTML !== text) $(result_id).update(text); - this.result_activate($(result_id)); - if (option.group_array_index != null) { - $(this.results_data[option.group_array_index].dom_id).setStyle({ - display: 'list-item' - }); - } - } else { - if ($(result_id) === this.result_highlight) { - this.result_clear_highlight(); - } - this.result_deactivate($(result_id)); - } - } - } - } - if (results < 1 && searchText.length) { - return this.no_results(searchText); - } else { - return this.winnow_results_set_highlight(); - } - }; - - Chosen.prototype.winnow_results_clear = function() { - var li, lis, _i, _len, _results; - this.search_field.clear(); - lis = this.search_results.select("li"); - _results = []; - for (_i = 0, _len = lis.length; _i < _len; _i++) { - li = lis[_i]; - if (li.hasClassName("group-result")) { - _results.push(li.show()); - } else if (!this.is_multiple || !li.hasClassName("result-selected")) { - _results.push(this.result_activate(li)); - } else { - _results.push(void 0); - } - } - return _results; - }; - - Chosen.prototype.winnow_results_set_highlight = function() { - var do_high; - if (!this.result_highlight) { - if (!this.is_multiple) { - do_high = this.search_results.down(".result-selected.active-result"); - } - if (!(do_high != null)) { - do_high = this.search_results.down(".active-result"); - } - if (do_high != null) return this.result_do_highlight(do_high); - } - }; - - Chosen.prototype.no_results = function(terms) { - return this.search_results.insert(this.no_results_temp.evaluate({ - terms: terms - })); - }; - - Chosen.prototype.no_results_clear = function() { - var nr, _results; - nr = null; - _results = []; - while (nr = this.search_results.down(".no-results")) { - _results.push(nr.remove()); - } - return _results; - }; - - Chosen.prototype.keydown_arrow = function() { - var actives, nexts, sibs; - actives = this.search_results.select("li.active-result"); - if (actives.length) { - if (!this.result_highlight) { - this.result_do_highlight(actives.first()); - } else if (this.results_showing) { - sibs = this.result_highlight.nextSiblings(); - nexts = sibs.intersect(actives); - if (nexts.length) this.result_do_highlight(nexts.first()); - } - if (!this.results_showing) return this.results_show(); - } - }; - - Chosen.prototype.keyup_arrow = function() { - var actives, prevs, sibs; - if (!this.results_showing && !this.is_multiple) { - return this.results_show(); - } else if (this.result_highlight) { - sibs = this.result_highlight.previousSiblings(); - actives = this.search_results.select("li.active-result"); - prevs = sibs.intersect(actives); - if (prevs.length) { - return this.result_do_highlight(prevs.first()); - } else { - if (this.choices > 0) this.results_hide(); - return this.result_clear_highlight(); - } - } - }; - - Chosen.prototype.keydown_backstroke = function() { - var next_available_destroy; - if (this.pending_backstroke) { - this.choice_destroy(this.pending_backstroke.down("a")); - return this.clear_backstroke(); - } else { - next_available_destroy = this.search_container.siblings().last(); - if (next_available_destroy && next_available_destroy.hasClassName("search-choice") && !next_available_destroy.hasClassName("search-choice-disabled")) { - this.pending_backstroke = next_available_destroy; - if (this.pending_backstroke) { - this.pending_backstroke.addClassName("search-choice-focus"); - } - if (this.single_backstroke_delete) { - return this.keydown_backstroke(); - } else { - return this.pending_backstroke.addClassName("search-choice-focus"); - } - } - } - }; - - Chosen.prototype.clear_backstroke = function() { - if (this.pending_backstroke) { - this.pending_backstroke.removeClassName("search-choice-focus"); - } - return this.pending_backstroke = null; - }; - - Chosen.prototype.keydown_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - if (stroke !== 8 && this.pending_backstroke) this.clear_backstroke(); - switch (stroke) { - case 8: - this.backstroke_length = this.search_field.value.length; - break; - case 9: - if (this.results_showing && !this.is_multiple) this.result_select(evt); - this.mouse_on_container = false; - break; - case 13: - evt.preventDefault(); - break; - case 38: - evt.preventDefault(); - this.keyup_arrow(); - break; - case 40: - this.keydown_arrow(); - break; - } - }; - - Chosen.prototype.search_field_scale = function() { - var dd_top, div, h, style, style_block, styles, w, _i, _len; - if (this.is_multiple) { - h = 0; - w = 0; - style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; - styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; - for (_i = 0, _len = styles.length; _i < _len; _i++) { - style = styles[_i]; - style_block += style + ":" + this.search_field.getStyle(style) + ";"; - } - div = new Element('div', { - 'style': style_block - }).update(this.search_field.value.escapeHTML()); - document.body.appendChild(div); - w = Element.measure(div, 'width') + 25; - div.remove(); - if (w > this.f_width - 10) w = this.f_width - 10; - this.search_field.setStyle({ - 'width': w + 'px' - }); - dd_top = this.container.getHeight(); - return this.dropdown.setStyle({ - "top": dd_top + "px" - }); - } - }; - - return Chosen; - - })(AbstractChosen); - - root.Chosen = Chosen; - - if (Prototype.Browser.IE) { - if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { - Prototype.BrowserFeatures['Version'] = new Number(RegExp.$1); - } - } - - get_side_border_padding = function(elmt) { - var layout, side_border_padding; - layout = new Element.Layout(elmt); - return side_border_padding = layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right"); - }; - - root.get_side_border_padding = get_side_border_padding; - -}).call(this); diff --git a/js/chosen/chosen.proto.min.js b/js/chosen/chosen.proto.min.js deleted file mode 100644 index 2fb90cd3ab..0000000000 --- a/js/chosen/chosen.proto.min.js +++ /dev/null @@ -1,10 +0,0 @@ -// Chosen, a Select Box Enhancer for jQuery and Protoype -// by Patrick Filler for Harvest, http://getharvest.com -// -// Version 0.9.8 -// Full source at https://github.com/harvesthq/chosen -// Copyright (c) 2011 Harvest http://getharvest.com - -// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -// This file is generated by `cake build`, do not edit it by hand. -(function(){var SelectParser;SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return child.nodeName.toUpperCase()==="OPTGROUP"?this.add_group(child):this.add_option(child)},SelectParser.prototype.add_group=function(group){var group_position,option,_i,_len,_ref,_results;group_position=this.parsed.length,this.parsed.push({array_index:group_position,group:!0,label:group.label,children:0,disabled:group.disabled}),_ref=group.childNodes,_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++)option=_ref[_i],_results.push(this.add_option(option,group_position,group.disabled));return _results},SelectParser.prototype.add_option=function(option,group_position,group_disabled){if(option.nodeName.toUpperCase()==="OPTION")return option.text!==""?(group_position!=null&&(this.parsed[group_position].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,selected:option.selected,disabled:group_disabled===!0?group_disabled:option.disabled,group_array_index:group_position,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},SelectParser}(),SelectParser.select_to_array=function(select){var child,parser,_i,_len,_ref;parser=new SelectParser,_ref=select.childNodes;for(_i=0,_len=_ref.length;_i<_len;_i++)child=_ref[_i],parser.add_node(child);return parser.parsed},this.SelectParser=SelectParser}).call(this),function(){var AbstractChosen,root;root=this,AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field,this.options=options!=null?options:{},this.set_default_values(),this.is_multiple=this.form_field.multiple,this.set_default_text(),this.setup(),this.set_up_html(),this.register_observers(),this.finish_setup()}return AbstractChosen.prototype.set_default_values=function(){var _this=this;return this.click_test_action=function(evt){return _this.test_active_click(evt)},this.activate_action=function(evt){return _this.activate_field(evt)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=null,this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.search_contains=this.options.search_contains||!1,this.choices=0,this.single_backstroke_delete=this.options.single_backstroke_delete||!1,this.max_selected_options=this.options.max_selected_options||Infinity},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||"Select Some Options":this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||"Select an Option",this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||"No results match"},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(evt){var _this=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return _this.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(evt){var _this=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return _this.blur_test()},100)},AbstractChosen.prototype.result_add_option=function(option){var classes,style;return option.disabled?"":(option.dom_id=this.container_id+"_o_"+option.array_index,classes=option.selected&&this.is_multiple?[]:["active-result"],option.selected&&classes.push("result-selected"),option.group_array_index!=null&&classes.push("group-option"),option.classes!==""&&classes.push(option.classes),style=option.style.cssText!==""?' style="'+option.style+'"':"",'
                  • "+option.html+"
                  • ")},AbstractChosen.prototype.results_update_field=function(){return this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.result_single_selected=null,this.results_build()},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:evt.preventDefault();if(this.results_showing)return this.result_select(evt);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.generate_field_id=function(){var new_id;return new_id=this.generate_random_id(),this.form_field.id=new_id,new_id},AbstractChosen.prototype.generate_random_char=function(){var chars,newchar,rand;return chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",rand=Math.floor(Math.random()*chars.length),newchar=chars.substring(rand,rand+1)},AbstractChosen}(),root.AbstractChosen=AbstractChosen}.call(this),function(){var Chosen,get_side_border_padding,root,__hasProp=Object.prototype.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};root=this,Chosen=function(_super){function Chosen(){Chosen.__super__.constructor.apply(this,arguments)}return __extends(Chosen,_super),Chosen.prototype.setup=function(){return this.current_value=this.form_field.value,this.is_rtl=this.form_field.hasClassName("chzn-rtl")},Chosen.prototype.finish_setup=function(){return this.form_field.addClassName("chzn-done")},Chosen.prototype.set_default_values=function(){return Chosen.__super__.set_default_values.call(this),this.single_temp=new Template('#{default}
                      '),this.multi_temp=new Template('
                        '),this.choice_temp=new Template('
                      • #{choice}
                      • '),this.choice_noclose_temp=new Template('
                      • #{choice}
                      • '),this.no_results_temp=new Template('
                      • '+this.results_none_found+' "#{terms}"
                      • ')},Chosen.prototype.set_up_html=function(){var base_template,container_props,dd_top,dd_width,sf_width;return this.container_id=this.form_field.identify().replace(/[^\w]/g,"_")+"_chzn",this.f_width=this.form_field.getStyle("width")?parseInt(this.form_field.getStyle("width"),10):this.form_field.getWidth(),container_props={id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px"},base_template=this.is_multiple?(new Element("div",container_props)).update(this.multi_temp.evaluate({"default":this.default_text})):(new Element("div",container_props)).update(this.single_temp.evaluate({"default":this.default_text})),this.form_field.hide().insert({after:base_template}),this.container=$(this.container_id),this.container.addClassName("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.down("div.chzn-drop"),dd_top=this.container.getHeight(),dd_width=this.f_width-get_side_border_padding(this.dropdown),this.dropdown.setStyle({width:dd_width+"px",top:dd_top+"px"}),this.search_field=this.container.down("input"),this.search_results=this.container.down("ul.chzn-results"),this.search_field_scale(),this.search_no_results=this.container.down("li.no-results"),this.is_multiple?(this.search_choices=this.container.down("ul.chzn-choices"),this.search_container=this.container.down("li.search-field")):(this.search_container=this.container.down("div.chzn-search"),this.selected_item=this.container.down(".chzn-single"),sf_width=dd_width-get_side_border_padding(this.search_container)-get_side_border_padding(this.search_field),this.search_field.setStyle({width:sf_width+"px"})),this.results_build(),this.set_tab_index(),this.form_field.fire("liszt:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this=this;return this.container.observe("mousedown",function(evt){return _this.container_mousedown(evt)}),this.container.observe("mouseup",function(evt){return _this.container_mouseup(evt)}),this.container.observe("mouseenter",function(evt){return _this.mouse_enter(evt)}),this.container.observe("mouseleave",function(evt){return _this.mouse_leave(evt)}),this.search_results.observe("mouseup",function(evt){return _this.search_results_mouseup(evt)}),this.search_results.observe("mouseover",function(evt){return _this.search_results_mouseover(evt)}),this.search_results.observe("mouseout",function(evt){return _this.search_results_mouseout(evt)}),this.form_field.observe("liszt:updated",function(evt){return _this.results_update_field(evt)}),this.form_field.observe("liszt:activate",function(evt){return _this.activate_field(evt)}),this.form_field.observe("liszt:open",function(evt){return _this.container_mousedown(evt)}),this.search_field.observe("blur",function(evt){return _this.input_blur(evt)}),this.search_field.observe("keyup",function(evt){return _this.keyup_checker(evt)}),this.search_field.observe("keydown",function(evt){return _this.keydown_checker(evt)}),this.search_field.observe("focus",function(evt){return _this.input_focus(evt)}),this.is_multiple?this.search_choices.observe("click",function(evt){return _this.choices_click(evt)}):this.container.observe("click",function(evt){return evt.preventDefault()})},Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field.disabled;if(this.is_disabled)return this.container.addClassName("chzn-disabled"),this.search_field.disabled=!0,this.is_multiple||this.selected_item.stopObserving("focus",this.activate_action),this.close_field();this.container.removeClassName("chzn-disabled"),this.search_field.disabled=!1;if(!this.is_multiple)return this.selected_item.observe("focus",this.activate_action)},Chosen.prototype.container_mousedown=function(evt){var target_closelink;if(!this.is_disabled)return target_closelink=evt!=null?evt.target.hasClassName("search-choice-close"):!1,evt&&evt.type==="mousedown"&&!this.results_showing&&evt.stop(),!this.pending_destroy_click&&!target_closelink?(this.active_field?!this.is_multiple&&evt&&(evt.target===this.selected_item||evt.target.up("a.chzn-single"))&&this.results_toggle():(this.is_multiple&&this.search_field.clear(),document.observe("click",this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClassName("chzn-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return document.stopObserving("click",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClassName("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClassName("chzn-container-active"),this.active_field=!0,this.search_field.value=this.search_field.value,this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){return evt.target.up("#"+this.container_id)?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){var content,data,_i,_len,_ref;this.parsing=!0,this.results_data=root.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.select("li.search-choice").invoke("remove"),this.choices=0):this.is_multiple||(this.selected_item.addClassName("chzn-default").down("span").update(this.default_text),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?this.container.addClassName("chzn-container-single-nosearch"):this.container.removeClassName("chzn-container-single-nosearch")),content="",_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++)data=_ref[_i],data.group?content+=this.result_add_group(data):data.empty||(content+=this.result_add_option(data),data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&(this.selected_item.removeClassName("chzn-default").down("span").update(data.html),this.allow_single_deselect&&this.single_deselect_control_build()));return this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.update(content),this.parsing=!1},Chosen.prototype.result_add_group=function(group){return group.disabled?"":(group.dom_id=this.container_id+"_g_"+group.array_index,'
                      • '+group.label.escapeHTML()+"
                      • ")},Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;this.result_clear_highlight(),this.result_highlight=el,this.result_highlight.addClassName("highlighted"),maxHeight=parseInt(this.search_results.getStyle("maxHeight"),10),visible_top=this.search_results.scrollTop,visible_bottom=maxHeight+visible_top,high_top=this.result_highlight.positionedOffset().top,high_bottom=high_top+this.result_highlight.getHeight();if(high_bottom>=visible_bottom)return this.search_results.scrollTop=high_bottom-maxHeight>0?high_bottom-maxHeight:0;if(high_top0&&this.search_field.value.length<1&&this.results_hide(),link.up("li").remove()},Chosen.prototype.results_reset=function(){this.form_field.options[0].selected=!0,this.selected_item.down("span").update(this.default_text),this.is_multiple||this.selected_item.addClassName("chzn-default"),this.show_search_field_default(),this.results_reset_cleanup(),typeof Event.simulate=="function"&&this.form_field.simulate("change");if(this.active_field)return this.results_hide()},Chosen.prototype.results_reset_cleanup=function(){var deselect_trigger;this.current_value=this.form_field.value,deselect_trigger=this.selected_item.down("abbr");if(deselect_trigger)return deselect_trigger.remove()},Chosen.prototype.result_select=function(evt){var high,item,position;if(this.result_highlight)return high=this.result_highlight,this.result_clear_highlight(),this.is_multiple?this.result_deactivate(high):(this.search_results.descendants(".result-selected").invoke("removeClassName","result-selected"),this.selected_item.removeClassName("chzn-default"),this.result_single_selected=high),high.addClassName("result-selected"),position=high.id.substr(high.id.lastIndexOf("_")+1),item=this.results_data[position],item.selected=!0,this.form_field.options[item.options_index].selected=!0,this.is_multiple?this.choice_build(item):(this.selected_item.down("span").update(item.html),this.allow_single_deselect&&this.single_deselect_control_build()),(!evt.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.value="",typeof Event.simulate=="function"&&(this.is_multiple||this.form_field.value!==this.current_value)&&this.form_field.simulate("change"),this.current_value=this.form_field.value,this.search_field_scale()},Chosen.prototype.result_activate=function(el){return el.addClassName("active-result")},Chosen.prototype.result_deactivate=function(el){return el.removeClassName("active-result")},Chosen.prototype.result_deselect=function(pos){var result,result_data;return result_data=this.results_data[pos],this.form_field.options[result_data.options_index].disabled?!1:(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,result=$(this.container_id+"_o_"+pos),result.removeClassName("result-selected").addClassName("active-result").show(),this.result_clear_highlight(),this.winnow_results(),typeof Event.simulate=="function"&&this.form_field.simulate("change"),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&!this.selected_item.down("abbr"))return this.selected_item.down("span").insert({after:''})},Chosen.prototype.winnow_results=function(){var found,option,part,parts,regex,regexAnchor,result_id,results,searchText,startpos,text,zregex,_i,_j,_len,_len2,_ref;this.no_results_clear(),results=0,searchText=this.search_field.value===this.default_text?"":this.search_field.value.strip().escapeHTML(),regexAnchor=this.search_contains?"":"^",regex=new RegExp(regexAnchor+searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),zregex=new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(!option.disabled&&!option.empty)if(option.group)$(option.dom_id).hide();else if(!this.is_multiple||!option.selected){found=!1,result_id=option.dom_id;if(regex.test(option.html))found=!0,results+=1;else if(option.html.indexOf(" ")>=0||option.html.indexOf("[")===0){parts=option.html.replace(/\[|\]/g,"").split(" ");if(parts.length)for(_j=0,_len2=parts.length;_j<_len2;_j++)part=parts[_j],regex.test(part)&&(found=!0,results+=1)}found?(searchText.length?(startpos=option.html.search(zregex),text=option.html.substr(0,startpos+searchText.length)+"
                        "+option.html.substr(startpos+searchText.length),text=text.substr(0,startpos)+""+text.substr(startpos)):text=option.html,$(result_id).innerHTML!==text&&$(result_id).update(text),this.result_activate($(result_id)),option.group_array_index!=null&&$(this.results_data[option.group_array_index].dom_id).setStyle({display:"list-item"})):($(result_id)===this.result_highlight&&this.result_clear_highlight(),this.result_deactivate($(result_id)))}}return results<1&&searchText.length?this.no_results(searchText):this.winnow_results_set_highlight()},Chosen.prototype.winnow_results_clear=function(){var li,lis,_i,_len,_results;this.search_field.clear(),lis=this.search_results.select("li"),_results=[];for(_i=0,_len=lis.length;_i<_len;_i++)li=lis[_i],li.hasClassName("group-result")?_results.push(li.show()):!this.is_multiple||!li.hasClassName("result-selected")?_results.push(this.result_activate(li)):_results.push(void 0);return _results},Chosen.prototype.winnow_results_set_highlight=function(){var do_high;if(!this.result_highlight){this.is_multiple||(do_high=this.search_results.down(".result-selected.active-result")),do_high==null&&(do_high=this.search_results.down(".active-result"));if(do_high!=null)return this.result_do_highlight(do_high)}},Chosen.prototype.no_results=function(terms){return this.search_results.insert(this.no_results_temp.evaluate({terms:terms}))},Chosen.prototype.no_results_clear=function(){var nr,_results;nr=null,_results=[];while(nr=this.search_results.down(".no-results"))_results.push(nr.remove());return _results},Chosen.prototype.keydown_arrow=function(){var actives,nexts,sibs;actives=this.search_results.select("li.active-result");if(actives.length){this.result_highlight?this.results_showing&&(sibs=this.result_highlight.nextSiblings(),nexts=sibs.intersect(actives),nexts.length&&this.result_do_highlight(nexts.first())):this.result_do_highlight(actives.first());if(!this.results_showing)return this.results_show()}},Chosen.prototype.keyup_arrow=function(){var actives,prevs,sibs;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return sibs=this.result_highlight.previousSiblings(),actives=this.search_results.select("li.active-result"),prevs=sibs.intersect(actives),prevs.length?this.result_do_highlight(prevs.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;if(this.pending_backstroke)return this.choice_destroy(this.pending_backstroke.down("a")),this.clear_backstroke();next_available_destroy=this.search_container.siblings().last();if(next_available_destroy&&next_available_destroy.hasClassName("search-choice")&&!next_available_destroy.hasClassName("search-choice-disabled"))return this.pending_backstroke=next_available_destroy,this.pending_backstroke&&this.pending_backstroke.addClassName("search-choice-focus"),this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClassName("search-choice-focus")},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClassName("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale(),stroke!==8&&this.pending_backstroke&&this.clear_backstroke();switch(stroke){case 8:this.backstroke_length=this.search_field.value.length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var dd_top,div,h,style,style_block,styles,w,_i,_len;if(this.is_multiple){h=0,w=0,style_block="position:absolute; left: -1000px; top: -1000px; display:none;",styles=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(_i=0,_len=styles.length;_i<_len;_i++)style=styles[_i],style_block+=style+":"+this.search_field.getStyle(style)+";";return div=(new Element("div",{style:style_block})).update(this.search_field.value.escapeHTML()),document.body.appendChild(div),w=Element.measure(div,"width")+25,div.remove(),w>this.f_width-10&&(w=this.f_width-10),this.search_field.setStyle({width:w+"px"}),dd_top=this.container.getHeight(),this.dropdown.setStyle({top:dd_top+"px"})}},Chosen}(AbstractChosen),root.Chosen=Chosen,Prototype.Browser.IE&&/MSIE (\d+\.\d+);/.test(navigator.userAgent)&&(Prototype.BrowserFeatures.Version=new Number(RegExp.$1)),get_side_border_padding=function(elmt){var layout,side_border_padding;return layout=new Element.Layout(elmt),side_border_padding=layout.get("border-left")+layout.get("border-right")+layout.get("padding-left")+layout.get("padding-right")},root.get_side_border_padding=get_side_border_padding}.call(this); \ No newline at end of file diff --git a/js/fieldmanager-select.js b/js/fieldmanager-select.js index 0fb3e4918a..24a7ed8d84 100644 --- a/js/fieldmanager-select.js +++ b/js/fieldmanager-select.js @@ -6,7 +6,7 @@ fm_select_clear_terms = function( $fm_field, $fm_options, debug ) { $fm_field.find( 'option:not(:selected)' ).remove(); // Inform chosen the list has been updated - $fm_field.trigger("liszt:updated"); + $fm_field.trigger("chosen:updated"); } fm_append_options = function( $append_to, $options, selected ) { @@ -35,8 +35,8 @@ fm_reset_chosen = function( $fm_text_field, fm_text_field_val ) { // Display optgroup labels for matched elements // chosen.js does not do this for dynamic changes while the dropdown is open - $fm_text_field.parents(".chzn-choices").siblings(".chzn-drop").find("li.group-result").hide(); - $fm_text_field.parents(".chzn-choices").siblings(".chzn-drop").find("li.active-result").each( function( index, element ) { + $fm_text_field.parents(".chosen-choices").siblings(".chosen-drop").find("li.group-result").hide(); + $fm_text_field.parents(".chosen-choices").siblings(".chosen-drop").find("li.active-result").each( function( index, element ) { $(element).prevUntil(".group-result").prev(".group-result").show(); $(element).prev(".group-result").show(); } ); @@ -46,12 +46,12 @@ $( document ).ready( function() { // Track changes to the chosen text field linked to the select in order to update options via Ajax // Used for taxonomy-based fields where preload is disabled - $('.fm-wrapper').on( 'keyup', '.fm-item .chzn-choices input,.fm-item .chzn-search input', function( e ) { + $('.fm-wrapper').on( 'keyup', '.fm-item .chosen-choices input,.fm-item .chosen-search input', function( e ) { // Do not execute this function for arrow key presses if( e.keyCode >= 37 && e.keyCode <= 40 ) return; // Get the corresponding Fieldmanager select field to access data attributes needed for the Ajax call - $fm_select_field = $(this).parents('.chzn-container').siblings('select'); + $fm_select_field = $(this).parents('.chosen-container').siblings('select'); $fm_text_field = $(this); if( $fm_select_field.data("taxonomy") != "" && $fm_select_field.data("taxonomyPreload") == false ) { @@ -61,7 +61,7 @@ $( document ).ready( function() { // Clear any non-selected terms before proceeding fm_text_field_val = $fm_text_field.val(); fm_select_clear_terms( $fm_select_field, "", false ); - $fm_select_field.trigger("liszt:updated"); + $fm_select_field.trigger("chosen:updated"); fm_reset_chosen( $fm_text_field, fm_text_field_val ); if( result != "" ) { @@ -85,7 +85,7 @@ $( document ).ready( function() { } // Inform chosen this field has been updated to populate these options in the typeahead dropdown - $fm_select_field.trigger("liszt:updated"); + $fm_select_field.trigger("chosen:updated"); // Restore the search term since chosen automatically clears it on the update trigger above fm_reset_chosen( $fm_text_field, fm_text_field_val ); @@ -94,9 +94,9 @@ $( document ).ready( function() { } ); // Clear the non-selected options when entering or exiting the typeahead text field - $('.fm-wrapper').on( 'click', '.fm-item .chzn-choices input', function( e ) { - var $this_select_field = $(this).parents('.chzn-container').siblings('select'); - if( $this_select_field.data("taxonomy") != "" && $this_select_field.data("taxonomyPreload") == false ) fm_select_clear_terms( $this_select_field, $(this).parents('.chzn-choices'), true ); + $('.fm-wrapper').on( 'click', '.fm-item .chosen-choices input', function( e ) { + var $this_select_field = $(this).parents('.chosen-container').siblings('select'); + if( $this_select_field.data("taxonomy") != "" && $this_select_field.data("taxonomyPreload") == false ) fm_select_clear_terms( $this_select_field, $(this).parents('.chosen-choices'), true ); } ); } ); diff --git a/php/class-fieldmanager-select.php b/php/class-fieldmanager-select.php index 41bf644861..9dd70e0728 100644 --- a/php/class-fieldmanager-select.php +++ b/php/class-fieldmanager-select.php @@ -73,8 +73,8 @@ public function __construct( $label = '', $options = array() ) { // Add the chosen library for type-ahead capabilities. if ( $this->type_ahead ) { - fm_add_script( 'chosen', 'js/chosen/chosen.jquery.js' ); - fm_add_style( 'chosen_css', 'js/chosen/chosen.css' ); + fm_add_script( 'fm_chosen', 'js/chosen/chosen.jquery.min.js', array( 'jquery' ), '1.8.2' ); + fm_add_style( 'fm_chosen_css', 'js/chosen/chosen.min.css', array(), '1.8.2' ); } } @@ -97,7 +97,7 @@ public function form_element( $value = array() ) { // Handle type-ahead based fields using the chosen library. if ( $this->type_ahead ) { - $select_classes[] = 'chzn-select'; + $select_classes[] = 'chosen-select'; if ( ! isset( $GLOBALS['fm_chosen_initialized'] ) ) { add_action( 'admin_footer', array( $this, 'chosen_init' ) ); $GLOBALS['fm_chosen_initialized'] = true; @@ -177,10 +177,15 @@ public function chosen_init() { ?>