@worthai/onboarding-sdk 2.0.10 → 2.0.12

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.js CHANGED
@@ -83,14 +83,7 @@ const createOnboardingApp = /* @__PURE__ */ __name((args) => {
83
83
  ...restArgs,
84
84
  queryParams
85
85
  });
86
- const detachedChildApp = createChildSite({
87
- ...restArgs,
88
- queryParams,
89
- initialRoute: "/detached",
90
- window: childApp.iframe.contentWindow,
91
- autoResize: false,
92
- style: { zIndex: "99999" }
93
- });
86
+ let detachedChildApp;
94
87
  let childAppSubscription;
95
88
  let detachedChildAppSubscription;
96
89
  const postMessage = /* @__PURE__ */ __name((message) => {
@@ -111,8 +104,19 @@ const createOnboardingApp = /* @__PURE__ */ __name((args) => {
111
104
  const setCustomCss = /* @__PURE__ */ __name((css) => {
112
105
  postMessage({ type: "SET_CUSTOM_CSS", payload: { css } });
113
106
  }, "setCustomCss");
114
- const appendDetachedOnboardingApp = /* @__PURE__ */ __name(async () => {
107
+ const appendDetachedOnboardingApp = /* @__PURE__ */ __name(() => {
108
+ if (childApp.iframe.contentWindow === null) {
109
+ console.error("Failed to initialize detached child app. No iframe content window found.");
110
+ return;
111
+ }
115
112
  const id = "detached-onboarding-app";
113
+ detachedChildApp = createChildSite({
114
+ ...restArgs,
115
+ queryParams,
116
+ initialRoute: "/detached",
117
+ autoResize: false,
118
+ style: { zIndex: "99999" }
119
+ });
116
120
  detachedChildApp.iframe.style.display = "none";
117
121
  detachedChildApp.iframe.style.width = "100%";
118
122
  detachedChildApp.iframe.style.height = "100%";
@@ -124,7 +128,7 @@ const createOnboardingApp = /* @__PURE__ */ __name((args) => {
124
128
  document.querySelector("body")?.appendChild(detachedChildApp.iframe);
125
129
  detachedChildAppSubscription = detachedChildApp.subscribe(
126
130
  (event) => {
127
- if (event.data.type === "DETACHED_EVENT") {
131
+ if (event.data.type === "DETACHED_EVENT" && detachedChildApp) {
128
132
  const detachedEvent = event.data.payload;
129
133
  switch (detachedEvent.type) {
130
134
  case "SHOW_DETACHED_IFRAME":
@@ -143,13 +147,12 @@ const createOnboardingApp = /* @__PURE__ */ __name((args) => {
143
147
  );
144
148
  }, "appendDetachedOnboardingApp");
145
149
  const onIframeInitialized = /* @__PURE__ */ __name(() => {
146
- appendDetachedOnboardingApp();
147
150
  childAppSubscription = subscribe(
148
151
  (event) => {
149
152
  if (event.data.type === "IFRAME_INITIALIZED") {
150
153
  postMessage({ type: "INVITE_TOKEN_SENT", payload: { inviteToken } });
151
154
  }
152
- if (event.data.type === "DETACHED_EVENT") {
155
+ if (event.data.type === "DETACHED_EVENT" && detachedChildApp) {
153
156
  detachedChildApp.postMessage(event.data);
154
157
  }
155
158
  }
@@ -160,16 +163,21 @@ const createOnboardingApp = /* @__PURE__ */ __name((args) => {
160
163
  }, "cleanupChildApp");
161
164
  const cleanupDetachedApp = /* @__PURE__ */ __name(() => {
162
165
  detachedChildAppSubscription?.unsubscribe();
163
- detachedChildApp.iframe.remove();
166
+ detachedChildApp?.iframe.remove();
164
167
  }, "cleanupDetachedApp");
165
168
  const cleanup = /* @__PURE__ */ __name(() => {
166
169
  cleanupChildApp();
167
170
  cleanupDetachedApp();
168
171
  }, "cleanup");
169
- childApp.iframe.addEventListener("load", () => {
172
+ const onIframeLoad = /* @__PURE__ */ __name(() => {
173
+ appendDetachedOnboardingApp();
174
+ childApp.iframe.removeEventListener("load", onIframeLoad);
175
+ }, "onIframeLoad");
176
+ const run = /* @__PURE__ */ __name(() => {
170
177
  onIframeInitialized();
171
- childApp.iframe.removeEventListener("load", onIframeInitialized);
172
- });
178
+ childApp.iframe.addEventListener("load", onIframeLoad);
179
+ }, "run");
180
+ run();
173
181
  return {
174
182
  subscribe,
175
183
  setMode: childApp.setMode,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/createChildSite/index.ts","../src/utils/createOnboardingApp/index.ts","../src/utils/getURLQueryParams/index.ts","../src/utils/createParentSite/index.ts","../src/utils/createOnboardingConsumerApp/index.ts"],"sourcesContent":["import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { ParentSiteMessage } from '@/interfaces/ParentSiteMessage';\n\nexport const createChildSite = (args: {\n origin: string;\n initialRoute?: string;\n queryParams?: IframeQueryParams;\n window?: Window | null;\n mode?: IframeMode;\n autoResize?: boolean;\n style?: { zIndex?: string };\n}) => {\n const {\n origin,\n initialRoute = '',\n mode,\n autoResize = true,\n style = {},\n } = args;\n const app = args.window || window;\n const queryParams = args.queryParams;\n const iframe = document.createElement('iframe');\n const state = { mode };\n\n const setMode = (mode: IframeMode) => {\n state.mode = mode;\n postMessage<ParentSiteMessage>({\n type: 'SET_IFRAME_MODE',\n payload: { mode: state.mode },\n });\n };\n\n const refreshSize = () => {\n postMessage<ParentSiteMessage>({ type: 'REFRESH_SIZE' });\n };\n\n const buildIframeSrc = () => {\n let srcUrl: URL;\n if (initialRoute) {\n srcUrl = new URL(initialRoute.replace(/^\\//, ''), origin);\n } else {\n srcUrl = new URL(origin);\n }\n\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (typeof value === 'string') {\n srcUrl.searchParams.set(key, value);\n }\n }\n\n return srcUrl;\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void,\n ) => {\n const handler = (event: MessageEvent<T>) => {\n if (event.source !== iframe.contentWindow) {\n return;\n }\n callback(event);\n };\n\n app.addEventListener('message', handler);\n return {\n unsubscribe: () => app.removeEventListener('message', handler),\n };\n };\n\n const initializeChildSite = () => {\n iframe.src = buildIframeSrc().toString();\n if (style.zIndex) iframe.style.zIndex = style.zIndex;\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n iframe.style.border = 'none';\n\n subscribe<ChildSiteMessage>((event) => {\n switch (event.data.type) {\n case 'IFRAME_RESIZE':\n if (autoResize === false || state.mode === 'non-embedded') return;\n iframe.style.border = 'none';\n iframe.style.height = `${event.data.payload.height}px`;\n break;\n case 'IFRAME_INITIALIZED':\n setMode(state.mode);\n postMessage<ParentSiteMessage>({\n type: 'IFRAME_RENDERED_ON_PARENT_SITE',\n });\n break;\n }\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(\n message: TMessage,\n transfer?: Transferable[],\n ) => {\n iframe.contentWindow?.postMessage(message, '*', transfer);\n };\n\n initializeChildSite();\n\n return { iframe, subscribe, postMessage, setMode, refreshSize };\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteSubscription } from '@/interfaces/ChildSiteSubscription';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingAppMode } from '@/interfaces/OnboardingAppMode';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createChildSite } from '@/utils/createChildSite';\n\nexport const createOnboardingApp = (args: {\n origin: string;\n inviteToken: string;\n mode?: OnboardingAppMode;\n}) => {\n const queryParams: IframeQueryParams = {};\n const { inviteToken, ...restArgs } = args;\n const childApp = createChildSite({\n ...restArgs,\n queryParams,\n });\n const detachedChildApp = createChildSite({\n ...restArgs,\n queryParams,\n initialRoute: '/detached',\n window: childApp.iframe.contentWindow,\n autoResize: false,\n style: { zIndex: '99999' },\n });\n let childAppSubscription: ChildSiteSubscription | undefined;\n let detachedChildAppSubscription: ChildSiteSubscription | undefined;\n\n const postMessage = (message: OnboardingConsumerAppMessage) => {\n childApp.postMessage(message as unknown as AnyMessage);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingAppMessage>) => void,\n ) => {\n return childApp.subscribe(callback);\n };\n\n const skip = () => {\n postMessage({ type: 'SKIP_STAGE' });\n };\n\n const next = () => {\n postMessage({ type: 'NEXT_STAGE' });\n };\n\n const prev = () => {\n postMessage({ type: 'PREV_STAGE' });\n };\n\n const setCustomCss = (css: string) => {\n postMessage({ type: 'SET_CUSTOM_CSS', payload: { css } });\n };\n\n const appendDetachedOnboardingApp = async () => {\n const id = 'detached-onboarding-app';\n detachedChildApp.iframe.style.display = 'none';\n detachedChildApp.iframe.style.width = '100%';\n detachedChildApp.iframe.style.height = '100%';\n detachedChildApp.iframe.style.position = 'fixed';\n detachedChildApp.iframe.style.top = '0px';\n detachedChildApp.iframe.style.left = '0px';\n detachedChildApp.iframe.id = id;\n document.getElementById(id)?.remove();\n document.querySelector('body')?.appendChild(detachedChildApp.iframe);\n\n detachedChildAppSubscription = detachedChildApp.subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'DETACHED_EVENT') {\n const detachedEvent = event.data.payload;\n switch (detachedEvent.type) {\n case 'SHOW_DETACHED_IFRAME':\n detachedChildApp.iframe.style.display = 'block';\n break;\n case 'HIDE_DETACHED_IFRAME':\n detachedChildApp.postMessage(event.data);\n detachedChildApp.iframe.style.display = 'none';\n break;\n default:\n postMessage(event.data);\n break;\n }\n }\n },\n );\n };\n\n const onIframeInitialized = () => {\n appendDetachedOnboardingApp();\n\n childAppSubscription = subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'IFRAME_INITIALIZED') {\n postMessage({ type: 'INVITE_TOKEN_SENT', payload: { inviteToken } });\n }\n\n if (event.data.type === 'DETACHED_EVENT') {\n detachedChildApp.postMessage(event.data);\n }\n },\n );\n };\n\n const cleanupChildApp = () => {\n childAppSubscription?.unsubscribe();\n };\n\n const cleanupDetachedApp = () => {\n detachedChildAppSubscription?.unsubscribe();\n detachedChildApp.iframe.remove();\n };\n\n const cleanup = () => {\n cleanupChildApp();\n cleanupDetachedApp();\n };\n\n childApp.iframe.addEventListener('load', () => {\n onIframeInitialized();\n childApp.iframe.removeEventListener('load', onIframeInitialized);\n });\n\n return {\n subscribe,\n setMode: childApp.setMode,\n setCustomCss,\n iframe: childApp.iframe,\n next,\n prev,\n skip,\n refreshSize: childApp.refreshSize,\n cleanup,\n };\n};\n","import type { QueryParams } from '@/interfaces/QueryParams';\n\nexport const getURLQueryParams = <T extends QueryParams>() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const queryParams: QueryParams = {};\n urlSearchParams.forEach((value, key) => {\n queryParams[key] = value;\n });\n\n return queryParams as T;\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport { getURLQueryParams } from '@/utils/getURLQueryParams';\n\nexport const createParentSite = () => {\n const queryParams = getURLQueryParams<IframeQueryParams>();\n\n const notifyHeight = () => {\n const height = document.body.scrollHeight;\n postMessage<ChildSiteMessage>({\n type: 'IFRAME_RESIZE',\n payload: { height },\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(message: TMessage) => {\n window.parent.postMessage(message, '*');\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void\n ) => {\n const handler = (event: MessageEvent<T>) => {\n callback(event);\n };\n\n window.addEventListener('message', handler);\n return {\n unsubscribe: () => window.removeEventListener('message', handler),\n };\n };\n\n const notifySize = () => {\n notifyHeight();\n };\n\n const initializeParentSite = () => {\n const observer = new ResizeObserver(notifySize);\n observer.observe(document.body);\n\n subscribe((event) => {\n switch (event.data.type) {\n case 'SET_IFRAME_MODE':\n const mode = event.data.payload.mode as IframeMode;\n document.body.style.overflow =\n mode === 'embedded' ? 'hidden' : 'auto';\n break;\n case 'REFRESH_SIZE':\n notifySize();\n break;\n default:\n break;\n }\n });\n\n postMessage<ChildSiteMessage>({ type: 'IFRAME_INITIALIZED' });\n };\n\n initializeParentSite();\n\n return {\n notifySize,\n subscribe,\n postMessage,\n queryParams,\n };\n};\n","import type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createParentSite } from '@/utils/createParentSite';\n\nexport const createOnboardingConsumerApp = () => {\n const parentApp = createParentSite();\n\n const postMessage = (message: OnboardingAppMessage) => {\n parentApp.postMessage(message);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingConsumerAppMessage>) => void\n ) => {\n return parentApp.subscribe(callback);\n };\n\n return {\n postMessage,\n subscribe,\n notifySize: parentApp.notifySize,\n };\n};\n"],"names":["mode"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/createChildSite/index.ts","../src/utils/createOnboardingApp/index.ts","../src/utils/getURLQueryParams/index.ts","../src/utils/createParentSite/index.ts","../src/utils/createOnboardingConsumerApp/index.ts"],"sourcesContent":["import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { ParentSiteMessage } from '@/interfaces/ParentSiteMessage';\n\nexport const createChildSite = (args: {\n origin: string;\n initialRoute?: string;\n queryParams?: IframeQueryParams;\n window?: Window | null;\n mode?: IframeMode;\n autoResize?: boolean;\n style?: { zIndex?: string };\n}) => {\n const {\n origin,\n initialRoute = '',\n mode,\n autoResize = true,\n style = {},\n } = args;\n const app = args.window || window;\n const queryParams = args.queryParams;\n const iframe = document.createElement('iframe');\n const state = { mode };\n\n const setMode = (mode: IframeMode) => {\n state.mode = mode;\n postMessage<ParentSiteMessage>({\n type: 'SET_IFRAME_MODE',\n payload: { mode: state.mode },\n });\n };\n\n const refreshSize = () => {\n postMessage<ParentSiteMessage>({ type: 'REFRESH_SIZE' });\n };\n\n const buildIframeSrc = () => {\n let srcUrl: URL;\n if (initialRoute) {\n srcUrl = new URL(initialRoute.replace(/^\\//, ''), origin);\n } else {\n srcUrl = new URL(origin);\n }\n\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (typeof value === 'string') {\n srcUrl.searchParams.set(key, value);\n }\n }\n\n return srcUrl;\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void,\n ) => {\n const handler = (event: MessageEvent<T>) => {\n if (event.source !== iframe.contentWindow) {\n return;\n }\n callback(event);\n };\n\n app.addEventListener('message', handler);\n return {\n unsubscribe: () => app.removeEventListener('message', handler),\n };\n };\n\n const initializeChildSite = () => {\n iframe.src = buildIframeSrc().toString();\n if (style.zIndex) iframe.style.zIndex = style.zIndex;\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n iframe.style.border = 'none';\n\n subscribe<ChildSiteMessage>((event) => {\n switch (event.data.type) {\n case 'IFRAME_RESIZE':\n if (autoResize === false || state.mode === 'non-embedded') return;\n iframe.style.border = 'none';\n iframe.style.height = `${event.data.payload.height}px`;\n break;\n case 'IFRAME_INITIALIZED':\n setMode(state.mode);\n postMessage<ParentSiteMessage>({\n type: 'IFRAME_RENDERED_ON_PARENT_SITE',\n });\n break;\n }\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(\n message: TMessage,\n transfer?: Transferable[],\n ) => {\n iframe.contentWindow?.postMessage(message, '*', transfer);\n };\n\n initializeChildSite();\n\n return { iframe, subscribe, postMessage, setMode, refreshSize };\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteSubscription } from '@/interfaces/ChildSiteSubscription';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingAppMode } from '@/interfaces/OnboardingAppMode';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createChildSite } from '@/utils/createChildSite';\n\nexport const createOnboardingApp = (args: {\n origin: string;\n inviteToken: string;\n mode?: OnboardingAppMode;\n}) => {\n const queryParams: IframeQueryParams = {};\n const { inviteToken, ...restArgs } = args;\n const childApp = createChildSite({\n ...restArgs,\n queryParams,\n }); \n let detachedChildApp: ReturnType<typeof createChildSite> | undefined\n let childAppSubscription: ChildSiteSubscription | undefined;\n let detachedChildAppSubscription: ChildSiteSubscription | undefined;\n\n const postMessage = (message: OnboardingConsumerAppMessage) => {\n childApp.postMessage(message as unknown as AnyMessage);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingAppMessage>) => void,\n ) => {\n return childApp.subscribe(callback);\n };\n\n const skip = () => {\n postMessage({ type: 'SKIP_STAGE' });\n };\n\n const next = () => {\n postMessage({ type: 'NEXT_STAGE' });\n };\n\n const prev = () => {\n postMessage({ type: 'PREV_STAGE' });\n };\n\n const setCustomCss = (css: string) => {\n postMessage({ type: 'SET_CUSTOM_CSS', payload: { css } });\n };\n\n const appendDetachedOnboardingApp = () => {\n if (childApp.iframe.contentWindow === null) {\n console.error('Failed to initialize detached child app. No iframe content window found.')\n return;\n }\n \n const id = 'detached-onboarding-app';\n detachedChildApp = createChildSite({\n ...restArgs,\n queryParams,\n initialRoute: '/detached', \n autoResize: false,\n style: { zIndex: '99999' },\n });\n\n detachedChildApp.iframe.style.display = 'none';\n detachedChildApp.iframe.style.width = '100%';\n detachedChildApp.iframe.style.height = '100%';\n detachedChildApp.iframe.style.position = 'fixed';\n detachedChildApp.iframe.style.top = '0px';\n detachedChildApp.iframe.style.left = '0px';\n detachedChildApp.iframe.id = id;\n document.getElementById(id)?.remove();\n document.querySelector('body')?.appendChild(detachedChildApp.iframe);\n\n detachedChildAppSubscription = detachedChildApp.subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'DETACHED_EVENT' && detachedChildApp) {\n const detachedEvent = event.data.payload;\n switch (detachedEvent.type) {\n case 'SHOW_DETACHED_IFRAME':\n detachedChildApp.iframe.style.display = 'block';\n break;\n case 'HIDE_DETACHED_IFRAME':\n detachedChildApp.postMessage(event.data);\n detachedChildApp.iframe.style.display = 'none';\n break;\n default:\n postMessage(event.data);\n break;\n }\n }\n },\n );\n };\n\n const onIframeInitialized = () => {\n childAppSubscription = subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'IFRAME_INITIALIZED') {\n postMessage({ type: 'INVITE_TOKEN_SENT', payload: { inviteToken } });\n }\n\n if (event.data.type === 'DETACHED_EVENT' && detachedChildApp) {\n detachedChildApp.postMessage(event.data);\n }\n },\n );\n };\n\n const cleanupChildApp = () => {\n childAppSubscription?.unsubscribe();\n };\n\n const cleanupDetachedApp = () => {\n detachedChildAppSubscription?.unsubscribe();\n detachedChildApp?.iframe.remove();\n };\n\n const cleanup = () => {\n cleanupChildApp();\n cleanupDetachedApp();\n };\n\n const onIframeLoad = () => {\n appendDetachedOnboardingApp()\n childApp.iframe.removeEventListener('load', onIframeLoad);\n }\n\n const run = () => {\n onIframeInitialized();\n childApp.iframe.addEventListener('load', onIframeLoad);\n }\n\n run()\n\n return {\n subscribe,\n setMode: childApp.setMode,\n setCustomCss,\n iframe: childApp.iframe,\n next,\n prev,\n skip,\n refreshSize: childApp.refreshSize,\n cleanup,\n };\n};\n","import type { QueryParams } from '@/interfaces/QueryParams';\n\nexport const getURLQueryParams = <T extends QueryParams>() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const queryParams: QueryParams = {};\n urlSearchParams.forEach((value, key) => {\n queryParams[key] = value;\n });\n\n return queryParams as T;\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport { getURLQueryParams } from '@/utils/getURLQueryParams';\n\nexport const createParentSite = () => {\n const queryParams = getURLQueryParams<IframeQueryParams>();\n\n const notifyHeight = () => {\n const height = document.body.scrollHeight;\n postMessage<ChildSiteMessage>({\n type: 'IFRAME_RESIZE',\n payload: { height },\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(message: TMessage) => {\n window.parent.postMessage(message, '*');\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void\n ) => {\n const handler = (event: MessageEvent<T>) => {\n callback(event);\n };\n\n window.addEventListener('message', handler);\n return {\n unsubscribe: () => window.removeEventListener('message', handler),\n };\n };\n\n const notifySize = () => {\n notifyHeight();\n };\n\n const initializeParentSite = () => {\n const observer = new ResizeObserver(notifySize);\n observer.observe(document.body);\n\n subscribe((event) => {\n switch (event.data.type) {\n case 'SET_IFRAME_MODE':\n const mode = event.data.payload.mode as IframeMode;\n document.body.style.overflow =\n mode === 'embedded' ? 'hidden' : 'auto';\n break;\n case 'REFRESH_SIZE':\n notifySize();\n break;\n default:\n break;\n }\n });\n\n postMessage<ChildSiteMessage>({ type: 'IFRAME_INITIALIZED' });\n };\n\n initializeParentSite();\n\n return {\n notifySize,\n subscribe,\n postMessage,\n queryParams,\n };\n};\n","import type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createParentSite } from '@/utils/createParentSite';\n\nexport const createOnboardingConsumerApp = () => {\n const parentApp = createParentSite();\n\n const postMessage = (message: OnboardingAppMessage) => {\n parentApp.postMessage(message);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingConsumerAppMessage>) => void\n ) => {\n return parentApp.subscribe(callback);\n };\n\n return {\n postMessage,\n subscribe,\n notifySize: parentApp.notifySize,\n };\n};\n"],"names":["mode"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worthai/onboarding-sdk",
3
- "version": "2.0.10",
3
+ "version": "2.0.12",
4
4
  "type": "module",
5
5
  "source": "./src",
6
6
  "types": "./dist/index.d.ts",