diff --git a/package-lock.json b/package-lock.json index 7ba4aa4..b469f2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@preset-sdk/embedded", - "version": "0.1.10", + "version": "0.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@preset-sdk/embedded", - "version": "0.1.10", + "version": "0.2.0", "license": "Preset Cloud Website Dashboard SDK License Agreement", "dependencies": { "@superset-ui/switchboard": "^0.20.3" diff --git a/package.json b/package.json index c5abb4f..e331dee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@preset-sdk/embedded", - "version": "0.1.13", + "version": "0.2.0", "description": "Frontend SDK for embedding Preset data analytics into your own application", "access": "public", "keywords": [ diff --git a/src/index.ts b/src/index.ts index ee196ba..cbd70db 100644 --- a/src/index.ts +++ b/src/index.ts @@ -69,6 +69,7 @@ export type EmbeddedDashboard = { callbackFn: ObserveDataMaskCallbackFn ) => void getDataMask: () => Record + setThemeConfig: (themeConfig: Record) => void } /** @@ -196,13 +197,25 @@ export async function embedDashboard({ ourPort.start() ourPort.defineMethod('observeDataMask', callbackFn) } + const setThemeConfig = async (themeConfig: Record): Promise => { + try { + ourPort.emit('setThemeConfig', { themeConfig }); + log('Theme config sent successfully (or at least message dispatched)'); + } catch (error) { + log( + 'Error sending theme config. Ensure the iframe side implements the "setThemeConfig" method.', + ); + throw error; + } + }; return { getScrollSize, unmount, getDashboardPermalink, getActiveTabs, observeDataMask, - getDataMask + getDataMask, + setThemeConfig } }