@careevolution/mydatahelps-js 1.0.0 → 2.2.0

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.
@@ -0,0 +1,147 @@
1
+ body.no-scroll
2
+ {
3
+ overflow: hidden !important;
4
+ position: fixed !important;
5
+ height: 100%;
6
+ width: 100%;
7
+ }
8
+
9
+ #mydatahelps-survey-modal
10
+ {
11
+ position: fixed;
12
+ left: 0;
13
+ top: 0;
14
+ bottom: 0;
15
+ right: 0;
16
+ background: rgba(0,0,0,0.5);
17
+ }
18
+
19
+ #mydatahelps-survey-modal .mydatahelps-survey
20
+ {
21
+ margin: 0px auto;
22
+ z-index: 5002;
23
+ position: relative;
24
+ max-width: 768px;
25
+ height: calc(100% - 32px);
26
+ box-sizing: border-box;
27
+ margin-top: 16px;
28
+ margin-bottom: 16px;
29
+ border-radius: 5px;
30
+ overflow: hidden;
31
+ background: #FFF;
32
+ }
33
+
34
+ #mydatahelps-survey-modal .mydatahelps-survey iframe
35
+ {
36
+ position: absolute;
37
+ left: 0;
38
+ top: 0;
39
+ right: 0;
40
+ bottom: 0;
41
+ width: 100%;
42
+ height: 100%;
43
+ border: none;
44
+ opacity: 0;
45
+ }
46
+
47
+ #mydatahelps-survey-modal.loaded .mydatahelps-survey iframe
48
+ {
49
+ opacity: 1;
50
+ }
51
+
52
+ @media (max-width: 768px)
53
+ {
54
+ #mydatahelps-survey-modal .mydatahelps-survey
55
+ {
56
+ height: 100%;
57
+ margin-top: 0;
58
+ margin-bottom: 0;
59
+ border-radius: 0;
60
+ }
61
+ }
62
+
63
+ #mydatahelps-survey-modal .mydatahelps-survey .loader
64
+ {
65
+ font-size: 5px;
66
+ text-indent: -9999em;
67
+ width: 11em;
68
+ height: 11em;
69
+ position: absolute;
70
+ top: calc(50% - 5.5em);
71
+ left: calc(50% - 5.5em);
72
+ border-radius: 50%;
73
+ background: #ffffff;
74
+ background: -moz-linear-gradient(left, #bbb 10%, rgba(255, 255, 255, 0) 42%);
75
+ background: -webkit-linear-gradient(left, #bbb 10%, rgba(255, 255, 255, 0) 42%);
76
+ background: -o-linear-gradient(left, #bbb 10%, rgba(255, 255, 255, 0) 42%);
77
+ background: -ms-linear-gradient(left, #bbb 10%, rgba(255, 255, 255, 0) 42%);
78
+ background: linear-gradient(to right, #bbb 10%, rgba(255, 255, 255, 0) 42%);
79
+ -webkit-animation: load3 1.4s infinite linear;
80
+ animation: load3 1.4s infinite linear;
81
+ -webkit-transform: translateZ(0);
82
+ -ms-transform: translateZ(0);
83
+ transform: translateZ(0);
84
+ z-index: 1;
85
+ }
86
+
87
+ #mydatahelps-survey-modal .mydatahelps-survey .loader:before
88
+ {
89
+ width: 50%;
90
+ height: 50%;
91
+ background: #bbb;
92
+ border-radius: 100% 0 0 0;
93
+ position: absolute;
94
+ top: 0;
95
+ left: 0;
96
+ content: '';
97
+ }
98
+
99
+ #mydatahelps-survey-modal .mydatahelps-survey .loader:after
100
+ {
101
+ background: #fff;
102
+ width: 75%;
103
+ height: 75%;
104
+ border-radius: 50%;
105
+ content: '';
106
+ margin: auto;
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ bottom: 0;
111
+ right: 0;
112
+ }
113
+
114
+ #mydatahelps-survey-modal.loaded .mydatahelps-survey .loader
115
+ {
116
+ display: none;
117
+ }
118
+
119
+ @-webkit-keyframes load3
120
+ {
121
+ 0%
122
+ {
123
+ -webkit-transform: rotate(0deg);
124
+ transform: rotate(0deg);
125
+ }
126
+
127
+ 100%
128
+ {
129
+ -webkit-transform: rotate(360deg);
130
+ transform: rotate(360deg);
131
+ }
132
+ }
133
+
134
+ @keyframes load3
135
+ {
136
+ 0%
137
+ {
138
+ -webkit-transform: rotate(0deg);
139
+ transform: rotate(0deg);
140
+ }
141
+
142
+ 100%
143
+ {
144
+ -webkit-transform: rotate(360deg);
145
+ transform: rotate(360deg);
146
+ }
147
+ }
package/MyDataHelps.js CHANGED
@@ -14,11 +14,6 @@ var RKStudioClient = {};
14
14
  return ancestorOrigins[0];
15
15
  }
16
16
 
17
- var referrer = document.referrer;
18
- if (referrer) {
19
- return new URL(referrer).origin;
20
- }
21
-
22
17
  return '*';
23
18
  }
24
19
 
@@ -71,14 +66,17 @@ var RKStudioClient = {};
71
66
  "ShowTab": function (data) { window.parent.postMessage({ name: 'ShowTab', tabKey: data }, applicationHost) },
72
67
  "ShowParticipantDashboard": function (data) { window.parent.postMessage({ name: 'ShowParticipantDashboard', dashboardKey: data.dashboardKey, modal: data.modal }, applicationHost) },
73
68
  "ShowParticipantWebVisualization": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualization', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal }, applicationHost) },
69
+ "ShowParticipantWebVisualizationPDF": function (data) { window.parent.postMessage({ name: 'ShowParticipantWebVisualizationPDF', visualizationKey: data.visualizationKey, parameters: data.parameters, modal: data.modal, landscape: data.landscape, htmlViewerZoom: data.htmlViewerZoom }, applicationHost) },
74
70
  "DeleteProviderAccount": function (data) { window.parent.postMessage({ name: 'DeleteProviderAccount', messageID: data.messageID, accountID: data.accountID }, applicationHost) },
75
- "ConnectExternalAccount": function (data) { window.parent.postMessage({ name: 'ConnectExternalAccount', messageID: data.messageID, externalAccountProviderID: data.externalAccountProviderID }, applicationHost) }
71
+ "ConnectExternalAccount": function (data) { window.parent.postMessage({ name: 'ConnectExternalAccount', externalAccountProviderID: data.externalAccountProviderID }, applicationHost) },
72
+ "ShowProject": function (data) { window.parent.postMessage({ name: 'ShowProject', code: data.code }, applicationHost) },
73
+ "JoinProject": function (data) { window.parent.postMessage({ name: 'JoinProject', code: data.code }, applicationHost) }
76
74
  };
77
75
  }
78
76
 
79
77
  var unsupportedActions = ["SetHeight", "ResearchKit"];
80
78
 
81
- var supportedEvents = ["surveyDidFinish", "applicationDidBecomeVisible"];
79
+ var supportedEvents = ["surveyDidFinish", "applicationDidBecomeVisible", "externalAccountSyncComplete", "tokenWillExpire"];
82
80
 
83
81
  function windowHasAnyActions() {
84
82
  for (var action in supportedActions) {
@@ -189,8 +187,28 @@ var RKStudioClient = {};
189
187
  return refreshTokenPromise;
190
188
  };
191
189
 
190
+ //Initializing access token manually
191
+ MyDataHelps.setParticipantAccessToken = function (token, baseUrl) {
192
+ MyDataHelps.token = token;
193
+ if (baseUrl) {
194
+ MyDataHelps.baseUrl = baseUrl;
195
+ }
196
+ MyDataHelps.tokenExpires = Date.now() + (token.expires_in * 1000);
197
+ window.setTimeout(function () {
198
+ MyDataHelps.triggerEvent({ type: "tokenWillExpire" });
199
+ }, ((token.expires_in - accessTokenRenewalBufferSeconds) * 1000));
200
+ };
201
+
192
202
  //Actions
193
203
 
204
+ MyDataHelps.completeStep = function(answer) {
205
+ if(answer === undefined || answer === null) answer = '';
206
+
207
+ if(window.webkit.messageHandlers.ResearchKit) {
208
+ window.webkit.messageHandlers.ResearchKit.postMessage(answer);
209
+ }
210
+ }
211
+
194
212
  MyDataHelps.startSurvey = function (surveyName) {
195
213
  var messageID = nextMessageID();
196
214
  window.webkit.messageHandlers.StartParticipantSurvey.postMessage({ messageID: messageID, surveyName: surveyName });
@@ -238,6 +256,15 @@ var RKStudioClient = {};
238
256
  });
239
257
  };
240
258
 
259
+ MyDataHelps.showWebVisualizationPdf = function (visualizationKey, parameters, options) {
260
+ window.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({
261
+ visualizationKey: visualizationKey,
262
+ parameters: parameters,
263
+ landscape: options && options.landscape ? true : false,
264
+ htmlViewerZoom: options && options.htmlViewerZoom
265
+ });
266
+ };
267
+
241
268
  MyDataHelps.setStatusBarStyle = function (style) {
242
269
  if (window.webkit.messageHandlers.SetStatusBarStyle) {
243
270
  window.webkit.messageHandlers.SetStatusBarStyle.postMessage({ style: style });
@@ -269,10 +296,9 @@ var RKStudioClient = {};
269
296
  return new Promise(function (resolve, reject) {
270
297
  var messageID = nextMessageID();
271
298
  messageHandlers[messageID] = function (deleteProviderAccountResponse) {
272
- if (deleteProviderAccountResponse.message) {
299
+ if (!deleteProviderAccountResponse.success) {
273
300
  reject(deleteProviderAccountResponse)
274
- }
275
- else {
301
+ } else {
276
302
  resolve(deleteProviderAccountResponse);
277
303
  }
278
304
  };
@@ -285,26 +311,24 @@ var RKStudioClient = {};
285
311
  });
286
312
  }
287
313
 
288
- MyDataHelps.connectExternalAccount = function (externalAccountProviderID, redirectPath) {
289
- return new Promise(function () {
290
- var messageID = nextMessageID();
291
- messageHandlers[messageID] = function (connectExternalAccountResponse) {
292
- if (connectExternalAccountResponse.message) {
293
- reject(connectExternalAccountResponse)
294
- }
295
- else {
296
- resolve(connectExternalAccountResponse)
297
- }
298
- };
299
-
300
- if (window.webkit.messageHandlers.ConnectExternalAccount) {
301
- window.webkit.messageHandlers.ConnectExternalAccount.postMessage({ messageID: messageID, externalAccountProviderID: externalAccountProviderID, redirectPath: redirectPath });
302
- } else {
303
- reject();
304
- }
305
- });
314
+ MyDataHelps.connectExternalAccount = function (externalAccountProviderID) {
315
+ if (window.webkit.messageHandlers.ConnectExternalAccount) {
316
+ window.webkit.messageHandlers.ConnectExternalAccount.postMessage({ externalAccountProviderID: externalAccountProviderID });
317
+ }
306
318
  }
307
319
 
320
+ MyDataHelps.showProject = function (projectCode) {
321
+ if (window.webkit.messageHandlers.ShowProject) {
322
+ window.webkit.messageHandlers.ShowProject.postMessage({ code: projectCode });
323
+ }
324
+ };
325
+
326
+ MyDataHelps.joinProject = function (projectCode) {
327
+ if (window.webkit.messageHandlers.JoinProject) {
328
+ window.webkit.messageHandlers.JoinProject.postMessage({code: projectCode});
329
+ }
330
+ };
331
+
308
332
  MyDataHelps.getCurrentLanguage = function () {
309
333
  var searchParams = new URLSearchParams(window.location.search);
310
334
  if (searchParams.has("lang")) {
@@ -330,18 +354,43 @@ var RKStudioClient = {};
330
354
  registeredEventHandlers[eventName].push(eventHandler);
331
355
  };
332
356
 
357
+ MyDataHelps.off = function (eventName, eventHandler) {
358
+
359
+ if (!supportedEvents.includes(eventName)) {
360
+ throw new Error(eventName + " is not a supported event type.");
361
+ }
362
+
363
+ if (!registeredEventHandlers[eventName]) return;
364
+
365
+ var eventHandlerIndex = registeredEventHandlers[eventName].indexOf(eventHandler);
366
+
367
+ if (eventHandlerIndex !== -1) {
368
+ registeredEventHandlers[eventName].splice(eventHandlerIndex, 1);
369
+ }
370
+ }
371
+
333
372
  //Data
334
373
 
374
+ var makeUrl = function (endpoint) {
375
+ if (!MyDataHelps.baseUrl) {
376
+ console.error("Cannot use makeUrl without MyDataHelps.baseUrl.");
377
+ throw "Cannot use makeUrl without MyDataHelps.baseUrl.";
378
+ }
379
+
380
+ return MyDataHelps.baseUrl + apiBasePath + endpoint;
381
+ }
382
+
335
383
  var makeRequest = function (endpoint, method, body) {
336
384
  if (!MyDataHelps.token || !MyDataHelps.token.access_token) {
337
385
  throw "No access_token available for request authorization.";
338
386
  }
339
387
 
340
- var url = MyDataHelps.baseUrl + apiBasePath + endpoint;
388
+ var url = makeUrl(endpoint);
341
389
 
342
390
  var headers = new Headers();
343
391
  headers.append('Authorization', 'Bearer ' + MyDataHelps.token.access_token);
344
392
  headers.append('Accept', 'application/json, text/javascript, */*; q=0.01');
393
+ headers.append('Accept-Language', MyDataHelps.getCurrentLanguage());
345
394
  if (!!body) {
346
395
  headers.append('Content-Type', 'application/json');
347
396
  }
@@ -469,6 +518,16 @@ var RKStudioClient = {};
469
518
  .then(function (response) { return validateResponse(response); })
470
519
  .then(function (response) { return; });
471
520
  };
521
+
522
+ MyDataHelps.trackCustomEvent = function (event) {
523
+ var endpoint = 'customevents';
524
+
525
+ return MyDataHelps
526
+ .connect()
527
+ .then(function () { return makeRequest(endpoint, 'POST', event); })
528
+ .then(function (response) { return validateResponse(response); })
529
+ .then(function (response) { return; });
530
+ };
472
531
 
473
532
  MyDataHelps.querySurveyTasks = function (queryParameters) {
474
533
  if (queryParameters.hasOwnProperty("status")) {
@@ -505,4 +564,115 @@ var RKStudioClient = {};
505
564
  .then(function (response) { return validateResponse(response); })
506
565
  .then(function (response) { return response.json(); });
507
566
  };
567
+
568
+ MyDataHelps.getExternalAccountProviders = function (search, category) {
569
+ var searchParameters = {};
570
+ if (!!search) searchParameters.search = search;
571
+ if (!!category) searchParameters.category = category;
572
+
573
+ var queryString = new URLSearchParams(searchParameters).toString();
574
+ var endpoint = 'externalaccountproviders?' + queryString;
575
+
576
+ return MyDataHelps
577
+ .connect()
578
+ .then(function () { return makeRequest(endpoint, 'GET', null); })
579
+ .then(function (response) { return validateResponse(response); })
580
+ .then(function (response) { return response.json(); });
581
+ };
582
+
583
+ MyDataHelps.getExternalAccounts = function () {
584
+ var endpoint = 'externalaccounts';
585
+
586
+ return MyDataHelps
587
+ .connect()
588
+ .then(function () { return makeRequest(endpoint, 'GET', null); })
589
+ .then(function (response) { return validateResponse(response); })
590
+ .then(function (response) { return response.json(); });
591
+ };
592
+
593
+ MyDataHelps.refreshExternalAccount = function (accountId) {
594
+ var endpoint = 'externalaccounts/refresh/' + accountId;
595
+
596
+ return MyDataHelps
597
+ .connect()
598
+ .then(function () { return makeRequest(endpoint, 'POST', null); })
599
+ .then(function (response) { return validateResponse(response); })
600
+ .then(function (response) { return; });
601
+ };
602
+
603
+ MyDataHelps.invokeCustomApi = function (customApi, method, queryParameters, jsonResponse) {
604
+ if(customApi.includes('?')) {
605
+ throw new Error("Cannot include query parameters directly in the \"customApi\" string. Provide as an argument for \"queryParameters\" instead.");
606
+ }
607
+
608
+ var endpoint = 'custom/' + customApi;
609
+ method = method.toUpperCase();
610
+ if(queryParameters !== null && queryParameters !== undefined && (method === 'GET' || method === 'DELETE')) {
611
+ var parameterString = new URLSearchParams(queryParameters).toString();
612
+ endpoint += "?" + parameterString;
613
+ queryParameters = null;
614
+ }
615
+
616
+ return MyDataHelps
617
+ .connect()
618
+ .then(function () { return makeRequest(endpoint, method, queryParameters); })
619
+ .then(function (response) { return validateResponse(response); })
620
+ .then(function (response) { return jsonResponse ? response.json() : undefined; });
621
+ };
622
+
623
+ //Embedded surveys and tasks
624
+
625
+ function getBaseUrl() {
626
+ return MyDataHelps.baseUrl || 'https://mydatahelps.org/';
627
+ }
628
+
629
+ MyDataHelps.startEmbeddedSurvey = function (linkIdentifier, surveyName, language) {
630
+ if (!language) { language = this.getCurrentLanguage(); }
631
+ var surveyUrl = getBaseUrl() + "mydatahelps/" + linkIdentifier + '/surveylink/' + surveyName + "?lang=" + language;
632
+ return startEmbeddedSurvey(surveyUrl);
633
+ };
634
+
635
+ MyDataHelps.startEmbeddedTask = function (linkIdentifier, taskLinkIdentifier, language) {
636
+ if (!language) { language = this.getCurrentLanguage(); }
637
+ var surveyUrl = getBaseUrl() + "mydatahelps/" + linkIdentifier + '/tasklink/' + taskLinkIdentifier + "?lang=" + language;
638
+ return startEmbeddedSurvey(surveyUrl);
639
+ };
640
+
641
+ function startEmbeddedSurvey(surveyUrl) {
642
+ var mdhSurveyModalId = 'mydatahelps-survey-modal';
643
+
644
+ return new Promise(function (resolve, reject) {
645
+ if (document.getElementById(mdhSurveyModalId)) {
646
+ reject("Survey already in progress");
647
+ return;
648
+ }
649
+
650
+ window.addEventListener("message", function listener(message) {
651
+ if (message.origin !== new URL(getBaseUrl()).origin) {
652
+ return;
653
+ }
654
+ var frame = document.getElementById('mydatahelps-survey-frame').contentWindow;
655
+ if (message.source !== frame) {
656
+ return;
657
+ }
658
+ if (message.data.name == 'SurveyWindowInitialized') {
659
+ document.getElementById(mdhSurveyModalId).className += " loaded";
660
+ } else if (message.data.name == 'SurveyFinished') {
661
+ document.getElementById(mdhSurveyModalId).remove();
662
+ document.body.className = document.body.className.replace("no-scroll", "");
663
+ window.removeEventListener("message", listener, true);
664
+ resolve(message.data);
665
+ }
666
+ }, true);
667
+
668
+ var surveyModal = document.createElement('div');
669
+ surveyModal.className = 'mydatahelps-survey-modal';
670
+ surveyModal.id = mdhSurveyModalId;
671
+ surveyModal.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>";
672
+ document.body.append(surveyModal);
673
+ document.body.className += ' no-scroll';
674
+ });
675
+ }
508
676
  })();
677
+
678
+ export default MyDataHelps;
@@ -1 +1 @@
1
- var MyDataHelps={};var RKStudioClient={};(function(){var accessTokenRenewalBufferSeconds=120;var currentMessageID=1;var messageHandlers=[];var registeredEventHandlers={};var apiBasePath="api/v1/delegated/";function getParentOrigin(){var ancestorOrigins=document.location.ancestorOrigins;if(ancestorOrigins&&ancestorOrigins[0]){return ancestorOrigins[0]}var referrer=document.referrer;if(referrer){return new URL(referrer).origin}return"*"}function acceptableOrigin(origin){if(origin==="*")return true;var allowedApplicationHosts=["localhost","careevolution.com","internal","b3-deploys.com","mydatahelps.org","platform.joinallofus.org","careevolution.dev","ce.dev"];var sourceURL=new URL(origin);for(var k=0;k<allowedApplicationHosts.length;k++){if(sourceURL.hostname===allowedApplicationHosts[k]||sourceURL.hostname.endsWith("."+allowedApplicationHosts[k])){return true}}return false}var applicationHost=getParentOrigin();if(!acceptableOrigin(applicationHost)){console.error("Application is not hosted at an approved origin.");throw"Application is not hosted at an approved origin."}var supportedActions;if(window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.ResearchKit){supportedActions={GetDelegatedAccessToken:function(data){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:data.messageID},applicationHost)},GetDeviceInfo:function(data){window.parent.postMessage({name:"GetDeviceInfo",messageID:data.messageID},applicationHost)}}}else{supportedActions={GetDelegatedAccessToken:function(data){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:data.messageID},applicationHost)},GetDeviceInfo:function(data){window.parent.postMessage({name:"GetDeviceInfo",messageID:data.messageID},applicationHost)},StartParticipantSurvey:function(data){window.parent.postMessage({name:"StartParticipantSurvey",messageID:data.messageID,surveyName:data.surveyName},applicationHost)},OpenExternalLink:function(data){window.parent.postMessage({name:"OpenExternalUrl",url:data},applicationHost)},OpenEmbeddedLink:function(data){window.parent.postMessage({name:"OpenEmbeddedUrl",url:data},applicationHost)},OpenExternalApplication:function(data){window.parent.postMessage({name:"OpenApplication",messageID:data.messageID,url:data.url,modal:data.modal},applicationHost)},Dismiss:function(){window.parent.postMessage({name:"Dismiss"},applicationHost)},PopNavigation:function(){window.parent.postMessage({name:"Back"},applicationHost)},ShowTab:function(data){window.parent.postMessage({name:"ShowTab",tabKey:data},applicationHost)},ShowParticipantDashboard:function(data){window.parent.postMessage({name:"ShowParticipantDashboard",dashboardKey:data.dashboardKey,modal:data.modal},applicationHost)},ShowParticipantWebVisualization:function(data){window.parent.postMessage({name:"ShowParticipantWebVisualization",visualizationKey:data.visualizationKey,parameters:data.parameters,modal:data.modal},applicationHost)},DeleteProviderAccount:function(data){window.parent.postMessage({name:"DeleteProviderAccount",messageID:data.messageID,accountID:data.accountID},applicationHost)},ConnectExternalAccount:function(data){window.parent.postMessage({name:"ConnectExternalAccount",messageID:data.messageID,externalAccountProviderID:data.externalAccountProviderID},applicationHost)}}}var unsupportedActions=["SetHeight","ResearchKit"];var supportedEvents=["surveyDidFinish","applicationDidBecomeVisible"];function windowHasAnyActions(){for(var action in supportedActions){if(window.webkit.messageHandlers[action]){return true}}for(var action in unsupportedActions){if(window.webkit.messageHandlers[unsupportedActions[action]]){return true}}return false}if(!window.webkit||!window.webkit.messageHandlers||!windowHasAnyActions()){window.webkit={messageHandlers:{}}}for(var action in supportedActions){window.webkit.messageHandlers[action]=window.webkit.messageHandlers[action]||{postMessage:supportedActions[action]}}var nextMessageID=function(){return currentMessageID++};function validateWindowMessageOrigin(message){if(applicationHost==="*"){return acceptableOrigin(message.origin)}return message.origin===applicationHost}var receiveWindowMessage=function(message){if(!validateWindowMessageOrigin(message)){console.error("message.origin '"+message.origin+"' is not allowed.");throw"message.origin '"+message.origin+"' is not allowed."}if(message.data.messageID){MyDataHelps.setActionResult(message.data)}else{MyDataHelps.triggerEvent(message.data)}};window.addEventListener("message",receiveWindowMessage,false);MyDataHelps.setActionResult=function(data){messageHandlers[data.messageID](data)};RKStudioClient.setActionResult=function(data){MyDataHelps.setActionResult(data)};MyDataHelps.triggerEvent=function(event){var eventName=event.type;if(supportedEvents.includes(eventName)&&registeredEventHandlers[eventName]){registeredEventHandlers[eventName].forEach(function(handler){handler(event)})}};var refreshTokenPromise=null;MyDataHelps.connect=function(){var refreshDelegatedAccessToken=function(){MyDataHelps.token=null;refreshTokenPromise=new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(tokenResponse){if(tokenResponse.success){MyDataHelps.tokenExpires=Date.now()+tokenResponse.data.expires_in*1e3;MyDataHelps.token=tokenResponse.data;MyDataHelps.baseUrl=tokenResponse.baseUrl;window.setTimeout(refreshDelegatedAccessToken,(tokenResponse.data.expires_in-accessTokenRenewalBufferSeconds)*1e3);resolve()}else{MyDataHelps.token=null;reject(tokenResponse.message)}messageHandlers[messageID]=null;refreshTokenPromise=null};window.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({messageID:messageID})})};if(MyDataHelps.token&&Date.now()<MyDataHelps.tokenExpires){return Promise.resolve()}if(!refreshTokenPromise){refreshDelegatedAccessToken()}return refreshTokenPromise};MyDataHelps.startSurvey=function(surveyName){var messageID=nextMessageID();window.webkit.messageHandlers.StartParticipantSurvey.postMessage({messageID:messageID,surveyName:surveyName})};MyDataHelps.openExternalUrl=function(url){window.webkit.messageHandlers.OpenExternalLink.postMessage(url)};MyDataHelps.openEmbeddedUrl=function(url){window.webkit.messageHandlers.OpenEmbeddedLink.postMessage(url)};MyDataHelps.openApplication=function(url,options){var messageID=nextMessageID();window.webkit.messageHandlers.OpenExternalApplication.postMessage({messageID:messageID,url:url,modal:options&&options.modal?true:false})};MyDataHelps.dismiss=function(){window.webkit.messageHandlers.Dismiss.postMessage({})};MyDataHelps.back=function(){window.webkit.messageHandlers.PopNavigation.postMessage({})};MyDataHelps.showTab=function(tabKey){window.webkit.messageHandlers.ShowTab.postMessage(tabKey)};MyDataHelps.showDashboard=function(dashboardKey,options){window.webkit.messageHandlers.ShowParticipantDashboard.postMessage({dashboardKey:dashboardKey,modal:options&&options.modal?true:false,title:options&&options.title?options.title:undefined})};MyDataHelps.showWebVisualization=function(visualizationKey,parameters,options){window.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({visualizationKey:visualizationKey,parameters:parameters,modal:options&&options.modal?true:false,title:options&&options.title?options.title:undefined})};MyDataHelps.setStatusBarStyle=function(style){if(window.webkit.messageHandlers.SetStatusBarStyle){window.webkit.messageHandlers.SetStatusBarStyle.postMessage({style:style})}};MyDataHelps.requestReview=function(cooldownDays){if(window.webkit.messageHandlers.RequestReview){window.webkit.messageHandlers.RequestReview.postMessage({cooldownDays:cooldownDays})}};MyDataHelps.getDeviceInfo=function(){return new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(deviceInfoResponse){resolve(deviceInfoResponse.data)};if(window.webkit.messageHandlers.GetDeviceInfo){window.webkit.messageHandlers.GetDeviceInfo.postMessage({messageID:messageID})}else{reject()}})};MyDataHelps.deleteExternalAccount=function(accountID){return new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(deleteProviderAccountResponse){if(deleteProviderAccountResponse.message){reject(deleteProviderAccountResponse)}else{resolve(deleteProviderAccountResponse)}};if(window.webkit.messageHandlers.DeleteProviderAccount){window.webkit.messageHandlers.DeleteProviderAccount.postMessage({messageID:messageID,accountID:accountID})}else{reject()}})};MyDataHelps.connectExternalAccount=function(externalAccountProviderID,redirectPath){return new Promise(function(){var messageID=nextMessageID();messageHandlers[messageID]=function(connectExternalAccountResponse){if(connectExternalAccountResponse.message){reject(connectExternalAccountResponse)}else{resolve(connectExternalAccountResponse)}};if(window.webkit.messageHandlers.ConnectExternalAccount){window.webkit.messageHandlers.ConnectExternalAccount.postMessage({messageID:messageID,externalAccountProviderID:externalAccountProviderID,redirectPath:redirectPath})}else{reject()}})};MyDataHelps.getCurrentLanguage=function(){var searchParams=new URLSearchParams(window.location.search);if(searchParams.has("lang")){return searchParams.get("lang")}else{return navigator.language}};MyDataHelps.on=function(eventName,eventHandler){if(!supportedEvents.includes(eventName)){throw new Error(eventName+" is not a supported event type.")}if(!registeredEventHandlers[eventName]){registeredEventHandlers[eventName]=[]}registeredEventHandlers[eventName].push(eventHandler)};var makeRequest=function(endpoint,method,body){if(!MyDataHelps.token||!MyDataHelps.token.access_token){throw"No access_token available for request authorization."}var url=MyDataHelps.baseUrl+apiBasePath+endpoint;var headers=new Headers;headers.append("Authorization","Bearer "+MyDataHelps.token.access_token);headers.append("Accept","application/json, text/javascript, */*; q=0.01");if(!!body){headers.append("Content-Type","application/json")}var init={method:method,headers:headers};if(!!body){init.body=JSON.stringify(body)}return fetch(url,init)};var validateResponse=function(response){if(!response.ok){throw response.statusText}return response};var escapeParam=function(param){return String(param).replace("\\","\\\\").replace(",","\\,")};var reduceArrayAndEscape=function(param){if(Array.isArray(param)){var escapedParams=param.map(function(elem){return escapeParam(elem)});return escapedParams.join(",")}return escapeParam(param)};var convertDateToIsoString=function(date){var paramAsDate=new Date(date);if(isNaN(paramAsDate.getTime())){throw"Cannot interpret parameter as Date"}return paramAsDate.toISOString()};MyDataHelps.getParticipantInfo=function(){var endpoint="participant";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.querySurveyAnswers=function(queryParameters){if(queryParameters.hasOwnProperty("surveyName")){queryParameters.surveyName=reduceArrayAndEscape(queryParameters.surveyName)}if(queryParameters.hasOwnProperty("stepIdentifier")){queryParameters.stepIdentifier=reduceArrayAndEscape(queryParameters.stepIdentifier)}if(queryParameters.hasOwnProperty("resultIdentifier")){queryParameters.resultIdentifier=reduceArrayAndEscape(queryParameters.resultIdentifier)}if(queryParameters.hasOwnProperty("answer")){queryParameters.answer=reduceArrayAndEscape(queryParameters.answer)}if(queryParameters.hasOwnProperty("before")){queryParameters.before=convertDateToIsoString(queryParameters.before)}if(queryParameters.hasOwnProperty("after")){queryParameters.after=convertDateToIsoString(queryParameters.after)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="surveyanswers?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.deleteSurveyResult=function(resultID){var endpoint="surveyresults/"+encodeURIComponent(resultID);return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"DELETE",null)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.queryDeviceData=function(queryParameters){if(queryParameters.hasOwnProperty("type")){queryParameters.type=reduceArrayAndEscape(queryParameters.type)}if(queryParameters.hasOwnProperty("observedBefore")){queryParameters.observedBefore=convertDateToIsoString(queryParameters.observedBefore)}if(queryParameters.hasOwnProperty("observedAfter")){queryParameters.observedAfter=convertDateToIsoString(queryParameters.observedAfter)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="devicedata?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.persistDeviceData=function(deviceDataPoints){var endpoint="devicedata";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"POST",deviceDataPoints)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.querySurveyTasks=function(queryParameters){if(queryParameters.hasOwnProperty("status")){queryParameters.status=reduceArrayAndEscape(queryParameters.status)}if(queryParameters.hasOwnProperty("surveyName")){queryParameters.surveyName=reduceArrayAndEscape(queryParameters.surveyName)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="surveytasks?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.queryNotifications=function(queryParameters){if(queryParameters.hasOwnProperty("sentBefore")){queryParameters.sentBefore=convertDateToIsoString(queryParameters.sentBefore)}if(queryParameters.hasOwnProperty("sentAfter")){queryParameters.sentAfter=convertDateToIsoString(queryParameters.sentAfter)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="notifications?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})}})();
1
+ var MyDataHelps={};var RKStudioClient={};(function(){var accessTokenRenewalBufferSeconds=120;var currentMessageID=1;var messageHandlers=[];var registeredEventHandlers={};var apiBasePath="api/v1/delegated/";function getParentOrigin(){var ancestorOrigins=document.location.ancestorOrigins;if(ancestorOrigins&&ancestorOrigins[0]){return ancestorOrigins[0]}return"*"}function acceptableOrigin(origin){if(origin==="*")return true;var allowedApplicationHosts=["localhost","careevolution.com","internal","b3-deploys.com","mydatahelps.org","platform.joinallofus.org","careevolution.dev","ce.dev"];var sourceURL=new URL(origin);for(var k=0;k<allowedApplicationHosts.length;k++){if(sourceURL.hostname===allowedApplicationHosts[k]||sourceURL.hostname.endsWith("."+allowedApplicationHosts[k])){return true}}return false}var applicationHost=getParentOrigin();if(!acceptableOrigin(applicationHost)){console.error("Application is not hosted at an approved origin.");throw"Application is not hosted at an approved origin."}var supportedActions;if(window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.ResearchKit){supportedActions={GetDelegatedAccessToken:function(data){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:data.messageID},applicationHost)},GetDeviceInfo:function(data){window.parent.postMessage({name:"GetDeviceInfo",messageID:data.messageID},applicationHost)}}}else{supportedActions={GetDelegatedAccessToken:function(data){window.parent.postMessage({name:"GetDelegatedAccessToken",messageID:data.messageID},applicationHost)},GetDeviceInfo:function(data){window.parent.postMessage({name:"GetDeviceInfo",messageID:data.messageID},applicationHost)},StartParticipantSurvey:function(data){window.parent.postMessage({name:"StartParticipantSurvey",messageID:data.messageID,surveyName:data.surveyName},applicationHost)},OpenExternalLink:function(data){window.parent.postMessage({name:"OpenExternalUrl",url:data},applicationHost)},OpenEmbeddedLink:function(data){window.parent.postMessage({name:"OpenEmbeddedUrl",url:data},applicationHost)},OpenExternalApplication:function(data){window.parent.postMessage({name:"OpenApplication",messageID:data.messageID,url:data.url,modal:data.modal},applicationHost)},Dismiss:function(){window.parent.postMessage({name:"Dismiss"},applicationHost)},PopNavigation:function(){window.parent.postMessage({name:"Back"},applicationHost)},ShowTab:function(data){window.parent.postMessage({name:"ShowTab",tabKey:data},applicationHost)},ShowParticipantDashboard:function(data){window.parent.postMessage({name:"ShowParticipantDashboard",dashboardKey:data.dashboardKey,modal:data.modal},applicationHost)},ShowParticipantWebVisualization:function(data){window.parent.postMessage({name:"ShowParticipantWebVisualization",visualizationKey:data.visualizationKey,parameters:data.parameters,modal:data.modal},applicationHost)},ShowParticipantWebVisualizationPDF:function(data){window.parent.postMessage({name:"ShowParticipantWebVisualizationPDF",visualizationKey:data.visualizationKey,parameters:data.parameters,modal:data.modal,landscape:data.landscape,htmlViewerZoom:data.htmlViewerZoom},applicationHost)},DeleteProviderAccount:function(data){window.parent.postMessage({name:"DeleteProviderAccount",messageID:data.messageID,accountID:data.accountID},applicationHost)},ConnectExternalAccount:function(data){window.parent.postMessage({name:"ConnectExternalAccount",externalAccountProviderID:data.externalAccountProviderID},applicationHost)},ShowProject:function(data){window.parent.postMessage({name:"ShowProject",code:data.code},applicationHost)},JoinProject:function(data){window.parent.postMessage({name:"JoinProject",code:data.code},applicationHost)}}}var unsupportedActions=["SetHeight","ResearchKit"];var supportedEvents=["surveyDidFinish","applicationDidBecomeVisible","externalAccountSyncComplete","tokenWillExpire"];function windowHasAnyActions(){for(var action in supportedActions){if(window.webkit.messageHandlers[action]){return true}}for(var action in unsupportedActions){if(window.webkit.messageHandlers[unsupportedActions[action]]){return true}}return false}if(!window.webkit||!window.webkit.messageHandlers||!windowHasAnyActions()){window.webkit={messageHandlers:{}}}for(var action in supportedActions){window.webkit.messageHandlers[action]=window.webkit.messageHandlers[action]||{postMessage:supportedActions[action]}}var nextMessageID=function(){return currentMessageID++};function validateWindowMessageOrigin(message){if(applicationHost==="*"){return acceptableOrigin(message.origin)}return message.origin===applicationHost}var receiveWindowMessage=function(message){if(!validateWindowMessageOrigin(message)){console.error("message.origin '"+message.origin+"' is not allowed.");throw"message.origin '"+message.origin+"' is not allowed."}if(message.data.messageID){MyDataHelps.setActionResult(message.data)}else{MyDataHelps.triggerEvent(message.data)}};window.addEventListener("message",receiveWindowMessage,false);MyDataHelps.setActionResult=function(data){messageHandlers[data.messageID](data)};RKStudioClient.setActionResult=function(data){MyDataHelps.setActionResult(data)};MyDataHelps.triggerEvent=function(event){var eventName=event.type;if(supportedEvents.includes(eventName)&&registeredEventHandlers[eventName]){registeredEventHandlers[eventName].forEach(function(handler){handler(event)})}};var refreshTokenPromise=null;MyDataHelps.connect=function(){var refreshDelegatedAccessToken=function(){MyDataHelps.token=null;refreshTokenPromise=new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(tokenResponse){if(tokenResponse.success){MyDataHelps.tokenExpires=Date.now()+tokenResponse.data.expires_in*1e3;MyDataHelps.token=tokenResponse.data;MyDataHelps.baseUrl=tokenResponse.baseUrl;window.setTimeout(refreshDelegatedAccessToken,(tokenResponse.data.expires_in-accessTokenRenewalBufferSeconds)*1e3);resolve()}else{MyDataHelps.token=null;reject(tokenResponse.message)}messageHandlers[messageID]=null;refreshTokenPromise=null};window.webkit.messageHandlers.GetDelegatedAccessToken.postMessage({messageID:messageID})})};if(MyDataHelps.token&&Date.now()<MyDataHelps.tokenExpires){return Promise.resolve()}if(!refreshTokenPromise){refreshDelegatedAccessToken()}return refreshTokenPromise};MyDataHelps.setParticipantAccessToken=function(token,baseUrl){MyDataHelps.token=token;if(baseUrl){MyDataHelps.baseUrl=baseUrl}MyDataHelps.tokenExpires=Date.now()+token.expires_in*1e3;window.setTimeout(function(){MyDataHelps.triggerEvent({type:"tokenWillExpire"})},(token.expires_in-accessTokenRenewalBufferSeconds)*1e3)};MyDataHelps.completeStep=function(answer){if(answer===undefined||answer===null)answer="";if(window.webkit.messageHandlers.ResearchKit){window.webkit.messageHandlers.ResearchKit.postMessage(answer)}};MyDataHelps.startSurvey=function(surveyName){var messageID=nextMessageID();window.webkit.messageHandlers.StartParticipantSurvey.postMessage({messageID:messageID,surveyName:surveyName})};MyDataHelps.openExternalUrl=function(url){window.webkit.messageHandlers.OpenExternalLink.postMessage(url)};MyDataHelps.openEmbeddedUrl=function(url){window.webkit.messageHandlers.OpenEmbeddedLink.postMessage(url)};MyDataHelps.openApplication=function(url,options){var messageID=nextMessageID();window.webkit.messageHandlers.OpenExternalApplication.postMessage({messageID:messageID,url:url,modal:options&&options.modal?true:false})};MyDataHelps.dismiss=function(){window.webkit.messageHandlers.Dismiss.postMessage({})};MyDataHelps.back=function(){window.webkit.messageHandlers.PopNavigation.postMessage({})};MyDataHelps.showTab=function(tabKey){window.webkit.messageHandlers.ShowTab.postMessage(tabKey)};MyDataHelps.showDashboard=function(dashboardKey,options){window.webkit.messageHandlers.ShowParticipantDashboard.postMessage({dashboardKey:dashboardKey,modal:options&&options.modal?true:false,title:options&&options.title?options.title:undefined})};MyDataHelps.showWebVisualization=function(visualizationKey,parameters,options){window.webkit.messageHandlers.ShowParticipantWebVisualization.postMessage({visualizationKey:visualizationKey,parameters:parameters,modal:options&&options.modal?true:false,title:options&&options.title?options.title:undefined})};MyDataHelps.showWebVisualizationPdf=function(visualizationKey,parameters,options){window.webkit.messageHandlers.ShowParticipantWebVisualizationPDF.postMessage({visualizationKey:visualizationKey,parameters:parameters,landscape:options&&options.landscape?true:false,htmlViewerZoom:options&&options.htmlViewerZoom})};MyDataHelps.setStatusBarStyle=function(style){if(window.webkit.messageHandlers.SetStatusBarStyle){window.webkit.messageHandlers.SetStatusBarStyle.postMessage({style:style})}};MyDataHelps.requestReview=function(cooldownDays){if(window.webkit.messageHandlers.RequestReview){window.webkit.messageHandlers.RequestReview.postMessage({cooldownDays:cooldownDays})}};MyDataHelps.getDeviceInfo=function(){return new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(deviceInfoResponse){resolve(deviceInfoResponse.data)};if(window.webkit.messageHandlers.GetDeviceInfo){window.webkit.messageHandlers.GetDeviceInfo.postMessage({messageID:messageID})}else{reject()}})};MyDataHelps.deleteExternalAccount=function(accountID){return new Promise(function(resolve,reject){var messageID=nextMessageID();messageHandlers[messageID]=function(deleteProviderAccountResponse){if(!deleteProviderAccountResponse.success){reject(deleteProviderAccountResponse)}else{resolve(deleteProviderAccountResponse)}};if(window.webkit.messageHandlers.DeleteProviderAccount){window.webkit.messageHandlers.DeleteProviderAccount.postMessage({messageID:messageID,accountID:accountID})}else{reject()}})};MyDataHelps.connectExternalAccount=function(externalAccountProviderID){if(window.webkit.messageHandlers.ConnectExternalAccount){window.webkit.messageHandlers.ConnectExternalAccount.postMessage({externalAccountProviderID:externalAccountProviderID})}};MyDataHelps.showProject=function(projectCode){if(window.webkit.messageHandlers.ShowProject){window.webkit.messageHandlers.ShowProject.postMessage({code:projectCode})}};MyDataHelps.joinProject=function(projectCode){if(window.webkit.messageHandlers.JoinProject){window.webkit.messageHandlers.JoinProject.postMessage({code:projectCode})}};MyDataHelps.getCurrentLanguage=function(){var searchParams=new URLSearchParams(window.location.search);if(searchParams.has("lang")){return searchParams.get("lang")}else{return navigator.language}};MyDataHelps.on=function(eventName,eventHandler){if(!supportedEvents.includes(eventName)){throw new Error(eventName+" is not a supported event type.")}if(!registeredEventHandlers[eventName]){registeredEventHandlers[eventName]=[]}registeredEventHandlers[eventName].push(eventHandler)};MyDataHelps.off=function(eventName,eventHandler){if(!supportedEvents.includes(eventName)){throw new Error(eventName+" is not a supported event type.")}if(!registeredEventHandlers[eventName])return;var eventHandlerIndex=registeredEventHandlers[eventName].indexOf(eventHandler);if(eventHandlerIndex!==-1){registeredEventHandlers[eventName].splice(eventHandlerIndex,1)}};var makeUrl=function(endpoint){if(!MyDataHelps.baseUrl){console.error("Cannot use makeUrl without MyDataHelps.baseUrl.");throw"Cannot use makeUrl without MyDataHelps.baseUrl."}return MyDataHelps.baseUrl+apiBasePath+endpoint};var makeRequest=function(endpoint,method,body){if(!MyDataHelps.token||!MyDataHelps.token.access_token){throw"No access_token available for request authorization."}var url=makeUrl(endpoint);var headers=new Headers;headers.append("Authorization","Bearer "+MyDataHelps.token.access_token);headers.append("Accept","application/json, text/javascript, */*; q=0.01");headers.append("Accept-Language",MyDataHelps.getCurrentLanguage());if(!!body){headers.append("Content-Type","application/json")}var init={method:method,headers:headers};if(!!body){init.body=JSON.stringify(body)}return fetch(url,init)};var validateResponse=function(response){if(!response.ok){throw response.statusText}return response};var escapeParam=function(param){return String(param).replace("\\","\\\\").replace(",","\\,")};var reduceArrayAndEscape=function(param){if(Array.isArray(param)){var escapedParams=param.map(function(elem){return escapeParam(elem)});return escapedParams.join(",")}return escapeParam(param)};var convertDateToIsoString=function(date){var paramAsDate=new Date(date);if(isNaN(paramAsDate.getTime())){throw"Cannot interpret parameter as Date"}return paramAsDate.toISOString()};MyDataHelps.getParticipantInfo=function(){var endpoint="participant";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.querySurveyAnswers=function(queryParameters){if(queryParameters.hasOwnProperty("surveyName")){queryParameters.surveyName=reduceArrayAndEscape(queryParameters.surveyName)}if(queryParameters.hasOwnProperty("stepIdentifier")){queryParameters.stepIdentifier=reduceArrayAndEscape(queryParameters.stepIdentifier)}if(queryParameters.hasOwnProperty("resultIdentifier")){queryParameters.resultIdentifier=reduceArrayAndEscape(queryParameters.resultIdentifier)}if(queryParameters.hasOwnProperty("answer")){queryParameters.answer=reduceArrayAndEscape(queryParameters.answer)}if(queryParameters.hasOwnProperty("before")){queryParameters.before=convertDateToIsoString(queryParameters.before)}if(queryParameters.hasOwnProperty("after")){queryParameters.after=convertDateToIsoString(queryParameters.after)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="surveyanswers?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.deleteSurveyResult=function(resultID){var endpoint="surveyresults/"+encodeURIComponent(resultID);return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"DELETE",null)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.queryDeviceData=function(queryParameters){if(queryParameters.hasOwnProperty("type")){queryParameters.type=reduceArrayAndEscape(queryParameters.type)}if(queryParameters.hasOwnProperty("observedBefore")){queryParameters.observedBefore=convertDateToIsoString(queryParameters.observedBefore)}if(queryParameters.hasOwnProperty("observedAfter")){queryParameters.observedAfter=convertDateToIsoString(queryParameters.observedAfter)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="devicedata?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.persistDeviceData=function(deviceDataPoints){var endpoint="devicedata";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"POST",deviceDataPoints)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.trackCustomEvent=function(event){var endpoint="customevents";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"POST",event)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.querySurveyTasks=function(queryParameters){if(queryParameters.hasOwnProperty("status")){queryParameters.status=reduceArrayAndEscape(queryParameters.status)}if(queryParameters.hasOwnProperty("surveyName")){queryParameters.surveyName=reduceArrayAndEscape(queryParameters.surveyName)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="surveytasks?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.queryNotifications=function(queryParameters){if(queryParameters.hasOwnProperty("sentBefore")){queryParameters.sentBefore=convertDateToIsoString(queryParameters.sentBefore)}if(queryParameters.hasOwnProperty("sentAfter")){queryParameters.sentAfter=convertDateToIsoString(queryParameters.sentAfter)}var queryString=new URLSearchParams(queryParameters).toString();var endpoint="notifications?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.getExternalAccountProviders=function(search,category){var searchParameters={};if(!!search)searchParameters.search=search;if(!!category)searchParameters.category=category;var queryString=new URLSearchParams(searchParameters).toString();var endpoint="externalaccountproviders?"+queryString;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.getExternalAccounts=function(){var endpoint="externalaccounts";return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"GET",null)}).then(function(response){return validateResponse(response)}).then(function(response){return response.json()})};MyDataHelps.refreshExternalAccount=function(accountId){var endpoint="externalaccounts/refresh/"+accountId;return MyDataHelps.connect().then(function(){return makeRequest(endpoint,"POST",null)}).then(function(response){return validateResponse(response)}).then(function(response){return})};MyDataHelps.invokeCustomApi=function(customApi,method,queryParameters,jsonResponse){if(customApi.includes("?")){throw new Error('Cannot include query parameters directly in the "customApi" string. Provide as an argument for "queryParameters" instead.')}var endpoint="custom/"+customApi;method=method.toUpperCase();if(queryParameters!==null&&queryParameters!==undefined&&(method==="GET"||method==="DELETE")){var parameterString=new URLSearchParams(queryParameters).toString();endpoint+="?"+parameterString;queryParameters=null}return MyDataHelps.connect().then(function(){return makeRequest(endpoint,method,queryParameters)}).then(function(response){return validateResponse(response)}).then(function(response){return jsonResponse?response.json():undefined})};function getBaseUrl(){return MyDataHelps.baseUrl||"https://mydatahelps.org/"}MyDataHelps.startEmbeddedSurvey=function(linkIdentifier,surveyName,language){if(!language){language=this.getCurrentLanguage()}var surveyUrl=getBaseUrl()+"mydatahelps/"+linkIdentifier+"/surveylink/"+surveyName+"?lang="+language;return startEmbeddedSurvey(surveyUrl)};MyDataHelps.startEmbeddedTask=function(linkIdentifier,taskLinkIdentifier,language){if(!language){language=this.getCurrentLanguage()}var surveyUrl=getBaseUrl()+"mydatahelps/"+linkIdentifier+"/tasklink/"+taskLinkIdentifier+"?lang="+language;return startEmbeddedSurvey(surveyUrl)};function startEmbeddedSurvey(surveyUrl){var mdhSurveyModalId="mydatahelps-survey-modal";return new Promise(function(resolve,reject){if(document.getElementById(mdhSurveyModalId)){reject("Survey already in progress");return}window.addEventListener("message",function listener(message){if(message.origin!==new URL(getBaseUrl()).origin){return}var frame=document.getElementById("mydatahelps-survey-frame").contentWindow;if(message.source!==frame){return}if(message.data.name=="SurveyWindowInitialized"){document.getElementById(mdhSurveyModalId).className+=" loaded"}else if(message.data.name=="SurveyFinished"){document.getElementById(mdhSurveyModalId).remove();document.body.className=document.body.className.replace("no-scroll","");window.removeEventListener("message",listener,true);resolve(message.data)}},true);var surveyModal=document.createElement("div");surveyModal.className="mydatahelps-survey-modal";surveyModal.id=mdhSurveyModalId;surveyModal.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>";document.body.append(surveyModal);document.body.className+=" no-scroll"})}})();export default MyDataHelps;
@@ -1 +1 @@
1
- {"version":3,"sources":["MyDataHelps.js"],"names":["MyDataHelps","RKStudioClient","accessTokenRenewalBufferSeconds","currentMessageID","messageHandlers","registeredEventHandlers","apiBasePath","getParentOrigin","ancestorOrigins","document","location","referrer","URL","origin","acceptableOrigin","allowedApplicationHosts","sourceURL","k","length","hostname","endsWith","applicationHost","console","error","supportedActions","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","DeleteProviderAccount","accountID","ConnectExternalAccount","externalAccountProviderID","unsupportedActions","supportedEvents","windowHasAnyActions","action","nextMessageID","validateWindowMessageOrigin","message","receiveWindowMessage","setActionResult","triggerEvent","addEventListener","event","eventName","type","includes","forEach","handler","refreshTokenPromise","connect","refreshDelegatedAccessToken","token","Promise","resolve","reject","tokenResponse","success","tokenExpires","Date","now","expires_in","baseUrl","setTimeout","startSurvey","openExternalUrl","openEmbeddedUrl","openApplication","options","dismiss","back","showTab","showDashboard","title","undefined","showWebVisualization","setStatusBarStyle","style","SetStatusBarStyle","requestReview","cooldownDays","RequestReview","getDeviceInfo","deviceInfoResponse","deleteExternalAccount","deleteProviderAccountResponse","connectExternalAccount","redirectPath","connectExternalAccountResponse","getCurrentLanguage","searchParams","URLSearchParams","search","has","get","navigator","language","on","eventHandler","Error","push","makeRequest","endpoint","method","body","access_token","headers","Headers","append","init","JSON","stringify","fetch","validateResponse","response","ok","statusText","escapeParam","param","String","replace","reduceArrayAndEscape","Array","isArray","escapedParams","map","elem","join","convertDateToIsoString","date","paramAsDate","isNaN","getTime","toISOString","getParticipantInfo","then","json","querySurveyAnswers","queryParameters","hasOwnProperty","stepIdentifier","resultIdentifier","answer","before","after","queryString","toString","deleteSurveyResult","resultID","encodeURIComponent","queryDeviceData","observedBefore","observedAfter","persistDeviceData","deviceDataPoints","querySurveyTasks","status","queryNotifications","sentBefore","sentAfter"],"mappings":"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"}
1
+ {"version":3,"sources":["MyDataHelps.js"],"names":["MyDataHelps","RKStudioClient","accessTokenRenewalBufferSeconds","currentMessageID","messageHandlers","registeredEventHandlers","apiBasePath","getParentOrigin","ancestorOrigins","document","location","acceptableOrigin","origin","allowedApplicationHosts","sourceURL","URL","k","length","hostname","endsWith","applicationHost","console","error","supportedActions","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","windowHasAnyActions","action","nextMessageID","validateWindowMessageOrigin","message","receiveWindowMessage","setActionResult","triggerEvent","addEventListener","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","undefined","startSurvey","openExternalUrl","openEmbeddedUrl","openApplication","options","dismiss","back","showTab","showDashboard","title","showWebVisualization","showWebVisualizationPdf","setStatusBarStyle","style","SetStatusBarStyle","requestReview","cooldownDays","RequestReview","getDeviceInfo","deviceInfoResponse","deleteExternalAccount","deleteProviderAccountResponse","connectExternalAccount","showProject","projectCode","joinProject","getCurrentLanguage","searchParams","URLSearchParams","search","has","get","navigator","language","on","eventHandler","Error","push","off","eventHandlerIndex","indexOf","splice","makeUrl","endpoint","makeRequest","method","body","access_token","headers","Headers","append","init","JSON","stringify","fetch","validateResponse","response","ok","statusText","escapeParam","param","String","replace","reduceArrayAndEscape","Array","isArray","escapedParams","map","elem","join","convertDateToIsoString","date","paramAsDate","isNaN","getTime","toISOString","getParticipantInfo","then","json","querySurveyAnswers","queryParameters","hasOwnProperty","stepIdentifier","resultIdentifier","before","after","queryString","toString","deleteSurveyResult","resultID","encodeURIComponent","queryDeviceData","observedBefore","observedAfter","persistDeviceData","deviceDataPoints","trackCustomEvent","querySurveyTasks","status","queryNotifications","sentBefore","sentAfter","getExternalAccountProviders","category","searchParameters","getExternalAccounts","refreshExternalAccount","accountId","invokeCustomApi","customApi","jsonResponse","toUpperCase","parameterString","getBaseUrl","startEmbeddedSurvey","linkIdentifier","this","surveyUrl","startEmbeddedTask","taskLinkIdentifier","mdhSurveyModalId","getElementById","listener","frame","contentWindow","source","className","remove","removeEventListener","surveyModal","createElement","id","innerHTML"],"mappings":"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"}
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- The MyDataHelps.js SDK provides the essential infrastructure for building applications that your study participants will use in MyDataHelps. Your application can easily read and write participants' data, navigate them to other tabs, open survey tasks, and several other useful operations.
5
+ The MyDataHelps.js SDK provides the essential infrastructure for building applications that your project participants will use in MyDataHelps. Your application can easily read and write participants' data, navigate them to other tabs, open survey tasks, and several other useful operations.
6
6
 
7
7
  The SDK can be used to create interactive dashboards, personalized by participants' survey responses and other available information.
8
8
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@careevolution/mydatahelps-js",
3
- "version": "1.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "MyDataHelps client to be used by external applications for integrations inside the MyDataHelps platform",
5
5
  "main": "MyDataHelps.js",
6
6
  "scripts": {