@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 12.5 kB
JavaScript
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}({0:function(e,t,n){e.exports=n(1293)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1059:function(e,t){e.exports=require("./kendo.data")},1079:function(e,t){e.exports=require("./kendo.selectable")},1255:function(e,t){e.exports=require("./kendo.editable")},1293:function(e,t,n){var r,i,o;!function(a,define){i=[n(1059),n(1255),n(1079)],r=a,o="function"==typeof r?r.apply(t,i):r,!(void 0!==o&&(e.exports=o))}(function(){return function(e,t){var n=window.kendo,r="change",i="kendoKeydown",o="cancel",a="dataBound",l="dataBinding",s=n.ui.Widget,c=n.keys,d="",u="> *:not(.k-loading-mask)",p="progress",m="error",f="k-state-focused",g="k-state-selected",h="k-edit-item",b="edit",_="remove",v="save",w="mousedown",y="click",S="touchstart",k=".kendoListView",x=e.proxy,E=n._activeElement,T=n.ui.progress,C=n.data.DataSource,P=n.ui.DataBoundWidget.extend({init:function(t,r){var i=this;r=e.isArray(r)?{dataSource:r}:r,s.fn.init.call(i,t,r),r=i.options,i.wrapper=t=i.element,t[0].id&&(i._itemId=t[0].id+"_lv_active"),i._element(),i._layout(),i._dataSource(),i._templates(),i._navigatable(),i._selectable(),i._pageable(),i._crudHandlers(),i._scrollable(),i.options.autoBind&&i.dataSource.fetch(),n.notify(i)},events:[r,o,l,a,b,_,v,i],options:{name:"ListView",autoBind:!0,selectable:!1,navigatable:!1,height:null,template:d,altTemplate:d,editTemplate:d,contentTemplate:"<div data-content='true' />",contentElement:"div",bordered:!0,borders:"",layout:"",flex:{direction:"row",wrap:"nowrap"},grid:{},scrollable:!1},setOptions:function(e){s.fn.setOptions.call(this,e),this._layout(),this._templates(),this.selectable&&(this.selectable.destroy(),this.selectable=null),this._selectable()},_templates:function(){var e=this.options;this.template=n.template(e.template||d),this.altTemplate=n.template(e.altTemplate||e.template),this.editTemplate=n.template(e.editTemplate||d)},_item:function(e){return this.content.children()[e]()},items:function(){return this.content.children(":not(.k-loading-mask)")},dataItem:function(t){var r=n.attr("uid"),i=e(t).closest("["+r+"]").attr(r);return this.dataSource.getByUid(i)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.options.autoBind&&e.fetch(),"endless"===this.options.scrollable&&this._bindScrollable()},_unbindDataSource:function(){var e=this;e.dataSource.unbind(r,e._refreshHandler).unbind(p,e._progressHandler).unbind(m,e._errorHandler)},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._refreshHandler=x(e.refresh,e),e._progressHandler=x(e._progress,e),e._errorHandler=x(e._error,e)),e.dataSource=C.create(e.options.dataSource).bind(r,e._refreshHandler).bind(p,e._progressHandler).bind(m,e._errorHandler)},_progress:function(e){var t=this.content;T(t,e,{opacity:!0})},_error:function(){T(this.content,!1)},_element:function(){var t=this.options,n=t.height;this.element.addClass("k-widget k-listview"),t.navigatable||t.selectable?this.element.attr("role","listbox"):this.element.attr("role","list"),this.content=t.contentElement?e(document.createElement(t.contentElement)).appendTo(this.element):this.element,n&&this.element.css("height",n)},_layout:function(){var e=this,n=e.options,r=n.flex,i=n.grid,o=e.element,a=["k-widget","k-listview"],l=e.content,s=["k-listview-content"];o.add(l).removeClass(function(e,t){if(t.indexOf("k-")>=0)return!0}),n.bordered===!0&&a.push("k-listview-bordered"),"string"==typeof n.borders&&n.borders!==d&&a.push("k-listview-borders-"+n.borders),"string"==typeof n.contentPadding&&n.contentPadding!==d&&s.push("k-listview-content-padding-"+n.contentPadding),"string"==typeof n.layout&&n.layout!==d&&s.push("k-d-"+n.layout),"flex"===n.layout&&"object"==typeof r&&("string"==typeof r.direction&&""!==r.direction&&s.push("k-flex-"+r.direction),"string"==typeof r.wrap&&""!==r.wrap&&s.push("k-flex-"+r.wrap)),"grid"===n.layout&&"object"==typeof i&&("number"==typeof i.cols?l.css("grid-template-columns","repeat("+i.cols+", 1fr)"):"string"==typeof i.cols&&l.css("grid-template-columns",i.cols),"number"==typeof i.rows?l.css("grid-template-rows","repeat("+i.rows+", "+(i.rowHeight!==t?i.rowHeight:"1fr")+")"):"string"==typeof i.rows&&l.css("grid-template-rows",i.rows),"number"==typeof i.gutter?l.css("grid-gap",i.gutter):"string"==typeof i.gutter&&l.css("grid-gap",i.gutter)),e.element.addClass(a.join(" ")),e.content.addClass(s.join(" "))},refresh:function(e){var r,i,o,s,c,d=this,u=d.dataSource.view(),p="",m=d.template,f=d.altTemplate,g=d.options,h=g.selectable||g.navigatable?"option":"listitem",b=E(),_=d._endlessFetchInProgress,v=_?d._skipRerenderItemsCount:0,w=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(m(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"),_||d._destroyEditable(),s=v,c=u.length;s<c;s++)p+=s%2?f(u[s]):m(u[s]);for(_?d.content.append(p):d.content.html(p),i=d.items().not(".k-loading-mask"),s=v,c=u.length;s<c;s++)o=i.eq(s),o.attr(n.attr("uid"),u[s].uid).attr("role",h),d.options.selectable&&o.attr("aria-selected","false");d.content[0]===b&&d.options.navigatable&&(d._focusNext?d.current(d.current().next()):w||d.current(i.eq(0))),d._angularItems("compile"),d._progress(!1),d._endlessFetchInProgress=null,d.trigger(a,{action:e.action||"rebind",items:e.items,index:e.index})}},_pageable:function(){var t,r,i=this,o=i.options.pageable;e.isPlainObject(o)&&(r=o.pagerId,t=e.extend({},o,{dataSource:i.dataSource,pagerId:null}),i.pager=new n.ui.Pager(e("#"+r),t))},_selectable:function(){var e,i,o=this,a=o.options.selectable,l=o.options.navigatable;a&&(e=n.ui.Selectable.parseOptions(a).multiple,o.selectable=new n.ui.Selectable(o.element,{aria:!0,multiple:e,filter:o.options.contentElement?".k-listview-content "+u:u,change:function(){o.trigger(r)}}),l&&o.element.on("keydown"+k,function(n){if(n.keyCode===c.SPACEBAR){if(i=o.current(),n.target==n.currentTarget&&n.preventDefault(),e)if(n.ctrlKey){if(i&&i.hasClass(g))return i.removeClass(g),t}else o.selectable.clear();else o.selectable.clear();o.selectable.value(i)}}))},_scrollable:function(){var e=this,t=e.options.scrollable;t&&(e.content.css({"overflow-y":"scroll",position:"relative","-webkit-overflow-scrolling":"touch"}),"endless"===t&&e._bindScrollable())},_bindScrollable:function(){var e=this,t=e._endlessPageSize=e.dataSource.options.pageSize;e.content.off("scroll"+k).on("scroll"+k,function(){this.scrollTop+this.clientHeight-this.scrollHeight>=-15&&!e._endlessFetchInProgress&&e._endlessPageSize<e.dataSource.total()&&(e._skipRerenderItemsCount=e._endlessPageSize,e._endlessPageSize=e._skipRerenderItemsCount+t,e.dataSource.options.endless=!0,e._endlessFetchInProgress=!0,e.dataSource.pageSize(e._endlessPageSize))})},current:function(e){var n=this,r=n.element,i=n._current,o=n._itemId;return e===t?i:(i&&i[0]&&(i[0].id===o&&i.removeAttr("id"),i.removeClass(f),r.removeAttr("aria-activedescendant")),e&&e[0]&&(o=e[0].id||o,n._scrollTo(e[0]),r.attr("aria-activedescendant",o),e.addClass(f).attr("id",o)),n._current=e,t)},_scrollTo:function(t){var n,r,i=this,o=i.content,a=!1,l="scroll";"auto"===o.css("overflow")||o.css("overflow")===l||o.css("overflow-y")===l?n=o[0]:(n=window,a=!0),r=function(r,i){var o=a?e(t).offset()[r.toLowerCase()]:t["offset"+r],s=t["client"+i],c=e(n)[l+r](),d=e(n)[i.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,i=t.element,o=t.content,a=function(r){t.current(e(r.currentTarget)),e(r.target).is(":button, a, :input, a > .k-icon, textarea")||n.focusElement(i)};r&&(t._tabindex(),i.on("focus"+k,function(){var e=t._current;e&&e.is(":visible")||(e=t._item("first")),t.current(e)}).on("focusout"+k,function(){t._current&&t._current.removeClass(f)}).on("keydown"+k,t,function(r){var i,a,l=r.keyCode,s=t.current(),d=e(r.target),u=!d.is(":button, textarea, a, a > .t-icon, input"),p=d.is(":text, :password"),m=n.preventDefault,f=o.find("."+h),g=E(),b=t.options.scrollable;if(!(!u&&!p&&l!==c.ESC||p&&l!==c.ESC&&l!==c.ENTER)&&(l!==c.UP&&l!==c.LEFT||(s&&s[0]&&(s=s.prev()),s&&s[0]?t.current(s):b||t.current(t._item("last")),m(r)),l!==c.DOWN&&l!==c.RIGHT||(b?"endless"!==t.options.scrollable||s.next().length?(s=s.next(),s&&s[0]&&t.current(s)):(t.content[0].scrollTop=t.content[0].scrollHeight,t._focusNext=!0):(s=s.next(),t.current(s&&s[0]?s:t._item("first"))),m(r)),l===c.PAGEUP&&(t.current(null),t.dataSource.page(t.dataSource.page()-1),m(r)),l===c.PAGEDOWN&&(t.current(null),t.dataSource.page(t.dataSource.page()+1),m(r)),l===c.HOME&&(t.current(t._item("first")),m(r)),l===c.END&&(t.current(t._item("last")),m(r)),l===c.ENTER&&(0!==f.length&&(u||p)?(i=t.items().index(f),g&&g.blur(),t.save(),a=function(){t.element.trigger("focus"),t.current(t.items().eq(i))},t.one("dataBound",a)):""!==t.options.editTemplate&&t.edit(s)),l===c.ESC)){if(f=o.find("."+h),0===f.length)return;i=t.items().index(f),t.cancel(),t.element.trigger("focus"),t.current(t.items().eq(i))}}),i.on(w+k+" "+S+k,t.options.contentElement?".k-listview-content "+u:u,x(a,t)))},clearSelection:function(){var e=this;e.selectable.clear(),e.trigger(r)},select:function(n){var r=this,i=r.selectable;return n=e(n),n.length?(i.options.multiple||(i.clear(),n=n.first()),i.value(n),t):i.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,i=this,o=i.editable,a=i.options,l=a.selectable||a.navigatable?"option":"listitem",s=i.template;return o&&(o.element.index()%2&&(s=i.altTemplate),i.angular("cleanup",function(){return{elements:[o.element]}}),e=i._modelFromElement(o.element),i._destroyEditable(),r=o.element.index(),o.element.replaceWith(s(e)),t=i.items().eq(r),t.attr(n.attr("uid"),e.uid),t.attr("role",l),i._hasBindingTarget()&&n.bind(t,e),i.angular("compile",function(){return{elements:[t],data:[{dataItem:e}]}})),!0},edit:function(e){var t,r,i=this,o=i._modelFromElement(e),a=o.uid;i.cancel(),e=i.items().filter("["+n.attr("uid")+"="+a+"]"),r=e.index(),e.replaceWith(i.editTemplate(o)),t=i.items().eq(r).addClass(h).attr(n.attr("uid"),o.uid),i.editable=t.kendoEditable({model:o,clearContainer:!1,errorTemplate:!1,target:i}).data("kendoEditable"),i.trigger(b,{model:o,item:t})},save:function(){var e,t,n=this,r=n.editable;r&&(t=r.element,e=n._modelFromElement(t),r.end()&&!n.trigger(v,{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(_,{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(o,{model:t,container:e})||(r.cancelChanges(t),n._closeEditable()))},_crudHandlers:function(){var t=this,r=w+k,i=S+k,o=y+k;t.content.on(r+" "+i,".k-edit-button",function(r){r.preventDefault();var i=e(this).closest("["+n.attr("uid")+"]");setTimeout(function(){t.edit(i)})}),t.content.on(r+" "+i,".k-delete-button",function(r){r.preventDefault();var i=e(this).closest("["+n.attr("uid")+"]");setTimeout(function(){t.remove(i)})}),t.content.on(o,".k-update-button",function(e){t.save(),e.preventDefault()}),t.content.on(o,".k-cancel-button",function(e){t.cancel(),e.preventDefault()})},destroy:function(){var e=this;s.fn.destroy.call(e),e._unbindDataSource(),e._destroyEditable(),e.element.off(k),e.content.off(k),e._endlessFetchInProgress=e._endlessPageSize=e._skipRerenderItemsCount=e._focusNext=null,e.pager&&e.pager.destroy(),n.destroy(e.element)}});n.ui.plugin(P)}(window.kendo.jQuery),window.kendo},n(3))}});