@sigmacomputing/plugin 1.0.4 → 1.1.0-alpha.1
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/cjs/client/index.js +9 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/initialize.js +158 -0
- package/dist/cjs/client/initialize.js.map +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utils/polyfillRequestAnimationFrame.js +17 -0
- package/dist/cjs/utils/polyfillRequestAnimationFrame.js.map +1 -0
- package/dist/esm/client/index.esm.js +6 -0
- package/dist/esm/client/index.esm.js.map +1 -0
- package/dist/esm/client/initialize.esm.js +156 -0
- package/dist/esm/client/initialize.esm.js.map +1 -0
- package/dist/esm/index.esm.js +4 -0
- package/dist/esm/index.esm.js.map +1 -0
- package/dist/esm/utils/polyfillRequestAnimationFrame.esm.js +15 -0
- package/dist/esm/utils/polyfillRequestAnimationFrame.esm.js.map +1 -0
- package/dist/mjs/client/index.mjs +6 -0
- package/dist/mjs/client/index.mjs.map +1 -0
- package/dist/mjs/client/initialize.mjs +156 -0
- package/dist/mjs/client/initialize.mjs.map +1 -0
- package/dist/mjs/index.mjs +4 -0
- package/dist/mjs/index.mjs.map +1 -0
- package/dist/mjs/utils/polyfillRequestAnimationFrame.mjs +15 -0
- package/dist/mjs/utils/polyfillRequestAnimationFrame.mjs.map +1 -0
- package/dist/types/.tsbuildinfo +1 -0
- package/dist/types/client/index.d.ts +4 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/client/initialize.d.ts +3 -0
- package/dist/types/client/initialize.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{types.d.ts → types/types/index.d.ts} +1 -1
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/polyfillRequestAnimationFrame.d.ts +8 -0
- package/dist/types/utils/polyfillRequestAnimationFrame.d.ts.map +1 -0
- package/dist/umd/plugin.development.js +181 -0
- package/dist/umd/plugin.development.js.map +1 -0
- package/dist/umd/plugin.production.js +2 -0
- package/dist/umd/plugin.production.js.map +1 -0
- package/package.json +27 -39
- package/src/client/index.ts +5 -0
- package/src/client/initialize.ts +196 -0
- package/src/globals.d.ts +5 -0
- package/src/index.ts +4 -0
- package/src/types/index.ts +322 -0
- package/src/utils/polyfillRequestAnimationFrame.ts +13 -0
- package/LICENSE +0 -21
- package/README.md +0 -795
- package/dist/client/initialize.d.ts +0 -3
- package/dist/client/initialize.d.ts.map +0 -1
- package/dist/client/initialize.js +0 -157
- package/dist/client.d.ts +0 -2
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -5
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -20
- package/dist/react/Context.d.ts +0 -4
- package/dist/react/Context.d.ts.map +0 -1
- package/dist/react/Context.js +0 -6
- package/dist/react/Provider.d.ts +0 -8
- package/dist/react/Provider.d.ts.map +0 -1
- package/dist/react/Provider.js +0 -9
- package/dist/react/hooks.d.ts +0 -48
- package/dist/react/hooks.d.ts.map +0 -1
- package/dist/react/hooks.js +0 -136
- package/dist/react.d.ts +0 -3
- package/dist/react.d.ts.map +0 -1
- package/dist/react.js +0 -20
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/utils/deepEqual.d.ts +0 -2
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js +0 -28
- package/dist/utils/requestAnimationFramePolyfill.d.ts +0 -2
- package/dist/utils/requestAnimationFramePolyfill.d.ts.map +0 -1
- package/dist/utils/requestAnimationFramePolyfill.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/client/index.ts"],"sourcesContent":["import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n"],"names":["client","initialize"],"mappings":";;;;AAEaA,MAAAA,MAAM,GAAGC,qBAAU;;;;;"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function initialize() {
|
|
4
|
+
const pluginConfig = {
|
|
5
|
+
config: {}
|
|
6
|
+
};
|
|
7
|
+
let subscribedInteractions = {};
|
|
8
|
+
let subscribedWorkbookVars = {};
|
|
9
|
+
const listeners = {};
|
|
10
|
+
for (const [key, value] of new URL(document.location.toString()).searchParams.entries()) pluginConfig[key] = JSON.parse(value);
|
|
11
|
+
const listener = e => {
|
|
12
|
+
emit(e.data.type, e.data.result, e.data.error);
|
|
13
|
+
};
|
|
14
|
+
window.addEventListener('message', listener, false);
|
|
15
|
+
window.addEventListener('click', () => execPromise('wb:plugin:focus'));
|
|
16
|
+
on('wb:plugin:config:update', config => {
|
|
17
|
+
var _pluginConfig$config;
|
|
18
|
+
Object.assign(pluginConfig, config);
|
|
19
|
+
emit('config', (_pluginConfig$config = pluginConfig.config) != null ? _pluginConfig$config : {});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// send initialize event
|
|
23
|
+
void execPromise('wb:plugin:init', "1.1.0").then(config => {
|
|
24
|
+
Object.assign(pluginConfig, config);
|
|
25
|
+
emit('init', pluginConfig);
|
|
26
|
+
emit('config', pluginConfig.config);
|
|
27
|
+
});
|
|
28
|
+
on('wb:plugin:variable:update', updatedVariables => {
|
|
29
|
+
subscribedWorkbookVars = {};
|
|
30
|
+
Object.assign(subscribedWorkbookVars, updatedVariables);
|
|
31
|
+
});
|
|
32
|
+
on('wb:plugin:selection:update', updatedInteractions => {
|
|
33
|
+
subscribedInteractions = {};
|
|
34
|
+
Object.assign(subscribedInteractions, updatedInteractions);
|
|
35
|
+
});
|
|
36
|
+
function on(event, listener) {
|
|
37
|
+
listeners[event] = listeners[event] || [];
|
|
38
|
+
listeners[event].push(listener);
|
|
39
|
+
}
|
|
40
|
+
function off(event, listener) {
|
|
41
|
+
if (listeners[event] == null) return;
|
|
42
|
+
listeners[event] = listeners[event].filter(a => a !== listener);
|
|
43
|
+
}
|
|
44
|
+
function emit(event, ...args) {
|
|
45
|
+
Object.values(listeners[event] || []).forEach(fn => fn(...args));
|
|
46
|
+
}
|
|
47
|
+
function execPromise(event, ...args) {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
var _pluginConfig$wbOrigi;
|
|
50
|
+
const callback = (data, error) => {
|
|
51
|
+
if (error) reject(error);else resolve(data);
|
|
52
|
+
off(event, callback);
|
|
53
|
+
};
|
|
54
|
+
on(event, callback);
|
|
55
|
+
window.parent.postMessage({
|
|
56
|
+
type: event,
|
|
57
|
+
args,
|
|
58
|
+
elementId: pluginConfig.id
|
|
59
|
+
}, (_pluginConfig$wbOrigi = pluginConfig == null ? void 0 : pluginConfig.wbOrigin) != null ? _pluginConfig$wbOrigi : '*');
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
get sigmaEnv() {
|
|
64
|
+
return pluginConfig.sigmaEnv;
|
|
65
|
+
},
|
|
66
|
+
get isScreenshot() {
|
|
67
|
+
return pluginConfig.screenshot;
|
|
68
|
+
},
|
|
69
|
+
config: {
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
getKey(key) {
|
|
72
|
+
var _pluginConfig$config2;
|
|
73
|
+
return pluginConfig == null ? void 0 : (_pluginConfig$config2 = pluginConfig.config) == null ? void 0 : _pluginConfig$config2[key];
|
|
74
|
+
},
|
|
75
|
+
get() {
|
|
76
|
+
return pluginConfig.config;
|
|
77
|
+
},
|
|
78
|
+
set(partialConfig) {
|
|
79
|
+
void execPromise('wb:plugin:config:update', partialConfig);
|
|
80
|
+
},
|
|
81
|
+
setKey(key, value) {
|
|
82
|
+
void execPromise('wb:plugin:config:update', {
|
|
83
|
+
[key]: value
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
subscribe(listener) {
|
|
87
|
+
on('config', listener);
|
|
88
|
+
return () => off('config', listener);
|
|
89
|
+
},
|
|
90
|
+
getVariable(id) {
|
|
91
|
+
return subscribedWorkbookVars[id];
|
|
92
|
+
},
|
|
93
|
+
setVariable(id, ...values) {
|
|
94
|
+
void execPromise('wb:plugin:variable:set', id, ...values);
|
|
95
|
+
},
|
|
96
|
+
getInteraction(id) {
|
|
97
|
+
return subscribedInteractions[id];
|
|
98
|
+
},
|
|
99
|
+
setInteraction(id, elementId, selection) {
|
|
100
|
+
void execPromise('wb:plugin:selection:set', id, elementId, selection);
|
|
101
|
+
},
|
|
102
|
+
configureEditorPanel(options) {
|
|
103
|
+
void execPromise('wb:plugin:config:inspector', options);
|
|
104
|
+
},
|
|
105
|
+
setLoadingState(loadingState) {
|
|
106
|
+
void execPromise('wb:plugin:config:loading-state', loadingState);
|
|
107
|
+
},
|
|
108
|
+
subscribeToWorkbookVariable(id, callback) {
|
|
109
|
+
const setValues = values => {
|
|
110
|
+
callback(values[id]);
|
|
111
|
+
};
|
|
112
|
+
on('wb:plugin:variable:update', setValues);
|
|
113
|
+
return () => {
|
|
114
|
+
off('wb:plugin:variable:update', setValues);
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
subscribeToWorkbookInteraction(id, callback) {
|
|
118
|
+
const setValues = values => {
|
|
119
|
+
callback(values[id]);
|
|
120
|
+
};
|
|
121
|
+
on('wb:plugin:selection:update', setValues);
|
|
122
|
+
return () => {
|
|
123
|
+
off('wb:plugin:selection:update', setValues);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
elements: {
|
|
128
|
+
getElementColumns(id) {
|
|
129
|
+
return execPromise('wb:plugin:element:columns:get', id);
|
|
130
|
+
},
|
|
131
|
+
subscribeToElementColumns(id, callback) {
|
|
132
|
+
const eventName = `wb:plugin:element:${id}:columns`;
|
|
133
|
+
on(eventName, callback);
|
|
134
|
+
void execPromise('wb:plugin:element:subscribe:columns', id);
|
|
135
|
+
return () => {
|
|
136
|
+
off(eventName, callback);
|
|
137
|
+
void execPromise('wb:plugin:element:unsubscribe:columns', id);
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
subscribeToElementData(id, callback) {
|
|
141
|
+
const eventName = `wb:plugin:element:${id}:data`;
|
|
142
|
+
on(eventName, callback);
|
|
143
|
+
void execPromise('wb:plugin:element:subscribe:data', id);
|
|
144
|
+
return () => {
|
|
145
|
+
off(eventName, callback);
|
|
146
|
+
void execPromise('wb:plugin:element:unsubscribe:data', id);
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
destroy() {
|
|
151
|
+
Object.keys(listeners).forEach(event => delete listeners[event]);
|
|
152
|
+
window.removeEventListener('message', listener, false);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
exports.initialize = initialize;
|
|
158
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./client/index.js');
|
|
4
|
+
var polyfillRequestAnimationFrame = require('./utils/polyfillRequestAnimationFrame.js');
|
|
5
|
+
var initialize = require('./client/initialize.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.client = index.client;
|
|
10
|
+
exports.polyfillRequestAnimationFrame = polyfillRequestAnimationFrame.polyfillRequestAnimationFrame;
|
|
11
|
+
exports.initialize = initialize.initialize;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life
|
|
5
|
+
*
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
|
|
7
|
+
* @param w Window Object
|
|
8
|
+
*/
|
|
9
|
+
function polyfillRequestAnimationFrame(window) {
|
|
10
|
+
if ('requestAnimationFrame' in window) {
|
|
11
|
+
window.requestAnimationFrame = handler => window.setTimeout(handler, 1000 / 60);
|
|
12
|
+
window.cancelAnimationFrame = id => window.clearTimeout(id);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
exports.polyfillRequestAnimationFrame = polyfillRequestAnimationFrame;
|
|
17
|
+
//# sourceMappingURL=polyfillRequestAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfillRequestAnimationFrame.js","sources":["../../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["/**\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":["polyfillRequestAnimationFrame","window","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","id","clearTimeout"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,6BAA6B,CAACC,MAAc,EAAE;EAC5D,IAAI,uBAAuB,IAAIA,MAAM,EAAE;AACrCA,IAAAA,MAAM,CAACC,qBAAqB,GAAIC,OAAqB,IACnDF,MAAM,CAACG,UAAU,CAACD,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IACvCF,MAAM,CAACI,oBAAoB,GAAIC,EAAW,IAAKL,MAAM,CAACM,YAAY,CAACD,EAAE,CAAC,CAAA;AACxE,GAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/client/index.ts"],"sourcesContent":["import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n"],"names":["client","initialize"],"mappings":";;AAEaA,MAAAA,MAAM,GAAGC,UAAU;;;;"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
function initialize() {
|
|
2
|
+
const pluginConfig = {
|
|
3
|
+
config: {}
|
|
4
|
+
};
|
|
5
|
+
let subscribedInteractions = {};
|
|
6
|
+
let subscribedWorkbookVars = {};
|
|
7
|
+
const listeners = {};
|
|
8
|
+
for (const [key, value] of new URL(document.location.toString()).searchParams.entries()) pluginConfig[key] = JSON.parse(value);
|
|
9
|
+
const listener = e => {
|
|
10
|
+
emit(e.data.type, e.data.result, e.data.error);
|
|
11
|
+
};
|
|
12
|
+
window.addEventListener('message', listener, false);
|
|
13
|
+
window.addEventListener('click', () => execPromise('wb:plugin:focus'));
|
|
14
|
+
on('wb:plugin:config:update', config => {
|
|
15
|
+
var _pluginConfig$config;
|
|
16
|
+
Object.assign(pluginConfig, config);
|
|
17
|
+
emit('config', (_pluginConfig$config = pluginConfig.config) != null ? _pluginConfig$config : {});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// send initialize event
|
|
21
|
+
void execPromise('wb:plugin:init', "1.1.0").then(config => {
|
|
22
|
+
Object.assign(pluginConfig, config);
|
|
23
|
+
emit('init', pluginConfig);
|
|
24
|
+
emit('config', pluginConfig.config);
|
|
25
|
+
});
|
|
26
|
+
on('wb:plugin:variable:update', updatedVariables => {
|
|
27
|
+
subscribedWorkbookVars = {};
|
|
28
|
+
Object.assign(subscribedWorkbookVars, updatedVariables);
|
|
29
|
+
});
|
|
30
|
+
on('wb:plugin:selection:update', updatedInteractions => {
|
|
31
|
+
subscribedInteractions = {};
|
|
32
|
+
Object.assign(subscribedInteractions, updatedInteractions);
|
|
33
|
+
});
|
|
34
|
+
function on(event, listener) {
|
|
35
|
+
listeners[event] = listeners[event] || [];
|
|
36
|
+
listeners[event].push(listener);
|
|
37
|
+
}
|
|
38
|
+
function off(event, listener) {
|
|
39
|
+
if (listeners[event] == null) return;
|
|
40
|
+
listeners[event] = listeners[event].filter(a => a !== listener);
|
|
41
|
+
}
|
|
42
|
+
function emit(event, ...args) {
|
|
43
|
+
Object.values(listeners[event] || []).forEach(fn => fn(...args));
|
|
44
|
+
}
|
|
45
|
+
function execPromise(event, ...args) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
var _pluginConfig$wbOrigi;
|
|
48
|
+
const callback = (data, error) => {
|
|
49
|
+
if (error) reject(error);else resolve(data);
|
|
50
|
+
off(event, callback);
|
|
51
|
+
};
|
|
52
|
+
on(event, callback);
|
|
53
|
+
window.parent.postMessage({
|
|
54
|
+
type: event,
|
|
55
|
+
args,
|
|
56
|
+
elementId: pluginConfig.id
|
|
57
|
+
}, (_pluginConfig$wbOrigi = pluginConfig == null ? void 0 : pluginConfig.wbOrigin) != null ? _pluginConfig$wbOrigi : '*');
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
get sigmaEnv() {
|
|
62
|
+
return pluginConfig.sigmaEnv;
|
|
63
|
+
},
|
|
64
|
+
get isScreenshot() {
|
|
65
|
+
return pluginConfig.screenshot;
|
|
66
|
+
},
|
|
67
|
+
config: {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
getKey(key) {
|
|
70
|
+
var _pluginConfig$config2;
|
|
71
|
+
return pluginConfig == null ? void 0 : (_pluginConfig$config2 = pluginConfig.config) == null ? void 0 : _pluginConfig$config2[key];
|
|
72
|
+
},
|
|
73
|
+
get() {
|
|
74
|
+
return pluginConfig.config;
|
|
75
|
+
},
|
|
76
|
+
set(partialConfig) {
|
|
77
|
+
void execPromise('wb:plugin:config:update', partialConfig);
|
|
78
|
+
},
|
|
79
|
+
setKey(key, value) {
|
|
80
|
+
void execPromise('wb:plugin:config:update', {
|
|
81
|
+
[key]: value
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
subscribe(listener) {
|
|
85
|
+
on('config', listener);
|
|
86
|
+
return () => off('config', listener);
|
|
87
|
+
},
|
|
88
|
+
getVariable(id) {
|
|
89
|
+
return subscribedWorkbookVars[id];
|
|
90
|
+
},
|
|
91
|
+
setVariable(id, ...values) {
|
|
92
|
+
void execPromise('wb:plugin:variable:set', id, ...values);
|
|
93
|
+
},
|
|
94
|
+
getInteraction(id) {
|
|
95
|
+
return subscribedInteractions[id];
|
|
96
|
+
},
|
|
97
|
+
setInteraction(id, elementId, selection) {
|
|
98
|
+
void execPromise('wb:plugin:selection:set', id, elementId, selection);
|
|
99
|
+
},
|
|
100
|
+
configureEditorPanel(options) {
|
|
101
|
+
void execPromise('wb:plugin:config:inspector', options);
|
|
102
|
+
},
|
|
103
|
+
setLoadingState(loadingState) {
|
|
104
|
+
void execPromise('wb:plugin:config:loading-state', loadingState);
|
|
105
|
+
},
|
|
106
|
+
subscribeToWorkbookVariable(id, callback) {
|
|
107
|
+
const setValues = values => {
|
|
108
|
+
callback(values[id]);
|
|
109
|
+
};
|
|
110
|
+
on('wb:plugin:variable:update', setValues);
|
|
111
|
+
return () => {
|
|
112
|
+
off('wb:plugin:variable:update', setValues);
|
|
113
|
+
};
|
|
114
|
+
},
|
|
115
|
+
subscribeToWorkbookInteraction(id, callback) {
|
|
116
|
+
const setValues = values => {
|
|
117
|
+
callback(values[id]);
|
|
118
|
+
};
|
|
119
|
+
on('wb:plugin:selection:update', setValues);
|
|
120
|
+
return () => {
|
|
121
|
+
off('wb:plugin:selection:update', setValues);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
elements: {
|
|
126
|
+
getElementColumns(id) {
|
|
127
|
+
return execPromise('wb:plugin:element:columns:get', id);
|
|
128
|
+
},
|
|
129
|
+
subscribeToElementColumns(id, callback) {
|
|
130
|
+
const eventName = `wb:plugin:element:${id}:columns`;
|
|
131
|
+
on(eventName, callback);
|
|
132
|
+
void execPromise('wb:plugin:element:subscribe:columns', id);
|
|
133
|
+
return () => {
|
|
134
|
+
off(eventName, callback);
|
|
135
|
+
void execPromise('wb:plugin:element:unsubscribe:columns', id);
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
subscribeToElementData(id, callback) {
|
|
139
|
+
const eventName = `wb:plugin:element:${id}:data`;
|
|
140
|
+
on(eventName, callback);
|
|
141
|
+
void execPromise('wb:plugin:element:subscribe:data', id);
|
|
142
|
+
return () => {
|
|
143
|
+
off(eventName, callback);
|
|
144
|
+
void execPromise('wb:plugin:element:unsubscribe:data', id);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
destroy() {
|
|
149
|
+
Object.keys(listeners).forEach(event => delete listeners[event]);
|
|
150
|
+
window.removeEventListener('message', listener, false);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { initialize };
|
|
156
|
+
//# sourceMappingURL=initialize.esm.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life
|
|
3
|
+
*
|
|
4
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
|
|
5
|
+
* @param w Window Object
|
|
6
|
+
*/
|
|
7
|
+
function polyfillRequestAnimationFrame(window) {
|
|
8
|
+
if ('requestAnimationFrame' in window) {
|
|
9
|
+
window.requestAnimationFrame = handler => window.setTimeout(handler, 1000 / 60);
|
|
10
|
+
window.cancelAnimationFrame = id => window.clearTimeout(id);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { polyfillRequestAnimationFrame };
|
|
15
|
+
//# sourceMappingURL=polyfillRequestAnimationFrame.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfillRequestAnimationFrame.esm.js","sources":["../../../src/utils/polyfillRequestAnimationFrame.ts"],"sourcesContent":["/**\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":["polyfillRequestAnimationFrame","window","requestAnimationFrame","handler","setTimeout","cancelAnimationFrame","id","clearTimeout"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,6BAA6B,CAACC,MAAc,EAAE;EAC5D,IAAI,uBAAuB,IAAIA,MAAM,EAAE;AACrCA,IAAAA,MAAM,CAACC,qBAAqB,GAAIC,OAAqB,IACnDF,MAAM,CAACG,UAAU,CAACD,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IACvCF,MAAM,CAACI,oBAAoB,GAAIC,EAAW,IAAKL,MAAM,CAACM,YAAY,CAACD,EAAE,CAAC,CAAA;AACxE,GAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/client/index.ts"],"sourcesContent":["import { initialize } from './initialize';\n\nexport const client = initialize();\n\nexport { initialize };\n"],"names":["client","initialize"],"mappings":";;AAEaA,MAAAA,MAAM,GAAGC,UAAU;;;;"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
function initialize() {
|
|
2
|
+
const pluginConfig = {
|
|
3
|
+
config: {}
|
|
4
|
+
};
|
|
5
|
+
let subscribedInteractions = {};
|
|
6
|
+
let subscribedWorkbookVars = {};
|
|
7
|
+
const listeners = {};
|
|
8
|
+
for (const [key, value] of new URL(document.location.toString()).searchParams.entries()) pluginConfig[key] = JSON.parse(value);
|
|
9
|
+
const listener = e => {
|
|
10
|
+
emit(e.data.type, e.data.result, e.data.error);
|
|
11
|
+
};
|
|
12
|
+
window.addEventListener('message', listener, false);
|
|
13
|
+
window.addEventListener('click', () => execPromise('wb:plugin:focus'));
|
|
14
|
+
on('wb:plugin:config:update', config => {
|
|
15
|
+
var _pluginConfig$config;
|
|
16
|
+
Object.assign(pluginConfig, config);
|
|
17
|
+
emit('config', (_pluginConfig$config = pluginConfig.config) != null ? _pluginConfig$config : {});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// send initialize event
|
|
21
|
+
void execPromise('wb:plugin:init', "1.1.0").then(config => {
|
|
22
|
+
Object.assign(pluginConfig, config);
|
|
23
|
+
emit('init', pluginConfig);
|
|
24
|
+
emit('config', pluginConfig.config);
|
|
25
|
+
});
|
|
26
|
+
on('wb:plugin:variable:update', updatedVariables => {
|
|
27
|
+
subscribedWorkbookVars = {};
|
|
28
|
+
Object.assign(subscribedWorkbookVars, updatedVariables);
|
|
29
|
+
});
|
|
30
|
+
on('wb:plugin:selection:update', updatedInteractions => {
|
|
31
|
+
subscribedInteractions = {};
|
|
32
|
+
Object.assign(subscribedInteractions, updatedInteractions);
|
|
33
|
+
});
|
|
34
|
+
function on(event, listener) {
|
|
35
|
+
listeners[event] = listeners[event] || [];
|
|
36
|
+
listeners[event].push(listener);
|
|
37
|
+
}
|
|
38
|
+
function off(event, listener) {
|
|
39
|
+
if (listeners[event] == null) return;
|
|
40
|
+
listeners[event] = listeners[event].filter(a => a !== listener);
|
|
41
|
+
}
|
|
42
|
+
function emit(event, ...args) {
|
|
43
|
+
Object.values(listeners[event] || []).forEach(fn => fn(...args));
|
|
44
|
+
}
|
|
45
|
+
function execPromise(event, ...args) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
var _pluginConfig$wbOrigi;
|
|
48
|
+
const callback = (data, error) => {
|
|
49
|
+
if (error) reject(error);else resolve(data);
|
|
50
|
+
off(event, callback);
|
|
51
|
+
};
|
|
52
|
+
on(event, callback);
|
|
53
|
+
window.parent.postMessage({
|
|
54
|
+
type: event,
|
|
55
|
+
args,
|
|
56
|
+
elementId: pluginConfig.id
|
|
57
|
+
}, (_pluginConfig$wbOrigi = pluginConfig == null ? void 0 : pluginConfig.wbOrigin) != null ? _pluginConfig$wbOrigi : '*');
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
get sigmaEnv() {
|
|
62
|
+
return pluginConfig.sigmaEnv;
|
|
63
|
+
},
|
|
64
|
+
get isScreenshot() {
|
|
65
|
+
return pluginConfig.screenshot;
|
|
66
|
+
},
|
|
67
|
+
config: {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
getKey(key) {
|
|
70
|
+
var _pluginConfig$config2;
|
|
71
|
+
return pluginConfig == null ? void 0 : (_pluginConfig$config2 = pluginConfig.config) == null ? void 0 : _pluginConfig$config2[key];
|
|
72
|
+
},
|
|
73
|
+
get() {
|
|
74
|
+
return pluginConfig.config;
|
|
75
|
+
},
|
|
76
|
+
set(partialConfig) {
|
|
77
|
+
void execPromise('wb:plugin:config:update', partialConfig);
|
|
78
|
+
},
|
|
79
|
+
setKey(key, value) {
|
|
80
|
+
void execPromise('wb:plugin:config:update', {
|
|
81
|
+
[key]: value
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
subscribe(listener) {
|
|
85
|
+
on('config', listener);
|
|
86
|
+
return () => off('config', listener);
|
|
87
|
+
},
|
|
88
|
+
getVariable(id) {
|
|
89
|
+
return subscribedWorkbookVars[id];
|
|
90
|
+
},
|
|
91
|
+
setVariable(id, ...values) {
|
|
92
|
+
void execPromise('wb:plugin:variable:set', id, ...values);
|
|
93
|
+
},
|
|
94
|
+
getInteraction(id) {
|
|
95
|
+
return subscribedInteractions[id];
|
|
96
|
+
},
|
|
97
|
+
setInteraction(id, elementId, selection) {
|
|
98
|
+
void execPromise('wb:plugin:selection:set', id, elementId, selection);
|
|
99
|
+
},
|
|
100
|
+
configureEditorPanel(options) {
|
|
101
|
+
void execPromise('wb:plugin:config:inspector', options);
|
|
102
|
+
},
|
|
103
|
+
setLoadingState(loadingState) {
|
|
104
|
+
void execPromise('wb:plugin:config:loading-state', loadingState);
|
|
105
|
+
},
|
|
106
|
+
subscribeToWorkbookVariable(id, callback) {
|
|
107
|
+
const setValues = values => {
|
|
108
|
+
callback(values[id]);
|
|
109
|
+
};
|
|
110
|
+
on('wb:plugin:variable:update', setValues);
|
|
111
|
+
return () => {
|
|
112
|
+
off('wb:plugin:variable:update', setValues);
|
|
113
|
+
};
|
|
114
|
+
},
|
|
115
|
+
subscribeToWorkbookInteraction(id, callback) {
|
|
116
|
+
const setValues = values => {
|
|
117
|
+
callback(values[id]);
|
|
118
|
+
};
|
|
119
|
+
on('wb:plugin:selection:update', setValues);
|
|
120
|
+
return () => {
|
|
121
|
+
off('wb:plugin:selection:update', setValues);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
elements: {
|
|
126
|
+
getElementColumns(id) {
|
|
127
|
+
return execPromise('wb:plugin:element:columns:get', id);
|
|
128
|
+
},
|
|
129
|
+
subscribeToElementColumns(id, callback) {
|
|
130
|
+
const eventName = `wb:plugin:element:${id}:columns`;
|
|
131
|
+
on(eventName, callback);
|
|
132
|
+
void execPromise('wb:plugin:element:subscribe:columns', id);
|
|
133
|
+
return () => {
|
|
134
|
+
off(eventName, callback);
|
|
135
|
+
void execPromise('wb:plugin:element:unsubscribe:columns', id);
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
subscribeToElementData(id, callback) {
|
|
139
|
+
const eventName = `wb:plugin:element:${id}:data`;
|
|
140
|
+
on(eventName, callback);
|
|
141
|
+
void execPromise('wb:plugin:element:subscribe:data', id);
|
|
142
|
+
return () => {
|
|
143
|
+
off(eventName, callback);
|
|
144
|
+
void execPromise('wb:plugin:element:unsubscribe:data', id);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
destroy() {
|
|
149
|
+
Object.keys(listeners).forEach(event => delete listeners[event]);
|
|
150
|
+
window.removeEventListener('message', listener, false);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { initialize };
|
|
156
|
+
//# sourceMappingURL=initialize.mjs.map
|