7 lines
8.2 KiB
JavaScript
7 lines
8.2 KiB
JavaScript
/*! FixedColumns 4.3.0
|
|
* © SpryMedia Ltd - datatables.net/license
|
|
*/
|
|
import jQuery from"jquery";import DataTable from"datatables.net";let $=jQuery;!function(){"use strict";var D,i;l.prototype.left=function(t){return void 0!==t?(0<=t&&t<=this.s.dt.columns().count()&&(this.c.left=t,this._addStyles()),this):this.c.left},l.prototype.right=function(t){return void 0!==t?(0<=t&&t<=this.s.dt.columns().count()&&(this.c.right=t,this._addStyles()),this):this.c.right},l.prototype._addStyles=function(){this.s.dt.settings()[0].oScroll.sY&&(s=D(this.s.dt.table().node()).closest("div.dataTables_scrollBody")[0],e=this.s.dt.settings()[0].oBrowser.barWidth,s.offsetWidth-s.clientWidth>=e?this.s.barWidth=e:this.s.barWidth=0,this.dom.rightTopBlocker.css("width",this.s.barWidth+1),this.dom.leftTopBlocker.css("width",this.s.barWidth+1),this.dom.rightBottomBlocker.css("width",this.s.barWidth+1),this.dom.leftBottomBlocker.css("width",this.s.barWidth+1));for(var t=null,s=this.s.dt.column(0).header(),e=null,i=(null!==s&&(e=(s=D(s)).outerHeight()+1,t=D(s.closest("div.dataTables_scroll")).css("position","relative")),this.s.dt.column(0).footer()),l=null,o=(null!==i&&(l=(i=D(i)).outerHeight(),null===t&&(t=D(i.closest("div.dataTables_scroll")).css("position","relative"))),this.s.dt.columns().data().toArray().length),r=0,d=0,h=D(this.s.dt.table().node()).children("tbody").children("tr"),a=0,c=new Map,n=0;n<o;n++){var f=this.s.dt.column(n);if(0<n&&c.set(n-1,a),f.visible()){var u=D(f.header()),m=D(f.footer());if(n-a<this.c.left){if(D(this.s.dt.table().node()).addClass(this.classes.tableFixedLeft),t.addClass(this.classes.tableFixedLeft),0<n-a)for(var g=n;g+1<o;){if((S=this.s.dt.column(g-1,{page:"current"})).visible()){r+=D(S.nodes()[0]).outerWidth(),d+=S.header()||S.footer()?D(S.header()).outerWidth():0;break}g--}for(var C=0,p=h;C<p.length;C++){var v=p[C];D(D(v).children()[n-a]).css(this._getCellCSS(!1,r,"left")).addClass(this.classes.fixedLeft)}u.css(this._getCellCSS(!0,d,"left")).addClass(this.classes.fixedLeft),m.css(this._getCellCSS(!0,d,"left")).addClass(this.classes.fixedLeft)}else{for(var x=0,b=h;x<b.length;x++){v=b[x];(R=D(D(v).children()[n-a])).hasClass(this.classes.fixedLeft)&&R.css(this._clearCellCSS("left")).removeClass(this.classes.fixedLeft)}u.hasClass(this.classes.fixedLeft)&&u.css(this._clearCellCSS("left")).removeClass(this.classes.fixedLeft),m.hasClass(this.classes.fixedLeft)&&m.css(this._clearCellCSS("left")).removeClass(this.classes.fixedLeft)}}else a++}for(var B=0,k=0,_=0,n=o-1;0<=n;n--)if((f=this.s.dt.column(n)).visible()){var u=D(f.header()),m=D(f.footer()),y=c.get(n);if(void 0===y&&(y=a),n+_>=o-this.c.right){if(D(this.s.dt.table().node()).addClass(this.classes.tableFixedRight),t.addClass(this.classes.tableFixedRight),n+1+_<o)for(var S,g=n;g+1<o;){if((S=this.s.dt.column(g+1,{page:"current"})).visible()){B+=D(S.nodes()[0]).outerWidth(),k+=S.header()||S.footer()?D(S.header()).outerWidth():0;break}g++}for(var T=0,L=h;T<L.length;T++){v=L[T];D(D(v).children()[n-y]).css(this._getCellCSS(!1,B,"right")).addClass(this.classes.fixedRight)}u.css(this._getCellCSS(!0,k,"right")).addClass(this.classes.fixedRight),m.css(this._getCellCSS(!0,k,"right")).addClass(this.classes.fixedRight)}else{for(var W=0,w=h;W<w.length;W++){var R,v=w[W];(R=D(D(v).children()[n-y])).hasClass(this.classes.fixedRight)&&R.css(this._clearCellCSS("right")).removeClass(this.classes.fixedRight)}u.hasClass(this.classes.fixedRight)&&u.css(this._clearCellCSS("right")).removeClass(this.classes.fixedRight),m.hasClass(this.classes.fixedRight)&&m.css(this._clearCellCSS("right")).removeClass(this.classes.fixedRight)}}else _++;s&&(this.s.rtl?(this.dom.leftTopBlocker.outerHeight(e),t.append(this.dom.leftTopBlocker)):(this.dom.rightTopBlocker.outerHeight(e),t.append(this.dom.rightTopBlocker))),i&&(this.s.rtl?(this.dom.leftBottomBlocker.outerHeight(l),t.append(this.dom.leftBottomBlocker)):(this.dom.rightBottomBlocker.outerHeight(l),t.append(this.dom.rightBottomBlocker)))},l.prototype._destroy=function(){this.s.dt.off(".dtfc"),this.dom.leftBottomBlocker.remove(),this.dom.leftTopBlocker.remove(),this.dom.rightBottomBlocker.remove(),this.dom.rightTopBlocker.remove()},l.prototype._getCellCSS=function(t,s,e){return"left"===e?this.s.rtl?{position:"sticky",right:s+"px"}:{left:s+"px",position:"sticky"}:this.s.rtl?{left:s+(t?this.s.barWidth:0)+"px",position:"sticky"}:{position:"sticky",right:s+(t?this.s.barWidth:0)+"px"}},l.prototype._clearCellCSS=function(t){return"left"===t?this.s.rtl?{position:"",right:""}:{left:"",position:""}:this.s.rtl?{left:"",position:""}:{position:"",right:""}},l.prototype._setKeyTableListener=function(){var h=this;this.s.dt.on("key-focus.dt.dtfc",function(t,s,e){var i,l,o,r=D(e.node()).offset(),d=D(D(h.s.dt.table().node()).closest("div.dataTables_scrollBody"));0<h.c.left&&(i=(l=D(h.s.dt.column(h.c.left-1).header())).offset(),l=l.outerWidth(),r.left<i.left+l&&(o=d.scrollLeft(),d.scrollLeft(o-(i.left+l-r.left)))),0<h.c.right&&(i=h.s.dt.columns().data().toArray().length,l=D(e.node()).outerWidth(),e=D(h.s.dt.column(i-h.c.right).header()).offset(),r.left+l>e.left&&(o=d.scrollLeft(),d.scrollLeft(o-(e.left-(r.left+l)))))}),this.s.dt.on("draw.dt.dtfc",function(){h._addStyles()}),this.s.dt.on("column-reorder.dt.dtfc",function(){h._addStyles()}),this.s.dt.on("column-visibility.dt.dtfc",function(t,s,e,i,l){l&&!s.bDestroying&&setTimeout(function(){h._addStyles()},50)})},l.version="4.3.0",l.classes={fixedLeft:"dtfc-fixed-left",fixedRight:"dtfc-fixed-right",leftBottomBlocker:"dtfc-left-bottom-blocker",leftTopBlocker:"dtfc-left-top-blocker",rightBottomBlocker:"dtfc-right-bottom-blocker",rightTopBlocker:"dtfc-right-top-blocker",tableFixedLeft:"dtfc-has-left",tableFixedRight:"dtfc-has-right"},l.defaults={i18n:{button:"FixedColumns"},left:1,right:0};
|
|
/*! FixedColumns 4.3.0
|
|
* © SpryMedia Ltd - datatables.net/license
|
|
*/var e=l;function l(t,s){var e=this;if(i&&i.versionCheck&&i.versionCheck("1.10.0"))return t=new i.Api(t),this.classes=D.extend(!0,{},l.classes),this.c=D.extend(!0,{},l.defaults,s),s&&void 0!==s.left||void 0===this.c.leftColumns||(this.c.left=this.c.leftColumns),s&&void 0!==s.right||void 0===this.c.rightColumns||(this.c.right=this.c.rightColumns),this.s={barWidth:0,dt:t,rtl:"rtl"===D("body").css("direction")},s={bottom:"0px",display:"block",position:"absolute",width:this.s.barWidth+1+"px"},this.dom={leftBottomBlocker:D("<div>").css(s).css("left",0).addClass(this.classes.leftBottomBlocker),leftTopBlocker:D("<div>").css(s).css({left:0,top:0}).addClass(this.classes.leftTopBlocker),rightBottomBlocker:D("<div>").css(s).css("right",0).addClass(this.classes.rightBottomBlocker),rightTopBlocker:D("<div>").css(s).css({right:0,top:0}).addClass(this.classes.rightTopBlocker)},this.s.dt.settings()[0]._bInitComplete?(this._addStyles(),this._setKeyTableListener()):t.one("init.dt.dtfc",function(){e._addStyles(),e._setKeyTableListener()}),t.on("column-sizing.dt.dtfc",function(){return e._addStyles()}),t.settings()[0]._fixedColumns=this,t.on("destroy",function(){return e._destroy()}),this;throw new Error("FixedColumns requires DataTables 1.10 or newer")}t=$,i=(D=t).fn.dataTable,$.fn.dataTable.FixedColumns=e,$.fn.DataTable.FixedColumns=e;var t=DataTable.Api.register;function o(t,s){void 0===s&&(s=null);t=new DataTable.Api(t),s=s||t.init().fixedColumns||DataTable.defaults.fixedColumns;new e(t,s)}t("fixedColumns()",function(){return this}),t("fixedColumns().left()",function(t){var s=this.context[0];return void 0!==t?(s._fixedColumns.left(t),this):s._fixedColumns.left()}),t("fixedColumns().right()",function(t){var s=this.context[0];return void 0!==t?(s._fixedColumns.right(t),this):s._fixedColumns.right()}),DataTable.ext.buttons.fixedColumns={action:function(t,s,e,i){$(e).attr("active")?($(e).removeAttr("active").removeClass("active"),s.fixedColumns().left(0),s.fixedColumns().right(0)):($(e).attr("active","true").addClass("active"),s.fixedColumns().left(i.config.left),s.fixedColumns().right(i.config.right))},config:{left:1,right:0},init:function(t,s,e){void 0===t.settings()[0]._fixedColumns&&o(t.settings(),e),$(s).attr("active","true").addClass("active"),t.button(s).text(e.text||t.i18n("buttons.fixedColumns",t.settings()[0]._fixedColumns.c.i18n.button))},text:null},$(document).on("plugin-init.dt",function(t,s){"dt"!==t.namespace||!s.oInit.fixedColumns&&!DataTable.defaults.fixedColumns||s._fixedColumns||o(s,null)})}();export default DataTable; |