@sigmacomputing/plugin 1.1.0-alpha.3 → 1.1.0

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +993 -0
  4. package/dist/client.d.ts +2 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +5 -0
  7. package/dist/error.d.ts +3 -0
  8. package/dist/error.d.ts.map +1 -0
  9. package/dist/error.js +9 -0
  10. package/dist/{types/index.d.ts → index.d.ts} +2 -1
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +22 -0
  13. package/dist/react.d.ts +3 -0
  14. package/dist/react.d.ts.map +1 -0
  15. package/dist/react.js +20 -0
  16. package/dist/{types/types/index.d.ts → types.d.ts} +132 -62
  17. package/dist/types.d.ts.map +1 -0
  18. package/dist/types.js +2 -0
  19. package/package.json +37 -29
  20. package/dist/cjs/client/index.js +0 -9
  21. package/dist/cjs/client/index.js.map +0 -1
  22. package/dist/cjs/client/initialize.js +0 -158
  23. package/dist/cjs/client/initialize.js.map +0 -1
  24. package/dist/cjs/index.js +0 -12
  25. package/dist/cjs/index.js.map +0 -1
  26. package/dist/cjs/utils/polyfillRequestAnimationFrame.js +0 -17
  27. package/dist/cjs/utils/polyfillRequestAnimationFrame.js.map +0 -1
  28. package/dist/esm/client/index.esm.js +0 -6
  29. package/dist/esm/client/index.esm.js.map +0 -1
  30. package/dist/esm/client/initialize.esm.js +0 -156
  31. package/dist/esm/client/initialize.esm.js.map +0 -1
  32. package/dist/esm/index.esm.js +0 -4
  33. package/dist/esm/index.esm.js.map +0 -1
  34. package/dist/esm/utils/polyfillRequestAnimationFrame.esm.js +0 -15
  35. package/dist/esm/utils/polyfillRequestAnimationFrame.esm.js.map +0 -1
  36. package/dist/mjs/client/index.mjs +0 -6
  37. package/dist/mjs/client/index.mjs.map +0 -1
  38. package/dist/mjs/client/initialize.mjs +0 -156
  39. package/dist/mjs/client/initialize.mjs.map +0 -1
  40. package/dist/mjs/index.mjs +0 -4
  41. package/dist/mjs/index.mjs.map +0 -1
  42. package/dist/mjs/utils/polyfillRequestAnimationFrame.mjs +0 -15
  43. package/dist/mjs/utils/polyfillRequestAnimationFrame.mjs.map +0 -1
  44. package/dist/types/.tsbuildinfo +0 -1
  45. package/dist/types/client/index.d.ts +0 -4
  46. package/dist/types/client/index.d.ts.map +0 -1
  47. package/dist/types/client/initialize.d.ts +0 -3
  48. package/dist/types/client/initialize.d.ts.map +0 -1
  49. package/dist/types/index.d.ts.map +0 -1
  50. package/dist/types/types/index.d.ts.map +0 -1
  51. package/dist/types/utils/polyfillRequestAnimationFrame.d.ts +0 -8
  52. package/dist/types/utils/polyfillRequestAnimationFrame.d.ts.map +0 -1
  53. package/dist/umd/plugin.development.js +0 -181
  54. package/dist/umd/plugin.development.js.map +0 -1
  55. package/dist/umd/plugin.production.min.js +0 -2
  56. package/dist/umd/plugin.production.min.js.map +0 -1
  57. package/src/client/index.ts +0 -5
  58. package/src/client/initialize.ts +0 -196
  59. package/src/globals.d.ts +0 -5
  60. package/src/index.ts +0 -4
  61. package/src/types/index.ts +0 -322
  62. package/src/utils/polyfillRequestAnimationFrame.ts +0 -13
@@ -1,158 +0,0 @@
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-alpha.2").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
@@ -1 +0,0 @@
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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"}
package/dist/cjs/index.js DELETED
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -1,17 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,6 +0,0 @@
1
- import { initialize } from './initialize.esm.js';
2
-
3
- const client = initialize();
4
-
5
- export { client, initialize };
6
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,156 +0,0 @@
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-alpha.2").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
@@ -1 +0,0 @@
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":"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;;;;"}
@@ -1,4 +0,0 @@
1
- export { client } from './client/index.esm.js';
2
- export { polyfillRequestAnimationFrame } from './utils/polyfillRequestAnimationFrame.esm.js';
3
- export { initialize } from './client/initialize.esm.js';
4
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,6 +0,0 @@
1
- import { initialize } from './initialize.mjs';
2
-
3
- const client = initialize();
4
-
5
- export { client, initialize };
6
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,156 +0,0 @@
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-alpha.2").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