@sigmacomputing/plugin 1.1.0-alpha.1 → 1.1.0-alpha.2

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.
@@ -20,7 +20,7 @@ function initialize() {
20
20
  });
21
21
 
22
22
  // send initialize event
23
- void execPromise('wb:plugin:init', "1.1.0").then(config => {
23
+ void execPromise('wb:plugin:init', "1.1.0-alpha.2").then(config => {
24
24
  Object.assign(pluginConfig, config);
25
25
  emit('init', pluginConfig);
26
26
  emit('config', pluginConfig.config);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"initialize.js","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":";;AASO,SAASA,UAAU,GAA8B;AACtD,EAAA,MAAMC,YAAsC,GAAG;AAC7CC,IAAAA,MAAM,EAAE,EAAC;GACV,CAAA;EAED,IAAIC,sBAA2D,GAAG,EAAE,CAAA;EACpE,IAAIC,sBAAwD,GAAG,EAAE,CAAA;EAEjE,MAAMC,SAEL,GAAG,EAAE,CAAA;AAEN,EAAA,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAI,IAAIC,GAAG,CAChCC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,EAAE,CAC7B,CAACC,YAAY,CAACC,OAAO,EAAE,EACtBZ,YAAY,CAACK,GAAG,CAAC,GAAGQ,IAAI,CAACC,KAAK,CAACR,KAAK,CAAC,CAAA;EAEvC,MAAMS,QAAQ,GAAIC,CAAwB,IAAK;AAC7CC,IAAAA,IAAI,CAACD,CAAC,CAACE,IAAI,CAACC,IAAI,EAAEH,CAAC,CAACE,IAAI,CAACE,MAAM,EAAEJ,CAAC,CAACE,IAAI,CAACG,KAAK,CAAC,CAAA;GAC/C,CAAA;EAEDC,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAER,QAAQ,EAAE,KAAK,CAAC,CAAA;EACnDO,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAE,MAAMC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEtEC,EAAAA,EAAE,CAAC,yBAAyB,EAAGxB,MAAuB,IAAK;AAAA,IAAA,IAAA,oBAAA,CAAA;AACzDyB,IAAAA,MAAM,CAACC,MAAM,CAAC3B,YAAY,EAAEC,MAAM,CAAC,CAAA;IACnCgB,IAAI,CAAC,QAAQ,EAAEjB,CAAAA,oBAAAA,GAAAA,YAAY,CAACC,MAAM,KAAA,IAAA,GAAA,oBAAA,GAAI,EAAE,CAAC,CAAA;AAC3C,GAAC,CAAC,CAAA;;AAEF;EACA,KAAKuB,WAAW,CAAC,gBAAgB,EAAEI,eAAW,CAAC,CAACC,IAAI,CAAC5B,MAAM,IAAI;AAC7DyB,IAAAA,MAAM,CAACC,MAAM,CAAC3B,YAAY,EAAEC,MAAM,CAAC,CAAA;AACnCgB,IAAAA,IAAI,CAAC,MAAM,EAAEjB,YAAY,CAAC,CAAA;AAC1BiB,IAAAA,IAAI,CAAC,QAAQ,EAAEjB,YAAY,CAACC,MAAM,CAAC,CAAA;AACrC,GAAC,CAAC,CAAA;AAEFwB,EAAAA,EAAE,CACA,2BAA2B,EAC1BK,gBAAkD,IAAK;IACtD3B,sBAAsB,GAAG,EAAE,CAAA;AAC3BuB,IAAAA,MAAM,CAACC,MAAM,CAACxB,sBAAsB,EAAE2B,gBAAgB,CAAC,CAAA;AACzD,GAAC,CACF,CAAA;AAEDL,EAAAA,EAAE,CAAC,4BAA4B,EAAGM,mBAA4B,IAAK;IACjE7B,sBAAsB,GAAG,EAAE,CAAA;AAC3BwB,IAAAA,MAAM,CAACC,MAAM,CAACzB,sBAAsB,EAAE6B,mBAAmB,CAAC,CAAA;AAC5D,GAAC,CAAC,CAAA;AAEF,EAAA,SAASN,EAAE,CAACO,KAAa,EAAEjB,QAAkB,EAAE;IAC7CX,SAAS,CAAC4B,KAAK,CAAC,GAAG5B,SAAS,CAAC4B,KAAK,CAAC,IAAI,EAAE,CAAA;AACzC5B,IAAAA,SAAS,CAAC4B,KAAK,CAAC,CAACC,IAAI,CAAClB,QAAQ,CAAC,CAAA;AACjC,GAAA;AAEA,EAAA,SAASmB,GAAG,CAACF,KAAa,EAAEjB,QAAkB,EAAE;AAC9C,IAAA,IAAIX,SAAS,CAAC4B,KAAK,CAAC,IAAI,IAAI,EAAE,OAAA;AAC9B5B,IAAAA,SAAS,CAAC4B,KAAK,CAAC,GAAG5B,SAAS,CAAC4B,KAAK,CAAC,CAACG,MAAM,CAACC,CAAC,IAAIA,CAAC,KAAKrB,QAAQ,CAAC,CAAA;AACjE,GAAA;AAEA,EAAA,SAASE,IAAI,CAACe,KAAa,EAAE,GAAGK,IAAS,EAAE;IACzCX,MAAM,CAACY,MAAM,CAAClC,SAAS,CAAC4B,KAAK,CAAC,IAAI,EAAE,CAAC,CAACO,OAAO,CAACC,EAAE,IAAIA,EAAE,CAAC,GAAGH,IAAI,CAAC,CAAC,CAAA;AAClE,GAAA;AAEA,EAAA,SAASb,WAAW,CAAIQ,KAAa,EAAE,GAAGK,IAAS,EAAc;AAC/D,IAAA,OAAO,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;AAAA,MAAA,IAAA,qBAAA,CAAA;AACtC,MAAA,MAAMC,QAAQ,GAAG,CAAC1B,IAAO,EAAEG,KAAU,KAAK;QACxC,IAAIA,KAAK,EAAEsB,MAAM,CAACtB,KAAK,CAAC,CAAC,KACpBqB,OAAO,CAACxB,IAAI,CAAC,CAAA;AAClBgB,QAAAA,GAAG,CAACF,KAAK,EAAEY,QAAQ,CAAC,CAAA;OACrB,CAAA;AACDnB,MAAAA,EAAE,CAACO,KAAK,EAAEY,QAAQ,CAAC,CAAA;AACnBtB,MAAAA,MAAM,CAACuB,MAAM,CAACC,WAAW,CACvB;AAAE3B,QAAAA,IAAI,EAAEa,KAAK;QAAEK,IAAI;QAAEU,SAAS,EAAE/C,YAAY,CAACgD,EAAAA;OAAI,EAAA,CAAA,qBAAA,GACjDhD,YAAY,IAAZA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEiD,QAAQ,KAAA,IAAA,GAAA,qBAAA,GAAI,GAAG,CAC9B,CAAA;AACH,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,OAAO;AACL,IAAA,IAAIC,QAAQ,GAAG;MACb,OAAOlD,YAAY,CAACkD,QAAQ,CAAA;KAC7B;AAED,IAAA,IAAIC,YAAY,GAAG;MACjB,OAAOnD,YAAY,CAACoD,UAAU,CAAA;KAC/B;AAEDnD,IAAAA,MAAM,EAAE;AACN;MACAoD,MAAM,CAAChD,GAAG,EAAE;AAAA,QAAA,IAAA,qBAAA,CAAA;QACV,OAAOL,YAAY,6CAAZA,YAAY,CAAEC,MAAM,KAApB,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAuBI,GAAG,CAAC,CAAA;OACnC;AACDiD,MAAAA,GAAG,GAAG;QACJ,OAAOtD,YAAY,CAACC,MAAM,CAAA;OAC3B;MACDsD,GAAG,CAACC,aAAa,EAAE;AACjB,QAAA,KAAKhC,WAAW,CAAC,yBAAyB,EAAEgC,aAAa,CAAC,CAAA;OAC3D;AACDC,MAAAA,MAAM,CAACpD,GAAG,EAAEC,KAAK,EAAE;QACjB,KAAKkB,WAAW,CAAC,yBAAyB,EAAE;AAC1C,UAAA,CAACnB,GAAG,GAAGC,KAAAA;AACT,SAAC,CAAC,CAAA;OACH;MACDoD,SAAS,CAAC3C,QAAQ,EAAE;AAClBU,QAAAA,EAAE,CAAC,QAAQ,EAAEV,QAAQ,CAAC,CAAA;AACtB,QAAA,OAAO,MAAMmB,GAAG,CAAC,QAAQ,EAAEnB,QAAQ,CAAC,CAAA;OACrC;MACD4C,WAAW,CAACX,EAAU,EAAoB;QACxC,OAAO7C,sBAAsB,CAAC6C,EAAE,CAAC,CAAA;OAClC;AACDY,MAAAA,WAAW,CAACZ,EAAU,EAAE,GAAGV,MAAiB,EAAE;QAC5C,KAAKd,WAAW,CAAC,wBAAwB,EAAEwB,EAAE,EAAE,GAAGV,MAAM,CAAC,CAAA;OAC1D;MACDuB,cAAc,CAACb,EAAU,EAAE;QACzB,OAAO9C,sBAAsB,CAAC8C,EAAE,CAAC,CAAA;OAClC;AACDc,MAAAA,cAAc,CACZd,EAAU,EACVD,SAAiB,EACjBgB,SAE0D,EAC1D;QACA,KAAKvC,WAAW,CAAC,yBAAyB,EAAEwB,EAAE,EAAED,SAAS,EAAEgB,SAAS,CAAC,CAAA;OACtE;MACDC,oBAAoB,CAACC,OAAO,EAAE;AAC5B,QAAA,KAAKzC,WAAW,CAAC,4BAA4B,EAAEyC,OAAO,CAAC,CAAA;OACxD;MACDC,eAAe,CAACC,YAAY,EAAE;AAC5B,QAAA,KAAK3C,WAAW,CAAC,gCAAgC,EAAE2C,YAAY,CAAC,CAAA;OACjE;AACDC,MAAAA,2BAA2B,CACzBpB,EAAU,EACVJ,QAA2C,EAC7B;QACd,MAAMyB,SAAS,GAAI/B,MAAwC,IAAK;AAC9DM,UAAAA,QAAQ,CAACN,MAAM,CAACU,EAAE,CAAC,CAAC,CAAA;SACrB,CAAA;AACDvB,QAAAA,EAAE,CAAC,2BAA2B,EAAE4C,SAAS,CAAC,CAAA;AAC1C,QAAA,OAAO,MAAM;AACXnC,UAAAA,GAAG,CAAC,2BAA2B,EAAEmC,SAAS,CAAC,CAAA;SAC5C,CAAA;OACF;AACDC,MAAAA,8BAA8B,CAC5BtB,EAAU,EACVJ,QAA8C,EAChC;QACd,MAAMyB,SAAS,GAAI/B,MAA2C,IAAK;AACjEM,UAAAA,QAAQ,CAACN,MAAM,CAACU,EAAE,CAAC,CAAC,CAAA;SACrB,CAAA;AACDvB,QAAAA,EAAE,CAAC,4BAA4B,EAAE4C,SAAS,CAAC,CAAA;AAC3C,QAAA,OAAO,MAAM;AACXnC,UAAAA,GAAG,CAAC,4BAA4B,EAAEmC,SAAS,CAAC,CAAA;SAC7C,CAAA;AACH,OAAA;KACD;AACDE,IAAAA,QAAQ,EAAE;MACRC,iBAAiB,CAACxB,EAAE,EAAE;AACpB,QAAA,OAAOxB,WAAW,CAAC,+BAA+B,EAAEwB,EAAE,CAAC,CAAA;OACxD;AACDyB,MAAAA,yBAAyB,CAACzB,EAAE,EAAEJ,QAAQ,EAAE;AACtC,QAAA,MAAM8B,SAAS,GAAI,CAAoB1B,kBAAAA,EAAAA,EAAG,CAAS,QAAA,CAAA,CAAA;AACnDvB,QAAAA,EAAE,CAACiD,SAAS,EAAE9B,QAAQ,CAAC,CAAA;AACvB,QAAA,KAAKpB,WAAW,CAAC,qCAAqC,EAAEwB,EAAE,CAAC,CAAA;AAE3D,QAAA,OAAO,MAAM;AACXd,UAAAA,GAAG,CAACwC,SAAS,EAAE9B,QAAQ,CAAC,CAAA;AACxB,UAAA,KAAKpB,WAAW,CAAC,uCAAuC,EAAEwB,EAAE,CAAC,CAAA;SAC9D,CAAA;OACF;AACD2B,MAAAA,sBAAsB,CAAC3B,EAAE,EAAEJ,QAAQ,EAAE;AACnC,QAAA,MAAM8B,SAAS,GAAI,CAAoB1B,kBAAAA,EAAAA,EAAG,CAAM,KAAA,CAAA,CAAA;AAChDvB,QAAAA,EAAE,CAACiD,SAAS,EAAE9B,QAAQ,CAAC,CAAA;AACvB,QAAA,KAAKpB,WAAW,CAAC,kCAAkC,EAAEwB,EAAE,CAAC,CAAA;AAExD,QAAA,OAAO,MAAM;AACXd,UAAAA,GAAG,CAACwC,SAAS,EAAE9B,QAAQ,CAAC,CAAA;AACxB,UAAA,KAAKpB,WAAW,CAAC,oCAAoC,EAAEwB,EAAE,CAAC,CAAA;SAC3D,CAAA;AACH,OAAA;KACD;AACD4B,IAAAA,OAAO,GAAG;AACRlD,MAAAA,MAAM,CAACmD,IAAI,CAACzE,SAAS,CAAC,CAACmC,OAAO,CAACP,KAAK,IAAI,OAAO5B,SAAS,CAAC4B,KAAK,CAAC,CAAC,CAAA;MAChEV,MAAM,CAACwD,mBAAmB,CAAC,SAAS,EAAE/D,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxD,KAAA;GACD,CAAA;AACH;;;;"}
@@ -18,7 +18,7 @@ function initialize() {
18
18
  });
19
19
 
20
20
  // send initialize event
21
- void execPromise('wb:plugin:init', "1.1.0").then(config => {
21
+ void execPromise('wb:plugin:init', "1.1.0-alpha.2").then(config => {
22
22
  Object.assign(pluginConfig, config);
23
23
  emit('init', pluginConfig);
24
24
  emit('config', pluginConfig.config);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.esm.js","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"initialize.esm.js","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":"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"}
@@ -18,7 +18,7 @@ function initialize() {
18
18
  });
19
19
 
20
20
  // send initialize event
21
- void execPromise('wb:plugin:init', "1.1.0").then(config => {
21
+ void execPromise('wb:plugin:init', "1.1.0-alpha.2").then(config => {
22
22
  Object.assign(pluginConfig, config);
23
23
  emit('init', pluginConfig);
24
24
  emit('config', pluginConfig.config);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.mjs","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"initialize.mjs","sources":["../../../src/client/initialize.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener"],"mappings":"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"}
@@ -24,7 +24,7 @@
24
24
  });
25
25
 
26
26
  // send initialize event
27
- void execPromise('wb:plugin:init', "1.1.0").then(config => {
27
+ void execPromise('wb:plugin:init', "1.1.0-alpha.2").then(config => {
28
28
  Object.assign(pluginConfig, config);
29
29
  emit('init', pluginConfig);
30
30
  emit('config', pluginConfig.config);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.development.js","sources":["../../src/client/initialize.ts","../../src/client/index.ts","../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n","import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n","/**\n * requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame\n * @param w Window Object\n */\nexport function polyfillRequestAnimationFrame(window: Window) {\n if ('requestAnimationFrame' in window) {\n window.requestAnimationFrame = (handler: TimerHandler): number =>\n window.setTimeout(handler, 1000 / 60);\n window.cancelAnimationFrame = (id?: number) => window.clearTimeout(id);\n }\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener","client","polyfillRequestAnimationFrame","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","clearTimeout"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.development.js","sources":["../../src/client/initialize.ts","../../src/client/index.ts","../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n","import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n","/**\n * requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame\n * @param w Window Object\n */\nexport function polyfillRequestAnimationFrame(window: Window) {\n if ('requestAnimationFrame' in window) {\n window.requestAnimationFrame = (handler: TimerHandler): number =>\n window.setTimeout(handler, 1000 / 60);\n window.cancelAnimationFrame = (id?: number) => window.clearTimeout(id);\n }\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","window","addEventListener","execPromise","on","Object","assign","__VERSION__","then","updatedVariables","updatedInteractions","event","push","off","filter","a","args","values","forEach","fn","Promise","resolve","reject","callback","parent","postMessage","elementId","id","wbOrigin","sigmaEnv","isScreenshot","screenshot","getKey","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener","client","polyfillRequestAnimationFrame","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","clearTimeout"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).SigmaPlugin={})}(this,(function(e){"use strict";function n(){const e={config:{}};let n={},t={};const i={};for(const[n,t]of new URL(document.location.toString()).searchParams.entries())e[n]=JSON.parse(t);const o=e=>{l(e.data.type,e.data.result,e.data.error)};function s(e,n){i[e]=i[e]||[],i[e].push(n)}function u(e,n){null!=i[e]&&(i[e]=i[e].filter((e=>e!==n)))}function l(e,...n){Object.values(i[e]||[]).forEach((e=>e(...n)))}function a(n,...t){return new Promise(((i,o)=>{var l;const a=(e,t)=>{t?o(t):i(e),u(n,a)};s(n,a),window.parent.postMessage({type:n,args:t,elementId:e.id},null!=(l=null==e?void 0:e.wbOrigin)?l:"*")}))}return window.addEventListener("message",o,!1),window.addEventListener("click",(()=>a("wb:plugin:focus"))),s("wb:plugin:config:update",(n=>{var t;Object.assign(e,n),l("config",null!=(t=e.config)?t:{})})),a("wb:plugin:init","1.1.0-alpha.2").then((n=>{Object.assign(e,n),l("init",e),l("config",e.config)})),s("wb:plugin:variable:update",(e=>{t={},Object.assign(t,e)})),s("wb:plugin:selection:update",(e=>{n={},Object.assign(n,e)})),{get sigmaEnv(){return e.sigmaEnv},get isScreenshot(){return e.screenshot},config:{getKey(n){var t;return null==e||null==(t=e.config)?void 0:t[n]},get:()=>e.config,set(e){a("wb:plugin:config:update",e)},setKey(e,n){a("wb:plugin:config:update",{[e]:n})},subscribe:e=>(s("config",e),()=>u("config",e)),getVariable:e=>t[e],setVariable(e,...n){a("wb:plugin:variable:set",e,...n)},getInteraction:e=>n[e],setInteraction(e,n,t){a("wb:plugin:selection:set",e,n,t)},configureEditorPanel(e){a("wb:plugin:config:inspector",e)},setLoadingState(e){a("wb:plugin:config:loading-state",e)},subscribeToWorkbookVariable(e,n){const t=t=>{n(t[e])};return s("wb:plugin:variable:update",t),()=>{u("wb:plugin:variable:update",t)}},subscribeToWorkbookInteraction(e,n){const t=t=>{n(t[e])};return s("wb:plugin:selection:update",t),()=>{u("wb:plugin:selection:update",t)}}},elements:{getElementColumns:e=>a("wb:plugin:element:columns:get",e),subscribeToElementColumns(e,n){const t=`wb:plugin:element:${e}:columns`;return s(t,n),a("wb:plugin:element:subscribe:columns",e),()=>{u(t,n),a("wb:plugin:element:unsubscribe:columns",e)}},subscribeToElementData(e,n){const t=`wb:plugin:element:${e}:data`;return s(t,n),a("wb:plugin:element:subscribe:data",e),()=>{u(t,n),a("wb:plugin:element:unsubscribe:data",e)}}},destroy(){Object.keys(i).forEach((e=>delete i[e])),window.removeEventListener("message",o,!1)}}}const t=n();e.client=t,e.initialize=n,e.polyfillRequestAnimationFrame=function(e){"requestAnimationFrame"in e&&(e.requestAnimationFrame=n=>e.setTimeout(n,1e3/60),e.cancelAnimationFrame=n=>e.clearTimeout(n))}}));
2
+ //# sourceMappingURL=plugin.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.production.min.js","sources":["../../src/client/initialize.ts","../../src/client/index.ts","../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n","import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n","/**\n * requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame\n * @param w Window Object\n */\nexport function polyfillRequestAnimationFrame(window: Window) {\n if ('requestAnimationFrame' in window) {\n window.requestAnimationFrame = (handler: TimerHandler): number =>\n window.setTimeout(handler, 1000 / 60);\n window.cancelAnimationFrame = (id?: number) => window.clearTimeout(id);\n }\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","on","event","push","off","filter","a","args","Object","values","forEach","fn","execPromise","Promise","resolve","reject","_pluginConfig$wbOrigi","callback","window","parent","postMessage","elementId","id","wbOrigin","addEventListener","_pluginConfig$config","assign","__VERSION__","then","updatedVariables","updatedInteractions","sigmaEnv","isScreenshot","screenshot","getKey","_pluginConfig$config2","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener","client","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","clearTimeout"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigmacomputing/plugin",
3
- "version": "1.1.0-alpha.1",
3
+ "version": "1.1.0-alpha.2",
4
4
  "author": "Sigma Computing <engineering@sigmacomputing.com>",
5
5
  "description": "Sigma Computing Plugin: Vanilla Client API",
6
6
  "homepage": "https://github.com/sigmacomputing/plugin",
@@ -1,2 +0,0 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).SigmaPlugin={})}(this,(function(e){"use strict";function n(){const e={config:{}};let n={},t={};const i={};for(const[n,t]of new URL(document.location.toString()).searchParams.entries())e[n]=JSON.parse(t);const o=e=>{l(e.data.type,e.data.result,e.data.error)};function s(e,n){i[e]=i[e]||[],i[e].push(n)}function u(e,n){null!=i[e]&&(i[e]=i[e].filter((e=>e!==n)))}function l(e,...n){Object.values(i[e]||[]).forEach((e=>e(...n)))}function a(n,...t){return new Promise(((i,o)=>{var l;const a=(e,t)=>{t?o(t):i(e),u(n,a)};s(n,a),window.parent.postMessage({type:n,args:t,elementId:e.id},null!=(l=null==e?void 0:e.wbOrigin)?l:"*")}))}return window.addEventListener("message",o,!1),window.addEventListener("click",(()=>a("wb:plugin:focus"))),s("wb:plugin:config:update",(n=>{var t;Object.assign(e,n),l("config",null!=(t=e.config)?t:{})})),a("wb:plugin:init","1.1.0").then((n=>{Object.assign(e,n),l("init",e),l("config",e.config)})),s("wb:plugin:variable:update",(e=>{t={},Object.assign(t,e)})),s("wb:plugin:selection:update",(e=>{n={},Object.assign(n,e)})),{get sigmaEnv(){return e.sigmaEnv},get isScreenshot(){return e.screenshot},config:{getKey(n){var t;return null==e||null==(t=e.config)?void 0:t[n]},get:()=>e.config,set(e){a("wb:plugin:config:update",e)},setKey(e,n){a("wb:plugin:config:update",{[e]:n})},subscribe:e=>(s("config",e),()=>u("config",e)),getVariable:e=>t[e],setVariable(e,...n){a("wb:plugin:variable:set",e,...n)},getInteraction:e=>n[e],setInteraction(e,n,t){a("wb:plugin:selection:set",e,n,t)},configureEditorPanel(e){a("wb:plugin:config:inspector",e)},setLoadingState(e){a("wb:plugin:config:loading-state",e)},subscribeToWorkbookVariable(e,n){const t=t=>{n(t[e])};return s("wb:plugin:variable:update",t),()=>{u("wb:plugin:variable:update",t)}},subscribeToWorkbookInteraction(e,n){const t=t=>{n(t[e])};return s("wb:plugin:selection:update",t),()=>{u("wb:plugin:selection:update",t)}}},elements:{getElementColumns:e=>a("wb:plugin:element:columns:get",e),subscribeToElementColumns(e,n){const t=`wb:plugin:element:${e}:columns`;return s(t,n),a("wb:plugin:element:subscribe:columns",e),()=>{u(t,n),a("wb:plugin:element:unsubscribe:columns",e)}},subscribeToElementData(e,n){const t=`wb:plugin:element:${e}:data`;return s(t,n),a("wb:plugin:element:subscribe:data",e),()=>{u(t,n),a("wb:plugin:element:unsubscribe:data",e)}}},destroy(){Object.keys(i).forEach((e=>delete i[e])),window.removeEventListener("message",o,!1)}}}const t=n();e.client=t,e.initialize=n,e.polyfillRequestAnimationFrame=function(e){"requestAnimationFrame"in e&&(e.requestAnimationFrame=n=>e.setTimeout(n,1e3/60),e.cancelAnimationFrame=n=>e.clearTimeout(n))}}));
2
- //# sourceMappingURL=plugin.production.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.production.js","sources":["../../src/client/initialize.ts","../../src/client/index.ts","../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["import type {\n PluginConfig,\n PluginInstance,\n PluginMessageResponse,\n WorkbookSelection,\n WorkbookVariable,\n Unsubscriber,\n} from '../types';\n\nexport function initialize<T = {}>(): PluginInstance<T> {\n const pluginConfig: Partial<PluginConfig<T>> = {\n config: {} as T,\n };\n\n let subscribedInteractions: Record<string, WorkbookSelection[]> = {};\n let subscribedWorkbookVars: Record<string, WorkbookVariable> = {};\n\n const listeners: {\n [event: string]: Function[];\n } = {};\n\n for (const [key, value] of new URL(\n document.location.toString(),\n ).searchParams.entries())\n pluginConfig[key] = JSON.parse(value);\n\n const listener = (e: PluginMessageResponse) => {\n emit(e.data.type, e.data.result, e.data.error);\n };\n\n window.addEventListener('message', listener, false);\n window.addEventListener('click', () => execPromise('wb:plugin:focus'));\n\n on('wb:plugin:config:update', (config: PluginConfig<T>) => {\n Object.assign(pluginConfig, config);\n emit('config', pluginConfig.config ?? {});\n });\n\n // send initialize event\n void execPromise('wb:plugin:init', __VERSION__).then(config => {\n Object.assign(pluginConfig, config);\n emit('init', pluginConfig);\n emit('config', pluginConfig.config);\n });\n\n on(\n 'wb:plugin:variable:update',\n (updatedVariables: Record<string, WorkbookVariable>) => {\n subscribedWorkbookVars = {};\n Object.assign(subscribedWorkbookVars, updatedVariables);\n },\n );\n\n on('wb:plugin:selection:update', (updatedInteractions: unknown) => {\n subscribedInteractions = {};\n Object.assign(subscribedInteractions, updatedInteractions);\n });\n\n function on(event: string, listener: Function) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(listener);\n }\n\n function off(event: string, listener: Function) {\n if (listeners[event] == null) return;\n listeners[event] = listeners[event].filter(a => a !== listener);\n }\n\n function emit(event: string, ...args: any) {\n Object.values(listeners[event] || []).forEach(fn => fn(...args));\n }\n\n function execPromise<R>(event: string, ...args: any): Promise<R> {\n return new Promise((resolve, reject) => {\n const callback = (data: R, error: any) => {\n if (error) reject(error);\n else resolve(data);\n off(event, callback);\n };\n on(event, callback);\n window.parent.postMessage(\n { type: event, args, elementId: pluginConfig.id },\n pluginConfig?.wbOrigin ?? '*',\n );\n });\n }\n\n return {\n get sigmaEnv() {\n return pluginConfig.sigmaEnv;\n },\n\n get isScreenshot() {\n return pluginConfig.screenshot;\n },\n\n config: {\n // @ts-ignore\n getKey(key) {\n return pluginConfig?.config?.[key]!;\n },\n get() {\n return pluginConfig.config;\n },\n set(partialConfig) {\n void execPromise('wb:plugin:config:update', partialConfig);\n },\n setKey(key, value) {\n void execPromise('wb:plugin:config:update', {\n [key]: value,\n });\n },\n subscribe(listener) {\n on('config', listener);\n return () => off('config', listener);\n },\n getVariable(id: string): WorkbookVariable {\n return subscribedWorkbookVars[id];\n },\n setVariable(id: string, ...values: unknown[]) {\n void execPromise('wb:plugin:variable:set', id, ...values);\n },\n getInteraction(id: string) {\n return subscribedInteractions[id];\n },\n setInteraction(\n id: string,\n elementId: string,\n selection:\n | string[]\n | Array<Record<string, { type: string; val?: unknown }>>,\n ) {\n void execPromise('wb:plugin:selection:set', id, elementId, selection);\n },\n configureEditorPanel(options) {\n void execPromise('wb:plugin:config:inspector', options);\n },\n setLoadingState(loadingState) {\n void execPromise('wb:plugin:config:loading-state', loadingState);\n },\n subscribeToWorkbookVariable(\n id: string,\n callback: (input: WorkbookVariable) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookVariable>) => {\n callback(values[id]);\n };\n on('wb:plugin:variable:update', setValues);\n return () => {\n off('wb:plugin:variable:update', setValues);\n };\n },\n subscribeToWorkbookInteraction(\n id: string,\n callback: (input: WorkbookSelection[]) => void,\n ): Unsubscriber {\n const setValues = (values: Record<string, WorkbookSelection[]>) => {\n callback(values[id]);\n };\n on('wb:plugin:selection:update', setValues);\n return () => {\n off('wb:plugin:selection:update', setValues);\n };\n },\n },\n elements: {\n getElementColumns(id) {\n return execPromise('wb:plugin:element:columns:get', id);\n },\n subscribeToElementColumns(id, callback) {\n const eventName = `wb:plugin:element:${id}:columns`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:columns', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:columns', id);\n };\n },\n subscribeToElementData(id, callback) {\n const eventName = `wb:plugin:element:${id}:data`;\n on(eventName, callback);\n void execPromise('wb:plugin:element:subscribe:data', id);\n\n return () => {\n off(eventName, callback);\n void execPromise('wb:plugin:element:unsubscribe:data', id);\n };\n },\n },\n destroy() {\n Object.keys(listeners).forEach(event => delete listeners[event]);\n window.removeEventListener('message', listener, false);\n },\n };\n}\n","import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n","/**\n * requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame\n * @param w Window Object\n */\nexport function polyfillRequestAnimationFrame(window: Window) {\n if ('requestAnimationFrame' in window) {\n window.requestAnimationFrame = (handler: TimerHandler): number =>\n window.setTimeout(handler, 1000 / 60);\n window.cancelAnimationFrame = (id?: number) => window.clearTimeout(id);\n }\n}\n"],"names":["initialize","pluginConfig","config","subscribedInteractions","subscribedWorkbookVars","listeners","key","value","URL","document","location","toString","searchParams","entries","JSON","parse","listener","e","emit","data","type","result","error","on","event","push","off","filter","a","args","Object","values","forEach","fn","execPromise","Promise","resolve","reject","_pluginConfig$wbOrigi","callback","window","parent","postMessage","elementId","id","wbOrigin","addEventListener","_pluginConfig$config","assign","__VERSION__","then","updatedVariables","updatedInteractions","sigmaEnv","isScreenshot","screenshot","getKey","_pluginConfig$config2","get","set","partialConfig","setKey","subscribe","getVariable","setVariable","getInteraction","setInteraction","selection","configureEditorPanel","options","setLoadingState","loadingState","subscribeToWorkbookVariable","setValues","subscribeToWorkbookInteraction","elements","getElementColumns","subscribeToElementColumns","eventName","subscribeToElementData","destroy","keys","removeEventListener","client","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","clearTimeout"],"mappings":"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"}