UNPKG

@progress/kendo-ui

Version:

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

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