From f7147b38f1fdacf3fd095382e08073bf79cd6026 Mon Sep 17 00:00:00 2001 From: Mehmet Salih Yavuz Date: Fri, 28 Nov 2025 16:51:51 +0300 Subject: [PATCH 1/2] 0.3.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccd52ab..4f36f00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@preset-sdk/embedded", - "version": "0.2.2", + "version": "0.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@preset-sdk/embedded", - "version": "0.2.2", + "version": "0.3.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 2d13215..2c9d3e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@preset-sdk/embedded", - "version": "0.2.2", + "version": "0.3.0", "description": "Frontend SDK for embedding Preset data analytics into your own application", "access": "public", "keywords": [ From d998a320721a11556b670f32c45b017bf3145f7c Mon Sep 17 00:00:00 2001 From: Mehmet Salih Yavuz Date: Fri, 28 Nov 2025 16:52:01 +0300 Subject: [PATCH 2/2] feat: get-chart-data-payload --- src/index.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/index.ts b/src/index.ts index 04913ce..bace6a0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -71,6 +71,7 @@ export type EmbeddedDashboard = { ) => void getDataMask: () => Record setThemeConfig: (themeConfig: Record) => void + getChartDataPayloads: (params?: { chartId?: number }) => Promise>; } /** @@ -103,14 +104,14 @@ export async function embedDashboard({ function calculateConfig() { let configNumber = 0 - if(dashboardUiConfig) { - if(dashboardUiConfig.hideTitle) { + if (dashboardUiConfig) { + if (dashboardUiConfig.hideTitle) { configNumber += 1 } - if(dashboardUiConfig.hideTab) { + if (dashboardUiConfig.hideTab) { configNumber += 2 } - if(dashboardUiConfig.hideChartControls) { + if (dashboardUiConfig.hideChartControls) { configNumber += 8 } if (dashboardUiConfig.emitDataMasks) { @@ -126,14 +127,14 @@ export async function embedDashboard({ async function mountIframe(): Promise { return new Promise(resolve => { const iframe = document.createElement('iframe'); - const dashboardConfigUrlParams = dashboardUiConfig ? {uiConfig: `${calculateConfig()}`} : undefined; + const dashboardConfigUrlParams = dashboardUiConfig ? { uiConfig: `${calculateConfig()}` } : undefined; const filterConfig = dashboardUiConfig?.filters || {} const filterConfigKeys = Object.keys(filterConfig) const filterConfigUrlParams = Object.fromEntries(filterConfigKeys.map( - key => [DASHBOARD_UI_FILTER_CONFIG_URL_PARAM_KEY[key], filterConfig[key]])) + key => [DASHBOARD_UI_FILTER_CONFIG_URL_PARAM_KEY[key], filterConfig[key]])) // Allow url query parameters from dashboardUiConfig.urlParams to override the ones from filterConfig - const urlParams = {...dashboardConfigUrlParams, ...filterConfigUrlParams, ...dashboardUiConfig?.urlParams} + const urlParams = { ...dashboardConfigUrlParams, ...filterConfigUrlParams, ...dashboardUiConfig?.urlParams } const urlParamsString = Object.keys(urlParams).length ? '?' + new URLSearchParams(urlParams).toString() : '' // setup the iframe's sandbox configuration @@ -149,7 +150,7 @@ export async function embedDashboard({ iframe.sandbox.add(key); }); // force a specific refererPolicy to be used in the iframe request - if(referrerPolicy) { + if (referrerPolicy) { iframe.referrerPolicy = referrerPolicy; } @@ -201,6 +202,10 @@ export async function embedDashboard({ ourPort.start() ourPort.defineMethod('observeDataMask', callbackFn) } + + const getChartDataPayloads = (params?: { chartId?: number }) => + ourPort.get>('getChartDataPayloads', params); + const setThemeConfig = async (themeConfig: Record): Promise => { try { ourPort.emit('setThemeConfig', { themeConfig }); @@ -219,7 +224,8 @@ export async function embedDashboard({ getActiveTabs, observeDataMask, getDataMask, - setThemeConfig + setThemeConfig, + getChartDataPayloads } }