UNPKG

datatables.net-plugins

Version:

Various small plug-ins for DataTables including feature, ordering, search and internationalisation plug-ins.

1 lines 3.42 kB
import jQuery from"jquery";import DataTable from"datatables.net";let $=jQuery;function setState(e,a,t){e.classList.toggle(a,t);a=e.querySelector("a");a&&(t?a.setAttribute("disabled","disabled"):a.removeAttribute("disabled"))}function stylingStructure(e){e=e.table().container().classList;return e.contains("dt-bootstrap5")||e.contains("dt-bootstrap4")||e.contains("dt-bootstrap")?{wrapper:{tag:"ul",className:"dt-selectpaging pagination"},item:{tag:"li",className:"page-item",disabled:"disabled",liner:{tag:"a",className:"page-link"}},inputItem:{tag:"li",className:"page-item dt-paging-select"},input:{className:"custom-select"}}:e.contains("dt-bulma")?{wrapper:{tag:"ul",className:"dt-selectpaging pagination pagination-list"},item:{tag:"li",className:"",disabled:"disabled",liner:{tag:"a",className:"pagination-link"}},inputItem:{tag:"li",className:"dt-paging-select"},input:{className:""}}:e.contains("dt-foundation")?{wrapper:{tag:"ul",className:"dt-selectpaging pagination"},item:{tag:"li",className:"",disabled:"disabled",liner:{tag:"a",className:""}},inputItem:{tag:"li",className:"dt-paging-select"},input:{className:""}}:e.contains("dt-semanticUI")?{wrapper:{tag:"div",className:"dt-selectpaging ui unstackable pagination menu"},item:{tag:"a",className:"page-link item",disabled:"disabled"},inputItem:{tag:"div",className:"dt-paging-select"},input:{className:"ui input"}}:{wrapper:{tag:"div",className:"dt-selectpaging dt-paging"},item:{tag:"button",className:"dt-paging-button",disabled:"disabled"},inputItem:{tag:"div",className:"dt-paging-select",liner:{tag:"",className:""}},input:{className:""}}}function createElement(e,a,t){var i=document.createElement(e.tag);return i.className=e.className,e.liner&&e.liner.tag?(e=createElement(e.liner,a),i.appendChild(e)):a&&(i.innerHTML=a),t&&i.addEventListener("click",t),i}DataTable.feature.register("selectPaging",function(e,a){let i=new DataTable.Api(e),s=stylingStructure(i);e=Object.assign({firstLast:!0,previousNext:!0,pageOf:!0},a),a=createElement(s.wrapper);let n=createElement(s.item,i.i18n("oPaginate.sFirst","«"),()=>{n.classList.contains(s.item.disabled)||i.page("first").draw(!1)}),l=createElement(s.item,i.i18n("oPaginate.sPrevious","‹"),()=>{l.classList.contains(s.item.disabled)||i.page("previous").draw(!1)}),d=createElement(s.item,i.i18n("oPaginate.sNext","›"),()=>{d.classList.contains(s.item.disabled)||i.page("next").draw(!1)}),p=createElement(s.item,i.i18n("oPaginate.sLast","»"),()=>{p.classList.contains(s.item.disabled)||i.page("last").draw(!1)});var t=createElement(s.inputItem);let r=createElement({tag:"select",className:s.input.className}),c=createElement({tag:"span",className:""});return e.firstLast&&a.appendChild(n),e.previousNext&&a.appendChild(l),a.appendChild(t),e.previousNext&&a.appendChild(d),e.firstLast&&a.appendChild(p),t.appendChild(r),e.pageOf&&t.appendChild(c),r.addEventListener("change",function(){i.page(+r.value).draw(!1)}),i.on("draw",()=>{var a=i.page.info(),e=(setState(n,s.item.disabled,0===a.page),setState(l,s.item.disabled,0===a.page),0===a.recordsTotal||0===a.recordsDisplay?0:a.pages-1);setState(d,s.item.disabled,a.page===e),setState(p,s.item.disabled,a.page===e),r.replaceChildren();for(let e=0;e<a.pages;e++){var t=new Option((e+1).toString(),e.toString());r.appendChild(t)}r.value=a.page,r.disabled=0===a.recordsTotal||0===a.recordsDisplay,c.textContent=" / "+a.pages}),a});export default DataTable;