html2canvas-pro 1.4.3

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 (394) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/dist/html2canvas-pro.esm.js +7943 -0
  4. package/dist/html2canvas-pro.esm.js.map +1 -0
  5. package/dist/html2canvas-pro.js +7951 -0
  6. package/dist/html2canvas-pro.js.map +1 -0
  7. package/dist/html2canvas-pro.min.js +20 -0
  8. package/dist/lib/__tests__/index.js +144 -0
  9. package/dist/lib/__tests__/index.js.map +1 -0
  10. package/dist/lib/core/__mocks__/cache-storage.js +10 -0
  11. package/dist/lib/core/__mocks__/cache-storage.js.map +1 -0
  12. package/dist/lib/core/__mocks__/context.js +22 -0
  13. package/dist/lib/core/__mocks__/context.js.map +1 -0
  14. package/dist/lib/core/__mocks__/features.js +12 -0
  15. package/dist/lib/core/__mocks__/features.js.map +1 -0
  16. package/dist/lib/core/__mocks__/logger.js +24 -0
  17. package/dist/lib/core/__mocks__/logger.js.map +1 -0
  18. package/dist/lib/core/__tests__/cache-storage.js +420 -0
  19. package/dist/lib/core/__tests__/cache-storage.js.map +1 -0
  20. package/dist/lib/core/__tests__/logger.js +28 -0
  21. package/dist/lib/core/__tests__/logger.js.map +1 -0
  22. package/dist/lib/core/bitwise.js +6 -0
  23. package/dist/lib/core/bitwise.js.map +1 -0
  24. package/dist/lib/core/cache-storage.js +198 -0
  25. package/dist/lib/core/cache-storage.js.map +1 -0
  26. package/dist/lib/core/context.js +18 -0
  27. package/dist/lib/core/context.js.map +1 -0
  28. package/dist/lib/core/debugger.js +25 -0
  29. package/dist/lib/core/debugger.js.map +1 -0
  30. package/dist/lib/core/features.js +193 -0
  31. package/dist/lib/core/features.js.map +1 -0
  32. package/dist/lib/core/logger.js +88 -0
  33. package/dist/lib/core/logger.js.map +1 -0
  34. package/dist/lib/core/util.js +5 -0
  35. package/dist/lib/core/util.js.map +1 -0
  36. package/dist/lib/css/IPropertyDescriptor.js +3 -0
  37. package/dist/lib/css/IPropertyDescriptor.js.map +1 -0
  38. package/dist/lib/css/ITypeDescriptor.js +3 -0
  39. package/dist/lib/css/ITypeDescriptor.js.map +1 -0
  40. package/dist/lib/css/index.js +218 -0
  41. package/dist/lib/css/index.js.map +1 -0
  42. package/dist/lib/css/layout/__mocks__/bounds.js +9 -0
  43. package/dist/lib/css/layout/__mocks__/bounds.js.map +1 -0
  44. package/dist/lib/css/layout/bounds.js +42 -0
  45. package/dist/lib/css/layout/bounds.js.map +1 -0
  46. package/dist/lib/css/layout/text.js +137 -0
  47. package/dist/lib/css/layout/text.js.map +1 -0
  48. package/dist/lib/css/property-descriptors/__tests__/background-tests.js +48 -0
  49. package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -0
  50. package/dist/lib/css/property-descriptors/__tests__/font-family.js +25 -0
  51. package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -0
  52. package/dist/lib/css/property-descriptors/__tests__/paint-order.js +88 -0
  53. package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -0
  54. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +94 -0
  55. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -0
  56. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +18 -0
  57. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +1 -0
  58. package/dist/lib/css/property-descriptors/background-clip.js +24 -0
  59. package/dist/lib/css/property-descriptors/background-clip.js.map +1 -0
  60. package/dist/lib/css/property-descriptors/background-color.js +11 -0
  61. package/dist/lib/css/property-descriptors/background-color.js.map +1 -0
  62. package/dist/lib/css/property-descriptors/background-image.js +24 -0
  63. package/dist/lib/css/property-descriptors/background-image.js.map +1 -0
  64. package/dist/lib/css/property-descriptors/background-origin.js +24 -0
  65. package/dist/lib/css/property-descriptors/background-origin.js.map +1 -0
  66. package/dist/lib/css/property-descriptors/background-position.js +17 -0
  67. package/dist/lib/css/property-descriptors/background-position.js.map +1 -0
  68. package/dist/lib/css/property-descriptors/background-repeat.js +36 -0
  69. package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -0
  70. package/dist/lib/css/property-descriptors/background-size.js +24 -0
  71. package/dist/lib/css/property-descriptors/background-size.js.map +1 -0
  72. package/dist/lib/css/property-descriptors/border-color.js +15 -0
  73. package/dist/lib/css/property-descriptors/border-color.js.map +1 -0
  74. package/dist/lib/css/property-descriptors/border-radius.js +18 -0
  75. package/dist/lib/css/property-descriptors/border-radius.js.map +1 -0
  76. package/dist/lib/css/property-descriptors/border-style.js +27 -0
  77. package/dist/lib/css/property-descriptors/border-style.js.map +1 -0
  78. package/dist/lib/css/property-descriptors/border-width.js +21 -0
  79. package/dist/lib/css/property-descriptors/border-width.js.map +1 -0
  80. package/dist/lib/css/property-descriptors/box-shadow.js +55 -0
  81. package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -0
  82. package/dist/lib/css/property-descriptors/color.js +11 -0
  83. package/dist/lib/css/property-descriptors/color.js.map +1 -0
  84. package/dist/lib/css/property-descriptors/content.js +20 -0
  85. package/dist/lib/css/property-descriptors/content.js.map +1 -0
  86. package/dist/lib/css/property-descriptors/counter-increment.js +31 -0
  87. package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -0
  88. package/dist/lib/css/property-descriptors/counter-reset.js +27 -0
  89. package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -0
  90. package/dist/lib/css/property-descriptors/direction.js +19 -0
  91. package/dist/lib/css/property-descriptors/direction.js.map +1 -0
  92. package/dist/lib/css/property-descriptors/display.js +82 -0
  93. package/dist/lib/css/property-descriptors/display.js.map +1 -0
  94. package/dist/lib/css/property-descriptors/duration.js +15 -0
  95. package/dist/lib/css/property-descriptors/duration.js.map +1 -0
  96. package/dist/lib/css/property-descriptors/float.js +23 -0
  97. package/dist/lib/css/property-descriptors/float.js.map +1 -0
  98. package/dist/lib/css/property-descriptors/font-family.js +33 -0
  99. package/dist/lib/css/property-descriptors/font-family.js.map +1 -0
  100. package/dist/lib/css/property-descriptors/font-size.js +11 -0
  101. package/dist/lib/css/property-descriptors/font-size.js.map +1 -0
  102. package/dist/lib/css/property-descriptors/font-style.js +21 -0
  103. package/dist/lib/css/property-descriptors/font-style.js.map +1 -0
  104. package/dist/lib/css/property-descriptors/font-variant.js +14 -0
  105. package/dist/lib/css/property-descriptors/font-variant.js.map +1 -0
  106. package/dist/lib/css/property-descriptors/font-weight.js +26 -0
  107. package/dist/lib/css/property-descriptors/font-weight.js.map +1 -0
  108. package/dist/lib/css/property-descriptors/letter-spacing.js +22 -0
  109. package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -0
  110. package/dist/lib/css/property-descriptors/line-break.js +24 -0
  111. package/dist/lib/css/property-descriptors/line-break.js.map +1 -0
  112. package/dist/lib/css/property-descriptors/line-height.js +25 -0
  113. package/dist/lib/css/property-descriptors/line-height.js.map +1 -0
  114. package/dist/lib/css/property-descriptors/list-style-image.js +17 -0
  115. package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -0
  116. package/dist/lib/css/property-descriptors/list-style-position.js +19 -0
  117. package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -0
  118. package/dist/lib/css/property-descriptors/list-style-type.js +123 -0
  119. package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -0
  120. package/dist/lib/css/property-descriptors/margin.js +14 -0
  121. package/dist/lib/css/property-descriptors/margin.js.map +1 -0
  122. package/dist/lib/css/property-descriptors/object-fit.js +29 -0
  123. package/dist/lib/css/property-descriptors/object-fit.js.map +1 -0
  124. package/dist/lib/css/property-descriptors/opacity.js +17 -0
  125. package/dist/lib/css/property-descriptors/opacity.js.map +1 -0
  126. package/dist/lib/css/property-descriptors/overflow-wrap.js +19 -0
  127. package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -0
  128. package/dist/lib/css/property-descriptors/overflow.js +28 -0
  129. package/dist/lib/css/property-descriptors/overflow.js.map +1 -0
  130. package/dist/lib/css/property-descriptors/padding.js +15 -0
  131. package/dist/lib/css/property-descriptors/padding.js.map +1 -0
  132. package/dist/lib/css/property-descriptors/paint-order.js +34 -0
  133. package/dist/lib/css/property-descriptors/paint-order.js.map +1 -0
  134. package/dist/lib/css/property-descriptors/position.js +23 -0
  135. package/dist/lib/css/property-descriptors/position.js.map +1 -0
  136. package/dist/lib/css/property-descriptors/quotes.js +42 -0
  137. package/dist/lib/css/property-descriptors/quotes.js.map +1 -0
  138. package/dist/lib/css/property-descriptors/text-align.js +22 -0
  139. package/dist/lib/css/property-descriptors/text-align.js.map +1 -0
  140. package/dist/lib/css/property-descriptors/text-decoration-color.js +11 -0
  141. package/dist/lib/css/property-descriptors/text-decoration-color.js.map +1 -0
  142. package/dist/lib/css/property-descriptors/text-decoration-line.js +29 -0
  143. package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -0
  144. package/dist/lib/css/property-descriptors/text-shadow.js +47 -0
  145. package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -0
  146. package/dist/lib/css/property-descriptors/text-transform.js +21 -0
  147. package/dist/lib/css/property-descriptors/text-transform.js.map +1 -0
  148. package/dist/lib/css/property-descriptors/transform-origin.js +25 -0
  149. package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -0
  150. package/dist/lib/css/property-descriptors/transform.js +37 -0
  151. package/dist/lib/css/property-descriptors/transform.js.map +1 -0
  152. package/dist/lib/css/property-descriptors/visibility.js +21 -0
  153. package/dist/lib/css/property-descriptors/visibility.js.map +1 -0
  154. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +11 -0
  155. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +1 -0
  156. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +17 -0
  157. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -0
  158. package/dist/lib/css/property-descriptors/word-break.js +27 -0
  159. package/dist/lib/css/property-descriptors/word-break.js.map +1 -0
  160. package/dist/lib/css/property-descriptors/z-index.js +20 -0
  161. package/dist/lib/css/property-descriptors/z-index.js.map +1 -0
  162. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +34 -0
  163. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +1 -0
  164. package/dist/lib/css/syntax/parser.js +147 -0
  165. package/dist/lib/css/syntax/parser.js.map +1 -0
  166. package/dist/lib/css/syntax/tokenizer.js +630 -0
  167. package/dist/lib/css/syntax/tokenizer.js.map +1 -0
  168. package/dist/lib/css/types/__tests__/color-tests.js +66 -0
  169. package/dist/lib/css/types/__tests__/color-tests.js.map +1 -0
  170. package/dist/lib/css/types/__tests__/image-tests.js +233 -0
  171. package/dist/lib/css/types/__tests__/image-tests.js.map +1 -0
  172. package/dist/lib/css/types/angle.js +81 -0
  173. package/dist/lib/css/types/angle.js.map +1 -0
  174. package/dist/lib/css/types/color.js +307 -0
  175. package/dist/lib/css/types/color.js.map +1 -0
  176. package/dist/lib/css/types/functions/-prefix-linear-gradient.js +33 -0
  177. package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -0
  178. package/dist/lib/css/types/functions/-prefix-radial-gradient.js +84 -0
  179. package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -0
  180. package/dist/lib/css/types/functions/-webkit-gradient.js +60 -0
  181. package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -0
  182. package/dist/lib/css/types/functions/__tests__/radial-gradient.js +68 -0
  183. package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +1 -0
  184. package/dist/lib/css/types/functions/counter.js +374 -0
  185. package/dist/lib/css/types/functions/counter.js.map +1 -0
  186. package/dist/lib/css/types/functions/gradient.js +165 -0
  187. package/dist/lib/css/types/functions/gradient.js.map +1 -0
  188. package/dist/lib/css/types/functions/linear-gradient.js +28 -0
  189. package/dist/lib/css/types/functions/linear-gradient.js.map +1 -0
  190. package/dist/lib/css/types/functions/radial-gradient.js +91 -0
  191. package/dist/lib/css/types/functions/radial-gradient.js.map +1 -0
  192. package/dist/lib/css/types/image.js +53 -0
  193. package/dist/lib/css/types/image.js.map +1 -0
  194. package/dist/lib/css/types/index.js +3 -0
  195. package/dist/lib/css/types/index.js.map +1 -0
  196. package/dist/lib/css/types/length-percentage.js +52 -0
  197. package/dist/lib/css/types/length-percentage.js.map +1 -0
  198. package/dist/lib/css/types/length.js +8 -0
  199. package/dist/lib/css/types/length.js.map +1 -0
  200. package/dist/lib/css/types/time.js +18 -0
  201. package/dist/lib/css/types/time.js.map +1 -0
  202. package/dist/lib/dom/__mocks__/document-cloner.js +24 -0
  203. package/dist/lib/dom/__mocks__/document-cloner.js.map +1 -0
  204. package/dist/lib/dom/document-cloner.js +530 -0
  205. package/dist/lib/dom/document-cloner.js.map +1 -0
  206. package/dist/lib/dom/element-container.js +35 -0
  207. package/dist/lib/dom/element-container.js.map +1 -0
  208. package/dist/lib/dom/elements/li-element-container.js +30 -0
  209. package/dist/lib/dom/elements/li-element-container.js.map +1 -0
  210. package/dist/lib/dom/elements/ol-element-container.js +31 -0
  211. package/dist/lib/dom/elements/ol-element-container.js.map +1 -0
  212. package/dist/lib/dom/elements/select-element-container.js +31 -0
  213. package/dist/lib/dom/elements/select-element-container.js.map +1 -0
  214. package/dist/lib/dom/elements/textarea-element-container.js +30 -0
  215. package/dist/lib/dom/elements/textarea-element-container.js.map +1 -0
  216. package/dist/lib/dom/node-parser.js +142 -0
  217. package/dist/lib/dom/node-parser.js.map +1 -0
  218. package/dist/lib/dom/replaced-elements/canvas-element-container.js +32 -0
  219. package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -0
  220. package/dist/lib/dom/replaced-elements/iframe-element-container.js +55 -0
  221. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -0
  222. package/dist/lib/dom/replaced-elements/image-element-container.js +33 -0
  223. package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -0
  224. package/dist/lib/dom/replaced-elements/index.js +3 -0
  225. package/dist/lib/dom/replaced-elements/index.js.map +1 -0
  226. package/dist/lib/dom/replaced-elements/input-element-container.js +102 -0
  227. package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -0
  228. package/dist/lib/dom/replaced-elements/pseudo-elements.js +1 -0
  229. package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +1 -0
  230. package/dist/lib/dom/replaced-elements/svg-element-container.js +38 -0
  231. package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -0
  232. package/dist/lib/dom/text-container.js +32 -0
  233. package/dist/lib/dom/text-container.js.map +1 -0
  234. package/dist/lib/index.js +181 -0
  235. package/dist/lib/index.js.map +1 -0
  236. package/dist/lib/invariant.js +10 -0
  237. package/dist/lib/invariant.js.map +1 -0
  238. package/dist/lib/render/background.js +187 -0
  239. package/dist/lib/render/background.js.map +1 -0
  240. package/dist/lib/render/bezier-curve.js +36 -0
  241. package/dist/lib/render/bezier-curve.js.map +1 -0
  242. package/dist/lib/render/border.js +105 -0
  243. package/dist/lib/render/border.js.map +1 -0
  244. package/dist/lib/render/bound-curves.js +190 -0
  245. package/dist/lib/render/bound-curves.js.map +1 -0
  246. package/dist/lib/render/box-sizing.js +21 -0
  247. package/dist/lib/render/box-sizing.js.map +1 -0
  248. package/dist/lib/render/canvas/canvas-renderer.js +1106 -0
  249. package/dist/lib/render/canvas/canvas-renderer.js.map +1 -0
  250. package/dist/lib/render/canvas/foreignobject-renderer.js +108 -0
  251. package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -0
  252. package/dist/lib/render/effects.js +41 -0
  253. package/dist/lib/render/effects.js.map +1 -0
  254. package/dist/lib/render/font-metrics.js +55 -0
  255. package/dist/lib/render/font-metrics.js.map +1 -0
  256. package/dist/lib/render/path.js +27 -0
  257. package/dist/lib/render/path.js.map +1 -0
  258. package/dist/lib/render/renderer.js +12 -0
  259. package/dist/lib/render/renderer.js.map +1 -0
  260. package/dist/lib/render/stacking-context.js +172 -0
  261. package/dist/lib/render/stacking-context.js.map +1 -0
  262. package/dist/lib/render/vector.js +18 -0
  263. package/dist/lib/render/vector.js.map +1 -0
  264. package/dist/types/__tests__/index.d.ts +1 -0
  265. package/dist/types/core/__mocks__/cache-storage.d.ts +2 -0
  266. package/dist/types/core/__mocks__/context.d.ts +9 -0
  267. package/dist/types/core/__mocks__/features.d.ts +8 -0
  268. package/dist/types/core/__mocks__/logger.d.ts +9 -0
  269. package/dist/types/core/__tests__/cache-storage.d.ts +1 -0
  270. package/dist/types/core/__tests__/logger.d.ts +1 -0
  271. package/dist/types/core/bitwise.d.ts +1 -0
  272. package/dist/types/core/cache-storage.d.ts +26 -0
  273. package/dist/types/core/context.d.ts +15 -0
  274. package/dist/types/core/debugger.d.ts +8 -0
  275. package/dist/types/core/features.d.ts +12 -0
  276. package/dist/types/core/logger.d.ts +18 -0
  277. package/dist/types/core/util.d.ts +1 -0
  278. package/dist/types/css/IPropertyDescriptor.d.ts +36 -0
  279. package/dist/types/css/ITypeDescriptor.d.ts +6 -0
  280. package/dist/types/css/index.d.ts +134 -0
  281. package/dist/types/css/layout/__mocks__/bounds.d.ts +2 -0
  282. package/dist/types/css/layout/bounds.d.ts +14 -0
  283. package/dist/types/css/layout/text.d.ts +10 -0
  284. package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +1 -0
  285. package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +1 -0
  286. package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +1 -0
  287. package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +1 -0
  288. package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +1 -0
  289. package/dist/types/css/property-descriptors/background-clip.d.ts +8 -0
  290. package/dist/types/css/property-descriptors/background-color.d.ts +2 -0
  291. package/dist/types/css/property-descriptors/background-image.d.ts +3 -0
  292. package/dist/types/css/property-descriptors/background-origin.d.ts +8 -0
  293. package/dist/types/css/property-descriptors/background-position.d.ts +5 -0
  294. package/dist/types/css/property-descriptors/background-repeat.d.ts +9 -0
  295. package/dist/types/css/property-descriptors/background-size.d.ts +11 -0
  296. package/dist/types/css/property-descriptors/border-color.d.ts +5 -0
  297. package/dist/types/css/property-descriptors/border-radius.d.ts +7 -0
  298. package/dist/types/css/property-descriptors/border-style.d.ts +12 -0
  299. package/dist/types/css/property-descriptors/border-width.d.ts +5 -0
  300. package/dist/types/css/property-descriptors/box-shadow.d.ts +14 -0
  301. package/dist/types/css/property-descriptors/color.d.ts +2 -0
  302. package/dist/types/css/property-descriptors/content.d.ts +4 -0
  303. package/dist/types/css/property-descriptors/counter-increment.d.ts +7 -0
  304. package/dist/types/css/property-descriptors/counter-reset.d.ts +7 -0
  305. package/dist/types/css/property-descriptors/direction.d.ts +6 -0
  306. package/dist/types/css/property-descriptors/display.d.ts +35 -0
  307. package/dist/types/css/property-descriptors/duration.d.ts +2 -0
  308. package/dist/types/css/property-descriptors/float.d.ts +9 -0
  309. package/dist/types/css/property-descriptors/font-family.d.ts +4 -0
  310. package/dist/types/css/property-descriptors/font-size.d.ts +2 -0
  311. package/dist/types/css/property-descriptors/font-style.d.ts +7 -0
  312. package/dist/types/css/property-descriptors/font-variant.d.ts +2 -0
  313. package/dist/types/css/property-descriptors/font-weight.d.ts +2 -0
  314. package/dist/types/css/property-descriptors/letter-spacing.d.ts +2 -0
  315. package/dist/types/css/property-descriptors/line-break.d.ts +6 -0
  316. package/dist/types/css/property-descriptors/line-height.d.ts +4 -0
  317. package/dist/types/css/property-descriptors/list-style-image.d.ts +3 -0
  318. package/dist/types/css/property-descriptors/list-style-position.d.ts +6 -0
  319. package/dist/types/css/property-descriptors/list-style-type.d.ts +58 -0
  320. package/dist/types/css/property-descriptors/margin.d.ts +5 -0
  321. package/dist/types/css/property-descriptors/object-fit.d.ts +10 -0
  322. package/dist/types/css/property-descriptors/opacity.d.ts +2 -0
  323. package/dist/types/css/property-descriptors/overflow-wrap.d.ts +6 -0
  324. package/dist/types/css/property-descriptors/overflow.d.ts +9 -0
  325. package/dist/types/css/property-descriptors/padding.d.ts +5 -0
  326. package/dist/types/css/property-descriptors/paint-order.d.ts +8 -0
  327. package/dist/types/css/property-descriptors/position.d.ts +9 -0
  328. package/dist/types/css/property-descriptors/quotes.d.ts +8 -0
  329. package/dist/types/css/property-descriptors/text-align.d.ts +7 -0
  330. package/dist/types/css/property-descriptors/text-decoration-color.d.ts +2 -0
  331. package/dist/types/css/property-descriptors/text-decoration-line.d.ts +10 -0
  332. package/dist/types/css/property-descriptors/text-shadow.d.ts +12 -0
  333. package/dist/types/css/property-descriptors/text-transform.d.ts +8 -0
  334. package/dist/types/css/property-descriptors/transform-origin.d.ts +4 -0
  335. package/dist/types/css/property-descriptors/transform.d.ts +4 -0
  336. package/dist/types/css/property-descriptors/visibility.d.ts +7 -0
  337. package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +2 -0
  338. package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +2 -0
  339. package/dist/types/css/property-descriptors/word-break.d.ts +7 -0
  340. package/dist/types/css/property-descriptors/z-index.d.ts +7 -0
  341. package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +1 -0
  342. package/dist/types/css/syntax/parser.d.ts +34 -0
  343. package/dist/types/css/syntax/tokenizer.d.ts +94 -0
  344. package/dist/types/css/types/__tests__/color-tests.d.ts +1 -0
  345. package/dist/types/css/types/__tests__/image-tests.d.ts +1 -0
  346. package/dist/types/css/types/angle.d.ts +7 -0
  347. package/dist/types/css/types/color.d.ts +11 -0
  348. package/dist/types/css/types/functions/-prefix-linear-gradient.d.ts +4 -0
  349. package/dist/types/css/types/functions/-prefix-radial-gradient.d.ts +4 -0
  350. package/dist/types/css/types/functions/-webkit-gradient.d.ts +4 -0
  351. package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +1 -0
  352. package/dist/types/css/types/functions/counter.d.ts +10 -0
  353. package/dist/types/css/types/functions/gradient.d.ts +7 -0
  354. package/dist/types/css/types/functions/linear-gradient.d.ts +4 -0
  355. package/dist/types/css/types/functions/radial-gradient.d.ts +12 -0
  356. package/dist/types/css/types/image.d.ts +54 -0
  357. package/dist/types/css/types/index.d.ts +1 -0
  358. package/dist/types/css/types/length-percentage.d.ts +11 -0
  359. package/dist/types/css/types/length.d.ts +4 -0
  360. package/dist/types/css/types/time.d.ts +2 -0
  361. package/dist/types/dom/__mocks__/document-cloner.d.ts +6 -0
  362. package/dist/types/dom/document-cloner.d.ts +45 -0
  363. package/dist/types/dom/element-container.d.ts +19 -0
  364. package/dist/types/dom/elements/li-element-container.d.ts +6 -0
  365. package/dist/types/dom/elements/ol-element-container.d.ts +7 -0
  366. package/dist/types/dom/elements/select-element-container.d.ts +6 -0
  367. package/dist/types/dom/elements/textarea-element-container.d.ts +6 -0
  368. package/dist/types/dom/node-parser.d.ts +23 -0
  369. package/dist/types/dom/replaced-elements/canvas-element-container.d.ts +8 -0
  370. package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +11 -0
  371. package/dist/types/dom/replaced-elements/image-element-container.d.ts +8 -0
  372. package/dist/types/dom/replaced-elements/index.d.ts +4 -0
  373. package/dist/types/dom/replaced-elements/input-element-container.d.ts +12 -0
  374. package/dist/types/dom/replaced-elements/pseudo-elements.d.ts +0 -0
  375. package/dist/types/dom/replaced-elements/svg-element-container.d.ts +8 -0
  376. package/dist/types/dom/text-container.d.ts +8 -0
  377. package/dist/types/index.d.ts +10 -0
  378. package/dist/types/invariant.d.ts +1 -0
  379. package/dist/types/render/background.d.ts +16 -0
  380. package/dist/types/render/bezier-curve.d.ts +14 -0
  381. package/dist/types/render/border.d.ts +6 -0
  382. package/dist/types/render/bound-curves.d.ts +32 -0
  383. package/dist/types/render/box-sizing.d.ts +4 -0
  384. package/dist/types/render/canvas/canvas-renderer.d.ts +53 -0
  385. package/dist/types/render/canvas/foreignobject-renderer.d.ts +11 -0
  386. package/dist/types/render/effects.d.ts +38 -0
  387. package/dist/types/render/font-metrics.d.ts +11 -0
  388. package/dist/types/render/path.d.ts +13 -0
  389. package/dist/types/render/renderer.d.ts +7 -0
  390. package/dist/types/render/stacking-context.d.ts +24 -0
  391. package/dist/types/render/vector.d.ts +9 -0
  392. package/package.json +124 -0
  393. package/publish.sh +8 -0
  394. package/tsconfig.json +21 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPropertyDescriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPropertyDescriptor.js","sourceRoot":"","sources":["../../../src/css/IPropertyDescriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITypeDescriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITypeDescriptor.js","sourceRoot":"","sources":["../../../src/css/ITypeDescriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CSSParsedCounterDeclaration = exports.CSSParsedPseudoDeclaration = exports.CSSParsedDeclaration = void 0;
4
+ var background_clip_1 = require("./property-descriptors/background-clip");
5
+ var background_color_1 = require("./property-descriptors/background-color");
6
+ var background_image_1 = require("./property-descriptors/background-image");
7
+ var background_origin_1 = require("./property-descriptors/background-origin");
8
+ var background_position_1 = require("./property-descriptors/background-position");
9
+ var background_repeat_1 = require("./property-descriptors/background-repeat");
10
+ var background_size_1 = require("./property-descriptors/background-size");
11
+ var border_color_1 = require("./property-descriptors/border-color");
12
+ var border_radius_1 = require("./property-descriptors/border-radius");
13
+ var border_style_1 = require("./property-descriptors/border-style");
14
+ var border_width_1 = require("./property-descriptors/border-width");
15
+ var color_1 = require("./property-descriptors/color");
16
+ var direction_1 = require("./property-descriptors/direction");
17
+ var display_1 = require("./property-descriptors/display");
18
+ var float_1 = require("./property-descriptors/float");
19
+ var letter_spacing_1 = require("./property-descriptors/letter-spacing");
20
+ var line_break_1 = require("./property-descriptors/line-break");
21
+ var line_height_1 = require("./property-descriptors/line-height");
22
+ var list_style_image_1 = require("./property-descriptors/list-style-image");
23
+ var list_style_position_1 = require("./property-descriptors/list-style-position");
24
+ var list_style_type_1 = require("./property-descriptors/list-style-type");
25
+ var margin_1 = require("./property-descriptors/margin");
26
+ var overflow_1 = require("./property-descriptors/overflow");
27
+ var overflow_wrap_1 = require("./property-descriptors/overflow-wrap");
28
+ var padding_1 = require("./property-descriptors/padding");
29
+ var text_align_1 = require("./property-descriptors/text-align");
30
+ var position_1 = require("./property-descriptors/position");
31
+ var text_shadow_1 = require("./property-descriptors/text-shadow");
32
+ var text_transform_1 = require("./property-descriptors/text-transform");
33
+ var transform_1 = require("./property-descriptors/transform");
34
+ var transform_origin_1 = require("./property-descriptors/transform-origin");
35
+ var visibility_1 = require("./property-descriptors/visibility");
36
+ var word_break_1 = require("./property-descriptors/word-break");
37
+ var z_index_1 = require("./property-descriptors/z-index");
38
+ var parser_1 = require("./syntax/parser");
39
+ var tokenizer_1 = require("./syntax/tokenizer");
40
+ var color_2 = require("./types/color");
41
+ var angle_1 = require("./types/angle");
42
+ var image_1 = require("./types/image");
43
+ var time_1 = require("./types/time");
44
+ var opacity_1 = require("./property-descriptors/opacity");
45
+ var text_decoration_color_1 = require("./property-descriptors/text-decoration-color");
46
+ var text_decoration_line_1 = require("./property-descriptors/text-decoration-line");
47
+ var length_percentage_1 = require("./types/length-percentage");
48
+ var font_family_1 = require("./property-descriptors/font-family");
49
+ var font_size_1 = require("./property-descriptors/font-size");
50
+ var length_1 = require("./types/length");
51
+ var font_weight_1 = require("./property-descriptors/font-weight");
52
+ var font_variant_1 = require("./property-descriptors/font-variant");
53
+ var font_style_1 = require("./property-descriptors/font-style");
54
+ var bitwise_1 = require("../core/bitwise");
55
+ var content_1 = require("./property-descriptors/content");
56
+ var counter_increment_1 = require("./property-descriptors/counter-increment");
57
+ var counter_reset_1 = require("./property-descriptors/counter-reset");
58
+ var duration_1 = require("./property-descriptors/duration");
59
+ var quotes_1 = require("./property-descriptors/quotes");
60
+ var box_shadow_1 = require("./property-descriptors/box-shadow");
61
+ var paint_order_1 = require("./property-descriptors/paint-order");
62
+ var webkit_text_stroke_color_1 = require("./property-descriptors/webkit-text-stroke-color");
63
+ var webkit_text_stroke_width_1 = require("./property-descriptors/webkit-text-stroke-width");
64
+ var object_fit_1 = require("./property-descriptors/object-fit");
65
+ var CSSParsedDeclaration = /** @class */ (function () {
66
+ function CSSParsedDeclaration(context, declaration) {
67
+ var _a, _b;
68
+ this.animationDuration = parse(context, duration_1.duration, declaration.animationDuration);
69
+ this.backgroundClip = parse(context, background_clip_1.backgroundClip, declaration.backgroundClip);
70
+ this.backgroundColor = parse(context, background_color_1.backgroundColor, declaration.backgroundColor);
71
+ this.backgroundImage = parse(context, background_image_1.backgroundImage, declaration.backgroundImage);
72
+ this.backgroundOrigin = parse(context, background_origin_1.backgroundOrigin, declaration.backgroundOrigin);
73
+ this.backgroundPosition = parse(context, background_position_1.backgroundPosition, declaration.backgroundPosition);
74
+ this.backgroundRepeat = parse(context, background_repeat_1.backgroundRepeat, declaration.backgroundRepeat);
75
+ this.backgroundSize = parse(context, background_size_1.backgroundSize, declaration.backgroundSize);
76
+ this.borderTopColor = parse(context, border_color_1.borderTopColor, declaration.borderTopColor);
77
+ this.borderRightColor = parse(context, border_color_1.borderRightColor, declaration.borderRightColor);
78
+ this.borderBottomColor = parse(context, border_color_1.borderBottomColor, declaration.borderBottomColor);
79
+ this.borderLeftColor = parse(context, border_color_1.borderLeftColor, declaration.borderLeftColor);
80
+ this.borderTopLeftRadius = parse(context, border_radius_1.borderTopLeftRadius, declaration.borderTopLeftRadius);
81
+ this.borderTopRightRadius = parse(context, border_radius_1.borderTopRightRadius, declaration.borderTopRightRadius);
82
+ this.borderBottomRightRadius = parse(context, border_radius_1.borderBottomRightRadius, declaration.borderBottomRightRadius);
83
+ this.borderBottomLeftRadius = parse(context, border_radius_1.borderBottomLeftRadius, declaration.borderBottomLeftRadius);
84
+ this.borderTopStyle = parse(context, border_style_1.borderTopStyle, declaration.borderTopStyle);
85
+ this.borderRightStyle = parse(context, border_style_1.borderRightStyle, declaration.borderRightStyle);
86
+ this.borderBottomStyle = parse(context, border_style_1.borderBottomStyle, declaration.borderBottomStyle);
87
+ this.borderLeftStyle = parse(context, border_style_1.borderLeftStyle, declaration.borderLeftStyle);
88
+ this.borderTopWidth = parse(context, border_width_1.borderTopWidth, declaration.borderTopWidth);
89
+ this.borderRightWidth = parse(context, border_width_1.borderRightWidth, declaration.borderRightWidth);
90
+ this.borderBottomWidth = parse(context, border_width_1.borderBottomWidth, declaration.borderBottomWidth);
91
+ this.borderLeftWidth = parse(context, border_width_1.borderLeftWidth, declaration.borderLeftWidth);
92
+ this.boxShadow = parse(context, box_shadow_1.boxShadow, declaration.boxShadow);
93
+ this.color = parse(context, color_1.color, declaration.color);
94
+ this.direction = parse(context, direction_1.direction, declaration.direction);
95
+ this.display = parse(context, display_1.display, declaration.display);
96
+ this.float = parse(context, float_1.float, declaration.cssFloat);
97
+ this.fontFamily = parse(context, font_family_1.fontFamily, declaration.fontFamily);
98
+ this.fontSize = parse(context, font_size_1.fontSize, declaration.fontSize);
99
+ this.fontStyle = parse(context, font_style_1.fontStyle, declaration.fontStyle);
100
+ this.fontVariant = parse(context, font_variant_1.fontVariant, declaration.fontVariant);
101
+ this.fontWeight = parse(context, font_weight_1.fontWeight, declaration.fontWeight);
102
+ this.letterSpacing = parse(context, letter_spacing_1.letterSpacing, declaration.letterSpacing);
103
+ this.lineBreak = parse(context, line_break_1.lineBreak, declaration.lineBreak);
104
+ this.lineHeight = parse(context, line_height_1.lineHeight, declaration.lineHeight);
105
+ this.listStyleImage = parse(context, list_style_image_1.listStyleImage, declaration.listStyleImage);
106
+ this.listStylePosition = parse(context, list_style_position_1.listStylePosition, declaration.listStylePosition);
107
+ this.listStyleType = parse(context, list_style_type_1.listStyleType, declaration.listStyleType);
108
+ this.marginTop = parse(context, margin_1.marginTop, declaration.marginTop);
109
+ this.marginRight = parse(context, margin_1.marginRight, declaration.marginRight);
110
+ this.marginBottom = parse(context, margin_1.marginBottom, declaration.marginBottom);
111
+ this.marginLeft = parse(context, margin_1.marginLeft, declaration.marginLeft);
112
+ this.opacity = parse(context, opacity_1.opacity, declaration.opacity);
113
+ var overflowTuple = parse(context, overflow_1.overflow, declaration.overflow);
114
+ this.overflowX = overflowTuple[0];
115
+ this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];
116
+ this.overflowWrap = parse(context, overflow_wrap_1.overflowWrap, declaration.overflowWrap);
117
+ this.paddingTop = parse(context, padding_1.paddingTop, declaration.paddingTop);
118
+ this.paddingRight = parse(context, padding_1.paddingRight, declaration.paddingRight);
119
+ this.paddingBottom = parse(context, padding_1.paddingBottom, declaration.paddingBottom);
120
+ this.paddingLeft = parse(context, padding_1.paddingLeft, declaration.paddingLeft);
121
+ this.paintOrder = parse(context, paint_order_1.paintOrder, declaration.paintOrder);
122
+ this.position = parse(context, position_1.position, declaration.position);
123
+ this.textAlign = parse(context, text_align_1.textAlign, declaration.textAlign);
124
+ this.textDecorationColor = parse(context, text_decoration_color_1.textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);
125
+ this.textDecorationLine = parse(context, text_decoration_line_1.textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);
126
+ this.textShadow = parse(context, text_shadow_1.textShadow, declaration.textShadow);
127
+ this.textTransform = parse(context, text_transform_1.textTransform, declaration.textTransform);
128
+ this.transform = parse(context, transform_1.transform, declaration.transform);
129
+ this.transformOrigin = parse(context, transform_origin_1.transformOrigin, declaration.transformOrigin);
130
+ this.visibility = parse(context, visibility_1.visibility, declaration.visibility);
131
+ this.webkitTextStrokeColor = parse(context, webkit_text_stroke_color_1.webkitTextStrokeColor, declaration.webkitTextStrokeColor);
132
+ this.webkitTextStrokeWidth = parse(context, webkit_text_stroke_width_1.webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);
133
+ this.wordBreak = parse(context, word_break_1.wordBreak, declaration.wordBreak);
134
+ this.zIndex = parse(context, z_index_1.zIndex, declaration.zIndex);
135
+ this.objectFit = parse(context, object_fit_1.objectFit, declaration.objectFit);
136
+ }
137
+ CSSParsedDeclaration.prototype.isVisible = function () {
138
+ return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;
139
+ };
140
+ CSSParsedDeclaration.prototype.isTransparent = function () {
141
+ return color_2.isTransparent(this.backgroundColor);
142
+ };
143
+ CSSParsedDeclaration.prototype.isTransformed = function () {
144
+ return this.transform !== null;
145
+ };
146
+ CSSParsedDeclaration.prototype.isPositioned = function () {
147
+ return this.position !== 0 /* STATIC */;
148
+ };
149
+ CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {
150
+ return this.isPositioned() && !this.zIndex.auto;
151
+ };
152
+ CSSParsedDeclaration.prototype.isFloating = function () {
153
+ return this.float !== 0 /* NONE */;
154
+ };
155
+ CSSParsedDeclaration.prototype.isInlineLevel = function () {
156
+ return (bitwise_1.contains(this.display, 4 /* INLINE */) ||
157
+ bitwise_1.contains(this.display, 33554432 /* INLINE_BLOCK */) ||
158
+ bitwise_1.contains(this.display, 268435456 /* INLINE_FLEX */) ||
159
+ bitwise_1.contains(this.display, 536870912 /* INLINE_GRID */) ||
160
+ bitwise_1.contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||
161
+ bitwise_1.contains(this.display, 134217728 /* INLINE_TABLE */));
162
+ };
163
+ return CSSParsedDeclaration;
164
+ }());
165
+ exports.CSSParsedDeclaration = CSSParsedDeclaration;
166
+ var CSSParsedPseudoDeclaration = /** @class */ (function () {
167
+ function CSSParsedPseudoDeclaration(context, declaration) {
168
+ this.content = parse(context, content_1.content, declaration.content);
169
+ this.quotes = parse(context, quotes_1.quotes, declaration.quotes);
170
+ }
171
+ return CSSParsedPseudoDeclaration;
172
+ }());
173
+ exports.CSSParsedPseudoDeclaration = CSSParsedPseudoDeclaration;
174
+ var CSSParsedCounterDeclaration = /** @class */ (function () {
175
+ function CSSParsedCounterDeclaration(context, declaration) {
176
+ this.counterIncrement = parse(context, counter_increment_1.counterIncrement, declaration.counterIncrement);
177
+ this.counterReset = parse(context, counter_reset_1.counterReset, declaration.counterReset);
178
+ }
179
+ return CSSParsedCounterDeclaration;
180
+ }());
181
+ exports.CSSParsedCounterDeclaration = CSSParsedCounterDeclaration;
182
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
+ var parse = function (context, descriptor, style) {
184
+ var tokenizer = new tokenizer_1.Tokenizer();
185
+ var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;
186
+ tokenizer.write(value);
187
+ var parser = new parser_1.Parser(tokenizer.read());
188
+ switch (descriptor.type) {
189
+ case 2 /* IDENT_VALUE */:
190
+ var token = parser.parseComponentValue();
191
+ return descriptor.parse(context, parser_1.isIdentToken(token) ? token.value : descriptor.initialValue);
192
+ case 0 /* VALUE */:
193
+ return descriptor.parse(context, parser.parseComponentValue());
194
+ case 1 /* LIST */:
195
+ return descriptor.parse(context, parser.parseComponentValues());
196
+ case 4 /* TOKEN_VALUE */:
197
+ return parser.parseComponentValue();
198
+ case 3 /* TYPE_VALUE */:
199
+ switch (descriptor.format) {
200
+ case 'angle':
201
+ return angle_1.angle.parse(context, parser.parseComponentValue());
202
+ case 'color':
203
+ return color_2.color.parse(context, parser.parseComponentValue());
204
+ case 'image':
205
+ return image_1.image.parse(context, parser.parseComponentValue());
206
+ case 'length':
207
+ var length_2 = parser.parseComponentValue();
208
+ return length_1.isLength(length_2) ? length_2 : length_percentage_1.ZERO_LENGTH;
209
+ case 'length-percentage':
210
+ var value_1 = parser.parseComponentValue();
211
+ return length_percentage_1.isLengthPercentage(value_1) ? value_1 : length_percentage_1.ZERO_LENGTH;
212
+ case 'time':
213
+ return time_1.time.parse(context, parser.parseComponentValue());
214
+ }
215
+ break;
216
+ }
217
+ };
218
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/css/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseBounds = exports.Bounds = void 0;
4
+ exports.Bounds = jest.requireActual('../bounds').Bounds;
5
+ var parseBounds = function () {
6
+ return new exports.Bounds(0, 0, 200, 50);
7
+ };
8
+ exports.parseBounds = parseBounds;
9
+ //# sourceMappingURL=bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounds.js","sourceRoot":"","sources":["../../../../../src/css/layout/__mocks__/bounds.ts"],"names":[],"mappings":";;;AAAc,QAAA,MAAM,GAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAC;AACjD,IAAM,WAAW,GAAG;IACvB,OAAO,IAAI,cAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDocumentSize = exports.parseBounds = exports.Bounds = void 0;
4
+ var Bounds = /** @class */ (function () {
5
+ function Bounds(left, top, width, height) {
6
+ this.left = left;
7
+ this.top = top;
8
+ this.width = width;
9
+ this.height = height;
10
+ }
11
+ Bounds.prototype.add = function (x, y, w, h) {
12
+ return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);
13
+ };
14
+ Bounds.fromClientRect = function (context, clientRect) {
15
+ return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);
16
+ };
17
+ Bounds.fromDOMRectList = function (context, domRectList) {
18
+ var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });
19
+ return domRect
20
+ ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)
21
+ : Bounds.EMPTY;
22
+ };
23
+ Bounds.EMPTY = new Bounds(0, 0, 0, 0);
24
+ return Bounds;
25
+ }());
26
+ exports.Bounds = Bounds;
27
+ var parseBounds = function (context, node) {
28
+ return Bounds.fromClientRect(context, node.getBoundingClientRect());
29
+ };
30
+ exports.parseBounds = parseBounds;
31
+ var parseDocumentSize = function (document) {
32
+ var body = document.body;
33
+ var documentElement = document.documentElement;
34
+ if (!body || !documentElement) {
35
+ throw new Error("Unable to get document size");
36
+ }
37
+ var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));
38
+ var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));
39
+ return new Bounds(0, 0, width, height);
40
+ };
41
+ exports.parseDocumentSize = parseDocumentSize;
42
+ //# sourceMappingURL=bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounds.js","sourceRoot":"","sources":["../../../../src/css/layout/bounds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.segmentGraphemes = exports.parseTextBounds = exports.TextBounds = void 0;
4
+ var css_line_break_1 = require("css-line-break");
5
+ var text_segmentation_1 = require("text-segmentation");
6
+ var bounds_1 = require("./bounds");
7
+ var features_1 = require("../../core/features");
8
+ var TextBounds = /** @class */ (function () {
9
+ function TextBounds(text, bounds) {
10
+ this.text = text;
11
+ this.bounds = bounds;
12
+ }
13
+ return TextBounds;
14
+ }());
15
+ exports.TextBounds = TextBounds;
16
+ var parseTextBounds = function (context, value, styles, node) {
17
+ var textList = breakText(value, styles);
18
+ var textBounds = [];
19
+ var offset = 0;
20
+ textList.forEach(function (text) {
21
+ if (styles.textDecorationLine.length || text.trim().length > 0) {
22
+ if (features_1.FEATURES.SUPPORT_RANGE_BOUNDS) {
23
+ var clientRects = createRange(node, offset, text.length).getClientRects();
24
+ if (clientRects.length > 1) {
25
+ var subSegments = exports.segmentGraphemes(text);
26
+ var subOffset_1 = 0;
27
+ subSegments.forEach(function (subSegment) {
28
+ textBounds.push(new TextBounds(subSegment, bounds_1.Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));
29
+ subOffset_1 += subSegment.length;
30
+ });
31
+ }
32
+ else {
33
+ textBounds.push(new TextBounds(text, bounds_1.Bounds.fromDOMRectList(context, clientRects)));
34
+ }
35
+ }
36
+ else {
37
+ var replacementNode = node.splitText(text.length);
38
+ textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));
39
+ node = replacementNode;
40
+ }
41
+ }
42
+ else if (!features_1.FEATURES.SUPPORT_RANGE_BOUNDS) {
43
+ node = node.splitText(text.length);
44
+ }
45
+ offset += text.length;
46
+ });
47
+ return textBounds;
48
+ };
49
+ exports.parseTextBounds = parseTextBounds;
50
+ var getWrapperBounds = function (context, node) {
51
+ var ownerDocument = node.ownerDocument;
52
+ if (ownerDocument) {
53
+ var wrapper = ownerDocument.createElement('html2canvaswrapper');
54
+ wrapper.appendChild(node.cloneNode(true));
55
+ var parentNode = node.parentNode;
56
+ if (parentNode) {
57
+ parentNode.replaceChild(wrapper, node);
58
+ var bounds = bounds_1.parseBounds(context, wrapper);
59
+ if (wrapper.firstChild) {
60
+ parentNode.replaceChild(wrapper.firstChild, wrapper);
61
+ }
62
+ return bounds;
63
+ }
64
+ }
65
+ return bounds_1.Bounds.EMPTY;
66
+ };
67
+ var createRange = function (node, offset, length) {
68
+ var ownerDocument = node.ownerDocument;
69
+ if (!ownerDocument) {
70
+ throw new Error('Node has no owner document');
71
+ }
72
+ var range = ownerDocument.createRange();
73
+ range.setStart(node, offset);
74
+ range.setEnd(node, offset + length);
75
+ return range;
76
+ };
77
+ var segmentGraphemes = function (value) {
78
+ if (features_1.FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });
81
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
+ return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });
83
+ }
84
+ return text_segmentation_1.splitGraphemes(value);
85
+ };
86
+ exports.segmentGraphemes = segmentGraphemes;
87
+ var segmentWords = function (value, styles) {
88
+ if (features_1.FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ var segmenter = new Intl.Segmenter(void 0, {
91
+ granularity: 'word'
92
+ });
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });
95
+ }
96
+ return breakWords(value, styles);
97
+ };
98
+ var breakText = function (value, styles) {
99
+ return styles.letterSpacing !== 0 ? exports.segmentGraphemes(value) : segmentWords(value, styles);
100
+ };
101
+ // https://drafts.csswg.org/css-text/#word-separator
102
+ var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];
103
+ var breakWords = function (str, styles) {
104
+ var breaker = css_line_break_1.LineBreaker(str, {
105
+ lineBreak: styles.lineBreak,
106
+ wordBreak: styles.overflowWrap === "break-word" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak
107
+ });
108
+ var words = [];
109
+ var bk;
110
+ var _loop_1 = function () {
111
+ if (bk.value) {
112
+ var value = bk.value.slice();
113
+ var codePoints = css_line_break_1.toCodePoints(value);
114
+ var word_1 = '';
115
+ codePoints.forEach(function (codePoint) {
116
+ if (wordSeparators.indexOf(codePoint) === -1) {
117
+ word_1 += css_line_break_1.fromCodePoint(codePoint);
118
+ }
119
+ else {
120
+ if (word_1.length) {
121
+ words.push(word_1);
122
+ }
123
+ words.push(css_line_break_1.fromCodePoint(codePoint));
124
+ word_1 = '';
125
+ }
126
+ });
127
+ if (word_1.length) {
128
+ words.push(word_1);
129
+ }
130
+ }
131
+ };
132
+ while (!(bk = breaker.next()).done) {
133
+ _loop_1();
134
+ }
135
+ return words;
136
+ };
137
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/css/layout/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert_1 = require("assert");
4
+ var parser_1 = require("../../syntax/parser");
5
+ var background_image_1 = require("../background-image");
6
+ var color_1 = require("../../types/color");
7
+ var angle_1 = require("../../types/angle");
8
+ jest.mock('../../../core/context');
9
+ var context_1 = require("../../../core/context");
10
+ jest.mock('../../../core/features');
11
+ var backgroundImageParse = function (context, value) {
12
+ return background_image_1.backgroundImage.parse(context, parser_1.Parser.parseValues(value));
13
+ };
14
+ describe('property-descriptors', function () {
15
+ var context;
16
+ beforeEach(function () {
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ context = new context_1.Context({}, {});
19
+ });
20
+ describe('background-image', function () {
21
+ it('none', function () {
22
+ assert_1.deepStrictEqual(backgroundImageParse(context, 'none'), []);
23
+ expect(context.cache.addImage).not.toHaveBeenCalled();
24
+ });
25
+ it('url(test.jpg), url(test2.jpg)', function () {
26
+ assert_1.deepStrictEqual(backgroundImageParse(context, 'url(http://example.com/test.jpg), url(http://example.com/test2.jpg)'), [
27
+ { url: 'http://example.com/test.jpg', type: 0 /* URL */ },
28
+ { url: 'http://example.com/test2.jpg', type: 0 /* URL */ }
29
+ ]);
30
+ expect(context.cache.addImage).toHaveBeenCalledWith('http://example.com/test.jpg');
31
+ expect(context.cache.addImage).toHaveBeenCalledWith('http://example.com/test2.jpg');
32
+ });
33
+ it("linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)), url('https://html2canvas.hertzen.com')", function () {
34
+ return assert_1.deepStrictEqual(backgroundImageParse(context, "linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)), url('https://html2canvas.hertzen.com')"), [
35
+ {
36
+ angle: angle_1.deg(180),
37
+ type: 1 /* LINEAR_GRADIENT */,
38
+ stops: [
39
+ { color: color_1.pack(255, 255, 0, 0.5), stop: null },
40
+ { color: color_1.pack(0, 0, 255, 0.5), stop: null }
41
+ ]
42
+ },
43
+ { url: 'https://html2canvas.hertzen.com', type: 0 /* URL */ }
44
+ ]);
45
+ });
46
+ });
47
+ });
48
+ //# sourceMappingURL=background-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-tests.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/background-tests.ts"],"names":[],"mappings":";;AAAA,iCAAuC;AACvC,8CAA2C;AAC3C,wDAAoD;AAEpD,2CAAuC;AACvC,2CAAsC;AAEtC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnC,iDAA8C;AAE9C,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,IAAM,oBAAoB,GAAG,UAAC,OAAgB,EAAE,KAAa;IACzD,OAAA,kCAAe,CAAC,KAAK,CAAC,OAAO,EAAE,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAAzD,CAAyD,CAAC;AAE9D,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,IAAI,OAAgB,CAAC;IACrB,UAAU,CAAC;QACP,8DAA8D;QAC9D,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAS,EAAE,EAAS,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,kBAAkB,EAAE;QACzB,EAAE,CAAC,MAAM,EAAE;YACP,wBAAe,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE;YAChC,wBAAe,CACX,oBAAoB,CAAC,OAAO,EAAE,qEAAqE,CAAC,EACpG;gBACI,EAAC,GAAG,EAAE,6BAA6B,EAAE,IAAI,aAAkB,EAAC;gBAC5D,EAAC,GAAG,EAAE,8BAA8B,EAAE,IAAI,aAAkB,EAAC;aAChE,CACJ,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;YACnF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4GAA4G,EAAE;YAC7G,OAAA,wBAAe,CACX,oBAAoB,CAChB,OAAO,EACP,4GAA4G,CAC/G,EACD;gBACI;oBACI,KAAK,EAAE,WAAG,CAAC,GAAG,CAAC;oBACf,IAAI,yBAA8B;oBAClC,KAAK,EAAE;wBACH,EAAC,KAAK,EAAE,YAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC;wBAC3C,EAAC,KAAK,EAAE,YAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC;qBAC5C;iBACJ;gBACD,EAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,aAAkB,EAAC;aACnE,CACJ;QAhBD,CAgBC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert_1 = require("assert");
4
+ var parser_1 = require("../../syntax/parser");
5
+ var font_family_1 = require("../font-family");
6
+ var fontFamilyParse = function (value) { return font_family_1.fontFamily.parse({}, parser_1.Parser.parseValues(value)); };
7
+ describe('property-descriptors', function () {
8
+ describe('font-family', function () {
9
+ it('sans-serif', function () { return assert_1.deepEqual(fontFamilyParse('sans-serif'), ['sans-serif']); });
10
+ it('great fonts 40 library', function () {
11
+ return assert_1.deepEqual(fontFamilyParse('great fonts 40 library'), ["'great fonts 40 library'"]);
12
+ });
13
+ it('preferred font, "quoted fallback font", font', function () {
14
+ return assert_1.deepEqual(fontFamilyParse('preferred font, "quoted fallback font", font'), [
15
+ "'preferred font'",
16
+ "'quoted fallback font'",
17
+ 'font'
18
+ ]);
19
+ });
20
+ it("'escaping test\\'s font'", function () {
21
+ return assert_1.deepEqual(fontFamilyParse("'escaping test\\'s font'"), ["'escaping test's font'"]);
22
+ });
23
+ });
24
+ });
25
+ //# sourceMappingURL=font-family.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-family.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/font-family.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,8CAA2C;AAC3C,8CAA0C;AAG1C,IAAM,eAAe,GAAG,UAAC,KAAa,IAAK,OAAA,wBAAU,CAAC,KAAK,CAAC,EAAa,EAAE,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAA1D,CAA0D,CAAC;AAEtG,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,QAAQ,CAAC,aAAa,EAAE;QACpB,EAAE,CAAC,YAAY,EAAE,cAAM,OAAA,kBAAS,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;QAEjF,EAAE,CAAC,wBAAwB,EAAE;YACzB,OAAA,kBAAS,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAAlF,CAAkF,CAAC,CAAC;QAExF,EAAE,CAAC,8CAA8C,EAAE;YAC/C,OAAA,kBAAS,CAAC,eAAe,CAAC,8CAA8C,CAAC,EAAE;gBACvE,kBAAkB;gBAClB,wBAAwB;gBACxB,MAAM;aACT,CAAC;QAJF,CAIE,CAAC,CAAC;QAER,EAAE,CAAC,0BAA0B,EAAE;YAC3B,OAAA,kBAAS,CAAC,eAAe,CAAC,0BAA0B,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAAlF,CAAkF,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}