@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 19.1 kB
JavaScript
module.exports=function(t){function e(n){if(i[n])return i[n].exports;var a=i[n]={exports:{},id:n,loaded:!1};return t[n].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}({0:function(t,e,i){t.exports=i(1202)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},1076:function(t,e){t.exports=require("./kendo.list")},1077:function(t,e){t.exports=require("./kendo.mobile.scroller")},1078:function(t,e){t.exports=require("./kendo.virtuallist")},1202:function(t,e,i){var n,a,o;!function(s,define){a=[i(1076),i(1077),i(1078)],n=s,o="function"==typeof n?n.apply(e,a):n,!(void 0!==o&&(t.exports=o))}(function(){return function(t,e){function i(t,e,i){for(var n,a=0,o=e.length-1;a<o;++a)n=e[a],n in t||(t[n]={}),t=t[n];t[e[o]]=i}function n(t,e){return t>=e&&(t-=e),t}function a(t,e){for(var i=0;i<t.length;i++)if(t.charAt(i)!==e)return!1;return!0}var o=window.kendo,s=o.ui,l=s.List,r=s.Select,p=o.support,u=o._activeElement,c=o.data.ObservableObject,d=o.keys,f=".kendoDropDownList",_=f+"FocusEvent",h="disabled",m="readonly",v="change",b="k-state-focused",w="k-state-default",g="k-state-disabled",I="aria-disabled",x="aria-readonly",L="click"+f+" touchend"+f,k="mouseenter"+f+" mouseleave"+f,y="tabindex",T="filter",V="accept",C="The `optionLabel` option is not valid due to missing fields. Define a custom optionLabel as shown here http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#configuration-optionLabel",O=t.proxy,D="open",F="close",S=r.extend({init:function(i,n){var a,s,l,p=this,u=n&&n.index;p.ns=f,n=Array.isArray(n)?{dataSource:n}:n,r.fn.init.call(p,i,n),n=p.options,i=p.element.on("focus"+f,O(p._focusHandler,p)),p._focusInputHandler=t.proxy(p._focusInput,p),p.optionLabel=t(),p._optionLabel(),p._inputTemplate(),p._reset(),p._prev="",p._word="",p._wrapper(),p._tabindex(),p.wrapper.data(y,p.wrapper.attr(y)),p._span(),p._popup(),p._mobile(),p._dataSource(),p._ignoreCase(),p._filterHeader(),p._aria(),p.wrapper.attr("aria-live","polite"),p._enable(),p._attachFocusHandlers(),p._oldIndex=p.selectedIndex=-1,u!==e&&(n.index=u),p._initialIndex=n.index,p.requireValueMapper(p.options),p._initList(),p.listView.one("dataBound",O(p._attachAriaActiveDescendant,p)),p._cascade(),p.one("set",function(t){!t.sender.listView.bound()&&p.hasOptionLabel()&&p._textAccessor(p._optionLabelText())}),n.autoBind?p.dataSource.fetch():p.selectedIndex===-1&&(s=n.text||"",s||(a=n.optionLabel,a&&0===n.index?s=a:p._isSelect&&(s=i.children(":selected").text())),p._textAccessor(s)),l=t(p.element).parents("fieldset").is(":disabled"),l&&p.enable(!1),p.listView.bind("click",function(t){t.preventDefault()}),o.notify(p)},options:{name:"DropDownList",enabled:!0,autoBind:!0,index:0,text:null,value:null,delay:500,height:200,dataTextField:"",dataValueField:"",optionLabel:"",cascadeFrom:"",cascadeFromField:"",cascadeFromParentField:"",ignoreCase:!0,animation:{},filter:"none",minLength:1,enforceMinLength:!1,virtual:!1,template:null,valueTemplate:null,optionLabelTemplate:null,groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",autoWidth:!1,popup:null,filterTitle:null},events:["open","close",v,"select","filtering","dataBinding","dataBound","cascade","set","kendoKeydown"],setOptions:function(t){r.fn.setOptions.call(this,t),this.listView.setOptions(this._listOptions(t)),this._optionLabel(),this._inputTemplate(),this._accessors(),this._filterHeader(),this._enable(),this._aria(),!this.value()&&this.hasOptionLabel()&&this.select(0)},destroy:function(){var t=this;r.fn.destroy.call(t),t.wrapper.off(f),t.wrapper.off(_),t.element.off(f),t._inputWrapper.off(f),t._arrow.off(),t._arrow=null,t._arrowIcon=null,t.optionLabel.off(),t.filterInput&&t.filterInput.off(_)},open:function(){var t=this,e=!!t.dataSource.filter()&&t.dataSource.filter().filters.length>0,i=this.listView;t.popup.visible()||(t.listView.bound()&&t._state!==V?t._allowOpening()&&(t._focusFilter=!0,t.popup.one("activate",t._focusInputHandler),t.popup._hovered=!0,t.wrapper.attr("aria-activedescendant",i._optionID),t.popup.open(),t._resizeFilterInput(),t._focusItem()):(t._open=!0,t._state="rebind",t.filterInput&&(t.filterInput.val(""),t._prev=""),t.filterInput&&1!==t.options.minLength&&!e?(t.refresh(),t.popup.one("activate",t._focusInputHandler),t.wrapper.attr("aria-activedescendant",i._optionID),t.popup.open(),t._resizeFilterInput()):t._filterSource()))},close:function(){this._attachAriaActiveDescendant(),this.popup.close()},_attachAriaActiveDescendant:function(){var t=this.wrapper,e=t.find(".k-input").attr("id");t.attr("aria-activedescendant",e)},_focusInput:function(){this._focusElement(this.filterInput)},_resizeFilterInput:function(){var t,e,i=this.filterInput,n=this._prevent;i&&(t=this.filterInput[0]===u(),e=o.caret(this.filterInput[0])[0],this._prevent=!0,i.css("display","none").css("width",this.popup.element.css("width")).css("display","inline-block"),t&&(i.trigger("focus"),o.caret(i[0],e)),this._prevent=n)},_allowOpening:function(){return this.hasOptionLabel()||this.filterInput||r.fn._allowOpening.call(this)},toggle:function(t){this._toggle(t,!0)},current:function(t){var i;return t===e?(i=this.listView.focus(),!i&&0===this.selectedIndex&&this.hasOptionLabel()?this.optionLabel:i):(this._focus(t),e)},dataItem:function(i){var n=this,a=null;if(null===i)return i;if(i===e)a=n.listView.selectedDataItems()[0];else{if("number"!=typeof i){if(n.options.virtual)return n.dataSource.getByUid(t(i).data("uid"));i=i.hasClass("k-list-optionlabel")?-1:t(n.items()).index(i)}else n.hasOptionLabel()&&(i-=1);a=n.dataSource.flatView()[i]}return a||(a=n._optionLabelDataItem()),a},refresh:function(){this.listView.refresh()},text:function(t){var i,n=this,a=n.options.ignoreCase;return t=null===t?"":t,t===e?n._textAccessor():"string"!=typeof t?(n._textAccessor(t),e):(i=a?t.toLowerCase():t,n._select(function(t){return t=n._text(t),a&&(t=(t+"").toLowerCase()),t===i}).done(function(){n._textAccessor(n.dataItem()||t)}),e)},_clearFilter:function(){t(this.filterInput).val(""),r.fn._clearFilter.call(this)},value:function(t){var i=this,n=i.listView,a=i.dataSource;return t===e?(t=i._accessor()||i.listView.value()[0],t===e||null===t?"":t):(i.requireValueMapper(i.options,t),!t&&i.hasOptionLabel()||(i._initialIndex=null),this.trigger("set",{value:t}),i._request&&i.options.cascadeFrom&&i.listView.bound()?(i._valueSetter&&a.unbind(v,i._valueSetter),i._valueSetter=O(function(){i.value(t)},i),a.one(v,i._valueSetter),e):(i._isFilterEnabled()&&n.bound()&&n.isFiltered()?i._clearFilter():i._fetchData(),n.value(t).done(function(){i._old=i._valueBeforeCascade=i._accessor(),i._oldIndex=i.selectedIndex}),e))},hasOptionLabel:function(){return this.optionLabel&&!!this.optionLabel[0]},_optionLabel:function(){var i=this,n=i.options,a=n.optionLabel,s=n.optionLabelTemplate;return a?(s||(s="#:",s+="string"==typeof a?"data":o.expr(n.dataTextField,"data"),s+="#"),"function"!=typeof s&&(s=o.template(s)),i.optionLabelTemplate=s,i.hasOptionLabel()||(i.optionLabel=t('<div class="k-list-optionlabel"></div>').prependTo(i.list)),i.optionLabel.html(s(a)).off().on(L,O(i._click,i)).on(k,i._toggleHover),i.angular("compile",function(){return{elements:i.optionLabel,data:[{dataItem:i._optionLabelDataItem()}]}}),e):(i.optionLabel.off().remove(),i.optionLabel=t(),e)},_optionLabelText:function(){var t=this.options.optionLabel;return"string"==typeof t?t:this._text(t)},_optionLabelDataItem:function(){var i=this,n=i.options.optionLabel;return i.hasOptionLabel()?t.isPlainObject(n)?new c(n):i._assignInstance(i._optionLabelText(),""):e},_buildOptions:function(t){var i,n,a,o=this;o._isSelect&&(i=o.listView.value()[0],n=o._optionLabelDataItem(),a=n&&o._value(n),i!==e&&null!==i||(i=""),n&&(a!==e&&null!==a||(a=""),n='<option value="'+a+'">'+o._text(n)+"</option>"),o._options(t,n,i),i!==l.unifyType(o._accessor(),typeof i)&&(o._customOption=null,o._custom(i)))},_listBound:function(){var t,e=this,i=e._initialIndex,n=e._state===T,a=e.dataSource.flatView();e._presetValue=!1,e._renderFooter(),e._renderNoData(),e._toggleNoData(!a.length),e._resizePopup(!0),e.popup.position(),e._buildOptions(a),n||(e._open&&e.toggle(e._allowOpening()),e._open=!1,e._fetch||(a.length?(!e.listView.value().length&&i>-1&&null!==i&&e.select(i),e._initialIndex=null,t=e.listView.selectedDataItems()[0],t&&e.text()!==e._text(t)&&e._selectValue(t)):e._textAccessor()!==e._optionLabelText()&&(e.listView.value(""),e._selectValue(null),e._oldIndex=e.selectedIndex))),e._hideBusy(),e.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]),(this._presetValue||this._old&&this._oldIndex===-1)&&(this._oldIndex=this.selectedIndex)},_filterPaste:function(){this._search()},_attachFocusHandlers:function(){var t=this,e=t.wrapper;e.on("focusin"+_,O(t._focusinHandler,t)).on("focusout"+_,O(t._focusoutHandler,t)),t.filterInput&&t.filterInput.on("focusin"+_,O(t._focusinHandler,t)).on("focusout"+_,O(t._focusoutHandler,t))},_focusHandler:function(){this.wrapper.trigger("focus")},_focusinHandler:function(){this._inputWrapper.addClass(b),this._prevent=!1},_focusoutHandler:function(){var t=this,e=window.self!==window.top;t._prevent||(clearTimeout(t._typingTimeout),p.mobileOS.ios&&e?t._change():t._blur(),t._inputWrapper.removeClass(b),t._prevent=!0,t._open=!1,t.element.trigger("blur"))},_wrapperMousedown:function(){this._prevent=!!this.filterInput},_wrapperClick:function(t){t.preventDefault(),this.popup.unbind("activate",this._focusInputHandler),this._focused=this.wrapper,this._prevent=!1,this._toggle()},_editable:function(t){var e=this,i=e.element,n=t.disable,a=t.readonly,s=e.wrapper.add(e.filterInput).off(f),l=e._inputWrapper.off(k);a||n?n?(s.removeAttr(y),l.addClass(g).removeClass(w)):l.addClass(w).removeClass(g):(i.prop(h,!1).prop(m,!1),l.addClass(w).removeClass(g).on(k,e._toggleHover),s.attr(y,s.data(y)).attr(I,!1).attr(x,!1).on("keydown"+f,e,O(e._keydown,e)).on(o.support.mousedown+f,O(e._wrapperMousedown,e)).on("paste"+f,O(e._filterPaste,e)),e.wrapper.on("click"+f,O(e._wrapperClick,e)),e.filterInput?s.on("input"+f,O(e._search,e)):s.on("keypress"+f,O(e._keypress,e))),i.attr(h,n).attr(m,a),s.attr(I,n).attr(x,a)},_keydown:function(t){var i,n,a,o=this,s=t.keyCode,l=t.altKey,r=o.popup.visible();if(o.filterInput&&(i=o.filterInput[0]===u()),s===d.LEFT?(s=d.UP,n=!0):s===d.RIGHT&&(s=d.DOWN,n=!0),!n||!i){if(t.keyCode=s,(l&&s===d.UP||s===d.ESC)&&o._focusElement(o.wrapper),o._state===T&&s===d.ESC&&(o._clearFilter(),o._open=!1,o._state=V),s===d.ENTER&&o._typingTimeout&&o.filterInput&&r)return t.preventDefault(),e;if(s!==d.SPACEBAR||i||(o.toggle(!r),t.preventDefault()),n=o._move(t),!n){if((!r||!o.filterInput)&&(a=o._focus(),s===d.HOME?(n=!0,o._firstItem()):s===d.END&&(n=!0,o._lastItem()),n)){if(o.trigger("select",{dataItem:o._getElementDataItem(o._focus()),item:o._focus()}))return o._focus(a),e;o._select(o._focus(),!0).done(function(){r||o._blur()}),t.preventDefault()}l||n||!o.filterInput||o._search()}}},_matchText:function(t,i){var n=this.options.ignoreCase;return t!==e&&null!==t&&(t+="",n&&(t=t.toLowerCase()),0===t.indexOf(i))},_shuffleData:function(t,e){var i=this._optionLabelDataItem();return i&&(t=[i].concat(t)),t.slice(e).concat(t.slice(0,e))},_selectNext:function(){var t,e,i,o=this,s=o.dataSource.flatView(),l=s.length+(o.hasOptionLabel()?1:0),r=a(o._word,o._last),p=o.selectedIndex;for(p===-1?p=0:(p+=r?1:0,p=n(p,l)),s=s.toJSON?s.toJSON():s.slice(),s=o._shuffleData(s,p),i=0;i<l&&(e=o._text(s[i]),!r||!o._matchText(e,o._last))&&!o._matchText(e,o._word);i++);i!==l&&(t=o._focus(),o._select(n(p+i,l)).done(function(){var e=function(){o.popup.visible()||o._change()};o.trigger("select",{dataItem:o._getElementDataItem(o._focus()),item:o._focus()})?o._select(t).done(e):e()}))},_keypress:function(t){var e,i=this;0!==t.which&&t.keyCode!==o.keys.ENTER&&(e=String.fromCharCode(t.charCode||t.keyCode),i.options.ignoreCase&&(e=e.toLowerCase())," "===e&&t.preventDefault(),i._word+=e,i._last=e,i._search())},_popupOpen:function(){var t=this.popup;t.wrapper=o.wrap(t.element),t.element.closest(".km-root")[0]&&(t.wrapper.addClass("km-popup km-widget"),this.wrapper.addClass("km-widget"))},_popup:function(){r.fn._popup.call(this),this.popup.one("open",O(this._popupOpen,this))},_getElementDataItem:function(t){return t&&t[0]?t[0]===this.optionLabel[0]?this._optionLabelDataItem():this.listView.dataItemByIndex(this.listView.getElementIndex(t)):null},_click:function(i){var n=this,a=i.item||t(i.currentTarget);return i.preventDefault(),n.trigger("select",{dataItem:n._getElementDataItem(a),item:a})?(n.close(),e):(n._userTriggered=!0,n._select(a).done(function(){n._blur(),n._focusElement(n.wrapper)}),e)},_focusElement:function(t){var e=u(),i=this.wrapper,n=this.filterInput,a=t===n?i:n,o=p.mobileOS&&(p.touch||p.MSPointers||p.pointers);n&&n[0]===t[0]&&o||n&&(a[0]===e||this._focusFilter)&&(this._focusFilter=!1,this._prevent=!0,this._focused=t.trigger("focus"))},_searchByWord:function(t){var e,i;t&&(e=this,i=e.options.ignoreCase,i&&(t=t.toLowerCase()),e._select(function(i){return e._matchText(e._text(i),t)}))},_inputValue:function(){return this.text()},_search:function(){var t=this,i=t.dataSource;if(clearTimeout(t._typingTimeout),t._isFilterEnabled())t._typingTimeout=setTimeout(function(){var e=t.filterInput.val();t._prev!==e&&(t._prev=e,t.search(e),t._resizeFilterInput()),t._typingTimeout=null},t.options.delay);else{if(t._typingTimeout=setTimeout(function(){t._word=""},t.options.delay),!t.listView.bound())return i.fetch().done(function(){t._selectNext()}),e;t._selectNext()}},_get:function(e){var i,n,a,o="function"==typeof e,s=o?t():t(e);if(this.hasOptionLabel()&&("number"==typeof e?e>-1&&(e-=1):s.hasClass("k-list-optionlabel")&&(e=-1)),o){for(i=this.dataSource.flatView(),a=0;a<i.length;a++)if(e(i[a])){e=a,n=!0;break}n||(e=-1)}return e},_firstItem:function(){this.hasOptionLabel()?this._focus(this.optionLabel):this.listView.focusFirst()},_lastItem:function(){this._resetOptionLabel(),this.listView.focusLast()},_nextItem:function(){var t;return this.optionLabel.hasClass("k-state-focused")?(this._resetOptionLabel(),this.listView.focusFirst(),t=1):t=this.listView.focusNext(),t},_prevItem:function(){var t;if(!this.optionLabel.hasClass("k-state-focused"))return t=this.listView.focusPrev(),this.listView.focus()||this.options.virtual||this._focus(this.optionLabel),t},_focusItem:function(){var t=this.options,i=this.listView,n=i.focus(),a=i.select();a=a[a.length-1],a===e&&t.highlightFirst&&!n&&(a=0),a!==e?i.focus(a):!t.optionLabel||t.virtual&&"dataItem"===t.virtual.mapValueTo?i.scrollToIndex(0):(this._focus(this.optionLabel),this._select(this.optionLabel),this.listView.content.scrollTop(0))},_resetOptionLabel:function(t){this.optionLabel.removeClass("k-state-focused"+(t||"")).removeAttr("id")},_focus:function(t){var i=this.listView,n=this.optionLabel;return t===e?(t=i.focus(),!t&&n.hasClass("k-state-focused")&&(t=n),t):(this._resetOptionLabel(),t=this._get(t),i.focus(t),t===-1&&(n.addClass("k-state-focused").attr("id",i._optionID),this._focused.add(this.filterInput).removeAttr("aria-activedescendant").attr("aria-activedescendant",i._optionID)),e)},_select:function(t,e){var i=this;return t=i._get(t),i.listView.select(t).done(function(){e||i._state!==T||(i._state=V),t===-1&&i._selectValue(null)})},_selectValue:function(t){var i=this,n=i.options.optionLabel,a=i.listView.select(),o="",s="";a=a[a.length-1],a===e&&(a=-1),this._resetOptionLabel(" k-state-selected"),t||0===t?(s=t,o=i._dataValue(t),n&&(a+=1)):n&&(i._focus(i.optionLabel.addClass("k-state-selected")),s=i._optionLabelText(),o="string"==typeof n?"":i._value(n),a=0),i.selectedIndex=a,null===o&&(o=""),i._textAccessor(s),i._accessor(o,a),i._triggerCascade()},_mobile:function(){var t=this,e=t.popup,i=p.mobileOS,n=e.element.parents(".km-root").eq(0);n.length&&i&&(e.options.animation.open.effects=i.android||i.meego?"fadeIn":i.ios||i.wp?"slideIn:up":e.options.animation.open.effects)},_filterHeader:function(){var e;this.filterInput&&(this.filterInput.off(f).parent().remove(),this.filterInput=null),this._isFilterEnabled()&&(e='<span class="k-icon k-i-zoom"></span>',this.filterInput=t('<input class="k-textbox"/>').attr({placeholder:this.element.attr("placeholder"),title:this.options.filterTitle||this.element.attr("title"),role:"searchbox","aria-haspopup":"listbox","aria-autocomplete":"list"}),this.list.prepend(t('<span class="k-list-filter" />').append(this.filterInput.add(e))))},_span:function(){var e,i=this,n=i.wrapper,a="span.k-input",s=o.guid();e=n.find(a),e[0]||(n.append('<span unselectable="on" class="k-dropdown-wrap k-state-default"><span id="'+s+'" unselectable="on" role="option" aria-selected="true" class="k-input"> </span><span role="button" unselectable="on" class="k-select" aria-label="select"><span class="k-icon k-i-arrow-60-down"></span></span></span>').append(i.element),e=n.find(a)),i.span=e,i._inputWrapper=t(n[0].firstChild),i._arrow=n.find(".k-select"),i._arrowIcon=i._arrow.find(".k-icon")},_wrapper:function(){var t,e=this,i=e.element,n=i[0];t=i.parent(),t.is("span.k-widget")||(t=i.wrap("<span />").parent(),t[0].style.cssText=n.style.cssText,t[0].title=n.title),e._focused=e.wrapper=t.addClass("k-widget k-dropdown").addClass(n.className).removeClass("input-validation-error").css("display","").attr({accesskey:i.attr("accesskey"),unselectable:"on",role:"listbox","aria-haspopup":"listbox","aria-expanded":!1}),i.hide().removeAttr("accesskey")},_clearSelection:function(t){this.select(t.value()?0:-1)},_openHandler:function(t){this._adjustListWidth(),this.trigger(D)?t.preventDefault():(this.wrapper.attr("aria-expanded",!0),this.ul.attr("aria-hidden",!1))},_closeHandler:function(t){this.trigger(F)?t.preventDefault():(this.wrapper.attr("aria-expanded",!1),this.ul.attr("aria-hidden",!0))},_inputTemplate:function(){var e=this,i=e.options.valueTemplate;if(i=i?o.template(i):t.proxy(o.template("#:this._text(data)#",{useWithBlock:!1}),e),e.valueTemplate=i,e.hasOptionLabel()&&!e.options.optionLabelTemplate)try{e.valueTemplate(e._optionLabelDataItem())}catch(n){throw Error(C)}},_textAccessor:function(i){var n,a=null,o=this.valueTemplate,s=this._optionLabelText(),l=this.span;if(i===e)return l.text();t.isPlainObject(i)||i instanceof c?a=i:s&&s===i&&(a=this.options.optionLabel),a||(a=this._assignInstance(i,this._accessor())),this.hasOptionLabel()&&(a!==s&&this._text(a)!==s||(o=this.optionLabelTemplate,"string"!=typeof this.options.optionLabel||this.options.optionLabelTemplate||(a=s))),n=function(){return{elements:l.get(),data:[{dataItem:a}]}},this.angular("cleanup",n);try{l.html(o(a))}catch(r){l.html("")}this.angular("compile",n)},_preselect:function(t,e){t||e||(e=this._optionLabelText()),this._accessor(t),this._textAccessor(e),this._old=this._accessor(),this._oldIndex=this.selectedIndex,this.listView.setValue(t),this._initialIndex=null,this._presetValue=!0},_assignInstance:function(t,e){var n=this.options.dataTextField,a={};return n?(i(a,n.split("."),t),i(a,this.options.dataValueField.split("."),e),a=new c(a)):a=t,a}});s.plugin(S)}(window.kendo.jQuery),window.kendo},i(3))}});