{"version":3,"file":"scripts/frontend/frontend.min.js","mappings":"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","sources":["webpack://google-spreadsheet-to-wp-table-sync/./assets/src/scripts/Chunk/Frontend/create_tab.js","webpack://google-spreadsheet-to-wp-table-sync/webpack/bootstrap","webpack://google-spreadsheet-to-wp-table-sync/./assets/src/scripts/Chunk/Frontend/common_func.js","webpack://google-spreadsheet-to-wp-table-sync/./assets/src/scripts/Chunk/Frontend/data_tables_async.js","webpack://google-spreadsheet-to-wp-table-sync/./assets/src/scripts/Chunk/Frontend/data_table_default.js"],"sourcesContent":["jQuery(document).ready(function ($) {\r\n class ManageTab {\r\n constructor() {\r\n this.events();\r\n this.showFirstTabContent();\r\n }\r\n events() {\r\n var buttons = $('.tab_hidden_input');\r\n\r\n buttons.each(function () {\r\n $(this).on(\"click\", function (e) {\r\n let target = e.currentTarget;\r\n\r\n $(target)\r\n .parents(\".tabs_container\")\r\n .find(`.tab_contents .tab-content`)\r\n .removeClass(\"active\");\r\n\r\n let inputID = $(target).data(\"id\");\r\n\r\n $(`#${inputID}`).addClass('active');\r\n });\r\n })\r\n }\r\n\r\n showContent(e) {\r\n target\r\n .parents(\".tab_bottom_side\")\r\n .find(`.tab_contents .tab-content`)\r\n .removeClass(\"active\");\r\n\r\n let inputID = target.attr(\"id\").match(/(\\d+)/)[0];\r\n\r\n target\r\n .parents(\".tab_bottom_side\")\r\n .find(`.tab_contents #tab-content${inputID}`)\r\n .addClass(\"active\");\r\n }\r\n\r\n // Add checked in tabs and get the design.\r\n showFirstTabContent() {\r\n $(\".tabs_container\").each(function () {\r\n $(this)\r\n .find(\".tab_hidden_input:first\")\r\n .prop(\"checked\", true);\r\n });\r\n }\r\n\r\n }\r\n new ManageTab();\r\n});\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// Frontend Data table design and other config applied like pagination, shorting and so on \r\n\r\nexport default class Global_Table_Config {\r\n table_configuration($, i, elem, table_name, table_settings, sheetUrl) {\r\n let dom = `<\"filtering_input filtering_input_${i}\"${\r\n table_settings?.show_x_entries ? \"l\" : \"\"\r\n }${\r\n table_settings?.search_bar ? \"f\" : \"\"\r\n }>rt<\"bottom_options bottom_options_${i}\"${\r\n table_settings?.show_info_block ? \"i\" : \"\"\r\n }${ table_settings?.pagination ? \"p\" : \"\"}>`;\r\n\r\n if (this.isProPluginActive()) {\r\n dom = `B<\"filtering_input filtering_input_${i}\"${\r\n table_settings?.show_x_entries ? \"l\" : \"\"\r\n }${\r\n table_settings?.search_bar ? \"f\" : \"\"\r\n }>rt<\"bottom_options bottom_options_${i}\"${\r\n table_settings?.show_info_block ? \"i\" : \"\"\r\n }${ table_settings?.pagination ? \"p\" : \"\"}>`;\r\n\r\n // change the cell format according to feature saved at database\r\n this.changeRedirectionType(\r\n table_settings?.redirection_type,\r\n $(elem).find(\"#create_tables a\"),\r\n $\r\n );\r\n }\r\n\r\n // For free it need to use without pro checked\r\n this.changeCellFormat(\r\n table_settings?.cell_format,\r\n $(elem).find(\"#create_tables th, td\"),\r\n $\r\n );\r\n\r\n if ( $.fn.DataTable && $(elem).find(\"#create_tables\").length ) {\r\n $(elem).find(\"#create_tables\").DataTable(this.table_obj($, table_name, table_settings, dom));\r\n }\r\n\r\n this.setPdfUrl(sheetUrl, $(elem).find(\".dt-buttons\"));\r\n\r\n if (this.isProPluginActive()) {\r\n this.reveal_export_btns($, elem, table_settings);\r\n }\r\n\r\n this.swap_input_filter($, i, table_settings);\r\n\r\n this.swap_bottom_options($, i, table_settings);\r\n }\r\n\r\n changeRedirectionType(type, links, $) {\r\n if (!links.length) return;\r\n $.each(links, function (i, link) {\r\n $(link).attr(\"target\", type);\r\n });\r\n }\r\n\r\n changeCellFormat(formatStyle, tableCell, $) {\r\n switch (formatStyle) {\r\n case \"wrap\":\r\n $.each(tableCell, function (i, cell) {\r\n $(cell).removeClass(\"clip_style\");\r\n $(cell).removeClass(\"expanded_style\");\r\n $(cell).addClass(\"wrap_style\");\r\n });\r\n break;\r\n\r\n case \"clip\":\r\n $.each(tableCell, function (i, cell) {\r\n $(cell).removeClass(\"wrap_style\");\r\n $(cell).removeClass(\"expanded_style\");\r\n $(cell).addClass(\"clip_style\");\r\n });\r\n break;\r\n case \"expand\":\r\n $.each(tableCell, function (i, cell) {\r\n $(cell).removeClass(\"clip_style\");\r\n $(cell).removeClass(\"wrap_style\");\r\n $(cell).addClass(\"expanded_style\");\r\n });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n isProPluginActive() {\r\n if (front_end_data.isProActive || front_end_data.isProActive != '') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getSpreadsheetID(url) {\r\n if (!url || url == \"\") return;\r\n\r\n let sheetID = null;\r\n\r\n sheetID = url.split(/\\//)[5];\r\n\r\n if (sheetID) return sheetID;\r\n\r\n return null;\r\n }\r\n\r\n getGridID(url) {\r\n if (!url || url == \"\") return;\r\n\r\n let gridID = null;\r\n\r\n gridID = url.match(/gid=(\\w+)/);\r\n\r\n if ( gridID != null ) {\r\n gridID = gridID[1];\r\n }\r\n\r\n if (gridID) {\r\n return gridID;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n //PDF Export as PDF\r\n setPdfUrl(url, elem) {\r\n let spreadsheetID = this.getSpreadsheetID(url);\r\n let gridID = this.getGridID(url);\r\n let pdfUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetID}/export?format=pdf&id=${spreadsheetID}&gid=${gridID}`;\r\n // Forntend part design `\r\n \r\n \r\n \r\n `\r\n );\r\n }\r\n \r\n table_obj($, table_name, table_settings, dom) {\r\n\r\n let table_object = {\r\n dom: dom,\r\n order: [],\r\n // order: [[0, 'asc']],\r\n responsive: true,\r\n lengthMenu: [\r\n [1, 5, 10, 15, 30],\r\n [\r\n front_end_data.strings['1'],\r\n front_end_data.strings['5'],\r\n front_end_data.strings['10'],\r\n front_end_data.strings['15'],\r\n front_end_data.strings['30'],\r\n ]\r\n ],\r\n language: {\r\n search: front_end_data.strings['search'],\r\n searchPlaceholder: \"Search items\",\r\n lengthMenu: front_end_data.strings['filtering_show'] + \" _MENU_ \" + front_end_data.strings['filtering_entries'],\r\n info: front_end_data.strings['dataTables_info_showing'] + \" _START_ \" + front_end_data.strings['dataTables_info_to'] + \" _END_ \" + front_end_data.strings['dataTables_info_of'] + \" _TOTAL_ \" + front_end_data.strings['filtering_entries'],\r\n\r\n emptyTable: front_end_data.strings['data-empty-notice'],\r\n zeroRecords: front_end_data.strings['data-empty-notice'],\r\n paginate: {\r\n first: \"first\",\r\n previous: front_end_data.strings['previous'],\r\n next: front_end_data.strings['next'],\r\n last: front_end_data.strings['last'],\r\n },\r\n },\r\n pageLength: parseInt(table_settings.default_rows_per_page),\r\n lengthChange: true,\r\n ordering: table_settings.allow_sorting,\r\n destroy: true,\r\n scrollX: true,\r\n };\r\n\r\n $('.gswpts_tables_container').each(function () {\r\n let numberOfColumns = $(this).find('thead th').length;\r\n let table_object = {\r\n order: []\r\n };\r\n \r\n for (let i = 0; i < numberOfColumns; i++) {\r\n // table_object.order.push([i, 'asc']);\r\n table_object.order.push([i, '']);\r\n }\r\n });\r\n\r\n if (this.isProPluginActive()) {\r\n table_object.buttons = [\r\n {\r\n text: ``,\r\n className: \"ui inverted button export_btns json_btn\",\r\n action: function (e, dt, button, config) {\r\n var data = dt.buttons.exportData();\r\n $.fn.dataTable.fileSave(\r\n new Blob([JSON.stringify(data)]),\r\n `${table_name}.json`\r\n );\r\n },\r\n titleAttr: front_end_data.strings['export-json']\r\n },\r\n {\r\n text: ``,\r\n extend: \"csv\",\r\n className: \"ui inverted button export_btns csv_btn\",\r\n title: `${table_name}`,\r\n // titleAttr: \"Export as CSV\",\r\n titleAttr: front_end_data.strings['export-csv'],\r\n },\r\n {\r\n text: ``,\r\n extend: \"excel\",\r\n className: \"ui inverted button export_btns excel_btn\",\r\n title: `${table_name}`,\r\n titleAttr: front_end_data.strings['export-excel']\r\n },\r\n {\r\n text: ``,\r\n extend: \"print\",\r\n className: \"ui inverted button export_btns print_btn\",\r\n title: `${table_name}`,\r\n titleAttr: front_end_data.strings['print']\r\n },\r\n {\r\n text: ``,\r\n extend: \"copy\",\r\n className: \"ui inverted button export_btns copy_btn\",\r\n title: `${table_name}`,\r\n titleAttr: front_end_data.strings['copy']\r\n },\r\n ];\r\n\r\n table_object.lengthMenu = [\r\n [1, 5, 10, 15, 30, 50, 100, -1],\r\n [\r\n front_end_data.strings['1'],\r\n front_end_data.strings['5'],\r\n front_end_data.strings['10'],\r\n front_end_data.strings['15'],\r\n front_end_data.strings['30'],\r\n front_end_data.strings['50'],\r\n front_end_data.strings['100'],\r\n front_end_data.strings['All']\r\n ]\r\n ];\r\n\r\n // Its now free \r\n /* if (table_settings.vertical_scrolling) {\r\n table_object.scrollY = `${table_settings.vertical_scrolling}px`;\r\n } */\r\n\r\n \r\n //Column is needed to hide and backend code is not used actually to hide.\r\n if ((table_settings?.hide_on_desktop_col && this.screenSize() === \"desktop\") || (table_settings?.hide_on_mobile_col && this.screenSize() === \"mobile\")) {\r\n if (this.screenSize() === \"desktop\" && table_settings.hide_column) {\r\n table_object.columnDefs = this.hideColumnByScreen(\r\n table_settings.hide_column\r\n );\r\n } else if (this.screenSize() === \"mobile\" && table_settings.hide_column_mobile) {\r\n table_object.columnDefs = this.hideColumnByScreen(\r\n table_settings.hide_column_mobile\r\n );\r\n }\r\n } \r\n }\r\n \r\n // Table height \r\n if (table_settings.vertical_scrolling) {\r\n table_object.scrollY = `${table_settings.vertical_scrolling}px`;\r\n }\r\n\r\n return table_object;\r\n }\r\n\r\n // Return an array that will define the columns to hide\r\n hideColumnByScreen(arrayValues) {\r\n return [\r\n {\r\n targets: this.convertArrayStringToInteger(arrayValues),\r\n visible: false,\r\n searchable: false,\r\n },\r\n ];\r\n }\r\n\r\n // get the current screen size of user if greater than 740 return desktop or return mobile\r\n screenSize() {\r\n // Desktop screen size\r\n if (screen.width > 740) {\r\n return \"desktop\";\r\n } else {\r\n return \"mobile\";\r\n }\r\n }\r\n\r\n // convert string to integer from arrays\r\n convertArrayStringToInteger(arr) {\r\n if (!arr) return [];\r\n return arr.map((val) => parseInt(val));\r\n }\r\n\r\n reveal_export_btns($, elem, table_settings) {\r\n if (!table_settings) return;\r\n\r\n let export_btns = table_settings.table_export;\r\n\r\n if (export_btns != \"empty\" && export_btns) {\r\n export_btns.forEach((btn) => {\r\n $(elem)\r\n .find(\".\" + btn + \"_btn\")\r\n .removeClass(\"export_btns\");\r\n });\r\n }\r\n }\r\n\r\n swap_input_filter($, i, table_settings) {\r\n /* If checkbox is checked then swap filter */\r\n if (table_settings?.swap_filter_inputs) {\r\n $(\".filtering_input_\" + i + \"\").css(\"flex-direction\", \"row-reverse\");\r\n $(\".filtering_input_\" + i + \" > #create_tables_length\").css({\r\n \"margin-right\": \"0\",\r\n \"margin-left\": \"auto\",\r\n });\r\n $(\".filtering_input_\" + i + \" > #create_tables_filter\").css({\r\n \"margin-left\": \"0\",\r\n \"margin-right\": \"auto\",\r\n });\r\n } else {\r\n /* Set back to default position */\r\n $(\".filtering_input_\" + i + \"\").css(\"flex-direction\", \"row\");\r\n $(\".filtering_input_\" + i + \" > #create_tables_length\").css({\r\n \"margin-right\": \"auto\",\r\n \"margin-left\": \"0\",\r\n });\r\n $(\".filtering_input_\" + i + \" > #create_tables_filter\").css({\r\n \"margin-left\": \"auto\",\r\n \"margin-right\": \"0\",\r\n });\r\n }\r\n }\r\n\r\n swap_bottom_options($, i, table_settings) {\r\n let style = {\r\n flex_direction: \"row-reverse\",\r\n table_info_style: {\r\n margin_left: \"auto\",\r\n margin_right: 0,\r\n },\r\n table_paginate_style: {\r\n margin_left: 0,\r\n margin_right: \"auto\",\r\n },\r\n };\r\n\r\n if (table_settings?.swap_bottom_options) {\r\n this.bottom_option_style($, style, i);\r\n } else {\r\n style[\"flex_direction\"] = \"row\";\r\n\r\n style.table_info_style[\"margin_left\"] = 0;\r\n style.table_info_style[\"margin_right\"] = \"auto\";\r\n\r\n style.table_paginate_style[\"margin_left\"] = \"auto\";\r\n style.table_paginate_style[\"margin_right\"] = 0;\r\n\r\n this.bottom_option_style($, style, i);\r\n }\r\n }\r\n\r\n bottom_option_style($, $arg, i) {\r\n $(\".bottom_options_\" + i + \"\").css(\"flex-direction\", $arg[\"flex_direction\"]);\r\n $(\".bottom_options_\" + i + \" > #create_tables_info\").css({\r\n \"margin-left\": $arg[\"table_info_style\"][\"margin_left\"],\r\n \"margin-right\": $arg[\"table_info_style\"][\"margin_right\"],\r\n });\r\n $(\".bottom_options_\" + i + \" > #create_tables_paginate\").css({\r\n \"margin-left\": $arg[\"table_paginate_style\"][\"margin_left\"],\r\n \"margin-right\": $arg[\"table_paginate_style\"][\"margin_right\"],\r\n });\r\n }\r\n\r\n /**\r\n * Header merge \r\n */\r\n handleHeaderMergedCells($, elem) {\r\n var tableHeaders = $(elem).find('.thead-item[data-merge]');\r\n \r\n if(tableHeaders){\r\n tableHeaders.each(function (index, header) {\r\n // Check if the current header has the data-merge attribute.\r\n var dataMerge = $(header).attr('data-merge');\r\n \r\n if (dataMerge) {\r\n dataMerge = JSON.parse(dataMerge);\r\n var startCol = dataMerge[0];\r\n var numCols = dataMerge[1];\r\n \r\n // Add parentCellstart class to the starting cell\r\n $(header).addClass('parentCellstart');\r\n \r\n $(header).css({\r\n 'text-align': 'center',\r\n });\r\n \r\n // Update colspan attribute\r\n $(header).attr('colspan', numCols);\r\n \r\n // Get the next cell in the row\r\n var nextCell = $(header).next();\r\n \r\n // Loop through numCols starting from 1\r\n for (var i = 1; i < numCols; i++) {\r\n if (nextCell && nextCell.length) {\r\n $(nextCell).addClass('childCell');\r\n // nextCell.style.display = 'none'; \r\n nextCell = $(nextCell).next();\r\n }\r\n }\r\n \r\n $(elem).find('.childCell').css('display', 'none');\r\n \r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Table body merge\r\n * @param {* table body merge} $ \r\n * @param {*} elem \r\n */\r\n\r\n handleMergedCells($, elem) {\r\n var tableRows = $(elem).find('.gswpts_rows');\r\n \r\n tableRows.each(function () {\r\n var cells = $(this).find('td');\r\n \r\n cells.each(function () {\r\n if ($(this).hasClass('parentCellstart')) {\r\n\r\n // Apply the logic from the previous conversation here\r\n var dataMerge = JSON.parse($(this).attr('data-merge'));\r\n var dataIndex = JSON.parse($(this).attr('data-index'));\r\n \r\n for (var i = 0; i < dataMerge[0]; i++) {\r\n for (var j = 0; j < dataMerge[1]; j++) {\r\n var targetIndex = [\r\n dataIndex[0] + i,\r\n dataIndex[1] + j\r\n ];\r\n \r\n var targetCell = $(elem).find('[data-index=\"[' + targetIndex.join(',') + ']\"]');\r\n \r\n if (targetCell) {\r\n var cellDivContent = targetCell.find('.cell_div').text().trim();\r\n if (cellDivContent === '') {\r\n targetCell.addClass('merged-cell');\r\n targetCell.hide();\r\n\r\n if ($(this).hasClass('parentCellstart')) {\r\n $(this).css({\r\n 'text-align': 'center',\r\n 'vertical-align': 'middle'\r\n });\r\n }\r\n } else {\r\n targetCell.addClass('normal-cell');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * \r\n * Add dynamic table width in header from body td calculated on tr\r\n */\r\n\r\n handleTableWidth($, elem) {\r\n // Function to set a consistent table width for all tables\r\n function setConsistentTableWidth(width) {\r\n elem.each(function (index, container) {\r\n // Get the table element within the container\r\n var table = $(container).find(\".ui.celled.display.table.gswpts_tables.dataTable.no-footer\");\r\n \r\n // Set the table's width to the specified width\r\n table.css('width', width + \"px\");\r\n\r\n console.log(width); \r\n\r\n // When table headers are initially set to 0 width, fix it\r\n var headers = table.find(\"th\");\r\n if (headers.length > 0) {\r\n headers.each(function () {\r\n var headerWidth = $(this).width();\r\n if (headerWidth === 0) {\r\n $(this).css('width', 'auto');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n \r\n // Check if elem has a prevObject property\r\n if (elem.prevObject && elem.prevObject.length > 0) {\r\n elem = elem.prevObject;\r\n }\r\n // Ensure that the desired element is present in the jQuery object\r\n if (elem.length === 0) {\r\n console.log(\"No element found within the given object.\");\r\n return;\r\n }\r\n \r\n // Calculate the initial table width based on the first container's element\r\n var initialContainer = elem.first();\r\n // var initialContainer = elem.first()[0]; // Get the first DOM element\r\n var row = $(initialContainer).find(\"tr.gswpts_rows\");\r\n\r\n // Check if the element exists in the initial container\r\n if (row.length > 0) {\r\n // Get the bounding rectangle of the element\r\n var rect = row[0].getBoundingClientRect();\r\n // Get the total width from the bounding rectangle\r\n var initialWidth = rect.width;\r\n setConsistentTableWidth(initialWidth);\r\n }\r\n \r\n // Recalculate table width on screen resize (if desired, but this might be optional if the goal is consistency)\r\n $(window).on('resize', function () {\r\n setConsistentTableWidth(initialWidth);\r\n });\r\n }\r\n\r\n\r\n \r\n\r\n html_loader() {\r\n let loader = `\r\n
\r\n
\r\n
Loading
\r\n
\r\n

\r\n

\r\n

\r\n
\r\n `;\r\n return loader;\r\n }\r\n\r\n clearOverflow() {\r\n if (\r\n /Android|webOS|iPhone|iPad|Mac|Macintosh|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n navigator.userAgent\r\n )\r\n ) {\r\n if (\r\n this.detectBrowser() == \"Chrome\" ||\r\n this.detectBrowser() == \"Safari\" ||\r\n this.detectBrowser() == \"MSIE\"\r\n ) {\r\n let tableScrollBody = document.querySelectorAll(\r\n \".gswpts_tables_container .dataTables_scrollBody\"\r\n );\r\n\r\n if (tableScrollBody) {\r\n tableScrollBody.forEach((element) => {\r\n if (\r\n element.parentElement.parentElement.parentElement.parentElement.classList.contains(\r\n \"collapse_style\"\r\n )\r\n ) {\r\n element.style.overflow = \"unset\";\r\n element.style.height = \"unset\";\r\n element.style.maxHeight = \"unset\";\r\n }\r\n });\r\n }\r\n\r\n // this.hideEmptyCell();\r\n }\r\n }\r\n }\r\n\r\n detectBrowser() {\r\n if ((navigator.userAgent.indexOf(\"Opera\") || navigator.userAgent.indexOf(\"OPR\")) != -1) {\r\n return \"Opera\";\r\n } else if (navigator.userAgent.indexOf(\"Chrome\") != -1) {\r\n return \"Chrome\";\r\n } else if (navigator.userAgent.indexOf(\"Safari\") != -1) {\r\n return \"Safari\";\r\n } else if (navigator.userAgent.indexOf(\"Firefox\") != -1) {\r\n return \"Firefox\";\r\n } else if (navigator.userAgent.indexOf(\"MSIE\") != -1 || !!document.documentMode == true) {\r\n return \"IE\"; //crap\r\n } else {\r\n return \"Unknown\";\r\n }\r\n }\r\n\r\n hideEmptyCell() {\r\n let tableCells = document.querySelectorAll(\".gswpts_tables_container td\");\r\n if (!tableCells) return;\r\n\r\n tableCells.forEach((element) => {\r\n if (element.innerText == \"\") {\r\n // element.style.display = \"none\";\r\n element.innerText = \"No data\";\r\n }\r\n });\r\n }\r\n\r\n bindDragScroll($container, $scroller) {\r\n var $window = jQuery(window);\r\n\r\n var x = 0;\r\n var y = 0;\r\n\r\n var x2 = 0;\r\n var y2 = 0;\r\n var t = 0;\r\n\r\n $container.on(\"mousedown\", down);\r\n $container.on(\"click\", preventDefault);\r\n $scroller.on(\"mousewheel\", horizontalMouseWheel); // prevent macbook trigger prev/next page while scrolling\r\n\r\n function down(evt) {\r\n if (evt.button === 0) {\r\n t = Date.now();\r\n x = x2 = evt.pageX;\r\n y = y2 = evt.pageY;\r\n\r\n $container.addClass(\"down\");\r\n $window.on(\"mousemove\", move);\r\n $window.on(\"mouseup\", up);\r\n\r\n evt.preventDefault();\r\n }\r\n }\r\n\r\n function move(evt) {\r\n // alert(\"move\");\r\n if ($container.hasClass(\"down\")) {\r\n var _x = evt.pageX;\r\n var _y = evt.pageY;\r\n var deltaX = _x - x;\r\n var deltaY = _y - y;\r\n\r\n $scroller[0].scrollLeft -= deltaX;\r\n\r\n x = _x;\r\n y = _y;\r\n }\r\n }\r\n\r\n function up(evt) {\r\n $window.off(\"mousemove\", move);\r\n $window.off(\"mouseup\", up);\r\n\r\n var deltaT = Date.now() - t;\r\n var deltaX = evt.pageX - x2;\r\n var deltaY = evt.pageY - y2;\r\n if (deltaT <= 300) {\r\n $scroller.stop().animate(\r\n {\r\n scrollTop: \"-=\" + deltaY * 3,\r\n scrollLeft: \"-=\" + deltaX * 3,\r\n },\r\n 500,\r\n function (x, t, b, c, d) {\r\n // easeOutCirc function from http://gsgd.co.uk/sandbox/jquery/easing/\r\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\r\n }\r\n );\r\n }\r\n\r\n t = 0;\r\n\r\n $container.removeClass(\"down\");\r\n }\r\n\r\n function preventDefault(evt) {\r\n if (x2 !== evt.pageX || y2 !== evt.pageY) {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n function horizontalMouseWheel(evt) {\r\n evt = evt.originalEvent;\r\n var x = $scroller.scrollLeft();\r\n var max = $scroller[0].scrollWidth - $scroller[0].offsetWidth;\r\n var dir = evt.deltaX || evt.wheelDeltaX;\r\n var stop = dir > 0 ? x >= max : x <= 0;\r\n if (stop && dir) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n addGrabCursonOnMouseDown(elem) {\r\n elem.mousedown((e) => {\r\n elem.css({\r\n cursor: \"grab\",\r\n });\r\n });\r\n elem.mouseup((e) => {\r\n elem.css({\r\n cursor: \"auto\",\r\n });\r\n });\r\n }\r\n}\r\n","import Global_Table_Config from \"./common_func\";\r\n\r\njQuery(document).ready(function ($) {\r\n class Data_Tables_Async {\r\n constructor() {\r\n this.frontend_table = $(\".gswpts_tables_container\");\r\n\r\n if (front_end_data.asynchronous_loading == \"on\") {\r\n this.events();\r\n } else {\r\n return;\r\n }\r\n }\r\n events() {\r\n this.get_frontend_table();\r\n }\r\n\r\n get_frontend_table() {\r\n $.each(this.frontend_table, function (i, elem) {\r\n let id = $(elem).attr(\"id\");\r\n $.ajax({\r\n url : front_end_data.admin_ajax,\r\n data : {\r\n action : \"gswpts_sheet_fetch\",\r\n id : id,\r\n nonce : window?.front_end_data?.nonce,\r\n },\r\n type: \"post\",\r\n success: (res) => {\r\n let tableClass = new Global_Table_Config();\r\n let table_settings = res.data.table_settings;\r\n\r\n // if (tableClass.isProPluginActive()) {\r\n if (table_settings?.responsive_style) {\r\n $(elem).addClass(table_settings?.responsive_style);\r\n }\r\n\r\n if (table_settings?.import_styles) {\r\n $(elem).addClass(`gswpts_default-style`);\r\n } else {\r\n $(elem).addClass(\r\n `gswpts_${\r\n table_settings?.table_style\r\n ? table_settings?.table_style\r\n : \"default-style\"\r\n }`\r\n );\r\n }\r\n\r\n $(elem).addClass(`gswpts_default-style`);\r\n // }\r\n\r\n if (table_settings?.show_title == \"true\") {\r\n $(elem).find(\"h3\").html(res.data.table_name);\r\n }\r\n\r\n $(elem).find(\".gswpts_tables_content\").html(res.data.output);\r\n\r\n let table_name = res.data.name;\r\n let sheetUrl = res.data.source_url;\r\n\r\n tableClass.table_configuration(\r\n $,\r\n i,\r\n elem,\r\n table_name,\r\n table_settings,\r\n sheetUrl\r\n );\r\n\r\n let scrollerContainer = $(elem).find(\".dataTables_scroll\");\r\n let scrollerElement = $(elem).find(\".dataTables_scrollBody\");\r\n\r\n if (scrollerElement) {\r\n\r\n //Extra header issue fix it how it was before when click the sort icon and has header merge\r\n function handleCommonActions(theadElement) {\r\n console.clear(); // Clearing a few basic logs that are not needed to show\r\n if (theadElement) {\r\n // Select all tr elements within theadElement\r\n var trElements = theadElement.querySelectorAll('tr');\r\n \r\n // Iterate through each trElement\r\n trElements.forEach(function(trElement) {\r\n // Apply height style to each trElement\r\n trElement.style.height = '0px';\r\n \r\n // Select all th elements within theadElement\r\n var thElements = trElement.querySelectorAll('th');\r\n \r\n // Iterate through each thElement\r\n thElements.forEach(function(thElement) {\r\n // Create a new div element with the required styles\r\n var divElement = document.createElement('div');\r\n divElement.className = 'dataTables_sizing';\r\n divElement.style.height = '0px';\r\n divElement.style.overflow = 'hidden';\r\n divElement.innerText = thElement.innerText; // Copy the text content\r\n \r\n // Empty the thElement and append the divElement\r\n thElement.innerHTML = '';\r\n thElement.appendChild(divElement);\r\n \r\n // Apply styles to each thElement\r\n thElement.style.paddingTop = '0px';\r\n thElement.style.paddingBottom = '0px';\r\n thElement.style.borderTopWidth = '0px';\r\n thElement.style.borderBottomWidth = '0px';\r\n thElement.style.height = '0px';\r\n thElement.style.textAlign = 'center';\r\n // thElement.style.display = 'none';\r\n });\r\n });\r\n }\r\n }\r\n \r\n function handlePagination() {\r\n var createTablesPaginate = document.getElementById('create_tables_paginate');\r\n if (createTablesPaginate) {\r\n var container = createTablesPaginate.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n }\r\n }\r\n \r\n \r\n var tableHeaders = document.querySelectorAll('.thead-item[data-merge]');\r\n tableHeaders.forEach(function (header) {\r\n // Check if the current header has the data-merge attribute.\r\n var dataMerge = header.getAttribute('data-merge');\r\n if (dataMerge) {\r\n var sortingElements = document.querySelectorAll('.sorting');\r\n var dataTablesLength = document.querySelectorAll('.dataTables_length');\r\n var dataTables_filter = document.querySelectorAll('.dataTables_filter');\r\n var createTablesFilterInputs = document.querySelectorAll('.dataTables_filter input');\r\n var paginateContainer = document.getElementById('create_tables_paginate');\r\n \r\n // Add a click event listener to each sorting element\r\n sortingElements.forEach(function (sortingElement) {\r\n sortingElement.addEventListener('click', function () {\r\n // Find the .dataTables_scrollBody element within the same container\r\n var container = sortingElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n // Find the element within the .dataTables_scrollBody\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n });\r\n });\r\n \r\n // Add a click event listener to each dataTablesLength element\r\n dataTablesLength.forEach(function (LengthElement) {\r\n LengthElement.addEventListener('click', function () {\r\n var container = LengthElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on dataTablesLength\");\r\n });\r\n });\r\n \r\n // Add a click event listener to each dataTables_filter element\r\n dataTables_filter.forEach(function (FilterElement) {\r\n FilterElement.addEventListener('click', function () {\r\n var container = FilterElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on dataTables_filter\");\r\n });\r\n });\r\n \r\n createTablesFilterInputs.forEach(function (createTablesFilterInput) {\r\n createTablesFilterInput.addEventListener('input',function () {\r\n var container = createTablesFilterInput.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on handleSearchFilter\");\r\n });\r\n });\r\n \r\n if (paginateContainer) {\r\n paginateContainer.addEventListener('click', function (event) {\r\n // Check if the clicked element is a paginate button\r\n if (event.target.classList.contains('paginate_button')) {\r\n handlePagination();\r\n // console.log(\"click on paginate\");\r\n }\r\n });\r\n } \r\n }\r\n });\r\n \r\n }\r\n\r\n // END \r\n\r\n // Additional code for handling merged cells and text alignment\r\n tableClass.handleMergedCells($, elem);\r\n\r\n //Additional code for handling header merged cells and text alignment\r\n tableClass.handleHeaderMergedCells($, elem);\r\n\r\n\r\n if (front_end_data.isProActive) {\r\n if (table_settings?.cursor_behavior == \"left_right\") {\r\n // Add functionality of scrolling the table.\r\n tableClass.bindDragScroll(scrollerContainer, scrollerElement);\r\n }\r\n tableClass.addGrabCursonOnMouseDown($(elem).find(\"#create_tables\"));\r\n }\r\n \r\n\r\n // table width fixing \r\n /* if (table_settings?.merged_support) {\r\n tableClass.handleTableWidth($, $(elem).find(\".gswpts_tables_container\"));\r\n } */\r\n\r\n /* if ('IntersectionObserver' in window) {\r\n let observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n // Table is visible, adjust columns\r\n let found_tables = $(elem).find(\".gswpts_tables_container\").DataTable();\r\n // console.log(\"observer run\")\r\n if (found_tables) {\r\n // console.log(\"and executed\")\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n }\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n // Once the table is visible, disconnect the observer\r\n observer.disconnect();\r\n }\r\n });\r\n }, { threshold: 0.5 }); // Trigger when 50% of the table is visible\r\n observer.observe(scrollerContainer[0]); // Observe the scroll container\r\n } else {\r\n // Intersection Observer not supported, adjust columns immediately\r\n let found_tables = $(elem).find(\".gswpts_tables_container\").DataTable();\r\n if (found_tables) {\r\n // found_tables.columns.adjust().draw();\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n }\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n } */\r\n \r\n\r\n setInterval(function() {\r\n tableClass.handleTableWidth($, $(elem).find(\".gswpts_tables_container\"));\r\n }, 500);\r\n \r\n \r\n tableClass.clearOverflow();\r\n\r\n /**\r\n * FE Sorting fix by disable the sorting when has vertical merge \r\n */\r\n var tableRows = document.querySelectorAll('.gswpts_rows');\r\n var verticalMergeFound = false;\r\n if(tableRows){\r\n tableRows.forEach(function (row) {\r\n var cells = row.querySelectorAll('td');\r\n cells.forEach(function (cell, index) {\r\n var rowspan = cell.getAttribute('rowspan');\r\n\r\n if (rowspan && parseInt(rowspan) > 1) {\r\n verticalMergeFound = true;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (verticalMergeFound) {\r\n $.ajax({\r\n url : front_end_data.admin_ajax,\r\n data : {\r\n action : \"swptls_update_sorting_fe\",\r\n id : id,\r\n nonce : window?.front_end_data?.nonce,\r\n allow_sorting: false, \r\n },\r\n type: \"post\",\r\n success: (res) => {\r\n \r\n },\r\n error: (err) => {\r\n \r\n },\r\n });\r\n\r\n }\r\n // END \r\n \r\n },\r\n error: (err) => {\r\n alert(\"Something went wrong\");\r\n console.error(err);\r\n $(elem)\r\n .find(\".gswpts_tables_content\")\r\n .html(\"Table could not be loaded. Try again\");\r\n },\r\n });\r\n\r\n\r\n \r\n\r\n });\r\n }\r\n }\r\n\r\n new Data_Tables_Async();\r\n});\r\n\r\n","import Global_Table_Config from \"./common_func\";\r\n\r\njQuery(document).ready(function ($) {\r\n class Data_Tables_Default {\r\n constructor() {\r\n this.frontend_table = $(\".gswpts_tables_container\");\r\n if (front_end_data.asynchronous_loading == \"off\") {\r\n this.events();\r\n } else {\r\n return;\r\n }\r\n }\r\n events() {\r\n this.get_frontend_table();\r\n }\r\n\r\n get_frontend_table() {\r\n $.each(this.frontend_table, function (i, elem) {\r\n let table_settings = JSON.parse($(elem).attr(\"data-table_settings\"));\r\n\r\n let table_name = $(elem).attr(\"data-table_name\");\r\n let sheetUrl = $(elem).attr(\"data-url\");\r\n\r\n let table_obj = new Global_Table_Config();\r\n\r\n table_obj.table_configuration($, i, elem, table_name, table_settings, sheetUrl);\r\n\r\n let scrollerContainer = $(elem).find(\".dataTables_scroll\");\r\n let scrollerElement = $(elem).find(\".dataTables_scrollBody\");\r\n\r\n \r\n \r\n // Fix extra header when clicking the sort icon and has header merge\r\n if (scrollerElement) {\r\n\r\n //Extra header issue fix it how it was before when click the sort icon and has header merge\r\n function handleCommonActions(theadElement) {\r\n console.clear(); // Clearing a few basic logs that are not needed to show\r\n if (theadElement) {\r\n // Select all tr elements within theadElement\r\n var trElements = theadElement.querySelectorAll('tr');\r\n \r\n // Iterate through each trElement\r\n trElements.forEach(function(trElement) {\r\n // Apply height style to each trElement\r\n trElement.style.height = '0px';\r\n \r\n // Select all th elements within theadElement\r\n var thElements = trElement.querySelectorAll('th');\r\n \r\n // Iterate through each thElement\r\n thElements.forEach(function(thElement) {\r\n // Create a new div element with the required styles\r\n var divElement = document.createElement('div');\r\n divElement.className = 'dataTables_sizing';\r\n divElement.style.height = '0px';\r\n divElement.style.overflow = 'hidden';\r\n divElement.innerText = thElement.innerText; // Copy the text content\r\n \r\n // Empty the thElement and append the divElement\r\n thElement.innerHTML = '';\r\n thElement.appendChild(divElement);\r\n \r\n // Apply styles to each thElement\r\n thElement.style.paddingTop = '0px';\r\n thElement.style.paddingBottom = '0px';\r\n thElement.style.borderTopWidth = '0px';\r\n thElement.style.borderBottomWidth = '0px';\r\n thElement.style.height = '0px';\r\n thElement.style.textAlign = 'center';\r\n // thElement.style.display = 'none';\r\n });\r\n });\r\n }\r\n }\r\n \r\n function handlePagination() {\r\n var createTablesPaginate = document.getElementById('create_tables_paginate');\r\n if (createTablesPaginate) {\r\n var container = createTablesPaginate.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n }\r\n }\r\n\r\n\r\n var tableHeaders = document.querySelectorAll('.thead-item[data-merge]');\r\n tableHeaders.forEach(function (header) {\r\n // Check if the current header has the data-merge attribute.\r\n var dataMerge = header.getAttribute('data-merge');\r\n if (dataMerge) {\r\n var sortingElements = document.querySelectorAll('.sorting');\r\n var dataTablesLength = document.querySelectorAll('.dataTables_length');\r\n var dataTables_filter = document.querySelectorAll('.dataTables_filter');\r\n var createTablesFilterInputs = document.querySelectorAll('.dataTables_filter input');\r\n var paginateContainer = document.getElementById('create_tables_paginate');\r\n\r\n // Add a click event listener to each sorting element\r\n sortingElements.forEach(function (sortingElement) {\r\n sortingElement.addEventListener('click', function () {\r\n // Find the .dataTables_scrollBody element within the same container\r\n var container = sortingElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n // Find the element within the .dataTables_scrollBody\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n });\r\n });\r\n \r\n // Add a click event listener to each dataTablesLength element\r\n dataTablesLength.forEach(function (LengthElement) {\r\n LengthElement.addEventListener('click', function () {\r\n var container = LengthElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on dataTablesLength\");\r\n });\r\n });\r\n \r\n // Add a click event listener to each dataTables_filter element\r\n dataTables_filter.forEach(function (FilterElement) {\r\n FilterElement.addEventListener('click', function () {\r\n var container = FilterElement.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on dataTables_filter\");\r\n });\r\n });\r\n \r\n createTablesFilterInputs.forEach(function (createTablesFilterInput) {\r\n createTablesFilterInput.addEventListener('input',function () {\r\n var container = createTablesFilterInput.closest(\".gswpts_tables_container\");\r\n var scrollBody = container.querySelector('.dataTables_scrollBody');\r\n var thead = scrollBody.querySelector('thead');\r\n handleCommonActions(thead);\r\n // console.log(\"click on handleSearchFilter\");\r\n });\r\n });\r\n\r\n if (paginateContainer) {\r\n paginateContainer.addEventListener('click', function (event) {\r\n // Check if the clicked element is a paginate button\r\n if (event.target.classList.contains('paginate_button')) {\r\n handlePagination();\r\n // console.log(\"click on paginate\");\r\n }\r\n });\r\n } \r\n }\r\n });\r\n \r\n }\r\n\r\n if (front_end_data.isProActive) {\r\n \r\n // table_obj.bindDragScroll(scrollerContainer, scrollerElement);\r\n\r\n if (table_settings?.cursor_behavior == \"left_right\") {\r\n // Add functionality of scrolling the table.\r\n table_obj.bindDragScroll(scrollerContainer, scrollerElement);\r\n }\r\n table_obj.addGrabCursonOnMouseDown($(elem).find(\"#create_tables\"));\r\n }\r\n \r\n \r\n // Additional code for handling merged cells and text alignment\r\n table_obj.handleMergedCells($, elem);\r\n\r\n table_obj.handleHeaderMergedCells($, elem);\r\n\r\n if ('IntersectionObserver' in window) {\r\n let observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n // Table is visible, adjust columns\r\n let found_tables = $(elem).find(\".gswpts_tables_container\").DataTable();\r\n\r\n if (found_tables) {\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n }\r\n // Once the table is visible, disconnect the observer\r\n observer.disconnect();\r\n }\r\n });\r\n }, { threshold: 0.5 }); // Trigger when 50% of the table is visible\r\n observer.observe(scrollerContainer[0]); // Observe the scroll container\r\n } else {\r\n // Intersection Observer not supported, adjust columns immediately\r\n let found_tables = $(elem).find(\".gswpts_tables_container\").DataTable();\r\n if (found_tables) {\r\n // found_tables.columns.adjust().draw();\r\n $.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();\r\n }\r\n }\r\n \r\n\r\n /* if (table_settings?.merged_support) {\r\n table_obj.handleTableWidth($, $(elem).find(\".gswpts_tables_container\"));\r\n } */\r\n\r\n setInterval(function() {\r\n table_obj.handleTableWidth($, $(elem).find(\".gswpts_tables_container\"));\r\n }, 500);\r\n\r\n\r\n table_obj.clearOverflow();\r\n });\r\n }\r\n }\r\n\r\n new Data_Tables_Default();\r\n});\r\n\r\n"],"names":["jQuery","document","ready","$","this","events","showFirstTabContent","each","on","e","target","currentTarget","parents","find","removeClass","inputID","data","addClass","attr","match","prop","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","Global_Table_Config","i","elem","table_name","table_settings","sheetUrl","dom","show_x_entries","search_bar","show_info_block","pagination","isProPluginActive","changeRedirectionType","redirection_type","changeCellFormat","cell_format","fn","DataTable","length","table_obj","setPdfUrl","reveal_export_btns","swap_input_filter","swap_bottom_options","type","links","link","formatStyle","tableCell","cell","front_end_data","isProActive","url","split","gridID","spreadsheetID","getSpreadsheetID","getGridID","pdfUrl","append","strings","iconsURL","filePdf","table_object","order","responsive","lengthMenu","language","search","searchPlaceholder","info","emptyTable","zeroRecords","paginate","first","previous","next","last","pageLength","parseInt","default_rows_per_page","lengthChange","ordering","allow_sorting","destroy","scrollX","numberOfColumns","push","buttons","text","curlyBrackets","className","action","dt","button","config","exportData","dataTable","fileSave","Blob","JSON","stringify","titleAttr","fileCSV","extend","title","fileExcel","printIcon","copySolid","hide_on_desktop_col","screenSize","hide_on_mobile_col","hide_column","columnDefs","hideColumnByScreen","hide_column_mobile","vertical_scrolling","scrollY","arrayValues","targets","convertArrayStringToInteger","visible","searchable","screen","width","arr","map","val","export_btns","table_export","forEach","btn","swap_filter_inputs","css","style","flex_direction","table_info_style","margin_left","margin_right","table_paginate_style","bottom_option_style","$arg","tableHeaders","index","header","dataMerge","parse","numCols","nextCell","hasClass","dataIndex","j","targetIndex","targetCell","join","trim","hide","setConsistentTableWidth","container","table","console","log","headers","prevObject","initialContainer","row","initialWidth","getBoundingClientRect","window","test","navigator","userAgent","detectBrowser","tableScrollBody","querySelectorAll","element","parentElement","classList","contains","overflow","height","maxHeight","indexOf","documentMode","tableCells","innerText","$container","$scroller","$window","x","x2","y2","t","move","evt","_x","pageX","deltaX","pageY","scrollLeft","up","off","deltaT","Date","now","deltaY","stop","animate","scrollTop","b","c","d","Math","sqrt","preventDefault","originalEvent","max","scrollWidth","offsetWidth","dir","wheelDeltaX","mousedown","cursor","mouseup","frontend_table","asynchronous_loading","get_frontend_table","id","ajax","admin_ajax","nonce","success","res","tableClass","responsive_style","import_styles","table_style","show_title","html","output","name","source_url","table_configuration","scrollerContainer","scrollerElement","handleCommonActions","theadElement","clear","trElement","thElement","divElement","createElement","innerHTML","appendChild","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","textAlign","getAttribute","sortingElements","dataTablesLength","dataTables_filter","createTablesFilterInputs","paginateContainer","getElementById","sortingElement","addEventListener","thead","closest","querySelector","LengthElement","FilterElement","createTablesFilterInput","event","createTablesPaginate","handlePagination","handleMergedCells","handleHeaderMergedCells","cursor_behavior","bindDragScroll","addGrabCursonOnMouseDown","setInterval","handleTableWidth","clearOverflow","tableRows","verticalMergeFound","rowspan","error","err","alert","observer","IntersectionObserver","entries","entry","isIntersecting","tables","api","columns","adjust","disconnect","threshold","observe"],"sourceRoot":""}