@syncfusion/ej2-pdf 1.0.23 → 23.1.36

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 +17 -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 +48245 -0
  8. package/dist/es6/ej2-pdf.es2015.js.map +1 -0
  9. package/dist/es6/ej2-pdf.es5.js +50124 -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 +744 -0
  24. package/src/pdf/core/annotations/annotation.d.ts +5845 -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 +31 -0
  67. package/src/pdf/core/graphics/images/image-decoder.js +130 -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 +678 -0
  127. package/src/pdf/core/utils.js +3607 -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,744 @@
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
+ this._page._pageDictionary.set('Annots', this._annotations);
135
+ this._page._pageDictionary._updated = true;
136
+ if (annotation instanceof PdfComment) {
137
+ this._addCommentsAndReview(annotation, annotation._dictionary.get('F'));
138
+ }
139
+ this._updateCustomAppearanceResource(annotation);
140
+ return index;
141
+ };
142
+ /**
143
+ * Remove an annotation from the collection.
144
+ *
145
+ * @param {PdfAnnotation} annotation Annotation to remove.
146
+ * @returns {void} Nothing.
147
+ *
148
+ * ```typescript
149
+ * // Load an existing PDF document
150
+ * let document: PdfDocument = new PdfDocument(data);
151
+ * // Access first page
152
+ * let page: PdfPage = document.getPage(0);
153
+ * // Access first annotation from the PDF page
154
+ * let annotation: PdfAnnotation = page.annotations.at(0);
155
+ * // Remove an annotation from the collection
156
+ * page.annotations.remove(annotation);
157
+ * // Save the document
158
+ * document.save('output.pdf');
159
+ * // Destroy the document
160
+ * document.destroy();
161
+ * ```
162
+ */
163
+ PdfAnnotationCollection.prototype.remove = function (annotation) {
164
+ if (annotation._ref) {
165
+ var index = this._annotations.indexOf(annotation._ref);
166
+ if (index > -1) {
167
+ this.removeAt(index);
168
+ }
169
+ }
170
+ };
171
+ /**
172
+ * Remove an annotation from the collection at the specified index.
173
+ *
174
+ * @param {number} index Annotation index.
175
+ * @returns {void} Nothing.
176
+ *
177
+ * ```typescript
178
+ * // Load an existing PDF document
179
+ * let document: PdfDocument = new PdfDocument(data);
180
+ * // Access first page
181
+ * let page: PdfPage = document.getPage(0);
182
+ * // Remove an annotation from the collection
183
+ * page.annotations.removeAt(0);
184
+ * // Save the document
185
+ * document.save('output.pdf');
186
+ * // Destroy the document
187
+ * document.destroy();
188
+ * ```
189
+ */
190
+ PdfAnnotationCollection.prototype.removeAt = function (index) {
191
+ if (index < 0 || index >= this._annotations.length) {
192
+ throw Error('Index out of range.');
193
+ }
194
+ var reference = this._annotations[Number.parseInt(index.toString(), 10)];
195
+ if (reference && this._page) {
196
+ var array = this._page._getProperty('Annots');
197
+ var actualIndex = array.indexOf(reference);
198
+ if (actualIndex > -1) {
199
+ array.splice(actualIndex, 1);
200
+ }
201
+ this._page._pageDictionary.set('Annots', array);
202
+ this._page._pageDictionary._updated = true;
203
+ if (this._annotations.indexOf(reference) > -1) {
204
+ this._annotations.splice(index, 1);
205
+ }
206
+ if (this._parsedAnnotations.has(index)) {
207
+ this._parsedAnnotations.delete(index);
208
+ }
209
+ var crossReference = this._page._crossReference;
210
+ if (crossReference && crossReference._cacheMap.has(reference)) {
211
+ crossReference._cacheMap.delete(reference);
212
+ }
213
+ }
214
+ };
215
+ PdfAnnotationCollection.prototype._updateCustomAppearanceResource = function (annotation) {
216
+ if (annotation instanceof PdfRubberStampAnnotation && typeof annotation._appearance !== 'undefined') {
217
+ annotation._appearance.normal.graphics._processResources(annotation._crossReference);
218
+ }
219
+ };
220
+ PdfAnnotationCollection.prototype._addCommentsAndReview = function (annotation, flag) {
221
+ this._updateChildReference(annotation, annotation.comments, flag);
222
+ this._updateChildReference(annotation, annotation.reviewHistory, flag);
223
+ };
224
+ PdfAnnotationCollection.prototype._updateChildReference = function (annotation, collection, flag) {
225
+ if (collection && collection.count > 0) {
226
+ if (flag !== 30) {
227
+ for (var i = 0; i < collection.count; i++) {
228
+ var childAnnotation = collection._collection[Number.parseInt(i.toString(), 10)];
229
+ if (childAnnotation && !childAnnotation._dictionary.has('IRT')) {
230
+ if (i === 0 || !collection._isReview) {
231
+ childAnnotation._dictionary.update('IRT', annotation._ref);
232
+ }
233
+ else {
234
+ childAnnotation._dictionary.update('IRT', collection._collection[i - 1]._ref);
235
+ }
236
+ if (collection._isReview) {
237
+ childAnnotation._isReview = true;
238
+ }
239
+ else {
240
+ childAnnotation._isComment = true;
241
+ }
242
+ this.add(childAnnotation);
243
+ }
244
+ }
245
+ }
246
+ else {
247
+ throw new Error('Could not add comments/reviews to the review');
248
+ }
249
+ }
250
+ };
251
+ PdfAnnotationCollection.prototype._parseAnnotation = function (dictionary) {
252
+ var annot;
253
+ if (dictionary.has('Subtype')) {
254
+ var key = dictionary.get('Subtype');
255
+ var size = dictionary.get('Rect');
256
+ if (key) {
257
+ var link = void 0;
258
+ switch (key.name) {
259
+ case 'Line':
260
+ annot = PdfLineAnnotation._load(this._page, dictionary);
261
+ break;
262
+ case 'Circle':
263
+ if (dictionary.has('Measure')) {
264
+ annot = PdfCircleAnnotation._load(this._page, dictionary);
265
+ }
266
+ else {
267
+ var width = size[2] - size[0];
268
+ var height = size[3] - size[1];
269
+ if (width === height) {
270
+ annot = PdfCircleAnnotation._load(this._page, dictionary);
271
+ }
272
+ else {
273
+ annot = PdfEllipseAnnotation._load(this._page, dictionary);
274
+ }
275
+ }
276
+ break;
277
+ case 'Square':
278
+ if (size[2] === size[3]) {
279
+ annot = PdfSquareAnnotation._load(this._page, dictionary);
280
+ }
281
+ else {
282
+ annot = PdfRectangleAnnotation._load(this._page, dictionary);
283
+ }
284
+ break;
285
+ case 'Polygon':
286
+ annot = PdfPolygonAnnotation._load(this._page, dictionary);
287
+ break;
288
+ case 'PolyLine':
289
+ if (dictionary.has('Measure') && dictionary.has('IT')) {
290
+ var type = dictionary.get('IT');
291
+ if (type && type.name === 'PolyLineAngle') {
292
+ annot = PdfAngleMeasurementAnnotation._load(this._page, dictionary);
293
+ }
294
+ }
295
+ if (!annot) {
296
+ annot = PdfPolyLineAnnotation._load(this._page, dictionary);
297
+ }
298
+ break;
299
+ case 'Ink':
300
+ annot = PdfInkAnnotation._load(this._page, dictionary);
301
+ break;
302
+ case 'Popup':
303
+ annot = PdfPopupAnnotation._load(this._page, dictionary);
304
+ break;
305
+ case 'Text':
306
+ annot = PdfPopupAnnotation._load(this._page, dictionary);
307
+ break;
308
+ case 'Link':
309
+ if (dictionary.has('A')) {
310
+ link = dictionary.get('A');
311
+ }
312
+ if (link && link.has('S')) {
313
+ var type = link.get('S').name;
314
+ if (type) {
315
+ var isTextWebLink = this._hasValidBorder(dictionary.getArray('Border'));
316
+ if (type === 'URI') {
317
+ annot = isTextWebLink ?
318
+ PdfTextWebLinkAnnotation._load(this._page, dictionary) :
319
+ this._getLinkAnnotation(dictionary);
320
+ }
321
+ else if (type === 'Launch') {
322
+ annot = PdfFileLinkAnnotation._load(this._page, dictionary);
323
+ }
324
+ else if (type === 'GoToR') {
325
+ annot = this._getLinkAnnotation(dictionary);
326
+ }
327
+ else if (type === 'GoTo') {
328
+ annot = PdfDocumentLinkAnnotation._load(this._page, dictionary);
329
+ }
330
+ }
331
+ }
332
+ else if (key.name === 'Link') {
333
+ annot = PdfDocumentLinkAnnotation._load(this._page, dictionary);
334
+ }
335
+ break;
336
+ case 'FileAttachment':
337
+ annot = PdfAttachmentAnnotation._load(this._page, dictionary);
338
+ break;
339
+ case '3D':
340
+ annot = Pdf3DAnnotation._load(this._page, dictionary);
341
+ break;
342
+ case 'FreeText':
343
+ annot = PdfFreeTextAnnotation._load(this._page, dictionary);
344
+ break;
345
+ case 'Redact':
346
+ annot = PdfRedactionAnnotation._load(this._page, dictionary);
347
+ break;
348
+ case 'RichMedia':
349
+ annot = PdfRichMediaAnnotation._load(this._page, dictionary);
350
+ break;
351
+ case 'Watermark':
352
+ annot = PdfWatermarkAnnotation._load(this._page, dictionary);
353
+ break;
354
+ case 'Stamp':
355
+ annot = PdfRubberStampAnnotation._load(this._page, dictionary);
356
+ break;
357
+ case 'Sound':
358
+ annot = PdfSoundAnnotation._load(this._page, dictionary);
359
+ break;
360
+ case 'Highlight':
361
+ case 'Squiggly':
362
+ case 'StrikeOut':
363
+ case 'Underline':
364
+ annot = PdfTextMarkupAnnotation._load(this._page, dictionary);
365
+ break;
366
+ }
367
+ }
368
+ }
369
+ return annot;
370
+ };
371
+ PdfAnnotationCollection.prototype._getLinkAnnotation = function (dictionary) {
372
+ var annot;
373
+ if (dictionary.has('A')) {
374
+ var remote = dictionary.get('A');
375
+ if (remote && remote.has('S')) {
376
+ var link = remote.get('S');
377
+ if (link && link.name === 'GoToR' && remote.has('F')) {
378
+ annot = PdfFileLinkAnnotation._load(this._page, dictionary);
379
+ }
380
+ else if (link && link.name === 'URI') {
381
+ annot = PdfUriAnnotation._load(this._page, dictionary);
382
+ }
383
+ }
384
+ }
385
+ else {
386
+ annot = PdfUriAnnotation._load(this._page, dictionary);
387
+ }
388
+ return annot;
389
+ };
390
+ PdfAnnotationCollection.prototype._hasValidBorder = function (border) {
391
+ if (typeof border === 'undefined' || border === null) {
392
+ return false;
393
+ }
394
+ for (var i = 0; i < border.length; i++) {
395
+ var val = 0;
396
+ var value = border[Number.parseInt(i.toString(), 10)];
397
+ if (value !== null && typeof value !== 'undefined') {
398
+ val = value;
399
+ }
400
+ if (val > 0) {
401
+ return false;
402
+ }
403
+ }
404
+ return true;
405
+ };
406
+ PdfAnnotationCollection.prototype._doPostProcess = function (isFlatten) {
407
+ for (var i = this.count - 1; i >= 0; i--) {
408
+ var annotation = this.at(i);
409
+ if (annotation) {
410
+ annotation._doPostProcess(annotation.flatten || isFlatten);
411
+ }
412
+ }
413
+ };
414
+ PdfAnnotationCollection.prototype._reArrange = function (ref, tabIndex, index) {
415
+ if (this._annotations) {
416
+ if (tabIndex > this._annotations.length) {
417
+ tabIndex = 0;
418
+ }
419
+ if (index >= this._annotations.length) {
420
+ index = this._annotations.indexOf(ref);
421
+ }
422
+ var annotationDictionary = this._crossReference.
423
+ _fetch(this._annotations[Number.parseInt(index.toString(), 10)]);
424
+ if (annotationDictionary.has('Parent')) {
425
+ var parentReference = annotationDictionary.getRaw('Parent');
426
+ if ((parentReference && parentReference === ref) || ref ===
427
+ this._annotations[Number.parseInt(index.toString(), 10)]) {
428
+ var temp = this._annotations[Number.parseInt(index.toString(), 10)];
429
+ this._annotations[Number.parseInt(index.toString(), 10)] = this._annotations[Number.parseInt(tabIndex.toString(), 10)];
430
+ this._annotations[Number.parseInt(tabIndex.toString(), 10)] = temp;
431
+ }
432
+ }
433
+ }
434
+ return this._annotations;
435
+ };
436
+ PdfAnnotationCollection.prototype._clear = function () {
437
+ this._annotations = [];
438
+ this._parsedAnnotations = new Map();
439
+ this._comments = [];
440
+ };
441
+ return PdfAnnotationCollection;
442
+ }());
443
+ export { PdfAnnotationCollection };
444
+ /**
445
+ * Represents the collection of `PdfPopupAnnotation`
446
+ * ```typescript
447
+ * // Load an existing PDF document
448
+ * let document: PdfDocument = new PdfDocument(data);
449
+ * // Access annotation collection from first page
450
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
451
+ * // Gets the comments of annotation
452
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
453
+ * // Save the document
454
+ * document.save('output.pdf');
455
+ * // Destroy the document
456
+ * document.destroy();
457
+ * ```
458
+ */
459
+ var PdfPopupAnnotationCollection = /** @class */ (function () {
460
+ /**
461
+ * Initializes a new instance of the `PdfPopupAnnotationCollection` class
462
+ *
463
+ * @private
464
+ * @param {PdfAnnotation} annotation Annotation reference
465
+ * @param {boolean} isReview Boolean flag to set review
466
+ */
467
+ function PdfPopupAnnotationCollection(annotation, isReview) {
468
+ this._collection = [];
469
+ this._annotation = annotation;
470
+ this._isReview = isReview;
471
+ if (this._annotation._isLoaded || typeof annotation._page !== 'undefined') {
472
+ this._page = annotation._page;
473
+ this._parentDictionary = annotation._dictionary;
474
+ if (this._annotation._isLoaded) {
475
+ this._parseCommentsOrReview();
476
+ }
477
+ }
478
+ }
479
+ Object.defineProperty(PdfPopupAnnotationCollection.prototype, "count", {
480
+ /**
481
+ * Gets the annotation count (Read only).
482
+ *
483
+ * @private
484
+ * @returns {number} Number of annotations
485
+ *
486
+ * ```typescript
487
+ * // Load an existing PDF document
488
+ * let document: PdfDocument = new PdfDocument(data);
489
+ * // Access annotation collection from first page
490
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
491
+ * // Gets the comments of annotation
492
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
493
+ * // Gets the count of comments
494
+ * let count: number = comments.count;
495
+ * // Save the document
496
+ * document.save('output.pdf');
497
+ * // Destroy the document
498
+ * document.destroy();
499
+ * ```
500
+ */
501
+ get: function () {
502
+ return this._collection.length;
503
+ },
504
+ enumerable: true,
505
+ configurable: true
506
+ });
507
+ /**
508
+ * Gets the popup annotation at the specified index.
509
+ *
510
+ * @private
511
+ * @param {number} index Index of the annotation
512
+ * @returns {number} Annotation at the specified index
513
+ *
514
+ * ```typescript
515
+ * // Load an existing PDF document
516
+ * let document: PdfDocument = new PdfDocument(data);
517
+ * // Access annotation collection from first page
518
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
519
+ * // Gets the comments of annotation
520
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
521
+ * // Gets the first comment
522
+ * let comment: PdfPopupAnnotation = comments.at(0);
523
+ * // Save the document
524
+ * document.save('output.pdf');
525
+ * // Destroy the document
526
+ * document.destroy();
527
+ * ```
528
+ */
529
+ PdfPopupAnnotationCollection.prototype.at = function (index) {
530
+ if (index < 0 || index >= this._collection.length) {
531
+ throw Error('Index out of range.');
532
+ }
533
+ return this._collection[Number.parseInt(index.toString(), 10)];
534
+ };
535
+ /**
536
+ * Add a new popup annotation into the collection
537
+ *
538
+ * @param {PdfPopupAnnotation} annotation Annotation to add
539
+ * @returns {void} Nothing
540
+ *
541
+ * ```typescript
542
+ * // Load an existing PDF document
543
+ * let document: PdfDocument = new PdfDocument(data, password);
544
+ * // Access first page
545
+ * let page: PdfPage = document.getPage(0);
546
+ * // Create a new popup annotation
547
+ * const popupAnnotation: PdfPopupAnnotation = new PdfPopupAnnotation('Test popup annotation', 10, 40, 30, 30);
548
+ * popupAnnotation.author = 'Syncfusion';
549
+ * // Add a new popup annotation into the collection
550
+ * annotation.comments.add(popupAnnotation);
551
+ * // Save the document
552
+ * document.save('output.pdf');
553
+ * // Destroy the document
554
+ * document.destroy();
555
+ * ```
556
+ */
557
+ PdfPopupAnnotationCollection.prototype.add = function (annotation) {
558
+ if (this._annotation._dictionary.get('F') === 30) {
559
+ throw new Error('Could not add comments/reviews to the review');
560
+ }
561
+ annotation._dictionary.update('F', ((this._annotation.flags === PdfAnnotationFlag.locked) ? 128 : (this._isReview ? 30 : 28)));
562
+ if (this._annotation && (this._annotation._isLoaded || (this._page && this._annotation._ref))) {
563
+ this._page.annotations.add(annotation);
564
+ var length_1 = this._collection.length;
565
+ if (length_1 === 0 || !this._isReview) {
566
+ annotation._dictionary.update('IRT', this._annotation._ref);
567
+ }
568
+ else {
569
+ annotation._dictionary.update('IRT', this._collection[Number.parseInt((length_1 - 1).toString(), 10)]._ref);
570
+ }
571
+ if (this._isReview) {
572
+ annotation._isReview = true;
573
+ }
574
+ else {
575
+ annotation._isComment = true;
576
+ }
577
+ }
578
+ this._collection.push(annotation);
579
+ };
580
+ /**
581
+ * Remove an annotation from the collection
582
+ *
583
+ * @param {PdfPopupAnnotation} annotation Annotation to remove
584
+ * @returns {void} Nothing
585
+ *
586
+ * ```typescript
587
+ * // Load an existing PDF document
588
+ * let document: PdfDocument = new PdfDocument(data);
589
+ * // Access annotation collection from first page
590
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
591
+ * // Gets the comments of annotation
592
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
593
+ * // Gets the first comment
594
+ * let comment: PdfPopupAnnotation = comments.at(0);
595
+ * // Remove the comment
596
+ * comments.remove(comment);
597
+ * // Save the document
598
+ * document.save('output.pdf');
599
+ * // Destroy the document
600
+ * document.destroy();
601
+ * ```
602
+ */
603
+ PdfPopupAnnotationCollection.prototype.remove = function (annotation) {
604
+ var index = this._collection.indexOf(annotation);
605
+ if (index > -1) {
606
+ this.removeAt(index);
607
+ }
608
+ };
609
+ /**
610
+ * Remove an annotation from the collection at the specified index
611
+ *
612
+ * @param {number} index Annotation index to remove
613
+ * @returns {void} Nothing
614
+ *
615
+ * ```typescript
616
+ * // Load an existing PDF document
617
+ * let document: PdfDocument = new PdfDocument(data);
618
+ * // Access annotation collection from first page
619
+ * let annotations: PdfRectangleAnnotation = document.getPage(0).annotations;
620
+ * // Gets the comments of annotation
621
+ * let comments: PdfPopupAnnotationCollection = annotation.comments;
622
+ * // Remove the first comment
623
+ * comments.removeAt(0);
624
+ * // Save the document
625
+ * document.save('output.pdf');
626
+ * // Destroy the document
627
+ * document.destroy();
628
+ * ```
629
+ */
630
+ PdfPopupAnnotationCollection.prototype.removeAt = function (index) {
631
+ if (index > -1 && index < this._collection.length) {
632
+ var annotation = this._collection[Number.parseInt(index.toString(), 10)];
633
+ if (this._isReview && index < this._collection.length - 1) {
634
+ var nextAnnotation = this._collection[Number.parseInt((index + 1).toString(), 10)];
635
+ var previous = annotation._dictionary._get('IRT');
636
+ nextAnnotation._dictionary.set('IRT', previous);
637
+ nextAnnotation._dictionary._updated = true;
638
+ }
639
+ this._collection.splice(index, 1);
640
+ this._page.annotations.remove(annotation);
641
+ }
642
+ else {
643
+ throw new Error('Index out of range.');
644
+ }
645
+ };
646
+ PdfPopupAnnotationCollection.prototype._parseCommentsOrReview = function () {
647
+ if (this._isReview) {
648
+ this._parseReview();
649
+ }
650
+ else {
651
+ this._parseComments();
652
+ }
653
+ };
654
+ PdfPopupAnnotationCollection.prototype._parseReview = function () {
655
+ var collection = this._page.annotations;
656
+ var map = new Map();
657
+ map.set(this._annotation._ref, this._annotation);
658
+ if (collection._comments && collection._comments.length > 0) {
659
+ var remaining = [];
660
+ for (var i = 0; i < collection._comments.length; i++) {
661
+ var annotation = collection._comments[Number.parseInt(i.toString(), 10)];
662
+ var reference = annotation._dictionary._get('IRT');
663
+ if (annotation._isReview && reference && map.has(reference)) {
664
+ this._collection.push(annotation);
665
+ map.set(annotation._ref, annotation);
666
+ }
667
+ else {
668
+ remaining.push(annotation);
669
+ }
670
+ }
671
+ if (remaining.length > 0) {
672
+ collection._comments = remaining;
673
+ }
674
+ else {
675
+ collection._comments = [];
676
+ }
677
+ }
678
+ else {
679
+ var count = collection.count;
680
+ for (var i = 0; i < count; i++) {
681
+ var annotation = collection.at(i);
682
+ if (annotation && annotation instanceof PdfPopupAnnotation) {
683
+ var dictionary = annotation._dictionary;
684
+ if (annotation._dictionary.has('IRT')) {
685
+ var reference = dictionary._get('IRT');
686
+ if (annotation._isReview && reference && map.has(reference)) {
687
+ this._collection.push(annotation);
688
+ map.set(annotation._ref, annotation);
689
+ }
690
+ else {
691
+ collection._comments.push(annotation);
692
+ }
693
+ }
694
+ }
695
+ }
696
+ }
697
+ map.clear();
698
+ };
699
+ PdfPopupAnnotationCollection.prototype._parseComments = function () {
700
+ var collection = this._page.annotations;
701
+ if (collection._comments && collection._comments.length > 0) {
702
+ var remaining = [];
703
+ for (var i = 0; i < collection._comments.length; i++) {
704
+ var annotation = collection._comments[Number.parseInt(i.toString(), 10)];
705
+ var dictionary = annotation._dictionary;
706
+ var isReview = _checkReview(dictionary);
707
+ var reference = dictionary._get('IRT');
708
+ if (reference && reference === this._annotation._ref && !isReview) {
709
+ this._collection.push(annotation);
710
+ }
711
+ else {
712
+ remaining.push(annotation);
713
+ }
714
+ }
715
+ if (remaining.length > 0) {
716
+ collection._comments = remaining;
717
+ }
718
+ else {
719
+ collection._comments = [];
720
+ }
721
+ }
722
+ else {
723
+ var count = collection.count;
724
+ for (var i = 0; i < count; i++) {
725
+ var annotation = collection.at(i);
726
+ if (annotation && annotation instanceof PdfPopupAnnotation) {
727
+ var dictionary = annotation._dictionary;
728
+ if (annotation._dictionary.has('IRT')) {
729
+ var isReview = _checkReview(dictionary);
730
+ var reference = dictionary._get('IRT');
731
+ if (reference && reference === this._annotation._ref && !isReview) {
732
+ this._collection.push(annotation);
733
+ }
734
+ else {
735
+ collection._comments.push(annotation);
736
+ }
737
+ }
738
+ }
739
+ }
740
+ }
741
+ };
742
+ return PdfPopupAnnotationCollection;
743
+ }());
744
+ export { PdfPopupAnnotationCollection };