UNPKG

courier-vue-embedded

Version:
265 lines (264 loc) 8.2 kB
var R = Object.defineProperty; var k = (s, e, t) => e in s ? R(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t; var n = (s, e, t) => k(s, typeof e != "symbol" ? e + "" : e, t); import { defineComponent as u, watch as w, openBlock as f, createElementBlock as l, createElementVNode as p, normalizeProps as C, guardReactiveProps as m } from "vue"; const o = (s) => { let e, t; const r = new Promise((c, d) => { e = c, t = d; }); return r.resolve = e, r.reject = t, r; }, y = (s) => { const e = {}; return Object.entries(s).forEach(([t, i]) => { i !== void 0 && (e[t] = i); }), e; }; class b { constructor() { n(this, "onceReady", o()); n(this, "_fetchMessagesDefered", o()); n(this, "_fetchUnreadMessageCountDefered", o()); } 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 = o(), this.sdk.inbox.fetchMessages(e), await this._fetchMessagesDefered; } async getUnreadMessageCount(e) { return await this.onceReady, this._fetchUnreadMessageCountDefered = o(), this.sdk.inbox.getUnreadMessageCount(e), await this._fetchUnreadMessageCountDefered; } async markAllAsRead(e) { await this.onceReady, this.sdk.inbox.markAllAsRead(e); } async markMessageArchived(e, t) { await this.onceReady, await this.sdk.inbox.markMessageArchived(e, t); } async markMessageOpened(e, t) { await this.onceReady, await this.sdk.inbox.markMessageOpened(e, t); } async markMessageRead(e, t) { var i; await this.onceReady, await ((i = this.sdk.inbox) == null ? void 0 : i.markMessageRead(e, t)); } 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, t) { await this.onceReady, await this.sdk.inbox.unpinMessage(e, t); } async trackClick(e, t) { await this.onceReady, await this.sdk.inbox.trackClick(e, t); } async setConfig(e) { await this.onceReady, this.sdk.inbox.setConfig(y(e)); } async mergeConfig(e) { await this.onceReady, this.sdk.inbox.mergeConfig(y(e)); } } class E { constructor() { n(this, "_fetchRecipientPreferences", o()); n(this, "_fetchPreferencePage", o()); } 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, t) { return this._fetchRecipientPreferences = o(), this.sdk.preferences.fetchRecipientPreferences(e, t), await this._fetchRecipientPreferences; } async fetchPreferencePage(e, t) { return this._fetchPreferencePage = o(), this.sdk.preferences.fetchPreferencePage(e, t), await this._fetchPreferencePage; } async updateRecipientPreferences(e) { this.sdk.preferences.updateRecipientPreferences(e); } } class x { constructor() { n(this, "onceReady", o()); } 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 g = "courier-script", P = "https://components.courier.com/v6.2.1.js", v = async () => { const s = document.body.querySelector(`#${g}`); s && s.remove(); const e = document.createElement("script"); e.id = g, e.async = !0, e.setAttribute("src", P), document.body.appendChild(e); }; window.courierConfig = { initOnLoad: !1 }; class M { constructor() { n(this, "onceLoaded", o()); n(this, "onceReady", o()); n(this, "inbox", new b()); n(this, "preferences", new E()); n(this, "toast", new x()); n(this, "isReady", !1); window.courierAsyncInit = () => { this.onceLoaded.resolve(); }, v(); } 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, t) { return this.sdk.on(e, t), this; } async renewSession(e) { await this.isReady, this.sdk.renewSession(e); } } const a = new M(), _ = () => ({ init: (s) => a.init(s), renewSession: (s) => a.renewSession(s), on: (s, e) => a.on(s, e), onAny: (s) => a.onAny(s), whenReady: (s) => a.whenReady(s), inbox: D(), toast: I(), preferences: N() }), D = () => a.inbox, I = () => a.toast, N = () => a.preferences, O = { class: "courier-inbox-vue" }, T = /* @__PURE__ */ p("courier-inbox", null, null, -1), A = [ T ], G = /* @__PURE__ */ u({ __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(s, { emit: e }) { const { on: t, whenReady: i, inbox: r } = _(), c = s, d = e; return i(() => { t("inbox/TOGGLE_INBOX", (h) => { d("update:isOpen", !c.isOpen); }); }), w(c, (h) => r.mergeConfig({ ...h }), { immediate: !0, flush: "pre" }), (h, U) => (f(), l("div", O, A)); } }), S = { class: "courier-toast-vue" }, F = /* @__PURE__ */ p("courier-toast", null, null, -1), B = [ F ], H = /* @__PURE__ */ u({ __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(s) { const e = s, { toast: t } = _(); return w(e, (i) => t.mergeConfig(i), { immediate: !0, flush: "pre" }), (i, r) => (f(), l("div", S, B)); } }), V = { class: "courier-preferences-vue" }, j = /* @__PURE__ */ u({ __name: "CourierPreferencesVue", props: { tenantId: {}, draft: { type: Boolean } }, setup(s) { const e = s; return (t, i) => (f(), l("div", V, [ p("courier-preferences", C(m(e)), null, 16) ])); } }); export { G as CourierInboxVue, j as CourierPreferencesVue, H as CourierToastVue, _ as useCourier, D as useCourierInbox, N as useCourierPreferences, I as useCourierToast };