Files
2026-08-16 14:58:47 +08:00

43 lines
1.1 KiB
JavaScript

import { getTextByPathList } from './utils'
export function getSmartArtTextData(dataContent) {
const result = []
let ptLst = getTextByPathList(dataContent, ['dgm:dataModel', 'dgm:ptLst', 'dgm:pt'])
if (!ptLst) return result
if (!Array.isArray(ptLst)) ptLst = [ptLst]
for (const pt of ptLst) {
const textBody = getTextByPathList(pt, ['dgm:t'])
if (textBody) {
let nodeText = ''
let paragraphs = getTextByPathList(textBody, ['a:p'])
if (paragraphs) {
if (!Array.isArray(paragraphs)) paragraphs = [paragraphs]
paragraphs.forEach(p => {
let runs = getTextByPathList(p, ['a:r'])
if (runs) {
if (!Array.isArray(runs)) runs = [runs]
runs.forEach(r => {
const t = getTextByPathList(r, ['a:t'])
if (t && typeof t === 'string') nodeText += t
})
}
if (nodeText.length > 0) nodeText += '\n'
})
}
const cleanText = nodeText.trim()
if (cleanText) {
result.push(cleanText)
}
}
}
return result
}