@careshiphealth/sdk 2.1.1 → 2.1.3
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/index.esm.js
CHANGED
|
@@ -140,9 +140,10 @@ class SuperCareEmbed {
|
|
|
140
140
|
}
|
|
141
141
|
const script = document.createElement("script");
|
|
142
142
|
script.id = "supercare-09u2ekhbpo-script";
|
|
143
|
-
script.dataset[""];
|
|
144
143
|
script.type = "module";
|
|
145
|
-
|
|
144
|
+
const org = encodeURIComponent(this.config.orgId);
|
|
145
|
+
const key = encodeURIComponent(this.config.apiKey);
|
|
146
|
+
script.src = `${CONSTANTS.WIDGET_JS}?orgId=${org}&apiKey=${key}`;
|
|
146
147
|
script.onload = () => {
|
|
147
148
|
this.scriptElement = script;
|
|
148
149
|
resolve();
|
|
@@ -175,17 +176,23 @@ class SuperCareEmbed {
|
|
|
175
176
|
const superCareEmbed = new SuperCareEmbed();
|
|
176
177
|
if (typeof window !== "undefined") {
|
|
177
178
|
window.addEventListener("DOMContentLoaded", () => {
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
179
|
+
const current = document.currentScript;
|
|
180
|
+
const candidate = current && current.hasAttribute("data-supercare-org-id") ? current : document.querySelector(
|
|
181
|
+
"script[data-supercare-org-id]"
|
|
182
|
+
);
|
|
183
|
+
if (!candidate) return;
|
|
184
|
+
const orgId = candidate.getAttribute("data-supercare-org-id");
|
|
185
|
+
const apiKey = candidate.getAttribute("data-supercare-api-key") || "";
|
|
186
|
+
let containerId = candidate.getAttribute("data-supercare-container-id") || "";
|
|
187
|
+
if (!containerId) {
|
|
188
|
+
containerId = "supercare-widget-container";
|
|
189
|
+
}
|
|
190
|
+
if (orgId) {
|
|
191
|
+
superCareEmbed.embed({
|
|
192
|
+
orgId,
|
|
193
|
+
apiKey,
|
|
194
|
+
containerId
|
|
195
|
+
}).catch(console.error);
|
|
189
196
|
}
|
|
190
197
|
});
|
|
191
198
|
}
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.type = \"module\";\n const org = encodeURIComponent(this.config.orgId);\n const key = encodeURIComponent(this.config.apiKey);\n script.src = `${CONSTANTS.WIDGET_JS}?orgId=${org}&apiKey=${key}`;\n\n script.onload = () => {\n this.scriptElement = script;\n resolve();\n };\n\n script.onerror = () => {\n reject(\n new Error(`Failed to load script from ${CONSTANTS.WIDGET_JS}`)\n );\n };\n\n document.body.appendChild(script);\n });\n }\n\n\n private cleanup(): void {\n if (this.scriptElement) {\n this.scriptElement.remove();\n this.scriptElement = null;\n }\n\n if (this.cssElement) {\n this.cssElement.remove();\n this.cssElement = null;\n }\n\n if (this.containerElement) {\n this.containerElement.remove();\n this.containerElement = null;\n }\n\n this.config = null;\n }\n}\n\nconst superCareEmbed = new SuperCareEmbed();\n\nexport { SuperCareEmbed };\nexport default superCareEmbed;\n\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const current = (document.currentScript as HTMLScriptElement | null);\n const candidate =\n (current && current.hasAttribute(\"data-supercare-org-id\")\n ? current\n : (document.querySelector(\n \"script[data-supercare-org-id]\"\n ) as HTMLScriptElement | null));\n\n if (!candidate) return;\n\n const orgId = candidate.getAttribute(\"data-supercare-org-id\");\n const apiKey = candidate.getAttribute(\"data-supercare-api-key\") || \"\";\n let containerId = candidate.getAttribute(\"data-supercare-container-id\") || \"\";\n \n if (!containerId) {\n containerId = \"supercare-widget-container\";\n }\n\n if (orgId) {\n superCareEmbed\n .embed({\n orgId,\n apiKey,\n containerId,\n })\n .catch(console.error);\n }\n });\n}\n\nif (typeof window !== \"undefined\") {\n (window as any).SuperCareEmbed = superCareEmbed;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var SuperCareEmbedSDK=function(e){"use strict";var t=Object.defineProperty,
|
|
1
|
+
var SuperCareEmbedSDK=function(e){"use strict";var t=Object.defineProperty,n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,o=(e,n,r)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,d=(e,t,n)=>new Promise((r,i)=>{var o=e=>{try{s(n.next(e))}catch(t){i(t)}},d=e=>{try{s(n.throw(e))}catch(t){i(t)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(o,d);s((n=n.apply(e,t)).next())});const s="https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest",c={WIDGET_JS:`${s}/dist/widget.iife.js`,WIDGET_CSS:`${s}/dist/widget.css`};class l{constructor(){this.isWidgetEmbedded=!1,this.scriptElement=null,this.cssElement=null,this.containerElement=null,this.config=null}embed(e){return d(this,null,function*(){if(this.isWidgetEmbedded)console.warn("SuperCare widget is already embedded");else{this.config=((e,t)=>{for(var d in t||(t={}))r.call(t,d)&&o(e,d,t[d]);if(n)for(var d of n(t))i.call(t,d)&&o(e,d,t[d]);return e})({autoInit:!0},e);try{yield this.injectCSS(),yield this.injectContainer(),yield this.injectScript(),this.isWidgetEmbedded=!0}catch(t){throw console.error("Failed to embed SuperCare widget:",t),this.cleanup(),t}}})}remove(){this.isWidgetEmbedded?(this.cleanup(),this.isWidgetEmbedded=!1):console.warn("SuperCare widget is not embedded")}isEmbedded(){return this.isWidgetEmbedded}injectCSS(){return d(this,null,function*(){return new Promise((e,t)=>{if(document.querySelector(`link[href="${c.WIDGET_CSS}"]`))return void e();const n=document.createElement("link");n.rel="stylesheet",n.href=c.WIDGET_CSS,n.onload=()=>{this.cssElement=n,e()},n.onerror=()=>{t(new Error(`Failed to load CSS from ${c.WIDGET_CSS}`))},document.head.appendChild(n)})})}injectContainer(){return d(this,null,function*(){var e;if(!(null==(e=this.config)?void 0:e.containerId))throw new Error("Container ID is required");const t=document.getElementById(this.config.containerId);if(t)return void(this.containerElement=t);const n=document.createElement("div");n.id=this.config.containerId,document.body.appendChild(n),this.containerElement=n})}injectScript(){return d(this,null,function*(){return new Promise((e,t)=>{var n,r;if(!(null==(n=this.config)?void 0:n.orgId)||!(null==(r=this.config)?void 0:r.apiKey))return void t(new Error("Org ID and API Key are required"));if(document.getElementById("supercare-09u2ekhbpo-script"))return void e();const i=document.createElement("script");i.id="supercare-09u2ekhbpo-script",i.type="module";const o=encodeURIComponent(this.config.orgId),d=encodeURIComponent(this.config.apiKey);i.src=`${c.WIDGET_JS}?orgId=${o}&apiKey=${d}`,i.onload=()=>{this.scriptElement=i,e()},i.onerror=()=>{t(new Error(`Failed to load script from ${c.WIDGET_JS}`))},document.body.appendChild(i)})})}cleanup(){this.scriptElement&&(this.scriptElement.remove(),this.scriptElement=null),this.cssElement&&(this.cssElement.remove(),this.cssElement=null),this.containerElement&&(this.containerElement.remove(),this.containerElement=null),this.config=null}}const a=new l;return"undefined"!=typeof window&&window.addEventListener("DOMContentLoaded",()=>{const e=document.currentScript,t=e&&e.hasAttribute("data-supercare-org-id")?e:document.querySelector("script[data-supercare-org-id]");if(!t)return;const n=t.getAttribute("data-supercare-org-id"),r=t.getAttribute("data-supercare-api-key")||"";let i=t.getAttribute("data-supercare-container-id")||"";i||(i="supercare-widget-container"),n&&a.embed({orgId:n,apiKey:r,containerId:i}).catch(console.error)}),"undefined"!=typeof window&&(window.SuperCareEmbed=a),e.SuperCareEmbed=l,e.default=a,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),e}({});
|
|
2
2
|
//# sourceMappingURL=supercare-embed-sdk.iife.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supercare-embed-sdk.iife.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.
|
|
1
|
+
{"version":3,"file":"supercare-embed-sdk.iife.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.type = \"module\";\n const org = encodeURIComponent(this.config.orgId);\n const key = encodeURIComponent(this.config.apiKey);\n script.src = `${CONSTANTS.WIDGET_JS}?orgId=${org}&apiKey=${key}`;\n\n script.onload = () => {\n this.scriptElement = script;\n resolve();\n };\n\n script.onerror = () => {\n reject(\n new Error(`Failed to load script from ${CONSTANTS.WIDGET_JS}`)\n );\n };\n\n document.body.appendChild(script);\n });\n }\n\n\n private cleanup(): void {\n if (this.scriptElement) {\n this.scriptElement.remove();\n this.scriptElement = null;\n }\n\n if (this.cssElement) {\n this.cssElement.remove();\n this.cssElement = null;\n }\n\n if (this.containerElement) {\n this.containerElement.remove();\n this.containerElement = null;\n }\n\n this.config = null;\n }\n}\n\nconst superCareEmbed = new SuperCareEmbed();\n\nexport { SuperCareEmbed };\nexport default superCareEmbed;\n\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const current = (document.currentScript as HTMLScriptElement | null);\n const candidate =\n (current && current.hasAttribute(\"data-supercare-org-id\")\n ? current\n : (document.querySelector(\n \"script[data-supercare-org-id]\"\n ) as HTMLScriptElement | null));\n\n if (!candidate) return;\n\n const orgId = candidate.getAttribute(\"data-supercare-org-id\");\n const apiKey = candidate.getAttribute(\"data-supercare-api-key\") || \"\";\n let containerId = candidate.getAttribute(\"data-supercare-container-id\") || \"\";\n \n if (!containerId) {\n containerId = \"supercare-widget-container\";\n }\n\n if (orgId) {\n superCareEmbed\n .embed({\n orgId,\n apiKey,\n containerId,\n })\n .catch(console.error);\n }\n });\n}\n\nif (typeof window !== \"undefined\") {\n (window as any).SuperCareEmbed = superCareEmbed;\n}\n"],"names":["WIDGET_CDN_URL","CONSTANTS","WIDGET_JS","WIDGET_CSS","SuperCareEmbed","constructor","this","isWidgetEmbedded","scriptElement","cssElement","containerElement","config","embed","__async","console","warn","__spreadValues","autoInit","injectCSS","injectContainer","injectScript","error","cleanup","remove","isEmbedded","Promise","resolve","reject","document","querySelector","link","createElement","rel","href","onload","onerror","Error","head","appendChild","_a","containerId","existingContainer","getElementById","container","id","body","orgId","_b","apiKey","script","type","org","encodeURIComponent","key","src","superCareEmbed","window","addEventListener","current","currentScript","candidate","hasAttribute","getAttribute","catch"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SuperCareEmbedSDK={})}(this,function(e){"use strict";var t=Object.defineProperty,
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SuperCareEmbedSDK={})}(this,function(e){"use strict";var t=Object.defineProperty,n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(e,n,i)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i,d=(e,t,n)=>new Promise((i,r)=>{var o=e=>{try{s(n.next(e))}catch(t){r(t)}},d=e=>{try{s(n.throw(e))}catch(t){r(t)}},s=e=>e.done?i(e.value):Promise.resolve(e.value).then(o,d);s((n=n.apply(e,t)).next())});const s="https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest",c={WIDGET_JS:`${s}/dist/widget.iife.js`,WIDGET_CSS:`${s}/dist/widget.css`};class l{constructor(){this.isWidgetEmbedded=!1,this.scriptElement=null,this.cssElement=null,this.containerElement=null,this.config=null}embed(e){return d(this,null,function*(){if(this.isWidgetEmbedded)console.warn("SuperCare widget is already embedded");else{this.config=((e,t)=>{for(var d in t||(t={}))i.call(t,d)&&o(e,d,t[d]);if(n)for(var d of n(t))r.call(t,d)&&o(e,d,t[d]);return e})({autoInit:!0},e);try{yield this.injectCSS(),yield this.injectContainer(),yield this.injectScript(),this.isWidgetEmbedded=!0}catch(t){throw console.error("Failed to embed SuperCare widget:",t),this.cleanup(),t}}})}remove(){this.isWidgetEmbedded?(this.cleanup(),this.isWidgetEmbedded=!1):console.warn("SuperCare widget is not embedded")}isEmbedded(){return this.isWidgetEmbedded}injectCSS(){return d(this,null,function*(){return new Promise((e,t)=>{if(document.querySelector(`link[href="${c.WIDGET_CSS}"]`))return void e();const n=document.createElement("link");n.rel="stylesheet",n.href=c.WIDGET_CSS,n.onload=()=>{this.cssElement=n,e()},n.onerror=()=>{t(new Error(`Failed to load CSS from ${c.WIDGET_CSS}`))},document.head.appendChild(n)})})}injectContainer(){return d(this,null,function*(){var e;if(!(null==(e=this.config)?void 0:e.containerId))throw new Error("Container ID is required");const t=document.getElementById(this.config.containerId);if(t)return void(this.containerElement=t);const n=document.createElement("div");n.id=this.config.containerId,document.body.appendChild(n),this.containerElement=n})}injectScript(){return d(this,null,function*(){return new Promise((e,t)=>{var n,i;if(!(null==(n=this.config)?void 0:n.orgId)||!(null==(i=this.config)?void 0:i.apiKey))return void t(new Error("Org ID and API Key are required"));if(document.getElementById("supercare-09u2ekhbpo-script"))return void e();const r=document.createElement("script");r.id="supercare-09u2ekhbpo-script",r.type="module";const o=encodeURIComponent(this.config.orgId),d=encodeURIComponent(this.config.apiKey);r.src=`${c.WIDGET_JS}?orgId=${o}&apiKey=${d}`,r.onload=()=>{this.scriptElement=r,e()},r.onerror=()=>{t(new Error(`Failed to load script from ${c.WIDGET_JS}`))},document.body.appendChild(r)})})}cleanup(){this.scriptElement&&(this.scriptElement.remove(),this.scriptElement=null),this.cssElement&&(this.cssElement.remove(),this.cssElement=null),this.containerElement&&(this.containerElement.remove(),this.containerElement=null),this.config=null}}const a=new l;"undefined"!=typeof window&&window.addEventListener("DOMContentLoaded",()=>{const e=document.currentScript,t=e&&e.hasAttribute("data-supercare-org-id")?e:document.querySelector("script[data-supercare-org-id]");if(!t)return;const n=t.getAttribute("data-supercare-org-id"),i=t.getAttribute("data-supercare-api-key")||"";let r=t.getAttribute("data-supercare-container-id")||"";r||(r="supercare-widget-container"),n&&a.embed({orgId:n,apiKey:i,containerId:r}).catch(console.error)}),"undefined"!=typeof window&&(window.SuperCareEmbed=a),e.SuperCareEmbed=l,e.default=a,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
2
2
|
//# sourceMappingURL=supercare-embed-sdk.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supercare-embed-sdk.umd.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.
|
|
1
|
+
{"version":3,"file":"supercare-embed-sdk.umd.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import packageJson from \"../package.json\";\n\n// export const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@${packageJson.version}`;\nexport const WIDGET_CDN_URL = `https://cdn.jsdelivr.net/npm/@careshiphealth/widget@latest`;\nexport const CONSTANTS = {\n WIDGET_JS: `${WIDGET_CDN_URL}/dist/widget.iife.js`,\n WIDGET_CSS: `${WIDGET_CDN_URL}/dist/widget.css`,\n};\n","import { CONSTANTS } from \"./constant\";\n\nexport interface SuperCareEmbedConfig {\n orgId: string;\n apiKey: string;\n // cssUrl?: string;\n // widgetUrl?: string;\n containerId: string;\n autoInit?: boolean;\n}\n\nexport interface SuperCareEmbedSDK {\n embed: (config: SuperCareEmbedConfig) => Promise<void>;\n remove: () => void;\n isEmbedded: () => boolean;\n}\n\nclass SuperCareEmbed implements SuperCareEmbedSDK {\n private isWidgetEmbedded = false;\n private scriptElement: HTMLScriptElement | null = null;\n private cssElement: HTMLLinkElement | null = null;\n private containerElement: HTMLDivElement | null = null;\n private config: SuperCareEmbedConfig | null = null;\n\n\n\n async embed(config: SuperCareEmbedConfig): Promise<void> {\n if (this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is already embedded\");\n return;\n }\n\n this.config = {\n // widgetUrl: defaultWidgetUrl,\n // cssUrl: defaultCssUrl,\n // containerId: \"supercare-09u2ekhbpo-body\",\n autoInit: true,\n ...config,\n };\n\n try {\n await this.injectCSS();\n await this.injectContainer();\n await this.injectScript();\n this.isWidgetEmbedded = true;\n } catch (error) {\n console.error(\"Failed to embed SuperCare widget:\", error);\n this.cleanup();\n throw error;\n }\n }\n\n\n remove(): void {\n if (!this.isWidgetEmbedded) {\n console.warn(\"SuperCare widget is not embedded\");\n return;\n }\n\n this.cleanup();\n this.isWidgetEmbedded = false;\n }\n\n\n isEmbedded(): boolean {\n return this.isWidgetEmbedded;\n }\n\n\n private async injectCSS(): Promise<void> {\n return new Promise((resolve, reject) => {\n // if (!this.config?.cssUrl) {\n // resolve();\n // return;\n // }\n\n const existingCSS = document.querySelector(\n `link[href=\"${CONSTANTS.WIDGET_CSS}\"]`\n );\n if (existingCSS) {\n resolve();\n return;\n }\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = CONSTANTS.WIDGET_CSS;\n\n link.onload = () => {\n this.cssElement = link;\n resolve();\n };\n\n link.onerror = () => {\n reject(new Error(`Failed to load CSS from ${CONSTANTS.WIDGET_CSS}`));\n };\n\n document.head.appendChild(link);\n });\n }\n\n private async injectContainer(): Promise<void> {\n if (!this.config?.containerId) {\n throw new Error(\"Container ID is required\");\n }\n\n const existingContainer = document.getElementById(this.config.containerId);\n if (existingContainer) {\n this.containerElement = existingContainer as HTMLDivElement;\n return;\n }\n\n const container = document.createElement(\"div\");\n container.id = this.config.containerId;\n document.body.appendChild(container);\n this.containerElement = container;\n }\n\n\n private async injectScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.config?.orgId || !this.config?.apiKey) {\n reject(new Error(\"Org ID and API Key are required\"));\n return;\n }\n\n // Check if script is already loaded\n const existingScript = document.getElementById(\n \"supercare-09u2ekhbpo-script\"\n );\n if (existingScript) {\n resolve();\n return;\n }\n\n const script = document.createElement(\"script\");\n script.id = \"supercare-09u2ekhbpo-script\";\n script.type = \"module\";\n const org = encodeURIComponent(this.config.orgId);\n const key = encodeURIComponent(this.config.apiKey);\n script.src = `${CONSTANTS.WIDGET_JS}?orgId=${org}&apiKey=${key}`;\n\n script.onload = () => {\n this.scriptElement = script;\n resolve();\n };\n\n script.onerror = () => {\n reject(\n new Error(`Failed to load script from ${CONSTANTS.WIDGET_JS}`)\n );\n };\n\n document.body.appendChild(script);\n });\n }\n\n\n private cleanup(): void {\n if (this.scriptElement) {\n this.scriptElement.remove();\n this.scriptElement = null;\n }\n\n if (this.cssElement) {\n this.cssElement.remove();\n this.cssElement = null;\n }\n\n if (this.containerElement) {\n this.containerElement.remove();\n this.containerElement = null;\n }\n\n this.config = null;\n }\n}\n\nconst superCareEmbed = new SuperCareEmbed();\n\nexport { SuperCareEmbed };\nexport default superCareEmbed;\n\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const current = (document.currentScript as HTMLScriptElement | null);\n const candidate =\n (current && current.hasAttribute(\"data-supercare-org-id\")\n ? current\n : (document.querySelector(\n \"script[data-supercare-org-id]\"\n ) as HTMLScriptElement | null));\n\n if (!candidate) return;\n\n const orgId = candidate.getAttribute(\"data-supercare-org-id\");\n const apiKey = candidate.getAttribute(\"data-supercare-api-key\") || \"\";\n let containerId = candidate.getAttribute(\"data-supercare-container-id\") || \"\";\n \n if (!containerId) {\n containerId = \"supercare-widget-container\";\n }\n\n if (orgId) {\n superCareEmbed\n .embed({\n orgId,\n apiKey,\n containerId,\n })\n .catch(console.error);\n }\n });\n}\n\nif (typeof window !== \"undefined\") {\n (window as any).SuperCareEmbed = superCareEmbed;\n}\n"],"names":["WIDGET_CDN_URL","CONSTANTS","WIDGET_JS","WIDGET_CSS","SuperCareEmbed","constructor","this","isWidgetEmbedded","scriptElement","cssElement","containerElement","config","embed","__async","console","warn","__spreadValues","autoInit","injectCSS","injectContainer","injectScript","error","cleanup","remove","isEmbedded","Promise","resolve","reject","document","querySelector","link","createElement","rel","href","onload","onerror","Error","head","appendChild","_a","containerId","existingContainer","getElementById","container","id","body","orgId","_b","apiKey","script","type","org","encodeURIComponent","key","src","superCareEmbed","window","addEventListener","current","currentScript","candidate","hasAttribute","getAttribute","catch"],"mappings":"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"}
|