���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /home/rickpfrv/drive.rickard.co/customizablesMYs/plugins/csv_editor/jspreadsheet/index.min.js
���ѧ٧ѧ�
var jSuites;jSuites||"function"!=typeof require||(jSuites=require("jsuites"),require("jsuites/dist/jsuites.css")),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.jspreadsheet=e.jexcel=t()}(this,function(){"use strict";var Version=(d={title:"Jspreadsheet",version:"4.7.1",type:"CE",host:"https://bossanova.uk/jspreadsheet",license:"MIT",print:function(){return[this.title+" "+this.type+" "+this.version,this.host,this.license].join("\r\n")}},function(){return d}),d,jexcel=function(el,options){var obj={options:{}};if(!(el instanceof Element||el instanceof HTMLDocument))return console.error("Jspreadsheet: el is not a valid DOM element"),!1;if("TABLE"==el.tagName){if(!(options=jexcel.createFromTable(el,options)))return console.error("Jspreadsheet: el is not a valid DOM element"),!1;var div=document.createElement("div");el.parentNode.insertBefore(div,el),el.remove(),el=div}var defaults={url:null,method:"GET",requestVariables:null,data:null,sorting:null,copyCompatibility:!1,root:null,rows:[],columns:[],colHeaders:[],colWidths:[],colAlignments:[],nestedHeaders:null,defaultColWidth:50,defaultColAlign:"center",minSpareRows:0,minSpareCols:0,minDimensions:[0,0],allowExport:!0,includeHeadersOnDownload:!1,includeHeadersOnCopy:!1,columnSorting:!0,columnDrag:!1,columnResize:!0,rowResize:!1,rowDrag:!0,editable:!0,allowInsertRow:!0,allowManualInsertRow:!0,allowInsertColumn:!0,allowManualInsertColumn:!0,allowDeleteRow:!0,allowDeletingAllRows:!1,allowDeleteColumn:!0,allowRenameColumn:!0,allowComments:!1,wordWrap:!1,imageOptions:null,csv:null,csvFileName:"jspreadsheet",csvHeaders:!0,csvDelimiter:",",parseTableFirstRowAsHeader:!1,parseTableAutoCellType:!1,selectionCopy:!0,mergeCells:{},toolbar:null,search:!1,pagination:!1,paginationOptions:null,fullscreen:!1,lazyLoading:!1,loadingSpin:!1,tableOverflow:!1,tableHeight:"300px",tableWidth:null,textOverflow:!1,meta:null,style:null,classes:null,parseFormulas:!0,autoIncrement:!0,autoCasting:!0,secureFormulas:!0,stripHTML:!0,stripHTMLOnCopy:!1,filters:!1,footers:null,onundo:null,onredo:null,onload:null,onchange:null,oncomments:null,onbeforechange:null,onafterchanges:null,onbeforeinsertrow:null,oninsertrow:null,onbeforeinsertcolumn:null,oninsertcolumn:null,onbeforedeleterow:null,ondeleterow:null,onbeforedeletecolumn:null,ondeletecolumn:null,onmoverow:null,onmovecolumn:null,onresizerow:null,onresizecolumn:null,onsort:null,onselection:null,oncopy:null,onpaste:null,onbeforepaste:null,onmerge:null,onfocus:null,onblur:null,onchangeheader:null,oncreateeditor:null,oneditionstart:null,oneditionend:null,onchangestyle:null,onchangemeta:null,onchangepage:null,onbeforesave:null,onsave:null,onevent:null,persistance:!1,updateTable:null,detachForUpdates:!1,freezeColumns:null,text:{noRecordsFound:"No records found",showingPage:"Showing page {0} of {1} entries",show:"Show ",search:"Search",entries:" entries",columnName:"Column name",insertANewColumnBefore:"Insert a new column before",insertANewColumnAfter:"Insert a new column after",deleteSelectedColumns:"Delete selected columns",renameThisColumn:"Rename this column",orderAscending:"Order ascending",orderDescending:"Order descending",insertANewRowBefore:"Insert a new row before",insertANewRowAfter:"Insert a new row after",deleteSelectedRows:"Delete selected rows",editComments:"Edit comments",addComments:"Add comments",comments:"Comments",clearComments:"Clear comments",copy:"Copy...",paste:"Paste...",saveAs:"Save as...",about:"About",areYouSureToDeleteTheSelectedRows:"Are you sure to delete the selected rows?",areYouSureToDeleteTheSelectedColumns:"Are you sure to delete the selected columns?",thisActionWillDestroyAnyExistingMergedCellsAreYouSure:"This action will destroy any existing merged cells. Are you sure?",thisActionWillClearYourSearchResultsAreYouSure:"This action will clear your search results. Are you sure?",thereIsAConflictWithAnotherMergedCell:"There is a conflict with another merged cell",invalidMergeProperties:"Invalid merged properties",cellAlreadyMerged:"Cell already merged",noCellsSelected:"No cells selected"},about:!1},property;for(property in defaults)if(options&&options.hasOwnProperty(property))if("text"===property)for(var textKey in obj.options[property]=defaults[property],options[property])options[property].hasOwnProperty(textKey)&&(obj.options[property][textKey]=options[property][textKey]);else obj.options[property]=options[property];else obj.options[property]=defaults[property];obj.el=el,obj.corner=null,obj.contextMenu=null,obj.textarea=null,obj.ads=null,obj.content=null,obj.table=null,obj.thead=null,obj.tbody=null,obj.rows=[],obj.results=null,obj.searchInput=null,obj.toolbar=null,obj.pagination=null,obj.pageNumber=null,obj.headerContainer=null,obj.colgroupContainer=null,obj.headers=[],obj.records=[],obj.history=[],obj.formula=[],obj.colgroup=[],obj.selection=[],obj.highlighted=[],obj.selectedCell=null,obj.selectedContainer=null,obj.style=[],obj.data=null,obj.filter=null,obj.filters=[],obj.cursor=null,obj.historyIndex=-1,obj.ignoreEvents=!1,obj.ignoreHistory=!1,obj.edition=null,obj.hashString=null,obj.resizing=null,obj.dragging=null,1==obj.options.lazyLoading&&0==obj.options.tableOverflow&&0==obj.options.fullscreen&&(console.error("Jspreadsheet: The lazyloading only works when tableOverflow = yes or fullscreen = yes"),obj.options.lazyLoading=!1),obj.fullscreen=function(e){null==e&&(e=!obj.options.fullscreen),obj.options.fullscreen!=e&&(1==(obj.options.fullscreen=e)?el.classList.add("fullscreen"):el.classList.remove("fullscreen"))},obj.dispatch=function(e){var t,o;return obj.ignoreEvents||("function"==typeof obj.options.onevent&&(t=obj.options.onevent.apply(this,arguments)),"function"==typeof obj.options[e]&&(t=obj.options[e].apply(this,Array.prototype.slice.call(arguments,1)))),"onafterchanges"==e&&obj.options.persistance&&(o=1==obj.options.persistance?obj.options.url:obj.options.persistance,e=obj.prepareJson(arguments[2]),obj.save(o,e)),t},obj.prepareTable=function(){var e,t=obj.options.columns.length;!obj.options.data||void 0===obj.options.data[0]||(e=Object.keys(obj.options.data[0])).length>t&&(t=e.length),obj.options.minDimensions[0]>t&&(t=obj.options.minDimensions[0]);for(var o=[],r=0;r<t;r++)obj.options.colHeaders[r]||(obj.options.colHeaders[r]=""),obj.options.colWidths[r]||(obj.options.colWidths[r]=obj.options.defaultColWidth),obj.options.colAlignments[r]||(obj.options.colAlignments[r]=obj.options.defaultColAlign),obj.options.columns[r]?obj.options.columns[r].type||(obj.options.columns[r].type="text"):obj.options.columns[r]={type:"text"},obj.options.columns[r].name||(obj.options.columns[r].name=e&&e[r]?e[r]:r),obj.options.columns[r].source||(obj.options.columns[r].source=[]),obj.options.columns[r].options||(obj.options.columns[r].options=[]),obj.options.columns[r].editor||(obj.options.columns[r].editor=null),obj.options.columns[r].allowEmpty||(obj.options.columns[r].allowEmpty=!1),obj.options.columns[r].title||(obj.options.columns[r].title=obj.options.colHeaders[r]||""),obj.options.columns[r].width||(obj.options.columns[r].width=obj.options.colWidths[r]||obj.options.defaultColWidth),obj.options.columns[r].align||(obj.options.columns[r].align=obj.options.colAlignments[r]||"center"),"autocomplete"==obj.options.columns[r].type||"dropdown"==obj.options.columns[r].type?obj.options.columns[r].url&&o.push({url:obj.options.columns[r].url,index:r,method:"GET",dataType:"json",success:function(e){for(var t=0;t<e.length;t++)obj.options.columns[this.index].source.push(e[t])}}):"calendar"==obj.options.columns[r].type&&(obj.options.columns[r].options.format||(obj.options.columns[r].options.format="DD/MM/YYYY"));o.length?jSuites.ajax(o,function(){obj.createTable()}):obj.createTable()},obj.createTable=function(){obj.table=document.createElement("table"),obj.thead=document.createElement("thead"),obj.tbody=document.createElement("tbody"),obj.headers=[],obj.colgroup=[],obj.content=document.createElement("div"),obj.content.classList.add("jexcel_content"),obj.content.onscroll=function(e){obj.scrollControls(e)},obj.content.onwheel=function(e){obj.wheelControls(e)},obj.toolbar=document.createElement("div"),obj.toolbar.classList.add("jexcel_toolbar");var e=document.createElement("div"),t=document.createTextNode(obj.options.text.search+": ");obj.searchInput=document.createElement("input"),obj.searchInput.classList.add("jexcel_search"),e.appendChild(t),e.appendChild(obj.searchInput),obj.searchInput.onfocus=function(){obj.resetSelection()};var o=document.createElement("div");if(0<obj.options.pagination&&obj.options.paginationOptions&&0<obj.options.paginationOptions.length){obj.paginationDropdown=document.createElement("select"),obj.paginationDropdown.classList.add("jexcel_pagination_dropdown"),obj.paginationDropdown.onchange=function(){obj.options.pagination=parseInt(this.value),obj.page(0)};for(var r=0;r<obj.options.paginationOptions.length;r++){var n=document.createElement("option");n.value=obj.options.paginationOptions[r],n.innerHTML=obj.options.paginationOptions[r],obj.paginationDropdown.appendChild(n)}obj.paginationDropdown.value=obj.options.pagination,o.appendChild(document.createTextNode(obj.options.text.show)),o.appendChild(obj.paginationDropdown),o.appendChild(document.createTextNode(obj.options.text.entries))}t=document.createElement("div");t.classList.add("jexcel_filter"),t.appendChild(o),t.appendChild(e),obj.colgroupContainer=document.createElement("colgroup");o=document.createElement("col");if(o.setAttribute("width","50"),obj.colgroupContainer.appendChild(o),obj.options.nestedHeaders&&0<obj.options.nestedHeaders.length)if(obj.options.nestedHeaders[0]&&obj.options.nestedHeaders[0][0])for(var l=0;l<obj.options.nestedHeaders.length;l++)obj.thead.appendChild(obj.createNestedHeader(obj.options.nestedHeaders[l]));else obj.thead.appendChild(obj.createNestedHeader(obj.options.nestedHeaders));obj.headerContainer=document.createElement("tr"),(o=document.createElement("td")).classList.add("jexcel_selectall"),obj.headerContainer.appendChild(o);for(r=0;r<obj.options.columns.length;r++)obj.createCellHeader(r),obj.headerContainer.appendChild(obj.headers[r]),obj.colgroupContainer.appendChild(obj.colgroup[r]);if(obj.thead.appendChild(obj.headerContainer),1==obj.options.filters){obj.filter=document.createElement("tr");var s=document.createElement("td");obj.filter.appendChild(s);for(r=0;r<obj.options.columns.length;r++)(s=document.createElement("td")).innerHTML=" ",s.setAttribute("data-x",r),s.className="jexcel_column_filter","hidden"==obj.options.columns[r].type&&(s.style.display="none"),obj.filter.appendChild(s);obj.thead.appendChild(obj.filter)}obj.table=document.createElement("table"),obj.table.classList.add("jexcel"),obj.table.setAttribute("cellpadding","0"),obj.table.setAttribute("cellspacing","0"),obj.table.setAttribute("unselectable","yes"),obj.table.appendChild(obj.colgroupContainer),obj.table.appendChild(obj.thead),obj.table.appendChild(obj.tbody),obj.options.textOverflow||obj.table.classList.add("jexcel_overflow"),obj.corner=document.createElement("div"),obj.corner.className="jexcel_corner",obj.corner.setAttribute("unselectable","on"),obj.corner.setAttribute("onselectstart","return false"),0==obj.options.selectionCopy&&(obj.corner.style.display="none"),obj.textarea=document.createElement("textarea"),obj.textarea.className="jexcel_textarea",obj.textarea.id="jexcel_textarea",obj.textarea.tabIndex="-1",obj.contextMenu=document.createElement("div"),obj.contextMenu.className="jexcel_contextmenu",jSuites.contextmenu(obj.contextMenu,{onclick:function(){obj.contextMenu.contextmenu.close(!1)}});var i,a=document.createElement("a");a.setAttribute("href","https://bossanova.uk/jspreadsheet/"),obj.ads=document.createElement("div"),obj.ads.className="jexcel_about";try{"undefined"==typeof sessionStorage||sessionStorage.getItem("jexcel")||(sessionStorage.setItem("jexcel",!0),(i=document.createElement("img")).src="//bossanova.uk/jspreadsheet/logo.png",a.appendChild(i))}catch(e){}e=document.createElement("span");e.innerHTML="Jspreadsheet CE",a.appendChild(e),obj.ads.appendChild(a),document.createElement("div").classList.add("jexcel_table"),obj.pagination=document.createElement("div"),obj.pagination.classList.add("jexcel_pagination");o=document.createElement("div"),e=document.createElement("div");if(obj.pagination.appendChild(o),obj.pagination.appendChild(e),obj.options.pagination||(obj.pagination.style.display="none"),1==obj.options.search&&el.appendChild(t),obj.content.appendChild(obj.table),obj.content.appendChild(obj.corner),obj.content.appendChild(obj.textarea),el.appendChild(obj.toolbar),el.appendChild(obj.content),el.appendChild(obj.pagination),el.appendChild(obj.contextMenu),el.appendChild(obj.ads),el.classList.add("jexcel_container"),obj.options.toolbar&&obj.options.toolbar.length&&obj.createToolbar(),1==obj.options.fullscreen?el.classList.add("fullscreen"):1==obj.options.tableOverflow&&(obj.options.tableHeight&&(obj.content.style["overflow-y"]="auto",obj.content.style["box-shadow"]="rgb(221 221 221) 2px 2px 5px 0.1px",obj.content.style.maxHeight=obj.options.tableHeight),obj.options.tableWidth&&(obj.content.style["overflow-x"]="auto",obj.content.style.width=obj.options.tableWidth)),1!=obj.options.tableOverflow&&obj.options.toolbar&&el.classList.add("with-toolbar"),1==obj.options.columnDrag&&obj.thead.classList.add("draggable"),1==obj.options.columnResize&&obj.thead.classList.add("resizable"),1==obj.options.rowDrag&&obj.tbody.classList.add("draggable"),1==obj.options.rowResize&&obj.tbody.classList.add("resizable"),obj.setData(),obj.options.style&&obj.setStyle(obj.options.style,null,null,1,1),obj.options.classes)for(var u=Object.keys(obj.options.classes),r=0;r<u.length;r++){var c=jexcel.getIdFromColumnName(u[r],!0);obj.records[c[1]][c[0]].classList.add(obj.options.classes[u[r]])}},obj.refresh=function(){obj.options.url?(1==obj.options.loadingSpin&&jSuites.loading.show(),jSuites.ajax({url:obj.options.url,method:obj.options.method,data:obj.options.requestVariables,dataType:"json",success:function(e){obj.options.data=e.data||e,obj.setData(),1==obj.options.loadingSpin&&jSuites.loading.hide()}})):obj.setData()},obj.setData=function(e){if(e&&("string"==typeof e&&(e=JSON.parse(e)),obj.options.data=e),obj.options.data||(obj.options.data=[]),obj.options.data&&obj.options.data[0]&&!Array.isArray(obj.options.data[0])){for(var e=[],t=0;t<obj.options.data.length;t++){for(var o=[],r=0;r<obj.options.columns.length;r++)o[r]=obj.options.data[t][obj.options.columns[r].name];e.push(o)}obj.options.data=e}var n,l,t=0,r=0,s=obj.options.columns.length,i=obj.options.data.length,a=obj.options.minDimensions[0],u=obj.options.minDimensions[1],c=s<a?a:s,b=i<u?u:i;for(t=0;t<b;t++)for(r=0;r<c;r++)null==obj.options.data[t]&&(obj.options.data[t]=[]),null==obj.options.data[t][r]&&(obj.options.data[t][r]="");for(obj.rows=[],obj.results=null,obj.records=[],obj.history=[],obj.historyIndex=-1,obj.tbody.innerHTML="",1==obj.options.lazyLoading?(n=0,l=obj.options.data.length<100?obj.options.data.length:100,obj.options.pagination&&(obj.options.pagination=!1,console.error("Jspreadsheet: Pagination will be disable due the lazyLoading"))):obj.options.pagination?(obj.pageNumber||(obj.pageNumber=0),obj.options.pagination,n=obj.options.pagination*obj.pageNumber,l=obj.options.pagination*obj.pageNumber+obj.options.pagination,obj.options.data.length<l&&(l=obj.options.data.length)):(n=0,l=obj.options.data.length),t=0;t<obj.options.data.length;t++){var p=obj.createRow(t,obj.options.data[t]);n<=t&&t<l&&obj.tbody.appendChild(p)}if(1==obj.options.lazyLoading||obj.options.pagination&&obj.updatePagination(),obj.options.mergeCells)for(var d=Object.keys(obj.options.mergeCells),r=0;r<d.length;r++){var j=obj.options.mergeCells[d[r]];obj.setMerge(d[r],j[0],j[1],1)}obj.updateTable(),obj.dispatch("onload",el,obj)},obj.getData=function(e,t){for(var o=[],r=0,n=0,l=1==t||0==obj.options.copyCompatibility,s=obj.options.columns.length,i=obj.options.data.length,a=0;a<i;a++){for(var u=r=0;u<s;u++)e&&!obj.records[a][u].classList.contains("highlight")||(o[n]||(o[n]=[]),o[n][r]=l?obj.options.data[a][u]:obj.records[a][u].innerHTML,r++);0<r&&n++}return o},obj.getJsonRow=function(e){for(var t=obj.options.data[e],o=obj.options.columns.length,r={},n=0;n<o;n++)obj.options.columns[n].name||(obj.options.columns[n].name=n),r[obj.options.columns[n].name]=t[n];return r},obj.getJson=function(e){for(var t=[],o=obj.options.columns.length,r=obj.options.data.length,n=0;n<r;n++){for(var l=null,s=0;s<o;s++)e&&!obj.records[n][s].classList.contains("highlight")||(null==l&&(l={}),obj.options.columns[s].name||(obj.options.columns[s].name=s),l[obj.options.columns[s].name]=obj.options.data[n][s]);null!=l&&t.push(l)}return t},obj.prepareJson=function(e){for(var t=[],o=0;o<e.length;o++){var r=e[o].x,n=e[o].y,r=obj.options.columns[r].name||r;t[n]||(t[n]={row:n,data:{}}),t[n].data[r]=e[o].newValue}return t.filter(function(e){return null!=e})},obj.save=function(e,t){var o=obj.dispatch("onbeforesave",el,obj,t);if(o)t=o;else if(!1===o)return!1;jSuites.ajax({url:e,method:"POST",dataType:"json",data:{data:JSON.stringify(t)},success:function(e){obj.dispatch("onsave",el,obj,t)}})},obj.getRowData=function(e){return obj.options.data[e]},obj.setRowData=function(e,t){for(var o=0;o<obj.headers.length;o++){var r=jexcel.getColumnNameFromId([o,e]);null!=t[o]&&obj.setValue(r,t[o])}},obj.getColumnData=function(e){for(var t=[],o=0;o<obj.options.data.length;o++)t.push(obj.options.data[o][e]);return t},obj.setColumnData=function(e,t){for(var o=0;o<obj.rows.length;o++){var r=jexcel.getColumnNameFromId([e,o]);null!=t[o]&&obj.setValue(r,t[o])}},obj.createRow=function(e,t){obj.records[e]||(obj.records[e]=[]),t=t||obj.options.data[e],obj.rows[e]=document.createElement("tr"),obj.rows[e].setAttribute("data-y",e);var o=null;obj.options.rows[e]&&(obj.options.rows[e].height&&(obj.rows[e].style.height=obj.options.rows[e].height),obj.options.rows[e].title&&(o=obj.options.rows[e].title)),o=o||parseInt(e+1);var r=document.createElement("td");r.innerHTML=o,r.setAttribute("data-y",e),r.className="jexcel_row",obj.rows[e].appendChild(r);for(var n=0;n<obj.options.columns.length;n++)obj.records[e][n]=obj.createCell(n,e,t[n]),obj.rows[e].appendChild(obj.records[e][n]);return obj.rows[e]},obj.parseValue=function(e,t,o){return"="==(""+o).substr(0,1)&&1==obj.options.parseFormulas&&(o=obj.executeFormula(o,e,t)),obj.options.columns[e].mask&&(t=obj.options.columns[e].decimal||".",o=""+jSuites.mask.run(o,obj.options.columns[e].mask,t)),o},obj.createCell=function(e,t,o){var r,n,l=document.createElement("td");l.setAttribute("data-x",e),l.setAttribute("data-y",t),"="!=(""+o).substr(0,1)||1!=obj.options.secureFormulas||(r=secureFormula(o))!=o&&(o=r),obj.options.columns[e].editor?(!1===obj.options.stripHTML||!1===obj.options.columns[e].stripHTML?l.innerHTML=o:l.innerText=o,"function"==typeof obj.options.columns[e].editor.createCell&&(l=obj.options.columns[e].editor.createCell(l))):"hidden"==obj.options.columns[e].type?(l.style.display="none",l.innerText=o):"checkbox"==obj.options.columns[e].type||"radio"==obj.options.columns[e].type?((r=document.createElement("input")).type=obj.options.columns[e].type,r.name="c"+e,r.checked=1==o||1==o||"true"==o,r.onclick=function(){obj.setValue(l,this.checked)},1!=obj.options.columns[e].readOnly&&0!=obj.options.editable||r.setAttribute("disabled","disabled"),l.appendChild(r),obj.options.data[t][e]=r.checked):"calendar"==obj.options.columns[e].type?(n=jSuites.calendar.extractDateFromString(o,obj.options.columns[e].options.format),l.innerText=jSuites.calendar.getDateString(n||o,obj.options.columns[e].options.format)):"dropdown"==obj.options.columns[e].type||"autocomplete"==obj.options.columns[e].type?(l.classList.add("jexcel_dropdown"),l.innerText=obj.getDropDownValue(e,o)):"color"==obj.options.columns[e].type?"square"==obj.options.columns[e].render?((n=document.createElement("div")).className="color",n.style.backgroundColor=o,l.appendChild(n)):(l.style.color=o,l.innerText=o):"image"==obj.options.columns[e].type?o&&"data:image"==o.substr(0,10)&&((s=document.createElement("img")).src=o,l.appendChild(s)):"html"==obj.options.columns[e].type||!1===obj.options.stripHTML||!1===obj.options.columns[e].stripHTML?l.innerHTML=stripScript(obj.parseValue(e,t,o)):l.innerText=obj.parseValue(e,t,o),1==obj.options.columns[e].readOnly&&(l.className="readonly");var s=obj.options.columns[e].align||"center";return l.style.textAlign=s,0!=obj.options.columns[e].wordWrap&&(1==obj.options.wordWrap||1==obj.options.columns[e].wordWrap||200<l.innerHTML.length)&&(l.style.whiteSpace="pre-wrap"),0<e&&1==this.options.textOverflow&&(o||l.innerHTML?obj.records[t][e-1].style.overflow="hidden":e==obj.options.columns.length-1&&(l.style.overflow="hidden")),l},obj.createCellHeader=function(e){var t=obj.options.columns[e].width||obj.options.defaultColWidth,o=obj.options.columns[e].align||obj.options.defaultColAlign;obj.headers[e]=document.createElement("td"),obj.options.stripHTML?obj.headers[e].innerText=obj.options.columns[e].title||jexcel.getColumnName(e):obj.headers[e].innerHTML=obj.options.columns[e].title||jexcel.getColumnName(e),obj.headers[e].setAttribute("data-x",e),obj.headers[e].style.textAlign=o,obj.options.columns[e].title&&obj.headers[e].setAttribute("title",obj.options.columns[e].title),obj.options.columns[e].id&&obj.headers[e].setAttribute("id",obj.options.columns[e].id),obj.colgroup[e]=document.createElement("col"),obj.colgroup[e].setAttribute("width",t),"hidden"==obj.options.columns[e].type&&(obj.headers[e].style.display="none",obj.colgroup[e].style.display="none")},obj.updateNestedHeader=function(e,t,o){obj.options.nestedHeaders[t][e].title&&(obj.options.nestedHeaders[t][e].title=o,obj.options.nestedHeaders[t].element.children[e+1].innerText=o)},obj.createNestedHeader=function(e){var t=document.createElement("tr");t.classList.add("jexcel_nested");var o=document.createElement("td");t.appendChild(o),e.element=t;for(var r=0,n=0;n<e.length;n++){e[n].colspan||(e[n].colspan=1),e[n].align||(e[n].align="center"),e[n].title||(e[n].title="");for(var l=e[n].colspan,s=[],i=0;i<l;i++)obj.options.columns[r]&&"hidden"==obj.options.columns[r].type&&l++,s.push(r),r++;(o=document.createElement("td")).setAttribute("data-column",s.join(",")),o.setAttribute("colspan",e[n].colspan),o.setAttribute("align",e[n].align),o.innerText=e[n].title,t.appendChild(o)}return t},obj.createToolbar=function(t){t?obj.options.toolbar=t:t=obj.options.toolbar;for(var e,o=0;o<t.length;o++)if("i"==t[o].type)(e=document.createElement("i")).classList.add("jexcel_toolbar_item"),e.classList.add("material-icons"),e.setAttribute("data-k",t[o].k),e.setAttribute("data-v",t[o].v),e.setAttribute("id",t[o].id),t[o].tooltip&&e.setAttribute("title",t[o].tooltip),t[o].onclick&&(t[o].onclick,1)?e.onclick=function(){var e=o;return function(){t[e].onclick(el,obj,this)}}():e.onclick=function(){var e=this.getAttribute("data-k"),t=this.getAttribute("data-v");obj.setStyle(obj.highlighted,e,t)},e.innerText=t[o].content,obj.toolbar.appendChild(e);else if("select"==t[o].type){(e=document.createElement("select")).classList.add("jexcel_toolbar_item"),e.setAttribute("data-k",t[o].k),t[o].tooltip&&e.setAttribute("title",t[o].tooltip),t[o].onchange&&(t[o].onchange,1)?e.onchange=t[o].onchange:e.onchange=function(){var e=this.getAttribute("data-k");obj.setStyle(obj.highlighted,e,this.value)};for(var r=0;r<t[o].v.length;r++){var n=document.createElement("option");n.value=t[o].v[r],n.innerText=t[o].v[r],e.appendChild(n)}obj.toolbar.appendChild(e)}else"color"==t[o].type&&((e=document.createElement("i")).classList.add("jexcel_toolbar_item"),e.classList.add("material-icons"),e.setAttribute("data-k",t[o].k),e.setAttribute("data-v",""),t[o].tooltip&&e.setAttribute("title",t[o].tooltip),obj.toolbar.appendChild(e),e.innerText=t[o].content,jSuites.color(e,{onchange:function(e,t){e=e.getAttribute("data-k");obj.setStyle(obj.highlighted,e,t)}}))},obj.setMerge=function(e,t,o,r){var n=!1;if(!e){if(!obj.highlighted.length)return alert(obj.options.text.noCellsSelected),null;var l=parseInt(obj.highlighted[0].getAttribute("data-x")),s=parseInt(obj.highlighted[0].getAttribute("data-y")),i=parseInt(obj.highlighted[obj.highlighted.length-1].getAttribute("data-x")),a=parseInt(obj.highlighted[obj.highlighted.length-1].getAttribute("data-y")),e=jexcel.getColumnNameFromId([l,s]),t=i-l+1,o=a-s+1}var u=jexcel.getIdFromColumnName(e,!0);if(obj.options.mergeCells[e])obj.records[u[1]][u[0]].getAttribute("data-merged")&&(n=obj.options.text.cellAlreadyMerged);else if((!t||t<2)&&(!o||o<2))n=obj.options.text.invalidMergeProperties;else for(var c=u[1];c<u[1]+o;c++)for(var b=u[0];b<u[0]+t;b++){jexcel.getColumnNameFromId([b,c]);obj.records[c][b].getAttribute("data-merged")&&(n=obj.options.text.thereIsAConflictWithAnotherMergedCell)}if(n)alert(n);else{1<t?obj.records[u[1]][u[0]].setAttribute("colspan",t):t=1,1<o?obj.records[u[1]][u[0]].setAttribute("rowspan",o):o=1,obj.options.mergeCells[e]=[t,o,[]],obj.records[u[1]][u[0]].setAttribute("data-merged","true"),obj.records[u[1]][u[0]].style.overflow="hidden";for(var p=[],d=u[1];d<u[1]+o;d++)for(var j=u[0];j<u[0]+t;j++)u[0]==j&&u[1]==d||(p.push(obj.options.data[d][j]),obj.updateCell(j,d,"",!0),obj.options.mergeCells[e][2].push(obj.records[d][j]),obj.records[d][j].style.display="none",obj.records[d][j]=obj.records[u[1]][u[0]]);obj.updateSelection(obj.records[u[1]][u[0]]),r||(obj.setHistory({action:"setMerge",column:e,colspan:t,rowspan:o,data:p}),obj.dispatch("onmerge",el,e,t,o))}},obj.getMerge=function(e){var t={};if(e)t=obj.options.mergeCells[e]?[obj.options.mergeCells[e][0],obj.options.mergeCells[e][1]]:null;else if(obj.options.mergeCells){obj.options.mergeCells;for(var o=Object.keys(obj.options.mergeCells),r=0;r<o.length;r++)t[o[r]]=[obj.options.mergeCells[o[r]][0],obj.options.mergeCells[o[r]][1]]}return t},obj.removeMerge=function(e,t,o){if(obj.options.mergeCells[e]){var r=jexcel.getIdFromColumnName(e,!0);obj.records[r[1]][r[0]].removeAttribute("colspan"),obj.records[r[1]][r[0]].removeAttribute("rowspan"),obj.records[r[1]][r[0]].removeAttribute("data-merged");for(var n=obj.options.mergeCells[e],l=0,s=0;s<n[1];s++)for(var i=0;i<n[0];i++)(0<s||0<i)&&(obj.records[r[1]+s][r[0]+i]=n[2][l],obj.records[r[1]+s][r[0]+i].style.display="",t&&t[l]&&obj.updateCell(r[0]+i,r[1]+s,t[l]),l++);obj.updateSelection(obj.records[r[1]][r[0]],obj.records[r[1]+s-1][r[0]+i-1]),o||delete obj.options.mergeCells[e]}},obj.destroyMerged=function(e){if(obj.options.mergeCells){obj.options.mergeCells;for(var t=Object.keys(obj.options.mergeCells),o=0;o<t.length;o++)obj.removeMerge(t[o],null,e)}},obj.isColMerged=function(e,t){var o=[];if(obj.options.mergeCells)for(var r=Object.keys(obj.options.mergeCells),n=0;n<r.length;n++){var l=jexcel.getIdFromColumnName(r[n],!0),s=obj.options.mergeCells[r[n]][0],i=l[0],s=l[0]+(1<s?s-1:0);null==t?i<=e&&e<=s&&o.push(r[n]):t?i<e&&e<=s&&o.push(r[n]):i<=e&&e<s&&o.push(r[n])}return o},obj.isRowMerged=function(e,t){var o=[];if(obj.options.mergeCells)for(var r=Object.keys(obj.options.mergeCells),n=0;n<r.length;n++){var l=jexcel.getIdFromColumnName(r[n],!0),s=obj.options.mergeCells[r[n]][1],i=l[1],s=l[1]+(1<s?s-1:0);null==t?i<=e&&e<=s&&o.push(r[n]):t?i<e&&e<=s&&o.push(r[n]):i<=e&&e<s&&o.push(r[n])}return o},obj.openFilter=function(t){if(obj.options.filters){t=parseInt(t),obj.resetSelection();var e=[];if("checkbox"==obj.options.columns[t].type)e.push({id:"true",name:"True"}),e.push({id:"false",name:"False"});else{for(var o=[],r=!1,n=0;n<obj.options.data.length;n++){var l=obj.options.data[n][t],s=obj.records[n][t].innerHTML;l&&s?o[l]=s:r=!0}for(var i=Object.keys(o),e=[],n=0;n<i.length;n++)e.push({id:i[n],name:o[i[n]]});r&&e.push({value:"",id:"",name:"(Blanks)"})}var a=document.createElement("div");obj.filter.children[t+1].innerHTML="",obj.filter.children[t+1].appendChild(a),obj.filter.children[t+1].style.paddingLeft="0px",obj.filter.children[t+1].style.paddingRight="0px",obj.filter.children[t+1].style.overflow="initial";var u={data:e,multiple:!0,autocomplete:!0,opened:!0,value:void 0!==obj.filters[t]?obj.filters[t]:null,width:"100%",position:1==obj.options.tableOverflow||1==obj.options.fullscreen,onclose:function(e){obj.resetFilters(),obj.filters[t]=e.dropdown.getValue(!0),obj.filter.children[t+1].innerHTML=e.dropdown.getText(),obj.filter.children[t+1].style.paddingLeft="",obj.filter.children[t+1].style.paddingRight="",obj.filter.children[t+1].style.overflow="",obj.closeFilter(t),obj.refreshSelection()}};jSuites.dropdown(a,u)}else console.log("Jspreadsheet: filters not enabled.")},obj.resetFilters=function(){if(obj.options.filters)for(var e=0;e<obj.filter.children.length;e++)obj.filter.children[e].innerHTML=" ",obj.filters[e]=null},obj.closeFilter=function(e){if(!e)for(var t=0;t<obj.filter.children.length;t++)obj.filters[t]&&(e=t);var o=obj.filters[e];obj.results=[];for(var r=0;r<obj.options.data.length;r++)!function(e,t,o){for(var r=0;r<e.length;r++)if(""==e[r]&&(!1===obj.options.data[o][t]||""+obj.options.data[o][t]=="")||""!=e[r]&&(0<=(""+obj.options.data[o][t]).search(e[r])||0<=(""+obj.records[o][t].innerHTML).search(e[r])))return!0;return!1}(o,e,r)||obj.results.push(r);obj.results.length||(obj.results=null),obj.updateResult()},obj.openEditor=function(o,e,t){var r=o.getAttribute("data-y"),n=o.getAttribute("data-x");obj.dispatch("oneditionstart",el,o,n,r),0<n&&(obj.records[r][n-1].style.overflow="hidden");function l(e){var t=o.getBoundingClientRect();return(e=document.createElement(e)).style.width=t.width+"px",e.style.height=t.height-2+"px",e.style.minHeight=t.height-2+"px",o.classList.add("editor"),o.innerHTML="",o.appendChild(e),obj.dispatch("oncreateeditor",el,o,n,r,e),e}var s,i,a;if(1!=o.classList.contains("readonly"))if(obj.edition=[obj.records[r][n],obj.records[r][n].innerHTML,n,r],obj.options.columns[n].editor)obj.options.columns[n].editor.openEditor(o,el,e,t);else if("hidden"!=obj.options.columns[n].type)if("checkbox"==obj.options.columns[n].type||"radio"==obj.options.columns[n].type){var u=!o.children[0].checked;obj.setValue(o,u),obj.edition=null}else if("dropdown"==obj.options.columns[n].type||"autocomplete"==obj.options.columns[n].type){var c,u=obj.options.data[r][n];obj.options.columns[n].multiple&&!Array.isArray(u)&&(u=u.split(";")),c="function"==typeof obj.options.columns[n].filter?obj.options.columns[n].filter(el,o,n,r,obj.options.columns[n].source):obj.options.columns[n].source;for(var b=[],p=0;p<c.length;p++)b.push(c[p]);var d=l("div"),j={data:b,multiple:!!obj.options.columns[n].multiple,autocomplete:!(!obj.options.columns[n].autocomplete&&"autocomplete"!=obj.options.columns[n].type),opened:!0,value:u,width:"100%",height:d.style.minHeight,position:1==obj.options.tableOverflow||1==obj.options.fullscreen,onclose:function(){obj.closeEditor(o,!0)}};obj.options.columns[n].options&&obj.options.columns[n].options.type&&(j.type=obj.options.columns[n].options.type),jSuites.dropdown(d,j)}else"calendar"==obj.options.columns[n].type||"color"==obj.options.columns[n].type?(u=obj.options.data[r][n],(d=l("input")).value=u,1!=obj.options.tableOverflow&&1!=obj.options.fullscreen||(obj.options.columns[n].options.position=!0),obj.options.columns[n].options.value=obj.options.data[r][n],obj.options.columns[n].options.opened=!0,obj.options.columns[n].options.onclose=function(e,t){obj.closeEditor(o,!0)},"color"==obj.options.columns[n].type?jSuites.color(d,obj.options.columns[n].options):jSuites.calendar(d,obj.options.columns[n].options),d.focus()):"html"==obj.options.columns[n].type?(u=obj.options.data[r][n],(d=l("div")).style.position="relative",(s=document.createElement("div")).classList.add("jexcel_richtext"),d.appendChild(s),jSuites.editor(s,{focus:!0,value:u}),i=o.getBoundingClientRect(),a=s.getBoundingClientRect(),window.innerHeight<i.bottom+a.height?s.style.top=i.top-(a.height+2)+"px":s.style.top=i.top+"px"):"image"==obj.options.columns[n].type?(j=o.children[0],(d=l("div")).style.position="relative",(s=document.createElement("div")).classList.add("jclose"),j&&j.src&&s.appendChild(j),d.appendChild(s),jSuites.image(s,obj.options.imageOptions),i=o.getBoundingClientRect(),a=s.getBoundingClientRect(),window.innerHeight<i.bottom+a.height?s.style.top=i.top-(a.height+2)+"px":s.style.top=i.top+"px"):(u=1==e?"":obj.options.data[r][n],0==obj.options.columns[n].wordWrap||1!=obj.options.wordWrap&&1!=obj.options.columns[n].wordWrap?(d=l("input"),obj.options.columns[n].mask&&d.setAttribute("data-mask",obj.options.columns[n].mask)):d=l("textarea"),d.onblur=function(){obj.closeEditor(o,!0)},d.focus(),d.value=u,d.scrollLeft=d.scrollWidth)},obj.closeEditor=function(e,t){var o,r,n=parseInt(e.getAttribute("data-x")),l=parseInt(e.getAttribute("data-y"));1==t?(obj.options.columns[n].editor?r=obj.options.columns[n].editor.closeEditor(e,t):"checkbox"==obj.options.columns[n].type||"radio"==obj.options.columns[n].type||"hidden"==obj.options.columns[n].type||("dropdown"==obj.options.columns[n].type||"autocomplete"==obj.options.columns[n].type?r=e.children[0].dropdown.close(!0):"calendar"==obj.options.columns[n].type?r=e.children[0].calendar.close(!0):"color"==obj.options.columns[n].type?r=e.children[0].color.close(!0):"html"==obj.options.columns[n].type?r=e.children[0].children[0].editor.getData():"image"==obj.options.columns[n].type?r=(o=e.children[0].children[0].children[0])&&"IMG"==o.tagName?o.src:"":("numeric"==obj.options.columns[n].type?"="!=(r=e.children[0].value).substr(0,1)&&""==r&&(r=obj.options.columns[n].allowEmpty?"":0):r=e.children[0].value,e.children[0].onblur=null)),obj.options.data[l][n]==r?e.innerHTML=obj.edition[1]:obj.setValue(e,r)):(obj.options.columns[n].editor?obj.options.columns[n].editor.closeEditor(e,t):"dropdown"==obj.options.columns[n].type||"autocomplete"==obj.options.columns[n].type?e.children[0].dropdown.close(!0):"calendar"==obj.options.columns[n].type?e.children[0].calendar.close(!0):"color"==obj.options.columns[n].type?e.children[0].color.close(!0):e.children[0].onblur=null,e.innerHTML=obj.edition&&obj.edition[1]?obj.edition[1]:""),obj.dispatch("oneditionend",el,e,n,l,r,t),e.classList.remove("editor"),obj.edition=null},obj.getCell=function(e){var t=(e=jexcel.getIdFromColumnName(e,!0))[0],e=e[1];return obj.records[e][t]},obj.getCellFromCoords=function(e,t){return obj.records[t][e]},obj.getLabel=function(e){var t=(e=jexcel.getIdFromColumnName(e,!0))[0],e=e[1];return obj.records[e][t].innerHTML},obj.getLabelFromCoords=function(e,t){return obj.records[t][e].innerHTML},obj.getValue=function(e,t){var o,r;r="object"==typeof e?(o=e.getAttribute("data-x"),e.getAttribute("data-y")):(o=(e=jexcel.getIdFromColumnName(e,!0))[0],e[1]);e=null;return null!=o&&null!=r&&(obj.records[r]&&obj.records[r][o]&&(t||1==obj.options.copyCompatibility)?e=obj.records[r][o].innerHTML:obj.options.data[r]&&"undefined"!=obj.options.data[r][o]&&(e=obj.options.data[r][o])),e},obj.getValueFromCoords=function(e,t,o){var r=null;return null!=e&&null!=t&&(obj.records[t]&&obj.records[t][e]&&o||1==obj.options.copyCompatibility?r=obj.records[t][e].innerHTML:obj.options.data[t]&&"undefined"!=obj.options.data[t][e]&&(r=obj.options.data[t][e])),r},obj.setValue=function(e,t,o){var r=[];if("string"==typeof e){var n=(i=jexcel.getIdFromColumnName(e,!0))[0],l=i[1];r.push(obj.updateCell(n,l,t,o)),obj.updateFormulaChain(n,l,r)}else{n=null,l=null;if(e&&e.getAttribute&&(n=e.getAttribute("data-x"),l=e.getAttribute("data-y")),null!=n&&null!=l)r.push(obj.updateCell(n,l,t,o)),obj.updateFormulaChain(n,l,r);else{var s=Object.keys(e);if(0<s.length)for(var i,a=0;a<s.length;a++)"string"==typeof e[a]?(n=(i=jexcel.getIdFromColumnName(e[a],!0))[0],l=i[1]):null!=e[a].x&&null!=e[a].y?(n=e[a].x,l=e[a].y,null!=e[a].newValue?t=e[a].newValue:null!=e[a].value&&(t=e[a].value)):(n=e[a].getAttribute("data-x"),l=e[a].getAttribute("data-y")),null!=n&&null!=l&&(r.push(obj.updateCell(n,l,t,o)),obj.updateFormulaChain(n,l,r))}}obj.setHistory({action:"setValue",records:r,selection:obj.selectedCell}),obj.updateTable(),obj.onafterchanges(el,r)},obj.setValueFromCoords=function(e,t,o,r){var n=[];n.push(obj.updateCell(e,t,o,r)),obj.updateFormulaChain(e,t,n),obj.setHistory({action:"setValue",records:n,selection:obj.selectedCell}),obj.updateTable(),obj.onafterchanges(el,n)},obj.setCheckRadioValue=function(){for(var e=[],t=Object.keys(obj.highlighted),o=0;o<t.length;o++){var r=obj.highlighted[o].getAttribute("data-x"),n=obj.highlighted[o].getAttribute("data-y");"checkbox"!=obj.options.columns[r].type&&"radio"!=obj.options.columns[r].type||e.push(obj.updateCell(r,n,!obj.options.data[n][r]))}e.length&&(obj.setHistory({action:"setValue",records:e,selection:obj.selectedCell}),obj.onafterchanges(el,e))};var stripScript=function(e){var t=new Option;t.innerHTML=e;var o=null;for(e=t.getElementsByTagName("script");o=e[0];)o.parentNode.removeChild(o);return t.innerHTML};obj.updateCell=function(e,t,o,r){if(1!=obj.records[t][e].classList.contains("readonly")||r){"="==(""+o).substr(0,1)&&1==obj.options.secureFormulas&&(l=secureFormula(o))!=o&&(o=l),null!=(l=obj.dispatch("onbeforechange",el,obj.records[t][e],e,t,o))&&(o=l),obj.options.columns[e].editor&&"function"==typeof obj.options.columns[e].editor.updateCell&&(o=obj.options.columns[e].editor.updateCell(obj.records[t][e],o,r));var n,l={x:e,y:t,col:e,row:t,newValue:o,oldValue:obj.options.data[t][e]};if(obj.options.columns[e].editor)obj.options.data[t][e]=o;else if("checkbox"==obj.options.columns[e].type||"radio"==obj.options.columns[e].type){if("radio"==obj.options.columns[e].type)for(var s=0;s<obj.options.data.length;s++)obj.options.data[s][e]=!1;obj.records[t][e].children[0].checked=1==o||1==o||"true"==o||"TRUE"==o,obj.options.data[t][e]=obj.records[t][e].children[0].checked}else"dropdown"==obj.options.columns[e].type||"autocomplete"==obj.options.columns[e].type?(obj.options.data[t][e]=o,obj.records[t][e].innerText=obj.getDropDownValue(e,o)):"calendar"==obj.options.columns[e].type?(r=jSuites.calendar.extractDateFromString(o,obj.options.columns[e].options.format),obj.options.data[t][e]=o,obj.records[t][e].innerText=jSuites.calendar.getDateString(r||o,obj.options.columns[e].options.format)):"color"==obj.options.columns[e].type?(obj.options.data[t][e]=o,"square"==obj.options.columns[e].render?((n=document.createElement("div")).className="color",n.style.backgroundColor=o,obj.records[t][e].innerText="",obj.records[t][e].appendChild(n)):(obj.records[t][e].style.color=o,obj.records[t][e].innerText=o)):"image"==obj.options.columns[e].type?(o=""+o,obj.options.data[t][e]=o,obj.records[t][e].innerHTML="",o&&"data:image"==o.substr(0,10)&&((n=document.createElement("img")).src=o,obj.records[t][e].appendChild(n))):(obj.options.data[t][e]=o,"html"==obj.options.columns[e].type||!1===obj.options.stripHTML||!1===obj.options.columns[e].stripHTML?obj.records[t][e].innerHTML=stripScript(obj.parseValue(e,t,o)):obj.records[t][e].innerText=obj.parseValue(e,t,o),0!=obj.options.columns[e].wordWrap&&(1==obj.options.wordWrap||1==obj.options.columns[e].wordWrap||200<obj.records[t][e].innerHTML.length)?obj.records[t][e].style.whiteSpace="pre-wrap":obj.records[t][e].style.whiteSpace="");0<e&&(obj.records[t][e-1].style.overflow=o?"hidden":""),obj.dispatch("onchange",el,obj.records[t]&&obj.records[t][e]?obj.records[t][e]:null,e,t,o,l.oldValue)}else var l={x:e,y:t,col:e,row:t};return l},obj.copyData=function(e,t){var o,r=obj.getData(!0,!0),n=obj.selectedContainer,l=parseInt(e.getAttribute("data-x")),e=parseInt(e.getAttribute("data-y")),s=parseInt(t.getAttribute("data-x")),i=parseInt(t.getAttribute("data-y")),a=[],u=!1;n[0]==l?(o=e<n[1]?e-n[1]:1,c=0):(c=l<n[0]?l-n[0]:1,o=0);for(var c,b=0,p=0,d=e;d<=i;d++)if(!obj.rows[d]||"none"!=obj.rows[d].style.display){null==r[p]&&(p=0),n[b=0]!=l&&(c=l<n[0]?l-n[0]:1);for(var j=l;j<=s;j++){if(obj.records[d][j]&&!obj.records[d][j].classList.contains("readonly")&&"none"!=obj.records[d][j].style.display&&0==u){if(!obj.selection.length&&""!=obj.options.data[d][j]){u=!0;continue}(null==r[p]||null==r[p][b])&&(b=0);var h,f=r[p][b];if(f&&!r[1]&&1==obj.options.autoIncrement)if("text"==obj.options.columns[j].type||"number"==obj.options.columns[j].type)if("="==(""+f).substr(0,1)){var g=f.match(/([A-Z]+[0-9]+)/g);if(g){for(var m=[],v=0;v<g.length;v++){var x=jexcel.getIdFromColumnName(g[v],1);x[0]+=c,x[1]+=o,x[1]<0&&(x[1]=0);x=jexcel.getColumnNameFromId([x[0],x[1]]);x!=g[v]&&(m[g[v]]=x)}m&&(f=obj.updateFormula(f,m))}}else f==Number(f)&&(f=Number(f)+o);else"calendar"==obj.options.columns[j].type&&((h=new Date(f)).setDate(h.getDate()+o),f=h.getFullYear()+"-"+jexcel.doubleDigitFormat(parseInt(h.getMonth()+1))+"-"+jexcel.doubleDigitFormat(h.getDate())+" 00:00:00");a.push(obj.updateCell(j,d,f)),obj.updateFormulaChain(j,d,a)}b++,n[0]!=l&&c++}p++,o++}obj.setHistory({action:"setValue",records:a,selection:obj.selectedCell}),obj.updateTable(),obj.onafterchanges(el,a)},obj.refreshSelection=function(){obj.selectedCell&&obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3])},obj.conditionalSelectionUpdate=function(e,t,o){1==e?obj.selectedCell&&(t>=obj.selectedCell[1]&&t<=obj.selectedCell[3]||o>=obj.selectedCell[1]&&o<=obj.selectedCell[3])&&obj.resetSelection():obj.selectedCell&&(t>=obj.selectedCell[0]&&t<=obj.selectedCell[2]||o>=obj.selectedCell[0]&&o<=obj.selectedCell[2])&&obj.resetSelection()},obj.resetSelection=function(e){if(obj.highlighted.length)for(var t=1,o=0;o<obj.highlighted.length;o++){obj.highlighted[o].classList.remove("highlight"),obj.highlighted[o].classList.remove("highlight-left"),obj.highlighted[o].classList.remove("highlight-right"),obj.highlighted[o].classList.remove("highlight-top"),obj.highlighted[o].classList.remove("highlight-bottom"),obj.highlighted[o].classList.remove("highlight-selected");var r,n,l,s=parseInt(obj.highlighted[o].getAttribute("data-x")),i=parseInt(obj.highlighted[o].getAttribute("data-y"));l=obj.highlighted[o].getAttribute("data-merged")?(n=0<(r=parseInt(obj.highlighted[o].getAttribute("colspan")))?s+(r-1):s,0<(r=parseInt(obj.highlighted[o].getAttribute("rowspan")))?i+(r-1):i):(n=s,i);for(var a=s;a<=n;a++)obj.headers[a]&&obj.headers[a].classList.remove("selected");for(a=i;a<=l;a++)obj.rows[a]&&obj.rows[a].classList.remove("selected")}else var t=0;return obj.highlighted=[],obj.selectedCell=null,obj.corner.style.top="-2000px",obj.corner.style.left="-2000px",1==e&&1==t&&obj.dispatch("onblur",el),t},obj.updateSelection=function(e,t,o){var r,n=e.getAttribute("data-x"),e=e.getAttribute("data-y");t=t?(r=t.getAttribute("data-x"),t.getAttribute("data-y")):(r=n,e),obj.updateSelectionFromCoords(n,e,r,t,o)},obj.updateSelectionFromCoords=function(e,t,o,r,n){var l,s,i,a,u=obj.resetSelection();if(null==t&&(t=0,r=obj.rows.length-1),null==o&&(o=e),null==r&&(r=t),e>=obj.headers.length&&(e=obj.headers.length-1),t>=obj.rows.length&&(t=obj.rows.length-1),o>=obj.headers.length&&(o=obj.headers.length-1),r>=obj.rows.length&&(r=obj.rows.length-1),obj.selectedCell=[e,t,o,r],null!=e){obj.records[t][e]&&obj.records[t][e].classList.add("highlight-selected"),s=parseInt(e)<parseInt(o)?(l=parseInt(e),parseInt(o)):(l=parseInt(o),parseInt(e)),a=parseInt(t)<parseInt(r)?(i=parseInt(t),parseInt(r)):(i=parseInt(r),parseInt(t));for(var c=l;c<=s;c++)for(var b,p,d,j=i;j<=a;j++)obj.records[j][c]&&obj.records[j][c].getAttribute("data-merged")&&(b=parseInt(obj.records[j][c].getAttribute("data-x")),p=parseInt(obj.records[j][c].getAttribute("data-y")),1<(d=parseInt(obj.records[j][c].getAttribute("colspan")))&&(b<l&&(l=b),s<b+d&&(s=b+d-1)),(d=parseInt(obj.records[j][c].getAttribute("rowspan")))&&(p<i&&(i=p),a<p+d&&(a=p+d-1)));for(var h=null,f=null,g=null,m=null,j=i;j<=a;j++)"none"!=obj.rows[j].style.display&&(null==g&&(g=j),m=j);for(c=l;c<=s;c++){for(j=i;j<=a;j++)"none"!=obj.rows[j].style.display&&"none"!=obj.records[j][c].style.display&&(obj.records[j][c].classList.add("highlight"),obj.highlighted.push(obj.records[j][c]));"hidden"!=obj.options.columns[c].type&&(null==h&&(h=c),f=c)}f=f||0;for(c=h=h||0;c<=f;c++)"hidden"!=obj.options.columns[c].type&&(obj.records[g]&&obj.records[g][c]&&obj.records[g][c].classList.add("highlight-top"),obj.records[m]&&obj.records[m][c]&&obj.records[m][c].classList.add("highlight-bottom"),obj.headers[c].classList.add("selected"));for(j=g;j<=m;j++)obj.rows[j]&&"none"!=obj.rows[j].style.display&&(obj.records[j][h].classList.add("highlight-left"),obj.records[j][f].classList.add("highlight-right"),obj.rows[j].classList.add("selected"));obj.selectedContainer=[h,g,f,m]}0==u&&(obj.dispatch("onfocus",el),obj.removeCopyingSelection()),obj.dispatch("onselection",el,h,g,f,m,n),obj.updateCornerPosition()},obj.removeCopySelection=function(){for(var e=0;e<obj.selection.length;e++)obj.selection[e].classList.remove("selection"),obj.selection[e].classList.remove("selection-left"),obj.selection[e].classList.remove("selection-right"),obj.selection[e].classList.remove("selection-top"),obj.selection[e].classList.remove("selection-bottom");obj.selection=[]},obj.updateCopySelection=function(e,t){obj.removeCopySelection();var o,r,n,l,s=obj.selectedContainer[0],i=obj.selectedContainer[1],a=obj.selectedContainer[2],u=obj.selectedContainer[3];if(null!=e&&null!=t){(r=0<e-a?(o=parseInt(a)+1,parseInt(e)):(o=parseInt(e),parseInt(s)-1))-o<=(l=0<t-u?(n=parseInt(u)+1,parseInt(t)):(n=parseInt(t),parseInt(i)-1))-n?(o=parseInt(s),r=parseInt(a)):(n=parseInt(i),l=parseInt(u));for(var c=n;c<=l;c++)for(var b=o;b<=r;b++)obj.records[c][b]&&"none"!=obj.rows[c].style.display&&"none"!=obj.records[c][b].style.display&&(obj.records[c][b].classList.add("selection"),obj.records[n][b].classList.add("selection-top"),obj.records[l][b].classList.add("selection-bottom"),obj.records[c][o].classList.add("selection-left"),obj.records[c][r].classList.add("selection-right"),obj.selection.push(obj.records[c][b]))}},obj.updateCornerPosition=function(){var e,t,o,r,n,l,s;obj.highlighted.length?(s=obj.highlighted[obj.highlighted.length-1],e=(n=obj.content.getBoundingClientRect()).left,t=n.top,o=(l=s.getBoundingClientRect()).left,r=l.top,n=l.width,s=l.height,l=o-e+obj.content.scrollLeft+n-4,s=r-t+obj.content.scrollTop+s-4,obj.corner.style.top=s+"px",obj.corner.style.left=l+"px",obj.options.freezeColumns&&o-e+n<obj.getFreezeWidth()?obj.corner.style.display="none":1==obj.options.selectionCopy&&(obj.corner.style.display="")):(obj.corner.style.top="-2000px",obj.corner.style.left="-2000px")},obj.updateScroll=function(e){var t,o=obj.content.getBoundingClientRect(),r=o.left,n=o.top,l=o.width,s=o.height,i=obj.records[obj.selectedCell[3]][obj.selectedCell[2]].getBoundingClientRect(),a=i.left,u=i.top,o=i.width,i=i.height;(n=0==e||1==e?(t=a-r+obj.content.scrollLeft,u-n+obj.content.scrollTop-2):(t=a-r+obj.content.scrollLeft+o,u-n+obj.content.scrollTop+i))>obj.content.scrollTop+30&&n<obj.content.scrollTop+s||(n<obj.content.scrollTop+30?obj.content.scrollTop=n-i:obj.content.scrollTop=n-(s-2));s=obj.getFreezeWidth();t>obj.content.scrollLeft+s&&t<obj.content.scrollLeft+l||(t<obj.content.scrollLeft+30?(obj.content.scrollLeft=t,obj.content.scrollLeft<50&&(obj.content.scrollLeft=0)):t<obj.content.scrollLeft+s?obj.content.scrollLeft=t-s-1:obj.content.scrollLeft=t-(l-20))},obj.getWidth=function(e){if(e)"object"==typeof e&&(e=$(e).getAttribute("data-x")),t=obj.colgroup[e].getAttribute("width");else for(var t=[],o=0;o<obj.headers.length;o++)t.push(obj.options.columns[o].width);return t},obj.setWidth=function(e,t,o){if(t){if(Array.isArray(e)){o=o||[];for(var r=0;r<e.length;r++){o[r]||(o[r]=obj.colgroup[e[r]].getAttribute("width"));var n=Array.isArray(t)&&t[r]?t[r]:t;obj.colgroup[e[r]].setAttribute("width",n),obj.options.columns[e[r]].width=n}}else o=o||obj.colgroup[e].getAttribute("width"),obj.colgroup[e].setAttribute("width",t),obj.options.columns[e].width=t;obj.setHistory({action:"setWidth",column:e,oldValue:o,newValue:t}),obj.dispatch("onresizecolumn",el,e,t,o),obj.updateCornerPosition()}},obj.setHeight=function(e,t,o){0<t&&("object"==typeof e&&(e=e.getAttribute("data-y")),o=o||((o=obj.rows[e].getAttribute("height"))||obj.rows[e].getBoundingClientRect().height),t=parseInt(t),obj.rows[e].style.height=t+"px",obj.options.rows[e]||(obj.options.rows[e]={}),obj.options.rows[e].height=t,obj.setHistory({action:"setHeight",row:e,oldValue:o,newValue:t}),obj.dispatch("onresizerow",el,e,t,o),obj.updateCornerPosition())},obj.getHeight=function(e){if(e){"object"==typeof e&&(e=$(e).getAttribute("data-y"));t=obj.rows[e].style.height}else for(var t=[],o=0;o<obj.rows.length;o++){var r=obj.rows[o].style.height;r&&(t[o]=r)}return t},obj.setFooter=function(e){if(e&&(obj.options.footers=e),obj.options.footers){obj.tfoot||(obj.tfoot=document.createElement("tfoot"),obj.table.appendChild(obj.tfoot));for(var t,o=0;o<obj.options.footers.length;o++){obj.tfoot.children[o]?t=obj.tfoot.children[o]:(t=document.createElement("tr"),r=document.createElement("td"),t.appendChild(r),obj.tfoot.appendChild(t));for(var r,n,l=0;l<obj.headers.length;l++)obj.options.footers[o][l]||(obj.options.footers[o][l]=""),obj.tfoot.children[o].children[l+1]?r=obj.tfoot.children[o].children[l+1]:(r=document.createElement("td"),t.appendChild(r),n=obj.options.columns[l].align||"center",r.style.textAlign=n),r.innerText=obj.parseValue(l,o,obj.options.footers[o][l])}}},obj.getHeader=function(e){return obj.headers[e].innerText},obj.setHeader=function(e,t){var o;obj.headers[e]&&(o=obj.headers[e].innerText,(t=t||prompt(obj.options.text.columnName,o))&&(obj.headers[e].innerText=t,obj.headers[e].setAttribute("title",t),obj.options.columns[e].title=t),obj.setHistory({action:"setHeader",column:e,oldValue:o,newValue:t}),obj.dispatch("onchangeheader",el,e,o,t))},obj.getHeaders=function(e){for(var t=[],o=0;o<obj.headers.length;o++)t.push(obj.getHeader(o));return e?t:t.join(obj.options.csvDelimiter)},obj.getMeta=function(e,t){return e?t?obj.options.meta[e]&&obj.options.meta[e][t]?obj.options.meta[e][t]:null:obj.options.meta[e]||null:obj.options.meta},obj.setMeta=function(e,t,o){if(obj.options.meta||(obj.options.meta={}),t&&o)obj.options.meta[e]||(obj.options.meta[e]={}),obj.options.meta[e][t]=o;else for(var r=Object.keys(e),n=0;n<r.length;n++){obj.options.meta[r[n]]||(obj.options.meta[r[n]]={});for(var l=Object.keys(e[r[n]]),s=0;s<l.length;s++)obj.options.meta[r[n]][l[s]]=e[r[n]][l[s]]}obj.dispatch("onchangemeta",el,e,t,o)},obj.updateMeta=function(e){if(obj.options.meta){for(var t={},o=Object.keys(obj.options.meta),r=0;r<o.length;r++)e[o[r]]?t[e[o[r]]]=obj.options.meta[o[r]]:t[o[r]]=obj.options.meta[o[r]];obj.options.meta=t}},obj.getStyle=function(e,t){if(e)return e=jexcel.getIdFromColumnName(e,!0),t?obj.records[e[1]][e[0]].style[t]:obj.records[e[1]][e[0]].getAttribute("style");for(var o={},r=obj.options.data[0].length,n=obj.options.data.length,l=0;l<n;l++)for(var s=0;s<r;s++){var i=t?obj.records[l][s].style[t]:obj.records[l][s].getAttribute("style");i&&(o[jexcel.getColumnNameFromId([s,l])]=i)}return o},obj.resetStyle=function(e,t){for(var o=Object.keys(e),r=0;r<o.length;r++){var n=jexcel.getIdFromColumnName(o[r],!0);obj.records[n[1]]&&obj.records[n[1]][n[0]]&&obj.records[n[1]][n[0]].setAttribute("style","")}obj.setStyle(e,null,null,null,t)},obj.setStyle=function(e,t,o,l,r){function n(e,t,o){var r,n=jexcel.getIdFromColumnName(e,!0);obj.records[n[1]]&&obj.records[n[1]][n[0]]&&(0==obj.records[n[1]][n[0]].classList.contains("readonly")||l)&&((r=obj.records[n[1]][n[0]].style[t])!=o||l?obj.records[n[1]][n[0]].style[t]=o:(o="",obj.records[n[1]][n[0]].style[t]=""),i[e]||(i[e]=[]),s[e]||(s[e]=[]),i[e].push([t+":"+r]),s[e].push([t+":"+o]))}var s={},i={};if(t&&o)if("string"==typeof e)n(e,t,o);else for(var a=[],u=0;u<e.length;u++){var c=e[u].getAttribute("data-x"),b=e[u].getAttribute("data-y"),b=jexcel.getColumnNameFromId([c,b]);a[b]||(n(b,t,o),a[b]=!0)}else for(var p=Object.keys(e),u=0;u<p.length;u++){var d=e[p[u]];"string"==typeof d&&(d=d.split(";"));for(var j=0;j<d.length;j++)"string"==typeof d[j]&&(d[j]=d[j].split(":")),d[j][0].trim()&&n(p[u],d[j][0].trim(),d[j][1])}for(p=Object.keys(i),u=0;u<p.length;u++)i[p[u]]=i[p[u]].join(";");for(p=Object.keys(s),u=0;u<p.length;u++)s[p[u]]=s[p[u]].join(";");r||obj.setHistory({action:"setStyle",oldValue:i,newValue:s}),obj.dispatch("onchangestyle",el,e,t,o)},obj.getComments=function(e,t){if(e)return"string"==typeof e&&(e=jexcel.getIdFromColumnName(e,!0)),t?[obj.records[e[1]][e[0]].getAttribute("title"),obj.records[e[1]][e[0]].getAttribute("author")]:obj.records[e[1]][e[0]].getAttribute("title")||"";for(var o={},r=0;r<obj.options.data.length;r++)for(var n=0;n<obj.options.columns.length;n++){var l=obj.records[r][n].getAttribute("title");l&&(o[e=jexcel.getColumnNameFromId([n,r])]=l)}return o},obj.setComments=function(e,t,o){var r;r="string"==typeof e?jexcel.getIdFromColumnName(e,!0):e;var n=obj.records[r[1]][r[0]].getAttribute("title"),l=[n,o=obj.records[r[1]][r[0]].getAttribute("data-author")];obj.records[r[1]][r[0]].setAttribute("title",t||""),obj.records[r[1]][r[0]].setAttribute("data-author",o||""),t?obj.records[r[1]][r[0]].classList.add("jexcel_comments"):obj.records[r[1]][r[0]].classList.remove("jexcel_comments"),obj.setHistory({action:"setComments",column:e,newValue:[t,o],oldValue:l}),obj.dispatch("oncomments",el,t,n)},obj.getConfig=function(){var e=obj.options;return e.style=obj.getStyle(),e.mergeCells=obj.getMerge(),e.comments=obj.getComments(),e},obj.orderBy=function(e,t){if(0<=e){if(0<Object.keys(obj.options.mergeCells).length){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}t=null==t?obj.headers[e].classList.contains("arrow-down")?1:0:t?1:0;var o=[];if("number"==obj.options.columns[e].type||"percentage"==obj.options.columns[e].type||"autonumber"==obj.options.columns[e].type||"color"==obj.options.columns[e].type)for(var r=0;r<obj.options.data.length;r++)o[r]=[r,Number(obj.options.data[r][e])];else if("calendar"==obj.options.columns[e].type||"checkbox"==obj.options.columns[e].type||"radio"==obj.options.columns[e].type)for(r=0;r<obj.options.data.length;r++)o[r]=[r,obj.options.data[r][e]];else for(r=0;r<obj.options.data.length;r++)o[r]=[r,obj.records[r][e].innerText.toLowerCase()];"function"!=typeof obj.options.sorting&&(obj.options.sorting=function(o){return function(e,t){e=e[1],t=t[1];return o?""===e&&""!==t?1:""!==e&&""===t||t<e?-1:e<t?1:0:""===e&&""!==t?1:""!==e&&""===t?-1:t<e?1:e<t?-1:0}}),o=o.sort(obj.options.sorting(t));for(var n=[],r=0;r<o.length;r++)n[r]=o[r][0];return obj.setHistory({action:"orderBy",rows:n,column:e,order:t}),obj.updateOrderArrow(e,t),obj.updateOrder(n),obj.dispatch("onsort",el,e,t),!0}},obj.updateOrderArrow=function(e,t){for(var o=0;o<obj.headers.length;o++)obj.headers[o].classList.remove("arrow-up"),obj.headers[o].classList.remove("arrow-down");t?obj.headers[e].classList.add("arrow-up"):obj.headers[e].classList.add("arrow-down")},obj.updateOrder=function(e){for(var t=[],o=0;o<e.length;o++)t[o]=obj.options.data[e[o]];obj.options.data=t;for(t=[],o=0;o<e.length;o++)t[o]=obj.records[e[o]];obj.records=t;for(t=[],o=0;o<e.length;o++)t[o]=obj.rows[e[o]];if(obj.rows=t,obj.updateTableReferences(),obj.results&&obj.results.length)obj.searchInput.value?obj.search(obj.searchInput.value):obj.closeFilter();else if(obj.results=null,(obj.pageNumber=0)<obj.options.pagination)obj.page(0);else if(1==obj.options.lazyLoading)obj.loadPage(0);else for(o=0;o<obj.rows.length;o++)obj.tbody.appendChild(obj.rows[o])},obj.moveRow=function(e,t,o){var r;if(0<Object.keys(obj.options.mergeCells).length&&(r=t<e?1:0,obj.isRowMerged(e).length||obj.isRowMerged(t,r).length)){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}if(1==obj.options.search){if(obj.results&&obj.results.length!=obj.rows.length){if(!confirm(obj.options.text.thisActionWillClearYourSearchResultsAreYouSure))return!1;obj.resetSearch()}obj.results=null}o||(0<=Array.prototype.indexOf.call(obj.tbody.children,obj.rows[t])?t<e?obj.tbody.insertBefore(obj.rows[e],obj.rows[t]):obj.tbody.insertBefore(obj.rows[e],obj.rows[t].nextSibling):obj.tbody.removeChild(obj.rows[e])),obj.rows.splice(t,0,obj.rows.splice(e,1)[0]),obj.records.splice(t,0,obj.records.splice(e,1)[0]),obj.options.data.splice(t,0,obj.options.data.splice(e,1)[0]),0<obj.options.pagination&&obj.tbody.children.length!=obj.options.pagination&&obj.page(obj.pageNumber),obj.setHistory({action:"moveRow",oldValue:e,newValue:t}),obj.updateTableReferences(),obj.dispatch("onmoverow",el,e,t)},obj.insertRow=function(e,t,o){if(1==obj.options.allowInsertRow){var r,n=[];0<e?r=e:(r=1,e&&(n=e));var o=!!o,l=obj.options.data.length-1;if((null==t||t>=parseInt(l)||t<0)&&(t=l),!1===obj.dispatch("onbeforeinsertrow",el,t,r,o))return console.log("onbeforeinsertrow returned false"),!1;if(0<Object.keys(obj.options.mergeCells).length&&obj.isRowMerged(t,o).length){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}if(1==obj.options.search){if(obj.results&&obj.results.length!=obj.rows.length){if(!confirm(obj.options.text.thisActionWillClearYourSearchResultsAreYouSure))return!1;obj.resetSearch()}obj.results=null}for(var s=o?t:t+1,e=obj.records.splice(s),l=obj.options.data.splice(s),i=obj.rows.splice(s),a=[],u=[],c=[],b=s;b<r+s;b++){obj.options.data[b]=[];for(var p=0;p<obj.options.columns.length;p++)obj.options.data[b][p]=n[p]||"";var d=obj.createRow(b,obj.options.data[b]);i[0]?0<=Array.prototype.indexOf.call(obj.tbody.children,i[0])&&obj.tbody.insertBefore(d,i[0]):0<=Array.prototype.indexOf.call(obj.tbody.children,obj.rows[t])&&obj.tbody.appendChild(d),a.push(obj.records[b]),u.push(obj.options.data[b]),c.push(d)}Array.prototype.push.apply(obj.records,e),Array.prototype.push.apply(obj.options.data,l),Array.prototype.push.apply(obj.rows,i),0<obj.options.pagination&&obj.page(obj.pageNumber),obj.setHistory({action:"insertRow",rowNumber:t,numOfRows:r,insertBefore:o,rowRecords:a,rowData:u,rowNode:c}),obj.updateTableReferences(),obj.dispatch("oninsertrow",el,t,r,a,o)}},obj.deleteRow=function(e,t){if(1==obj.options.allowDeleteRow)if(1==obj.options.allowDeletingAllRows||1<obj.options.data.length){null==e&&(t=(s=obj.getSelectedRows())[0]?(e=parseInt(s[0].getAttribute("data-y")),s.length):(e=obj.options.data.length-1,1));var o=obj.options.data.length-1;if((null==e||o<e||e<0)&&(e=o),e+(t=t||1)>=obj.options.data.length&&(t=obj.options.data.length-e),!1===obj.dispatch("onbeforedeleterow",el,e,t))return console.log("onbeforedeleterow returned false"),!1;if(-1<parseInt(e)){var r=!1;if(0<Object.keys(obj.options.mergeCells).length)for(var n=e;n<e+t;n++)obj.isRowMerged(n,!1).length&&(r=!0);if(r){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}if(1==obj.options.search){if(obj.results&&obj.results.length!=obj.rows.length){if(!confirm(obj.options.text.thisActionWillClearYourSearchResultsAreYouSure))return!1;obj.resetSearch()}obj.results=null}0==obj.options.allowDeletingAllRows&&1+o===t&&(t--,console.error("Jspreadsheet: It is not possible to delete the last row"));for(n=e;n<e+t;n++)0<=Array.prototype.indexOf.call(obj.tbody.children,obj.rows[n])&&(obj.rows[n].className="",obj.rows[n].parentNode.removeChild(obj.rows[n]));var l=obj.records.splice(e,t),s=obj.options.data.splice(e,t),o=obj.rows.splice(e,t);0<obj.options.pagination&&obj.tbody.children.length!=obj.options.pagination&&obj.page(obj.pageNumber),obj.conditionalSelectionUpdate(1,e,e+t-1),obj.setHistory({action:"deleteRow",rowNumber:e,numOfRows:t,insertBefore:1,rowRecords:l,rowData:s,rowNode:o}),obj.updateTableReferences(),obj.dispatch("ondeleterow",el,e,t,l)}}else console.error("Jspreadsheet: It is not possible to delete the last row")},obj.moveColumn=function(e,t){var o;if(0<Object.keys(obj.options.mergeCells).length&&(o=t<e?1:0,obj.isColMerged(e).length||obj.isColMerged(t,o).length)){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}e=parseInt(e);if((t=parseInt(t))<e){obj.headerContainer.insertBefore(obj.headers[e],obj.headers[t]),obj.colgroupContainer.insertBefore(obj.colgroup[e],obj.colgroup[t]);for(var r=0;r<obj.rows.length;r++)obj.rows[r].insertBefore(obj.records[r][e],obj.records[r][t])}else{obj.headerContainer.insertBefore(obj.headers[e],obj.headers[t].nextSibling),obj.colgroupContainer.insertBefore(obj.colgroup[e],obj.colgroup[t].nextSibling);for(r=0;r<obj.rows.length;r++)obj.rows[r].insertBefore(obj.records[r][e],obj.records[r][t].nextSibling)}obj.options.columns.splice(t,0,obj.options.columns.splice(e,1)[0]),obj.headers.splice(t,0,obj.headers.splice(e,1)[0]),obj.colgroup.splice(t,0,obj.colgroup.splice(e,1)[0]);for(r=0;r<obj.rows.length;r++)obj.options.data[r].splice(t,0,obj.options.data[r].splice(e,1)[0]),obj.records[r].splice(t,0,obj.records[r].splice(e,1)[0]);if(obj.options.footers)for(r=0;r<obj.options.footers.length;r++)obj.options.footers[r].splice(t,0,obj.options.footers[r].splice(e,1)[0]);obj.setHistory({action:"moveColumn",oldValue:e,newValue:t}),obj.updateTableReferences(),obj.dispatch("onmovecolumn",el,e,t)},obj.insertColumn=function(e,t,o,r){if(1==obj.options.allowInsertColumn){var n,l=[];0<e?n=e:(n=1,e&&(l=e));var o=!!o,s=obj.options.columns.length-1;if((null==t||t>=parseInt(s)||t<0)&&(t=s),!1===obj.dispatch("onbeforeinsertcolumn",el,t,n,o))return console.log("onbeforeinsertcolumn returned false"),!1;if(0<Object.keys(obj.options.mergeCells).length&&obj.isColMerged(t,o).length){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}r=r||[];for(var i=0;i<n;i++)r[i]||(r[i]={type:"text",source:[],options:[],width:obj.options.defaultColWidth,align:obj.options.defaultColAlign});var a=o?t:t+1;obj.options.columns=jexcel.injectArray(obj.options.columns,a,r);for(var e=obj.headers.splice(a),s=obj.colgroup.splice(a),u=[],c=[],b=[],p=[],d=[],j=a;j<n+a;j++)obj.createCellHeader(j),obj.headerContainer.insertBefore(obj.headers[j],obj.headerContainer.children[j+1]),obj.colgroupContainer.insertBefore(obj.colgroup[j],obj.colgroupContainer.children[j+1]),u.push(obj.headers[j]),c.push(obj.colgroup[j]);if(obj.options.footers)for(var h=0;h<obj.options.footers.length;h++){d[h]=[];for(i=0;i<n;i++)d[h].push("");obj.options.footers[h].splice(a,0,d[h])}for(var f=0;f<obj.options.data.length;f++){var g=obj.options.data[f].splice(a),m=obj.records[f].splice(a);p[f]=[],b[f]=[];for(j=a;j<n+a;j++){var v=l[f]||"";obj.options.data[f][j]=v;var x=obj.createCell(j,f,obj.options.data[f][j]);obj.records[f][j]=x,obj.rows[f]&&obj.rows[f].insertBefore(x,obj.rows[f].children[j+1]),p[f].push(v),b[f].push(x)}Array.prototype.push.apply(obj.options.data[f],g),Array.prototype.push.apply(obj.records[f],m)}if(Array.prototype.push.apply(obj.headers,e),Array.prototype.push.apply(obj.colgroup,s),obj.options.nestedHeaders&&0<obj.options.nestedHeaders.length)if(obj.options.nestedHeaders[0]&&obj.options.nestedHeaders[0][0])for(h=0;h<obj.options.nestedHeaders.length;h++){var y=parseInt(obj.options.nestedHeaders[h][obj.options.nestedHeaders[h].length-1].colspan)+n;obj.options.nestedHeaders[h][obj.options.nestedHeaders[h].length-1].colspan=y,obj.thead.children[h].children[obj.thead.children[h].children.length-1].setAttribute("colspan",y);for(var C=(C=obj.thead.children[h].children[obj.thead.children[h].children.length-1].getAttribute("data-column")).split(","),j=a;j<n+a;j++)C.push(j);obj.thead.children[h].children[obj.thead.children[h].children.length-1].setAttribute("data-column",C)}else{y=parseInt(obj.options.nestedHeaders[0].colspan)+n;obj.options.nestedHeaders[0].colspan=y,obj.thead.children[0].children[obj.thead.children[0].children.length-1].setAttribute("colspan",y)}obj.setHistory({action:"insertColumn",columnNumber:t,numOfColumns:n,insertBefore:o,columns:r,headers:u,colgroup:c,records:b,footers:d,data:p}),obj.updateTableReferences(),obj.dispatch("oninsertcolumn",el,t,n,b,o)}},obj.deleteColumn=function(e,t){if(1==obj.options.allowDeleteColumn)if(1<obj.headers.length){null==e&&(t=(s=obj.getSelectedColumns(!0)).length?(e=parseInt(s[0]),parseInt(s.length)):(e=obj.headers.length-1,1));var o=obj.options.data[0].length-1;if((null==e||o<e||e<0)&&(e=o),(t=t||1)>obj.options.data[0].length-e&&(t=obj.options.data[0].length-e),!1===obj.dispatch("onbeforedeletecolumn",el,e,t))return console.log("onbeforedeletecolumn returned false"),!1;if(-1<parseInt(e)){var r=!1;if(0<Object.keys(obj.options.mergeCells).length)for(var n=e;n<e+t;n++)obj.isColMerged(n,!1).length&&(r=!0);if(r){if(!confirm(obj.options.text.thisActionWillDestroyAnyExistingMergedCellsAreYouSure))return!1;obj.destroyMerged()}for(var l=obj.options.columns.splice(e,t),n=e;n<e+t;n++)obj.colgroup[n].className="",obj.headers[n].className="",obj.colgroup[n].parentNode.removeChild(obj.colgroup[n]),obj.headers[n].parentNode.removeChild(obj.headers[n]);for(var s=obj.headers.splice(e,t),o=obj.colgroup.splice(e,t),i=[],a=[],u=[],c=0;c<obj.options.data.length;c++)for(n=e;n<e+t;n++)obj.records[c][n].className="",obj.records[c][n].parentNode.removeChild(obj.records[c][n]);for(c=0;c<obj.options.data.length;c++)a[c]=obj.options.data[c].splice(e,t),i[c]=obj.records[c].splice(e,t);if(obj.options.footers)for(c=0;c<obj.options.footers.length;c++)u[c]=obj.options.footers[c].splice(e,t);if(obj.conditionalSelectionUpdate(0,e,e+t-1),obj.options.nestedHeaders&&0<obj.options.nestedHeaders.length)if(obj.options.nestedHeaders[0]&&obj.options.nestedHeaders[0][0])for(var b=0;b<obj.options.nestedHeaders.length;b++){var p=parseInt(obj.options.nestedHeaders[b][obj.options.nestedHeaders[b].length-1].colspan)-t;obj.options.nestedHeaders[b][obj.options.nestedHeaders[b].length-1].colspan=p,obj.thead.children[b].children[obj.thead.children[b].children.length-1].setAttribute("colspan",p)}else{p=parseInt(obj.options.nestedHeaders[0].colspan)-t;obj.options.nestedHeaders[0].colspan=p,obj.thead.children[0].children[obj.thead.children[0].children.length-1].setAttribute("colspan",p)}obj.setHistory({action:"deleteColumn",columnNumber:e,numOfColumns:t,insertBefore:1,columns:l,headers:s,colgroup:o,records:i,footers:u,data:a}),obj.updateTableReferences(),obj.dispatch("ondeletecolumn",el,e,t,i)}}else console.error("Jspreadsheet: It is not possible to delete the last column")},obj.getSelectedRows=function(e){for(var t=[],o=0;o<obj.rows.length;o++)obj.rows[o].classList.contains("selected")&&(e?t.push(o):t.push(obj.rows[o]));return t},obj.getSelectedColumns=function(){for(var e=[],t=0;t<obj.headers.length;t++)obj.headers[t].classList.contains("selected")&&e.push(t);return e},obj.getHighlighted=function(){return obj.highlighted},obj.updateTableReferences=function(){for(var e=0;e<obj.headers.length;e++)(b=obj.headers[e].getAttribute("data-x"))!=e&&(obj.headers[e].setAttribute("data-x",e),obj.headers[e].getAttribute("title")||(obj.headers[e].innerHTML=jexcel.getColumnName(e)));for(var t=0;t<obj.rows.length;t++)obj.rows[t]&&(p=obj.rows[t].getAttribute("data-y"))!=t&&(obj.rows[t].setAttribute("data-y",t),obj.rows[t].children[0].setAttribute("data-y",t),obj.rows[t].children[0].innerHTML=t+1);for(var n=[],o=[],r=function(e,t,o,r){e!=o&&obj.records[r][o].setAttribute("data-x",o),t!=r&&obj.records[r][o].setAttribute("data-y",r),e==o&&t==r||(t=jexcel.getColumnNameFromId([e,t]),r=jexcel.getColumnNameFromId([o,r]),n[t]=r)},t=0;t<obj.records.length;t++)for(var l,s,e=0;e<obj.records[0].length;e++)obj.records[t][e]&&(b=obj.records[t][e].getAttribute("data-x"),p=obj.records[t][e].getAttribute("data-y"),obj.records[t][e].getAttribute("data-merged")?(u=jexcel.getColumnNameFromId([b,p]),c=jexcel.getColumnNameFromId([e,t]),null==o[u]&&(u==c?o[u]=!1:(l=parseInt(e-b),s=parseInt(t-p),o[u]=[c,l,s]))):r(b,p,e,t));var i=Object.keys(o);if(i.length)for(e=0;e<i.length;e++)if(o[i[e]]){var a=jexcel.getIdFromColumnName(i[e],!0);r(b=a[0],p=a[1],b+o[i[e]][1],p+o[i[e]][2]);for(var u=i[e],c=o[i[e]][0],t=0;t<obj.options.mergeCells[u][2].length;t++){var b=parseInt(obj.options.mergeCells[u][2][t].getAttribute("data-x")),p=parseInt(obj.options.mergeCells[u][2][t].getAttribute("data-y"));obj.options.mergeCells[u][2][t].setAttribute("data-x",b+o[i[e]][1]),obj.options.mergeCells[u][2][t].setAttribute("data-y",p+o[i[e]][2])}obj.options.mergeCells[c]=obj.options.mergeCells[u],delete obj.options.mergeCells[u]}obj.updateFormulas(n),obj.updateMeta(n),obj.refreshSelection(),obj.updateTable()},obj.updateTable=function(){if(0<obj.options.minSpareRows){for(var e=0,t=obj.rows.length-1;0<=t;t--){for(var o=!1,r=0;r<obj.headers.length;r++)obj.options.data[t][r]&&(o=!0);if(o)break;e++}0<obj.options.minSpareRows-e&&obj.insertRow(obj.options.minSpareRows-e)}if(0<obj.options.minSpareCols){for(var n=0,r=obj.headers.length-1;0<=r;r--){for(o=!1,t=0;t<obj.rows.length;t++)obj.options.data[t][r]&&(o=!0);if(o)break;n++}0<obj.options.minSpareCols-n&&obj.insertColumn(obj.options.minSpareCols-n)}if("function"==typeof obj.options.updateTable){obj.options.detachForUpdates&&el.removeChild(obj.content);for(t=0;t<obj.rows.length;t++)for(r=0;r<obj.headers.length;r++)obj.options.updateTable(el,obj.records[t][r],r,t,obj.options.data[t][r],obj.records[t][r].innerText,jexcel.getColumnNameFromId([r,t]));obj.options.detachForUpdates&&el.insertBefore(obj.content,obj.pagination)}obj.options.footers&&obj.setFooter(),setTimeout(function(){obj.updateCornerPosition()},0)},obj.isReadOnly=function(e){if(e=obj.getCell(e))return!!e.classList.contains("readonly")},obj.setReadOnly=function(e,t){(e=obj.getCell(e))&&(t?e.classList.add("readonly"):e.classList.remove("readonly"))},obj.showRow=function(e){obj.rows[e].style.display=""},obj.hideRow=function(e){obj.rows[e].style.display="none"},obj.showColumn=function(e){obj.headers[e].style.display="",obj.colgroup[e].style.display="";for(var t=0;t<obj.options.data.length;t++)obj.records[t][e].style.display=""},obj.hideColumn=function(e){obj.headers[e].style.display="none",obj.colgroup[e].style.display="none";for(var t=0;t<obj.options.data.length;t++)obj.records[t][e].style.display="none"},obj.showIndex=function(){obj.table.classList.remove("jexcel_hidden_index")},obj.hideIndex=function(){obj.table.classList.add("jexcel_hidden_index")};var chainLoopProtection=[];obj.updateFormulaChain=function(e,t,o){var r=jexcel.getColumnNameFromId([e,t]);if(obj.formula[r]&&0<obj.formula[r].length)if(chainLoopProtection[r])obj.records[t][e].innerHTML="#ERROR",obj.formula[r]="";else{chainLoopProtection[r]=!0;for(var n=0;n<obj.formula[r].length;n++){var l=jexcel.getIdFromColumnName(obj.formula[r][n],!0),s=""+obj.options.data[l[1]][l[0]];"="==s.substr(0,1)?o.push(obj.updateCell(l[0],l[1],s,!0)):Object.keys(obj.formula)[n]=null,obj.updateFormulaChain(l[0],l[1],o)}}chainLoopProtection=[]},obj.updateFormulas=function(e){for(var t=0;t<obj.options.data.length;t++)for(var o,r=0;r<obj.options.data[0].length;r++)"="!=(i=""+obj.options.data[t][r]).substr(0,1)||(o=obj.updateFormula(i,e))!=i&&(obj.options.data[t][r]=o);for(var n=[],l=Object.keys(obj.formula),t=0;t<l.length;t++){var s=l[t],i=obj.formula[s];e[s]&&(s=e[s]),n[s]=[];for(r=0;r<i.length;r++){var a=i[r];e[a]&&(a=e[a]),n[s].push(a)}}obj.formula=n},obj.updateFormula=function(e,t){for(var o=/[A-Z]/,r=/[0-9]/,n="",l=null,s=null,i="",a=0;a<e.length;a++)o.exec(e[a])?(l=1,s=0,i+=e[a]):r.exec(e[a])?(s=l?1:0,i+=e[a]):(l&&s&&(i=t[i]||i),n+=i,n+=e[a],s=l=0,i="");return i&&(l&&s&&(i=t[i]||i),n+=i),n};var secureFormula=function(e){for(var t="",o=0,r=0;r<e.length;r++)'"'==e[r]&&(o=0==o?1:0),t+=1==o?e[r]:e[r].toUpperCase();return t};obj.executeFormula=function(expression,x,y){var formulaResults=[],formulaLoopProtection=[],execute=function(expression,x,y){var parentId=jexcel.getColumnNameFromId([x,y]);if(formulaLoopProtection[parentId])return console.error("Reference loop detected"),"#ERROR";formulaLoopProtection[parentId]=!0;var tokensUpdate=function(e){for(var t=0;t<e.length;t++){var o,r,n,l,s=[],i=e[t].split(":"),a=jexcel.getIdFromColumnName(i[0],!0),i=jexcel.getIdFromColumnName(i[1],!0);r=a[0]<=i[0]?(o=a[0],i[0]):(o=i[0],a[0]),l=a[1]<=i[1]?(n=a[1],i[1]):(n=i[1],a[1]);for(var u=n;u<=l;u++)for(var c=o;c<=r;c++)s.push(jexcel.getColumnNameFromId([c,u]));expression=expression.replace(e[t],s.join(","))}};expression=expression.replace(/\$?([A-Z]+)\$?([0-9]+)/g,"$1$2");var tokens=expression.match(/([A-Z]+[0-9]+)\:([A-Z]+[0-9]+)/g);tokens&&tokens.length&&tokensUpdate(tokens);var evalstring="",tokens=expression.match(/([A-Z]+[0-9]+)/g);if(tokens&&-1<tokens.indexOf(parentId))return console.error("Self Reference detected"),"#ERROR";if(tokens)for(var i=0,position,value,value,number;i<tokens.length;i++){obj.formula[tokens[i]]||(obj.formula[tokens[i]]=[]),obj.formula[tokens[i]].indexOf(parentId)<0&&obj.formula[tokens[i]].push(parentId),eval("typeof("+tokens[i]+') == "undefined"')&&(position=jexcel.getIdFromColumnName(tokens[i],1),value=void 0!==obj.options.data[position[1]]&&void 0!==obj.options.data[position[1]][position[0]]?obj.options.data[position[1]][position[0]]:"","="==(""+value).substr(0,1)&&(formulaResults[tokens[i]]?value=formulaResults[tokens[i]]:(value=execute(value,position[0],position[1]),formulaResults[tokens[i]]=value)),""==(""+value).trim()?evalstring+="var "+tokens[i]+" = null;":value==Number(value)&&1==obj.options.autoCasting?evalstring+="var "+tokens[i]+" = "+Number(value)+";":(number=obj.parseNumber(value,position[0]),1==obj.options.autoCasting&&number?evalstring+="var "+tokens[i]+" = "+number+";":evalstring+="var "+tokens[i]+" = '"+value+"';"))}try{evalstring+="function COLUMN() { return parseInt(x) + 1; }; function ROW() { return parseInt(y) + 1; }; function CELL() { return parentId; }; function TABLE() { return obj; }; function VALUE(col, row) { return obj.records[row-1][col-1].innerHTML; }; function THISROWCELL(col) { var id = jexcel.getIdFromColumnName(col+(parseInt(y)+1), true); return obj.records[id[1]][id[0]].innerHTML; }";var res=eval(evalstring+expression.substr(1))}catch(e){var res="#ERROR"}return res};return execute(expression,x,y)},obj.parseNumber=function(e,t){var o=t&&obj.options.columns[t].decimal?obj.options.columns[t].decimal:".",t=""+e;return(t=t.split(o))[0]=t[0].match(/[+-]?[0-9]/g),t[0]&&(t[0]=t[0].join("")),t[1]&&(t[1]=t[1].match(/[0-9]*/g).join("")),e=t[0]&&0<=Number(t[0])?t[1]?Number(t[0]+"."+t[1]):Number(t[0]+".00"):null},obj.row=function(e){},obj.col=function(e){},obj.up=function(e,t){var o;e?0<obj.selectedCell[3]&&obj.up.visible(1,t?0:1):(0<obj.selectedCell[1]&&obj.up.visible(0,t?0:1),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),1==obj.options.lazyLoading?0==obj.selectedCell[1]||0==obj.selectedCell[3]?(obj.loadPage(0),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3])):obj.loadValidation()?obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]):(o=parseInt(obj.tbody.firstChild.getAttribute("data-y")),obj.selectedCell[1]-o<30&&(obj.loadUp(),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]))):0<obj.options.pagination&&((o=obj.whichPage(obj.selectedCell[3]))!=obj.pageNumber&&obj.page(o)),obj.updateScroll(1)},obj.up.visible=function(e,t){var o,r;if(r=0==e?(o=parseInt(obj.selectedCell[0]),parseInt(obj.selectedCell[1])):(o=parseInt(obj.selectedCell[2]),parseInt(obj.selectedCell[3])),0==t){for(var n=0;n<r;n++)if("none"!=obj.records[n][o].style.display&&"none"!=obj.rows[n].style.display){r=n;break}}else r=obj.up.get(o,r);0==e?(obj.selectedCell[0]=o,obj.selectedCell[1]=r):(obj.selectedCell[2]=o,obj.selectedCell[3]=r)},obj.up.get=function(e,t){for(var e=parseInt(e),o=(t=parseInt(t))-1;0<=o;o--)if("none"!=obj.records[o][e].style.display&&"none"!=obj.rows[o].style.display&&(!obj.records[o][e].getAttribute("data-merged")||obj.records[o][e]!=obj.records[t][e])){t=o;break}return t},obj.down=function(e,t){e?obj.selectedCell[3]<obj.records.length-1&&obj.down.visible(1,t?0:1):(obj.selectedCell[1]<obj.records.length-1&&obj.down.visible(0,t?0:1),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),1==obj.options.lazyLoading?obj.selectedCell[1]==obj.records.length-1||obj.selectedCell[3]==obj.records.length-1?(obj.loadPage(-1),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3])):obj.loadValidation()?obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]):parseInt(obj.tbody.lastChild.getAttribute("data-y"))-obj.selectedCell[3]<30&&(obj.loadDown(),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3])):0<obj.options.pagination&&((t=obj.whichPage(obj.selectedCell[3]))!=obj.pageNumber&&obj.page(t)),obj.updateScroll(3)},obj.down.visible=function(e,t){var o,r;if(r=0==e?(o=parseInt(obj.selectedCell[0]),parseInt(obj.selectedCell[1])):(o=parseInt(obj.selectedCell[2]),parseInt(obj.selectedCell[3])),0==t){for(var n=obj.rows.length-1;r<n;n--)if("none"!=obj.records[n][o].style.display&&"none"!=obj.rows[n].style.display){r=n;break}}else r=obj.down.get(o,r);0==e?(obj.selectedCell[0]=o,obj.selectedCell[1]=r):(obj.selectedCell[2]=o,obj.selectedCell[3]=r)},obj.down.get=function(e,t){for(var e=parseInt(e),o=(t=parseInt(t))+1;o<obj.rows.length;o++)if("none"!=obj.records[o][e].style.display&&"none"!=obj.rows[o].style.display&&(!obj.records[o][e].getAttribute("data-merged")||obj.records[o][e]!=obj.records[t][e])){t=o;break}return t},obj.right=function(e,t){e?obj.selectedCell[2]<obj.headers.length-1&&obj.right.visible(1,t?0:1):(obj.selectedCell[0]<obj.headers.length-1&&obj.right.visible(0,t?0:1),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),obj.updateScroll(2)},obj.right.visible=function(e,t){var o,r;if(r=0==e?(o=parseInt(obj.selectedCell[0]),parseInt(obj.selectedCell[1])):(o=parseInt(obj.selectedCell[2]),parseInt(obj.selectedCell[3])),0==t){for(var n=obj.headers.length-1;o<n;n--)if("none"!=obj.records[r][n].style.display){o=n;break}}else o=obj.right.get(o,r);0==e?(obj.selectedCell[0]=o,obj.selectedCell[1]=r):(obj.selectedCell[2]=o,obj.selectedCell[3]=r)},obj.right.get=function(e,t){for(var e=parseInt(e),t=parseInt(t),o=e+1;o<obj.headers.length;o++)if("none"!=obj.records[t][o].style.display&&(!obj.records[t][o].getAttribute("data-merged")||obj.records[t][o]!=obj.records[t][e])){e=o;break}return e},obj.left=function(e,t){e?0<obj.selectedCell[2]&&obj.left.visible(1,t?0:1):(0<obj.selectedCell[0]&&obj.left.visible(0,t?0:1),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),obj.updateScroll(0)},obj.left.visible=function(e,t){var o,r;if(r=0==e?(o=parseInt(obj.selectedCell[0]),parseInt(obj.selectedCell[1])):(o=parseInt(obj.selectedCell[2]),parseInt(obj.selectedCell[3])),0==t){for(var n=0;n<o;n++)if("none"!=obj.records[r][n].style.display){o=n;break}}else o=obj.left.get(o,r);0==e?(obj.selectedCell[0]=o,obj.selectedCell[1]=r):(obj.selectedCell[2]=o,obj.selectedCell[3]=r)},obj.left.get=function(e,t){for(var e=parseInt(e),t=parseInt(t),o=e-1;0<=o;o--)if("none"!=obj.records[t][o].style.display&&(!obj.records[t][o].getAttribute("data-merged")||obj.records[t][o]!=obj.records[t][e])){e=o;break}return e},obj.first=function(e,t){e?t?obj.selectedCell[3]=0:obj.left.visible(1,0):(t?obj.selectedCell[1]=0:obj.left.visible(0,0),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),1!=obj.options.lazyLoading||0!=obj.selectedCell[1]&&0!=obj.selectedCell[3]?0<obj.options.pagination&&((t=obj.whichPage(obj.selectedCell[3]))!=obj.pageNumber&&obj.page(t)):obj.loadPage(0),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),obj.updateScroll(1)},obj.last=function(e,t){e?t?obj.selectedCell[3]=obj.records.length-1:obj.right.visible(1,0):(t?obj.selectedCell[1]=obj.records.length-1:obj.right.visible(0,0),obj.selectedCell[2]=obj.selectedCell[0],obj.selectedCell[3]=obj.selectedCell[1]),1!=obj.options.lazyLoading||obj.selectedCell[1]!=obj.records.length-1&&obj.selectedCell[3]!=obj.records.length-1?0<obj.options.pagination&&((t=obj.whichPage(obj.selectedCell[3]))!=obj.pageNumber&&obj.page(t)):obj.loadPage(-1),obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3]),obj.updateScroll(3)},obj.selectAll=function(){obj.selectedCell||(obj.selectedCell=[]),obj.selectedCell[0]=0,obj.selectedCell[1]=0,obj.selectedCell[2]=obj.headers.length-1,obj.selectedCell[3]=obj.records.length-1,obj.updateSelectionFromCoords(obj.selectedCell[0],obj.selectedCell[1],obj.selectedCell[2],obj.selectedCell[3])},obj.loadPage=function(e){var t;t=1==obj.options.search&&obj.results?obj.results:obj.rows;null!=e&&-1!=e||(e=Math.ceil(t.length/100)-1);var o=100*e,r=100*e+100;r>t.length&&(r=t.length),(o=r-100)<0&&(o=0);for(var n=o;n<r;n++)1==obj.options.search&&obj.results?obj.tbody.appendChild(obj.rows[t[n]]):obj.tbody.appendChild(obj.rows[n]),100<obj.tbody.children.length&&obj.tbody.removeChild(obj.tbody.firstChild)},obj.loadUp=function(){var e,t=0;if(100<(e=1==obj.options.search&&obj.results?obj.results:obj.rows).length){var o=parseInt(obj.tbody.firstChild.getAttribute("data-y"));if(1==obj.options.search&&obj.results&&(o=e.indexOf(o)),0<o)for(var r=0;r<30;r++)-1<--o&&(1==obj.options.search&&obj.results?obj.tbody.insertBefore(obj.rows[e[o]],obj.tbody.firstChild):obj.tbody.insertBefore(obj.rows[o],obj.tbody.firstChild),100<obj.tbody.children.length&&(obj.tbody.removeChild(obj.tbody.lastChild),t=1))}return t},obj.loadDown=function(){var e,t=0;if(100<(e=1==obj.options.search&&obj.results?obj.results:obj.rows).length){var o=parseInt(obj.tbody.lastChild.getAttribute("data-y"));if(1==obj.options.search&&obj.results&&(o=e.indexOf(o)),o<obj.rows.length-1)for(var r=0;r<=30;r++)o<e.length&&(1==obj.options.search&&obj.results?obj.tbody.appendChild(obj.rows[e[o]]):obj.tbody.appendChild(obj.rows[o]),100<obj.tbody.children.length&&(obj.tbody.removeChild(obj.tbody.firstChild),t=1)),o+=1}return t},obj.loadValidation=function(){if(obj.selectedCell){var e=parseInt(obj.tbody.firstChild.getAttribute("data-y"))/100,t=parseInt(obj.selectedCell[3]/100),o=parseInt(obj.rows.length/100);if(e!=t&&t<=o&&!Array.prototype.indexOf.call(obj.tbody.children,obj.rows[obj.selectedCell[3]]))return obj.loadPage(t),!0}return!1},obj.resetSearch=function(){obj.searchInput.value="",obj.search(""),obj.results=null},obj.search=function(s){var i;return s=s&&s.toLowerCase(),obj.options.filters&&obj.resetFilters(),obj.resetSelection(),obj.pageNumber=0,obj.results=[],s?(i=function(e){-1==obj.results.indexOf(e)&&obj.results.push(e)},obj.options.data.filter(function(e,t){if(function(e,t,o){for(var r=0;r<e.length;r++)if(0<=(""+e[r]).toLowerCase().search(t)||0<=(""+obj.records[o][r].innerHTML).toLowerCase().search(t))return!0;return!1}(e,s,t)){var o=obj.isRowMerged(t);if(o.length)for(var r=0;r<o.length;r++)for(var n=jexcel.getIdFromColumnName(o[r],!0),l=0;l<obj.options.mergeCells[o[r]][1];l++)i(n[1]+l);else i(t);return!0}return!1})):obj.results=null,obj.updateResult()},obj.updateResult=function(){for(var e=0,t=0,e=1==obj.options.lazyLoading?100:0<obj.options.pagination?obj.options.pagination:(obj.results||obj.rows).length;obj.tbody.firstChild;)obj.tbody.removeChild(obj.tbody.firstChild);for(var o=0;o<obj.rows.length;o++)!obj.results||-1<obj.results.indexOf(o)?(t<e&&(obj.tbody.appendChild(obj.rows[o]),t++),obj.rows[o].style.display=""):obj.rows[o].style.display="none";return 0<obj.options.pagination&&obj.updatePagination(),obj.updateCornerPosition(),e},obj.whichPage=function(e){return 1==obj.options.search&&obj.results&&(e=obj.results.indexOf(e)),Math.ceil((parseInt(e)+1)/parseInt(obj.options.pagination))-1},obj.page=function(e){var t,o=obj.pageNumber;t=1==obj.options.search&&obj.results?obj.results:obj.rows;var r=parseInt(obj.options.pagination);null!=e&&-1!=e||(e=Math.ceil(t.length/r)-1);var n=(obj.pageNumber=e)*r,l=e*r+r;for(l>t.length&&(l=t.length),n<0&&(n=0);obj.tbody.firstChild;)obj.tbody.removeChild(obj.tbody.firstChild);for(var s=n;s<l;s++)1==obj.options.search&&obj.results?obj.tbody.appendChild(obj.rows[t[s]]):obj.tbody.appendChild(obj.rows[s]);0<obj.options.pagination&&obj.updatePagination(),obj.updateCornerPosition(),obj.dispatch("onchangepage",el,e,o)},obj.updatePagination=function(){if(obj.pagination.children[0].innerHTML="",obj.pagination.children[1].innerHTML="",obj.options.pagination)if(o=(1==obj.options.search&&obj.results?obj.results:obj.rows).length){var e,t,o=Math.ceil(o/obj.options.pagination);obj.pageNumber<6?(e=1,t=o<10?o:10):o-obj.pageNumber<5?(e=(t=o)-9)<1&&(e=1):(e=obj.pageNumber-4,t=obj.pageNumber+5),1<e&&((r=document.createElement("div")).className="jexcel_page",r.innerHTML="<",r.title=1,obj.pagination.children[1].appendChild(r));for(var r,n=e;n<=t;n++)(r=document.createElement("div")).className="jexcel_page",r.innerHTML=n,obj.pagination.children[1].appendChild(r),obj.pageNumber==n-1&&r.classList.add("jexcel_page_selected");t<o&&((r=document.createElement("div")).className="jexcel_page",r.innerHTML=">",r.title=o,obj.pagination.children[1].appendChild(r));obj.pagination.children[0].innerHTML=function(e){var o=Array.prototype.slice.call(arguments,1);return e.replace(/{(\d+)}/g,function(e,t){return void 0!==o[t]?o[t]:e})}(obj.options.text.showingPage,obj.pageNumber+1,o)}else obj.pagination.children[0].innerHTML=obj.options.text.noRecordsFound},obj.download=function(e){var t;0==obj.options.allowExport?console.error("Export not allowed"):(t="",1!=e&&1!=obj.options.includeHeadersOnDownload||(t+=obj.getHeaders().replace(/\s+/gm," "),t+="\r\n"),t+=obj.copy(!1,obj.options.csvDelimiter,!0),e=new Blob(["\ufeff"+t],{type:"text/csv;charset=utf-8;"}),window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(e,obj.options.csvFileName+".csv"):(t=document.createElement("a"),e=URL.createObjectURL(e),t.href=e,t.setAttribute("download",obj.options.csvFileName+".csv"),document.body.appendChild(t),t.click(),t.parentNode.removeChild(t)))},obj.setHistory=function(e){var t;1!=obj.ignoreHistory&&(t=++obj.historyIndex,obj.history=obj.history=obj.history.slice(0,1+t),obj.history[t]=e)},obj.copy=function(e,t,o){t=t||"\t";var r=[],n=[],l=[],s=[],i=[],a=obj.options.data[0].length,u=obj.options.data.length,c="",b=obj.options.includeHeadersOnCopy;obj.style=[];for(var p=0;p<u;p++){n=[],l=[];for(var d,j,h=0;h<a;h++)e&&!obj.records[p][h].classList.contains("highlight")||(1==b&&r.push(obj.headers[h].innerText),(d=obj.options.data[p][h]).match&&(d.match(/,/g)||d.match(/\n/)||d.match(/\"/))&&(d='"'+(d=d.replace(new RegExp('"',"g"),'""'))+'"'),n.push(d),"checkbox"==obj.options.columns[h].type||"radio"==obj.options.columns[h].type?j=d:(j=1==obj.options.stripHTMLOnCopy?obj.records[p][h].innerText:obj.records[p][h].innerHTML).match&&(j.match(/,/g)||j.match(/\n/)||j.match(/\"/))&&(j='"'+(j=j.replace(new RegExp('"',"g"),'""'))+'"'),l.push(j),c=(c=obj.records[p][h].getAttribute("style")).replace("display: none;",""),obj.style.push(c||""));n.length&&(b&&s.push(r.join(t)),s.push(n.join(t))),l.length&&(b&&i.push(r.join(t)),i.push(l.join(t))),b=!1}var f=s.join("\r\n"),g=i.join("\r\n");if(o||(1==obj.options.copyCompatibility?obj.textarea.value=g:obj.textarea.value=f,obj.textarea.select(),document.execCommand("copy")),1==obj.options.copyCompatibility?obj.data=g:obj.data=f,obj.hashString=obj.hash(obj.data),!o){if(obj.removeCopyingSelection(),obj.highlighted)for(h=0;h<obj.highlighted.length;h++)obj.highlighted[h].classList.add("copying"),obj.highlighted[h].classList.contains("highlight-left")&&obj.highlighted[h].classList.add("copying-left"),obj.highlighted[h].classList.contains("highlight-right")&&obj.highlighted[h].classList.add("copying-right"),obj.highlighted[h].classList.contains("highlight-top")&&obj.highlighted[h].classList.add("copying-top"),obj.highlighted[h].classList.contains("highlight-bottom")&&obj.highlighted[h].classList.add("copying-bottom");obj.dispatch("oncopy",el,1==obj.options.copyCompatibility?i:s,obj.hashString)}return obj.data},obj.paste=function(e,t,o){var r=obj.dispatch("onbeforepaste",el,o,e,t);if(!1===r)return!1;r&&(o=r);var r=obj.hash(o),n=r==obj.hashString?obj.style:null;1==obj.options.copyCompatibility&&r==obj.hashString&&(o=obj.data);o=obj.parseCSV(o,"\t");if(null!=e&&null!=t&&o){for(var l,s=0,i=0,a=[],u={},c={},b=0,p=parseInt(e),d=parseInt(t);l=o[i];){for(s=0,p=parseInt(e);null!=l[s];){var j=obj.updateCell(p,d,l[s]);a.push(j),obj.updateFormulaChain(p,d,a),n&&n[b]&&(u[j=jexcel.getColumnNameFromId([p,d])]=n[b],c[j]=obj.getStyle(j),obj.records[d][p].setAttribute("style",n[b]),b++),null!=l[++s]&&(p>=obj.headers.length-1&&obj.insertColumn(),p=obj.right.get(p,d))}o[++i]&&(d>=obj.rows.length-1&&obj.insertRow(),d=obj.down.get(e,d))}obj.updateSelectionFromCoords(e,t,p,d),obj.setHistory({action:"setValue",records:a,selection:obj.selectedCell,newStyle:u,oldStyle:c}),obj.updateTable(),obj.dispatch("onpaste",el,o),obj.onafterchanges(el,a)}obj.removeCopyingSelection()},obj.removeCopyingSelection=function(){for(var e=document.querySelectorAll(".jexcel .copying"),t=0;t<e.length;t++)e[t].classList.remove("copying"),e[t].classList.remove("copying-left"),e[t].classList.remove("copying-right"),e[t].classList.remove("copying-top"),e[t].classList.remove("copying-bottom")},obj.historyProcessRow=function(e,t){var o=t.insertBefore?t.rowNumber:t.rowNumber+1;if(1==obj.options.search&&obj.results&&obj.results.length!=obj.rows.length&&obj.resetSearch(),1==e){for(var r=t.numOfRows,n=o;n<r+o;n++)obj.rows[n].parentNode.removeChild(obj.rows[n]);obj.records.splice(o,r),obj.options.data.splice(o,r),obj.rows.splice(o,r),obj.conditionalSelectionUpdate(1,o,r+o-1)}else{obj.records=jexcel.injectArray(obj.records,o,t.rowRecords),obj.options.data=jexcel.injectArray(obj.options.data,o,t.rowData),obj.rows=jexcel.injectArray(obj.rows,o,t.rowNode);for(var l=0,n=o;n<t.numOfRows+o;n++)obj.tbody.insertBefore(t.rowNode[l],obj.tbody.children[n]),l++}0<obj.options.pagination&&obj.page(obj.pageNumber),obj.updateTableReferences()},obj.historyProcessColumn=function(e,t){var o=t.insertBefore?t.columnNumber:t.columnNumber+1;if(1==e){var r=t.numOfColumns;obj.options.columns.splice(o,r);for(var n=o;n<r+o;n++)obj.headers[n].parentNode.removeChild(obj.headers[n]),obj.colgroup[n].parentNode.removeChild(obj.colgroup[n]);obj.headers.splice(o,r),obj.colgroup.splice(o,r);for(var l=0;l<t.data.length;l++){for(n=o;n<r+o;n++)obj.records[l][n].parentNode.removeChild(obj.records[l][n]);obj.records[l].splice(o,r),obj.options.data[l].splice(o,r)}if(obj.options.footers)for(l=0;l<obj.options.footers.length;l++)obj.options.footers[l].splice(o,r)}else{obj.options.columns=jexcel.injectArray(obj.options.columns,o,t.columns),obj.headers=jexcel.injectArray(obj.headers,o,t.headers),obj.colgroup=jexcel.injectArray(obj.colgroup,o,t.colgroup);for(var s=0,n=o;n<t.numOfColumns+o;n++)obj.headerContainer.insertBefore(t.headers[s],obj.headerContainer.children[n+1]),obj.colgroupContainer.insertBefore(t.colgroup[s],obj.colgroupContainer.children[n+1]),s++;for(l=0;l<t.data.length;l++){obj.options.data[l]=jexcel.injectArray(obj.options.data[l],o,t.data[l]),obj.records[l]=jexcel.injectArray(obj.records[l],o,t.records[l]);for(s=0,n=o;n<t.numOfColumns+o;n++)obj.rows[l].insertBefore(t.records[l][s],obj.rows[l].children[n+1]),s++}if(obj.options.footers)for(l=0;l<obj.options.footers.length;l++)obj.options.footers[l]=jexcel.injectArray(obj.options.footers[l],o,t.footers[l])}if(obj.options.nestedHeaders&&0<obj.options.nestedHeaders.length)if(obj.options.nestedHeaders[0]&&obj.options.nestedHeaders[0][0])for(var i,l=0;l<obj.options.nestedHeaders.length;l++)i=1==e?parseInt(obj.options.nestedHeaders[l][obj.options.nestedHeaders[l].length-1].colspan)-t.numOfColumns:parseInt(obj.options.nestedHeaders[l][obj.options.nestedHeaders[l].length-1].colspan)+t.numOfColumns,obj.options.nestedHeaders[l][obj.options.nestedHeaders[l].length-1].colspan=i,obj.thead.children[l].children[obj.thead.children[l].children.length-1].setAttribute("colspan",i);else i=1==e?parseInt(obj.options.nestedHeaders[0].colspan)-t.numOfColumns:parseInt(obj.options.nestedHeaders[0].colspan)+t.numOfColumns,obj.options.nestedHeaders[0].colspan=i,obj.thead.children[0].children[obj.thead.children[0].children.length-1].setAttribute("colspan",i);obj.updateTableReferences()},obj.undo=function(){var e=!!obj.ignoreEvents,t=!!obj.ignoreHistory;obj.ignoreEvents=!0,obj.ignoreHistory=!0;var o=[];if(0<=obj.historyIndex){var r=obj.history[obj.historyIndex--];if("insertRow"==r.action)obj.historyProcessRow(1,r);else if("deleteRow"==r.action)obj.historyProcessRow(0,r);else if("insertColumn"==r.action)obj.historyProcessColumn(1,r);else if("deleteColumn"==r.action)obj.historyProcessColumn(0,r);else if("moveRow"==r.action)obj.moveRow(r.newValue,r.oldValue);else if("moveColumn"==r.action)obj.moveColumn(r.newValue,r.oldValue);else if("setMerge"==r.action)obj.removeMerge(r.column,r.data);else if("setStyle"==r.action)obj.setStyle(r.oldValue,null,null,1);else if("setWidth"==r.action)obj.setWidth(r.column,r.oldValue);else if("setHeight"==r.action)obj.setHeight(r.row,r.oldValue);else if("setHeader"==r.action)obj.setHeader(r.column,r.oldValue);else if("setComments"==r.action)obj.setComments(r.column,r.oldValue[0],r.oldValue[1]);else if("orderBy"==r.action){for(var n=[],l=0;l<r.rows.length;l++)n[r.rows[l]]=l;obj.updateOrderArrow(r.column,r.order?0:1),obj.updateOrder(n)}else if("setValue"==r.action){for(var s=0;s<r.records.length;s++)o.push({x:r.records[s].x,y:r.records[s].y,newValue:r.records[s].oldValue}),r.oldStyle&&obj.resetStyle(r.oldStyle);obj.setValue(o),r.selection&&obj.updateSelectionFromCoords(r.selection[0],r.selection[1],r.selection[2],r.selection[3])}}obj.ignoreEvents=e,obj.ignoreHistory=t,obj.dispatch("onundo",el,r)},obj.redo=function(){var e=!!obj.ignoreEvents,t=!!obj.ignoreHistory;obj.ignoreEvents=!0,obj.ignoreHistory=!0;if(obj.historyIndex<obj.history.length-1){var o=obj.history[++obj.historyIndex];if("insertRow"==o.action)obj.historyProcessRow(0,o);else if("deleteRow"==o.action)obj.historyProcessRow(1,o);else if("insertColumn"==o.action)obj.historyProcessColumn(0,o);else if("deleteColumn"==o.action)obj.historyProcessColumn(1,o);else if("moveRow"==o.action)obj.moveRow(o.oldValue,o.newValue);else if("moveColumn"==o.action)obj.moveColumn(o.oldValue,o.newValue);else if("setMerge"==o.action)obj.setMerge(o.column,o.colspan,o.rowspan,1);else if("setStyle"==o.action)obj.setStyle(o.newValue,null,null,1);else if("setWidth"==o.action)obj.setWidth(o.column,o.newValue);else if("setHeight"==o.action)obj.setHeight(o.row,o.newValue);else if("setHeader"==o.action)obj.setHeader(o.column,o.newValue);else if("setComments"==o.action)obj.setComments(o.column,o.newValue[0],o.newValue[1]);else if("orderBy"==o.action)obj.updateOrderArrow(o.column,o.order),obj.updateOrder(o.rows);else if("setValue"==o.action){obj.setValue(o.records);for(var r=0;r<o.records.length;r++)o.oldStyle&&obj.resetStyle(o.newStyle);o.selection&&obj.updateSelectionFromCoords(o.selection[0],o.selection[1],o.selection[2],o.selection[3])}}obj.ignoreEvents=e,obj.ignoreHistory=t,obj.dispatch("onredo",el,o)},obj.getDropDownValue=function(e,t){var o=[];if(obj.options.columns[e]&&obj.options.columns[e].source){for(var r=[],n=obj.options.columns[e].source,l=0;l<n.length;l++)"object"==typeof n[l]?r[n[l].id]=n[l].name:r[n[l]]=n[l];for(var s=Array.isArray(t)?t:(""+t).split(";"),l=0;l<s.length;l++)"object"==typeof s[l]?o.push(r[s[l].id]):r[s[l]]&&o.push(r[s[l]])}else console.error("Invalid column");return 0<o.length?o.join("; "):""},obj.parseCSV=function(e,t){9==(e=e.replace(/\r?\n$|\r$|\n$/g,"")).charCodeAt(e.length-1)&&(e+="\0"),t=t||",";for(var o=[],r=!1,n=0,l=0,s=0;s<e.length;s++){var i=e[s],a=e[s+1];o[n]=o[n]||[],o[n][l]=o[n][l]||"",'"'==i&&r&&'"'==a?(o[n][l]+=i,++s):'"'!=i?i!=t||r?"\r"!=i||"\n"!=a||r?("\n"!=i||r)&&("\r"!=i||r)?o[n][l]+=i:(++n,l=0):(++n,l=0,++s):++l:r=!r}return o},obj.hash=function(e){var t,o=0;if(0===e.length)return o;for(t=0;t<e.length;t++)o=(o<<5)-o+e.charCodeAt(t),o|=0;return o},obj.onafterchanges=function(e,t){obj.dispatch("onafterchanges",e,t)},obj.destroy=function(){jexcel.destroy(el)},obj.init=function(){jexcel.current=obj,"function"==typeof jexcel.build&&(obj.options.root?jexcel.build(obj.options.root):(jexcel.build(document),jexcel.build=null)),el.setAttribute("tabindex",1),el.addEventListener("focus",function(e){jexcel.current&&!obj.selectedCell&&(obj.updateSelectionFromCoords(0,0,0,0),obj.left())}),obj.options.csv?(1==obj.options.loadingSpin&&jSuites.loading.show(),jSuites.ajax({url:obj.options.csv,method:obj.options.method,data:obj.options.requestVariables,dataType:"text",success:function(e){e=obj.parseCSV(e,obj.options.csvDelimiter);if(1==obj.options.csvHeaders&&0<e.length)for(var t=e.shift(),o=0;o<t.length;o++)obj.options.columns[o]||(obj.options.columns[o]={type:"text",align:obj.options.defaultColAlign,width:obj.options.defaultColWidth}),void 0===obj.options.columns[o].title&&(obj.options.columns[o].title=t[o]);obj.options.data=e,obj.prepareTable(),1==obj.options.loadingSpin&&jSuites.loading.hide()}})):obj.options.url?(1==obj.options.loadingSpin&&jSuites.loading.show(),jSuites.ajax({url:obj.options.url,method:obj.options.method,data:obj.options.requestVariables,dataType:"json",success:function(e){obj.options.data=e.data||e,obj.prepareTable(),1==obj.options.loadingSpin&&jSuites.loading.hide()}})):obj.prepareTable()},options&&null!=options.contextMenu?obj.options.contextMenu=options.contextMenu:obj.options.contextMenu=function(e,t,o,r){var n,l=[];return null==o?(1==obj.options.allowInsertColumn&&l.push({title:obj.options.text.insertANewColumnBefore,onclick:function(){obj.insertColumn(1,parseInt(t),1)}}),1==obj.options.allowInsertColumn&&l.push({title:obj.options.text.insertANewColumnAfter,onclick:function(){obj.insertColumn(1,parseInt(t),0)}}),1==obj.options.allowDeleteColumn&&l.push({title:obj.options.text.deleteSelectedColumns,onclick:function(){obj.deleteColumn(obj.getSelectedColumns().length?void 0:parseInt(t))}}),1==obj.options.allowRenameColumn&&l.push({title:obj.options.text.renameThisColumn,onclick:function(){obj.setHeader(t)}}),1==obj.options.columnSorting&&(l.push({type:"line"}),l.push({title:obj.options.text.orderAscending,onclick:function(){obj.orderBy(t,0)}}),l.push({title:obj.options.text.orderDescending,onclick:function(){obj.orderBy(t,1)}}))):(1==obj.options.allowInsertRow&&(l.push({title:obj.options.text.insertANewRowBefore,onclick:function(){obj.insertRow(1,parseInt(o),1)}}),l.push({title:obj.options.text.insertANewRowAfter,onclick:function(){obj.insertRow(1,parseInt(o))}})),1==obj.options.allowDeleteRow&&l.push({title:obj.options.text.deleteSelectedRows,onclick:function(){obj.deleteRow(obj.getSelectedRows().length?void 0:parseInt(o))}}),t&&1==obj.options.allowComments&&(l.push({type:"line"}),n=obj.records[o][t].getAttribute("title")||"",l.push({title:n?obj.options.text.editComments:obj.options.text.addComments,onclick:function(){var e=prompt(obj.options.text.comments,n);e&&obj.setComments([t,o],e)}}),n&&l.push({title:obj.options.text.clearComments,onclick:function(){obj.setComments([t,o],"")}}))),l.push({type:"line"}),l.push({title:obj.options.text.copy,shortcut:"Ctrl + C",onclick:function(){obj.copy(!0)}}),navigator&&navigator.clipboard&&l.push({title:obj.options.text.paste,shortcut:"Ctrl + V",onclick:function(){obj.selectedCell&&navigator.clipboard.readText().then(function(e){e&&jexcel.current.paste(obj.selectedCell[0],obj.selectedCell[1],e)})}}),obj.options.allowExport&&l.push({title:obj.options.text.saveAs,shortcut:"Ctrl + S",onclick:function(){obj.download()}}),obj.options.about&&l.push({title:obj.options.text.about,onclick:function(){!0===obj.options.about?alert(Version().print()):alert(obj.options.about)}}),l},obj.scrollControls=function(e){obj.wheelControls(),0<obj.options.freezeColumns&&obj.content.scrollLeft!=scrollLeft&&obj.updateFreezePosition(),1!=obj.options.lazyLoading&&1!=obj.options.tableOverflow||obj.edition&&"jdropdown"!=e.target.className.substr(0,9)&&obj.closeEditor(obj.edition[0],!0)},obj.wheelControls=function(e){1==obj.options.lazyLoading&&null==jexcel.timeControlLoading&&(jexcel.timeControlLoading=setTimeout(function(){obj.content.scrollTop+obj.content.clientHeight>=obj.content.scrollHeight-10?obj.loadDown()&&(obj.content.scrollTop+obj.content.clientHeight>obj.content.scrollHeight-10&&(obj.content.scrollTop=obj.content.scrollTop-obj.content.clientHeight),obj.updateCornerPosition()):obj.content.scrollTop<=obj.content.clientHeight&&obj.loadUp()&&(obj.content.scrollTop<10&&(obj.content.scrollTop=obj.content.scrollTop+obj.content.clientHeight),obj.updateCornerPosition()),jexcel.timeControlLoading=null},100))},obj.getFreezeWidth=function(){var e=0;if(0<obj.options.freezeColumns)for(var t=0;t<obj.options.freezeColumns;t++)e+=parseInt(obj.options.columns[t].width);return e};var scrollLeft=0;return obj.updateFreezePosition=function(){var e=0;if(50<(scrollLeft=obj.content.scrollLeft))for(var t=0;t<obj.options.freezeColumns;t++){0<t&&(e+=parseInt(obj.options.columns[t-1].width)),obj.headers[t].classList.add("jexcel_freezed"),obj.headers[t].style.left=e+"px";for(var o,r=0;r<obj.rows.length;r++)obj.rows[r]&&obj.records[r][t]&&(o=scrollLeft+(0<t?obj.records[r][t-1].style.width:0)-51+"px",obj.records[r][t].classList.add("jexcel_freezed"),obj.records[r][t].style.left=o)}else for(t=0;t<obj.options.freezeColumns;t++){obj.headers[t].classList.remove("jexcel_freezed"),obj.headers[t].style.left="";for(r=0;r<obj.rows.length;r++)obj.records[r][t]&&(obj.records[r][t].classList.remove("jexcel_freezed"),obj.records[r][t].style.left="")}obj.updateCornerPosition()},el.addEventListener("DOMMouseScroll",obj.wheelControls),el.addEventListener("mousewheel",obj.wheelControls),el.jexcel=obj,el.jspreadsheet=obj,obj.init(),obj},Ss;jexcel.version=Version,jexcel.current=null,jexcel.timeControl=null,jexcel.timeControlLoading=null,jexcel.destroy=function(e,t){var o;e.jexcel&&(o=e.jexcel.options.root||document,e.removeEventListener("DOMMouseScroll",e.jexcel.scrollControls),e.removeEventListener("mousewheel",e.jexcel.scrollControls),e.jexcel=null,e.innerHTML="",t&&(o.removeEventListener("mouseup",jexcel.mouseUpControls),o.removeEventListener("mousedown",jexcel.mouseDownControls),o.removeEventListener("mousemove",jexcel.mouseMoveControls),o.removeEventListener("mouseover",jexcel.mouseOverControls),o.removeEventListener("dblclick",jexcel.doubleClickControls),o.removeEventListener("paste",jexcel.pasteControls),o.removeEventListener("contextmenu",jexcel.contextMenuControls),o.removeEventListener("touchstart",jexcel.touchStartControls),o.removeEventListener("touchend",jexcel.touchEndControls),o.removeEventListener("touchcancel",jexcel.touchEndControls),document.removeEventListener("keydown",jexcel.keyDownControls),jexcel=null))},jexcel.build=function(e){e.addEventListener("mouseup",jexcel.mouseUpControls),e.addEventListener("mousedown",jexcel.mouseDownControls),e.addEventListener("mousemove",jexcel.mouseMoveControls),e.addEventListener("mouseover",jexcel.mouseOverControls),e.addEventListener("dblclick",jexcel.doubleClickControls),e.addEventListener("paste",jexcel.pasteControls),e.addEventListener("contextmenu",jexcel.contextMenuControls),e.addEventListener("touchstart",jexcel.touchStartControls),e.addEventListener("touchend",jexcel.touchEndControls),e.addEventListener("touchcancel",jexcel.touchEndControls),e.addEventListener("touchmove",jexcel.touchEndControls),document.addEventListener("keydown",jexcel.keyDownControls)},jexcel.keyDownControls=function(e){var t,o,r;jexcel.current&&(jexcel.current.edition&&(27==e.which?(jexcel.current.edition&&jexcel.current.closeEditor(jexcel.current.edition[0],!1),e.preventDefault()):13==e.which?"calendar"==jexcel.current.options.columns[jexcel.current.edition[2]].type?jexcel.current.closeEditor(jexcel.current.edition[0],!0):"dropdown"==jexcel.current.options.columns[jexcel.current.edition[2]].type||"autocomplete"==jexcel.current.options.columns[jexcel.current.edition[2]].type||((1==jexcel.current.options.wordWrap||1==jexcel.current.options.columns[jexcel.current.edition[2]].wordWrap||200<jexcel.current.options.data[jexcel.current.edition[3]][jexcel.current.edition[2]].length)&&e.altKey?(o=jexcel.current.edition[0].children[0],t=jexcel.current.edition[0].children[0].value,r=o.selectionStart,t=t.slice(0,r)+"\n"+t.slice(r),o.value=t,o.focus(),o.selectionStart=r+1,o.selectionEnd=r+1):jexcel.current.edition[0].children[0].blur()):9==e.which&&("calendar"==jexcel.current.options.columns[jexcel.current.edition[2]].type?jexcel.current.closeEditor(jexcel.current.edition[0],!0):jexcel.current.edition[0].children[0].blur())),!jexcel.current.edition&&jexcel.current.selectedCell?37==e.which?(jexcel.current.left(e.shiftKey,e.ctrlKey),e.preventDefault()):39==e.which?(jexcel.current.right(e.shiftKey,e.ctrlKey),e.preventDefault()):38==e.which?(jexcel.current.up(e.shiftKey,e.ctrlKey),e.preventDefault()):40==e.which?(jexcel.current.down(e.shiftKey,e.ctrlKey),e.preventDefault()):36==e.which?(jexcel.current.first(e.shiftKey,e.ctrlKey),e.preventDefault()):35==e.which?(jexcel.current.last(e.shiftKey,e.ctrlKey),e.preventDefault()):32==e.which?(1==jexcel.current.options.editable&&jexcel.current.setCheckRadioValue(),e.preventDefault()):46==e.which?1==jexcel.current.options.editable&&(jexcel.current.selectedRow?1==jexcel.current.options.allowDeleteRow&&confirm(jexcel.current.options.text.areYouSureToDeleteTheSelectedRows)&&jexcel.current.deleteRow():jexcel.current.selectedHeader?1==jexcel.current.options.allowDeleteColumn&&confirm(jexcel.current.options.text.areYouSureToDeleteTheSelectedColumns)&&jexcel.current.deleteColumn():jexcel.current.setValue(jexcel.current.highlighted,"")):13==e.which?(e.shiftKey?jexcel.current.up():(1==jexcel.current.options.allowInsertRow&&1==jexcel.current.options.allowManualInsertRow&&jexcel.current.selectedCell[1]==jexcel.current.options.data.length-1&&jexcel.current.insertRow(),jexcel.current.down()),e.preventDefault()):9==e.which?(e.shiftKey?jexcel.current.left():(1==jexcel.current.options.allowInsertColumn&&1==jexcel.current.options.allowManualInsertColumn&&jexcel.current.selectedCell[0]==jexcel.current.options.data[0].length-1&&jexcel.current.insertColumn(),jexcel.current.right()),e.preventDefault()):!e.ctrlKey&&!e.metaKey||e.shiftKey?jexcel.current.selectedCell&&1==jexcel.current.options.editable&&(o=jexcel.current.selectedCell[1],r=jexcel.current.selectedCell[0],"readonly"!=jexcel.current.options.columns[r].type&&(32==e.keyCode?"checkbox"==jexcel.current.options.columns[r].type||"radio"==jexcel.current.options.columns[r].type?e.preventDefault():jexcel.current.openEditor(jexcel.current.records[o][r],!0):113==e.keyCode?jexcel.current.openEditor(jexcel.current.records[o][r],!1):(8==e.keyCode||48<=e.keyCode&&e.keyCode<=57||96<=e.keyCode&&e.keyCode<=111||187<=e.keyCode&&e.keyCode<=190||(String.fromCharCode(e.keyCode)==e.key||String.fromCharCode(e.keyCode).toLowerCase()==e.key.toLowerCase())&&jexcel.validLetter(String.fromCharCode(e.keyCode)))&&(jexcel.current.openEditor(jexcel.current.records[o][r],!0),"calendar"==jexcel.current.options.columns[r].type&&e.preventDefault()))):65==e.which?(jexcel.current.selectAll(),e.preventDefault()):83==e.which?(jexcel.current.download(),e.preventDefault()):89==e.which?(jexcel.current.redo(),e.preventDefault()):90==e.which?(jexcel.current.undo(),e.preventDefault()):67==e.which?(jexcel.current.copy(!0),e.preventDefault()):88==e.which?(1==jexcel.current.options.editable?jexcel.cutControls():jexcel.copyControls(),e.preventDefault()):86==e.which&&jexcel.pasteControls():e.target.classList.contains("jexcel_search")&&(jexcel.timeControl&&clearTimeout(jexcel.timeControl),jexcel.timeControl=setTimeout(function(){jexcel.current.search(e.target.value)},200)))},jexcel.isMouseAction=!1,jexcel.mouseDownControls=function(e){var t;t=(e=e||window.event).buttons||e.button||e.which;var o,r,n,l,s=jexcel.getElement(e.target);if(s[0]?jexcel.current!=s[0].jexcel&&(jexcel.current&&(jexcel.current.edition&&jexcel.current.closeEditor(jexcel.current.edition[0],!0),jexcel.current.resetSelection()),jexcel.current=s[0].jexcel):jexcel.current&&(jexcel.current.edition&&jexcel.current.closeEditor(jexcel.current.edition[0],!0),jexcel.current.resetSelection(!0),jexcel.current=null),jexcel.current&&1==t){if(e.target.classList.contains("jexcel_selectall"))jexcel.current&&jexcel.current.selectAll();else if(e.target.classList.contains("jexcel_corner"))1==jexcel.current.options.editable&&(jexcel.current.selectedCorner=!0);else{if(1==s[1])if(l=e.target.getAttribute("data-x")){var i,a,u=e.target.getBoundingClientRect();if(1==jexcel.current.options.columnResize&&u.width-e.offsetX<6){jexcel.current.resizing={mousePosition:e.pageX,column:l,width:u.width},jexcel.current.headers[l].classList.add("resizing");for(var c=0;c<jexcel.current.records.length;c++)jexcel.current.records[c][l]&&jexcel.current.records[c][l].classList.add("resizing")}else if(1==jexcel.current.options.columnDrag&&u.height-e.offsetY<6)if(jexcel.current.isColMerged(l).length)console.error("Jspreadsheet: This column is part of a merged cell.");else{jexcel.current.resetSelection(),jexcel.current.dragging={element:e.target,column:l,destination:l},jexcel.current.headers[l].classList.add("dragging");for(c=0;c<jexcel.current.records.length;c++)jexcel.current.records[c][l]&&jexcel.current.records[c][l].classList.add("dragging")}else a=jexcel.current.selectedHeader&&(e.shiftKey||e.ctrlKey)?(i=jexcel.current.selectedHeader,l):(jexcel.current.selectedHeader==l&&1==jexcel.current.options.allowRenameColumn&&(jexcel.timeControl=setTimeout(function(){jexcel.current.setHeader(l)},800)),i=jexcel.current.selectedHeader=l),jexcel.current.updateSelectionFromCoords(i,0,a,jexcel.current.options.data.length-1)}else e.target.parentNode.classList.contains("jexcel_nested")&&(r=e.target.getAttribute("data-column")?(r=e.target.getAttribute("data-column").split(","),o=parseInt(r[0]),parseInt(r[r.length-1])):(o=0,jexcel.current.options.columns.length-1),jexcel.current.updateSelectionFromCoords(o,0,r,jexcel.current.options.data.length-1));else jexcel.current.selectedHeader=!1;2==s[1]?(s=e.target.getAttribute("data-y"),e.target.classList.contains("jexcel_row")?(u=e.target.getBoundingClientRect(),1==jexcel.current.options.rowResize&&u.height-e.offsetY<6?(jexcel.current.resizing={element:e.target.parentNode,mousePosition:e.pageY,row:s,height:u.height},e.target.parentNode.classList.add("resizing")):1==jexcel.current.options.rowDrag&&u.width-e.offsetX<6?jexcel.current.isRowMerged(s).length?console.error("Jspreadsheet: This row is part of a merged cell"):1==jexcel.current.options.search&&jexcel.current.results?console.error("Jspreadsheet: Please clear your search before perform this action"):(jexcel.current.resetSelection(),jexcel.current.dragging={element:e.target.parentNode,row:s,destination:s},e.target.parentNode.classList.add("dragging")):(a=jexcel.current.selectedRow&&(e.shiftKey||e.ctrlKey)?(i=jexcel.current.selectedRow,s):i=jexcel.current.selectedRow=s,jexcel.current.updateSelectionFromCoords(0,i,jexcel.current.options.data[0].length-1,a))):e.target.classList.contains("jclose")&&e.target.clientWidth-e.offsetX<50&&e.offsetY<50?jexcel.current.closeEditor(jexcel.current.edition[0],!0):(a=(n=function(e){var t=e.getAttribute("data-x"),o=e.getAttribute("data-y");return t&&o?[t,o]:e.parentNode?n(e.parentNode):void 0})(e.target))&&(l=a[0],s=a[1],jexcel.current.edition&&(jexcel.current.edition[2]==l&&jexcel.current.edition[3]==s||jexcel.current.closeEditor(jexcel.current.edition[0],!0)),jexcel.current.edition||(e.shiftKey?jexcel.current.updateSelectionFromCoords(jexcel.current.selectedCell[0],jexcel.current.selectedCell[1],l,s):jexcel.current.updateSelectionFromCoords(l,s)),jexcel.current.selectedHeader=null,jexcel.current.selectedRow=null)):jexcel.current.selectedRow=!1,e.target.classList.contains("jexcel_page")&&("<"==e.target.innerText?jexcel.current.page(0):">"==e.target.innerText?jexcel.current.page(e.target.getAttribute("title")-1):jexcel.current.page(e.target.innerText-1))}jexcel.current.edition?jexcel.isMouseAction=!1:jexcel.isMouseAction=!0}else jexcel.isMouseAction=!1},jexcel.mouseUpControls=function(e){if(jexcel.current)if(jexcel.current.resizing){if(jexcel.current.resizing.column){var t=jexcel.current.colgroup[jexcel.current.resizing.column].getAttribute("width"),o=jexcel.current.getSelectedColumns();if(1<o.length){for(var r=[],n=0;n<o.length;n++)r.push(parseInt(jexcel.current.colgroup[o[n]].getAttribute("width")));r[o.indexOf(parseInt(jexcel.current.resizing.column))]=jexcel.current.resizing.width,jexcel.current.setWidth(o,t,r)}else jexcel.current.setWidth(jexcel.current.resizing.column,t,jexcel.current.resizing.width);jexcel.current.headers[jexcel.current.resizing.column].classList.remove("resizing");for(var l=0;l<jexcel.current.records.length;l++)jexcel.current.records[l][jexcel.current.resizing.column]&&jexcel.current.records[l][jexcel.current.resizing.column].classList.remove("resizing")}else{jexcel.current.rows[jexcel.current.resizing.row].children[0].classList.remove("resizing");t=jexcel.current.rows[jexcel.current.resizing.row].getAttribute("height");jexcel.current.setHeight(jexcel.current.resizing.row,t,jexcel.current.resizing.height),jexcel.current.resizing.element.classList.remove("resizing")}jexcel.current.resizing=null}else if(jexcel.current.dragging){if(jexcel.current.dragging){if(jexcel.current.dragging.column){e=e.target.getAttribute("data-x");jexcel.current.headers[jexcel.current.dragging.column].classList.remove("dragging");for(l=0;l<jexcel.current.rows.length;l++)jexcel.current.records[l][jexcel.current.dragging.column]&&jexcel.current.records[l][jexcel.current.dragging.column].classList.remove("dragging");for(n=0;n<jexcel.current.headers.length;n++)jexcel.current.headers[n].classList.remove("dragging-left"),jexcel.current.headers[n].classList.remove("dragging-right");e&&jexcel.current.dragging.column!=jexcel.current.dragging.destination&&jexcel.current.moveColumn(jexcel.current.dragging.column,jexcel.current.dragging.destination)}else{var s;jexcel.current.dragging.element.nextSibling?(s=parseInt(jexcel.current.dragging.element.nextSibling.getAttribute("data-y")),jexcel.current.dragging.row<s&&--s):s=parseInt(jexcel.current.dragging.element.previousSibling.getAttribute("data-y")),jexcel.current.dragging.row!=jexcel.current.dragging.destination&&jexcel.current.moveRow(jexcel.current.dragging.row,s,!0),jexcel.current.dragging.element.classList.remove("dragging")}jexcel.current.dragging=null}}else jexcel.current.selectedCorner&&(jexcel.current.selectedCorner=!1,0<jexcel.current.selection.length&&(jexcel.current.copyData(jexcel.current.selection[0],jexcel.current.selection[jexcel.current.selection.length-1]),jexcel.current.removeCopySelection()));jexcel.timeControl&&(clearTimeout(jexcel.timeControl),jexcel.timeControl=null),jexcel.isMouseAction=!1},jexcel.mouseMoveControls=function(e){var t,o,r,n;(e=e||window.event).buttons||e.button||e.which||(jexcel.isMouseAction=!1),jexcel.current&&(1==jexcel.isMouseAction?jexcel.current.resizing&&(jexcel.current.resizing.column?(t=e.pageX-jexcel.current.resizing.mousePosition,0<jexcel.current.resizing.width+t&&(o=jexcel.current.resizing.width+t,jexcel.current.colgroup[jexcel.current.resizing.column].setAttribute("width",o),jexcel.current.updateCornerPosition())):(r=e.pageY-jexcel.current.resizing.mousePosition,0<jexcel.current.resizing.height+r&&(n=jexcel.current.resizing.height+r,jexcel.current.rows[jexcel.current.resizing.row].setAttribute("height",n),jexcel.current.updateCornerPosition()))):(o=e.target.getAttribute("data-x"),r=e.target.getAttribute("data-y"),n=e.target.getBoundingClientRect(),jexcel.current.cursor&&(jexcel.current.cursor.style.cursor="",jexcel.current.cursor=null),e.target.parentNode.parentNode&&e.target.parentNode.parentNode.className&&(e.target.parentNode.parentNode.classList.contains("resizable")&&(e.target&&o&&!r&&n.width-(e.clientX-n.left)<6?(jexcel.current.cursor=e.target,jexcel.current.cursor.style.cursor="col-resize"):e.target&&!o&&r&&n.height-(e.clientY-n.top)<6&&(jexcel.current.cursor=e.target,jexcel.current.cursor.style.cursor="row-resize")),e.target.parentNode.parentNode.classList.contains("draggable")&&(e.target&&!o&&r&&n.width-(e.clientX-n.left)<6||e.target&&o&&!r&&n.height-(e.clientY-n.top)<6)&&(jexcel.current.cursor=e.target,jexcel.current.cursor.style.cursor="move"))))},jexcel.mouseOverControls=function(e){if((e=e||window.event).buttons||e.button||e.which||(jexcel.isMouseAction=!1),jexcel.current&&1==jexcel.isMouseAction){var t=jexcel.getElement(e.target);if(t[0]){if(jexcel.current!=t[0].jexcel&&jexcel.current)return!1;var o,r,n,l=e.target.getAttribute("data-x"),s=e.target.getAttribute("data-y");if(jexcel.current.dragging)if(jexcel.current.dragging.column){if(l)if(jexcel.current.isColMerged(l).length)console.error("Jspreadsheet: This column is part of a merged cell.");else{for(var i=0;i<jexcel.current.headers.length;i++)jexcel.current.headers[i].classList.remove("dragging-left"),jexcel.current.headers[i].classList.remove("dragging-right");jexcel.current.dragging.column==l?jexcel.current.dragging.destination=parseInt(l):e.target.clientWidth/2>e.offsetX?(jexcel.current.dragging.column<l?jexcel.current.dragging.destination=parseInt(l)-1:jexcel.current.dragging.destination=parseInt(l),jexcel.current.headers[l].classList.add("dragging-left")):(jexcel.current.dragging.column<l?jexcel.current.dragging.destination=parseInt(l):jexcel.current.dragging.destination=parseInt(l)+1,jexcel.current.headers[l].classList.add("dragging-right"))}}else s&&(jexcel.current.isRowMerged(s).length?console.error("Jspreadsheet: This row is part of a merged cell."):(o=e.target.clientHeight/2>e.offsetY?e.target.parentNode.nextSibling:e.target.parentNode,jexcel.current.dragging.element!=o&&(e.target.parentNode.parentNode.insertBefore(jexcel.current.dragging.element,o),jexcel.current.dragging.destination=Array.prototype.indexOf.call(jexcel.current.dragging.element.parentNode.children,jexcel.current.dragging.element))));else jexcel.current.resizing||(1==t[1]&&jexcel.current.selectedHeader&&(l=e.target.getAttribute("data-x"),r=jexcel.current.selectedHeader,n=l,jexcel.current.updateSelectionFromCoords(r,0,n,jexcel.current.options.data.length-1)),2==t[1]&&(e.target.classList.contains("jexcel_row")?jexcel.current.selectedRow&&(r=jexcel.current.selectedRow,n=s,jexcel.current.updateSelectionFromCoords(0,r,jexcel.current.options.data[0].length-1,n)):jexcel.current.edition||l&&s&&(jexcel.current.selectedCorner?jexcel.current.updateCopySelection(l,s):jexcel.current.selectedCell&&jexcel.current.updateSelectionFromCoords(jexcel.current.selectedCell[0],jexcel.current.selectedCell[1],l,s))))}}jexcel.timeControl&&(clearTimeout(jexcel.timeControl),jexcel.timeControl=null)},jexcel.doubleClickControls=function(e){var t,o,r,n,l,s;jexcel.current&&(e.target.classList.contains("jexcel_corner")?0<jexcel.current.highlighted.length&&(t=jexcel.current.highlighted[0].getAttribute("data-x"),o=parseInt(jexcel.current.highlighted[jexcel.current.highlighted.length-1].getAttribute("data-y"))+1,n=jexcel.current.highlighted[jexcel.current.highlighted.length-1].getAttribute("data-x"),r=jexcel.current.records.length-1,jexcel.current.copyData(jexcel.current.records[o][t],jexcel.current.records[r][n])):e.target.classList.contains("jexcel_column_filter")?(l=e.target.getAttribute("data-x"),jexcel.current.openFilter(l)):(1==(n=jexcel.getElement(e.target))[1]&&1==jexcel.current.options.columnSorting&&(l=e.target.getAttribute("data-x"))&&jexcel.current.orderBy(l),2==n[1]&&1==jexcel.current.options.editable&&(jexcel.current.edition||(e=(s=function(e){if(e.parentNode){var t=e.getAttribute("data-x"),o=e.getAttribute("data-y");return t&&o?e:s(e.parentNode)}})(e.target))&&e.classList.contains("highlight")&&jexcel.current.openEditor(e))))},jexcel.copyControls=function(e){jexcel.current&&jexcel.copyControls.enabled&&(jexcel.current.edition||jexcel.current.copy(!0))},jexcel.cutControls=function(e){jexcel.current&&(jexcel.current.edition||(jexcel.current.copy(!0),1==jexcel.current.options.editable&&jexcel.current.setValue(jexcel.current.highlighted,"")))},jexcel.pasteControls=function(e){jexcel.current&&jexcel.current.selectedCell&&(jexcel.current.edition||1==jexcel.current.options.editable&&(e&&e.clipboardData?(jexcel.current.paste(jexcel.current.selectedCell[0],jexcel.current.selectedCell[1],e.clipboardData.getData("text")),e.preventDefault()):window.clipboardData&&jexcel.current.paste(jexcel.current.selectedCell[0],jexcel.current.selectedCell[1],window.clipboardData.getData("text"))))},jexcel.contextMenuControls=function(e){var t,o;"buttons"in(e=e||window.event)?e.buttons:e.which||e.button,jexcel.current&&(jexcel.current.edition?e.preventDefault():jexcel.current.options.contextMenu&&(jexcel.current.contextMenu.contextmenu.close(),jexcel.current&&(t=e.target.getAttribute("data-x"),o=e.target.getAttribute("data-y"),(t||o)&&((t<parseInt(jexcel.current.selectedCell[0])||t>parseInt(jexcel.current.selectedCell[2])||o<parseInt(jexcel.current.selectedCell[1])||o>parseInt(jexcel.current.selectedCell[3]))&&jexcel.current.updateSelectionFromCoords(t,o,t,o),o=jexcel.current.options.contextMenu(jexcel.current,t,o,e),jexcel.current.contextMenu.contextmenu.open(e,o),e.preventDefault()))))},jexcel.touchStartControls=function(e){var t,o=jexcel.getElement(e.target);o[0]?jexcel.current!=o[0].jexcel&&(jexcel.current&&jexcel.current.resetSelection(),jexcel.current=o[0].jexcel):jexcel.current&&(jexcel.current.resetSelection(),jexcel.current=null),jexcel.current&&(jexcel.current.edition||(t=e.target.getAttribute("data-x"),o=e.target.getAttribute("data-y"),t&&o&&(jexcel.current.updateSelectionFromCoords(t,o),jexcel.timeControl=setTimeout(function(){"color"==jexcel.current.options.columns[t].type?jexcel.tmpElement=null:jexcel.tmpElement=e.target,jexcel.current.openEditor(e.target,!1,e)},500))))},jexcel.touchEndControls=function(e){jexcel.timeControl&&(clearTimeout(jexcel.timeControl),jexcel.timeControl=null,jexcel.tmpElement&&"INPUT"==jexcel.tmpElement.children[0].tagName&&jexcel.tmpElement.children[0].focus(),jexcel.tmpElement=null)},jexcel.tabs=function(e,t){var o,r,n,l=[];n=e.classList.contains("jexcel_tabs")?(o=e.children[0],e.children[1]):(e.innerHTML="",e.classList.add("jexcel_tabs"),e.jexcel=[],r=document.createElement("div"),o=e.appendChild(r),r=document.createElement("div"),e.appendChild(r));for(var s=[],i=[],a=0;a<t.length;a++){s[a]=document.createElement("div"),s[a].classList.add("jexcel_tab");var u=jexcel(s[a],t[a]);n.appendChild(s[a]),l[a]=e.jexcel.push(u),i[a]=document.createElement("div"),i[a].classList.add("jexcel_tab_link"),i[a].setAttribute("data-spreadsheet",e.jexcel.length-1),i[a].innerHTML=t[a].sheetName,i[a].onclick=function(){for(var e=0;e<o.children.length;e++)o.children[e].classList.remove("selected"),n.children[e].style.display="none";var t=this.getAttribute("data-spreadsheet");n.children[t].style.display="block",o.children[t].classList.add("selected")},o.appendChild(i[a])}for(var c=0;c<o.children.length;c++)o.children[c].classList.remove("selected"),n.children[c].style.display="none";return o.children[o.children.length-1].classList.add("selected"),n.children[o.children.length-1].style.display="block",l},jexcel.createTabs=jexcel.tabs,jexcel.fromSpreadsheet=function(e,o){function r(h){var f=[];return h.SheetNames.forEach(function(e){var t={rows:[],columns:[],data:[],style:{}};if(t.sheetName=e,(p=h.Sheets[e]["!cols"])&&p.length)for(var o=0;o<p.length;o++)t.columns[o]={},p[o]&&p[o].wpx&&(t.columns[o].width=p[o].wpx+"px");if((p=h.Sheets[e]["!rows"])&&p.length)for(o=0;o<p.length;o++)p[o]&&p[o].hpx&&(t.rows[o]={},t.rows[o].height=p[o].hpx+"px");if((p=h.Sheets[e]["!merges"])&&0<p.length){t.mergeCells=[];for(o=0;o<p.length;o++){var r=p[o].s.c,n=p[o].s.r,l=p[o].e.c,s=p[o].e.r,i=jexcel.getColumnNameFromId([r,n]);t.mergeCells[i]=[l-r+1,s-n+1]}}for(var a,u,c=0,b=0,p=Object.keys(h.Sheets[e]),o=0;o<p.length;o++)"!"!=p[o].substr(0,1)&&(a=h.Sheets[e][p[o]],u=jexcel.getIdFromColumnName(p[o],!0),t.data[u[1]]||(t.data[u[1]]=[]),t.data[u[1]][u[0]]=a.f?"="+a.f:a.w,c<u[0]&&(c=u[0]),b<u[1]&&(b=u[1]),a.style&&0<Object.keys(a.style).length&&(t.style[p[o]]=a.style),a.s&&a.s.fgColor&&(t.style[p[o]]&&(t.style[p[o]]+=";"),t.style[p[o]]+="background-color:#"+a.s.fgColor.rgb));for(var d=t.columns,j=0;j<=b;j++)for(o=0;o<=c;o++)t.data[j]||(t.data[j]=[]),t.data[j][o]||d<o&&(t.data[j][o]="");f.push(t)}),f}var n=new XMLHttpRequest;n.open("GET",e,!0),"undefined"!=typeof Uint8Array?(n.responseType="arraybuffer",n.onload=function(e){var t=n.response,t=new Uint8Array(t),t=XLSX.read(t,{type:"array",cellFormula:!0,cellStyles:!0});o(r(t))}):(n.setRequestHeader("Accept-Charset","x-user-defined"),n.onreadystatechange=function(){var e;4==n.readyState&&200==n.status&&(e=convertResponseBodyToText(n.responseBody),e=XLSX.read(e,{type:"binary",cellFormula:!0,cellStyles:!0}),o(r(e)))}),n.send()},jexcel.validLetter=function(e){return e.match(/([\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC-\u0400-\u04FF']+)/g)?1:0},jexcel.injectArray=function(e,t,o){return e.slice(0,t).concat(o).concat(e.slice(t))},jexcel.getColumnName=function(e){var t="";return 701<e?(t+=String.fromCharCode(64+parseInt(e/676)),t+=String.fromCharCode(64+parseInt(e%676/26))):25<e&&(t+=String.fromCharCode(64+parseInt(e/26))),t+=String.fromCharCode(65+e%26)},jexcel.getIdFromColumnName=function(e,t){var o=/^[a-zA-Z]+/.exec(e);if(o){for(var r=0,n=0;n<o[0].length;n++)r+=parseInt(o[0].charCodeAt(n)-64)*Math.pow(26,o[0].length-1-n);--r<0&&(r=0);var l=parseInt(/[0-9]+$/.exec(e));0<l&&l--,e=1==t?[r,l]:r+"-"+l}return e},jexcel.getColumnNameFromId=function(e){return Array.isArray(e)||(e=e.split("-")),jexcel.getColumnName(parseInt(e[0]))+(parseInt(e[1])+1)},jexcel.getElement=function(e){var o=0,r=0;return function e(t){t.className&&t.classList.contains("jexcel_container")&&(r=t),"THEAD"==t.tagName?o=1:"TBODY"==t.tagName&&(o=2),t.parentNode&&(r||e(t.parentNode))}(e),[r,o]},jexcel.doubleDigitFormat=function(e){return 1==(e=""+e).length&&(e="0"+e),e},jexcel.createFromTable=function(e,r){if("TABLE"==e.tagName){(r=r||{}).columns=[],r.data=[];var t=e.querySelectorAll("colgroup > col");if(t.length)for(var n=0;n<t.length;n++){var o=t[n].style.width;(o=o||t[n].getAttribute("width"))&&(r.columns[n]||(r.columns[n]={}),r.columns[n].width=o)}var l=function(e){var t=e.getBoundingClientRect(),o=50<t.width?t.width:50;r.columns[n]||(r.columns[n]={}),e.getAttribute("data-celltype")?r.columns[n].type=e.getAttribute("data-celltype"):r.columns[n].type="text",r.columns[n].width=o+"px",r.columns[n].title=e.innerHTML,r.columns[n].align=e.style.textAlign||"center",(t=e.getAttribute("name"))&&(r.columns[n].name=t),(t=e.getAttribute("id"))&&(r.columns[n].id=t)},s=[],i=e.querySelectorAll(":scope > thead > tr");if(i.length){for(var a=0;a<i.length-1;a++){for(var u=[],n=0;n<i[a].children.length;n++){var c={title:i[a].children[n].innerText,colspan:i[a].children[n].getAttribute("colspan")||1};u.push(c)}s.push(u)}i=i[i.length-1].children;for(n=0;n<i.length;n++)l(i[n])}for(var b=0,p={},d={},j={},h={},f=e.querySelectorAll(":scope > tr, :scope > tbody > tr"),a=0;a<f.length;a++)if(r.data[b]=[],1!=r.parseTableFirstRowAsHeader||i.length||0!=a){for(n=0;n<f[a].children.length;n++){(w=f[a].children[n].getAttribute("data-formula"))?"="!=w.substr(0,1)&&(w="="+w):w=f[a].children[n].innerHTML,r.data[b].push(w);var g=jexcel.getColumnNameFromId([n,a]),m=f[a].children[n].getAttribute("class");m&&(h[g]=m);var v=parseInt(f[a].children[n].getAttribute("colspan"))||0,m=parseInt(f[a].children[n].getAttribute("rowspan"))||0;(v||m)&&(p[g]=[v||1,m||1]),f[a].children[n].style&&"none"==f[a].children[n].style.display&&(f[a].children[n].style.display="");m=f[a].children[n].getAttribute("style");m&&(j[g]=m),f[a].children[n].classList.contains("styleBold")&&(j[g]?j[g]+="; font-weight:bold;":j[g]="font-weight:bold;")}f[a].style&&f[a].style.height&&(d[a]={height:f[a].style.height}),b++}else for(n=0;n<f[a].children.length;n++)l(f[a].children[n]);if(0<Object.keys(s).length&&(r.nestedHeaders=s),0<Object.keys(j).length&&(r.style=j),0<Object.keys(p).length&&(r.mergeCells=p),0<Object.keys(d).length&&(r.rows=d),0<Object.keys(h).length&&(r.classes=h),(f=e.querySelectorAll("tfoot tr")).length){for(var x=[],a=0;a<f.length;a++){for(var y=[],n=0;n<f[a].children.length;n++)y.push(f[a].children[n].innerText);x.push(y)}0<Object.keys(x).length&&(r.footers=x)}if(1==r.parseTableAutoCellType)for(var C=[],n=0;n<r.columns.length;n++){var A=!0,E=!0;C[n]=[];for(a=0;a<r.data.length;a++){var w=r.data[a][n];C[n][w]||(C[n][w]=0),C[n][w]++,25<w.length&&(A=!1),10==w.length&&"-"==w.substr(4,1)&&"-"==w.substr(7,1)||(E=!1)}var N=Object.keys(C[n]).length;E?r.columns[n].type="calendar":1==A&&1<N&&N<=parseInt(.1*r.data.length)&&(r.columns[n].type="dropdown",r.columns[n].source=Object.keys(C[n]))}return r}console.log("Element is not a table")},"undefined"!=typeof jQuery&&(Ss=jQuery,Ss.fn.jspreadsheet=Ss.fn.jexcel=function(e){var t=Ss(this).get(0);return t.jexcel?Array.isArray(t.jexcel)?t.jexcel[e][arguments[1]].apply(this,Array.prototype.slice.call(arguments,2)):t.jexcel[e].apply(this,Array.prototype.slice.call(arguments,1)):jexcel(Ss(this).get(0),e)});var error=(Vs={},Vs.nil=new Error("#NULL!"),Vs.div0=new Error("#DIV/0!"),Vs.value=new Error("#VALUE!"),Vs.ref=new Error("#REF!"),Vs.name=new Error("#NAME?"),Vs.num=new Error("#NUM!"),Vs.na=new Error("#N/A"),Vs.error=new Error("#ERROR!"),Vs.data=new Error("#GETTING_DATA"),Vs),Vs,utils=(Ws={flattenShallow:function(e){return e&&e.reduce?e.reduce(function(e,t){var o=Array.isArray(e),r=Array.isArray(t);return o&&r?e.concat(t):o?(e.push(t),e):r?[e].concat(t):[e,t]}):e},isFlat:function(e){if(!e)return!1;for(var t=0;t<e.length;++t)if(Array.isArray(e[t]))return!1;return!0},flatten:function(){for(var e=Ws.argsToArray.apply(null,arguments);!Ws.isFlat(e);)e=Ws.flattenShallow(e);return e},argsToArray:function(e){var t=[];return Ws.arrayEach(e,function(e){t.push(e)}),t},numbers:function(){return this.flatten.apply(null,arguments).filter(function(e){return"number"==typeof e})},cleanFloat:function(e){return Math.round(1e14*e)/1e14},parseBool:function(e){if("boolean"==typeof e)return e;if(e instanceof Error)return e;if("number"==typeof e)return 0!==e;if("string"==typeof e){var t=e.toUpperCase();if("TRUE"===t)return!0;if("FALSE"===t)return!1}return e instanceof Date&&!isNaN(e)||error.value},parseNumber:function(e){return void 0===e||""===e||isNaN(e)?error.value:parseFloat(e)},parseNumberArray:function(e){var t,o;if(!e||0===(t=e.length))return error.value;for(;t--;){if((o=Ws.parseNumber(e[t]))===error.value)return o;e[t]=o}return e},parseMatrix:function(e){var t;if(!e||0===e.length)return error.value;for(var o=0;o<e.length;o++)if(t=Ws.parseNumberArray(e[o]),(e[o]=t)instanceof Error)return t;return e}},Xs=new Date(Date.UTC(1900,0,1)),Ws.parseDate=function(e){if(isNaN(e))return"string"!=typeof e||(e=new Date(e),isNaN(e))?error.value:e;if(e instanceof Date)return new Date(e);e=parseInt(e,10);return e<0?error.num:e<=60?new Date(Xs.getTime()+864e5*(e-1)):new Date(Xs.getTime()+864e5*(e-2))},Ws.parseDateArray=function(e){for(var t,o=e.length;o--;){if((t=this.parseDate(e[o]))===error.value)return t;e[o]=t}return e},Ws.anyIsError=function(){for(var e=arguments.length;e--;)if(arguments[e]instanceof Error)return!0;return!1},Ws.arrayValuesToNumbers=function(e){for(var t,o=e.length;o--;)"number"!=typeof(t=e[o])&&(!0!==t?!1!==t?"string"==typeof t&&((t=this.parseNumber(t))instanceof Error?e[o]=0:e[o]=t):e[o]=0:e[o]=1);return e},Ws.rest=function(e,t){return t=t||1,e&&"function"==typeof e.slice?e.slice(t):e},Ws.initial=function(e,t){return t=t||1,e&&"function"==typeof e.slice?e.slice(0,e.length-t):e},Ws.arrayEach=function(e,t){for(var o=-1,r=e.length;++o<r&&!1!==t(e[o],o,e););return e},Ws.transpose=function(o){return o?o[0].map(function(e,t){return o.map(function(e){return e[t]})}):error.value},Ws),Ws,Xs,Rt,St,Ut,vw,pA,tE,IE,QH,hI,uM;function Xt(e){return(e-St)/864e5+(-22038912e5<e?2:1)}function ww(e){return/^[01]{1,10}$/.test(e)}function qA(e){return e&&e.getTime&&!isNaN(e.getTime())}function rA(e){return e instanceof Date?e:new Date(e)}jexcel.methods={},jexcel.methods.datetime=(Rt={},St=new Date(1900,0,1),Ut=[[],[1,2,3,4,5,6,7],[7,1,2,3,4,5,6],[6,0,1,2,3,4,5],[],[],[],[],[],[],[],[7,1,2,3,4,5,6],[6,7,1,2,3,4,5],[5,6,7,1,2,3,4],[4,5,6,7,1,2,3],[3,4,5,6,7,1,2],[2,3,4,5,6,7,1],[1,2,3,4,5,6,7]],Rt.DATE=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:e<0||t<0||o<0?error.num:new Date(e,t-1,o)},Rt.DATEVALUE=function(e){if("string"!=typeof e)return error.value;e=Date.parse(e);return isNaN(e)?error.value:e<=-22038912e5?(e-St)/864e5+1:(e-St)/864e5+2},Rt.DAY=function(e){e=utils.parseDate(e);return e instanceof Error?e:e.getDate()},Rt.DAYS=function(e,t){return e=utils.parseDate(e),t=utils.parseDate(t),e instanceof Error?e:t instanceof Error?t:Xt(e)-Xt(t)},Rt.DAYS360=function(e,t,o){},Rt.EDATE=function(e,t){return(e=utils.parseDate(e))instanceof Error?e:isNaN(t)?error.value:(t=parseInt(t,10),e.setMonth(e.getMonth()+t),Xt(e))},Rt.EOMONTH=function(e,t){return(e=utils.parseDate(e))instanceof Error?e:isNaN(t)?error.value:(t=parseInt(t,10),Xt(new Date(e.getFullYear(),e.getMonth()+t+1,0)))},Rt.HOUR=function(e){return(e=utils.parseDate(e))instanceof Error?e:e.getHours()},Rt.INTERVAL=function(e){if("number"!=typeof e&&"string"!=typeof e)return error.value;e=parseInt(e,10);var t=Math.floor(e/94608e4);e%=94608e4;var o=Math.floor(e/2592e3);e%=2592e3;var r=Math.floor(e/86400);e%=86400;var n=Math.floor(e/3600);e%=3600;var l=Math.floor(e/60);e%=60;return"P"+(t=0<t?t+"Y":"")+(o=0<o?o+"M":"")+(r=0<r?r+"D":"")+"T"+(n=0<n?n+"H":"")+(l=0<l?l+"M":"")+(0<e?e+"S":"")},Rt.ISOWEEKNUM=function(e){if((e=utils.parseDate(e))instanceof Error)return e;e.setHours(0,0,0),e.setDate(e.getDate()+4-(e.getDay()||7));var t=new Date(e.getFullYear(),0,1);return Math.ceil(((e-t)/864e5+1)/7)},Rt.MINUTE=function(e){return(e=utils.parseDate(e))instanceof Error?e:e.getMinutes()},Rt.MONTH=function(e){return(e=utils.parseDate(e))instanceof Error?e:e.getMonth()+1},Rt.NETWORKDAYS=function(e,t,o){},Rt.NETWORKDAYS.INTL=function(e,t,o,r){},Rt.NOW=function(){return new Date},Rt.SECOND=function(e){return(e=utils.parseDate(e))instanceof Error?e:e.getSeconds()},Rt.TIME=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:e<0||t<0||o<0?error.num:(3600*e+60*t+o)/86400},Rt.TIMEVALUE=function(e){return(e=utils.parseDate(e))instanceof Error?e:(3600*e.getHours()+60*e.getMinutes()+e.getSeconds())/86400},Rt.TODAY=function(){return new Date},Rt.WEEKDAY=function(e,t){if((e=utils.parseDate(e))instanceof Error)return e;void 0===t&&(t=1);e=e.getDay();return Ut[t][e]},Rt.WEEKNUM=function(e,t){},Rt.WORKDAY=function(e,t,o){},Rt.WORKDAY.INTL=function(e,t,o,r){},Rt.YEAR=function(e){return(e=utils.parseDate(e))instanceof Error?e:e.getFullYear()},Rt.YEARFRAC=function(e,t,o){},Rt),jexcel.methods.database=function(){var exports={};function compact(e){if(!e)return e;for(var t=[],o=0;o<e.length;++o)e[o]&&t.push(e[o]);return t}function findResultIndex(database,criterias){for(var matches={},i=1;i<database[0].length;++i)matches[i]=!0;for(var maxCriteriaLength=criterias[0].length,i=1;i<criterias.length;++i)criterias[i].length>maxCriteriaLength&&(maxCriteriaLength=criterias[i].length);for(var k=1;k<database.length;++k)for(var l=1;l<database[k].length;++l){for(var currentCriteriaResult=!1,hasMatchingCriteria=!1,j=0;j<criterias.length;++j){var criteria=criterias[j];if(!(criteria.length<maxCriteriaLength)){var criteriaField=criteria[0];if(database[k][0]===criteriaField){hasMatchingCriteria=!0;for(var p=1;p<criteria.length;++p)currentCriteriaResult=currentCriteriaResult||eval(database[k][l]+criteria[p])}}}hasMatchingCriteria&&(matches[l]=matches[l]&¤tCriteriaResult)}for(var result=[],n=0;n<database[0].length;++n)matches[n]&&result.push(n-1);return result}return exports.FINDFIELD=function(e,t){for(var o=null,r=0;r<e.length;r++)if(e[r][0]===t){o=r;break}return null==o?error.value:o},exports.DAVERAGE=function(e,t,o){if(isNaN(t)&&"string"!=typeof t)return error.value;var r=findResultIndex(e,o),n=[];n="string"==typeof t?(o=exports.FINDFIELD(e,t),utils.rest(e[o])):utils.rest(e[t]);for(var l=0,s=0;s<r.length;s++)l+=n[r[s]];return 0===r.length?error.div0:l/r.length},exports.DCOUNT=function(e,t,o){},exports.DCOUNTA=function(e,t,o){},exports.DGET=function(e,t,o){if(isNaN(t)&&"string"!=typeof t)return error.value;var r=findResultIndex(e,o),n=[];return n="string"==typeof t?(o=exports.FINDFIELD(e,t),utils.rest(e[o])):utils.rest(e[t]),0===r.length?error.value:1<r.length?error.num:n[r[0]]},exports.DMAX=function(e,t,o){if(isNaN(t)&&"string"!=typeof t)return error.value;for(var r=findResultIndex(e,o),n=[],l=(n="string"==typeof t?(o=exports.FINDFIELD(e,t),utils.rest(e[o])):utils.rest(e[t]))[r[0]],s=1;s<r.length;s++)l<n[r[s]]&&(l=n[r[s]]);return l},exports.DMIN=function(e,t,o){if(isNaN(t)&&"string"!=typeof t)return error.value;for(var r=findResultIndex(e,o),n=[],l=(n="string"==typeof t?(o=exports.FINDFIELD(e,t),utils.rest(e[o])):utils.rest(e[t]))[r[0]],s=1;s<r.length;s++)l>n[r[s]]&&(l=n[r[s]]);return l},exports.DPRODUCT=function(e,t,o){if(isNaN(t)&&"string"!=typeof t)return error.value;var r=findResultIndex(e,o),n=[];n="string"==typeof t?(o=exports.FINDFIELD(e,t),utils.rest(e[o])):utils.rest(e[t]);for(var l=[],s=0;s<r.length;s++)l[s]=n[r[s]];l=compact(l);for(var i=1,s=0;s<l.length;s++)i*=l[s];return i},exports.DSTDEV=function(e,t,o){},exports.DSTDEVP=function(e,t,o){},exports.DSUM=function(e,t,o){},exports.DVAR=function(e,t,o){},exports.DVARP=function(e,t,o){},exports.MATCH=function(e,t,o){if(!e&&!t)return error.na;if(2===arguments.length&&(o=1),!(t instanceof Array))return error.na;if(-1!==o&&0!==o&&1!==o)return error.na;for(var r,n,l=0;l<t.length;l++)if(1===o){if(t[l]===e)return l+1;t[l]<e&&(!n||t[l]>n)&&(r=l+1,n=t[l])}else if(0===o){if("string"==typeof e){if(e=e.replace(/\?/g,"."),t[l].toLowerCase().match(e.toLowerCase()))return l+1}else if(t[l]===e)return l+1}else if(-1===o){if(t[l]===e)return l+1;t[l]>e&&(!n||t[l]<n)&&(r=l+1,n=t[l])}return r||error.na},exports}(),jexcel.methods.engineering=(vw={},vw.BESSELI=function(e,t){},vw.BESSELJ=function(e,t){},vw.BESSELK=function(e,t){},vw.BESSELY=function(e,t){},vw.BIN2DEC=function(e){if(!ww(e))return error.num;var t=parseInt(e,2),e=e.toString();return 10===e.length&&"1"===e.substring(0,1)?parseInt(e.substring(1),2)-512:t},vw.BIN2HEX=function(e,t){if(!ww(e))return error.num;var o=e.toString();if(10===o.length&&"1"===o.substring(0,1))return(0xfffffffe00+parseInt(o.substring(1),2)).toString(16);e=parseInt(e,2).toString(16);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.BIN2OCT=function(e,t){if(!ww(e))return error.num;var o=e.toString();if(10===o.length&&"1"===o.substring(0,1))return(1073741312+parseInt(o.substring(1),2)).toString(8);e=parseInt(e,2).toString(8);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.BITAND=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<0||t<0||Math.floor(e)!==e||Math.floor(t)!==t||0xffffffffffff<e||0xffffffffffff<t?error.num:e&t},vw.BITLSHIFT=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<0||Math.floor(e)!==e||0xffffffffffff<e||53<Math.abs(t)?error.num:0<=t?e<<t:e>>-t},vw.BITOR=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<0||t<0||Math.floor(e)!==e||Math.floor(t)!==t||0xffffffffffff<e||0xffffffffffff<t?error.num:e|t},vw.BITRSHIFT=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<0||Math.floor(e)!==e||0xffffffffffff<e||53<Math.abs(t)?error.num:0<=t?e>>t:e<<-t},vw.BITXOR=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<0||t<0||Math.floor(e)!==e||Math.floor(t)!==t||0xffffffffffff<e||0xffffffffffff<t?error.num:e^t},vw.COMPLEX=function(e,t,o){if(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t))return e;if("i"!==(o=void 0===o?"i":o)&&"j"!==o)return error.value;if(0===e&&0===t)return 0;if(0===e)return 1===t?o:t.toString()+o;if(0===t)return e.toString();var r=0<t?"+":"";return e.toString()+r+(1===t?o:t.toString()+o)},vw.CONVERT=function(e,t,o){if((e=utils.parseNumber(e))instanceof Error)return e;for(var r,n=[["a.u. of action","?",null,"action",!1,!1,105457168181818e-48],["a.u. of charge","e",null,"electric_charge",!1,!1,160217653141414e-33],["a.u. of energy","Eh",null,"energy",!1,!1,435974417757576e-32],["a.u. of length","a?",null,"length",!1,!1,529177210818182e-25],["a.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["a.u. of time","?/Eh",null,"time",!1,!1,241888432650516e-31],["admiralty knot","admkn",null,"speed",!1,!0,.514773333],["ampere","A",null,"electric_current",!0,!1,1],["ampere per meter","A/m",null,"magnetic_field_intensity",!0,!1,1],["ångström","Å",["ang"],"length",!1,!0,1e-10],["are","ar",null,"area",!1,!0,100],["astronomical unit","ua",null,"length",!1,!1,149597870691667e-25],["bar","bar",null,"pressure",!1,!1,1e5],["barn","b",null,"area",!1,!1,1e-28],["becquerel","Bq",null,"radioactivity",!0,!1,1],["bit","bit",["b"],"information",!1,!0,1],["btu","BTU",["btu"],"energy",!1,!0,1055.05585262],["byte","byte",null,"information",!1,!0,8],["candela","cd",null,"luminous_intensity",!0,!1,1],["candela per square metre","cd/m?",null,"luminance",!0,!1,1],["coulomb","C",null,"electric_charge",!0,!1,1],["cubic ångström","ang3",["ang^3"],"volume",!1,!0,1e-30],["cubic foot","ft3",["ft^3"],"volume",!1,!0,.028316846592],["cubic inch","in3",["in^3"],"volume",!1,!0,16387064e-12],["cubic light-year","ly3",["ly^3"],"volume",!1,!0,846786664623715e-61],["cubic metre","m?",null,"volume",!0,!0,1],["cubic mile","mi3",["mi^3"],"volume",!1,!0,4168181825.44058],["cubic nautical mile","Nmi3",["Nmi^3"],"volume",!1,!0,6352182208],["cubic Pica","Pica3",["Picapt3","Pica^3","Picapt^3"],"volume",!1,!0,7.58660370370369e-8],["cubic yard","yd3",["yd^3"],"volume",!1,!0,.764554857984],["cup","cup",null,"volume",!1,!0,.0002365882365],["dalton","Da",["u"],"mass",!1,!1,166053886282828e-41],["day","d",["day"],"time",!1,!0,86400],["degree","°",null,"angle",!1,!1,.0174532925199433],["degrees Rankine","Rank",null,"temperature",!1,!0,.555555555555556],["dyne","dyn",["dy"],"force",!1,!0,1e-5],["electronvolt","eV",["ev"],"energy",!1,!0,1.60217656514141],["ell","ell",null,"length",!1,!0,1.143],["erg","erg",["e"],"energy",!1,!0,1e-7],["farad","F",null,"electric_capacitance",!0,!1,1],["fluid ounce","oz",null,"volume",!1,!0,295735295625e-16],["foot","ft",null,"length",!1,!0,.3048],["foot-pound","flb",null,"energy",!1,!0,1.3558179483314],["gal","Gal",null,"acceleration",!1,!1,.01],["gallon","gal",null,"volume",!1,!0,.003785411784],["gauss","G",["ga"],"magnetic_flux_density",!1,!0,1],["grain","grain",null,"mass",!1,!0,647989e-10],["gram","g",null,"mass",!1,!0,.001],["gray","Gy",null,"absorbed_dose",!0,!1,1],["gross registered ton","GRT",["regton"],"volume",!1,!0,2.8316846592],["hectare","ha",null,"area",!1,!0,1e4],["henry","H",null,"inductance",!0,!1,1],["hertz","Hz",null,"frequency",!0,!1,1],["horsepower","HP",["h"],"power",!1,!0,745.69987158227],["horsepower-hour","HPh",["hh","hph"],"energy",!1,!0,2684519.538],["hour","h",["hr"],"time",!1,!0,3600],["imperial gallon (U.K.)","uk_gal",null,"volume",!1,!0,.00454609],["imperial hundredweight","lcwt",["uk_cwt","hweight"],"mass",!1,!0,50.802345],["imperial quart (U.K)","uk_qt",null,"volume",!1,!0,.0011365225],["imperial ton","brton",["uk_ton","LTON"],"mass",!1,!0,1016.046909],["inch","in",null,"length",!1,!0,.0254],["international acre","uk_acre",null,"area",!1,!0,4046.8564224],["IT calorie","cal",null,"energy",!1,!0,4.1868],["joule","J",null,"energy",!0,!0,1],["katal","kat",null,"catalytic_activity",!0,!1,1],["kelvin","K",["kel"],"temperature",!0,!0,1],["kilogram","kg",null,"mass",!0,!0,1],["knot","kn",null,"speed",!1,!0,.514444444444444],["light-year","ly",null,"length",!1,!0,9460730472580800],["litre","L",["l","lt"],"volume",!1,!0,.001],["lumen","lm",null,"luminous_flux",!0,!1,1],["lux","lx",null,"illuminance",!0,!1,1],["maxwell","Mx",null,"magnetic_flux",!1,!1,1e-18],["measurement ton","MTON",null,"volume",!1,!0,1.13267386368],["meter per hour","m/h",["m/hr"],"speed",!1,!0,.00027777777777778],["meter per second","m/s",["m/sec"],"speed",!0,!0,1],["meter per second squared","m?s??",null,"acceleration",!0,!1,1],["parsec","pc",["parsec"],"length",!1,!0,0x6da012f958ee1c],["meter squared per second","m?/s",null,"kinematic_viscosity",!0,!1,1],["metre","m",null,"length",!0,!0,1],["miles per hour","mph",null,"speed",!1,!0,.44704],["millimetre of mercury","mmHg",null,"pressure",!1,!1,133.322],["minute","?",null,"angle",!1,!1,.000290888208665722],["minute","min",["mn"],"time",!1,!0,60],["modern teaspoon","tspm",null,"volume",!1,!0,5e-6],["mole","mol",null,"amount_of_substance",!0,!1,1],["morgen","Morgen",null,"area",!1,!0,2500],["n.u. of action","?",null,"action",!1,!1,105457168181818e-48],["n.u. of mass","m?",null,"mass",!1,!1,910938261616162e-45],["n.u. of speed","c?",null,"speed",!1,!1,299792458],["n.u. of time","?/(me?c??)",null,"time",!1,!1,128808866778687e-35],["nautical mile","M",["Nmi"],"length",!1,!0,1852],["newton","N",null,"force",!0,!0,1],["œrsted","Oe ",null,"magnetic_field_intensity",!1,!1,79.5774715459477],["ohm","Ω",null,"electric_resistance",!0,!1,1],["ounce mass","ozm",null,"mass",!1,!0,.028349523125],["pascal","Pa",null,"pressure",!0,!1,1],["pascal second","Pa?s",null,"dynamic_viscosity",!0,!1,1],["pferdestärke","PS",null,"power",!1,!0,735.49875],["phot","ph",null,"illuminance",!1,!1,1e-4],["pica (1/6 inch)","pica",null,"length",!1,!0,.00035277777777778],["pica (1/72 inch)","Pica",["Picapt"],"length",!1,!0,.00423333333333333],["poise","P",null,"dynamic_viscosity",!1,!1,.1],["pond","pond",null,"force",!1,!0,.00980665],["pound force","lbf",null,"force",!1,!0,4.4482216152605],["pound mass","lbm",null,"mass",!1,!0,.45359237],["quart","qt",null,"volume",!1,!0,.000946352946],["radian","rad",null,"angle",!0,!1,1],["second","?",null,"angle",!1,!1,484813681109536e-20],["second","s",["sec"],"time",!0,!0,1],["short hundredweight","cwt",["shweight"],"mass",!1,!0,45.359237],["siemens","S",null,"electrical_conductance",!0,!1,1],["sievert","Sv",null,"equivalent_dose",!0,!1,1],["slug","sg",null,"mass",!1,!0,14.59390294],["square ångström","ang2",["ang^2"],"area",!1,!0,1e-20],["square foot","ft2",["ft^2"],"area",!1,!0,.09290304],["square inch","in2",["in^2"],"area",!1,!0,64516e-8],["square light-year","ly2",["ly^2"],"area",!1,!0,895054210748189e17],["square meter","m?",null,"area",!0,!0,1],["square mile","mi2",["mi^2"],"area",!1,!0,2589988.110336],["square nautical mile","Nmi2",["Nmi^2"],"area",!1,!0,3429904],["square Pica","Pica2",["Picapt2","Pica^2","Picapt^2"],"area",!1,!0,1792111111111e-17],["square yard","yd2",["yd^2"],"area",!1,!0,.83612736],["statute mile","mi",null,"length",!1,!0,1609.344],["steradian","sr",null,"solid_angle",!0,!1,1],["stilb","sb",null,"luminance",!1,!1,1e-4],["stokes","St",null,"kinematic_viscosity",!1,!1,1e-4],["stone","stone",null,"mass",!1,!0,6.35029318],["tablespoon","tbs",null,"volume",!1,!0,147868e-10],["teaspoon","tsp",null,"volume",!1,!0,492892e-11],["tesla","T",null,"magnetic_flux_density",!0,!0,1],["thermodynamic calorie","c",null,"energy",!1,!0,4.184],["ton","ton",null,"mass",!1,!0,907.18474],["tonne","t",null,"mass",!1,!1,1e3],["U.K. pint","uk_pt",null,"volume",!1,!0,.00056826125],["U.S. bushel","bushel",null,"volume",!1,!0,.03523907],["U.S. oil barrel","barrel",null,"volume",!1,!0,.158987295],["U.S. pint","pt",["us_pt"],"volume",!1,!0,.000473176473],["U.S. survey mile","survey_mi",null,"length",!1,!0,1609.347219],["U.S. survey/statute acre","us_acre",null,"area",!1,!0,4046.87261],["volt","V",null,"voltage",!0,!1,1],["watt","W",null,"power",!0,!0,1],["watt-hour","Wh",["wh"],"energy",!1,!0,3600],["weber","Wb",null,"magnetic_flux",!0,!1,1],["yard","yd",null,"length",!1,!0,.9144],["year","yr",null,"time",!1,!0,31557600]],l={Yi:["yobi",80,12089258196146292e8,"Yi","yotta"],Zi:["zebi",70,11805916207174113e5,"Zi","zetta"],Ei:["exbi",60,0x1000000000000000,"Ei","exa"],Pi:["pebi",50,0x4000000000000,"Pi","peta"],Ti:["tebi",40,1099511627776,"Ti","tera"],Gi:["gibi",30,1073741824,"Gi","giga"],Mi:["mebi",20,1048576,"Mi","mega"],ki:["kibi",10,1024,"ki","kilo"]},s={Y:["yotta",1e24,"Y"],Z:["zetta",1e21,"Z"],E:["exa",1e18,"E"],P:["peta",1e15,"P"],T:["tera",1e12,"T"],G:["giga",1e9,"G"],M:["mega",1e6,"M"],k:["kilo",1e3,"k"],h:["hecto",100,"h"],e:["dekao",10,"e"],d:["deci",.1,"d"],c:["centi",.01,"c"],m:["milli",.001,"m"],u:["micro",1e-6,"u"],n:["nano",1e-9,"n"],p:["pico",1e-12,"p"],f:["femto",1e-15,"f"],a:["atto",1e-18,"a"],z:["zepto",1e-21,"z"],y:["yocto",1e-24,"y"]},i=null,a=null,u=t,c=o,b=1,p=1,d=0;d<n.length;d++)r=null===n[d][2]?[]:n[d][2],(n[d][1]===u||0<=r.indexOf(u))&&(i=n[d]),(n[d][1]===c||0<=r.indexOf(c))&&(a=n[d]);if(null===i){var j=l[t.substring(0,2)],h=s[t.substring(0,1)];"da"===t.substring(0,2)&&(h=["dekao",10,"da"]),j?(b=j[2],u=t.substring(2)):h&&(b=h[1],u=t.substring(h[2].length));for(var f=0;f<n.length;f++)r=null===n[f][2]?[]:n[f][2],(n[f][1]===u||0<=r.indexOf(u))&&(i=n[f])}if(null===a){l=l[o.substring(0,2)],s=s[o.substring(0,1)];"da"===o.substring(0,2)&&(s=["dekao",10,"da"]),l?(p=l[2],c=o.substring(2)):s&&(p=s[1],c=o.substring(s[2].length));for(var g=0;g<n.length;g++)r=null===n[g][2]?[]:n[g][2],(n[g][1]===c||0<=r.indexOf(c))&&(a=n[g])}return null===i||null===a||i[3]!==a[3]?error.na:e*i[6]*b/(a[6]*p)},vw.DEC2BIN=function(e,t){if((e=utils.parseNumber(e))instanceof Error)return e;if(!/^-?[0-9]{1,3}$/.test(e)||e<-512||511<e)return error.num;if(e<0)return"1"+REPT("0",9-(512+e).toString(2).length)+(512+e).toString(2);e=parseInt(e,10).toString(2);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.DEC2HEX=function(e,t){if((e=utils.parseNumber(e))instanceof Error)return e;if(!/^-?[0-9]{1,12}$/.test(e)||e<-549755813888||549755813887<e)return error.num;if(e<0)return(1099511627776+e).toString(16);e=parseInt(e,10).toString(16);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.DEC2OCT=function(e,t){if((e=utils.parseNumber(e))instanceof Error)return e;if(!/^-?[0-9]{1,9}$/.test(e)||e<-536870912||536870911<e)return error.num;if(e<0)return(1073741824+e).toString(8);e=parseInt(e,10).toString(8);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.DELTA=function(e,t){return t=void 0===t?0:t,e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e===t?1:0},vw.ERF=function(e,t){},vw.ERF.PRECISE=function(){},vw.ERFC=function(e){},vw.ERFC.PRECISE=function(){},vw.GESTEP=function(e,t){return t=t||0,e=utils.parseNumber(e),utils.anyIsError(t,e)?e:t<=e?1:0},vw.HEX2BIN=function(e,t){if(!/^[0-9A-Fa-f]{1,10}$/.test(e))return error.num;var o=10===e.length&&"f"===e.substring(0,1).toLowerCase(),e=o?parseInt(e,16)-1099511627776:parseInt(e,16);if(e<-512||511<e)return error.num;if(o)return"1"+REPT("0",9-(512+e).toString(2).length)+(512+e).toString(2);e=e.toString(2);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.HEX2DEC=function(e){if(!/^[0-9A-Fa-f]{1,10}$/.test(e))return error.num;e=parseInt(e,16);return 549755813888<=e?e-1099511627776:e},vw.HEX2OCT=function(e,t){if(!/^[0-9A-Fa-f]{1,10}$/.test(e))return error.num;e=parseInt(e,16);if(536870911<e&&e<0xffe0000000)return error.num;if(0xffe0000000<=e)return(e-0xffc0000000).toString(8);e=e.toString(8);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.IMABS=function(e){var t=vw.IMREAL(e),e=vw.IMAGINARY(e);return utils.anyIsError(t,e)?error.value:Math.sqrt(Math.pow(t,2)+Math.pow(e,2))},vw.IMAGINARY=function(e){if(void 0===e||!0===e||!1===e)return error.value;if(0===e||"0"===e)return 0;if(0<=["i","j"].indexOf(e))return 1;var t=(e=e.replace("+i","+1i").replace("-i","-1i").replace("+j","+1j").replace("-j","-1j")).indexOf("+"),o=e.indexOf("-");0===t&&(t=e.indexOf("+",1)),0===o&&(o=e.indexOf("-",1));var r=e.substring(e.length-1,e.length),r="i"===r||"j"===r;return 0<=t||0<=o?r?0<=t?isNaN(e.substring(0,t))||isNaN(e.substring(t+1,e.length-1))?error.num:Number(e.substring(t+1,e.length-1)):isNaN(e.substring(0,o))||isNaN(e.substring(o+1,e.length-1))?error.num:-Number(e.substring(o+1,e.length-1)):error.num:r?isNaN(e.substring(0,e.length-1))?error.num:e.substring(0,e.length-1):isNaN(e)?error.num:0},vw.IMARGUMENT=function(e){var t=vw.IMREAL(e),e=vw.IMAGINARY(e);return utils.anyIsError(t,e)?error.value:0===t&&0===e?error.div0:0===t&&0<e?Math.PI/2:0===t&&e<0?-Math.PI/2:0===e&&0<t?0:0===e&&t<0?-Math.PI:0<t?Math.atan(e/t):t<0&&0<=e?Math.atan(e/t)+Math.PI:Math.atan(e/t)-Math.PI},vw.IMCONJUGATE=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;var r="i"===(r=e.substring(e.length-1))||"j"===r?r:"i";return 0!==o?vw.COMPLEX(t,-o,r):e},vw.IMCOS=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.cos(t)*(Math.exp(o)+Math.exp(-o))/2,-Math.sin(t)*(Math.exp(o)-Math.exp(-o))/2,e)},vw.IMCOSH=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.cos(o)*(Math.exp(t)+Math.exp(-t))/2,Math.sin(o)*(Math.exp(t)-Math.exp(-t))/2,e)},vw.IMCOT=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.value:vw.IMDIV(vw.IMCOS(e),vw.IMSIN(e))},vw.IMDIV=function(e,t){var o=vw.IMREAL(e),r=vw.IMAGINARY(e),n=vw.IMREAL(t),l=vw.IMAGINARY(t);if(utils.anyIsError(o,r,n,l))return error.value;e=e.substring(e.length-1),t=t.substring(t.length-1),e="j"===e||"j"===t?"j":"i";if(0===n&&0===l)return error.num;t=n*n+l*l;return vw.COMPLEX((o*n+r*l)/t,(r*n-o*l)/t,e)},vw.IMEXP=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i",t=Math.exp(t);return vw.COMPLEX(t*Math.cos(o),t*Math.sin(o),e)},vw.IMLN=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.log(Math.sqrt(t*t+o*o)),Math.atan(o/t),e)},vw.IMLOG10=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.log(Math.sqrt(t*t+o*o))/Math.log(10),Math.atan(o/t)/Math.log(10),e)},vw.IMLOG2=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.log(Math.sqrt(t*t+o*o))/Math.log(2),Math.atan(o/t)/Math.log(2),e)},vw.IMPOWER=function(e,t){t=utils.parseNumber(t);var o=vw.IMREAL(e),r=vw.IMAGINARY(e);if(utils.anyIsError(t,o,r))return error.value;o="i"===(o=e.substring(e.length-1))||"j"===o?o:"i",r=Math.pow(vw.IMABS(e),t),e=vw.IMARGUMENT(e);return vw.COMPLEX(r*Math.cos(t*e),r*Math.sin(t*e),o)},vw.IMPRODUCT=function(){for(var e=arguments[0],t=1;t<arguments.length;t++){var o=vw.IMREAL(e),r=vw.IMAGINARY(e),n=vw.IMREAL(arguments[t]),l=vw.IMAGINARY(arguments[t]);if(utils.anyIsError(o,r,n,l))return error.value;e=vw.COMPLEX(o*n-r*l,o*l+r*n)}return e},vw.IMREAL=function(e){if(void 0===e||!0===e||!1===e)return error.value;if(0===e||"0"===e)return 0;if(0<=["i","+i","1i","+1i","-i","-1i","j","+j","1j","+1j","-j","-1j"].indexOf(e))return 0;var t=e.indexOf("+"),o=e.indexOf("-");0===t&&(t=e.indexOf("+",1)),0===o&&(o=e.indexOf("-",1));var r=e.substring(e.length-1,e.length),r="i"===r||"j"===r;return 0<=t||0<=o?r?0<=t?isNaN(e.substring(0,t))||isNaN(e.substring(t+1,e.length-1))?error.num:Number(e.substring(0,t)):isNaN(e.substring(0,o))||isNaN(e.substring(o+1,e.length-1))?error.num:Number(e.substring(0,o)):error.num:r?isNaN(e.substring(0,e.length-1))?error.num:0:isNaN(e)?error.num:e},vw.IMSEC=function(e){if(!0===e||!1===e)return error.value;var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.value:vw.IMDIV("1",vw.IMCOS(e))},vw.IMSECH=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.value:vw.IMDIV("1",vw.IMCOSH(e))},vw.IMSIN=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.sin(t)*(Math.exp(o)+Math.exp(-o))/2,Math.cos(t)*(Math.exp(o)-Math.exp(-o))/2,e)},vw.IMSINH=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;e="i"===(e=e.substring(e.length-1))||"j"===e?e:"i";return vw.COMPLEX(Math.cos(o)*(Math.exp(t)-Math.exp(-t))/2,Math.sin(o)*(Math.exp(t)+Math.exp(-t))/2,e)},vw.IMSQRT=function(e){var t=vw.IMREAL(e),o=vw.IMAGINARY(e);if(utils.anyIsError(t,o))return error.value;t="i"===(t=e.substring(e.length-1))||"j"===t?t:"i",o=Math.sqrt(vw.IMABS(e)),e=vw.IMARGUMENT(e);return vw.COMPLEX(o*Math.cos(e/2),o*Math.sin(e/2),t)},vw.IMCSC=function(e){if(!0===e||!1===e)return error.value;var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.num:vw.IMDIV("1",vw.IMSIN(e))},vw.IMCSCH=function(e){if(!0===e||!1===e)return error.value;var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.num:vw.IMDIV("1",vw.IMSINH(e))},vw.IMSUB=function(e,t){var o=this.IMREAL(e),r=this.IMAGINARY(e),n=this.IMREAL(t),l=this.IMAGINARY(t);if(utils.anyIsError(o,r,n,l))return error.value;e=e.substring(e.length-1),t=t.substring(t.length-1),t="j"!==e&&"j"!==t?"i":"j";return this.COMPLEX(o-n,r-l,t)},vw.IMSUM=function(){for(var e=utils.flatten(arguments),t=e[0],o=1;o<e.length;o++){var r=this.IMREAL(t),n=this.IMAGINARY(t),l=this.IMREAL(e[o]),s=this.IMAGINARY(e[o]);if(utils.anyIsError(r,n,l,s))return error.value;t=this.COMPLEX(r+l,n+s)}return t},vw.IMTAN=function(e){if(!0===e||!1===e)return error.value;var t=vw.IMREAL(e),o=vw.IMAGINARY(e);return utils.anyIsError(t,o)?error.value:this.IMDIV(this.IMSIN(e),this.IMCOS(e))},vw.OCT2BIN=function(e,t){if(!/^[0-7]{1,10}$/.test(e))return error.num;var o=10===e.length&&"7"===e.substring(0,1),e=o?parseInt(e,8)-1073741824:parseInt(e,8);if(e<-512||511<e)return error.num;if(o)return"1"+REPT("0",9-(512+e).toString(2).length)+(512+e).toString(2);e=e.toString(2);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw.OCT2DEC=function(e){if(!/^[0-7]{1,10}$/.test(e))return error.num;e=parseInt(e,8);return 536870912<=e?e-1073741824:e},vw.OCT2HEX=function(e,t){if(!/^[0-7]{1,10}$/.test(e))return error.num;e=parseInt(e,8);if(536870912<=e)return"ff"+(e+3221225472).toString(16);e=e.toString(16);return void 0===t?e:isNaN(t)?error.value:!(t<0)&&(t=Math.floor(t))>=e.length?REPT("0",t-e.length)+e:error.num},vw),jexcel.methods.financial=(pA={},pA.ACCRINT=function(e,t,o,r,n,l,s){return e=rA(e),t=rA(t),o=rA(o),qA(e)&&qA(t)&&qA(o)?r<=0||n<=0||-1===[1,2,4].indexOf(l)||-1===[0,1,2,3,4].indexOf(s)||o<=e?"#NUM!":(s=s||0,(n=n||0)*r*YEARFRAC(e,o,s)):"#VALUE!"},pA.ACCRINTM=null,pA.AMORDEGRC=null,pA.AMORLINC=null,pA.COUPDAYBS=null,pA.COUPDAYS=null,pA.COUPDAYSNC=null,pA.COUPNCD=null,pA.COUPNUM=null,pA.COUPPCD=null,pA.CUMIPMT=function(e,t,o,r,n,l){if(e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;if(e<=0||t<=0||o<=0)return error.num;if(r<1||n<1||n<r)return error.num;if(0!==l&&1!==l)return error.num;var s=pA.PMT(e,t,o,0,l),i=0;1===r&&0===l&&(i=-o,r++);for(var a=r;a<=n;a++)i+=1===l?pA.FV(e,a-2,s,o,1)-s:pA.FV(e,a-1,s,o,0);return i*=e},pA.CUMPRINC=function(e,t,o,r,n,l){if(e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;if(e<=0||t<=0||o<=0)return error.num;if(r<1||n<1||n<r)return error.num;if(0!==l&&1!==l)return error.num;var s=pA.PMT(e,t,o,0,l),i=0;1===r&&(i=0===l?s+o*e:s,r++);for(var a=r;a<=n;a++)i+=0<l?s-(pA.FV(e,a-2,s,o,1)-s)*e:s-pA.FV(e,a-1,s,o,0)*e;return i},pA.DB=function(e,t,o,r,n){if(n=void 0===n?12:n,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n))return error.value;if(e<0||t<0||o<0||r<0)return error.num;if(-1===[1,2,3,4,5,6,7,8,9,10,11,12].indexOf(n))return error.num;if(o<r)return error.num;if(e<=t)return 0;for(var l=(1-Math.pow(t/e,1/o)).toFixed(3),n=e*l*n/12,s=n,i=0,a=r===o?o-1:r,u=2;u<=a;u++)s+=i=(e-s)*l;return 1===r?n:r===o?(e-s)*l:i},pA.DDB=function(e,t,o,r,n){if(n=void 0===n?2:n,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n))return error.value;if(e<0||t<0||o<0||r<0||n<=0)return error.num;if(o<r)return error.num;if(e<=t)return 0;for(var l=0,s=0,i=1;i<=r;i++)l+=s=Math.min(n/o*(e-l),e-t-l);return s},pA.DISC=null,pA.DOLLARDE=function(e,t){if(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;if(t<0)return error.num;if(0<=t&&t<1)return error.div0;t=parseInt(t,10);var o=parseInt(e,10);o+=e%1*Math.pow(10,Math.ceil(Math.log(t)/Math.LN10))/t;t=Math.pow(10,Math.ceil(Math.log(t)/Math.LN2)+1);return o=Math.round(o*t)/t},pA.DOLLARFR=function(e,t){if(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;if(t<0)return error.num;if(0<=t&&t<1)return error.div0;t=parseInt(t,10);var o=parseInt(e,10);return o+=e%1*Math.pow(10,-Math.ceil(Math.log(t)/Math.LN10))*t},pA.DURATION=null,pA.EFFECT=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<=0||t<1?error.num:(t=parseInt(t,10),Math.pow(1+e/t,t)-1)},pA.FV=function(e,t,o,r,n){return r=r||0,n=n||0,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n)?error.value:-(0===e?r+o*t:(t=Math.pow(1+e,t),1===n?r*t+o*(1+e)*(t-1)/e:r*t+o*(t-1)/e))},pA.FVSCHEDULE=function(e,t){if(e=utils.parseNumber(e),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;for(var o=t.length,r=e,n=0;n<o;n++)r*=1+t[n];return r},pA.INTRATE=null,pA.IPMT=function(e,t,o,r,n,l){if(n=n||0,l=l||0,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),l=utils.parseNumber(l),utils.anyIsError(e,t,o,r,n,l))return error.value;n=pA.PMT(e,o,r,n,l),r=1===t?1===l?0:-r:1===l?pA.FV(e,t-2,n,r,1)-n:pA.FV(e,t-1,n,r,0);return r*e},pA.IRR=function(e,t){if(t=t||0,e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;for(var o=[],r=!1,n=!1,l=0;l<e.length;l++)o[l]=0===l?0:o[l-1]+365,0<e[l]&&(r=!0),e[l]<0&&(n=!0);if(!r||!n)return error.num;t=void 0===t?.1:t;for(var s,i,a,u,c=t;s=c-(a=function(e,t,o){for(var r=o+1,n=e[0],l=1;l<e.length;l++)n+=e[l]/Math.pow(r,(t[l]-t[0])/365);return n}(e,o,c))/function(e,t,o){for(var r=o+1,n=0,l=1;l<e.length;l++){var s=(t[l]-t[0])/365;n-=s*e[l]/Math.pow(r,1+s)}return n}(e,o,c),i=Math.abs(s-c),c=s,u=1e-10<i&&1e-10<Math.abs(a),u;);return c},pA.ISPMT=function(e,t,o,r){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),utils.anyIsError(e,t,o,r)?error.value:r*e*(t/o-1)},pA.MDURATION=null,pA.MIRR=function(e,t,o){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;for(var r=e.length,n=[],l=[],s=0;s<r;s++)(e[s]<0?n:l).push(e[s]);o=-pA.NPV(o,l)*Math.pow(1+o,r-1),t=pA.NPV(t,n)*(1+t);return Math.pow(o/t,1/(r-1))-1},pA.NOMINAL=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e<=0||t<1?error.num:(t=parseInt(t,10),(Math.pow(e+1,1/t)-1)*t)},pA.NPER=function(e,t,o,r,n){if(n=void 0===n?0:n,r=void 0===r?0:r,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n))return error.value;r=t*(1+e*n)-r*e,n=o*e+t*(1+e*n);return Math.log(r/n)/Math.log(1+e)},pA.NPV=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t=e[0],o=0,r=1;r<e.length;r++)o+=e[r]/Math.pow(1+t,r);return o},pA.ODDFPRICE=null,pA.ODDFYIELD=null,pA.ODDLPRICE=null,pA.ODDLYIELD=null,pA.PDURATION=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:e<=0?error.num:(Math.log(o)-Math.log(t))/Math.log(1+e)},pA.PMT=function(e,t,o,r,n){return r=r||0,n=n||0,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n)?error.value:-(0===e?(o+r)/t:(t=Math.pow(1+e,t),1===n?(r*e/(t-1)+o*e/(1-1/t))/(1+e):r*e/(t-1)+o*e/(1-1/t)))},pA.PPMT=function(e,t,o,r,n,l){return n=n||0,l=l||0,e=utils.parseNumber(e),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),l=utils.parseNumber(l),utils.anyIsError(e,o,r,n,l)?error.value:pA.PMT(e,o,r,n,l)-pA.IPMT(e,t,o,r,n,l)},pA.PRICE=null,pA.PRICEDISC=null,pA.PRICEMAT=null,pA.PV=function(e,t,o,r,n){return r=r||0,n=n||0,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),utils.anyIsError(e,t,o,r,n)?error.value:0===e?-o*t-r:((1-Math.pow(1+e,t))/e*o*(1+e*n)-r)/Math.pow(1+e,t)},pA.RATE=function(e,t,o,r,n,l){if(l=void 0===l?.01:l,r=void 0===r?0:r,n=void 0===n?0:n,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),n=utils.parseNumber(n),l=utils.parseNumber(l),utils.anyIsError(e,t,o,r,n,l))return error.value;for(var s=0,i=!1,a=l;s<100&&!i;){var u=Math.pow(a+1,e),c=Math.pow(a+1,e-1),u=a-(r+u*o+t*(u-1)*(a*n+1)/a)/(e*c*o-t*(u-1)*(a*n+1)/Math.pow(a,2)+(e*t*c*(a*n+1)/a+t*(u-1)*n/a));Math.abs(u-a)<1e-6&&(i=!0),s++,a=u}return i?a:Number.NaN+a},pA.RECEIVED=null,pA.RRI=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:0===e||0===t?error.num:Math.pow(o/t,1/e)-1},pA.SLN=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:0===o?error.num:(e-t)/o},pA.SYD=function(e,t,o,r){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumber(r),utils.anyIsError(e,t,o,r)?error.value:0===o||r<1||o<r?error.num:(e-t)*(o-(r=parseInt(r,10))+1)*2/(o*(o+1))},pA.TBILLEQ=function(e,t,o){return e=utils.parseDate(e),t=utils.parseDate(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:o<=0||t<e||31536e6<t-e?error.num:365*o/(360-o*DAYS360(e,t,!1))},pA.TBILLPRICE=function(e,t,o){return e=utils.parseDate(e),t=utils.parseDate(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:o<=0||t<e||31536e6<t-e?error.num:100*(1-o*DAYS360(e,t,!1)/360)},pA.TBILLYIELD=function(e,t,o){return e=utils.parseDate(e),t=utils.parseDate(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:o<=0||t<e||31536e6<t-e?error.num:360*(100-o)/(o*DAYS360(e,t,!1))},pA.VDB=null,pA.XIRR=function(e,t,o){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseDateArray(utils.flatten(t)),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;for(var r=!1,n=!1,l=0;l<e.length;l++)0<e[l]&&(r=!0),e[l]<0&&(n=!0);if(!r||!n)return error.num;o=o||.1;for(var s,i,a,u,c=o;s=c-(a=function(e,t,o){for(var r=o+1,n=e[0],l=1;l<e.length;l++)n+=e[l]/Math.pow(r,DAYS(t[l],t[0])/365);return n}(e,t,c))/function(e,t,o){for(var r=o+1,n=0,l=1;l<e.length;l++){var s=DAYS(t[l],t[0])/365;n-=s*e[l]/Math.pow(r,1+s)}return n}(e,t,c),i=Math.abs(s-c),c=s,u=1e-10<i&&1e-10<Math.abs(a),u;);return c},pA.XNPV=function(e,t,o){if(e=utils.parseNumber(e),t=utils.parseNumberArray(utils.flatten(t)),o=utils.parseDateArray(utils.flatten(o)),utils.anyIsError(e,t,o))return error.value;for(var r=0,n=0;n<t.length;n++)r+=t[n]/Math.pow(1+e,DAYS(o[n],o[0])/365);return r},pA.YIELD=null,pA.YIELDDISC=null,pA.YIELDMAT=null,pA),jexcel.methods.information=(tE={CELL:null,ERROR:{}},tE.ERROR.TYPE=function(e){switch(e){case error.nil:return 1;case error.div0:return 2;case error.value:return 3;case error.ref:return 4;case error.name:return 5;case error.num:return 6;case error.na:return 7;case error.data:return 8}return error.na},tE.INFO=null,tE.ISBLANK=function(e){return null===e},tE.ISBINARY=function(e){return/^[01]{1,10}$/.test(e)},tE.ISERR=function(e){return 0<=[error.value,error.ref,error.div0,error.num,error.name,error.nil].indexOf(e)||"number"==typeof e&&(isNaN(e)||!isFinite(e))},tE.ISERROR=function(e){return tE.ISERR(e)||e===error.na},tE.ISEVEN=function(e){return!(1&Math.floor(Math.abs(e)))},tE.ISFORMULA=null,tE.ISLOGICAL=function(e){return!0===e||!1===e},tE.ISNA=function(e){return e===error.na},tE.ISNONTEXT=function(e){return"string"!=typeof e},tE.ISNUMBER=function(e){return"number"==typeof e&&!isNaN(e)&&isFinite(e)},tE.ISODD=function(e){return!!(1&Math.floor(Math.abs(e)))},tE.ISREF=null,tE.ISTEXT=function(e){return"string"==typeof e},tE.N=function(e){return this.ISNUMBER(e)?e:e instanceof Date?e.getTime():!0===e?1:!1!==e&&this.ISERROR(e)?e:0},tE.NA=function(){return error.na},tE.SHEET=null,tE.SHEETS=null,tE.TYPE=function(e){return this.ISNUMBER(e)?1:this.ISTEXT(e)?2:this.ISLOGICAL(e)?4:this.ISERROR(e)?16:Array.isArray(e)?64:void 0},tE),jexcel.methods.logical=(IE={AND:function(){for(var e=utils.flatten(arguments),t=!0,o=0;o<e.length;o++)e[o]||(t=!1);return t},CHOOSE:function(){if(arguments.length<2)return error.na;var e=arguments[0];return e<1||254<e||arguments.length<e+1?error.value:arguments[e]},FALSE:function(){return!1},IF:function(e,t,o){return e?t:o},IFERROR:function(e,t){return ISERROR(e)?t:e},IFNA:function(e,t){return e===error.na?t:e},NOT:function(e){return!e},OR:function(){for(var e=utils.flatten(arguments),t=!1,o=0;o<e.length;o++)e[o]&&(t=!0);return t},TRUE:function(){return!0},XOR:function(){for(var e=utils.flatten(arguments),t=0,o=0;o<e.length;o++)e[o]&&t++;return!!(1&Math.floor(Math.abs(t)))},SWITCH:function(){var e;if(0<arguments.length){var t=arguments[0],o=arguments.length-1,r=Math.floor(o/2),n=!1,o=o%2==0?null:arguments[arguments.length-1];if(r)for(var l=0;l<r;l++)if(t===arguments[2*l+1]){e=arguments[2*l+2],n=!0;break}!n&&o&&(e=o)}return e}},IE),jexcel.methods.math=function(){var exports={ABS:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.abs(utils.parseNumber(e))},ACOS:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.acos(e)},ACOSH:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log(e+Math.sqrt(e*e-1))},ACOT:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.atan(1/e)},ACOTH:function(e){return(e=utils.parseNumber(e))instanceof Error?e:.5*Math.log((e+1)/(e-1))},AGGREGATE:null,ARABIC:function(e){if(!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(e))return error.value;var t=0;return e.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g,function(e){t+={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}[e]}),t},ASIN:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.asin(e)},ASINH:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log(e+Math.sqrt(e*e+1))},ATAN:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.atan(e)},ATAN2:function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:Math.atan2(e,t)},ATANH:function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log((1+e)/(1-e))/2},BASE:function(e,t,o){if(o=o||0,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;o=void 0===o?0:o;t=e.toString(t);return new Array(Math.max(o+1-t.length,0)).join("0")+t},CEILING:function(e,t,o){return t=void 0===t?1:t,o=void 0===o?0:o,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:0===t?0:(t=Math.abs(t),0<=e?Math.ceil(e/t)*t:0===o?-1*Math.floor(Math.abs(e)/t)*t:-1*Math.ceil(Math.abs(e)/t)*t)}};exports.CEILING.MATH=exports.CEILING,exports.CEILING.PRECISE=exports.CEILING,exports.COMBIN=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:exports.FACT(e)/(exports.FACT(t)*exports.FACT(e-t))},exports.COMBINA=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:0===e&&0===t?1:exports.COMBIN(e+t-1,e-1)},exports.COS=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.cos(e)},exports.COSH=function(e){return(e=utils.parseNumber(e))instanceof Error?e:(Math.exp(e)+Math.exp(-e))/2},exports.COT=function(e){return(e=utils.parseNumber(e))instanceof Error?e:1/Math.tan(e)},exports.COTH=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;e=Math.exp(2*e);return(e+1)/(e-1)},exports.CSC=function(e){return(e=utils.parseNumber(e))instanceof Error?e:1/Math.sin(e)},exports.CSCH=function(e){return(e=utils.parseNumber(e))instanceof Error?e:2/(Math.exp(e)-Math.exp(-e))},exports.DECIMAL=function(e,t){return arguments.length<1?error.value:parseInt(e,t)},exports.DEGREES=function(e){return(e=utils.parseNumber(e))instanceof Error?e:180*e/Math.PI},exports.EVEN=function(e){return(e=utils.parseNumber(e))instanceof Error?e:exports.CEILING(e,-2,-1)},exports.EXP=Math.exp;var MEMOIZED_FACT=[];return exports.FACT=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;e=Math.floor(e);return 0===e||1===e?1:(0<MEMOIZED_FACT[e]||(MEMOIZED_FACT[e]=exports.FACT(e-1)*e),MEMOIZED_FACT[e])},exports.FACTDOUBLE=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;e=Math.floor(e);return e<=0?1:e*exports.FACTDOUBLE(e-2)},exports.FLOOR=function(e,t,o){return t=void 0===t?1:t,o=void 0===o?0:o,e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:0===t?0:(t=Math.abs(t),0<=e?Math.floor(e/t)*t:0===o?-1*Math.ceil(Math.abs(e)/t)*t:-1*Math.floor(Math.abs(e)/t)*t)},exports.FLOOR.MATH=exports.FLOOR,exports.GCD=null,exports.INT=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.floor(e)},exports.LCM=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t,o,r,n,l=1;void 0!==(r=e.pop());)for(;1<r;){if(r%2){for(t=3,o=Math.floor(Math.sqrt(r));t<=o&&r%t;t+=2);n=t<=o?t:r}else n=2;for(r/=n,l*=n,t=e.length;t;e[--t]%n==0&&1==(e[t]/=n)&&e.splice(t,1));}return l},exports.LN=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log(e)},exports.LOG=function(e,t){return e=utils.parseNumber(e),t=void 0===t?10:utils.parseNumber(t),utils.anyIsError(e,t)?error.value:Math.log(e)/Math.log(t)},exports.LOG10=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log(e)/Math.log(10)},exports.MDETERM=null,exports.MINVERSE=null,exports.MMULT=null,exports.MOD=function(e,t){if(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;if(0===t)return error.div0;e=Math.abs(e%t);return 0<t?e:-e},exports.MROUND=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e*t<0?error.num:Math.round(e/t)*t},exports.MULTINOMIAL=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t=0,o=1,r=0;r<e.length;r++)t+=e[r],o*=exports.FACT(e[r]);return exports.FACT(t)/o},exports.MUNIT=null,exports.ODD=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;var t=1&(t=Math.ceil(Math.abs(e)))?t:t+1;return 0<e?t:-t},exports.PI=function(){return Math.PI},exports.POWER=function(e,t){if(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;t=Math.pow(e,t);return isNaN(t)?error.num:t},exports.PRODUCT=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t=1,o=0;o<e.length;o++)t*=e[o];return t},exports.QUOTIENT=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:parseInt(e/t,10)},exports.RADIANS=function(e){return(e=utils.parseNumber(e))instanceof Error?e:e*Math.PI/180},exports.RAND=function(){return Math.random()},exports.RANDBETWEEN=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e+Math.ceil((t-e+1)*Math.random())-1},exports.ROMAN=null,exports.ROUND=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:Math.round(e*Math.pow(10,t))/Math.pow(10,t)},exports.ROUNDDOWN=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:(0<e?1:-1)*Math.floor(Math.abs(e)*Math.pow(10,t))/Math.pow(10,t)},exports.ROUNDUP=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:(0<e?1:-1)*Math.ceil(Math.abs(e)*Math.pow(10,t))/Math.pow(10,t)},exports.SEC=function(e){return(e=utils.parseNumber(e))instanceof Error?e:1/Math.cos(e)},exports.SECH=function(e){return(e=utils.parseNumber(e))instanceof Error?e:2/(Math.exp(e)+Math.exp(-e))},exports.SERIESSUM=function(e,t,o,r){if(e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),r=utils.parseNumberArray(r),utils.anyIsError(e,t,o,r))return error.value;for(var n=r[0]*Math.pow(e,t),l=1;l<r.length;l++)n+=r[l]*Math.pow(e,t+l*o);return n},exports.SIGN=function(e){return(e=utils.parseNumber(e))instanceof Error?e:e<0?-1:0===e?0:1},exports.SIN=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.sin(e)},exports.SINH=function(e){return(e=utils.parseNumber(e))instanceof Error?e:(Math.exp(e)-Math.exp(-e))/2},exports.SQRT=function(e){return(e=utils.parseNumber(e))instanceof Error?e:e<0?error.num:Math.sqrt(e)},exports.SQRTPI=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.sqrt(e*Math.PI)},exports.SUBTOTAL=null,exports.ADD=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e+t)},exports.MINUS=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e-t)},exports.DIVIDE=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:0===t?error.div0:e/t)},exports.MULTIPLY=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:e*t)},exports.GTE=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.error:t<=e)},exports.LT=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.error:e<t)},exports.LTE=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.error:e<=t)},exports.EQ=function(e,t){return 2!==arguments.length?error.na:e===t},exports.NE=function(e,t){return 2!==arguments.length?error.na:e!==t},exports.POW=function(e,t){return 2!==arguments.length?error.na:(e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.error:exports.POWER(e,t))},exports.SUM=function(){for(var e=0,t=Object.keys(arguments),o=0;o<t.length;++o){var r,n=arguments[t[o]];"number"==typeof n?e+=n:"string"==typeof n?(r=parseFloat(n),isNaN(r)||(e+=r)):Array.isArray(n)&&(e+=exports.SUM.apply(null,n))}return e},exports.SUMIF=function(range,criteria){if(range=utils.parseNumberArray(utils.flatten(range)),range instanceof Error)return range;for(var result=0,i=0;i<range.length;i++)result+=eval(range[i]+criteria)?range[i]:0;return result},exports.SUMIFS=function(){var args=utils.argsToArray(arguments),range=utils.parseNumberArray(utils.flatten(args.shift()));if(range instanceof Error)return range;for(var criteria=args,n_range_elements=range.length,n_criterias=criteria.length,result=0,i=0;i<n_range_elements;i++){for(var el=range[i],condition="",c=0;c<n_criterias;c++)condition+=el+criteria[c],c!==n_criterias-1&&(condition+="&&");eval(condition)&&(result+=el)}return result},exports.SUMPRODUCT=null,exports.SUMSQ=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t=0,o=e.length,r=0;r<o;r++)t+=ISNUMBER(e[r])?e[r]*e[r]:0;return t},exports.SUMX2MY2=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;for(var o=0,r=0;r<e.length;r++)o+=e[r]*e[r]-t[r]*t[r];return o},exports.SUMX2PY2=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;var o=0;e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t));for(var r=0;r<e.length;r++)o+=e[r]*e[r]+t[r]*t[r];return o},exports.SUMXMY2=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;var o=0;e=utils.flatten(e),t=utils.flatten(t);for(var r=0;r<e.length;r++)o+=Math.pow(e[r]-t[r],2);return o},exports.TAN=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.tan(e)},exports.TANH=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;e=Math.exp(2*e);return(e-1)/(e+1)},exports.TRUNC=function(e,t){return t=void 0===t?0:t,e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:(0<e?1:-1)*Math.floor(Math.abs(e)*Math.pow(10,t))/Math.pow(10,t)},exports}(),jexcel.methods.misc=(QH={UNIQUE:function(){for(var e=[],t=0;t<arguments.length;++t){for(var o=!1,r=arguments[t],n=0;n<e.length&&!(o=e[n]===r);++n);o||e.push(r)}return e}},QH.FLATTEN=utils.flatten,QH.ARGS2ARRAY=function(){return Array.prototype.slice.call(arguments,0)},QH.REFERENCE=function(e,t){try{for(var o=t.split("."),r=e,n=0;n<o.length;++n){var l,s,i=o[n];r="]"===i[i.length-1]?(l=i.indexOf("["),s=i.substring(l+1,i.length-1),r[i.substring(0,l)][s]):r[i]}return r}catch(e){}},QH.JOIN=function(e,t){return e.join(t)},QH.NUMBERS=function(){return utils.flatten(arguments).filter(function(e){return"number"==typeof e})},QH.NUMERAL=null,QH),jexcel.methods.text=(hI={ASC:null,BAHTTEXT:null,CHAR:function(e){return(e=utils.parseNumber(e))instanceof Error?e:String.fromCharCode(e)},CLEAN:function(e){return(e=e||"").replace(/[\0-\x1F]/g,"")},CODE:function(e){return(e=e||"").charCodeAt(0)},CONCATENATE:function(){for(var e,t=utils.flatten(arguments);-1<(e=t.indexOf(!0));)t[e]="TRUE";for(var o;-1<(o=t.indexOf(!1));)t[o]="FALSE";return t.join("")},DBCS:null,DOLLAR:null,EXACT:function(e,t){return e===t},FIND:function(e,t,o){return o=void 0===o?0:o,t?t.indexOf(e,o-1)+1:null},FIXED:null,HTML2TEXT:function(e){var t="";return e&&(e instanceof Array?e.forEach(function(e){""!==t&&(t+="\n"),t+=e.replace(/<(?:.|\n)*?>/gm,"")}):t=e.replace(/<(?:.|\n)*?>/gm,"")),t},LEFT:function(e,t){return t=void 0===t?1:t,(t=utils.parseNumber(t))instanceof Error||"string"!=typeof e?error.value:e?e.substring(0,t):null},LEN:function(e){return 0===arguments.length?error.error:"string"==typeof e?e?e.length:0:e.length||error.value},LOWER:function(e){return"string"!=typeof e?error.value:e&&e.toLowerCase()},MID:function(e,t,o){if(t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(t,o)||"string"!=typeof e)return o;--t,o=t+o;return e.substring(t,o)},NUMBERVALUE:null,PRONETIC:null,PROPER:function(e){return void 0===e||0===e.length?error.value:(!0===e&&(e="TRUE"),!1===e&&(e="FALSE"),isNaN(e)&&"number"==typeof e?error.value:("number"==typeof e&&(e=""+e),e.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})))},REGEXEXTRACT:function(e,t){t=e.match(new RegExp(t));return t?t[1<t.length?t.length-1:0]:null},REGEXMATCH:function(e,t,o){t=e.match(new RegExp(t));return o?t:!!t},REGEXREPLACE:function(e,t,o){return e.replace(new RegExp(t),o)},REPLACE:function(e,t,o,r){return t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(t,o)||"string"!=typeof e||"string"!=typeof r?error.value:e.substr(0,t-1)+r+e.substr(t-1+o)},REPT:function(e,t){return(t=utils.parseNumber(t))instanceof Error?t:new Array(t+1).join(e)},RIGHT:function(e,t){return t=void 0===t?1:t,(t=utils.parseNumber(t))instanceof Error?t:e?e.substring(e.length-t):null},SEARCH:function(e,t,o){return"string"!=typeof e||"string"!=typeof t?error.value:(o=void 0===o?0:o,0===(o=t.toLowerCase().indexOf(e.toLowerCase(),o-1)+1)?error.value:o)},SPLIT:function(e,t){return e.split(t)},SUBSTITUTE:function(e,t,o,r){if(!(e&&t&&o))return e;if(void 0===r)return e.replace(new RegExp(t,"g"),o);for(var n=0,l=0;0<e.indexOf(t,n);)if(n=e.indexOf(t,n+1),++l===r)return e.substring(0,n)+o+e.substring(n+t.length)},T:function(e){return"string"==typeof e?e:""},TEXT:null,TRIM:function(e){return"string"!=typeof e?error.value:e.replace(/ +/g," ").trim()}},hI.UNICHAR=hI.CHAR,hI.UNICODE=hI.CODE,hI.UPPER=function(e){return"string"!=typeof e?error.value:e.toUpperCase()},hI.VALUE=null,hI),jexcel.methods.stats=function(){var exports={},SQRT2PI=2.5066282746310002;return exports.AVEDEV=null,exports.AVERAGE=function(){for(var e=utils.numbers(utils.flatten(arguments)),t=e.length,o=0,r=0,n=0;n<t;n++)o+=e[n],r+=1;return o/r},exports.AVERAGEA=function(){for(var e=utils.flatten(arguments),t=e.length,o=0,r=0,n=0;n<t;n++){var l=e[n];"number"==typeof l&&(o+=l),!0===l&&o++,null!==l&&r++}return o/r},exports.AVERAGEIF=function(range,criteria,average_range){if(average_range=average_range||range,range=utils.flatten(range),average_range=utils.parseNumberArray(utils.flatten(average_range)),average_range instanceof Error)return average_range;for(var average_count=0,result=0,i=0;i<range.length;i++)eval(range[i]+criteria)&&(result+=average_range[i],average_count++);return result/average_count},exports.AVERAGEIFS=null,exports.COUNT=function(){return utils.numbers(utils.flatten(arguments)).length},exports.COUNTA=function(){var e=utils.flatten(arguments);return e.length-exports.COUNTBLANK(e)},exports.COUNTIN=function(e,t){for(var o=0,r=0;r<e.length;r++)e[r]===t&&o++;return o},exports.COUNTBLANK=function(){for(var e,t=utils.flatten(arguments),o=0,r=0;r<t.length;r++)null!==(e=t[r])&&""!==e||o++;return o},exports.COUNTIF=function(range,criteria){range=utils.flatten(range),/[<>=!]/.test(criteria)||(criteria='=="'+criteria+'"');for(var matches=0,i=0;i<range.length;i++)"string"!=typeof range[i]?eval(range[i]+criteria)&&matches++:eval('"'+range[i]+'"'+criteria)&&matches++;return matches},exports.COUNTIFS=function(){for(var args=utils.argsToArray(arguments),results=new Array(utils.flatten(args[0]).length),i=0;i<results.length;i++)results[i]=!0;for(i=0;i<args.length;i+=2){var range=utils.flatten(args[i]),criteria=args[i+1];/[<>=!]/.test(criteria)||(criteria='=="'+criteria+'"');for(var j=0;j<range.length;j++)"string"!=typeof range[j]?results[j]=results[j]&&eval(range[j]+criteria):results[j]=results[j]&&eval('"'+range[j]+'"'+criteria)}for(var result=0,i=0;i<results.length;i++)results[i]&&result++;return result},exports.COUNTUNIQUE=function(){return UNIQUE.apply(null,utils.flatten(arguments)).length},exports.FISHER=function(e){return(e=utils.parseNumber(e))instanceof Error?e:Math.log((1+e)/(1-e))/2},exports.FISHERINV=function(e){if((e=utils.parseNumber(e))instanceof Error)return e;e=Math.exp(2*e);return(e-1)/(e+1)},exports.FREQUENCY=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;for(var o=e.length,r=t.length,n=[],l=0;l<=r;l++)for(var s=n[l]=0;s<o;s++)0===l?e[s]<=t[0]&&(n[0]+=1):l<r?e[s]>t[l-1]&&e[s]<=t[l]&&(n[l]+=1):l===r&&e[s]>t[r-1]&&(n[r]+=1);return n},exports.LARGE=function(e,t){return e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t)?e:e.sort(function(e,t){return t-e})[t-1]},exports.MAX=function(){var e=utils.numbers(utils.flatten(arguments));return 0===e.length?0:Math.max.apply(Math,e)},exports.MAXA=function(){var e=utils.arrayValuesToNumbers(utils.flatten(arguments));return 0===e.length?0:Math.max.apply(Math,e)},exports.MIN=function(){var e=utils.numbers(utils.flatten(arguments));return 0===e.length?0:Math.min.apply(Math,e)},exports.MINA=function(){var e=utils.arrayValuesToNumbers(utils.flatten(arguments));return 0===e.length?0:Math.min.apply(Math,e)},exports.MODE={},exports.MODE.MULT=function(){var e=utils.parseNumberArray(utils.flatten(arguments));if(e instanceof Error)return e;for(var t,o=e.length,r={},n=[],l=0,s=0;s<o;s++)r[t=e[s]]=r[t]?r[t]+1:1,r[t]>l&&(l=r[t],n=[]),r[t]===l&&(n[n.length]=t);return n},exports.MODE.SNGL=function(){var e=utils.parseNumberArray(utils.flatten(arguments));return e instanceof Error?e:exports.MODE.MULT(e).sort(function(e,t){return e-t})[0]},exports.PERCENTILE={},exports.PERCENTILE.EXC=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;var o=(e=e.sort(function(e,t){return e-t})).length;if(t<1/(o+1)||1-1/(o+1)<t)return error.num;t=t*(o+1)-1,o=Math.floor(t);return utils.cleanFloat(t===o?e[t]:e[o]+(t-o)*(e[o+1]-e[o]))},exports.PERCENTILE.INC=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;var o=t*((e=e.sort(function(e,t){return e-t})).length-1),t=Math.floor(o);return utils.cleanFloat(o===t?e[o]:e[t]+(o-t)*(e[t+1]-e[t]))},exports.PERCENTRANK={},exports.PERCENTRANK.EXC=function(e,t,o){if(o=void 0===o?3:o,e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;e=e.sort(function(e,t){return e-t});for(var r=UNIQUE.apply(null,e),n=e.length,l=r.length,o=Math.pow(10,o),s=0,i=!1,a=0;!i&&a<l;)t===r[a]?(s=(e.indexOf(r[a])+1)/(n+1),i=!0):t>=r[a]&&(t<r[a+1]||a===l-1)&&(s=(e.indexOf(r[a])+1+(t-r[a])/(r[a+1]-r[a]))/(n+1),i=!0),a++;return Math.floor(s*o)/o},exports.PERCENTRANK.INC=function(e,t,o){if(o=void 0===o?3:o,e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o))return error.value;e=e.sort(function(e,t){return e-t});for(var r=UNIQUE.apply(null,e),n=e.length,l=r.length,o=Math.pow(10,o),s=0,i=!1,a=0;!i&&a<l;)t===r[a]?(s=e.indexOf(r[a])/(n-1),i=!0):t>=r[a]&&(t<r[a+1]||a===l-1)&&(s=(e.indexOf(r[a])+(t-r[a])/(r[a+1]-r[a]))/(n-1),i=!0),a++;return Math.floor(s*o)/o},exports.PERMUT=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:FACT(e)/FACT(e-t)},exports.PERMUTATIONA=function(e,t){return e=utils.parseNumber(e),t=utils.parseNumber(t),utils.anyIsError(e,t)?error.value:Math.pow(e,t)},exports.PHI=function(e){return(e=utils.parseNumber(e))instanceof Error?error.value:Math.exp(-.5*e*e)/SQRT2PI},exports.PROB=function(e,t,o,r){if(void 0===o)return 0;if(r=void 0===r?o:r,e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),o=utils.parseNumber(o),r=utils.parseNumber(r),utils.anyIsError(e,t,o,r))return error.value;if(o===r)return 0<=e.indexOf(o)?t[e.indexOf(o)]:0;for(var n=e.sort(function(e,t){return e-t}),l=n.length,s=0,i=0;i<l;i++)n[i]>=o&&n[i]<=r&&(s+=t[e.indexOf(n[i])]);return s},exports.QUARTILE={},exports.QUARTILE.EXC=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;switch(t){case 1:return exports.PERCENTILE.EXC(e,.25);case 2:return exports.PERCENTILE.EXC(e,.5);case 3:return exports.PERCENTILE.EXC(e,.75);default:return error.num}},exports.QUARTILE.INC=function(e,t){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;switch(t){case 1:return exports.PERCENTILE.INC(e,.25);case 2:return exports.PERCENTILE.INC(e,.5);case 3:return exports.PERCENTILE.INC(e,.75);default:return error.num}},exports.RANK={},exports.RANK.AVG=function(e,t,o){if(e=utils.parseNumber(e),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;for(var o=(o=o||!1)?function(e,t){return e-t}:function(e,t){return t-e},r=(t=(t=utils.flatten(t)).sort(o)).length,n=0,l=0;l<r;l++)t[l]===e&&n++;return 1<n?(2*t.indexOf(e)+n+1)/2:t.indexOf(e)+1},exports.RANK.EQ=function(e,t,o){if(e=utils.parseNumber(e),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t))return error.value;o=(o=o||!1)?function(e,t){return e-t}:function(e,t){return t-e};return(t=t.sort(o)).indexOf(e)+1},exports.RSQ=function(e,t){return e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(e,t)?error.value:Math.pow(exports.PEARSON(e,t),2)},exports.SMALL=function(e,t){return e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t)?e:e.sort(function(e,t){return e-t})[t-1]},exports.STANDARDIZE=function(e,t,o){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:(e-t)/o},exports.STDEV={},exports.STDEV.P=function(){var e=exports.VAR.P.apply(this,arguments);return Math.sqrt(e)},exports.STDEV.S=function(){var e=exports.VAR.S.apply(this,arguments);return Math.sqrt(e)},exports.STDEVA=function(){var e=exports.VARA.apply(this,arguments);return Math.sqrt(e)},exports.STDEVPA=function(){var e=exports.VARPA.apply(this,arguments);return Math.sqrt(e)},exports.VAR={},exports.VAR.P=function(){for(var e=utils.numbers(utils.flatten(arguments)),t=e.length,o=0,r=exports.AVERAGE(e),n=0;n<t;n++)o+=Math.pow(e[n]-r,2);return o/t},exports.VAR.S=function(){for(var e=utils.numbers(utils.flatten(arguments)),t=e.length,o=0,r=exports.AVERAGE(e),n=0;n<t;n++)o+=Math.pow(e[n]-r,2);return o/(t-1)},exports.VARA=function(){for(var e=utils.flatten(arguments),t=e.length,o=0,r=0,n=exports.AVERAGEA(e),l=0;l<t;l++){var s=e[l];o+="number"==typeof s?Math.pow(s-n,2):!0===s?Math.pow(1-n,2):Math.pow(0-n,2),null!==s&&r++}return o/(r-1)},exports.VARPA=function(){for(var e=utils.flatten(arguments),t=e.length,o=0,r=0,n=exports.AVERAGEA(e),l=0;l<t;l++){var s=e[l];o+="number"==typeof s?Math.pow(s-n,2):!0===s?Math.pow(1-n,2):Math.pow(0-n,2),null!==s&&r++}return o/r},exports.WEIBULL={},exports.WEIBULL.DIST=function(e,t,o,r){return e=utils.parseNumber(e),t=utils.parseNumber(t),o=utils.parseNumber(o),utils.anyIsError(e,t,o)?error.value:r?1-Math.exp(-Math.pow(e/o,t)):Math.pow(e,t-1)*Math.exp(-Math.pow(e/o,t))*t/Math.pow(o,t)},exports.Z={},exports.Z.TEST=function(e,t,o){if(e=utils.parseNumberArray(utils.flatten(e)),t=utils.parseNumber(t),utils.anyIsError(e,t))return error.value;o=o||exports.STDEV.S(e);var r=e.length;return 1-exports.NORM.S.DIST((exports.AVERAGE(e)-t)/(o/Math.sqrt(r)),!0)},exports}(),jexcel.methods.utils=(uM={PROGRESS:function(e,t){return'<div style="width:'+(e||"0")+"%;height:4px;background-color:"+(t||"red")+';margin-top:1px;"></div>'},RATING:function(e){for(var t='<div class="jrating">',o=0;o<5;o++)t+=o<e?'<div class="jrating-selected"></div>':"<div></div>";return t+="</div>"}},uM);for(var i=0;i<Object.keys(jexcel.methods).length;i++)for(var methods=jexcel.methods[Object.keys(jexcel.methods)[i]],j=0;j<Object.keys(methods).length;j++)"function"==typeof methods[Object.keys(methods)[j]]?window[Object.keys(methods)[j]]=methods[Object.keys(methods)[j]]:window[Object.keys(methods)[j]]=function(){return Object.keys(methods)[j]+"Not implemented"};return jexcel});
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 1.9 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�