@mml-io/mml-web-client 0.19.4 → 0.19.6
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/build/index.js +83 -67
- package/build/index.js.map +2 -2
- package/package.json +5 -5
package/build/index.js
CHANGED
|
@@ -1722,9 +1722,53 @@
|
|
|
1722
1722
|
return false;
|
|
1723
1723
|
}
|
|
1724
1724
|
};
|
|
1725
|
+
function parseRGB(value) {
|
|
1726
|
+
value = value.trim();
|
|
1727
|
+
const validStart = value.startsWith("rgb(") || value.startsWith("rgba(");
|
|
1728
|
+
const validEnd = value.endsWith(")");
|
|
1729
|
+
if (!validStart || !validEnd) return null;
|
|
1730
|
+
const content = value.substring(value.indexOf("(") + 1, value.length - 1).split(",");
|
|
1731
|
+
if (content.length < 3 || content.length > 4) return null;
|
|
1732
|
+
if (value.startsWith("rgb(") && content.length !== 3) return null;
|
|
1733
|
+
if (value.startsWith("rgba(") && content.length !== 4) return null;
|
|
1734
|
+
const numbers = content.map((n) => parseFloat(n.trim()));
|
|
1735
|
+
if (numbers.some((n) => isNaN(n))) return null;
|
|
1736
|
+
return {
|
|
1737
|
+
r: Math.min(255, Math.max(0, numbers[0])) / 255,
|
|
1738
|
+
g: Math.min(255, Math.max(0, numbers[1])) / 255,
|
|
1739
|
+
b: Math.min(255, Math.max(0, numbers[2])) / 255,
|
|
1740
|
+
a: numbers.length === 4 ? Math.min(1, Math.max(0, numbers[3])) : void 0
|
|
1741
|
+
};
|
|
1742
|
+
}
|
|
1743
|
+
function parseHSL(value) {
|
|
1744
|
+
value = value.trim();
|
|
1745
|
+
const validStart = value.startsWith("hsl(") || value.startsWith("hsla(");
|
|
1746
|
+
const validEnd = value.endsWith(")");
|
|
1747
|
+
if (!validStart || !validEnd) return null;
|
|
1748
|
+
const content = value.substring(value.indexOf("(") + 1, value.length - 1).split(",");
|
|
1749
|
+
if (content.length < 3 || content.length > 4) return null;
|
|
1750
|
+
if (value.startsWith("hsl(") && content.length !== 3) return null;
|
|
1751
|
+
if (value.startsWith("hsla(") && content.length !== 4) return null;
|
|
1752
|
+
const numbers = content.map((n) => parseFloat(n.trim()));
|
|
1753
|
+
if (numbers.some((n) => isNaN(n))) return null;
|
|
1754
|
+
let [h, s, l] = numbers;
|
|
1755
|
+
h = h / 360;
|
|
1756
|
+
h = h === 0 ? 1e-4 : h === 1 ? 0.9999 : h;
|
|
1757
|
+
s = s / 100;
|
|
1758
|
+
s = s === 0 ? 1e-4 : s === 1 ? 0.9999 : s;
|
|
1759
|
+
l = l / 100;
|
|
1760
|
+
l = l === 0 ? 1e-4 : l === 1 ? 0.9999 : l;
|
|
1761
|
+
const rgb = hslToRGB(h, s, l);
|
|
1762
|
+
return {
|
|
1763
|
+
r: rgb.r,
|
|
1764
|
+
g: rgb.g,
|
|
1765
|
+
b: rgb.b,
|
|
1766
|
+
a: numbers.length === 4 ? Math.min(1, Math.max(0, numbers[3])) : void 0
|
|
1767
|
+
};
|
|
1768
|
+
}
|
|
1725
1769
|
function parseColorAttribute(value, defaultValue) {
|
|
1726
1770
|
return parseAttribute(value, defaultValue, (value2) => {
|
|
1727
|
-
const colorNameValues = colors[value2];
|
|
1771
|
+
const colorNameValues = colors[value2.trim()];
|
|
1728
1772
|
if (colorNameValues) {
|
|
1729
1773
|
return {
|
|
1730
1774
|
r: colorNameValues[0],
|
|
@@ -1753,75 +1797,16 @@
|
|
|
1753
1797
|
}
|
|
1754
1798
|
}
|
|
1755
1799
|
if (value2.indexOf("rgb(") === 0) {
|
|
1756
|
-
|
|
1757
|
-
if (rgb) {
|
|
1758
|
-
return {
|
|
1759
|
-
r: parseInt(rgb[1], 10) / 255,
|
|
1760
|
-
g: parseInt(rgb[2], 10) / 255,
|
|
1761
|
-
b: parseInt(rgb[3], 10) / 255
|
|
1762
|
-
};
|
|
1763
|
-
}
|
|
1800
|
+
return parseRGB(value2);
|
|
1764
1801
|
}
|
|
1765
1802
|
if (value2.indexOf("rgba(") === 0) {
|
|
1766
|
-
|
|
1767
|
-
if (rgba) {
|
|
1768
|
-
return {
|
|
1769
|
-
r: parseInt(rgba[1], 10) / 255,
|
|
1770
|
-
g: parseInt(rgba[2], 10) / 255,
|
|
1771
|
-
b: parseInt(rgba[3], 10) / 255,
|
|
1772
|
-
a: parseFloat(rgba[4])
|
|
1773
|
-
};
|
|
1774
|
-
}
|
|
1803
|
+
return parseRGB(value2);
|
|
1775
1804
|
}
|
|
1776
1805
|
if (value2.indexOf("hsl(") === 0) {
|
|
1777
|
-
|
|
1778
|
-
if (hsl) {
|
|
1779
|
-
let h = parseFloat(hsl[1]) / 360;
|
|
1780
|
-
if (h === 0) {
|
|
1781
|
-
h = 1e-4;
|
|
1782
|
-
} else if (h === 1) {
|
|
1783
|
-
h = 0.9999;
|
|
1784
|
-
}
|
|
1785
|
-
let s = parseFloat(hsl[2]) / 100;
|
|
1786
|
-
if (s === 0) {
|
|
1787
|
-
s = 1e-4;
|
|
1788
|
-
} else if (s === 1) {
|
|
1789
|
-
s = 0.9999;
|
|
1790
|
-
}
|
|
1791
|
-
let l = parseFloat(hsl[3]) / 100;
|
|
1792
|
-
if (l === 0) {
|
|
1793
|
-
l = 1e-4;
|
|
1794
|
-
} else if (l === 1) {
|
|
1795
|
-
l = 0.9999;
|
|
1796
|
-
}
|
|
1797
|
-
return hslToRGB(h, s, l);
|
|
1798
|
-
}
|
|
1806
|
+
return parseHSL(value2);
|
|
1799
1807
|
}
|
|
1800
1808
|
if (value2.indexOf("hsla(") === 0) {
|
|
1801
|
-
|
|
1802
|
-
value2
|
|
1803
|
-
);
|
|
1804
|
-
if (hsla) {
|
|
1805
|
-
let h = parseFloat(hsla[1]) / 360;
|
|
1806
|
-
if (h === 0) {
|
|
1807
|
-
h = 1e-4;
|
|
1808
|
-
} else if (h === 1) {
|
|
1809
|
-
h = 0.9999;
|
|
1810
|
-
}
|
|
1811
|
-
let s = parseFloat(hsla[2]) / 100;
|
|
1812
|
-
if (s === 0) {
|
|
1813
|
-
s = 1e-4;
|
|
1814
|
-
} else if (s === 1) {
|
|
1815
|
-
s = 0.9999;
|
|
1816
|
-
}
|
|
1817
|
-
let l = parseFloat(hsla[3]) / 100;
|
|
1818
|
-
if (l === 0) {
|
|
1819
|
-
l = 1e-4;
|
|
1820
|
-
} else if (l === 1) {
|
|
1821
|
-
l = 0.9999;
|
|
1822
|
-
}
|
|
1823
|
-
return hslToRGB(h, s, l);
|
|
1824
|
-
}
|
|
1809
|
+
return parseHSL(value2);
|
|
1825
1810
|
}
|
|
1826
1811
|
return null;
|
|
1827
1812
|
});
|
|
@@ -65087,6 +65072,7 @@ ${DracoWorker.toString()}
|
|
|
65087
65072
|
this.updateDebugVisualisation();
|
|
65088
65073
|
}
|
|
65089
65074
|
if (!src) {
|
|
65075
|
+
this.latestSrcModelPromise = null;
|
|
65090
65076
|
this.srcLoadingInstanceManager.abortIfLoading();
|
|
65091
65077
|
this.socketChildrenByBone.forEach((children) => {
|
|
65092
65078
|
children.forEach((child) => {
|
|
@@ -65098,10 +65084,13 @@ ${DracoWorker.toString()}
|
|
|
65098
65084
|
return;
|
|
65099
65085
|
}
|
|
65100
65086
|
const contentSrc = this.model.contentSrcToContentAddress(src);
|
|
65087
|
+
this.srcLoadingInstanceManager.start(this.model.getLoadingProgressManager(), contentSrc);
|
|
65101
65088
|
const srcModelPromise = this.asyncLoadSourceAsset(contentSrc, (loaded, total) => {
|
|
65089
|
+
if (this.latestSrcModelPromise !== srcModelPromise) {
|
|
65090
|
+
return;
|
|
65091
|
+
}
|
|
65102
65092
|
this.srcLoadingInstanceManager.setProgress(loaded / total);
|
|
65103
65093
|
});
|
|
65104
|
-
this.srcLoadingInstanceManager.start(this.model.getLoadingProgressManager(), contentSrc);
|
|
65105
65094
|
this.latestSrcModelPromise = srcModelPromise;
|
|
65106
65095
|
srcModelPromise.then((asset2) => {
|
|
65107
65096
|
if (this.latestSrcModelPromise !== srcModelPromise || !this.model.isConnected) {
|
|
@@ -65247,6 +65236,8 @@ ${DracoWorker.toString()}
|
|
|
65247
65236
|
this.loadedState = null;
|
|
65248
65237
|
}
|
|
65249
65238
|
this.clearDebugVisualisation();
|
|
65239
|
+
this.latestSrcModelPromise = null;
|
|
65240
|
+
this.latestAnimPromise = null;
|
|
65250
65241
|
this.animLoadingInstanceManager.dispose();
|
|
65251
65242
|
this.srcLoadingInstanceManager.dispose();
|
|
65252
65243
|
}
|
|
@@ -97870,10 +97861,13 @@ void main() {
|
|
|
97870
97861
|
this.registeredParentAttachment = null;
|
|
97871
97862
|
}
|
|
97872
97863
|
const animSrc = this.model.contentSrcToContentAddress(anim2);
|
|
97864
|
+
this.animLoadingInstanceManager.start(this.model.getLoadingProgressManager(), animSrc);
|
|
97873
97865
|
const animPromise = this.asyncLoadSourceAsset(animSrc, (loaded, total) => {
|
|
97866
|
+
if (this.latestAnimPromise !== animPromise) {
|
|
97867
|
+
return;
|
|
97868
|
+
}
|
|
97874
97869
|
this.animLoadingInstanceManager.setProgress(loaded / total);
|
|
97875
97870
|
});
|
|
97876
|
-
this.animLoadingInstanceManager.start(this.model.getLoadingProgressManager(), animSrc);
|
|
97877
97871
|
this.latestAnimPromise = animPromise;
|
|
97878
97872
|
animPromise.then((result) => {
|
|
97879
97873
|
if (this.latestAnimPromise !== animPromise || !this.model.isConnected) {
|
|
@@ -97892,6 +97886,22 @@ void main() {
|
|
|
97892
97886
|
});
|
|
97893
97887
|
}
|
|
97894
97888
|
setAnimEnabled() {
|
|
97889
|
+
if (this.model.props.animEnabled) {
|
|
97890
|
+
if (this.animState && !this.animState.appliedAnimation) {
|
|
97891
|
+
for (const [attachment] of this.attachments) {
|
|
97892
|
+
this.registerAttachment(attachment);
|
|
97893
|
+
}
|
|
97894
|
+
this.playAnimation(this.animState.currentAnimationClip);
|
|
97895
|
+
}
|
|
97896
|
+
} else if (!this.model.props.animEnabled) {
|
|
97897
|
+
for (const [attachment, animState] of this.attachments) {
|
|
97898
|
+
if (animState) {
|
|
97899
|
+
animState.animationMixer.stopAllAction();
|
|
97900
|
+
}
|
|
97901
|
+
this.attachments.set(attachment, null);
|
|
97902
|
+
this.model.getContainer().add(attachment.getContainer());
|
|
97903
|
+
}
|
|
97904
|
+
}
|
|
97895
97905
|
}
|
|
97896
97906
|
setAnimLoop() {
|
|
97897
97907
|
}
|
|
@@ -97916,6 +97926,7 @@ void main() {
|
|
|
97916
97926
|
this.updateDebugVisualisation();
|
|
97917
97927
|
}
|
|
97918
97928
|
if (!src) {
|
|
97929
|
+
this.latestSrcModelPromise = null;
|
|
97919
97930
|
this.srcLoadingInstanceManager.abortIfLoading();
|
|
97920
97931
|
this.socketChildrenByBone.forEach((children) => {
|
|
97921
97932
|
children.forEach((child) => {
|
|
@@ -97927,10 +97938,13 @@ void main() {
|
|
|
97927
97938
|
return;
|
|
97928
97939
|
}
|
|
97929
97940
|
const contentSrc = this.model.contentSrcToContentAddress(src);
|
|
97941
|
+
this.srcLoadingInstanceManager.start(this.model.getLoadingProgressManager(), contentSrc);
|
|
97930
97942
|
const srcModelPromise = this.asyncLoadSourceAsset(contentSrc, (loaded, total) => {
|
|
97943
|
+
if (this.latestSrcModelPromise !== srcModelPromise) {
|
|
97944
|
+
return;
|
|
97945
|
+
}
|
|
97931
97946
|
this.srcLoadingInstanceManager.setProgress(loaded / total);
|
|
97932
97947
|
});
|
|
97933
|
-
this.srcLoadingInstanceManager.start(this.model.getLoadingProgressManager(), contentSrc);
|
|
97934
97948
|
this.latestSrcModelPromise = srcModelPromise;
|
|
97935
97949
|
srcModelPromise.then((result) => {
|
|
97936
97950
|
if (this.latestSrcModelPromise !== srcModelPromise || !this.model.isConnected) {
|
|
@@ -98183,6 +98197,8 @@ void main() {
|
|
|
98183
98197
|
this.loadedState = null;
|
|
98184
98198
|
}
|
|
98185
98199
|
this.clearDebugVisualisation();
|
|
98200
|
+
this.latestSrcModelPromise = null;
|
|
98201
|
+
this.latestAnimPromise = null;
|
|
98186
98202
|
this.animLoadingInstanceManager.dispose();
|
|
98187
98203
|
this.srcLoadingInstanceManager.dispose();
|
|
98188
98204
|
}
|