demo20230512/Scripts/kendo/2014.2.716/kendo.combobox.min.js
2023-05-12 10:20:28 +08:00

16 lines
8.2 KiB
JavaScript

/**
* Copyright 2014 Telerik AD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
!function(e,define){define(["./kendo.list.min","./kendo.mobile.scroller.min"],e)}(function(){return function(e,t){var n=window.kendo,i=n.ui,r=i.List,o=i.Select,a=n.caret,s=n.support,l=s.placeholder,u=n._activeElement,c=n.keys,d=".kendoComboBox",f="click"+d,h="mousedown"+d,p="disabled",g="readonly",m="change",v="k-state-default",_="k-state-focused",y="k-state-disabled",b="aria-disabled",w="aria-readonly",x="k-state-selected",k="filter",C="accept",T="rebind",S="mouseenter"+d+" mouseleave"+d,F=null,D=e.proxy,M=o.extend({init:function(t,i){var r,a=this;a.ns=d,i=e.isArray(i)?{dataSource:i}:i,o.fn.init.call(a,t,i),a._focusHandler=function(){a.input.focus()},i=a.options,t=a.element.on("focus"+d,a._focusHandler),i.placeholder=i.placeholder||t.attr("placeholder"),a._reset(),a._wrapper(),a._input(),a._tabindex(a.input),a._popup(),a._dataSource(),a._ignoreCase(),a._enable(),a._oldIndex=a.selectedIndex=-1,a._cascade(),a._aria(),i.autoBind?a._filterSource():(r=i.text,!r&&a._isSelect&&(r=t.children(":selected").text()),r&&(a.input.val(r),a._prev=r)),r||a._placeholder(),n.notify(a)},options:{name:"ComboBox",enabled:!0,index:-1,text:null,value:null,autoBind:!0,delay:200,dataTextField:"",dataValueField:"",minLength:0,height:200,highlightFirst:!0,template:"",filter:"none",placeholder:"",suggest:!1,cascadeFrom:"",cascadeFromField:"",ignoreCase:!0,animation:{}},events:["open","close",m,"select","dataBinding","dataBound","cascade"],setOptions:function(e){o.fn.setOptions.call(this,e),this._template(),this._accessors(),this._aria()},current:function(e){var n=this,i=n._current;return e===t?i:(i&&i.removeClass(x),o.fn.current.call(n,e),t)},destroy:function(){var e=this;e.input.off(d),e.element.off(d),e._inputWrapper.off(d),o.fn.destroy.call(e)},_editable:function(e){var t=this,n=e.disable,i=e.readonly,r=t._inputWrapper.off(d),o=t.element.add(t.input.off(d)),a=t._arrow.parent().off(f+" "+h);i||n?(r.addClass(n?y:v).removeClass(n?v:y),o.attr(p,n).attr(g,i).attr(b,n).attr(w,i)):(r.addClass(v).removeClass(y).on(S,t._toggleHover),o.removeAttr(p).removeAttr(g).attr(b,!1).attr(w,!1),a.on(f,function(){t._toggle()}).on(h,function(e){e.preventDefault()}),t.input.on("keydown"+d,D(t._keydown,t)).on("focus"+d,function(){r.addClass(_),t._placeholder(!1)}).on("focusout"+d,function(){r.removeClass(_),clearTimeout(t._typing),t._typing=null,t.options.text!==t.input.val()&&t.text(t.text()),t._placeholder(),t._blur(),t.element.blur()}))},open:function(){var e=this,t=e.dataSource.options.serverFiltering;e.popup.visible()||(!e.ul[0].firstChild||e._state===C&&!t?(e._open=!0,e._state=T,e._filterSource()):(e.popup.open(),e._scroll(e._current)))},refresh:function(){var i,r,o=this,a=o.ul[0],s=o.options,l=o._state,c=o._data(),d=c.length,f=!0;o._angularItems("cleanup"),o.trigger("dataBinding"),a.innerHTML=n.render(o.template,c),o._height(d),o.popup.visible()&&o.popup._position(),o._isSelect&&(i=o.element[0].children[0],l===T&&(o._state=""),r=o._option,o._option=t,o._options(c),r&&r[0].selected?o._custom(r.val(),f):o._bound||i||o._custom("",f)),d&&(s.highlightFirst&&o.current(e(a.firstChild)),s.suggest&&o.input.val()&&o._request!==t&&o.suggest(e(a.firstChild))),l===k||o._fetch||o._selectItem(),o._open&&(o._open=!1,o._typing&&o.input[0]!==u()?o.popup.close():o.toggle(!!d),o._typing=null),o._touchScroller&&o._touchScroller.reset(),o._makeUnselectable(),o._hideBusy(),o._bound=!0,o._angularItems("compile"),o.trigger("dataBound")},suggest:function(e){var n,i=this,o=i.input[0],s=i.text(),l=a(o)[0],d=i._last;return d==c.BACKSPACE||d==c.DELETE?(i._last=t,t):(e=e||"","string"!=typeof e&&(n=r.inArray(e[0],i.ul[0]),e=n>-1?i._text(i.dataSource.view()[n]):""),0>=l&&(l=s.toLowerCase().indexOf(e.toLowerCase())+1),e?(n=e.toLowerCase().indexOf(s.toLowerCase()),n>-1&&(s+=e.substring(n+s.length))):s=s.substring(0,l),s.length===l&&e||(o.value=s,o===u()&&a(o,l,s.length)),t)},text:function(e){var n,i,r,o,a,s;return e=null===e?"":e,n=this,i=n.input[0],r=n.options.ignoreCase,o=e,e===t?i.value:(a=n.dataItem(),a&&n._text(a)===e&&(s=n._value(a),null===s?s="":s+="",s===n._old)?(n._triggerCascade(),t):(r&&(o=o.toLowerCase()),n._select(function(e){return e=n._text(e),r&&(e=(e+"").toLowerCase()),e===o}),0>n.selectedIndex&&(n._custom(e),i.value=e),n._prev=i.value,n._triggerCascade(),t))},toggle:function(e){this._toggle(e,!0)},value:function(e){var n,i=this,r=i.options;return e===t?i._accessor():(null!==e&&(e=""+e),i._selectedValue=e,!i._open&&e&&i._fetchItems(e)||(n=i._index(e),n>-1?i.select(n):(i.current(F),i._custom(e),(r.value!==e||r.text!==i.input.val())&&(i.text(e),i._placeholder())),i._old=i._accessor(),i._oldIndex=i.selectedIndex),t)},_accept:function(e){var t=this;e?t._focus(e):(t.text(t.text()),t._change())},_custom:function(t,n){var i=this,r=i.element,o=i._option;i._state!==k||n||(i._state=C),i._isSelect?(o||(o=i._option=e("<option/>"),r.append(o)),o.text(t),o[0].selected=!0):r.val(t),i._selectedValue=t},_filter:function(e){var n=this,i=n.options,r=n.dataSource,o=i.ignoreCase,a=function(i){var r=n._text(i);return r!==t?(r+="",""!==r&&""===e?!1:(o&&(r=r.toLowerCase()),0===r.indexOf(e))):t};return o&&(e=e.toLowerCase()),n.ul[0].firstChild?(-1!==n._highlight(a)&&(i.suggest&&n._current&&n.suggest(n._current),n.open()),n._hideBusy(),t):(r.one(m,function(){r.data()[0]&&n.search(e)}).fetch(),t)},_highlight:function(n){var i,o=this;return n===t||null===n?-1:(n=o._get(n),i=r.inArray(n[0],o.ul[0]),-1==i&&(o.options.highlightFirst&&!o.text()?(n=o.ul[0].firstChild,n&&(n=e(n))):n=F),o.current(n),i)},_input:function(){var t,n=this,i=n.element.removeClass("k-input")[0],r=i.accessKey,o=n.wrapper,a="input.k-input",s=i.name||"";s&&(s='name="'+s+'_input" '),t=o.find(a),t[0]||(o.append('<span tabindex="-1" unselectable="on" class="k-dropdown-wrap k-state-default"><input '+s+'class="k-input" type="text" autocomplete="off"/><span tabindex="-1" unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select</span></span></span>').append(n.element),t=o.find(a)),t[0].style.cssText=i.style.cssText,i.maxLength>-1&&(t[0].maxLength=i.maxLength),t.addClass(i.className).val(this.options.text||i.value).css({width:"100%",height:i.style.height}).attr({role:"combobox","aria-expanded":!1}).show(),l&&t.attr("placeholder",n.options.placeholder),r&&(i.accessKey="",t[0].accessKey=r),n._focused=n.input=t,n._inputWrapper=e(o[0].firstChild),n._arrow=o.find(".k-icon").attr({role:"button",tabIndex:-1}),i.id&&n._arrow.attr("aria-controls",n.ul[0].id)},_keydown:function(e){var t=this,n=e.keyCode;t._last=n,clearTimeout(t._typing),t._typing=null,n==c.TAB||t._move(e)||t._search()},_placeholder:function(e){if(!l){var n,i=this,r=i.input,o=i.options.placeholder;if(o){if(n=i.value(),e===t&&(e=!n),r.toggleClass("k-readonly",e),!e){if(n)return;o=""}r.val(o),o||r[0]!==u()||a(r[0],0,0)}}},_search:function(){var e=this;e._typing=setTimeout(function(){var t=e.text();e._prev!==t&&(e._prev=t,e.search(t)),e._typing=null},e.options.delay)},_select:function(e){var n,i,r=this,o=r._data(),a=r._highlight(e);r.selectedIndex=a,-1!==a&&(r._state===k&&(r._state=C),r._current.addClass(x),o=o[a],n=r._text(o),i=r._value(o),r._prev=r.input[0].value=n,r._accessor(i!==t?i:n,a),r._selectedValue=r._accessor(),r._placeholder(),r._optionID&&r._current.attr("aria-selected",!0))},_wrapper:function(){var e=this,t=e.element,n=t.parent();n.is("span.k-widget")||(n=t.hide().wrap("<span />").parent(),n[0].style.cssText=t[0].style.cssText),e.wrapper=n.addClass("k-widget k-combobox k-header").addClass(t[0].className).css("display","")},_clearSelection:function(e,t){var n=this,i=e._selectedValue||e.value(),r=i&&-1===e.selectedIndex;(t||!i||r)&&(n.value(""),n.options.value="")}});i.plugin(M)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t){t()});