UNPKG

@arrowhealth/bridge-sdk

Version:

Bridge SDK provides web applications the ability to integrate with the Bridge Platform.

413 lines (387 loc) 10.8 kB
/* 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 };