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,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseStackingContexts = exports.ElementPaint = exports.StackingContext = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
const bitwise_1 = require("../core/bitwise");
|
|
5
|
+
const bound_curves_1 = require("./bound-curves");
|
|
6
|
+
const effects_1 = require("./effects");
|
|
7
|
+
const path_1 = require("./path");
|
|
8
|
+
const ol_element_container_1 = require("../dom/elements/ol-element-container");
|
|
9
|
+
const li_element_container_1 = require("../dom/elements/li-element-container");
|
|
10
|
+
const counter_1 = require("../css/types/functions/counter");
|
|
11
|
+
const length_percentage_1 = require("../css/types/length-percentage");
|
|
12
|
+
class StackingContext {
|
|
13
|
+
constructor(container) {
|
|
14
14
|
this.element = container;
|
|
15
15
|
this.inlineLevel = [];
|
|
16
16
|
this.nonInlineLevel = [];
|
|
@@ -20,11 +20,10 @@ var StackingContext = /** @class */ (function () {
|
|
|
20
20
|
this.nonPositionedFloats = [];
|
|
21
21
|
this.nonPositionedInlineLevel = [];
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
}());
|
|
23
|
+
}
|
|
25
24
|
exports.StackingContext = StackingContext;
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
class ElementPaint {
|
|
26
|
+
constructor(container, parent) {
|
|
28
27
|
this.container = container;
|
|
29
28
|
this.parent = parent;
|
|
30
29
|
this.effects = [];
|
|
@@ -33,27 +32,27 @@ var ElementPaint = /** @class */ (function () {
|
|
|
33
32
|
this.effects.push(new effects_1.OpacityEffect(this.container.styles.opacity));
|
|
34
33
|
}
|
|
35
34
|
if (this.container.styles.rotate !== null) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const origin = this.container.styles.transformOrigin;
|
|
36
|
+
const offsetX = this.container.bounds.left + (0, length_percentage_1.getAbsoluteValue)(origin[0], this.container.bounds.width);
|
|
37
|
+
const offsetY = this.container.bounds.top + (0, length_percentage_1.getAbsoluteValue)(origin[1], this.container.bounds.height);
|
|
39
38
|
// Apply rotate property if present
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
const angle = this.container.styles.rotate;
|
|
40
|
+
const rad = (angle * Math.PI) / 180;
|
|
41
|
+
const cos = Math.cos(rad);
|
|
42
|
+
const sin = Math.sin(rad);
|
|
43
|
+
const rotateMatrix = [cos, sin, -sin, cos, 0, 0];
|
|
45
44
|
this.effects.push(new effects_1.TransformEffect(offsetX, offsetY, rotateMatrix));
|
|
46
45
|
}
|
|
47
46
|
if (this.container.styles.transform !== null) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
const origin = this.container.styles.transformOrigin;
|
|
48
|
+
const offsetX = this.container.bounds.left + (0, length_percentage_1.getAbsoluteValue)(origin[0], this.container.bounds.width);
|
|
49
|
+
const offsetY = this.container.bounds.top + (0, length_percentage_1.getAbsoluteValue)(origin[1], this.container.bounds.height);
|
|
50
|
+
const matrix = this.container.styles.transform;
|
|
52
51
|
this.effects.push(new effects_1.TransformEffect(offsetX, offsetY, matrix));
|
|
53
52
|
}
|
|
54
53
|
if (this.container.styles.overflowX !== 0 /* OVERFLOW.VISIBLE */) {
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
const borderBox = (0, bound_curves_1.calculateBorderBoxPath)(this.curves);
|
|
55
|
+
const paddingBox = (0, bound_curves_1.calculatePaddingBoxPath)(this.curves);
|
|
57
56
|
if ((0, path_1.equalPath)(borderBox, paddingBox)) {
|
|
58
57
|
this.effects.push(new effects_1.ClipEffect(borderBox, 2 /* EffectTarget.BACKGROUND_BORDERS */ | 4 /* EffectTarget.CONTENT */));
|
|
59
58
|
}
|
|
@@ -63,74 +62,73 @@ var ElementPaint = /** @class */ (function () {
|
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
getEffects(target) {
|
|
66
|
+
let inFlow = [2 /* POSITION.ABSOLUTE */, 3 /* POSITION.FIXED */].indexOf(this.container.styles.position) === -1;
|
|
67
|
+
let parent = this.parent;
|
|
68
|
+
const effects = this.effects.slice(0);
|
|
70
69
|
while (parent) {
|
|
71
|
-
|
|
70
|
+
const croplessEffects = parent.effects.filter((effect) => !(0, effects_1.isClipEffect)(effect));
|
|
72
71
|
if (inFlow || parent.container.styles.position !== 0 /* POSITION.STATIC */ || !parent.parent) {
|
|
73
72
|
inFlow = [2 /* POSITION.ABSOLUTE */, 3 /* POSITION.FIXED */].indexOf(parent.container.styles.position) === -1;
|
|
74
73
|
if (parent.container.styles.overflowX !== 0 /* OVERFLOW.VISIBLE */) {
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
const borderBox = (0, bound_curves_1.calculateBorderBoxPath)(parent.curves);
|
|
75
|
+
const paddingBox = (0, bound_curves_1.calculatePaddingBoxPath)(parent.curves);
|
|
77
76
|
if (!(0, path_1.equalPath)(borderBox, paddingBox)) {
|
|
78
77
|
effects.unshift(new effects_1.ClipEffect(paddingBox, 2 /* EffectTarget.BACKGROUND_BORDERS */ | 4 /* EffectTarget.CONTENT */));
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
|
-
effects.unshift
|
|
80
|
+
effects.unshift(...croplessEffects);
|
|
82
81
|
}
|
|
83
82
|
else {
|
|
84
|
-
effects.unshift
|
|
83
|
+
effects.unshift(...croplessEffects);
|
|
85
84
|
}
|
|
86
85
|
parent = parent.parent;
|
|
87
86
|
}
|
|
88
|
-
return effects.filter(
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
}());
|
|
87
|
+
return effects.filter((effect) => (0, bitwise_1.contains)(effect.target, target));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
92
90
|
exports.ElementPaint = ElementPaint;
|
|
93
|
-
|
|
94
|
-
parent.container.elements.forEach(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
const parseStackTree = (parent, stackingContext, realStackingContext, listItems) => {
|
|
92
|
+
parent.container.elements.forEach((child) => {
|
|
93
|
+
const treatAsRealStackingContext = (0, bitwise_1.contains)(child.flags, 4 /* FLAGS.CREATES_REAL_STACKING_CONTEXT */);
|
|
94
|
+
const createsStackingContext = (0, bitwise_1.contains)(child.flags, 2 /* FLAGS.CREATES_STACKING_CONTEXT */);
|
|
95
|
+
const paintContainer = new ElementPaint(child, parent);
|
|
98
96
|
if ((0, bitwise_1.contains)(child.styles.display, 2048 /* DISPLAY.LIST_ITEM */)) {
|
|
99
97
|
listItems.push(paintContainer);
|
|
100
98
|
}
|
|
101
|
-
|
|
99
|
+
const listOwnerItems = (0, bitwise_1.contains)(child.flags, 8 /* FLAGS.IS_LIST_OWNER */) ? [] : listItems;
|
|
102
100
|
if (treatAsRealStackingContext || createsStackingContext) {
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
const parentStack = treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext;
|
|
102
|
+
const stack = new StackingContext(paintContainer);
|
|
105
103
|
if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) {
|
|
106
|
-
|
|
107
|
-
if (
|
|
108
|
-
|
|
109
|
-
parentStack.negativeZIndex.some(
|
|
110
|
-
if (
|
|
111
|
-
|
|
104
|
+
const order = child.styles.zIndex.order;
|
|
105
|
+
if (order < 0) {
|
|
106
|
+
let index = 0;
|
|
107
|
+
parentStack.negativeZIndex.some((current, i) => {
|
|
108
|
+
if (order > current.element.container.styles.zIndex.order) {
|
|
109
|
+
index = i;
|
|
112
110
|
return false;
|
|
113
111
|
}
|
|
114
|
-
else if (
|
|
112
|
+
else if (index > 0) {
|
|
115
113
|
return true;
|
|
116
114
|
}
|
|
117
115
|
return false;
|
|
118
116
|
});
|
|
119
|
-
parentStack.negativeZIndex.splice(
|
|
117
|
+
parentStack.negativeZIndex.splice(index, 0, stack);
|
|
120
118
|
}
|
|
121
|
-
else if (
|
|
122
|
-
|
|
123
|
-
parentStack.positiveZIndex.some(
|
|
124
|
-
if (
|
|
125
|
-
|
|
119
|
+
else if (order > 0) {
|
|
120
|
+
let index = 0;
|
|
121
|
+
parentStack.positiveZIndex.some((current, i) => {
|
|
122
|
+
if (order >= current.element.container.styles.zIndex.order) {
|
|
123
|
+
index = i + 1;
|
|
126
124
|
return false;
|
|
127
125
|
}
|
|
128
|
-
else if (
|
|
126
|
+
else if (index > 0) {
|
|
129
127
|
return true;
|
|
130
128
|
}
|
|
131
129
|
return false;
|
|
132
130
|
});
|
|
133
|
-
parentStack.positiveZIndex.splice(
|
|
131
|
+
parentStack.positiveZIndex.splice(index, 0, stack);
|
|
134
132
|
}
|
|
135
133
|
else {
|
|
136
134
|
parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack);
|
|
@@ -160,11 +158,11 @@ var parseStackTree = function (parent, stackingContext, realStackingContext, lis
|
|
|
160
158
|
}
|
|
161
159
|
});
|
|
162
160
|
};
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
for (
|
|
167
|
-
|
|
161
|
+
const processListItems = (owner, elements) => {
|
|
162
|
+
let numbering = owner instanceof ol_element_container_1.OLElementContainer ? owner.start : 1;
|
|
163
|
+
const reversed = owner instanceof ol_element_container_1.OLElementContainer ? owner.reversed : false;
|
|
164
|
+
for (let i = 0; i < elements.length; i++) {
|
|
165
|
+
const item = elements[i];
|
|
168
166
|
if (item.container instanceof li_element_container_1.LIElementContainer &&
|
|
169
167
|
typeof item.container.value === 'number' &&
|
|
170
168
|
item.container.value !== 0) {
|
|
@@ -174,10 +172,10 @@ var processListItems = function (owner, elements) {
|
|
|
174
172
|
numbering += reversed ? -1 : 1;
|
|
175
173
|
}
|
|
176
174
|
};
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
175
|
+
const parseStackingContexts = (container) => {
|
|
176
|
+
const paintContainer = new ElementPaint(container, null);
|
|
177
|
+
const root = new StackingContext(paintContainer);
|
|
178
|
+
const listItems = [];
|
|
181
179
|
parseStackTree(paintContainer, root, root, listItems);
|
|
182
180
|
processListItems(paintContainer.container, listItems);
|
|
183
181
|
return root;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stacking-context.js","sourceRoot":"","sources":["../../../src/render/stacking-context.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"stacking-context.js","sourceRoot":"","sources":["../../../src/render/stacking-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isVector = exports.Vector = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
class Vector {
|
|
5
|
+
constructor(x, y) {
|
|
6
6
|
this.type = 0 /* PathType.VECTOR */;
|
|
7
7
|
this.x = x;
|
|
8
8
|
this.y = y;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
add(deltaX, deltaY) {
|
|
11
11
|
return new Vector(this.x + deltaX, this.y + deltaY);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
}());
|
|
12
|
+
}
|
|
13
|
+
}
|
|
15
14
|
exports.Vector = Vector;
|
|
16
|
-
|
|
15
|
+
const isVector = (path) => path.type === 0 /* PathType.VECTOR */;
|
|
17
16
|
exports.isVector = isVector;
|
|
18
17
|
//# sourceMappingURL=vector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/render/vector.ts"],"names":[],"mappings":";;;AAEA;
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/render/vector.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IAKf,YAAY,CAAS,EAAE,CAAS;QAC5B,IAAI,CAAC,IAAI,0BAAkB,CAAC;QAC5B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,MAAc;QAC9B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACxD,CAAC;CACJ;AAdD,wBAcC;AAEM,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,4BAAoB,CAAC;AAAzE,QAAA,QAAQ,YAAiE"}
|
|
@@ -4,9 +4,11 @@ export declare const CHECKBOX = "checkbox";
|
|
|
4
4
|
export declare const RADIO = "radio";
|
|
5
5
|
export declare const PASSWORD = "password";
|
|
6
6
|
export declare const INPUT_COLOR = 707406591;
|
|
7
|
+
export declare const PLACEHOLDER_COLOR = 1970632191;
|
|
7
8
|
export declare class InputElementContainer extends ElementContainer {
|
|
8
9
|
readonly type: string;
|
|
9
10
|
readonly checked: boolean;
|
|
10
11
|
readonly value: string;
|
|
12
|
+
readonly isPlaceholder: boolean;
|
|
11
13
|
constructor(context: Context, input: HTMLInputElement);
|
|
12
14
|
}
|
package/dist/types/index.d.ts
CHANGED
package/eslint.config.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import tseslint from '@typescript-eslint/eslint-plugin';
|
|
2
|
+
import tsparser from '@typescript-eslint/parser';
|
|
3
|
+
import prettier from 'eslint-plugin-prettier';
|
|
4
|
+
import prettierConfig from 'eslint-config-prettier';
|
|
5
|
+
|
|
6
|
+
export default [
|
|
7
|
+
{
|
|
8
|
+
files: ['**/*.ts'],
|
|
9
|
+
languageOptions: {
|
|
10
|
+
parser: tsparser,
|
|
11
|
+
parserOptions: {
|
|
12
|
+
project: ['./tsconfig.json', './tests/tsconfig.json'],
|
|
13
|
+
ecmaVersion: 2018,
|
|
14
|
+
sourceType: 'module',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
plugins: {
|
|
18
|
+
'@typescript-eslint': tseslint,
|
|
19
|
+
prettier: prettier,
|
|
20
|
+
},
|
|
21
|
+
rules: {
|
|
22
|
+
...prettierConfig.rules,
|
|
23
|
+
'no-console': ['error', { allow: ['warn', 'error'] }],
|
|
24
|
+
'@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],
|
|
25
|
+
'@typescript-eslint/interface-name-prefix': 'off',
|
|
26
|
+
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
27
|
+
'@typescript-eslint/no-use-before-define': 'off',
|
|
28
|
+
'@typescript-eslint/no-unused-vars': 'off',
|
|
29
|
+
'@typescript-eslint/class-name-casing': 'off',
|
|
30
|
+
'@typescript-eslint/ban-ts-comment': 'off',
|
|
31
|
+
'prettier/prettier': 'error',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
package/jest.config.cjs
ADDED
package/karma.conf.cjs
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
// Karma configuration
|
|
2
|
+
// Generated on Sat Aug 05 2017 23:42:26 GMT+0800 (Malay Peninsula Standard Time)
|
|
3
|
+
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const simctl = require('node-simctl');
|
|
6
|
+
const iosSimulator = require('appium-ios-simulator');
|
|
7
|
+
const listenAddress = 'localhost';
|
|
8
|
+
const port = 9876;
|
|
9
|
+
|
|
10
|
+
const log = require('karma/lib/logger').create('launcher:MobileSafari');
|
|
11
|
+
|
|
12
|
+
module.exports = function(config) {
|
|
13
|
+
// https://github.com/actions/virtual-environments/blob/master/images/macos/macos-10.15-Readme.md
|
|
14
|
+
const launchers = {
|
|
15
|
+
Safari_IOS_9: {
|
|
16
|
+
base: 'MobileSafari',
|
|
17
|
+
name: 'iPhone 5s',
|
|
18
|
+
platform: 'iOS',
|
|
19
|
+
sdk: '9.0'
|
|
20
|
+
},
|
|
21
|
+
Safari_IOS_10: {
|
|
22
|
+
base: 'MobileSafari',
|
|
23
|
+
name: 'iPhone 5s',
|
|
24
|
+
platform: 'iOS',
|
|
25
|
+
sdk: '10.0'
|
|
26
|
+
},
|
|
27
|
+
Safari_IOS_12: {
|
|
28
|
+
base: 'MobileSafari',
|
|
29
|
+
name: 'iPhone 5s',
|
|
30
|
+
platform: 'iOS',
|
|
31
|
+
sdk: '12.4'
|
|
32
|
+
},
|
|
33
|
+
Safari_IOS_13: {
|
|
34
|
+
base: 'MobileSafari',
|
|
35
|
+
name: 'iPhone 8',
|
|
36
|
+
platform: 'iOS',
|
|
37
|
+
sdk: '13.7'
|
|
38
|
+
},
|
|
39
|
+
Safari_IOS_14: {
|
|
40
|
+
base: 'MobileSafari',
|
|
41
|
+
name: 'iPhone 8',
|
|
42
|
+
platform: 'iOS',
|
|
43
|
+
sdk: '14.4'
|
|
44
|
+
},
|
|
45
|
+
Safari_IOS_15_0: {
|
|
46
|
+
base: 'MobileSafari',
|
|
47
|
+
name: 'iPhone 13',
|
|
48
|
+
platform: 'iOS',
|
|
49
|
+
sdk: '15.0'
|
|
50
|
+
},
|
|
51
|
+
Safari_IOS_15: {
|
|
52
|
+
base: 'MobileSafari',
|
|
53
|
+
name: 'iPhone 13',
|
|
54
|
+
platform: 'iOS',
|
|
55
|
+
sdk: '15.2'
|
|
56
|
+
},
|
|
57
|
+
SauceLabs_IE9: {
|
|
58
|
+
base: 'SauceLabs',
|
|
59
|
+
browserName: 'internet explorer',
|
|
60
|
+
version: '9.0',
|
|
61
|
+
platform: 'Windows 7'
|
|
62
|
+
},
|
|
63
|
+
SauceLabs_IE10: {
|
|
64
|
+
base: 'SauceLabs',
|
|
65
|
+
browserName: 'internet explorer',
|
|
66
|
+
version: '10.0',
|
|
67
|
+
platform: 'Windows 7'
|
|
68
|
+
},
|
|
69
|
+
SauceLabs_IE11: {
|
|
70
|
+
base: 'SauceLabs',
|
|
71
|
+
browserName: 'internet explorer',
|
|
72
|
+
version: '11.0',
|
|
73
|
+
platform: 'Windows 7'
|
|
74
|
+
},
|
|
75
|
+
SauceLabs_Edge18: {
|
|
76
|
+
base: 'SauceLabs',
|
|
77
|
+
browserName: 'MicrosoftEdge',
|
|
78
|
+
version: '18.17763',
|
|
79
|
+
platform: 'Windows 10'
|
|
80
|
+
},
|
|
81
|
+
SauceLabs_Android4: {
|
|
82
|
+
base: 'SauceLabs',
|
|
83
|
+
browserName: 'Browser',
|
|
84
|
+
platform: 'Android',
|
|
85
|
+
version: '4.4',
|
|
86
|
+
device: 'Android Emulator',
|
|
87
|
+
},
|
|
88
|
+
SauceLabs_iOS10_3: {
|
|
89
|
+
base: 'SauceLabs',
|
|
90
|
+
browserName: 'Safari',
|
|
91
|
+
platform: 'iOS',
|
|
92
|
+
version: '10.3',
|
|
93
|
+
device: 'iPhone 7 Plus Simulator'
|
|
94
|
+
},
|
|
95
|
+
SauceLabs_iOS9_3: {
|
|
96
|
+
base: 'SauceLabs',
|
|
97
|
+
browserName: 'Safari',
|
|
98
|
+
platform: 'iOS',
|
|
99
|
+
version: '9.3',
|
|
100
|
+
device: 'iPhone 6 Plus Simulator'
|
|
101
|
+
},
|
|
102
|
+
IE_9: {
|
|
103
|
+
base: 'IE',
|
|
104
|
+
'x-ua-compatible': 'IE=EmulateIE9',
|
|
105
|
+
flags: ['-extoff']
|
|
106
|
+
},
|
|
107
|
+
IE_10: {
|
|
108
|
+
base: 'IE',
|
|
109
|
+
'x-ua-compatible': 'IE=EmulateIE10',
|
|
110
|
+
flags: ['-extoff']
|
|
111
|
+
},
|
|
112
|
+
IE_11: {
|
|
113
|
+
base: 'IE',
|
|
114
|
+
flags: ['-extoff']
|
|
115
|
+
},
|
|
116
|
+
Safari_Stable: {
|
|
117
|
+
base: 'SafariNative'
|
|
118
|
+
},
|
|
119
|
+
Chrome_Stable: {
|
|
120
|
+
base: 'ChromeHeadless'
|
|
121
|
+
},
|
|
122
|
+
Firefox_Stable: {
|
|
123
|
+
base: 'Firefox'
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const ciLauncher = launchers[process.env.TARGET_BROWSER];
|
|
128
|
+
|
|
129
|
+
const customLaunchers = ciLauncher ? {target_browser: ciLauncher} : {
|
|
130
|
+
stable_chrome: {
|
|
131
|
+
base: 'ChromeHeadless'
|
|
132
|
+
},
|
|
133
|
+
stable_firefox: {
|
|
134
|
+
base: 'Firefox'
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const injectTypedArrayPolyfills = function(files) {
|
|
139
|
+
files.unshift({
|
|
140
|
+
pattern: path.resolve(__dirname, './node_modules/js-polyfills/typedarray.js'),
|
|
141
|
+
included: true,
|
|
142
|
+
served: true,
|
|
143
|
+
watched: false
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
injectTypedArrayPolyfills.$inject = ['config.files'];
|
|
148
|
+
|
|
149
|
+
const MobileSafari = function(baseBrowserDecorator, args) {
|
|
150
|
+
if(process.platform !== "darwin"){
|
|
151
|
+
log.error("This launcher only works in MacOS.");
|
|
152
|
+
this._process.kill();
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
baseBrowserDecorator(this);
|
|
156
|
+
this.on('start', url => {
|
|
157
|
+
simctl.getDevices(args.sdk, args.platform).then(devices => {
|
|
158
|
+
const d = devices.find(d => {
|
|
159
|
+
return d.name === args.name;
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
if (!d) {
|
|
163
|
+
log.error(`No device found for sdk ${args.sdk} with name ${args.name}`);
|
|
164
|
+
log.info(`Available devices:`, devices);
|
|
165
|
+
this._process.kill();
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return iosSimulator.getSimulator(d.udid).then(device => {
|
|
170
|
+
return simctl.bootDevice(d.udid).then(() => device);
|
|
171
|
+
}).then(device => {
|
|
172
|
+
return device.waitForBoot(60 * 5 * 1000).then(() => {
|
|
173
|
+
return device.openUrl(url);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
}).catch(e => {
|
|
177
|
+
console.log('err,', e);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
MobileSafari.prototype = {
|
|
183
|
+
name: 'MobileSafari',
|
|
184
|
+
DEFAULT_CMD: {
|
|
185
|
+
darwin: '/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator',
|
|
186
|
+
},
|
|
187
|
+
ENV_CMD: null,
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
MobileSafari.$inject = ['baseBrowserDecorator', 'args'];
|
|
191
|
+
|
|
192
|
+
config.set({
|
|
193
|
+
|
|
194
|
+
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
195
|
+
basePath: '',
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
// frameworks to use
|
|
199
|
+
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
200
|
+
frameworks: ['mocha', 'inline-mocha-fix'],
|
|
201
|
+
|
|
202
|
+
// list of files / patterns to load in the browser
|
|
203
|
+
files: [
|
|
204
|
+
'build/testrunner.js',
|
|
205
|
+
{ pattern: './tests/**/*', 'watched': true, 'included': false, 'served': true},
|
|
206
|
+
{ pattern: './dist/**/*', 'watched': true, 'included': false, 'served': true},
|
|
207
|
+
{ pattern: './node_modules/**/*', 'watched': true, 'included': false, 'served': true},
|
|
208
|
+
],
|
|
209
|
+
|
|
210
|
+
plugins: [
|
|
211
|
+
'karma-*',
|
|
212
|
+
{
|
|
213
|
+
'framework:inline-mocha-fix': ['factory', injectTypedArrayPolyfills]
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
'launcher:MobileSafari': ['type', MobileSafari]
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
|
|
220
|
+
// list of files to exclude
|
|
221
|
+
exclude: [
|
|
222
|
+
],
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
// preprocess matching files before serving them to the browser
|
|
226
|
+
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
227
|
+
preprocessors: {
|
|
228
|
+
},
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
// test results reporter to use
|
|
232
|
+
// possible values: 'dots', 'progress'
|
|
233
|
+
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
234
|
+
reporters: ['dots', 'junit'],
|
|
235
|
+
|
|
236
|
+
junitReporter: {
|
|
237
|
+
outputDir: 'tmp/junit/'
|
|
238
|
+
},
|
|
239
|
+
|
|
240
|
+
// web server listen address,
|
|
241
|
+
listenAddress,
|
|
242
|
+
|
|
243
|
+
// web server port
|
|
244
|
+
port,
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
// enable / disable colors in the output (reporters and logs)
|
|
248
|
+
colors: true,
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
// level of logging
|
|
252
|
+
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
253
|
+
logLevel: config.LOG_INFO,
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
// enable / disable watching file and executing tests whenever any file changes
|
|
257
|
+
autoWatch: true,
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
// start these browsers
|
|
261
|
+
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
262
|
+
browsers: Object.keys(customLaunchers),
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
customLaunchers,
|
|
266
|
+
|
|
267
|
+
// Continuous Integration mode
|
|
268
|
+
// if true, Karma captures browsers, runs the tests and exits
|
|
269
|
+
singleRun: true,
|
|
270
|
+
|
|
271
|
+
// Concurrency level
|
|
272
|
+
// how many browser should be started simultaneous
|
|
273
|
+
concurrency: 5,
|
|
274
|
+
|
|
275
|
+
proxies: {
|
|
276
|
+
'/dist': `http://localhost:${port}/base/dist`,
|
|
277
|
+
'/node_modules': `http://localhost:${port}/base/node_modules`,
|
|
278
|
+
'/tests': `http://localhost:${port}/base/tests`,
|
|
279
|
+
'/assets': `http://localhost:${port}/base/tests/assets`
|
|
280
|
+
},
|
|
281
|
+
|
|
282
|
+
client: {
|
|
283
|
+
mocha: {
|
|
284
|
+
// change Karma's debug.html to the mocha web reporter
|
|
285
|
+
reporter: 'html'
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
captureTimeout: 300000,
|
|
290
|
+
|
|
291
|
+
browserDisconnectTimeout: 60000,
|
|
292
|
+
|
|
293
|
+
browserNoActivityTimeout: 1200000
|
|
294
|
+
})
|
|
295
|
+
};
|