diff --git a/www/js/zui/datagrid/min.css b/www/js/zui/datagrid/min.css new file mode 100644 index 0000000000..23aa358842 --- /dev/null +++ b/www/js/zui/datagrid/min.css @@ -0,0 +1,6 @@ +/*! + * ZUI: 数据表格② - v1.10.0 - 2022-07-07 + * http://openzui.com + * GitHub: https://github.com/easysoft/zui.git + * Copyright (c) 2022 cnezsoft.com; Licensed MIT + */.datagrid-container{position:relative;overflow:hidden;background-color:#f1f1f1;border:1px solid #ddd}.datagrid-cells{position:absolute;top:0;left:0;overflow:visible}.datagrid-cell{position:absolute;padding:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;border:1px solid #ddd;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,outline;-o-transition-property:background,outline;transition-property:background,outline}.datagrid-cell.datagrid-cell-index{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;color:grey;text-align:right;background-color:#f1f1f1}.datagrid-cell.datagrid-cell-head{background-color:#f1f1f1}.datagrid-cell.selected{z-index:25;outline:1px solid rgba(20,92,205,.5);outline-offset:-1px;-webkit-box-shadow:inset 0 0 0 2px rgba(20,92,205,.5);box-shadow:inset 0 0 0 2px rgba(20,92,205,.5)}.datagrid-cell.editing{z-index:25;text-overflow:clip;outline:1px solid #145ccd;outline-offset:-1px;-webkit-box-shadow:inset 0 0 0 1px #145ccd;box-shadow:inset 0 0 0 1px #145ccd}.datagrid-cell-span{z-index:10}.datagrid-row{position:absolute;width:100%;background-color:#fff;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,outline;-o-transition-property:background,outline;transition-property:background,outline}.datagrid-row-head{font-weight:700;color:grey;background-color:#f1f1f1}.datagrid-fixed.datagrid-row{z-index:35}.datagrid-fixed.datagrid-cell{z-index:30}.datagrid-fixed-edge-top{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.125),0 1px 0 rgba(0,0,0,.25);box-shadow:0 2px 5px 0 rgba(0,0,0,.125),0 1px 0 rgba(0,0,0,.25)}.datagrid-fixed-edge-bottom{-webkit-box-shadow:0 -2px 5px 0 rgba(0,0,0,.125),0 -1px 0 rgba(0,0,0,.25);box-shadow:0 -2px 5px 0 rgba(0,0,0,.125),0 -1px 0 rgba(0,0,0,.25)}.datagrid-fixed-edge-left{-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.25) inset;box-shadow:-1px 0 0 rgba(0,0,0,.25) inset}.datagrid-fixed-edge-right{-webkit-box-shadow:1px 0 0 rgba(0,0,0,.25) inset;box-shadow:1px 0 0 rgba(0,0,0,.25) inset}.datagrid-row-cell.active .datagrid-cell{background-color:#fff0d5}.datagrid-row-cell.active .datagrid-cell.datagrid-cell-index{background-color:#ffe7bc}.datagrid-hover-row .datagrid-row-cell:hover{z-index:20}.datagrid-hover-row .datagrid-row-cell:hover .datagrid-cell{background-color:#ebf2f9}.datagrid-hover-row .datagrid-row-cell:hover.datagrid-fixed{z-index:38}.datagrid-hover-row .datagrid-row-cell:hover>.datagrid-cell-index{background-color:#ddd}.datagrid-hover-row .datagrid-row-cell:hover.active .datagrid-cell{background-color:#ffe1ac}.datagrid-hover-row .datagrid-row-cell:hover.active .datagrid-cell-index{background-color:#ffda98}.datagrid-hover-row.datagrid-hover-shadow .datagrid-row-cell:hover{-webkit-box-shadow:0 1px 3px 2px rgba(0,0,0,.05),0 0 2px 1px rgba(0,0,0,.075);box-shadow:0 1px 3px 2px rgba(0,0,0,.05),0 0 2px 1px rgba(0,0,0,.075)}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell:hover{z-index:40;background-color:#fff;outline:1px solid grey;outline-offset:-1px}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell.datagrid-fixed:hover,.datagrid-hover-cell .datagrid-row-cell.datagrid-fixed .datagrid-cell-cell:hover{z-index:42}.datagrid-hover-cell.datagrid-hover-shadow .datagrid-row-cell .datagrid-cell:hover{-webkit-box-shadow:0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1);box-shadow:0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1)}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell.selected:hover{outline:1px solid #145ccd;-webkit-box-shadow:inset 0 0 0 2px rgba(20,92,205,.3),0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1);box-shadow:inset 0 0 0 2px rgba(20,92,205,.3),0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1)}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell.editing:hover{outline:1px solid #145ccd;-webkit-box-shadow:inset 0 0 0 2px #145ccd,0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1);box-shadow:inset 0 0 0 2px #145ccd,0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1)}.datagrid-hover-col .datagrid-cell.hover{background-color:#ebf2f9}.datagrid-hover-col .datagrid-cell-head.hover,.datagrid-hover-col .datagrid-cell-index.hover{background-color:#ddd}.datagrid-hover-col .datagrid-row-cell.active .datagrid-cell.hover{background-color:#d7e5f3}.datagrid-scrollbar{position:absolute;right:0;bottom:0;z-index:50;opacity:0;-webkit-transition:2.5s cubic-bezier(.175,.885,.32,1);-o-transition:2.5s cubic-bezier(.175,.885,.32,1);transition:2.5s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,opacity;-o-transition-property:background,opacity;transition-property:background,opacity}.datagrid-container:hover .datagrid-scrollbar,.datagrid-scrollbar.scrolling{opacity:1}.datagrid-scrollbar>.bar{position:absolute;min-width:10px;background-color:#ddd;background-color:rgba(0,0,0,.25)}.datagrid-scrollbar.scrolling,.datagrid-scrollbar:hover{background-color:rgba(0,0,0,.075)}.datagrid-scrollbar.scrolling>.bar,.datagrid-scrollbar:hover>.bar{position:absolute;background-color:grey;background-color:rgba(0,0,0,.5)}.datagrid-scrollbar-h{left:0;height:10px}.datagrid-scrollbar-h>.bar{top:0!important;bottom:0!important;min-width:20px}.datagrid-scrollbar-v{top:0;width:10px}.datagrid-scrollbar-v>.bar{right:0!important;left:0!important;min-height:20px}.datagrid-messager{position:absolute;top:0;right:0;left:0;z-index:60;padding:5px 10px;text-align:center}.datagrid-messager>.close{position:absolute;top:0;right:0;display:block;width:30px;height:30px;padding-bottom:5px;line-height:20px;text-align:center}.datagrid-messager>.close:hover{background-color:rgba(0,0,0,.1)}.datagrid-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:61;background-color:rgba(255,255,255,.6)}.datagrid-loading>.content{position:relative;top:50%;display:block;height:50px;margin-top:-25px;text-align:center}.datagrid-loading>.content>.icon{color:#3280fc}.datagrid-col-sortable{padding-right:20px;cursor:pointer}.datagrid-sorter{position:absolute;top:3px;right:0;bottom:0;width:20px;line-height:30px;text-align:center}.datagrid-sort-down>.icon-sort:before{color:#3280fc;content:'\e6b8'}.datagrid-sort-up>.icon-sort:before{color:#3280fc;content:'\e6b9'}.datagrid-borderless .datagrid-container{border-color:transparent}.datagrid-borderless .datagrid-cell{border-right-color:transparent;border-left-color:transparent}.datagrid-borderless .datagrid-fixed-edge-left{-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.1) inset;box-shadow:-1px 0 0 rgba(0,0,0,.1) inset}.datagrid-borderless .datagrid-fixed-edge-right{-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1) inset;box-shadow:1px 0 0 rgba(0,0,0,.1) inset}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-cell{background-color:#f9f9f9}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell{background-color:#fff0d5}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell.datagrid-cell-index{background-color:#ffe7bc}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-cell.hover{background-color:#ebf2f9}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-head.hover,.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-index.hover{background-color:#ddd}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell.hover{background-color:#d7e5f3} \ No newline at end of file diff --git a/www/js/zui/datagrid/min.js b/www/js/zui/datagrid/min.js new file mode 100644 index 0000000000..b81310e17f --- /dev/null +++ b/www/js/zui/datagrid/min.js @@ -0,0 +1,14 @@ +/*! + * ZUI: 数据表格② - v1.10.0 - 2022-07-07 + * http://openzui.com + * GitHub: https://github.com/easysoft/zui.git + * Copyright (c) 2022 cnezsoft.com; Licensed MIT + */ +/*! + * jQuery Mousewheel 3.1.13 + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + */ +!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var l=t||window.event,n=s.call(arguments,1),d=0,g=0,h=0,u=0,f=0,p=0;if(t=e.event.fix(l),t.type="mousewheel","detail"in l&&(h=l.detail*-1),"wheelDelta"in l&&(h=l.wheelDelta),"wheelDeltaY"in l&&(h=l.wheelDeltaY),"wheelDeltaX"in l&&(g=l.wheelDeltaX*-1),"axis"in l&&l.axis===l.HORIZONTAL_AXIS&&(g=h*-1,h=0),d=0===h?g:h,"deltaY"in l&&(h=l.deltaY*-1,d=h),"deltaX"in l&&(g=l.deltaX,0===h&&(d=g*-1)),0!==h||0!==g){if(1===l.deltaMode){var v=e.data(this,"mousewheel-line-height");d*=v,h*=v,g*=v}else if(2===l.deltaMode){var m=e.data(this,"mousewheel-page-height");d*=m,h*=m,g*=m}if(u=Math.max(Math.abs(h),Math.abs(g)),(!i||u=1?"floor":"ceil"](d/i),g=Math[g>=1?"floor":"ceil"](g/i),h=Math[h>=1?"floor":"ceil"](h/i),c.settings.normalizeOffset&&this.getBoundingClientRect){var y=this.getBoundingClientRect();f=t.clientX-y.left,p=t.clientY-y.top}return t.deltaX=g,t.deltaY=h,t.deltaFactor=i,t.offsetX=f,t.offsetY=p,t.deltaMode=0,n.unshift(t,d,g,h),o&&clearTimeout(o),o=setTimeout(a,200),(e.event.dispatch||e.event.handle).apply(this,n)}}function a(){i=null}function r(e,t){return c.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120===0}var o,i,l=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],n="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],s=Array.prototype.slice;if(e.event.fixHooks)for(var d=l.length;d;)e.event.fixHooks[l[--d]]=e.event.mouseHooks;var c=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var a=n.length;a;)this.addEventListener(n[--a],t,!1);else this.onmousewheel=t;e.data(this,"mousewheel-line-height",c.getLineHeight(this)),e.data(this,"mousewheel-page-height",c.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var a=n.length;a;)this.removeEventListener(n[--a],t,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var a=e(t),r=a["offsetParent"in e.fn?"offsetParent":"parent"]();return r.length||(r=e("body")),parseInt(r.css("fontSize"),10)||parseInt(a.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}),function(e,t){"use strict";function a(t){t instanceof e&&(t=t[0]);var a=document.createRange();a.selectNodeContents(t);var r=window.getSelection();r.removeAllRanges(),r.addRange(a)}function r(e){e=e.toLowerCase();var t="r"===e[0]?e.substring(1).split("c"):e.split("-");return[parseInt(t[0],10),parseInt(t[1],10)]}function o(e,a){return a===t?"R"+e:["R",e,"C",a].join("")}var i=function(t){var a=[];t.find("thead>tr:first>th").each(function(t){var r=e(this);if(a.push(e.extend({name:t,label:r.html(),html:!0,width:r.outerWidth()},r.data())),r.attr("colspan")&&"1"!==r.attr("colspan"))throw new Error("Table th element with colspan attribute is not support.")});var r=[];return t.find("tbody>tr").each(function(){var t=e(this),a={};t.children("td").each(function(t){a[t]=e(this).html()}),r.push(e.extend(a,t.data()))}),{cols:a,array:r,length:r.length}},l="zui.datagrid",n={date:{getter:function(e,t,a){var r=a.options.defaultDateFormatter||a.options.defaultDateFormater;return Date.create(e).format(r)},setter:function(e,t,a){if("string"==typeof e){var r=parseInt(e,10);isNaN(r)||(e=r)}return Date.timestamp(e)}}},s={},d={page:0,recTotal:0,recPerPage:10},c={fixedLeftUntil:0,fixedTopUntil:0,order:"asc",sortBy:null,pager:d,selections:{}},g=function(t,a){var r=0,o=a.length,i=0,l={};return e.each(t,function(e,t){var n=typeof t;"number"===n||"number"===n?t+="":"string"!==n&&(t=JSON.stringify(n));for(var s=0,d=0;d-1,p=function(t,a){var r=this,o=r.$=e(t);r.name=l,r.uuid=e.zui.uuid(),r.id="zui-datagrid-"+r.uuid,a=e.extend({},p.DEFAULTS,r.$.data(),a);var d=e.zui.clientLang?e.zui.clientLang():"en",g=a.lang;e.isPlainObject(g)?r.lang=e.extend(!0,{},e.zui.getLangData?e.zui.getLangData(l,d,u):u[d],g):(g=g||d,r.lang=e.zui.getLangData?e.zui.getLangData(l,g,u):u[g]||u[d]),a.valueOperator=e.extend({},n,a.valueOperator),a.rowDefaultHeight=a.rowDefaultHeight||30,a.headerHeight=a.headerHeight||a.rowDefaultHeight||30,r.options=a,"number"!=typeof a.borderWidth&&(a.borderWidth=1),o.is("table")&&(a.dataSource=e.extend(i(r.$),a.dataSource),o.hide(),o=e('
').insertAfter(r.$));var h=o.find(".datagrid-container:first");h.length||(h=e('
').appendTo(o)),h.css({width:a.width,borderWidth:a.borderWidth});var f=e(document),v=function(t){var a=h.find(".datagrid-scrollbar-"+t);a.length||(a=e('
').appendTo(h));var o,i,n,s,d=!1,c=null,g=".scrollbar"+t+"."+l+"."+r.uuid,u=function(e){if(d){var a=e["h"===t?"pageX":"pageY"];if(c!==a){c=a,a=a-o+i;var l,g=r.layout[t+"Scroll"];l=n?c-o+s:Math.max(0,Math.min(g.space,a-Math.round(g.barSize/2))),"h"===t?r.setScrollbarOffset(l):r.setScrollbarOffset(null,l)}}},p=0,v=function(t){p&&(e.zui.clearAsap||clearTimeout)(p),p=(e.zui.asap||setTimeout)(function(){p=0,u(t)},0)};a.on("mousedown",function(l){l.preventDefault(),d=!0;var c=r.layout[t+"Scroll"],h="h"===t?"X":"Y";i=l["offset"+h],o=l["page"+h],n=e(l.target).is(".bar"),s=c.offset,n&&(i+=s),v(l),a.addClass("scrolling"),f.on("mouseup"+g,function(e){d=!1,v(e),f.off(g),a.removeClass("scrolling")}).on("mousemove"+g,v)}),r["$"+t+"Scroll"]=a,r["$"+t+"Scrollbar"]=a.find(".bar")};v("h"),v("v");var m=a.mouseWheelFactor,y=window.navigator.userAgent.match(/Win/i),C="onwheel"in document.createElement("div");y&&!C&&(m*=20),C&&(m*=-1),h.on(C?"wheel":"mousewheel",function(e){var t=C?e.originalEvent.deltaX:e.deltaX,a=C?e.originalEvent.deltaY:e.deltaY,o=r.layout,i=o.scrollLeft-Math.round(t*m),l=o.scrollTop-Math.round(a*m);i=Math.max(0,Math.min(i,o.width-o.containerWidth)),l=Math.max(0,Math.min(l,o.height-o.containerHeight)),i===o.scrollLeft&&l===o.scrollTop||(r.scroll(i,l),e.preventDefault())}),r.$container=h;var w=o.find(".datagrid-cells:first");if(w.length||(w=e('
').appendTo(h)),w.toggleClass("datagrid-hover-cell",!!a.hoverCell).toggleClass("datagrid-hover-row",!!a.hoverRow).toggleClass("datagrid-hover-col",!!a.hoverCol).toggleClass("datagrid-hover-shadow",!!a.hoverCol),r.$cells=w,r.isFuncConfigs="function"==typeof a.configs,r.configs=r.isFuncConfigs?a.configs:e.extend({},s,a.configs),r.layout={scrollLeft:0,scrollTop:0},r.configsCache={},r.userConfigs={},r.states=e.extend(!0,{},c,a.states),r.cells=[],r.setPager(r.states.pager),r.setDataSource(a.dataSource),a.responsive&&h.on("resize",function(){r.layout.cols=null,r.render()}),a.hoverCol&&w.on("mouseenter",".datagrid-cell-head",function(){var t=e(this),a=t.data("col");r.$cells.find(".datagrid-cell.hover").removeClass("hover"),r.$cells.find('.datagrid-cell[data-col="'+a+'"]').addClass("hover")}).on("mouseleave",".datagrid-cell-head.hover",function(){r.$cells.find(".datagrid-cell.hover").removeClass("hover")}),a.sortable&&w.on("click",".datagrid-col-sortable",function(){var t=e(this).data("col"),a=r.getColConfig(t),o=r.states.sortBy,i=r.states.order;o!==a.name?(o=a.name,i="desc"):"desc"===i?i="asc":"asc"===i&&(o=""),r.sortBy(o,i)}),a.onClickCell&&w.on("click",".datagrid-cell",function(t){var a=e(this),o=r.getCell(a.data("row"),a.data("col"));r.$.callComEvent(r,"onClickCell",[t,o,a])}),a.checkable?a.selectable&&e.fn.selectable?(r.selectable=w.selectable(e.extend({selector:".datagrid-row-cell",trigger:a.checkByClickRow?null:".datagrid-row-cell .datagrid-has-checkbox",clickBehavior:"multi",select:function(e){r.checkRow(e.id,!0)},unselect:function(e){r.checkRow(e.id,!1)}},e.isPlainObject(a.selectable)?a.selectable:null)).data("zui.selectable"),w.on("click",".datagrid-cell-head.datagrid-has-checkbox",function(){r.checkRow(e(this).data("row")),r.selectable.syncSelectionsFromClass()})):w.on("click",a.checkByClickRow?".datagrid-row":".datagrid-has-checkbox",function(t){var a=e(this).data("row");(a||e(t.target).closest(".datagrid-has-checkbox").length)&&r.checkRow(a)}):a.freeSelect&&(a.selectable&&e.fn.selectable||w.on("click",".datagrid-cell-cell",function(t){var a=e(this),o=a.data("row"),i=a.data("col");r.selectCell(o,i,!0,!0)})),a.editOnDbclick&&(w.on("dblclick",".datagrid-cell-cell:not(.editing)",function(t){var a=e(this),o=a.data("row"),i=a.data("col");r.setCellEditable(o,i,!0),t.preventDefault()}),w.on("blur",".datagrid-cell-cell.editing",function(t){var a=e(this),o=a.data("row"),i=a.data("col");r.editCell(o,i,a.text().trim(),!0)}).on("paste",".datagrid-cell-cell.editing",function(t){var a=e(this);a.text(a.text().trim())})),e.fn.pager){var b=r.$.find(".pager");b.length&&(r.pagerObj=b.pager(e.extend({},r.pager,{onPageChange:function(e){r.setPager(e).render()}})).data("zui.pager"))}if(e.fn.searchBox){var x=r.$.find(".search-box");x&&(r.searchbox=x.searchBox({onSearchChange:function(e){r.search(e)}}))}r.render()};p.prototype.setPager=function(t,a,r){var o=this;"object"==typeof t&&(r=t.recPerPage,a=t.recTotal,t=t.page);var i=o.pager,l=e.extend({},i);return i||(i=e.extend({},d)),"number"==typeof r&&r>0&&(i.recPerPage=r),"number"==typeof a&&a>=0&&(i.recTotal=a),"number"==typeof t&&t>=0&&(i.page=t),i.totalPage=i.recTotal&&i.recPerPage?Math.ceil(i.recTotal/i.recPerPage):1,i.page=Math.max(0,Math.min(i.page,i.totalPage)),i.pageRecCount=i.recTotal,i.page&&i.recTotal&&(i.page1&&(i.pageRecCount=i.recTotal-i.recPerPage*(i.page-1))),i.skip=i.page>1?(i.page-1)*i.recPerPage:0,i.end=i.skip+i.pageRecCount,o.pager=i,l.page===i.page&&l.recTotal===i.recTotal&&l.recPerPage===i.recPerPage||(o.scroll(0,0),o.layout.cols=null),o},p.prototype.goToPage=function(e){return this.goToPage(e)},p.prototype.gotoPage=function(e){return this.setPager(e).render()},p.prototype.setSearch=function(a){return a!==t&&null!==a||(a=""),this.states.search=e.trim(a),this},p.prototype.search=function(e){var t=this;return e!==t.states.search&&t.pager.page&&t.setPager(1),t.setSearch(e).render()},p.prototype.setSorter=function(e,a){var r=this;return a===t&&(a="desc"===r.states.order?"asc":"desc"),r.states.order=a.toLowerCase(),r.states.sortBy=e,r},p.prototype.sortBy=function(e,t){return this.setSorter(e,t).render()},p.prototype.setDataSource=function(a,r){var o=this,i={},l=o.dataSource&&o.dataSource.cols;if(Array.isArray(a)?(i.array=a,i.length=a.length,o.setPager("",a.length)):e.isPlainObject(a)?i=e.extend(i,a):"string"==typeof a&&(i.remote=a),i.cache===!0||i.cache===t?(i.cache=[],i.cacheSize=1):"number"==typeof i.cache&&(i.cacheSize=i.cache,i.cache=[]),Array.isArray(i.data)?(i.array=i.data,i.length=i.array.length,o.setPager("",i.length),delete i.data):i.data||"function"!=typeof i.getByIndex||o.setPager("",i.length),o.dataSource=i,r=r||i.cols||l||[],r.length)for(var n=0;n
').appendTo(i.$container).on("click",".close",function(){l.slideUp(),i.messagerAutoCloseTimer&&(clearTimeout(i.messagerAutoCloseTimer),i.messagerAutoCloseTimer=null)})),l.attr("class","datagrid-messager bg-"+r).find(".content").text(a),l.slideDown(),void(o&&(i.messagerAutoCloseTimer=setTimeout(function(){l.slideUp(),i.messagerAutoCloseTimer=null},o)))):void l.slideUp()},p.prototype.renderLoading=function(a){var r=this;a!==t&&(r.states.loading=a);var o=r.$container.find(".datagrid-loading");a?(o.length||(o=e('').appendTo(r.$container)),o.find(".datagrid-loading-message").text("string"==typeof a?a:""),o.fadeIn()):o.fadeOut()},p.prototype.getData=function(e){var t=this.dataSource,a=null;if(e&&e!==t.dataId){if(t.cache&&t.cache.length)for(var r=t.cache.length-1;r>=0;--r){var o=t.cache[r];if(o.id===e){t.dataId=e,t.data=o.data,this.setPager(o.pager),a=o.data;break}}}else a=t.data;return a},p.prototype.resetData=function(t,a,r){var o=this.dataSource;if(o.dataId=t,o.data=a,o.cache){for(var i=o.cache.length-1;i>0;--i){var l=o.cache[i];if(l.id===t){o.cache.splice(i,1);break}}for(o.cache.push({id:t,data:a,pager:e.extend({},r)});o.cache.length>o.cacheSize;)o.cache.shift()}r&&this.setPager(r)},p.prototype.getRowLayout=function(e){var t=this.layout;if(0===e)return{top:0,height:t.headerHeight};var a=t.rowHeight;return{height:a,top:t.headerHeight+(e>1?(e-1)*a:0)+e*t.borderWidth}},p.prototype.updateLayout=function(){var a=this,r=a.options,o=a.layout,i=(a.data,a.pager),l=i.pageRecCount,n=a.$container,s=n.width(),d=a.dataSource;if(!d.cols.length&&l&&e.each(a.getDataItem(0),function(e){d.cols.push({name:e})}),!o.cols){for(var c,g,h=d.cols,u=r.colAutoMinWidth,f=r.colAutoDefaultWidth,p=0,v=0,m=r.rowIndexWidth,y=[{left:0,width:r.showRowIndex?"auto"===m?8*(l+a.pager.skip+"").length+18:m:0}],C=0,w=y[0].width,b=!1,x=0,S=0,T=0;T=1?(D.minWidth!==t&&(g=Math.max(g,D.minWidth)),c.width=g,w+=g):(D.minWidth===t&&(D.minWidth=u),c.grow=g,p+=g,v+=D.minWidth,x<=c.grow&&(x=c.grow,b=T+1)),c.minWidth=D.minWidth,!S&&D.checkbox&&(S=T+1,c.checkbox=!0),y.push(c))}r.checkable&&!S&&(y[0].checkbox=!0,"auto"===m&&(y[0].width+=30,w+=30));for(var M=s-w,R=M0){var L=y[P-1];c.left=L.left+L.width}C+=g}var k=s-C;b&&k>0&&(y[b].width+=k,C+=k),o.width=C,o.cols=y}o.containerWidth=s,o.rowHeight=r.rowDefaultHeight,o.borderWidth=r.borderWidth,o.headerHeight=r.showHeader?r.headerHeight:0,o.rowsLength=l+1,o.colsLength=o.cols.length,o.height=o.headerHeight+l*(o.rowHeight+o.borderWidth),o.spanMap={};var I=r.height;"page"===I&&(I=o.headerHeight+a.pager.recPerPage*(o.rowHeight+o.borderWidth)),n.css("height",I),o.containerHeight=I,o.vScrollSpare=o.height-o.containerHeight,o.hScrollSpare=o.width-o.containerWidth,a.layout=o;var H=!!i.page||r.partialRendering;return"auto"===H&&(H=o.height>2*o.containerHeight),o.partialRendering=H,o},p.prototype.getCell=function(e,a){var r,i,l=this,n=l.options,s=l.getCellConfig(e,a),d=a>0?l.dataSource.cols[a-1]:null,c={rowIndex:e,colIndex:a,config:s,checked:l.isRowChecked(s.rowId),selected:l.isCellSelected(s.id)};if(0===a?(r="index",i=!n.dataItemIsArray&&s.data&&s.data.index!==t?s.data.index:s.label!==t?s.label:e>0?l.pager.skip+e:""):0===e?(r="head",i=s.label!==t?s.label:s.name!==t?s.name:a):(r="cell",i=s.data&&s.data[n.dataItemIsArray?a:d.name]),e>0){var g=n.valueOperator,h=s.valueType,u=s.valueOperator||(g&&h?g[h]:null);u&&u.getter&&(i=u.getter(i,c,l))}i===t&&(i=""),c.value=i,c.type=r;var f=l.layout.spanMap;if(f[s.id]||s.hidden)c.hidden=!0;else if(s.colspan&&s.colspan>1||s.rowspan&&s.rowspan>1){for(var p=e+(s.rowspan||1),v=a+(s.colspan||1),m=e;m0?r.getDataItem(a-1):null;return l.data=n,n&&(i=n.rowId||n.id),l.rowId=i!==t?i:0===a?"#header":a,l},p.prototype.getColConfigByName=function(e){for(var t=this.dataSource.cols,a=0;a0?a.dataSource.cols[t-1]:{name:"index"},a.layout.cols?a.layout.cols[t]:null,a.isFuncConfigs?a.configs(r):a.configs[r],a.userConfigs[r]),0!==t||a.options.showRowIndex||(o.hidden=!0)),o},p.prototype.getCellConfig=function(t,a){var r=this,i=o(t,a),l=null;return l||(l=e.extend({id:i},r.getColConfig(a),r.getRowConfig(t),r.isFuncConfigs?r.configs(i):r.configs[i],r.userConfigs[i])),l},p.prototype.isRowChecked=function(e){return!!this.states.selections[e]},p.prototype.checkRow=function(e,a,r){var o=this,i=o.states.selections,l=o.getRowConfig(e),n=l.rowId;if(a===t&&(a=!i[n]),i[n]!==a){if(a?i[n]=l:(delete i[n],e>0&&i["#header"]&&(delete i["#header"],o.renderRow(0))),o.renderRow(e),0===e){o.toggleAnimation(!1);for(var s=1;s')).appendTo(r),g.attr({id:c,"data-type":l.type,"data-col":l.colIndex,"data-row":l.rowIndex}).toggleClass("datagrid-cell-head",0===t).toggleClass("datagrid-cell-cell","cell"===l.type).toggleClass("datagrid-cell-index",0===a),s)){var h=g.find(".datagrid-checkbox");h.length||(h=e('
').prependTo(g.addClass("datagrid-has-checkbox")))}var u=i.borderWidth,p=o.layout,v=p.colsLength,m={top:u?-u:0,bottom:u?-u:0,left:u?n.left-u:n.left,width:u?n.width+(v-1===a?2:1)*u:n.width,borderWidth:u};if(n.span&&(n.rowspan&&n.rowspan>1&&(m.bottom-=(n.rowspan-1)*(p.rowHeight+u)),n.colspan&&n.colspan>1))for(var y=a+n.colspan,C=a+1;C0||!i.dataItemIsArray)&&0===t&&i.sortable&&n.sort!==!1){var D=!1;n.name===o.states.sortBy&&(D="desc"===o.states.order?"down":"up");var M=g.find(".datagrid-sorter");M.length||(M=e('
').appendTo(g),g.addClass("datagrid-col-sortable")),M.toggleClass("datagrid-sort-up","up"===D).toggleClass("datagrid-sort-down","down"===D)}return s&&(g.find(".datagrid-checkbox").toggleClass("checked",l.checked),r.toggleClass("active",l.checked)),g.toggleClass("selected",l.selected).attr("contenteditable",d?f?"true":"plaintext-only":null).toggleClass("editing",d),g}},p.prototype.renderRow=function(t){var a=this,r=a.layout,o=a.options,i=a.getRowLayout(t),l=r.colsLength,n=a.id+"-row-"+t,s=e("#"+n);s.length?r.partialRendering&&s.css("top",i.top-r.scrollTop):(s=(o.rowCreator?o.rowCreator(t,a):e('
')).appendTo(a.$cells),s.attr({id:n,"data-row":t,"data-id":t}).css({top:r.partialRendering?i.top-r.scrollTop:i.top,height:i.height}).toggleClass("datagrid-row-head",0===t).toggleClass("datagrid-row-cell",0!==t));for(var d=0;d0&&!t.hasClass("datagrid-fixed")&&(ao)&&t.remove()})}t.options.showHeader&&t.renderRow(0);for(var l=r;l<=o;++l)t.renderRow(l);if(a.vScrollSpare){var n=t.states,s=n.fixedTopUntil,d=n.fixedBottomFrom;if("number"==typeof s&&s>0&&s0&&d>o)for(var l=d;l<=a.rowsLength-1;++l)t.renderRow(l)}t.pagerObj&&t.pagerObj.set(t.pager)},p.prototype.render=function(e){var t=this,a=t.options;return!e&&a.renderDelay?(t.renderDelayTimer&&clearTimeout(t.renderDelayTimer),t.renderDelayTimer=setTimeout(function(){t.render(!0)},a.renderDelay),t):(t.renderDelayTimer&&(clearTimeout(t.renderDelayTimer),t.renderDelayTimer=null),t.loadData(function(e){var a=t.updateLayout();t.$cells.css({width:a.width,height:a.partialRendering?a.containerHeight:t.layout.height}),t.renderData(),t.renderScrolls(),t.renderFixeds(),t.$.callComEvent(t,"onRender")}),t)},p.prototype.setScrollbarOffset=function(e,t){var a=this,r=a.layout,o=r.scrollLeft,i=r.scrollTop;if("number"==typeof e){var l=r.hScroll;l.offset!==e&&(o=Math.round(e*r.hScrollSpare/l.space))}if("number"==typeof t){var n=r.vScroll;n.offset!==t&&(i=Math.round(t*r.vScrollSpare/n.space))}a.scroll(o,i)},p.prototype.renderScrolls=function(){var e=this,t=e.layout,a=t.vScrollSpare,r=t.hScrollSpare,o=a>0,i=r>0;if(e.$vScroll.toggle(o),e.$hScroll.toggle(i),t.scrollLeft=i?Math.max(0,Math.min(r,t.scrollLeft)):0,t.scrollTop=o?Math.max(0,Math.min(a,t.scrollTop)):0,o){var l=e.$vScrollbar,n=t.containerHeight/t.height,s=Math.max(20,Math.floor(n*t.containerHeight)),d=t.containerHeight-s,c=d/a,g=Math.round(t.scrollTop*c);t.vScroll={space:d,size:a,scale:c,barSize:s,offset:g};var h={height:s,top:g};l.css(h)}if(i){var l=e.$hScrollbar,n=t.containerWidth/t.width,s=Math.max(20,Math.floor(n*t.containerWidth)),d=t.containerWidth-s,g=Math.round(t.scrollLeft*d/r),h={width:s,left:g};t.hScroll={offset:g,space:d,size:r,barSize:s},l.css(h)}e.$cells.css({top:t.partialRendering?0:-t.scrollTop,left:-t.scrollLeft})},p.prototype.scroll=function(e,t,a){var r=this,o=new Date,i=r.options.scrollDelay;if(i){if(!a&&r.lastScrollTime&&o-r.lastScrollTime-1){o=Math.min(o,r.rowsLength);for(var i=0;i<=o;++i){var l=t.getRowLayout(i),n=e("#"+t.id+"-row-"+i),s=r.partialRendering?l.top:l.top+r.scrollTop;n.addClass("datagrid-fixed").css("top",s),i===o&&r.scrollTop&&n.addClass("datagrid-fixed-edge-top")}}else o=-1;var d=a.fixedBottomFrom;if("number"==typeof d&&d>-1){d=Math.max(o>-1?o+1:1,Math.min(d,r.rowsLength));for(var i=d;i-1){c=Math.min(c,r.colsLength);for(var i=0;i<=c;++i){var g=r.cols[i],h=t.$cells.find('.datagrid-cell[data-col="'+i+'"]'),u=g.left+r.scrollLeft-r.borderWidth;h.addClass("datagrid-fixed").css("left",u),i===c&&r.scrollLeft&&h.addClass("datagrid-fixed-edge-left")}}else c=-1;var f=a.fixedRightFrom;if("number"==typeof f&&f>-1){f=Math.max(c>-1?c+1:1,Math.min(f,r.colsLength));for(var i=f;i