UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 10.5 kB
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}({0:function(e,t,n){e.exports=n(1215)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1015:function(e,t){e.exports=require("./kendo.data")},1030:function(e,t){e.exports=require("./kendo.selectable")},1198:function(e,t){e.exports=require("./kendo.editable")},1215:function(e,t,n){var r,a,i;!function(l,define){a=[n(1015),n(1198),n(1030)],r=l,i="function"==typeof r?r.apply(t,a):r,!(void 0!==i&&(e.exports=i))}(function(){return function(e,t){var n=window.kendo,r="change",a="cancel",i="dataBound",l="dataBinding",o=n.ui.Widget,s=n.keys,c=">*:not(.k-loading-mask)",d="progress",u="error",m="k-state-focused",f="k-state-selected",p="k-edit-item",g="edit",h="remove",_="save",v="mousedown",b="click",S="touchstart",x=".kendoListView",k=e.proxy,w=n._activeElement,E=n.ui.progress,y=n.data.DataSource,T=n.ui.DataBoundWidget.extend({init:function(t,r){var a=this;r=e.isArray(r)?{dataSource:r}:r,o.fn.init.call(a,t,r),r=a.options,a.wrapper=t=a.element,t[0].id&&(a._itemId=t[0].id+"_lv_active"),a._element(),a._dataSource(),a._templates(),a._navigatable(),a._selectable(),a._pageable(),a._crudHandlers(),a._scrollable(),a.options.autoBind&&a.dataSource.fetch(),n.notify(a)},events:[r,a,l,i,g,h,_],options:{name:"ListView",autoBind:!0,selectable:!1,navigatable:!1,height:null,template:"",altTemplate:"",editTemplate:""},setOptions:function(e){o.fn.setOptions.call(this,e),this._templates(),this.selectable&&(this.selectable.destroy(),this.selectable=null),this._selectable()},_templates:function(){var e=this.options;this.template=n.template(e.template||""),this.altTemplate=n.template(e.altTemplate||e.template),this.editTemplate=n.template(e.editTemplate||"")},_item:function(e){return this.element.children()[e]()},items:function(){return this.element.children()},dataItem:function(t){var r=n.attr("uid"),a=e(t).closest("["+r+"]").attr(r);return this.dataSource.getByUid(a)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.options.autoBind&&e.fetch()},_unbindDataSource:function(){var e=this;e.dataSource.unbind(r,e._refreshHandler).unbind(d,e._progressHandler).unbind(u,e._errorHandler)},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._refreshHandler=k(e.refresh,e),e._progressHandler=k(e._progress,e),e._errorHandler=k(e._error,e)),e.dataSource=y.create(e.options.dataSource).bind(r,e._refreshHandler).bind(d,e._progressHandler).bind(u,e._errorHandler)},_progress:function(e){var t=this.element;E(t,e,{opacity:!0})},_error:function(){E(this.element,!1)},_element:function(){var e=this.options.height;this.element.addClass("k-widget k-listview").attr("role","listbox"),e&&this.element.css("height",e)},refresh:function(e){var r,a,o,s,c,d=this,u=d.dataSource.view(),m="",f=d.template,p=d.altTemplate,g=w(),h=d._endlessFetchInProgress,_=h?d._skipRerenderItemsCount:0,v=d.options.scrollable;if(e=e||{},"itemchange"===e.action)return d._hasBindingTarget()||d.editable||(r=e.items[0],o=d.items().filter("["+n.attr("uid")+"="+r.uid+"]"),o.length>0&&(s=o.index(),d.angular("cleanup",function(){return{elements:[o]}}),o.replaceWith(f(r)),o=d.items().eq(s),o.attr(n.attr("uid"),r.uid),d.angular("compile",function(){return{elements:[o],data:[{dataItem:r}]}}),d.trigger("itemChange",{item:o,data:r}))),t;if(!d.trigger(l,{action:e.action||"rebind",items:e.items,index:e.index})){for(d._angularItems("cleanup"),h||d._destroyEditable(),s=_,c=u.length;s<c;s++)m+=s%2?p(u[s]):f(u[s]);for(h?d.element.append(m):d.element.html(m),a=d.items().not(".k-loading-mask"),s=_,c=u.length;s<c;s++)a.eq(s).attr(n.attr("uid"),u[s].uid).attr("role","option").attr("aria-selected","false");d.element[0]===g&&d.options.navigatable&&(d._focusNext?d.current(d.current().next()):v||d.current(a.eq(0))),d._angularItems("compile"),d._progress(!1),d._endlessFetchInProgress=null,d.trigger(i,{action:e.action||"rebind",items:e.items,index:e.index})}},_pageable:function(){var t,r,a=this,i=a.options.pageable;e.isPlainObject(i)&&(r=i.pagerId,t=e.extend({},i,{dataSource:a.dataSource,pagerId:null}),a.pager=new n.ui.Pager(e("#"+r),t))},_selectable:function(){var e,a,i=this,l=i.options.selectable,o=i.options.navigatable;l&&(e=n.ui.Selectable.parseOptions(l).multiple,i.selectable=new n.ui.Selectable(i.element,{aria:!0,multiple:e,filter:c,change:function(){i.trigger(r)}}),o&&i.element.on("keydown"+x,function(n){if(n.keyCode===s.SPACEBAR){if(a=i.current(),n.target==n.currentTarget&&n.preventDefault(),e)if(n.ctrlKey){if(a&&a.hasClass(f))return a.removeClass(f),t}else i.selectable.clear();else i.selectable.clear();i.selectable.value(a)}}))},_scrollable:function(){var e,t=this,n=t.options.scrollable;n&&(t.element.css({"overflow-y":"scroll",position:"relative","-webkit-overflow-scrolling":"touch"}),"endless"===n&&(e=t._endlessPageSize=t.dataSource.options.pageSize,t.element.off("scroll"+x).on("scroll"+x,function(){this.scrollTop+this.clientHeight-this.scrollHeight>=-15&&!t._endlessFetchInProgress&&t._endlessPageSize<t.dataSource.total()&&(t._skipRerenderItemsCount=t._endlessPageSize,t._endlessPageSize=t._skipRerenderItemsCount+e,t.dataSource.options.endless=!0,t._endlessFetchInProgress=!0,t.dataSource.pageSize(t._endlessPageSize))})))},current:function(e){var n=this,r=n.element,a=n._current,i=n._itemId;return e===t?a:(a&&a[0]&&(a[0].id===i&&a.removeAttr("id"),a.removeClass(m),r.removeAttr("aria-activedescendant")),e&&e[0]&&(i=e[0].id||i,n._scrollTo(e[0]),r.attr("aria-activedescendant",i),e.addClass(m).attr("id",i)),n._current=e,t)},_scrollTo:function(t){var n,r,a=this,i=!1,l="scroll";"auto"==a.wrapper.css("overflow")||a.wrapper.css("overflow")==l||a.wrapper.css("overflow-y")==l?n=a.wrapper[0]:(n=window,i=!0),r=function(r,a){var o=i?e(t).offset()[r.toLowerCase()]:t["offset"+r],s=t["client"+a],c=e(n)[l+r](),d=e(n)[a.toLowerCase()]();o+s>c+d?e(n)[l+r](o+s-d):o<c&&e(n)[l+r](o)},r("Top","Height"),r("Left","Width")},_navigatable:function(){var t=this,r=t.options.navigatable,a=t.element,i=function(r){t.current(e(r.currentTarget)),e(r.target).is(":button,a,:input,a>.k-icon,textarea")||n.focusElement(a)};r&&(t._tabindex(),a.on("focus"+x,function(){var e=t._current;e&&e.is(":visible")||(e=t._item("first")),t.current(e)}).on("focusout"+x,function(){t._current&&t._current.removeClass(m)}).on("keydown"+x,function(r){var i,l,o=r.keyCode,c=t.current(),d=e(r.target),u=!d.is(":button,textarea,a,a>.t-icon,input"),m=d.is(":text,:password"),f=n.preventDefault,g=a.find("."+p),h=w(),_=t.options.scrollable;if(!(!u&&!m&&s.ESC!=o||m&&s.ESC!=o&&s.ENTER!=o))if(s.UP===o||s.LEFT===o)c&&c[0]&&(c=c.prev()),c&&c[0]?t.current(c):_||t.current(t._item("last")),f(r);else if(s.DOWN===o||s.RIGHT===o)_?"endless"!==t.options.scrollable||c.next().length?(c=c.next(),c&&c[0]&&t.current(c)):(t.element[0].scrollTop=t.element[0].scrollHeight,t._focusNext=!0):(c=c.next(),t.current(c&&c[0]?c:t._item("first"))),f(r);else if(s.PAGEUP===o)t.current(null),t.dataSource.page(t.dataSource.page()-1),f(r);else if(s.PAGEDOWN===o)t.current(null),t.dataSource.page(t.dataSource.page()+1),f(r);else if(s.HOME===o)t.current(t._item("first")),f(r);else if(s.END===o)t.current(t._item("last")),f(r);else if(s.ENTER===o)0!==g.length&&(u||m)?(i=t.items().index(g),h&&h.blur(),t.save(),l=function(){t.element.trigger("focus"),t.current(t.items().eq(i))},t.one("dataBound",l)):""!==t.options.editTemplate&&t.edit(c);else if(s.ESC===o){if(g=a.find("."+p),0===g.length)return;i=t.items().index(g),t.cancel(),t.element.trigger("focus"),t.current(t.items().eq(i))}}),a.on(v+x+" "+S+x,c,k(i,t)))},clearSelection:function(){var e=this;e.selectable.clear(),e.trigger(r)},select:function(n){var r=this,a=r.selectable;return n=e(n),n.length?(a.options.multiple||(a.clear(),n=n.first()),a.value(n),t):a.value()},_destroyEditable:function(){var e=this;e.editable&&(e.editable.destroy(),delete e.editable)},_modelFromElement:function(e){var t=e.attr(n.attr("uid"));return this.dataSource.getByUid(t)},_closeEditable:function(){var e,t,r,a=this,i=a.editable,l=a.template;return i&&(i.element.index()%2&&(l=a.altTemplate),a.angular("cleanup",function(){return{elements:[i.element]}}),e=a._modelFromElement(i.element),a._destroyEditable(),r=i.element.index(),i.element.replaceWith(l(e)),t=a.items().eq(r),t.attr(n.attr("uid"),e.uid),a._hasBindingTarget()&&n.bind(t,e),a.angular("compile",function(){return{elements:[t],data:[{dataItem:e}]}})),!0},edit:function(e){var t,r,a=this,i=a._modelFromElement(e),l=i.uid;a.cancel(),e=a.items().filter("["+n.attr("uid")+"="+l+"]"),r=e.index(),e.replaceWith(a.editTemplate(i)),t=a.items().eq(r).addClass(p).attr(n.attr("uid"),i.uid),a.editable=t.kendoEditable({model:i,clearContainer:!1,errorTemplate:!1,target:a}).data("kendoEditable"),a.trigger(g,{model:i,item:t})},save:function(){var e,t,n=this,r=n.editable;r&&(t=r.element,e=n._modelFromElement(t),r.end()&&!n.trigger(_,{model:e,item:t})&&(n._closeEditable(),n.dataSource.sync()))},remove:function(e){var t=this,n=t.dataSource,r=t._modelFromElement(e);t.editable&&(n.cancelChanges(t._modelFromElement(t.editable.element)),t._closeEditable()),t.trigger(h,{model:r,item:e})||(e.hide(),n.remove(r),n.sync())},add:function(){var e,t=this,n=t.dataSource,r=n.indexOf((n.view()||[])[0]);r<0&&(r=0),t.cancel(),e=n.insert(r,{}),t.edit(t.element.find("[data-uid='"+e.uid+"']"))},cancel:function(){var e,t,n=this,r=n.dataSource;n.editable&&(e=n.editable.element,t=n._modelFromElement(e),n.trigger(a,{model:t,container:e})||(r.cancelChanges(t),n._closeEditable()))},_crudHandlers:function(){var t=this,r=v+x,a=S+x,i=b+x;t.element.on(r+" "+a,".k-edit-button",function(r){r.preventDefault();var a=e(this).closest("["+n.attr("uid")+"]");setTimeout(function(){t.edit(a)})}),t.element.on(r+" "+a,".k-delete-button",function(r){r.preventDefault();var a=e(this).closest("["+n.attr("uid")+"]");setTimeout(function(){t.remove(a)})}),t.element.on(i,".k-update-button",function(e){t.save(),e.preventDefault()}),t.element.on(i,".k-cancel-button",function(e){t.cancel(),e.preventDefault()})},destroy:function(){var e=this;o.fn.destroy.call(e),e._unbindDataSource(),e._destroyEditable(),e.element.off(x),e._endlessFetchInProgress=e._endlessPageSize=e._skipRerenderItemsCount=e._focusNext=null,e.pager&&e.pager.destroy(),n.destroy(e.element)}});n.ui.plugin(T)}(window.kendo.jQuery),window.kendo},n(3))}});