@needle-tools/engine 5.0.0-next.40cc839 → 5.1.0-experimental.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/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-DT9A2Hrc.js +1 -0
- package/dist/gltf-progressive-3BwW4ETO.min.js +10 -0
- package/dist/gltf-progressive-ByD1UX0A.umd.cjs +10 -0
- package/dist/{gltf-progressive-Cl167Vjx.js → gltf-progressive-DwWaVr0o.js} +412 -394
- package/dist/gltf-progressive.worker-DpfUjn1n.js +3 -0
- package/dist/{materialx-qPScBWhj.min.js → materialx-9KHBidZa.min.js} +1 -1
- package/dist/{materialx-4ApD6Vz5.js → materialx-BBDu8W5P.js} +1 -1
- package/dist/{materialx-D0XUnhBY.umd.cjs → materialx-hLP3E8AA.umd.cjs} +2 -2
- package/dist/{needle-engine.bundle-CAt_h_GH.umd.cjs → needle-engine.bundle-BOAJ6UPK.umd.cjs} +123 -123
- package/dist/{needle-engine.bundle-BLroQ2QT.min.js → needle-engine.bundle-CVsBkUR2.min.js} +110 -110
- package/dist/{needle-engine.bundle-DysB2Idj.js → needle-engine.bundle-TgPY0fGG.js} +2143 -2088
- package/dist/needle-engine.d.ts +102 -44
- package/dist/needle-engine.js +480 -476
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-B_9sKVU7.min.js → postprocessing-BZfyAdCY.min.js} +1 -1
- package/dist/{postprocessing-WDc9WwI3.js → postprocessing-CXlA3QA6.js} +1 -1
- package/dist/{postprocessing-B2wb6pzI.umd.cjs → postprocessing-Dwy7Hz_T.umd.cjs} +38 -38
- package/dist/three-examples.js +4760 -3641
- package/dist/three-examples.min.js +17 -35
- package/dist/three-examples.umd.cjs +16 -34
- package/dist/three.js +48533 -28562
- package/dist/three.min.js +716 -502
- package/dist/three.umd.cjs +720 -506
- package/dist/{vendor-CntUvmJu.umd.cjs → vendor-BI4TX0aC.umd.cjs} +9 -9
- package/dist/{vendor-DPbfJJ4d.min.js → vendor-BgzAK9of.min.js} +1 -1
- package/dist/{vendor-vHLk8sXu.js → vendor-CwL-uvVy.js} +1 -1
- package/lib/engine/engine_animation.js +1 -1
- package/lib/engine/engine_animation.js.map +1 -1
- package/lib/engine/engine_audio.js.map +1 -1
- package/lib/engine/engine_context.js +3 -6
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_create_objects.js +0 -1
- package/lib/engine/engine_create_objects.js.map +1 -1
- package/lib/engine/engine_element.d.ts +113 -0
- package/lib/engine/engine_element.js +833 -0
- package/lib/engine/engine_element.js.map +1 -0
- package/lib/engine/engine_element_attributes.d.ts +72 -0
- package/lib/engine/engine_element_attributes.js +2 -0
- package/lib/engine/engine_element_attributes.js.map +1 -0
- package/lib/engine/engine_element_extras.d.ts +6 -0
- package/lib/engine/engine_element_extras.js +14 -0
- package/lib/engine/engine_element_extras.js.map +1 -0
- package/lib/engine/engine_element_loading.d.ts +44 -0
- package/lib/engine/engine_element_loading.js +350 -0
- package/lib/engine/engine_element_loading.js.map +1 -0
- package/lib/engine/engine_element_overlay.d.ts +21 -0
- package/lib/engine/engine_element_overlay.js +167 -0
- package/lib/engine/engine_element_overlay.js.map +1 -0
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_pmrem.js +2 -2
- package/lib/engine/engine_pmrem.js.map +1 -1
- package/lib/engine/engine_scenetools.d.ts +62 -0
- package/lib/engine/engine_scenetools.js +337 -0
- package/lib/engine/engine_scenetools.js.map +1 -0
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +1 -1
- package/lib/engine/engine_test_utils.d.ts +39 -0
- package/lib/engine/engine_test_utils.js +84 -0
- package/lib/engine/engine_test_utils.js.map +1 -0
- package/lib/engine/engine_three_utils.js.map +1 -1
- package/lib/engine/engine_time.js +4 -3
- package/lib/engine/engine_time.js.map +1 -1
- package/lib/engine/engine_ui.d.ts +25 -0
- package/lib/engine/engine_ui.dummy_canvas.d.ts +2 -0
- package/lib/engine/engine_ui.dummy_canvas.js +55 -0
- package/lib/engine/engine_ui.dummy_canvas.js.map +1 -0
- package/lib/engine/engine_ui.js +168 -0
- package/lib/engine/engine_ui.js.map +1 -0
- package/lib/engine/extensions/NEEDLE_lightmaps.js +2 -2
- package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_pmrem.d.ts +1 -1
- package/lib/engine/webcomponents/icons.js +3 -2
- package/lib/engine/webcomponents/icons.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js +2 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js.map +1 -0
- package/lib/engine-components/AudioSource.js +1 -1
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Light.d.ts +3 -0
- package/lib/engine-components/Light.js +39 -31
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +2 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/SpriteRenderer.d.ts +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/Animation.js +1 -0
- package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/ui/BaseUIComponent_Uikit.d.ts +54 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js +114 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js.map +1 -0
- package/lib/engine-components/ui/BaseUikitComponent.d.ts +54 -0
- package/lib/engine-components/ui/BaseUikitComponent.js +114 -0
- package/lib/engine-components/ui/BaseUikitComponent.js.map +1 -0
- package/lib/engine-components/ui/Button.legacy.d.ts +68 -0
- package/lib/engine-components/ui/Button.legacy.js +320 -0
- package/lib/engine-components/ui/Button.legacy.js.map +1 -0
- package/lib/engine-components/ui/ButtonUikit.d.ts +51 -0
- package/lib/engine-components/ui/ButtonUikit.js +187 -0
- package/lib/engine-components/ui/ButtonUikit.js.map +1 -0
- package/lib/engine-components/ui/Canvas.js +2 -2
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Canvas.legacy.d.ts +76 -0
- package/lib/engine-components/ui/Canvas.legacy.js +409 -0
- package/lib/engine-components/ui/Canvas.legacy.js.map +1 -0
- package/lib/engine-components/ui/CanvasUikit.d.ts +68 -0
- package/lib/engine-components/ui/CanvasUikit.js +289 -0
- package/lib/engine-components/ui/CanvasUikit.js.map +1 -0
- package/lib/engine-components/ui/Graphic.d.ts +3 -3
- package/lib/engine-components/ui/Graphic.js +6 -2
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Graphic.legacy.d.ts +55 -0
- package/lib/engine-components/ui/Graphic.legacy.js +268 -0
- package/lib/engine-components/ui/Graphic.legacy.js.map +1 -0
- package/lib/engine-components/ui/GraphicUikit.d.ts +21 -0
- package/lib/engine-components/ui/GraphicUikit.js +65 -0
- package/lib/engine-components/ui/GraphicUikit.js.map +1 -0
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/Image.legacy.d.ts +39 -0
- package/lib/engine-components/ui/Image.legacy.js +121 -0
- package/lib/engine-components/ui/Image.legacy.js.map +1 -0
- package/lib/engine-components/ui/ImageUikit.d.ts +22 -0
- package/lib/engine-components/ui/ImageUikit.js +97 -0
- package/lib/engine-components/ui/ImageUikit.js.map +1 -0
- package/lib/engine-components/ui/RenderMode.d.ts +14 -0
- package/lib/engine-components/ui/RenderMode.js +16 -0
- package/lib/engine-components/ui/RenderMode.js.map +1 -0
- package/lib/engine-components/ui/Text.d.ts +64 -11
- package/lib/engine-components/ui/Text.js +154 -45
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/ui/Text.legacy.d.ts +81 -0
- package/lib/engine-components/ui/Text.legacy.js +548 -0
- package/lib/engine-components/ui/Text.legacy.js.map +1 -0
- package/lib/engine-components/ui/TextUikit.d.ts +42 -0
- package/lib/engine-components/ui/TextUikit.js +164 -0
- package/lib/engine-components/ui/TextUikit.js.map +1 -0
- package/lib/engine-components/ui/index.d.ts +1 -0
- package/lib/engine-components/ui/index.js +1 -0
- package/lib/engine-components/ui/index.js.map +1 -1
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -1
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
- package/package.json +5 -5
- package/plugins/common/buildinfo.d.ts +6 -0
- package/plugins/vite/ai.d.ts +7 -8
- package/plugins/vite/ai.js +95 -20
- package/plugins/vite/alias.js +6 -0
- package/plugins/vite/dependencies.js +7 -0
- package/src/engine/engine_animation.ts +1 -1
- package/src/engine/engine_audio.ts +1 -1
- package/src/engine/engine_context.ts +3 -6
- package/src/engine/engine_create_objects.ts +0 -1
- package/src/engine/engine_license.ts +0 -2
- package/src/engine/engine_pmrem.ts +3 -3
- package/src/engine/engine_three_utils.ts +2 -2
- package/src/engine/engine_time.ts +4 -3
- package/src/engine/extensions/NEEDLE_lightmaps.ts +3 -3
- package/src/engine/webcomponents/icons.ts +3 -2
- package/src/engine-components/AudioSource.ts +1 -1
- package/src/engine-components/Light.ts +39 -31
- package/src/engine-components/OrbitControls.ts +2 -2
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2 -2
- package/src/engine-components/export/usdz/extensions/Animation.ts +6 -5
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +3 -3
- package/src/engine-components/timeline/TimelineTracks.ts +2 -2
- package/src/engine-components/ui/Canvas.ts +2 -2
- package/src/engine-components/ui/Graphic.ts +7 -3
- package/src/engine-components/ui/Image.ts +1 -1
- package/src/engine-components/ui/Text.ts +170 -52
- package/src/engine-components/ui/index.ts +2 -1
- package/dist/generateMeshBVH.worker-DiCnZlf3.js +0 -21
- package/dist/gltf-progressive-BryRjllq.min.js +0 -10
- package/dist/gltf-progressive-DJBMx-zB.umd.cjs +0 -10
- package/dist/gltf-progressive.worker-BqODMeeW.js +0 -23
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Graphic } from './Graphic.js';
|
|
2
|
+
import { type ICanvas, type ICanvasEventReceiver, type IHasAlphaFactor } from './Interfaces.js';
|
|
3
|
+
export declare enum TextAnchor {
|
|
4
|
+
UpperLeft = 0,
|
|
5
|
+
UpperCenter = 1,
|
|
6
|
+
UpperRight = 2,
|
|
7
|
+
MiddleLeft = 3,
|
|
8
|
+
MiddleCenter = 4,
|
|
9
|
+
MiddleRight = 5,
|
|
10
|
+
LowerLeft = 6,
|
|
11
|
+
LowerCenter = 7,
|
|
12
|
+
LowerRight = 8
|
|
13
|
+
}
|
|
14
|
+
export declare enum VerticalWrapMode {
|
|
15
|
+
Truncate = 0,
|
|
16
|
+
Overflow = 1
|
|
17
|
+
}
|
|
18
|
+
declare enum HorizontalWrapMode {
|
|
19
|
+
Wrap = 0,
|
|
20
|
+
Overflow = 1
|
|
21
|
+
}
|
|
22
|
+
export declare enum FontStyle {
|
|
23
|
+
Normal = 0,
|
|
24
|
+
Bold = 1,
|
|
25
|
+
Italic = 2,
|
|
26
|
+
BoldAndItalic = 3
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Text is a UI component that displays text in the user interface.
|
|
30
|
+
*
|
|
31
|
+
* @summary Display text in the UI
|
|
32
|
+
* @category User Interface
|
|
33
|
+
* @group Components
|
|
34
|
+
*/
|
|
35
|
+
export declare class Text extends Graphic implements IHasAlphaFactor, ICanvasEventReceiver {
|
|
36
|
+
alignment: TextAnchor;
|
|
37
|
+
verticalOverflow: VerticalWrapMode;
|
|
38
|
+
horizontalOverflow: HorizontalWrapMode;
|
|
39
|
+
lineSpacing: number;
|
|
40
|
+
supportRichText: boolean;
|
|
41
|
+
font?: string;
|
|
42
|
+
fontStyle: FontStyle;
|
|
43
|
+
setAlphaFactor(factor: number): void;
|
|
44
|
+
get text(): string;
|
|
45
|
+
set text(val: string);
|
|
46
|
+
private set_text;
|
|
47
|
+
get fontSize(): number;
|
|
48
|
+
set fontSize(val: number);
|
|
49
|
+
private sRGBTextColor;
|
|
50
|
+
protected onColorChanged(): void;
|
|
51
|
+
onParentRectTransformChanged(): void;
|
|
52
|
+
onBeforeCanvasRender(_canvas: ICanvas): void;
|
|
53
|
+
private updateOverflow;
|
|
54
|
+
protected onCreate(_opts: any): void;
|
|
55
|
+
onAfterAddedToScene(): void;
|
|
56
|
+
private _text;
|
|
57
|
+
private _fontSize;
|
|
58
|
+
private _textMeshUi;
|
|
59
|
+
private getTextOpts;
|
|
60
|
+
onEnable(): void;
|
|
61
|
+
onDisable(): void;
|
|
62
|
+
private getAlignment;
|
|
63
|
+
private feedText;
|
|
64
|
+
private _didHandleTextRenderOnTop;
|
|
65
|
+
private handleTextRenderOnTop;
|
|
66
|
+
private renderOnTopCoroutine;
|
|
67
|
+
private handleTag;
|
|
68
|
+
private getText;
|
|
69
|
+
private getNextTag;
|
|
70
|
+
/**
|
|
71
|
+
* Update provided opts to have a proper fontDefinition : family+weight+style
|
|
72
|
+
* Ensure Family and Variant are registered in FontLibrary
|
|
73
|
+
*
|
|
74
|
+
* @param opts
|
|
75
|
+
* @param fontStyle
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
private setFont;
|
|
79
|
+
private getFamilyNameWithCorrectSuffix;
|
|
80
|
+
}
|
|
81
|
+
export {};
|
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Color } from 'three';
|
|
8
|
+
import * as ThreeMeshUI from 'three-mesh-ui';
|
|
9
|
+
import { serializable } from '../../engine/engine_serialization_decorator.js';
|
|
10
|
+
import { getParam } from '../../engine/engine_utils.js';
|
|
11
|
+
import { Graphic } from './Graphic.js';
|
|
12
|
+
import { updateRenderSettings } from './Utils.js';
|
|
13
|
+
const debug = getParam("debugtext");
|
|
14
|
+
export var TextAnchor;
|
|
15
|
+
(function (TextAnchor) {
|
|
16
|
+
TextAnchor[TextAnchor["UpperLeft"] = 0] = "UpperLeft";
|
|
17
|
+
TextAnchor[TextAnchor["UpperCenter"] = 1] = "UpperCenter";
|
|
18
|
+
TextAnchor[TextAnchor["UpperRight"] = 2] = "UpperRight";
|
|
19
|
+
TextAnchor[TextAnchor["MiddleLeft"] = 3] = "MiddleLeft";
|
|
20
|
+
TextAnchor[TextAnchor["MiddleCenter"] = 4] = "MiddleCenter";
|
|
21
|
+
TextAnchor[TextAnchor["MiddleRight"] = 5] = "MiddleRight";
|
|
22
|
+
TextAnchor[TextAnchor["LowerLeft"] = 6] = "LowerLeft";
|
|
23
|
+
TextAnchor[TextAnchor["LowerCenter"] = 7] = "LowerCenter";
|
|
24
|
+
TextAnchor[TextAnchor["LowerRight"] = 8] = "LowerRight";
|
|
25
|
+
})(TextAnchor || (TextAnchor = {}));
|
|
26
|
+
export var VerticalWrapMode;
|
|
27
|
+
(function (VerticalWrapMode) {
|
|
28
|
+
VerticalWrapMode[VerticalWrapMode["Truncate"] = 0] = "Truncate";
|
|
29
|
+
VerticalWrapMode[VerticalWrapMode["Overflow"] = 1] = "Overflow";
|
|
30
|
+
})(VerticalWrapMode || (VerticalWrapMode = {}));
|
|
31
|
+
var HorizontalWrapMode;
|
|
32
|
+
(function (HorizontalWrapMode) {
|
|
33
|
+
HorizontalWrapMode[HorizontalWrapMode["Wrap"] = 0] = "Wrap";
|
|
34
|
+
HorizontalWrapMode[HorizontalWrapMode["Overflow"] = 1] = "Overflow";
|
|
35
|
+
})(HorizontalWrapMode || (HorizontalWrapMode = {}));
|
|
36
|
+
export var FontStyle;
|
|
37
|
+
(function (FontStyle) {
|
|
38
|
+
FontStyle[FontStyle["Normal"] = 0] = "Normal";
|
|
39
|
+
FontStyle[FontStyle["Bold"] = 1] = "Bold";
|
|
40
|
+
FontStyle[FontStyle["Italic"] = 2] = "Italic";
|
|
41
|
+
FontStyle[FontStyle["BoldAndItalic"] = 3] = "BoldAndItalic";
|
|
42
|
+
})(FontStyle || (FontStyle = {}));
|
|
43
|
+
/**
|
|
44
|
+
* Text is a UI component that displays text in the user interface.
|
|
45
|
+
*
|
|
46
|
+
* @summary Display text in the UI
|
|
47
|
+
* @category User Interface
|
|
48
|
+
* @group Components
|
|
49
|
+
*/
|
|
50
|
+
export class Text extends Graphic {
|
|
51
|
+
alignment = TextAnchor.UpperLeft;
|
|
52
|
+
verticalOverflow = VerticalWrapMode.Truncate;
|
|
53
|
+
horizontalOverflow = HorizontalWrapMode.Wrap;
|
|
54
|
+
lineSpacing = 1;
|
|
55
|
+
supportRichText = false;
|
|
56
|
+
font;
|
|
57
|
+
fontStyle = FontStyle.Normal;
|
|
58
|
+
// private _alphaFactor : number = 1;
|
|
59
|
+
setAlphaFactor(factor) {
|
|
60
|
+
super.setAlphaFactor(factor);
|
|
61
|
+
this.uiObject?.set({ fontOpacity: this.color.alpha * this.alphaFactor });
|
|
62
|
+
this.markDirty();
|
|
63
|
+
}
|
|
64
|
+
get text() {
|
|
65
|
+
return this._text;
|
|
66
|
+
}
|
|
67
|
+
set text(val) {
|
|
68
|
+
if (val !== this._text) {
|
|
69
|
+
this._text = val;
|
|
70
|
+
this.feedText(this.text, this.supportRichText);
|
|
71
|
+
this.markDirty();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
set_text(val) {
|
|
75
|
+
this.text = val;
|
|
76
|
+
}
|
|
77
|
+
get fontSize() {
|
|
78
|
+
return this._fontSize;
|
|
79
|
+
}
|
|
80
|
+
set fontSize(val) {
|
|
81
|
+
// Setting that kind of property in a parent, would cascade to each 'non-overrided' children.
|
|
82
|
+
this._fontSize = val;
|
|
83
|
+
this.uiObject?.set({ fontSize: val });
|
|
84
|
+
}
|
|
85
|
+
sRGBTextColor = new Color(1, 0, 1);
|
|
86
|
+
onColorChanged() {
|
|
87
|
+
this.sRGBTextColor.copy(this.color);
|
|
88
|
+
this.sRGBTextColor.convertLinearToSRGB();
|
|
89
|
+
this.uiObject?.set({ color: this.sRGBTextColor, fontOpacity: this.color.alpha });
|
|
90
|
+
}
|
|
91
|
+
onParentRectTransformChanged() {
|
|
92
|
+
super.onParentRectTransformChanged();
|
|
93
|
+
if (this.uiObject) {
|
|
94
|
+
this.updateOverflow();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// onBeforeRender(): void {
|
|
98
|
+
// // TODO TMUI @swingingtom this is so we don't have text clipping
|
|
99
|
+
// if (this.uiObject && (this.Canvas?.screenspace || this.context.isInVR)) {
|
|
100
|
+
// this.updateOverflow();
|
|
101
|
+
// }
|
|
102
|
+
// }
|
|
103
|
+
onBeforeCanvasRender(_canvas) {
|
|
104
|
+
// ensure the text clipping matrix is updated (this was a problem with multiple screenspace canvases due to canvas reparenting)
|
|
105
|
+
this.updateOverflow();
|
|
106
|
+
}
|
|
107
|
+
updateOverflow() {
|
|
108
|
+
// HACK: force the text overflow to update
|
|
109
|
+
const overflow = this.uiObject?._overflow;
|
|
110
|
+
if (overflow) {
|
|
111
|
+
overflow._needsUpdate = true;
|
|
112
|
+
// the screenspace canvas does force an update, no need to mark dirty here
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
onCreate(_opts) {
|
|
116
|
+
if (debug)
|
|
117
|
+
console.log(this);
|
|
118
|
+
if (this.horizontalOverflow == HorizontalWrapMode.Overflow) {
|
|
119
|
+
// Only line characters in the textContent (\n,\r\t) would be able to multiline the text
|
|
120
|
+
_opts.whiteSpace = 'pre';
|
|
121
|
+
}
|
|
122
|
+
if (this.verticalOverflow == VerticalWrapMode.Truncate) {
|
|
123
|
+
this.context.renderer.localClippingEnabled = true;
|
|
124
|
+
_opts.overflow = 'hidden';
|
|
125
|
+
}
|
|
126
|
+
// @marwie : this combination is currently KO. See sample "Overflow Overview"
|
|
127
|
+
if (this.horizontalOverflow == HorizontalWrapMode.Overflow && this.verticalOverflow == VerticalWrapMode.Truncate) {
|
|
128
|
+
// This could fix this combination, but would require anchors updates to replace element
|
|
129
|
+
// _opts.width = 'auto';
|
|
130
|
+
}
|
|
131
|
+
_opts.lineHeight = this.lineSpacing;
|
|
132
|
+
// @marwie : Should be fixed. Currently _opts are always fed with :
|
|
133
|
+
// backgroundOpacity : color.opacity
|
|
134
|
+
// backgroundColor : color
|
|
135
|
+
delete _opts.backgroundOpacity;
|
|
136
|
+
delete _opts.backgroundColor;
|
|
137
|
+
// helper to show bounds of text element
|
|
138
|
+
if (debug) {
|
|
139
|
+
_opts.backgroundColor = 0xff9900;
|
|
140
|
+
_opts.backgroundOpacity = 0.5;
|
|
141
|
+
}
|
|
142
|
+
const rt = this.rectTransform;
|
|
143
|
+
// Texts now support both options, block and inline, and inline has all default to inherit
|
|
144
|
+
_opts = { ..._opts, ...this.getTextOpts() };
|
|
145
|
+
this.getAlignment(_opts);
|
|
146
|
+
if (debug) {
|
|
147
|
+
_opts.backgroundColor = Math.random() * 0xffffff;
|
|
148
|
+
_opts.backgroundOpacity = 0.1;
|
|
149
|
+
}
|
|
150
|
+
this.uiObject = rt.createNewText(_opts);
|
|
151
|
+
this.feedText(this.text, this.supportRichText);
|
|
152
|
+
}
|
|
153
|
+
onAfterAddedToScene() {
|
|
154
|
+
super.onAfterAddedToScene();
|
|
155
|
+
this.handleTextRenderOnTop();
|
|
156
|
+
}
|
|
157
|
+
_text = "";
|
|
158
|
+
_fontSize = 12;
|
|
159
|
+
_textMeshUi = null;
|
|
160
|
+
getTextOpts() {
|
|
161
|
+
const fontSize = this.fontSize;
|
|
162
|
+
// if (this.canvas) {
|
|
163
|
+
// fontSize /= this.canvas?.scaleFactor;
|
|
164
|
+
// }
|
|
165
|
+
const textOpts = {
|
|
166
|
+
color: this.color,
|
|
167
|
+
fontOpacity: this.color.alpha,
|
|
168
|
+
fontSize: fontSize,
|
|
169
|
+
fontKerning: "normal",
|
|
170
|
+
};
|
|
171
|
+
this.setFont(textOpts, this.fontStyle);
|
|
172
|
+
return textOpts;
|
|
173
|
+
}
|
|
174
|
+
onEnable() {
|
|
175
|
+
super.onEnable();
|
|
176
|
+
this._didHandleTextRenderOnTop = false;
|
|
177
|
+
if (this.uiObject) {
|
|
178
|
+
// @ts-ignore
|
|
179
|
+
// @TODO : Evaluate the need of keeping it anonymous.
|
|
180
|
+
// From v7.x afterUpdate can be removed but requires a reference
|
|
181
|
+
this.uiObject.addAfterUpdate(() => {
|
|
182
|
+
// We need to update the shadow owner when the text updates
|
|
183
|
+
// because once the font has loaded we get new children (a new mesh)
|
|
184
|
+
// which is the text, it needs to be linked back to this component
|
|
185
|
+
// to be properly handled by the EventSystem
|
|
186
|
+
// since the EventSystem looks for shadow component owners to handle events
|
|
187
|
+
this.setShadowComponentOwner(this.uiObject);
|
|
188
|
+
this.markDirty();
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
setTimeout(() => this.markDirty(), 10);
|
|
192
|
+
this.canvas?.registerEventReceiver(this);
|
|
193
|
+
}
|
|
194
|
+
onDisable() {
|
|
195
|
+
super.onDisable();
|
|
196
|
+
this.canvas?.unregisterEventReceiver(this);
|
|
197
|
+
}
|
|
198
|
+
getAlignment(opts) {
|
|
199
|
+
opts.flexDirection = "column";
|
|
200
|
+
switch (this.alignment) {
|
|
201
|
+
case TextAnchor.UpperLeft:
|
|
202
|
+
case TextAnchor.MiddleLeft:
|
|
203
|
+
case TextAnchor.LowerLeft:
|
|
204
|
+
opts.textAlign = "left";
|
|
205
|
+
break;
|
|
206
|
+
case TextAnchor.UpperCenter:
|
|
207
|
+
case TextAnchor.MiddleCenter:
|
|
208
|
+
case TextAnchor.LowerCenter:
|
|
209
|
+
opts.textAlign = "center";
|
|
210
|
+
break;
|
|
211
|
+
case TextAnchor.UpperRight:
|
|
212
|
+
case TextAnchor.MiddleRight:
|
|
213
|
+
case TextAnchor.LowerRight:
|
|
214
|
+
opts.textAlign = "right";
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
switch (this.alignment) {
|
|
218
|
+
default:
|
|
219
|
+
case TextAnchor.UpperLeft:
|
|
220
|
+
case TextAnchor.UpperCenter:
|
|
221
|
+
case TextAnchor.UpperRight:
|
|
222
|
+
opts.alignItems = "start";
|
|
223
|
+
break;
|
|
224
|
+
case TextAnchor.MiddleLeft:
|
|
225
|
+
case TextAnchor.MiddleCenter:
|
|
226
|
+
case TextAnchor.MiddleRight:
|
|
227
|
+
opts.alignItems = "center";
|
|
228
|
+
break;
|
|
229
|
+
case TextAnchor.LowerLeft:
|
|
230
|
+
case TextAnchor.LowerCenter:
|
|
231
|
+
case TextAnchor.LowerRight:
|
|
232
|
+
opts.alignItems = "end";
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
return opts;
|
|
236
|
+
}
|
|
237
|
+
feedText(text, richText) {
|
|
238
|
+
// if (!text || text.length <= 0) return;
|
|
239
|
+
// if (!text ) return;
|
|
240
|
+
if (debug)
|
|
241
|
+
console.log("feedText", this.uiObject, text, richText);
|
|
242
|
+
if (!this.uiObject)
|
|
243
|
+
return;
|
|
244
|
+
if (!this._textMeshUi)
|
|
245
|
+
this._textMeshUi = [];
|
|
246
|
+
// this doesnt work and produces errors when length is 0:
|
|
247
|
+
// this.uiObject.textContent = " ";
|
|
248
|
+
// reset the current text (e.g. when switching from "Hello" to "Hello <b>World</b>")
|
|
249
|
+
// @TODO swingingtom: this is a hack to reset the text content, not sure how to do that right
|
|
250
|
+
this.uiObject.children.length = 0;
|
|
251
|
+
if (!richText || text.length === 0) {
|
|
252
|
+
//@TODO: @swingingtom how would the text content be set?
|
|
253
|
+
//@ts-ignore
|
|
254
|
+
this.uiObject.textContent = text;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
let currentTag = this.getNextTag(text);
|
|
258
|
+
if (!currentTag) {
|
|
259
|
+
//@ts-ignore
|
|
260
|
+
// we have to set it to empty string, otherwise TMUI won't update it @swingingtom
|
|
261
|
+
this.uiObject.textContent = ""; // <
|
|
262
|
+
this.setOptions({ textContent: text });
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
else if (currentTag.startIndex > 0) {
|
|
266
|
+
// First segment should also clear children inlines
|
|
267
|
+
for (let i = this.uiObject.children.length - 1; i >= 0; i--) {
|
|
268
|
+
const child = this.uiObject.children[i];
|
|
269
|
+
// @ts-ignore
|
|
270
|
+
if (child.isUI) {
|
|
271
|
+
this.uiObject.remove(child);
|
|
272
|
+
child.clear();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const el = new ThreeMeshUI.Inline({ textContent: text.substring(0, currentTag.startIndex), color: 'inherit' });
|
|
276
|
+
this.uiObject.add(el);
|
|
277
|
+
}
|
|
278
|
+
const stackArray = [];
|
|
279
|
+
while (currentTag) {
|
|
280
|
+
const next = this.getNextTag(text, currentTag.endIndex);
|
|
281
|
+
const opts = {
|
|
282
|
+
fontFamily: this.uiObject?.get('fontFamily'),
|
|
283
|
+
color: 'inherit',
|
|
284
|
+
textContent: ""
|
|
285
|
+
};
|
|
286
|
+
if (next) {
|
|
287
|
+
opts.textContent = this.getText(text, currentTag, next);
|
|
288
|
+
this.handleTag(currentTag, opts, stackArray);
|
|
289
|
+
const el = new ThreeMeshUI.Inline(opts);
|
|
290
|
+
this.uiObject?.add(el);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
opts.textContent = text.substring(currentTag.endIndex);
|
|
294
|
+
this.handleTag(currentTag, opts, stackArray);
|
|
295
|
+
const el = new ThreeMeshUI.Inline(opts);
|
|
296
|
+
this.uiObject?.add(el);
|
|
297
|
+
}
|
|
298
|
+
currentTag = next;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
_didHandleTextRenderOnTop = false;
|
|
303
|
+
handleTextRenderOnTop() {
|
|
304
|
+
if (this._didHandleTextRenderOnTop)
|
|
305
|
+
return;
|
|
306
|
+
this._didHandleTextRenderOnTop = true;
|
|
307
|
+
this.startCoroutine(this.renderOnTopCoroutine());
|
|
308
|
+
}
|
|
309
|
+
// waits for all the text objects to be ready to set the render on top setting
|
|
310
|
+
// @THH : this isn't true anymore. We can set mesh and material properties before their counterparts are created.
|
|
311
|
+
// Values would automatically be passed when created. Not sure for depthWrite but it can be added;
|
|
312
|
+
*renderOnTopCoroutine() {
|
|
313
|
+
if (!this.canvas)
|
|
314
|
+
return;
|
|
315
|
+
const updatedRendering = [];
|
|
316
|
+
const canvas = this.canvas;
|
|
317
|
+
const settings = {
|
|
318
|
+
renderOnTop: canvas.renderOnTop,
|
|
319
|
+
depthWrite: canvas.depthWrite,
|
|
320
|
+
doubleSided: canvas.doubleSided
|
|
321
|
+
};
|
|
322
|
+
while (true) {
|
|
323
|
+
let isWaitingForElementToUpdate = false;
|
|
324
|
+
if (this._textMeshUi) {
|
|
325
|
+
for (let i = 0; i < this._textMeshUi.length; i++) {
|
|
326
|
+
if (updatedRendering[i] === true)
|
|
327
|
+
continue;
|
|
328
|
+
isWaitingForElementToUpdate = true;
|
|
329
|
+
const textMeshObject = this._textMeshUi[i];
|
|
330
|
+
// text objects have this textContent which is the mesh
|
|
331
|
+
// it is not ready immediately so we have to check if it exists
|
|
332
|
+
// and only then setting the render on top property works
|
|
333
|
+
if (!textMeshObject["textContent"])
|
|
334
|
+
continue;
|
|
335
|
+
updateRenderSettings(textMeshObject, settings);
|
|
336
|
+
updatedRendering[i] = true;
|
|
337
|
+
// console.log(textMeshObject);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (!isWaitingForElementToUpdate)
|
|
341
|
+
break;
|
|
342
|
+
yield;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
handleTag(tag, opts, stackArray) {
|
|
346
|
+
// console.log(tag);
|
|
347
|
+
if (!tag.isEndTag) {
|
|
348
|
+
if (tag.type.includes("color")) {
|
|
349
|
+
const stackEntry = new TagStackEntry(tag, { color: opts.color });
|
|
350
|
+
stackArray.push(stackEntry);
|
|
351
|
+
if (tag.type.length > 6) // color=
|
|
352
|
+
{
|
|
353
|
+
const col = parseInt("0x" + tag.type.substring(7));
|
|
354
|
+
opts.color = col;
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
// if it does not contain a color it is white
|
|
358
|
+
opts.color = new Color(1, 1, 1);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
else if (tag.type == "b") {
|
|
362
|
+
this.setFont(opts, FontStyle.Bold);
|
|
363
|
+
const stackEntry = new TagStackEntry(tag, {
|
|
364
|
+
fontWeight: 700,
|
|
365
|
+
});
|
|
366
|
+
stackArray.push(stackEntry);
|
|
367
|
+
}
|
|
368
|
+
else if (tag.type == "i") {
|
|
369
|
+
this.setFont(opts, FontStyle.Italic);
|
|
370
|
+
const stackEntry = new TagStackEntry(tag, {
|
|
371
|
+
fontStyle: 'italic'
|
|
372
|
+
});
|
|
373
|
+
stackArray.push(stackEntry);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
getText(text, start, end) {
|
|
378
|
+
return text.substring(start.endIndex, end.startIndex);
|
|
379
|
+
}
|
|
380
|
+
getNextTag(text, startIndex = 0) {
|
|
381
|
+
const start = text.indexOf("<", startIndex);
|
|
382
|
+
const end = text.indexOf(">", start);
|
|
383
|
+
if (start >= 0 && end >= 0) {
|
|
384
|
+
const tag = text.substring(start + 1, end);
|
|
385
|
+
return { type: tag, startIndex: start, endIndex: end + 1, isEndTag: tag.startsWith("/") };
|
|
386
|
+
}
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Update provided opts to have a proper fontDefinition : family+weight+style
|
|
391
|
+
* Ensure Family and Variant are registered in FontLibrary
|
|
392
|
+
*
|
|
393
|
+
* @param opts
|
|
394
|
+
* @param fontStyle
|
|
395
|
+
* @private
|
|
396
|
+
*/
|
|
397
|
+
setFont(opts, fontStyle) {
|
|
398
|
+
// @TODO : THH could be useful to uniformize font family name :
|
|
399
|
+
// This would ease possible html/vr matching
|
|
400
|
+
// - Arial instead of assets/arial
|
|
401
|
+
// - Arial should stay Arial instead of arial
|
|
402
|
+
if (!this.font)
|
|
403
|
+
return;
|
|
404
|
+
const fontName = this.font;
|
|
405
|
+
const familyName = this.getFamilyNameWithCorrectSuffix(fontName, fontStyle);
|
|
406
|
+
if (debug)
|
|
407
|
+
console.log("Selected font family:" + familyName);
|
|
408
|
+
// ensure a font family is register under this name
|
|
409
|
+
let fontFamily = ThreeMeshUI.FontLibrary.getFontFamily(familyName);
|
|
410
|
+
if (!fontFamily)
|
|
411
|
+
fontFamily = ThreeMeshUI.FontLibrary.addFontFamily(familyName);
|
|
412
|
+
// @TODO: @swingingtom how should the font be set?
|
|
413
|
+
//@ts-ignore
|
|
414
|
+
opts.fontFamily = fontFamily;
|
|
415
|
+
switch (fontStyle) {
|
|
416
|
+
default:
|
|
417
|
+
case FontStyle.Normal:
|
|
418
|
+
opts.fontWeight = 400;
|
|
419
|
+
opts.fontStyle = "normal";
|
|
420
|
+
break;
|
|
421
|
+
case FontStyle.Bold:
|
|
422
|
+
opts.fontWeight = 700;
|
|
423
|
+
opts.fontStyle = "normal";
|
|
424
|
+
break;
|
|
425
|
+
case FontStyle.Italic:
|
|
426
|
+
opts.fontWeight = 400;
|
|
427
|
+
opts.fontStyle = "italic";
|
|
428
|
+
break;
|
|
429
|
+
case FontStyle.BoldAndItalic:
|
|
430
|
+
opts.fontStyle = 'italic';
|
|
431
|
+
opts.fontWeight = 400;
|
|
432
|
+
}
|
|
433
|
+
// Ensure a fontVariant is registered
|
|
434
|
+
//@TODO: @swingingtom add type for fontWeight
|
|
435
|
+
let fontVariant = fontFamily.getVariant(opts.fontWeight, opts.fontStyle);
|
|
436
|
+
if (!fontVariant) {
|
|
437
|
+
let jsonPath = familyName;
|
|
438
|
+
if (!jsonPath?.endsWith("-msdf.json"))
|
|
439
|
+
jsonPath += "-msdf.json";
|
|
440
|
+
let texturePath = familyName;
|
|
441
|
+
if (!texturePath?.endsWith(".png"))
|
|
442
|
+
texturePath += ".png";
|
|
443
|
+
//@TODO: @swingingtom add type for fontWeight
|
|
444
|
+
//@TODO: @swingingtom addVariant return type is wrong (should be FontVariant)
|
|
445
|
+
fontVariant = fontFamily.addVariant(opts.fontWeight, opts.fontStyle, jsonPath, texturePath);
|
|
446
|
+
/** @ts-ignore */
|
|
447
|
+
fontVariant?.addEventListener('ready', () => {
|
|
448
|
+
this.markDirty();
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
getFamilyNameWithCorrectSuffix(familyName, style) {
|
|
453
|
+
// the URL decorator resolves the URL to absolute URLs - we need to remove the domain part since we're only interested in the path
|
|
454
|
+
if (familyName.startsWith("https:") || familyName.startsWith("http:")) {
|
|
455
|
+
const url = new URL(familyName);
|
|
456
|
+
familyName = url.pathname;
|
|
457
|
+
}
|
|
458
|
+
// we can only change the style for the family if the name has a suffix (e.g. Arial-Bold)
|
|
459
|
+
const styleSeparator = familyName.lastIndexOf('-');
|
|
460
|
+
if (styleSeparator < 0)
|
|
461
|
+
return familyName;
|
|
462
|
+
// Check if the font name contains a style that we don't support in the enum
|
|
463
|
+
// e.g. -Medium, -Black, -Thin...
|
|
464
|
+
const styleName = familyName.substring(styleSeparator + 1)?.toLowerCase();
|
|
465
|
+
if (unsupportedStyleNames.includes(styleName)) {
|
|
466
|
+
if (debug)
|
|
467
|
+
console.warn("Unsupported font style: " + styleName);
|
|
468
|
+
return familyName;
|
|
469
|
+
}
|
|
470
|
+
// Try find a suffix that matches the style
|
|
471
|
+
// We assume that if the font name is "Arial-Regular" then the bold version is "Arial-Bold"
|
|
472
|
+
// and if the font name is "arial-regular" then the bold version is "arial-bold"
|
|
473
|
+
const pathSeparatorIndex = familyName.lastIndexOf("/");
|
|
474
|
+
let fontBaseName = familyName;
|
|
475
|
+
if (pathSeparatorIndex >= 0) {
|
|
476
|
+
fontBaseName = fontBaseName.substring(pathSeparatorIndex + 1);
|
|
477
|
+
}
|
|
478
|
+
const isUpperCase = fontBaseName[0] === fontBaseName[0].toUpperCase();
|
|
479
|
+
const fontNameWithoutSuffix = familyName.substring(0, styleSeparator > pathSeparatorIndex ? styleSeparator : familyName.length);
|
|
480
|
+
if (debug)
|
|
481
|
+
console.log("Select font: ", familyName, FontStyle[style], fontBaseName, isUpperCase, fontNameWithoutSuffix);
|
|
482
|
+
switch (style) {
|
|
483
|
+
case FontStyle.Normal:
|
|
484
|
+
if (isUpperCase)
|
|
485
|
+
return fontNameWithoutSuffix + "-Regular";
|
|
486
|
+
else
|
|
487
|
+
return fontNameWithoutSuffix + "-regular";
|
|
488
|
+
case FontStyle.Bold:
|
|
489
|
+
if (isUpperCase)
|
|
490
|
+
return fontNameWithoutSuffix + "-Bold";
|
|
491
|
+
else
|
|
492
|
+
return fontNameWithoutSuffix + "-bold";
|
|
493
|
+
case FontStyle.Italic:
|
|
494
|
+
if (isUpperCase)
|
|
495
|
+
return fontNameWithoutSuffix + "-Italic";
|
|
496
|
+
else
|
|
497
|
+
return fontNameWithoutSuffix + "-italic";
|
|
498
|
+
case FontStyle.BoldAndItalic:
|
|
499
|
+
if (isUpperCase)
|
|
500
|
+
return fontNameWithoutSuffix + "-BoldItalic";
|
|
501
|
+
else
|
|
502
|
+
return fontNameWithoutSuffix + "-bolditalic";
|
|
503
|
+
default:
|
|
504
|
+
return familyName;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
__decorate([
|
|
509
|
+
serializable()
|
|
510
|
+
], Text.prototype, "alignment", void 0);
|
|
511
|
+
__decorate([
|
|
512
|
+
serializable()
|
|
513
|
+
], Text.prototype, "verticalOverflow", void 0);
|
|
514
|
+
__decorate([
|
|
515
|
+
serializable()
|
|
516
|
+
], Text.prototype, "horizontalOverflow", void 0);
|
|
517
|
+
__decorate([
|
|
518
|
+
serializable()
|
|
519
|
+
], Text.prototype, "lineSpacing", void 0);
|
|
520
|
+
__decorate([
|
|
521
|
+
serializable()
|
|
522
|
+
], Text.prototype, "supportRichText", void 0);
|
|
523
|
+
__decorate([
|
|
524
|
+
serializable(URL)
|
|
525
|
+
], Text.prototype, "font", void 0);
|
|
526
|
+
__decorate([
|
|
527
|
+
serializable()
|
|
528
|
+
], Text.prototype, "fontStyle", void 0);
|
|
529
|
+
__decorate([
|
|
530
|
+
serializable()
|
|
531
|
+
], Text.prototype, "text", null);
|
|
532
|
+
__decorate([
|
|
533
|
+
serializable()
|
|
534
|
+
], Text.prototype, "fontSize", null);
|
|
535
|
+
class TagStackEntry {
|
|
536
|
+
tag;
|
|
537
|
+
previousValues;
|
|
538
|
+
constructor(tag, previousValues) {
|
|
539
|
+
this.tag = tag;
|
|
540
|
+
this.previousValues = previousValues;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
// const anyTag = new RegExp('<.+?>', 'g');
|
|
544
|
+
// const regex = new RegExp('<(?<type>.+?)>(?<text>.+?)<\/.+?>', 'g');
|
|
545
|
+
const unsupportedStyleNames = [
|
|
546
|
+
"medium", "mediumitalic", "black", "blackitalic", "thin", "thinitalic", "extrabold", "light", "lightitalic", "semibold"
|
|
547
|
+
];
|
|
548
|
+
//# sourceMappingURL=Text.legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.legacy.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Text.legacy.ts"],"names":[],"mappings":"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"}
|