Skip to content

Commit b76177c

Browse files
committed
chore(shape): parse type details
1 parent 7983d5b commit b76177c

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

src/helper/file-helper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export class FileHelper {
7777
status: 'finished',
7878
duration,
7979
file: location,
80+
filename: path.basename(location),
8081
templates: automizer.templates.length,
8182
slides: automizer.rootTemplate.count('slides'),
8283
charts: automizer.rootTemplate.count('charts'),

src/helper/xml-template-helper.ts

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export class XmlTemplateHelper {
3333
.item(0)
3434
.getAttribute('val')
3535

36-
const elementIds = this.elementCreationIds(slideXml)
36+
const elementIds = this.elementCreationIds(slideXml, archive)
3737

3838
creationIds.push({
3939
id: Number(creationIdSlide),
@@ -52,7 +52,7 @@ export class XmlTemplateHelper {
5252
)
5353
}
5454

55-
elementCreationIds(slideXml): ElementInfo[] {
55+
elementCreationIds(slideXml, archive): ElementInfo[] {
5656
const slideElements = slideXml
5757
.getElementsByTagName('p:cNvPr')
5858

@@ -64,25 +64,50 @@ export class XmlTemplateHelper {
6464
.getElementsByTagName('a16:creationId')
6565
if(creationIdElement.item(0)) {
6666
elementIds.push(
67-
this.getElementInfo(slideElement)
67+
this.getElementInfo(slideElement, archive)
6868
)
6969
}
7070
}
7171
}
7272
return elementIds
7373
}
7474

75-
getElementInfo(slideElement): ElementInfo {
75+
getElementInfo(slideElement, archive): ElementInfo {
7676
const elementName = slideElement.getAttribute('name')
77-
const type = slideElement.parentNode.parentNode.tagName
77+
let type = slideElement.parentNode.parentNode.tagName
7878
const creationId = slideElement
7979
.getElementsByTagName('a16:creationId')
8080
.item(0)
8181
.getAttribute('id')
8282

83+
const mapUriType = {
84+
'http://schemas.openxmlformats.org/drawingml/2006/table': 'table',
85+
'http://schemas.openxmlformats.org/drawingml/2006/chart': 'chart'
86+
}
87+
88+
type = type.replace('p:', '')
89+
90+
switch(type) {
91+
case 'graphicFrame':
92+
const graphicData = slideElement.parentNode.parentNode.getElementsByTagName('a:graphicData')[0]
93+
const uri = graphicData.getAttribute('uri')
94+
type = (mapUriType[uri]) ? mapUriType[uri] : type
95+
break
96+
}
97+
98+
switch(type) {
99+
case 'chart':
100+
// const slideXml = await XmlHelper.getXmlFromArchive(
101+
// archive,
102+
// 'ppt/' + slideRel.file
103+
// )
104+
// XmlHelper.dump(slideElement.parentNode.parentNode)
105+
break
106+
}
107+
83108
return {
84109
name: elementName,
85-
type: type.replace('p:', ''),
110+
type: type,
86111
id: creationId
87112
}
88113
}

src/types/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export type AutomizerSummary = {
3131
status: string;
3232
duration: number;
3333
file: string;
34+
filename: string;
3435
templates: number;
3536
slides: number;
3637
charts: number;

0 commit comments

Comments
 (0)