html2canvas-pro 2.2.4 → 2.3.1

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 (46) hide show
  1. package/dist/html2canvas-pro.cjs +11221 -0
  2. package/dist/html2canvas-pro.cjs.map +1 -0
  3. package/dist/html2canvas-pro.esm.js +2812 -2587
  4. package/dist/html2canvas-pro.esm.js.map +1 -1
  5. package/dist/html2canvas-pro.js +2812 -2587
  6. package/dist/html2canvas-pro.js.map +1 -1
  7. package/dist/html2canvas-pro.min.js +4 -5
  8. package/dist/lib/core/abort-helper.js +20 -0
  9. package/dist/lib/core/background-parser.js +41 -0
  10. package/dist/lib/core/cache-storage.js +63 -7
  11. package/dist/lib/core/config-assembler.js +88 -0
  12. package/dist/lib/core/lru-map.js +66 -0
  13. package/dist/lib/core/render-element.js +24 -103
  14. package/dist/lib/css/property-descriptors/background-position.js +1 -11
  15. package/dist/lib/css/property-descriptors/background-size.js +3 -1
  16. package/dist/lib/css/syntax/token-constants.js +214 -0
  17. package/dist/lib/css/syntax/token-singletons.js +36 -0
  18. package/dist/lib/css/syntax/token-types.js +10 -0
  19. package/dist/lib/css/syntax/tokenizer.js +175 -307
  20. package/dist/lib/css/types/length-percentage.js +63 -3
  21. package/dist/lib/dom/document-cloner.js +23 -22
  22. package/dist/lib/dom/node-parser.js +1 -21
  23. package/dist/lib/dom/slot-cloner.js +8 -8
  24. package/dist/lib/render/background.js +4 -1
  25. package/dist/lib/render/canvas/background-renderer.js +27 -39
  26. package/dist/lib/render/canvas/canvas-renderer.js +3 -3
  27. package/dist/lib/render/canvas/effects-renderer.js +94 -32
  28. package/dist/lib/render/canvas/text-renderer.js +94 -32
  29. package/dist/lib/render/stacking-context.js +12 -6
  30. package/dist/types/core/abort-helper.d.ts +12 -0
  31. package/dist/types/core/background-parser.d.ts +16 -0
  32. package/dist/types/core/cache-storage.d.ts +25 -0
  33. package/dist/types/core/config-assembler.d.ts +28 -0
  34. package/dist/types/core/lru-map.d.ts +37 -0
  35. package/dist/types/css/syntax/token-constants.d.ts +74 -0
  36. package/dist/types/css/syntax/token-singletons.d.ts +22 -0
  37. package/dist/types/css/syntax/token-types.d.ts +72 -0
  38. package/dist/types/css/syntax/tokenizer.d.ts +6 -73
  39. package/dist/types/css/types/length-percentage.d.ts +42 -1
  40. package/dist/types/dom/document-cloner.d.ts +5 -0
  41. package/dist/types/dom/node-parser.d.ts +0 -2
  42. package/dist/types/render/canvas/background-renderer.d.ts +0 -10
  43. package/dist/types/render/canvas/effects-renderer.d.ts +42 -17
  44. package/dist/types/render/canvas/text-renderer.d.ts +15 -2
  45. package/dist/types/render/stacking-context.d.ts +26 -1
  46. package/package.json +5 -7
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ // CSS tokenizer code-point constants and character-classification predicates.
3
+ // Pure functions with no runtime dependencies — usable without the Tokenizer class.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.E = exports.A = exports.z = exports.u = exports.f = exports.e = exports.a = exports.ZERO = exports.EOF = exports.DELETE = exports.INFORMATION_SEPARATOR_ONE = exports.SHIFT_OUT = exports.LINE_TABULATION = exports.BACKSPACE = exports.NULL = exports.FULL_STOP = exports.SEMICOLON = exports.COLON = exports.COMMA = exports.PLUS_SIGN = exports.ASTERISK = exports.REPLACEMENT_CHARACTER = exports.CONTROL = exports.TILDE = exports.VERTICAL_LINE = exports.RIGHT_CURLY_BRACKET = exports.QUESTION_MARK = exports.LEFT_CURLY_BRACKET = exports.CIRCUMFLEX_ACCENT = exports.RIGHT_SQUARE_BRACKET = exports.LEFT_SQUARE_BRACKET = exports.COMMERCIAL_AT = exports.GREATER_THAN_SIGN = exports.LESS_THAN_SIGN = exports.EXCLAMATION_MARK = exports.HYPHEN_MINUS = exports.LOW_LINE = exports.RIGHT_PARENTHESIS = exports.LEFT_PARENTHESIS = exports.APOSTROPHE = exports.PERCENTAGE_SIGN = exports.DOLLAR_SIGN = exports.NUMBER_SIGN = exports.EQUALS_SIGN = exports.QUOTATION_MARK = exports.SPACE = exports.CHARACTER_TABULATION = exports.REVERSE_SOLIDUS = exports.SOLIDUS = exports.LINE_FEED = void 0;
6
+ exports.stringToNumber = exports.isNumberStart = exports.isIdentifierStart = exports.isValidEscape = exports.isNonPrintableCodePoint = exports.isNameCodePoint = exports.isNameStartCodePoint = exports.isWhiteSpace = exports.isNonASCIICodePoint = exports.isLetter = exports.isUpperCaseLetter = exports.isLowerCaseLetter = exports.isHex = exports.isSurrogateCodePoint = exports.isDigit = exports.Z = exports.U = exports.F = void 0;
7
+ const LINE_FEED = 0x000a;
8
+ exports.LINE_FEED = LINE_FEED;
9
+ const SOLIDUS = 0x002f;
10
+ exports.SOLIDUS = SOLIDUS;
11
+ const REVERSE_SOLIDUS = 0x005c;
12
+ exports.REVERSE_SOLIDUS = REVERSE_SOLIDUS;
13
+ const CHARACTER_TABULATION = 0x0009;
14
+ exports.CHARACTER_TABULATION = CHARACTER_TABULATION;
15
+ const SPACE = 0x0020;
16
+ exports.SPACE = SPACE;
17
+ const QUOTATION_MARK = 0x0022;
18
+ exports.QUOTATION_MARK = QUOTATION_MARK;
19
+ const EQUALS_SIGN = 0x003d;
20
+ exports.EQUALS_SIGN = EQUALS_SIGN;
21
+ const NUMBER_SIGN = 0x0023;
22
+ exports.NUMBER_SIGN = NUMBER_SIGN;
23
+ const DOLLAR_SIGN = 0x0024;
24
+ exports.DOLLAR_SIGN = DOLLAR_SIGN;
25
+ const PERCENTAGE_SIGN = 0x0025;
26
+ exports.PERCENTAGE_SIGN = PERCENTAGE_SIGN;
27
+ const APOSTROPHE = 0x0027;
28
+ exports.APOSTROPHE = APOSTROPHE;
29
+ const LEFT_PARENTHESIS = 0x0028;
30
+ exports.LEFT_PARENTHESIS = LEFT_PARENTHESIS;
31
+ const RIGHT_PARENTHESIS = 0x0029;
32
+ exports.RIGHT_PARENTHESIS = RIGHT_PARENTHESIS;
33
+ const LOW_LINE = 0x005f;
34
+ exports.LOW_LINE = LOW_LINE;
35
+ const HYPHEN_MINUS = 0x002d;
36
+ exports.HYPHEN_MINUS = HYPHEN_MINUS;
37
+ const EXCLAMATION_MARK = 0x0021;
38
+ exports.EXCLAMATION_MARK = EXCLAMATION_MARK;
39
+ const LESS_THAN_SIGN = 0x003c;
40
+ exports.LESS_THAN_SIGN = LESS_THAN_SIGN;
41
+ const GREATER_THAN_SIGN = 0x003e;
42
+ exports.GREATER_THAN_SIGN = GREATER_THAN_SIGN;
43
+ const COMMERCIAL_AT = 0x0040;
44
+ exports.COMMERCIAL_AT = COMMERCIAL_AT;
45
+ const LEFT_SQUARE_BRACKET = 0x005b;
46
+ exports.LEFT_SQUARE_BRACKET = LEFT_SQUARE_BRACKET;
47
+ const RIGHT_SQUARE_BRACKET = 0x005d;
48
+ exports.RIGHT_SQUARE_BRACKET = RIGHT_SQUARE_BRACKET;
49
+ const CIRCUMFLEX_ACCENT = 0x003d;
50
+ exports.CIRCUMFLEX_ACCENT = CIRCUMFLEX_ACCENT;
51
+ const LEFT_CURLY_BRACKET = 0x007b;
52
+ exports.LEFT_CURLY_BRACKET = LEFT_CURLY_BRACKET;
53
+ const QUESTION_MARK = 0x003f;
54
+ exports.QUESTION_MARK = QUESTION_MARK;
55
+ const RIGHT_CURLY_BRACKET = 0x007d;
56
+ exports.RIGHT_CURLY_BRACKET = RIGHT_CURLY_BRACKET;
57
+ const VERTICAL_LINE = 0x007c;
58
+ exports.VERTICAL_LINE = VERTICAL_LINE;
59
+ const TILDE = 0x007e;
60
+ exports.TILDE = TILDE;
61
+ const CONTROL = 0x0080;
62
+ exports.CONTROL = CONTROL;
63
+ const REPLACEMENT_CHARACTER = 0xfffd;
64
+ exports.REPLACEMENT_CHARACTER = REPLACEMENT_CHARACTER;
65
+ const ASTERISK = 0x002a;
66
+ exports.ASTERISK = ASTERISK;
67
+ const PLUS_SIGN = 0x002b;
68
+ exports.PLUS_SIGN = PLUS_SIGN;
69
+ const COMMA = 0x002c;
70
+ exports.COMMA = COMMA;
71
+ const COLON = 0x003a;
72
+ exports.COLON = COLON;
73
+ const SEMICOLON = 0x003b;
74
+ exports.SEMICOLON = SEMICOLON;
75
+ const FULL_STOP = 0x002e;
76
+ exports.FULL_STOP = FULL_STOP;
77
+ const NULL = 0x0000;
78
+ exports.NULL = NULL;
79
+ const BACKSPACE = 0x0008;
80
+ exports.BACKSPACE = BACKSPACE;
81
+ const LINE_TABULATION = 0x000b;
82
+ exports.LINE_TABULATION = LINE_TABULATION;
83
+ const SHIFT_OUT = 0x000e;
84
+ exports.SHIFT_OUT = SHIFT_OUT;
85
+ const INFORMATION_SEPARATOR_ONE = 0x001f;
86
+ exports.INFORMATION_SEPARATOR_ONE = INFORMATION_SEPARATOR_ONE;
87
+ const DELETE = 0x007f;
88
+ exports.DELETE = DELETE;
89
+ const EOF = -1;
90
+ exports.EOF = EOF;
91
+ const ZERO = 0x0030;
92
+ exports.ZERO = ZERO;
93
+ const a = 0x0061;
94
+ exports.a = a;
95
+ const e = 0x0065;
96
+ exports.e = e;
97
+ const f = 0x0066;
98
+ exports.f = f;
99
+ const u = 0x0075;
100
+ exports.u = u;
101
+ const z = 0x007a;
102
+ exports.z = z;
103
+ const A = 0x0041;
104
+ exports.A = A;
105
+ const E = 0x0045;
106
+ exports.E = E;
107
+ const F = 0x0046;
108
+ exports.F = F;
109
+ const U = 0x0055;
110
+ exports.U = U;
111
+ const Z = 0x005a;
112
+ exports.Z = Z;
113
+ const css_line_break_1 = require("css-line-break");
114
+ const isDigit = (codePoint) => codePoint >= ZERO && codePoint <= 0x0039;
115
+ exports.isDigit = isDigit;
116
+ const isSurrogateCodePoint = (codePoint) => codePoint >= 0xd800 && codePoint <= 0xdfff;
117
+ exports.isSurrogateCodePoint = isSurrogateCodePoint;
118
+ const isHex = (codePoint) => isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);
119
+ exports.isHex = isHex;
120
+ const isLowerCaseLetter = (codePoint) => codePoint >= a && codePoint <= z;
121
+ exports.isLowerCaseLetter = isLowerCaseLetter;
122
+ const isUpperCaseLetter = (codePoint) => codePoint >= A && codePoint <= Z;
123
+ exports.isUpperCaseLetter = isUpperCaseLetter;
124
+ const isLetter = (codePoint) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);
125
+ exports.isLetter = isLetter;
126
+ const isNonASCIICodePoint = (codePoint) => codePoint >= CONTROL;
127
+ exports.isNonASCIICodePoint = isNonASCIICodePoint;
128
+ const isWhiteSpace = (codePoint) => codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;
129
+ exports.isWhiteSpace = isWhiteSpace;
130
+ const isNameStartCodePoint = (codePoint) => isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;
131
+ exports.isNameStartCodePoint = isNameStartCodePoint;
132
+ const isNameCodePoint = (codePoint) => isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;
133
+ exports.isNameCodePoint = isNameCodePoint;
134
+ const isNonPrintableCodePoint = (codePoint) => {
135
+ return ((codePoint >= NULL && codePoint <= BACKSPACE) ||
136
+ codePoint === LINE_TABULATION ||
137
+ (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||
138
+ codePoint === DELETE);
139
+ };
140
+ exports.isNonPrintableCodePoint = isNonPrintableCodePoint;
141
+ const isValidEscape = (c1, c2) => {
142
+ if (c1 !== REVERSE_SOLIDUS) {
143
+ return false;
144
+ }
145
+ return c2 !== LINE_FEED;
146
+ };
147
+ exports.isValidEscape = isValidEscape;
148
+ const isIdentifierStart = (c1, c2, c3) => {
149
+ if (c1 === HYPHEN_MINUS) {
150
+ return isNameStartCodePoint(c2) || isValidEscape(c2, c3);
151
+ }
152
+ else if (isNameStartCodePoint(c1)) {
153
+ return true;
154
+ }
155
+ else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {
156
+ return true;
157
+ }
158
+ return false;
159
+ };
160
+ exports.isIdentifierStart = isIdentifierStart;
161
+ const isNumberStart = (c1, c2, c3) => {
162
+ if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {
163
+ if (isDigit(c2)) {
164
+ return true;
165
+ }
166
+ return c2 === FULL_STOP && isDigit(c3);
167
+ }
168
+ if (c1 === FULL_STOP) {
169
+ return isDigit(c2);
170
+ }
171
+ return isDigit(c1);
172
+ };
173
+ exports.isNumberStart = isNumberStart;
174
+ const stringToNumber = (codePoints) => {
175
+ let c = 0;
176
+ let sign = 1;
177
+ if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
178
+ if (codePoints[c] === HYPHEN_MINUS) {
179
+ sign = -1;
180
+ }
181
+ c++;
182
+ }
183
+ const integers = [];
184
+ while (isDigit(codePoints[c])) {
185
+ integers.push(codePoints[c++]);
186
+ }
187
+ const int = integers.length ? parseInt((0, css_line_break_1.fromCodePoint)(...integers), 10) : 0;
188
+ if (codePoints[c] === FULL_STOP) {
189
+ c++;
190
+ }
191
+ const fraction = [];
192
+ while (isDigit(codePoints[c])) {
193
+ fraction.push(codePoints[c++]);
194
+ }
195
+ const fracd = fraction.length;
196
+ const frac = fracd ? parseInt((0, css_line_break_1.fromCodePoint)(...fraction), 10) : 0;
197
+ if (codePoints[c] === E || codePoints[c] === e) {
198
+ c++;
199
+ }
200
+ let expsign = 1;
201
+ if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
202
+ if (codePoints[c] === HYPHEN_MINUS) {
203
+ expsign = -1;
204
+ }
205
+ c++;
206
+ }
207
+ const exponent = [];
208
+ while (isDigit(codePoints[c])) {
209
+ exponent.push(codePoints[c++]);
210
+ }
211
+ const exp = exponent.length ? parseInt((0, css_line_break_1.fromCodePoint)(...exponent), 10) : 0;
212
+ return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);
213
+ };
214
+ exports.stringToNumber = stringToNumber;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EOF_TOKEN = exports.WHITESPACE_TOKEN = exports.RIGHT_SQUARE_BRACKET_TOKEN = exports.LEFT_SQUARE_BRACKET_TOKEN = exports.SEMICOLON_TOKEN = exports.COLON_TOKEN = exports.CDC_TOKEN = exports.CDO_TOKEN = exports.BAD_STRING_TOKEN = exports.BAD_URL_TOKEN = exports.SUBSTRING_MATCH_TOKEN = exports.RIGHT_CURLY_BRACKET_TOKEN = exports.LEFT_CURLY_BRACKET_TOKEN = exports.INCLUDE_MATCH_TOKEN = exports.DASH_MATCH_TOKEN = exports.COLUMN_TOKEN = exports.PREFIX_MATCH_TOKEN = exports.SUFFIX_MATCH_TOKEN = exports.COMMA_TOKEN = exports.RIGHT_PARENTHESIS_TOKEN = exports.LEFT_PARENTHESIS_TOKEN = void 0;
4
+ exports.LEFT_PARENTHESIS_TOKEN = {
5
+ type: 2 /* TokenType.LEFT_PARENTHESIS_TOKEN */
6
+ };
7
+ exports.RIGHT_PARENTHESIS_TOKEN = {
8
+ type: 3 /* TokenType.RIGHT_PARENTHESIS_TOKEN */
9
+ };
10
+ exports.COMMA_TOKEN = { type: 4 /* TokenType.COMMA_TOKEN */ };
11
+ exports.SUFFIX_MATCH_TOKEN = { type: 13 /* TokenType.SUFFIX_MATCH_TOKEN */ };
12
+ exports.PREFIX_MATCH_TOKEN = { type: 8 /* TokenType.PREFIX_MATCH_TOKEN */ };
13
+ exports.COLUMN_TOKEN = { type: 21 /* TokenType.COLUMN_TOKEN */ };
14
+ exports.DASH_MATCH_TOKEN = { type: 9 /* TokenType.DASH_MATCH_TOKEN */ };
15
+ exports.INCLUDE_MATCH_TOKEN = { type: 10 /* TokenType.INCLUDE_MATCH_TOKEN */ };
16
+ exports.LEFT_CURLY_BRACKET_TOKEN = {
17
+ type: 11 /* TokenType.LEFT_CURLY_BRACKET_TOKEN */
18
+ };
19
+ exports.RIGHT_CURLY_BRACKET_TOKEN = {
20
+ type: 12 /* TokenType.RIGHT_CURLY_BRACKET_TOKEN */
21
+ };
22
+ exports.SUBSTRING_MATCH_TOKEN = { type: 14 /* TokenType.SUBSTRING_MATCH_TOKEN */ };
23
+ exports.BAD_URL_TOKEN = { type: 23 /* TokenType.BAD_URL_TOKEN */ };
24
+ exports.BAD_STRING_TOKEN = { type: 1 /* TokenType.BAD_STRING_TOKEN */ };
25
+ exports.CDO_TOKEN = { type: 25 /* TokenType.CDO_TOKEN */ };
26
+ exports.CDC_TOKEN = { type: 24 /* TokenType.CDC_TOKEN */ };
27
+ exports.COLON_TOKEN = { type: 26 /* TokenType.COLON_TOKEN */ };
28
+ exports.SEMICOLON_TOKEN = { type: 27 /* TokenType.SEMICOLON_TOKEN */ };
29
+ exports.LEFT_SQUARE_BRACKET_TOKEN = {
30
+ type: 28 /* TokenType.LEFT_SQUARE_BRACKET_TOKEN */
31
+ };
32
+ exports.RIGHT_SQUARE_BRACKET_TOKEN = {
33
+ type: 29 /* TokenType.RIGHT_SQUARE_BRACKET_TOKEN */
34
+ };
35
+ exports.WHITESPACE_TOKEN = { type: 31 /* TokenType.WHITESPACE_TOKEN */ };
36
+ exports.EOF_TOKEN = { type: 32 /* TokenType.EOF_TOKEN */ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // https://www.w3.org/TR/css-syntax-3
3
+ // Token type system — enums, interfaces, and union types consumed by
4
+ // the tokenizer, parser, and property descriptors.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FLAG_NUMBER = exports.FLAG_INTEGER = exports.FLAG_ID = exports.FLAG_UNRESTRICTED = void 0;
7
+ exports.FLAG_UNRESTRICTED = 1 << 0;
8
+ exports.FLAG_ID = 1 << 1;
9
+ exports.FLAG_INTEGER = 1 << 2;
10
+ exports.FLAG_NUMBER = 1 << 3;