UNPKG

stemcstudio-tunnel

Version:

Allows STEMCstudio programs to post and receive messages when embedded in an IFrame and an LTI 1.3 LMS.

3 lines (2 loc) 4.4 kB
System.register([],(function(e){"use strict";return{execute:function(){class t{$window;constructor(e){this.$window=e,this.setWindow(e)}setWindow(e){if(!e)throw new Error("window must be defined.");this.$window=e}subscribe(e){return this.$window.addEventListener("message",e),t=()=>{this.$window.removeEventListener("message",e)},{dispose:()=>{t()}};var t}postMessage(e,t){try{const s="undefined"!=typeof document?document.location.origin:"";this.$window.parent.postMessage(e,s,t)}catch(t){console.error(`${JSON.stringify(e)}`),console.error(`Cause: ${t}`)}}}function s(e,t){return e.id===t}function n(){return Math.random()}const o=e("tunnel","undefined"!=typeof window?new t(window):new t(new class{parent;addEventListener(e,t){throw new Error(`addEventListener(type=${e}, handler=${typeof t}) method is not implemented.`)}removeEventListener(e,t){throw new Error(`removeEventListener(type=${e}, handler=${typeof t}) method is not implemented.`)}}));e("gradebook",new class{tunnel;constructor(e){this.tunnel=e}createItem(e){return new Promise(((t,o)=>{const r=n(),i=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/gradebook:create-item-response"!==t.data.type)}(e)){const n=e.data;s(n,r)&&(n.err?o(n.err):t(n.value),i.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/gradebook:create-item",id:r,item:e})}))}getItems(){return new Promise(((e,t)=>{const o=n(),r=this.tunnel.subscribe((function(n){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/gradebook:get-items-response"!==t.data.type)}(n)){const i=n.data;s(i,o)&&(i.err?t(i.err):e(i.value),r.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/gradebook:get-items",id:o})}))}getResults(e){return new Promise(((t,o)=>{const r=n(),i=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/gradebook:get-results-response"!==t.data.type)}(e)){const n=e.data;s(n,r)&&(n.err?o(n.err):t(n.value),i.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/gradebook:get-results",id:r,itemId:e})}))}submitScore(e,t){return new Promise(((o,r)=>{const i=n(),a=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/gradebook:submit-score-response"!==t.data.type)}(e)){const t=e.data;s(t,i)&&(t.err?r(t.err):o(),a.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/gradebook:submit-score",id:i,itemId:e,score:t})}))}}(o)),e("cohort",new class{tunnel;constructor(e){this.tunnel=e}getMembers(){return new Promise(((e,t)=>{const o=n(),r=this.tunnel.subscribe((function(n){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/organization:get-members-response"!==t.data.type)}(n)){const i=n.data;s(i,o)&&(i.err?t(i.err):e(i.value),r.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/organization:get-members",id:o})}))}}(o)),e("user",new class{tunnel;constructor(e){this.tunnel=e}alert(e){return new Promise(((t,o)=>{const r=n(),i=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/modal-dialog-service:alert-response"!==t.data.type)}(e)){const n=e.data;s(n,r)&&(n.err?o(n.err):t(n.value),i.dispose())}}));this.tunnel.postMessage({type:"@stemcstudio/modal-dialog-service:alert",id:r,title:e.title,message:e.message})}))}confirm(e){return new Promise(((t,o)=>{const r=(i=e.title,a=e.message,c=e.actionButtonText,u=e.cancelButtonText,{type:"@stemcstudio/modal-dialog-service:confirm",id:n(),title:i,message:a,actionButtonText:c,cancelButtonText:u});var i,a,c,u;const d=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/modal-dialog-service:confirm-response"!==t.data.type)}(e)){const n=e.data;s(n,r.id)&&(n.err?o(n.err):t(n.value),d.dispose())}}));this.tunnel.postMessage(r)}))}prompt(e){return new Promise(((t,o)=>{const r=(i=e.title,a=e.message,c=e.text,u=e.label,d=e.hint,m=e.actionButtonText,l=e.cancelButtonText,{type:"@stemcstudio/modal-dialog-service:prompt",id:n(),title:i,message:a,text:c,label:u,hint:d,actionButtonText:m,cancelButtonText:l});var i,a,c,u,d,m,l;const p=this.tunnel.subscribe((function(e){if(function(e){const t=e;return!(!t.data.type||"@stemcstudio/modal-dialog-service:prompt-response"!==t.data.type)}(e)){const n=e.data;s(n,r.id)&&(n.err?o(n.err):t(n.value),p.dispose())}}));this.tunnel.postMessage(r)}))}}(o))}}})); //# sourceMappingURL=index.min.js.map