@mml-io/mml-web-client 0.0.0-experimental-8fd4bff-20250306 → 0.0.0-experimental-1e22a49-20250311
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 +65 -64
- 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
|
});
|
|
@@ -97901,6 +97886,22 @@ void main() {
|
|
|
97901
97886
|
});
|
|
97902
97887
|
}
|
|
97903
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
|
+
}
|
|
97904
97905
|
}
|
|
97905
97906
|
setAnimLoop() {
|
|
97906
97907
|
}
|