@descope/outbound-applications-widget 0.4.4 → 0.5.1
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/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +401 -301
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
|
-
* @descope/outbound-applications-widget v0.
|
|
3
|
+
* @descope/outbound-applications-widget v0.5.1
|
|
4
4
|
*/
|
|
5
|
-
import{__awaiter as t,__classPrivateFieldGet as e,__classPrivateFieldSet as i}from"tslib";import{createTemplate as s,kebabCase as o,createSingletonMixin as n,compose as d,withMemCache as r}from"@descope/sdk-helpers";import{projectIdMixin as a,observeAttributesMixin as l,loggerMixin as c,cookieConfigMixin as u,baseUrlMixin as p,DEFAULT_STYLE_ID as h,createStateManagementMixin as f,initLifecycleMixin as v,localeMixin as g,modalMixin as m,themeMixin as b,descopeUiMixin as w,initElementMixin as y,createFetchWidgetPagesMixin as A,debuggerMixin as I}from"@descope/sdk-mixins";import{FlowDriver as C,OutboundAppsListDriver as k}from"@descope/sdk-component-drivers";import{createAsyncThunk as O}from"@reduxjs/toolkit";import j from"@descope/web-js-sdk";import{createSelector as S}from"reselect";const x=(t={})=>{const e=s("<descope-wc></descope-wc>");return Object.entries(t).forEach((([t,i])=>{e.content.querySelector("descope-wc").setAttribute(o(t),i)})),e};function U(t){return new URLSearchParams(window.location.search).get(t)}const R=t=>(...e)=>i=>{i.addCase(t.pending,((t,i)=>{e.forEach((({onPending:e})=>{null==e||e(t,i)}))})),i.addCase(t.fulfilled,((t,i)=>{e.forEach((({onFulfilled:e})=>{null==e||e(t,i)}))})),i.addCase(t.rejected,((t,i)=>{e.forEach((({onRejected:e})=>{null==e||e(t,i)}))}))},W=t=>({onFulfilled:e=>{t(e).loading=!1},onPending:e=>{t(e).loading=!0,t(e).error=null},onRejected:(e,i)=>{t(e).loading=!1,t(e).error=i.error}}),M=O("outboundApps/load",((t,{extra:{api:e}})=>e.outboundApps.getAllOutboundApps())),E=R(M)({onFulfilled:(t,e)=>{var i;t.outboundAppsList.data=null===(i=e.payload)||void 0===i?void 0:i.apps}},W((t=>t.outboundAppsList))),L={action:M,reducer:E},P=O("outboundApps/getConnectedOutboundApps",((t,{extra:{api:e}})=>e.outboundApps.getConnectedOutboundApps(t))),F=R(P)({onFulfilled:(t,e)=>{var i;t.connectedOutboundAppsIds.data=null===(i=e.payload)||void 0===i?void 0:i.appIds}},W((t=>t.connectedOutboundAppsIds))),N={action:P,reducer:F},q={outboundAppsList:{data:[],loading:!1,error:null},connectedOutboundAppsIds:{data:[],loading:!1,error:null},allowedAppsIds:{data:void 0},me:{loading:!1,error:null,data:{}}},D={allOutboundApps:"/v1/mgmt/outbound/apps",connectedOutboundApps:"/v1/mgmt/outbound/apps-with-user-token"},T={me:"/v1/auth/me"},$=e=>t(void 0,void 0,void 0,(function*(){const t=yield e.text(),i=JSON.parse(t);if(!e.ok){const t=`${i.errorDescription}${i.errorMessage?`: ${i.errorMessage}`:""}`;throw Error(t||`${e.status} ${e.statusText}`)}e.json=()=>Promise.resolve(i),e.text=()=>Promise.resolve(t)})),H=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({apps:[{id:"appId1",name:"Application 1",description:"Description"},{id:"appId2",name:"Application 2",description:"Description"},{id:"appId3",name:"Application 3",description:"Description"}]})}))})),B=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({apps:["outboundApp3"]})}))})),J=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({userId:"user-1"})}))})),z=({httpClient:e,mock:i})=>({getAllOutboundApps:()=>t(void 0,void 0,void 0,(function*(){if(i)return H();const t=yield e.get(D.allOutboundApps);return yield $(t),t.json()})),getConnectedOutboundApps:s=>t(void 0,[s],void 0,(function*({userId:t,tenantId:s}){if(i)return B();const o=yield e.get(D.connectedOutboundApps,{queryParams:s?{userId:t,tenantId:s}:{userId:t}});return yield $(o),o.json()}))}),G=({httpClient:e,mock:i})=>({me:()=>t(void 0,void 0,void 0,(function*(){if(i)return J();const t=yield e.get(T.me);return yield $(t),t.json()}))}),K=n((s=>{var o,n,r,f;const v=d(a,l,c,u,p)(s);return f=class extends v{constructor(){super(...arguments),o.add(this),n.set(this,void 0)}get tenantId(){return this.getAttribute("tenant")}get widgetId(){return this.getAttribute("widget-id")}get mock(){return this.getAttribute("mock")}get styleId(){return this.getAttribute("style-id")||h}get api(){return e(this,n,"f")||e(this,o,"m",r).call(this),e(this,n,"f")}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this),this.observeAttributes(["project-id","base-url"],(()=>{e(this,n,"f")&&e(this,o,"m",r).call(this)}))}))}},n=new WeakMap,o=new WeakSet,r=function(){this.logger.debug("creating an sdk instance"),i(this,n,((t,e,i)=>{const s=j(Object.assign(Object.assign({},t),{persistTokens:!0,baseHeaders:{"x-descope-widget-type":"outbound-applications-widget","x-descope-widget-id":i,"x-descope-widget-version":"0.4.4"}}));return{outboundApps:z({httpClient:s.httpClient,mock:e}),user:Object.assign({},G({httpClient:s.httpClient,mock:e}))}})({projectId:this.projectId,baseUrl:this.baseUrl,refreshCookieName:this.refreshCookieName},"true"===this.mock,this.widgetId),"f")},f})),Q=O("users/me",((t,{extra:{api:e}})=>e.user.me())),V={action:Q,reducer:R(Q)({onFulfilled:(t,e)=>{t.me.data=e.payload}},W((t=>t.me)))},X=n((t=>{const e=d(f({name:"widget",initialState:q,reducers:{setAllowedAppsIds:(t,{payload:e})=>{t.allowedAppsIds.data=e}},extraReducers:t=>{V.reducer(t),N.reducer(t),L.reducer(t)},asyncActions:{getMe:V.action,getOutboundApps:L.action,getConnectedOutboundApps:N.action}}),v,c,K)(t);return class extends e{constructor(...t){super(...t),this.state=q,this.subscribe((t=>{this.logger.debug("State update:",t),this.state=t}))}}})),Y="widget-flow",Z=n((i=>{var s,o,n;return n=class extends(d(g,v,m,X,u,c,b)(i)){constructor(){super(...arguments),s.add(this)}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this);const n=U(Y);n&&(!function(t){if(window.history.replaceState&&U(t)){const e=new URL(window.location.href),i=new URLSearchParams(e.search);i.delete(t),e.search=i.toString(),window.history.replaceState({},"",e.toString())}}(Y),e(this,s,"m",o).call(this,n))}))}},s=new WeakSet,o=function(t){const e=this.createModal({"data-id":"redirect-flow"});e.setContent(x({locale:this.locale,projectId:this.projectId,flowId:t,baseUrl:this.baseUrl,baseStaticUrl:this.baseStaticUrl,baseCdnUrl:this.baseCdnUrl,refreshCookieName:this.refreshCookieName,theme:this.theme,"style-id":this.styleId}));new C((()=>{var t;return null===(t=e.ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}).onSuccess((()=>{e.close(),this.actions.getMe()})),e.afterClose=()=>{e.remove()},e.open()},n})),_=S((t=>t.outboundAppsList.data),(t=>t.connectedOutboundAppsIds.data),(t=>t.allowedAppsIds.data),((t,e,i)=>t.filter((t=>void 0===i||i.includes(t.id))).map((t=>{const i=(null==e?void 0:e.includes(t.id))||!1;return Object.assign(Object.assign({},t),{appId:t.id,isConnected:i})})).sort(((t,e)=>t.name.localeCompare(e.name))))),tt=S((t=>t.me.data),(t=>t.userId)),et=n((i=>{var o,n,r,a,l;return l=class extends(d(c,v,w,y,A("outbound-applications-widget"),X)(i)){constructor(){super(...arguments),o.add(this)}static get observedAttributes(){return["allowed-outbound-apps-ids"]}attributeChangedCallback(t,i,s){"allowed-outbound-apps-ids"===t&&i!==s&&this.actions.setAllowedAppsIds(e(this,o,"a",a))}onWidgetRootReady(){return t(this,void 0,void 0,(function*(){}))}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this),yield this.actions.getMe(),yield this.actions.setAllowedAppsIds(e(this,o,"a",a)),yield Promise.all([this.actions.getOutboundApps(),this.actions.getConnectedOutboundApps({userId:tt(this.state),tenantId:this.tenantId})]);const s=yield e(this,o,"m",n).call(this);e(this,o,"m",r).call(this,s),yield this.onWidgetRootReady(),this.dispatchEvent(new CustomEvent("ready"))}))}},o=new WeakSet,n=function(){return t(this,void 0,void 0,(function*(){const t=s(yield this.fetchWidgetPage("root.html"));return yield this.loadDescopeUiComponents(t),t}))},r=function(t){this.contentRootElement.append(t.content.cloneNode(!0))},a=function(){var t;if(!this.hasAttribute("allowed-outbound-apps-ids"))return;const e=null===(t=this.getAttribute("allowed-outbound-apps-ids"))||void 0===t?void 0:t.trim();return e?e.split(",").map((t=>t.trim())).filter(Boolean):[]},l})),it=n((t=>class extends(d(b,l)(t)){syncFlowTheme(t){t.theme=this.theme,this.observeAttributes(["theme"],(()=>{t.theme=this.theme}))}})),st=n((s=>{var o,n,a,l,u,p,h,f,v,b,w,y,A,I,O,j,S;return S=class extends(d(g,it,X,c,et,m)(s)){constructor(){super(...arguments),o.add(this),n.set(this,void 0),a.set(this,void 0),l.set(this,void 0),u.set(this,void 0),p.set(this,void 0),h.set(this,null),f.set(this,null),j.set(this,r((t=>{e(this,n,"f").data=t})))}onWidgetRootReady(){const i=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.onWidgetRootReady)||void 0===t?void 0:t.call(this),e(this,o,"m",O).call(this,_(this.state)),e(this,o,"m",v).call(this),e(this,o,"m",y).call(this),this.subscribe(e(this,j,"f").bind(this),_)}))}},n=new WeakMap,a=new WeakMap,l=new WeakMap,u=new WeakMap,p=new WeakMap,h=new WeakMap,f=new WeakMap,j=new WeakMap,o=new WeakSet,v=function(){e(this,n,"f").connectFlowId&&(i(this,a,this.createModal({"data-id":"outbound-apps-connect"}),"f"),e(this,a,"f").afterClose=()=>{var t;if(e(this,h,"f")){const s=null===(t=e(this,a,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc");null==s||s.removeEventListener("page-updated",e(this,h,"f")),i(this,h,null,"f")}},i(this,u,new C((()=>{var t;return null===(t=e(this,a,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}),"f"),this.syncFlowTheme(e(this,u,"f")))},b=function(t,e,i){t.open(),e.removeEventListener("page-updated",i)},w=function(t,i){var s;const n=null===(s=t.ele)||void 0===s?void 0:s.querySelector("descope-wc"),d=()=>e(this,o,"m",b).call(this,t,n,d);i=d,null==n||n.addEventListener("page-updated",i)},y=function(){i(this,l,this.createModal({"data-id":"outbound-apps-disconnect"}),"f"),i(this,p,new C((()=>{var t;return null===(t=e(this,l,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}),"f"),e(this,l,"f").afterClose=()=>{var t;if(e(this,f,"f")){const s=null===(t=e(this,l,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc");null==s||s.removeEventListener("page-updated",e(this,f,"f")),i(this,f,null,"f")}},this.syncFlowTheme(e(this,p,"f"))},A=function(t){e(this,a,"f").setContent(x({locale:this.locale,projectId:this.projectId,flowId:e(this,n,"f").connectFlowId,baseUrl:this.baseUrl,baseStaticUrl:this.baseStaticUrl,baseCdnUrl:this.baseCdnUrl,refreshCookieName:this.refreshCookieName,theme:this.theme,"style-id":this.styleId,outboundAppId:t})),e(this,o,"m",w).call(this,e(this,a,"f"),e(this,h,"f")),e(this,u,"f").onSuccess((()=>{e(this,a,"f").close(),this.actions.getConnectedOutboundApps({userId:tt(this.state),tenantId:this.tenantId})}))},I=function(t){e(this,l,"f").setContent(x({locale:this.locale,projectId:this.projectId,flowId:e(this,n,"f").disconnectFlowId,baseUrl:this.baseUrl,baseStaticUrl:this.baseStaticUrl,baseCdnUrl:this.baseCdnUrl,refreshCookieName:this.refreshCookieName,theme:this.theme,"style-id":this.styleId,outboundAppId:t})),e(this,o,"m",w).call(this,e(this,l,"f"),e(this,f,"f")),e(this,p,"f").onSuccess((()=>{e(this,l,"f").close(),this.actions.getConnectedOutboundApps({userId:tt(this.state)})}))},O=function(t){i(this,n,new k((()=>{var t;return null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("descope-outbound-apps")}),{logger:this.logger}),"f"),e(this,n,"f").onConnectClick((({id:t})=>{e(this,o,"m",A).call(this,t)})),e(this,n,"f").onDisconnectClick((({id:t})=>{e(this,o,"m",I).call(this,t)})),e(this,n,"f").data=t},S})),ot=n((e=>class extends(d(I,b,Z,st)(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this)}))}})),nt=d((e=>class extends(ot(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this);(customElements.get("descope-wc")||(yield import("@descope/web-component").then((t=>t.default)))).sdkConfigOverrides={baseHeaders:{"x-descope-widget-type":"outbound-applications-widget","x-descope-widget-id":this.getAttribute("widget-id"),"x-descope-widget-version":"0.4.4"}}}))}}))(HTMLElement);customElements.define("descope-outbound-applications-widget",nt);export{nt as default};
|
|
5
|
+
import{__awaiter as t,__classPrivateFieldGet as e,__classPrivateFieldSet as i}from"tslib";import{createSingletonMixin as o,compose as s,createTemplate as n,withMemCache as d}from"@descope/sdk-helpers";import{projectIdMixin as r,observeAttributesMixin as a,loggerMixin as l,cookieConfigMixin as c,baseUrlMixin as u,DEFAULT_STYLE_ID as p,createStateManagementMixin as h,initLifecycleMixin as v,localeMixin as f,modalMixin as g,themeMixin as m,flowInputMixin as b,descopeUiMixin as w,initElementMixin as A,createFetchWidgetPagesMixin as y,debuggerMixin as I}from"@descope/sdk-mixins";import{FlowDriver as k,OutboundAppsListDriver as C}from"@descope/sdk-component-drivers";import{createAsyncThunk as O}from"@reduxjs/toolkit";import x from"@descope/web-js-sdk";import{createSelector as j}from"reselect";function S(t){return new URLSearchParams(window.location.search).get(t)}const R=t=>(...e)=>i=>{i.addCase(t.pending,((t,i)=>{e.forEach((({onPending:e})=>{null==e||e(t,i)}))})),i.addCase(t.fulfilled,((t,i)=>{e.forEach((({onFulfilled:e})=>{null==e||e(t,i)}))})),i.addCase(t.rejected,((t,i)=>{e.forEach((({onRejected:e})=>{null==e||e(t,i)}))}))},W=t=>({onFulfilled:e=>{t(e).loading=!1},onPending:e=>{t(e).loading=!0,t(e).error=null},onRejected:(e,i)=>{t(e).loading=!1,t(e).error=i.error}}),M=O("outboundApps/load",((t,{extra:{api:e}})=>e.outboundApps.getAllOutboundApps())),E=R(M)({onFulfilled:(t,e)=>{var i;t.outboundAppsList.data=null===(i=e.payload)||void 0===i?void 0:i.apps}},W((t=>t.outboundAppsList))),F={action:M,reducer:E},L=O("outboundApps/getConnectedOutboundApps",((t,{extra:{api:e}})=>e.outboundApps.getConnectedOutboundApps(t))),P=R(L)({onFulfilled:(t,e)=>{var i;t.connectedOutboundAppsIds.data=null===(i=e.payload)||void 0===i?void 0:i.appIds}},W((t=>t.connectedOutboundAppsIds))),T={action:L,reducer:P},q={outboundAppsList:{data:[],loading:!1,error:null},connectedOutboundAppsIds:{data:[],loading:!1,error:null},allowedAppsIds:{data:void 0},me:{loading:!1,error:null,data:{}}},D={allOutboundApps:"/v1/mgmt/outbound/apps",connectedOutboundApps:"/v1/mgmt/outbound/apps-with-user-token"},U={me:"/v1/auth/me"},$=e=>t(void 0,void 0,void 0,(function*(){const t=yield e.text(),i=JSON.parse(t);if(!e.ok){const t=`${i.errorDescription}${i.errorMessage?`: ${i.errorMessage}`:""}`;throw Error(t||`${e.status} ${e.statusText}`)}e.json=()=>Promise.resolve(i),e.text=()=>Promise.resolve(t)})),N=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({apps:[{id:"appId1",name:"Application 1",description:"Description"},{id:"appId2",name:"Application 2",description:"Description"},{id:"appId3",name:"Application 3",description:"Description"}]})}))})),H=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({apps:["outboundApp3"]})}))})),B=()=>t(void 0,void 0,void 0,(function*(){return new Promise((t=>{t({userId:"user-1"})}))})),J=({httpClient:e,mock:i})=>({getAllOutboundApps:()=>t(void 0,void 0,void 0,(function*(){if(i)return N();const t=yield e.get(D.allOutboundApps);return yield $(t),t.json()})),getConnectedOutboundApps:o=>t(void 0,[o],void 0,(function*({userId:t,tenantId:o}){if(i)return H();const s=yield e.get(D.connectedOutboundApps,{queryParams:o?{userId:t,tenantId:o}:{userId:t}});return yield $(s),s.json()}))}),z=({httpClient:e,mock:i})=>({me:()=>t(void 0,void 0,void 0,(function*(){if(i)return B();const t=yield e.get(U.me);return yield $(t),t.json()}))}),G=o((o=>{var n,d,h,v;const f=s(r,a,l,c,u)(o);return v=class extends f{constructor(){super(...arguments),n.add(this),d.set(this,void 0)}get tenantId(){return this.getAttribute("tenant")}get widgetId(){return this.getAttribute("widget-id")}get mock(){return this.getAttribute("mock")}get styleId(){return this.getAttribute("style-id")||p}get api(){return e(this,d,"f")||e(this,n,"m",h).call(this),e(this,d,"f")}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this),this.observeAttributes(["project-id","base-url"],(()=>{e(this,d,"f")&&e(this,n,"m",h).call(this)}))}))}},d=new WeakMap,n=new WeakSet,h=function(){this.logger.debug("creating an sdk instance"),i(this,d,((t,e,i)=>{const o=x(Object.assign(Object.assign({},t),{persistTokens:!0,baseHeaders:{"x-descope-widget-type":"outbound-applications-widget","x-descope-widget-id":i,"x-descope-widget-version":"0.5.1"}}));return{outboundApps:J({httpClient:o.httpClient,mock:e}),user:Object.assign({},z({httpClient:o.httpClient,mock:e}))}})({projectId:this.projectId,baseUrl:this.baseUrl,refreshCookieName:this.refreshCookieName},"true"===this.mock,this.widgetId),"f")},v})),K=O("users/me",((t,{extra:{api:e}})=>e.user.me())),Q={action:K,reducer:R(K)({onFulfilled:(t,e)=>{t.me.data=e.payload}},W((t=>t.me)))},V=o((t=>{const e=s(h({name:"widget",initialState:q,reducers:{setAllowedAppsIds:(t,{payload:e})=>{t.allowedAppsIds.data=e}},extraReducers:t=>{Q.reducer(t),T.reducer(t),F.reducer(t)},asyncActions:{getMe:Q.action,getOutboundApps:F.action,getConnectedOutboundApps:T.action}}),v,l,G)(t);return class extends e{constructor(...t){super(...t),this.state=q,this.subscribe((t=>{this.logger.debug("State update:",t),this.state=t}))}}})),X="widget-flow",Y=o((i=>{var o,n,d;return d=class extends(s(f,v,g,V,c,l,m,b)(i)){constructor(){super(...arguments),o.add(this)}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this);const s=S(X);s&&(!function(t){if(window.history.replaceState&&S(t)){const e=new URL(window.location.href),i=new URLSearchParams(e.search);i.delete(t),e.search=i.toString(),window.history.replaceState({},"",e.toString())}}(X),e(this,o,"m",n).call(this,s))}))}},o=new WeakSet,n=function(t){const e=this.createModal({"data-id":"redirect-flow"});e.setContent(this.createFlowTemplate({flowId:t}));new k((()=>{var t;return null===(t=e.ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}).onSuccess((()=>{e.close(),this.actions.getMe()})),e.afterClose=()=>{e.remove()},e.open()},d})),Z=j((t=>t.outboundAppsList.data),(t=>t.connectedOutboundAppsIds.data),(t=>t.allowedAppsIds.data),((t,e,i)=>t.filter((t=>void 0===i||i.includes(t.id))).map((t=>{const i=(null==e?void 0:e.includes(t.id))||!1;return Object.assign(Object.assign({},t),{appId:t.id,isConnected:i})})).sort(((t,e)=>t.name.localeCompare(e.name))))),_=j((t=>t.me.data),(t=>t.userId)),tt=o((i=>{var o,d,r,a,c;return c=class extends(s(l,v,w,A,y("outbound-applications-widget"),V)(i)){constructor(){super(...arguments),o.add(this)}static get observedAttributes(){return["allowed-outbound-apps-ids"]}attributeChangedCallback(t,i,s){"allowed-outbound-apps-ids"===t&&i!==s&&this.actions.setAllowedAppsIds(e(this,o,"a",a))}onWidgetRootReady(){return t(this,void 0,void 0,(function*(){}))}init(){const i=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.init)||void 0===t?void 0:t.call(this),yield this.actions.getMe(),yield this.actions.setAllowedAppsIds(e(this,o,"a",a)),yield Promise.all([this.actions.getOutboundApps(),this.actions.getConnectedOutboundApps({userId:_(this.state),tenantId:this.tenantId})]);const s=yield e(this,o,"m",d).call(this);e(this,o,"m",r).call(this,s),yield this.onWidgetRootReady(),this.dispatchEvent(new CustomEvent("ready"))}))}},o=new WeakSet,d=function(){return t(this,void 0,void 0,(function*(){const t=n(yield this.fetchWidgetPage("root.html"));return yield this.loadDescopeUiComponents(t),t}))},r=function(t){this.contentRootElement.append(t.content.cloneNode(!0))},a=function(){var t;if(!this.hasAttribute("allowed-outbound-apps-ids"))return;const e=null===(t=this.getAttribute("allowed-outbound-apps-ids"))||void 0===t?void 0:t.trim();return e?e.split(",").map((t=>t.trim())).filter(Boolean):[]},c})),et=o((t=>class extends(s(m,a)(t)){syncFlowTheme(t){t.theme=this.theme,this.observeAttributes(["theme"],(()=>{t.theme=this.theme}))}})),it=o((o=>{var n,r,a,c,u,p,h,v,m,w,A,y,I,O,x,j,S;return S=class extends(s(f,et,V,l,tt,g,b)(o)){constructor(){super(...arguments),n.add(this),r.set(this,void 0),a.set(this,void 0),c.set(this,void 0),u.set(this,void 0),p.set(this,void 0),h.set(this,null),v.set(this,null),j.set(this,d((t=>{e(this,r,"f").data=t})))}onWidgetRootReady(){const i=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=i.onWidgetRootReady)||void 0===t?void 0:t.call(this),e(this,n,"m",x).call(this,Z(this.state)),e(this,n,"m",m).call(this),e(this,n,"m",y).call(this),this.subscribe(e(this,j,"f").bind(this),Z)}))}},r=new WeakMap,a=new WeakMap,c=new WeakMap,u=new WeakMap,p=new WeakMap,h=new WeakMap,v=new WeakMap,j=new WeakMap,n=new WeakSet,m=function(){e(this,r,"f").connectFlowId&&(i(this,a,this.createModal({"data-id":"outbound-apps-connect"}),"f"),e(this,a,"f").afterClose=()=>{var t;if(e(this,h,"f")){const o=null===(t=e(this,a,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc");null==o||o.removeEventListener("page-updated",e(this,h,"f")),i(this,h,null,"f")}},i(this,u,new k((()=>{var t;return null===(t=e(this,a,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}),"f"),this.syncFlowTheme(e(this,u,"f")))},w=function(t,e,i){t.open(),e.removeEventListener("page-updated",i)},A=function(t,i){var o;const s=null===(o=t.ele)||void 0===o?void 0:o.querySelector("descope-wc"),d=()=>e(this,n,"m",w).call(this,t,s,d);i=d,null==s||s.addEventListener("page-updated",i)},y=function(){i(this,c,this.createModal({"data-id":"outbound-apps-disconnect"}),"f"),i(this,p,new k((()=>{var t;return null===(t=e(this,c,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc")}),{logger:this.logger}),"f"),e(this,c,"f").afterClose=()=>{var t;if(e(this,v,"f")){const o=null===(t=e(this,c,"f").ele)||void 0===t?void 0:t.querySelector("descope-wc");null==o||o.removeEventListener("page-updated",e(this,v,"f")),i(this,v,null,"f")}},this.syncFlowTheme(e(this,p,"f"))},I=function(t){e(this,a,"f").setContent(this.createFlowTemplate({flowId:e(this,r,"f").connectFlowId,outboundAppId:t})),e(this,n,"m",A).call(this,e(this,a,"f"),e(this,h,"f")),e(this,u,"f").onSuccess((()=>{e(this,a,"f").close(),this.actions.getConnectedOutboundApps({userId:_(this.state),tenantId:this.tenantId})}))},O=function(t){e(this,c,"f").setContent(this.createFlowTemplate({flowId:e(this,r,"f").disconnectFlowId,outboundAppId:t})),e(this,n,"m",A).call(this,e(this,c,"f"),e(this,v,"f")),e(this,p,"f").onSuccess((()=>{e(this,c,"f").close(),this.actions.getConnectedOutboundApps({userId:_(this.state)})}))},x=function(t){i(this,r,new C((()=>{var t;return null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector("descope-outbound-apps")}),{logger:this.logger}),"f"),e(this,r,"f").onConnectClick((({id:t})=>{e(this,n,"m",I).call(this,t)})),e(this,r,"f").onDisconnectClick((({id:t})=>{e(this,n,"m",O).call(this,t)})),e(this,r,"f").data=t},S})),ot=o((e=>class extends(s(I,m,Y,it)(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this)}))}})),st=s((e=>class extends(ot(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return t(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this);(customElements.get("descope-wc")||(yield import("@descope/web-component").then((t=>t.default)))).sdkConfigOverrides={baseHeaders:{"x-descope-widget-type":"outbound-applications-widget","x-descope-widget-id":this.getAttribute("widget-id"),"x-descope-widget-version":"0.5.1"}}}))}}))(HTMLElement);customElements.define("descope-outbound-applications-widget",st);export{st as default};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/lib/widget/mixins/helpers.ts","../../src/lib/widget/state/asyncActions/helpers.ts","../../src/lib/widget/state/asyncActions/getAllOutboundApps.ts","../../src/lib/widget/state/asyncActions/getConnectedOutboundApps.ts","../../src/lib/widget/state/initialState.ts","../../src/lib/widget/api/apiPaths.ts","../../src/lib/widget/api/sdk/helpers.ts","../../src/lib/widget/api/sdk/mocks.ts","../../src/lib/widget/api/sdk/createOutboundAppsSdk.ts","../../src/lib/widget/api/sdk/createUserSdk.ts","../../src/lib/widget/mixins/apiMixin.ts","../../src/lib/widget/api/sdk/index.ts","../../src/lib/widget/state/asyncActions/getMe.ts","../../src/lib/widget/mixins/stateManagementMixin.ts","../../src/lib/widget/mixins/flowRedirectUrlMixin.ts","../../src/lib/widget/state/selectors.ts","../../src/lib/widget/mixins/initMixin/initComponentsMixins/initWidgetRootMixin.ts","../../src/lib/widget/mixins/flowSyncThemeMixin.ts","../../src/lib/widget/mixins/initMixin/initComponentsMixins/initOutboundAppsListMixin.ts","../../src/lib/widget/mixins/initMixin/initMixin.ts","../../src/lib/widget/index.ts","../../src/lib/index.ts"],"sourcesContent":["import { createTemplate, kebabCase } from '@descope/sdk-helpers';\n\ntype FlowConfig = {\n projectId: string;\n flowId: string;\n baseUrl?: string;\n baseStaticUrl?: string;\n baseCdnUrl?: string;\n refreshCookieName?: string;\n theme?: string;\n 'style-id'?: string;\n form?: string;\n outboundAppId?: string;\n locale?: string;\n};\n\nexport const createFlowTemplate = (\n flowConfig: FlowConfig = {} as FlowConfig,\n) => {\n const template = createTemplate(`<descope-wc></descope-wc>`);\n\n Object.entries(flowConfig).forEach(([key, value]) => {\n template.content\n .querySelector('descope-wc')\n .setAttribute(kebabCase(key), value);\n });\n\n return template;\n};\n\nexport function getUrlParam(paramName: string) {\n const urlParams = new URLSearchParams(window.location.search);\n\n return urlParams.get(paramName);\n}\n\nexport function resetUrlParam(paramName: string) {\n if (window.history.replaceState && getUrlParam(paramName)) {\n const newUrl = new URL(window.location.href);\n const search = new URLSearchParams(newUrl.search);\n search.delete(paramName);\n newUrl.search = search.toString();\n window.history.replaceState({}, '', newUrl.toString());\n }\n}\n","/* eslint-disable @typescript-eslint/no-shadow */\n/* eslint-disable no-param-reassign */\n\nimport {\n ActionReducerMapBuilder,\n AsyncThunk,\n PayloadAction,\n SerializedError,\n} from '@reduxjs/toolkit';\nimport { State } from '../types';\n\ntype ExtractedArg<T> = T extends AsyncThunk<any, infer U, any> ? U : never;\n\ntype FulfilledAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n any,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n },\n never\n>;\n\ntype RejectedAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n any,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n },\n SerializedError\n>;\n\ntype PendingAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n unknown,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n }\n>;\n\ntype AsyncReducerConfig<T extends AsyncThunk<any, any, any>> = {\n onFulfilled?: (state: State, action: FulfilledAction<T>) => void;\n onRejected?: (state: State, action: RejectedAction<T>) => void;\n onPending?: (state: State, action: PendingAction<T>) => void;\n};\n\nexport const buildAsyncReducer =\n <T extends AsyncThunk<any, any, any>>(action: T) =>\n (...args: AsyncReducerConfig<T>[]) =>\n (builder: ActionReducerMapBuilder<State>) => {\n builder.addCase(action.pending, (state, action) => {\n args.forEach(({ onPending }) => {\n onPending?.(state, action);\n });\n });\n\n builder.addCase(action.fulfilled, (state, action) => {\n args.forEach(({ onFulfilled }) => {\n onFulfilled?.(state, action);\n });\n });\n\n builder.addCase(action.rejected, (state, action) => {\n args.forEach(({ onRejected }) => {\n onRejected?.(state, action);\n });\n });\n };\n\nexport const withRequestStatus = (\n getStateSection: (state: State) => { loading: boolean; error: unknown },\n): AsyncReducerConfig<any> => ({\n onFulfilled: (state) => {\n getStateSection(state).loading = false;\n },\n onPending: (state) => {\n getStateSection(state).loading = true;\n getStateSection(state).error = null;\n },\n onRejected: (state, action) => {\n getStateSection(state).loading = false;\n getStateSection(state).error = action.error;\n },\n});\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['outboundApps']['getAllOutboundApps']>,\n ThunkConfigExtraApi\n>('outboundApps/load', (arg, { extra: { api } }) =>\n api.outboundApps.getAllOutboundApps(),\n);\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.outboundAppsList.data = action.payload?.apps;\n },\n },\n withRequestStatus((state: State) => state.outboundAppsList),\n);\n\nexport const getAllOutboundApps = { action, reducer };\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['outboundApps']['getConnectedOutboundApps']>,\n ThunkConfigExtraApi\n>('outboundApps/getConnectedOutboundApps', (arg, { extra: { api } }) =>\n api.outboundApps.getConnectedOutboundApps(arg),\n);\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.connectedOutboundAppsIds.data = action.payload?.appIds;\n },\n },\n withRequestStatus((state: State) => state.connectedOutboundAppsIds),\n);\n\nexport const getConnectedOutboundApps = { action, reducer };\n","import { State } from './types';\n\nexport const initialState: State = {\n outboundAppsList: {\n data: [],\n loading: false,\n error: null,\n },\n connectedOutboundAppsIds: {\n data: [],\n loading: false,\n error: null,\n },\n allowedAppsIds: {\n data: undefined,\n },\n me: {\n loading: false,\n error: null,\n data: {},\n },\n};\n","export const apiPaths = {\n outboundApps: {\n allOutboundApps: '/v1/mgmt/outbound/apps',\n connectedOutboundApps: '/v1/mgmt/outbound/apps-with-user-token',\n },\n user: {\n me: '/v1/auth/me',\n },\n};\n","export const withErrorHandler = async (res: Response) => {\n const text = await res.text();\n const json = JSON.parse(text);\n\n if (!res.ok) {\n const descopeErrorMsg = `${json.errorDescription}${\n json.errorMessage ? `: ${json.errorMessage}` : ''\n }`;\n throw Error(descopeErrorMsg || `${res.status} ${res.statusText}`);\n }\n\n res.json = () => Promise.resolve(json);\n res.text = () => Promise.resolve(text);\n};\n","import { User, OutboundApplication } from '../types';\n\nconst getAllOutboundApps: () => Promise<{\n apps: OutboundApplication[];\n}> = async () =>\n new Promise((resolve) => {\n resolve({\n apps: [\n {\n id: 'appId1',\n name: 'Application 1',\n description: 'Description',\n },\n {\n id: 'appId2',\n name: 'Application 2',\n description: 'Description',\n },\n {\n id: 'appId3',\n name: 'Application 3',\n description: 'Description',\n },\n ],\n });\n });\n\nconst getConnectedOutboundApps: () => Promise<{ apps: string[] }> = async () =>\n new Promise((resolve) => {\n resolve({\n apps: ['outboundApp3'],\n });\n });\n\nconst me: () => Promise<User> = async () =>\n new Promise((resolve) => {\n resolve({\n userId: `user-1`,\n });\n });\n\nconst outboundApps = {\n getAllOutboundApps,\n getConnectedOutboundApps,\n};\n\nconst user = {\n me,\n};\n\nexport { outboundApps, user };\n","import { apiPaths } from '../apiPaths';\nimport { HttpClient, User } from '../types';\nimport { withErrorHandler } from './helpers';\nimport { outboundApps } from './mocks';\n\nexport const createOutboundAppsSdk = ({\n httpClient,\n mock,\n}: {\n httpClient: HttpClient;\n mock: boolean;\n userId?: string;\n}) => {\n const getAllOutboundApps = async () => {\n if (mock) {\n return outboundApps.getAllOutboundApps();\n }\n const res = await httpClient.get(apiPaths.outboundApps.allOutboundApps);\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n const getConnectedOutboundApps = async ({ userId, tenantId }: User) => {\n if (mock) {\n return outboundApps.getConnectedOutboundApps();\n }\n\n const res = await httpClient.get(\n apiPaths.outboundApps.connectedOutboundApps,\n {\n queryParams: tenantId ? { userId, tenantId } : { userId },\n },\n );\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n return {\n getAllOutboundApps,\n getConnectedOutboundApps,\n };\n};\n","import { apiPaths } from '../apiPaths';\nimport { HttpClient } from '../types';\nimport { withErrorHandler } from './helpers';\nimport { user } from './mocks';\n\nexport const createUserSdk = ({\n httpClient,\n mock,\n}: {\n httpClient: HttpClient;\n mock: boolean;\n}) => {\n const me = async () => {\n if (mock) {\n return user.me();\n }\n const res = await httpClient.get(apiPaths.user.me);\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n return {\n me,\n };\n};\n","import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n baseUrlMixin,\n cookieConfigMixin,\n DEFAULT_STYLE_ID,\n loggerMixin,\n observeAttributesMixin,\n projectIdMixin,\n} from '@descope/sdk-mixins';\nimport { Sdk, createSdk } from '../api/sdk';\n\nexport const apiMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n projectIdMixin,\n observeAttributesMixin,\n loggerMixin,\n cookieConfigMixin,\n baseUrlMixin,\n )(superclass);\n\n return class ApiMixinClass extends BaseClass {\n #api: Sdk;\n\n #createSdk() {\n this.logger.debug('creating an sdk instance');\n this.#api = createSdk(\n {\n projectId: this.projectId,\n baseUrl: this.baseUrl,\n refreshCookieName: this.refreshCookieName,\n },\n this.mock === 'true',\n this.widgetId,\n );\n }\n\n get tenantId() {\n return this.getAttribute('tenant');\n }\n\n get widgetId() {\n return this.getAttribute('widget-id');\n }\n\n get mock() {\n return this.getAttribute('mock');\n }\n\n get styleId() {\n return this.getAttribute('style-id') || DEFAULT_STYLE_ID;\n }\n\n get api() {\n if (!this.#api) {\n this.#createSdk();\n }\n\n return this.#api;\n }\n\n async init() {\n await super.init?.();\n\n this.observeAttributes(['project-id', 'base-url'], () => {\n if (this.#api) {\n this.#createSdk();\n }\n });\n }\n };\n },\n);\n","import createWebSdk from '@descope/web-js-sdk';\nimport { createOutboundAppsSdk } from './createOutboundAppsSdk';\nimport { createUserSdk } from './createUserSdk';\n\ndeclare const BUILD_VERSION: string;\n\nexport const createSdk = (\n config: Parameters<typeof createWebSdk>[0],\n mock: boolean,\n widgetId?: string,\n) => {\n const webSdk = createWebSdk({\n ...config,\n persistTokens: true,\n baseHeaders: {\n 'x-descope-widget-type': 'outbound-applications-widget',\n 'x-descope-widget-id': widgetId,\n 'x-descope-widget-version': BUILD_VERSION,\n },\n });\n\n return {\n outboundApps: createOutboundAppsSdk({\n httpClient: webSdk.httpClient,\n mock,\n }),\n user: {\n ...createUserSdk({ httpClient: webSdk.httpClient, mock }),\n },\n };\n};\n\nexport type Sdk = ReturnType<typeof createSdk>;\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['user']['me']>,\n ThunkConfigExtraApi\n>('users/me', (arg, { extra: { api } }) => api.user.me());\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.me.data = action.payload;\n },\n },\n withRequestStatus((state: State) => state.me),\n);\n\nexport const getMe = { action, reducer };\n","/* eslint-disable no-param-reassign */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n createStateManagementMixin,\n initLifecycleMixin,\n loggerMixin,\n} from '@descope/sdk-mixins';\nimport {\n getAllOutboundApps,\n getConnectedOutboundApps,\n} from '../state/asyncActions';\nimport { initialState } from '../state/initialState';\nimport { apiMixin } from './apiMixin';\nimport { getMe } from '../state/asyncActions/getMe';\n\nexport const stateManagementMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createStateManagementMixin({\n name: 'widget',\n initialState,\n reducers: {\n setAllowedAppsIds: (state, { payload }) => {\n state.allowedAppsIds.data = payload;\n },\n },\n extraReducers: (builder) => {\n getMe.reducer(builder);\n getConnectedOutboundApps.reducer(builder);\n getAllOutboundApps.reducer(builder);\n },\n asyncActions: {\n getMe: getMe.action,\n getOutboundApps: getAllOutboundApps.action,\n getConnectedOutboundApps: getConnectedOutboundApps.action,\n },\n }),\n initLifecycleMixin,\n loggerMixin,\n apiMixin,\n )(superclass);\n return class StateManagementMixinClass extends BaseClass {\n state = initialState;\n\n constructor(...args: any) {\n super(...args);\n\n this.subscribe((state) => {\n this.logger.debug('State update:', state);\n this.state = state;\n });\n }\n };\n },\n);\n","import { FlowDriver } from '@descope/sdk-component-drivers';\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n localeMixin,\n initLifecycleMixin,\n loggerMixin,\n modalMixin,\n cookieConfigMixin,\n themeMixin,\n} from '@descope/sdk-mixins';\nimport { createFlowTemplate, getUrlParam, resetUrlParam } from './helpers';\nimport { stateManagementMixin } from './stateManagementMixin';\n\nconst REDIRECT_FLOW_NAME_QUERY_PARAM = 'widget-flow';\n\nexport const flowRedirectUrlMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class FlowRedirectUrlMixinClass extends compose(\n localeMixin,\n initLifecycleMixin,\n modalMixin,\n stateManagementMixin,\n cookieConfigMixin,\n loggerMixin,\n themeMixin,\n )(superclass) {\n async init() {\n await super.init?.();\n\n const widgetFlow = getUrlParam(REDIRECT_FLOW_NAME_QUERY_PARAM);\n\n if (widgetFlow) {\n resetUrlParam(REDIRECT_FLOW_NAME_QUERY_PARAM);\n this.#createFlowRedirectModal(widgetFlow);\n }\n }\n\n #createFlowRedirectModal(widgetFlow: string) {\n const modal = this.createModal({ 'data-id': 'redirect-flow' });\n modal.setContent(\n createFlowTemplate({\n locale: this.locale,\n projectId: this.projectId,\n flowId: widgetFlow,\n baseUrl: this.baseUrl,\n baseStaticUrl: this.baseStaticUrl,\n baseCdnUrl: this.baseCdnUrl,\n refreshCookieName: this.refreshCookieName,\n theme: this.theme,\n 'style-id': this.styleId,\n }),\n );\n\n const flow = new FlowDriver(\n () => modal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n flow.onSuccess(() => {\n modal.close();\n this.actions.getMe();\n });\n\n modal.afterClose = () => {\n modal.remove();\n };\n\n modal.open();\n }\n },\n);\n","import { createSelector } from 'reselect';\nimport { State } from './types';\n\nexport const getOutboundAppsList = (state: State) =>\n state.outboundAppsList.data;\n\nexport const getConnectedOutboundAppsList = (state: State) =>\n state.connectedOutboundAppsIds.data;\n\nexport const allowedAppsIds = (state: State) => state.allowedAppsIds.data;\n\nexport const getAppsList = createSelector(\n getOutboundAppsList,\n getConnectedOutboundAppsList,\n allowedAppsIds,\n (obApps, connectedIds, allowedIds) =>\n obApps\n .filter((app) => allowedIds === undefined || allowedIds.includes(app.id))\n .map((app) => {\n const isConnected = connectedIds?.includes(app.id) || false;\n return {\n ...app,\n appId: app.id,\n isConnected,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name)),\n);\n\nexport const getMe = (state: State) => state.me.data;\n\nexport const getUserId = createSelector(getMe, (me) => me.userId);\n","import {\n compose,\n createSingletonMixin,\n createTemplate,\n} from '@descope/sdk-helpers';\nimport {\n createFetchWidgetPagesMixin,\n descopeUiMixin,\n initElementMixin,\n initLifecycleMixin,\n loggerMixin,\n} from '@descope/sdk-mixins';\nimport { stateManagementMixin } from '../../stateManagementMixin';\nimport { getUserId } from '../../../state/selectors';\n\nconst WIDGET_PAGES_BASE_DIR = 'outbound-applications-widget';\n\nexport const initWidgetRootMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitWidgetRootMixinClass extends compose(\n loggerMixin,\n initLifecycleMixin,\n descopeUiMixin,\n initElementMixin,\n createFetchWidgetPagesMixin(WIDGET_PAGES_BASE_DIR),\n stateManagementMixin,\n )(superclass) {\n static get observedAttributes() {\n return ['allowed-outbound-apps-ids'];\n }\n\n async #initWidgetRoot() {\n const template = createTemplate(\n // await import('../../../../../../test/mocks/rootMock').then(\n // (module) => module.default,\n // ),\n await this.fetchWidgetPage('root.html'),\n );\n await this.loadDescopeUiComponents(template);\n\n return template;\n }\n\n #renderTemplate(template: HTMLTemplateElement) {\n this.contentRootElement.append(template.content.cloneNode(true));\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string,\n newValue: string,\n ) {\n if (name === 'allowed-outbound-apps-ids' && oldValue !== newValue) {\n this.actions.setAllowedAppsIds(this.#allowedIds);\n }\n }\n\n get #allowedIds() {\n const hasAttr = this.hasAttribute('allowed-outbound-apps-ids');\n if (!hasAttr) return undefined;\n\n const ids = this.getAttribute('allowed-outbound-apps-ids')?.trim();\n if (!ids) return [];\n\n return ids\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function\n async onWidgetRootReady() {}\n\n async init() {\n await super.init?.();\n\n await this.actions.getMe();\n\n // const allowedAppsIds = this.getAttribute('allowed-outbound-apps-ids');\n await this.actions.setAllowedAppsIds(this.#allowedIds);\n\n await Promise.all([\n this.actions.getOutboundApps(),\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n tenantId: this.tenantId,\n }),\n ]);\n\n const template = await this.#initWidgetRoot();\n\n // we want to render the template only after the data was fetched\n // so we won't show the apps-list empty state until the data is loaded\n this.#renderTemplate(template);\n\n await this.onWidgetRootReady();\n this.dispatchEvent(new CustomEvent('ready'));\n }\n },\n);\n","import { FlowDriver } from '@descope/sdk-component-drivers';\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { observeAttributesMixin, themeMixin } from '@descope/sdk-mixins';\n\nexport const flowSyncThemeMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class FlowSyncThemeMixinClass extends compose(\n themeMixin,\n observeAttributesMixin,\n )(superclass) {\n syncFlowTheme(flowDriver: FlowDriver) {\n // eslint-disable-next-line no-param-reassign\n flowDriver.theme = this.theme;\n this.observeAttributes(['theme'], () => {\n // eslint-disable-next-line no-param-reassign\n flowDriver.theme = this.theme;\n });\n }\n },\n);\n","import {\n OutboundAppsListDriver,\n ModalDriver,\n FlowDriver,\n} from '@descope/sdk-component-drivers';\nimport {\n compose,\n createSingletonMixin,\n withMemCache,\n} from '@descope/sdk-helpers';\nimport { localeMixin, loggerMixin, modalMixin } from '@descope/sdk-mixins';\nimport { getAppsList, getUserId } from '../../../state/selectors';\nimport { stateManagementMixin } from '../../stateManagementMixin';\nimport { initWidgetRootMixin } from './initWidgetRootMixin';\nimport { createFlowTemplate } from '../../helpers';\nimport { flowSyncThemeMixin } from '../../flowSyncThemeMixin';\n\nexport const initOutboundAppsListMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitAppsListMixinClass extends compose(\n localeMixin,\n flowSyncThemeMixin,\n stateManagementMixin,\n loggerMixin,\n initWidgetRootMixin,\n modalMixin,\n )(superclass) {\n #obAppsList: OutboundAppsListDriver;\n\n #connectModal: ModalDriver;\n\n #disconnectModal: ModalDriver;\n\n #connectFlow: FlowDriver;\n\n #disconnectFlow: FlowDriver;\n\n #connectModalCallback: (() => void) | null = null;\n\n #disconnectModalCallback: (() => void) | null = null;\n\n #initConnectModal() {\n if (!this.#obAppsList.connectFlowId) return;\n\n this.#connectModal = this.createModal({\n 'data-id': 'outbound-apps-connect',\n });\n\n this.#connectModal.afterClose = () => {\n if (this.#connectModalCallback) {\n const sdk = this.#connectModal.ele?.querySelector('descope-wc');\n sdk?.removeEventListener(\n 'page-updated',\n this.#connectModalCallback,\n );\n this.#connectModalCallback = null;\n }\n };\n\n this.#connectFlow = new FlowDriver(\n () => this.#connectModal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n this.syncFlowTheme(this.#connectFlow);\n }\n\n // eslint-disable-next-line class-methods-use-this\n #onModalNeeded(modal: ModalDriver, sdk: any, callback: () => void) {\n modal.open();\n sdk.removeEventListener('page-updated', callback);\n }\n\n #openModalIfNeeded(modal: ModalDriver, cbRef: () => void | null) {\n const sdk = modal.ele?.querySelector('descope-wc');\n const cb = () => this.#onModalNeeded(modal, sdk, cb);\n // eslint-disable-next-line no-param-reassign\n cbRef = cb;\n sdk?.addEventListener('page-updated', cbRef);\n }\n\n #initDisconnectModal() {\n this.#disconnectModal = this.createModal({\n 'data-id': 'outbound-apps-disconnect',\n });\n\n this.#disconnectFlow = new FlowDriver(\n () => this.#disconnectModal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n this.#disconnectModal.afterClose = () => {\n if (this.#disconnectModalCallback) {\n const sdk = this.#disconnectModal.ele?.querySelector('descope-wc');\n sdk?.removeEventListener(\n 'page-updated',\n this.#disconnectModalCallback,\n );\n this.#disconnectModalCallback = null;\n }\n };\n\n this.syncFlowTheme(this.#disconnectFlow);\n }\n\n #initConnectModalContent(appId: string) {\n this.#connectModal.setContent(\n createFlowTemplate({\n locale: this.locale,\n projectId: this.projectId,\n flowId: this.#obAppsList.connectFlowId,\n baseUrl: this.baseUrl,\n baseStaticUrl: this.baseStaticUrl,\n baseCdnUrl: this.baseCdnUrl,\n refreshCookieName: this.refreshCookieName,\n theme: this.theme,\n 'style-id': this.styleId,\n outboundAppId: appId,\n }),\n );\n\n this.#openModalIfNeeded(this.#connectModal, this.#connectModalCallback);\n\n this.#connectFlow.onSuccess(() => {\n this.#connectModal.close();\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n tenantId: this.tenantId,\n });\n });\n }\n\n #initDisconnectModalContent(appId: string) {\n this.#disconnectModal.setContent(\n createFlowTemplate({\n locale: this.locale,\n projectId: this.projectId,\n flowId: this.#obAppsList.disconnectFlowId,\n baseUrl: this.baseUrl,\n baseStaticUrl: this.baseStaticUrl,\n baseCdnUrl: this.baseCdnUrl,\n refreshCookieName: this.refreshCookieName,\n theme: this.theme,\n 'style-id': this.styleId,\n outboundAppId: appId,\n }),\n );\n\n this.#openModalIfNeeded(\n this.#disconnectModal,\n this.#disconnectModalCallback,\n );\n\n this.#disconnectFlow.onSuccess(() => {\n this.#disconnectModal.close();\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n });\n });\n }\n\n #initAppsList(appsList: ReturnType<typeof getAppsList>) {\n this.#obAppsList = new OutboundAppsListDriver(\n () => this.shadowRoot?.querySelector('descope-outbound-apps'),\n { logger: this.logger },\n );\n\n this.#obAppsList.onConnectClick(({ id }) => {\n this.#initConnectModalContent(id);\n });\n\n this.#obAppsList.onDisconnectClick(({ id }) => {\n this.#initDisconnectModalContent(id);\n });\n\n this.#obAppsList.data = appsList;\n }\n\n #onConnectedAppsUpdate = withMemCache((data) => {\n this.#obAppsList.data = data;\n });\n\n async onWidgetRootReady() {\n await super.onWidgetRootReady?.();\n\n this.#initAppsList(getAppsList(this.state));\n this.#initConnectModal();\n this.#initDisconnectModal();\n\n this.subscribe(this.#onConnectedAppsUpdate.bind(this), getAppsList);\n }\n },\n);\n","import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { debuggerMixin, themeMixin } from '@descope/sdk-mixins';\nimport { flowRedirectUrlMixin } from '../flowRedirectUrlMixin';\nimport { initOutboundAppsListMixin } from './initComponentsMixins/initOutboundAppsListMixin';\n\nexport const initMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n // @ts-ignore\n class InitMixinClass extends compose(\n debuggerMixin,\n themeMixin,\n flowRedirectUrlMixin, // This mixin must be before all other mixins that loads flows\n initOutboundAppsListMixin,\n )(superclass) {\n async init() {\n await super.init?.();\n }\n },\n);\n","import { compose } from '@descope/sdk-helpers';\nimport { initMixin } from './mixins/initMixin/initMixin';\n\ndeclare const BUILD_VERSION: string;\n\nconst rootMixin = (superclass: CustomElementConstructor) =>\n class RootMixinClass extends initMixin(superclass) {\n async init() {\n await super.init?.();\n\n const WebComponent: any =\n customElements.get('descope-wc') ||\n (await import('@descope/web-component').then(\n (module) => module.default,\n ));\n\n WebComponent.sdkConfigOverrides = {\n baseHeaders: {\n 'x-descope-widget-type': 'outbound-applications-widget',\n 'x-descope-widget-id': this.getAttribute('widget-id'),\n 'x-descope-widget-version': BUILD_VERSION,\n },\n };\n }\n };\n\nexport const ApplicationsPortalWidget = compose(rootMixin)(HTMLElement);\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { Unsubscribe } from 'redux'; // workaround for https://github.com/microsoft/TypeScript/issues/42873\nimport { ApplicationsPortalWidget } from './widget';\n\nexport default ApplicationsPortalWidget;\n\ncustomElements.define(\n 'descope-outbound-applications-widget',\n ApplicationsPortalWidget,\n);\n"],"names":["createFlowTemplate","flowConfig","template","createTemplate","Object","entries","forEach","key","value","content","querySelector","setAttribute","kebabCase","getUrlParam","paramName","URLSearchParams","window","location","search","get","buildAsyncReducer","action","args","builder","addCase","pending","state","onPending","fulfilled","onFulfilled","rejected","onRejected","withRequestStatus","getStateSection","loading","error","createAsyncThunk","arg","extra","api","outboundApps","getAllOutboundApps","reducer","outboundAppsList","data","_a","payload","apps","getConnectedOutboundApps","connectedOutboundAppsIds","appIds","initialState","allowedAppsIds","undefined","me","apiPaths","allOutboundApps","connectedOutboundApps","withErrorHandler","res","__awaiter","text","json","JSON","parse","ok","descopeErrorMsg","errorDescription","errorMessage","Error","status","statusText","Promise","resolve","id","name","description","user","userId","createOutboundAppsSdk","httpClient","mock","tenantId","queryParams","createUserSdk","apiMixin","createSingletonMixin","superclass","BaseClass","compose","projectIdMixin","observeAttributesMixin","loggerMixin","cookieConfigMixin","baseUrlMixin","constructor","_ApiMixinClass_api","set","this","getAttribute","widgetId","styleId","DEFAULT_STYLE_ID","__classPrivateFieldGet","_ApiMixinClass_instances","_ApiMixinClass_createSdk","call","init","_b","_super","observeAttributes","logger","debug","__classPrivateFieldSet","config","webSdk","createWebSdk","assign","persistTokens","baseHeaders","createSdk","projectId","baseUrl","refreshCookieName","getMe","stateManagementMixin","createStateManagementMixin","reducers","setAllowedAppsIds","extraReducers","asyncActions","getOutboundApps","initLifecycleMixin","super","subscribe","REDIRECT_FLOW_NAME_QUERY_PARAM","flowRedirectUrlMixin","_FlowRedirectUrlMixinClass_instances","_FlowRedirectUrlMixinClass_createFlowRedirectModal","localeMixin","modalMixin","themeMixin","widgetFlow","history","replaceState","newUrl","URL","href","delete","toString","resetUrlParam","modal","createModal","setContent","locale","flowId","baseStaticUrl","baseCdnUrl","theme","FlowDriver","ele","onSuccess","close","actions","afterClose","remove","open","getAppsList","createSelector","obApps","connectedIds","allowedIds","filter","app","includes","map","isConnected","appId","sort","a","b","localeCompare","getUserId","initWidgetRootMixin","_InitWidgetRootMixinClass_instances","_InitWidgetRootMixinClass_initWidgetRoot","_InitWidgetRootMixinClass_renderTemplate","_InitWidgetRootMixinClass_allowedIds_get","descopeUiMixin","initElementMixin","createFetchWidgetPagesMixin","observedAttributes","attributeChangedCallback","oldValue","newValue","onWidgetRootReady","all","dispatchEvent","CustomEvent","fetchWidgetPage","loadDescopeUiComponents","contentRootElement","append","cloneNode","hasAttribute","ids","trim","split","s","Boolean","flowSyncThemeMixin","syncFlowTheme","flowDriver","initOutboundAppsListMixin","_InitAppsListMixinClass_instances","_InitAppsListMixinClass_obAppsList","_InitAppsListMixinClass_connectModal","_InitAppsListMixinClass_disconnectModal","_InitAppsListMixinClass_connectFlow","_InitAppsListMixinClass_disconnectFlow","_InitAppsListMixinClass_connectModalCallback","_InitAppsListMixinClass_disconnectModalCallback","_InitAppsListMixinClass_initConnectModal","_InitAppsListMixinClass_onModalNeeded","_InitAppsListMixinClass_openModalIfNeeded","_InitAppsListMixinClass_initDisconnectModal","_InitAppsListMixinClass_initConnectModalContent","_InitAppsListMixinClass_initDisconnectModalContent","_InitAppsListMixinClass_initAppsList","_InitAppsListMixinClass_onConnectedAppsUpdate","withMemCache","bind","connectFlowId","sdk","removeEventListener","callback","cbRef","cb","addEventListener","outboundAppId","disconnectFlowId","appsList","OutboundAppsListDriver","shadowRoot","onConnectClick","onDisconnectClick","initMixin","debuggerMixin","ApplicationsPortalWidget","customElements","import","then","module","default","sdkConfigOverrides","HTMLElement","define"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/lib/widget/mixins/helpers.ts","../../src/lib/widget/state/asyncActions/helpers.ts","../../src/lib/widget/state/asyncActions/getAllOutboundApps.ts","../../src/lib/widget/state/asyncActions/getConnectedOutboundApps.ts","../../src/lib/widget/state/initialState.ts","../../src/lib/widget/api/apiPaths.ts","../../src/lib/widget/api/sdk/helpers.ts","../../src/lib/widget/api/sdk/mocks.ts","../../src/lib/widget/api/sdk/createOutboundAppsSdk.ts","../../src/lib/widget/api/sdk/createUserSdk.ts","../../src/lib/widget/mixins/apiMixin.ts","../../src/lib/widget/api/sdk/index.ts","../../src/lib/widget/state/asyncActions/getMe.ts","../../src/lib/widget/mixins/stateManagementMixin.ts","../../src/lib/widget/mixins/flowRedirectUrlMixin.ts","../../src/lib/widget/state/selectors.ts","../../src/lib/widget/mixins/initMixin/initComponentsMixins/initWidgetRootMixin.ts","../../src/lib/widget/mixins/flowSyncThemeMixin.ts","../../src/lib/widget/mixins/initMixin/initComponentsMixins/initOutboundAppsListMixin.ts","../../src/lib/widget/mixins/initMixin/initMixin.ts","../../src/lib/widget/index.ts","../../src/lib/index.ts"],"sourcesContent":["export function getUrlParam(paramName: string) {\n const urlParams = new URLSearchParams(window.location.search);\n\n return urlParams.get(paramName);\n}\n\nexport function resetUrlParam(paramName: string) {\n if (window.history.replaceState && getUrlParam(paramName)) {\n const newUrl = new URL(window.location.href);\n const search = new URLSearchParams(newUrl.search);\n search.delete(paramName);\n newUrl.search = search.toString();\n window.history.replaceState({}, '', newUrl.toString());\n }\n}\n","/* eslint-disable @typescript-eslint/no-shadow */\n/* eslint-disable no-param-reassign */\n\nimport {\n ActionReducerMapBuilder,\n AsyncThunk,\n PayloadAction,\n SerializedError,\n} from '@reduxjs/toolkit';\nimport { State } from '../types';\n\ntype ExtractedArg<T> = T extends AsyncThunk<any, infer U, any> ? U : never;\n\ntype FulfilledAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n any,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n },\n never\n>;\n\ntype RejectedAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n any,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n },\n SerializedError\n>;\n\ntype PendingAction<T extends AsyncThunk<any, any, any>> = PayloadAction<\n unknown,\n string,\n {\n arg: ExtractedArg<T>;\n requestId: string;\n }\n>;\n\ntype AsyncReducerConfig<T extends AsyncThunk<any, any, any>> = {\n onFulfilled?: (state: State, action: FulfilledAction<T>) => void;\n onRejected?: (state: State, action: RejectedAction<T>) => void;\n onPending?: (state: State, action: PendingAction<T>) => void;\n};\n\nexport const buildAsyncReducer =\n <T extends AsyncThunk<any, any, any>>(action: T) =>\n (...args: AsyncReducerConfig<T>[]) =>\n (builder: ActionReducerMapBuilder<State>) => {\n builder.addCase(action.pending, (state, action) => {\n args.forEach(({ onPending }) => {\n onPending?.(state, action);\n });\n });\n\n builder.addCase(action.fulfilled, (state, action) => {\n args.forEach(({ onFulfilled }) => {\n onFulfilled?.(state, action);\n });\n });\n\n builder.addCase(action.rejected, (state, action) => {\n args.forEach(({ onRejected }) => {\n onRejected?.(state, action);\n });\n });\n };\n\nexport const withRequestStatus = (\n getStateSection: (state: State) => { loading: boolean; error: unknown },\n): AsyncReducerConfig<any> => ({\n onFulfilled: (state) => {\n getStateSection(state).loading = false;\n },\n onPending: (state) => {\n getStateSection(state).loading = true;\n getStateSection(state).error = null;\n },\n onRejected: (state, action) => {\n getStateSection(state).loading = false;\n getStateSection(state).error = action.error;\n },\n});\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['outboundApps']['getAllOutboundApps']>,\n ThunkConfigExtraApi\n>('outboundApps/load', (arg, { extra: { api } }) =>\n api.outboundApps.getAllOutboundApps(),\n);\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.outboundAppsList.data = action.payload?.apps;\n },\n },\n withRequestStatus((state: State) => state.outboundAppsList),\n);\n\nexport const getAllOutboundApps = { action, reducer };\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['outboundApps']['getConnectedOutboundApps']>,\n ThunkConfigExtraApi\n>('outboundApps/getConnectedOutboundApps', (arg, { extra: { api } }) =>\n api.outboundApps.getConnectedOutboundApps(arg),\n);\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.connectedOutboundAppsIds.data = action.payload?.appIds;\n },\n },\n withRequestStatus((state: State) => state.connectedOutboundAppsIds),\n);\n\nexport const getConnectedOutboundApps = { action, reducer };\n","import { State } from './types';\n\nexport const initialState: State = {\n outboundAppsList: {\n data: [],\n loading: false,\n error: null,\n },\n connectedOutboundAppsIds: {\n data: [],\n loading: false,\n error: null,\n },\n allowedAppsIds: {\n data: undefined,\n },\n me: {\n loading: false,\n error: null,\n data: {},\n },\n};\n","export const apiPaths = {\n outboundApps: {\n allOutboundApps: '/v1/mgmt/outbound/apps',\n connectedOutboundApps: '/v1/mgmt/outbound/apps-with-user-token',\n },\n user: {\n me: '/v1/auth/me',\n },\n};\n","export const withErrorHandler = async (res: Response) => {\n const text = await res.text();\n const json = JSON.parse(text);\n\n if (!res.ok) {\n const descopeErrorMsg = `${json.errorDescription}${\n json.errorMessage ? `: ${json.errorMessage}` : ''\n }`;\n throw Error(descopeErrorMsg || `${res.status} ${res.statusText}`);\n }\n\n res.json = () => Promise.resolve(json);\n res.text = () => Promise.resolve(text);\n};\n","import { User, OutboundApplication } from '../types';\n\nconst getAllOutboundApps: () => Promise<{\n apps: OutboundApplication[];\n}> = async () =>\n new Promise((resolve) => {\n resolve({\n apps: [\n {\n id: 'appId1',\n name: 'Application 1',\n description: 'Description',\n },\n {\n id: 'appId2',\n name: 'Application 2',\n description: 'Description',\n },\n {\n id: 'appId3',\n name: 'Application 3',\n description: 'Description',\n },\n ],\n });\n });\n\nconst getConnectedOutboundApps: () => Promise<{ apps: string[] }> = async () =>\n new Promise((resolve) => {\n resolve({\n apps: ['outboundApp3'],\n });\n });\n\nconst me: () => Promise<User> = async () =>\n new Promise((resolve) => {\n resolve({\n userId: `user-1`,\n });\n });\n\nconst outboundApps = {\n getAllOutboundApps,\n getConnectedOutboundApps,\n};\n\nconst user = {\n me,\n};\n\nexport { outboundApps, user };\n","import { apiPaths } from '../apiPaths';\nimport { HttpClient, User } from '../types';\nimport { withErrorHandler } from './helpers';\nimport { outboundApps } from './mocks';\n\nexport const createOutboundAppsSdk = ({\n httpClient,\n mock,\n}: {\n httpClient: HttpClient;\n mock: boolean;\n userId?: string;\n}) => {\n const getAllOutboundApps = async () => {\n if (mock) {\n return outboundApps.getAllOutboundApps();\n }\n const res = await httpClient.get(apiPaths.outboundApps.allOutboundApps);\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n const getConnectedOutboundApps = async ({ userId, tenantId }: User) => {\n if (mock) {\n return outboundApps.getConnectedOutboundApps();\n }\n\n const res = await httpClient.get(\n apiPaths.outboundApps.connectedOutboundApps,\n {\n queryParams: tenantId ? { userId, tenantId } : { userId },\n },\n );\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n return {\n getAllOutboundApps,\n getConnectedOutboundApps,\n };\n};\n","import { apiPaths } from '../apiPaths';\nimport { HttpClient } from '../types';\nimport { withErrorHandler } from './helpers';\nimport { user } from './mocks';\n\nexport const createUserSdk = ({\n httpClient,\n mock,\n}: {\n httpClient: HttpClient;\n mock: boolean;\n}) => {\n const me = async () => {\n if (mock) {\n return user.me();\n }\n const res = await httpClient.get(apiPaths.user.me);\n\n await withErrorHandler(res);\n\n return res.json();\n };\n\n return {\n me,\n };\n};\n","import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n baseUrlMixin,\n cookieConfigMixin,\n DEFAULT_STYLE_ID,\n loggerMixin,\n observeAttributesMixin,\n projectIdMixin,\n} from '@descope/sdk-mixins';\nimport { Sdk, createSdk } from '../api/sdk';\n\nexport const apiMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n projectIdMixin,\n observeAttributesMixin,\n loggerMixin,\n cookieConfigMixin,\n baseUrlMixin,\n )(superclass);\n\n return class ApiMixinClass extends BaseClass {\n #api: Sdk;\n\n #createSdk() {\n this.logger.debug('creating an sdk instance');\n this.#api = createSdk(\n {\n projectId: this.projectId,\n baseUrl: this.baseUrl,\n refreshCookieName: this.refreshCookieName,\n },\n this.mock === 'true',\n this.widgetId,\n );\n }\n\n get tenantId() {\n return this.getAttribute('tenant');\n }\n\n get widgetId() {\n return this.getAttribute('widget-id');\n }\n\n get mock() {\n return this.getAttribute('mock');\n }\n\n get styleId() {\n return this.getAttribute('style-id') || DEFAULT_STYLE_ID;\n }\n\n get api() {\n if (!this.#api) {\n this.#createSdk();\n }\n\n return this.#api;\n }\n\n async init() {\n await super.init?.();\n\n this.observeAttributes(['project-id', 'base-url'], () => {\n if (this.#api) {\n this.#createSdk();\n }\n });\n }\n };\n },\n);\n","import createWebSdk from '@descope/web-js-sdk';\nimport { createOutboundAppsSdk } from './createOutboundAppsSdk';\nimport { createUserSdk } from './createUserSdk';\n\ndeclare const BUILD_VERSION: string;\n\nexport const createSdk = (\n config: Parameters<typeof createWebSdk>[0],\n mock: boolean,\n widgetId?: string,\n) => {\n const webSdk = createWebSdk({\n ...config,\n persistTokens: true,\n baseHeaders: {\n 'x-descope-widget-type': 'outbound-applications-widget',\n 'x-descope-widget-id': widgetId,\n 'x-descope-widget-version': BUILD_VERSION,\n },\n });\n\n return {\n outboundApps: createOutboundAppsSdk({\n httpClient: webSdk.httpClient,\n mock,\n }),\n user: {\n ...createUserSdk({ httpClient: webSdk.httpClient, mock }),\n },\n };\n};\n\nexport type Sdk = ReturnType<typeof createSdk>;\n","/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Sdk } from '../../api/sdk';\nimport { FirstParameter, State, ThunkConfigExtraApi } from '../types';\nimport { buildAsyncReducer, withRequestStatus } from './helpers';\n\nconst action = createAsyncThunk<\n any,\n FirstParameter<Sdk['user']['me']>,\n ThunkConfigExtraApi\n>('users/me', (arg, { extra: { api } }) => api.user.me());\n\nconst reducer = buildAsyncReducer(action)(\n {\n onFulfilled: (state, action) => {\n state.me.data = action.payload;\n },\n },\n withRequestStatus((state: State) => state.me),\n);\n\nexport const getMe = { action, reducer };\n","/* eslint-disable no-param-reassign */\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n createStateManagementMixin,\n initLifecycleMixin,\n loggerMixin,\n} from '@descope/sdk-mixins';\nimport {\n getAllOutboundApps,\n getConnectedOutboundApps,\n} from '../state/asyncActions';\nimport { initialState } from '../state/initialState';\nimport { apiMixin } from './apiMixin';\nimport { getMe } from '../state/asyncActions/getMe';\n\nexport const stateManagementMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n createStateManagementMixin({\n name: 'widget',\n initialState,\n reducers: {\n setAllowedAppsIds: (state, { payload }) => {\n state.allowedAppsIds.data = payload;\n },\n },\n extraReducers: (builder) => {\n getMe.reducer(builder);\n getConnectedOutboundApps.reducer(builder);\n getAllOutboundApps.reducer(builder);\n },\n asyncActions: {\n getMe: getMe.action,\n getOutboundApps: getAllOutboundApps.action,\n getConnectedOutboundApps: getConnectedOutboundApps.action,\n },\n }),\n initLifecycleMixin,\n loggerMixin,\n apiMixin,\n )(superclass);\n return class StateManagementMixinClass extends BaseClass {\n state = initialState;\n\n constructor(...args: any) {\n super(...args);\n\n this.subscribe((state) => {\n this.logger.debug('State update:', state);\n this.state = state;\n });\n }\n };\n },\n);\n","import { FlowDriver } from '@descope/sdk-component-drivers';\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n localeMixin,\n initLifecycleMixin,\n loggerMixin,\n modalMixin,\n cookieConfigMixin,\n themeMixin,\n flowInputMixin,\n} from '@descope/sdk-mixins';\nimport { getUrlParam, resetUrlParam } from './helpers';\nimport { stateManagementMixin } from './stateManagementMixin';\n\nconst REDIRECT_FLOW_NAME_QUERY_PARAM = 'widget-flow';\n\nexport const flowRedirectUrlMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class FlowRedirectUrlMixinClass extends compose(\n localeMixin,\n initLifecycleMixin,\n modalMixin,\n stateManagementMixin,\n cookieConfigMixin,\n loggerMixin,\n themeMixin,\n flowInputMixin,\n )(superclass) {\n async init() {\n await super.init?.();\n\n const widgetFlow = getUrlParam(REDIRECT_FLOW_NAME_QUERY_PARAM);\n\n if (widgetFlow) {\n resetUrlParam(REDIRECT_FLOW_NAME_QUERY_PARAM);\n this.#createFlowRedirectModal(widgetFlow);\n }\n }\n\n #createFlowRedirectModal(widgetFlow: string) {\n const modal = this.createModal({ 'data-id': 'redirect-flow' });\n modal.setContent(this.createFlowTemplate({ flowId: widgetFlow }));\n\n const flow = new FlowDriver(\n () => modal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n flow.onSuccess(() => {\n modal.close();\n this.actions.getMe();\n });\n\n modal.afterClose = () => {\n modal.remove();\n };\n\n modal.open();\n }\n },\n);\n","import { createSelector } from 'reselect';\nimport { State } from './types';\n\nexport const getOutboundAppsList = (state: State) =>\n state.outboundAppsList.data;\n\nexport const getConnectedOutboundAppsList = (state: State) =>\n state.connectedOutboundAppsIds.data;\n\nexport const allowedAppsIds = (state: State) => state.allowedAppsIds.data;\n\nexport const getAppsList = createSelector(\n getOutboundAppsList,\n getConnectedOutboundAppsList,\n allowedAppsIds,\n (obApps, connectedIds, allowedIds) =>\n obApps\n .filter((app) => allowedIds === undefined || allowedIds.includes(app.id))\n .map((app) => {\n const isConnected = connectedIds?.includes(app.id) || false;\n return {\n ...app,\n appId: app.id,\n isConnected,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name)),\n);\n\nexport const getMe = (state: State) => state.me.data;\n\nexport const getUserId = createSelector(getMe, (me) => me.userId);\n","import {\n compose,\n createSingletonMixin,\n createTemplate,\n} from '@descope/sdk-helpers';\nimport {\n createFetchWidgetPagesMixin,\n descopeUiMixin,\n initElementMixin,\n initLifecycleMixin,\n loggerMixin,\n} from '@descope/sdk-mixins';\nimport { stateManagementMixin } from '../../stateManagementMixin';\nimport { getUserId } from '../../../state/selectors';\n\nconst WIDGET_PAGES_BASE_DIR = 'outbound-applications-widget';\n\nexport const initWidgetRootMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitWidgetRootMixinClass extends compose(\n loggerMixin,\n initLifecycleMixin,\n descopeUiMixin,\n initElementMixin,\n createFetchWidgetPagesMixin(WIDGET_PAGES_BASE_DIR),\n stateManagementMixin,\n )(superclass) {\n static get observedAttributes() {\n return ['allowed-outbound-apps-ids'];\n }\n\n async #initWidgetRoot() {\n const template = createTemplate(\n // await import('../../../../../../test/mocks/rootMock').then(\n // (module) => module.default,\n // ),\n await this.fetchWidgetPage('root.html'),\n );\n await this.loadDescopeUiComponents(template);\n\n return template;\n }\n\n #renderTemplate(template: HTMLTemplateElement) {\n this.contentRootElement.append(template.content.cloneNode(true));\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string,\n newValue: string,\n ) {\n if (name === 'allowed-outbound-apps-ids' && oldValue !== newValue) {\n this.actions.setAllowedAppsIds(this.#allowedIds);\n }\n }\n\n get #allowedIds() {\n const hasAttr = this.hasAttribute('allowed-outbound-apps-ids');\n if (!hasAttr) return undefined;\n\n const ids = this.getAttribute('allowed-outbound-apps-ids')?.trim();\n if (!ids) return [];\n\n return ids\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function\n async onWidgetRootReady() {}\n\n async init() {\n await super.init?.();\n\n await this.actions.getMe();\n\n // const allowedAppsIds = this.getAttribute('allowed-outbound-apps-ids');\n await this.actions.setAllowedAppsIds(this.#allowedIds);\n\n await Promise.all([\n this.actions.getOutboundApps(),\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n tenantId: this.tenantId,\n }),\n ]);\n\n const template = await this.#initWidgetRoot();\n\n // we want to render the template only after the data was fetched\n // so we won't show the apps-list empty state until the data is loaded\n this.#renderTemplate(template);\n\n await this.onWidgetRootReady();\n this.dispatchEvent(new CustomEvent('ready'));\n }\n },\n);\n","import { FlowDriver } from '@descope/sdk-component-drivers';\nimport { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { observeAttributesMixin, themeMixin } from '@descope/sdk-mixins';\n\nexport const flowSyncThemeMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class FlowSyncThemeMixinClass extends compose(\n themeMixin,\n observeAttributesMixin,\n )(superclass) {\n syncFlowTheme(flowDriver: FlowDriver) {\n // eslint-disable-next-line no-param-reassign\n flowDriver.theme = this.theme;\n this.observeAttributes(['theme'], () => {\n // eslint-disable-next-line no-param-reassign\n flowDriver.theme = this.theme;\n });\n }\n },\n);\n","import {\n OutboundAppsListDriver,\n ModalDriver,\n FlowDriver,\n} from '@descope/sdk-component-drivers';\nimport {\n compose,\n createSingletonMixin,\n withMemCache,\n} from '@descope/sdk-helpers';\nimport {\n localeMixin,\n loggerMixin,\n modalMixin,\n flowInputMixin,\n} from '@descope/sdk-mixins';\nimport { getAppsList, getUserId } from '../../../state/selectors';\nimport { stateManagementMixin } from '../../stateManagementMixin';\nimport { initWidgetRootMixin } from './initWidgetRootMixin';\nimport { flowSyncThemeMixin } from '../../flowSyncThemeMixin';\n\nexport const initOutboundAppsListMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n class InitAppsListMixinClass extends compose(\n localeMixin,\n flowSyncThemeMixin,\n stateManagementMixin,\n loggerMixin,\n initWidgetRootMixin,\n modalMixin,\n flowInputMixin,\n )(superclass) {\n #obAppsList: OutboundAppsListDriver;\n\n #connectModal: ModalDriver;\n\n #disconnectModal: ModalDriver;\n\n #connectFlow: FlowDriver;\n\n #disconnectFlow: FlowDriver;\n\n #connectModalCallback: (() => void) | null = null;\n\n #disconnectModalCallback: (() => void) | null = null;\n\n #initConnectModal() {\n if (!this.#obAppsList.connectFlowId) return;\n\n this.#connectModal = this.createModal({\n 'data-id': 'outbound-apps-connect',\n });\n\n this.#connectModal.afterClose = () => {\n if (this.#connectModalCallback) {\n const sdk = this.#connectModal.ele?.querySelector('descope-wc');\n sdk?.removeEventListener(\n 'page-updated',\n this.#connectModalCallback,\n );\n this.#connectModalCallback = null;\n }\n };\n\n this.#connectFlow = new FlowDriver(\n () => this.#connectModal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n this.syncFlowTheme(this.#connectFlow);\n }\n\n // eslint-disable-next-line class-methods-use-this\n #onModalNeeded(modal: ModalDriver, sdk: any, callback: () => void) {\n modal.open();\n sdk.removeEventListener('page-updated', callback);\n }\n\n #openModalIfNeeded(modal: ModalDriver, cbRef: () => void | null) {\n const sdk = modal.ele?.querySelector('descope-wc');\n const cb = () => this.#onModalNeeded(modal, sdk, cb);\n // eslint-disable-next-line no-param-reassign\n cbRef = cb;\n sdk?.addEventListener('page-updated', cbRef);\n }\n\n #initDisconnectModal() {\n this.#disconnectModal = this.createModal({\n 'data-id': 'outbound-apps-disconnect',\n });\n\n this.#disconnectFlow = new FlowDriver(\n () => this.#disconnectModal.ele?.querySelector('descope-wc'),\n { logger: this.logger },\n );\n\n this.#disconnectModal.afterClose = () => {\n if (this.#disconnectModalCallback) {\n const sdk = this.#disconnectModal.ele?.querySelector('descope-wc');\n sdk?.removeEventListener(\n 'page-updated',\n this.#disconnectModalCallback,\n );\n this.#disconnectModalCallback = null;\n }\n };\n\n this.syncFlowTheme(this.#disconnectFlow);\n }\n\n #initConnectModalContent(appId: string) {\n this.#connectModal.setContent(\n this.createFlowTemplate({\n flowId: this.#obAppsList.connectFlowId,\n outboundAppId: appId,\n }),\n );\n\n this.#openModalIfNeeded(this.#connectModal, this.#connectModalCallback);\n\n this.#connectFlow.onSuccess(() => {\n this.#connectModal.close();\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n tenantId: this.tenantId,\n });\n });\n }\n\n #initDisconnectModalContent(appId: string) {\n this.#disconnectModal.setContent(\n this.createFlowTemplate({\n flowId: this.#obAppsList.disconnectFlowId,\n outboundAppId: appId,\n }),\n );\n\n this.#openModalIfNeeded(\n this.#disconnectModal,\n this.#disconnectModalCallback,\n );\n\n this.#disconnectFlow.onSuccess(() => {\n this.#disconnectModal.close();\n this.actions.getConnectedOutboundApps({\n userId: getUserId(this.state),\n });\n });\n }\n\n #initAppsList(appsList: ReturnType<typeof getAppsList>) {\n this.#obAppsList = new OutboundAppsListDriver(\n () => this.shadowRoot?.querySelector('descope-outbound-apps'),\n { logger: this.logger },\n );\n\n this.#obAppsList.onConnectClick(({ id }) => {\n this.#initConnectModalContent(id);\n });\n\n this.#obAppsList.onDisconnectClick(({ id }) => {\n this.#initDisconnectModalContent(id);\n });\n\n this.#obAppsList.data = appsList;\n }\n\n #onConnectedAppsUpdate = withMemCache((data) => {\n this.#obAppsList.data = data;\n });\n\n async onWidgetRootReady() {\n await super.onWidgetRootReady?.();\n\n this.#initAppsList(getAppsList(this.state));\n this.#initConnectModal();\n this.#initDisconnectModal();\n\n this.subscribe(this.#onConnectedAppsUpdate.bind(this), getAppsList);\n }\n },\n);\n","import { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport { debuggerMixin, themeMixin } from '@descope/sdk-mixins';\nimport { flowRedirectUrlMixin } from '../flowRedirectUrlMixin';\nimport { initOutboundAppsListMixin } from './initComponentsMixins/initOutboundAppsListMixin';\n\nexport const initMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) =>\n // @ts-ignore\n class InitMixinClass extends compose(\n debuggerMixin,\n themeMixin,\n flowRedirectUrlMixin, // This mixin must be before all other mixins that loads flows\n initOutboundAppsListMixin,\n )(superclass) {\n async init() {\n await super.init?.();\n }\n },\n);\n","import { compose } from '@descope/sdk-helpers';\nimport { initMixin } from './mixins/initMixin/initMixin';\n\ndeclare const BUILD_VERSION: string;\n\nconst rootMixin = (superclass: CustomElementConstructor) =>\n class RootMixinClass extends initMixin(superclass) {\n async init() {\n await super.init?.();\n\n const WebComponent: any =\n customElements.get('descope-wc') ||\n (await import('@descope/web-component').then(\n (module) => module.default,\n ));\n\n WebComponent.sdkConfigOverrides = {\n baseHeaders: {\n 'x-descope-widget-type': 'outbound-applications-widget',\n 'x-descope-widget-id': this.getAttribute('widget-id'),\n 'x-descope-widget-version': BUILD_VERSION,\n },\n };\n }\n };\n\nexport const ApplicationsPortalWidget = compose(rootMixin)(HTMLElement);\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { Unsubscribe } from 'redux'; // workaround for https://github.com/microsoft/TypeScript/issues/42873\nimport { ApplicationsPortalWidget } from './widget';\n\nexport default ApplicationsPortalWidget;\n\ncustomElements.define(\n 'descope-outbound-applications-widget',\n ApplicationsPortalWidget,\n);\n"],"names":["getUrlParam","paramName","URLSearchParams","window","location","search","get","buildAsyncReducer","action","args","builder","addCase","pending","state","forEach","onPending","fulfilled","onFulfilled","rejected","onRejected","withRequestStatus","getStateSection","loading","error","createAsyncThunk","arg","extra","api","outboundApps","getAllOutboundApps","reducer","outboundAppsList","data","_a","payload","apps","getConnectedOutboundApps","connectedOutboundAppsIds","appIds","initialState","allowedAppsIds","undefined","me","apiPaths","allOutboundApps","connectedOutboundApps","withErrorHandler","res","__awaiter","text","json","JSON","parse","ok","descopeErrorMsg","errorDescription","errorMessage","Error","status","statusText","Promise","resolve","id","name","description","user","userId","createOutboundAppsSdk","httpClient","mock","tenantId","queryParams","createUserSdk","apiMixin","createSingletonMixin","superclass","BaseClass","compose","projectIdMixin","observeAttributesMixin","loggerMixin","cookieConfigMixin","baseUrlMixin","constructor","_ApiMixinClass_api","set","this","getAttribute","widgetId","styleId","DEFAULT_STYLE_ID","__classPrivateFieldGet","_ApiMixinClass_instances","_ApiMixinClass_createSdk","call","init","_b","_super","observeAttributes","logger","debug","__classPrivateFieldSet","config","webSdk","createWebSdk","Object","assign","persistTokens","baseHeaders","createSdk","projectId","baseUrl","refreshCookieName","getMe","stateManagementMixin","createStateManagementMixin","reducers","setAllowedAppsIds","extraReducers","asyncActions","getOutboundApps","initLifecycleMixin","super","subscribe","REDIRECT_FLOW_NAME_QUERY_PARAM","flowRedirectUrlMixin","_FlowRedirectUrlMixinClass_instances","_FlowRedirectUrlMixinClass_createFlowRedirectModal","localeMixin","modalMixin","themeMixin","flowInputMixin","widgetFlow","history","replaceState","newUrl","URL","href","delete","toString","resetUrlParam","modal","createModal","setContent","createFlowTemplate","flowId","FlowDriver","ele","querySelector","onSuccess","close","actions","afterClose","remove","open","getAppsList","createSelector","obApps","connectedIds","allowedIds","filter","app","includes","map","isConnected","appId","sort","a","b","localeCompare","getUserId","initWidgetRootMixin","_InitWidgetRootMixinClass_instances","_InitWidgetRootMixinClass_initWidgetRoot","_InitWidgetRootMixinClass_renderTemplate","_InitWidgetRootMixinClass_allowedIds_get","descopeUiMixin","initElementMixin","createFetchWidgetPagesMixin","observedAttributes","attributeChangedCallback","oldValue","newValue","onWidgetRootReady","all","template","dispatchEvent","CustomEvent","createTemplate","fetchWidgetPage","loadDescopeUiComponents","contentRootElement","append","content","cloneNode","hasAttribute","ids","trim","split","s","Boolean","flowSyncThemeMixin","syncFlowTheme","flowDriver","theme","initOutboundAppsListMixin","_InitAppsListMixinClass_instances","_InitAppsListMixinClass_obAppsList","_InitAppsListMixinClass_connectModal","_InitAppsListMixinClass_disconnectModal","_InitAppsListMixinClass_connectFlow","_InitAppsListMixinClass_disconnectFlow","_InitAppsListMixinClass_connectModalCallback","_InitAppsListMixinClass_disconnectModalCallback","_InitAppsListMixinClass_initConnectModal","_InitAppsListMixinClass_onModalNeeded","_InitAppsListMixinClass_openModalIfNeeded","_InitAppsListMixinClass_initDisconnectModal","_InitAppsListMixinClass_initConnectModalContent","_InitAppsListMixinClass_initDisconnectModalContent","_InitAppsListMixinClass_initAppsList","_InitAppsListMixinClass_onConnectedAppsUpdate","withMemCache","bind","connectFlowId","sdk","removeEventListener","callback","cbRef","cb","addEventListener","outboundAppId","disconnectFlowId","appsList","OutboundAppsListDriver","shadowRoot","onConnectClick","onDisconnectClick","initMixin","debuggerMixin","ApplicationsPortalWidget","customElements","import","then","module","default","sdkConfigOverrides","HTMLElement","define"],"mappings":"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"}
|