@descope/outbound-applications-widget 0.3.7 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /**
3
- * @descope/outbound-applications-widget v0.3.7
3
+ * @descope/outbound-applications-widget v0.4.0
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,modalMixin as g,themeMixin as m,staticResourcesMixin as b,createValidateAttributesMixin as w,descopeUiMixin as y,initElementMixin 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 S from"@descope/web-js-sdk";import{createSelector as j}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))),P={action:M,reducer:E},L=O("outboundApps/getConnectedOutboundApps",((t,{extra:{api:e}})=>e.outboundApps.getConnectedOutboundApps(t))),F=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))),N={action:L,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:{}}},$={allOutboundApps:"/v1/mgmt/outbound/apps",connectedOutboundApps:"/v1/mgmt/outbound/apps-with-user-token"},D={me:"/v1/auth/me"},T=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"})}))})),V=({httpClient:e,mock:i})=>({getAllOutboundApps:()=>t(void 0,void 0,void 0,(function*(){if(i)return H();const t=yield e.get($.allOutboundApps);return yield T(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($.connectedOutboundApps,{queryParams:s?{userId:t,tenantId:s}:{userId:t}});return yield T(o),o.json()}))}),z=({httpClient:e,mock:i})=>({me:()=>t(void 0,void 0,void 0,(function*(){if(i)return J();const t=yield e.get(D.me);return yield T(t),t.json()}))}),G=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=S(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.3.7"}}));return{outboundApps:V({httpClient:s.httpClient,mock:e}),user:Object.assign({},z({httpClient:s.httpClient,mock:e}))}})({projectId:this.projectId,baseUrl:this.baseUrl,refreshCookieName:this.refreshCookieName},"true"===this.mock,this.widgetId),"f")},f})),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)))},X=n((t=>{const e=d(f({name:"widget",initialState:q,reducers:{setAllowedAppsIds:(t,{payload:e})=>{t.allowedAppsIds.data=e}},extraReducers:t=>{Q.reducer(t),N.reducer(t),P.reducer(t)},asyncActions:{getMe:Q.action,getOutboundApps:P.action,getConnectedOutboundApps:N.action}}),v,c,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}))}}})),Y="widget-flow",Z=n((i=>{var s,o,n;return n=class extends(d(v,g,X,u,c,m)(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({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})),_=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))))),tt=j((t=>t.me.data),(t=>t.userId)),et=n((e=>{const i=d(b,w({"widget-id":w.missingAttrValidator}))(e);return class extends i{get widgetId(){return this.getAttribute("widget-id")}fetchWidgetPage(e){return t(this,void 0,void 0,(function*(){return(yield this.fetchStaticResource(`outbound-applications-widget/${this.widgetId}/${e}`,"text")).body}))}}})),it=n((i=>{var o,n,r,a,l;return l=class extends(d(c,v,y,A,et,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})),st=n((t=>class extends(d(m,l)(t)){syncFlowTheme(t){t.theme=this.theme,this.observeAttributes(["theme"],(()=>{t.theme=this.theme}))}})),ot=n((s=>{var o,n,a,l,u,p,h,f,v,m,b,w,y,A,I,O,S;return S=class extends(d(st,X,c,it,g)(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),O.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",I).call(this,_(this.state)),e(this,o,"m",v).call(this),e(this,o,"m",w).call(this),this.subscribe(e(this,O,"f").bind(this),_)}))}},n=new WeakMap,a=new WeakMap,l=new WeakMap,u=new WeakMap,p=new WeakMap,h=new WeakMap,f=new WeakMap,O=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")))},m=function(t,e,i){t.open(),e.removeEventListener("page-updated",i)},b=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",m).call(this,t,n,d);i=d,null==n||n.addEventListener("page-updated",i)},w=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"))},y=function(t){e(this,a,"f").setContent(x({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",b).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})}))},A=function(t){e(this,l,"f").setContent(x({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",b).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)})}))},I=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",y).call(this,t)})),e(this,n,"f").onDisconnectClick((({id:t})=>{e(this,o,"m",A).call(this,t)})),e(this,n,"f").data=t},S})),nt=n((e=>class extends(d(I,m,Z,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)}))}})),dt=d((e=>class extends(nt(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.3.7"}}}))}}))(HTMLElement);customElements.define("descope-outbound-applications-widget",dt);export{dt as default};
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.0"}}));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.0"}}}))}}))(HTMLElement);customElements.define("descope-outbound-applications-widget",nt);export{nt as default};
6
6
  //# sourceMappingURL=index.js.map
@@ -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/fetchWidgetPagesMixin.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};\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 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 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 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 { compose, createSingletonMixin } from '@descope/sdk-helpers';\nimport {\n createValidateAttributesMixin,\n staticResourcesMixin,\n} from '@descope/sdk-mixins';\n\nconst WIDGET_PAGES_BASE_DIR = 'outbound-applications-widget';\n\nexport const fetchWidgetPagesMixin = createSingletonMixin(\n <T extends CustomElementConstructor>(superclass: T) => {\n const BaseClass = compose(\n staticResourcesMixin,\n createValidateAttributesMixin({\n 'widget-id': createValidateAttributesMixin.missingAttrValidator,\n }),\n )(superclass);\n return class FetchWidgetPagesMixinClass extends BaseClass {\n get widgetId() {\n return this.getAttribute('widget-id');\n }\n\n async fetchWidgetPage(filename: string) {\n const res = await this.fetchStaticResource(\n `${WIDGET_PAGES_BASE_DIR}/${this.widgetId}/${filename}`,\n 'text',\n );\n return res.body;\n }\n };\n },\n);\n","import {\n compose,\n createSingletonMixin,\n createTemplate,\n} from '@descope/sdk-helpers';\nimport {\n descopeUiMixin,\n initElementMixin,\n initLifecycleMixin,\n loggerMixin,\n} from '@descope/sdk-mixins';\nimport { fetchWidgetPagesMixin } from '../../fetchWidgetPagesMixin';\nimport { stateManagementMixin } from '../../stateManagementMixin';\nimport { getUserId } from '../../../state/selectors';\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 fetchWidgetPagesMixin,\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 { 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 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 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 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","modalMixin","themeMixin","widgetFlow","history","replaceState","newUrl","URL","href","delete","toString","resetUrlParam","modal","createModal","setContent","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","fetchWidgetPagesMixin","staticResourcesMixin","createValidateAttributesMixin","missingAttrValidator","fetchWidgetPage","filename","fetchStaticResource","body","initWidgetRootMixin","_InitWidgetRootMixinClass_instances","_InitWidgetRootMixinClass_initWidgetRoot","_InitWidgetRootMixinClass_renderTemplate","_InitWidgetRootMixinClass_allowedIds_get","descopeUiMixin","initElementMixin","observedAttributes","attributeChangedCallback","oldValue","newValue","onWidgetRootReady","all","dispatchEvent","CustomEvent","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":["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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"}