agdar/static/plugins/datatables.net-fixedcolumns/js/dataTables.fixedColumns.min.mjs
2025-11-02 14:35:35 +03:00

7 lines
7.7 KiB
JavaScript

/*! FixedColumns 5.0.4
* © SpryMedia Ltd - datatables.net/license
*/
import jQuery from"jquery";import DataTable from"datatables.net";let $=jQuery;!function(){"use strict";var u,i;o.prototype.end=function(t){return void 0!==t?(0<=t&&t<=this.s.dt.columns().count()&&(this.c.end=t,this._addStyles()),this):this.c.end},o.prototype.left=function(t){return this.s.rtl?this.end(t):this.start(t)},o.prototype.right=function(t){return this.s.rtl?this.start(t):this.end(t)},o.prototype.start=function(t){return void 0!==t?(0<=t&&t<=this.s.dt.columns().count()&&(this.c.start=t,this._addStyles()),this):this.c.start},o.prototype._addStyles=function(){var s=this.s.dt,l=this,i=this.s.dt.columns(":visible").count(),o=s.table().header.structure(":visible"),n=s.table().footer.structure(":visible"),d=s.columns(":visible").widths().toArray(),t=u(s.table().node()).closest("div.dt-scroll"),e=u(s.table().node()).closest("div.dt-scroll-body")[0],r=this.s.rtl,a=this.c.start,c=this.c.end,f=r?c:a,r=r?a:c,h=s.settings()[0].oBrowser.barWidth;if(0===t.length)return this;e.offsetWidth===e.clientWidth&&(h=0),s.columns().every(function(t){var e,t=s.column.index("toVisible",t);null!==t&&(t<a?(e=l._sum(d,t),l._fixColumn(t,e,"start",o,n,h)):i-c<=t?(e=l._sum(d,i-t-1,!0),l._fixColumn(t,e,"end",o,n,h)):l._fixColumn(t,0,"none",o,n,h))}),u(s.table().node()).toggleClass(l.classes.tableFixedStart,0<a).toggleClass(l.classes.tableFixedEnd,0<c).toggleClass(l.classes.tableFixedLeft,0<f).toggleClass(l.classes.tableFixedRight,0<r);e=s.table().header(),f=s.table().footer(),r=u(e).outerHeight(),e=u(f).outerHeight();this.dom.topBlocker.appendTo(t).css("top",0).css(this.s.rtl?"left":"right",0).css("height",r).css("width",h+1).css("display",h?"block":"none"),f&&this.dom.bottomBlocker.appendTo(t).css("bottom",0).css(this.s.rtl?"left":"right",0).css("height",e).css("width",h+1).css("display",h?"block":"none")},o.prototype._destroy=function(){this.s.dt.off(".dtfc"),this.dom.scroller.off(".dtfc"),u(this.s.dt.table().node()).removeClass(this.classes.tableScrollingEnd+" "+this.classes.tableScrollingLeft+" "+this.classes.tableScrollingStart+" "+this.classes.tableScrollingRight),this.dom.bottomBlocker.remove(),this.dom.topBlocker.remove()},o.prototype._fixColumn=function(e,i,o,t,s,n){function l(t,e){var s,l;"none"===o?t.css("position","").css("left","").css("right","").removeClass(d.classes.fixedEnd+" "+d.classes.fixedLeft+" "+d.classes.fixedRight+" "+d.classes.fixedStart):(s="start"===o?"left":"right",d.s.rtl&&(s="start"===o?"right":"left"),l=i,"end"!==o||"header"!==e&&"footer"!==e||(l+=n),t.css("position","sticky").css(s,l).addClass("start"===o?d.classes.fixedStart:d.classes.fixedEnd).addClass("left"===s?d.classes.fixedLeft:d.classes.fixedRight))}var d=this,r=this.s.dt;t.forEach(function(t){t[e]&&l(u(t[e].cell),"header")}),l(r.column(e+":visible",{page:"current"}).nodes().to$(),"body"),s&&s.forEach(function(t){t[e]&&l(u(t[e].cell),"footer")})},o.prototype._scroll=function(){var t,e,s,l,i=this.dom.scroller[0];i&&(t=u(this.s.dt.table().node()).add(this.s.dt.table().header().parentNode).add(this.s.dt.table().footer().parentNode).add("div.dt-scroll-headInner table",this.s.dt.table().container()).add("div.dt-scroll-footInner table",this.s.dt.table().container()),e=i.scrollLeft,s=!this.s.rtl,l=0!==e,i=i.scrollWidth>i.clientWidth+Math.abs(e)+1,t.toggleClass(this.classes.tableScrollingStart,l),t.toggleClass(this.classes.tableScrollingEnd,i),t.toggleClass(this.classes.tableScrollingLeft,l&&s||i&&!s),t.toggleClass(this.classes.tableScrollingRight,i&&s||l&&!s))},o.prototype._setKeyTableListener=function(){var a=this;this.s.dt.on("key-focus.dt.dtfc",function(t,e,s){var l,i,o,n=u(s.node()).offset(),d=a.dom.scroller[0],r=u(u(a.s.dt.table().node()).closest("div.dt-scroll-body"));0<a.c.start&&(o=(i=u(a.s.dt.column(a.c.start-1).header())).offset(),i=i.outerWidth(),u(s.node()).hasClass(a.classes.fixedLeft)?r.scrollLeft(0):n.left<o.left+i&&(l=r.scrollLeft(),r.scrollLeft(l-(o.left+i-n.left)))),0<a.c.end&&(o=a.s.dt.columns().data().toArray().length,i=u(s.node()).outerWidth(),o=u(a.s.dt.column(o-a.c.end).header()).offset(),u(s.node()).hasClass(a.classes.fixedRight)?r.scrollLeft(d.scrollWidth-d.clientWidth):n.left+i>o.left&&(l=r.scrollLeft(),r.scrollLeft(l-(o.left-(n.left+i)))))})},o.prototype._sum=function(t,e,s){return(t=(s=void 0===s?!1:s)?t.slice().reverse():t).slice(0,e).reduce(function(t,e){return t+e},0)},o.version="5.0.4",o.classes={bottomBlocker:"dtfc-bottom-blocker",fixedEnd:"dtfc-fixed-end",fixedLeft:"dtfc-fixed-left",fixedRight:"dtfc-fixed-right",fixedStart:"dtfc-fixed-start",tableFixedEnd:"dtfc-has-end",tableFixedLeft:"dtfc-has-left",tableFixedRight:"dtfc-has-right",tableFixedStart:"dtfc-has-start",tableScrollingEnd:"dtfc-scrolling-end",tableScrollingLeft:"dtfc-scrolling-left",tableScrollingRight:"dtfc-scrolling-right",tableScrollingStart:"dtfc-scrolling-start",topBlocker:"dtfc-top-blocker"},o.defaults={i18n:{button:"FixedColumns"},start:1,end:0};
/*! FixedColumns 5.0.4
* © SpryMedia Ltd - datatables.net/license
*/var s=o;function o(t,e){var s,l=this;if(i&&i.versionCheck&&i.versionCheck("2"))return t=new i.Api(t),this.classes=u.extend(!0,{},o.classes),this.c=u.extend(!0,{},o.defaults,e),this.s={dt:t,rtl:"rtl"===u(t.table().node()).css("direction")},e&&void 0!==e.leftColumns&&(e.left=e.leftColumns),e&&void 0!==e.left&&(this.c[this.s.rtl?"end":"start"]=e.left),e&&void 0!==e.rightColumns&&(e.right=e.rightColumns),e&&void 0!==e.right&&(this.c[this.s.rtl?"start":"end"]=e.right),this.dom={bottomBlocker:u("<div>").addClass(this.classes.bottomBlocker),topBlocker:u("<div>").addClass(this.classes.topBlocker),scroller:u("div.dt-scroll-body",this.s.dt.table().container())},this.s.dt.settings()[0]._bInitComplete?(this._addStyles(),this._setKeyTableListener()):t.one("init.dt.dtfc",function(){l._addStyles(),l._setKeyTableListener()}),t.on("column-sizing.dt.dtfc column-reorder.dt.dtfc draw.dt.dtfc",function(){return l._addStyles()}),s=i.util.debounce(function(){l._addStyles()},50),t.on("column-visibility.dt.dtfc",function(){s()}),this.dom.scroller.on("scroll.dtfc",function(){return l._scroll()}),this._scroll(),t.settings()[0]._fixedColumns=this,t.on("destroy",function(){return l._destroy()}),this;throw new Error("FixedColumns requires DataTables 2 or newer")}t=$,i=(u=t).fn.dataTable,$.fn.dataTable.FixedColumns=s,$.fn.DataTable.FixedColumns=s;var t=DataTable.Api.register;function l(t,e){void 0===e&&(e=null);t=new DataTable.Api(t),e=e||t.init().fixedColumns||DataTable.defaults.fixedColumns;new s(t,e)}t("fixedColumns()",function(){return this}),t("fixedColumns().start()",function(t){var e=this.context[0];return void 0!==t?(e._fixedColumns.start(t),this):e._fixedColumns.start()}),t("fixedColumns().end()",function(t){var e=this.context[0];return void 0!==t?(e._fixedColumns.end(t),this):e._fixedColumns.end()}),t("fixedColumns().left()",function(t){var e=this.context[0];return void 0!==t?(e._fixedColumns.left(t),this):e._fixedColumns.left()}),t("fixedColumns().right()",function(t){var e=this.context[0];return void 0!==t?(e._fixedColumns.right(t),this):e._fixedColumns.right()}),DataTable.ext.buttons.fixedColumns={action:function(t,e,s,l){$(s).attr("active")?($(s).removeAttr("active").removeClass("active"),e.fixedColumns().start(0),e.fixedColumns().end(0)):($(s).attr("active","true").addClass("active"),e.fixedColumns().start(l.config.start),e.fixedColumns().end(l.config.end))},config:{start:1,end:0},init:function(t,e,s){void 0===t.settings()[0]._fixedColumns&&l(t.settings(),s),$(e).attr("active","true").addClass("active"),t.button(e).text(s.text||t.i18n("buttons.fixedColumns",t.settings()[0]._fixedColumns.c.i18n.button))},text:null},$(document).on("plugin-init.dt",function(t,e){"dt"!==t.namespace||!e.oInit.fixedColumns&&!DataTable.defaults.fixedColumns||e._fixedColumns||l(e,null)})}();export default DataTable;