@doenet/doenetml-iframe 0.7.0-beta6 → 0.7.0-beta7

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/index.d.ts CHANGED
@@ -87,7 +87,7 @@ export declare type DoenetViewerIframeProps = DoenetViewerProps & {
87
87
  autodetectVersion?: boolean;
88
88
  };
89
89
 
90
- declare type DoenetViewerProps = Omit<React.ComponentProps<typeof DoenetViewer_2>, "doenetML" | "scrollableContainer" | "externalVirtualKeyboardProvided">;
90
+ declare type DoenetViewerProps = Omit<React.ComponentProps<typeof DoenetViewer_2>, "doenetML" | "externalVirtualKeyboardProvided">;
91
91
 
92
92
  export { ErrorRecord }
93
93
 
package/index.js CHANGED
@@ -23708,7 +23708,7 @@ function requireCssesc() {
23708
23708
  return cssesc_1;
23709
23709
  }
23710
23710
  requireCssesc();
23711
- const viewerIframeJsSource = '(function() {\n "use strict";\n document.addEventListener("DOMContentLoaded", async () => {\n let pause100 = function() {\n return new Promise((resolve, _reject) => {\n setTimeout(resolve, 100);\n });\n };\n for (let i = 0; i < 10; i++) {\n if (typeof window.renderDoenetViewerToContainer === "function") {\n break;\n }\n await pause100();\n }\n if (typeof window.renderDoenetViewerToContainer !== "function") {\n return messageParentFromViewer({\n error: "Invalid DoenetML version or DoenetML package not found"\n });\n }\n const wrappedDoenetViewerProps = ComlinkViewer.wrap(\n ComlinkViewer.windowEndpoint(globalThis.parent)\n );\n const augmentedDoenetViewerProps = { ...doenetViewerProps };\n augmentedDoenetViewerProps.externalVirtualKeyboardProvided = true;\n for (const propName of doenetViewerPropsSpecified) {\n if (!(propName in doenetViewerProps)) {\n augmentedDoenetViewerProps[propName] = wrappedDoenetViewerProps[propName];\n }\n }\n window.renderDoenetViewerToContainer(\n document.getElementById("root"),\n void 0,\n augmentedDoenetViewerProps\n );\n });\n window.addEventListener("message", (e) => {\n if (e.origin !== window.parent.location.origin) {\n return;\n }\n if (e.data.subject?.startsWith("SPLICE") && (!e.data.subject?.endsWith("response") || e.data.subject.endsWith("submitAllAnswers.response")) && !e.data.subject.endsWith("submitAllAnswers")) {\n window.parent.postMessage(e.data);\n } else if (e.data.subject === "requestAnswerResponses") {\n window.parent.postMessage(e.data);\n }\n });\n function messageParentFromViewer(data) {\n window.parent.postMessage(\n {\n origin: viewerId,\n data\n },\n window.parent.origin\n );\n }\n})();\n';
23711
+ const viewerIframeJsSource = '(function() {\n "use strict";\n document.addEventListener("DOMContentLoaded", async () => {\n let pause100 = function() {\n return new Promise((resolve, _reject) => {\n setTimeout(resolve, 100);\n });\n };\n for (let i = 0; i < 10; i++) {\n if (typeof window.renderDoenetViewerToContainer === "function") {\n break;\n }\n await pause100();\n }\n if (typeof window.renderDoenetViewerToContainer !== "function") {\n return messageParentFromViewer({\n error: "Invalid DoenetML version or DoenetML package not found"\n });\n }\n const wrappedDoenetViewerProps = ComlinkViewer.wrap(\n ComlinkViewer.windowEndpoint(globalThis.parent)\n );\n const augmentedDoenetViewerProps = { ...doenetViewerProps };\n augmentedDoenetViewerProps.externalVirtualKeyboardProvided = true;\n for (const propName of doenetViewerPropsSpecified) {\n if (!(propName in doenetViewerProps)) {\n augmentedDoenetViewerProps[propName] = wrappedDoenetViewerProps[propName];\n }\n }\n if (!doenetViewerPropsSpecified.includes("requestScrollTo")) {\n augmentedDoenetViewerProps.requestScrollTo = (offset) => {\n messageParentFromViewer({ type: "scrollTo", offset });\n };\n }\n window.renderDoenetViewerToContainer(\n document.getElementById("root"),\n void 0,\n augmentedDoenetViewerProps\n );\n });\n window.addEventListener("message", (e) => {\n if (e.origin !== window.parent.location.origin) {\n return;\n }\n if (e.data.subject?.startsWith("SPLICE") && (!e.data.subject?.endsWith("response") || e.data.subject.endsWith("submitAllAnswers.response")) && !e.data.subject.endsWith("submitAllAnswers")) {\n window.parent.postMessage(e.data);\n } else if (e.data.subject === "requestAnswerResponses") {\n window.parent.postMessage(e.data);\n }\n });\n function messageParentFromViewer(data) {\n window.parent.postMessage(\n {\n origin: viewerId,\n data\n },\n window.parent.origin\n );\n }\n})();\n';
23712
23712
  const editorIframeJsSource = '(function() {\n "use strict";\n document.addEventListener("DOMContentLoaded", async () => {\n let pause100 = function() {\n return new Promise((resolve, _reject) => {\n setTimeout(resolve, 100);\n });\n };\n for (let i = 0; i < 10; i++) {\n if (typeof window.renderDoenetViewerToContainer === "function") {\n break;\n }\n await pause100();\n }\n if (typeof window.renderDoenetEditorToContainer !== "function") {\n return messageParentFromEditor({\n error: "Invalid DoenetML version or DoenetML package not found"\n });\n }\n const wrappedDoenetEditorProps = ComlinkEditor.wrap(\n ComlinkEditor.windowEndpoint(globalThis.parent)\n );\n const augmentedDoenetEditorProps = { ...doenetEditorProps };\n augmentedDoenetEditorProps.externalVirtualKeyboardProvided = true;\n for (const propName of doenetEditorPropsSpecified) {\n if (!(propName in doenetEditorProps)) {\n augmentedDoenetEditorProps[propName] = wrappedDoenetEditorProps[propName];\n }\n }\n window.renderDoenetEditorToContainer(\n document.getElementById("root"),\n void 0,\n augmentedDoenetEditorProps\n );\n });\n function messageParentFromEditor(data) {\n window.parent.postMessage(\n {\n origin: editorId,\n data\n },\n window.parent.origin\n );\n }\n})();\n';
23713
23713
  function createHtmlForDoenetViewer(id2, doenetML, doenetViewerProps, standaloneUrl, cssUrl) {
23714
23714
  const doenetViewerPropsSpecified = Object.keys(doenetViewerProps);
@@ -46763,7 +46763,7 @@ function ExternalVirtualKeyboard() {
46763
46763
  }
46764
46764
  );
46765
46765
  }
46766
- const version = "0.7.0-beta6";
46766
+ const version = "0.7.0-beta7";
46767
46767
  const latestDoenetmlVersion = version;
46768
46768
  function DoenetViewer({
46769
46769
  doenetML,
@@ -46813,6 +46813,14 @@ function DoenetViewer({
46813
46813
  return;
46814
46814
  }
46815
46815
  const data = event.data.data;
46816
+ if (ref.current && data.type === "scrollTo" && typeof data.offset === "number") {
46817
+ const iframeTop = ref.current.getBoundingClientRect().top + window.scrollY;
46818
+ const targetAbsoluteTop = iframeTop + data.offset;
46819
+ window.scrollTo({
46820
+ top: targetAbsoluteTop - 20,
46821
+ behavior: "smooth"
46822
+ });
46823
+ }
46816
46824
  if (data.error) {
46817
46825
  return setInErrorState(data.error);
46818
46826
  }