courier-vue-embedded
Version:
Vue 3 wrapper for trycourier
2 lines (1 loc) • 6.68 kB
JavaScript
"use strict";var _=Object.defineProperty;var k=(t,e,s)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var i=(t,e,s)=>k(t,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),a=t=>{let e,s;const c=new Promise((d,h)=>{e=d,s=h});return c.resolve=e,c.reject=s,c},l=t=>{const e={};return Object.entries(t).forEach(([s,o])=>{o!==void 0&&(e[s]=o)}),e};class R{constructor(){i(this,"onceReady",a());i(this,"_fetchMessagesDefered",a());i(this,"_fetchUnreadMessageCountDefered",a())}get sdk(){return window.courier}init(){this.sdk.on("inbox/init",()=>{this.onceReady.resolve()}),this.sdk.on("inbox/FETCH_MESSAGES/DONE",e=>{this._fetchMessagesDefered.resolve(e.payload)}),this.sdk.on("inbox/FETCH_UNREAD_MESSAGE_COUNT/DONE",e=>{this._fetchUnreadMessageCountDefered.resolve(e.payload)})}async fetchMessages(e){return await this.onceReady,this._fetchMessagesDefered=a(),this.sdk.inbox.fetchMessages(e),await this._fetchMessagesDefered}async getUnreadMessageCount(e){return await this.onceReady,this._fetchUnreadMessageCountDefered=a(),this.sdk.inbox.getUnreadMessageCount(e),await this._fetchUnreadMessageCountDefered}async markAllAsRead(e){await this.onceReady,this.sdk.inbox.markAllAsRead(e)}async markMessageArchived(e,s){await this.onceReady,await this.sdk.inbox.markMessageArchived(e,s)}async markMessageOpened(e,s){await this.onceReady,await this.sdk.inbox.markMessageOpened(e,s)}async markMessageRead(e,s){var o;await this.onceReady,await((o=this.sdk.inbox)==null?void 0:o.markMessageRead(e,s))}async addMessage(e){await this.onceReady,this.sdk.inbox.newMessage(e)}async resetLastFetched(){await this.onceReady,this.sdk.inbox.resetLastFetched()}async setView(e){await this.onceReady,this.sdk.inbox.setView(e)}async toggleVisibility(){await this.onceReady,this.sdk.inbox.toggleInbox()}async open(){await this.onceReady,this.sdk.inbox.toggleInbox(!0)}async close(){await this.onceReady,this.sdk.inbox.toggleInbox(!1)}async unpinMessage(e,s){await this.onceReady,await this.sdk.inbox.unpinMessage(e,s)}async trackClick(e,s){await this.onceReady,await this.sdk.inbox.trackClick(e,s)}async setConfig(e){await this.onceReady,this.sdk.inbox.setConfig(l(e))}async mergeConfig(e){await this.onceReady,this.sdk.inbox.mergeConfig(l(e))}}class C{constructor(){i(this,"_fetchRecipientPreferences",a());i(this,"_fetchPreferencePage",a())}get sdk(){return window.courier}init(){this.sdk.on("preferences/FETCH_RECIPIENT_PREFERENCES/DONE",e=>{this._fetchRecipientPreferences.resolve(e.payload)}),this.sdk.on("preferences/FETCH_DRAFT_RECIPIENT_PREFERENCES/DONE",e=>{this._fetchRecipientPreferences.resolve(e.payload)}),this.sdk.on("preferences/FETCH_PREFERENCE_PAGE/DONE",e=>{this._fetchPreferencePage.resolve(e.payload)}),this.sdk.on("preferences/FETCH_DRAFT_PREFERENCE_PAGE/DONE",e=>{this._fetchPreferencePage.resolve(e.payload)})}async fetchRecipientPreferences(e,s){return this._fetchRecipientPreferences=a(),this.sdk.preferences.fetchRecipientPreferences(e,s),await this._fetchRecipientPreferences}async fetchPreferencePage(e,s){return this._fetchPreferencePage=a(),this.sdk.preferences.fetchPreferencePage(e,s),await this._fetchPreferencePage}async updateRecipientPreferences(e){this.sdk.preferences.updateRecipientPreferences(e)}}class m{constructor(){i(this,"onceReady",a())}get sdk(){return window.courier}init(){this.sdk.on("inbox/init",()=>{this.onceReady.resolve()})}async create(e){await this.onceReady,this.sdk.toast.toast(e)}async getConfig(){return await this.onceReady,this.sdk.toast.config}async setConfig(e){await this.onceReady,this.sdk.toast.setConfig(e)}async mergeConfig(e){await this.onceReady,this.sdk.toast.mergeConfig(e)}}const p="courier-script",b="https://components.courier.com/v6.2.1.js",E=async()=>{const t=document.body.querySelector(`#${p}`);t&&t.remove();const e=document.createElement("script");e.id=p,e.async=!0,e.setAttribute("src",b),document.body.appendChild(e)};window.courierConfig={initOnLoad:!1};class P{constructor(){i(this,"onceLoaded",a());i(this,"onceReady",a());i(this,"inbox",new R);i(this,"preferences",new C);i(this,"toast",new m);i(this,"isReady",!1);window.courierAsyncInit=()=>{this.onceLoaded.resolve()},E()}get sdk(){return window.courier}async init(e){await this.onceLoaded,this.sdk.on("root/init",()=>{this.onceReady.resolve(),this.isReady=!0,this.inbox.init(),this.preferences.init(),this.toast.init()}),this.sdk.init(e)}async whenReady(e){await this.onceReady,e()}onAny(e){return this.on("*",e)}on(e,s){return this.sdk.on(e,s),this}async renewSession(e){await this.isReady,this.sdk.renewSession(e)}}const r=new P,f=()=>({init:t=>r.init(t),renewSession:t=>r.renewSession(t),on:(t,e)=>r.on(t,e),onAny:t=>r.onAny(t),whenReady:t=>r.whenReady(t),inbox:y(),toast:g(),preferences:w()}),y=()=>r.inbox,g=()=>r.toast,w=()=>r.preferences,x={class:"courier-inbox-vue"},v=n.createElementVNode("courier-inbox",null,null,-1),M=[v],N=n.defineComponent({__name:"CourierInboxVue",props:{brand:{},className:{},defaultIcon:{type:[Boolean,String]},from:{},isOpen:{type:Boolean,default:void 0},markdownOptions:{},tenantId:{},views:{default:()=>[]},formatDate:{},appendTo:{},labels:{},onEvent:{},openLinksInNewTab:{type:Boolean,default:void 0},placement:{},showUnreadMessageCount:{type:Boolean,default:void 0},theme:{},title:{},trigger:{}},emits:["update:isOpen"],setup(t,{emit:e}){const{on:s,whenReady:o,inbox:c}=f(),d=t,h=e;return o(()=>{s("inbox/TOGGLE_INBOX",u=>{h("update:isOpen",!d.isOpen)})}),n.watch(d,u=>c.mergeConfig({...u}),{immediate:!0,flush:"pre"}),(u,B)=>(n.openBlock(),n.createElementBlock("div",x,M))}}),D={class:"courier-toast-vue"},I=n.createElementVNode("courier-toast",null,null,-1),T=[I],O=n.defineComponent({__name:"CourierToastVue",props:{autoClose:{type:[Boolean,Number],default:void 0},brand:{},defaultIcon:{type:[String,Boolean],default:void 0},hideProgressBar:{type:Boolean,default:void 0},onClick:{},openLinksInNewTab:{type:Boolean,default:void 0},position:{},role:{},theme:{},transition:{}},setup(t){const e=t,{toast:s}=f();return n.watch(e,o=>s.mergeConfig(o),{immediate:!0,flush:"pre"}),(o,c)=>(n.openBlock(),n.createElementBlock("div",D,T))}}),A={class:"courier-preferences-vue"},S=n.defineComponent({__name:"CourierPreferencesVue",props:{tenantId:{},draft:{type:Boolean}},setup(t){const e=t;return(s,o)=>(n.openBlock(),n.createElementBlock("div",A,[n.createElementVNode("courier-preferences",n.normalizeProps(n.guardReactiveProps(e)),null,16)]))}});exports.CourierInboxVue=N;exports.CourierPreferencesVue=S;exports.CourierToastVue=O;exports.useCourier=f;exports.useCourierInbox=y;exports.useCourierPreferences=w;exports.useCourierToast=g;