html2canvas-pro 2.0.4 → 2.1.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.
- package/README.md +8 -6
- package/dist/html2canvas-pro.esm.js +10103 -9993
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +10102 -9993
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +5 -5
- package/dist/lib/config.js +3 -4
- package/dist/lib/core/bitwise.js +0 -1
- package/dist/lib/core/cache-storage.js +36 -50
- package/dist/lib/core/context.js +0 -1
- package/dist/lib/core/debugger.js +0 -1
- package/dist/lib/core/features.js +2 -3
- package/dist/lib/core/logger.js +0 -1
- package/dist/lib/core/origin-checker.js +0 -1
- package/dist/lib/core/performance-monitor.js +1 -24
- package/dist/lib/core/render-element.js +210 -0
- package/dist/lib/core/util.js +0 -1
- package/dist/lib/core/validator.js +0 -1
- package/dist/lib/css/index.js +149 -90
- package/dist/lib/css/layout/bounds.js +0 -1
- package/dist/lib/css/layout/text.js +0 -1
- package/dist/lib/css/{ITypeDescriptor.js → property-descriptor.js} +0 -1
- package/dist/lib/css/property-descriptors/background-clip.js +0 -1
- package/dist/lib/css/property-descriptors/background-color.js +0 -1
- package/dist/lib/css/property-descriptors/background-image.js +0 -1
- package/dist/lib/css/property-descriptors/background-origin.js +0 -1
- package/dist/lib/css/property-descriptors/background-position.js +0 -1
- package/dist/lib/css/property-descriptors/background-repeat.js +0 -1
- package/dist/lib/css/property-descriptors/background-size.js +0 -1
- package/dist/lib/css/property-descriptors/border-color.js +0 -1
- package/dist/lib/css/property-descriptors/border-radius.js +0 -1
- package/dist/lib/css/property-descriptors/border-style.js +0 -1
- package/dist/lib/css/property-descriptors/border-width.js +0 -1
- package/dist/lib/css/property-descriptors/box-shadow.js +0 -1
- package/dist/lib/css/property-descriptors/clip-path.js +0 -1
- package/dist/lib/css/property-descriptors/color.js +0 -1
- package/dist/lib/css/property-descriptors/content.js +0 -1
- package/dist/lib/css/property-descriptors/counter-increment.js +0 -1
- package/dist/lib/css/property-descriptors/counter-reset.js +0 -1
- package/dist/lib/css/property-descriptors/direction.js +0 -1
- package/dist/lib/css/property-descriptors/display.js +0 -1
- package/dist/lib/css/property-descriptors/duration.js +0 -1
- package/dist/lib/css/property-descriptors/float.js +0 -1
- package/dist/lib/css/property-descriptors/font-family.js +0 -1
- package/dist/lib/css/property-descriptors/font-size.js +0 -1
- package/dist/lib/css/property-descriptors/font-style.js +0 -1
- package/dist/lib/css/property-descriptors/font-variant.js +0 -1
- package/dist/lib/css/property-descriptors/font-weight.js +0 -1
- package/dist/lib/css/property-descriptors/image-rendering.js +0 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js +0 -1
- package/dist/lib/css/property-descriptors/line-break.js +0 -1
- package/dist/lib/css/property-descriptors/line-height.js +0 -1
- package/dist/lib/css/property-descriptors/list-style-image.js +0 -1
- package/dist/lib/css/property-descriptors/list-style-position.js +0 -1
- package/dist/lib/css/property-descriptors/list-style-type.js +0 -1
- package/dist/lib/css/property-descriptors/margin.js +0 -1
- package/dist/lib/css/property-descriptors/mix-blend-mode.js +31 -0
- package/dist/lib/css/property-descriptors/object-fit.js +0 -1
- package/dist/lib/css/property-descriptors/opacity.js +0 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js +0 -1
- package/dist/lib/css/property-descriptors/overflow.js +0 -1
- package/dist/lib/css/property-descriptors/padding.js +0 -1
- package/dist/lib/css/property-descriptors/paint-order.js +0 -1
- package/dist/lib/css/property-descriptors/position.js +0 -1
- package/dist/lib/css/property-descriptors/quotes.js +0 -1
- package/dist/lib/css/property-descriptors/rotate.js +0 -1
- package/dist/lib/css/property-descriptors/text-align.js +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-color.js +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-line.js +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-style.js +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-thickness.js +0 -1
- package/dist/lib/css/property-descriptors/text-overflow.js +0 -1
- package/dist/lib/css/property-descriptors/text-shadow.js +0 -1
- package/dist/lib/css/property-descriptors/text-transform.js +0 -1
- package/dist/lib/css/property-descriptors/text-underline-offset.js +0 -1
- package/dist/lib/css/property-descriptors/transform-origin.js +0 -1
- package/dist/lib/css/property-descriptors/transform.js +0 -1
- package/dist/lib/css/property-descriptors/visibility.js +0 -1
- package/dist/lib/css/property-descriptors/webkit-line-clamp.js +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +0 -1
- package/dist/lib/css/property-descriptors/word-break.js +0 -1
- package/dist/lib/css/property-descriptors/writing-mode.js +0 -1
- package/dist/lib/css/property-descriptors/z-index.js +0 -1
- package/dist/lib/css/syntax/parser.js +0 -1
- package/dist/lib/css/syntax/tokenizer.js +14 -1
- package/dist/lib/css/{IPropertyDescriptor.js → type-descriptor.js} +0 -1
- package/dist/lib/css/types/angle.js +0 -1
- package/dist/lib/css/types/color-math.js +0 -1
- package/dist/lib/css/types/color-spaces/a98.js +0 -1
- package/dist/lib/css/types/color-spaces/p3.js +0 -1
- package/dist/lib/css/types/color-spaces/pro-photo.js +0 -1
- package/dist/lib/css/types/color-spaces/rec2020.js +0 -1
- package/dist/lib/css/types/color-spaces/srgb.js +0 -1
- package/dist/lib/css/types/color-utilities.js +0 -1
- package/dist/lib/css/types/color.js +0 -1
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js +0 -1
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js +0 -1
- package/dist/lib/css/types/functions/-webkit-gradient.js +0 -1
- package/dist/lib/css/types/functions/counter.js +0 -1
- package/dist/lib/css/types/functions/gradient.js +0 -1
- package/dist/lib/css/types/functions/linear-gradient.js +0 -1
- package/dist/lib/css/types/functions/radial-gradient.js +0 -1
- package/dist/lib/css/types/image.js +0 -1
- package/dist/lib/css/types/index.js +0 -1
- package/dist/lib/css/types/length-percentage.js +0 -1
- package/dist/lib/css/types/length.js +0 -1
- package/dist/lib/css/types/time.js +0 -1
- package/dist/lib/dom/document-cloner.js +27 -22
- package/dist/lib/dom/dom-normalizer.js +0 -1
- package/dist/lib/dom/element-container.js +7 -6
- package/dist/lib/dom/elements/li-element-container.js +0 -1
- package/dist/lib/dom/elements/ol-element-container.js +0 -1
- package/dist/lib/dom/elements/select-element-container.js +0 -1
- package/dist/lib/dom/elements/textarea-element-container.js +0 -1
- package/dist/lib/dom/node-parser.js +37 -53
- package/dist/lib/dom/node-type-guards.js +62 -25
- package/dist/lib/dom/replaced-elements/canvas-element-container.js +0 -1
- package/dist/lib/dom/replaced-elements/iframe-element-container.js +0 -1
- package/dist/lib/dom/replaced-elements/image-element-container.js +0 -1
- package/dist/lib/dom/replaced-elements/index.js +0 -1
- package/dist/lib/dom/replaced-elements/input-element-container.js +0 -1
- package/dist/lib/dom/replaced-elements/pseudo-elements.js +0 -1
- package/dist/lib/dom/replaced-elements/svg-element-container.js +0 -1
- package/dist/lib/dom/text-container.js +0 -1
- package/dist/lib/index.js +32 -210
- package/dist/lib/options.js +2 -0
- package/dist/lib/render/background.js +0 -1
- package/dist/lib/render/bezier-curve.js +0 -1
- package/dist/lib/render/border.js +0 -1
- package/dist/lib/render/bound-curves.js +0 -1
- package/dist/lib/render/box-sizing.js +0 -1
- package/dist/lib/render/canvas/background-renderer.js +8 -24
- package/dist/lib/render/canvas/border-renderer.js +0 -1
- package/dist/lib/render/canvas/canvas-path.js +25 -0
- package/dist/lib/render/canvas/canvas-renderer.js +28 -97
- package/dist/lib/render/canvas/effects-renderer.js +3 -1
- package/dist/lib/render/canvas/foreignobject-renderer.js +13 -17
- package/dist/lib/render/canvas/text-renderer.js +61 -117
- package/dist/lib/render/effects.js +11 -2
- package/dist/lib/render/font-metrics.js +0 -1
- package/dist/lib/render/object-fit.js +87 -0
- package/dist/lib/render/path.js +0 -1
- package/dist/lib/render/renderer-interface.js +0 -1
- package/dist/lib/render/stacking-context.js +16 -8
- package/dist/lib/render/vector.js +0 -1
- package/dist/types/core/cache-storage.d.ts +5 -6
- package/dist/types/core/performance-monitor.d.ts +0 -11
- package/dist/types/core/render-element.d.ts +3 -0
- package/dist/types/css/index.d.ts +3 -0
- package/dist/types/css/property-descriptors/background-clip.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-color.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-image.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-origin.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-position.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-repeat.d.ts +1 -1
- package/dist/types/css/property-descriptors/background-size.d.ts +1 -1
- package/dist/types/css/property-descriptors/border-color.d.ts +1 -1
- package/dist/types/css/property-descriptors/border-radius.d.ts +1 -1
- package/dist/types/css/property-descriptors/border-style.d.ts +1 -1
- package/dist/types/css/property-descriptors/border-width.d.ts +1 -1
- package/dist/types/css/property-descriptors/box-shadow.d.ts +1 -1
- package/dist/types/css/property-descriptors/clip-path.d.ts +1 -1
- package/dist/types/css/property-descriptors/color.d.ts +1 -1
- package/dist/types/css/property-descriptors/content.d.ts +1 -1
- package/dist/types/css/property-descriptors/counter-increment.d.ts +1 -1
- package/dist/types/css/property-descriptors/counter-reset.d.ts +1 -1
- package/dist/types/css/property-descriptors/direction.d.ts +1 -1
- package/dist/types/css/property-descriptors/display.d.ts +1 -1
- package/dist/types/css/property-descriptors/duration.d.ts +1 -1
- package/dist/types/css/property-descriptors/float.d.ts +1 -1
- package/dist/types/css/property-descriptors/font-family.d.ts +1 -1
- package/dist/types/css/property-descriptors/font-size.d.ts +1 -1
- package/dist/types/css/property-descriptors/font-style.d.ts +1 -1
- package/dist/types/css/property-descriptors/font-variant.d.ts +1 -1
- package/dist/types/css/property-descriptors/font-weight.d.ts +1 -1
- package/dist/types/css/property-descriptors/image-rendering.d.ts +1 -1
- package/dist/types/css/property-descriptors/letter-spacing.d.ts +1 -1
- package/dist/types/css/property-descriptors/line-break.d.ts +1 -1
- package/dist/types/css/property-descriptors/line-height.d.ts +1 -1
- package/dist/types/css/property-descriptors/list-style-image.d.ts +1 -1
- package/dist/types/css/property-descriptors/list-style-position.d.ts +1 -1
- package/dist/types/css/property-descriptors/list-style-type.d.ts +1 -1
- package/dist/types/css/property-descriptors/margin.d.ts +1 -1
- package/dist/types/css/property-descriptors/mix-blend-mode.d.ts +21 -0
- package/dist/types/css/property-descriptors/object-fit.d.ts +1 -1
- package/dist/types/css/property-descriptors/opacity.d.ts +1 -1
- package/dist/types/css/property-descriptors/overflow-wrap.d.ts +1 -1
- package/dist/types/css/property-descriptors/overflow.d.ts +1 -1
- package/dist/types/css/property-descriptors/padding.d.ts +1 -1
- package/dist/types/css/property-descriptors/paint-order.d.ts +1 -1
- package/dist/types/css/property-descriptors/position.d.ts +1 -1
- package/dist/types/css/property-descriptors/quotes.d.ts +1 -1
- package/dist/types/css/property-descriptors/rotate.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-align.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-decoration-color.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-decoration-line.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-decoration-style.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-decoration-thickness.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-overflow.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-shadow.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-transform.d.ts +1 -1
- package/dist/types/css/property-descriptors/text-underline-offset.d.ts +1 -1
- package/dist/types/css/property-descriptors/transform-origin.d.ts +1 -1
- package/dist/types/css/property-descriptors/transform.d.ts +1 -1
- package/dist/types/css/property-descriptors/visibility.d.ts +1 -1
- package/dist/types/css/property-descriptors/webkit-line-clamp.d.ts +1 -1
- package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +1 -1
- package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +1 -1
- package/dist/types/css/property-descriptors/word-break.d.ts +1 -1
- package/dist/types/css/property-descriptors/writing-mode.d.ts +1 -1
- package/dist/types/css/property-descriptors/z-index.d.ts +1 -1
- package/dist/types/css/syntax/tokenizer.d.ts +5 -0
- package/dist/types/css/types/angle.d.ts +1 -1
- package/dist/types/css/types/color.d.ts +1 -1
- package/dist/types/css/types/image.d.ts +1 -1
- package/dist/types/css/types/time.d.ts +1 -1
- package/dist/types/dom/element-container.d.ts +4 -11
- package/dist/types/dom/node-parser.d.ts +2 -15
- package/dist/types/dom/node-type-guards.d.ts +21 -22
- package/dist/types/index.d.ts +28 -48
- package/dist/types/options.d.ts +51 -0
- package/dist/types/render/canvas/background-renderer.d.ts +0 -6
- package/dist/types/render/canvas/canvas-path.d.ts +3 -0
- package/dist/types/render/canvas/canvas-renderer.d.ts +4 -2
- package/dist/types/render/canvas/foreignobject-renderer.d.ts +2 -3
- package/dist/types/render/canvas/text-renderer.d.ts +5 -0
- package/dist/types/render/effects.d.ts +9 -1
- package/dist/types/render/object-fit.d.ts +18 -0
- package/package.json +44 -44
- package/demo/image-smoothing-demo.html +0 -256
- package/demo/refactoring-test.html +0 -602
- package/dist/lib/__tests__/index.js +0 -85
- package/dist/lib/__tests__/index.js.map +0 -1
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/core/__mocks__/cache-storage.js +0 -7
- package/dist/lib/core/__mocks__/cache-storage.js.map +0 -1
- package/dist/lib/core/__mocks__/context.js +0 -19
- package/dist/lib/core/__mocks__/context.js.map +0 -1
- package/dist/lib/core/__mocks__/features.js +0 -12
- package/dist/lib/core/__mocks__/features.js.map +0 -1
- package/dist/lib/core/__mocks__/logger.js +0 -16
- package/dist/lib/core/__mocks__/logger.js.map +0 -1
- package/dist/lib/core/__tests__/cache-storage.js +0 -225
- package/dist/lib/core/__tests__/cache-storage.js.map +0 -1
- package/dist/lib/core/__tests__/cache-storage.test.js +0 -158
- package/dist/lib/core/__tests__/cache-storage.test.js.map +0 -1
- package/dist/lib/core/__tests__/logger.js +0 -27
- package/dist/lib/core/__tests__/logger.js.map +0 -1
- package/dist/lib/core/__tests__/validator.js +0 -296
- package/dist/lib/core/__tests__/validator.js.map +0 -1
- package/dist/lib/core/bitwise.js.map +0 -1
- package/dist/lib/core/cache-storage.js.map +0 -1
- package/dist/lib/core/context.js.map +0 -1
- package/dist/lib/core/debugger.js.map +0 -1
- package/dist/lib/core/features.js.map +0 -1
- package/dist/lib/core/logger.js.map +0 -1
- package/dist/lib/core/origin-checker.js.map +0 -1
- package/dist/lib/core/performance-monitor.js.map +0 -1
- package/dist/lib/core/util.js.map +0 -1
- package/dist/lib/core/validator.js.map +0 -1
- package/dist/lib/css/IPropertyDescriptor.js.map +0 -1
- package/dist/lib/css/ITypeDescriptor.js.map +0 -1
- package/dist/lib/css/index.js.map +0 -1
- package/dist/lib/css/layout/__mocks__/bounds.js +0 -9
- package/dist/lib/css/layout/__mocks__/bounds.js.map +0 -1
- package/dist/lib/css/layout/bounds.js.map +0 -1
- package/dist/lib/css/layout/text.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js +0 -49
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js +0 -273
- package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/font-family.js +0 -19
- package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js +0 -143
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js +0 -167
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js +0 -61
- package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js +0 -66
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +0 -82
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +0 -14
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-clip.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-image.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-origin.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-position.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-repeat.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-size.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-radius.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-style.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-width.js.map +0 -1
- package/dist/lib/css/property-descriptors/box-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/clip-path.js.map +0 -1
- package/dist/lib/css/property-descriptors/color.js.map +0 -1
- package/dist/lib/css/property-descriptors/content.js.map +0 -1
- package/dist/lib/css/property-descriptors/counter-increment.js.map +0 -1
- package/dist/lib/css/property-descriptors/counter-reset.js.map +0 -1
- package/dist/lib/css/property-descriptors/direction.js.map +0 -1
- package/dist/lib/css/property-descriptors/display.js.map +0 -1
- package/dist/lib/css/property-descriptors/duration.js.map +0 -1
- package/dist/lib/css/property-descriptors/float.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-family.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-size.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-style.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-variant.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-weight.js.map +0 -1
- package/dist/lib/css/property-descriptors/image-rendering.js.map +0 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js.map +0 -1
- package/dist/lib/css/property-descriptors/line-break.js.map +0 -1
- package/dist/lib/css/property-descriptors/line-height.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-image.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-position.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-type.js.map +0 -1
- package/dist/lib/css/property-descriptors/margin.js.map +0 -1
- package/dist/lib/css/property-descriptors/object-fit.js.map +0 -1
- package/dist/lib/css/property-descriptors/opacity.js.map +0 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js.map +0 -1
- package/dist/lib/css/property-descriptors/overflow.js.map +0 -1
- package/dist/lib/css/property-descriptors/padding.js.map +0 -1
- package/dist/lib/css/property-descriptors/paint-order.js.map +0 -1
- package/dist/lib/css/property-descriptors/position.js.map +0 -1
- package/dist/lib/css/property-descriptors/quotes.js.map +0 -1
- package/dist/lib/css/property-descriptors/rotate.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-align.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-line.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-style.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-thickness.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-overflow.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-transform.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-underline-offset.js.map +0 -1
- package/dist/lib/css/property-descriptors/transform-origin.js.map +0 -1
- package/dist/lib/css/property-descriptors/transform.js.map +0 -1
- package/dist/lib/css/property-descriptors/visibility.js.map +0 -1
- package/dist/lib/css/property-descriptors/webkit-line-clamp.js.map +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +0 -1
- package/dist/lib/css/property-descriptors/word-break.js.map +0 -1
- package/dist/lib/css/property-descriptors/writing-mode.js.map +0 -1
- package/dist/lib/css/property-descriptors/z-index.js.map +0 -1
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +0 -26
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +0 -1
- package/dist/lib/css/syntax/parser.js.map +0 -1
- package/dist/lib/css/syntax/tokenizer.js.map +0 -1
- package/dist/lib/css/types/__tests__/color-tests.js +0 -111
- package/dist/lib/css/types/__tests__/color-tests.js.map +0 -1
- package/dist/lib/css/types/__tests__/image-tests.js +0 -215
- package/dist/lib/css/types/__tests__/image-tests.js.map +0 -1
- package/dist/lib/css/types/angle.js.map +0 -1
- package/dist/lib/css/types/color-math.js.map +0 -1
- package/dist/lib/css/types/color-spaces/a98.js.map +0 -1
- package/dist/lib/css/types/color-spaces/p3.js.map +0 -1
- package/dist/lib/css/types/color-spaces/pro-photo.js.map +0 -1
- package/dist/lib/css/types/color-spaces/rec2020.js.map +0 -1
- package/dist/lib/css/types/color-spaces/srgb.js.map +0 -1
- package/dist/lib/css/types/color-utilities.js.map +0 -1
- package/dist/lib/css/types/color.js.map +0 -1
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/-webkit-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js +0 -63
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/counter.js.map +0 -1
- package/dist/lib/css/types/functions/gradient.js.map +0 -1
- package/dist/lib/css/types/functions/linear-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/radial-gradient.js.map +0 -1
- package/dist/lib/css/types/image.js.map +0 -1
- package/dist/lib/css/types/index.js.map +0 -1
- package/dist/lib/css/types/length-percentage.js.map +0 -1
- package/dist/lib/css/types/length.js.map +0 -1
- package/dist/lib/css/types/time.js.map +0 -1
- package/dist/lib/dom/__mocks__/document-cloner.js +0 -23
- package/dist/lib/dom/__mocks__/document-cloner.js.map +0 -1
- package/dist/lib/dom/__tests__/dom-normalizer.test.js +0 -113
- package/dist/lib/dom/__tests__/dom-normalizer.test.js.map +0 -1
- package/dist/lib/dom/__tests__/element-container.test.js +0 -109
- package/dist/lib/dom/__tests__/element-container.test.js.map +0 -1
- package/dist/lib/dom/document-cloner.js.map +0 -1
- package/dist/lib/dom/dom-normalizer.js.map +0 -1
- package/dist/lib/dom/element-container.js.map +0 -1
- package/dist/lib/dom/elements/li-element-container.js.map +0 -1
- package/dist/lib/dom/elements/ol-element-container.js.map +0 -1
- package/dist/lib/dom/elements/select-element-container.js.map +0 -1
- package/dist/lib/dom/elements/textarea-element-container.js.map +0 -1
- package/dist/lib/dom/node-parser.js.map +0 -1
- package/dist/lib/dom/node-type-guards.js.map +0 -1
- package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/image-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/index.js.map +0 -1
- package/dist/lib/dom/replaced-elements/input-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +0 -1
- package/dist/lib/dom/replaced-elements/svg-element-container.js.map +0 -1
- package/dist/lib/dom/text-container.js.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/invariant.js +0 -10
- package/dist/lib/invariant.js.map +0 -1
- package/dist/lib/render/background.js.map +0 -1
- package/dist/lib/render/bezier-curve.js.map +0 -1
- package/dist/lib/render/border.js.map +0 -1
- package/dist/lib/render/bound-curves.js.map +0 -1
- package/dist/lib/render/box-sizing.js.map +0 -1
- package/dist/lib/render/canvas/__tests__/background-renderer.test.js +0 -65
- package/dist/lib/render/canvas/__tests__/background-renderer.test.js.map +0 -1
- package/dist/lib/render/canvas/__tests__/border-renderer.test.js +0 -23
- package/dist/lib/render/canvas/__tests__/border-renderer.test.js.map +0 -1
- package/dist/lib/render/canvas/__tests__/effects-renderer.test.js +0 -30
- package/dist/lib/render/canvas/__tests__/effects-renderer.test.js.map +0 -1
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js +0 -402
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js.map +0 -1
- package/dist/lib/render/canvas/background-renderer.js.map +0 -1
- package/dist/lib/render/canvas/border-renderer.js.map +0 -1
- package/dist/lib/render/canvas/canvas-renderer.js.map +0 -1
- package/dist/lib/render/canvas/effects-renderer.js.map +0 -1
- package/dist/lib/render/canvas/foreignobject-renderer.js.map +0 -1
- package/dist/lib/render/canvas/text-renderer.js.map +0 -1
- package/dist/lib/render/effects.js.map +0 -1
- package/dist/lib/render/font-metrics.js.map +0 -1
- package/dist/lib/render/path.js.map +0 -1
- package/dist/lib/render/renderer-interface.js.map +0 -1
- package/dist/lib/render/renderer.js +0 -11
- package/dist/lib/render/renderer.js.map +0 -1
- package/dist/lib/render/stacking-context.js.map +0 -1
- package/dist/lib/render/vector.js.map +0 -1
- package/dist/types/__tests__/index.d.ts +0 -1
- package/dist/types/core/__mocks__/cache-storage.d.ts +0 -2
- package/dist/types/core/__mocks__/context.d.ts +0 -9
- package/dist/types/core/__mocks__/features.d.ts +0 -8
- package/dist/types/core/__mocks__/logger.d.ts +0 -9
- package/dist/types/core/__tests__/cache-storage.d.ts +0 -1
- package/dist/types/core/__tests__/cache-storage.test.d.ts +0 -1
- package/dist/types/core/__tests__/logger.d.ts +0 -1
- package/dist/types/core/__tests__/validator.d.ts +0 -1
- package/dist/types/css/layout/__mocks__/bounds.d.ts +0 -2
- package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/clip-path.test.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/image-rendering-integration.test.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/image-rendering-performance.test.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/image-rendering.test.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +0 -1
- package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +0 -1
- package/dist/types/css/types/__tests__/color-tests.d.ts +0 -1
- package/dist/types/css/types/__tests__/image-tests.d.ts +0 -1
- package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +0 -1
- package/dist/types/dom/__mocks__/document-cloner.d.ts +0 -6
- package/dist/types/dom/__tests__/dom-normalizer.test.d.ts +0 -1
- package/dist/types/dom/__tests__/element-container.test.d.ts +0 -1
- package/dist/types/invariant.d.ts +0 -1
- package/dist/types/render/canvas/__tests__/background-renderer.test.d.ts +0 -1
- package/dist/types/render/canvas/__tests__/border-renderer.test.d.ts +0 -1
- package/dist/types/render/canvas/__tests__/effects-renderer.test.d.ts +0 -1
- package/dist/types/render/canvas/__tests__/text-renderer.test.d.ts +0 -1
- package/dist/types/render/renderer.d.ts +0 -7
- package/eslint.config.js +0 -35
- package/jest.config.cjs +0 -5
- package/karma.conf.cjs +0 -300
- /package/dist/types/css/{IPropertyDescriptor.d.ts → property-descriptor.d.ts} +0 -0
- /package/dist/types/css/{ITypeDescriptor.d.ts → type-descriptor.d.ts} +0 -0
|
@@ -180,9 +180,21 @@ const RIGHT_SQUARE_BRACKET_TOKEN = {
|
|
|
180
180
|
const WHITESPACE_TOKEN = { type: 31 /* TokenType.WHITESPACE_TOKEN */ };
|
|
181
181
|
exports.EOF_TOKEN = { type: 32 /* TokenType.EOF_TOKEN */ };
|
|
182
182
|
class Tokenizer {
|
|
183
|
+
static get() {
|
|
184
|
+
return Tokenizer._pool.pop() || new Tokenizer();
|
|
185
|
+
}
|
|
186
|
+
static release(tokenizer) {
|
|
187
|
+
if (Tokenizer._pool.length < Tokenizer.MAX_POOL_SIZE) {
|
|
188
|
+
tokenizer._reset();
|
|
189
|
+
Tokenizer._pool.push(tokenizer);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
183
192
|
constructor() {
|
|
184
193
|
this._value = [];
|
|
185
194
|
}
|
|
195
|
+
_reset() {
|
|
196
|
+
this._value = [];
|
|
197
|
+
}
|
|
186
198
|
write(chunk) {
|
|
187
199
|
this._value = this._value.concat((0, css_line_break_1.toCodePoints)(chunk));
|
|
188
200
|
}
|
|
@@ -618,4 +630,5 @@ class Tokenizer {
|
|
|
618
630
|
}
|
|
619
631
|
}
|
|
620
632
|
exports.Tokenizer = Tokenizer;
|
|
621
|
-
|
|
633
|
+
Tokenizer._pool = [];
|
|
634
|
+
Tokenizer.MAX_POOL_SIZE = 40;
|
|
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isLength = void 0;
|
|
4
4
|
const isLength = (token) => token.type === 17 /* TokenType.NUMBER_TOKEN */ || token.type === 15 /* TokenType.DIMENSION_TOKEN */;
|
|
5
5
|
exports.isLength = isLength;
|
|
6
|
-
//# sourceMappingURL=length.js.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.copyCSSStyles = exports.DocumentCloner = void 0;
|
|
4
4
|
const node_parser_1 = require("./node-parser");
|
|
5
|
+
const node_type_guards_1 = require("./node-type-guards");
|
|
5
6
|
const parser_1 = require("../css/syntax/parser");
|
|
6
7
|
const counter_1 = require("../css/types/functions/counter");
|
|
7
8
|
const list_style_type_1 = require("../css/property-descriptors/list-style-type");
|
|
@@ -66,7 +67,7 @@ class DocumentCloner {
|
|
|
66
67
|
this.scrolledElements.forEach(restoreNodeScroll);
|
|
67
68
|
if (cloneWindow) {
|
|
68
69
|
cloneWindow.scrollTo(windowSize.left, windowSize.top);
|
|
69
|
-
if (/
|
|
70
|
+
if (/AppleWebKit/g.test(navigator.userAgent) &&
|
|
70
71
|
(cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) {
|
|
71
72
|
this.context.logger.warn('Unable to restore scroll position for cloned document');
|
|
72
73
|
this.context.windowBounds = this.context.windowBounds.add(cloneWindow.scrollX - windowSize.left, cloneWindow.scrollY - windowSize.top, 0, 0);
|
|
@@ -283,14 +284,7 @@ class DocumentCloner {
|
|
|
283
284
|
return blankCanvas;
|
|
284
285
|
}
|
|
285
286
|
appendChildNode(clone, child, copyStyles) {
|
|
286
|
-
|
|
287
|
-
(!(0, node_parser_1.isScriptElement)(child) &&
|
|
288
|
-
!child.hasAttribute(IGNORE_ATTRIBUTE) &&
|
|
289
|
-
(typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) {
|
|
290
|
-
if (!this.options.copyStyles || !(0, node_parser_1.isElementNode)(child) || !(0, node_parser_1.isStyleElement)(child)) {
|
|
291
|
-
clone.appendChild(this.cloneNode(child, copyStyles));
|
|
292
|
-
}
|
|
293
|
-
}
|
|
287
|
+
this.safeAppendClonedChild(clone, child, copyStyles);
|
|
294
288
|
}
|
|
295
289
|
/**
|
|
296
290
|
* Check if a child node should be cloned based on filtering rules
|
|
@@ -459,8 +453,9 @@ class DocumentCloner {
|
|
|
459
453
|
const clone = this.createElementClone(node);
|
|
460
454
|
clone.style.transitionProperty = 'none';
|
|
461
455
|
const style = window.getComputedStyle(node);
|
|
462
|
-
|
|
463
|
-
|
|
456
|
+
// Per CSS spec, replaced elements, void elements, and SVG elements
|
|
457
|
+
// cannot have ::before / ::after pseudo-elements — skip these queries.
|
|
458
|
+
const checkPseudoElements = (0, node_type_guards_1.canHavePseudoElements)(node);
|
|
464
459
|
if (this.referenceElement === node && (0, node_parser_1.isHTMLElementNode)(clone)) {
|
|
465
460
|
this.clonedReferenceElement = clone;
|
|
466
461
|
}
|
|
@@ -468,20 +463,24 @@ class DocumentCloner {
|
|
|
468
463
|
createPseudoHideStyles(clone, this.options.cspNonce);
|
|
469
464
|
}
|
|
470
465
|
const counters = this.counters.parse(new index_1.CSSParsedCounterDeclaration(this.context, style));
|
|
471
|
-
|
|
466
|
+
if (checkPseudoElements) {
|
|
467
|
+
const styleBefore = window.getComputedStyle(node, ':before');
|
|
468
|
+
const before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE);
|
|
469
|
+
if (before) {
|
|
470
|
+
clone.insertBefore(before, clone.firstChild);
|
|
471
|
+
}
|
|
472
|
+
const styleAfter = window.getComputedStyle(node, ':after');
|
|
473
|
+
const after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER);
|
|
474
|
+
if (after) {
|
|
475
|
+
clone.appendChild(after);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
472
478
|
if ((0, node_parser_1.isCustomElement)(node)) {
|
|
473
479
|
copyStyles = true;
|
|
474
480
|
}
|
|
475
481
|
if (!(0, node_parser_1.isVideoElement)(node)) {
|
|
476
482
|
this.cloneChildNodes(node, clone, copyStyles);
|
|
477
483
|
}
|
|
478
|
-
if (before) {
|
|
479
|
-
clone.insertBefore(before, clone.firstChild);
|
|
480
|
-
}
|
|
481
|
-
const after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER);
|
|
482
|
-
if (after) {
|
|
483
|
-
clone.appendChild(after);
|
|
484
|
-
}
|
|
485
484
|
this.counters.pop(counters);
|
|
486
485
|
if ((style && (this.options.copyStyles || (0, node_parser_1.isSVGElementNode)(node)) && !(0, node_parser_1.isIFrameElement)(node)) ||
|
|
487
486
|
copyStyles) {
|
|
@@ -654,14 +653,21 @@ const ignoredStyleProperties = [
|
|
|
654
653
|
'content' // Safari shows pseudoelements if content is set
|
|
655
654
|
];
|
|
656
655
|
const copyCSSStyles = (style, target) => {
|
|
657
|
-
|
|
656
|
+
const parts = [];
|
|
658
657
|
for (let i = style.length - 1; i >= 0; i--) {
|
|
659
658
|
const property = style.item(i);
|
|
660
659
|
// fix: Chrome_138 ignore custom properties
|
|
661
660
|
if (ignoredStyleProperties.indexOf(property) === -1 && !property.startsWith('--')) {
|
|
662
|
-
|
|
661
|
+
const value = style.getPropertyValue(property);
|
|
662
|
+
if (value) {
|
|
663
|
+
const priority = style.getPropertyPriority(property);
|
|
664
|
+
parts.push(priority ? `${property}:${value} !${priority}` : `${property}:${value}`);
|
|
665
|
+
}
|
|
663
666
|
}
|
|
664
667
|
}
|
|
668
|
+
if (parts.length > 0) {
|
|
669
|
+
target.style.cssText = parts.join(';') + ';';
|
|
670
|
+
}
|
|
665
671
|
return target;
|
|
666
672
|
};
|
|
667
673
|
exports.copyCSSStyles = copyCSSStyles;
|
|
@@ -728,4 +734,3 @@ const addBase = (targetELement, baseUri) => {
|
|
|
728
734
|
const headEle = targetELement.getElementsByTagName('head').item(0);
|
|
729
735
|
headEle?.insertBefore(baseNode, headEle?.firstChild ?? null);
|
|
730
736
|
};
|
|
731
|
-
//# sourceMappingURL=document-cloner.js.map
|
|
@@ -11,20 +11,22 @@ class ElementContainer {
|
|
|
11
11
|
this.context = context;
|
|
12
12
|
this.textNodes = [];
|
|
13
13
|
this.elements = [];
|
|
14
|
-
this.
|
|
14
|
+
this.createsStackingContext = false;
|
|
15
|
+
this.createsRealStackingContext = false;
|
|
16
|
+
this.isListOwner = false;
|
|
17
|
+
this.debugRender = false;
|
|
15
18
|
if ((0, debugger_1.isDebugging)(element, 3 /* DebuggerType.PARSE */)) {
|
|
16
19
|
debugger;
|
|
17
20
|
}
|
|
18
21
|
this.styles = new index_1.CSSParsedDeclaration(context, context.config.window.getComputedStyle(element, null));
|
|
19
|
-
|
|
20
|
-
const shouldNormalize = options.normalizeDom !== false; // Default: true
|
|
22
|
+
const shouldNormalize = options.normalizeDom !== false;
|
|
21
23
|
if (shouldNormalize && (0, node_type_guards_1.isHTMLElementNode)(element)) {
|
|
22
24
|
this.originalStyles = dom_normalizer_1.DOMNormalizer.normalizeElement(element, this.styles);
|
|
23
|
-
this.originalElement = element;
|
|
25
|
+
this.originalElement = element;
|
|
24
26
|
}
|
|
25
27
|
this.bounds = (0, bounds_1.parseBounds)(this.context, element);
|
|
26
28
|
if ((0, debugger_1.isDebugging)(element, 4 /* DebuggerType.RENDER */)) {
|
|
27
|
-
this.
|
|
29
|
+
this.debugRender = true;
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
@@ -52,4 +54,3 @@ class ElementContainer {
|
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
exports.ElementContainer = ElementContainer;
|
|
55
|
-
//# sourceMappingURL=element-container.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseTree = exports.isVideoElement = exports.isTextNode = exports.isTextareaElement = exports.isSVGElementNode = exports.isSVGElement = exports.isStyleElement = exports.isSlotElement = exports.isSelectElement = exports.isScriptElement = exports.isOLElement = exports.isLIElement = exports.isInputElement = exports.isImageElement = exports.isIFrameElement = exports.isHTMLElementNode = exports.isHTMLElement = exports.isElementNode = exports.isCustomElement = exports.isCanvasElement = exports.isBodyElement = void 0;
|
|
4
4
|
const element_container_1 = require("./element-container");
|
|
5
5
|
const text_container_1 = require("./text-container");
|
|
6
6
|
const image_element_container_1 = require("./replaced-elements/image-element-container");
|
|
@@ -12,15 +12,28 @@ const input_element_container_1 = require("./replaced-elements/input-element-con
|
|
|
12
12
|
const select_element_container_1 = require("./elements/select-element-container");
|
|
13
13
|
const textarea_element_container_1 = require("./elements/textarea-element-container");
|
|
14
14
|
const iframe_element_container_1 = require("./replaced-elements/iframe-element-container");
|
|
15
|
-
const bitwise_1 = require("../core/bitwise");
|
|
16
15
|
const node_type_guards_1 = require("./node-type-guards");
|
|
16
|
+
Object.defineProperty(exports, "isBodyElement", { enumerable: true, get: function () { return node_type_guards_1.isBodyElement; } });
|
|
17
|
+
Object.defineProperty(exports, "isCanvasElement", { enumerable: true, get: function () { return node_type_guards_1.isCanvasElement; } });
|
|
18
|
+
Object.defineProperty(exports, "isCustomElement", { enumerable: true, get: function () { return node_type_guards_1.isCustomElement; } });
|
|
17
19
|
Object.defineProperty(exports, "isElementNode", { enumerable: true, get: function () { return node_type_guards_1.isElementNode; } });
|
|
18
|
-
Object.defineProperty(exports, "
|
|
19
|
-
Object.defineProperty(exports, "isSVGElementNode", { enumerable: true, get: function () { return node_type_guards_1.isSVGElementNode; } });
|
|
20
|
+
Object.defineProperty(exports, "isHTMLElement", { enumerable: true, get: function () { return node_type_guards_1.isHTMLElement; } });
|
|
20
21
|
Object.defineProperty(exports, "isHTMLElementNode", { enumerable: true, get: function () { return node_type_guards_1.isHTMLElementNode; } });
|
|
22
|
+
Object.defineProperty(exports, "isIFrameElement", { enumerable: true, get: function () { return node_type_guards_1.isIFrameElement; } });
|
|
23
|
+
Object.defineProperty(exports, "isImageElement", { enumerable: true, get: function () { return node_type_guards_1.isImageElement; } });
|
|
24
|
+
Object.defineProperty(exports, "isInputElement", { enumerable: true, get: function () { return node_type_guards_1.isInputElement; } });
|
|
21
25
|
Object.defineProperty(exports, "isLIElement", { enumerable: true, get: function () { return node_type_guards_1.isLIElement; } });
|
|
22
26
|
Object.defineProperty(exports, "isOLElement", { enumerable: true, get: function () { return node_type_guards_1.isOLElement; } });
|
|
23
|
-
Object.defineProperty(exports, "
|
|
27
|
+
Object.defineProperty(exports, "isScriptElement", { enumerable: true, get: function () { return node_type_guards_1.isScriptElement; } });
|
|
28
|
+
Object.defineProperty(exports, "isSelectElement", { enumerable: true, get: function () { return node_type_guards_1.isSelectElement; } });
|
|
29
|
+
Object.defineProperty(exports, "isSlotElement", { enumerable: true, get: function () { return node_type_guards_1.isSlotElement; } });
|
|
30
|
+
Object.defineProperty(exports, "isStyleElement", { enumerable: true, get: function () { return node_type_guards_1.isStyleElement; } });
|
|
31
|
+
Object.defineProperty(exports, "isSVGElement", { enumerable: true, get: function () { return node_type_guards_1.isSVGElement; } });
|
|
32
|
+
Object.defineProperty(exports, "isSVGElementNode", { enumerable: true, get: function () { return node_type_guards_1.isSVGElementNode; } });
|
|
33
|
+
Object.defineProperty(exports, "isTextareaElement", { enumerable: true, get: function () { return node_type_guards_1.isTextareaElement; } });
|
|
34
|
+
Object.defineProperty(exports, "isTextNode", { enumerable: true, get: function () { return node_type_guards_1.isTextNode; } });
|
|
35
|
+
Object.defineProperty(exports, "isVideoElement", { enumerable: true, get: function () { return node_type_guards_1.isVideoElement; } });
|
|
36
|
+
const bitwise_1 = require("../core/bitwise");
|
|
24
37
|
const LIST_OWNERS = ['OL', 'UL', 'MENU'];
|
|
25
38
|
const parseNodeTree = (context, node, parent, root) => {
|
|
26
39
|
for (let childNode = node.firstChild, nextNode; childNode; childNode = nextNode) {
|
|
@@ -30,29 +43,30 @@ const parseNodeTree = (context, node, parent, root) => {
|
|
|
30
43
|
parent.textNodes.push(new text_container_1.TextContainer(context, childNode, parent.styles));
|
|
31
44
|
}
|
|
32
45
|
else if ((0, node_type_guards_1.isElementNode)(childNode)) {
|
|
33
|
-
if ((0,
|
|
34
|
-
childNode
|
|
46
|
+
if ((0, node_type_guards_1.isSlotElement)(childNode) && childNode.assignedNodes) {
|
|
47
|
+
childNode
|
|
48
|
+
.assignedNodes()
|
|
49
|
+
.forEach((assignedNode) => parseNodeTree(context, assignedNode, parent, root));
|
|
35
50
|
}
|
|
36
51
|
else {
|
|
37
52
|
const container = createContainer(context, childNode);
|
|
38
53
|
if (container.styles.isVisible()) {
|
|
39
54
|
if (createsRealStackingContext(childNode, container, root)) {
|
|
40
|
-
container.
|
|
55
|
+
container.createsRealStackingContext = true;
|
|
41
56
|
}
|
|
42
57
|
else if (createsStackingContext(container.styles)) {
|
|
43
|
-
container.
|
|
58
|
+
container.createsStackingContext = true;
|
|
44
59
|
}
|
|
45
60
|
if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {
|
|
46
|
-
container.
|
|
61
|
+
container.isListOwner = true;
|
|
47
62
|
}
|
|
48
63
|
parent.elements.push(container);
|
|
49
|
-
childNode.slot;
|
|
50
64
|
if (childNode.shadowRoot) {
|
|
51
65
|
parseNodeTree(context, childNode.shadowRoot, container, root);
|
|
52
66
|
}
|
|
53
|
-
else if (!(0,
|
|
54
|
-
!(0,
|
|
55
|
-
!(0,
|
|
67
|
+
else if (!(0, node_type_guards_1.isTextareaElement)(childNode) &&
|
|
68
|
+
!(0, node_type_guards_1.isSVGElement)(childNode) &&
|
|
69
|
+
!(0, node_type_guards_1.isSelectElement)(childNode)) {
|
|
56
70
|
parseNodeTree(context, childNode, container, root);
|
|
57
71
|
}
|
|
58
72
|
}
|
|
@@ -61,13 +75,13 @@ const parseNodeTree = (context, node, parent, root) => {
|
|
|
61
75
|
}
|
|
62
76
|
};
|
|
63
77
|
const createContainer = (context, element) => {
|
|
64
|
-
if ((0,
|
|
78
|
+
if ((0, node_type_guards_1.isImageElement)(element)) {
|
|
65
79
|
return new image_element_container_1.ImageElementContainer(context, element);
|
|
66
80
|
}
|
|
67
|
-
if ((0,
|
|
81
|
+
if ((0, node_type_guards_1.isCanvasElement)(element)) {
|
|
68
82
|
return new canvas_element_container_1.CanvasElementContainer(context, element);
|
|
69
83
|
}
|
|
70
|
-
if ((0,
|
|
84
|
+
if ((0, node_type_guards_1.isSVGElement)(element)) {
|
|
71
85
|
return new svg_element_container_1.SVGElementContainer(context, element);
|
|
72
86
|
}
|
|
73
87
|
if ((0, node_type_guards_1.isLIElement)(element)) {
|
|
@@ -76,23 +90,23 @@ const createContainer = (context, element) => {
|
|
|
76
90
|
if ((0, node_type_guards_1.isOLElement)(element)) {
|
|
77
91
|
return new ol_element_container_1.OLElementContainer(context, element);
|
|
78
92
|
}
|
|
79
|
-
if ((0,
|
|
93
|
+
if ((0, node_type_guards_1.isInputElement)(element)) {
|
|
80
94
|
return new input_element_container_1.InputElementContainer(context, element);
|
|
81
95
|
}
|
|
82
|
-
if ((0,
|
|
96
|
+
if ((0, node_type_guards_1.isSelectElement)(element)) {
|
|
83
97
|
return new select_element_container_1.SelectElementContainer(context, element);
|
|
84
98
|
}
|
|
85
|
-
if ((0,
|
|
99
|
+
if ((0, node_type_guards_1.isTextareaElement)(element)) {
|
|
86
100
|
return new textarea_element_container_1.TextareaElementContainer(context, element);
|
|
87
101
|
}
|
|
88
|
-
if ((0,
|
|
102
|
+
if ((0, node_type_guards_1.isIFrameElement)(element)) {
|
|
89
103
|
return new iframe_element_container_1.IFrameElementContainer(context, element, exports.parseTree);
|
|
90
104
|
}
|
|
91
105
|
return new element_container_1.ElementContainer(context, element);
|
|
92
106
|
};
|
|
93
107
|
const parseTree = (context, element) => {
|
|
94
108
|
const container = createContainer(context, element);
|
|
95
|
-
container.
|
|
109
|
+
container.createsRealStackingContext = true;
|
|
96
110
|
parseNodeTree(context, element, container, container);
|
|
97
111
|
return container;
|
|
98
112
|
};
|
|
@@ -101,7 +115,7 @@ const createsRealStackingContext = (node, container, root) => {
|
|
|
101
115
|
return (container.styles.isPositionedWithZIndex() ||
|
|
102
116
|
container.styles.opacity < 1 ||
|
|
103
117
|
container.styles.isTransformed() ||
|
|
104
|
-
((0,
|
|
118
|
+
((0, node_type_guards_1.isBodyElement)(node) && root.styles.isTransparent()));
|
|
105
119
|
};
|
|
106
120
|
const createsStackingContext = (styles) => {
|
|
107
121
|
// Positioned and floating elements create stacking contexts
|
|
@@ -116,33 +130,3 @@ const createsStackingContext = (styles) => {
|
|
|
116
130
|
(0, bitwise_1.contains)(styles.display, 536870912 /* DISPLAY.INLINE_GRID */) ||
|
|
117
131
|
(0, bitwise_1.contains)(styles.display, 134217728 /* DISPLAY.INLINE_TABLE */));
|
|
118
132
|
};
|
|
119
|
-
// Type guards moved to node-type-guards.ts and re-exported above
|
|
120
|
-
const isInputElement = (node) => node.tagName === 'INPUT';
|
|
121
|
-
exports.isInputElement = isInputElement;
|
|
122
|
-
const isHTMLElement = (node) => node.tagName === 'HTML';
|
|
123
|
-
exports.isHTMLElement = isHTMLElement;
|
|
124
|
-
const isSVGElement = (node) => node.tagName === 'svg';
|
|
125
|
-
exports.isSVGElement = isSVGElement;
|
|
126
|
-
const isBodyElement = (node) => node.tagName === 'BODY';
|
|
127
|
-
exports.isBodyElement = isBodyElement;
|
|
128
|
-
const isCanvasElement = (node) => node.tagName === 'CANVAS';
|
|
129
|
-
exports.isCanvasElement = isCanvasElement;
|
|
130
|
-
const isVideoElement = (node) => node.tagName === 'VIDEO';
|
|
131
|
-
exports.isVideoElement = isVideoElement;
|
|
132
|
-
const isImageElement = (node) => node.tagName === 'IMG';
|
|
133
|
-
exports.isImageElement = isImageElement;
|
|
134
|
-
const isIFrameElement = (node) => node.tagName === 'IFRAME';
|
|
135
|
-
exports.isIFrameElement = isIFrameElement;
|
|
136
|
-
const isStyleElement = (node) => node.tagName === 'STYLE';
|
|
137
|
-
exports.isStyleElement = isStyleElement;
|
|
138
|
-
const isScriptElement = (node) => node.tagName === 'SCRIPT';
|
|
139
|
-
exports.isScriptElement = isScriptElement;
|
|
140
|
-
const isTextareaElement = (node) => node.tagName === 'TEXTAREA';
|
|
141
|
-
exports.isTextareaElement = isTextareaElement;
|
|
142
|
-
const isSelectElement = (node) => node.tagName === 'SELECT';
|
|
143
|
-
exports.isSelectElement = isSelectElement;
|
|
144
|
-
const isSlotElement = (node) => node.tagName === 'SLOT';
|
|
145
|
-
exports.isSlotElement = isSlotElement;
|
|
146
|
-
// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name
|
|
147
|
-
// isCustomElement moved to node-type-guards.ts and re-exported above
|
|
148
|
-
//# sourceMappingURL=node-parser.js.map
|