import 'tailwindcss';
import $ from 'jquery';
import 'laravel-datatables-vite';
import JSZip from 'jszip'; // Required for Excel and CSV export
import 'datatables.net';
import 'datatables.net-buttons';
import 'datatables.net-buttons/js/buttons.html5.js'; // For HTML5 export buttons
import 'datatables.net-buttons/js/buttons.print.min.js'; // For the print button
import 'datatables.net-responsive';
import 'pdfmake/build/pdfmake.js'; // Required for PDF export
import 'pdfmake/build/vfs_fonts.js'; // Required for PDF export
import './dataTables.tailwindcss.js';
import 'datatables.net-responsive-dt';
// Ensure jQuery is available globally
window.$ = window.jQuery = $;
window.JSZip = JSZip;
// Initialize DataTable
let dataTableInstance;
var searchTerms ={};
function initializeDataTable() {
var dataTableName = document.getElementById('datatable-config').dataset.datatableName;
var dataTableColumnsConfig = JSON.parse(document.getElementById('datatable-config').dataset.datatableColumnsConfig);
var dataTableHeadersConfig = JSON.parse(document.getElementById('datatable-config').dataset.datatableHeadersConfig);
if ($.fn.DataTable.isDataTable(`#${dataTableName}-table`)) {
dataTableInstance.destroy();
$(`#${dataTableName}-table tbody`).empty(); // Clear rows to prevent residue
}
dataTableInstance = $(`#${dataTableName}-table`).DataTable({
responsive: true,
retrieve: true,
searching: false,
processing: true,
serverSide: true,
orderCellsTop: true,
fixedHeader: true,
ajax: {
url: '/api/report-data/' + dataTableName,
type: 'POST',
dataSrc: function (json) {
//console.log('Returned data:', json);
//populate any dropdown headers
//console.log(dataTableHeadersConfig);
dataTableHeadersConfig.forEach(function(headerConfig, index){
if(headerConfig.searchtype == "dropdown")
{
//console.log('Tyson here');
var dropdown = $('#'+headerConfig.header.replace(' ', '-')+'FilterDropdown');
//console.log(dropdown);
dropdown.empty().append($('