UNPKG

@progress/kendo-ui

Version:

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

1 lines 13.6 kB
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(1307)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1067:function(e,t){e.exports=require("./kendo.data")},1087:function(e,t){e.exports=require("./kendo.selectable")},1269:function(e,t){e.exports=require("./kendo.editable")},1292:function(e,t){e.exports=require("./kendo.pager")},1307:function(e,t,n){var r,i,a;!function(o,define){i=[n(1067),n(1269),n(1087),n(1292)],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",l="dataBinding",s=n.ui.Widget,c=n.keys,d="",u=".",p="> *:not(.k-loading-mask)",m="progress",g="error",f="k-state-focused",h="k-state-selected",b="k-edit-item",v="k-listview-pager",_="k-listview-item",w="tabindex",y="aria-setsize",S="aria-posinset",k="role",x="aria-label",E="edit",C="remove",T="save",H="mousedown",P="click",I="touchstart",D=".kendoListView",F=e.proxy,z=n._activeElement,B=n.ui.progress,q=n.data.DataSource,A=n.ui.DataBoundWidget.extend({init:function(e,t){var r=this;t=Array.isArray(t)?{dataSource:t}:t,s.fn.init.call(r,e,t),t=r.options,r.wrapper=e=r.element,e[0].id&&(r._itemId=e[0].id+"_lv_active"),r._element(),r._layout(),r._dataSource(),r._setContentHeight(),r._templates(),r._navigatable(),r._selectable(),r._pageable(),r._crudHandlers(),r._scrollable(),r.options.autoBind&&r.dataSource.fetch(),n.notify(r)},events:[r,a,l,o,E,C,T,i],options:{name:"ListView",autoBind:!0,selectable:!1,navigatable:!1,pageable:!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(m,e._progressHandler).unbind(g,e._errorHandler)},_dataSource:function(){var n=this,i=n.options.pageable,a=n.options.dataSource;e.isPlainObject(i)&&i.pageSize!==t&&(a.pageSize=i.pageSize),n.dataSource&&n._refreshHandler?n._unbindDataSource():(n._refreshHandler=F(n.refresh,n),n._progressHandler=F(n._progress,n),n._errorHandler=F(n._error,n)),n.dataSource=q.create(a).bind(r,n._refreshHandler).bind(m,n._progressHandler).bind(g,n._errorHandler)},_progress:function(e){var t=this.content;B(t,e,{opacity:!0})},_error:function(){B(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(k,"listbox"):this.element.attr(k,"list"),this.content=t.contentElement?e(document.createElement(t.contentElement)).appendTo(this.element):this.element,this.content.attr(w,-1),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"],l=e.content,s=["k-listview-content"];a.add(l).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&&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(o.join(" ")),e.content.addClass(s.join(" "))},_setContentHeight:function(){var e,t=this,n=t.options;n.scrollable&&t.wrapper.is(":visible")&&(e=t.wrapper.innerHeight(),t.content.height(e))},refresh:function(e){var r,i,a,s,c,d=this,u=d.dataSource.view(),p="",m=d.template,g=d.altTemplate,f=d.options,h=f.selectable||f.navigatable?"option":"listitem",b=z(),v=d._endlessFetchInProgress,w=v?d._skipRerenderItemsCount:0,E=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&&(s=a.index(),d.angular("cleanup",function(){return{elements:[a]}}),a.replaceWith(m(r)),a=d.items().eq(s),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(l,{action:e.action||"rebind",items:e.items,index:e.index})){for(d._angularItems("cleanup"),v||d._destroyEditable(),s=w,c=u.length;s<c;s++)p+=s%2?g(u[s]):m(u[s]);for(v?d.content.append(p):d.content.html(p),i=d.items().not(".k-loading-mask"),u.length||(d.element.removeAttr(k),d.element.removeAttr(x)),s=w,c=u.length;s<c;s++)a=i.eq(s),a.addClass(_),a.attr(n.attr("uid"),u[s].uid).attr("role",h),d.options.selectable&&a.attr("aria-selected","false"),d.options.pageable&&(a.attr(y,d.dataSource.total()),a.attr(S,d.dataSource.indexOf(d.dataItem(a))+1));d.content[0]===b&&d.options.navigatable&&(d._focusNext?d.current(d.current().next()):E||d.current(i.eq(0))),d._setContentHeight(),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,o=i.options.navigatable;a&&(t=i.wrapper.find(u+v),t.length||(t=e("<div />").addClass(v)),"top"===a.position?t.addClass(n.format("{0}-{1}",v,a.position)).prependTo(i.wrapper):t.appendTo(i.wrapper),i.pager&&i.pager.destroy(),"object"==typeof a&&a instanceof n.ui.Pager?i.pager=a:(t=a.pagerId?e("#"+a.pagerId):t,r=e.extend({},a,{dataSource:i.dataSource,navigatable:o,pagerId:null}),i.pager=new n.ui.Pager(t,r)))},_selectable:function(){var i,a,o=this,l=o.options.selectable,s=o.options.navigatable;l&&(i=n.ui.Selectable.parseOptions(l).multiple,o.selectable=new n.ui.Selectable(o.element,{aria:!0,multiple:i,filter:o.options.contentElement?".k-listview-content "+p:p,change:function(){o.trigger(r)}}),i&&o.element.attr("aria-multiselectable",!0),s&&o.element.on("keydown"+D,function(n){if(e(n.target).is(o.element)&&n.keyCode===c.SPACEBAR){if(a=o.current(),n.target==n.currentTarget&&n.preventDefault(),i)if(n.ctrlKey){if(a&&a.hasClass(h))return a.removeClass(h),o.trigger(r),t}else o.selectable.clear();else o.selectable.clear();o.selectable.value(a)}}))},_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"+D).on("scroll"+D,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,a=n._itemId;return e===t?i:(i&&i[0]&&(i[0].id===a&&i.removeAttr("id"),i.removeClass(f),r.removeAttr("aria-activedescendant")),e&&e[0]&&(a=e[0].id||a,n._scrollTo(e[0]),r.attr("aria-activedescendant",a),e.addClass(f).attr("id",a)),n._current=e,t)},_scrollTo:function(t){var n,r,i=this,a=i.content,o=!1,l="scroll";"auto"===a.css("overflow")||a.css("overflow")===l||a.css("overflow-y")===l?n=a[0]:(n=window,o=!0),r=function(r,i){var a=o?e(t).offset()[r.toLowerCase()]:t["offset"+r],s=t["client"+i],c=e(n)[l+r](),d=e(n)[i.toLowerCase()]();a+s>c+d?e(n)[l+r](a+s-d):a<c&&e(n)[l+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"+D,function(){var e=t._current;e&&e.is(":visible")||(e=t._item("first")),t.current(e)}).on("focusout"+D,function(){t._current&&t._current.removeClass(f)}).on("keydown"+D,t,function(r){var i,o,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,g=a.find("."+b),f=z(),h=t.options.scrollable;if(d.is(t.element)&&(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):h||t.current(t._item("last")),m(r)),l!==c.DOWN&&l!==c.RIGHT||(h?"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!==g.length&&(u||p)?(i=t.items().index(g),f&&f.blur(),t.save(),o=function(){t.element.trigger("focus"),t.current(t.items().eq(i))},t.one("dataBound",o)):""!==t.options.editTemplate&&t.edit(s)),l===c.ESC)){if(g=a.find("."+b),0===g.length)return;i=t.items().index(g),t.cancel(),t.element.trigger("focus"),t.current(t.items().eq(i))}}),i.on(H+D+" "+I+D,t.options.contentElement?".k-listview-content "+p:p,F(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.options,l=o.selectable||o.navigatable?"option":"listitem",s=i.template;return a&&(a.element.index()%2&&(s=i.altTemplate),i.angular("cleanup",function(){return{elements:[a.element]}}),e=i._modelFromElement(a.element),i._destroyEditable(),r=a.element.index(),a.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,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(b).attr(n.attr("uid"),a.uid),i.editable=t.kendoEditable({model:a,clearContainer:!1,errorTemplate:!1,target:i}).data("kendoEditable"),i.trigger(E,{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(T,{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(C,{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=H+D,i=I+D,a=P+D;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;s.fn.destroy.call(e),e._unbindDataSource(),e._destroyEditable(),e.element.off(D),e.content.off(D),e._endlessFetchInProgress=e._endlessPageSize=e._skipRerenderItemsCount=e._focusNext=null,e.pager&&e.pager.destroy(),n.destroy(e.element)}});n.ui.plugin(A)}(window.kendo.jQuery),window.kendo},n(3))}});