![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.quebec/private_html/node_modules/mammoth/lib/docx/ |
exports.readStylesXml = readStylesXml;
exports.Styles = Styles;
exports.defaultStyles = new Styles({}, {});
function Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) {
return {
findParagraphStyleById: function(styleId) {
return paragraphStyles[styleId];
},
findCharacterStyleById: function(styleId) {
return characterStyles[styleId];
},
findTableStyleById: function(styleId) {
return tableStyles[styleId];
},
findNumberingStyleById: function(styleId) {
return numberingStyles[styleId];
}
};
}
Styles.EMPTY = new Styles({}, {}, {}, {});
function readStylesXml(root) {
var paragraphStyles = {};
var characterStyles = {};
var tableStyles = {};
var numberingStyles = {};
var styles = {
"paragraph": paragraphStyles,
"character": characterStyles,
"table": tableStyles,
"numbering": numberingStyles
};
root.getElementsByTagName("w:style").forEach(function(styleElement) {
var style = readStyleElement(styleElement);
var styleSet = styles[style.type];
// Per 17.7.4.17 style (Style Definition) of ECMA-376 4th edition Part 1:
//
// > If multiple style definitions each declare the same value for their
// > styleId, then the first such instance shall keep its current
// > identifier with all other instances being reassigned in any manner
// > desired.
//
// For the purpose of conversion, there's no point holding onto styles
// with reassigned style IDs, so we ignore such style definitions.
if (styleSet && styleSet[style.styleId] === undefined) {
styleSet[style.styleId] = style;
}
});
return new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles);
}
function readStyleElement(styleElement) {
var type = styleElement.attributes["w:type"];
if (type === "numbering") {
return readNumberingStyleElement(type, styleElement);
} else {
var styleId = readStyleId(styleElement);
var name = styleName(styleElement);
return {type: type, styleId: styleId, name: name};
}
}
function styleName(styleElement) {
var nameElement = styleElement.first("w:name");
return nameElement ? nameElement.attributes["w:val"] : null;
}
function readNumberingStyleElement(type, styleElement) {
var styleId = readStyleId(styleElement);
var numId = styleElement
.firstOrEmpty("w:pPr")
.firstOrEmpty("w:numPr")
.firstOrEmpty("w:numId")
.attributes["w:val"];
return {type: type, numId: numId, styleId: styleId};
}
function readStyleId(styleElement) {
return styleElement.attributes["w:styleId"];
}