office-viewer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +23 -0
  2. package/esm/OpenXML.d.ts +21 -0
  3. package/esm/OpenXML.js +60 -0
  4. package/esm/Word.d.ts +208 -0
  5. package/esm/Word.js +370 -0
  6. package/esm/index.d.ts +6 -0
  7. package/esm/index.js +6 -0
  8. package/esm/node_modules/tslib/tslib.es6.js +120 -0
  9. package/esm/openxml/ContentType.d.ts +12 -0
  10. package/esm/openxml/ContentType.js +15 -0
  11. package/esm/openxml/Style.d.ts +41 -0
  12. package/esm/openxml/Style.js +156 -0
  13. package/esm/openxml/Theme.d.ts +26 -0
  14. package/esm/openxml/Theme.js +69 -0
  15. package/esm/openxml/Types.d.ts +2512 -0
  16. package/esm/openxml/Types.js +1003 -0
  17. package/esm/openxml/word/Background.d.ts +11 -0
  18. package/esm/openxml/word/Body.d.ts +18 -0
  19. package/esm/openxml/word/Body.js +67 -0
  20. package/esm/openxml/word/Bookmark.d.ts +6 -0
  21. package/esm/openxml/word/Bookmark.js +18 -0
  22. package/esm/openxml/word/Border.d.ts +10 -0
  23. package/esm/openxml/word/Break.d.ts +13 -0
  24. package/esm/openxml/word/Break.js +19 -0
  25. package/esm/openxml/word/CustomXml.d.ts +8 -0
  26. package/esm/openxml/word/FldSimple.d.ts +7 -0
  27. package/esm/openxml/word/FldSimple.js +15 -0
  28. package/esm/openxml/word/FrameProperties.d.ts +18 -0
  29. package/esm/openxml/word/Hyperlink.d.ts +13 -0
  30. package/esm/openxml/word/Hyperlink.js +53 -0
  31. package/esm/openxml/word/Indent.d.ts +8 -0
  32. package/esm/openxml/word/InlineText.d.ts +14 -0
  33. package/esm/openxml/word/InlineText.js +62 -0
  34. package/esm/openxml/word/InstrText.d.ts +4 -0
  35. package/esm/openxml/word/InstrText.js +8 -0
  36. package/esm/openxml/word/Paragraph.d.ts +34 -0
  37. package/esm/openxml/word/Paragraph.js +133 -0
  38. package/esm/openxml/word/Pict.d.ts +6 -0
  39. package/esm/openxml/word/Pict.js +19 -0
  40. package/esm/openxml/word/Ruby.d.ts +20 -0
  41. package/esm/openxml/word/Ruby.js +87 -0
  42. package/esm/openxml/word/Run.d.ts +31 -0
  43. package/esm/openxml/word/Run.js +98 -0
  44. package/esm/openxml/word/Section.d.ts +38 -0
  45. package/esm/openxml/word/Section.js +59 -0
  46. package/esm/openxml/word/Shading.d.ts +9 -0
  47. package/esm/openxml/word/SmartTag.d.ts +8 -0
  48. package/esm/openxml/word/SmartTag.js +18 -0
  49. package/esm/openxml/word/Spacing.d.ts +9 -0
  50. package/esm/openxml/word/Sym.d.ts +8 -0
  51. package/esm/openxml/word/Sym.js +16 -0
  52. package/esm/openxml/word/Tab.d.ts +8 -0
  53. package/esm/openxml/word/Tab.js +17 -0
  54. package/esm/openxml/word/Table.d.ts +49 -0
  55. package/esm/openxml/word/Table.js +248 -0
  56. package/esm/openxml/word/VerticalAlign.d.ts +6 -0
  57. package/esm/openxml/word/WDocument.d.ts +13 -0
  58. package/esm/openxml/word/WDocument.js +58 -0
  59. package/esm/openxml/word/drawing/Blip.d.ts +6 -0
  60. package/esm/openxml/word/drawing/Blip.js +17 -0
  61. package/esm/openxml/word/drawing/BlipFill.d.ts +9 -0
  62. package/esm/openxml/word/drawing/BlipFill.js +20 -0
  63. package/esm/openxml/word/drawing/Drawing.d.ts +6 -0
  64. package/esm/openxml/word/drawing/Drawing.js +15 -0
  65. package/esm/openxml/word/drawing/Pic.d.ts +8 -0
  66. package/esm/openxml/word/drawing/Pic.js +16 -0
  67. package/esm/openxml/word/drawing/ShapeProperties.d.ts +9 -0
  68. package/esm/openxml/word/drawing/ShapeProperties.js +20 -0
  69. package/esm/openxml/word/drawing/Transform.d.ts +17 -0
  70. package/esm/openxml/word/drawing/Transform.js +30 -0
  71. package/esm/openxml/word/numbering/AbstractNum.d.ts +13 -0
  72. package/esm/openxml/word/numbering/AbstractNum.js +42 -0
  73. package/esm/openxml/word/numbering/Lvl.d.ts +16 -0
  74. package/esm/openxml/word/numbering/Lvl.js +62 -0
  75. package/esm/openxml/word/numbering/Num.d.ts +10 -0
  76. package/esm/openxml/word/numbering/Num.js +46 -0
  77. package/esm/openxml/word/numbering/NumberProperties.d.ts +6 -0
  78. package/esm/openxml/word/numbering/NumberProperties.js +21 -0
  79. package/esm/openxml/word/numbering/Numbering.d.ts +9 -0
  80. package/esm/openxml/word/numbering/Numbering.js +50 -0
  81. package/esm/openxml/word/properties/Properties.d.ts +12 -0
  82. package/esm/openxml/word/table/Tc.d.ts +46 -0
  83. package/esm/openxml/word/table/Tc.js +234 -0
  84. package/esm/openxml/word/table/Tr.d.ts +18 -0
  85. package/esm/openxml/word/table/Tr.js +106 -0
  86. package/esm/package/PackageParser.d.ts +26 -0
  87. package/esm/package/XMLPackageParser.d.ts +31 -0
  88. package/esm/package/ZipPackageParser.d.ts +29 -0
  89. package/esm/package/ZipPackageParser.js +70 -0
  90. package/esm/parse/jcToTextAlign.d.ts +5 -0
  91. package/esm/parse/jcToTextAlign.js +21 -0
  92. package/esm/parse/parseBorder.d.ts +13 -0
  93. package/esm/parse/parseBorder.js +78 -0
  94. package/esm/parse/parseColor.d.ts +22 -0
  95. package/esm/parse/parseColor.js +131 -0
  96. package/esm/parse/parseFont.d.ts +7 -0
  97. package/esm/parse/parseFont.js +54 -0
  98. package/esm/parse/parseInd.d.ts +5 -0
  99. package/esm/parse/parseInd.js +27 -0
  100. package/esm/parse/parsePr.d.ts +8 -0
  101. package/esm/parse/parsePr.js +325 -0
  102. package/esm/parse/parseRelationship.d.ts +12 -0
  103. package/esm/parse/parseRelationship.js +40 -0
  104. package/esm/parse/parseSize.d.ts +27 -0
  105. package/esm/parse/parseSize.js +38 -0
  106. package/esm/parse/parseSpacing.d.ts +7 -0
  107. package/esm/parse/parseSpacing.js +43 -0
  108. package/esm/parse/parseTextDirection.d.ts +2 -0
  109. package/esm/parse/parseTextDirection.js +25 -0
  110. package/esm/parse/parseTrHeight.d.ts +2 -0
  111. package/esm/parse/parseTrHeight.js +17 -0
  112. package/esm/render/renderBody.d.ts +6 -0
  113. package/esm/render/renderBody.js +53 -0
  114. package/esm/render/renderBookmark.d.ts +6 -0
  115. package/esm/render/renderBookmark.js +17 -0
  116. package/esm/render/renderBr.d.ts +7 -0
  117. package/esm/render/renderBr.js +13 -0
  118. package/esm/render/renderDocument.d.ts +7 -0
  119. package/esm/render/renderDocument.js +14 -0
  120. package/esm/render/renderDrawing.d.ts +8 -0
  121. package/esm/render/renderDrawing.js +38 -0
  122. package/esm/render/renderHyperLink.d.ts +7 -0
  123. package/esm/render/renderHyperLink.js +41 -0
  124. package/esm/render/renderInlineText.d.ts +6 -0
  125. package/esm/render/renderInlineText.js +39 -0
  126. package/esm/render/renderInstrText.d.ts +8 -0
  127. package/esm/render/renderInstrText.js +40 -0
  128. package/esm/render/renderNumbering.d.ts +7 -0
  129. package/esm/render/renderNumbering.js +161 -0
  130. package/esm/render/renderParagraph.d.ts +7 -0
  131. package/esm/render/renderParagraph.js +78 -0
  132. package/esm/render/renderPict.d.ts +6 -0
  133. package/esm/render/renderPict.js +19 -0
  134. package/esm/render/renderRuby.d.ts +6 -0
  135. package/esm/render/renderRuby.js +53 -0
  136. package/esm/render/renderRun.d.ts +14 -0
  137. package/esm/render/renderRun.js +116 -0
  138. package/esm/render/renderSection.d.ts +6 -0
  139. package/esm/render/renderSection.js +36 -0
  140. package/esm/render/renderStyle.d.ts +13 -0
  141. package/esm/render/renderStyle.js +194 -0
  142. package/esm/render/renderSym.d.ts +3 -0
  143. package/esm/render/renderSym.js +10 -0
  144. package/esm/render/renderTab.d.ts +7 -0
  145. package/esm/render/renderTab.js +19 -0
  146. package/esm/render/renderTable.d.ts +6 -0
  147. package/esm/render/renderTable.js +186 -0
  148. package/esm/render/setElementStyle.d.ts +6 -0
  149. package/esm/render/setElementStyle.js +21 -0
  150. package/esm/util/autoSpace.d.ts +5 -0
  151. package/esm/util/autoSpace.js +33 -0
  152. package/esm/util/blob.d.ts +9 -0
  153. package/esm/util/blob.js +39 -0
  154. package/esm/util/dom.d.ts +36 -0
  155. package/esm/util/dom.js +63 -0
  156. package/esm/util/mergeRun.d.ts +17 -0
  157. package/esm/util/mergeRun.js +134 -0
  158. package/esm/util/xml.d.ts +8 -0
  159. package/esm/util/xml.js +12 -0
  160. package/lib/OpenXML.d.ts +21 -0
  161. package/lib/OpenXML.js +69 -0
  162. package/lib/Word.d.ts +208 -0
  163. package/lib/Word.js +374 -0
  164. package/lib/index.d.ts +6 -0
  165. package/lib/index.js +10 -0
  166. package/lib/node_modules/tslib/tslib.es6.js +129 -0
  167. package/lib/openxml/ContentType.d.ts +12 -0
  168. package/lib/openxml/ContentType.js +19 -0
  169. package/lib/openxml/Style.d.ts +41 -0
  170. package/lib/openxml/Style.js +160 -0
  171. package/lib/openxml/Theme.d.ts +26 -0
  172. package/lib/openxml/Theme.js +73 -0
  173. package/lib/openxml/Types.d.ts +2512 -0
  174. package/lib/openxml/Types.js +1005 -0
  175. package/lib/openxml/word/Background.d.ts +11 -0
  176. package/lib/openxml/word/Body.d.ts +18 -0
  177. package/lib/openxml/word/Body.js +71 -0
  178. package/lib/openxml/word/Bookmark.d.ts +6 -0
  179. package/lib/openxml/word/Bookmark.js +22 -0
  180. package/lib/openxml/word/Border.d.ts +10 -0
  181. package/lib/openxml/word/Break.d.ts +13 -0
  182. package/lib/openxml/word/Break.js +23 -0
  183. package/lib/openxml/word/CustomXml.d.ts +8 -0
  184. package/lib/openxml/word/FldSimple.d.ts +7 -0
  185. package/lib/openxml/word/FldSimple.js +19 -0
  186. package/lib/openxml/word/FrameProperties.d.ts +18 -0
  187. package/lib/openxml/word/Hyperlink.d.ts +13 -0
  188. package/lib/openxml/word/Hyperlink.js +57 -0
  189. package/lib/openxml/word/Indent.d.ts +8 -0
  190. package/lib/openxml/word/InlineText.d.ts +14 -0
  191. package/lib/openxml/word/InlineText.js +66 -0
  192. package/lib/openxml/word/InstrText.d.ts +4 -0
  193. package/lib/openxml/word/InstrText.js +12 -0
  194. package/lib/openxml/word/Paragraph.d.ts +34 -0
  195. package/lib/openxml/word/Paragraph.js +137 -0
  196. package/lib/openxml/word/Pict.d.ts +6 -0
  197. package/lib/openxml/word/Pict.js +23 -0
  198. package/lib/openxml/word/Ruby.d.ts +20 -0
  199. package/lib/openxml/word/Ruby.js +91 -0
  200. package/lib/openxml/word/Run.d.ts +31 -0
  201. package/lib/openxml/word/Run.js +103 -0
  202. package/lib/openxml/word/Section.d.ts +38 -0
  203. package/lib/openxml/word/Section.js +63 -0
  204. package/lib/openxml/word/Shading.d.ts +9 -0
  205. package/lib/openxml/word/SmartTag.d.ts +8 -0
  206. package/lib/openxml/word/SmartTag.js +22 -0
  207. package/lib/openxml/word/Spacing.d.ts +9 -0
  208. package/lib/openxml/word/Sym.d.ts +8 -0
  209. package/lib/openxml/word/Sym.js +20 -0
  210. package/lib/openxml/word/Tab.d.ts +8 -0
  211. package/lib/openxml/word/Tab.js +21 -0
  212. package/lib/openxml/word/Table.d.ts +49 -0
  213. package/lib/openxml/word/Table.js +252 -0
  214. package/lib/openxml/word/VerticalAlign.d.ts +6 -0
  215. package/lib/openxml/word/WDocument.d.ts +13 -0
  216. package/lib/openxml/word/WDocument.js +62 -0
  217. package/lib/openxml/word/drawing/Blip.d.ts +6 -0
  218. package/lib/openxml/word/drawing/Blip.js +21 -0
  219. package/lib/openxml/word/drawing/BlipFill.d.ts +9 -0
  220. package/lib/openxml/word/drawing/BlipFill.js +24 -0
  221. package/lib/openxml/word/drawing/Drawing.d.ts +6 -0
  222. package/lib/openxml/word/drawing/Drawing.js +19 -0
  223. package/lib/openxml/word/drawing/Pic.d.ts +8 -0
  224. package/lib/openxml/word/drawing/Pic.js +20 -0
  225. package/lib/openxml/word/drawing/ShapeProperties.d.ts +9 -0
  226. package/lib/openxml/word/drawing/ShapeProperties.js +24 -0
  227. package/lib/openxml/word/drawing/Transform.d.ts +17 -0
  228. package/lib/openxml/word/drawing/Transform.js +34 -0
  229. package/lib/openxml/word/numbering/AbstractNum.d.ts +13 -0
  230. package/lib/openxml/word/numbering/AbstractNum.js +46 -0
  231. package/lib/openxml/word/numbering/Lvl.d.ts +16 -0
  232. package/lib/openxml/word/numbering/Lvl.js +66 -0
  233. package/lib/openxml/word/numbering/Num.d.ts +10 -0
  234. package/lib/openxml/word/numbering/Num.js +50 -0
  235. package/lib/openxml/word/numbering/NumberProperties.d.ts +6 -0
  236. package/lib/openxml/word/numbering/NumberProperties.js +25 -0
  237. package/lib/openxml/word/numbering/Numbering.d.ts +9 -0
  238. package/lib/openxml/word/numbering/Numbering.js +54 -0
  239. package/lib/openxml/word/properties/Properties.d.ts +12 -0
  240. package/lib/openxml/word/table/Tc.d.ts +46 -0
  241. package/lib/openxml/word/table/Tc.js +242 -0
  242. package/lib/openxml/word/table/Tr.d.ts +18 -0
  243. package/lib/openxml/word/table/Tr.js +110 -0
  244. package/lib/package/PackageParser.d.ts +26 -0
  245. package/lib/package/XMLPackageParser.d.ts +31 -0
  246. package/lib/package/ZipPackageParser.d.ts +29 -0
  247. package/lib/package/ZipPackageParser.js +74 -0
  248. package/lib/parse/jcToTextAlign.d.ts +5 -0
  249. package/lib/parse/jcToTextAlign.js +25 -0
  250. package/lib/parse/parseBorder.d.ts +13 -0
  251. package/lib/parse/parseBorder.js +83 -0
  252. package/lib/parse/parseColor.d.ts +22 -0
  253. package/lib/parse/parseColor.js +137 -0
  254. package/lib/parse/parseFont.d.ts +7 -0
  255. package/lib/parse/parseFont.js +58 -0
  256. package/lib/parse/parseInd.d.ts +5 -0
  257. package/lib/parse/parseInd.js +31 -0
  258. package/lib/parse/parsePr.d.ts +8 -0
  259. package/lib/parse/parsePr.js +329 -0
  260. package/lib/parse/parseRelationship.d.ts +12 -0
  261. package/lib/parse/parseRelationship.js +45 -0
  262. package/lib/parse/parseSize.d.ts +27 -0
  263. package/lib/parse/parseSize.js +44 -0
  264. package/lib/parse/parseSpacing.d.ts +7 -0
  265. package/lib/parse/parseSpacing.js +47 -0
  266. package/lib/parse/parseTextDirection.d.ts +2 -0
  267. package/lib/parse/parseTextDirection.js +29 -0
  268. package/lib/parse/parseTrHeight.d.ts +2 -0
  269. package/lib/parse/parseTrHeight.js +21 -0
  270. package/lib/render/renderBody.d.ts +6 -0
  271. package/lib/render/renderBody.js +57 -0
  272. package/lib/render/renderBookmark.d.ts +6 -0
  273. package/lib/render/renderBookmark.js +21 -0
  274. package/lib/render/renderBr.d.ts +7 -0
  275. package/lib/render/renderBr.js +17 -0
  276. package/lib/render/renderDocument.d.ts +7 -0
  277. package/lib/render/renderDocument.js +18 -0
  278. package/lib/render/renderDrawing.d.ts +8 -0
  279. package/lib/render/renderDrawing.js +42 -0
  280. package/lib/render/renderHyperLink.d.ts +7 -0
  281. package/lib/render/renderHyperLink.js +45 -0
  282. package/lib/render/renderInlineText.d.ts +6 -0
  283. package/lib/render/renderInlineText.js +43 -0
  284. package/lib/render/renderInstrText.d.ts +8 -0
  285. package/lib/render/renderInstrText.js +44 -0
  286. package/lib/render/renderNumbering.d.ts +7 -0
  287. package/lib/render/renderNumbering.js +165 -0
  288. package/lib/render/renderParagraph.d.ts +7 -0
  289. package/lib/render/renderParagraph.js +82 -0
  290. package/lib/render/renderPict.d.ts +6 -0
  291. package/lib/render/renderPict.js +23 -0
  292. package/lib/render/renderRuby.d.ts +6 -0
  293. package/lib/render/renderRuby.js +57 -0
  294. package/lib/render/renderRun.d.ts +14 -0
  295. package/lib/render/renderRun.js +121 -0
  296. package/lib/render/renderSection.d.ts +6 -0
  297. package/lib/render/renderSection.js +40 -0
  298. package/lib/render/renderStyle.d.ts +13 -0
  299. package/lib/render/renderStyle.js +199 -0
  300. package/lib/render/renderSym.d.ts +3 -0
  301. package/lib/render/renderSym.js +14 -0
  302. package/lib/render/renderTab.d.ts +7 -0
  303. package/lib/render/renderTab.js +23 -0
  304. package/lib/render/renderTable.d.ts +6 -0
  305. package/lib/render/renderTable.js +190 -0
  306. package/lib/render/setElementStyle.d.ts +6 -0
  307. package/lib/render/setElementStyle.js +25 -0
  308. package/lib/util/autoSpace.d.ts +5 -0
  309. package/lib/util/autoSpace.js +37 -0
  310. package/lib/util/blob.d.ts +9 -0
  311. package/lib/util/blob.js +44 -0
  312. package/lib/util/dom.d.ts +36 -0
  313. package/lib/util/dom.js +72 -0
  314. package/lib/util/mergeRun.d.ts +17 -0
  315. package/lib/util/mergeRun.js +140 -0
  316. package/lib/util/xml.d.ts +8 -0
  317. package/lib/util/xml.js +16 -0
  318. package/package.json +91 -0
@@ -0,0 +1,7 @@
1
+ import { Break } from '../openxml/word/Break';
2
+ /**
3
+ * 解析 br http://officeopenxml.com/WPtextSpecialContent-break.php
4
+ * 其实还有 column 和 page,但目前还没实现分页渲染,所以目前先简单处理,后续再看看如何处理
5
+ * @returns 生成的 dom 结构
6
+ */
7
+ export declare function renderBr(brak: Break): HTMLElement;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dom = require('../util/dom.js');
6
+
7
+ /**
8
+ * 解析 br http://officeopenxml.com/WPtextSpecialContent-break.php
9
+ * 其实还有 column 和 page,但目前还没实现分页渲染,所以目前先简单处理,后续再看看如何处理
10
+ * @returns 生成的 dom 结构
11
+ */
12
+ function renderBr(brak) {
13
+ var br = dom.createElement('br');
14
+ return br;
15
+ }
16
+
17
+ exports.renderBr = renderBr;
@@ -0,0 +1,7 @@
1
+ import Word from '../Word';
2
+ import { WDocument } from '../openxml/word/WDocument';
3
+ /**
4
+ * 渲染 document 主要入口
5
+ * http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/document.html
6
+ */
7
+ export default function renderDocument(word: Word, document: WDocument): HTMLElement;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dom = require('../util/dom.js');
6
+ var renderBody = require('./renderBody.js');
7
+
8
+ /**
9
+ * 渲染 document 主要入口
10
+ * http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/document.html
11
+ */
12
+ function renderDocument(word, document) {
13
+ var doc = dom.createElement('article');
14
+ renderBody["default"](word, doc, document.body);
15
+ return doc;
16
+ }
17
+
18
+ exports["default"] = renderDocument;
@@ -0,0 +1,8 @@
1
+ import Word from '../Word';
2
+ import { Drawing } from '../openxml/word/drawing/Drawing';
3
+ /**
4
+ * 渲染图片,目前只支持 picture
5
+ * http://officeopenxml.com/drwOverview.php
6
+ *
7
+ */
8
+ export declare function renderDrawing(word: Word, drawing: Drawing): HTMLElement | null;
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 渲染图片,目前只支持 picture
7
+ * http://officeopenxml.com/drwOverview.php
8
+ *
9
+ */
10
+ function renderDrawing(word, drawing) {
11
+ var _a, _b, _c;
12
+ var pic = drawing.pic;
13
+ if (pic) {
14
+ var blip = (_a = pic.blipFill) === null || _a === void 0 ? void 0 : _a.blip;
15
+ if (blip && blip.embled) {
16
+ var img_1 = document.createElement('img');
17
+ img_1.style.position = 'relative';
18
+ (_b = word.loadImage(blip.embled)) === null || _b === void 0 ? void 0 : _b.then(function (url) {
19
+ if (url) {
20
+ img_1.src = url;
21
+ }
22
+ });
23
+ var xfrm = (_c = pic.spPr) === null || _c === void 0 ? void 0 : _c.xfrm;
24
+ if (xfrm) {
25
+ var off = xfrm.off;
26
+ if (off) {
27
+ img_1.style.left = off.x;
28
+ img_1.style.top = off.y;
29
+ }
30
+ var ext = xfrm.ext;
31
+ if (ext) {
32
+ img_1.style.width = ext.cx;
33
+ img_1.style.height = ext.cy;
34
+ }
35
+ }
36
+ return img_1;
37
+ }
38
+ }
39
+ return null;
40
+ }
41
+
42
+ exports.renderDrawing = renderDrawing;
@@ -0,0 +1,7 @@
1
+ import { Hyperlink } from './../openxml/word/Hyperlink';
2
+ import Word from '../Word';
3
+ import type { Paragraph } from '../openxml/word/Paragraph';
4
+ /**
5
+ * 渲染链接
6
+ */
7
+ export declare function renderHyperLink(word: Word, hyperlink: Hyperlink, paragraph?: Paragraph): HTMLElement;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var Run = require('../openxml/word/Run.js');
8
+ var renderRun = require('./renderRun.js');
9
+
10
+ /**
11
+ * 渲染链接
12
+ */
13
+ function renderHyperLink(word, hyperlink, paragraph) {
14
+ var e_1, _a;
15
+ var a = dom.createElement('a');
16
+ if (hyperlink.relation) {
17
+ var rel = hyperlink.relation;
18
+ if (rel && rel.targetMode === 'External') {
19
+ a.href = rel.target;
20
+ a.target = '_blank';
21
+ }
22
+ }
23
+ if (hyperlink.anchor) {
24
+ a.href = '#' + hyperlink.anchor;
25
+ }
26
+ try {
27
+ for (var _b = tslib_es6.__values(hyperlink.children), _c = _b.next(); !_c.done; _c = _b.next()) {
28
+ var child = _c.value;
29
+ if (child instanceof Run.Run) {
30
+ var span = renderRun["default"](word, child, paragraph);
31
+ dom.appendChild(a, span);
32
+ }
33
+ }
34
+ }
35
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
36
+ finally {
37
+ try {
38
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
39
+ }
40
+ finally { if (e_1) throw e_1.error; }
41
+ }
42
+ return a;
43
+ }
44
+
45
+ exports.renderHyperLink = renderHyperLink;
@@ -0,0 +1,6 @@
1
+ import Word from '../Word';
2
+ import { InlineText } from '../openxml/word/InlineText';
3
+ /**
4
+ * 渲染 smart tag
5
+ */
6
+ export default function renderInlineText(word: Word, inlineText: InlineText, parent: HTMLElement): void;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var Run = require('../openxml/word/Run.js');
8
+ var Bookmark = require('../openxml/word/Bookmark.js');
9
+ var Hyperlink = require('../openxml/word/Hyperlink.js');
10
+ var renderRun = require('./renderRun.js');
11
+ var renderHyperLink = require('./renderHyperLink.js');
12
+ var renderBookmark = require('./renderBookmark.js');
13
+
14
+ /**
15
+ * 渲染 smart tag
16
+ */
17
+ function renderInlineText(word, inlineText, parent) {
18
+ var e_1, _a;
19
+ try {
20
+ for (var _b = tslib_es6.__values(inlineText.children), _c = _b.next(); !_c.done; _c = _b.next()) {
21
+ var child = _c.value;
22
+ if (child instanceof Run.Run) {
23
+ dom.appendChild(parent, renderRun["default"](word, child));
24
+ }
25
+ else if (child instanceof Bookmark.BookmarkStart) {
26
+ dom.appendChild(parent, renderBookmark.renderBookmarkStart(word, child));
27
+ }
28
+ else if (child instanceof Hyperlink.Hyperlink) {
29
+ var hyperlink = renderHyperLink.renderHyperLink(word, child);
30
+ dom.appendChild(parent, hyperlink);
31
+ }
32
+ }
33
+ }
34
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
35
+ finally {
36
+ try {
37
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
38
+ }
39
+ finally { if (e_1) throw e_1.error; }
40
+ }
41
+ }
42
+
43
+ exports["default"] = renderInlineText;
@@ -0,0 +1,8 @@
1
+ import { InstrText } from '../openxml/word/InstrText';
2
+ import Word from '../Word';
3
+ /**
4
+ * 渲染字段指令,目前基本都没实现
5
+ * http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/Field%20definitions.html
6
+ * http://officeopenxml.com/WPfieldInstructions.php
7
+ */
8
+ export declare function renderInstrText(word: Word, instrText: InstrText): HTMLElement;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var renderInlineText = require('./renderInlineText.js');
8
+
9
+ /**
10
+ * 渲染字段指令,目前基本都没实现
11
+ * http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/Field%20definitions.html
12
+ * http://officeopenxml.com/WPfieldInstructions.php
13
+ */
14
+ function renderInstrText(word, instrText) {
15
+ var e_1, _a;
16
+ var _b;
17
+ var text = instrText.text;
18
+ var span = dom.createElement('span');
19
+ var fldSimples = (_b = word.currentParagraph) === null || _b === void 0 ? void 0 : _b.fldSimples;
20
+ if (fldSimples) {
21
+ try {
22
+ // 其实不知道这样做是不是对的
23
+ // 另外就是这里有很多指令还不支持 http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/FILENAME.html
24
+ for (var fldSimples_1 = tslib_es6.__values(fldSimples), fldSimples_1_1 = fldSimples_1.next(); !fldSimples_1_1.done; fldSimples_1_1 = fldSimples_1.next()) {
25
+ var fldSimple = fldSimples_1_1.value;
26
+ if (fldSimple.instr === text.trim() ||
27
+ text.startsWith(fldSimple.instr + ' ')) {
28
+ renderInlineText["default"](word, fldSimple.inlineText, span);
29
+ break;
30
+ }
31
+ }
32
+ }
33
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
34
+ finally {
35
+ try {
36
+ if (fldSimples_1_1 && !fldSimples_1_1.done && (_a = fldSimples_1.return)) _a.call(fldSimples_1);
37
+ }
38
+ finally { if (e_1) throw e_1.error; }
39
+ }
40
+ }
41
+ return span;
42
+ }
43
+
44
+ exports.renderInstrText = renderInstrText;
@@ -0,0 +1,7 @@
1
+ import { NumberPr } from '../openxml/word/numbering/NumberProperties';
2
+ import Word from '../Word';
3
+ /**
4
+ * 渲染列表 http://officeopenxml.com/WPnumbering.php
5
+ * 为了支持复杂场景,这里使用代码来直接生成内容
6
+ */
7
+ export declare function renderNumbering(p: HTMLElement, word: Word, numPr: NumberPr): HTMLElement | null;
@@ -0,0 +1,165 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var Types = require('../openxml/Types.js');
8
+ var setElementStyle = require('./setElementStyle.js');
9
+
10
+ /**
11
+ * 整数转成罗马数字,来自 https://stackoverflow.com/a/32851198
12
+ */
13
+ function romanize(num) {
14
+ var lookup = {
15
+ M: 1000,
16
+ CM: 900,
17
+ D: 500,
18
+ CD: 400,
19
+ C: 100,
20
+ XC: 90,
21
+ L: 50,
22
+ XL: 40,
23
+ X: 10,
24
+ IX: 9,
25
+ V: 5,
26
+ IV: 4,
27
+ I: 1
28
+ };
29
+ var roman = '';
30
+ for (var key in lookup) {
31
+ while (num >= lookup[key]) {
32
+ roman += key;
33
+ num -= lookup[key];
34
+ }
35
+ }
36
+ return roman;
37
+ }
38
+ /**
39
+ * 将数字转成列表格式,目前只支持少数几种格式,不支持的都直接返回数字
40
+ */
41
+ function convertNumToFormat(numFmt, num) {
42
+ switch (numFmt) {
43
+ case Types.ST_NumberFormat.decimal:
44
+ return num.toString();
45
+ case Types.ST_NumberFormat.lowerLetter:
46
+ return String.fromCharCode(96 + num);
47
+ case Types.ST_NumberFormat.upperLetter:
48
+ return String.fromCharCode(64 + num);
49
+ case Types.ST_NumberFormat.lowerRoman:
50
+ return romanize(num).toLowerCase();
51
+ case Types.ST_NumberFormat.upperRoman:
52
+ return romanize(num).toUpperCase();
53
+ case Types.ST_NumberFormat.bullet:
54
+ // 原本其实是用
55
+ return '•';
56
+ default:
57
+ return num.toString();
58
+ }
59
+ }
60
+ /**
61
+ * 渲染列表 http://officeopenxml.com/WPnumbering.php
62
+ * 为了支持复杂场景,这里使用代码来直接生成内容
63
+ */
64
+ function renderNumbering(p, word, numPr) {
65
+ var numbering = word.numbering;
66
+ var numId = numPr.numId;
67
+ if (!numId) {
68
+ console.warn('renderNumbering: numId is empty');
69
+ return null;
70
+ }
71
+ if (!numbering) {
72
+ console.warn('renderNumbering: numbering is empty');
73
+ return null;
74
+ }
75
+ var num = numbering.nums[numId];
76
+ if (!num) {
77
+ console.warn('renderNumbering: num is empty');
78
+ return null;
79
+ }
80
+ var abstractNum = numbering.abstractNums[num.abstractNumId];
81
+ var lvls = abstractNum.lvls;
82
+ if (num.lvlOverride) {
83
+ lvls = tslib_es6.__assign(tslib_es6.__assign({}, lvls), num.lvlOverride.lvls);
84
+ }
85
+ var lvl = lvls[numPr.ilvl];
86
+ if (!lvl) {
87
+ console.warn('renderNumbering: lvl is empty');
88
+ return null;
89
+ }
90
+ var ilvl = numPr.ilvl;
91
+ var ilvlData = numbering.numData[numId];
92
+ // 还不支持 http://officeopenxml.com/WPnumbering-restart.php
93
+ if (!ilvlData[ilvl]) {
94
+ ilvlData[ilvl] = lvl.start;
95
+ }
96
+ else {
97
+ ilvlData[ilvl] += 1;
98
+ // 加一之后,将比它大的都清空,这样才能每个级别重置
99
+ for (var ilvIndex in ilvlData) {
100
+ if (parseInt(ilvIndex) > parseInt(ilvl)) {
101
+ ilvlData[ilvIndex] = 0;
102
+ }
103
+ }
104
+ }
105
+ var element = dom.createElement('span');
106
+ var lvlText = lvl.lvlText;
107
+ // 格式化内容
108
+ var level = parseInt(ilvl);
109
+ // 获取每个层级的值
110
+ var levelNums = [];
111
+ for (var i = 0; i <= level; i++) {
112
+ var listNumber = ilvlData[i];
113
+ if (listNumber) {
114
+ var numFmt = lvls[i].numFmt;
115
+ var numText = convertNumToFormat(numFmt, listNumber);
116
+ // 强制数字显示 http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/isLgl.html
117
+ // http://officeopenxml.com/WPnumbering-isLgl.php
118
+ if (lvl.isLgl) {
119
+ numText = String(listNumber);
120
+ }
121
+ levelNums.push(numText);
122
+ }
123
+ }
124
+ for (var i = 0; i < levelNums.length; i++) {
125
+ var levelNum = levelNums[i];
126
+ lvlText = lvlText.replace("%".concat(i + 1), levelNum);
127
+ }
128
+ // 这个 pPr 似乎是影响父级的
129
+ // http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/pPr_6.html
130
+ // This element specifies the paragraph properties which shall be applied as part of a given numbering level within the parent numbering definition.
131
+ setElementStyle.setElementStyle(word, p, lvl.pPr);
132
+ setElementStyle.setElementStyle(word, element, lvl.rPr);
133
+ // 还不支持 lvlJc
134
+ // 还不支持 image
135
+ // http://officeopenxml.com/WPnumbering-imagesAsSymbol.php
136
+ if (lvl.numFmt !== Types.ST_NumberFormat.bullet ||
137
+ word.renderOptions.bulletUseFont) {
138
+ element.innerText = lvlText;
139
+ }
140
+ else {
141
+ // 如果没有字体只能尽可能模拟了
142
+ // 参考 https://www.w3schools.com/charsets/ref_utf_geometric.asp
143
+ var bulletText = '&bull;';
144
+ var unicodeString = lvlText.charCodeAt(0).toString(16).padStart(4, '0');
145
+ if (unicodeString === 'f06e') {
146
+ bulletText = '&#9632;';
147
+ }
148
+ else if (unicodeString === 'f075') {
149
+ bulletText = '&#9670;';
150
+ }
151
+ else if (unicodeString === 'f0d8') {
152
+ bulletText = '&#9658;';
153
+ }
154
+ element.innerHTML = bulletText;
155
+ }
156
+ if (lvl.suff === 'space') {
157
+ element.innerHTML += ' ';
158
+ }
159
+ else if (lvl.suff === 'tab') {
160
+ element.innerHTML += '&emsp;';
161
+ }
162
+ return element;
163
+ }
164
+
165
+ exports.renderNumbering = renderNumbering;
@@ -0,0 +1,7 @@
1
+ import Word from '../Word';
2
+ import { Paragraph } from '../openxml/word/Paragraph';
3
+ /**
4
+ * 渲染段落
5
+ * @param renderEmptySpace 如果是 true 的话,当内容为空时会自动加上 &nbsp;
6
+ */
7
+ export default function renderParagraph(word: Word, paragraph: Paragraph, renderEmptySpace?: boolean): HTMLElement;
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var Run = require('../openxml/word/Run.js');
8
+ var Bookmark = require('../openxml/word/Bookmark.js');
9
+ var Hyperlink = require('../openxml/word/Hyperlink.js');
10
+ var renderRun = require('./renderRun.js');
11
+ var renderHyperLink = require('./renderHyperLink.js');
12
+ var renderBookmark = require('./renderBookmark.js');
13
+ var renderNumbering = require('./renderNumbering.js');
14
+ var setElementStyle = require('./setElementStyle.js');
15
+ var renderTab = require('./renderTab.js');
16
+ var SmartTag = require('../openxml/word/SmartTag.js');
17
+ var renderInlineText = require('./renderInlineText.js');
18
+
19
+ /**
20
+ * 渲染段落
21
+ * @param renderEmptySpace 如果是 true 的话,当内容为空时会自动加上 &nbsp;
22
+ */
23
+ function renderParagraph(word, paragraph, renderEmptySpace) {
24
+ var e_1, _a, e_2, _b;
25
+ if (renderEmptySpace === void 0) { renderEmptySpace = true; }
26
+ word.currentParagraph = paragraph;
27
+ var p = dom.createElement('p');
28
+ word.addClass(p, 'p');
29
+ var properties = paragraph.properties;
30
+ setElementStyle.setElementStyle(word, p, properties);
31
+ // 渲染列表前缀
32
+ if (properties.numPr) {
33
+ dom.appendChild(p, renderNumbering.renderNumbering(p, word, properties.numPr));
34
+ }
35
+ if (properties.tabs) {
36
+ try {
37
+ for (var _c = tslib_es6.__values(properties.tabs), _d = _c.next(); !_d.done; _d = _c.next()) {
38
+ var tab = _d.value;
39
+ dom.appendChild(p, renderTab.renderTab(word, tab));
40
+ }
41
+ }
42
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
43
+ finally {
44
+ try {
45
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
46
+ }
47
+ finally { if (e_1) throw e_1.error; }
48
+ }
49
+ }
50
+ try {
51
+ for (var _e = tslib_es6.__values(paragraph.children), _f = _e.next(); !_f.done; _f = _e.next()) {
52
+ var child = _f.value;
53
+ if (child instanceof Run.Run) {
54
+ dom.appendChild(p, renderRun["default"](word, child, paragraph));
55
+ }
56
+ else if (child instanceof Bookmark.BookmarkStart) {
57
+ dom.appendChild(p, renderBookmark.renderBookmarkStart(word, child));
58
+ }
59
+ else if (child instanceof Hyperlink.Hyperlink) {
60
+ var hyperlink = renderHyperLink.renderHyperLink(word, child, paragraph);
61
+ dom.appendChild(p, hyperlink);
62
+ }
63
+ else if (child instanceof SmartTag.SmartTag) {
64
+ renderInlineText["default"](word, child, p);
65
+ }
66
+ }
67
+ }
68
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
69
+ finally {
70
+ try {
71
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
72
+ }
73
+ finally { if (e_2) throw e_2.error; }
74
+ }
75
+ // 空行自动加个空格,不然会没高度
76
+ if (p.innerHTML === '' && renderEmptySpace) {
77
+ p.innerHTML = '&nbsp;';
78
+ }
79
+ return p;
80
+ }
81
+
82
+ exports["default"] = renderParagraph;
@@ -0,0 +1,6 @@
1
+ import { Pict } from '../openxml/word/Pict';
2
+ import Word from '../Word';
3
+ /**
4
+ * 老的 vml 格式,目前只支持图片
5
+ */
6
+ export declare function renderPict(word: Word, pict: Pict): HTMLImageElement | null;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 老的 vml 格式,目前只支持图片
7
+ */
8
+ function renderPict(word, pict) {
9
+ var _a;
10
+ if (pict.imagedata) {
11
+ var img_1 = document.createElement('img');
12
+ img_1.style.position = 'relative';
13
+ (_a = word.loadImage(pict.imagedata)) === null || _a === void 0 ? void 0 : _a.then(function (url) {
14
+ if (url) {
15
+ img_1.src = url;
16
+ }
17
+ });
18
+ return img_1;
19
+ }
20
+ return null;
21
+ }
22
+
23
+ exports.renderPict = renderPict;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 渲染 ruby 标签
3
+ */
4
+ import { Ruby } from '../openxml/word/Ruby';
5
+ import Word from '../Word';
6
+ export declare function renderRuby(word: Word, ruby: Ruby): HTMLElement;
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.js');
6
+ var dom = require('../util/dom.js');
7
+ var renderRun = require('./renderRun.js');
8
+
9
+ /**
10
+ * 渲染 ruby 标签
11
+ */
12
+ function renderRuby(word, ruby) {
13
+ var e_1, _a, e_2, _b;
14
+ var rubyElement = dom.createElement('ruby');
15
+ if (ruby.rubyBase) {
16
+ try {
17
+ for (var _c = tslib_es6.__values(ruby.rubyBase.children), _d = _c.next(); !_d.done; _d = _c.next()) {
18
+ var text = _d.value;
19
+ rubyElement.appendChild(renderRun["default"](word, text));
20
+ }
21
+ }
22
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
23
+ finally {
24
+ try {
25
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
26
+ }
27
+ finally { if (e_1) throw e_1.error; }
28
+ }
29
+ if (ruby.rt) {
30
+ // rp 是给不支持 ruby 的浏览器显示的
31
+ var rpStart = dom.createElement('rp');
32
+ rpStart.innerText = '(';
33
+ rubyElement.appendChild(rpStart);
34
+ var rtElement = dom.createElement('rt');
35
+ try {
36
+ for (var _e = tslib_es6.__values(ruby.rt.children), _f = _e.next(); !_f.done; _f = _e.next()) {
37
+ var text = _f.value;
38
+ rtElement.appendChild(renderRun["default"](word, text));
39
+ }
40
+ }
41
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
42
+ finally {
43
+ try {
44
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
45
+ }
46
+ finally { if (e_2) throw e_2.error; }
47
+ }
48
+ rubyElement.appendChild(rtElement);
49
+ var rpEnd = dom.createElement('rp');
50
+ rpEnd.innerText = ')';
51
+ rubyElement.appendChild(rpEnd);
52
+ }
53
+ }
54
+ return rubyElement;
55
+ }
56
+
57
+ exports.renderRuby = renderRuby;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * run 相关的 http://webapp.docx4java.org/OnlineDemo/ecma376/WordML/Run_1.html
3
+ */
4
+ import Word from '../Word';
5
+ import { Run } from '../openxml/word/Run';
6
+ import type { Paragraph } from './../openxml/word/Paragraph';
7
+ /**
8
+ * 更新文档里的所有变量
9
+ */
10
+ export declare function updateVariableText(word: Word): void;
11
+ /**
12
+ * 渲染 run 节点
13
+ */
14
+ export default function renderRun(word: Word, run: Run, paragraph?: Paragraph): HTMLElement;