{"version":3,"sources":["WPTB_CutGlueTable.js","WPTB_SortableTable.js","WPTB_RecalculateIndexes.js","wp-table-builder-frontend.js"],"names":["WPTB_CutGlueTable","cutTableHorizontally","rowBefore","table","rows","i","tableRowsIChildren","children","j","length","rowSpan","newTdRowspan","dataset","sameCellBeforeDivision","td","hasOwnProperty","wptbCell","mark","getDOMElement","document","createElement","tdTopStyle","getAttribute","setAttribute","colSpan","dataXIndex","xIndex","dataXIndexNext","parseInt","beforeTd","maxCols","querySelector","insertBefore","WPTB_RecalculateIndexes","glueTableHorizontally","tds","getElementsByTagName","hasAttribute","dataSameCellBeforeDivision","tdsSameBeforeDivision","querySelectorAll","parentNode","classList","contains","yIndex","tdsSameBeforeDivisionJPlusChildren","k","appendChild","nextRow","removeChild","cutTableVertically","col","rowChildren","rowChildrenLength","afterTd","rowSpanNewTd","colSpanOld","colSpanNewTd","tdLeftStyle","tdAnalogThisX","style","width","tdAnalogThisY","height","glueTableVertically","jFirstTdGlue","thisRow","assignToGlobal","key","context","factory","exports","module","self","global","WPTB_SortTable","options","thisObject","itemsPerHeader","tableMaxCols","cellsStylesScheme","rowsStylesScheme","sortModeSwitcher","type","active","removeEventListener","sortableTableVerticalStart","sortingCellMouseMoveSwitcher","addEventListener","wptbSortableTableVertical","createTableElementsStylesScheme","sortableTableHorizontalStart","wptbSortableTableHorizontal","tableObjectChange","start","elemSelector","elements","elem","cellFullStyleObj","window","getComputedStyle","backgroundColor","getPropertyValue","objectKey","String","reassignElementsStyles","elementsStylesScheme","elemStyles","sortableTableInitialization","responsiveFront","typeFirst","typeSecond","switchMode","getDirective","switch","e","directives","sizeRangeId","detail","mode","responsiveMode","modeOptions","topRowAsHeader","cellStackDirection","cellsPerRow","call","s","sCMM","tdMouseLeave","dataAttrSortChange","dataAttr","map","sortingCellMouseMoveVertical","sortingCellMouseMoveHorizontal","rowsLength","dataYIndexStart","tdsPerAfter","sortingCellMouseMov","element","target","tagName","x","offsetX","undefined","layerX","y","offsetY","layerY","xMatch","clientWidth","clientHeight","add","remove","sortableTable","currentTarget","tableWasSorted","tableRowsBefore","tableRowsAfter","tableRowsArr","tableLastCont","push","rowspan","rowNum","rowsValuesArr","rowsTdFirst","tdYCoordsRowSpanPrevious","tableRowsPushed","tdsChanged","changeSortingTdsCollection","tdRowspan","textElementsValues","textElementsValuesGet","rowsTd","value","orderBy","setSortedAscDataAttr","sort","prev","next","sortOrder","unshift","indexOf","tBody","innerHTML","rowsValObj","row","trRef","tr","colspan","colNum","columnsValuesArr","columnsTdFirst","tdXCoordsColSpanPrevious","tdColspan","columnsTd","tdsColumn","difference","columnsValObj","removeCellsAttrAfterDivision","tableSM","tableStateSet","prevValue","nextValue","cell","textElements","p","innerText","tdIndexSpanPrev","tdsCollectionChanged","collectionTds","collectionTdsJSpan","collectionTdsJSpanProperty","indexName","indexNameCamelCase","indexNamePerpendicularCamelCase","tdSpanProperty","tableGroupCount","splice","tdSpan","tdsAll","removeAttribute","trs","maxColsFull","tdsArr","jMainIter","z","columns","$","jQuery","ready","tableContainers","getElementsByClassName","addHoverSupport","buttons","Array","from","b","el","wptbElementHoverBgColor","wptbElementHoverTextColor","color","wptbElementHoverScale","transform","wptbElementBgColor","wptbElementColor","wptb_tableContainerSectionSmall","wptbTableContainer","sw","addClass","removeClass","wptb_tableGenerateMobile","wptbPreviewTable","wptbPreviewTableMobile","offsetWidth","display","tableRows","tableRowTop","tableRowTopChildren","columnCount","newTableArray","tdNew","cloneNode","tableStyle","insertRow","wptb_tdDefaultWidth","wptb_tableReconstraction","resize","tableContainer","createNewTableIndic","previewTable","tableContainerMatrix","wptbTableAlignment","wptbTableContainerWidth","float","reconstraction","wptbAdaptiveTable","tableContainerWidth","previewTableWidth","tableColumns","previewTableRows","firstRow","tdsRow","tablePreviewHeadIndic","tableReconstructed","overflow","tdWidth","wholeColumnsInContainer","Math","floor","dataWholeColumnInContainer","column","newTable","newTableTbody","infArr","className","match","isArray","newTableLastSectionFilledColumns","valuesIsSaved","tableRowsWithoutHeader","newTableColumnsWithoutLeftHeader","countRows","ceil","sectionNumberLast","tdStyles","sectionNumber","tdLeftHeader","rowFirstStyles","borderTopColor","borderColor","borderBottomColor","borderTopWidth","rowKStyles","borderWidth","background","newTableColumns","increaseRatioRows","newTableRows","jMax","jStart","newTd","rowStyles","images","minWidth","tabEvent","CustomEvent","bubbles","dispatchEvent","wptbTableContainers","wptbTableContainerMaxWidth","maxWidth","mergingСellsHorizontally","tdStyleObj","tdBorderLeftWidth","tdBorderRightWidth","tdPaddingLeftWidth","tdPaddingRightWidth","tdPaddingCommon","parseFloat","tableTdBorderCommonWidth","wptbTableTdsSumMaxWidth","wptbFixedWidthSize","wptbCellsWidthAutoCount","styleElementCreate","tableTdWidthAuto","tableTdsWidthAutoCommon","wptbTdWidthAuto","head","cssForTdsWidthAutoOld","cssForTdsWidthAuto","wptbSize","wptbSizeNew","toLowerCase","wptbButtonWrapper","WPTB_ResponsiveFrontend","query","bindToResize","sortingTable","tables","WPTB_SortableTable","rebuildTables"],"mappings":"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","file":"wp-table-builder-frontend.js","sourcesContent":["let WPTB_CutGlueTable = {\n cutTableHorizontally: function (rowBefore, table) {\n if( table && table.rows[rowBefore] ) {\n for( let i = 0; i < rowBefore; i++ ) {\n let tableRowsIChildren = table.rows[i].children;\n\n for( let j = 0; j < tableRowsIChildren.length; j++ ) {\n if ( tableRowsIChildren[j].rowSpan > 1 && tableRowsIChildren[j].rowSpan > rowBefore - i ) {\n let newTdRowspan = tableRowsIChildren[j].rowSpan - rowBefore + i;\n tableRowsIChildren[j].rowSpan = rowBefore - i;\n if( ! tableRowsIChildren[j].dataset.sameCellBeforeDivision ) {\n tableRowsIChildren[j].dataset.sameCellBeforeDivision = 'r' + i + 'c' + j;\n }\n\n let td;\n if(table.hasOwnProperty('wptbCell')) {\n td = new table.wptbCell( table.mark );\n td = td.getDOMElement();\n } else {\n td = document.createElement('td');\n }\n\n let tdTopStyle = tableRowsIChildren[j].getAttribute( 'style' );\n td.setAttribute( 'style', tdTopStyle );\n td.colSpan = tableRowsIChildren[j].colSpan;\n td.rowSpan = newTdRowspan;\n td.dataset.sameCellBeforeDivision = tableRowsIChildren[j].dataset.sameCellBeforeDivision;\n\n let dataXIndex = tableRowsIChildren[j].dataset.xIndex;\n let dataXIndexNext = parseInt( dataXIndex ) + parseInt( tableRowsIChildren[j].colSpan );\n let beforeTd;\n while( ! beforeTd && dataXIndexNext < table.maxCols ) {\n beforeTd = table.rows[rowBefore].querySelector( '[data-x-index=\"' + dataXIndexNext + '\"]' );\n dataXIndexNext++;\n }\n table.rows[rowBefore].insertBefore( td, beforeTd );\n\n WPTB_RecalculateIndexes(table);\n }\n }\n }\n }\n },\n glueTableHorizontally: function (table) {\n if(table) {\n let tds = [...table.getElementsByTagName( 'td' )];\n for( let i = 0; i < tds.length; i++ ) {\n if( tds[i].hasAttribute( 'data-same-cell-before-division' ) ) {\n let dataSameCellBeforeDivision = tds[i].dataset.sameCellBeforeDivision;\n let tdsSameBeforeDivision = table.querySelectorAll( '[data-same-cell-before-division=\"' + dataSameCellBeforeDivision + '\"]' );\n for( let j = 0; j < tdsSameBeforeDivision.length; j++ ) {\n if( tdsSameBeforeDivision[j] && tdsSameBeforeDivision[j + 1] ) {\n if( tdsSameBeforeDivision[j].parentNode && tdsSameBeforeDivision[j + 1].parentNode &&\n ! tdsSameBeforeDivision[j].parentNode.classList.contains( 'wptb-row-moving' ) &&\n ! tdsSameBeforeDivision[j + 1].parentNode.classList.contains( 'wptb-row-moving' ) ) {\n if( ( tdsSameBeforeDivision[j + 1].dataset.yIndex == parseInt( tdsSameBeforeDivision[j].dataset.yIndex ) +\n parseInt( tdsSameBeforeDivision[j].rowSpan ) ) ) {\n tdsSameBeforeDivision[j].rowSpan += tdsSameBeforeDivision[j + 1].rowSpan;\n\n let tdsSameBeforeDivisionJPlusChildren = [...tdsSameBeforeDivision[j + 1].children];\n\n for( let k = 0; k < tdsSameBeforeDivisionJPlusChildren.length; k++ ) {\n tdsSameBeforeDivision[j].appendChild( tdsSameBeforeDivisionJPlusChildren[k] );\n }\n\n let nextRow = tdsSameBeforeDivision[j + 1].parentNode;\n nextRow.removeChild( tdsSameBeforeDivision[j + 1] );\n }\n }\n }\n }\n }\n }\n\n WPTB_RecalculateIndexes(table);\n }\n },\n cutTableVertically: function (col, table) {\n for ( let i = 0; i < table.rows.length; i++ ) {\n if( col < table.maxCols ) {\n if( col != 0 && ( ! table.rows[i].querySelector( '[data-x-index=\"' + col + '\"]' ) ) ) {\n let rowChildren = table.rows[i].children;\n\n let td,\n rowChildrenLength = rowChildren.length,\n afterTd,\n rowSpanNewTd,\n colSpanOld,\n colSpanNewTd;\n for( let j = 0; j < rowChildrenLength; j++ ) {\n if( rowChildren[j].colSpan > 1 && parseInt( rowChildren[j].dataset.xIndex ) < col &&\n parseInt( rowChildren[j].dataset.xIndex ) + parseInt( rowChildren[j].colSpan ) > col ) {\n if(table.hasOwnProperty('wptbCell')) {\n td = new table.wptbCell( table.mark );\n td = td.getDOMElement();\n } else {\n td = document.createElement('td');\n }\n\n rowSpanNewTd = rowChildren[j].rowSpan;\n colSpanOld = rowChildren[j].colSpan;\n rowChildren[j].colSpan = col - rowChildren[j].dataset.xIndex;\n colSpanNewTd = colSpanOld - rowChildren[j].colSpan;\n\n if( ! rowChildren[j].dataset.sameCellBeforeDivision ) {\n rowChildren[j].dataset.sameCellBeforeDivision = 'r' + i + 'c' + j;\n }\n\n let tdLeftStyle = rowChildren[j].getAttribute( 'style' );\n td.setAttribute( 'style', tdLeftStyle );\n\n let tdAnalogThisX = table.querySelector( '[data-x-index=\"' + col + '\"]' );\n if( tdAnalogThisX ) {\n td.style.width = tdAnalogThisX.style.width;\n }\n\n let tdAnalogThisY = table.querySelector( '[data-y-index=\"' + i + '\"]' );\n if( tdAnalogThisY ) {\n td.style.height = tdAnalogThisY.style.height;\n }\n if( rowChildren[j + 1] ) {\n afterTd = rowChildren[j + 1];\n } else {\n afterTd = null;\n }\n\n table.rows[i].insertBefore( td, afterTd );\n td.colSpan = colSpanNewTd;\n td.rowSpan = rowSpanNewTd;\n td.dataset.sameCellBeforeDivision = rowChildren[j].dataset.sameCellBeforeDivision;\n i += rowSpanNewTd - 1;\n break\n }\n }\n }\n }\n WPTB_RecalculateIndexes(table);\n }\n },\n glueTableVertically: function (table) {\n if( table ) {\n let tds = [...table.getElementsByTagName( 'td' )];\n for( let i = 0; i < tds.length; i++ ) {\n if( tds[i].hasAttribute( 'data-same-cell-before-division' ) ) {\n let dataSameCellBeforeDivision = tds[i].dataset.sameCellBeforeDivision;\n let tdsSameBeforeDivision = [...table.querySelectorAll( '[data-same-cell-before-division=\"' + dataSameCellBeforeDivision + '\"]' )];\n\n let jFirstTdGlue = null;\n for( let j = 0; j < tdsSameBeforeDivision.length; j++ ) {\n if( tdsSameBeforeDivision[j] && tdsSameBeforeDivision[j + 1] &&\n ! tdsSameBeforeDivision[j].classList.contains( 'wptb-column-moving' ) &&\n ! tdsSameBeforeDivision[j + 1].classList.contains( 'wptb-column-moving' ) ) {\n if( ( tdsSameBeforeDivision[j + 1].dataset.xIndex == parseInt( tdsSameBeforeDivision[j].dataset.xIndex ) +\n parseInt( tdsSameBeforeDivision[j].colSpan ) ) ) {\n if( jFirstTdGlue == null ) {\n jFirstTdGlue = j;\n }\n tdsSameBeforeDivision[jFirstTdGlue].colSpan += tdsSameBeforeDivision[j + 1].colSpan;\n\n let tdsSameBeforeDivisionJPlusChildren = [...tdsSameBeforeDivision[j + 1].children];\n\n for( let k = 0; k < tdsSameBeforeDivisionJPlusChildren.length; k++ ) {\n tdsSameBeforeDivision[jFirstTdGlue].appendChild( tdsSameBeforeDivisionJPlusChildren[k] );\n }\n\n let thisRow = tdsSameBeforeDivision[j + 1].parentNode;\n thisRow.removeChild( tdsSameBeforeDivision[j + 1] );\n }\n }\n }\n }\n }\n\n WPTB_RecalculateIndexes(table);\n }\n }\n}\n","/**\n * Responsive class assignment for frontend operations.\n *\n * This file can be used as an UMD.\n */\n(function assignToGlobal(key, context, factory) {\n\tif (typeof exports === 'object' && typeof module !== 'undefined') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tcontext[key] = factory();\n\t}\n\t// eslint-disable-next-line no-restricted-globals\n})('WPTB_SortableTable', self || global, () => {\n\tfunction WPTB_SortTable(options = {}) {\n\t\tconst table = (this.table = options.table);\n\t\tWPTB_RecalculateIndexes(table);\n\t\tconst thisObject = this;\n\t\tthis.itemsPerHeader = 0;\n\t\tthis.tableMaxCols = table.maxCols;\n\t\tthis.cellsStylesScheme = {};\n\t\tthis.rowsStylesScheme = {};\n\n\t\t/**\n\t\t * sets the table to sort mode\n\t\t *\n\t\t * @param {string} type\n\t\t * @param {boolean} active\n\t\t * @param {number} number\n\t\t */\n\t\tthis.sortModeSwitcher = function (type, active) {\n\t\t\tif(active) {\n\t\t\t\tthis.sortModeSwitcher('horizontal', false);\n\t\t\t\tthis.sortModeSwitcher('vertical', false);\n\t\t\t}\n\n\t\t\tif (type === 'vertical') {\n\t\t\t\tthis.table.removeEventListener('click', this.sortableTableVerticalStart, false);\n\n\t\t\t\tif (active) {\n\t\t\t\t\tthis.sortingCellMouseMoveSwitcher('vertical', true);\n\t\t\t\t\tthis.table.addEventListener('click', this.sortableTableVerticalStart, false);\n\t\t\t\t\tthis.table.dataset.wptbSortableTableVertical = '1';\n\t\t\t\t\tthis.createTableElementsStylesScheme('td');\n\t\t\t\t\tthis.createTableElementsStylesScheme('tr');\n\t\t\t\t} else {\n\t\t\t\t\tthis.sortingCellMouseMoveSwitcher('vertical', false);\n\t\t\t\t\tdelete this.table.dataset.wptbSortableTableVertical;\n\t\t\t\t}\n\t\t\t} else if (type === 'horizontal') {\n\t\t\t\tthis.table.removeEventListener('click', this.sortableTableHorizontalStart, false);\n\n\t\t\t\tif (active) {\n\t\t\t\t\tthis.sortingCellMouseMoveSwitcher('horizontal', true);\n\t\t\t\t\tthis.table.addEventListener('click', this.sortableTableHorizontalStart, false);\n\t\t\t\t\tthis.table.dataset.wptbSortableTableHorizontal = '1';\n\t\t\t\t\tthis.createTableElementsStylesScheme('td');\n\t\t\t\t\tthis.createTableElementsStylesScheme('tr');\n\t\t\t\t} else {\n\t\t\t\t\tthis.sortingCellMouseMoveSwitcher('horizontal', false);\n\t\t\t\t\tdelete this.table.dataset.wptbSortableTableHorizontal;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * changes table object for old reconstruction table type\n\t\t *\n\t\t * @param {boolean}start\n\t\t * @returns {*}\n\t\t */\n\t\tthis.tableObjectChange = function (start = true) {\n\t\t\tif(this.table.classList.contains('wptb-mobile-view-active') && start) {\n\t\t\t\tthis.table = table.parentNode.parentNode.querySelector('.wptb-preview-table-mobile');\n\t\t\t} else if(this.table.classList.contains('wptb-preview-table-mobile') && !start) {\n\t\t\t\tthis.table = table.parentNode.querySelector('.wptb-preview-table');\n\t\t\t}\n\t\t\treturn this.table;\n\t\t}\n\n\t\t/**\n\t\t * fills the object with data about cell styles for all locations (create scheme)\n\t\t *\n\t\t * @param elemSelector\n\t\t */\n\t\tthis.createTableElementsStylesScheme = function (elemSelector) {\n\t\t\tthis.tableObjectChange();\n\t\t\tlet elements = this.table.querySelectorAll(elemSelector);\n\t\t\tif(elements.length) {\n\t\t\t\tfor(let i = 0; i < elements.length; i++) {\n\t\t\t\t\tlet elem = elements[i];\n\t\t\t\t\tlet cellFullStyleObj = window.getComputedStyle(elem, null);\n\t\t\t\t\tlet backgroundColor = cellFullStyleObj.getPropertyValue( 'background-color' );\n\t\t\t\t\tlet objectKey = '';\n\t\t\t\t\tif(elemSelector === 'td') {\n\t\t\t\t\t\tobjectKey = elem.dataset.xIndex + '-' + elem.dataset.yIndex;\n\t\t\t\t\t\tthis.cellsStylesScheme[objectKey] = {backgroundColor};\n\t\t\t\t\t} else if(elemSelector === 'tr') {\n\t\t\t\t\t\tobjectKey = String(i);\n\t\t\t\t\t\tthis.rowsStylesScheme[objectKey] = {backgroundColor};\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.tableObjectChange(false);\n\t\t}\n\n\t\t/**\n\t\t * applies saved cell styles data to all cells\n\t\t *\n\t\t * @param elemSelector\n\t\t */\n\t\tthis.reassignElementsStyles = function (elemSelector) {\n\t\t\tthis.tableObjectChange();\n\t\t\tlet elements = this.table.querySelectorAll(elemSelector);\n\t\t\tlet elementsStylesScheme;\n\t\t\tif(elemSelector === 'td') {\n\t\t\t\telementsStylesScheme = this.cellsStylesScheme;\n\t\t\t} else if(elemSelector === 'tr') {\n\t\t\t\telementsStylesScheme = this.rowsStylesScheme;\n\t\t\t}\n\t\t\tif(elements.length) {\n\t\t\t\tfor(let i = 0; i < elements.length; i++) {\n\t\t\t\t\tlet elem = elements[i];\n\t\t\t\t\tlet objectKey = '';\n\t\t\t\t\tif(elemSelector === 'td') {\n\t\t\t\t\t\tobjectKey = elem.dataset.xIndex + '-' + elem.dataset.yIndex;\n\t\t\t\t\t} else if(elemSelector === 'tr') {\n\t\t\t\t\t\tobjectKey = i;\n\t\t\t\t\t}\n\t\t\t\t\tif(elementsStylesScheme.hasOwnProperty(objectKey)) {\n\t\t\t\t\t\tlet elemStyles = elementsStylesScheme[objectKey];\n\t\t\t\t\t\tfor(let key in elemStyles) {\n\t\t\t\t\t\t\telem.style[key] = elemStyles[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.tableObjectChange(false);\n\t\t}\n\n\t\t/**\n\t\t * checks whether the table should be in the sort state\n\t\t * and connects the necessary handlers\n\t\t *\n\t\t * @param {object} responsiveFront\n\t\t */\n\t\tthis.sortableTableInitialization = function (responsiveFront) {\n\t\t\tlet type = '';\n\t\t\tlet typeFirst;\n\t\t\tlet typeSecond;\n\t\t\tif (this.table.dataset.wptbSortableTableVertical && this.table.dataset.wptbSortableTableVertical === '1') {\n\t\t\t\ttypeFirst = 'vertical';\n\t\t\t\ttypeSecond = 'horizontal';\n\t\t\t} else if (\n\t\t\t\tthis.table.dataset.wptbSortableTableHorizontal &&\n\t\t\t\tthis.table.dataset.wptbSortableTableHorizontal === '1'\n\t\t\t) {\n\t\t\t\ttypeFirst = 'horizontal';\n\t\t\t\ttypeSecond = 'vertical';\n\t\t\t}\n\n\t\t\tconst switchMode = {};\n\t\t\tif (responsiveFront && responsiveFront.getDirective(this.table)) {\n\t\t\t\tswitchMode.switch = function (e) {\n\t\t\t\t\tconst directives = responsiveFront.getDirective(this.table)\n\n\t\t\t\t\tlet sizeRangeId = 'desktop';\n\t\t\t\t\tif (e && e.detail) {\n\t\t\t\t\t\tsizeRangeId = e.detail.sizeRangeId;\n\t\t\t\t\t}\n\t\t\t\t\ttype = typeFirst;\n\t\t\t\t\tif (sizeRangeId !== 'desktop') {\n\t\t\t\t\t\tif (directives.hasOwnProperty('modeOptions')) {\n\t\t\t\t\t\t\tconst mode = directives.responsiveMode;\n\t\t\t\t\t\t\tconst modeOptions = directives.modeOptions[mode];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tmodeOptions.hasOwnProperty('topRowAsHeader') &&\n\t\t\t\t\t\t\t\tmodeOptions.topRowAsHeader.hasOwnProperty(sizeRangeId) &&\n\t\t\t\t\t\t\t\tmodeOptions.topRowAsHeader[sizeRangeId]\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tmodeOptions.hasOwnProperty('cellStackDirection') &&\n\t\t\t\t\t\t\t\t\tmodeOptions.cellStackDirection.hasOwnProperty(sizeRangeId)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tif (modeOptions.cellStackDirection[sizeRangeId] === 'row') {\n\t\t\t\t\t\t\t\t\t\ttype = typeSecond;\n\t\t\t\t\t\t\t\t\t\tthis.itemsPerHeader = this.tableMaxCols - 1;\n\t\t\t\t\t\t\t\t\t} else if (modeOptions.cellStackDirection[sizeRangeId] === 'column') {\n\t\t\t\t\t\t\t\t\t\tif (modeOptions.hasOwnProperty('cellsPerRow')) {\n\t\t\t\t\t\t\t\t\t\t\tthis.itemsPerHeader = modeOptions.cellsPerRow[sizeRangeId];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.itemsPerHeader = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.itemsPerHeader = 0;\n\t\t\t\t\t}\n\t\t\t\t\tthis.sortModeSwitcher(type, true);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tswitchMode.switch = function (e) {\n\t\t\t\t\tlet type = typeFirst;\n\t\t\t\t\tif (this.table.classList.contains('wptb-mobile-view-active')) {\n\t\t\t\t\t\tif (this.table.classList.contains('wptb-table-preview-head')) {\n\t\t\t\t\t\t\ttype = typeSecond;\n\t\t\t\t\t\t\tif(type === 'vertical') {\n\t\t\t\t\t\t\t\tthis.itemsPerHeader = this.tableMaxCols - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst { table } = this;\n\t\t\t\t\t\tthis.table = table.parentNode.parentNode.querySelector('.wptb-preview-table-mobile');\n\t\t\t\t\t\tthis.sortModeSwitcher(type, true);\n\t\t\t\t\t\tthis.table = table;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.sortModeSwitcher(type, true);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tswitchMode.switch.call(thisObject);\n\t\t\tthis.table.addEventListener(\n\t\t\t\t'table:rebuilt',\n\t\t\t\tfunction (e) {\n\t\t\t\t\tswitchMode.switch.call(thisObject, e);\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t};\n\n\t\t/**\n\t\t * adds and deletes mousemove and mouseleave events handlers when happens switch sorting mode\n\t\t * and also can add necessary attributes\n\t\t *\n\t\t * @param {string} type\n\t\t * @param {boolean} active\n\t\t */\n\t\tthis.sortingCellMouseMoveSwitcher = function (type, active) {\n\t\t\t/**\n\t\t\t * removes and adds mousemove and mouseleave events handlers\n\t\t\t *\n\t\t\t * @param {HTMLElement} td\n\t\t\t * @param {func} sCMM\n\t\t\t * @param {boolean} active\n\t\t\t */\n\t\t\tfunction s(td, sCMM, active) {\n\t\t\t\ttd.removeEventListener('mousemove', sCMM, false);\n\t\t\t\ttd.removeEventListener('mouseleave', tdMouseLeave, false);\n\t\t\t\tif (active) {\n\t\t\t\t\ttd.addEventListener('mousemove', sCMM, false);\n\t\t\t\t\ttd.addEventListener('mouseleave', tdMouseLeave, false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * removes and adds data sorted attributes\n\t\t\t *\n\t\t\t * @param {HTMLElement} td\n\t\t\t * @param {string} dataAttr\n\t\t\t * @param {boolean} active\n\t\t\t */\n\t\t\tfunction dataAttrSortChange(td, dataAttr, active) {\n\t\t\t\tif (active) {\n\t\t\t\t\tif (!td.dataset[dataAttr] || td.dataset[dataAttr] !== 'desk-disabled') {\n\t\t\t\t\t\ttd.dataset[dataAttr] = 'ask';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttd.dataset[dataAttr] = 'desk';\n\t\t\t\t\t}\n\t\t\t\t} else if (td.dataset[dataAttr] === 'ask') {\n\t\t\t\t\ttd.dataset[dataAttr] = 'ask-disabled';\n\t\t\t\t} else if (td.dataset[dataAttr] === 'desk') {\n\t\t\t\t\ttd.dataset[dataAttr] = 'desk-disabled';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// removes all mousemove and mouseleave events handlers\n\t\t\t// and also removes all data sorted attributes from all cells\n\t\t\tlet tds = this.table.querySelectorAll('td');\n\t\t\tif (tds.length) {\n\t\t\t\ttds = [...tds];\n\t\t\t\ttds.map((td) => {\n\t\t\t\t\ts(td, sortingCellMouseMoveVertical, false);\n\t\t\t\t\tdataAttrSortChange(td, 'sortedVertical', false);\n\t\t\t\t\ts(td, sortingCellMouseMoveHorizontal, false);\n\t\t\t\t\tdataAttrSortChange(td, 'sortedHorizontal', false);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// if active === true sets sorted events handlers\n\t\t\t// and data sorted attributes for all cells\n\t\t\tif (active) {\n\t\t\t\tif (type === 'vertical') {\n\t\t\t\t\tlet rowsLength = this.table.rows.length;\n\t\t\t\t\tlet dataYIndexStart = 0;\n\t\t\t\t\twhile (rowsLength > 0) {\n\t\t\t\t\t\tlet tds = this.table.querySelectorAll(`[data-y-index=\"${dataYIndexStart}\"]`);\n\t\t\t\t\t\ttds = [...tds];\n\t\t\t\t\t\ttds.map((td) => {\n\t\t\t\t\t\t\ts(td, sortingCellMouseMoveVertical, active);\n\t\t\t\t\t\t\tdataAttrSortChange(td, 'sortedVertical', active);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (this.itemsPerHeader) {\n\t\t\t\t\t\t\trowsLength -= this.itemsPerHeader + 1;\n\t\t\t\t\t\t\tdataYIndexStart += this.itemsPerHeader + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trowsLength = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (type === 'horizontal') {\n\t\t\t\t\tlet tds = this.table.querySelectorAll('[data-x-index=\"0\"]');\n\t\t\t\t\ttds = [...tds];\n\t\t\t\t\ttds.map((td) => {\n\t\t\t\t\t\tlet tdsPerAfter = this.table.querySelectorAll(`[data-y-index=\"${td.dataset.yIndex}\"]`);\n\t\t\t\t\t\tif(tdsPerAfter.length > 2) {\n\t\t\t\t\t\t\ts(td, sortingCellMouseMoveHorizontal, active);\n\t\t\t\t\t\t\tdataAttrSortChange(td, 'sortedHorizontal', active);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * adds a sortable-hover class for a cell when the cursor is over the sort icon (arrow)\n\t\t *\n\t\t * @param {event} e\n\t\t * @param {string} type\n\t\t * @param {HTMLElement} element td\n\t\t */\n\t\tfunction sortingCellMouseMov(e, type, element) {\n\t\t\tif (e.target.tagName === 'TD') {\n\t\t\t\tconst x = e.offsetX == undefined ? e.layerX : e.offsetX;\n\t\t\t\tconst y = e.offsetY == undefined ? e.layerY : e.offsetY;\n\t\t\t\tlet xMatch = false;\n\t\t\t\tif ((type === 'vertical' && e.target.clientWidth - x <= 35) || (type === 'horizontal' && x <= 35)) {\n\t\t\t\t\txMatch = true;\n\t\t\t\t}\n\t\t\t\tif (xMatch && (e.target.clientHeight - 35) / 2 < y && (e.target.clientHeight + 35) / 2 > y) {\n\t\t\t\t\telement.classList.add('sortable-hover');\n\t\t\t\t} else {\n\t\t\t\t\telement.classList.remove('sortable-hover');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telement.classList.remove('sortable-hover');\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * calls sortingCellMouseMov with the type parameter set to vertical\n\t\t *\n\t\t * @param {event} e\n\t\t */\n\t\tfunction sortingCellMouseMoveVertical(e) {\n\t\t\tsortingCellMouseMov(e, 'vertical', this);\n\t\t}\n\n\t\t/**\n\t\t * calls sortingCellMouseMov with the type parameter set to horizontal\n\t\t *\n\t\t * @param {event} e\n\t\t */\n\t\tfunction sortingCellMouseMoveHorizontal(e) {\n\t\t\tsortingCellMouseMov(e, 'horizontal', this);\n\t\t}\n\n\t\t/**\n\t\t * remove sortable-hover class from cell when cursor leave cell\n\t\t */\n\t\tfunction tdMouseLeave() {\n\t\t\tthis.classList.remove('sortable-hover');\n\t\t}\n\n\t\t/**\n\t\t * function for sorting the table vertically by the numeric content of cells\n\t\t *\n\t\t * @param {event} e\n\t\t * @param {HTMLElement} table\n\t\t * @param {string} type\n\t\t */\n\t\tfunction sortableTable(e, type) {\n\t\t\tif (\n\t\t\t\te.target &&\n\t\t\t\te.target.tagName === 'TD' &&\n\t\t\t\t!table.parentNode.classList.contains('wptb-preview-table-manage-cells')\n\t\t\t) {\n\t\t\t\tconst table = e.currentTarget;\n\t\t\t\tlet tableWasSorted = false;\n\t\t\t\tif (type === 'vertical' && e.target.dataset.hasOwnProperty('sortedVertical')) {\n\t\t\t\t\t/**\n\t\t\t\t\t * if table have enabled param topRowAsHeader and sellsStackDirection is column\n\t\t\t\t\t * the top and bottom rows that will not be sorted are temporarily removed from the table\n\t\t\t\t\t */\n\t\t\t\t\tconst tableRowsBefore = [];\n\t\t\t\t\tconst tableRowsAfter = [];\n\t\t\t\t\tif (this.itemsPerHeader && this.itemsPerHeader < table.rows.length) {\n\t\t\t\t\t\tWPTB_RecalculateIndexes(table);\n\t\t\t\t\t\tconst tableRowsArr = [...table.rows];\n\t\t\t\t\t\tconst tableLastCont = table.querySelector('tbody') ? table.querySelector('tbody') : table;\n\t\t\t\t\t\tfor (let i = 0; i < tableRowsArr.length; i++) {\n\t\t\t\t\t\t\tif (i < e.target.dataset.yIndex) {\n\t\t\t\t\t\t\t\ttableRowsBefore.push(tableRowsArr[i]);\n\t\t\t\t\t\t\t\ttableLastCont.removeChild(tableRowsArr[i]);\n\t\t\t\t\t\t\t} else if (i > parseInt(e.target.dataset.yIndex, 10) + this.itemsPerHeader) {\n\t\t\t\t\t\t\t\ttableRowsAfter.push(tableRowsArr[i]);\n\t\t\t\t\t\t\t\ttableLastCont.removeChild(tableRowsArr[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tWPTB_RecalculateIndexes(table);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet tds = table.querySelectorAll(`[data-x-index=\"${e.target.dataset.xIndex}\"]`);\n\t\t\t\t\ttds = [...tds];\n\n\t\t\t\t\t/**\n\t\t\t\t\t * preparing table for sorting\n\t\t\t\t\t */\n\t\t\t\t\tlet rowspan;\n\t\t\t\t\tlet rowNum;\n\t\t\t\t\ttds.map((td) => {\n\t\t\t\t\t\tif (!(rowspan = parseInt(td.rowSpan, 10))) {\n\t\t\t\t\t\t\trowspan = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowNum = td.dataset.yIndex;\n\t\t\t\t\t\tWPTB_CutGlueTable.cutTableHorizontally(rowNum, table);\n\t\t\t\t\t\trowNum += rowspan;\n\t\t\t\t\t\tWPTB_CutGlueTable.cutTableHorizontally(rowNum, table);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst rowsValuesArr = [];\n\t\t\t\t\tlet rowsTdFirst;\n\t\t\t\t\tlet tdYCoordsRowSpanPrevious = 0;\n\t\t\t\t\tconst tableRowsPushed = [];\n\t\t\t\t\tfor (let i = 0; i < tds.length; i++) {\n\t\t\t\t\t\tconst tdsChanged = changeSortingTdsCollection(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\ttds,\n\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\ttdYCoordsRowSpanPrevious,\n\t\t\t\t\t\t\t'vertical'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (tdsChanged && tdsChanged.hasOwnProperty('i')) {\n\t\t\t\t\t\t\ttds = tdsChanged.tds;\n\t\t\t\t\t\t\ti = tdsChanged.i;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else if (tdsChanged) {\n\t\t\t\t\t\t\ttds = tdsChanged.tds;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst td = tds[i];\n\n\t\t\t\t\t\tlet tdRowspan = parseInt(td.rowSpan, 10);\n\t\t\t\t\t\tif (!tdRowspan) tdRowspan = 1;\n\n\t\t\t\t\t\ttdYCoordsRowSpanPrevious = parseInt(td.dataset.yIndex, 10) + tdRowspan;\n\n\t\t\t\t\t\tconst textElementsValues = textElementsValuesGet(td);\n\n\t\t\t\t\t\tconst rowsTd = [];\n\t\t\t\t\t\tfor (let j = 0; j < tdRowspan; j++) {\n\t\t\t\t\t\t\trowsTd.push(table.rows[parseInt(td.dataset.yIndex, 10) + j]);\n\t\t\t\t\t\t\ttableRowsPushed.push(parseInt(td.dataset.yIndex, 10) + j);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (td.dataset.yIndex > 0) {\n\t\t\t\t\t\t\trowsValuesArr.push({\n\t\t\t\t\t\t\t\trowsTd,\n\t\t\t\t\t\t\t\tvalue: textElementsValues,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trowsTdFirst = rowsTd;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orderBy = setSortedAscDataAttr(e, 'sortedVertical');\n\t\t\t\t\tif (!orderBy) return;\n\n\t\t\t\t\tif (rowsValuesArr.length) rowsValuesArr.sort((prev, next) => sortOrder(orderBy, prev, next));\n\n\t\t\t\t\trowsValuesArr.unshift({ rowsTd: rowsTdFirst });\n\n\t\t\t\t\tif (rowsValuesArr.length < table.rows.length) {\n\t\t\t\t\t\tfor (let i = 0; i < table.rows.length; i++) {\n\t\t\t\t\t\t\tif (tableRowsPushed.indexOf(i) > -1) continue;\n\t\t\t\t\t\t\tconst rowsTd = [];\n\t\t\t\t\t\t\trowsTd.push(table.rows[i]);\n\n\t\t\t\t\t\t\trowsValuesArr.push({\n\t\t\t\t\t\t\t\trowsTd,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tBody = table.querySelector('tbody');\n\t\t\t\t\ttBody.innerHTML = '';\n\n\t\t\t\t\trowsValuesArr.map((rowsValObj) => {\n\t\t\t\t\t\trowsValObj.rowsTd.map((row) => {\n\t\t\t\t\t\t\ttBody.appendChild(row);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t/**\n\t\t\t\t\t * returning previously deleted rows\n\t\t\t\t\t */\n\t\t\t\t\tif (tableRowsBefore.length) {\n\t\t\t\t\t\tconst tableLastCont = table.querySelector('tbody') ? table.querySelector('tbody') : table;\n\t\t\t\t\t\tif (tableLastCont) {\n\t\t\t\t\t\t\tconst trRef = tableLastCont.querySelector('tr');\n\t\t\t\t\t\t\ttableRowsBefore.map((tr) => {\n\t\t\t\t\t\t\t\ttableLastCont.insertBefore(tr, trRef);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (tableRowsAfter.length) {\n\t\t\t\t\t\tconst tableLastCont = table.querySelector('tbody') ? table.querySelector('tbody') : table;\n\t\t\t\t\t\tif (tBody) {\n\t\t\t\t\t\t\ttableRowsAfter.map((tr) => {\n\t\t\t\t\t\t\t\ttableLastCont.appendChild(tr);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tWPTB_RecalculateIndexes(table);\n\n\t\t\t\t\tWPTB_CutGlueTable.glueTableHorizontally(table);\n\n\t\t\t\t\ttableWasSorted = true;\n\t\t\t\t} else if (type === 'horizontal' && e.target.dataset.xIndex === '0') {\n\t\t\t\t\tlet tds = table.querySelectorAll(`[data-y-index=\"${e.target.dataset.yIndex}\"]`);\n\t\t\t\t\ttds = [...tds];\n\n\t\t\t\t\t// preparing table for sorting\n\t\t\t\t\tlet colspan;\n\t\t\t\t\tlet colNum;\n\t\t\t\t\ttds.map((td) => {\n\t\t\t\t\t\tif (!(colspan = parseInt(td.colSpan, 10))) {\n\t\t\t\t\t\t\tcolspan = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcolNum = td.dataset.xIndex;\n\t\t\t\t\t\tWPTB_CutGlueTable.cutTableVertically(colNum, table);\n\t\t\t\t\t\tcolNum += colspan;\n\t\t\t\t\t\tWPTB_CutGlueTable.cutTableVertically(colNum, table);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst columnsValuesArr = [];\n\t\t\t\t\tlet columnsTdFirst;\n\n\t\t\t\t\tlet tdXCoordsColSpanPrevious = 0;\n\t\t\t\t\tfor (let i = 0; i < tds.length; i++) {\n\t\t\t\t\t\tconst tdsChanged = changeSortingTdsCollection(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\ttds,\n\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\ttdXCoordsColSpanPrevious,\n\t\t\t\t\t\t\t'horizontal'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (tdsChanged && tdsChanged.hasOwnProperty('i')) {\n\t\t\t\t\t\t\ttds = tdsChanged.tds;\n\t\t\t\t\t\t\ti = tdsChanged.i;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else if (tdsChanged) {\n\t\t\t\t\t\t\ttds = tdsChanged.tds;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst td = tds[i];\n\t\t\t\t\t\tlet tdColspan = parseInt(td.colSpan, 10);\n\t\t\t\t\t\tif (!tdColspan) tdColspan = 1;\n\n\t\t\t\t\t\ttdXCoordsColSpanPrevious = parseInt(td.dataset.xIndex, 10) + tdColspan;\n\n\t\t\t\t\t\tconst textElementsValues = textElementsValuesGet(td);\n\t\t\t\t\t\tconst columnsTd = [];\n\t\t\t\t\t\tfor (let j = 0; j < tdColspan; j++) {\n\t\t\t\t\t\t\tconst tdsColumn = [\n\t\t\t\t\t\t\t\t...table.querySelectorAll(`[data-x-index=\"${parseInt(td.dataset.xIndex, 10) + j}\"]`),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tcolumnsTd.push(tdsColumn);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (td.dataset.xIndex > 0) {\n\t\t\t\t\t\t\tcolumnsValuesArr.push({\n\t\t\t\t\t\t\t\tcolumnsTd,\n\t\t\t\t\t\t\t\tvalue: textElementsValues,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcolumnsTdFirst = columnsTd;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orderBy = setSortedAscDataAttr(e, 'sortedHorizontal');\n\t\t\t\t\tif (!orderBy) return;\n\n\t\t\t\t\tif (columnsValuesArr.length) columnsValuesArr.sort((prev, next) => sortOrder(orderBy, prev, next));\n\n\t\t\t\t\tcolumnsValuesArr.unshift({ columnsTd: columnsTdFirst });\n\n\t\t\t\t\tif (columnsValuesArr.length < table.maxCols) {\n\t\t\t\t\t\tconst difference = table.maxCols - columnsValuesArr.length;\n\t\t\t\t\t\tfor (let i = 0; i < difference; i++) {\n\t\t\t\t\t\t\tconst tdsColumn = [\n\t\t\t\t\t\t\t\t...table.querySelectorAll(\n\t\t\t\t\t\t\t\t\t`[data-x-index=\"${parseInt(table.maxCols, 10) - parseInt(difference, 10) + i}\"]`\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tcolumnsValuesArr.push({\n\t\t\t\t\t\t\t\tcolumnsTd: [tdsColumn],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (let i = 0; i < table.rows.length; i++) {\n\t\t\t\t\t\ttable.rows[i].innerHTML = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcolumnsValuesArr.map((columnsValObj) => {\n\t\t\t\t\t\tcolumnsValObj.columnsTd.map((tdsColumn) => {\n\t\t\t\t\t\t\ttdsColumn.map((td) => {\n\t\t\t\t\t\t\t\ttable.rows[td.dataset.yIndex].appendChild(td);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tWPTB_RecalculateIndexes(table);\n\n\t\t\t\t\tWPTB_CutGlueTable.glueTableVertically(table);\n\n\t\t\t\t\ttableWasSorted = true;\n\t\t\t\t}\n\n\t\t\t\tif (tableWasSorted) {\n\t\t\t\t\tremoveCellsAttrAfterDivision(table);\n\n\t\t\t\t\tif (table.hasOwnProperty('tableSM')) {\n\t\t\t\t\t\tconst tableSM = table.tableSM();\n\t\t\t\t\t\tnew tableSM().tableStateSet();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.reassignElementsStyles('td');\n\t\t\t\t\tthis.reassignElementsStyles('tr');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Function that sets the data-attribute with the number of the row or column\n\t\t * that the table was sorted by. Returns the number of a row or column\n\t\t *\n\t\t * @param {event} e\n\t\t * @param {string} dataAttr\n\t\t * @returns {null|boolean}\n\t\t */\n\t\tfunction setSortedAscDataAttr(e, dataAttr) {\n\t\t\tif (\n\t\t\t\te.currentTarget &&\n\t\t\t\t(e.currentTarget.classList.contains('wptb-preview-table') ||\n\t\t\t\t\te.currentTarget.classList.contains('wptb-preview-table-mobile'))\n\t\t\t) {\n\t\t\t\tif (!e.target.dataset[dataAttr] || e.target.dataset[dataAttr] === 'ask') {\n\t\t\t\t\te.target.dataset[dataAttr] = 'desk';\n\t\t\t\t} else {\n\t\t\t\t\te.target.dataset[dataAttr] = 'ask';\n\t\t\t\t}\n\n\t\t\t\treturn e.target.dataset[dataAttr];\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * defines the sorting order\n\t\t *\n\t\t * @param {string} orderBy\n\t\t * @param prev\n\t\t * @param next\n\t\t * @returns {number}\n\t\t */\n\t\tfunction sortOrder(orderBy = 'ask', prev, next) {\n\t\t\tlet prevValue = prev.value;\n\t\t\tlet nextValue = next.value;\n\t\t\tif (parseInt(prevValue) && parseInt(nextValue)) {\n\t\t\t\tprevValue = parseInt(prevValue);\n\t\t\t\tnextValue = parseInt(nextValue);\n\t\t\t}\n\n\t\t\tif (orderBy === 'ask') {\n\t\t\t\tif (prevValue < nextValue) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (prevValue === nextValue) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (prevValue < nextValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (prevValue === nextValue) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn -1;\n\t\t}\n\n\t\t/**\n\t\t * return cell text elements values\n\t\t *\n\t\t * @param cell {HTMLElement}\n\t\t * @returns {string}\n\t\t */\n\t\tfunction textElementsValuesGet(cell) {\n\t\t\tlet textElements = cell.querySelectorAll('.wptb-text-container');\n\t\t\ttextElements = [...textElements];\n\t\t\tlet value = '';\n\t\t\tfor (let j = 0; j < textElements.length; j++) {\n\t\t\t\tconst p = textElements[j].querySelector('p');\n\t\t\t\tvalue += p.innerText;\n\t\t\t\tif (j !== textElements.length - 1) value += ' ';\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\n\t\t/**\n\t\t * adds cells to the collection of cells in the row or column that the table is sorted by.\n\t\t * These added cells are not originally were added in the collection,\n\t\t * because they are combined with cells from higher rows or left-side columns\n\t\t *\n\t\t * @param {event} e\n\t\t * @param {HTMLElement} table\n\t\t * @param {array} tds\n\t\t * @param {number} i\n\t\t * @param {number} tdIndexSpanPrev\n\t\t * @param {string} type\n\t\t * @returns {{tds: *}|boolean|{tds: *, i: *}}\n\t\t */\n\t\tfunction changeSortingTdsCollection(e, table, tds, i, tdIndexSpanPrev, type) {\n\t\t\tconst td = tds[i];\n\t\t\tlet tdsCollectionChanged = false;\n\t\t\tlet collectionTds;\n\t\t\tlet collectionTdsJSpan;\n\t\t\tlet collectionTdsJSpanProperty;\n\t\t\tlet indexName;\n\t\t\tlet indexNameCamelCase;\n\t\t\tlet indexNamePerpendicularCamelCase;\n\t\t\tlet tdSpanProperty;\n\t\t\t// max rows or columns column\n\t\t\tlet tableGroupCount;\n\n\t\t\tif (type === 'vertical') {\n\t\t\t\tcollectionTdsJSpanProperty = 'colSpan';\n\t\t\t\tindexName = 'data-y-index';\n\t\t\t\tindexNameCamelCase = 'yIndex';\n\t\t\t\tindexNamePerpendicularCamelCase = 'xIndex';\n\t\t\t\ttdSpanProperty = 'rowSpan';\n\t\t\t\ttableGroupCount = table.rows.length;\n\t\t\t} else if (type === 'horizontal') {\n\t\t\t\tcollectionTdsJSpanProperty = 'rowSpan';\n\t\t\t\tindexName = 'data-x-index';\n\t\t\t\tindexNameCamelCase = 'xIndex';\n\t\t\t\tindexNamePerpendicularCamelCase = 'yIndex';\n\t\t\t\ttdSpanProperty = 'colSpan';\n\t\t\t\ttableGroupCount = table.maxCols;\n\t\t\t}\n\n\t\t\tif (td.dataset[indexNameCamelCase] - tdIndexSpanPrev > 0) {\n\t\t\t\tcollectionTds = table.querySelectorAll(`[${indexName}=\"${tdIndexSpanPrev}\"]`);\n\n\t\t\t\tfor (let j = 0; j < collectionTds.length; j++) {\n\t\t\t\t\tcollectionTdsJSpan = collectionTds[j][collectionTdsJSpanProperty];\n\t\t\t\t\tif (!collectionTdsJSpan) collectionTdsJSpan = 1;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcollectionTds[j].dataset[indexNamePerpendicularCamelCase] <\n\t\t\t\t\t\t\te.target.dataset[indexNamePerpendicularCamelCase] &&\n\t\t\t\t\t\tparseInt(collectionTds[j].dataset[indexNamePerpendicularCamelCase], 10) +\n\t\t\t\t\t\t\tparseInt(collectionTdsJSpan, 10) >\n\t\t\t\t\t\t\te.target.dataset[indexNamePerpendicularCamelCase]\n\t\t\t\t\t) {\n\t\t\t\t\t\ttds.splice(i, 0, collectionTds[j]);\n\t\t\t\t\t\ttdsCollectionChanged = true;\n\t\t\t\t\t\ti--;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tdsCollectionChanged) return { tds, i };\n\n\t\t\tlet tdSpan = parseInt(td[tdSpanProperty], 10);\n\t\t\tif (!tdSpan) tdSpan = 1;\n\t\t\tif (i == tds.length - 1 && parseInt(td.dataset[indexNameCamelCase], 10) + tdSpan < tableGroupCount) {\n\t\t\t\tcollectionTds = table.querySelectorAll(\n\t\t\t\t\t`[${indexName}=\"${parseInt(td.dataset[indexNameCamelCase], 10) + tdSpan}\"]`\n\t\t\t\t);\n\t\t\t\tfor (let j = 0; j < collectionTds.length; j++) {\n\t\t\t\t\tcollectionTdsJSpan = collectionTds[j][collectionTdsJSpanProperty];\n\t\t\t\t\tif (!collectionTdsJSpan) collectionTdsJSpan = 1;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcollectionTds[j].dataset[indexNamePerpendicularCamelCase] <\n\t\t\t\t\t\t\te.target.dataset[indexNamePerpendicularCamelCase] &&\n\t\t\t\t\t\tparseInt(collectionTds[j].dataset[indexNamePerpendicularCamelCase], 10) +\n\t\t\t\t\t\t\tparseInt(collectionTdsJSpan, 10) >\n\t\t\t\t\t\t\te.target.dataset[indexNamePerpendicularCamelCase]\n\t\t\t\t\t) {\n\t\t\t\t\t\ttds.push(collectionTds[j]);\n\t\t\t\t\t\ttdsCollectionChanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tdsCollectionChanged) return { tds };\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * remove cells attributes which were used for division table\n\t\t *\n\t\t * @param {HTMLElement} table\n\t\t */\n\t\tfunction removeCellsAttrAfterDivision(table) {\n\t\t\tconst tdsAll = [...table.getElementsByTagName('td')];\n\t\t\tfor (let i = 0; i < tdsAll.length; i++) {\n\t\t\t\tif (tdsAll[i].hasAttribute('data-same-cell-before-division')) {\n\t\t\t\t\ttdsAll[i].removeAttribute('data-same-cell-before-division');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * function for run sorting table vertically\n\t\t *\n\t\t * @param {event} e\n\t\t */\n\t\tthis.sortableTableVerticalStart = function (e) {\n\t\t\tsortableTable.call(thisObject, e, 'vertical');\n\t\t};\n\n\t\t/**\n\t\t * function for run sorting table horizontally\n\t\t *\n\t\t * @param {event} e\n\t\t */\n\t\tthis.sortableTableHorizontalStart = function (e) {\n\t\t\tsortableTable.call(thisObject, e, 'horizontal');\n\t\t};\n\n\t\treturn this;\n\t}\n\n\treturn WPTB_SortTable;\n});\n","const WPTB_RecalculateIndexes = function (table) {\r\n let trs = table.getElementsByTagName( 'tr' ),\r\n tds, maxCols = 0, maxColsFull = 0, tdsArr = [];\r\n\r\n for ( let i = 0; i < trs.length; i++ ) {\r\n tds = trs[i].getElementsByTagName( 'td' );\r\n\r\n if ( tdsArr[i] == undefined ) {\r\n tdsArr[i] = [];\r\n }\r\n\r\n let jMainIter = 0;\r\n for ( let j = 0; j < tds.length; j++ ) {\r\n if ( tdsArr[i][j] != undefined ) {\r\n for ( let y = 0; y < 100; y++ ) {\r\n if ( tdsArr[i][jMainIter] != undefined ) {\r\n jMainIter++;\r\n continue;\r\n }\r\n tdsArr[i][jMainIter] = tds[j];\r\n tds[j].dataset.xIndex = jMainIter;\r\n break;\r\n }\r\n } else {\r\n tdsArr[i][j] = tds[j];\r\n tds[j].dataset.xIndex = jMainIter;\r\n }\r\n tds[j].dataset.yIndex = i;\r\n\r\n if ( tds[j].colSpan > 1 ) {\r\n for ( let k = 1; k < tds[j].colSpan; k++ ) {\r\n jMainIter++;\r\n tdsArr[i][jMainIter] = 'tdDummy';\r\n }\r\n }\r\n\r\n if ( tds[j].rowSpan > 1 ) {\r\n for ( let x = 1; x < tds[j].rowSpan; x++ ) {\r\n if ( tdsArr[i + x] == undefined ) {\r\n tdsArr[i + x] = [];\r\n }\r\n for ( let z = 0; z < tds[j].colSpan; z++ ) {\r\n tdsArr[i + x][jMainIter - tds[j].colSpan + 1 + z ] = 'tdDummy';\r\n }\r\n }\r\n }\r\n jMainIter++;\r\n }\r\n\r\n if ( tds.length > maxCols ) {\r\n maxCols = tds.length;\r\n }\r\n\r\n if( i == 0 ) {\r\n maxColsFull = jMainIter;\r\n }\r\n }\r\n table.columns = maxCols;\r\n table.maxCols = maxColsFull;\r\n}\r\n","(function ($) {\n\t/**\n\t * All of the code for your public-facing JavaScript source\n\t * should reside in this file.\n\t *\n\t * Note: It has been assumed you will write jQuery code here, so the\n\t * $ function reference has been prepared for usage within the scope\n\t * of this function.\n\t *\n\t * This enables you to define handlers, for when the DOM is ready:\n\t *\n\t * $(function() {\n\t *\n\t * });\n\t *\n\t * When the window is loaded:\n\t *\n\t * $( window ).load(function() {\n\t *\n\t * });\n\t *\n\t * ...and/or other possibilities.\n\t *\n\t * Ideally, it is not considered best practise to attach more than a\n\t * single DOM-ready or window-load handler for a particular page.\n\t * Although scripts in the WordPress core, Plugins and Themes may be\n\t * practising this, we should strive to set a better example in our own work.\n\t *\n\t * The file is enqueued from inc/frontend/class-frontend.php.\n\t */\n\n\tjQuery(document).ready(function ($) {\n\t\tconst tableContainers = document.getElementsByClassName('wptb-table-container');\n\t\t/**\n\t\t * Adds hover color change support for supported button elements.\n\t\t */\n\t\tfunction addHoverSupport(querySelector) {\n\t\t\tconst buttons = Array.from(document.querySelectorAll(querySelector));\n\n\t\t\tbuttons.map((b) => {\n\t\t\t\tb.addEventListener('mouseenter', (e) => {\n\t\t\t\t\tconst el = e.target;\n\t\t\t\t\t// hover background-color\n\t\t\t\t\tif (el.dataset.wptbElementHoverBgColor) {\n\t\t\t\t\t\tel.style.backgroundColor = el.dataset.wptbElementHoverBgColor;\n\t\t\t\t\t}\n\t\t\t\t\t// hover color\n\t\t\t\t\tif (el.dataset.wptbElementHoverTextColor) {\n\t\t\t\t\t\tel.style.color = el.dataset.wptbElementHoverTextColor;\n\t\t\t\t\t}\n\t\t\t\t\t// hover scale\n\t\t\t\t\tif (el.dataset.wptbElementHoverScale) {\n\t\t\t\t\t\tel.style.transform = `scale(${b.dataset.wptbElementHoverScale})`;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tb.addEventListener('mouseleave', (e) => {\n\t\t\t\t\t// reset all supported hover properties to their default value\n\t\t\t\t\tconst el = e.target;\n\t\t\t\t\tif (el.dataset.wptbElementHoverBgColor) {\n\t\t\t\t\t\tel.style.backgroundColor = el.dataset.wptbElementBgColor;\n\t\t\t\t\t}\n\t\t\t\t\tif (el.dataset.wptbElementHoverTextColor) {\n\t\t\t\t\t\tel.style.color = el.dataset.wptbElementColor;\n\t\t\t\t\t}\n\t\t\t\t\tif (el.dataset.wptbElementHoverScale) {\n\t\t\t\t\t\tel.style.transform = 'scale(1)';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// add all kind of functions that have event listeners before responsive table reconstruction to make sure those event listeners are carried over to their clones\n\t\taddHoverSupport('.wptb-preview-table .wptb-button');\n\n\t\t/**\n\t\t * function wptb_tableContainerSectionSmall\n\t\t * add class ( wptb-section-small ) in small width\n\t\t * remove this class in large width\n\t\t * @returns {void}\n\t\t */\n\t\tfunction wptb_tableContainerSectionSmall() {\n\t\t\tconst wptbTableContainer = jQuery('.wptb-table-container');\n\t\t\tconst sw = wptbTableContainer.width();\n\t\t\tif (wptbTableContainer.length > 0) {\n\t\t\t\tif (sw < 480) {\n\t\t\t\t\twptbTableContainer.addClass('wptb-section-small');\n\t\t\t\t} else {\n\t\t\t\t\twptbTableContainer.removeClass('wptb-section-small');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * function wptb_tableGenerateMobile\n\t\t * generates a mobile view of the table\n\t\t * when the top row of the table is not a heading\n\t\t * @returns {void}\n\t\t */\n\t\tfunction wptb_tableGenerateMobile() {\n\t\t\tconst wptbTableContainer = document.getElementsByClassName('wptb-table-container');\n\t\t\tconst wptbPreviewTable = document.getElementsByClassName('wptb-preview-table');\n\t\t\tconst wptbPreviewTableMobile = document.getElementsByClassName('wptb-preview-table-mobile');\n\t\t\tif (wptbTableContainer.length > 0 && wptbPreviewTable.length > 0) {\n\t\t\t\tconst sw = wptbTableContainer[0].offsetWidth;\n\t\t\t\tif (sw < 480) {\n\t\t\t\t\twptbPreviewTable[0].style.display = 'none';\n\n\t\t\t\t\tif (wptbPreviewTableMobile.length == 0) {\n\t\t\t\t\t\tconst tableRows = wptbPreviewTable[0].rows;\n\t\t\t\t\t\tconst tableRowTop = tableRows[0];\n\t\t\t\t\t\tconst tableRowTopChildren = tableRowTop.children;\n\t\t\t\t\t\tlet columnCount = 0;\n\n\t\t\t\t\t\tfor (let i = 0; i < tableRowTopChildren.length; i++) {\n\t\t\t\t\t\t\tcolumnCount += tableRowTopChildren[i].colSpan;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newTableArray = [];\n\n\t\t\t\t\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\t\t\t\t\tnewTableArray[i] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < tableRows.length; i++) {\n\t\t\t\t\t\t\tconst rowChildren = tableRows[i].children;\n\n\t\t\t\t\t\t\tfor (let j = 0; j < columnCount; j++) {\n\t\t\t\t\t\t\t\tif (rowChildren[j].dataset.xIndex == j) {\n\t\t\t\t\t\t\t\t\tconst tdNew = rowChildren[j].cloneNode(true);\n\t\t\t\t\t\t\t\t\tif (tableRows[i].style.backgroundColor) {\n\t\t\t\t\t\t\t\t\t\ttdNew.style.backgroundColor = tableRows[i].style.backgroundColor;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tnewTableArray[j].push(tdNew);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewTableArray[j].push('');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst table = document.createElement('table');\n\t\t\t\t\t\ttable.classList.add('wptb-preview-table-mobile');\n\t\t\t\t\t\tconst tableStyle = wptbPreviewTable[0].getAttribute('style');\n\t\t\t\t\t\ttable.setAttribute('style', tableStyle);\n\t\t\t\t\t\ttable.style.display = 'table';\n\t\t\t\t\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\t\t\t\t\tconst row = table.insertRow(-1);\n\t\t\t\t\t\t\trow.classList.add('wptb-row');\n\n\t\t\t\t\t\t\tfor (let j = 0; j < tableRows.length; j++) {\n\t\t\t\t\t\t\t\tif (newTableArray[i][j]) {\n\t\t\t\t\t\t\t\t\trow.appendChild(newTableArray[i][j]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twptbTableContainer[0].appendChild(table);\n\t\t\t\t\t} else {\n\t\t\t\t\t\twptbPreviewTableMobile[0].style.display = 'table';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twptbPreviewTable[0].style.display = 'table';\n\t\t\t\t\tif (wptbPreviewTableMobile.length > 0) {\n\t\t\t\t\t\twptbPreviewTableMobile[0].style.display = 'none';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twptb_tdDefaultWidth();\n\t\twptb_tableReconstraction();\n\n\t\t// when window resize call wpcd_archiveSectionSmall and wptb_tableGenerateMobile\n\t\t$(window).resize(function () {\n\t\t\twptb_tdDefaultWidth();\n\t\t\twptb_tableReconstraction();\n\t\t});\n\n\t\tfunction wptb_tableReconstraction() {\n\t\t\tfor (let i = 0; i < tableContainers.length; i++) {\n\t\t\t\tconst tableContainer = tableContainers[i];\n\n\t\t\t\t// Set default indicator of creating a new table in true\n\t\t\t\tlet createNewTableIndic = true;\n\n\t\t\t\tlet previewTable = tableContainer.getElementsByClassName('wptb-preview-table');\n\t\t\t\tlet tableContainerMatrix = tableContainer.getElementsByClassName('wptb-table-container-matrix');\n\n\t\t\t\tif (previewTable.length > 0 && tableContainerMatrix.length > 0) {\n\t\t\t\t\tpreviewTable = previewTable[0];\n\t\t\t\t\ttableContainerMatrix = tableContainerMatrix[0];\n\t\t\t\t\tpreviewTable.style.display = 'table';\n\n\t\t\t\t\tif (previewTable.dataset.wptbTableAlignment) {\n\t\t\t\t\t\tconst { wptbTableAlignment } = previewTable.dataset;\n\n\t\t\t\t\t\tconst wptbTableContainerWidth = tableContainer.offsetWidth;\n\t\t\t\t\t\tif (wptbTableContainerWidth < previewTable.offsetWidth) {\n\t\t\t\t\t\t\tpreviewTable.style.float = null;\n\t\t\t\t\t\t} else if (wptbTableAlignment == 'center') {\n\t\t\t\t\t\t\tpreviewTable.style.float = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreviewTable.style.float = wptbTableAlignment;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (wptbTableAlignment == 'center') {\n\t\t\t\t\t\t\ttableContainer.style.float = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttableContainer.style.float = wptbTableAlignment;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// check data parametrs reconstraction and wptbAdaptiveTable if they are both equal 1 then continue\n\t\t\t\t\tif (previewTable.dataset.reconstraction == 1 && previewTable.dataset.wptbAdaptiveTable == 1) {\n\t\t\t\t\t\t// get widths for wptb-table-container and wptb-preview-table\n\t\t\t\t\t\tconst tableContainerWidth = tableContainer.offsetWidth;\n\t\t\t\t\t\tconst previewTableWidth = previewTable.offsetWidth;\n\n\t\t\t\t\t\t// get count of table columns\n\t\t\t\t\t\tlet tableColumns;\n\t\t\t\t\t\tconst previewTableRows = previewTable.rows;\n\t\t\t\t\t\tif (previewTableRows.length > 0) {\n\t\t\t\t\t\t\tconst firstRow = previewTableRows[0];\n\t\t\t\t\t\t\tconst tdsRow = firstRow.querySelectorAll('td');\n\n\t\t\t\t\t\t\ttableColumns = tdsRow.length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// check the top line if it is presented as a title\n\t\t\t\t\t\tconst tablePreviewHeadIndic = previewTable.classList.contains('wptb-table-preview-head');\n\n\t\t\t\t\t\t// check conditions: if table top row is as \"header\" - table must have more that two columns,\n\t\t\t\t\t\t// otherwise table must have more taht one columns\n\t\t\t\t\t\tlet tableReconstructed = false;\n\t\t\t\t\t\tlet wptbPreviewTableMobile;\n\t\t\t\t\t\tif ((!tablePreviewHeadIndic || tableColumns > 2) && tableColumns > 1) {\n\t\t\t\t\t\t\t// if width of wptb-table-container less then width of wptb-preview-table -\n\t\t\t\t\t\t\t// continue the way creation new mobile table\n\t\t\t\t\t\t\tif (tableContainerWidth < previewTableWidth) {\n\t\t\t\t\t\t\t\ttableContainer.style.overflow = 'unset';\n\n\t\t\t\t\t\t\t\t// hide wptb-table-container-matrix\n\t\t\t\t\t\t\t\tif (tableContainerMatrix && !tableContainerMatrix.classList.contains('wptb-matrix-hide')) {\n\t\t\t\t\t\t\t\t\ttableContainerMatrix.classList.add('wptb-matrix-hide');\n\t\t\t\t\t\t\t\t\ttableReconstructed = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpreviewTable.classList.add('wptb-mobile-view-active');\n\n\t\t\t\t\t\t\t\tif (previewTable.rows && tableColumns) {\n\t\t\t\t\t\t\t\t\t// we get the estimated cell width\n\t\t\t\t\t\t\t\t\tconst tdWidth = previewTableWidth / tableColumns;\n\n\t\t\t\t\t\t\t\t\t// get the quantity of whole Columns that are can placed in the container\n\t\t\t\t\t\t\t\t\tlet wholeColumnsInContainer = Math.floor(tableContainerWidth / tdWidth);\n\t\t\t\t\t\t\t\t\tif (wholeColumnsInContainer < 1) wholeColumnsInContainer = 1;\n\n\t\t\t\t\t\t\t\t\t// check for the existence of a mobile table\n\t\t\t\t\t\t\t\t\t// if it available, check this table for compliance\n\t\t\t\t\t\t\t\t\t// with our conditions. If it compliance, remain this table\n\t\t\t\t\t\t\t\t\t// and cancel creating a new table ( createNewTableIndic = false ).\n\t\t\t\t\t\t\t\t\tif (tableContainer.getElementsByClassName('wptb-preview-table-mobile').length > 0) {\n\t\t\t\t\t\t\t\t\t\twptbPreviewTableMobile = tableContainer.getElementsByClassName(\n\t\t\t\t\t\t\t\t\t\t\t'wptb-preview-table-mobile'\n\t\t\t\t\t\t\t\t\t\t)[0];\n\t\t\t\t\t\t\t\t\t\twptbPreviewTableMobile.classList.remove('wptb-mobile-hide');\n\t\t\t\t\t\t\t\t\t\tconst dataWholeColumnInContainer =\n\t\t\t\t\t\t\t\t\t\t\twptbPreviewTableMobile.dataset.wholeColumnsInContainer;\n\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tdataWholeColumnInContainer == wholeColumnsInContainer &&\n\t\t\t\t\t\t\t\t\t\t\tpreviewTable.classList.contains('wptb-table-preview-head')\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tcreateNewTableIndic = false;\n\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\tdataWholeColumnInContainer == wholeColumnsInContainer &&\n\t\t\t\t\t\t\t\t\t\t\t!previewTable.classList.contains('wptb-table-preview-head') &&\n\t\t\t\t\t\t\t\t\t\t\t(tableContainerWidth > 480 || wptbPreviewTableMobile.column == 1)\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tcreateNewTableIndic = false;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\twptbPreviewTableMobile.parentNode.removeChild(wptbPreviewTableMobile);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t// if indicator of creating of table \"true\" - continue\n\t\t\t\t\t\t\t\t\tif (createNewTableIndic) {\n\t\t\t\t\t\t\t\t\t\t// create new table for mobile devices\n\t\t\t\t\t\t\t\t\t\tconst newTable = document.createElement('table');\n\t\t\t\t\t\t\t\t\t\tconst newTableTbody = document.createElement('tbody');\n\t\t\t\t\t\t\t\t\t\tnewTable.appendChild(newTableTbody);\n\n\t\t\t\t\t\t\t\t\t\t// add css class for new mobile table\n\t\t\t\t\t\t\t\t\t\tnewTable.classList.add('wptb-preview-table-mobile');\n\t\t\t\t\t\t\t\t\t\tconst infArr = previewTable.className.match(/wptb-element-main(.+)-(\\d+)/i);\n\t\t\t\t\t\t\t\t\t\tif (infArr && Array.isArray(infArr)) {\n\t\t\t\t\t\t\t\t\t\t\tnewTable.classList.add(infArr[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// get number of rows for wptb-preview-table\n\t\t\t\t\t\t\t\t\t\tconst tableRows = previewTable.rows.length;\n\n\t\t\t\t\t\t\t\t\t\t// In this variable must have quantity columns of the last section of the new table\n\t\t\t\t\t\t\t\t\t\tlet newTableLastSectionFilledColumns;\n\n\t\t\t\t\t\t\t\t\t\t// set valuesIsSaved in 'false'\n\t\t\t\t\t\t\t\t\t\t// if the parameters newTableLastSectionFilledColumns get\n\t\t\t\t\t\t\t\t\t\t// optimal values, valuesIsSaved must have value 'true'\n\t\t\t\t\t\t\t\t\t\tlet valuesIsSaved = false;\n\n\t\t\t\t\t\t\t\t\t\t// check if top row is as \"header\"\n\t\t\t\t\t\t\t\t\t\tif (previewTable.classList.contains('wptb-table-preview-head')) {\n\t\t\t\t\t\t\t\t\t\t\t// quantity rows without top row\n\t\t\t\t\t\t\t\t\t\t\tconst tableRowsWithoutHeader = tableRows - 1;\n\n\t\t\t\t\t\t\t\t\t\t\t// this variable will have quantity columns in new mobile table\n\t\t\t\t\t\t\t\t\t\t\tlet newTableColumnsWithoutLeftHeader;\n\n\t\t\t\t\t\t\t\t\t\t\t// if quantity of rows in desktop table more than\n\t\t\t\t\t\t\t\t\t\t\t// quantity whole columns which are can placed in the container,\n\t\t\t\t\t\t\t\t\t\t\t// execute \"loop for\"\n\t\t\t\t\t\t\t\t\t\t\tif (tableRows > wholeColumnsInContainer) {\n\t\t\t\t\t\t\t\t\t\t\t\t// this code, сyclical reduces the number of columns in the new table,\n\t\t\t\t\t\t\t\t\t\t\t\t// until the optimal view is obtained so that the last block of the new table\n\t\t\t\t\t\t\t\t\t\t\t\t// has more than half the columns compared to the previous blocks\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < tableRowsWithoutHeader; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader = wholeColumnsInContainer - 1 - i;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (newTableColumnsWithoutLeftHeader <= 0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader = 1;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttableRowsWithoutHeader % newTableColumnsWithoutLeftHeader;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (newTableLastSectionFilledColumns == 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader <= 6 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2 * newTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader > 6 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader <= 12 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1.8 * newTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader > 12 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader <= 18 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1.6 * newTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns <\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumnsWithoutLeftHeader = tableRowsWithoutHeader;\n\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns = 0;\n\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// if all necessary values ​​are available ( ), execute\n\t\t\t\t\t\t\t\t\t\t\tif (valuesIsSaved) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet countRows;\n\t\t\t\t\t\t\t\t\t\t\t\tif (newTableColumnsWithoutLeftHeader > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcountRows =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttableColumns *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.ceil(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttableRowsWithoutHeader / newTableColumnsWithoutLeftHeader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcountRows = tableColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst sectionNumberLast = Math.floor((countRows - 1) / tableColumns);\n\t\t\t\t\t\t\t\t\t\t\t\tlet tdStyles;\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < countRows; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst sectionNumber = Math.floor(j / tableColumns);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst tr = document.createElement('tr');\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst tdLeftHeader = previewTable.rows[0].children[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tj - sectionNumber * tableColumns\n\t\t\t\t\t\t\t\t\t\t\t\t\t].cloneNode(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet td;\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowFirstStyles = window.getComputedStyle(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreviewTable.rows[0]\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tdLeftHeader.style.backgroundColor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.backgroundColor =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trowFirstStyles.backgroundColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.width = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.height = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//tdLeftHeader.removeAttribute('data-x-index');\n\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.removeAttribute('data-wptb-css-td-auto-width');\n\t\t\t\t\t\t\t\t\t\t\t\t\ttdStyles = window.getComputedStyle(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreviewTable.querySelector('td')\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (tdStyles.borderTopColor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.borderColor = tdStyles.borderTopColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.borderColor = tdStyles.borderBottomColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (sectionNumber > 0 && j % tableColumns == 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttdLeftHeader.style.borderTopWidth = '5px';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttr.appendChild(tdLeftHeader);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet k = newTableColumnsWithoutLeftHeader * sectionNumber + 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tk < newTableColumnsWithoutLeftHeader * (sectionNumber + 1) + 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tk++\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (k < previewTable.rows.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd = previewTable.rows[k].children[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj - sectionNumber * tableColumns\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t].cloneNode(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowKStyles = window.getComputedStyle(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreviewTable.rows[k]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!td.style.backgroundColor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.backgroundColor = rowKStyles.backgroundColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.width = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.height = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//td.removeAttribute('data-x-index');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.removeAttribute('data-wptb-css-td-auto-width');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd = document.createElement('td');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.borderWidth = '0px';\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.background = '#fff';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttdStyles = window.getComputedStyle(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreviewTable.querySelector('td')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (tdStyles.borderTopColor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.borderColor = tdStyles.borderTopColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.borderColor = tdStyles.borderBottomColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (sectionNumber > 0 && j % tableColumns == 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttd.style.borderTopWidth = '5px';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttr.appendChild(td);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableTbody.appendChild(tr);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tlet newTableColumns;\n\t\t\t\t\t\t\t\t\t\t\tif (tableContainerWidth > 480) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < tableColumns; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns = wholeColumnsInContainer - i;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (newTableColumns == 0) newTableColumns = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns = tableColumns % newTableColumns;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (newTableLastSectionFilledColumns == 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns <= 6 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns - 2 * newTableLastSectionFilledColumns <= 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns < newTableColumns\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns > 6 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns <= 12 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns - 1.8 * newTableLastSectionFilledColumns <= 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns < newTableColumns\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns > 12 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns <= 18 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns - 1.6 * newTableLastSectionFilledColumns <= 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns < newTableColumns\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tnewTableColumns = 1;\n\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns = 0;\n\t\t\t\t\t\t\t\t\t\t\t\tvaluesIsSaved = true;\n\t\t\t\t\t\t\t\t\t\t\t\tnewTable.column = 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tconst increaseRatioRows = Math.ceil(tableColumns / newTableColumns);\n\n\t\t\t\t\t\t\t\t\t\t\tconst newTableRows = increaseRatioRows * tableRows;\n\n\t\t\t\t\t\t\t\t\t\t\tif (valuesIsSaved) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < newTableRows; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst sectionNumber = Math.floor(i / tableRows);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst tr = document.createElement('tr');\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet jMax;\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet jStart;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsectionNumber != increaseRatioRows - 1 ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableLastSectionFilledColumns == 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjStart = sectionNumber * newTableColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjMax = newTableColumns * (1 + sectionNumber);\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjStart = tableColumns - newTableLastSectionFilledColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjMax = tableColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst row = previewTable.rows[i - sectionNumber * tableRows];\n\t\t\t\t\t\t\t\t\t\t\t\t\ttr.classList = row.classList;\n\t\t\t\t\t\t\t\t\t\t\t\t\ttr.style.backgroundColor = row.style.backgroundColor;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = jStart; j < jMax; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newTd = row.children[j].cloneNode(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!newTd.style.backgroundColor) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowStyles = window.getComputedStyle(row);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTd.style.backgroundColor = rowStyles.backgroundColor;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTd.style.width = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTd.style.height = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//newTd.removeAttribute('data-x-index');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTd.removeAttribute('data-wptb-css-td-auto-width');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttr.appendChild(newTd);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTableTbody.appendChild(tr);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnewTable.dataset.wholeColumnsInContainer = wholeColumnsInContainer;\n\t\t\t\t\t\t\t\t\t\tconst images = newTable.querySelectorAll('[srcset]');\n\t\t\t\t\t\t\t\t\t\tif (images.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\timages[i].removeAttribute('srcset');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\twptbPreviewTableMobile = newTable;\n\t\t\t\t\t\t\t\t\t\ttableContainer.appendChild(newTable);\n\t\t\t\t\t\t\t\t\t\ttableReconstructed = true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (tableContainerMatrix && tableContainerMatrix.classList.contains('wptb-matrix-hide')) {\n\t\t\t\t\t\t\t\t\ttableContainerMatrix.classList.remove('wptb-matrix-hide');\n\t\t\t\t\t\t\t\t\ttableReconstructed = true;\n\t\t\t\t\t\t\t\t\tpreviewTable.classList.remove('wptb-mobile-view-active');\n\t\t\t\t\t\t\t\t\twptbPreviewTableMobile = tableContainer.querySelector('.wptb-preview-table-mobile');\n\t\t\t\t\t\t\t\t\tif (wptbPreviewTableMobile) {\n\t\t\t\t\t\t\t\t\t\ttableContainer\n\t\t\t\t\t\t\t\t\t\t\t.getElementsByClassName('wptb-preview-table-mobile')[0]\n\t\t\t\t\t\t\t\t\t\t\t.classList.add('wptb-mobile-hide');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttableContainer.style.overflow = 'auto';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpreviewTable.style.minWidth = 'auto';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tWPTB_RecalculateIndexes(previewTable);\n\n\t\t\t\t\t\tif(tableReconstructed) {\n\t\t\t\t\t\t\tWPTB_RecalculateIndexes(wptbPreviewTableMobile);\n\t\t\t\t\t\t\tconst tabEvent = new CustomEvent('table:rebuilt', { detail: true, bubbles: true });\n\t\t\t\t\t\t\tpreviewTable.dispatchEvent(tabEvent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction wptb_tdDefaultWidth() {\n\t\t\tconst wptbTableContainers = document.getElementsByClassName('wptb-table-container');\n\t\t\t// let frontendEditLink = document.querySelectorAll( '.wptb-frontend-table-edit-link' );\n\t\t\tfor (let i = 0; i < wptbTableContainers.length; i++) {\n\t\t\t\tconst wptbTableContainer = wptbTableContainers[i];\n\n\t\t\t\twptbTableContainer.classList.add(`wptb-table-container-${i}`);\n\n\t\t\t\tlet table = wptbTableContainer.getElementsByClassName('wptb-preview-table');\n\t\t\t\tif (table.length > 0) {\n\t\t\t\t\ttable = table[0];\n\n\t\t\t\t\tif (table.dataset.wptbTableContainerMaxWidth) {\n\t\t\t\t\t\twptbTableContainer.style.maxWidth = `${table.dataset.wptbTableContainerMaxWidth}px`;\n\t\t\t\t\t}\n\t\t\t\t\ttable.classList.remove('wptb-table-preview-static-indic');\n\n\t\t\t\t\ttable.mergingСellsHorizontally = false;\n\t\t\t\t\tconst tds = table.querySelectorAll('td');\n\t\t\t\t\tfor (let j = 0; j < tds.length; j++) {\n\t\t\t\t\t\tif (tds[j].colSpan > 1) {\n\t\t\t\t\t\t\ttable.mergingСellsHorizontally = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst wptbTableContainerWidth = wptbTableContainer.offsetWidth;\n\n\t\t\t\t\tconst td = table.querySelector('td');\n\t\t\t\t\tconst tdStyleObj = window.getComputedStyle(td, null);\n\t\t\t\t\tconst tdBorderLeftWidth = tdStyleObj.getPropertyValue('border-left-width');\n\t\t\t\t\tconst tdBorderRightWidth = tdStyleObj.getPropertyValue('border-right-width');\n\t\t\t\t\tconst tdPaddingLeftWidth = tdStyleObj.getPropertyValue('padding-left');\n\t\t\t\t\tconst tdPaddingRightWidth = tdStyleObj.getPropertyValue('padding-left');\n\t\t\t\t\tconst tdPaddingCommon = parseFloat(tdPaddingLeftWidth, 10) + parseFloat(tdPaddingRightWidth, 10);\n\t\t\t\t\tconst tableTdBorderCommonWidth =\n\t\t\t\t\t\tparseFloat(tdBorderLeftWidth, 10) + parseFloat(tdBorderRightWidth, 10);\n\t\t\t\t\tconst { wptbTableTdsSumMaxWidth } = table.dataset;\n\t\t\t\t\tconst { wptbFixedWidthSize } = table.dataset;\n\t\t\t\t\tconst { wptbCellsWidthAutoCount } = table.dataset;\n\t\t\t\t\tlet styleElementCreate = false;\n\t\t\t\t\tlet tableTdWidthAuto;\n\t\t\t\t\tif (wptbTableTdsSumMaxWidth < wptbTableContainerWidth) {\n\t\t\t\t\t\tif (wptbCellsWidthAutoCount) {\n\t\t\t\t\t\t\ttable.style.minWidth = '100%';\n\n\t\t\t\t\t\t\t// if( frontendEditLink && frontendEditLink[i] ) {\n\t\t\t\t\t\t\t// frontendEditLink[i].style.minWidth = wptbTableTdsSumMaxWidth + 'px';\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\tif (table.mergingСellsHorizontally) {\n\t\t\t\t\t\t\t\ttable.style.width = 'auto';\n\t\t\t\t\t\t\t\tconst tableTdsWidthAutoCommon = wptbTableContainerWidth - wptbFixedWidthSize;\n\t\t\t\t\t\t\t\ttableTdWidthAuto = tableTdsWidthAutoCommon / wptbCellsWidthAutoCount;\n\t\t\t\t\t\t\t\ttableTdWidthAuto = tableTdWidthAuto - tdPaddingCommon - tableTdBorderCommonWidth;\n\t\t\t\t\t\t\t\tstyleElementCreate = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttable.style.width = '100%';\n\n\t\t\t\t\t\t\t\t// if( frontendEditLink && frontendEditLink[i] ) {\n\t\t\t\t\t\t\t\t// frontendEditLink[i].style.width = '100%';\n\t\t\t\t\t\t\t\t// frontendEditLink[i].style.maxWidth = '100%';\n\t\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttable.style.width = 'auto';\n\t\t\t\t\t\t\ttable.style.minWidth = null;\n\t\t\t\t\t\t\ttable.style.maxWidth = `${wptbTableTdsSumMaxWidth}px`;\n\n\t\t\t\t\t\t\t// if( frontendEditLink && frontendEditLink[i] ) {\n\t\t\t\t\t\t\t// frontendEditLink[i].style.width = null;\n\t\t\t\t\t\t\t// frontendEditLink[i].style.minWidth = null;\n\t\t\t\t\t\t\t// frontendEditLink[i].style.maxWidth = wptbTableTdsSumMaxWidth + 'px';\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttable.style.maxWidth = null;\n\t\t\t\t\t\ttable.style.minWidth = `${table.dataset.wptbTableTdsSumMaxWidth}px`;\n\t\t\t\t\t\ttable.style.width = 'auto';\n\t\t\t\t\t\ttableTdWidthAuto = table.dataset.wptbTdWidthAuto ? table.dataset.wptbTdWidthAuto : '100';\n\t\t\t\t\t\tstyleElementCreate = true;\n\n\t\t\t\t\t\t// if( frontendEditLink && frontendEditLink[i] ) {\n\t\t\t\t\t\t// frontendEditLink[i].style.maxWidth = '100%';\n\t\t\t\t\t\t// frontendEditLink[i].style.minWidth = table.dataset.wptbTableTdsSumMaxWidth + 'px';\n\t\t\t\t\t\t// frontendEditLink[i].style.width = null;\n\t\t\t\t\t\t// }\n\t\t\t\t\t}\n\n\t\t\t\t\tconst { head } = document;\n\t\t\t\t\tif (head) {\n\t\t\t\t\t\tconst cssForTdsWidthAutoOld = head.querySelector(`style[data-wptb-td-auto-width-${i}=\"true\"]`);\n\n\t\t\t\t\t\tif (cssForTdsWidthAutoOld) {\n\t\t\t\t\t\t\thead.removeChild(cssForTdsWidthAutoOld);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (styleElementCreate) {\n\t\t\t\t\t\tconst cssForTdsWidthAuto = document.createElement('style');\n\t\t\t\t\t\tcssForTdsWidthAuto.setAttribute(`data-wptb-td-auto-width-${i}`, true);\n\t\t\t\t\t\tcssForTdsWidthAuto.innerHTML = `.wptb-table-container-${i} table td[data-wptb-css-td-auto-width=true]{width:${tableTdWidthAuto}px}`;\n\t\t\t\t\t\tif (head) {\n\t\t\t\t\t\t\thead.appendChild(cssForTdsWidthAuto);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// code for adding of old css styles for correct view\n\t\tconst elements = document.getElementsByClassName('wptb-ph-element');\n\t\tfor (let i = 0; i < elements.length; i++) {\n\t\t\tconst element = elements[i];\n\t\t\tif (element.classList.contains('wptb-list-item-container')) {\n\t\t\t\telement.classList.remove('wptb-list-item-container');\n\t\t\t\telement.classList.add('wptb-list-container');\n\t\t\t}\n\n\t\t\tif (element.classList.contains('wptb-button-container')) {\n\t\t\t\tconst infArr = element.className.match(/wptb-size-([A-Z]+)/i);\n\t\t\t\tif (infArr && Array.isArray(infArr)) {\n\t\t\t\t\tconst wptbSize = infArr[0];\n\t\t\t\t\tconst wptbSizeNew = wptbSize.toLowerCase();\n\n\t\t\t\t\telement.classList.remove(wptbSize);\n\n\t\t\t\t\tconst wptbButtonWrapper = element.querySelector('.wptb-button-wrapper');\n\t\t\t\t\tif (wptbButtonWrapper) {\n\t\t\t\t\t\twptbButtonWrapper.classList.add(wptbSizeNew);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// responsive setup\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tconst responsiveFront = new WPTB_ResponsiveFrontend({\n\t\t\tquery: '.wptb-preview-table',\n\t\t\tbindToResize: true,\n\t\t});\n\n\t\t//sorting table\n\t\tfunction sortingTable() {\n\t\t\tlet tables = document.querySelectorAll('.wptb-preview-table');\n\t\t\tfor (let i = 0; i < tables.length; i++) {\n\t\t\t\tlet sortableTable = new WPTB_SortableTable({table: tables[i]});\n\t\t\t\tsortableTable.sortableTableInitialization(responsiveFront);\n\t\t\t}\n\t\t}\n\t\tsortingTable();\n\t\tresponsiveFront.rebuildTables();\n\n\t});\n})(jQuery);\n"]}