<!DOCTYPE html>
<html>
  <head>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.datatables.net/v/bs5/jq-3.7.0/jszip-3.10.1/dt-2.1.8/b-3.2.0/b-colvis-3.2.0/b-html5-3.2.0/b-print-3.2.0/cr-2.0.4/date-1.5.4/fc-5.0.4/fh-4.0.1/r-3.0.3/rg-1.5.1/rr-1.5.0/sc-2.4.3/sb-1.8.1/sp-2.3.3/sl-2.1.0/datatables.min.css" rel="stylesheet">
  
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <div class="row">
                        <div class="col-12">
                            <div class="table-responsive">
                                <table class="table table-striped table-bordered align-middle text-nowrap" id="translations-table" data-lh-pl="datatable" data-lh-pl-options="
                                    paging: true,
                                    ordering: true,
                                    info: true,
                                    searching: true,
                                    autoWidth: true,
                                    scrollContainer: false,
                                    scrollX: true,
                                    scrollY: true,
                                    leftColumns: false,
                                    rightColumns: false,
                                    dom: true,
                                    responsive: true,
                                    buttons: true,
                                    iDisplayLength: 10">
                                    <thead>
                                    <tr>
                                        <th>&nbsp;</th>
                                        <th>{{key-column}}</th>
                                        <th>{{status}}</th>
                                        <th>{{priority}}</th>
                                        <th>{{translate}}</th>
                                        <th>{{report}}</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                        <th>test</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr>
                                        <td>1</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>
                                            <button type="button" class="btn btn-xs btn-warning" name="test">{{c-report}}</button>
                                        </td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>2</td>
                                        <td>{{c-key}}</td>
                                        <td>
                                            <select class="form-select form-select-sm py-0 px-1" data-lh-pl="select-dt" data-width="100%" data-lh-pl-options="minimumResultsForSearch: Infinity, size:tb">
                                                <option value="en">English</option>
                                                <option value="es" selected>Español</option>
                                                <option value="fr">Français</option>
                                                <option value="pt">Português</option>
                                            </select>
                                        </td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>3</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>4</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status4}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>5</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>6</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>7</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate4}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>8</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>9</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>10</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>11</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>12</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>13</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>14</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>15</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>16</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>17</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>18</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>19</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>20</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority4}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>21</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>22</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>23</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>24</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>25</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>26</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>
                                            <button type="button" class="btn btn-xs btn-warning" name="test">{{c-report}}</button>
                                        </td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>27</td>
                                        <td>{{c-key}}</td>
                                        <td>{{c-status}}</td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    <tr>
                                        <td>28</td>
                                        <td>{{c-key}}</td>
                                        <td>
                                            <select class="form-select form-select-sm py-0 px-1" data-lh-pl="select-dt" data-width="100%" data-lh-pl-options="minimumResultsForSearch: Infinity, size:tb">
                                                <option value="en">English</option>
                                                <option value="es" selected>Español</option>
                                                <option value="fr">Français</option>
                                                <option value="pt">Português</option>
                                            </select>
                                        </td>
                                        <td>{{c-priority}}</td>
                                        <td>{{c-translate}}</td>
                                        <td>{{c-report}}</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                        <td>test</td>
                                    </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
    </div>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
    <script src="https://cdn.datatables.net/v/bs5/jq-3.7.0/jszip-3.10.1/dt-2.1.8/b-3.2.0/b-colvis-3.2.0/b-html5-3.2.0/b-print-3.2.0/cr-2.0.4/date-1.5.4/fc-5.0.4/fh-4.0.1/r-3.0.3/rg-1.5.1/rr-1.5.0/sc-2.4.3/sb-1.8.1/sp-2.3.3/sl-2.1.0/datatables.min.js"></script>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
export class HandlerPlugin {
  
  getPlOptions(options) {
        return options.split(',').reduce((obj, par) => {
            const [key, value] = par.split(':').map(element => element.trim());
            obj[key] = value;
            return obj;
        }, {});
    }
  handlerDatatable(elements) {
        //await this.resources.loadAssets('select2');
        const tableConfig = {
            getDatatableConfig: (target) => ({
                target: $(target),
                options: target.getAttribute("data-lh-pl-options") || false,
            }),
            getDefaultConfig: () => ({
                paging: false,
                ordering: false,
                info: false,
                searching: false,
                autoWidth: false,
                scrollContainer: false,
                scrollX: false,
                scrollY: false,
                fixedColumns: {
                    leftColumns: false,
                    rightColumns: false,
                },
                colReorder: false,
                dom: false,
                buttons: false,
                iDisplayLength: -1,
                language: {
                    decimal: '.',
                    thousands: ',',
                    emptyTable: '<i class="fa-solid fa-comment-slash"></i>'.repeat(3),
                    info: '_START_ <i class="fa-solid fa-arrow-right"></i> _END_ || _TOTAL_',
                    infoEmpty: '0 <i class="fa-solid fa-arrow-right"></i> 0 || 0',
                    infoFiltered: ' [ T: _MAX_ ]',
                    infoPostFix: "",
                    lengthMenu: "_MENU_",
                    loadingRecords: '<i class="fa-solid fa-arrow-right"></i>'.repeat(2) + ' ...',
                    processing: '<i class="fa-solid fa-arrow-right"></i>'.repeat(2) + ' ...',
                    search: '<i class="fa-solid fa-magnifying-glass"></i>',
                    searchPlaceholder: '',
                    zeroRecords: "---",
                    paginate: {
                        first: '<i class="fa-solid fa-angles-left"></i>',
                        previous: '<i class="fas fa-chevron-left"></i>',
                        next: '<i class="fas fa-chevron-right"></i>',
                        last: '<i class="fa-solid fa-angles-right"></i>'
                    }
                },
                lengthMenu: [
                    [5, 10, 25, 50, 100, 250, 500, 1000, -1],
                    [5, 10, 25, 50, 100, 250, 500, 1000, "∞"]
                ],
                initComplete: function (settings) {
                    const api = new $.fn.dataTable.Api(settings);
                    api.page('last').draw('page');
                    
                },
                drawCallback: function (settings) {
                    const api = new $.fn.dataTable.Api(settings);
                    const handlerPlugin = new HandlerPlugin();
                    const table = $(this);
                    const jqueryElements = table.find('select[data-lh-pl="select-dt"]');
                    const nativeElements = jqueryElements.get();
                    if (nativeElements.length > 0) {
                        //handlerPlugin.handlerSelect2(nativeElements); not in example
                    }
                }
            }),
            createExportModal: (type, e, dt, node, config, cb) => {
                const modalConfig = HandlerModal.initModal();
                modalConfig.title = `Export to ${type}`;
                modalConfig.content = `
                <div class="form-group">
                    <label for="filename" class="form-label">Filename</label>
                    <input type="text" class="form-control" id="filename" value="export">
                </div>`;
                const exportConfig = {
                    pdf: {
                        action: 'pdfHtml5',
                        extraConfig: {
                            orientation: 'landscape',
                            pageSize: 'LETTER',
                            customize: function (doc) {
                                doc.defaultStyle.fontSize = 8;
                                doc.styles.tableHeader.fontSize = 9;
                                doc.styles.tableHeader.alignment = 'left';
                                doc.content[1].table.widths =
                                    Array(doc.content[1].table.body[0].length + 1).join('*').split('');
                            }
                        }
                    },
                    excel: {
                        action: 'excelHtml5',
                        extraConfig: {}
                    }
                };
                modalConfig.footerButtons = [
                    {
                        text: 'Export',
                        class: 'btn-primary',
                        onClick: () => {
                            const filename = document.getElementById('filename').value || 'export';
                            const exportType = exportConfig[type.toLowerCase()];
                            $.fn.dataTable.ext.buttons[exportType.action].action.call(
                                this,
                                e,
                                dt,
                                node,
                                {
                                    ...config,
                                    filename: filename,
                                    ...exportType.extraConfig,
                                    exportOptions: {
                                        columns: ':visible'
                                    }
                                },
                                cb
                            );
                            bootstrap.Modal.getInstance(document.querySelector('.modal.show')).hide();
                        }
                    },
                    {
                        text: 'Cancel',
                        class: 'btn-secondary',
                        onClick: () => {
                            bootstrap.Modal.getInstance(document.querySelector('.modal.show')).hide();
                        }
                    }
                ];
                HandlerModal.createModal(modalConfig);
            },
            getButtons: function () {
                return [{
                    extend: 'collection',
                    text: '<i class="fas fa-cog"></i>',
                    className: 'btn btn-sm btn-info d-flex align-items-center',
                    collectionLayout: 'three-column',
                    autoClose: true,
                    buttons: [
                        {
                            extend: 'copyHtml5',
                            text: '<i class="fas fa-copy"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                            exportOptions: {columns: ':visible'}
                        },
                        {
                            extend: 'print',
                            text: '<i class="fas fa-print"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                            exportOptions: {columns: ':visible'}
                        },
                        {
                            extend: 'pdfHtml5',
                            text: '<i class="fa-solid fa-file-pdf"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                            action: function (e, dt, node, config, cb) {
                                tableConfig.createExportModal('PDF', e, dt, node, config, cb);
                            }
                        },
                        {
                            extend: 'colvis',
                            text: '<i class="fas fa-eye-slash"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                        },
                        {
                            extend: 'excelHtml5',
                            text: '<i class="fas fa-file-excel"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                            action: function (e, dt, node, config, cb) {
                                tableConfig.createExportModal('Excel', e, dt, node, config, cb);
                            }
                        },
                        {
                            text: '<i class="fas fa-question-circle"></i>',
                            className: 'btn fs-4 text-center table-export-element',
                            action: function (e, dt, node, config) {
                                // Implement help action
                            }
                        }
                    ]
                }];
            },
            getDomLayout: () => (
                '<"d-flex justify-content-between align-items-center mb-1"' +
                '<"d-flex align-items-center"l<"html5buttons d-flex flex-row"B>>f>' +
                'rt' +
                '<"d-flex flex-column flex-sm-row justify-content-between align-items-center gap-2"ip>'
            ),
            parseOptions: (options, baseOptions) => {
                if (!options) return baseOptions;
                const optionsObj = this.getPlOptions(options);
                Object.entries(optionsObj).forEach(([key, value]) => {
                    if (key === 'dom') {
                        baseOptions[key] = tableConfig.getDomLayout();
                    } else if (key === 'buttons' && value === 'true') {
                        baseOptions[key] = tableConfig.getButtons();
                    } else {
                        baseOptions[key] = value === 'true' ? true :
                            value === 'false' ? false :
                                !isNaN(value) ? Number(value) : value;
                    }
                });
                return baseOptions;
            },
            setupEventHandlers: (datatable) => {
                datatable.on('draw.dt', function () {
                    const info = datatable.page.info();
                    $(datatable.table().container()).trigger('datatable:update', {
                        page: info.page + 1,
                        pages: info.pages,
                        recordsTotal: info.recordsTotal
                    });
                });
            }
        };
        const initializeDatatable = (element) => {
            const config = tableConfig.getDatatableConfig(element);
            const baseOptions = tableConfig.getDefaultConfig();
            const options = tableConfig.parseOptions(config.options, baseOptions);
            const datatable = config.target.DataTable(options);
            tableConfig.setupEventHandlers(datatable);
            return datatable;
        };
        elements.forEach(initializeDatatable);
    }
}
const elements = document.querySelectorAll('[data-lh-pl="datatable"]');
HandlerPlugin.handlerDatatable(elements);
12 errors 25 warnings
Line 2: 'export' is only available in ES6 (use esnext option).
Line 2: 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 4: 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 5: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 6: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 6: 'destructuring expression' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 6: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 12: 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 16: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 18: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 23: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 67: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 72: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 73: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 74: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 75: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 76: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 83: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 84: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 85: Unexpected '`'.
Line 86: Unexpected '`'.
Line 87: Expected an identifier and instead saw '<'.
Line 87: Missing semicolon.
Line 87: Expected an assignment or function call and instead saw an expression.
Line 87: Missing semicolon.
Line 87: 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 87: Expected an identifier and instead saw '='.
Line 87: Statement body should be inside '{ }' braces.
Line 87: Expected '}' to match '{' from line {c} and instead saw '>'.
Line 88: Expected an identifier and instead saw '<'.
Line 88: Expected an assignment or function call and instead saw an expression.
Line 88: Missing semicolon.
Line 88: Expected an assignment or function call and instead saw an expression.
Line 88: Missing semicolon.
Line 88: Expected '(' and instead saw '='.
Line 88: Unclosed regular expression.
Line 88: Unrecoverable syntax error. (33% scanned).
Output

This bin was created anonymously and its free preview time has expired. Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers