@myop/sdk 0.3.16 → 0.3.18

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.
Files changed (41) hide show
  1. package/dist/bundled-declarations.d.ts +34 -0
  2. package/dist/cjs/{_IframeSDK.0e315746.js → _IframeSDK.c1b7f57f.js} +49 -13
  3. package/dist/cjs/_IframeSDK.c1b7f57f.js.map +7 -0
  4. package/dist/cjs/_IframeSDK.ff567b74.min.js +1 -0
  5. package/dist/cjs/_MyopHelpers.a39f420c.js.map +1 -1
  6. package/dist/cjs/_WebComponentSDK.045877dc.min.js +1 -0
  7. package/dist/cjs/{_WebComponentSDK.6f1a3255.js → _WebComponentSDK.26dff6f5.js} +46 -10
  8. package/dist/cjs/_WebComponentSDK.26dff6f5.js.map +7 -0
  9. package/dist/cjs/_hostSDK.1f0bc503.min.js +1 -0
  10. package/dist/cjs/{_hostSDK.fd5d5514.js → _hostSDK.cb5a3856.js} +46 -10
  11. package/dist/cjs/_hostSDK.cb5a3856.js.map +7 -0
  12. package/dist/cjs/myop_sdk.js +11 -11
  13. package/dist/cjs/myop_sdk.js.map +1 -1
  14. package/dist/cjs/myop_sdk.min.js +1 -1
  15. package/dist/cjs-bundled/myop_sdk.bundled.js +50 -14
  16. package/dist/cjs-bundled/myop_sdk.bundled.js.map +3 -3
  17. package/dist/cjs-bundled/myop_sdk.bundled.min.js +1 -1
  18. package/dist/module/Iframe/index.js +50 -14
  19. package/dist/module/Iframe/index.js.map +3 -3
  20. package/dist/module/SDK.js +50 -14
  21. package/dist/module/SDK.js.map +3 -3
  22. package/dist/module/common/index.d.ts +13 -0
  23. package/dist/module/common/index.js +1 -1
  24. package/dist/module/common/index.js.map +2 -2
  25. package/dist/module/embeddedSDK.js +1 -1
  26. package/dist/module/helpers/index.js +1 -1
  27. package/dist/module/helpers/index.js.map +1 -1
  28. package/dist/module/host/components/IMyopComponent.d.ts +13 -0
  29. package/dist/module/host/components/myopIframeComponent.d.ts +8 -0
  30. package/dist/module/host/embeddedSDK.js +1 -1
  31. package/dist/module/host/index.js +47 -11
  32. package/dist/module/host/index.js.map +2 -2
  33. package/dist/module/webcomponent/index.js +47 -11
  34. package/dist/module/webcomponent/index.js.map +2 -2
  35. package/package.json +1 -1
  36. package/dist/cjs/_IframeSDK.0e315746.js.map +0 -7
  37. package/dist/cjs/_IframeSDK.5d5802e4.min.js +0 -1
  38. package/dist/cjs/_WebComponentSDK.6f1a3255.js.map +0 -7
  39. package/dist/cjs/_WebComponentSDK.cc56ccfd.min.js +0 -1
  40. package/dist/cjs/_hostSDK.581f1f0b.min.js +0 -1
  41. package/dist/cjs/_hostSDK.fd5d5514.js.map +0 -7
@@ -1587,6 +1587,7 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1587
1587
  this.componentConfig = componentConfig;
1588
1588
  this.container = container;
1589
1589
  this.IframeElement = IframeElement;
1590
+ __publicField(this, "sizeMeta");
1590
1591
  __publicField(this, "cleanupInspect");
1591
1592
  __publicField(this, "setHeightBasedOnDocumentElement", () => {
1592
1593
  const cleanupHandler = this.send(new ExecuteScriptMessage(() => {
@@ -1619,7 +1620,7 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1619
1620
  * @returns Cleanup function to stop observing
1620
1621
  */
1621
1622
  __publicField(this, "observeAutoSize", (options) => {
1622
- var _a;
1623
+ var _a, _b, _c, _d, _e, _f, _g;
1623
1624
  const iframe = this.IframeElement;
1624
1625
  const doc = iframe.contentDocument;
1625
1626
  if (!doc) {
@@ -1643,14 +1644,28 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1643
1644
  const minHeight = parseSize(options == null ? void 0 : options.minHeight);
1644
1645
  const maxHeight = parseSize(options == null ? void 0 : options.maxHeight);
1645
1646
  const loaderMinHeight = (_a = options == null ? void 0 : options.loaderMinHeight) != null ? _a : 50;
1646
- const hasExplicitWidth = (options == null ? void 0 : options.explicitWidth) !== void 0;
1647
- const hasExplicitHeight = (options == null ? void 0 : options.explicitHeight) !== void 0;
1647
+ const sizeMetaFillWidth = ((_b = this.sizeMeta) == null ? void 0 : _b.width) === "100%" ? "100%" : void 0;
1648
+ const sizeMetaFillHeight = ((_c = this.sizeMeta) == null ? void 0 : _c.height) === "100%" ? "100%" : void 0;
1649
+ const resolvedExplicitWidth = (_e = (_d = options == null ? void 0 : options.explicitWidth) != null ? _d : sizeMetaFillWidth) != null ? _e : "100%";
1650
+ const resolvedExplicitHeight = (_f = options == null ? void 0 : options.explicitHeight) != null ? _f : sizeMetaFillHeight;
1651
+ const hasExplicitWidth = resolvedExplicitWidth !== void 0;
1652
+ const hasExplicitHeight = resolvedExplicitHeight !== void 0;
1648
1653
  const containerRect = this.container.getBoundingClientRect();
1649
1654
  const collapsedWidth = containerRect.width === 0;
1650
1655
  const collapsedHeight = containerRect.height === 0 || containerRect.height === loaderMinHeight;
1651
1656
  const shouldAutoWidth = (options == null ? void 0 : options.forceAutoSize) ? !hasExplicitWidth : collapsedWidth && !hasExplicitWidth;
1652
1657
  const shouldAutoHeight = (options == null ? void 0 : options.forceAutoSize) ? !hasExplicitHeight : collapsedHeight && !hasExplicitHeight;
1653
1658
  if (!shouldAutoWidth && !shouldAutoHeight) {
1659
+ const explicitWidthPx = typeof resolvedExplicitWidth === "number" ? resolvedExplicitWidth : void 0;
1660
+ const explicitHeightPx = typeof resolvedExplicitHeight === "number" ? resolvedExplicitHeight : void 0;
1661
+ if (explicitWidthPx !== void 0 || explicitHeightPx !== void 0) {
1662
+ (_g = options == null ? void 0 : options.onSizeChange) == null ? void 0 : _g.call(options, {
1663
+ width: explicitWidthPx,
1664
+ height: explicitHeightPx,
1665
+ autoSizingWidth: false,
1666
+ autoSizingHeight: false
1667
+ });
1668
+ }
1654
1669
  return () => {
1655
1670
  };
1656
1671
  }
@@ -1658,9 +1673,14 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1658
1673
  var _a2;
1659
1674
  const contentDoc = iframe.contentDocument;
1660
1675
  if (contentDoc) {
1661
- const rect = contentDoc.documentElement.getBoundingClientRect();
1662
- const contentWidth = Math.ceil(rect.width);
1663
- const contentHeight = Math.ceil(rect.height);
1676
+ if (shouldAutoHeight) {
1677
+ iframe.style.height = "0px";
1678
+ }
1679
+ if (shouldAutoWidth) {
1680
+ iframe.style.width = "0px";
1681
+ }
1682
+ const contentWidth = Math.ceil(contentDoc.documentElement.scrollWidth);
1683
+ const contentHeight = Math.ceil(contentDoc.documentElement.scrollHeight);
1664
1684
  const width = clamp(contentWidth, minWidth, maxWidth);
1665
1685
  const height = clamp(contentHeight, minHeight, maxHeight);
1666
1686
  if (shouldAutoWidth) {
@@ -1671,8 +1691,8 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1671
1691
  }
1672
1692
  const isWidthConstrained = shouldAutoWidth && maxWidth !== void 0 && contentWidth > maxWidth;
1673
1693
  const isHeightConstrained = shouldAutoHeight && maxHeight !== void 0 && contentHeight > maxHeight;
1674
- contentDoc.documentElement.style.overflowX = isWidthConstrained ? "auto" : "hidden";
1675
- contentDoc.documentElement.style.overflowY = isHeightConstrained ? "auto" : "hidden";
1694
+ contentDoc.documentElement.style.overflowX = isWidthConstrained ? "auto" : "";
1695
+ contentDoc.documentElement.style.overflowY = isHeightConstrained ? "auto" : "";
1676
1696
  (_a2 = options == null ? void 0 : options.onSizeChange) == null ? void 0 : _a2.call(options, {
1677
1697
  width,
1678
1698
  height,
@@ -1685,8 +1705,11 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1685
1705
  const resizeObserver = new ResizeObserver(updateSize);
1686
1706
  resizeObserver.observe(doc.body);
1687
1707
  resizeObserver.observe(doc.documentElement);
1708
+ const mutationObserver = new MutationObserver(updateSize);
1709
+ mutationObserver.observe(doc.body, { childList: true, subtree: true, characterData: true, attributes: true });
1688
1710
  return () => {
1689
1711
  resizeObserver.disconnect();
1712
+ mutationObserver.disconnect();
1690
1713
  };
1691
1714
  });
1692
1715
  __publicField(this, "setSizeBasedOnDocumentElement", () => {
@@ -1948,7 +1971,7 @@ var WebcomponentLoader = class extends BaseMyopLoader {
1948
1971
  };
1949
1972
 
1950
1973
  // version:myop-sdk-version
1951
- var myop_sdk_version_default = "0.3.16";
1974
+ var myop_sdk_version_default = "0.3.18";
1952
1975
 
1953
1976
  // src/host/embeddedSDK.ts
1954
1977
  var EMBEDDED_SDK_CONTENT = "";
@@ -2012,6 +2035,18 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2012
2035
  IframeElement = this.appendChild(container, IframeElement, options);
2013
2036
  const doc = IframeElement.contentDocument || IframeElement.contentWindow.document;
2014
2037
  doc.open();
2038
+ let parsedSizeMeta = null;
2039
+ {
2040
+ const _preParser = new DOMParser();
2041
+ const _preDoc = _preParser.parseFromString(loaderConfig.HTML, "text/html");
2042
+ const sizeMeta = _preDoc.querySelector('meta[name="myop:size"]');
2043
+ if (sizeMeta) {
2044
+ try {
2045
+ parsedSizeMeta = JSON.parse(sizeMeta.getAttribute("content") || "{}");
2046
+ } catch (e) {
2047
+ }
2048
+ }
2049
+ }
2015
2050
  let HTML2Render = loaderConfig.HTML;
2016
2051
  if (options == null ? void 0 : options._inspection) {
2017
2052
  const parser = new DOMParser();
@@ -2025,7 +2060,7 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2025
2060
  _doc.head.insertBefore(_doc.importNode(node, true), _doc.head.firstChild);
2026
2061
  }
2027
2062
  HTML2Render = _doc.documentElement.outerHTML;
2028
- } else {
2063
+ } else if ((options == null ? void 0 : options.data) !== void 0) {
2029
2064
  const parser = new DOMParser();
2030
2065
  const _doc = parser.parseFromString(loaderConfig.HTML, "text/html");
2031
2066
  const myop_preview_script = _doc.getElementById("myop_preview");
@@ -2046,6 +2081,7 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2046
2081
  }
2047
2082
  doc.close();
2048
2083
  const comp = new MyopIframeComponent(componentDefinition, skin, container, IframeElement, options);
2084
+ comp.sizeMeta = parsedSizeMeta;
2049
2085
  if (loaderConfig.autoHeight) {
2050
2086
  IframeElement.onload = () => {
2051
2087
  comp.observeSizeBasedOnDocumentElement();