//var vdoc = null;
(function(){
function vdoc_isArray(jo) {
if (jo == null)
return false
if (Array.isArray(jo))
return true;
var r1 = Object.keys(jo)
var r2 = Array.isArray(jo[r1[0]])
if (r1.length != 1)
r2 = Array.isArray(jo.w)
return r2;
}
function vdoc_getWord(jo) {
if (jo == null)
return null
if (Array.isArray(jo))
return jo
var r1 = Object.keys(jo)
if (r1.length == 1)
return jo[r1[0]]
return jo.w
}
function vdoc_getTag(jo) {
if (jo == null)
return "span"
if (Array.isArray(jo))
return "div"
var r1 = Object.keys(jo)
if (r1.length == 1)
return r1[0]
return jo.tp
}
function vdoc_initdata(jo) {
var datas = JSON.parse(JSON.stringify(jo))
if (vdoc_isArray(datas) === false) {
var r1 = vdoc_getWord(datas)
var r2 = r1.replace(/(\r\n)|(\n\r)|(\r)|(\n)/g, "
")
var r3 = r2.split("
")
if (r3.length > 1) {
var r4 = vdoc_getTag(datas)
var r5 = []
for (var i = 0; i < r3.length; i++) {
r5.push({ 'w': r3[i] })
if (i !== r3.length - 1) //最後1個,尾部不加br
r5.push({ br: '' })
}
var r6 = {}
r6[r4] = r5
datas = r6
}
}
return datas
}
var vdoc = Vue.extend({
template: '#vdoc',
name: 'vdoc',
components: { 'vdoc': vdoc },
computed: {
getTag: function () { return vdoc_getTag(this.datas2) },
getWord: function () {
return vdoc_getWord(this.datas2)
},
isArray: function () {
return vdoc_isArray(this.datas2)
}
},
watch: {
datas: function (nv, ov) {
this.datas2 = vdoc_initdata(nv)
}
},
data: function () {
return {
datas2: vdoc_initdata(this.datas)
}
},
props: {
datas: Object,
}
})
// output (閉包函式中用 this. 表示全域變數 var vdoc)
this.vdoc = vdoc
})()