@careevolution/mydatahelps-js 2.3.1 → 2.3.2

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/MyDataHelps.js CHANGED
@@ -692,6 +692,16 @@ function startEmbeddedSurvey(surveyUrl) {
692
692
  });
693
693
  }
694
694
 
695
+ MyDataHelps.getDataCollectionSettings = function () {
696
+ let endpoint = 'datacollectionsettings';
697
+
698
+ return MyDataHelps
699
+ .connect()
700
+ .then(function () { return makeRequest(endpoint, 'GET', null); })
701
+ .then(function (response) { return validateResponse(response); })
702
+ .then(function (response) { return response.json(); });
703
+ };
704
+
695
705
  //iOS/Android directly invoke window.MyDataHelps and window.RKStudioClient
696
706
  //so it's necessary to explicitly ensure they are present on the window
697
707
  window.MyDataHelps = MyDataHelps;
@@ -1,2 +1,2 @@
1
- var e={},n={},t=1,a=[],o={};function r(e){if("*"===e)return!0;for(var n=["localhost","careevolution.com","internal","b3-deploys.com","mydatahelps.org","platform.joinallofus.org","careevolution.dev","ce.dev"],t=new URL(e),a=0;a<n.length;a++)if(t.hostname===n[a]||t.hostname.endsWith("."+n[a]))return!0;return!1}var s,i,c=(s=document.location.ancestorOrigins)&&s[0]?s[0]:"*";if(!r(c))throw console.error("Application is not hosted at an approved origin."),"Application is not hosted at an approved origin.";i=window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.ResearchKit?{GetDelegatedAccessToken:function(e){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:e.messageID},c)},GetDeviceInfo:function(e){window.parent.postMessage({name:"GetDeviceInfo",messageID:e.messageID},c)}}:{GetDelegatedAccessToken:function(e){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:e.messageID},c)},GetDeviceInfo:function(e){window.parent.postMessage({name:"GetDeviceInfo",messageID:e.messageID},c)},StartParticipantSurvey:function(e){window.parent.postMessage({name:"StartParticipantSurvey",messageID:e.messageID,surveyName:e.surveyName},c)},OpenExternalLink:function(e){window.parent.postMessage({name:"OpenExternalUrl",url:e},c)},OpenEmbeddedLink:function(e){window.parent.postMessage({name:"OpenEmbeddedUrl",url:e},c)},OpenExternalApplication:function(e){window.parent.postMessage({name:"OpenApplication",messageID:e.messageID,url:e.url,modal:e.modal},c)},Dismiss:function(){window.parent.postMessage({name:"Dismiss"},c)},PopNavigation:function(){window.parent.postMessage({name:"Back"},c)},ShowTab:function(e){window.parent.postMessage({name:"ShowTab",tabKey:e},c)},ShowParticipantDashboard:function(e){window.parent.postMessage({name:"ShowParticipantDashboard",dashboardKey:e.dashboardKey,modal:e.modal},c)},ShowParticipantWebVisualization:function(e){window.parent.postMessage({name:"ShowParticipantWebVisualization",visualizationKey:e.visualizationKey,parameters:e.parameters,modal:e.modal},c)},ShowParticipantWebVisualizationPDF:function(e){window.parent.postMessage({name:"ShowParticipantWebVisualizationPDF",visualizationKey:e.visualizationKey,parameters:e.parameters,modal:e.modal,landscape:e.landscape,htmlViewerZoom:e.htmlViewerZoom},c)},DeleteProviderAccount:function(e){window.parent.postMessage({name:"DeleteProviderAccount",messageID:e.messageID,accountID:e.accountID},c)},ConnectExternalAccount:function(e){window.parent.postMessage({name:"ConnectExternalAccount",externalAccountProviderID:e.externalAccountProviderID},c)},ShowProject:function(e){window.parent.postMessage({name:"ShowProject",code:e.code},c)},JoinProject:function(e){window.parent.postMessage({name:"JoinProject",code:e.code},c)}};var u=["SetHeight","ResearchKit"],l=["surveyDidFinish","applicationDidBecomeVisible","externalAccountSyncComplete","tokenWillExpire"];for(var d in window.webkit&&window.webkit.messageHandlers&&function(){for(var e in i)if(window.webkit.messageHandlers[e])return!0;for(var e in u)if(window.webkit.messageHandlers[u[e]])return!0;return!1}()||(window.webkit={messageHandlers:{}}),i)window.webkit.messageHandlers[d]=window.webkit.messageHandlers[d]||{postMessage:i[d]};var w=function(){return t++};window.addEventListener("message",(function(n){if(!function(e){return"*"===c?r(e.origin):e.origin===c}(n))throw console.error("message.origin '"+n.origin+"' is not allowed."),"message.origin '"+n.origin+"' is not allowed.";n.data.messageID?e.setActionResult(n.data):e.triggerEvent(n.data)}),!1),e.setActionResult=function(e){a[e.messageID](e)},n.setActionResult=function(n){e.setActionResult(n)},e.triggerEvent=function(e){var n=e.type;l.includes(n)&&o[n]&&o[n].forEach((function(n){n(e)}))};var p=null;e.connect=function(){var n=function(){e.token=null,p=new Promise((function(t,o){var r=w();a[r]=function(s){s.success?(e.tokenExpires=Date.now()+1e3*s.data.expires_in,e.token=s.data,e.baseUrl=s.baseUrl,window.setTimeout(n,1e3*(s.data.expires_in-120)),t()):(e.token=null,o(s.message)),a[r]=null,p=null},window.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({messageID:r})}))};return e.token&&Date.now()<e.tokenExpires?Promise.resolve():(p||n(),p)},e.setParticipantAccessToken=function(n,t){e.token=n,t&&(e.baseUrl=t),e.tokenExpires=Date.now()+1e3*n.expires_in,window.setTimeout((function(){e.triggerEvent({type:"tokenWillExpire"})}),1e3*(n.expires_in-120))},e.completeStep=function(e){null==e&&(e=""),window.webkit.messageHandlers.ResearchKit&&window.webkit.messageHandlers.ResearchKit.postMessage(e)},e.startSurvey=function(e){var n=w();window.webkit.messageHandlers.StartParticipantSurvey.postMessage({messageID:n,surveyName:e})},e.openExternalUrl=function(e){window.webkit.messageHandlers.OpenExternalLink.postMessage(e)},e.openEmbeddedUrl=function(e){window.webkit.messageHandlers.OpenEmbeddedLink.postMessage(e)},e.openApplication=function(e,n){var t=w();window.webkit.messageHandlers.OpenExternalApplication.postMessage({messageID:t,url:e,modal:!(!n||!n.modal)})},e.dismiss=function(){window.webkit.messageHandlers.Dismiss.postMessage({})},e.back=function(){window.webkit.messageHandlers.PopNavigation.postMessage({})},e.showTab=function(e){window.webkit.messageHandlers.ShowTab.postMessage(e)},e.showDashboard=function(e,n){window.webkit.messageHandlers.ShowParticipantDashboard.postMessage({dashboardKey:e,modal:!(!n||!n.modal),title:n&&n.title?n.title:void 0})},e.showWebVisualization=function(e,n,t){window.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({visualizationKey:e,parameters:n,modal:!(!t||!t.modal),title:t&&t.title?t.title:void 0})},e.showWebVisualizationPdf=function(e,n,t){window.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({visualizationKey:e,parameters:n,landscape:!(!t||!t.landscape),htmlViewerZoom:t&&t.htmlViewerZoom})},e.setStatusBarStyle=function(e){window.webkit.messageHandlers.SetStatusBarStyle&&window.webkit.messageHandlers.SetStatusBarStyle.postMessage({style:e})},e.requestReview=function(e){window.webkit.messageHandlers.RequestReview&&window.webkit.messageHandlers.RequestReview.postMessage({cooldownDays:e})},e.getDeviceInfo=function(){return new Promise((function(e,n){var t=w();a[t]=function(n){e(n.data)},window.webkit.messageHandlers.GetDeviceInfo?window.webkit.messageHandlers.GetDeviceInfo.postMessage({messageID:t}):n()}))},e.deleteExternalAccount=function(e){return new Promise((function(n,t){var o=w();a[o]=function(e){e.success?n(e):t(e)},window.webkit.messageHandlers.DeleteProviderAccount?window.webkit.messageHandlers.DeleteProviderAccount.postMessage({messageID:o,accountID:e}):t()}))},e.connectExternalAccount=function(e){window.webkit.messageHandlers.ConnectExternalAccount&&window.webkit.messageHandlers.ConnectExternalAccount.postMessage({externalAccountProviderID:e})},e.showProject=function(e){window.webkit.messageHandlers.ShowProject&&window.webkit.messageHandlers.ShowProject.postMessage({code:e})},e.joinProject=function(e){window.webkit.messageHandlers.JoinProject&&window.webkit.messageHandlers.JoinProject.postMessage({code:e})},e.getCurrentLanguage=function(){var e=new URLSearchParams(window.location.search);return e.has("lang")?e.get("lang"):navigator.language},e.showGoogleFitSettings=function(){window.webkit.messageHandlers.ShowGoogleFitSettings&&window.webkit.messageHandlers.ShowGoogleFitSettings.postMessage({})},e.on=function(e,n){if(!l.includes(e))throw new Error(e+" is not a supported event type.");o[e]||(o[e]=[]),o[e].push(n)},e.off=function(e,n){if(!l.includes(e))throw new Error(e+" is not a supported event type.");if(o[e]){var t=o[e].indexOf(n);-1!==t&&o[e].splice(t,1)}};var m=function(n,t,a){if(!e.token||!e.token.access_token)throw"No access_token available for request authorization.";var o=function(n){if(!e.baseUrl)throw console.error("Cannot use makeUrl without MyDataHelps.baseUrl."),"Cannot use makeUrl without MyDataHelps.baseUrl.";return e.baseUrl+"api/v1/delegated/"+n}(n),r=new Headers;r.append("Authorization","Bearer "+e.token.access_token),r.append("Accept","application/json, text/javascript, */*; q=0.01"),r.append("Accept-Language",e.getCurrentLanguage()),a&&r.append("Content-Type","application/json");var s={method:t,headers:r};return a&&(s.body=JSON.stringify(a)),fetch(o,s)},f=function(e){if(!e.ok)throw e.statusText;return e},g=function(e){return String(e).replace("\\","\\\\").replace(",","\\,")},h=function(e){return Array.isArray(e)?e.map((function(e){return g(e)})).join(","):g(e)},v=function(e){var n=new Date(e);if(isNaN(n.getTime()))throw"Cannot interpret parameter as Date";return n.toISOString()};function y(){return e.baseUrl||"https://mydatahelps.org/"}function b(e){var n="mydatahelps-survey-modal";return new Promise((function(t,a){if(document.getElementById(n))a("Survey already in progress");else{window.addEventListener("message",(function e(a){if(a.origin===new URL(y()).origin){var o=document.getElementById("mydatahelps-survey-frame").contentWindow;a.source===o&&("SurveyWindowInitialized"==a.data.name?document.getElementById(n).className+=" loaded":"SurveyFinished"==a.data.name&&(document.getElementById(n).remove(),document.body.className=document.body.className.replace("no-scroll",""),window.removeEventListener("message",e,!0),t(a.data)))}}),!0);var o=document.createElement("div");o.className="mydatahelps-survey-modal",o.id=n,o.innerHTML="<div class='mydatahelps-survey'><div class='loader'>Loading...</div><iframe id='mydatahelps-survey-frame' allow='camera' sandbox='allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts' src='"+e+"'></iframe></div>",document.body.append(o),document.body.className+=" no-scroll"}}))}e.getParticipantInfo=function(){return e.connect().then((function(){return m("participant","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getProjectInfo=function(){return e.connect().then((function(){return m("project","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.querySurveyAnswers=function(n){n.hasOwnProperty("surveyName")&&(n.surveyName=h(n.surveyName)),n.hasOwnProperty("stepIdentifier")&&(n.stepIdentifier=h(n.stepIdentifier)),n.hasOwnProperty("resultIdentifier")&&(n.resultIdentifier=h(n.resultIdentifier)),n.hasOwnProperty("answer")&&(n.answer=h(n.answer)),n.hasOwnProperty("before")&&(n.before=v(n.before)),n.hasOwnProperty("after")&&(n.after=v(n.after));var t="surveyanswers?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.deleteSurveyResult=function(n){var t="surveyresults/"+encodeURIComponent(n);return e.connect().then((function(){return m(t,"DELETE",null)})).then((function(e){return f(e)})).then((function(e){}))},e.queryDeviceData=function(n){n.hasOwnProperty("type")&&(n.type=h(n.type)),n.hasOwnProperty("observedBefore")&&(n.observedBefore=v(n.observedBefore)),n.hasOwnProperty("observedAfter")&&(n.observedAfter=v(n.observedAfter));var t="devicedata?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.persistDeviceData=function(n){return e.connect().then((function(){return m("devicedata","POST",n)})).then((function(e){return f(e)})).then((function(e){}))},e.trackCustomEvent=function(n){return e.connect().then((function(){return m("customevents","POST",n)})).then((function(e){return f(e)})).then((function(e){}))},e.querySurveyTasks=function(n){n.hasOwnProperty("status")&&(n.status=h(n.status)),n.hasOwnProperty("surveyName")&&(n.surveyName=h(n.surveyName));var t="surveytasks?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.queryNotifications=function(n){n.hasOwnProperty("sentBefore")&&(n.sentBefore=v(n.sentBefore)),n.hasOwnProperty("sentAfter")&&(n.sentAfter=v(n.sentAfter));var t="notifications?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getExternalAccountProviders=function(n,t,a,o){var r={};n&&(r.search=n),t&&(r.category=t),a&&(r.pageSize=a),o&&(r.pageNumber=o);var s="externalaccountproviders?"+new URLSearchParams(r).toString();return e.connect().then((function(){return m(s,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getExternalAccounts=function(){return e.connect().then((function(){return m("externalaccounts","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.refreshExternalAccount=function(n){var t="externalaccounts/refresh/"+n;return e.connect().then((function(){return m(t,"POST",null)})).then((function(e){return f(e)})).then((function(e){}))},e.invokeCustomApi=function(n,t,a,o){if(n.includes("?"))throw new Error('Cannot include query parameters directly in the "customApi" string. Provide as an argument for "queryParameters" instead.');var r="custom/"+n;if(t=t.toUpperCase(),null!=a&&("GET"===t||"DELETE"===t)){var s=new URLSearchParams(a).toString();r+="?"+s,a=null}return e.connect().then((function(){return m(r,t,a)})).then((function(e){return f(e)})).then((function(e){return o?e.json():void 0}))},e.startEmbeddedSurvey=function(e,n,t){return t||(t=this.getCurrentLanguage()),b(y()+"mydatahelps/"+e+"/surveylink/"+n+"?lang="+t)},e.startEmbeddedTask=function(e,n,t){return t||(t=this.getCurrentLanguage()),b(y()+"mydatahelps/"+e+"/tasklink/"+n+"?lang="+t)},window.MyDataHelps=e,window.RKStudioClient=n;export{e as default};
1
+ var e={},n={},t=1,o=[],a={};function r(e){if("*"===e)return!0;for(var n=["localhost","careevolution.com","internal","b3-deploys.com","mydatahelps.org","platform.joinallofus.org","careevolution.dev","ce.dev"],t=new URL(e),o=0;o<n.length;o++)if(t.hostname===n[o]||t.hostname.endsWith("."+n[o]))return!0;return!1}var s,i,c=(s=document.location.ancestorOrigins)&&s[0]?s[0]:"*";if(!r(c))throw console.error("Application is not hosted at an approved origin."),"Application is not hosted at an approved origin.";i=window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.ResearchKit?{GetDelegatedAccessToken:function(e){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:e.messageID},c)},GetDeviceInfo:function(e){window.parent.postMessage({name:"GetDeviceInfo",messageID:e.messageID},c)}}:{GetDelegatedAccessToken:function(e){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:e.messageID},c)},GetDeviceInfo:function(e){window.parent.postMessage({name:"GetDeviceInfo",messageID:e.messageID},c)},StartParticipantSurvey:function(e){window.parent.postMessage({name:"StartParticipantSurvey",messageID:e.messageID,surveyName:e.surveyName},c)},OpenExternalLink:function(e){window.parent.postMessage({name:"OpenExternalUrl",url:e},c)},OpenEmbeddedLink:function(e){window.parent.postMessage({name:"OpenEmbeddedUrl",url:e},c)},OpenExternalApplication:function(e){window.parent.postMessage({name:"OpenApplication",messageID:e.messageID,url:e.url,modal:e.modal},c)},Dismiss:function(){window.parent.postMessage({name:"Dismiss"},c)},PopNavigation:function(){window.parent.postMessage({name:"Back"},c)},ShowTab:function(e){window.parent.postMessage({name:"ShowTab",tabKey:e},c)},ShowParticipantDashboard:function(e){window.parent.postMessage({name:"ShowParticipantDashboard",dashboardKey:e.dashboardKey,modal:e.modal},c)},ShowParticipantWebVisualization:function(e){window.parent.postMessage({name:"ShowParticipantWebVisualization",visualizationKey:e.visualizationKey,parameters:e.parameters,modal:e.modal},c)},ShowParticipantWebVisualizationPDF:function(e){window.parent.postMessage({name:"ShowParticipantWebVisualizationPDF",visualizationKey:e.visualizationKey,parameters:e.parameters,modal:e.modal,landscape:e.landscape,htmlViewerZoom:e.htmlViewerZoom},c)},DeleteProviderAccount:function(e){window.parent.postMessage({name:"DeleteProviderAccount",messageID:e.messageID,accountID:e.accountID},c)},ConnectExternalAccount:function(e){window.parent.postMessage({name:"ConnectExternalAccount",externalAccountProviderID:e.externalAccountProviderID},c)},ShowProject:function(e){window.parent.postMessage({name:"ShowProject",code:e.code},c)},JoinProject:function(e){window.parent.postMessage({name:"JoinProject",code:e.code},c)}};var u=["SetHeight","ResearchKit"],l=["surveyDidFinish","applicationDidBecomeVisible","externalAccountSyncComplete","tokenWillExpire"];for(var d in window.webkit&&window.webkit.messageHandlers&&function(){for(var e in i)if(window.webkit.messageHandlers[e])return!0;for(var e in u)if(window.webkit.messageHandlers[u[e]])return!0;return!1}()||(window.webkit={messageHandlers:{}}),i)window.webkit.messageHandlers[d]=window.webkit.messageHandlers[d]||{postMessage:i[d]};var w=function(){return t++};window.addEventListener("message",(function(n){if(!function(e){return"*"===c?r(e.origin):e.origin===c}(n))throw console.error("message.origin '"+n.origin+"' is not allowed."),"message.origin '"+n.origin+"' is not allowed.";n.data.messageID?e.setActionResult(n.data):e.triggerEvent(n.data)}),!1),e.setActionResult=function(e){o[e.messageID](e)},n.setActionResult=function(n){e.setActionResult(n)},e.triggerEvent=function(e){var n=e.type;l.includes(n)&&a[n]&&a[n].forEach((function(n){n(e)}))};var p=null;e.connect=function(){var n=function(){e.token=null,p=new Promise((function(t,a){var r=w();o[r]=function(s){s.success?(e.tokenExpires=Date.now()+1e3*s.data.expires_in,e.token=s.data,e.baseUrl=s.baseUrl,window.setTimeout(n,1e3*(s.data.expires_in-120)),t()):(e.token=null,a(s.message)),o[r]=null,p=null},window.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({messageID:r})}))};return e.token&&Date.now()<e.tokenExpires?Promise.resolve():(p||n(),p)},e.setParticipantAccessToken=function(n,t){e.token=n,t&&(e.baseUrl=t),e.tokenExpires=Date.now()+1e3*n.expires_in,window.setTimeout((function(){e.triggerEvent({type:"tokenWillExpire"})}),1e3*(n.expires_in-120))},e.completeStep=function(e){null==e&&(e=""),window.webkit.messageHandlers.ResearchKit&&window.webkit.messageHandlers.ResearchKit.postMessage(e)},e.startSurvey=function(e){var n=w();window.webkit.messageHandlers.StartParticipantSurvey.postMessage({messageID:n,surveyName:e})},e.openExternalUrl=function(e){window.webkit.messageHandlers.OpenExternalLink.postMessage(e)},e.openEmbeddedUrl=function(e){window.webkit.messageHandlers.OpenEmbeddedLink.postMessage(e)},e.openApplication=function(e,n){var t=w();window.webkit.messageHandlers.OpenExternalApplication.postMessage({messageID:t,url:e,modal:!(!n||!n.modal)})},e.dismiss=function(){window.webkit.messageHandlers.Dismiss.postMessage({})},e.back=function(){window.webkit.messageHandlers.PopNavigation.postMessage({})},e.showTab=function(e){window.webkit.messageHandlers.ShowTab.postMessage(e)},e.showDashboard=function(e,n){window.webkit.messageHandlers.ShowParticipantDashboard.postMessage({dashboardKey:e,modal:!(!n||!n.modal),title:n&&n.title?n.title:void 0})},e.showWebVisualization=function(e,n,t){window.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({visualizationKey:e,parameters:n,modal:!(!t||!t.modal),title:t&&t.title?t.title:void 0})},e.showWebVisualizationPdf=function(e,n,t){window.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({visualizationKey:e,parameters:n,landscape:!(!t||!t.landscape),htmlViewerZoom:t&&t.htmlViewerZoom})},e.setStatusBarStyle=function(e){window.webkit.messageHandlers.SetStatusBarStyle&&window.webkit.messageHandlers.SetStatusBarStyle.postMessage({style:e})},e.requestReview=function(e){window.webkit.messageHandlers.RequestReview&&window.webkit.messageHandlers.RequestReview.postMessage({cooldownDays:e})},e.getDeviceInfo=function(){return new Promise((function(e,n){var t=w();o[t]=function(n){e(n.data)},window.webkit.messageHandlers.GetDeviceInfo?window.webkit.messageHandlers.GetDeviceInfo.postMessage({messageID:t}):n()}))},e.deleteExternalAccount=function(e){return new Promise((function(n,t){var a=w();o[a]=function(e){e.success?n(e):t(e)},window.webkit.messageHandlers.DeleteProviderAccount?window.webkit.messageHandlers.DeleteProviderAccount.postMessage({messageID:a,accountID:e}):t()}))},e.connectExternalAccount=function(e){window.webkit.messageHandlers.ConnectExternalAccount&&window.webkit.messageHandlers.ConnectExternalAccount.postMessage({externalAccountProviderID:e})},e.showProject=function(e){window.webkit.messageHandlers.ShowProject&&window.webkit.messageHandlers.ShowProject.postMessage({code:e})},e.joinProject=function(e){window.webkit.messageHandlers.JoinProject&&window.webkit.messageHandlers.JoinProject.postMessage({code:e})},e.getCurrentLanguage=function(){var e=new URLSearchParams(window.location.search);return e.has("lang")?e.get("lang"):navigator.language},e.showGoogleFitSettings=function(){window.webkit.messageHandlers.ShowGoogleFitSettings&&window.webkit.messageHandlers.ShowGoogleFitSettings.postMessage({})},e.on=function(e,n){if(!l.includes(e))throw new Error(e+" is not a supported event type.");a[e]||(a[e]=[]),a[e].push(n)},e.off=function(e,n){if(!l.includes(e))throw new Error(e+" is not a supported event type.");if(a[e]){var t=a[e].indexOf(n);-1!==t&&a[e].splice(t,1)}};var m=function(n,t,o){if(!e.token||!e.token.access_token)throw"No access_token available for request authorization.";var a=function(n){if(!e.baseUrl)throw console.error("Cannot use makeUrl without MyDataHelps.baseUrl."),"Cannot use makeUrl without MyDataHelps.baseUrl.";return e.baseUrl+"api/v1/delegated/"+n}(n),r=new Headers;r.append("Authorization","Bearer "+e.token.access_token),r.append("Accept","application/json, text/javascript, */*; q=0.01"),r.append("Accept-Language",e.getCurrentLanguage()),o&&r.append("Content-Type","application/json");var s={method:t,headers:r};return o&&(s.body=JSON.stringify(o)),fetch(a,s)},f=function(e){if(!e.ok)throw e.statusText;return e},g=function(e){return String(e).replace("\\","\\\\").replace(",","\\,")},h=function(e){return Array.isArray(e)?e.map((function(e){return g(e)})).join(","):g(e)},v=function(e){var n=new Date(e);if(isNaN(n.getTime()))throw"Cannot interpret parameter as Date";return n.toISOString()};function y(){return e.baseUrl||"https://mydatahelps.org/"}function b(e){var n="mydatahelps-survey-modal";return new Promise((function(t,o){if(document.getElementById(n))o("Survey already in progress");else{window.addEventListener("message",(function e(o){if(o.origin===new URL(y()).origin){var a=document.getElementById("mydatahelps-survey-frame").contentWindow;o.source===a&&("SurveyWindowInitialized"==o.data.name?document.getElementById(n).className+=" loaded":"SurveyFinished"==o.data.name&&(document.getElementById(n).remove(),document.body.className=document.body.className.replace("no-scroll",""),window.removeEventListener("message",e,!0),t(o.data)))}}),!0);var a=document.createElement("div");a.className="mydatahelps-survey-modal",a.id=n,a.innerHTML="<div class='mydatahelps-survey'><div class='loader'>Loading...</div><iframe id='mydatahelps-survey-frame' allow='camera' sandbox='allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts' src='"+e+"'></iframe></div>",document.body.append(a),document.body.className+=" no-scroll"}}))}e.getParticipantInfo=function(){return e.connect().then((function(){return m("participant","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getProjectInfo=function(){return e.connect().then((function(){return m("project","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.querySurveyAnswers=function(n){n.hasOwnProperty("surveyName")&&(n.surveyName=h(n.surveyName)),n.hasOwnProperty("stepIdentifier")&&(n.stepIdentifier=h(n.stepIdentifier)),n.hasOwnProperty("resultIdentifier")&&(n.resultIdentifier=h(n.resultIdentifier)),n.hasOwnProperty("answer")&&(n.answer=h(n.answer)),n.hasOwnProperty("before")&&(n.before=v(n.before)),n.hasOwnProperty("after")&&(n.after=v(n.after));var t="surveyanswers?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.deleteSurveyResult=function(n){var t="surveyresults/"+encodeURIComponent(n);return e.connect().then((function(){return m(t,"DELETE",null)})).then((function(e){return f(e)})).then((function(e){}))},e.queryDeviceData=function(n){n.hasOwnProperty("type")&&(n.type=h(n.type)),n.hasOwnProperty("observedBefore")&&(n.observedBefore=v(n.observedBefore)),n.hasOwnProperty("observedAfter")&&(n.observedAfter=v(n.observedAfter));var t="devicedata?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.persistDeviceData=function(n){return e.connect().then((function(){return m("devicedata","POST",n)})).then((function(e){return f(e)})).then((function(e){}))},e.trackCustomEvent=function(n){return e.connect().then((function(){return m("customevents","POST",n)})).then((function(e){return f(e)})).then((function(e){}))},e.querySurveyTasks=function(n){n.hasOwnProperty("status")&&(n.status=h(n.status)),n.hasOwnProperty("surveyName")&&(n.surveyName=h(n.surveyName));var t="surveytasks?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.queryNotifications=function(n){n.hasOwnProperty("sentBefore")&&(n.sentBefore=v(n.sentBefore)),n.hasOwnProperty("sentAfter")&&(n.sentAfter=v(n.sentAfter));var t="notifications?"+new URLSearchParams(n).toString();return e.connect().then((function(){return m(t,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getExternalAccountProviders=function(n,t,o,a){var r={};n&&(r.search=n),t&&(r.category=t),o&&(r.pageSize=o),a&&(r.pageNumber=a);var s="externalaccountproviders?"+new URLSearchParams(r).toString();return e.connect().then((function(){return m(s,"GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.getExternalAccounts=function(){return e.connect().then((function(){return m("externalaccounts","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},e.refreshExternalAccount=function(n){var t="externalaccounts/refresh/"+n;return e.connect().then((function(){return m(t,"POST",null)})).then((function(e){return f(e)})).then((function(e){}))},e.invokeCustomApi=function(n,t,o,a){if(n.includes("?"))throw new Error('Cannot include query parameters directly in the "customApi" string. Provide as an argument for "queryParameters" instead.');var r="custom/"+n;if(t=t.toUpperCase(),null!=o&&("GET"===t||"DELETE"===t)){var s=new URLSearchParams(o).toString();r+="?"+s,o=null}return e.connect().then((function(){return m(r,t,o)})).then((function(e){return f(e)})).then((function(e){return a?e.json():void 0}))},e.startEmbeddedSurvey=function(e,n,t){return t||(t=this.getCurrentLanguage()),b(y()+"mydatahelps/"+e+"/surveylink/"+n+"?lang="+t)},e.startEmbeddedTask=function(e,n,t){return t||(t=this.getCurrentLanguage()),b(y()+"mydatahelps/"+e+"/tasklink/"+n+"?lang="+t)},e.getDataCollectionSettings=function(){return e.connect().then((function(){return m("datacollectionsettings","GET",null)})).then((function(e){return f(e)})).then((function(e){return e.json()}))},window.MyDataHelps=e,window.RKStudioClient=n;export{e as default};
2
2
  //# sourceMappingURL=MyDataHelps.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyDataHelps.min.js","sources":["../../MyDataHelps.js"],"sourcesContent":["var MyDataHelps = {};\n// For backwards compatibility\nvar RKStudioClient = {};\n\nvar accessTokenRenewalBufferSeconds = 120;\nvar currentMessageID = 1;\nvar messageHandlers = [];\nvar registeredEventHandlers = {};\nvar apiBasePath = 'api/v1/delegated/';\n\nfunction getParentOrigin() {\n\tvar ancestorOrigins = document.location.ancestorOrigins;\n\tif (ancestorOrigins && ancestorOrigins[0]) {\n\t\treturn ancestorOrigins[0];\n\t}\n\n\treturn '*';\n}\n\nfunction acceptableOrigin(origin) {\n\tif (origin === '*') return true;\n\n\tvar allowedApplicationHosts = [\n\t\t'localhost',\n\t\t'careevolution.com',\n\t\t'internal',\n\t\t'b3-deploys.com',\n\t\t'mydatahelps.org',\n\t\t'platform.joinallofus.org',\n\t\t'careevolution.dev',\n\t\t'ce.dev'\n\t];\n\n\tvar sourceURL = new URL(origin);\n\tfor (var k = 0; k < allowedApplicationHosts.length; k++) {\n\t\tif (sourceURL.hostname === allowedApplicationHosts[k] || sourceURL.hostname.endsWith(\".\" + allowedApplicationHosts[k])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nvar applicationHost = getParentOrigin();\nif (!acceptableOrigin(applicationHost)) {\n\tconsole.error(\"Application is not hosted at an approved origin.\");\n\tthrow \"Application is not hosted at an approved origin.\";\n}\n\nvar supportedActions;\nif (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.ResearchKit) {\n\tsupportedActions = {\n\t\t\"GetDelegatedAccessToken\": function (data) { window.parent.postMessage({ name: 'GetDelegatedAccessToken', messageID: data.messageID }, applicationHost) },\n\t\t\"GetDeviceInfo\": function (data) { window.parent.postMessage({ name: 'GetDeviceInfo', messageID: data.messageID }, applicationHost) }\n\t};\n}\nelse {\n\tsupportedActions = {\n\t\t\"GetDelegatedAccessToken\": function (data) { window.parent.postMessage({ name: 'GetDelegatedAccessToken', messageID: data.messageID }, applicationHost) },\n\t\t\"GetDeviceInfo\": function (data) { window.parent.postMessage({ name: 'GetDeviceInfo', messageID: data.messageID }, applicationHost) },\n\t\t\"StartParticipantSurvey\": function (data) { window.parent.postMessage({ name: 'StartParticipantSurvey', messageID: data.messageID, surveyName: data.surveyName }, applicationHost) },\n\t\t\"OpenExternalLink\": function (data) { window.parent.postMessage({ name: 'OpenExternalUrl', url: data }, applicationHost) },\n\t\t\"OpenEmbeddedLink\": function (data) { window.parent.postMessage({ name: 'OpenEmbeddedUrl', url: data }, applicationHost) },\n\t\t\"OpenExternalApplication\": function (data) { window.parent.postMessage({ name: 'OpenApplication', messageID: data.messageID, url: data.url, modal: data.modal }, applicationHost) },\n\t\t\"Dismiss\": function () { window.parent.postMessage({ name: 'Dismiss' }, applicationHost) },\n\t\t\"PopNavigation\": function () { window.parent.postMessage({ name: 'Back' }, applicationHost) },\n\t\t\"ShowTab\": function (data) { window.parent.postMessage({ name: 'ShowTab', tabKey: data }, applicationHost) },\n\t\t\"ShowParticipantDashboard\": function (data) { window.parent.postMessage({ name: 'ShowParticipantDashboard', dashboardKey: data.dashboardKey, modal: data.modal }, applicationHost) },\n\t\t\"ShowParticipantWebVisualization\": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualization', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal }, applicationHost) },\n\t\t\"ShowParticipantWebVisualizationPDF\": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualizationPDF', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal, landscape: data.landscape, htmlViewerZoom: data.htmlViewerZoom }, applicationHost) },\n\t\t\"DeleteProviderAccount\": function (data) { window.parent.postMessage({ name: 'DeleteProviderAccount', messageID: data.messageID, accountID: data.accountID }, applicationHost) },\n\t\t\"ConnectExternalAccount\": function (data) { window.parent.postMessage({ name: 'ConnectExternalAccount', externalAccountProviderID: data.externalAccountProviderID }, applicationHost) },\n\t\t\"ShowProject\": function (data) { window.parent.postMessage({ name: 'ShowProject', code: data.code }, applicationHost) },\n\t\t\"JoinProject\": function (data) { window.parent.postMessage({ name: 'JoinProject', code: data.code }, applicationHost) }\n\t};\n}\n\nvar unsupportedActions = [\"SetHeight\", \"ResearchKit\"];\n\nvar supportedEvents = [\"surveyDidFinish\", \"applicationDidBecomeVisible\", \"externalAccountSyncComplete\", \"tokenWillExpire\"];\n\nfunction windowHasAnyActions() {\n\tfor (var action in supportedActions) {\n\t\tif (window.webkit.messageHandlers[action]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\tfor (var action in unsupportedActions) {\n\t\tif (window.webkit.messageHandlers[unsupportedActions[action]]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nif (!window.webkit || !window.webkit.messageHandlers || !windowHasAnyActions()) {\n\twindow.webkit = {\n\t\tmessageHandlers: {}\n\t};\n}\n\nfor (var action in supportedActions) {\n\twindow.webkit.messageHandlers[action] = window.webkit.messageHandlers[action] || { postMessage: supportedActions[action] };\n}\n\nvar nextMessageID = function () {\n\treturn currentMessageID++;\n};\n\nfunction validateWindowMessageOrigin(message) {\n\tif (applicationHost === \"*\") {\n\t\treturn acceptableOrigin(message.origin);\n\t}\n\n\treturn message.origin === applicationHost;\n}\n\nvar receiveWindowMessage = function (message) {\n\tif (!validateWindowMessageOrigin(message)) {\n\t\tconsole.error(\"message.origin '\" + message.origin + \"' is not allowed.\");\n\t\tthrow \"message.origin '\" + message.origin + \"' is not allowed.\";\n\t}\n\n\tif (message.data.messageID) {\n\t\tMyDataHelps.setActionResult(message.data);\n\t}\n\telse {\n\t\tMyDataHelps.triggerEvent(message.data);\n\t}\n};\n\nwindow.addEventListener(\"message\", receiveWindowMessage, false);\n\nMyDataHelps.setActionResult = function (data) {\n\tmessageHandlers[data.messageID](data);\n};\n\nRKStudioClient.setActionResult = function (data) {\n\tMyDataHelps.setActionResult(data);\n};\n\nMyDataHelps.triggerEvent = function (event) {\n\tvar eventName = event.type;\n\tif (supportedEvents.includes(eventName) && registeredEventHandlers[eventName]) {\n\t\tregisteredEventHandlers[eventName].forEach(function (handler) {\n\t\t\thandler(event);\n\t\t});\n\t}\n}\n\n//Authorization\n\nvar refreshTokenPromise = null;\nMyDataHelps.connect = function () {\n\tvar refreshDelegatedAccessToken = function () {\n\t\tMyDataHelps.token = null;\n\n\t\trefreshTokenPromise = new Promise(function (resolve, reject) {\n\t\t\tvar messageID = nextMessageID();\n\t\t\tmessageHandlers[messageID] = function (tokenResponse) {\n\t\t\t\tif (tokenResponse.success) {\n\t\t\t\t\tMyDataHelps.tokenExpires = Date.now() + (tokenResponse.data.expires_in * 1000);\n\t\t\t\t\tMyDataHelps.token = tokenResponse.data;\n\t\t\t\t\tMyDataHelps.baseUrl = tokenResponse.baseUrl;\n\t\t\t\t\twindow.setTimeout(refreshDelegatedAccessToken, ((tokenResponse.data.expires_in - accessTokenRenewalBufferSeconds) * 1000));\n\t\t\t\t\tresolve();\n\t\t\t\t} else {\n\t\t\t\t\tMyDataHelps.token = null;\n\t\t\t\t\treject(tokenResponse.message);\n\t\t\t\t}\n\t\t\t\tmessageHandlers[messageID] = null;\n\t\t\t\trefreshTokenPromise = null;\n\t\t\t};\n\n\t\t\twindow.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({ messageID: messageID });\n\t\t});\n\t};\n\n\tif (MyDataHelps.token && Date.now() < MyDataHelps.tokenExpires) {\n\t\treturn Promise.resolve();\n\t}\n\n\tif (!refreshTokenPromise) {\n\t\trefreshDelegatedAccessToken();\n\t}\n\n\t// Re-use promise if refresh already in progress\n\treturn refreshTokenPromise;\n};\n\n//Initializing access token manually\nMyDataHelps.setParticipantAccessToken = function (token, baseUrl) {\n\tMyDataHelps.token = token;\n\tif (baseUrl) {\n\t\tMyDataHelps.baseUrl = baseUrl;\n\t}\n\tMyDataHelps.tokenExpires = Date.now() + (token.expires_in * 1000);\n\twindow.setTimeout(function () {\n\t\tMyDataHelps.triggerEvent({ type: \"tokenWillExpire\" });\n\t}, ((token.expires_in - accessTokenRenewalBufferSeconds) * 1000));\n};\n\n//Actions\n\nMyDataHelps.completeStep = function (answer) {\n\tif (answer === undefined || answer === null) answer = '';\n\n\tif (window.webkit.messageHandlers.ResearchKit) {\n\t\twindow.webkit.messageHandlers.ResearchKit.postMessage(answer);\n\t}\n}\n\nMyDataHelps.startSurvey = function (surveyName) {\n\tvar messageID = nextMessageID();\n\twindow.webkit.messageHandlers.StartParticipantSurvey.postMessage({ messageID: messageID, surveyName: surveyName });\n};\n\nMyDataHelps.openExternalUrl = function (url) {\n\twindow.webkit.messageHandlers.OpenExternalLink.postMessage(url);\n};\n\nMyDataHelps.openEmbeddedUrl = function (url) {\n\twindow.webkit.messageHandlers.OpenEmbeddedLink.postMessage(url);\n};\n\nMyDataHelps.openApplication = function (url, options) {\n\tvar messageID = nextMessageID();\n\twindow.webkit.messageHandlers.OpenExternalApplication.postMessage({ messageID: messageID, url: url, modal: options && options.modal ? true : false });\n};\n\nMyDataHelps.dismiss = function () {\n\twindow.webkit.messageHandlers.Dismiss.postMessage({});\n};\n\nMyDataHelps.back = function () {\n\twindow.webkit.messageHandlers.PopNavigation.postMessage({});\n};\n\nMyDataHelps.showTab = function (tabKey) {\n\twindow.webkit.messageHandlers.ShowTab.postMessage(tabKey);\n};\n\nMyDataHelps.showDashboard = function (dashboardKey, options) {\n\twindow.webkit.messageHandlers.ShowParticipantDashboard.postMessage({\n\t\tdashboardKey: dashboardKey,\n\t\tmodal: options && options.modal ? true : false,\n\t\ttitle: options && options.title ? options.title : undefined\n\t});\n};\n\nMyDataHelps.showWebVisualization = function (visualizationKey, parameters, options) {\n\twindow.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({\n\t\tvisualizationKey: visualizationKey,\n\t\tparameters: parameters,\n\t\tmodal: options && options.modal ? true : false,\n\t\ttitle: options && options.title ? options.title : undefined\n\t});\n};\n\nMyDataHelps.showWebVisualizationPdf = function (visualizationKey, parameters, options) {\n\twindow.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({\n\t\tvisualizationKey: visualizationKey,\n\t\tparameters: parameters,\n\t\tlandscape: options && options.landscape ? true : false,\n\t\thtmlViewerZoom: options && options.htmlViewerZoom\n\t});\n};\n\nMyDataHelps.setStatusBarStyle = function (style) {\n\tif (window.webkit.messageHandlers.SetStatusBarStyle) {\n\t\twindow.webkit.messageHandlers.SetStatusBarStyle.postMessage({ style: style });\n\t}\n};\n\nMyDataHelps.requestReview = function (cooldownDays) {\n\tif (window.webkit.messageHandlers.RequestReview) {\n\t\twindow.webkit.messageHandlers.RequestReview.postMessage({ cooldownDays: cooldownDays });\n\t}\n};\n\nMyDataHelps.getDeviceInfo = function () {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar messageID = nextMessageID();\n\t\tmessageHandlers[messageID] = function (deviceInfoResponse) {\n\t\t\tresolve(deviceInfoResponse.data);\n\t\t};\n\n\t\tif (window.webkit.messageHandlers.GetDeviceInfo) {\n\t\t\twindow.webkit.messageHandlers.GetDeviceInfo.postMessage({ messageID: messageID });\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n};\n\nMyDataHelps.deleteExternalAccount = function (accountID) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar messageID = nextMessageID();\n\t\tmessageHandlers[messageID] = function (deleteProviderAccountResponse) {\n\t\t\tif (!deleteProviderAccountResponse.success) {\n\t\t\t\treject(deleteProviderAccountResponse)\n\t\t\t} else {\n\t\t\t\tresolve(deleteProviderAccountResponse);\n\t\t\t}\n\t\t};\n\n\t\tif (window.webkit.messageHandlers.DeleteProviderAccount) {\n\t\t\twindow.webkit.messageHandlers.DeleteProviderAccount.postMessage({ messageID: messageID, accountID: accountID });\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n}\n\nMyDataHelps.connectExternalAccount = function (externalAccountProviderID) {\n\tif (window.webkit.messageHandlers.ConnectExternalAccount) {\n\t\twindow.webkit.messageHandlers.ConnectExternalAccount.postMessage({ externalAccountProviderID: externalAccountProviderID });\n\t}\n}\n\nMyDataHelps.showProject = function (projectCode) {\n\tif (window.webkit.messageHandlers.ShowProject) {\n\t\twindow.webkit.messageHandlers.ShowProject.postMessage({ code: projectCode });\n\t}\n};\n\nMyDataHelps.joinProject = function (projectCode) {\n\tif (window.webkit.messageHandlers.JoinProject) {\n\t\twindow.webkit.messageHandlers.JoinProject.postMessage({ code: projectCode });\n\t}\n};\n\nMyDataHelps.getCurrentLanguage = function () {\n\tvar searchParams = new URLSearchParams(window.location.search);\n\tif (searchParams.has(\"lang\")) {\n\t\treturn searchParams.get(\"lang\");\n\t}\n\telse {\n\t\treturn navigator.language;\n\t}\n};\n\nMyDataHelps.showGoogleFitSettings = function () {\n\tif (window.webkit.messageHandlers.ShowGoogleFitSettings) {\n\t\twindow.webkit.messageHandlers.ShowGoogleFitSettings.postMessage({});\n\t}\n};\n\n//Events\n\nMyDataHelps.on = function (eventName, eventHandler) {\n\n\tif (!supportedEvents.includes(eventName)) {\n\t\tthrow new Error(eventName + \" is not a supported event type.\");\n\t}\n\n\tif (!registeredEventHandlers[eventName]) {\n\t\tregisteredEventHandlers[eventName] = [];\n\t}\n\n\tregisteredEventHandlers[eventName].push(eventHandler);\n};\n\nMyDataHelps.off = function (eventName, eventHandler) {\n\n\tif (!supportedEvents.includes(eventName)) {\n\t\tthrow new Error(eventName + \" is not a supported event type.\");\n\t}\n\n\tif (!registeredEventHandlers[eventName]) return;\n\n\tvar eventHandlerIndex = registeredEventHandlers[eventName].indexOf(eventHandler);\n\n\tif (eventHandlerIndex !== -1) {\n\t\tregisteredEventHandlers[eventName].splice(eventHandlerIndex, 1);\n\t}\n}\n\n//Data\n\nvar makeUrl = function (endpoint) {\n\tif (!MyDataHelps.baseUrl) {\n\t\tconsole.error(\"Cannot use makeUrl without MyDataHelps.baseUrl.\");\n\t\tthrow \"Cannot use makeUrl without MyDataHelps.baseUrl.\";\n\t}\n\n\treturn MyDataHelps.baseUrl + apiBasePath + endpoint;\n}\n\nvar makeRequest = function (endpoint, method, body) {\n\tif (!MyDataHelps.token || !MyDataHelps.token.access_token) {\n\t\tthrow \"No access_token available for request authorization.\";\n\t}\n\n\tvar url = makeUrl(endpoint);\n\n\tvar headers = new Headers();\n\theaders.append('Authorization', 'Bearer ' + MyDataHelps.token.access_token);\n\theaders.append('Accept', 'application/json, text/javascript, */*; q=0.01');\n\theaders.append('Accept-Language', MyDataHelps.getCurrentLanguage());\n\tif (!!body) {\n\t\theaders.append('Content-Type', 'application/json');\n\t}\n\n\tvar init = {\n\t\tmethod: method,\n\t\theaders: headers\n\t};\n\tif (!!body) {\n\t\tinit.body = JSON.stringify(body);\n\t}\n\n\treturn fetch(url, init);\n};\n\nvar validateResponse = function (response) {\n\tif (!response.ok) {\n\t\tthrow response.statusText;\n\t}\n\n\treturn response;\n};\n\nvar escapeParam = function (param) {\n\treturn String(param)\n\t\t.replace(\"\\\\\", \"\\\\\\\\\")\n\t\t.replace(\",\", \"\\\\,\");\n};\n\nvar reduceArrayAndEscape = function (param) {\n\tif (Array.isArray(param)) {\n\t\tvar escapedParams = param.map(function (elem) { return escapeParam(elem); });\n\t\treturn escapedParams.join(\",\");\n\t}\n\n\treturn escapeParam(param);\n};\n\nvar convertDateToIsoString = function (date) {\n\tvar paramAsDate = new Date(date);\n\tif (isNaN(paramAsDate.getTime())) {\n\t\tthrow \"Cannot interpret parameter as Date\";\n\t}\n\n\treturn paramAsDate.toISOString();\n};\n\nMyDataHelps.getParticipantInfo = function () {\n\tvar endpoint = 'participant';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getProjectInfo = function () {\n\tvar endpoint = 'project';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.querySurveyAnswers = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"surveyName\")) {\n\t\tqueryParameters.surveyName = reduceArrayAndEscape(queryParameters.surveyName);\n\t}\n\tif (queryParameters.hasOwnProperty(\"stepIdentifier\")) {\n\t\tqueryParameters.stepIdentifier = reduceArrayAndEscape(queryParameters.stepIdentifier);\n\t}\n\tif (queryParameters.hasOwnProperty(\"resultIdentifier\")) {\n\t\tqueryParameters.resultIdentifier = reduceArrayAndEscape(queryParameters.resultIdentifier);\n\t}\n\tif (queryParameters.hasOwnProperty(\"answer\")) {\n\t\tqueryParameters.answer = reduceArrayAndEscape(queryParameters.answer);\n\t}\n\tif (queryParameters.hasOwnProperty(\"before\")) {\n\t\tqueryParameters.before = convertDateToIsoString(queryParameters.before);\n\t}\n\tif (queryParameters.hasOwnProperty(\"after\")) {\n\t\tqueryParameters.after = convertDateToIsoString(queryParameters.after);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'surveyanswers?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.deleteSurveyResult = function (resultID) {\n\tvar endpoint = 'surveyresults/' + encodeURIComponent(resultID);\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'DELETE', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.queryDeviceData = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"type\")) {\n\t\tqueryParameters.type = reduceArrayAndEscape(queryParameters.type);\n\t}\n\tif (queryParameters.hasOwnProperty(\"observedBefore\")) {\n\t\tqueryParameters.observedBefore = convertDateToIsoString(queryParameters.observedBefore);\n\t}\n\tif (queryParameters.hasOwnProperty(\"observedAfter\")) {\n\t\tqueryParameters.observedAfter = convertDateToIsoString(queryParameters.observedAfter);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'devicedata?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.persistDeviceData = function (deviceDataPoints) {\n\tvar endpoint = 'devicedata';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', deviceDataPoints); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.trackCustomEvent = function (event) {\n\tvar endpoint = 'customevents';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', event); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.querySurveyTasks = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"status\")) {\n\t\tqueryParameters.status = reduceArrayAndEscape(queryParameters.status);\n\t}\n\tif (queryParameters.hasOwnProperty(\"surveyName\")) {\n\t\tqueryParameters.surveyName = reduceArrayAndEscape(queryParameters.surveyName);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'surveytasks?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.queryNotifications = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"sentBefore\")) {\n\t\tqueryParameters.sentBefore = convertDateToIsoString(queryParameters.sentBefore);\n\t}\n\tif (queryParameters.hasOwnProperty(\"sentAfter\")) {\n\t\tqueryParameters.sentAfter = convertDateToIsoString(queryParameters.sentAfter);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'notifications?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getExternalAccountProviders = function (search, category, pageSize, pageNumber) {\n\tvar searchParameters = {};\n\tif (!!search) searchParameters.search = search;\n\tif (!!category) searchParameters.category = category;\n\tif (!!pageSize) searchParameters.pageSize = pageSize;\n\tif (!!pageNumber) searchParameters.pageNumber = pageNumber;\n\n\tvar queryString = new URLSearchParams(searchParameters).toString();\n\tvar endpoint = 'externalaccountproviders?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getExternalAccounts = function () {\n\tvar endpoint = 'externalaccounts';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.refreshExternalAccount = function (accountId) {\n\tvar endpoint = 'externalaccounts/refresh/' + accountId;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.invokeCustomApi = function (customApi, method, queryParameters, jsonResponse) {\n\tif (customApi.includes('?')) {\n\t\tthrow new Error(\"Cannot include query parameters directly in the \\\"customApi\\\" string. Provide as an argument for \\\"queryParameters\\\" instead.\");\n\t}\n\n\tvar endpoint = 'custom/' + customApi;\n\tmethod = method.toUpperCase();\n\tif (queryParameters !== null && queryParameters !== undefined && (method === 'GET' || method === 'DELETE')) {\n\t\tvar parameterString = new URLSearchParams(queryParameters).toString();\n\t\tendpoint += \"?\" + parameterString;\n\t\tqueryParameters = null;\n\t}\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, method, queryParameters); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return jsonResponse ? response.json() : undefined; });\n};\n\n//Embedded surveys and tasks\n\nfunction getBaseUrl() {\n\treturn MyDataHelps.baseUrl || 'https://mydatahelps.org/';\n}\n\nMyDataHelps.startEmbeddedSurvey = function (linkIdentifier, surveyName, language) {\n\tif (!language) { language = this.getCurrentLanguage(); }\n\tvar surveyUrl = getBaseUrl() + \"mydatahelps/\" + linkIdentifier + '/surveylink/' + surveyName + \"?lang=\" + language;\n\treturn startEmbeddedSurvey(surveyUrl);\n};\n\nMyDataHelps.startEmbeddedTask = function (linkIdentifier, taskLinkIdentifier, language) {\n\tif (!language) { language = this.getCurrentLanguage(); }\n\tvar surveyUrl = getBaseUrl() + \"mydatahelps/\" + linkIdentifier + '/tasklink/' + taskLinkIdentifier + \"?lang=\" + language;\n\treturn startEmbeddedSurvey(surveyUrl);\n};\n\nfunction startEmbeddedSurvey(surveyUrl) {\n\tvar mdhSurveyModalId = 'mydatahelps-survey-modal';\n\n\treturn new Promise(function (resolve, reject) {\n\t\tif (document.getElementById(mdhSurveyModalId)) {\n\t\t\treject(\"Survey already in progress\");\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener(\"message\", function listener(message) {\n\t\t\tif (message.origin !== new URL(getBaseUrl()).origin) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar frame = document.getElementById('mydatahelps-survey-frame').contentWindow;\n\t\t\tif (message.source !== frame) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (message.data.name == 'SurveyWindowInitialized') {\n\t\t\t\tdocument.getElementById(mdhSurveyModalId).className += \" loaded\";\n\t\t\t} else if (message.data.name == 'SurveyFinished') {\n\t\t\t\tdocument.getElementById(mdhSurveyModalId).remove();\n\t\t\t\tdocument.body.className = document.body.className.replace(\"no-scroll\", \"\");\n\t\t\t\twindow.removeEventListener(\"message\", listener, true);\n\t\t\t\tresolve(message.data);\n\t\t\t}\n\t\t}, true);\n\n\t\tvar surveyModal = document.createElement('div');\n\t\tsurveyModal.className = 'mydatahelps-survey-modal';\n\t\tsurveyModal.id = mdhSurveyModalId;\n\t\tsurveyModal.innerHTML = \"<div class='mydatahelps-survey'><div class='loader'>Loading...</div><iframe id='mydatahelps-survey-frame' allow='camera' sandbox='allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts' src='\" + surveyUrl + \"'></iframe></div>\";\n\t\tdocument.body.append(surveyModal);\n\t\tdocument.body.className += ' no-scroll';\n\t});\n}\n\n//iOS/Android directly invoke window.MyDataHelps and window.RKStudioClient\n//so it's necessary to explicitly ensure they are present on the window\nwindow.MyDataHelps = MyDataHelps;\nwindow.RKStudioClient = RKStudioClient;\n\nexport default MyDataHelps;"],"names":["MyDataHelps","RKStudioClient","currentMessageID","messageHandlers","registeredEventHandlers","acceptableOrigin","origin","allowedApplicationHosts","sourceURL","URL","k","length","hostname","endsWith","ancestorOrigins","supportedActions","applicationHost","document","location","console","error","window","webkit","ResearchKit","GetDelegatedAccessToken","data","parent","postMessage","name","messageID","GetDeviceInfo","StartParticipantSurvey","surveyName","OpenExternalLink","url","OpenEmbeddedLink","OpenExternalApplication","modal","Dismiss","PopNavigation","ShowTab","tabKey","ShowParticipantDashboard","dashboardKey","ShowParticipantWebVisualization","visualizationKey","parameters","ShowParticipantWebVisualizationPDF","landscape","htmlViewerZoom","DeleteProviderAccount","accountID","ConnectExternalAccount","externalAccountProviderID","ShowProject","code","JoinProject","unsupportedActions","supportedEvents","action","windowHasAnyActions","nextMessageID","addEventListener","message","validateWindowMessageOrigin","setActionResult","triggerEvent","event","eventName","type","includes","forEach","handler","refreshTokenPromise","connect","refreshDelegatedAccessToken","token","Promise","resolve","reject","tokenResponse","success","tokenExpires","Date","now","expires_in","baseUrl","setTimeout","setParticipantAccessToken","completeStep","answer","startSurvey","openExternalUrl","openEmbeddedUrl","openApplication","options","dismiss","back","showTab","showDashboard","title","undefined","showWebVisualization","showWebVisualizationPdf","setStatusBarStyle","style","SetStatusBarStyle","requestReview","cooldownDays","RequestReview","getDeviceInfo","deviceInfoResponse","deleteExternalAccount","deleteProviderAccountResponse","connectExternalAccount","showProject","projectCode","joinProject","getCurrentLanguage","searchParams","URLSearchParams","search","has","get","navigator","language","showGoogleFitSettings","ShowGoogleFitSettings","on","eventHandler","Error","push","off","eventHandlerIndex","indexOf","splice","makeRequest","endpoint","method","body","access_token","makeUrl","headers","Headers","append","init","JSON","stringify","fetch","validateResponse","response","ok","statusText","escapeParam","param","String","replace","reduceArrayAndEscape","Array","isArray","map","elem","join","convertDateToIsoString","date","paramAsDate","isNaN","getTime","toISOString","getBaseUrl","startEmbeddedSurvey","surveyUrl","mdhSurveyModalId","getElementById","listener","frame","contentWindow","source","className","remove","removeEventListener","surveyModal","createElement","id","innerHTML","getParticipantInfo","then","json","getProjectInfo","querySurveyAnswers","queryParameters","hasOwnProperty","stepIdentifier","resultIdentifier","before","after","toString","deleteSurveyResult","resultID","encodeURIComponent","queryDeviceData","observedBefore","observedAfter","persistDeviceData","deviceDataPoints","trackCustomEvent","querySurveyTasks","status","queryNotifications","sentBefore","sentAfter","getExternalAccountProviders","category","pageSize","pageNumber","searchParameters","getExternalAccounts","refreshExternalAccount","accountId","invokeCustomApi","customApi","jsonResponse","toUpperCase","parameterString","linkIdentifier","this","startEmbeddedTask","taskLinkIdentifier"],"mappings":"AAAG,IAACA,EAAc,GAEdC,EAAiB,GAGjBC,EAAmB,EACnBC,EAAkB,GAClBC,EAA0B,GAY9B,SAASC,EAAiBC,GACzB,GAAe,MAAXA,EAAgB,OAAO,EAc3B,IAZA,IAAIC,EAA0B,CAC7B,YACA,oBACA,WACA,iBACA,kBACA,2BACA,oBACA,UAGGC,EAAY,IAAIC,IAAIH,GACfI,EAAI,EAAGA,EAAIH,EAAwBI,OAAQD,IACnD,GAAIF,EAAUI,WAAaL,EAAwBG,IAAMF,EAAUI,SAASC,SAAS,IAAMN,EAAwBG,IAClH,OAAO,EAGT,OAAO,EAGR,IA/BKI,EAqCDC,EANAC,GA/BCF,EAAkBG,SAASC,SAASJ,kBACjBA,EAAgB,GAC/BA,EAAgB,GAGjB,IA2BR,IAAKT,EAAiBW,GAErB,MADAG,QAAQC,MAAM,oDACR,mDAKNL,EADGM,OAAOC,QAAUD,OAAOC,OAAOnB,iBAAmBkB,OAAOC,OAAOnB,gBAAgBoB,YAChE,CAClBC,wBAA2B,SAAUC,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,0BAA2BC,UAAWJ,EAAKI,WAAab,IACvIc,cAAiB,SAAUL,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,gBAAiBC,UAAWJ,EAAKI,WAAab,KAIjG,CAClBQ,wBAA2B,SAAUC,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,0BAA2BC,UAAWJ,EAAKI,WAAab,IACvIc,cAAiB,SAAUL,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,gBAAiBC,UAAWJ,EAAKI,WAAab,IACnHe,uBAA0B,SAAUN,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,yBAA0BC,UAAWJ,EAAKI,UAAWG,WAAYP,EAAKO,YAAchB,IAClKiB,iBAAoB,SAAUR,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,kBAAmBM,IAAKT,GAAQT,IACxGmB,iBAAoB,SAAUV,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,kBAAmBM,IAAKT,GAAQT,IACxGoB,wBAA2B,SAAUX,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,kBAAmBC,UAAWJ,EAAKI,UAAWK,IAAKT,EAAKS,IAAKG,MAAOZ,EAAKY,OAASrB,IACjKsB,QAAW,WAAcjB,OAAOK,OAAOC,YAAY,CAAEC,KAAM,WAAaZ,IACxEuB,cAAiB,WAAclB,OAAOK,OAAOC,YAAY,CAAEC,KAAM,QAAUZ,IAC3EwB,QAAW,SAAUf,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,UAAWa,OAAQhB,GAAQT,IAC1F0B,yBAA4B,SAAUjB,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,2BAA4Be,aAAclB,EAAKkB,aAAcN,MAAOZ,EAAKY,OAASrB,IAClK4B,gCAAmC,SAAUnB,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,kCAAmCiB,iBAAkBpB,EAAKoB,iBAAkBC,WAAYrB,EAAKqB,WAAYT,MAAOZ,EAAKY,OAASrB,IACrN+B,mCAAsC,SAAUtB,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,qCAAsCiB,iBAAkBpB,EAAKoB,iBAAkBC,WAAYrB,EAAKqB,WAAYT,MAAOZ,EAAKY,MAAOW,UAAWvB,EAAKuB,UAAWC,eAAgBxB,EAAKwB,gBAAkBjC,IAC3RkC,sBAAyB,SAAUzB,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,wBAAyBC,UAAWJ,EAAKI,UAAWsB,UAAW1B,EAAK0B,WAAanC,IAC9JoC,uBAA0B,SAAU3B,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,yBAA0ByB,0BAA2B5B,EAAK4B,2BAA6BrC,IACrKsC,YAAe,SAAU7B,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,cAAe2B,KAAM9B,EAAK8B,MAAQvC,IACrGwC,YAAe,SAAU/B,GAAQJ,OAAOK,OAAOC,YAAY,CAAEC,KAAM,cAAe2B,KAAM9B,EAAK8B,MAAQvC,KAIvG,IAAIyC,EAAqB,CAAC,YAAa,eAEnCC,EAAkB,CAAC,kBAAmB,8BAA+B,8BAA+B,mBAsBxG,IAAK,IAAIC,KANJtC,OAAOC,QAAWD,OAAOC,OAAOnB,iBAdrC,WACC,IAAK,IAAIwD,KAAU5C,EAClB,GAAIM,OAAOC,OAAOnB,gBAAgBwD,GACjC,OAAO,EAGT,IAAK,IAAIA,KAAUF,EAClB,GAAIpC,OAAOC,OAAOnB,gBAAgBsD,EAAmBE,IACpD,OAAO,EAGT,OAAO,EAGiDC,KACxDvC,OAAOC,OAAS,CACfnB,gBAAiB,KAIAY,EAClBM,OAAOC,OAAOnB,gBAAgBwD,GAAUtC,OAAOC,OAAOnB,gBAAgBwD,IAAW,CAAEhC,YAAaZ,EAAiB4C,IAGlH,IAAIE,EAAgB,WACnB,OAAO3D,KAyBRmB,OAAOyC,iBAAiB,WAdG,SAAUC,GACpC,IATD,SAAqCA,GACpC,MAAwB,MAApB/C,EACIX,EAAiB0D,EAAQzD,QAG1ByD,EAAQzD,SAAWU,EAIrBgD,CAA4BD,GAEhC,MADA5C,QAAQC,MAAM,mBAAqB2C,EAAQzD,OAAS,qBAC9C,mBAAqByD,EAAQzD,OAAS,oBAGzCyD,EAAQtC,KAAKI,UAChB7B,EAAYiE,gBAAgBF,EAAQtC,MAGpCzB,EAAYkE,aAAaH,EAAQtC,SAIsB,GAEzDzB,EAAYiE,gBAAkB,SAAUxC,GACvCtB,EAAgBsB,EAAKI,WAAWJ,IAGjCxB,EAAegE,gBAAkB,SAAUxC,GAC1CzB,EAAYiE,gBAAgBxC,IAG7BzB,EAAYkE,aAAe,SAAUC,GACpC,IAAIC,EAAYD,EAAME,KAClBX,EAAgBY,SAASF,IAAchE,EAAwBgE,IAClEhE,EAAwBgE,GAAWG,SAAQ,SAAUC,GACpDA,EAAQL,OAOX,IAAIM,EAAsB,KAC1BzE,EAAY0E,QAAU,WACrB,IAAIC,EAA8B,WACjC3E,EAAY4E,MAAQ,KAEpBH,EAAsB,IAAII,SAAQ,SAAUC,EAASC,GACpD,IAAIlD,EAAYgC,IAChB1D,EAAgB0B,GAAa,SAAUmD,GAClCA,EAAcC,SACjBjF,EAAYkF,aAAeC,KAAKC,MAAyC,IAAhCJ,EAAcvD,KAAK4D,WAC5DrF,EAAY4E,MAAQI,EAAcvD,KAClCzB,EAAYsF,QAAUN,EAAcM,QACpCjE,OAAOkE,WAAWZ,EAAkG,KAAnEK,EAAcvD,KAAK4D,WA/JnC,MAgKjCP,MAEA9E,EAAY4E,MAAQ,KACpBG,EAAOC,EAAcjB,UAEtB5D,EAAgB0B,GAAa,KAC7B4C,EAAsB,MAGvBpD,OAAOC,OAAOnB,gBAAgBqB,wBAAwBG,YAAY,CAAEE,UAAWA,QAIjF,OAAI7B,EAAY4E,OAASO,KAAKC,MAAQpF,EAAYkF,aAC1CL,QAAQC,WAGXL,GACJE,IAIMF,IAIRzE,EAAYwF,0BAA4B,SAAUZ,EAAOU,GACxDtF,EAAY4E,MAAQA,EAChBU,IACHtF,EAAYsF,QAAUA,GAEvBtF,EAAYkF,aAAeC,KAAKC,MAA4B,IAAnBR,EAAMS,WAC/ChE,OAAOkE,YAAW,WACjBvF,EAAYkE,aAAa,CAAEG,KAAM,sBACyB,KAAtDO,EAAMS,WAlM0B,OAuMtCrF,EAAYyF,aAAe,SAAUC,GAChCA,MAAAA,IAAyCA,EAAS,IAElDrE,OAAOC,OAAOnB,gBAAgBoB,aACjCF,OAAOC,OAAOnB,gBAAgBoB,YAAYI,YAAY+D,IAIxD1F,EAAY2F,YAAc,SAAU3D,GACnC,IAAIH,EAAYgC,IAChBxC,OAAOC,OAAOnB,gBAAgB4B,uBAAuBJ,YAAY,CAAEE,UAAWA,EAAWG,WAAYA,KAGtGhC,EAAY4F,gBAAkB,SAAU1D,GACvCb,OAAOC,OAAOnB,gBAAgB8B,iBAAiBN,YAAYO,IAG5DlC,EAAY6F,gBAAkB,SAAU3D,GACvCb,OAAOC,OAAOnB,gBAAgBgC,iBAAiBR,YAAYO,IAG5DlC,EAAY8F,gBAAkB,SAAU5D,EAAK6D,GAC5C,IAAIlE,EAAYgC,IAChBxC,OAAOC,OAAOnB,gBAAgBiC,wBAAwBT,YAAY,CAAEE,UAAWA,EAAWK,IAAKA,EAAKG,SAAO0D,IAAWA,EAAQ1D,UAG/HrC,EAAYgG,QAAU,WACrB3E,OAAOC,OAAOnB,gBAAgBmC,QAAQX,YAAY,KAGnD3B,EAAYiG,KAAO,WAClB5E,OAAOC,OAAOnB,gBAAgBoC,cAAcZ,YAAY,KAGzD3B,EAAYkG,QAAU,SAAUzD,GAC/BpB,OAAOC,OAAOnB,gBAAgBqC,QAAQb,YAAYc,IAGnDzC,EAAYmG,cAAgB,SAAUxD,EAAcoD,GACnD1E,OAAOC,OAAOnB,gBAAgBuC,yBAAyBf,YAAY,CAClEgB,aAAcA,EACdN,SAAO0D,IAAWA,EAAQ1D,OAC1B+D,MAAOL,GAAWA,EAAQK,MAAQL,EAAQK,WAAQC,KAIpDrG,EAAYsG,qBAAuB,SAAUzD,EAAkBC,EAAYiD,GAC1E1E,OAAOC,OAAOnB,gBAAgByC,gCAAgCjB,YAAY,CACzEkB,iBAAkBA,EAClBC,WAAYA,EACZT,SAAO0D,IAAWA,EAAQ1D,OAC1B+D,MAAOL,GAAWA,EAAQK,MAAQL,EAAQK,WAAQC,KAIpDrG,EAAYuG,wBAA0B,SAAU1D,EAAkBC,EAAYiD,GAC7E1E,OAAOC,OAAOnB,gBAAgB4C,mCAAmCpB,YAAY,CAC5EkB,iBAAkBA,EAClBC,WAAYA,EACZE,aAAW+C,IAAWA,EAAQ/C,WAC9BC,eAAgB8C,GAAWA,EAAQ9C,kBAIrCjD,EAAYwG,kBAAoB,SAAUC,GACrCpF,OAAOC,OAAOnB,gBAAgBuG,mBACjCrF,OAAOC,OAAOnB,gBAAgBuG,kBAAkB/E,YAAY,CAAE8E,MAAOA,KAIvEzG,EAAY2G,cAAgB,SAAUC,GACjCvF,OAAOC,OAAOnB,gBAAgB0G,eACjCxF,OAAOC,OAAOnB,gBAAgB0G,cAAclF,YAAY,CAAEiF,aAAcA,KAI1E5G,EAAY8G,cAAgB,WAC3B,OAAO,IAAIjC,SAAQ,SAAUC,EAASC,GACrC,IAAIlD,EAAYgC,IAChB1D,EAAgB0B,GAAa,SAAUkF,GACtCjC,EAAQiC,EAAmBtF,OAGxBJ,OAAOC,OAAOnB,gBAAgB2B,cACjCT,OAAOC,OAAOnB,gBAAgB2B,cAAcH,YAAY,CAAEE,UAAWA,IAErEkD,QAKH/E,EAAYgH,sBAAwB,SAAU7D,GAC7C,OAAO,IAAI0B,SAAQ,SAAUC,EAASC,GACrC,IAAIlD,EAAYgC,IAChB1D,EAAgB0B,GAAa,SAAUoF,GACjCA,EAA8BhC,QAGlCH,EAAQmC,GAFRlC,EAAOkC,IAML5F,OAAOC,OAAOnB,gBAAgB+C,sBACjC7B,OAAOC,OAAOnB,gBAAgB+C,sBAAsBvB,YAAY,CAAEE,UAAWA,EAAWsB,UAAWA,IAEnG4B,QAKH/E,EAAYkH,uBAAyB,SAAU7D,GAC1ChC,OAAOC,OAAOnB,gBAAgBiD,wBACjC/B,OAAOC,OAAOnB,gBAAgBiD,uBAAuBzB,YAAY,CAAE0B,0BAA2BA,KAIhGrD,EAAYmH,YAAc,SAAUC,GAC/B/F,OAAOC,OAAOnB,gBAAgBmD,aACjCjC,OAAOC,OAAOnB,gBAAgBmD,YAAY3B,YAAY,CAAE4B,KAAM6D,KAIhEpH,EAAYqH,YAAc,SAAUD,GAC/B/F,OAAOC,OAAOnB,gBAAgBqD,aACjCnC,OAAOC,OAAOnB,gBAAgBqD,YAAY7B,YAAY,CAAE4B,KAAM6D,KAIhEpH,EAAYsH,mBAAqB,WAChC,IAAIC,EAAe,IAAIC,gBAAgBnG,OAAOH,SAASuG,QACvD,OAAIF,EAAaG,IAAI,QACbH,EAAaI,IAAI,QAGjBC,UAAUC,UAInB7H,EAAY8H,sBAAwB,WAC/BzG,OAAOC,OAAOnB,gBAAgB4H,uBACjC1G,OAAOC,OAAOnB,gBAAgB4H,sBAAsBpG,YAAY,KAMlE3B,EAAYgI,GAAK,SAAU5D,EAAW6D,GAErC,IAAKvE,EAAgBY,SAASF,GAC7B,MAAM,IAAI8D,MAAM9D,EAAY,mCAGxBhE,EAAwBgE,KAC5BhE,EAAwBgE,GAAa,IAGtChE,EAAwBgE,GAAW+D,KAAKF,IAGzCjI,EAAYoI,IAAM,SAAUhE,EAAW6D,GAEtC,IAAKvE,EAAgBY,SAASF,GAC7B,MAAM,IAAI8D,MAAM9D,EAAY,mCAG7B,GAAKhE,EAAwBgE,GAA7B,CAEA,IAAIiE,EAAoBjI,EAAwBgE,GAAWkE,QAAQL,IAExC,IAAvBI,GACHjI,EAAwBgE,GAAWmE,OAAOF,EAAmB,KAM/D,IASIG,EAAc,SAAUC,EAAUC,EAAQC,GAC7C,IAAK3I,EAAY4E,QAAU5E,EAAY4E,MAAMgE,aAC5C,KAAM,uDAGP,IAAI1G,EAdS,SAAUuG,GACvB,IAAKzI,EAAYsF,QAEhB,MADAnE,QAAQC,MAAM,mDACR,kDAGP,OAAOpB,EAAYsF,QAzXF,oBAyX0BmD,EAQjCI,CAAQJ,GAEdK,EAAU,IAAIC,QAClBD,EAAQE,OAAO,gBAAiB,UAAYhJ,EAAY4E,MAAMgE,cAC9DE,EAAQE,OAAO,SAAU,kDACzBF,EAAQE,OAAO,kBAAmBhJ,EAAYsH,sBACxCqB,GACLG,EAAQE,OAAO,eAAgB,oBAGhC,IAAIC,EAAO,CACVP,OAAQA,EACRI,QAASA,GAMV,OAJMH,IACLM,EAAKN,KAAOO,KAAKC,UAAUR,IAGrBS,MAAMlH,EAAK+G,IAGfI,EAAmB,SAAUC,GAChC,IAAKA,EAASC,GACb,MAAMD,EAASE,WAGhB,OAAOF,GAGJG,EAAc,SAAUC,GAC3B,OAAOC,OAAOD,GACZE,QAAQ,KAAM,QACdA,QAAQ,IAAK,QAGZC,EAAuB,SAAUH,GACpC,OAAII,MAAMC,QAAQL,GACGA,EAAMM,KAAI,SAAUC,GAAQ,OAAOR,EAAYQ,MAC9CC,KAAK,KAGpBT,EAAYC,IAGhBS,EAAyB,SAAUC,GACtC,IAAIC,EAAc,IAAIlF,KAAKiF,GAC3B,GAAIE,MAAMD,EAAYE,WACrB,KAAM,qCAGP,OAAOF,EAAYG,eAuMpB,SAASC,IACR,OAAOzK,EAAYsF,SAAW,2BAe/B,SAASoF,EAAoBC,GAC5B,IAAIC,EAAmB,2BAEvB,OAAO,IAAI/F,SAAQ,SAAUC,EAASC,GACrC,GAAI9D,SAAS4J,eAAeD,GAC3B7F,EAAO,kCADR,CAKA1D,OAAOyC,iBAAiB,WAAW,SAASgH,EAAS/G,GACpD,GAAIA,EAAQzD,SAAW,IAAIG,IAAIgK,KAAcnK,OAA7C,CAGA,IAAIyK,EAAQ9J,SAAS4J,eAAe,4BAA4BG,cAC5DjH,EAAQkH,SAAWF,IAGE,2BAArBhH,EAAQtC,KAAKG,KAChBX,SAAS4J,eAAeD,GAAkBM,WAAa,UACxB,kBAArBnH,EAAQtC,KAAKG,OACvBX,SAAS4J,eAAeD,GAAkBO,SAC1ClK,SAAS0H,KAAKuC,UAAYjK,SAAS0H,KAAKuC,UAAUtB,QAAQ,YAAa,IACvEvI,OAAO+J,oBAAoB,UAAWN,GAAU,GAChDhG,EAAQf,EAAQtC,YAEf,GAEH,IAAI4J,EAAcpK,SAASqK,cAAc,OACzCD,EAAYH,UAAY,2BACxBG,EAAYE,GAAKX,EACjBS,EAAYG,UAAY,mQAAqQb,EAAY,oBACzS1J,SAAS0H,KAAKK,OAAOqC,GACrBpK,SAAS0H,KAAKuC,WAAa,iBApP7BlL,EAAYyL,mBAAqB,WAGhC,OAAOzL,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAJb,cAImC,MAAO,SACvDkD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAY4L,eAAiB,WAG5B,OAAO5L,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAJb,UAImC,MAAO,SACvDkD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAY6L,mBAAqB,SAAUC,GACtCA,EAAgBC,eAAe,gBAClCD,EAAgB9J,WAAa6H,EAAqBiC,EAAgB9J,aAE/D8J,EAAgBC,eAAe,oBAClCD,EAAgBE,eAAiBnC,EAAqBiC,EAAgBE,iBAEnEF,EAAgBC,eAAe,sBAClCD,EAAgBG,iBAAmBpC,EAAqBiC,EAAgBG,mBAErEH,EAAgBC,eAAe,YAClCD,EAAgBpG,OAASmE,EAAqBiC,EAAgBpG,SAE3DoG,EAAgBC,eAAe,YAClCD,EAAgBI,OAAS/B,EAAuB2B,EAAgBI,SAE7DJ,EAAgBC,eAAe,WAClCD,EAAgBK,MAAQhC,EAAuB2B,EAAgBK,QAGhE,IACI1D,EAAW,iBADG,IAAIjB,gBAAgBsE,GAAiBM,WAGvD,OAAOpM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,MAAO,SACvDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAYqM,mBAAqB,SAAUC,GAC1C,IAAI7D,EAAW,iBAAmB8D,mBAAmBD,GAErD,OAAOtM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,SAAU,SAC1DiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,QAGlBtJ,EAAYwM,gBAAkB,SAAUV,GACnCA,EAAgBC,eAAe,UAClCD,EAAgBzH,KAAOwF,EAAqBiC,EAAgBzH,OAEzDyH,EAAgBC,eAAe,oBAClCD,EAAgBW,eAAiBtC,EAAuB2B,EAAgBW,iBAErEX,EAAgBC,eAAe,mBAClCD,EAAgBY,cAAgBvC,EAAuB2B,EAAgBY,gBAGxE,IACIjE,EAAW,cADG,IAAIjB,gBAAgBsE,GAAiBM,WAGvD,OAAOpM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,MAAO,SACvDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAY2M,kBAAoB,SAAUC,GAGzC,OAAO5M,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAJb,aAImC,OAAQoE,MACxDlB,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,QAGlBtJ,EAAY6M,iBAAmB,SAAU1I,GAGxC,OAAOnE,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAJb,eAImC,OAAQrE,MACxDuH,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,QAGlBtJ,EAAY8M,iBAAmB,SAAUhB,GACpCA,EAAgBC,eAAe,YAClCD,EAAgBiB,OAASlD,EAAqBiC,EAAgBiB,SAE3DjB,EAAgBC,eAAe,gBAClCD,EAAgB9J,WAAa6H,EAAqBiC,EAAgB9J,aAGnE,IACIyG,EAAW,eADG,IAAIjB,gBAAgBsE,GAAiBM,WAGvD,OAAOpM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,MAAO,SACvDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAYgN,mBAAqB,SAAUlB,GACtCA,EAAgBC,eAAe,gBAClCD,EAAgBmB,WAAa9C,EAAuB2B,EAAgBmB,aAEjEnB,EAAgBC,eAAe,eAClCD,EAAgBoB,UAAY/C,EAAuB2B,EAAgBoB,YAGpE,IACIzE,EAAW,iBADG,IAAIjB,gBAAgBsE,GAAiBM,WAGvD,OAAOpM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,MAAO,SACvDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAYmN,4BAA8B,SAAU1F,EAAQ2F,EAAUC,EAAUC,GAC/E,IAAIC,EAAmB,GACjB9F,IAAQ8F,EAAiB9F,OAASA,GAClC2F,IAAUG,EAAiBH,SAAWA,GACtCC,IAAUE,EAAiBF,SAAWA,GACtCC,IAAYC,EAAiBD,WAAaA,GAEhD,IACI7E,EAAW,4BADG,IAAIjB,gBAAgB+F,GAAkBnB,WAGxD,OAAOpM,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,MAAO,SACvDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAYwN,oBAAsB,WAGjC,OAAOxN,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAJb,mBAImC,MAAO,SACvDkD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOA,EAASqC,WAG9C3L,EAAYyN,uBAAyB,SAAUC,GAC9C,IAAIjF,EAAW,4BAA8BiF,EAE7C,OAAO1N,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAU,OAAQ,SACxDiD,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,QAGlBtJ,EAAY2N,gBAAkB,SAAUC,EAAWlF,EAAQoD,EAAiB+B,GAC3E,GAAID,EAAUtJ,SAAS,KACtB,MAAM,IAAI4D,MAAM,6HAGjB,IAAIO,EAAW,UAAYmF,EAE3B,GADAlF,EAASA,EAAOoF,cACZhC,MAAAA,IAAyE,QAAXpD,GAA+B,WAAXA,GAAsB,CAC3G,IAAIqF,EAAkB,IAAIvG,gBAAgBsE,GAAiBM,WAC3D3D,GAAY,IAAMsF,EAClBjC,EAAkB,KAGnB,OAAO9L,EACL0E,UACAgH,MAAK,WAAc,OAAOlD,EAAYC,EAAUC,EAAQoD,MACxDJ,MAAK,SAAUpC,GAAY,OAAOD,EAAiBC,MACnDoC,MAAK,SAAUpC,GAAY,OAAOuE,EAAevE,EAASqC,YAAStF,MAStErG,EAAY0K,oBAAsB,SAAUsD,EAAgBhM,EAAY6F,GAGvE,OAFKA,IAAYA,EAAWoG,KAAK3G,sBAE1BoD,EADSD,IAAe,eAAiBuD,EAAiB,eAAiBhM,EAAa,SAAW6F,IAI3G7H,EAAYkO,kBAAoB,SAAUF,EAAgBG,EAAoBtG,GAG7E,OAFKA,IAAYA,EAAWoG,KAAK3G,sBAE1BoD,EADSD,IAAe,eAAiBuD,EAAiB,aAAeG,EAAqB,SAAWtG,IA0CjHxG,OAAOrB,YAAcA,EACrBqB,OAAOpB,eAAiBA"}
1
+ {"version":3,"file":"MyDataHelps.min.js","sources":["../../MyDataHelps.js"],"sourcesContent":["var MyDataHelps = {};\n// For backwards compatibility\nvar RKStudioClient = {};\n\nvar accessTokenRenewalBufferSeconds = 120;\nvar currentMessageID = 1;\nvar messageHandlers = [];\nvar registeredEventHandlers = {};\nvar apiBasePath = 'api/v1/delegated/';\n\nfunction getParentOrigin() {\n\tvar ancestorOrigins = document.location.ancestorOrigins;\n\tif (ancestorOrigins && ancestorOrigins[0]) {\n\t\treturn ancestorOrigins[0];\n\t}\n\n\treturn '*';\n}\n\nfunction acceptableOrigin(origin) {\n\tif (origin === '*') return true;\n\n\tvar allowedApplicationHosts = [\n\t\t'localhost',\n\t\t'careevolution.com',\n\t\t'internal',\n\t\t'b3-deploys.com',\n\t\t'mydatahelps.org',\n\t\t'platform.joinallofus.org',\n\t\t'careevolution.dev',\n\t\t'ce.dev'\n\t];\n\n\tvar sourceURL = new URL(origin);\n\tfor (var k = 0; k < allowedApplicationHosts.length; k++) {\n\t\tif (sourceURL.hostname === allowedApplicationHosts[k] || sourceURL.hostname.endsWith(\".\" + allowedApplicationHosts[k])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nvar applicationHost = getParentOrigin();\nif (!acceptableOrigin(applicationHost)) {\n\tconsole.error(\"Application is not hosted at an approved origin.\");\n\tthrow \"Application is not hosted at an approved origin.\";\n}\n\nvar supportedActions;\nif (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.ResearchKit) {\n\tsupportedActions = {\n\t\t\"GetDelegatedAccessToken\": function (data) { window.parent.postMessage({ name: 'GetDelegatedAccessToken', messageID: data.messageID }, applicationHost) },\n\t\t\"GetDeviceInfo\": function (data) { window.parent.postMessage({ name: 'GetDeviceInfo', messageID: data.messageID }, applicationHost) }\n\t};\n}\nelse {\n\tsupportedActions = {\n\t\t\"GetDelegatedAccessToken\": function (data) { window.parent.postMessage({ name: 'GetDelegatedAccessToken', messageID: data.messageID }, applicationHost) },\n\t\t\"GetDeviceInfo\": function (data) { window.parent.postMessage({ name: 'GetDeviceInfo', messageID: data.messageID }, applicationHost) },\n\t\t\"StartParticipantSurvey\": function (data) { window.parent.postMessage({ name: 'StartParticipantSurvey', messageID: data.messageID, surveyName: data.surveyName }, applicationHost) },\n\t\t\"OpenExternalLink\": function (data) { window.parent.postMessage({ name: 'OpenExternalUrl', url: data }, applicationHost) },\n\t\t\"OpenEmbeddedLink\": function (data) { window.parent.postMessage({ name: 'OpenEmbeddedUrl', url: data }, applicationHost) },\n\t\t\"OpenExternalApplication\": function (data) { window.parent.postMessage({ name: 'OpenApplication', messageID: data.messageID, url: data.url, modal: data.modal }, applicationHost) },\n\t\t\"Dismiss\": function () { window.parent.postMessage({ name: 'Dismiss' }, applicationHost) },\n\t\t\"PopNavigation\": function () { window.parent.postMessage({ name: 'Back' }, applicationHost) },\n\t\t\"ShowTab\": function (data) { window.parent.postMessage({ name: 'ShowTab', tabKey: data }, applicationHost) },\n\t\t\"ShowParticipantDashboard\": function (data) { window.parent.postMessage({ name: 'ShowParticipantDashboard', dashboardKey: data.dashboardKey, modal: data.modal }, applicationHost) },\n\t\t\"ShowParticipantWebVisualization\": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualization', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal }, applicationHost) },\n\t\t\"ShowParticipantWebVisualizationPDF\": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualizationPDF', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal, landscape: data.landscape, htmlViewerZoom: data.htmlViewerZoom }, applicationHost) },\n\t\t\"DeleteProviderAccount\": function (data) { window.parent.postMessage({ name: 'DeleteProviderAccount', messageID: data.messageID, accountID: data.accountID }, applicationHost) },\n\t\t\"ConnectExternalAccount\": function (data) { window.parent.postMessage({ name: 'ConnectExternalAccount', externalAccountProviderID: data.externalAccountProviderID }, applicationHost) },\n\t\t\"ShowProject\": function (data) { window.parent.postMessage({ name: 'ShowProject', code: data.code }, applicationHost) },\n\t\t\"JoinProject\": function (data) { window.parent.postMessage({ name: 'JoinProject', code: data.code }, applicationHost) }\n\t};\n}\n\nvar unsupportedActions = [\"SetHeight\", \"ResearchKit\"];\n\nvar supportedEvents = [\"surveyDidFinish\", \"applicationDidBecomeVisible\", \"externalAccountSyncComplete\", \"tokenWillExpire\"];\n\nfunction windowHasAnyActions() {\n\tfor (var action in supportedActions) {\n\t\tif (window.webkit.messageHandlers[action]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\tfor (var action in unsupportedActions) {\n\t\tif (window.webkit.messageHandlers[unsupportedActions[action]]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nif (!window.webkit || !window.webkit.messageHandlers || !windowHasAnyActions()) {\n\twindow.webkit = {\n\t\tmessageHandlers: {}\n\t};\n}\n\nfor (var action in supportedActions) {\n\twindow.webkit.messageHandlers[action] = window.webkit.messageHandlers[action] || { postMessage: supportedActions[action] };\n}\n\nvar nextMessageID = function () {\n\treturn currentMessageID++;\n};\n\nfunction validateWindowMessageOrigin(message) {\n\tif (applicationHost === \"*\") {\n\t\treturn acceptableOrigin(message.origin);\n\t}\n\n\treturn message.origin === applicationHost;\n}\n\nvar receiveWindowMessage = function (message) {\n\tif (!validateWindowMessageOrigin(message)) {\n\t\tconsole.error(\"message.origin '\" + message.origin + \"' is not allowed.\");\n\t\tthrow \"message.origin '\" + message.origin + \"' is not allowed.\";\n\t}\n\n\tif (message.data.messageID) {\n\t\tMyDataHelps.setActionResult(message.data);\n\t}\n\telse {\n\t\tMyDataHelps.triggerEvent(message.data);\n\t}\n};\n\nwindow.addEventListener(\"message\", receiveWindowMessage, false);\n\nMyDataHelps.setActionResult = function (data) {\n\tmessageHandlers[data.messageID](data);\n};\n\nRKStudioClient.setActionResult = function (data) {\n\tMyDataHelps.setActionResult(data);\n};\n\nMyDataHelps.triggerEvent = function (event) {\n\tvar eventName = event.type;\n\tif (supportedEvents.includes(eventName) && registeredEventHandlers[eventName]) {\n\t\tregisteredEventHandlers[eventName].forEach(function (handler) {\n\t\t\thandler(event);\n\t\t});\n\t}\n}\n\n//Authorization\n\nvar refreshTokenPromise = null;\nMyDataHelps.connect = function () {\n\tvar refreshDelegatedAccessToken = function () {\n\t\tMyDataHelps.token = null;\n\n\t\trefreshTokenPromise = new Promise(function (resolve, reject) {\n\t\t\tvar messageID = nextMessageID();\n\t\t\tmessageHandlers[messageID] = function (tokenResponse) {\n\t\t\t\tif (tokenResponse.success) {\n\t\t\t\t\tMyDataHelps.tokenExpires = Date.now() + (tokenResponse.data.expires_in * 1000);\n\t\t\t\t\tMyDataHelps.token = tokenResponse.data;\n\t\t\t\t\tMyDataHelps.baseUrl = tokenResponse.baseUrl;\n\t\t\t\t\twindow.setTimeout(refreshDelegatedAccessToken, ((tokenResponse.data.expires_in - accessTokenRenewalBufferSeconds) * 1000));\n\t\t\t\t\tresolve();\n\t\t\t\t} else {\n\t\t\t\t\tMyDataHelps.token = null;\n\t\t\t\t\treject(tokenResponse.message);\n\t\t\t\t}\n\t\t\t\tmessageHandlers[messageID] = null;\n\t\t\t\trefreshTokenPromise = null;\n\t\t\t};\n\n\t\t\twindow.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({ messageID: messageID });\n\t\t});\n\t};\n\n\tif (MyDataHelps.token && Date.now() < MyDataHelps.tokenExpires) {\n\t\treturn Promise.resolve();\n\t}\n\n\tif (!refreshTokenPromise) {\n\t\trefreshDelegatedAccessToken();\n\t}\n\n\t// Re-use promise if refresh already in progress\n\treturn refreshTokenPromise;\n};\n\n//Initializing access token manually\nMyDataHelps.setParticipantAccessToken = function (token, baseUrl) {\n\tMyDataHelps.token = token;\n\tif (baseUrl) {\n\t\tMyDataHelps.baseUrl = baseUrl;\n\t}\n\tMyDataHelps.tokenExpires = Date.now() + (token.expires_in * 1000);\n\twindow.setTimeout(function () {\n\t\tMyDataHelps.triggerEvent({ type: \"tokenWillExpire\" });\n\t}, ((token.expires_in - accessTokenRenewalBufferSeconds) * 1000));\n};\n\n//Actions\n\nMyDataHelps.completeStep = function (answer) {\n\tif (answer === undefined || answer === null) answer = '';\n\n\tif (window.webkit.messageHandlers.ResearchKit) {\n\t\twindow.webkit.messageHandlers.ResearchKit.postMessage(answer);\n\t}\n}\n\nMyDataHelps.startSurvey = function (surveyName) {\n\tvar messageID = nextMessageID();\n\twindow.webkit.messageHandlers.StartParticipantSurvey.postMessage({ messageID: messageID, surveyName: surveyName });\n};\n\nMyDataHelps.openExternalUrl = function (url) {\n\twindow.webkit.messageHandlers.OpenExternalLink.postMessage(url);\n};\n\nMyDataHelps.openEmbeddedUrl = function (url) {\n\twindow.webkit.messageHandlers.OpenEmbeddedLink.postMessage(url);\n};\n\nMyDataHelps.openApplication = function (url, options) {\n\tvar messageID = nextMessageID();\n\twindow.webkit.messageHandlers.OpenExternalApplication.postMessage({ messageID: messageID, url: url, modal: options && options.modal ? true : false });\n};\n\nMyDataHelps.dismiss = function () {\n\twindow.webkit.messageHandlers.Dismiss.postMessage({});\n};\n\nMyDataHelps.back = function () {\n\twindow.webkit.messageHandlers.PopNavigation.postMessage({});\n};\n\nMyDataHelps.showTab = function (tabKey) {\n\twindow.webkit.messageHandlers.ShowTab.postMessage(tabKey);\n};\n\nMyDataHelps.showDashboard = function (dashboardKey, options) {\n\twindow.webkit.messageHandlers.ShowParticipantDashboard.postMessage({\n\t\tdashboardKey: dashboardKey,\n\t\tmodal: options && options.modal ? true : false,\n\t\ttitle: options && options.title ? options.title : undefined\n\t});\n};\n\nMyDataHelps.showWebVisualization = function (visualizationKey, parameters, options) {\n\twindow.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({\n\t\tvisualizationKey: visualizationKey,\n\t\tparameters: parameters,\n\t\tmodal: options && options.modal ? true : false,\n\t\ttitle: options && options.title ? options.title : undefined\n\t});\n};\n\nMyDataHelps.showWebVisualizationPdf = function (visualizationKey, parameters, options) {\n\twindow.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({\n\t\tvisualizationKey: visualizationKey,\n\t\tparameters: parameters,\n\t\tlandscape: options && options.landscape ? true : false,\n\t\thtmlViewerZoom: options && options.htmlViewerZoom\n\t});\n};\n\nMyDataHelps.setStatusBarStyle = function (style) {\n\tif (window.webkit.messageHandlers.SetStatusBarStyle) {\n\t\twindow.webkit.messageHandlers.SetStatusBarStyle.postMessage({ style: style });\n\t}\n};\n\nMyDataHelps.requestReview = function (cooldownDays) {\n\tif (window.webkit.messageHandlers.RequestReview) {\n\t\twindow.webkit.messageHandlers.RequestReview.postMessage({ cooldownDays: cooldownDays });\n\t}\n};\n\nMyDataHelps.getDeviceInfo = function () {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar messageID = nextMessageID();\n\t\tmessageHandlers[messageID] = function (deviceInfoResponse) {\n\t\t\tresolve(deviceInfoResponse.data);\n\t\t};\n\n\t\tif (window.webkit.messageHandlers.GetDeviceInfo) {\n\t\t\twindow.webkit.messageHandlers.GetDeviceInfo.postMessage({ messageID: messageID });\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n};\n\nMyDataHelps.deleteExternalAccount = function (accountID) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar messageID = nextMessageID();\n\t\tmessageHandlers[messageID] = function (deleteProviderAccountResponse) {\n\t\t\tif (!deleteProviderAccountResponse.success) {\n\t\t\t\treject(deleteProviderAccountResponse)\n\t\t\t} else {\n\t\t\t\tresolve(deleteProviderAccountResponse);\n\t\t\t}\n\t\t};\n\n\t\tif (window.webkit.messageHandlers.DeleteProviderAccount) {\n\t\t\twindow.webkit.messageHandlers.DeleteProviderAccount.postMessage({ messageID: messageID, accountID: accountID });\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n}\n\nMyDataHelps.connectExternalAccount = function (externalAccountProviderID) {\n\tif (window.webkit.messageHandlers.ConnectExternalAccount) {\n\t\twindow.webkit.messageHandlers.ConnectExternalAccount.postMessage({ externalAccountProviderID: externalAccountProviderID });\n\t}\n}\n\nMyDataHelps.showProject = function (projectCode) {\n\tif (window.webkit.messageHandlers.ShowProject) {\n\t\twindow.webkit.messageHandlers.ShowProject.postMessage({ code: projectCode });\n\t}\n};\n\nMyDataHelps.joinProject = function (projectCode) {\n\tif (window.webkit.messageHandlers.JoinProject) {\n\t\twindow.webkit.messageHandlers.JoinProject.postMessage({ code: projectCode });\n\t}\n};\n\nMyDataHelps.getCurrentLanguage = function () {\n\tvar searchParams = new URLSearchParams(window.location.search);\n\tif (searchParams.has(\"lang\")) {\n\t\treturn searchParams.get(\"lang\");\n\t}\n\telse {\n\t\treturn navigator.language;\n\t}\n};\n\nMyDataHelps.showGoogleFitSettings = function () {\n\tif (window.webkit.messageHandlers.ShowGoogleFitSettings) {\n\t\twindow.webkit.messageHandlers.ShowGoogleFitSettings.postMessage({});\n\t}\n};\n\n//Events\n\nMyDataHelps.on = function (eventName, eventHandler) {\n\n\tif (!supportedEvents.includes(eventName)) {\n\t\tthrow new Error(eventName + \" is not a supported event type.\");\n\t}\n\n\tif (!registeredEventHandlers[eventName]) {\n\t\tregisteredEventHandlers[eventName] = [];\n\t}\n\n\tregisteredEventHandlers[eventName].push(eventHandler);\n};\n\nMyDataHelps.off = function (eventName, eventHandler) {\n\n\tif (!supportedEvents.includes(eventName)) {\n\t\tthrow new Error(eventName + \" is not a supported event type.\");\n\t}\n\n\tif (!registeredEventHandlers[eventName]) return;\n\n\tvar eventHandlerIndex = registeredEventHandlers[eventName].indexOf(eventHandler);\n\n\tif (eventHandlerIndex !== -1) {\n\t\tregisteredEventHandlers[eventName].splice(eventHandlerIndex, 1);\n\t}\n}\n\n//Data\n\nvar makeUrl = function (endpoint) {\n\tif (!MyDataHelps.baseUrl) {\n\t\tconsole.error(\"Cannot use makeUrl without MyDataHelps.baseUrl.\");\n\t\tthrow \"Cannot use makeUrl without MyDataHelps.baseUrl.\";\n\t}\n\n\treturn MyDataHelps.baseUrl + apiBasePath + endpoint;\n}\n\nvar makeRequest = function (endpoint, method, body) {\n\tif (!MyDataHelps.token || !MyDataHelps.token.access_token) {\n\t\tthrow \"No access_token available for request authorization.\";\n\t}\n\n\tvar url = makeUrl(endpoint);\n\n\tvar headers = new Headers();\n\theaders.append('Authorization', 'Bearer ' + MyDataHelps.token.access_token);\n\theaders.append('Accept', 'application/json, text/javascript, */*; q=0.01');\n\theaders.append('Accept-Language', MyDataHelps.getCurrentLanguage());\n\tif (!!body) {\n\t\theaders.append('Content-Type', 'application/json');\n\t}\n\n\tvar init = {\n\t\tmethod: method,\n\t\theaders: headers\n\t};\n\tif (!!body) {\n\t\tinit.body = JSON.stringify(body);\n\t}\n\n\treturn fetch(url, init);\n};\n\nvar validateResponse = function (response) {\n\tif (!response.ok) {\n\t\tthrow response.statusText;\n\t}\n\n\treturn response;\n};\n\nvar escapeParam = function (param) {\n\treturn String(param)\n\t\t.replace(\"\\\\\", \"\\\\\\\\\")\n\t\t.replace(\",\", \"\\\\,\");\n};\n\nvar reduceArrayAndEscape = function (param) {\n\tif (Array.isArray(param)) {\n\t\tvar escapedParams = param.map(function (elem) { return escapeParam(elem); });\n\t\treturn escapedParams.join(\",\");\n\t}\n\n\treturn escapeParam(param);\n};\n\nvar convertDateToIsoString = function (date) {\n\tvar paramAsDate = new Date(date);\n\tif (isNaN(paramAsDate.getTime())) {\n\t\tthrow \"Cannot interpret parameter as Date\";\n\t}\n\n\treturn paramAsDate.toISOString();\n};\n\nMyDataHelps.getParticipantInfo = function () {\n\tvar endpoint = 'participant';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getProjectInfo = function () {\n\tvar endpoint = 'project';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.querySurveyAnswers = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"surveyName\")) {\n\t\tqueryParameters.surveyName = reduceArrayAndEscape(queryParameters.surveyName);\n\t}\n\tif (queryParameters.hasOwnProperty(\"stepIdentifier\")) {\n\t\tqueryParameters.stepIdentifier = reduceArrayAndEscape(queryParameters.stepIdentifier);\n\t}\n\tif (queryParameters.hasOwnProperty(\"resultIdentifier\")) {\n\t\tqueryParameters.resultIdentifier = reduceArrayAndEscape(queryParameters.resultIdentifier);\n\t}\n\tif (queryParameters.hasOwnProperty(\"answer\")) {\n\t\tqueryParameters.answer = reduceArrayAndEscape(queryParameters.answer);\n\t}\n\tif (queryParameters.hasOwnProperty(\"before\")) {\n\t\tqueryParameters.before = convertDateToIsoString(queryParameters.before);\n\t}\n\tif (queryParameters.hasOwnProperty(\"after\")) {\n\t\tqueryParameters.after = convertDateToIsoString(queryParameters.after);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'surveyanswers?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.deleteSurveyResult = function (resultID) {\n\tvar endpoint = 'surveyresults/' + encodeURIComponent(resultID);\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'DELETE', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.queryDeviceData = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"type\")) {\n\t\tqueryParameters.type = reduceArrayAndEscape(queryParameters.type);\n\t}\n\tif (queryParameters.hasOwnProperty(\"observedBefore\")) {\n\t\tqueryParameters.observedBefore = convertDateToIsoString(queryParameters.observedBefore);\n\t}\n\tif (queryParameters.hasOwnProperty(\"observedAfter\")) {\n\t\tqueryParameters.observedAfter = convertDateToIsoString(queryParameters.observedAfter);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'devicedata?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.persistDeviceData = function (deviceDataPoints) {\n\tvar endpoint = 'devicedata';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', deviceDataPoints); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.trackCustomEvent = function (event) {\n\tvar endpoint = 'customevents';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', event); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.querySurveyTasks = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"status\")) {\n\t\tqueryParameters.status = reduceArrayAndEscape(queryParameters.status);\n\t}\n\tif (queryParameters.hasOwnProperty(\"surveyName\")) {\n\t\tqueryParameters.surveyName = reduceArrayAndEscape(queryParameters.surveyName);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'surveytasks?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.queryNotifications = function (queryParameters) {\n\tif (queryParameters.hasOwnProperty(\"sentBefore\")) {\n\t\tqueryParameters.sentBefore = convertDateToIsoString(queryParameters.sentBefore);\n\t}\n\tif (queryParameters.hasOwnProperty(\"sentAfter\")) {\n\t\tqueryParameters.sentAfter = convertDateToIsoString(queryParameters.sentAfter);\n\t}\n\n\tvar queryString = new URLSearchParams(queryParameters).toString();\n\tvar endpoint = 'notifications?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getExternalAccountProviders = function (search, category, pageSize, pageNumber) {\n\tvar searchParameters = {};\n\tif (!!search) searchParameters.search = search;\n\tif (!!category) searchParameters.category = category;\n\tif (!!pageSize) searchParameters.pageSize = pageSize;\n\tif (!!pageNumber) searchParameters.pageNumber = pageNumber;\n\n\tvar queryString = new URLSearchParams(searchParameters).toString();\n\tvar endpoint = 'externalaccountproviders?' + queryString;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.getExternalAccounts = function () {\n\tvar endpoint = 'externalaccounts';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\nMyDataHelps.refreshExternalAccount = function (accountId) {\n\tvar endpoint = 'externalaccounts/refresh/' + accountId;\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'POST', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return; });\n};\n\nMyDataHelps.invokeCustomApi = function (customApi, method, queryParameters, jsonResponse) {\n\tif (customApi.includes('?')) {\n\t\tthrow new Error(\"Cannot include query parameters directly in the \\\"customApi\\\" string. Provide as an argument for \\\"queryParameters\\\" instead.\");\n\t}\n\n\tvar endpoint = 'custom/' + customApi;\n\tmethod = method.toUpperCase();\n\tif (queryParameters !== null && queryParameters !== undefined && (method === 'GET' || method === 'DELETE')) {\n\t\tvar parameterString = new URLSearchParams(queryParameters).toString();\n\t\tendpoint += \"?\" + parameterString;\n\t\tqueryParameters = null;\n\t}\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, method, queryParameters); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return jsonResponse ? response.json() : undefined; });\n};\n\n//Embedded surveys and tasks\n\nfunction getBaseUrl() {\n\treturn MyDataHelps.baseUrl || 'https://mydatahelps.org/';\n}\n\nMyDataHelps.startEmbeddedSurvey = function (linkIdentifier, surveyName, language) {\n\tif (!language) { language = this.getCurrentLanguage(); }\n\tvar surveyUrl = getBaseUrl() + \"mydatahelps/\" + linkIdentifier + '/surveylink/' + surveyName + \"?lang=\" + language;\n\treturn startEmbeddedSurvey(surveyUrl);\n};\n\nMyDataHelps.startEmbeddedTask = function (linkIdentifier, taskLinkIdentifier, language) {\n\tif (!language) { language = this.getCurrentLanguage(); }\n\tvar surveyUrl = getBaseUrl() + \"mydatahelps/\" + linkIdentifier + '/tasklink/' + taskLinkIdentifier + \"?lang=\" + language;\n\treturn startEmbeddedSurvey(surveyUrl);\n};\n\nfunction startEmbeddedSurvey(surveyUrl) {\n\tvar mdhSurveyModalId = 'mydatahelps-survey-modal';\n\n\treturn new Promise(function (resolve, reject) {\n\t\tif (document.getElementById(mdhSurveyModalId)) {\n\t\t\treject(\"Survey already in progress\");\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener(\"message\", function listener(message) {\n\t\t\tif (message.origin !== new URL(getBaseUrl()).origin) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar frame = document.getElementById('mydatahelps-survey-frame').contentWindow;\n\t\t\tif (message.source !== frame) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (message.data.name == 'SurveyWindowInitialized') {\n\t\t\t\tdocument.getElementById(mdhSurveyModalId).className += \" loaded\";\n\t\t\t} else if (message.data.name == 'SurveyFinished') {\n\t\t\t\tdocument.getElementById(mdhSurveyModalId).remove();\n\t\t\t\tdocument.body.className = document.body.className.replace(\"no-scroll\", \"\");\n\t\t\t\twindow.removeEventListener(\"message\", listener, true);\n\t\t\t\tresolve(message.data);\n\t\t\t}\n\t\t}, true);\n\n\t\tvar surveyModal = document.createElement('div');\n\t\tsurveyModal.className = 'mydatahelps-survey-modal';\n\t\tsurveyModal.id = mdhSurveyModalId;\n\t\tsurveyModal.innerHTML = \"<div class='mydatahelps-survey'><div class='loader'>Loading...</div><iframe id='mydatahelps-survey-frame' allow='camera' sandbox='allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts' src='\" + surveyUrl + \"'></iframe></div>\";\n\t\tdocument.body.append(surveyModal);\n\t\tdocument.body.className += ' no-scroll';\n\t});\n}\n\nMyDataHelps.getDataCollectionSettings = function () {\n\tlet endpoint = 'datacollectionsettings';\n\n\treturn MyDataHelps\n\t\t.connect()\n\t\t.then(function () { return makeRequest(endpoint, 'GET', null); })\n\t\t.then(function (response) { return validateResponse(response); })\n\t\t.then(function (response) { return response.json(); });\n};\n\n//iOS/Android directly invoke window.MyDataHelps and window.RKStudioClient\n//so it's necessary to explicitly ensure they are present on the window\nwindow.MyDataHelps = MyDataHelps;\nwindow.RKStudioClient = RKStudioClient;\n\nexport default MyDataHelps;"],"names":["MyDataHelps","RKStudioClient","currentMessageID","messageHandlers","registeredEventHandlers","acceptableOrigin","origin","allowedApplicationHosts","sourceURL","URL","k","length","hostname","endsWith","ancestorOrigins","supportedActions","applicationHost","document","location","console","error","window","webkit","ResearchKit","GetDelegatedAccessToken","data","parent","postMessage","name","messageID","GetDeviceInfo","StartParticipantSurvey","surveyName","OpenExternalLink","url","OpenEmbeddedLink","OpenExternalApplication","modal","Dismiss","PopNavigation","ShowTab","tabKey","ShowParticipantDashboard","dashboardKey","ShowParticipantWebVisualization","visualizationKey","parameters","ShowParticipantWebVisualizationPDF","landscape","htmlViewerZoom","DeleteProviderAccount","accountID","ConnectExternalAccount","externalAccountProviderID","ShowProject","code","JoinProject","unsupportedActions","supportedEvents","action","windowHasAnyActions","nextMessageID","addEventListener","message","validateWindowMessageOrigin","setActionResult","triggerEvent","event","eventName","type","includes","forEach","handler","refreshTokenPromise","connect","refreshDelegatedAccessToken","token","Promise","resolve","reject","tokenResponse","success","tokenExpires","Date","now","expires_in","baseUrl","setTimeout","setParticipantAccessToken","completeStep","answer","startSurvey","openExternalUrl","openEmbeddedUrl","openApplication","options","dismiss","back","showTab","showDashboard","title","undefined","showWebVisualization","showWebVisualizationPdf","setStatusBarStyle","style","SetStatusBarStyle","requestReview","cooldownDays","RequestReview","getDeviceInfo","deviceInfoResponse","deleteExternalAccount","deleteProviderAccountResponse","connectExternalAccount","showProject","projectCode","joinProject","getCurrentLanguage","searchParams","URLSearchParams","search","has","get","navigator","language","showGoogleFitSettings","ShowGoogleFitSettings","on","eventHandler","Error","push","off","eventHandlerIndex","indexOf","splice","makeRequest","endpoint","method","body","access_token","makeUrl","headers","Headers","append","init","JSON","stringify","fetch","validateResponse","response","ok","statusText","escapeParam","param","String","replace","reduceArrayAndEscape","Array","isArray","map","elem","join","convertDateToIsoString","date","paramAsDate","isNaN","getTime","toISOString","getBaseUrl","startEmbeddedSurvey","surveyUrl","mdhSurveyModalId","getElementById","listener","frame","contentWindow","source","className","remove","removeEventListener","surveyModal","createElement","id","innerHTML","getParticipantInfo","then","json","getProjectInfo","querySurveyAnswers","queryParameters","hasOwnProperty","stepIdentifier","resultIdentifier","before","after","toString","deleteSurveyResult","resultID","encodeURIComponent","queryDeviceData","observedBefore","observedAfter","persistDeviceData","deviceDataPoints","trackCustomEvent","querySurveyTasks","status","queryNotifications","sentBefore","sentAfter","getExternalAccountProviders","category","pageSize","pageNumber","searchParameters","getExternalAccounts","refreshExternalAccount","accountId","invokeCustomApi","customApi","jsonResponse","toUpperCase","parameterString","linkIdentifier","this","startEmbeddedTask","taskLinkIdentifier","getDataCollectionSettings"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@careevolution/mydatahelps-js",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
4
4
  "description": "MyDataHelps client to be used by external applications for integrations inside the MyDataHelps platform",
5
5
  "main": "MyDataHelps.js",
6
6
  "module": "MyDataHelps.js",