Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
wrapperElem.style.marginTop = `${-scrollbarHeight}px`
}
if (tableElem) {
tableElem.style.width = tWidth ? `${tWidth + scrollbarWidth}px` : ''
}
// let listElem = elemStore[`${name}-${layout}-list`]
// if (listElem) {
// XEUtils.arrayEach(listElem.querySelectorAll(`.col--gutter`), thElem => {
// thElem.style.width = `${scrollbarWidth}px`
// })
// }
}
let colgroupElem = elemStore[`${name}-${layout}-colgroup`]
if (colgroupElem) {
XEUtils.arrayEach(colgroupElem.children, colElem => {
let colid = colElem.getAttribute('name')
if (colid === 'col_gutter') {
colElem.style.width = `${scrollbarWidth}px`
}
if (fullColumnIdData[colid]) {
let column = fullColumnIdData[colid].column
let { showHeaderOverflow, showOverflow } = column
let cellOverflow
colElem.style.width = `${column.renderWidth}px`
if (layout === 'header') {
cellOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow
} else {
cellOverflow = XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow) ? allColumnOverflow : showOverflow
}
let showEllipsis = cellOverflow === 'ellipsis'
let showTitle = cellOverflow === 'title'
function parseXML (columns, content) {
const domParser = new DOMParser()
const xmlDoc = domParser.parseFromString(content, 'application/xml')
const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet')
const rows = []
let fields = []
if (sheetNodes.length) {
const tableNodes = getElementsByTagName(sheetNodes[0], 'Table')
if (tableNodes.length) {
const rowNodes = getElementsByTagName(tableNodes[0], 'Row')
if (rowNodes.length) {
XEUtils.arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
fields.push(cellNode.textContent)
})
XEUtils.arrayEach(rowNodes, (rowNode, index) => {
if (index) {
const item = {}
const cellNodes = getElementsByTagName(rowNode, 'Cell')
XEUtils.arrayEach(cellNodes, (cellNode, colIndex) => {
if (fields[colIndex]) {
item[fields[colIndex]] = cellNode.textContent
}
})
rows.push(item)
}
})
}
}
function parseXML (columns, content) {
const domParser = new DOMParser()
const xmlDoc = domParser.parseFromString(content, 'application/xml')
const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet')
const rows = []
let fields = []
if (sheetNodes.length) {
const tableNodes = getElementsByTagName(sheetNodes[0], 'Table')
if (tableNodes.length) {
const rowNodes = getElementsByTagName(tableNodes[0], 'Row')
if (rowNodes.length) {
XEUtils.arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
fields.push(cellNode.textContent)
})
XEUtils.arrayEach(rowNodes, (rowNode, index) => {
if (index) {
const item = {}
const cellNodes = getElementsByTagName(rowNode, 'Cell')
XEUtils.arrayEach(cellNodes, (cellNode, colIndex) => {
if (fields[colIndex]) {
item[fields[colIndex]] = cellNode.textContent
}
})
rows.push(item)
}
})
}
}
}
return { fields, rows }
}
clearCurrentRow () {
this.currentRow = null
this.hoverRow = null
XEUtils.arrayEach(this.$el.querySelectorAll('.row--current'), elem => DomTools.removeClass(elem, 'row--current'))
return this.$nextTick()
},
/**
handleHeaderChecked (rowNodes) {
let { titles } = this.editStore
this.clearHeaderChecked()
XEUtils.arrayEach(rowNodes, rows => {
XEUtils.arrayEach(rows, elem => {
DomTools.addClass(elem, 'col--title-checked')
})
})
titles.rowNodes = rowNodes
},
_clearHeaderChecked () {
function parseHTML (columns, content) {
const domParser = new DOMParser()
const xmlDoc = domParser.parseFromString(content, 'text/html')
const bodyNodes = getElementsByTagName(xmlDoc, 'body')
const rows = []
let fields = []
if (bodyNodes.length) {
const tableNodes = getElementsByTagName(bodyNodes[0], 'table')
if (tableNodes.length) {
const theadNodes = getElementsByTagName(tableNodes[0], 'thead')
if (theadNodes.length) {
XEUtils.arrayEach(getElementsByTagName(theadNodes[0], 'tr'), rowNode => {
XEUtils.arrayEach(getElementsByTagName(rowNode, 'th'), cellNode => {
fields.push(cellNode.textContent)
})
})
const tbodyNodes = getElementsByTagName(tableNodes[0], 'tbody')
if (tbodyNodes.length) {
XEUtils.arrayEach(getElementsByTagName(tbodyNodes[0], 'tr'), rowNode => {
const item = {}
XEUtils.arrayEach(getElementsByTagName(rowNode, 'td'), (cellNode, colIndex) => {
if (fields[colIndex]) {
item[fields[colIndex]] = cellNode.textContent || ''
}
})
rows.push(item)
})
}
_clearCopyed () {
let { $refs, editStore, keyboardConfig } = this
let { copyed } = editStore
if (keyboardConfig && keyboardConfig.isCut) {
let tableBody = $refs.tableBody
let { copyBorders } = $refs.tableBody.$refs
copyed.cut = false
copyed.rows = []
copyed.columns = []
copyBorders.style.display = 'none'
XEUtils.arrayEach(tableBody.$el.querySelectorAll('.col--copyed'), elem => DomTools.removeClass(elem, 'col--copyed'))
}
return this.$nextTick()
},
/**
reColTitleSdCls () {
let headerElem = this.elemStore['main-header-list']
if (headerElem) {
XEUtils.arrayEach(headerElem.querySelectorAll('.col--title-selected'), elem => DomTools.removeClass(elem, 'col--title-selected'))
}
},
reColSdCls () {