@flighthq/displayobject-dom 0.1.0 → 0.2.0
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/domCSSFilterBinding.d.ts +1 -10
- package/dist/domCSSFilterBinding.d.ts.map +1 -1
- package/dist/domCSSFilterBinding.js +0 -20
- package/dist/domCSSFilterBinding.js.map +1 -1
- package/dist/domMaterials.d.ts.map +1 -1
- package/dist/domMaterials.js +5 -2
- package/dist/domMaterials.js.map +1 -1
- package/dist/domNativeText.d.ts.map +1 -1
- package/dist/domNativeText.js +23 -0
- package/dist/domNativeText.js.map +1 -1
- package/dist/domRichText.d.ts.map +1 -1
- package/dist/domRichText.js +1 -0
- package/dist/domRichText.js.map +1 -1
- package/dist/domTextLabel.d.ts.map +1 -1
- package/dist/domTextLabel.js +1 -0
- package/dist/domTextLabel.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +18 -13
- package/src/domCSSFilterBinding.test.ts +2 -44
- package/src/domMaterials.test.ts +12 -2
- package/src/domNativeText.test.ts +31 -0
- package/src/domRichText.test.ts +6 -2
- package/dist/domSvgFilter.d.ts +0 -27
- package/dist/domSvgFilter.d.ts.map +0 -1
- package/dist/domSvgFilter.js +0 -88
- package/dist/domSvgFilter.js.map +0 -1
- package/src/domSvgFilter.test.ts +0 -116
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DisplayObject, DomRenderState, RenderProxy2D } from '@flighthq/types';
|
|
2
2
|
/**
|
|
3
3
|
* Enables CSS filter support for the render state by installing the resolver the
|
|
4
4
|
* draw path consults. Bindings made via setDomCssFilter only apply once this is
|
|
@@ -8,15 +8,6 @@ import type { BitmapFilter, DisplayObject, DomRenderState, RenderProxy2D } from
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function enableDomCssFilterSupport(state: DomRenderState): void;
|
|
10
10
|
export declare function getDomCssFilter(renderProxy: RenderProxy2D): string | undefined;
|
|
11
|
-
/**
|
|
12
|
-
* Returns true when the filter has a native CSS `filter` equivalent supported by the DOM
|
|
13
|
-
* backend. Filters not in this set cannot be expressed directly as a CSS filter string.
|
|
14
|
-
*
|
|
15
|
-
* Callers that need a raster fallback for unsupported filters should route the subtree
|
|
16
|
-
* through the render-cache path (ensureDomRenderCacheTarget) instead of calling
|
|
17
|
-
* setDomCssFilter.
|
|
18
|
-
*/
|
|
19
|
-
export declare function hasDomCssFilterEquivalent(filter: Readonly<BitmapFilter>): boolean;
|
|
20
11
|
/**
|
|
21
12
|
* Binds a CSS filter string (e.g. "blur(4px)") to a display object for the given
|
|
22
13
|
* DOM render state, or clears it when filter is null. The binding lives on the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domCSSFilterBinding.d.ts","sourceRoot":"","sources":["../src/domCSSFilterBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"domCSSFilterBinding.d.ts","sourceRoot":"","sources":["../src/domCSSFilterBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAErE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAOvG"}
|
|
@@ -12,17 +12,6 @@ export function enableDomCssFilterSupport(state) {
|
|
|
12
12
|
export function getDomCssFilter(renderProxy) {
|
|
13
13
|
return _cssFilterBindings.get(renderProxy);
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Returns true when the filter has a native CSS `filter` equivalent supported by the DOM
|
|
17
|
-
* backend. Filters not in this set cannot be expressed directly as a CSS filter string.
|
|
18
|
-
*
|
|
19
|
-
* Callers that need a raster fallback for unsupported filters should route the subtree
|
|
20
|
-
* through the render-cache path (ensureDomRenderCacheTarget) instead of calling
|
|
21
|
-
* setDomCssFilter.
|
|
22
|
-
*/
|
|
23
|
-
export function hasDomCssFilterEquivalent(filter) {
|
|
24
|
-
return DOM_CSS_FILTER_KINDS.has(filter.kind);
|
|
25
|
-
}
|
|
26
15
|
/**
|
|
27
16
|
* Binds a CSS filter string (e.g. "blur(4px)") to a display object for the given
|
|
28
17
|
* DOM render state, or clears it when filter is null. The binding lives on the
|
|
@@ -44,13 +33,4 @@ export function setDomCssFilter(state, node, filter) {
|
|
|
44
33
|
// invisible to any other state that renders the same display object. This mirrors
|
|
45
34
|
// the per-state canvas CSS filter and Gl shader bindings.
|
|
46
35
|
const _cssFilterBindings = new WeakMap();
|
|
47
|
-
// Filter kinds that have a native CSS filter equivalent in the DOM backend.
|
|
48
|
-
// All other filter kinds require rasterization (e.g. via the render-cache path)
|
|
49
|
-
// or are silently unsupported. This set drives hasDomCssFilterEquivalent.
|
|
50
|
-
//
|
|
51
|
-
// Mapping notes:
|
|
52
|
-
// BlurFilter → filter: blur(…px)
|
|
53
|
-
// DropShadowFilter → filter: drop-shadow(offsetX offsetY blur color)
|
|
54
|
-
// OuterGlowFilter → filter: drop-shadow(0 0 blur color) [approximate: glow = shadow with 0 offset]
|
|
55
|
-
const DOM_CSS_FILTER_KINDS = new Set(['BlurFilter', 'DropShadowFilter', 'OuterGlowFilter']);
|
|
56
36
|
//# sourceMappingURL=domCSSFilterBinding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domCSSFilterBinding.js","sourceRoot":"","sources":["../src/domCSSFilterBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,KAAK,CAAC,oBAAoB,GAAG,eAAe,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAA0B;IACxD,OAAO,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"domCSSFilterBinding.js","sourceRoot":"","sources":["../src/domCSSFilterBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,KAAK,CAAC,oBAAoB,GAAG,eAAe,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAA0B;IACxD,OAAO,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,IAAmB,EAAE,MAAqB;IAC/F,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,gFAAgF;AAChF,kFAAkF;AAClF,0EAA0E;AAC1E,kFAAkF;AAClF,0DAA0D;AAC1D,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domMaterials.d.ts","sourceRoot":"","sources":["../src/domMaterials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"domMaterials.d.ts","sourceRoot":"","sources":["../src/domMaterials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiD5C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAErF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAErE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAElF"}
|
package/dist/domMaterials.js
CHANGED
|
@@ -8,11 +8,13 @@ const DOM_BLEND_MODE = {
|
|
|
8
8
|
[BlendMode.Darken]: 'darken',
|
|
9
9
|
[BlendMode.Difference]: 'difference',
|
|
10
10
|
[BlendMode.Erase]: null,
|
|
11
|
-
[BlendMode.
|
|
11
|
+
[BlendMode.HardLight]: 'hard-light',
|
|
12
12
|
[BlendMode.Invert]: null,
|
|
13
13
|
[BlendMode.Layer]: '',
|
|
14
14
|
[BlendMode.Lighten]: 'lighten',
|
|
15
15
|
[BlendMode.Multiply]: 'multiply',
|
|
16
|
+
// No-blend has no CSS mix-blend-mode equivalent; degrades to normal (identical for opaque content).
|
|
17
|
+
[BlendMode.None]: null,
|
|
16
18
|
[BlendMode.Normal]: '',
|
|
17
19
|
[BlendMode.Overlay]: 'overlay',
|
|
18
20
|
[BlendMode.Screen]: 'screen',
|
|
@@ -30,11 +32,12 @@ const DOM_BLEND_MODE_FIDELITY = {
|
|
|
30
32
|
[BlendMode.Darken]: 'exact',
|
|
31
33
|
[BlendMode.Difference]: 'exact',
|
|
32
34
|
[BlendMode.Erase]: 'unsupported',
|
|
33
|
-
[BlendMode.
|
|
35
|
+
[BlendMode.HardLight]: 'exact',
|
|
34
36
|
[BlendMode.Invert]: 'unsupported',
|
|
35
37
|
[BlendMode.Layer]: 'exact', // normal compositing within a stacking context
|
|
36
38
|
[BlendMode.Lighten]: 'exact',
|
|
37
39
|
[BlendMode.Multiply]: 'exact',
|
|
40
|
+
[BlendMode.None]: 'unsupported',
|
|
38
41
|
[BlendMode.Normal]: 'exact',
|
|
39
42
|
[BlendMode.Overlay]: 'exact',
|
|
40
43
|
[BlendMode.Screen]: 'exact',
|
package/dist/domMaterials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domMaterials.js","sourceRoot":"","sources":["../src/domMaterials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,uFAAuF;AACvF,uFAAuF;AACvF,+DAA+D;AAC/D,MAAM,cAAc,GAAqC;IACvD,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ;IACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;IACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC5B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,YAAY;IACpC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;IACvB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,YAAY;IACnC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;IACxB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;IACrB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;IAChC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;IACtB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;IACxB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;CAC3B,CAAC;AAEF,kEAAkE;AAClE,+EAA+E;AAC/E,6EAA6E;AAC7E,kGAAkG;AAClG,uEAAuE;AACvE,MAAM,uBAAuB,GAA4C;IACvE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,uDAAuD;IACvF,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa;IAChC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO;IAC/B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa;IAChC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO;IAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa;IACjC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,+CAA+C;IAC3E,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;IAC5B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO;IAC7B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;IAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa;IACjC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa;CACpC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,KAAuB;IAC7E,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"domMaterials.js","sourceRoot":"","sources":["../src/domMaterials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,uFAAuF;AACvF,uFAAuF;AACvF,+DAA+D;AAC/D,MAAM,cAAc,GAAqC;IACvD,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ;IACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;IACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC5B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,YAAY;IACpC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;IACvB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,YAAY;IACnC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;IACxB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;IACrB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;IAChC,oGAAoG;IACpG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI;IACtB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;IACtB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;IACxB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;CAC3B,CAAC;AAEF,kEAAkE;AAClE,+EAA+E;AAC/E,6EAA6E;AAC7E,kGAAkG;AAClG,uEAAuE;AACvE,MAAM,uBAAuB,GAA4C;IACvE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,uDAAuD;IACvF,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa;IAChC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO;IAC/B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa;IAChC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO;IAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa;IACjC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,+CAA+C;IAC3E,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;IAC5B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO;IAC7B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa;IAC/B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;IAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO;IAC3B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa;IACjC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa;CACpC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,KAAuB;IAC7E,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domNativeText.d.ts","sourceRoot":"","sources":["../src/domNativeText.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAMd,aAAa,
|
|
1
|
+
{"version":3,"file":"domNativeText.d.ts","sourceRoot":"","sources":["../src/domNativeText.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAMd,aAAa,EAGd,MAAM,iBAAiB,CAAC;AAczB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA8CzF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAE7F;AAED,eAAO,MAAM,4BAA4B,EAAE,qBAG1C,CAAC"}
|
package/dist/domNativeText.js
CHANGED
|
@@ -23,16 +23,26 @@ export function drawDomNativeText(state, renderProxy) {
|
|
|
23
23
|
}
|
|
24
24
|
applyNativeTextStyle(element, data.style);
|
|
25
25
|
if (data.autoSize === 'none') {
|
|
26
|
+
// A fixed-height box frames the text; a column flexbox positions the block vertically within the
|
|
27
|
+
// leftover height (justify-content), leaving textAlign to handle the horizontal axis. Cross-axis
|
|
28
|
+
// stretch is the flexbox default, so the text item keeps the full width and textAlign still applies.
|
|
26
29
|
element.style.whiteSpace = 'normal';
|
|
27
30
|
element.style.width = `${data.width}px`;
|
|
28
31
|
element.style.height = `${data.height}px`;
|
|
29
32
|
element.style.overflow = 'hidden';
|
|
33
|
+
element.style.display = 'flex';
|
|
34
|
+
element.style.flexDirection = 'column';
|
|
35
|
+
element.style.justifyContent = _verticalAlignToJustifyContent(data.verticalAlign);
|
|
30
36
|
}
|
|
31
37
|
else {
|
|
38
|
+
// The box hugs the content, so there is no slack to align within — drop the flexbox framing.
|
|
32
39
|
element.style.whiteSpace = 'nowrap';
|
|
33
40
|
element.style.width = '';
|
|
34
41
|
element.style.height = '';
|
|
35
42
|
element.style.overflow = '';
|
|
43
|
+
element.style.display = '';
|
|
44
|
+
element.style.flexDirection = '';
|
|
45
|
+
element.style.justifyContent = '';
|
|
36
46
|
}
|
|
37
47
|
element.textContent = data.text;
|
|
38
48
|
// Write the platform measurement back so DOM-free bounds (computeNativeTextLocalBoundsRectangle) can
|
|
@@ -50,6 +60,19 @@ export const defaultDomNativeTextRenderer = {
|
|
|
50
60
|
createData: createDomNativeTextData,
|
|
51
61
|
submit: drawDomNativeText,
|
|
52
62
|
};
|
|
63
|
+
// Maps the field's vertical alignment onto the column flexbox's main-axis distribution. 'top' is the
|
|
64
|
+
// CSS default (flex-start); 'baseline'/'justify' are reserved TextVerticalAlign values with no faithful
|
|
65
|
+
// CSS block-frame mapping yet, so they fall back to the top of the box.
|
|
66
|
+
function _verticalAlignToJustifyContent(verticalAlign) {
|
|
67
|
+
switch (verticalAlign) {
|
|
68
|
+
case 'bottom':
|
|
69
|
+
return 'flex-end';
|
|
70
|
+
case 'middle':
|
|
71
|
+
return 'center';
|
|
72
|
+
default:
|
|
73
|
+
return 'flex-start';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
53
76
|
function applyNativeTextStyle(element, style) {
|
|
54
77
|
const size = style.size ?? 12;
|
|
55
78
|
const family = style.font ?? 'sans-serif';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domNativeText.js","sourceRoot":"","sources":["../src/domNativeText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"domNativeText.js","sourceRoot":"","sources":["../src/domNativeText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domRichText.d.ts","sourceRoot":"","sources":["../src/domRichText.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAGd,aAAa,EAMd,MAAM,iBAAiB,CAAC;AAuBzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAQvF;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAE3F;
|
|
1
|
+
{"version":3,"file":"domRichText.d.ts","sourceRoot":"","sources":["../src/domRichText.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAGd,aAAa,EAMd,MAAM,iBAAiB,CAAC;AAuBzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAQvF;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAE3F;AAyKD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAE9E;AAED,eAAO,MAAM,0BAA0B,EAAE,qBAGxC,CAAC"}
|
package/dist/domRichText.js
CHANGED
|
@@ -58,6 +58,7 @@ function drawDomRichTextField(state, renderProxy) {
|
|
|
58
58
|
height: source.data.height,
|
|
59
59
|
measure,
|
|
60
60
|
multiline,
|
|
61
|
+
verticalAlign: source.data.autoSize === 'none' ? source.data.verticalAlign : 'top',
|
|
61
62
|
wordWrap,
|
|
62
63
|
});
|
|
63
64
|
const fieldW = computeTextBoundsWidth(source.data, result);
|
package/dist/domRichText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domRichText.js","sourceRoot":"","sources":["../src/domRichText.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domRichText.js","sourceRoot":"","sources":["../src/domRichText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domTextLabel.d.ts","sourceRoot":"","sources":["../src/domTextLabel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAGd,aAAa,EAKd,MAAM,iBAAiB,CAAC;AAsBzB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"domTextLabel.d.ts","sourceRoot":"","sources":["../src/domTextLabel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAGd,aAAa,EAKd,MAAM,iBAAiB,CAAC;AAsBzB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA0DxF;AAED,eAAO,MAAM,2BAA2B,EAAE,qBAGzC,CAAC"}
|
package/dist/domTextLabel.js
CHANGED
|
@@ -42,6 +42,7 @@ export function drawDomTextLabel(state, renderProxy) {
|
|
|
42
42
|
width: source.data.width,
|
|
43
43
|
height: source.data.height,
|
|
44
44
|
measure,
|
|
45
|
+
verticalAlign: source.data.autoSize === 'none' ? source.data.verticalAlign : 'top',
|
|
45
46
|
});
|
|
46
47
|
let divWidth = 0;
|
|
47
48
|
for (const group of result.groups) {
|
package/dist/domTextLabel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domTextLabel.js","sourceRoot":"","sources":["../src/domTextLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAarG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,SAAS,iBAAiB,CAAC,MAAmB,EAAE,OAAmB;IACjE,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,WAAW,GAAoC,IAAI,CAAC;AAExD,SAAS,aAAa;IACpB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAqB,EAAE,WAA0B;IAChF,MAAM,IAAI,GAAG,WAAW,CAAC,YAAkC,CAAC;IAC5D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAE1B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAmB,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO;IAEzB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,MAAkB,EAAU,EAAE;QACxD,GAAG,CAAC,IAAI,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAqB,CAAC,CAAC;IACpF,iBAAiB,CAAC,MAAM,EAAE;QACxB,IAAI;QACJ,YAAY,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,OAAO;
|
|
1
|
+
{"version":3,"file":"domTextLabel.js","sourceRoot":"","sources":["../src/domTextLabel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export * from './domRichText';
|
|
|
14
14
|
export * from './domScale9Shape';
|
|
15
15
|
export * from './domShape';
|
|
16
16
|
export * from './domStyle';
|
|
17
|
-
export * from './domSvgFilter';
|
|
18
17
|
export { escapeDomHtmlString } from './domTextHelpers';
|
|
19
18
|
export * from './domTextInput';
|
|
20
19
|
export * from './domTextLabel';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,6 @@ export * from './domRichText';
|
|
|
14
14
|
export * from './domScale9Shape';
|
|
15
15
|
export * from './domShape';
|
|
16
16
|
export * from './domStyle';
|
|
17
|
-
export * from './domSvgFilter';
|
|
18
17
|
export { escapeDomHtmlString } from './domTextHelpers';
|
|
19
18
|
export * from './domTextInput';
|
|
20
19
|
export * from './domTextLabel';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/displayobject-dom",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/flighthq/flight.git",
|
|
7
|
+
"directory": "packages/displayobject-dom"
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
10
|
"main": "dist/index.js",
|
|
6
11
|
"types": "dist/index.d.ts",
|
|
@@ -27,18 +32,18 @@
|
|
|
27
32
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
28
33
|
},
|
|
29
34
|
"dependencies": {
|
|
30
|
-
"@flighthq/displayobject": "0.
|
|
31
|
-
"@flighthq/entity": "0.
|
|
32
|
-
"@flighthq/geometry": "0.
|
|
33
|
-
"@flighthq/materials": "0.
|
|
34
|
-
"@flighthq/node": "0.
|
|
35
|
-
"@flighthq/render": "0.
|
|
36
|
-
"@flighthq/displayobject-canvas": "0.
|
|
37
|
-
"@flighthq/shape": "0.
|
|
38
|
-
"@flighthq/text": "0.
|
|
39
|
-
"@flighthq/textinput": "0.
|
|
40
|
-
"@flighthq/textlayout": "0.
|
|
41
|
-
"@flighthq/types": "0.
|
|
35
|
+
"@flighthq/displayobject": "0.2.0",
|
|
36
|
+
"@flighthq/entity": "0.2.0",
|
|
37
|
+
"@flighthq/geometry": "0.2.0",
|
|
38
|
+
"@flighthq/materials": "0.2.0",
|
|
39
|
+
"@flighthq/node": "0.2.0",
|
|
40
|
+
"@flighthq/render": "0.2.0",
|
|
41
|
+
"@flighthq/displayobject-canvas": "0.2.0",
|
|
42
|
+
"@flighthq/shape": "0.2.0",
|
|
43
|
+
"@flighthq/text": "0.2.0",
|
|
44
|
+
"@flighthq/textinput": "0.2.0",
|
|
45
|
+
"@flighthq/textlayout": "0.2.0",
|
|
46
|
+
"@flighthq/types": "0.2.0"
|
|
42
47
|
},
|
|
43
48
|
"devDependencies": {
|
|
44
49
|
"@flighthq/image": "*",
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { getOrCreateRenderProxy2D } from '@flighthq/render';
|
|
2
|
-
import type {
|
|
2
|
+
import type { DisplayObject } from '@flighthq/types';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
enableDomCssFilterSupport,
|
|
6
|
-
getDomCssFilter,
|
|
7
|
-
hasDomCssFilterEquivalent,
|
|
8
|
-
setDomCssFilter,
|
|
9
|
-
} from './domCSSFilterBinding';
|
|
4
|
+
import { enableDomCssFilterSupport, getDomCssFilter, setDomCssFilter } from './domCSSFilterBinding';
|
|
10
5
|
import { createDomRenderState } from './domRenderState';
|
|
11
6
|
|
|
12
7
|
function makeState() {
|
|
@@ -38,43 +33,6 @@ describe('getDomCssFilter', () => {
|
|
|
38
33
|
});
|
|
39
34
|
});
|
|
40
35
|
|
|
41
|
-
describe('hasDomCssFilterEquivalent', () => {
|
|
42
|
-
it('returns true for BlurFilter', () => {
|
|
43
|
-
const filter = { kind: 'BlurFilter' } as BitmapFilter;
|
|
44
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('returns true for DropShadowFilter', () => {
|
|
48
|
-
const filter = { kind: 'DropShadowFilter' } as BitmapFilter;
|
|
49
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(true);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('returns true for OuterGlowFilter (approximated as drop-shadow with 0 offset)', () => {
|
|
53
|
-
const filter = { kind: 'OuterGlowFilter' } as BitmapFilter;
|
|
54
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(true);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('returns false for ConvolutionFilter', () => {
|
|
58
|
-
const filter = { kind: 'ConvolutionFilter' } as BitmapFilter;
|
|
59
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(false);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('returns false for DisplacementMapFilter', () => {
|
|
63
|
-
const filter = { kind: 'DisplacementMapFilter' } as BitmapFilter;
|
|
64
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(false);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it('returns false for ColorMatrixFilter (use getDomSvgColorMatrixFilter for SVG-filter path)', () => {
|
|
68
|
-
const filter = { kind: 'ColorMatrixFilter' } as BitmapFilter;
|
|
69
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(false);
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
it('returns false for an unknown filter kind', () => {
|
|
73
|
-
const filter = { kind: 'UnknownFilter' } as unknown as BitmapFilter;
|
|
74
|
-
expect(hasDomCssFilterEquivalent(filter)).toBe(false);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
|
|
78
36
|
describe('setDomCssFilter', () => {
|
|
79
37
|
it('stores a filter keyed by the per-state render node', () => {
|
|
80
38
|
const state = makeState();
|
package/src/domMaterials.test.ts
CHANGED
|
@@ -25,8 +25,8 @@ describe('applyDomBlendMode', () => {
|
|
|
25
25
|
expect(el.style.mixBlendMode).toBe('difference');
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
it('sets mixBlendMode to "hard-light" for BlendMode.
|
|
29
|
-
applyDomBlendMode(el, BlendMode.
|
|
28
|
+
it('sets mixBlendMode to "hard-light" for BlendMode.HardLight', () => {
|
|
29
|
+
applyDomBlendMode(el, BlendMode.HardLight);
|
|
30
30
|
expect(el.style.mixBlendMode).toBe('hard-light');
|
|
31
31
|
});
|
|
32
32
|
|
|
@@ -50,6 +50,12 @@ describe('applyDomBlendMode', () => {
|
|
|
50
50
|
expect(el.style.mixBlendMode).toBe('screen');
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
+
it('clears mixBlendMode for BlendMode.None (no CSS equivalent)', () => {
|
|
54
|
+
el.style.mixBlendMode = 'multiply';
|
|
55
|
+
applyDomBlendMode(el, BlendMode.None);
|
|
56
|
+
expect(el.style.mixBlendMode).toBe('');
|
|
57
|
+
});
|
|
58
|
+
|
|
53
59
|
it('clears mixBlendMode for null (default)', () => {
|
|
54
60
|
el.style.mixBlendMode = 'multiply';
|
|
55
61
|
applyDomBlendMode(el, null);
|
|
@@ -105,6 +111,10 @@ describe('getDomBlendModeFidelity', () => {
|
|
|
105
111
|
expect(getDomBlendModeFidelity(BlendMode.Invert)).toBe('unsupported');
|
|
106
112
|
});
|
|
107
113
|
|
|
114
|
+
it('returns "unsupported" for BlendMode.None', () => {
|
|
115
|
+
expect(getDomBlendModeFidelity(BlendMode.None)).toBe('unsupported');
|
|
116
|
+
});
|
|
117
|
+
|
|
108
118
|
it('returns "unsupported" for BlendMode.Subtract', () => {
|
|
109
119
|
expect(getDomBlendModeFidelity(BlendMode.Subtract)).toBe('unsupported');
|
|
110
120
|
});
|
|
@@ -59,6 +59,37 @@ describe('drawDomNativeText', () => {
|
|
|
59
59
|
expect(div.style.height).toBe('40px');
|
|
60
60
|
expect(div.style.overflow).toBe('hidden');
|
|
61
61
|
});
|
|
62
|
+
|
|
63
|
+
it('positions the block vertically via the flexbox on a fixed box', () => {
|
|
64
|
+
const state = makeState();
|
|
65
|
+
const node = createNativeText({ data: { text: 'hi', verticalAlign: 'middle' } });
|
|
66
|
+
const renderProxy = getOrCreateRenderProxy2D(state, node);
|
|
67
|
+
|
|
68
|
+
const div = drawGetEl(state, () => drawDomNativeText(state, renderProxy))!;
|
|
69
|
+
expect(div.style.display).toBe('flex');
|
|
70
|
+
expect(div.style.flexDirection).toBe('column');
|
|
71
|
+
expect(div.style.justifyContent).toBe('center');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('maps top and bottom to the box ends', () => {
|
|
75
|
+
const state = makeState();
|
|
76
|
+
const top = createNativeText({ data: { text: 'hi', verticalAlign: 'top' } });
|
|
77
|
+
const bottom = createNativeText({ data: { text: 'hi', verticalAlign: 'bottom' } });
|
|
78
|
+
const topDiv = drawGetEl(state, () => drawDomNativeText(state, getOrCreateRenderProxy2D(state, top)))!;
|
|
79
|
+
const bottomDiv = drawGetEl(state, () => drawDomNativeText(state, getOrCreateRenderProxy2D(state, bottom)))!;
|
|
80
|
+
expect(topDiv.style.justifyContent).toBe('flex-start');
|
|
81
|
+
expect(bottomDiv.style.justifyContent).toBe('flex-end');
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it('drops the flexbox framing under autoSize (no slack to align within)', () => {
|
|
85
|
+
const state = makeState();
|
|
86
|
+
const node = createNativeText({ data: { text: 'hi', autoSize: 'left', verticalAlign: 'middle' } });
|
|
87
|
+
const renderProxy = getOrCreateRenderProxy2D(state, node);
|
|
88
|
+
|
|
89
|
+
const div = drawGetEl(state, () => drawDomNativeText(state, renderProxy))!;
|
|
90
|
+
expect(div.style.display).toBe('');
|
|
91
|
+
expect(div.style.justifyContent).toBe('');
|
|
92
|
+
});
|
|
62
93
|
});
|
|
63
94
|
|
|
64
95
|
describe('drawDomNativeTextMask', () => {
|
package/src/domRichText.test.ts
CHANGED
|
@@ -100,10 +100,14 @@ describe('drawDomRichText', () => {
|
|
|
100
100
|
expect(div.innerHTML).toContain('world');
|
|
101
101
|
});
|
|
102
102
|
|
|
103
|
-
it('renders resolved
|
|
103
|
+
it('renders resolved multi-format spans', () => {
|
|
104
104
|
const state = makeState();
|
|
105
105
|
const node = createRichText();
|
|
106
|
-
node.data.
|
|
106
|
+
node.data.text = 'BoldGreen';
|
|
107
|
+
node.data.textFormatRanges = [
|
|
108
|
+
{ start: 0, end: 4, format: { bold: true } },
|
|
109
|
+
{ start: 4, end: 9, format: { color: 0x00ff00 } },
|
|
110
|
+
];
|
|
107
111
|
const renderProxy = getOrCreateRenderProxy2D(state, node);
|
|
108
112
|
|
|
109
113
|
const div = drawGetEl(state, () => drawDomRichText(state, renderProxy))!;
|
package/dist/domSvgFilter.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { ColorMatrixFilter } from '@flighthq/types';
|
|
2
|
-
/**
|
|
3
|
-
* Builds a CSS `filter: url(#id)` string for a ColorMatrixFilter by injecting an inline SVG
|
|
4
|
-
* `<feColorMatrix>` element into a shared hidden SVG container. Callers pass the returned
|
|
5
|
-
* CSS string directly to `setDomCssFilter`.
|
|
6
|
-
*
|
|
7
|
-
* The Flash/OpenFL 4×5 color matrix uses offsets in the 0–255 range; SVG `feColorMatrix`
|
|
8
|
-
* expects values in the 0–1 range. This function divides offset columns (indices 4, 9, 14, 19)
|
|
9
|
-
* by 255 before writing the `values` attribute.
|
|
10
|
-
*
|
|
11
|
-
* The returned CSS string references a `<filter>` element owned by this module. Call
|
|
12
|
-
* `releaseDomSvgColorMatrixFilter` with the id portion when the filter is no longer needed to
|
|
13
|
-
* remove the SVG element from the DOM; not doing so leaks `<filter>` nodes.
|
|
14
|
-
*
|
|
15
|
-
* Returns null if called outside a document context (SSR / headless without DOM).
|
|
16
|
-
*/
|
|
17
|
-
export declare function getDomSvgColorMatrixFilter(filter: Readonly<ColorMatrixFilter>): string | null;
|
|
18
|
-
/**
|
|
19
|
-
* Removes the SVG `<filter>` element registered under the given id from the shared container.
|
|
20
|
-
* The `id` is the fragment portion of the string returned by `getDomSvgColorMatrixFilter`
|
|
21
|
-
* (strip the leading `url(#` and trailing `)`).
|
|
22
|
-
*
|
|
23
|
-
* Call this when the filter is no longer needed to avoid leaking `<filter>` DOM nodes.
|
|
24
|
-
* No-op if the id is not found or outside a document context.
|
|
25
|
-
*/
|
|
26
|
-
export declare function releaseDomSvgColorMatrixFilter(id: string): void;
|
|
27
|
-
//# sourceMappingURL=domSvgFilter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domSvgFilter.d.ts","sourceRoot":"","sources":["../src/domSvgFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,GAAG,IAAI,CAa7F;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK/D"}
|
package/dist/domSvgFilter.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds a CSS `filter: url(#id)` string for a ColorMatrixFilter by injecting an inline SVG
|
|
3
|
-
* `<feColorMatrix>` element into a shared hidden SVG container. Callers pass the returned
|
|
4
|
-
* CSS string directly to `setDomCssFilter`.
|
|
5
|
-
*
|
|
6
|
-
* The Flash/OpenFL 4×5 color matrix uses offsets in the 0–255 range; SVG `feColorMatrix`
|
|
7
|
-
* expects values in the 0–1 range. This function divides offset columns (indices 4, 9, 14, 19)
|
|
8
|
-
* by 255 before writing the `values` attribute.
|
|
9
|
-
*
|
|
10
|
-
* The returned CSS string references a `<filter>` element owned by this module. Call
|
|
11
|
-
* `releaseDomSvgColorMatrixFilter` with the id portion when the filter is no longer needed to
|
|
12
|
-
* remove the SVG element from the DOM; not doing so leaks `<filter>` nodes.
|
|
13
|
-
*
|
|
14
|
-
* Returns null if called outside a document context (SSR / headless without DOM).
|
|
15
|
-
*/
|
|
16
|
-
export function getDomSvgColorMatrixFilter(filter) {
|
|
17
|
-
const container = ensureSvgContainer();
|
|
18
|
-
if (container === null)
|
|
19
|
-
return null;
|
|
20
|
-
const id = `flighthq-cm-${_nextFilterId++}`;
|
|
21
|
-
const svgFilter = document.createElementNS('http://www.w3.org/2000/svg', 'filter');
|
|
22
|
-
svgFilter.id = id;
|
|
23
|
-
svgFilter.setAttribute('color-interpolation-filters', 'sRGB');
|
|
24
|
-
const feColorMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix');
|
|
25
|
-
feColorMatrix.setAttribute('type', 'matrix');
|
|
26
|
-
feColorMatrix.setAttribute('values', buildFeColorMatrixValues(filter.matrix));
|
|
27
|
-
svgFilter.appendChild(feColorMatrix);
|
|
28
|
-
container.appendChild(svgFilter);
|
|
29
|
-
return `url(#${id})`;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Removes the SVG `<filter>` element registered under the given id from the shared container.
|
|
33
|
-
* The `id` is the fragment portion of the string returned by `getDomSvgColorMatrixFilter`
|
|
34
|
-
* (strip the leading `url(#` and trailing `)`).
|
|
35
|
-
*
|
|
36
|
-
* Call this when the filter is no longer needed to avoid leaking `<filter>` DOM nodes.
|
|
37
|
-
* No-op if the id is not found or outside a document context.
|
|
38
|
-
*/
|
|
39
|
-
export function releaseDomSvgColorMatrixFilter(id) {
|
|
40
|
-
const container = _svgContainer;
|
|
41
|
-
if (container === null)
|
|
42
|
-
return;
|
|
43
|
-
const el = container.querySelector(`#${CSS.escape(id)}`);
|
|
44
|
-
if (el !== null)
|
|
45
|
-
container.removeChild(el);
|
|
46
|
-
}
|
|
47
|
-
// Builds the SVG feColorMatrix `values` attribute string from a Flash/OpenFL 4×5 color matrix.
|
|
48
|
-
// SVG expects values in the 0–1 range; the offset column (every 5th value starting at index 4)
|
|
49
|
-
// is divided by 255 to convert from Flash's 0–255 convention.
|
|
50
|
-
function buildFeColorMatrixValues(matrix) {
|
|
51
|
-
const out = new Array(20);
|
|
52
|
-
for (let row = 0; row < 4; row++) {
|
|
53
|
-
const base = row * 5;
|
|
54
|
-
out[base + 0] = matrix[base + 0];
|
|
55
|
-
out[base + 1] = matrix[base + 1];
|
|
56
|
-
out[base + 2] = matrix[base + 2];
|
|
57
|
-
out[base + 3] = matrix[base + 3];
|
|
58
|
-
// Offset column: divide by 255 (Flash 0–255 → SVG 0–1).
|
|
59
|
-
out[base + 4] = matrix[base + 4] / 255;
|
|
60
|
-
}
|
|
61
|
-
return out.join(' ');
|
|
62
|
-
}
|
|
63
|
-
// Returns (or lazily creates) the shared hidden SVG container appended to document.body.
|
|
64
|
-
// Returns null when no document is available (SSR context).
|
|
65
|
-
function ensureSvgContainer() {
|
|
66
|
-
if (_svgContainer !== null)
|
|
67
|
-
return _svgContainer;
|
|
68
|
-
if (typeof document === 'undefined')
|
|
69
|
-
return null;
|
|
70
|
-
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
71
|
-
svg.setAttribute('aria-hidden', 'true');
|
|
72
|
-
svg.style.position = 'absolute';
|
|
73
|
-
svg.style.width = '0';
|
|
74
|
-
svg.style.height = '0';
|
|
75
|
-
svg.style.overflow = 'hidden';
|
|
76
|
-
svg.style.pointerEvents = 'none';
|
|
77
|
-
// The container lives outside the render root so clip-path / overflow:hidden cannot hide it.
|
|
78
|
-
document.body.appendChild(svg);
|
|
79
|
-
_svgContainer = svg;
|
|
80
|
-
return svg;
|
|
81
|
-
}
|
|
82
|
-
// SVG filter elements are appended to a shared hidden <svg> container at the document root so
|
|
83
|
-
// every element with `filter: url(#id)` can reference them regardless of placement in the DOM.
|
|
84
|
-
// Each filter gets a unique id derived from a monotonically incrementing counter so concurrent
|
|
85
|
-
// filters do not collide.
|
|
86
|
-
let _svgContainer = null;
|
|
87
|
-
let _nextFilterId = 0;
|
|
88
|
-
//# sourceMappingURL=domSvgFilter.js.map
|
package/dist/domSvgFilter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domSvgFilter.js","sourceRoot":"","sources":["../src/domSvgFilter.ts"],"names":[],"mappings":"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"}
|
package/src/domSvgFilter.test.ts
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { getDomSvgColorMatrixFilter, releaseDomSvgColorMatrixFilter } from './domSvgFilter';
|
|
2
|
-
|
|
3
|
-
// A simple identity color matrix (Flash 0–255 offset convention).
|
|
4
|
-
const IDENTITY_MATRIX = [
|
|
5
|
-
1,
|
|
6
|
-
0,
|
|
7
|
-
0,
|
|
8
|
-
0,
|
|
9
|
-
0, // R row
|
|
10
|
-
0,
|
|
11
|
-
1,
|
|
12
|
-
0,
|
|
13
|
-
0,
|
|
14
|
-
0, // G row
|
|
15
|
-
0,
|
|
16
|
-
0,
|
|
17
|
-
1,
|
|
18
|
-
0,
|
|
19
|
-
0, // B row
|
|
20
|
-
0,
|
|
21
|
-
0,
|
|
22
|
-
0,
|
|
23
|
-
1,
|
|
24
|
-
0, // A row
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
describe('getDomSvgColorMatrixFilter', () => {
|
|
28
|
-
it('returns a css url(#id) reference string', () => {
|
|
29
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
30
|
-
const css = getDomSvgColorMatrixFilter(filter);
|
|
31
|
-
expect(css).toMatch(/^url\(#flighthq-cm-\d+\)$/);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('injects a <filter> element into the document', () => {
|
|
35
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
36
|
-
const css = getDomSvgColorMatrixFilter(filter)!;
|
|
37
|
-
const id = css.slice('url(#'.length, -1);
|
|
38
|
-
const el = document.getElementById(id);
|
|
39
|
-
expect(el).not.toBeNull();
|
|
40
|
-
expect(el!.tagName.toLowerCase()).toBe('filter');
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('injects a feColorMatrix child with type=matrix', () => {
|
|
44
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
45
|
-
const css = getDomSvgColorMatrixFilter(filter)!;
|
|
46
|
-
const id = css.slice('url(#'.length, -1);
|
|
47
|
-
const filterEl = document.getElementById(id)!;
|
|
48
|
-
const feEl = filterEl.querySelector('feColorMatrix');
|
|
49
|
-
expect(feEl).not.toBeNull();
|
|
50
|
-
expect(feEl!.getAttribute('type')).toBe('matrix');
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('divides offset column by 255 in the feColorMatrix values', () => {
|
|
54
|
-
// Matrix with offset 255 in the red channel (index 4), which should become 1.0 in SVG.
|
|
55
|
-
const matrix = [
|
|
56
|
-
1,
|
|
57
|
-
0,
|
|
58
|
-
0,
|
|
59
|
-
0,
|
|
60
|
-
255, // R: offset 255 → should map to 1 in SVG
|
|
61
|
-
0,
|
|
62
|
-
1,
|
|
63
|
-
0,
|
|
64
|
-
0,
|
|
65
|
-
0,
|
|
66
|
-
0,
|
|
67
|
-
0,
|
|
68
|
-
1,
|
|
69
|
-
0,
|
|
70
|
-
0,
|
|
71
|
-
0,
|
|
72
|
-
0,
|
|
73
|
-
0,
|
|
74
|
-
1,
|
|
75
|
-
0,
|
|
76
|
-
];
|
|
77
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix };
|
|
78
|
-
const css = getDomSvgColorMatrixFilter(filter)!;
|
|
79
|
-
const id = css.slice('url(#'.length, -1);
|
|
80
|
-
const filterEl = document.getElementById(id)!;
|
|
81
|
-
const feEl = filterEl.querySelector('feColorMatrix')!;
|
|
82
|
-
const values = feEl.getAttribute('values')!.split(' ').map(Number);
|
|
83
|
-
// Index 4 is the R-row offset; should be 255/255 = 1
|
|
84
|
-
expect(values[4]).toBeCloseTo(1, 5);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
it('each call produces a unique id', () => {
|
|
88
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
89
|
-
const css1 = getDomSvgColorMatrixFilter(filter);
|
|
90
|
-
const css2 = getDomSvgColorMatrixFilter(filter);
|
|
91
|
-
expect(css1).not.toBe(css2);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('sets color-interpolation-filters to sRGB on the filter element', () => {
|
|
95
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
96
|
-
const css = getDomSvgColorMatrixFilter(filter)!;
|
|
97
|
-
const id = css.slice('url(#'.length, -1);
|
|
98
|
-
const filterEl = document.getElementById(id)!;
|
|
99
|
-
expect(filterEl.getAttribute('color-interpolation-filters')).toBe('sRGB');
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
describe('releaseDomSvgColorMatrixFilter', () => {
|
|
104
|
-
it('removes the injected filter element from the document', () => {
|
|
105
|
-
const filter = { kind: 'ColorMatrixFilter' as const, matrix: IDENTITY_MATRIX };
|
|
106
|
-
const css = getDomSvgColorMatrixFilter(filter)!;
|
|
107
|
-
const id = css.slice('url(#'.length, -1);
|
|
108
|
-
expect(document.getElementById(id)).not.toBeNull();
|
|
109
|
-
releaseDomSvgColorMatrixFilter(id);
|
|
110
|
-
expect(document.getElementById(id)).toBeNull();
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it('is a no-op for an unknown id', () => {
|
|
114
|
-
expect(() => releaseDomSvgColorMatrixFilter('nonexistent-filter-id')).not.toThrow();
|
|
115
|
-
});
|
|
116
|
-
});
|