@syncfusion/ej2-pdf 1.0.23 → 23.1.38

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 (518) hide show
  1. package/.eslintrc.json +260 -0
  2. package/.gitleaksignore +1 -0
  3. package/CHANGELOG.md +28 -0
  4. package/README.md +17 -0
  5. package/dist/ej2-pdf.umd.min.js +4 -14
  6. package/dist/ej2-pdf.umd.min.js.map +1 -11
  7. package/dist/es6/ej2-pdf.es2015.js +48372 -0
  8. package/dist/es6/ej2-pdf.es2015.js.map +1 -0
  9. package/dist/es6/ej2-pdf.es5.js +50250 -0
  10. package/dist/es6/ej2-pdf.es5.js.map +1 -0
  11. package/dist/global/ej2-pdf.min.js +11 -0
  12. package/dist/global/ej2-pdf.min.js.map +1 -0
  13. package/dist/global/index.d.ts +14 -0
  14. package/index.js +4 -8
  15. package/license +10 -3
  16. package/package.json +58 -16
  17. package/pdf.d.ts +4 -0
  18. package/pdf.js +4 -0
  19. package/src/global.js +1 -0
  20. package/src/index.d.ts +45 -98
  21. package/src/index.js +45 -96
  22. package/src/pdf/core/annotations/annotation-collection.d.ts +289 -0
  23. package/src/pdf/core/annotations/annotation-collection.js +755 -0
  24. package/src/pdf/core/annotations/annotation.d.ts +5865 -0
  25. package/src/pdf/core/annotations/annotation.js +14195 -0
  26. package/src/pdf/core/annotations/index.d.ts +4 -0
  27. package/src/pdf/core/annotations/index.js +4 -0
  28. package/src/pdf/core/annotations/pdf-appearance.d.ts +102 -0
  29. package/src/pdf/core/annotations/pdf-appearance.js +124 -0
  30. package/src/pdf/core/annotations/pdf-paddings.d.ts +8 -0
  31. package/src/pdf/core/annotations/pdf-paddings.js +22 -0
  32. package/src/pdf/core/base-stream.d.ts +86 -0
  33. package/src/pdf/core/base-stream.js +332 -0
  34. package/src/pdf/core/content-parser.d.ts +38 -0
  35. package/src/pdf/core/content-parser.js +359 -0
  36. package/src/pdf/core/decode-stream.d.ts +21 -0
  37. package/src/pdf/core/decode-stream.js +120 -0
  38. package/src/pdf/core/decrypt-stream.d.ts +11 -0
  39. package/src/pdf/core/decrypt-stream.js +53 -0
  40. package/src/pdf/core/enumerator.d.ts +1668 -0
  41. package/src/pdf/core/enumerator.js +1717 -0
  42. package/src/pdf/core/flate-stream.d.ts +13 -0
  43. package/src/pdf/core/flate-stream.js +329 -0
  44. package/src/pdf/core/fonts/index.d.ts +7 -0
  45. package/{dist/es6/implementation/graphics → src/pdf/core}/fonts/index.js +3 -4
  46. package/src/pdf/core/fonts/pdf-font-metrics.d.ts +66 -0
  47. package/src/pdf/core/fonts/pdf-font-metrics.js +192 -0
  48. package/src/pdf/core/fonts/pdf-standard-font.d.ts +1023 -0
  49. package/src/pdf/core/fonts/pdf-standard-font.js +1682 -0
  50. package/src/pdf/core/fonts/pdf-string-format.d.ts +236 -0
  51. package/src/pdf/core/fonts/pdf-string-format.js +213 -0
  52. package/src/pdf/core/fonts/string-layouter.d.ts +68 -0
  53. package/src/pdf/core/fonts/string-layouter.js +437 -0
  54. package/src/pdf/core/fonts/ttf-reader.d.ts +167 -0
  55. package/src/pdf/core/fonts/ttf-reader.js +1150 -0
  56. package/src/pdf/core/fonts/ttf-table.d.ts +132 -0
  57. package/src/pdf/core/fonts/ttf-table.js +74 -0
  58. package/src/pdf/core/fonts/unicode-true-type-font.d.ts +50 -0
  59. package/src/pdf/core/fonts/unicode-true-type-font.js +289 -0
  60. package/src/pdf/core/form/field.d.ts +3011 -0
  61. package/src/pdf/core/form/field.js +6828 -0
  62. package/src/pdf/core/form/form.d.ts +279 -0
  63. package/src/pdf/core/form/form.js +782 -0
  64. package/src/pdf/core/form/index.d.ts +2 -0
  65. package/src/pdf/core/form/index.js +2 -0
  66. package/src/pdf/core/graphics/images/image-decoder.d.ts +38 -0
  67. package/src/pdf/core/graphics/images/image-decoder.js +227 -0
  68. package/src/{implementation → pdf/core}/graphics/images/index.d.ts +0 -5
  69. package/{dist/es6/implementation → src/pdf/core}/graphics/images/index.js +0 -1
  70. package/src/pdf/core/graphics/images/pdf-bitmap.d.ts +73 -0
  71. package/src/pdf/core/graphics/images/pdf-bitmap.js +68 -0
  72. package/src/pdf/core/graphics/images/pdf-image.d.ts +201 -0
  73. package/src/pdf/core/graphics/images/pdf-image.js +201 -0
  74. package/src/pdf/core/graphics/index.d.ts +10 -0
  75. package/src/pdf/core/graphics/index.js +10 -0
  76. package/src/pdf/core/graphics/pdf-graphics.d.ts +956 -0
  77. package/src/pdf/core/graphics/pdf-graphics.js +1860 -0
  78. package/src/pdf/core/graphics/pdf-path.d.ts +34 -0
  79. package/src/pdf/core/graphics/pdf-path.js +177 -0
  80. package/src/pdf/core/graphics/pdf-stream-writer.d.ts +56 -0
  81. package/src/pdf/core/graphics/pdf-stream-writer.js +231 -0
  82. package/src/pdf/core/graphics/pdf-template.d.ts +79 -0
  83. package/src/pdf/core/graphics/pdf-template.js +100 -0
  84. package/src/pdf/core/graphics/rightToLeft/bidirectional.d.ts +69 -0
  85. package/src/pdf/core/graphics/rightToLeft/bidirectional.js +831 -0
  86. package/src/pdf/core/graphics/rightToLeft/index.d.ts +3 -0
  87. package/src/pdf/core/graphics/rightToLeft/index.js +3 -0
  88. package/src/pdf/core/graphics/rightToLeft/text-renderer.d.ts +13 -0
  89. package/src/pdf/core/graphics/rightToLeft/text-renderer.js +116 -0
  90. package/src/pdf/core/graphics/rightToLeft/text-shape.d.ts +48 -0
  91. package/src/pdf/core/graphics/rightToLeft/text-shape.js +289 -0
  92. package/src/pdf/core/import-export/fdf-document.d.ts +37 -0
  93. package/src/pdf/core/import-export/fdf-document.js +667 -0
  94. package/src/pdf/core/import-export/index.d.ts +5 -0
  95. package/src/pdf/core/import-export/index.js +5 -0
  96. package/src/pdf/core/import-export/json-document.d.ts +47 -0
  97. package/src/pdf/core/import-export/json-document.js +1547 -0
  98. package/src/pdf/core/import-export/xfdf-document.d.ts +146 -0
  99. package/src/pdf/core/import-export/xfdf-document.js +2920 -0
  100. package/src/pdf/core/import-export/xml-document.d.ts +14 -0
  101. package/src/pdf/core/import-export/xml-document.js +166 -0
  102. package/src/pdf/core/import-export/xml-writer.d.ts +69 -0
  103. package/src/pdf/core/import-export/xml-writer.js +494 -0
  104. package/src/pdf/core/pdf-catalog.d.ts +18 -0
  105. package/src/pdf/core/pdf-catalog.js +166 -0
  106. package/src/pdf/core/pdf-cross-reference.d.ts +80 -0
  107. package/src/pdf/core/pdf-cross-reference.js +1049 -0
  108. package/src/pdf/core/pdf-document.d.ts +821 -0
  109. package/src/pdf/core/pdf-document.js +1022 -0
  110. package/src/pdf/core/pdf-file-structure.d.ts +54 -0
  111. package/src/pdf/core/pdf-file-structure.js +65 -0
  112. package/src/pdf/core/pdf-outline.d.ts +362 -0
  113. package/src/pdf/core/pdf-outline.js +860 -0
  114. package/src/pdf/core/pdf-page.d.ts +589 -0
  115. package/src/pdf/core/pdf-page.js +1049 -0
  116. package/src/pdf/core/pdf-parser.d.ts +62 -0
  117. package/src/pdf/core/pdf-parser.js +1035 -0
  118. package/src/pdf/core/pdf-primitives.d.ts +87 -0
  119. package/src/pdf/core/pdf-primitives.js +305 -0
  120. package/src/pdf/core/predictor-stream.d.ts +15 -0
  121. package/src/pdf/core/predictor-stream.js +214 -0
  122. package/src/pdf/core/security/encryptor.d.ts +140 -0
  123. package/src/pdf/core/security/encryptor.js +1616 -0
  124. package/src/pdf/core/security/index.d.ts +1 -0
  125. package/src/pdf/core/security/index.js +1 -0
  126. package/src/pdf/core/utils.d.ts +686 -0
  127. package/src/pdf/core/utils.js +3625 -0
  128. package/src/pdf/index.d.ts +44 -0
  129. package/src/pdf/index.js +44 -0
  130. package/tslint.json +111 -0
  131. package/ReadMe.md +0 -13
  132. package/dist/es6/implementation/actions/action.js +0 -44
  133. package/dist/es6/implementation/actions/index.js +0 -2
  134. package/dist/es6/implementation/actions/uri-action.js +0 -38
  135. package/dist/es6/implementation/annotations/action-link-annotation.js +0 -29
  136. package/dist/es6/implementation/annotations/annotation-collection.js +0 -93
  137. package/dist/es6/implementation/annotations/annotation.js +0 -156
  138. package/dist/es6/implementation/annotations/document-link-annotation.js +0 -48
  139. package/dist/es6/implementation/annotations/index.js +0 -7
  140. package/dist/es6/implementation/annotations/link-annotation.js +0 -31
  141. package/dist/es6/implementation/annotations/pdf-text-web-link.js +0 -178
  142. package/dist/es6/implementation/annotations/uri-annotation.js +0 -64
  143. package/dist/es6/implementation/collections/dictionary.js +0 -71
  144. package/dist/es6/implementation/collections/index.js +0 -3
  145. package/dist/es6/implementation/collections/object-object-pair/dictionary.js +0 -84
  146. package/dist/es6/implementation/collections/object-object-pair/index.js +0 -1
  147. package/dist/es6/implementation/collections/utils.js +0 -8
  148. package/dist/es6/implementation/document/automatic-fields/automatic-field-info-collection.js +0 -17
  149. package/dist/es6/implementation/document/automatic-fields/automatic-field-info.js +0 -68
  150. package/dist/es6/implementation/document/automatic-fields/automatic-field.js +0 -145
  151. package/dist/es6/implementation/document/automatic-fields/composite-field.js +0 -61
  152. package/dist/es6/implementation/document/automatic-fields/index.js +0 -7
  153. package/dist/es6/implementation/document/automatic-fields/multiple-value-field.js +0 -36
  154. package/dist/es6/implementation/document/automatic-fields/page-count-field.js +0 -53
  155. package/dist/es6/implementation/document/automatic-fields/pdf-numbers-convertor.js +0 -91
  156. package/dist/es6/implementation/document/automatic-fields/pdf-page-number-field.js +0 -56
  157. package/dist/es6/implementation/document/automatic-fields/pdf-template-value-pair.js +0 -34
  158. package/dist/es6/implementation/document/automatic-fields/single-value-field.js +0 -47
  159. package/dist/es6/implementation/document/index.js +0 -11
  160. package/dist/es6/implementation/document/pdf-catalog.js +0 -38
  161. package/dist/es6/implementation/document/pdf-document-base.js +0 -71
  162. package/dist/es6/implementation/document/pdf-document-template.js +0 -204
  163. package/dist/es6/implementation/document/pdf-document.js +0 -175
  164. package/dist/es6/implementation/drawing/index.js +0 -1
  165. package/dist/es6/implementation/drawing/pdf-drawing.js +0 -80
  166. package/dist/es6/implementation/general/enum.js +0 -6
  167. package/dist/es6/implementation/general/index.js +0 -3
  168. package/dist/es6/implementation/general/pdf-cache-collection.js +0 -24
  169. package/dist/es6/implementation/general/pdf-collection.js +0 -26
  170. package/dist/es6/implementation/general/pdf-destination.js +0 -107
  171. package/dist/es6/implementation/graphics/brushes/index.js +0 -2
  172. package/dist/es6/implementation/graphics/brushes/pdf-brush.js +0 -6
  173. package/dist/es6/implementation/graphics/brushes/pdf-solid-brush.js +0 -53
  174. package/dist/es6/implementation/graphics/constants.js +0 -11
  175. package/dist/es6/implementation/graphics/enum.js +0 -100
  176. package/dist/es6/implementation/graphics/figures/base/element-layouter.js +0 -154
  177. package/dist/es6/implementation/graphics/figures/base/graphics-element.js +0 -18
  178. package/dist/es6/implementation/graphics/figures/base/index.js +0 -3
  179. package/dist/es6/implementation/graphics/figures/base/pdf-shape-element.js +0 -32
  180. package/dist/es6/implementation/graphics/figures/base/shape-layouter.js +0 -55
  181. package/dist/es6/implementation/graphics/figures/base/text-layouter.js +0 -123
  182. package/dist/es6/implementation/graphics/figures/enum.js +0 -11
  183. package/dist/es6/implementation/graphics/figures/index.js +0 -5
  184. package/dist/es6/implementation/graphics/figures/layout-element.js +0 -41
  185. package/dist/es6/implementation/graphics/figures/pdf-template.js +0 -110
  186. package/dist/es6/implementation/graphics/figures/text-element.js +0 -298
  187. package/dist/es6/implementation/graphics/fonts/enum.js +0 -45
  188. package/dist/es6/implementation/graphics/fonts/pdf-font-metrics.js +0 -122
  189. package/dist/es6/implementation/graphics/fonts/pdf-font.js +0 -159
  190. package/dist/es6/implementation/graphics/fonts/pdf-standard-font-metrics-factory.js +0 -357
  191. package/dist/es6/implementation/graphics/fonts/pdf-standard-font.js +0 -124
  192. package/dist/es6/implementation/graphics/fonts/pdf-string-format.js +0 -239
  193. package/dist/es6/implementation/graphics/fonts/string-layouter.js +0 -335
  194. package/dist/es6/implementation/graphics/fonts/string-tokenizer.js +0 -162
  195. package/dist/es6/implementation/graphics/images/byte-array.js +0 -82
  196. package/dist/es6/implementation/graphics/images/image-decoder.js +0 -167
  197. package/dist/es6/implementation/graphics/images/pdf-bitmap.js +0 -41
  198. package/dist/es6/implementation/graphics/images/pdf-image.js +0 -68
  199. package/dist/es6/implementation/graphics/index.js +0 -20
  200. package/dist/es6/implementation/graphics/pdf-color.js +0 -205
  201. package/dist/es6/implementation/graphics/pdf-graphics.js +0 -1034
  202. package/dist/es6/implementation/graphics/pdf-margins.js +0 -75
  203. package/dist/es6/implementation/graphics/pdf-pen.js +0 -180
  204. package/dist/es6/implementation/graphics/pdf-resources.js +0 -223
  205. package/dist/es6/implementation/graphics/pdf-transformation-matrix.js +0 -134
  206. package/dist/es6/implementation/graphics/pdf-transparency.js +0 -22
  207. package/dist/es6/implementation/graphics/unit-convertor.js +0 -33
  208. package/dist/es6/implementation/index.js +0 -85
  209. package/dist/es6/implementation/input-output/cross-table.js +0 -6
  210. package/dist/es6/implementation/input-output/enum.js +0 -5
  211. package/dist/es6/implementation/input-output/index.js +0 -8
  212. package/dist/es6/implementation/input-output/pdf-cross-table.js +0 -346
  213. package/dist/es6/implementation/input-output/pdf-dictionary-properties.js +0 -60
  214. package/dist/es6/implementation/input-output/pdf-main-object-collection.js +0 -115
  215. package/dist/es6/implementation/input-output/pdf-operators.js +0 -75
  216. package/dist/es6/implementation/input-output/pdf-stream-writer.js +0 -364
  217. package/dist/es6/implementation/input-output/pdf-writer.js +0 -44
  218. package/dist/es6/implementation/pages/enum.js +0 -51
  219. package/dist/es6/implementation/pages/index.js +0 -13
  220. package/dist/es6/implementation/pages/page-added-event-arguments.js +0 -19
  221. package/dist/es6/implementation/pages/pdf-document-page-collection.js +0 -120
  222. package/dist/es6/implementation/pages/pdf-page-base.js +0 -104
  223. package/dist/es6/implementation/pages/pdf-page-layer-collection.js +0 -115
  224. package/dist/es6/implementation/pages/pdf-page-layer.js +0 -160
  225. package/dist/es6/implementation/pages/pdf-page-settings.js +0 -126
  226. package/dist/es6/implementation/pages/pdf-page-size.js +0 -36
  227. package/dist/es6/implementation/pages/pdf-page-template-element.js +0 -510
  228. package/dist/es6/implementation/pages/pdf-page.js +0 -130
  229. package/dist/es6/implementation/pages/pdf-section-collection.js +0 -95
  230. package/dist/es6/implementation/pages/pdf-section-page-collection.js +0 -30
  231. package/dist/es6/implementation/pages/pdf-section-templates.js +0 -71
  232. package/dist/es6/implementation/pages/pdf-section.js +0 -388
  233. package/dist/es6/implementation/primitives/index.js +0 -8
  234. package/dist/es6/implementation/primitives/pdf-array.js +0 -199
  235. package/dist/es6/implementation/primitives/pdf-boolean.js +0 -66
  236. package/dist/es6/implementation/primitives/pdf-dictionary.js +0 -220
  237. package/dist/es6/implementation/primitives/pdf-name.js +0 -102
  238. package/dist/es6/implementation/primitives/pdf-number.js +0 -94
  239. package/dist/es6/implementation/primitives/pdf-reference.js +0 -195
  240. package/dist/es6/implementation/primitives/pdf-stream.js +0 -149
  241. package/dist/es6/implementation/primitives/pdf-string.js +0 -143
  242. package/dist/es6/implementation/structured-elements/grid/index.js +0 -1
  243. package/dist/es6/implementation/structured-elements/grid/pdf-grid-cell.js +0 -512
  244. package/dist/es6/implementation/structured-elements/grid/pdf-grid-column.js +0 -125
  245. package/dist/es6/implementation/structured-elements/grid/pdf-grid-row.js +0 -244
  246. package/dist/es6/implementation/structured-elements/grid/pdf-grid.js +0 -989
  247. package/dist/es6/implementation/structured-elements/grid/styles/index.js +0 -2
  248. package/dist/es6/implementation/structured-elements/grid/styles/pdf-borders.js +0 -145
  249. package/dist/es6/implementation/structured-elements/grid/styles/style.js +0 -267
  250. package/dist/es6/implementation/structured-elements/index.js +0 -1
  251. package/dist/es6/implementation/structured-elements/tables/light-tables/enum.js +0 -5
  252. package/dist/es6/index.js +0 -89
  253. package/dist/es6/interfaces/i-pdf-cache.js +0 -1
  254. package/dist/es6/interfaces/i-pdf-changable.js +0 -1
  255. package/dist/es6/interfaces/i-pdf-primitives.js +0 -1
  256. package/dist/es6/interfaces/i-pdf-wrapper.js +0 -1
  257. package/dist/es6/interfaces/i-pdf-writer.js +0 -1
  258. package/dist/es6/interfaces/index.js +0 -1
  259. package/dist/global/ej2-pdf-export.js +0 -15979
  260. package/implementation.d.ts +0 -4
  261. package/implementation.js +0 -8
  262. package/interfaces.d.ts +0 -4
  263. package/interfaces.js +0 -4
  264. package/src/implementation/actions/action.d.ts +0 -50
  265. package/src/implementation/actions/action.js +0 -44
  266. package/src/implementation/actions/index.d.ts +0 -6
  267. package/src/implementation/actions/index.js +0 -9
  268. package/src/implementation/actions/uri-action.d.ts +0 -33
  269. package/src/implementation/actions/uri-action.js +0 -39
  270. package/src/implementation/annotations/action-link-annotation.d.ts +0 -30
  271. package/src/implementation/annotations/action-link-annotation.js +0 -32
  272. package/src/implementation/annotations/annotation-collection.d.ts +0 -77
  273. package/src/implementation/annotations/annotation-collection.js +0 -91
  274. package/src/implementation/annotations/annotation.d.ts +0 -152
  275. package/src/implementation/annotations/annotation.js +0 -146
  276. package/src/implementation/annotations/document-link-annotation.d.ts +0 -89
  277. package/src/implementation/annotations/document-link-annotation.js +0 -51
  278. package/src/implementation/annotations/index.d.ts +0 -11
  279. package/src/implementation/annotations/index.js +0 -14
  280. package/src/implementation/annotations/link-annotation.d.ts +0 -23
  281. package/src/implementation/annotations/link-annotation.js +0 -33
  282. package/src/implementation/annotations/pdf-text-web-link.d.ts +0 -118
  283. package/src/implementation/annotations/pdf-text-web-link.js +0 -173
  284. package/src/implementation/annotations/uri-annotation.d.ts +0 -48
  285. package/src/implementation/annotations/uri-annotation.js +0 -65
  286. package/src/implementation/collections/dictionary.d.ts +0 -76
  287. package/src/implementation/collections/dictionary.js +0 -74
  288. package/src/implementation/collections/index.d.ts +0 -7
  289. package/src/implementation/collections/index.js +0 -10
  290. package/src/implementation/collections/object-object-pair/dictionary.d.ts +0 -62
  291. package/src/implementation/collections/object-object-pair/dictionary.js +0 -88
  292. package/src/implementation/collections/object-object-pair/index.d.ts +0 -5
  293. package/src/implementation/collections/object-object-pair/index.js +0 -8
  294. package/src/implementation/collections/utils.d.ts +0 -27
  295. package/src/implementation/collections/utils.js +0 -13
  296. package/src/implementation/document/automatic-fields/automatic-field-info-collection.d.ts +0 -31
  297. package/src/implementation/document/automatic-fields/automatic-field-info-collection.js +0 -21
  298. package/src/implementation/document/automatic-fields/automatic-field-info.d.ts +0 -67
  299. package/src/implementation/document/automatic-fields/automatic-field-info.js +0 -70
  300. package/src/implementation/document/automatic-fields/automatic-field.d.ts +0 -41
  301. package/src/implementation/document/automatic-fields/automatic-field.js +0 -143
  302. package/src/implementation/document/automatic-fields/composite-field.d.ts +0 -46
  303. package/src/implementation/document/automatic-fields/composite-field.js +0 -64
  304. package/src/implementation/document/automatic-fields/index.d.ts +0 -11
  305. package/src/implementation/document/automatic-fields/index.js +0 -14
  306. package/src/implementation/document/automatic-fields/multiple-value-field.d.ts +0 -18
  307. package/src/implementation/document/automatic-fields/multiple-value-field.js +0 -35
  308. package/src/implementation/document/automatic-fields/page-count-field.d.ts +0 -44
  309. package/src/implementation/document/automatic-fields/page-count-field.js +0 -53
  310. package/src/implementation/document/automatic-fields/pdf-numbers-convertor.d.ts +0 -53
  311. package/src/implementation/document/automatic-fields/pdf-numbers-convertor.js +0 -94
  312. package/src/implementation/document/automatic-fields/pdf-page-number-field.d.ts +0 -51
  313. package/src/implementation/document/automatic-fields/pdf-page-number-field.js +0 -56
  314. package/src/implementation/document/automatic-fields/pdf-template-value-pair.d.ts +0 -38
  315. package/src/implementation/document/automatic-fields/pdf-template-value-pair.js +0 -38
  316. package/src/implementation/document/automatic-fields/single-value-field.d.ts +0 -15
  317. package/src/implementation/document/automatic-fields/single-value-field.js +0 -46
  318. package/src/implementation/document/index.d.ts +0 -15
  319. package/src/implementation/document/index.js +0 -18
  320. package/src/implementation/document/pdf-catalog.d.ts +0 -32
  321. package/src/implementation/document/pdf-catalog.js +0 -38
  322. package/src/implementation/document/pdf-document-base.d.ts +0 -117
  323. package/src/implementation/document/pdf-document-base.js +0 -72
  324. package/src/implementation/document/pdf-document-template.d.ts +0 -166
  325. package/src/implementation/document/pdf-document-template.js +0 -207
  326. package/src/implementation/document/pdf-document.d.ts +0 -206
  327. package/src/implementation/document/pdf-document.js +0 -166
  328. package/src/implementation/drawing/index.d.ts +0 -5
  329. package/src/implementation/drawing/index.js +0 -8
  330. package/src/implementation/drawing/pdf-drawing.d.ts +0 -93
  331. package/src/implementation/drawing/pdf-drawing.js +0 -84
  332. package/src/implementation/general/enum.d.ts +0 -21
  333. package/src/implementation/general/enum.js +0 -10
  334. package/src/implementation/general/index.d.ts +0 -7
  335. package/src/implementation/general/index.js +0 -10
  336. package/src/implementation/general/pdf-cache-collection.d.ts +0 -33
  337. package/src/implementation/general/pdf-cache-collection.js +0 -27
  338. package/src/implementation/general/pdf-collection.d.ts +0 -26
  339. package/src/implementation/general/pdf-collection.js +0 -30
  340. package/src/implementation/general/pdf-destination.d.ts +0 -103
  341. package/src/implementation/general/pdf-destination.js +0 -103
  342. package/src/implementation/graphics/brushes/index.d.ts +0 -6
  343. package/src/implementation/graphics/brushes/index.js +0 -9
  344. package/src/implementation/graphics/brushes/pdf-brush.d.ts +0 -55
  345. package/src/implementation/graphics/brushes/pdf-brush.js +0 -10
  346. package/src/implementation/graphics/brushes/pdf-solid-brush.d.ts +0 -77
  347. package/src/implementation/graphics/brushes/pdf-solid-brush.js +0 -54
  348. package/src/implementation/graphics/constants.d.ts +0 -31
  349. package/src/implementation/graphics/constants.js +0 -15
  350. package/src/implementation/graphics/enum.d.ts +0 -392
  351. package/src/implementation/graphics/enum.js +0 -104
  352. package/src/implementation/graphics/figures/base/element-layouter.d.ts +0 -160
  353. package/src/implementation/graphics/figures/base/element-layouter.js +0 -156
  354. package/src/implementation/graphics/figures/base/graphics-element.d.ts +0 -16
  355. package/src/implementation/graphics/figures/base/graphics-element.js +0 -22
  356. package/src/implementation/graphics/figures/base/index.d.ts +0 -7
  357. package/src/implementation/graphics/figures/base/index.js +0 -10
  358. package/src/implementation/graphics/figures/base/pdf-shape-element.d.ts +0 -28
  359. package/src/implementation/graphics/figures/base/pdf-shape-element.js +0 -34
  360. package/src/implementation/graphics/figures/base/shape-layouter.d.ts +0 -80
  361. package/src/implementation/graphics/figures/base/shape-layouter.js +0 -57
  362. package/src/implementation/graphics/figures/base/text-layouter.d.ts +0 -107
  363. package/src/implementation/graphics/figures/base/text-layouter.js +0 -121
  364. package/src/implementation/graphics/figures/enum.d.ts +0 -37
  365. package/src/implementation/graphics/figures/enum.js +0 -15
  366. package/src/implementation/graphics/figures/index.d.ts +0 -9
  367. package/src/implementation/graphics/figures/index.js +0 -12
  368. package/src/implementation/graphics/figures/layout-element.d.ts +0 -57
  369. package/src/implementation/graphics/figures/layout-element.js +0 -43
  370. package/src/implementation/graphics/figures/pdf-template.d.ts +0 -113
  371. package/src/implementation/graphics/figures/pdf-template.js +0 -106
  372. package/src/implementation/graphics/figures/text-element.d.ts +0 -213
  373. package/src/implementation/graphics/figures/text-element.js +0 -289
  374. package/src/implementation/graphics/fonts/enum.d.ts +0 -179
  375. package/src/implementation/graphics/fonts/enum.js +0 -49
  376. package/src/implementation/graphics/fonts/index.d.ts +0 -12
  377. package/src/implementation/graphics/fonts/index.js +0 -15
  378. package/src/implementation/graphics/fonts/pdf-font-metrics.d.ts +0 -160
  379. package/src/implementation/graphics/fonts/pdf-font-metrics.js +0 -123
  380. package/src/implementation/graphics/fonts/pdf-font.d.ts +0 -187
  381. package/src/implementation/graphics/fonts/pdf-font.js +0 -158
  382. package/src/implementation/graphics/fonts/pdf-standard-font-metrics-factory.d.ts +0 -301
  383. package/src/implementation/graphics/fonts/pdf-standard-font-metrics-factory.js +0 -359
  384. package/src/implementation/graphics/fonts/pdf-standard-font.d.ts +0 -143
  385. package/src/implementation/graphics/fonts/pdf-standard-font.js +0 -121
  386. package/src/implementation/graphics/fonts/pdf-string-format.d.ts +0 -319
  387. package/src/implementation/graphics/fonts/pdf-string-format.js +0 -241
  388. package/src/implementation/graphics/fonts/string-layouter.d.ts +0 -255
  389. package/src/implementation/graphics/fonts/string-layouter.js +0 -336
  390. package/src/implementation/graphics/fonts/string-tokenizer.d.ts +0 -107
  391. package/src/implementation/graphics/fonts/string-tokenizer.js +0 -166
  392. package/src/implementation/graphics/images/byte-array.d.ts +0 -68
  393. package/src/implementation/graphics/images/byte-array.js +0 -86
  394. package/src/implementation/graphics/images/image-decoder.d.ts +0 -227
  395. package/src/implementation/graphics/images/image-decoder.js +0 -164
  396. package/src/implementation/graphics/images/index.js +0 -11
  397. package/src/implementation/graphics/images/pdf-bitmap.d.ts +0 -90
  398. package/src/implementation/graphics/images/pdf-bitmap.js +0 -41
  399. package/src/implementation/graphics/images/pdf-image.d.ts +0 -88
  400. package/src/implementation/graphics/images/pdf-image.js +0 -69
  401. package/src/implementation/graphics/index.d.ts +0 -24
  402. package/src/implementation/graphics/index.js +0 -27
  403. package/src/implementation/graphics/pdf-color.d.ts +0 -170
  404. package/src/implementation/graphics/pdf-color.js +0 -204
  405. package/src/implementation/graphics/pdf-graphics.d.ts +0 -1085
  406. package/src/implementation/graphics/pdf-graphics.js +0 -1017
  407. package/src/implementation/graphics/pdf-margins.d.ts +0 -82
  408. package/src/implementation/graphics/pdf-margins.js +0 -79
  409. package/src/implementation/graphics/pdf-pen.d.ts +0 -237
  410. package/src/implementation/graphics/pdf-pen.js +0 -181
  411. package/src/implementation/graphics/pdf-resources.d.ts +0 -147
  412. package/src/implementation/graphics/pdf-resources.js +0 -215
  413. package/src/implementation/graphics/pdf-transformation-matrix.d.ts +0 -143
  414. package/src/implementation/graphics/pdf-transformation-matrix.js +0 -136
  415. package/src/implementation/graphics/pdf-transparency.d.ts +0 -34
  416. package/src/implementation/graphics/pdf-transparency.js +0 -22
  417. package/src/implementation/graphics/unit-convertor.d.ts +0 -72
  418. package/src/implementation/graphics/unit-convertor.js +0 -37
  419. package/src/implementation/index.d.ts +0 -89
  420. package/src/implementation/index.js +0 -92
  421. package/src/implementation/input-output/cross-table.d.ts +0 -21
  422. package/src/implementation/input-output/cross-table.js +0 -10
  423. package/src/implementation/input-output/enum.d.ts +0 -16
  424. package/src/implementation/input-output/enum.js +0 -9
  425. package/src/implementation/input-output/index.d.ts +0 -12
  426. package/src/implementation/input-output/index.js +0 -15
  427. package/src/implementation/input-output/pdf-cross-table.d.ts +0 -249
  428. package/src/implementation/input-output/pdf-cross-table.js +0 -340
  429. package/src/implementation/input-output/pdf-dictionary-properties.d.ts +0 -283
  430. package/src/implementation/input-output/pdf-dictionary-properties.js +0 -64
  431. package/src/implementation/input-output/pdf-main-object-collection.d.ts +0 -120
  432. package/src/implementation/input-output/pdf-main-object-collection.js +0 -117
  433. package/src/implementation/input-output/pdf-operators.d.ts +0 -352
  434. package/src/implementation/input-output/pdf-operators.js +0 -79
  435. package/src/implementation/input-output/pdf-stream-writer.d.ts +0 -314
  436. package/src/implementation/input-output/pdf-stream-writer.js +0 -363
  437. package/src/implementation/input-output/pdf-writer.d.ts +0 -68
  438. package/src/implementation/input-output/pdf-writer.js +0 -48
  439. package/src/implementation/pages/enum.d.ts +0 -201
  440. package/src/implementation/pages/enum.js +0 -55
  441. package/src/implementation/pages/index.d.ts +0 -17
  442. package/src/implementation/pages/index.js +0 -20
  443. package/src/implementation/pages/page-added-event-arguments.d.ts +0 -30
  444. package/src/implementation/pages/page-added-event-arguments.js +0 -23
  445. package/src/implementation/pages/pdf-document-page-collection.d.ts +0 -92
  446. package/src/implementation/pages/pdf-document-page-collection.js +0 -121
  447. package/src/implementation/pages/pdf-page-base.d.ts +0 -121
  448. package/src/implementation/pages/pdf-page-base.js +0 -104
  449. package/src/implementation/pages/pdf-page-layer-collection.d.ts +0 -99
  450. package/src/implementation/pages/pdf-page-layer-collection.js +0 -113
  451. package/src/implementation/pages/pdf-page-layer.d.ts +0 -160
  452. package/src/implementation/pages/pdf-page-layer.js +0 -159
  453. package/src/implementation/pages/pdf-page-settings.d.ts +0 -111
  454. package/src/implementation/pages/pdf-page-settings.js +0 -126
  455. package/src/implementation/pages/pdf-page-size.d.ts +0 -159
  456. package/src/implementation/pages/pdf-page-size.js +0 -39
  457. package/src/implementation/pages/pdf-page-template-element.d.ts +0 -230
  458. package/src/implementation/pages/pdf-page-template-element.js +0 -509
  459. package/src/implementation/pages/pdf-page.d.ts +0 -153
  460. package/src/implementation/pages/pdf-page.js +0 -127
  461. package/src/implementation/pages/pdf-section-collection.d.ts +0 -109
  462. package/src/implementation/pages/pdf-section-collection.js +0 -91
  463. package/src/implementation/pages/pdf-section-page-collection.d.ts +0 -41
  464. package/src/implementation/pages/pdf-section-page-collection.js +0 -34
  465. package/src/implementation/pages/pdf-section-templates.d.ts +0 -64
  466. package/src/implementation/pages/pdf-section-templates.js +0 -74
  467. package/src/implementation/pages/pdf-section.d.ts +0 -319
  468. package/src/implementation/pages/pdf-section.js +0 -379
  469. package/src/implementation/primitives/index.d.ts +0 -12
  470. package/src/implementation/primitives/index.js +0 -15
  471. package/src/implementation/primitives/pdf-array.d.ts +0 -186
  472. package/src/implementation/primitives/pdf-array.js +0 -201
  473. package/src/implementation/primitives/pdf-boolean.d.ts +0 -84
  474. package/src/implementation/primitives/pdf-boolean.js +0 -70
  475. package/src/implementation/primitives/pdf-dictionary.d.ts +0 -311
  476. package/src/implementation/primitives/pdf-dictionary.js +0 -220
  477. package/src/implementation/primitives/pdf-name.d.ts +0 -121
  478. package/src/implementation/primitives/pdf-name.js +0 -106
  479. package/src/implementation/primitives/pdf-number.d.ts +0 -104
  480. package/src/implementation/primitives/pdf-number.js +0 -98
  481. package/src/implementation/primitives/pdf-reference.d.ts +0 -222
  482. package/src/implementation/primitives/pdf-reference.js +0 -192
  483. package/src/implementation/primitives/pdf-stream.d.ts +0 -111
  484. package/src/implementation/primitives/pdf-stream.js +0 -146
  485. package/src/implementation/primitives/pdf-string.d.ts +0 -212
  486. package/src/implementation/primitives/pdf-string.js +0 -147
  487. package/src/implementation/structured-elements/grid/index.d.ts +0 -0
  488. package/src/implementation/structured-elements/grid/index.js +0 -1
  489. package/src/implementation/structured-elements/grid/pdf-grid-cell.d.ts +0 -248
  490. package/src/implementation/structured-elements/grid/pdf-grid-cell.js +0 -504
  491. package/src/implementation/structured-elements/grid/pdf-grid-column.d.ts +0 -108
  492. package/src/implementation/structured-elements/grid/pdf-grid-column.js +0 -127
  493. package/src/implementation/structured-elements/grid/pdf-grid-row.d.ts +0 -207
  494. package/src/implementation/structured-elements/grid/pdf-grid-row.js +0 -246
  495. package/src/implementation/structured-elements/grid/pdf-grid.d.ts +0 -678
  496. package/src/implementation/structured-elements/grid/pdf-grid.js +0 -982
  497. package/src/implementation/structured-elements/grid/styles/index.d.ts +0 -5
  498. package/src/implementation/structured-elements/grid/styles/index.js +0 -9
  499. package/src/implementation/structured-elements/grid/styles/pdf-borders.d.ts +0 -126
  500. package/src/implementation/structured-elements/grid/styles/pdf-borders.js +0 -146
  501. package/src/implementation/structured-elements/grid/styles/style.d.ts +0 -250
  502. package/src/implementation/structured-elements/grid/styles/style.js +0 -269
  503. package/src/implementation/structured-elements/index.d.ts +0 -0
  504. package/src/implementation/structured-elements/index.js +0 -1
  505. package/src/implementation/structured-elements/tables/light-tables/enum.d.ts +0 -16
  506. package/src/implementation/structured-elements/tables/light-tables/enum.js +0 -9
  507. package/src/interfaces/i-pdf-cache.d.ts +0 -23
  508. package/src/interfaces/i-pdf-cache.js +0 -4
  509. package/src/interfaces/i-pdf-changable.d.ts +0 -17
  510. package/src/interfaces/i-pdf-changable.js +0 -4
  511. package/src/interfaces/i-pdf-primitives.d.ts +0 -45
  512. package/src/interfaces/i-pdf-primitives.js +0 -4
  513. package/src/interfaces/i-pdf-wrapper.d.ts +0 -13
  514. package/src/interfaces/i-pdf-wrapper.js +0 -4
  515. package/src/interfaces/i-pdf-writer.d.ts +0 -29
  516. package/src/interfaces/i-pdf-writer.js +0 -4
  517. package/src/interfaces/index.d.ts +0 -9
  518. package/src/interfaces/index.js +0 -4
@@ -0,0 +1,755 @@
1
+ import { _PdfDictionary, _PdfReference } from './../pdf-primitives';
2
+ import { _checkReview } from './../utils';
3
+ import { PdfLineAnnotation, PdfCircleAnnotation, PdfEllipseAnnotation, PdfAngleMeasurementAnnotation, PdfRectangleAnnotation, PdfSquareAnnotation, PdfPolyLineAnnotation, PdfPolygonAnnotation, PdfInkAnnotation, PdfPopupAnnotation, PdfAttachmentAnnotation, Pdf3DAnnotation, PdfFileLinkAnnotation, PdfWatermarkAnnotation, PdfRubberStampAnnotation, PdfSoundAnnotation, PdfFreeTextAnnotation, PdfRedactionAnnotation, PdfRichMediaAnnotation, PdfTextMarkupAnnotation, PdfDocumentLinkAnnotation, PdfTextWebLinkAnnotation, PdfUriAnnotation, PdfComment } from './annotation';
4
+ import { PdfAnnotationFlag } from './../enumerator';
5
+ /**
6
+ * The class provides methods and properties to handle the collection of `PdfAnnotation`.
7
+ * ```typescript
8
+ * // Load an existing PDF document
9
+ * let document: PdfDocument = new PdfDocument(data);
10
+ * // Access annotation coolection from first page
11
+ * let annotations: PdfAnnotationCollection = document.getPage(0).annotations;
12
+ * // Save the document
13
+ * document.save('output.pdf');
14
+ * // Destroy the document
15
+ * document.destroy();
16
+ * ```
17
+ */
18
+ var PdfAnnotationCollection = /** @class */ (function () {
19
+ /**
20
+ * Represents a annotation collection.
21
+ *
22
+ * @private
23
+ * @param {Array<_PdfReference>} array Annotation references.
24
+ * @param {_PdfCrossReference} xref Cross reference object.
25
+ * @param {PdfPage} page PDF page object.
26
+ */
27
+ function PdfAnnotationCollection(array, xref, page) {
28
+ this._annotations = array;
29
+ this._page = page;
30
+ this._crossReference = xref;
31
+ this._parsedAnnotations = new Map();
32
+ this._comments = [];
33
+ }
34
+ Object.defineProperty(PdfAnnotationCollection.prototype, "count", {
35
+ /**
36
+ * Gets the annotation count (Read only).
37
+ *
38
+ * @returns {number} Number of annotations.
39
+ *
40
+ * ```typescript
41
+ * // Load an existing PDF document
42
+ * let document: PdfDocument = new PdfDocument(data, password);
43
+ * // Access first page
44
+ * let page: PdfPage = document.getPage(0);
45
+ * // Gets the annotation count
46
+ * let count: number = page.annotations.count;
47
+ * // Destroy the document
48
+ * document.destroy();
49
+ * ```
50
+ */
51
+ get: function () {
52
+ return this._annotations.length;
53
+ },
54
+ enumerable: true,
55
+ configurable: true
56
+ });
57
+ /**
58
+ * Gets the `PdfAnnotation` at the specified index.
59
+ *
60
+ * @param {number} index Field index.
61
+ * @returns {PdfAnnotation} Annotation at the specified index.
62
+ *
63
+ * ```typescript
64
+ * // Load an existing PDF document
65
+ * let document: PdfDocument = new PdfDocument(data, password);
66
+ * // Access first page
67
+ * let page: PdfPage = document.getPage(0);
68
+ * // Access the annotation at index 0
69
+ * let annotation: PdfAnnotation = page.annotations.at(0);
70
+ * // Save the document
71
+ * document.save('output.pdf');
72
+ * // Destroy the document
73
+ * document.destroy();
74
+ * ```
75
+ */
76
+ PdfAnnotationCollection.prototype.at = function (index) {
77
+ if (index < 0 || index >= this._annotations.length) {
78
+ throw Error('Index out of range.');
79
+ }
80
+ if (!this._parsedAnnotations.has(index)) {
81
+ var dictionary = this._annotations[Number.parseInt(index.toString(), 10)];
82
+ if (typeof dictionary !== 'undefined' && dictionary instanceof _PdfReference) {
83
+ dictionary = this._crossReference._fetch(dictionary);
84
+ }
85
+ if (typeof dictionary !== 'undefined' && dictionary instanceof _PdfDictionary) {
86
+ var annotation = this._parseAnnotation(dictionary);
87
+ if (annotation) {
88
+ annotation._ref = this._annotations[Number.parseInt(index.toString(), 10)];
89
+ this._parsedAnnotations.set(index, annotation);
90
+ }
91
+ }
92
+ }
93
+ return this._parsedAnnotations.get(index);
94
+ };
95
+ /**
96
+ * Add a new `PdfAnnotation` into the collection.
97
+ *
98
+ * @param {PdfAnnotation} annotation Annotation to add.
99
+ * @returns {number} Annotation index.
100
+ *
101
+ * ```typescript
102
+ * // Load an existing PDF document
103
+ * let document: PdfDocument = new PdfDocument(data, password);
104
+ * // Access first page
105
+ * let page: PdfPage = document.getPage(0);
106
+ * // Add a new annotation into the collection
107
+ * page.annotations.add(annotation);
108
+ * // Save the document
109
+ * document.save('output.pdf');
110
+ * // Destroy the document
111
+ * document.destroy();
112
+ * ```
113
+ */
114
+ PdfAnnotationCollection.prototype.add = function (annotation) {
115
+ if (typeof annotation === 'undefined' || annotation === null) {
116
+ throw Error('annotation cannot be null or undefined');
117
+ }
118
+ if (annotation._isLoaded) {
119
+ throw Error('cannot add an existing annotation');
120
+ }
121
+ annotation._initialize(this._page);
122
+ var reference;
123
+ if (typeof annotation._ref !== 'undefined' && annotation._ref._isNew) {
124
+ reference = annotation._ref;
125
+ }
126
+ else {
127
+ reference = this._crossReference._getNextReference();
128
+ this._crossReference._cacheMap.set(reference, annotation._dictionary);
129
+ annotation._ref = reference;
130
+ }
131
+ var index = this._annotations.length;
132
+ this._annotations.push(reference);
133
+ this._parsedAnnotations.set(index, annotation);
134
+ var isAdded = false;
135
+ if (this._page._pageDictionary.has('Annots')) {
136
+ var collection = this._page._pageDictionary.get('Annots');
137
+ if (collection !== null && typeof collection !== 'undefined' && collection.indexOf(reference) === -1) {
138
+ collection.push(reference);
139
+ this._page._pageDictionary.set('Annots', collection);
140
+ isAdded = true;
141
+ }
142
+ }
143
+ if (!isAdded) {
144
+ this._page._pageDictionary.set('Annots', this._annotations);
145
+ }
146
+ this._page._pageDictionary._updated = true;
147
+ if (annotation instanceof PdfComment) {
148
+ this._addCommentsAndReview(annotation, annotation._dictionary.get('F'));
149
+ }
150
+ this._updateCustomAppearanceResource(annotation);
151
+ return index;
152
+ };
153
+ /**
154
+ * Remove an annotation from the collection.
155
+ *
156
+ * @param {PdfAnnotation} annotation Annotation to remove.
157
+ * @returns {void} Nothing.
158
+ *
159
+ * ```typescript
160
+ * // Load an existing PDF document
161
+ * let document: PdfDocument = new PdfDocument(data);
162
+ * // Access first page
163
+ * let page: PdfPage = document.getPage(0);
164
+ * // Access first annotation from the PDF page
165
+ * let annotation: PdfAnnotation = page.annotations.at(0);
166
+ * // Remove an annotation from the collection
167
+ * page.annotations.remove(annotation);
168
+ * // Save the document
169
+ * document.save('output.pdf');
170
+ * // Destroy the document
171
+ * document.destroy();
172
+ * ```
173
+ */
174
+ PdfAnnotationCollection.prototype.remove = function (annotation) {
175
+ if (annotation._ref) {
176
+ var index = this._annotations.indexOf(annotation._ref);
177
+ if (index > -1) {
178
+ this.removeAt(index);
179
+ }
180
+ }
181
+ };
182
+ /**
183
+ * Remove an annotation from the collection at the specified index.
184
+ *
185
+ * @param {number} index Annotation index.
186
+ * @returns {void} Nothing.
187
+ *
188
+ * ```typescript
189
+ * // Load an existing PDF document
190
+ * let document: PdfDocument = new PdfDocument(data);
191
+ * // Access first page
192
+ * let page: PdfPage = document.getPage(0);
193
+ * // Remove an annotation from the collection
194
+ * page.annotations.removeAt(0);
195
+ * // Save the document
196
+ * document.save('output.pdf');
197
+ * // Destroy the document
198
+ * document.destroy();
199
+ * ```
200
+ */
201
+ PdfAnnotationCollection.prototype.removeAt = function (index) {
202
+ if (index < 0 || index >= this._annotations.length) {
203
+ throw Error('Index out of range.');
204
+ }
205
+ var reference = this._annotations[Number.parseInt(index.toString(), 10)];
206
+ if (reference && this._page) {
207
+ var array = this._page._getProperty('Annots');
208
+ var actualIndex = array.indexOf(reference);
209
+ if (actualIndex > -1) {
210
+ array.splice(actualIndex, 1);
211
+ }
212
+ this._page._pageDictionary.set('Annots', array);
213
+ this._page._pageDictionary._updated = true;
214
+ if (this._annotations.indexOf(reference) > -1) {
215
+ this._annotations.splice(index, 1);
216
+ }
217
+ if (this._parsedAnnotations.has(index)) {
218
+ this._parsedAnnotations.delete(index);
219
+ }
220
+ var crossReference = this._page._crossReference;
221
+ if (crossReference && crossReference._cacheMap.has(reference)) {
222
+ crossReference._cacheMap.delete(reference);
223
+ }
224
+ }
225
+ };
226
+ PdfAnnotationCollection.prototype._updateCustomAppearanceResource = function (annotation) {
227
+ if (annotation instanceof PdfRubberStampAnnotation && typeof annotation._appearance !== 'undefined') {
228
+ annotation._appearance.normal.graphics._processResources(annotation._crossReference);
229
+ }
230
+ };
231
+ PdfAnnotationCollection.prototype._addCommentsAndReview = function (annotation, flag) {
232
+ this._updateChildReference(annotation, annotation.comments, flag);
233
+ this._updateChildReference(annotation, annotation.reviewHistory, flag);
234
+ };
235
+ PdfAnnotationCollection.prototype._updateChildReference = function (annotation, collection, flag) {
236
+ if (collection && collection.count > 0) {
237
+ if (flag !== 30) {
238
+ for (var i = 0; i < collection.count; i++) {
239
+ var childAnnotation = collection._collection[Number.parseInt(i.toString(), 10)];
240
+ if (childAnnotation && !childAnnotation._dictionary.has('IRT')) {
241
+ if (i === 0 || !collection._isReview) {
242
+ childAnnotation._dictionary.update('IRT', annotation._ref);
243
+ }
244
+ else {
245
+ childAnnotation._dictionary.update('IRT', collection._collection[i - 1]._ref);
246
+ }
247
+ if (collection._isReview) {
248
+ childAnnotation._isReview = true;
249
+ }
250
+ else {
251
+ childAnnotation._isComment = true;
252
+ }
253
+ this.add(childAnnotation);
254
+ }
255
+ }
256
+ }
257
+ else {
258
+ throw new Error('Could not add comments/reviews to the review');
259
+ }
260
+ }
261
+ };
262
+ PdfAnnotationCollection.prototype._parseAnnotation = function (dictionary) {
263
+ var annot;
264
+ if (dictionary.has('Subtype')) {
265
+ var key = dictionary.get('Subtype');
266
+ var size = dictionary.get('Rect');
267
+ if (key) {
268
+ var link = void 0;
269
+ switch (key.name) {
270
+ case 'Line':
271
+ annot = PdfLineAnnotation._load(this._page, dictionary);
272
+ break;
273
+ case 'Circle':
274
+ if (dictionary.has('Measure')) {
275
+ annot = PdfCircleAnnotation._load(this._page, dictionary);
276
+ }
277
+ else {
278
+ var width = size[2] - size[0];
279
+ var height = size[3] - size[1];
280
+ if (width === height) {
281
+ annot = PdfCircleAnnotation._load(this._page, dictionary);
282
+ }
283
+ else {
284
+ annot = PdfEllipseAnnotation._load(this._page, dictionary);
285
+ }
286
+ }
287
+ break;
288
+ case 'Square':
289
+ if (size[2] === size[3]) {
290
+ annot = PdfSquareAnnotation._load(this._page, dictionary);
291
+ }
292
+ else {
293
+ annot = PdfRectangleAnnotation._load(this._page, dictionary);
294
+ }
295
+ break;
296
+ case 'Polygon':
297
+ annot = PdfPolygonAnnotation._load(this._page, dictionary);
298
+ break;
299
+ case 'PolyLine':
300
+ if (dictionary.has('Measure') && dictionary.has('IT')) {
301
+ var type = dictionary.get('IT');
302
+ if (type && type.name === 'PolyLineAngle') {
303
+ annot = PdfAngleMeasurementAnnotation._load(this._page, dictionary);
304
+ }
305
+ }
306
+ if (!annot) {
307
+ annot = PdfPolyLineAnnotation._load(this._page, dictionary);
308
+ }
309
+ break;
310
+ case 'Ink':
311
+ annot = PdfInkAnnotation._load(this._page, dictionary);
312
+ break;
313
+ case 'Popup':
314
+ annot = PdfPopupAnnotation._load(this._page, dictionary);
315
+ break;
316
+ case 'Text':
317
+ annot = PdfPopupAnnotation._load(this._page, dictionary);
318
+ break;
319
+ case 'Link':
320
+ if (dictionary.has('A')) {
321
+ link = dictionary.get('A');
322
+ }
323
+ if (link && link.has('S')) {
324
+ var type = link.get('S').name;
325
+ if (type) {
326
+ var isTextWebLink = this._hasValidBorder(dictionary.getArray('Border'));
327
+ if (type === 'URI') {
328
+ annot = isTextWebLink ?
329
+ PdfTextWebLinkAnnotation._load(this._page, dictionary) :
330
+ this._getLinkAnnotation(dictionary);
331
+ }
332
+ else if (type === 'Launch') {
333
+ annot = PdfFileLinkAnnotation._load(this._page, dictionary);
334
+ }
335
+ else if (type === 'GoToR') {
336
+ annot = this._getLinkAnnotation(dictionary);
337
+ }
338
+ else if (type === 'GoTo') {
339
+ annot = PdfDocumentLinkAnnotation._load(this._page, dictionary);
340
+ }
341
+ }
342
+ }
343
+ else if (key.name === 'Link') {
344
+ annot = PdfDocumentLinkAnnotation._load(this._page, dictionary);
345
+ }
346
+ break;
347
+ case 'FileAttachment':
348
+ annot = PdfAttachmentAnnotation._load(this._page, dictionary);
349
+ break;
350
+ case '3D':
351
+ annot = Pdf3DAnnotation._load(this._page, dictionary);
352
+ break;
353
+ case 'FreeText':
354
+ annot = PdfFreeTextAnnotation._load(this._page, dictionary);
355
+ break;
356
+ case 'Redact':
357
+ annot = PdfRedactionAnnotation._load(this._page, dictionary);
358
+ break;
359
+ case 'RichMedia':
360
+ annot = PdfRichMediaAnnotation._load(this._page, dictionary);
361
+ break;
362
+ case 'Watermark':
363
+ annot = PdfWatermarkAnnotation._load(this._page, dictionary);
364
+ break;
365
+ case 'Stamp':
366
+ annot = PdfRubberStampAnnotation._load(this._page, dictionary);
367
+ break;
368
+ case 'Sound':
369
+ annot = PdfSoundAnnotation._load(this._page, dictionary);
370
+ break;
371
+ case 'Highlight':
372
+ case 'Squiggly':
373
+ case 'StrikeOut':
374
+ case 'Underline':
375
+ annot = PdfTextMarkupAnnotation._load(this._page, dictionary);
376
+ break;
377
+ }
378
+ }
379
+ }
380
+ return annot;
381
+ };
382
+ PdfAnnotationCollection.prototype._getLinkAnnotation = function (dictionary) {
383
+ var annot;
384
+ if (dictionary.has('A')) {
385
+ var remote = dictionary.get('A');
386
+ if (remote && remote.has('S')) {
387
+ var link = remote.get('S');
388
+ if (link && link.name === 'GoToR' && remote.has('F')) {
389
+ annot = PdfFileLinkAnnotation._load(this._page, dictionary);
390
+ }
391
+ else if (link && link.name === 'URI') {
392
+ annot = PdfUriAnnotation._load(this._page, dictionary);
393
+ }
394
+ }
395
+ }
396
+ else {
397
+ annot = PdfUriAnnotation._load(this._page, dictionary);
398
+ }
399
+ return annot;
400
+ };
401
+ PdfAnnotationCollection.prototype._hasValidBorder = function (border) {
402
+ if (typeof border === 'undefined' || border === null) {
403
+ return false;
404
+ }
405
+ for (var i = 0; i < border.length; i++) {
406
+ var val = 0;
407
+ var value = border[Number.parseInt(i.toString(), 10)];
408
+ if (value !== null && typeof value !== 'undefined') {
409
+ val = value;
410
+ }
411
+ if (val > 0) {
412
+ return false;
413
+ }
414
+ }
415
+ return true;
416
+ };
417
+ PdfAnnotationCollection.prototype._doPostProcess = function (isFlatten) {
418
+ for (var i = this.count - 1; i >= 0; i--) {
419
+ var annotation = this.at(i);
420
+ if (annotation) {
421
+ annotation._doPostProcess(annotation.flatten || isFlatten);
422
+ }
423
+ }
424
+ };
425
+ PdfAnnotationCollection.prototype._reArrange = function (ref, tabIndex, index) {
426
+ if (this._annotations) {
427
+ if (tabIndex > this._annotations.length) {
428
+ tabIndex = 0;
429
+ }
430
+ if (index >= this._annotations.length) {
431
+ index = this._annotations.indexOf(ref);
432
+ }
433
+ var annotationDictionary = this._crossReference.
434
+ _fetch(this._annotations[Number.parseInt(index.toString(), 10)]);
435
+ if (annotationDictionary.has('Parent')) {
436
+ var parentReference = annotationDictionary.getRaw('Parent');
437
+ if ((parentReference && parentReference === ref) || ref ===
438
+ this._annotations[Number.parseInt(index.toString(), 10)]) {
439
+ var temp = this._annotations[Number.parseInt(index.toString(), 10)];
440
+ this._annotations[Number.parseInt(index.toString(), 10)] = this._annotations[Number.parseInt(tabIndex.toString(), 10)];
441
+ this._annotations[Number.parseInt(tabIndex.toString(), 10)] = temp;
442
+ }
443
+ }
444
+ }
445
+ return this._annotations;
446
+ };
447
+ PdfAnnotationCollection.prototype._clear = function () {
448
+ this._annotations = [];
449
+ this._parsedAnnotations = new Map();
450
+ this._comments = [];
451
+ };
452
+ return PdfAnnotationCollection;
453
+ }());
454
+ export { PdfAnnotationCollection };
455
+ /**
456
+ * Represents the collection of `PdfPopupAnnotation`
457
+ * ```typescript
458
+ * // Load an existing PDF document
459
+ * let document: PdfDocument = new PdfDocument(data);
460
+ * // Access annotation collection from first page
461
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
462
+ * // Gets the comments of annotation
463
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
464
+ * // Save the document
465
+ * document.save('output.pdf');
466
+ * // Destroy the document
467
+ * document.destroy();
468
+ * ```
469
+ */
470
+ var PdfPopupAnnotationCollection = /** @class */ (function () {
471
+ /**
472
+ * Initializes a new instance of the `PdfPopupAnnotationCollection` class
473
+ *
474
+ * @private
475
+ * @param {PdfAnnotation} annotation Annotation reference
476
+ * @param {boolean} isReview Boolean flag to set review
477
+ */
478
+ function PdfPopupAnnotationCollection(annotation, isReview) {
479
+ this._collection = [];
480
+ this._annotation = annotation;
481
+ this._isReview = isReview;
482
+ if (this._annotation._isLoaded || typeof annotation._page !== 'undefined') {
483
+ this._page = annotation._page;
484
+ this._parentDictionary = annotation._dictionary;
485
+ if (this._annotation._isLoaded) {
486
+ this._parseCommentsOrReview();
487
+ }
488
+ }
489
+ }
490
+ Object.defineProperty(PdfPopupAnnotationCollection.prototype, "count", {
491
+ /**
492
+ * Gets the annotation count (Read only).
493
+ *
494
+ * @private
495
+ * @returns {number} Number of annotations
496
+ *
497
+ * ```typescript
498
+ * // Load an existing PDF document
499
+ * let document: PdfDocument = new PdfDocument(data);
500
+ * // Access annotation collection from first page
501
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
502
+ * // Gets the comments of annotation
503
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
504
+ * // Gets the count of comments
505
+ * let count: number = comments.count;
506
+ * // Save the document
507
+ * document.save('output.pdf');
508
+ * // Destroy the document
509
+ * document.destroy();
510
+ * ```
511
+ */
512
+ get: function () {
513
+ return this._collection.length;
514
+ },
515
+ enumerable: true,
516
+ configurable: true
517
+ });
518
+ /**
519
+ * Gets the popup annotation at the specified index.
520
+ *
521
+ * @private
522
+ * @param {number} index Index of the annotation
523
+ * @returns {number} Annotation at the specified index
524
+ *
525
+ * ```typescript
526
+ * // Load an existing PDF document
527
+ * let document: PdfDocument = new PdfDocument(data);
528
+ * // Access annotation collection from first page
529
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
530
+ * // Gets the comments of annotation
531
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
532
+ * // Gets the first comment
533
+ * let comment: PdfPopupAnnotation = comments.at(0);
534
+ * // Save the document
535
+ * document.save('output.pdf');
536
+ * // Destroy the document
537
+ * document.destroy();
538
+ * ```
539
+ */
540
+ PdfPopupAnnotationCollection.prototype.at = function (index) {
541
+ if (index < 0 || index >= this._collection.length) {
542
+ throw Error('Index out of range.');
543
+ }
544
+ return this._collection[Number.parseInt(index.toString(), 10)];
545
+ };
546
+ /**
547
+ * Add a new popup annotation into the collection
548
+ *
549
+ * @param {PdfPopupAnnotation} annotation Annotation to add
550
+ * @returns {void} Nothing
551
+ *
552
+ * ```typescript
553
+ * // Load an existing PDF document
554
+ * let document: PdfDocument = new PdfDocument(data, password);
555
+ * // Access first page
556
+ * let page: PdfPage = document.getPage(0);
557
+ * // Create a new popup annotation
558
+ * const popupAnnotation: PdfPopupAnnotation = new PdfPopupAnnotation('Test popup annotation', 10, 40, 30, 30);
559
+ * popupAnnotation.author = 'Syncfusion';
560
+ * // Add a new popup annotation into the collection
561
+ * annotation.comments.add(popupAnnotation);
562
+ * // Save the document
563
+ * document.save('output.pdf');
564
+ * // Destroy the document
565
+ * document.destroy();
566
+ * ```
567
+ */
568
+ PdfPopupAnnotationCollection.prototype.add = function (annotation) {
569
+ if (this._annotation._dictionary.get('F') === 30) {
570
+ throw new Error('Could not add comments/reviews to the review');
571
+ }
572
+ annotation._dictionary.update('F', ((this._annotation.flags === PdfAnnotationFlag.locked) ? 128 : (this._isReview ? 30 : 28)));
573
+ if (this._annotation && (this._annotation._isLoaded || (this._page && this._annotation._ref))) {
574
+ this._page.annotations.add(annotation);
575
+ var length_1 = this._collection.length;
576
+ if (length_1 === 0 || !this._isReview) {
577
+ annotation._dictionary.update('IRT', this._annotation._ref);
578
+ }
579
+ else {
580
+ annotation._dictionary.update('IRT', this._collection[Number.parseInt((length_1 - 1).toString(), 10)]._ref);
581
+ }
582
+ if (this._isReview) {
583
+ annotation._isReview = true;
584
+ }
585
+ else {
586
+ annotation._isComment = true;
587
+ }
588
+ }
589
+ this._collection.push(annotation);
590
+ };
591
+ /**
592
+ * Remove an annotation from the collection
593
+ *
594
+ * @param {PdfPopupAnnotation} annotation Annotation to remove
595
+ * @returns {void} Nothing
596
+ *
597
+ * ```typescript
598
+ * // Load an existing PDF document
599
+ * let document: PdfDocument = new PdfDocument(data);
600
+ * // Access annotation collection from first page
601
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
602
+ * // Gets the comments of annotation
603
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
604
+ * // Gets the first comment
605
+ * let comment: PdfPopupAnnotation = comments.at(0);
606
+ * // Remove the comment
607
+ * comments.remove(comment);
608
+ * // Save the document
609
+ * document.save('output.pdf');
610
+ * // Destroy the document
611
+ * document.destroy();
612
+ * ```
613
+ */
614
+ PdfPopupAnnotationCollection.prototype.remove = function (annotation) {
615
+ var index = this._collection.indexOf(annotation);
616
+ if (index > -1) {
617
+ this.removeAt(index);
618
+ }
619
+ };
620
+ /**
621
+ * Remove an annotation from the collection at the specified index
622
+ *
623
+ * @param {number} index Annotation index to remove
624
+ * @returns {void} Nothing
625
+ *
626
+ * ```typescript
627
+ * // Load an existing PDF document
628
+ * let document: PdfDocument = new PdfDocument(data);
629
+ * // Access annotation collection from first page
630
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
631
+ * // Gets the comments of annotation
632
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
633
+ * // Remove the first comment
634
+ * comments.removeAt(0);
635
+ * // Save the document
636
+ * document.save('output.pdf');
637
+ * // Destroy the document
638
+ * document.destroy();
639
+ * ```
640
+ */
641
+ PdfPopupAnnotationCollection.prototype.removeAt = function (index) {
642
+ if (index > -1 && index < this._collection.length) {
643
+ var annotation = this._collection[Number.parseInt(index.toString(), 10)];
644
+ if (this._isReview && index < this._collection.length - 1) {
645
+ var nextAnnotation = this._collection[Number.parseInt((index + 1).toString(), 10)];
646
+ var previous = annotation._dictionary._get('IRT');
647
+ nextAnnotation._dictionary.set('IRT', previous);
648
+ nextAnnotation._dictionary._updated = true;
649
+ }
650
+ this._collection.splice(index, 1);
651
+ this._page.annotations.remove(annotation);
652
+ }
653
+ else {
654
+ throw new Error('Index out of range.');
655
+ }
656
+ };
657
+ PdfPopupAnnotationCollection.prototype._parseCommentsOrReview = function () {
658
+ if (this._isReview) {
659
+ this._parseReview();
660
+ }
661
+ else {
662
+ this._parseComments();
663
+ }
664
+ };
665
+ PdfPopupAnnotationCollection.prototype._parseReview = function () {
666
+ var collection = this._page.annotations;
667
+ var map = new Map();
668
+ map.set(this._annotation._ref, this._annotation);
669
+ if (collection._comments && collection._comments.length > 0) {
670
+ var remaining = [];
671
+ for (var i = 0; i < collection._comments.length; i++) {
672
+ var annotation = collection._comments[Number.parseInt(i.toString(), 10)];
673
+ var reference = annotation._dictionary._get('IRT');
674
+ if (annotation._isReview && reference && map.has(reference)) {
675
+ this._collection.push(annotation);
676
+ map.set(annotation._ref, annotation);
677
+ }
678
+ else {
679
+ remaining.push(annotation);
680
+ }
681
+ }
682
+ if (remaining.length > 0) {
683
+ collection._comments = remaining;
684
+ }
685
+ else {
686
+ collection._comments = [];
687
+ }
688
+ }
689
+ else {
690
+ var count = collection.count;
691
+ for (var i = 0; i < count; i++) {
692
+ var annotation = collection.at(i);
693
+ if (annotation && annotation instanceof PdfPopupAnnotation) {
694
+ var dictionary = annotation._dictionary;
695
+ if (annotation._dictionary.has('IRT')) {
696
+ var reference = dictionary._get('IRT');
697
+ if (annotation._isReview && reference && map.has(reference)) {
698
+ this._collection.push(annotation);
699
+ map.set(annotation._ref, annotation);
700
+ }
701
+ else {
702
+ collection._comments.push(annotation);
703
+ }
704
+ }
705
+ }
706
+ }
707
+ }
708
+ map.clear();
709
+ };
710
+ PdfPopupAnnotationCollection.prototype._parseComments = function () {
711
+ var collection = this._page.annotations;
712
+ if (collection._comments && collection._comments.length > 0) {
713
+ var remaining = [];
714
+ for (var i = 0; i < collection._comments.length; i++) {
715
+ var annotation = collection._comments[Number.parseInt(i.toString(), 10)];
716
+ var dictionary = annotation._dictionary;
717
+ var isReview = _checkReview(dictionary);
718
+ var reference = dictionary._get('IRT');
719
+ if (reference && reference === this._annotation._ref && !isReview) {
720
+ this._collection.push(annotation);
721
+ }
722
+ else {
723
+ remaining.push(annotation);
724
+ }
725
+ }
726
+ if (remaining.length > 0) {
727
+ collection._comments = remaining;
728
+ }
729
+ else {
730
+ collection._comments = [];
731
+ }
732
+ }
733
+ else {
734
+ var count = collection.count;
735
+ for (var i = 0; i < count; i++) {
736
+ var annotation = collection.at(i);
737
+ if (annotation && annotation instanceof PdfPopupAnnotation) {
738
+ var dictionary = annotation._dictionary;
739
+ if (annotation._dictionary.has('IRT')) {
740
+ var isReview = _checkReview(dictionary);
741
+ var reference = dictionary._get('IRT');
742
+ if (reference && reference === this._annotation._ref && !isReview) {
743
+ this._collection.push(annotation);
744
+ }
745
+ else {
746
+ collection._comments.push(annotation);
747
+ }
748
+ }
749
+ }
750
+ }
751
+ }
752
+ };
753
+ return PdfPopupAnnotationCollection;
754
+ }());
755
+ export { PdfPopupAnnotationCollection };