html2canvas-pro 1.6.0 → 1.6.2
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.
- package/dist/html2canvas-pro.esm.js +2509 -3036
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +2517 -3040
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +6 -2
- package/dist/lib/__tests__/index.js +57 -122
- package/dist/lib/__tests__/index.js.map +1 -1
- package/dist/lib/core/__mocks__/cache-storage.js +2 -5
- package/dist/lib/core/__mocks__/cache-storage.js.map +1 -1
- package/dist/lib/core/__mocks__/context.js +7 -10
- package/dist/lib/core/__mocks__/context.js.map +1 -1
- package/dist/lib/core/__mocks__/logger.js +9 -17
- package/dist/lib/core/__mocks__/logger.js.map +1 -1
- package/dist/lib/core/__tests__/cache-storage.js +153 -351
- package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
- package/dist/lib/core/__tests__/logger.js +12 -13
- package/dist/lib/core/__tests__/logger.js.map +1 -1
- package/dist/lib/core/bitwise.js +1 -1
- package/dist/lib/core/bitwise.js.map +1 -1
- package/dist/lib/core/cache-storage.js +92 -155
- package/dist/lib/core/cache-storage.js.map +1 -1
- package/dist/lib/core/context.js +8 -10
- package/dist/lib/core/context.js.map +1 -1
- package/dist/lib/core/debugger.js +5 -5
- package/dist/lib/core/debugger.js.map +1 -1
- package/dist/lib/core/features.js +65 -68
- package/dist/lib/core/features.js.map +1 -1
- package/dist/lib/core/logger.js +21 -56
- package/dist/lib/core/logger.js.map +1 -1
- package/dist/lib/css/index.js +98 -103
- package/dist/lib/css/index.js.map +1 -1
- package/dist/lib/css/layout/__mocks__/bounds.js +1 -1
- package/dist/lib/css/layout/__mocks__/bounds.js.map +1 -1
- package/dist/lib/css/layout/bounds.js +20 -21
- package/dist/lib/css/layout/bounds.js.map +1 -1
- package/dist/lib/css/layout/text.js +50 -58
- package/dist/lib/css/layout/text.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js +24 -29
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/font-family.js +14 -20
- package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js +61 -83
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +75 -87
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +9 -13
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-clip.js +3 -3
- package/dist/lib/css/property-descriptors/background-clip.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-color.js +1 -1
- package/dist/lib/css/property-descriptors/background-image.js +6 -6
- package/dist/lib/css/property-descriptors/background-image.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-origin.js +3 -3
- package/dist/lib/css/property-descriptors/background-origin.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-position.js +6 -6
- package/dist/lib/css/property-descriptors/background-position.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-repeat.js +7 -9
- package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-size.js +5 -7
- package/dist/lib/css/property-descriptors/background-size.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-color.js +3 -3
- package/dist/lib/css/property-descriptors/border-color.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-radius.js +5 -7
- package/dist/lib/css/property-descriptors/border-radius.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-style.js +4 -4
- package/dist/lib/css/property-descriptors/border-style.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-width.js +5 -5
- package/dist/lib/css/property-descriptors/border-width.js.map +1 -1
- package/dist/lib/css/property-descriptors/box-shadow.js +10 -10
- package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/color.js +1 -1
- package/dist/lib/css/property-descriptors/content.js +2 -2
- package/dist/lib/css/property-descriptors/content.js.map +1 -1
- package/dist/lib/css/property-descriptors/counter-increment.js +10 -10
- package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -1
- package/dist/lib/css/property-descriptors/counter-reset.js +9 -9
- package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -1
- package/dist/lib/css/property-descriptors/direction.js +1 -1
- package/dist/lib/css/property-descriptors/direction.js.map +1 -1
- package/dist/lib/css/property-descriptors/display.js +4 -4
- package/dist/lib/css/property-descriptors/display.js.map +1 -1
- package/dist/lib/css/property-descriptors/duration.js +4 -4
- package/dist/lib/css/property-descriptors/duration.js.map +1 -1
- package/dist/lib/css/property-descriptors/float.js +1 -1
- package/dist/lib/css/property-descriptors/float.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-family.js +6 -6
- package/dist/lib/css/property-descriptors/font-family.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-size.js +1 -1
- package/dist/lib/css/property-descriptors/font-style.js +1 -1
- package/dist/lib/css/property-descriptors/font-style.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-variant.js +3 -3
- package/dist/lib/css/property-descriptors/font-variant.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-weight.js +2 -2
- package/dist/lib/css/property-descriptors/font-weight.js.map +1 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js +1 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -1
- package/dist/lib/css/property-descriptors/line-break.js +1 -1
- package/dist/lib/css/property-descriptors/line-break.js.map +1 -1
- package/dist/lib/css/property-descriptors/line-height.js +3 -3
- package/dist/lib/css/property-descriptors/line-height.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-image.js +2 -2
- package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-position.js +1 -1
- package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-type.js +1 -1
- package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -1
- package/dist/lib/css/property-descriptors/margin.js +3 -3
- package/dist/lib/css/property-descriptors/margin.js.map +1 -1
- package/dist/lib/css/property-descriptors/object-fit.js +4 -4
- package/dist/lib/css/property-descriptors/object-fit.js.map +1 -1
- package/dist/lib/css/property-descriptors/opacity.js +2 -2
- package/dist/lib/css/property-descriptors/opacity.js.map +1 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js +1 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -1
- package/dist/lib/css/property-descriptors/overflow.js +3 -3
- package/dist/lib/css/property-descriptors/overflow.js.map +1 -1
- package/dist/lib/css/property-descriptors/padding.js +3 -3
- package/dist/lib/css/property-descriptors/padding.js.map +1 -1
- package/dist/lib/css/property-descriptors/paint-order.js +6 -6
- package/dist/lib/css/property-descriptors/paint-order.js.map +1 -1
- package/dist/lib/css/property-descriptors/position.js +1 -1
- package/dist/lib/css/property-descriptors/position.js.map +1 -1
- package/dist/lib/css/property-descriptors/quotes.js +11 -11
- package/dist/lib/css/property-descriptors/quotes.js.map +1 -1
- package/dist/lib/css/property-descriptors/rotate.js +3 -3
- package/dist/lib/css/property-descriptors/rotate.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-align.js +1 -1
- package/dist/lib/css/property-descriptors/text-align.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-decoration-color.js +1 -1
- package/dist/lib/css/property-descriptors/text-decoration-line.js +4 -4
- package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-shadow.js +10 -10
- package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-transform.js +1 -1
- package/dist/lib/css/property-descriptors/text-transform.js.map +1 -1
- package/dist/lib/css/property-descriptors/transform-origin.js +6 -6
- package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -1
- package/dist/lib/css/property-descriptors/transform.js +15 -15
- package/dist/lib/css/property-descriptors/transform.js.map +1 -1
- package/dist/lib/css/property-descriptors/visibility.js +1 -1
- package/dist/lib/css/property-descriptors/visibility.js.map +1 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +1 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +3 -3
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -1
- package/dist/lib/css/property-descriptors/word-break.js +1 -1
- package/dist/lib/css/property-descriptors/word-break.js.map +1 -1
- package/dist/lib/css/property-descriptors/z-index.js +3 -3
- package/dist/lib/css/property-descriptors/z-index.js.map +1 -1
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +17 -25
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +1 -1
- package/dist/lib/css/syntax/parser.js +50 -55
- package/dist/lib/css/syntax/parser.js.map +1 -1
- package/dist/lib/css/syntax/tokenizer.js +205 -214
- package/dist/lib/css/syntax/tokenizer.js.map +1 -1
- package/dist/lib/css/types/__tests__/color-tests.js +103 -167
- package/dist/lib/css/types/__tests__/color-tests.js.map +1 -1
- package/dist/lib/css/types/__tests__/image-tests.js +192 -217
- package/dist/lib/css/types/__tests__/image-tests.js.map +1 -1
- package/dist/lib/css/types/angle.js +13 -13
- package/dist/lib/css/types/angle.js.map +1 -1
- package/dist/lib/css/types/color-spaces/a98.js +18 -22
- package/dist/lib/css/types/color-spaces/a98.js.map +1 -1
- package/dist/lib/css/types/color-spaces/p3.js +17 -22
- package/dist/lib/css/types/color-spaces/p3.js.map +1 -1
- package/dist/lib/css/types/color-spaces/pro-photo.js +17 -21
- package/dist/lib/css/types/color-spaces/pro-photo.js.map +1 -1
- package/dist/lib/css/types/color-spaces/rec2020.js +15 -19
- package/dist/lib/css/types/color-spaces/rec2020.js.map +1 -1
- package/dist/lib/css/types/color-spaces/srgb.js +17 -23
- package/dist/lib/css/types/color-spaces/srgb.js.map +1 -1
- package/dist/lib/css/types/color-utilities.js +80 -103
- package/dist/lib/css/types/color-utilities.js.map +1 -1
- package/dist/lib/css/types/color.js +72 -66
- package/dist/lib/css/types/color.js.map +1 -1
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js +11 -11
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js +16 -16
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/-webkit-gradient.js +26 -26
- package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js +57 -65
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/counter.js +59 -65
- package/dist/lib/css/types/functions/counter.js.map +1 -1
- package/dist/lib/css/types/functions/gradient.js +51 -52
- package/dist/lib/css/types/functions/gradient.js.map +1 -1
- package/dist/lib/css/types/functions/linear-gradient.js +10 -10
- package/dist/lib/css/types/functions/linear-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/radial-gradient.js +17 -17
- package/dist/lib/css/types/functions/radial-gradient.js.map +1 -1
- package/dist/lib/css/types/image.js +14 -14
- package/dist/lib/css/types/image.js.map +1 -1
- package/dist/lib/css/types/length-percentage.js +19 -27
- package/dist/lib/css/types/length-percentage.js.map +1 -1
- package/dist/lib/css/types/length.js +1 -3
- package/dist/lib/css/types/length.js.map +1 -1
- package/dist/lib/css/types/time.js +2 -2
- package/dist/lib/css/types/time.js.map +1 -1
- package/dist/lib/dom/__mocks__/document-cloner.js +7 -8
- package/dist/lib/dom/__mocks__/document-cloner.js.map +1 -1
- package/dist/lib/dom/document-cloner.js +195 -219
- package/dist/lib/dom/document-cloner.js.map +1 -1
- package/dist/lib/dom/element-container.js +8 -9
- package/dist/lib/dom/element-container.js.map +1 -1
- package/dist/lib/dom/elements/li-element-container.js +6 -24
- package/dist/lib/dom/elements/li-element-container.js.map +1 -1
- package/dist/lib/dom/elements/ol-element-container.js +7 -25
- package/dist/lib/dom/elements/ol-element-container.js.map +1 -1
- package/dist/lib/dom/elements/select-element-container.js +7 -25
- package/dist/lib/dom/elements/select-element-container.js.map +1 -1
- package/dist/lib/dom/elements/textarea-element-container.js +6 -24
- package/dist/lib/dom/elements/textarea-element-container.js.map +1 -1
- package/dist/lib/dom/node-parser.js +42 -46
- package/dist/lib/dom/node-parser.js.map +1 -1
- package/dist/lib/dom/replaced-elements/canvas-element-container.js +8 -26
- package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/iframe-element-container.js +17 -35
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/image-element-container.js +9 -27
- package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/input-element-container.js +47 -59
- package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/svg-element-container.js +14 -32
- package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -1
- package/dist/lib/dom/text-container.js +7 -8
- package/dist/lib/dom/text-container.js.map +1 -1
- package/dist/lib/index.js +101 -156
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/invariant.js +1 -1
- package/dist/lib/invariant.js.map +1 -1
- package/dist/lib/render/background.js +44 -47
- package/dist/lib/render/background.js.map +1 -1
- package/dist/lib/render/bezier-curve.js +18 -19
- package/dist/lib/render/bezier-curve.js.map +1 -1
- package/dist/lib/render/border.js +9 -9
- package/dist/lib/render/border.js.map +1 -1
- package/dist/lib/render/bound-curves.js +35 -36
- package/dist/lib/render/bound-curves.js.map +1 -1
- package/dist/lib/render/box-sizing.js +11 -11
- package/dist/lib/render/box-sizing.js.map +1 -1
- package/dist/lib/render/canvas/canvas-renderer.js +639 -918
- package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
- package/dist/lib/render/canvas/foreignobject-renderer.js +35 -101
- package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -1
- package/dist/lib/render/effects.js +12 -17
- package/dist/lib/render/effects.js.map +1 -1
- package/dist/lib/render/font-metrics.js +17 -18
- package/dist/lib/render/font-metrics.js.map +1 -1
- package/dist/lib/render/path.js +4 -4
- package/dist/lib/render/path.js.map +1 -1
- package/dist/lib/render/renderer.js +3 -4
- package/dist/lib/render/renderer.js.map +1 -1
- package/dist/lib/render/stacking-context.js +71 -73
- package/dist/lib/render/stacking-context.js.map +1 -1
- package/dist/lib/render/vector.js +6 -7
- package/dist/lib/render/vector.js.map +1 -1
- package/dist/types/dom/replaced-elements/input-element-container.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/eslint.config.js +35 -0
- package/jest.config.cjs +5 -0
- package/karma.conf.cjs +295 -0
- package/package.json +32 -20
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.textShadow = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const parser_1 = require("../syntax/parser");
|
|
5
|
+
const length_percentage_1 = require("../types/length-percentage");
|
|
6
|
+
const color_1 = require("../types/color");
|
|
7
|
+
const length_1 = require("../types/length");
|
|
8
8
|
exports.textShadow = {
|
|
9
9
|
name: 'text-shadow',
|
|
10
10
|
initialValue: 'none',
|
|
11
11
|
type: 1 /* PropertyDescriptorParsingType.LIST */,
|
|
12
12
|
prefix: false,
|
|
13
|
-
parse:
|
|
13
|
+
parse: (context, tokens) => {
|
|
14
14
|
if (tokens.length === 1 && (0, parser_1.isIdentWithValue)(tokens[0], 'none')) {
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
|
-
return (0, parser_1.parseFunctionArgs)(tokens).map(
|
|
18
|
-
|
|
17
|
+
return (0, parser_1.parseFunctionArgs)(tokens).map((values) => {
|
|
18
|
+
const shadow = {
|
|
19
19
|
color: color_1.COLORS.TRANSPARENT,
|
|
20
20
|
offsetX: length_percentage_1.ZERO_LENGTH,
|
|
21
21
|
offsetY: length_percentage_1.ZERO_LENGTH,
|
|
22
22
|
blur: length_percentage_1.ZERO_LENGTH
|
|
23
23
|
};
|
|
24
|
-
|
|
25
|
-
for (
|
|
26
|
-
|
|
24
|
+
let c = 0;
|
|
25
|
+
for (let i = 0; i < values.length; i++) {
|
|
26
|
+
const token = values[i];
|
|
27
27
|
if ((0, length_1.isLength)(token)) {
|
|
28
28
|
if (c === 0) {
|
|
29
29
|
shadow.offsetX = token;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-shadow.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/text-shadow.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"text-shadow.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/text-shadow.ts"],"names":[],"mappings":";;;AACA,6CAAiF;AACjF,kEAAyD;AACzD,0CAAsD;AACtD,4CAAmD;AAWtC,QAAA,UAAU,GAAwC;IAC3D,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,MAAM;IACpB,IAAI,4CAAoC;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,CAAC,OAAgB,EAAE,MAAkB,EAAc,EAAE;QACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAkB,EAAE,EAAE;YACxD,MAAM,MAAM,GAAmB;gBAC3B,KAAK,EAAE,cAAM,CAAC,WAAW;gBACzB,OAAO,EAAE,+BAAW;gBACpB,OAAO,EAAE,+BAAW;gBACpB,IAAI,EAAE,+BAAW;aACpB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACV,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC3B,CAAC;yBAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;oBACxB,CAAC;oBACD,CAAC,EAAE,CAAC;gBACR,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,KAAK,GAAG,aAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
|
|
@@ -6,7 +6,7 @@ exports.textTransform = {
|
|
|
6
6
|
initialValue: 'none',
|
|
7
7
|
prefix: false,
|
|
8
8
|
type: 2 /* PropertyDescriptorParsingType.IDENT_VALUE */,
|
|
9
|
-
parse:
|
|
9
|
+
parse: (_context, textTransform) => {
|
|
10
10
|
switch (textTransform) {
|
|
11
11
|
case 'uppercase':
|
|
12
12
|
return 2 /* TEXT_TRANSFORM.UPPERCASE */;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-transform.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/text-transform.ts"],"names":[],"mappings":";;;AASa,QAAA,aAAa,GAAkD;IACxE,IAAI,EAAE,gBAAgB;IACtB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"text-transform.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/text-transform.ts"],"names":[],"mappings":";;;AASa,QAAA,aAAa,GAAkD;IACxE,IAAI,EAAE,gBAAgB;IACtB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,CAAC,QAAiB,EAAE,aAAqB,EAAE,EAAE;QAChD,QAAQ,aAAa,EAAE,CAAC;YACpB,KAAK,WAAW;gBACZ,wCAAgC;YACpC,KAAK,WAAW;gBACZ,wCAAgC;YACpC,KAAK,YAAY;gBACb,yCAAiC;QACzC,CAAC;QAED,mCAA2B;IAC/B,CAAC;CACJ,CAAC"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transformOrigin = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const length_percentage_1 = require("../types/length-percentage");
|
|
5
|
+
const tokenizer_1 = require("../syntax/tokenizer");
|
|
6
|
+
const DEFAULT_VALUE = {
|
|
7
7
|
type: 16 /* TokenType.PERCENTAGE_TOKEN */,
|
|
8
8
|
number: 50,
|
|
9
9
|
flags: tokenizer_1.FLAG_INTEGER
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
const DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];
|
|
12
12
|
exports.transformOrigin = {
|
|
13
13
|
name: 'transform-origin',
|
|
14
14
|
initialValue: '50% 50%',
|
|
15
15
|
prefix: true,
|
|
16
16
|
type: 1 /* PropertyDescriptorParsingType.LIST */,
|
|
17
|
-
parse:
|
|
18
|
-
|
|
17
|
+
parse: (_context, tokens) => {
|
|
18
|
+
const origins = tokens.filter(length_percentage_1.isLengthPercentage);
|
|
19
19
|
if (origins.length !== 2) {
|
|
20
20
|
return DEFAULT;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-origin.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/transform-origin.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"transform-origin.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/transform-origin.ts"],"names":[],"mappings":";;;AAEA,kEAAkF;AAClF,mDAA8D;AAI9D,MAAM,aAAa,GAAqB;IACpC,IAAI,qCAA4B;IAChC,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,wBAAY;CACtB,CAAC;AACF,MAAM,OAAO,GAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAEnD,QAAA,eAAe,GAA6C;IACrE,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,SAAS;IACvB,MAAM,EAAE,IAAI;IACZ,IAAI,4CAAoC;IACxC,KAAK,EAAE,CAAC,QAAiB,EAAE,MAAkB,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAuB,MAAM,CAAC,MAAM,CAAC,sCAAkB,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;CACJ,CAAC"}
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transform = void 0;
|
|
4
|
-
|
|
4
|
+
const angle_1 = require("../types/angle");
|
|
5
5
|
exports.transform = {
|
|
6
6
|
name: 'transform',
|
|
7
7
|
initialValue: 'none',
|
|
8
8
|
prefix: true,
|
|
9
9
|
type: 0 /* PropertyDescriptorParsingType.VALUE */,
|
|
10
|
-
parse:
|
|
10
|
+
parse: (_context, token) => {
|
|
11
11
|
if (token.type === 20 /* TokenType.IDENT_TOKEN */ && token.value === 'none') {
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
14
|
if (token.type === 18 /* TokenType.FUNCTION */) {
|
|
15
|
-
|
|
15
|
+
const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];
|
|
16
16
|
if (typeof transformFunction === 'undefined') {
|
|
17
|
-
throw new Error(
|
|
17
|
+
throw new Error(`Attempting to parse an unsupported transform function "${token.name}"`);
|
|
18
18
|
}
|
|
19
19
|
return transformFunction(_context, token.values);
|
|
20
20
|
}
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const matrix = (_context, args) => {
|
|
25
|
+
const values = args.filter((arg) => arg.type === 17 /* TokenType.NUMBER_TOKEN */).map((arg) => arg.number);
|
|
26
26
|
return values.length === 6 ? values : null;
|
|
27
27
|
};
|
|
28
28
|
// doesn't support 3D transforms at the moment
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const matrix3d = (_context, args) => {
|
|
30
|
+
const values = args.filter((arg) => arg.type === 17 /* TokenType.NUMBER_TOKEN */).map((arg) => arg.number);
|
|
31
|
+
const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;
|
|
32
32
|
return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;
|
|
33
33
|
};
|
|
34
|
-
|
|
34
|
+
const rotate = (context, args) => {
|
|
35
35
|
if (args.length !== 1) {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const arg = args[0];
|
|
39
|
+
let radians = 0;
|
|
40
40
|
if (arg.type === 17 /* TokenType.NUMBER_TOKEN */ && arg.number === 0) {
|
|
41
41
|
radians = 0;
|
|
42
42
|
}
|
|
@@ -46,11 +46,11 @@ var rotate = function (context, args) {
|
|
|
46
46
|
else {
|
|
47
47
|
return null;
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const cos = Math.cos(radians);
|
|
50
|
+
const sin = Math.sin(radians);
|
|
51
51
|
return [cos, sin, -sin, cos, 0, 0];
|
|
52
52
|
};
|
|
53
|
-
|
|
53
|
+
const SUPPORTED_TRANSFORM_FUNCTIONS = {
|
|
54
54
|
matrix: matrix,
|
|
55
55
|
matrix3d: matrix3d,
|
|
56
56
|
rotate: rotate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/transform.ts"],"names":[],"mappings":";;;AAIA,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ exports.visibility = {
|
|
|
6
6
|
initialValue: 'none',
|
|
7
7
|
prefix: false,
|
|
8
8
|
type: 2 /* PropertyDescriptorParsingType.IDENT_VALUE */,
|
|
9
|
-
parse:
|
|
9
|
+
parse: (_context, visibility) => {
|
|
10
10
|
switch (visibility) {
|
|
11
11
|
case 'hidden':
|
|
12
12
|
return 1 /* VISIBILITY.HIDDEN */;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/visibility.ts"],"names":[],"mappings":";;;AAQa,QAAA,UAAU,GAA8C;IACjE,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/visibility.ts"],"names":[],"mappings":";;;AAQa,QAAA,UAAU,GAA8C;IACjE,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,CAAC,QAAiB,EAAE,UAAkB,EAAE,EAAE;QAC7C,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACT,iCAAyB;YAC7B,KAAK,UAAU;gBACX,mCAA2B;YAC/B,KAAK,SAAS,CAAC;YACf;gBACI,kCAA0B;QAClC,CAAC;IACL,CAAC;CACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.webkitTextStrokeColor = void 0;
|
|
4
4
|
exports.webkitTextStrokeColor = {
|
|
5
|
-
name:
|
|
5
|
+
name: `-webkit-text-stroke-color`,
|
|
6
6
|
initialValue: 'currentcolor',
|
|
7
7
|
prefix: false,
|
|
8
8
|
type: 3 /* PropertyDescriptorParsingType.TYPE_VALUE */,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.webkitTextStrokeWidth = void 0;
|
|
4
|
-
|
|
4
|
+
const parser_1 = require("../syntax/parser");
|
|
5
5
|
exports.webkitTextStrokeWidth = {
|
|
6
|
-
name:
|
|
6
|
+
name: `-webkit-text-stroke-width`,
|
|
7
7
|
initialValue: '0',
|
|
8
8
|
type: 0 /* PropertyDescriptorParsingType.VALUE */,
|
|
9
9
|
prefix: false,
|
|
10
|
-
parse:
|
|
10
|
+
parse: (_context, token) => {
|
|
11
11
|
if ((0, parser_1.isDimensionToken)(token)) {
|
|
12
12
|
return token.number;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webkit-text-stroke-width.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/webkit-text-stroke-width.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"webkit-text-stroke-width.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/webkit-text-stroke-width.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAGjD,QAAA,qBAAqB,GAAqC;IACnE,IAAI,EAAE,2BAA2B;IACjC,YAAY,EAAE,GAAG;IACjB,IAAI,6CAAqC;IACzC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,CAAC,QAAiB,EAAE,KAAe,EAAU,EAAE;QAClD,IAAI,IAAA,yBAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;CACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ exports.wordBreak = {
|
|
|
12
12
|
initialValue: 'normal',
|
|
13
13
|
prefix: false,
|
|
14
14
|
type: 2 /* PropertyDescriptorParsingType.IDENT_VALUE */,
|
|
15
|
-
parse:
|
|
15
|
+
parse: (_context, wordBreak) => {
|
|
16
16
|
switch (wordBreak) {
|
|
17
17
|
case 'break-all':
|
|
18
18
|
return WORD_BREAK.BREAK_ALL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"word-break.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/word-break.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;AACzB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAEY,QAAA,SAAS,GAA8C;IAChE,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"word-break.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/word-break.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;AACzB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAEY,QAAA,SAAS,GAA8C;IAChE,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,mDAA2C;IAC/C,KAAK,EAAE,CAAC,QAAiB,EAAE,SAAiB,EAAc,EAAE;QACxD,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,SAAS,CAAC;YAChC,KAAK,UAAU;gBACX,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC/B,KAAK,QAAQ,CAAC;YACd;gBACI,OAAO,UAAU,CAAC,MAAM,CAAC;QACjC,CAAC;IACL,CAAC;CACJ,CAAC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.zIndex = void 0;
|
|
4
|
-
|
|
4
|
+
const parser_1 = require("../syntax/parser");
|
|
5
5
|
exports.zIndex = {
|
|
6
6
|
name: 'z-index',
|
|
7
7
|
initialValue: 'auto',
|
|
8
8
|
prefix: false,
|
|
9
9
|
type: 0 /* PropertyDescriptorParsingType.VALUE */,
|
|
10
|
-
parse:
|
|
10
|
+
parse: (_context, token) => {
|
|
11
11
|
if (token.type === 20 /* TokenType.IDENT_TOKEN */) {
|
|
12
12
|
return { auto: true, order: 0 };
|
|
13
13
|
}
|
|
14
14
|
if ((0, parser_1.isNumberToken)(token)) {
|
|
15
15
|
return { auto: false, order: token.number };
|
|
16
16
|
}
|
|
17
|
-
throw new Error(
|
|
17
|
+
throw new Error(`Invalid z-index number parsed`);
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=z-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"z-index.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/z-index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"z-index.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/z-index.ts"],"names":[],"mappings":";;;AACA,6CAA2D;AAS9C,QAAA,MAAM,GAAqC;IACpD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,6CAAqC;IACzC,KAAK,EAAE,CAAC,QAAiB,EAAE,KAAe,EAAU,EAAE;QAClD,IAAI,KAAK,CAAC,IAAI,mCAA0B,EAAE,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrD,CAAC;CACJ,CAAC"}
|
|
@@ -1,34 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const tokenizer_1 = require("../tokenizer");
|
|
5
|
+
const tokenize = (value) => {
|
|
6
|
+
const tokenizer = new tokenizer_1.Tokenizer();
|
|
7
7
|
tokenizer.write(value);
|
|
8
8
|
return tokenizer.read();
|
|
9
9
|
};
|
|
10
|
-
describe('tokenizer',
|
|
11
|
-
describe('<ident>',
|
|
12
|
-
it('auto',
|
|
13
|
-
it('url',
|
|
14
|
-
it('auto test',
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
]);
|
|
20
|
-
});
|
|
10
|
+
describe('tokenizer', () => {
|
|
11
|
+
describe('<ident>', () => {
|
|
12
|
+
it('auto', () => (0, assert_1.deepEqual)(tokenize('auto'), [{ type: 20 /* TokenType.IDENT_TOKEN */, value: 'auto' }]));
|
|
13
|
+
it('url', () => (0, assert_1.deepEqual)(tokenize('url'), [{ type: 20 /* TokenType.IDENT_TOKEN */, value: 'url' }]));
|
|
14
|
+
it('auto test', () => (0, assert_1.deepEqual)(tokenize('auto test'), [
|
|
15
|
+
{ type: 20 /* TokenType.IDENT_TOKEN */, value: 'auto' },
|
|
16
|
+
{ type: 31 /* TokenType.WHITESPACE_TOKEN */ },
|
|
17
|
+
{ type: 20 /* TokenType.IDENT_TOKEN */, value: 'test' }
|
|
18
|
+
]));
|
|
21
19
|
});
|
|
22
|
-
describe('<url-token>',
|
|
23
|
-
it('url(test.jpg)',
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
it('url("test.jpg")', function () {
|
|
27
|
-
return (0, assert_1.deepEqual)(tokenize('url("test.jpg")'), [{ type: 22 /* TokenType.URL_TOKEN */, value: 'test.jpg' }]);
|
|
28
|
-
});
|
|
29
|
-
it("url('test.jpg')", function () {
|
|
30
|
-
return (0, assert_1.deepEqual)(tokenize("url('test.jpg')"), [{ type: 22 /* TokenType.URL_TOKEN */, value: 'test.jpg' }]);
|
|
31
|
-
});
|
|
20
|
+
describe('<url-token>', () => {
|
|
21
|
+
it('url(test.jpg)', () => (0, assert_1.deepEqual)(tokenize('url(test.jpg)'), [{ type: 22 /* TokenType.URL_TOKEN */, value: 'test.jpg' }]));
|
|
22
|
+
it('url("test.jpg")', () => (0, assert_1.deepEqual)(tokenize('url("test.jpg")'), [{ type: 22 /* TokenType.URL_TOKEN */, value: 'test.jpg' }]));
|
|
23
|
+
it("url('test.jpg')", () => (0, assert_1.deepEqual)(tokenize("url('test.jpg')"), [{ type: 22 /* TokenType.URL_TOKEN */, value: 'test.jpg' }]));
|
|
32
24
|
});
|
|
33
25
|
});
|
|
34
26
|
//# sourceMappingURL=tokernizer-tests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokernizer-tests.js","sourceRoot":"","sources":["../../../../../src/css/syntax/__tests__/tokernizer-tests.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"tokernizer-tests.js","sourceRoot":"","sources":["../../../../../src/css/syntax/__tests__/tokernizer-tests.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,4CAAoD;AAEpD,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IAC/B,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;IAClC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAS,EAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,gCAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,gCAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CACjB,IAAA,kBAAS,EAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YACpC,EAAE,IAAI,gCAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;YAC9C,EAAE,IAAI,qCAA4B,EAAE;YACpC,EAAE,IAAI,gCAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;SACjD,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,CACrB,IAAA,kBAAS,EAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,8BAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACvB,IAAA,kBAAS,EAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,8BAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAChG,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACvB,IAAA,kBAAS,EAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,8BAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseFunctionArgs = exports.nonFunctionArgSeparator = exports.nonWhiteSpace = exports.isIdentWithValue = exports.isStringToken = exports.isIdentToken = exports.isNumberToken = exports.isDimensionToken = exports.Parser = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const tokenizer_1 = require("./tokenizer");
|
|
5
|
+
class Parser {
|
|
6
|
+
constructor(tokens) {
|
|
7
7
|
this._tokens = tokens;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
static create(value) {
|
|
10
|
+
const tokenizer = new tokenizer_1.Tokenizer();
|
|
11
11
|
tokenizer.write(value);
|
|
12
12
|
return new Parser(tokenizer.read());
|
|
13
|
-
}
|
|
14
|
-
|
|
13
|
+
}
|
|
14
|
+
static parseValue(value) {
|
|
15
15
|
return Parser.create(value).parseComponentValue();
|
|
16
|
-
}
|
|
17
|
-
|
|
16
|
+
}
|
|
17
|
+
static parseValues(value) {
|
|
18
18
|
return Parser.create(value).parseComponentValues();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
}
|
|
20
|
+
parseComponentValue() {
|
|
21
|
+
let token = this.consumeToken();
|
|
22
22
|
while (token.type === 31 /* TokenType.WHITESPACE_TOKEN */) {
|
|
23
23
|
token = this.consumeToken();
|
|
24
24
|
}
|
|
25
25
|
if (token.type === 32 /* TokenType.EOF_TOKEN */) {
|
|
26
|
-
throw new SyntaxError(
|
|
26
|
+
throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);
|
|
27
27
|
}
|
|
28
28
|
this.reconsumeToken(token);
|
|
29
|
-
|
|
29
|
+
const value = this.consumeComponentValue();
|
|
30
30
|
do {
|
|
31
31
|
token = this.consumeToken();
|
|
32
32
|
} while (token.type === 31 /* TokenType.WHITESPACE_TOKEN */);
|
|
33
33
|
if (token.type === 32 /* TokenType.EOF_TOKEN */) {
|
|
34
34
|
return value;
|
|
35
35
|
}
|
|
36
|
-
throw new SyntaxError(
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);
|
|
37
|
+
}
|
|
38
|
+
parseComponentValues() {
|
|
39
|
+
const values = [];
|
|
40
40
|
while (true) {
|
|
41
|
-
|
|
41
|
+
const value = this.consumeComponentValue();
|
|
42
42
|
if (value.type === 32 /* TokenType.EOF_TOKEN */) {
|
|
43
43
|
return values;
|
|
44
44
|
}
|
|
45
45
|
values.push(value);
|
|
46
46
|
values.push();
|
|
47
47
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
}
|
|
49
|
+
consumeComponentValue() {
|
|
50
|
+
const token = this.consumeToken();
|
|
51
51
|
switch (token.type) {
|
|
52
52
|
case 11 /* TokenType.LEFT_CURLY_BRACKET_TOKEN */:
|
|
53
53
|
case 28 /* TokenType.LEFT_SQUARE_BRACKET_TOKEN */:
|
|
@@ -57,10 +57,10 @@ var Parser = /** @class */ (function () {
|
|
|
57
57
|
return this.consumeFunction(token);
|
|
58
58
|
}
|
|
59
59
|
return token;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
}
|
|
61
|
+
consumeSimpleBlock(type) {
|
|
62
|
+
const block = { type, values: [] };
|
|
63
|
+
let token = this.consumeToken();
|
|
64
64
|
while (true) {
|
|
65
65
|
if (token.type === 32 /* TokenType.EOF_TOKEN */ || isEndingTokenFor(token, type)) {
|
|
66
66
|
return block;
|
|
@@ -69,57 +69,52 @@ var Parser = /** @class */ (function () {
|
|
|
69
69
|
block.values.push(this.consumeComponentValue());
|
|
70
70
|
token = this.consumeToken();
|
|
71
71
|
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
}
|
|
73
|
+
consumeFunction(functionToken) {
|
|
74
|
+
const cssFunction = {
|
|
75
75
|
name: functionToken.value,
|
|
76
76
|
values: [],
|
|
77
77
|
type: 18 /* TokenType.FUNCTION */
|
|
78
78
|
};
|
|
79
79
|
while (true) {
|
|
80
|
-
|
|
80
|
+
const token = this.consumeToken();
|
|
81
81
|
if (token.type === 32 /* TokenType.EOF_TOKEN */ || token.type === 3 /* TokenType.RIGHT_PARENTHESIS_TOKEN */) {
|
|
82
82
|
return cssFunction;
|
|
83
83
|
}
|
|
84
84
|
this.reconsumeToken(token);
|
|
85
85
|
cssFunction.values.push(this.consumeComponentValue());
|
|
86
86
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
}
|
|
88
|
+
consumeToken() {
|
|
89
|
+
const token = this._tokens.shift();
|
|
90
90
|
return typeof token === 'undefined' ? tokenizer_1.EOF_TOKEN : token;
|
|
91
|
-
}
|
|
92
|
-
|
|
91
|
+
}
|
|
92
|
+
reconsumeToken(token) {
|
|
93
93
|
this._tokens.unshift(token);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
}());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
97
96
|
exports.Parser = Parser;
|
|
98
|
-
|
|
97
|
+
const isDimensionToken = (token) => token.type === 15 /* TokenType.DIMENSION_TOKEN */;
|
|
99
98
|
exports.isDimensionToken = isDimensionToken;
|
|
100
|
-
|
|
99
|
+
const isNumberToken = (token) => token.type === 17 /* TokenType.NUMBER_TOKEN */;
|
|
101
100
|
exports.isNumberToken = isNumberToken;
|
|
102
|
-
|
|
101
|
+
const isIdentToken = (token) => token.type === 20 /* TokenType.IDENT_TOKEN */;
|
|
103
102
|
exports.isIdentToken = isIdentToken;
|
|
104
|
-
|
|
103
|
+
const isStringToken = (token) => token.type === 0 /* TokenType.STRING_TOKEN */;
|
|
105
104
|
exports.isStringToken = isStringToken;
|
|
106
|
-
|
|
107
|
-
return (0, exports.isIdentToken)(token) && token.value === value;
|
|
108
|
-
};
|
|
105
|
+
const isIdentWithValue = (token, value) => (0, exports.isIdentToken)(token) && token.value === value;
|
|
109
106
|
exports.isIdentWithValue = isIdentWithValue;
|
|
110
|
-
|
|
107
|
+
const nonWhiteSpace = (token) => token.type !== 31 /* TokenType.WHITESPACE_TOKEN */;
|
|
111
108
|
exports.nonWhiteSpace = nonWhiteSpace;
|
|
112
|
-
|
|
113
|
-
return token.type !== 31 /* TokenType.WHITESPACE_TOKEN */ && token.type !== 4 /* TokenType.COMMA_TOKEN */;
|
|
114
|
-
};
|
|
109
|
+
const nonFunctionArgSeparator = (token) => token.type !== 31 /* TokenType.WHITESPACE_TOKEN */ && token.type !== 4 /* TokenType.COMMA_TOKEN */;
|
|
115
110
|
exports.nonFunctionArgSeparator = nonFunctionArgSeparator;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
tokens.forEach(
|
|
111
|
+
const parseFunctionArgs = (tokens) => {
|
|
112
|
+
const args = [];
|
|
113
|
+
let arg = [];
|
|
114
|
+
tokens.forEach((token) => {
|
|
120
115
|
if (token.type === 4 /* TokenType.COMMA_TOKEN */) {
|
|
121
116
|
if (arg.length === 0) {
|
|
122
|
-
throw new Error(
|
|
117
|
+
throw new Error(`Error parsing function args, zero tokens for arg`);
|
|
123
118
|
}
|
|
124
119
|
args.push(arg);
|
|
125
120
|
arg = [];
|
|
@@ -135,7 +130,7 @@ var parseFunctionArgs = function (tokens) {
|
|
|
135
130
|
return args;
|
|
136
131
|
};
|
|
137
132
|
exports.parseFunctionArgs = parseFunctionArgs;
|
|
138
|
-
|
|
133
|
+
const isEndingTokenFor = (token, type) => {
|
|
139
134
|
if (type === 11 /* TokenType.LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* TokenType.RIGHT_CURLY_BRACKET_TOKEN */) {
|
|
140
135
|
return true;
|
|
141
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/css/syntax/parser.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/css/syntax/parser.ts"],"names":[],"mappings":"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"}
|