/*! Responsive 4.0.1 for DataTables
 * Copyright (c) SpryMedia Ltd - datatables.net/license
 */
import DataTable,{Dom,util,Api}from"datatables.net";DataTable.util;let childRow=function(e,t,n){var s=Dom.s(e.node());if(t){if(s.classHas("dtr-expanded"))return e.child(n(),"child").show(),!0}else{if(!s.classHas("dtr-expanded"))return!1!==(t=n())&&(e.child(t,"child").show(),!0);e.child(!1)}return!1},childRowImmediate=function(e,t,n){var s=Dom.s(e.node());return!t&&s.classHas("dtr-expanded")||!e.responsive.hasHidden()?(e.child(!1),!1):!1!==(t=n())&&(e.child(t,"child").show(),!0)};function modal(r){return function(e,t,n,s){n=n();if(!1===n)return!1;if(t){if(!(o=Dom.s("div.dtr-modal-content")).count()||e.index()!==o.data("dtrRowIdx"))return!1;o.empty().append(n)}else{var i=function(){o.remove(),Dom.s(document).off("keypress.dtr"),Dom.s(e.node()).classRemove("dtr-expanded"),s()},o=Dom.c("div").classAdd("dtr-modal").append(Dom.c("div").classAdd("dtr-modal-display").append(Dom.c("div").classAdd("dtr-modal-content").data("dtrRowIdx",e.index()).append(n)).append(Dom.c("div").classAdd("dtr-modal-close").html("&times;").on("click",function(){i()}))).append(Dom.c("div").classAdd("dtr-modal-background").on("click",function(){i()})).appendTo("body");Dom.s(e.node()).classAdd("dtr-expanded"),Dom.s(document).on("keyup.dtr",function(e){27===e.keyCode&&(e.stopPropagation(),i())})}return r&&r.header&&Dom.s("div.dtr-modal-content").prepend(Dom.c("h2").html(r.header(e))),!0}}function listHiddenNodes(){function e(t,e,n){let s=this,i=Dom.c("ul").attr("data-dtr-index",e).classAdd("dtr-details"),o=!1;return n.forEach(function(e){e.hidden&&(e.className,Dom.c("li").classAdd(e.className).attr("data-dtr-index",e.columnIndex).attr("data-dt-row",e.rowIndex).attr("data-dt-column",e.columnIndex).append(Dom.c("span").classAdd("dtr-title").html(e.title)).append(Dom.c("span").classAdd("dtr-data").append(s.childNodes(t,e.rowIndex,e.columnIndex))).appendTo(i),o=!0)}),!!o&&i.get(0)}return e._responsiveMovesNodes=!0,e}function listHidden(){return function(e,t,n){let s=Dom.c("ul").attr("data-dtr-index",t).classAdd("dtr-details");return n.forEach(function(e){e.hidden&&Dom.c("li").classAdd(e.className).attr("data-dtr-index",e.columnIndex).attr("data-dt-row",e.rowIndex).attr("data-dt-column",e.columnIndex).append(Dom.c("span").classAdd("dtr-title").html(e.title)).append(Dom.c("span").classAdd("dtr-data").html(e.data)).appendTo(s)}),!!s.children().count()&&s.get(0)}}function tableAll(i={}){return i=DataTable.util.object.assign({tableClass:""},i),function(e,t,n){let s=Dom.c("table").classAdd(i.tableClass).classAdd("dtr-details");return n.forEach(function(e){e.hidden&&Dom.c("tr").classAdd(e.className).attr("data-dt-row",e.rowIndex).attr("data-dt-column",e.columnIndex).append(Dom.c("td").html(e.title)).append(Dom.c("td").html(e.data)).appendTo(s)}),!!s.children().count()&&s.get(0)}}if(!DataTable||!DataTable.versionCheck||!DataTable.versionCheck("3"))throw"DataTables Responsive requires DataTables 3 or newer";class Responsive{constructor(e,t){let n={type:"inline"};t&&"string"==typeof t.details?n={type:t.details}:t&&!1===t.details&&(n={type:!1}),this.c=util.object.assignDeep({},Responsive.defaults,DataTable.defaults.responsive,t),this.s={childNodeStore:{},columns:[],current:[],details:util.is.plainObject(this.c.details)?util.object.assign(n,this.c.details):n,dt:new DataTable.Api(e),timer:null};t=this.s.dt.settings()[0];t._responsive||(t._responsive=this)._init()}_init(){var o=this,i=this.s.dt,t=Dom.w.width(),e=(Dom.w.on("orientationchange.dtr",DataTable.util.throttle(function(){var e=Dom.w.width();e!==t&&(o._resize(),t=e)})),i.on("row-created.dtr",function(e,t,n,s){o.s.current.includes(!1)&&Dom.s(t).children("td, th").each(function(e,t){t=i.column.index("toData",t);!1===o.s.current[t]&&Dom.s(e).css("display","none").classAdd("dtr-hidden")})}),i.on("rowInvalidate.dtr",(e,t,n)=>{this._redrawChildren()}),i.on("destroy.dtr",function(){i.off(".dtr"),Dom.s(i.table().body()).off(".dtr"),Dom.w.off("resize.dtr orientationchange.dtr"),i.cells(".dtr-control").nodes().toDom().classRemove("dtr-control"),Dom.s(i.table().node()).classRemove("dtr-inline collapsed"),o.s.current.forEach((e,t)=>{!1===e&&o._setColumnVis(t,!0)})}),this.c.breakpoints&&this.c.breakpoints.sort((e,t)=>e.width<t.width?1:e.width>t.width?-1:0),this._classLogic(),this.s.details);!1!==e.type&&(o._detailsInit(),i.on("column-visibility.dtr",function(){o.s.timer&&clearTimeout(o.s.timer),o.s.timer=setTimeout(function(){o.s.timer=null,o._classLogic(),o._resizeAuto(),o._resize(!0),o._redrawChildren()},100)}),i.on("draw.dtr",function(){o._redrawChildren()}),Dom.s(i.table().node()).classAdd("dtr-"+e.type)),i.on("column-calc.dt",function(e,t){for(var n=o.s.current,s=0;s<n.length;s++){var i=t.visible.indexOf(s);!1===n[s]&&0<=i&&t.visible.splice(i,1)}}),i.on("preXhr.dtr",function(){var e=[];i.rows().every(function(){this.child.isShown()&&e.push(this.id(!0))}),i.one("draw.dtr",function(){o._resizeAuto(),o._resize(),i.rows(e).every(function(){o._detailsDisplay(this,!1)})})}),i.on("draw.dtr",function(){i.page.info().serverSide&&(o.s.childNodeStore={}),o._controlClass()}).ready(function(){o._resizeAuto(),o._resize(),i.on("column-sizing.dtr",function(){o._resizeAuto(),o._resize()})}),i.on("column-reorder.dtr",function(e,t,n){o._classLogic(),o._resizeAuto(),o._resize(!0)})}childNodes(e,t,n){var s=t+"-"+n;if(this.s.childNodeStore[s])return this.s.childNodeStore[s];for(var i=[],o=e.cell(t,n).node().childNodes,r=0,d=o.length;r<d;r++)i.push(o[r]);return this.s.childNodeStore[s]=i}_colGroupAttach(e,t,n){var s=null;if(t[n].get(0).parentNode!==e.get(0)){for(var i=n+1;i<t.length;i++)if(e.get(0)===t[i].get(0).parentNode){s=i;break}null!==s?t[n].insertBefore(t[s].get(0)):e.append(t[n])}}_childNodesRestore(e,t,n){var s=t+"-"+n;if(this.s.childNodeStore[s]){var i=e.cell(t,n).node(),e=this.s.childNodeStore[s];if(0<e.length){for(var o=e[0].parentNode.childNodes,r=[],d=0,a=o.length;d<a;d++)r.push(o[d]);for(var l=0,c=r.length;l<c;l++)i.appendChild(r[l])}delete this.s.childNodeStore[s]}}_columnsVisibility(n){for(var s=this.s.dt,e=this.s.columns,t=e.map(function(e,t){return{columnIdx:t,priority:e.priority}}).sort(function(e,t){return e.priority!==t.priority?e.priority-t.priority:e.columnIdx-t.columnIdx}),i=e.map((e,t)=>!1===s.column(t).visible()?"not-visible":(!e.auto||null!==e.minWidth)&&(!0===e.auto?"-":e.includeIn.includes(n))),o=0,r=0,d=i.length;r<d;r++)!0===i[r]&&(o+=e[r].minWidth);var a=s.settings()[0].scroll,a=a.y||a.x?a.barWidth:0,l=s.table().container().offsetWidth-a-o;for(r=0,d=i.length;r<d;r++)e[r].control&&(l-=e[r].minWidth);var c=!1;for(r=0,d=t.length;r<d;r++){var u=t[r].columnIdx;"-"===i[u]&&!e[u].control&&e[u].minWidth&&(c||l-e[u].minWidth<0?i[u]=!(c=!0):i[u]=!0,l-=e[u].minWidth)}var h=!1;for(r=0,d=e.length;r<d;r++)if(!e[r].control&&!e[r].never&&!1===i[r]){h=!0;break}for(r=0,d=e.length;r<d;r++)e[r].control&&(i[r]=h),"not-visible"===i[r]&&(i[r]=!1);return i.includes(!0)||(i[0]=!0),i}_classLogic(){function d(e,t,n,s){var i,o,r,d=a._find(t);if(l)if(n){if("max-"===n){if(d)for(i=d.width,o=0,r=l.length;o<r;o++)l[o].width<=i&&u(e,l[o].name)}else if("min-"===n){if(d)for(i=d.width,o=0,r=l.length;o<r;o++)l[o].width>=i&&u(e,l[o].name)}else if("not-"===n)for(o=0,r=l.length;o<r;o++)s&&-1===l[o].name.indexOf(s)&&u(e,l[o].name)}else c[e].includeIn.push(t)}var a=this,l=this.c.breakpoints,e=this.s.dt,c=[],u=(e.columns().every(function(e){var e=this.column(e),t=e.header().className,n=e.init().responsivePriority,e=e.header().getAttribute("data-priority");void 0===n&&(n=null==e?1e4:+parseInt(e)),c.push({className:t,includeIn:[],auto:!1,control:!1,never:!!t.match(/\b(dtr\-)?never\b/),priority:n,minWidth:0})}),function(e,t){e=c[e].includeIn;e.includes(t)||e.push(t)});c.forEach(function(e,s){for(var t=e.className.split(" "),i=!1,n=0,o=t.length;n<o;n++){var r=t[n].trim();if("all"===r||"dtr-all"===r)return i=!0,void(e.includeIn=l.map(e=>e.name));if("none"===r||"dtr-none"===r||e.never)return void(i=!0);if("control"===r||"dtr-control"===r)return i=!0,void(e.control=!0);null!=l&&l.forEach(e=>{var t=e.name.split("-"),n=new RegExp("(min\\-|max\\-|not\\-)?("+t[0]+")(\\-[_a-zA-Z0-9])?"),n=r.match(n);n&&(i=!0,n[2]===t[0]&&n[3]==="-"+t[1]?d(s,e.name,n[1],n[2]+n[3]):n[2]!==t[0]||n[3]||d(s,e.name,n[1],n[2]))})}i||(e.auto=!0)}),this.s.columns=c}_controlClass(){var e,t;"inline"===this.s.details.type&&(e=this.s.dt,t=this.s.current.indexOf(!0),e.cells(null,function(e){return e!==t},{page:"current"}).nodes().toDom().filter(".dtr-control").classRemove("dtr-control"),0<=t)&&e.cells(null,t,{page:"current"}).nodes().toDom().classAdd("dtr-control"),this._tabIndexes()}_detailsDisplay(t,n){function e(e){Dom.s(t.node()).classToggle("dtr-expanded",!1!==e),Dom.s(o.table().node()).trigger("responsive-display.dt",!1,[o,t,e,n])}var s,i=this,o=this.s.dt,r=this.s.details;r&&!1!==r.type&&(s="string"==typeof r.renderer?Responsive.renderer[r.renderer]():r.renderer,"boolean"==typeof(r=r.display(t,n,function(){return!!s&&s.call(i,o,t[0][0],i._detailsObj(t[0]))},function(){e(!1)})))&&e(r)}_detailsInit(){var n=this,s=this.s.dt,e=this.s.details,i=("inline"===e.type&&(e.target="td.dtr-control, th.dtr-control"),Dom.s(s.table().body()).on("keyup.dtr","td, th",function(e){var t;document.activeElement&&(t=document.activeElement.nodeName.toLowerCase(),13!==e.keyCode||!Dom.s(this).data("dtrKeyboard")||"td"!==t&&"th"!==t||Dom.s(this).trigger("click"))}),e.target),e="string"==typeof i?i:"td, th";void 0===i&&null===i||Dom.s(s.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",e,function(e){if(Dom.s(s.table().node()).classHas("collapsed")&&s.rows().nodes().toArray().includes(Dom.s(this).closest("tr").get(0))){if("number"==typeof i){var t=i<0?s.columns().eq(0).length+i:i;if(s.cell(this).index().column!==t)return}t=s.row(Dom.s(this).closest("tr"));"click"===e.type?n._detailsDisplay(t,!1):"mousedown"===e.type?Dom.s(this).css("outline","none"):"mouseup"===e.type&&Dom.s(this).css("outline","").trigger("blur")}})}_detailsObj(s){var i=this,o=this.s.dt,r=[];let d=o.settings()[0];return this.s.columns.filter(function(e){return!e.never&&!e.control}).map(function(e,t){var n=d.columns[t];return r[t]||(r[t]=o.column(t)),{className:n.className,columnIndex:t,data:d.fastData(s,t,i.c.orthogonal),hidden:r[t].visible()&&!i.s.current[t],rowIndex:s,title:r[t].title()}})}_find(e){var t=this.c.breakpoints;if(t)for(var n=0,s=t.length;n<s;n++)if(t[n].name===e)return t[n]}_redrawChildren(){var n=this,s=this.s.dt;s.rows({page:"current"}).iterator("row",function(e,t){n._detailsDisplay(s.row(t),!0)})}_resize(n=!1){for(var e,s=this,i=this.s.dt,t=Dom.w.width(),o=this.c.breakpoints,r=o[0].name,d=this.s.columns,a=this.s.current.slice(),l=o.length-1;0<=l;l--)if(t<=o[l].width){r=o[l].name;break}var c=this._columnsVisibility(r),u=(this.s.current=c,!1);for(l=0,e=d.length;l<e;l++)if(!1===c[l]&&!d[l].never&&!d[l].control&&!1==!i.column(l).visible()){u=!0;break}Dom.s(i.table().node()).classToggle("collapsed",u);var h=!1,p=0,m=i.settings()[0],f=Dom.s(i.table().node()).children("colgroup"),v=m.columns.map(function(e){return e.colEl});i.columns().eq(0).each(function(e,t){i.column(e).visible()&&(!0===c[t]&&p++,!n&&c[t]===a[t]||(h=!0,s._setColumnVis(e,c[t])),c[t]?s._colGroupAttach(f,v,t):v[t].detach())}),h&&(i.columns.adjust(),this._redrawChildren(),Dom.s(i.table().node()).trigger("responsive-resize.dt",!1,[i,this._responsiveOnlyHidden()]),0===i.page.info().recordsDisplay)&&Dom.s(i.table().body()).find("td").eq(0).attr("colspan",p),s._controlClass()}_resizeAuto(){var i=this.s.dt,n=this.s.columns,o=this,t=i.columns().indexes().filter(function(e){return i.column(e).visible()});if(this.c.auto&&n.map(e=>e.auto).includes(!0)){for(var e=i.table().node().cloneNode(!1),s=Dom.s(i.table().header().cloneNode(!1)).appendTo(e),r=Dom.s(i.table().footer().cloneNode(!1)).appendTo(e),d=Dom.s(i.table().body()).clone(!0).empty().appendTo(e),a=(e.style.width="auto",i.table().header.structure(t).forEach(e=>{e=e.filter(function(e){return!!e}).map(function(e){return Dom.s(e.cell).clone(!0).css("display","table-cell").css("width","auto").css("min-width","0").get(0)});Dom.c("tr").append(e).appendTo(s)}),Dom.c("tr").appendTo(d)),l=0;l<t.count();l++)a.append(Dom.c("td"));var c=this.s.details.renderer,c=("function"==typeof c&&c._responsiveMovesNodes?i.rows({page:"current"}).every(function(n){var s,e=this.node();e&&(s=e.cloneNode(!1),i.cells(n,t).every(function(e,t){t=o.s.childNodeStore[n+"-"+t];(t?Dom.s(this.node().cloneNode(!1)).append(Dom.s(t).clone(!0)):Dom.s(this.node()).clone(!0)).appendTo(s)}),d.append(s))}):d.append(i.rows({page:"current"}).nodes().toDom().clone(!0)).find("th, td").css("display",""),d.find("th, td").css("display",""),i.table().footer.structure(t).forEach(e=>{e=e.filter(function(e){return!!e}).map(function(e){return Dom.s(e.cell).clone(!1).css("display","table-cell").css("width","auto").css("min-width","0").get(0)});Dom.c("tr").append(e).appendTo(r)}),"inline"===this.s.details.type&&Dom.s(e).classAdd("dtr-inline collapsed"),Dom.s(e).find("[name]").attrRemove("name"),Dom.s(e).css("position","relative"),Dom.c("div").css({width:"1px",height:"1px",overflow:"hidden",clear:"both"}).append(e));c.insertBefore(i.table().node()),a.children().each(function(e,t){t=i.column.index("fromVisible",t);null!==t&&(n[t].minWidth=e.offsetWidth||0)}),c.remove()}}_responsiveOnlyHidden(){var n=this.s.dt;return this.s.current.map(function(e,t){return!1===n.column(t).visible()||e})}_setColumnVis(e,t){var n=this,s=this.s.dt,i=t?"":"none";this._setHeaderVis(e,t,s.table().header.structure()),this._setHeaderVis(e,t,s.table().footer.structure()),s.column(e).nodes().toDom().css("display",i).classToggle("dtr-hidden",!t),s.settings()[0].columns[e].responsiveVisible=t,0!==Object.keys(this.s.childNodeStore).length&&s.cells(null,e).indexes().each(function(e){n._childNodesRestore(s,e.row,e.column)})}_setHeaderVis(n,s,o){var i=this,r=s?"":"none";o.forEach(function(e,t){for(var n=0;n<e.length;n++)if(e[n]&&1<e[n].rowspan)for(var s=e[n].rowspan,i=1;i<s;i++)o[t+i][n]={}}),o.forEach(function(e){if(e[n]&&e[n].cell)Dom.s(e[n].cell).css("display",r).classToggle("dtr-hidden",!s);else for(var t=n;0<=t;){if(e[t]&&e[t].cell){Dom.s(e[t].cell).attr("colSpan",i._colspan(e,t));break}t--}})}_colspan(e,t){for(var n=1,s=t+1;s<e.length;s++)if(null===e[s]&&this.s.current[s])n++;else if(e[s])break;return n}_tabIndexes(){var e=this.s.dt,t=e.cells({page:"current"}).nodes().toDom(),n=e.settings()[0],s=this.s.details.target;t.filter("[data-dtr-keyboard]").attrRemove("data-dtr-keyboard"),"number"==typeof s?e.cells(null,s,{page:"current"}).nodes().toDom().attr("tabIndex",n.tabIndex).data("dtrKeyboard",1):s&&("td:first-child, th:first-child"===s&&(s=">td:first-child, >th:first-child"),t=e.rows({page:"current"}).nodes().toDom(),("tr"===s?t:t.find(s)).attr("tabIndex",n.tabIndex).data("dtrKeyboard",1))}}Responsive.breakpoints=[{name:"desktop",width:1/0},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}],Responsive.defaults={breakpoints:Responsive.breakpoints,auto:!0,details:{display:childRow,renderer:listHidden(),target:0,type:"inline"},orthogonal:"display"},Responsive.display={childRow:childRow,childRowImmediate:childRowImmediate,modal:modal},Responsive.renderer={listHidden:listHidden,listHiddenNodes:listHiddenNodes,tableAll:tableAll},Responsive.version="4.0.1",Api.register("responsive()",function(){return this.inst(this.context)}),Api.register("responsive.index()",function(e){return{column:(e=Dom.s(e)).data("dtr-index"),row:e.parent().data("dtr-index")}}),Api.register("responsive.rebuild()",function(){return this.iterator("table",function(e){e._responsive&&e._responsive._classLogic()})}),Api.register("responsive.recalc()",function(){return this.iterator("table",function(e){e._responsive&&(e._responsive._resizeAuto(),e._responsive._resize())})}),Api.register("responsive.hasHidden()",function(){var e=this.context[0];return!!e._responsive&&e._responsive._responsiveOnlyHidden().includes(!1)}),Api.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(e,t){return!!e._responsive&&e._responsive._responsiveOnlyHidden()[t]},!0)}),DataTable.Responsive=Responsive,Dom.s(document).on("preInit.dt.dtr",function(e,t,n){"dt"===e.namespace&&(Dom.s(t.table).classHas("responsive")||Dom.s(t.table).classHas("dt-responsive")||t.init.responsive||DataTable.defaults.responsive)&&!1!==(e=t.init.responsive)&&new Responsive(t,util.is.plainObject(e)?e:{})});export default DataTable;