@mml-io/mml-web-client 0.19.5 → 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 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
- const rgb = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/.exec(value2);
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
- const rgba = /^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d*\.?\d+)\)$/.exec(value2);
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
- const hsl = /^hsl\(\s*(\d+)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%)\)$/.exec(value2);
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
- const hsla = /^hsla\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%),\s*(\d+(?:\.\d+)?)\)$/.exec(
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
  }
@@ -97995,7 +97996,6 @@ void main() {
97995
97996
  if (this.animState) {
97996
97997
  this.playAnimation(this.animState.currentAnimationClip);
97997
97998
  }
97998
- console.log("Loaded model", this.loadedState);
97999
97999
  this.srcLoadingInstanceManager.finish();
98000
98000
  this.updateDebugVisualisation();
98001
98001
  }).catch((err2) => {