@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 12 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(1245)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1027:function(e,t){e.exports=require("./kendo.data")},1046:function(e,t){e.exports=require("./kendo.selectable")},1217:function(e,t){e.exports=require("./kendo.editable")},1245:function(e,t,n){var r,i,a;!function(o,define){i=[n(1027),n(1217),n(1046)],r=o,a="function"==typeof r?r.apply(t,i):r,!(void 0!==a&&(e.exports=a))}(function(){return function(e,t){var n=window.kendo,r="change",i="kendoKeydown",a="cancel",o="dataBound",s="dataBinding",l=n.ui.Widget,c=n.keys,d="",u=".k-listview-content > *:not(.k-loading-mask)",p="progress",f="error",m="k-state-focused",g="k-state-selected",h="k-edit-item",_="edit",b="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,l.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,a,s,o,_,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' />",bordered:!0,borders:"",layout:"",flex:{direction:"row",wrap:"nowrap"},grid:{}},setOptions:function(e){l.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()},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()},_unbindDataSource:function(){var e=this;e.dataSource.unbind(r,e._refreshHandler).unbind(p,e._progressHandler).unbind(f,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(f,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").attr("role","listbox"),this.content=e("<div />").appendTo(this.element),n&&this.element.css("height",n)},_layout:function(){var e=this,n=e.options,r=n.flex,i=n.grid,a=e.element,o=["k-widget","k-listview"],s=e.content,l=["k-listview-content"];a.add(s).removeClass(function(e,t){if(t.indexOf("k-")>=0)return!0}),n.bordered===!0&&o.push("k-listview-bordered"),"string"==typeof n.borders&&n.borders!==d&&o.push("k-listview-borders-"+n.borders),"string"==typeof n.contentPadding&&n.contentPadding!==d&&l.push("k-listview-content-padding-"+n.contentPadding),"string"==typeof n.layout&&n.layout!==d&&l.push("k-d-"+n.layout),"flex"===n.layout&&"object"==typeof r&&("string"==typeof r.direction&&""!==r.direction&&l.push("k-flex-"+r.direction),"string"==typeof r.wrap&&""!==r.wrap&&l.push("k-flex-"+r.wrap)),"grid"===n.layout&&"object"==typeof i&&("number"==typeof i.cols?s.css("grid-template-columns","repeat("+i.cols+", 1fr)"):"string"==typeof i.cols&&s.css("grid-template-columns",i.cols),"number"==typeof i.rows?s.css("grid-template-rows","repeat("+i.rows+", "+(i.rowHeight!==t?i.rowHeight:"1fr")+")"):"string"==typeof i.rows&&s.css("grid-template-rows",i.rows),"number"==typeof i.gutter?s.css("grid-gap",i.gutter):"string"==typeof i.gutter&&s.css("grid-gap",i.gutter)),e.element.addClass(o.join(" ")),e.content.addClass(l.join(" "))},refresh:function(e){var r,i,a,l,c,d=this,u=d.dataSource.view(),p="",f=d.template,m=d.altTemplate,g=E(),h=d._endlessFetchInProgress,_=h?d._skipRerenderItemsCount:0,b=d.options.scrollable;if(e=e||{},"itemchange"===e.action)return d._hasBindingTarget()||d.editable||(r=e.items[0],a=d.items().filter("["+n.attr("uid")+"="+r.uid+"]"),a.length>0&&(l=a.index(),d.angular("cleanup",function(){return{elements:[a]}}),a.replaceWith(f(r)),a=d.items().eq(l),a.attr(n.attr("uid"),r.uid),d.angular("compile",function(){return{elements:[a],data:[{dataItem:r}]}}),d.trigger("itemChange",{item:a,data:r}))),t;if(!d.trigger(s,{action:e.action||"rebind",items:e.items,index:e.index})){for(d._angularItems("cleanup"),h||d._destroyEditable(),l=_,c=u.length;l<c;l++)p+=l%2?m(u[l]):f(u[l]);for(h?d.content.append(p):d.content.html(p),i=d.items().not(".k-loading-mask"),l=_,c=u.length;l<c;l++)i.eq(l).attr(n.attr("uid"),u[l].uid).attr("role","option").attr("aria-selected","false");d.content[0]===g&&d.options.navigatable&&(d._focusNext?d.current(d.current().next()):b||d.current(i.eq(0))),d._angularItems("compile"),d._progress(!1),d._endlessFetchInProgress=null,d.trigger(o,{action:e.action||"rebind",items:e.items,index:e.index})}},_pageable:function(){var t,r,i=this,a=i.options.pageable;e.isPlainObject(a)&&(r=a.pagerId,t=e.extend({},a,{dataSource:i.dataSource,pagerId:null}),i.pager=new n.ui.Pager(e("#"+r),t))},_selectable:function(){var e,i,a=this,o=a.options.selectable,s=a.options.navigatable;o&&(e=n.ui.Selectable.parseOptions(o).multiple,a.selectable=new n.ui.Selectable(a.element,{aria:!0,multiple:e,filter:u,change:function(){a.trigger(r)}}),s&&a.element.on("keydown"+k,function(n){if(n.keyCode===c.SPACEBAR){if(i=a.current(),n.target==n.currentTarget&&n.preventDefault(),e)if(n.ctrlKey){if(i&&i.hasClass(g))return i.removeClass(g),t}else a.selectable.clear();else a.selectable.clear();a.selectable.value(i)}}))},_scrollable:function(){var e,t=this,n=t.options.scrollable;n&&(t.content.css({"overflow-y":"scroll",position:"relative","-webkit-overflow-scrolling":"touch"}),"endless"===n&&(e=t._endlessPageSize=t.dataSource.options.pageSize,t.content.off("scroll"+k).on("scroll"+k,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,i=n._current,a=n._itemId;return e===t?i:(i&&i[0]&&(i[0].id===a&&i.removeAttr("id"),i.removeClass(m),r.removeAttr("aria-activedescendant")),e&&e[0]&&(a=e[0].id||a,n._scrollTo(e[0]),r.attr("aria-activedescendant",a),e.addClass(m).attr("id",a)),n._current=e,t)},_scrollTo:function(t){var n,r,i=this,a=i.content,o=!1,s="scroll";"auto"===a.css("overflow")||a.css("overflow")===s||a.css("overflow-y")===s?n=a[0]:(n=window,o=!0),r=function(r,i){var a=o?e(t).offset()[r.toLowerCase()]:t["offset"+r],l=t["client"+i],c=e(n)[s+r](),d=e(n)[i.toLowerCase()]();a+l>c+d?e(n)[s+r](a+l-d):a<c&&e(n)[s+r](a)},r("Top","Height"),r("Left","Width")},_navigatable:function(){var t=this,r=t.options.navigatable,i=t.element,a=t.content,o=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(m)}).on("keydown"+k,t,function(r){var i,o,s=r.keyCode,l=t.current(),d=e(r.target),u=!d.is(":button, textarea, a, a > .t-icon, input"),p=d.is(":text, :password"),f=n.preventDefault,m=a.find("."+h),g=E(),_=t.options.scrollable;if(!(!u&&!p&&s!==c.ESC||p&&s!==c.ESC&&s!==c.ENTER)&&(s!==c.UP&&s!==c.LEFT||(l&&l[0]&&(l=l.prev()),l&&l[0]?t.current(l):_||t.current(t._item("last")),f(r)),s!==c.DOWN&&s!==c.RIGHT||(_?"endless"!==t.options.scrollable||l.next().length?(l=l.next(),l&&l[0]&&t.current(l)):(t.content[0].scrollTop=t.content[0].scrollHeight,t._focusNext=!0):(l=l.next(),t.current(l&&l[0]?l:t._item("first"))),f(r)),s===c.PAGEUP&&(t.current(null),t.dataSource.page(t.dataSource.page()-1),f(r)),s===c.PAGEDOWN&&(t.current(null),t.dataSource.page(t.dataSource.page()+1),f(r)),s===c.HOME&&(t.current(t._item("first")),f(r)),s===c.END&&(t.current(t._item("last")),f(r)),s===c.ENTER&&(0!==m.length&&(u||p)?(i=t.items().index(m),g&&g.blur(),t.save(),o=function(){t.element.trigger("focus"),t.current(t.items().eq(i))},t.one("dataBound",o)):""!==t.options.editTemplate&&t.edit(l)),s===c.ESC)){if(m=a.find("."+h),0===m.length)return;i=t.items().index(m),t.cancel(),t.element.trigger("focus"),t.current(t.items().eq(i))}}),i.on(w+k+" "+S+k,u,x(o,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,a=i.editable,o=i.template;return a&&(a.element.index()%2&&(o=i.altTemplate),i.angular("cleanup",function(){return{elements:[a.element]}}),e=i._modelFromElement(a.element),i._destroyEditable(),r=a.element.index(),a.element.replaceWith(o(e)),t=i.items().eq(r),t.attr(n.attr("uid"),e.uid),t.attr("role","option"),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,a=i._modelFromElement(e),o=a.uid;i.cancel(),e=i.items().filter("["+n.attr("uid")+"="+o+"]"),r=e.index(),e.replaceWith(i.editTemplate(a)),t=i.items().eq(r).addClass(h).attr(n.attr("uid"),a.uid),i.editable=t.kendoEditable({model:a,clearContainer:!1,errorTemplate:!1,target:i}).data("kendoEditable"),i.trigger(_,{model:a,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(b,{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=w+k,i=S+k,a=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(a,".k-update-button",function(e){t.save(),e.preventDefault()}),t.content.on(a,".k-cancel-button",function(e){t.cancel(),e.preventDefault()})},destroy:function(){var e=this;l.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))}});