@flighthq/scene2d-dom 0.2.1-next.840.857425c
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/domBackground.d.ts +3 -0
- package/dist/domBackground.d.ts.map +1 -0
- package/dist/domBackground.js +9 -0
- package/dist/domBackground.js.map +1 -0
- package/dist/domBitmap.d.ts +4 -0
- package/dist/domBitmap.d.ts.map +1 -0
- package/dist/domBitmap.js +81 -0
- package/dist/domBitmap.js.map +1 -0
- package/dist/domCSSFilterBinding.d.ts +19 -0
- package/dist/domCSSFilterBinding.d.ts.map +1 -0
- package/dist/domCSSFilterBinding.js +36 -0
- package/dist/domCSSFilterBinding.js.map +1 -0
- package/dist/domCache.d.ts +14 -0
- package/dist/domCache.d.ts.map +1 -0
- package/dist/domCache.js +64 -0
- package/dist/domCache.js.map +1 -0
- package/dist/domClip.d.ts +3 -0
- package/dist/domClip.d.ts.map +1 -0
- package/dist/domClip.js +38 -0
- package/dist/domClip.js.map +1 -0
- package/dist/domClipContours.d.ts +6 -0
- package/dist/domClipContours.d.ts.map +1 -0
- package/dist/domClipContours.js +48 -0
- package/dist/domClipContours.js.map +1 -0
- package/dist/domClipRectangle.d.ts +6 -0
- package/dist/domClipRectangle.d.ts.map +1 -0
- package/dist/domClipRectangle.js +148 -0
- package/dist/domClipRectangle.js.map +1 -0
- package/dist/domFontSource.d.ts +5 -0
- package/dist/domFontSource.d.ts.map +1 -0
- package/dist/domFontSource.js +18 -0
- package/dist/domFontSource.js.map +1 -0
- package/dist/domHtmlView.d.ts +4 -0
- package/dist/domHtmlView.d.ts.map +1 -0
- package/dist/domHtmlView.js +28 -0
- package/dist/domHtmlView.js.map +1 -0
- package/dist/domImageSource.d.ts +4 -0
- package/dist/domImageSource.d.ts.map +1 -0
- package/dist/domImageSource.js +36 -0
- package/dist/domImageSource.js.map +1 -0
- package/dist/domMaterials.d.ts +15 -0
- package/dist/domMaterials.d.ts.map +1 -0
- package/dist/domMaterials.js +68 -0
- package/dist/domMaterials.js.map +1 -0
- package/dist/domNativeText.d.ts +5 -0
- package/dist/domNativeText.d.ts.map +1 -0
- package/dist/domNativeText.js +88 -0
- package/dist/domNativeText.js.map +1 -0
- package/dist/domNode2D.d.ts +5 -0
- package/dist/domNode2D.d.ts.map +1 -0
- package/dist/domNode2D.js +60 -0
- package/dist/domNode2D.js.map +1 -0
- package/dist/domReconcile.d.ts +9 -0
- package/dist/domReconcile.d.ts.map +1 -0
- package/dist/domReconcile.js +69 -0
- package/dist/domReconcile.js.map +1 -0
- package/dist/domRenderState.d.ts +5 -0
- package/dist/domRenderState.d.ts.map +1 -0
- package/dist/domRenderState.js +43 -0
- package/dist/domRenderState.js.map +1 -0
- package/dist/domRenderView.d.ts +4 -0
- package/dist/domRenderView.d.ts.map +1 -0
- package/dist/domRenderView.js +24 -0
- package/dist/domRenderView.js.map +1 -0
- package/dist/domRichText.d.ts +6 -0
- package/dist/domRichText.d.ts.map +1 -0
- package/dist/domRichText.js +184 -0
- package/dist/domRichText.js.map +1 -0
- package/dist/domScale9Mapper.d.ts +3 -0
- package/dist/domScale9Mapper.d.ts.map +1 -0
- package/dist/domScale9Mapper.js +37 -0
- package/dist/domScale9Mapper.js.map +1 -0
- package/dist/domScale9Shape.d.ts +10 -0
- package/dist/domScale9Shape.d.ts.map +1 -0
- package/dist/domScale9Shape.js +59 -0
- package/dist/domScale9Shape.js.map +1 -0
- package/dist/domShape.d.ts +4 -0
- package/dist/domShape.d.ts.map +1 -0
- package/dist/domShape.js +45 -0
- package/dist/domShape.js.map +1 -0
- package/dist/domStyle.d.ts +9 -0
- package/dist/domStyle.d.ts.map +1 -0
- package/dist/domStyle.js +25 -0
- package/dist/domStyle.js.map +1 -0
- package/dist/domTextHelpers.d.ts +6 -0
- package/dist/domTextHelpers.d.ts.map +1 -0
- package/dist/domTextHelpers.js +8 -0
- package/dist/domTextHelpers.js.map +1 -0
- package/dist/domTextInput.d.ts +4 -0
- package/dist/domTextInput.d.ts.map +1 -0
- package/dist/domTextInput.js +60 -0
- package/dist/domTextInput.js.map +1 -0
- package/dist/domTextLabel.d.ts +4 -0
- package/dist/domTextLabel.d.ts.map +1 -0
- package/dist/domTextLabel.js +75 -0
- package/dist/domTextLabel.js.map +1 -0
- package/dist/domTransform.d.ts +4 -0
- package/dist/domTransform.d.ts.map +1 -0
- package/dist/domTransform.js +16 -0
- package/dist/domTransform.js.map +1 -0
- package/dist/domVideo.d.ts +4 -0
- package/dist/domVideo.d.ts.map +1 -0
- package/dist/domVideo.js +27 -0
- package/dist/domVideo.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/package.json +55 -0
- package/src/domBackground.test.ts +35 -0
- package/src/domBitmap.test.ts +117 -0
- package/src/domCSSFilterBinding.test.ts +62 -0
- package/src/domCache.test.ts +93 -0
- package/src/domClip.test.ts +12 -0
- package/src/domClipContours.test.ts +62 -0
- package/src/domClipRectangle.test.ts +81 -0
- package/src/domFontSource.test.ts +30 -0
- package/src/domHtmlView.test.ts +117 -0
- package/src/domImageSource.test.ts +47 -0
- package/src/domMaterials.test.ts +100 -0
- package/src/domNativeText.test.ts +102 -0
- package/src/domNode2D.test.ts +236 -0
- package/src/domReconcile.test.ts +158 -0
- package/src/domRenderState.test.ts +87 -0
- package/src/domRenderView.test.ts +69 -0
- package/src/domRichText.test.ts +169 -0
- package/src/domScale9Mapper.test.ts +20 -0
- package/src/domScale9Shape.test.ts +76 -0
- package/src/domShape.test.ts +85 -0
- package/src/domStyle.test.ts +130 -0
- package/src/domTextHelpers.test.ts +27 -0
- package/src/domTextInput.test.ts +61 -0
- package/src/domTextLabel.test.ts +92 -0
- package/src/domTransform.test.ts +68 -0
- package/src/domVideo.test.ts +30 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { createMatrix } from '@flighthq/geometry';
|
|
2
|
+
|
|
3
|
+
import { setDomTransform, setDomTransformWithOffset } from './domTransform';
|
|
4
|
+
|
|
5
|
+
describe('setDomTransform', () => {
|
|
6
|
+
it('sets the CSS transform to the matrix values', () => {
|
|
7
|
+
const el = document.createElement('div');
|
|
8
|
+
const t = createMatrix(1, 2, 3, 4, 5, 6);
|
|
9
|
+
|
|
10
|
+
setDomTransform(el, t, false);
|
|
11
|
+
|
|
12
|
+
expect(el.style.transform).toBe('matrix(1,2,3,4,5,6)');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('passes tx and ty through without rounding when roundPixels is false', () => {
|
|
16
|
+
const el = document.createElement('div');
|
|
17
|
+
const t = createMatrix(1, 0, 0, 1, 1.7, 2.3);
|
|
18
|
+
|
|
19
|
+
setDomTransform(el, t, false);
|
|
20
|
+
|
|
21
|
+
expect(el.style.transform).toBe('matrix(1,0,0,1,1.7,2.3)');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('frounds tx and ty when roundPixels is true', () => {
|
|
25
|
+
const el = document.createElement('div');
|
|
26
|
+
const t = createMatrix(1, 0, 0, 1, 5.6789, 9.1011);
|
|
27
|
+
|
|
28
|
+
setDomTransform(el, t, true);
|
|
29
|
+
|
|
30
|
+
const expectedTx = Math.fround(5.6789);
|
|
31
|
+
const expectedTy = Math.fround(9.1011);
|
|
32
|
+
expect(el.style.transform).toBe(`matrix(1,0,0,1,${expectedTx},${expectedTy})`);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe('setDomTransformWithOffset', () => {
|
|
37
|
+
it('applies offset through the transform before setting CSS matrix', () => {
|
|
38
|
+
const el = document.createElement('div');
|
|
39
|
+
const t = createMatrix(1, 0, 0, 1, 10, 20);
|
|
40
|
+
|
|
41
|
+
setDomTransformWithOffset(el, t, 5, 8, false);
|
|
42
|
+
|
|
43
|
+
// tx = 1*5 + 0*8 + 10 = 15, ty = 0*5 + 1*8 + 20 = 28
|
|
44
|
+
expect(el.style.transform).toBe('matrix(1,0,0,1,15,28)');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('applies offset through a rotated transform', () => {
|
|
48
|
+
const el = document.createElement('div');
|
|
49
|
+
// 90-degree rotation: a=0, b=1, c=-1, d=0
|
|
50
|
+
const t = createMatrix(0, 1, -1, 0, 0, 0);
|
|
51
|
+
|
|
52
|
+
setDomTransformWithOffset(el, t, 10, 20, false);
|
|
53
|
+
|
|
54
|
+
// tx = 0*10 + (-1)*20 + 0 = -20, ty = 1*10 + 0*20 + 0 = 10
|
|
55
|
+
expect(el.style.transform).toBe('matrix(0,1,-1,0,-20,10)');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('frounds the adjusted tx/ty when roundPixels is true', () => {
|
|
59
|
+
const el = document.createElement('div');
|
|
60
|
+
const t = createMatrix(1, 0, 0, 1, 0.5, 0.5);
|
|
61
|
+
|
|
62
|
+
setDomTransformWithOffset(el, t, 0.1, 0.1, true);
|
|
63
|
+
|
|
64
|
+
const expectedTx = Math.fround(0.6);
|
|
65
|
+
const expectedTy = Math.fround(0.6);
|
|
66
|
+
expect(el.style.transform).toBe(`matrix(1,0,0,1,${expectedTx},${expectedTy})`);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { registerRenderer } from '@flighthq/render';
|
|
2
|
+
import { getOrCreateRenderProxy2D } from '@flighthq/render';
|
|
3
|
+
import { createVideo } from '@flighthq/scene2d';
|
|
4
|
+
import { VideoKind } from '@flighthq/types';
|
|
5
|
+
|
|
6
|
+
import { createDomRenderState } from './domRenderState';
|
|
7
|
+
import { defaultDomVideoRenderer, drawDomVideo } from './domVideo';
|
|
8
|
+
|
|
9
|
+
function makeState() {
|
|
10
|
+
const container = document.createElement('div');
|
|
11
|
+
const state = createDomRenderState(container);
|
|
12
|
+
registerRenderer(state, VideoKind, defaultDomVideoRenderer);
|
|
13
|
+
return state;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
describe('defaultDomVideoRenderer', () => {
|
|
17
|
+
it('has submit, and createData functions', () => {
|
|
18
|
+
expect(typeof defaultDomVideoRenderer.submit).toBe('function');
|
|
19
|
+
expect(typeof defaultDomVideoRenderer.createData).toBe('function');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe('drawDomVideo', () => {
|
|
24
|
+
it('does not throw when source element is null', () => {
|
|
25
|
+
const state = makeState();
|
|
26
|
+
const video = createVideo();
|
|
27
|
+
const renderProxy = getOrCreateRenderProxy2D(state, video);
|
|
28
|
+
expect(() => drawDomVideo(state, renderProxy)).not.toThrow();
|
|
29
|
+
});
|
|
30
|
+
});
|