4 lines
1.5 KiB
JavaScript
4 lines
1.5 KiB
JavaScript
/*! Bootstrap 5 integration for DataTables' Responsive
|
|
* © SpryMedia Ltd - datatables.net/license
|
|
*/
|
|
import jQuery from"jquery";import DataTable from"datatables.net-bs5";import Responsive from"datatables.net-responsive";let $=jQuery;var modal,_display=DataTable.Responsive.display,_original=_display.modal,_modal=$('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"/></div></div></div>'),_bs=window.bootstrap;function getBs(){var a=DataTable.use("bootstrap");if(a)return a;if(_bs)return _bs;throw new Error("No Bootstrap library. Set it with `DataTable.use(bootstrap);`")}DataTable.Responsive.bootstrap=function(a){_bs=a},_display.modal=function(r){var a;return!modal&&_bs.Modal&&(a=getBs(),modal=new a.Modal(_modal[0])),function(a,d,o,e){if(modal){var t,l,i=o();if(!1===i)return!1;if(d){if(!$.contains(document,_modal[0])||a.index()!==_modal.data("dtr-row-idx"))return null;_modal.find("div.modal-body").empty().append(i)}else r&&r.header&&(l=(t=_modal.find("div.modal-header")).find("button").detach(),t.empty().append('<h4 class="modal-title">'+r.header(a)+"</h4>").append(l)),_modal.find("div.modal-body").empty().append(i),_modal.data("dtr-row-idx",a.index()).one("hidden.bs.modal",e).appendTo("body"),modal.show();return!0}return _original(a,d,o,e)}};export default DataTable; |