'use strict'
const compiler = require('../../dist/compiler.js')
const self = (global || root)
self.performance = {
now: function () {
var hrtime = process.hrtime()
return ((hrtime[0] * 1000000 + hrtime[1] / 1000) / 1000)
}
}
function generateGrid (rowCount, columnCount) {
var grid = []
for (var r = 0; r < rowCount; r++) {
var row = { id: r, items: [] }
for (var c = 0; c < columnCount; c++) {
row.items.push({ id: (r + '-' + c) })
}
grid.push(row)
}
return grid
}
const gridData = generateGrid(1000, 10)
var gridComponent = {
template: '
{{ Math.random() }}
',
components: {
myTable: {
data: function () {
return {
grid: gridData
}
},
// template: '',
template: '',
components: {
row: {
props: ['row'],
template: '| {{ Math.random() }} |
',
components: {
column: {
template: '' +
// 25 plain elements for each cell
'' +
'- ' +
'fsefs' +
'
' +
' ' +
' | '
}
}
}
}
}
}
}
function createCompiledOptions (options) {
const res = compiler.compileToFunctions(options.template, {
preserveWhitespace: false
})
Object.assign(options, res)
delete options.template
if (options.components) {
const keys = Object.keys(options.components)
let total = keys.length
while (total) {
const name = keys[total - 1]
options.components[name] = createCompiledOptions(options.components[name])
total--
}
}
return options
}
module.exports = createCompiledOptions(gridComponent)