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,630 @@
1
+ "use strict";
2
+ // https://www.w3.org/TR/css-syntax-3
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Tokenizer = exports.EOF_TOKEN = exports.FLAG_NUMBER = exports.FLAG_INTEGER = exports.FLAG_ID = exports.FLAG_UNRESTRICTED = void 0;
5
+ var css_line_break_1 = require("css-line-break");
6
+ exports.FLAG_UNRESTRICTED = 1 << 0;
7
+ exports.FLAG_ID = 1 << 1;
8
+ exports.FLAG_INTEGER = 1 << 2;
9
+ exports.FLAG_NUMBER = 1 << 3;
10
+ var LINE_FEED = 0x000a;
11
+ var SOLIDUS = 0x002f;
12
+ var REVERSE_SOLIDUS = 0x005c;
13
+ var CHARACTER_TABULATION = 0x0009;
14
+ var SPACE = 0x0020;
15
+ var QUOTATION_MARK = 0x0022;
16
+ var EQUALS_SIGN = 0x003d;
17
+ var NUMBER_SIGN = 0x0023;
18
+ var DOLLAR_SIGN = 0x0024;
19
+ var PERCENTAGE_SIGN = 0x0025;
20
+ var APOSTROPHE = 0x0027;
21
+ var LEFT_PARENTHESIS = 0x0028;
22
+ var RIGHT_PARENTHESIS = 0x0029;
23
+ var LOW_LINE = 0x005f;
24
+ var HYPHEN_MINUS = 0x002d;
25
+ var EXCLAMATION_MARK = 0x0021;
26
+ var LESS_THAN_SIGN = 0x003c;
27
+ var GREATER_THAN_SIGN = 0x003e;
28
+ var COMMERCIAL_AT = 0x0040;
29
+ var LEFT_SQUARE_BRACKET = 0x005b;
30
+ var RIGHT_SQUARE_BRACKET = 0x005d;
31
+ var CIRCUMFLEX_ACCENT = 0x003d;
32
+ var LEFT_CURLY_BRACKET = 0x007b;
33
+ var QUESTION_MARK = 0x003f;
34
+ var RIGHT_CURLY_BRACKET = 0x007d;
35
+ var VERTICAL_LINE = 0x007c;
36
+ var TILDE = 0x007e;
37
+ var CONTROL = 0x0080;
38
+ var REPLACEMENT_CHARACTER = 0xfffd;
39
+ var ASTERISK = 0x002a;
40
+ var PLUS_SIGN = 0x002b;
41
+ var COMMA = 0x002c;
42
+ var COLON = 0x003a;
43
+ var SEMICOLON = 0x003b;
44
+ var FULL_STOP = 0x002e;
45
+ var NULL = 0x0000;
46
+ var BACKSPACE = 0x0008;
47
+ var LINE_TABULATION = 0x000b;
48
+ var SHIFT_OUT = 0x000e;
49
+ var INFORMATION_SEPARATOR_ONE = 0x001f;
50
+ var DELETE = 0x007f;
51
+ var EOF = -1;
52
+ var ZERO = 0x0030;
53
+ var a = 0x0061;
54
+ var e = 0x0065;
55
+ var f = 0x0066;
56
+ var u = 0x0075;
57
+ var z = 0x007a;
58
+ var A = 0x0041;
59
+ var E = 0x0045;
60
+ var F = 0x0046;
61
+ var U = 0x0055;
62
+ var Z = 0x005a;
63
+ var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };
64
+ var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };
65
+ var isHex = function (codePoint) {
66
+ return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);
67
+ };
68
+ var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };
69
+ var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };
70
+ var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };
71
+ var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };
72
+ var isWhiteSpace = function (codePoint) {
73
+ return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;
74
+ };
75
+ var isNameStartCodePoint = function (codePoint) {
76
+ return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;
77
+ };
78
+ var isNameCodePoint = function (codePoint) {
79
+ return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;
80
+ };
81
+ var isNonPrintableCodePoint = function (codePoint) {
82
+ return ((codePoint >= NULL && codePoint <= BACKSPACE) ||
83
+ codePoint === LINE_TABULATION ||
84
+ (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||
85
+ codePoint === DELETE);
86
+ };
87
+ var isValidEscape = function (c1, c2) {
88
+ if (c1 !== REVERSE_SOLIDUS) {
89
+ return false;
90
+ }
91
+ return c2 !== LINE_FEED;
92
+ };
93
+ var isIdentifierStart = function (c1, c2, c3) {
94
+ if (c1 === HYPHEN_MINUS) {
95
+ return isNameStartCodePoint(c2) || isValidEscape(c2, c3);
96
+ }
97
+ else if (isNameStartCodePoint(c1)) {
98
+ return true;
99
+ }
100
+ else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {
101
+ return true;
102
+ }
103
+ return false;
104
+ };
105
+ var isNumberStart = function (c1, c2, c3) {
106
+ if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {
107
+ if (isDigit(c2)) {
108
+ return true;
109
+ }
110
+ return c2 === FULL_STOP && isDigit(c3);
111
+ }
112
+ if (c1 === FULL_STOP) {
113
+ return isDigit(c2);
114
+ }
115
+ return isDigit(c1);
116
+ };
117
+ var stringToNumber = function (codePoints) {
118
+ var c = 0;
119
+ var sign = 1;
120
+ if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
121
+ if (codePoints[c] === HYPHEN_MINUS) {
122
+ sign = -1;
123
+ }
124
+ c++;
125
+ }
126
+ var integers = [];
127
+ while (isDigit(codePoints[c])) {
128
+ integers.push(codePoints[c++]);
129
+ }
130
+ var int = integers.length ? parseInt(css_line_break_1.fromCodePoint.apply(void 0, integers), 10) : 0;
131
+ if (codePoints[c] === FULL_STOP) {
132
+ c++;
133
+ }
134
+ var fraction = [];
135
+ while (isDigit(codePoints[c])) {
136
+ fraction.push(codePoints[c++]);
137
+ }
138
+ var fracd = fraction.length;
139
+ var frac = fracd ? parseInt(css_line_break_1.fromCodePoint.apply(void 0, fraction), 10) : 0;
140
+ if (codePoints[c] === E || codePoints[c] === e) {
141
+ c++;
142
+ }
143
+ var expsign = 1;
144
+ if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
145
+ if (codePoints[c] === HYPHEN_MINUS) {
146
+ expsign = -1;
147
+ }
148
+ c++;
149
+ }
150
+ var exponent = [];
151
+ while (isDigit(codePoints[c])) {
152
+ exponent.push(codePoints[c++]);
153
+ }
154
+ var exp = exponent.length ? parseInt(css_line_break_1.fromCodePoint.apply(void 0, exponent), 10) : 0;
155
+ return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);
156
+ };
157
+ var LEFT_PARENTHESIS_TOKEN = {
158
+ type: 2 /* LEFT_PARENTHESIS_TOKEN */
159
+ };
160
+ var RIGHT_PARENTHESIS_TOKEN = {
161
+ type: 3 /* RIGHT_PARENTHESIS_TOKEN */
162
+ };
163
+ var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };
164
+ var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };
165
+ var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };
166
+ var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };
167
+ var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };
168
+ var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };
169
+ var LEFT_CURLY_BRACKET_TOKEN = {
170
+ type: 11 /* LEFT_CURLY_BRACKET_TOKEN */
171
+ };
172
+ var RIGHT_CURLY_BRACKET_TOKEN = {
173
+ type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */
174
+ };
175
+ var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };
176
+ var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };
177
+ var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };
178
+ var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };
179
+ var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };
180
+ var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };
181
+ var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };
182
+ var LEFT_SQUARE_BRACKET_TOKEN = {
183
+ type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */
184
+ };
185
+ var RIGHT_SQUARE_BRACKET_TOKEN = {
186
+ type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */
187
+ };
188
+ var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };
189
+ exports.EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };
190
+ var Tokenizer = /** @class */ (function () {
191
+ function Tokenizer() {
192
+ this._value = [];
193
+ }
194
+ Tokenizer.prototype.write = function (chunk) {
195
+ this._value = this._value.concat(css_line_break_1.toCodePoints(chunk));
196
+ };
197
+ Tokenizer.prototype.read = function () {
198
+ var tokens = [];
199
+ var token = this.consumeToken();
200
+ while (token !== exports.EOF_TOKEN) {
201
+ tokens.push(token);
202
+ token = this.consumeToken();
203
+ }
204
+ return tokens;
205
+ };
206
+ Tokenizer.prototype.consumeToken = function () {
207
+ var codePoint = this.consumeCodePoint();
208
+ switch (codePoint) {
209
+ case QUOTATION_MARK:
210
+ return this.consumeStringToken(QUOTATION_MARK);
211
+ case NUMBER_SIGN:
212
+ var c1 = this.peekCodePoint(0);
213
+ var c2 = this.peekCodePoint(1);
214
+ var c3 = this.peekCodePoint(2);
215
+ if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {
216
+ var flags = isIdentifierStart(c1, c2, c3) ? exports.FLAG_ID : exports.FLAG_UNRESTRICTED;
217
+ var value = this.consumeName();
218
+ return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };
219
+ }
220
+ break;
221
+ case DOLLAR_SIGN:
222
+ if (this.peekCodePoint(0) === EQUALS_SIGN) {
223
+ this.consumeCodePoint();
224
+ return SUFFIX_MATCH_TOKEN;
225
+ }
226
+ break;
227
+ case APOSTROPHE:
228
+ return this.consumeStringToken(APOSTROPHE);
229
+ case LEFT_PARENTHESIS:
230
+ return LEFT_PARENTHESIS_TOKEN;
231
+ case RIGHT_PARENTHESIS:
232
+ return RIGHT_PARENTHESIS_TOKEN;
233
+ case ASTERISK:
234
+ if (this.peekCodePoint(0) === EQUALS_SIGN) {
235
+ this.consumeCodePoint();
236
+ return SUBSTRING_MATCH_TOKEN;
237
+ }
238
+ break;
239
+ case PLUS_SIGN:
240
+ if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {
241
+ this.reconsumeCodePoint(codePoint);
242
+ return this.consumeNumericToken();
243
+ }
244
+ break;
245
+ case COMMA:
246
+ return COMMA_TOKEN;
247
+ case HYPHEN_MINUS:
248
+ var e1 = codePoint;
249
+ var e2 = this.peekCodePoint(0);
250
+ var e3 = this.peekCodePoint(1);
251
+ if (isNumberStart(e1, e2, e3)) {
252
+ this.reconsumeCodePoint(codePoint);
253
+ return this.consumeNumericToken();
254
+ }
255
+ if (isIdentifierStart(e1, e2, e3)) {
256
+ this.reconsumeCodePoint(codePoint);
257
+ return this.consumeIdentLikeToken();
258
+ }
259
+ if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {
260
+ this.consumeCodePoint();
261
+ this.consumeCodePoint();
262
+ return CDC_TOKEN;
263
+ }
264
+ break;
265
+ case FULL_STOP:
266
+ if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {
267
+ this.reconsumeCodePoint(codePoint);
268
+ return this.consumeNumericToken();
269
+ }
270
+ break;
271
+ case SOLIDUS:
272
+ if (this.peekCodePoint(0) === ASTERISK) {
273
+ this.consumeCodePoint();
274
+ while (true) {
275
+ var c = this.consumeCodePoint();
276
+ if (c === ASTERISK) {
277
+ c = this.consumeCodePoint();
278
+ if (c === SOLIDUS) {
279
+ return this.consumeToken();
280
+ }
281
+ }
282
+ if (c === EOF) {
283
+ return this.consumeToken();
284
+ }
285
+ }
286
+ }
287
+ break;
288
+ case COLON:
289
+ return COLON_TOKEN;
290
+ case SEMICOLON:
291
+ return SEMICOLON_TOKEN;
292
+ case LESS_THAN_SIGN:
293
+ if (this.peekCodePoint(0) === EXCLAMATION_MARK &&
294
+ this.peekCodePoint(1) === HYPHEN_MINUS &&
295
+ this.peekCodePoint(2) === HYPHEN_MINUS) {
296
+ this.consumeCodePoint();
297
+ this.consumeCodePoint();
298
+ return CDO_TOKEN;
299
+ }
300
+ break;
301
+ case COMMERCIAL_AT:
302
+ var a1 = this.peekCodePoint(0);
303
+ var a2 = this.peekCodePoint(1);
304
+ var a3 = this.peekCodePoint(2);
305
+ if (isIdentifierStart(a1, a2, a3)) {
306
+ var value = this.consumeName();
307
+ return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };
308
+ }
309
+ break;
310
+ case LEFT_SQUARE_BRACKET:
311
+ return LEFT_SQUARE_BRACKET_TOKEN;
312
+ case REVERSE_SOLIDUS:
313
+ if (isValidEscape(codePoint, this.peekCodePoint(0))) {
314
+ this.reconsumeCodePoint(codePoint);
315
+ return this.consumeIdentLikeToken();
316
+ }
317
+ break;
318
+ case RIGHT_SQUARE_BRACKET:
319
+ return RIGHT_SQUARE_BRACKET_TOKEN;
320
+ case CIRCUMFLEX_ACCENT:
321
+ if (this.peekCodePoint(0) === EQUALS_SIGN) {
322
+ this.consumeCodePoint();
323
+ return PREFIX_MATCH_TOKEN;
324
+ }
325
+ break;
326
+ case LEFT_CURLY_BRACKET:
327
+ return LEFT_CURLY_BRACKET_TOKEN;
328
+ case RIGHT_CURLY_BRACKET:
329
+ return RIGHT_CURLY_BRACKET_TOKEN;
330
+ case u:
331
+ case U:
332
+ var u1 = this.peekCodePoint(0);
333
+ var u2 = this.peekCodePoint(1);
334
+ if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {
335
+ this.consumeCodePoint();
336
+ this.consumeUnicodeRangeToken();
337
+ }
338
+ this.reconsumeCodePoint(codePoint);
339
+ return this.consumeIdentLikeToken();
340
+ case VERTICAL_LINE:
341
+ if (this.peekCodePoint(0) === EQUALS_SIGN) {
342
+ this.consumeCodePoint();
343
+ return DASH_MATCH_TOKEN;
344
+ }
345
+ if (this.peekCodePoint(0) === VERTICAL_LINE) {
346
+ this.consumeCodePoint();
347
+ return COLUMN_TOKEN;
348
+ }
349
+ break;
350
+ case TILDE:
351
+ if (this.peekCodePoint(0) === EQUALS_SIGN) {
352
+ this.consumeCodePoint();
353
+ return INCLUDE_MATCH_TOKEN;
354
+ }
355
+ break;
356
+ case EOF:
357
+ return exports.EOF_TOKEN;
358
+ }
359
+ if (isWhiteSpace(codePoint)) {
360
+ this.consumeWhiteSpace();
361
+ return WHITESPACE_TOKEN;
362
+ }
363
+ if (isDigit(codePoint)) {
364
+ this.reconsumeCodePoint(codePoint);
365
+ return this.consumeNumericToken();
366
+ }
367
+ if (isNameStartCodePoint(codePoint)) {
368
+ this.reconsumeCodePoint(codePoint);
369
+ return this.consumeIdentLikeToken();
370
+ }
371
+ return { type: 6 /* DELIM_TOKEN */, value: css_line_break_1.fromCodePoint(codePoint) };
372
+ };
373
+ Tokenizer.prototype.consumeCodePoint = function () {
374
+ var value = this._value.shift();
375
+ return typeof value === 'undefined' ? -1 : value;
376
+ };
377
+ Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {
378
+ this._value.unshift(codePoint);
379
+ };
380
+ Tokenizer.prototype.peekCodePoint = function (delta) {
381
+ if (delta >= this._value.length) {
382
+ return -1;
383
+ }
384
+ return this._value[delta];
385
+ };
386
+ Tokenizer.prototype.consumeUnicodeRangeToken = function () {
387
+ var digits = [];
388
+ var codePoint = this.consumeCodePoint();
389
+ while (isHex(codePoint) && digits.length < 6) {
390
+ digits.push(codePoint);
391
+ codePoint = this.consumeCodePoint();
392
+ }
393
+ var questionMarks = false;
394
+ while (codePoint === QUESTION_MARK && digits.length < 6) {
395
+ digits.push(codePoint);
396
+ codePoint = this.consumeCodePoint();
397
+ questionMarks = true;
398
+ }
399
+ if (questionMarks) {
400
+ var start_1 = parseInt(css_line_break_1.fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);
401
+ var end = parseInt(css_line_break_1.fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);
402
+ return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };
403
+ }
404
+ var start = parseInt(css_line_break_1.fromCodePoint.apply(void 0, digits), 16);
405
+ if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {
406
+ this.consumeCodePoint();
407
+ codePoint = this.consumeCodePoint();
408
+ var endDigits = [];
409
+ while (isHex(codePoint) && endDigits.length < 6) {
410
+ endDigits.push(codePoint);
411
+ codePoint = this.consumeCodePoint();
412
+ }
413
+ var end = parseInt(css_line_break_1.fromCodePoint.apply(void 0, endDigits), 16);
414
+ return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };
415
+ }
416
+ else {
417
+ return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };
418
+ }
419
+ };
420
+ Tokenizer.prototype.consumeIdentLikeToken = function () {
421
+ var value = this.consumeName();
422
+ if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {
423
+ this.consumeCodePoint();
424
+ return this.consumeUrlToken();
425
+ }
426
+ else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {
427
+ this.consumeCodePoint();
428
+ return { type: 19 /* FUNCTION_TOKEN */, value: value };
429
+ }
430
+ return { type: 20 /* IDENT_TOKEN */, value: value };
431
+ };
432
+ Tokenizer.prototype.consumeUrlToken = function () {
433
+ var value = [];
434
+ this.consumeWhiteSpace();
435
+ if (this.peekCodePoint(0) === EOF) {
436
+ return { type: 22 /* URL_TOKEN */, value: '' };
437
+ }
438
+ var next = this.peekCodePoint(0);
439
+ if (next === APOSTROPHE || next === QUOTATION_MARK) {
440
+ var stringToken = this.consumeStringToken(this.consumeCodePoint());
441
+ if (stringToken.type === 0 /* STRING_TOKEN */) {
442
+ this.consumeWhiteSpace();
443
+ if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {
444
+ this.consumeCodePoint();
445
+ return { type: 22 /* URL_TOKEN */, value: stringToken.value };
446
+ }
447
+ }
448
+ this.consumeBadUrlRemnants();
449
+ return BAD_URL_TOKEN;
450
+ }
451
+ while (true) {
452
+ var codePoint = this.consumeCodePoint();
453
+ if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {
454
+ return { type: 22 /* URL_TOKEN */, value: css_line_break_1.fromCodePoint.apply(void 0, value) };
455
+ }
456
+ else if (isWhiteSpace(codePoint)) {
457
+ this.consumeWhiteSpace();
458
+ if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {
459
+ this.consumeCodePoint();
460
+ return { type: 22 /* URL_TOKEN */, value: css_line_break_1.fromCodePoint.apply(void 0, value) };
461
+ }
462
+ this.consumeBadUrlRemnants();
463
+ return BAD_URL_TOKEN;
464
+ }
465
+ else if (codePoint === QUOTATION_MARK ||
466
+ codePoint === APOSTROPHE ||
467
+ codePoint === LEFT_PARENTHESIS ||
468
+ isNonPrintableCodePoint(codePoint)) {
469
+ this.consumeBadUrlRemnants();
470
+ return BAD_URL_TOKEN;
471
+ }
472
+ else if (codePoint === REVERSE_SOLIDUS) {
473
+ if (isValidEscape(codePoint, this.peekCodePoint(0))) {
474
+ value.push(this.consumeEscapedCodePoint());
475
+ }
476
+ else {
477
+ this.consumeBadUrlRemnants();
478
+ return BAD_URL_TOKEN;
479
+ }
480
+ }
481
+ else {
482
+ value.push(codePoint);
483
+ }
484
+ }
485
+ };
486
+ Tokenizer.prototype.consumeWhiteSpace = function () {
487
+ while (isWhiteSpace(this.peekCodePoint(0))) {
488
+ this.consumeCodePoint();
489
+ }
490
+ };
491
+ Tokenizer.prototype.consumeBadUrlRemnants = function () {
492
+ while (true) {
493
+ var codePoint = this.consumeCodePoint();
494
+ if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {
495
+ return;
496
+ }
497
+ if (isValidEscape(codePoint, this.peekCodePoint(0))) {
498
+ this.consumeEscapedCodePoint();
499
+ }
500
+ }
501
+ };
502
+ Tokenizer.prototype.consumeStringSlice = function (count) {
503
+ var SLICE_STACK_SIZE = 50000;
504
+ var value = '';
505
+ while (count > 0) {
506
+ var amount = Math.min(SLICE_STACK_SIZE, count);
507
+ value += css_line_break_1.fromCodePoint.apply(void 0, this._value.splice(0, amount));
508
+ count -= amount;
509
+ }
510
+ this._value.shift();
511
+ return value;
512
+ };
513
+ Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {
514
+ var value = '';
515
+ var i = 0;
516
+ do {
517
+ var codePoint = this._value[i];
518
+ if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {
519
+ value += this.consumeStringSlice(i);
520
+ return { type: 0 /* STRING_TOKEN */, value: value };
521
+ }
522
+ if (codePoint === LINE_FEED) {
523
+ this._value.splice(0, i);
524
+ return BAD_STRING_TOKEN;
525
+ }
526
+ if (codePoint === REVERSE_SOLIDUS) {
527
+ var next = this._value[i + 1];
528
+ if (next !== EOF && next !== undefined) {
529
+ if (next === LINE_FEED) {
530
+ value += this.consumeStringSlice(i);
531
+ i = -1;
532
+ this._value.shift();
533
+ }
534
+ else if (isValidEscape(codePoint, next)) {
535
+ value += this.consumeStringSlice(i);
536
+ value += css_line_break_1.fromCodePoint(this.consumeEscapedCodePoint());
537
+ i = -1;
538
+ }
539
+ }
540
+ }
541
+ i++;
542
+ } while (true);
543
+ };
544
+ Tokenizer.prototype.consumeNumber = function () {
545
+ var repr = [];
546
+ var type = exports.FLAG_INTEGER;
547
+ var c1 = this.peekCodePoint(0);
548
+ if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {
549
+ repr.push(this.consumeCodePoint());
550
+ }
551
+ while (isDigit(this.peekCodePoint(0))) {
552
+ repr.push(this.consumeCodePoint());
553
+ }
554
+ c1 = this.peekCodePoint(0);
555
+ var c2 = this.peekCodePoint(1);
556
+ if (c1 === FULL_STOP && isDigit(c2)) {
557
+ repr.push(this.consumeCodePoint(), this.consumeCodePoint());
558
+ type = exports.FLAG_NUMBER;
559
+ while (isDigit(this.peekCodePoint(0))) {
560
+ repr.push(this.consumeCodePoint());
561
+ }
562
+ }
563
+ c1 = this.peekCodePoint(0);
564
+ c2 = this.peekCodePoint(1);
565
+ var c3 = this.peekCodePoint(2);
566
+ if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {
567
+ repr.push(this.consumeCodePoint(), this.consumeCodePoint());
568
+ type = exports.FLAG_NUMBER;
569
+ while (isDigit(this.peekCodePoint(0))) {
570
+ repr.push(this.consumeCodePoint());
571
+ }
572
+ }
573
+ return [stringToNumber(repr), type];
574
+ };
575
+ Tokenizer.prototype.consumeNumericToken = function () {
576
+ var _a = this.consumeNumber(), number = _a[0], flags = _a[1];
577
+ var c1 = this.peekCodePoint(0);
578
+ var c2 = this.peekCodePoint(1);
579
+ var c3 = this.peekCodePoint(2);
580
+ if (isIdentifierStart(c1, c2, c3)) {
581
+ var unit = this.consumeName();
582
+ return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };
583
+ }
584
+ if (c1 === PERCENTAGE_SIGN) {
585
+ this.consumeCodePoint();
586
+ return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };
587
+ }
588
+ return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };
589
+ };
590
+ Tokenizer.prototype.consumeEscapedCodePoint = function () {
591
+ var codePoint = this.consumeCodePoint();
592
+ if (isHex(codePoint)) {
593
+ var hex = css_line_break_1.fromCodePoint(codePoint);
594
+ while (isHex(this.peekCodePoint(0)) && hex.length < 6) {
595
+ hex += css_line_break_1.fromCodePoint(this.consumeCodePoint());
596
+ }
597
+ if (isWhiteSpace(this.peekCodePoint(0))) {
598
+ this.consumeCodePoint();
599
+ }
600
+ var hexCodePoint = parseInt(hex, 16);
601
+ if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {
602
+ return REPLACEMENT_CHARACTER;
603
+ }
604
+ return hexCodePoint;
605
+ }
606
+ if (codePoint === EOF) {
607
+ return REPLACEMENT_CHARACTER;
608
+ }
609
+ return codePoint;
610
+ };
611
+ Tokenizer.prototype.consumeName = function () {
612
+ var result = '';
613
+ while (true) {
614
+ var codePoint = this.consumeCodePoint();
615
+ if (isNameCodePoint(codePoint)) {
616
+ result += css_line_break_1.fromCodePoint(codePoint);
617
+ }
618
+ else if (isValidEscape(codePoint, this.peekCodePoint(0))) {
619
+ result += css_line_break_1.fromCodePoint(this.consumeEscapedCodePoint());
620
+ }
621
+ else {
622
+ this.reconsumeCodePoint(codePoint);
623
+ return result;
624
+ }
625
+ }
626
+ };
627
+ return Tokenizer;
628
+ }());
629
+ exports.Tokenizer = Tokenizer;
630
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../../src/css/syntax/tokenizer.ts"],"names":[],"mappings":"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"}