@arrowhealth/bridge-sdk
Version:
Bridge SDK provides web applications the ability to integrate with the Bridge Platform.
413 lines (387 loc) • 10.8 kB
JavaScript
/* Bridge SDK provided by Arrow Health 2021-present. All rights reserved. */
const e = "bridge::", n = !(!window.opener || window.opener === window), t = !n && window.parent !== window, o = (window.name + "").includes("bridge_"), u = {
CAPTURE_USER_EVENTS: e + "capture_user_events",
CLEAR_CACHE: e + "clear_cache",
CLOSE_APP: e + "close_app",
DISABLE_TILE: e + "disable_tile",
ENABLE_TILE: e + "enable_tile",
GET_AUTH_STATUS: e + "get_auth_status",
GET_AUTH_USER: e + "get_auth_user",
GET_ORG: e + "get_org",
GET_PAGE: e + "get_page",
GET_PAGE_DETAILS: e + "get_page_details",
GET_PATIENT_INFO: e + "get_patient",
GET_PLATFORM: e + "get_platform",
GET_USER_SESSION: e + "get_user_session",
HIDE_TILE: e + "hide_tile",
LOGIN: e + "login",
LOGOUT: e + "logout",
OPEN_APP: e + "open_app",
PROXY_READY: e + "proxy_ready",
PUSH_NOTIFICATION: e + "push_notification",
RELEASE_USER_EVENTS: e + "release_user_events",
SET_AUTH_STATUS: e + "set_auth_status",
SET_AUTH_USER: e + "set_auth_user",
SET_BADGE_COUNT: e + "set_badge_count",
SET_ORG: e + "set_org",
SET_PATIENT_INFO: e + "set_patient",
SHOW_TILE: e + "show_tile"
};
var r;
function E(e, n, t, o) {
return new (t || (t = Promise))((function(u, r) {
function E(e) {
try {
a(o.next(e));
} catch (e) {
r(e);
}
}
function i(e) {
try {
a(o.throw(e));
} catch (e) {
r(e);
}
}
function a(e) {
var n;
e.done ? u(e.value) : (n = e.value, n instanceof t ? n : new t((function(e) {
e(n);
}))).then(E, i);
}
a((o = o.apply(e, n || [])).next());
}));
}
!function(e) {
e.Other = "Other", e.Athena = "Athena", e.eCW = "eCW";
}(r || (r = {})), "function" == typeof SuppressedError && SuppressedError;
const i = "BRIDGE_EVENT", a = (e, n, t) => {
e && e.postMessage ? e.postMessage(JSON.stringify({
data: t,
event: n,
eventType: i
}), "*") : console.warn('[ BRIDGE SDK ] :: emitToChild is missing required "win" param');
}, _ = (e, n) => {
let t = window.parent;
window.opener && (t = window.opener), window !== t ? window.name ? t.postMessage(JSON.stringify({
appId: window.name,
data: n,
event: e,
eventType: i
}), "*") : console.warn("No app id assigned. Cannot post request.") : console.warn("Cannot post message to self. No parent window found.");
}, s = (e, n) => {
const t = e => {
n(e.detail || {});
};
return window.addEventListener(e, t), () => window.removeEventListener(e, t);
};
function T() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_AUTH_USER, (({data: t}) => {
n(), e(t);
}));
_(u.GET_AUTH_USER);
}));
}
function p(e = !1) {
return new Promise((n => {
o || n(null);
const t = s(u.GET_PAGE, (({data: e}) => {
t(), n(e);
}));
_(u.GET_PAGE, {
deep: e
});
}));
}
function c() {
return E(this, void 0, void 0, (function*() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_PATIENT_INFO, (({data: t}) => {
n(), e(t);
}));
_(u.GET_PATIENT_INFO);
}));
}));
}
function d() {
return E(this, void 0, void 0, (function*() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_PLATFORM, (({data: t}) => {
n(), e(t);
}));
_(u.GET_PLATFORM);
}));
}));
}
function S(e = 0) {
_(u.SET_BADGE_COUNT, e);
}
function A() {
_(u.SHOW_TILE);
}
function I() {
_(u.HIDE_TILE);
}
function f() {
_(u.ENABLE_TILE);
}
function R() {
_(u.DISABLE_TILE);
}
function l() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_AUTH_STATUS, (({data: t}) => {
n(), e(t || "ready");
}));
_(u.GET_AUTH_STATUS);
}));
}
function G(e) {
_(u.SET_AUTH_STATUS, e);
}
function w() {
_(u.CAPTURE_USER_EVENTS);
}
function O() {
_(u.RELEASE_USER_EVENTS);
}
function P() {
_(u.CLOSE_APP);
}
function U(e) {
_(u.PUSH_NOTIFICATION, e);
}
function N(e) {
return s(u.SET_PATIENT_INFO, (n => e(n.data)));
}
window.addEventListener("message", (e => {
let n;
try {
"string" == typeof e.data && (n = JSON.parse(e.data), n.win = e.source, n.eventType === i && window.dispatchEvent(new CustomEvent(n.event, {
detail: n
})));
} catch (e) {}
}), !1);
var L = Object.freeze({
__proto__: null,
clearCache: function() {
_(u.CLEAR_CACHE);
},
getOrg: function() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_ORG, (({data: t}) => {
n(), e(t);
}));
_(u.GET_ORG);
}));
},
getRuntimeDetails: function() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_PAGE_DETAILS, (({data: t}) => {
n(), e(t);
}));
_(u.GET_PAGE_DETAILS);
}));
},
getUserSession: function() {
return new Promise((e => {
o || e(null);
const n = s(u.GET_USER_SESSION, (({data: t}) => {
n(), e(t);
}));
_(u.GET_USER_SESSION);
}));
},
login: function(e, n, t) {
return new Promise((r => {
o || r(null);
const E = s(u.LOGIN, (({data: e}) => {
E(), r(e);
}));
_(u.LOGIN, {
realm: e,
user: n,
pw: t
});
}));
},
logout: function() {
return new Promise((e => {
o || e(null);
const n = s(u.LOGOUT, (() => {
n(), e();
}));
_(u.LOGOUT);
}));
},
openApp: function() {
_(u.OPEN_APP);
},
setAuthUser: function(e) {
_(u.SET_AUTH_USER, e);
},
setOrg: function(e) {
_(u.SET_ORG, e);
}
});
var g = Object.freeze({
__proto__: null,
onCaptureUserEventsRequest: function(e) {
return s(u.CAPTURE_USER_EVENTS, (n => {
e(n.appId);
}));
},
onClearCacheRequest: function(e) {
return s(u.CLEAR_CACHE, (n => {
e(n.appId);
}));
},
onCloseAppRequest: function(e) {
return s(u.CLOSE_APP, (n => {
e(n.appId);
}));
},
onDisableTileRequest: function(e) {
return s(u.DISABLE_TILE, (n => {
e(n.appId);
}));
},
onEnableTileRequest: function(e) {
return s(u.ENABLE_TILE, (n => {
e(n.appId);
}));
},
onGetAuthStatusRequest: function(e) {
return s(u.GET_AUTH_STATUS, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}), n.data);
}));
},
onGetAuthUserRequest: function(e) {
return s(u.GET_AUTH_USER, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onGetOrgRequest: function(e) {
return s(u.GET_ORG, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onGetPageRequest: function(e) {
return s(u.GET_PAGE, (n => {
var t;
e(n.appId, !!(null === (t = n.data) || void 0 === t ? void 0 : t.deep), (e => {
a(n.win, n.event, e);
}));
}));
},
onGetPatientRequest: function(e) {
return s(u.GET_PATIENT_INFO, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onGetPlatformRequest: function(e) {
return s(u.GET_PLATFORM, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onGetRuntimeDetailsRequest: function(e) {
return s(u.GET_PAGE_DETAILS, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onGetUserSessionRequest: function(e) {
return s(u.GET_USER_SESSION, (n => {
e(n.appId, (e => {
a(n.win, n.event, e);
}));
}));
},
onHideTileRequest: function(e) {
return s(u.HIDE_TILE, (n => {
e(n.appId);
}));
},
onLoginRequest: function(e) {
return s(u.LOGIN, (n => {
e(n.appId, n.data.realm, n.data.user, n.data.pw, (e => {
a(n.win, n.event, e);
}));
}));
},
onLogoutRequest: function(e) {
return s(u.LOGOUT, (n => {
e(n.appId, (() => a(n.win, n.event)));
}));
},
onOpenAppRequest: function(e) {
return s(u.OPEN_APP, (n => {
e(n.appId);
}));
},
onProxyReady: function(e) {
return s(u.PROXY_READY, (n => {
e(n.appId);
}));
},
onPushNotificationRequest: function(e) {
return s(u.PUSH_NOTIFICATION, (n => {
e(n.appId, n.data);
}));
},
onReleaseUserEventsRequest: function(e) {
return s(u.RELEASE_USER_EVENTS, (n => {
e(n.appId);
}));
},
onSetAuthStatusRequest: function(e) {
return s(u.SET_AUTH_STATUS, (n => {
e(n.appId, n.data);
}));
},
onSetAuthUserRequest: function(e) {
return s(u.SET_AUTH_USER, (n => {
e(n.appId, n.data);
}));
},
onSetBadgeCountRequest: function(e) {
return s(u.SET_BADGE_COUNT, (n => {
const t = n.data;
e(n.appId, t || 0);
}));
},
onSetOrgRequest: function(e) {
return s(u.SET_ORG, (n => {
e(n.appId, n.data);
}));
},
onShowTileRequest: function(e) {
return s(u.SHOW_TILE, (n => {
e(n.appId);
}));
},
setPatient: function(e, n) {
a(e, u.SET_PATIENT_INFO, n);
}
});
const v = n, C = t, h = o, m = "2.7.1";
export { g as $, L as $$, r as PlatformKind, w as captureUserEvents, P as closeApp, R as disableTile, f as enableTile, l as getAuthStatus, T as getAuthUser, p as getPage, c as getPatient, d as getPlatform, I as hideTile, h as inBridge, C as inIframe, v as inPopout, N as onPatientChanged, U as pushNotification, O as releaseUserEvents, G as setAuthStatus, S as setBadgeCount, A as showTile, m as version };