bigbluebutton-html-plugin-sdk 0.0.52 → 0.0.54

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/README.md CHANGED
@@ -138,7 +138,6 @@ export interface GraphqlResponseWrapper<TData> {
138
138
 
139
139
  So we have the `data`, which is different for each hook, that's why it's a generic, the error, that will be set if, and only if, there is an error, otherwise it is undefined, and loading, which tells the developer if the query is still loading (being fetched) or not.
140
140
 
141
-
142
141
  ### Real time data exchange
143
142
 
144
143
  - `useDataChannel` hook: this will allow you to exchange information (Send and receive) amongst different users through the same plugin;
@@ -149,14 +148,15 @@ So for this hook to read the data from the data channel, the developer will be a
149
148
  - LATEST_ITEM: Fetches only the latest item pushed to the data-channel within a specific subchannel-name since the begining of the meeting;
150
149
  - NEW_ITEMS: Fetches the new items pushed to the data-channel within a specific subchannel-name since the moment that the `useDataChannel` hook has been called (It will not see entries sent previous to that moment);
151
150
 
152
- One can find examples of usage any of the plugin samples or official ones. The syntax is described ahead:
151
+ An interesting thing about this hook is that it is generic, so, you can use a custom type, and this will be found not only in the consumer part of the data structure returned, but also in functions in which you need to specify an object to be persisted, meaning it will force the object to be of the type you mentioned previously (that is the case for `pushEntry` and `replaceEntry`). One can find examples of usage of this in the data-channel plugin sample or most of the official ones. The syntax is described below:
153
152
 
154
153
  ```typescript
155
- const [
156
- response, // Data that will be returned
157
- pushEntryFunction, // Function to push another item to the data-channel
158
- deleteEntryFunction, // Function to delete specific item or wipe all
159
- ] = useDataChannel(
154
+ const {
155
+ data: response, // Data that will be returned
156
+ pushEntry: pushEntryFunction, // Function to push another item to the data-channel
157
+ deleteEntry: deleteEntryFunction, // Function to delete specific item or wipe all
158
+ replaceEntry: replaceEntryFunction, // Function replace a specifi item
159
+ } = useDataChannel<CustomType>(
160
160
  channelName, // Defined according to what is on settings.yml from bbb-htlm5
161
161
  DataChannelTypes.All_ITEMS, // | LATEST_ITEM | NEW_ITEMS -> ALL_ITEMS is default
162
162
  subChannelName = 'default', // If no subchannelName is specified, it will be 'default'
@@ -167,7 +167,7 @@ Wiping all data off will delete every item from the specific data-channel within
167
167
 
168
168
  The data-channel name must be written in the settings.yml.
169
169
 
170
- All the permission for writing and deleting must be in the yaml too just like the example below:
170
+ All the permission for writing and deleting must be in the yaml too just like the example ahead:
171
171
 
172
172
  ```yaml
173
173
  public:
@@ -176,10 +176,10 @@ public:
176
176
  url: http://<your-hosted-plugin>/PluginName.js
177
177
  dataChannels:
178
178
  - name: channel-name
179
- # writePermission options: moderator, presenter, all
180
- writePermission: ['moderator','presenter']
181
- # deletePermission options: moderator, sender, presenter, all
182
- deletePermission:
179
+ # pushPermission options: moderator, presenter, all
180
+ pushPermission: ['moderator','presenter']
181
+ # replaceOrDeletePermission options: moderator, presenter, creator, all
182
+ replaceOrdeletePermission:
183
183
  - moderator
184
184
  - sender
185
185
  ```
@@ -189,7 +189,9 @@ If no permission is mentioned in the yaml (writing or deleting), no one will be
189
189
  The `pushEntryFunction` has a minor detail to pay attention to, it is possible to specify the users who you want to send the item to, if none is specified, all will receive the item, such as done ahead:
190
190
 
191
191
  ```typescript
192
- pushEntryFunction(objectToBePushed: T, receivers?: ObjectTo[])
192
+ pushEntryFunction(objectToBePushed: T, options: {
193
+ receivers?: ObjectTo[];
194
+ })
193
195
  export interface ToUserId {
194
196
  userId: string;
195
197
  }
@@ -257,6 +259,27 @@ So the idea is that we have a `uiCommands` object and at a point, there will be
257
259
 
258
260
  - `useChatMessageDomElements` hook: This hook will return the dom element of a chat message reactively, so one can modify whatever is inside, such as text, css, js, etc.;
259
261
 
262
+ ### Learning Analytics Dashboard integration
263
+
264
+ - `sendGenericDataForLearningAnalyticsDashboard`: This function will send data for the bbb to render inside the plugin's table
265
+
266
+ The object structure of this function's argument must be:
267
+
268
+ ```ts
269
+ interface GenericDataForLearningAnalyticsDashboard {
270
+ cardTitle: string; // Yet to be implemented (future updates)
271
+ columnTitle: string;
272
+ value: string;
273
+ }
274
+ ```
275
+
276
+ So that the data will appear in the following form:
277
+
278
+ | User | Count | `<columnTitle>` |
279
+ | --- | :-- | --: |
280
+ | user-name | 1 | `<value>` |
281
+
282
+
260
283
 
261
284
  ### Frequently Asked Questions (FAQ)
262
285
 
@@ -313,7 +336,7 @@ Well there are several motives to why the sample is not working properly, so I w
313
336
 
314
337
  - The config has not been set properly inside `bbb-html5.yml`, see [this section to configure your plugin](#running-the-plugin-from-source);
315
338
  - The plugin is not even running in dev mode, it could be the port already in use, or typescript and/or javascript errors (Make sure to initialize the `pluginApi` as any of the samples inside a react function component);
316
- - It could be an error with that sample indeed, or that feature the plugin uses broke (it is not usual, but can happen since BBB is constantly changing and enhancing its features with its wonderful community). If that happens, just open an issue in the [SDK's github](https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk) detailing the error you are facing. And thank you in advance for reporting it back to us so we can improve each time.
339
+ - It could be an error with that sample indeed, or that feature the plugin uses broke (it is not usual, but can happen since BBB is constantly changing and enhancing its features with its wonderful community). If that happens, just open an issue in the [SDK&#39;s github](https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk) detailing the error you are facing. And thank you in advance for reporting it back to us so we can improve each time.
317
340
 
318
341
  **How to troubleshoot the plugins? See if it has loaded in the BBB, for instance.**
319
342
  Well, each time a set of plugins are listed in the `bbb-html5.yml`, it will fire some logs based on the amount of plugins that it need to load inside the client. So open the console in the browser by pressing F12 key in your keyboard and search for the following log:
@@ -20,6 +20,7 @@ var hooks_9 = require("../../data-consumption/domain/user-voice/talking-indicato
20
20
  var hooks_10 = require("../../ui-data-hooks/hooks");
21
21
  var hooks_11 = require("../../data-consumption/domain/meeting/from-core/hooks");
22
22
  var commands_2 = require("../../server-commands/commands");
23
+ var hooks_12 = require("../../learning-analytics-dashboard/hooks");
23
24
  /**
24
25
  * Class responsible for either initialize or get the PluginApi
25
26
  *
@@ -65,6 +66,7 @@ var BbbPluginSdk = /** @class */ (function () {
65
66
  return (0, hooks_1.useDataChannelGeneral)(channelName, subChannelName, pluginName, window.bbb_plugins[uuid], dataChannelType);
66
67
  });
67
68
  pluginApi.usePluginSettings = function () { return (0, settings_1.usePluginSettings)(pluginName); };
69
+ pluginApi.sendGenericDataForLearningAnalyticsDashboard = function (data) { return (0, hooks_12.sendGenericDataForLearningAnalyticsDashboard)(data, pluginName); };
68
70
  }
69
71
  else {
70
72
  throw new Error('Plugin name not set');
@@ -1 +1 @@
1
- {"version":3,"file":"BbbPluginSdk.js","sourceRoot":"","sources":["../../../../src/core/api/BbbPluginSdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BbbPluginSdk.js","sourceRoot":"","sources":["../../../../src/core/api/BbbPluginSdk.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ import { GenericContentInterface } from '../../extensible-areas/generic-content-
27
27
  import { UseUiDataFunction } from '../../ui-data-hooks/types';
28
28
  import { UseMeetingFunction } from '../../data-consumption/domain/meeting/from-core/types';
29
29
  import { ServerCommands } from '../../server-commands/types';
30
+ import { SendGenericDataForLearningAnalyticsDashboard } from '../../learning-analytics-dashboard/types';
30
31
  export type SetPresentationToolbarItems = (presentationToolbarItem: PresentationToolbarInterface[]) => string[];
31
32
  export type SetUserListDropdownItems = (userListDropdownItem: UserListDropdownInterface[]) => string[];
32
33
  export type SetActionButtonDropdownItems = (actionButtonDropdownInterface: ActionButtonDropdownInterface[]) => string[];
@@ -168,6 +169,13 @@ export interface PluginApi {
168
169
  useChatMessageDomElements?: UseChatMessageDomElementsFunction;
169
170
  getSessionToken?: GetSessionTokenFunction;
170
171
  getJoinUrl?: GetJoinUrlFunction;
172
+ /**
173
+ * Send data to the Learning analytics dashboard
174
+ *
175
+ * @param data - object in which one can render in the learning analytics dashboard
176
+ *
177
+ */
178
+ sendGenericDataForLearningAnalyticsDashboard?: SendGenericDataForLearningAnalyticsDashboard;
171
179
  }
172
180
  export interface PluginBrowserWindow extends Window {
173
181
  bbb_plugins: {
@@ -51,11 +51,11 @@ exports.useDataChannelGeneral = (function (channelName, subChannelName, pluginNa
51
51
  window.removeEventListener(channelIdentifier, handleDataChange);
52
52
  };
53
53
  }, []);
54
- return [
55
- data,
56
- pushEntryFunction,
57
- deleteEntryFunction,
58
- replaceEntryFunction,
59
- ];
54
+ return {
55
+ data: data,
56
+ pushEntry: pushEntryFunction,
57
+ deleteEntry: deleteEntryFunction,
58
+ replaceEntry: replaceEntryFunction,
59
+ };
60
60
  });
61
61
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data-channel/hooks.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAa5C,qCAEsB;AAKtB,iCAA6D;AAC7D,iCAAqG;AAExF,QAAA,qBAAqB,GAAG,CAAC,UACpC,WAAmB,EAAE,cAAsB,EAC3C,UAAkB,EAAE,SAAoB,EACxC,eAAiC;IAE3B,IAAA,KAAkB,IAAA,gBAAQ,EAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,EAFM,IAAI,QAAA,EAAE,OAAO,QAEnB,CAAC;IACI,IAAA,KAA4C,IAAA,gBAAQ,GAAwB,EAA3E,iBAAiB,QAAA,EAAE,oBAAoB,QAAoC,CAAC;IAEnF,IAAM,mBAAmB,GAAwB,UAC/C,cAAgC,IAC7B,OAAA,IAAA,+BAAuB,EAAC,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,EAAhF,CAAgF,CAAC;IAEtF,IAAM,oBAAoB,GAAyB,UACjD,OAAO,EACP,WAAW,IACR,OAAA,IAAA,gCAAwB,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC,EAAvF,CAAuF,CAAC;IAE7F,IAAM,iBAAiB,GAAG,IAAA,+BAAuB,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAE3F,IAAM,gBAAgB,GAAkB,CAAC,UACvC,WAAwF;QAExF,IAAM,WAAW,GAAG,WAAW,CAAC,MAE/B,CAAC;QACF,IAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAqC,CAAC;QACzE,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,MAAK,eAAe,EAAE;YACtD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,CAAkB,CAAC;IAEpB,IAAM,qCAAqC,GAAkB,CAC3D;QACE,oBAAoB,CAAC,cAAM,OAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,EAApD,CAAoD,CAAC,CAAC;QACjF,MAAM,CAAC,mBAAmB,CACxB,UAAG,iBAAiB,wBAAqB,EACzC,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAkB,CAAC;IACtB,IAAA,iBAAS,EAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CACrB,UAAG,iBAAiB,wBAAqB,EACzC,qCAAqC,CACtC,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAyB,iBAAU,CAAC,UAAU,EAAE;YAClF,MAAM,EAAE;gBACN,IAAI,EAAE,wBAAgB,CAAC,oBAAoB;gBAC3C,aAAa,EAAE;oBACb,WAAW,aAAA;oBAAE,UAAU,YAAA;oBAAE,eAAe,iBAAA;oBAAE,cAAc,gBAAA;iBACzD;aACF;SACF,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,iBAAU,CAAC,YAAY,EAAE;gBACtF,MAAM,EAAE;oBACN,IAAI,EAAE,wBAAgB,CAAC,oBAAoB;oBAC3C,aAAa,EAAE;wBACb,WAAW,aAAA;wBAAE,UAAU,YAAA;wBAAE,eAAe,iBAAA;wBAAE,cAAc,gBAAA;qBACzD;iBACF;aACF,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO;QACL,IAAI;QACJ,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAiC,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data-channel/hooks.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAa5C,qCAEsB;AAKtB,iCAA6D;AAC7D,iCAAqG;AAExF,QAAA,qBAAqB,GAAG,CAAC,UACpC,WAAmB,EAAE,cAAsB,EAC3C,UAAkB,EAAE,SAAoB,EACxC,eAAiC;IAE3B,IAAA,KAAkB,IAAA,gBAAQ,EAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,EAFM,IAAI,QAAA,EAAE,OAAO,QAEnB,CAAC;IACI,IAAA,KAA4C,IAAA,gBAAQ,GAAwB,EAA3E,iBAAiB,QAAA,EAAE,oBAAoB,QAAoC,CAAC;IAEnF,IAAM,mBAAmB,GAAwB,UAC/C,cAAgC,IAC7B,OAAA,IAAA,+BAAuB,EAAC,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,EAAhF,CAAgF,CAAC;IAEtF,IAAM,oBAAoB,GAAyB,UACjD,OAAO,EACP,WAAW,IACR,OAAA,IAAA,gCAAwB,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC,EAAvF,CAAuF,CAAC;IAE7F,IAAM,iBAAiB,GAAG,IAAA,+BAAuB,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAE3F,IAAM,gBAAgB,GAAkB,CAAC,UACvC,WAAwF;QAExF,IAAM,WAAW,GAAG,WAAW,CAAC,MAE/B,CAAC;QACF,IAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAqC,CAAC;QACzE,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,MAAK,eAAe,EAAE;YACtD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,CAAkB,CAAC;IAEpB,IAAM,qCAAqC,GAAkB,CAC3D;QACE,oBAAoB,CAAC,cAAM,OAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,EAApD,CAAoD,CAAC,CAAC;QACjF,MAAM,CAAC,mBAAmB,CACxB,UAAG,iBAAiB,wBAAqB,EACzC,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAkB,CAAC;IACtB,IAAA,iBAAS,EAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CACrB,UAAG,iBAAiB,wBAAqB,EACzC,qCAAqC,CACtC,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAyB,iBAAU,CAAC,UAAU,EAAE;YAClF,MAAM,EAAE;gBACN,IAAI,EAAE,wBAAgB,CAAC,oBAAoB;gBAC3C,aAAa,EAAE;oBACb,WAAW,aAAA;oBAAE,UAAU,YAAA;oBAAE,eAAe,iBAAA;oBAAE,cAAc,gBAAA;iBACzD;aACF;SACF,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,iBAAU,CAAC,YAAY,EAAE;gBACtF,MAAM,EAAE;oBACN,IAAI,EAAE,wBAAgB,CAAC,oBAAoB;oBAC3C,aAAa,EAAE;wBACb,WAAW,aAAA;wBAAE,UAAU,YAAA;wBAAE,eAAe,iBAAA;wBAAE,cAAc,gBAAA;qBACzD;iBACF;aACF,CAAC,CAAC,CAAC;YACJ,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO;QACL,IAAI,MAAA;QACJ,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,oBAAoB;KACnC,CAAC;AACJ,CAAC,CAAiC,CAAC"}
@@ -21,7 +21,10 @@ export interface ToRole {
21
21
  }
22
22
  export type ObjectTo = ToUserId | ToRole;
23
23
  export type ObjectToDelete = typeof RESET_DATA_CHANNEL | string;
24
- export type PushEntryFunction<T = object> = (objectToBePushed: T, receivers?: ObjectTo[]) => void;
24
+ export interface PushEntryFunctionOptionArgument {
25
+ receivers?: ObjectTo[];
26
+ }
27
+ export type PushEntryFunction<T = object> = (objectToBePushed: T, options?: PushEntryFunctionOptionArgument) => void;
25
28
  export type DeleteEntryFunction = (objectToDelete: ObjectToDelete[]) => void;
26
29
  export type ReplaceEntryFunction<T = object> = (entryId: string, payloadJson: T) => void;
27
30
  export interface ReplaceEntryFunctionArguments<T> {
@@ -41,15 +44,11 @@ export interface DataChannelEntryResponseType<T> {
41
44
  pluginName: string;
42
45
  toRoles: string[];
43
46
  }
44
- export type UseDataChannelFunctionFromPluginApi = <T>(channelName: string, dataChannelType?: DataChannelTypes, subChannelName?: string) => [
45
- GraphqlResponseWrapper<DataChannelEntryResponseType<T>[]>,
46
- PushEntryFunction<T>,
47
- DeleteEntryFunction,
48
- ReplaceEntryFunction<T>
49
- ];
50
- export type UseDataChannelStaticFunction = <T>(channelName: string, subChannelName: string, pluginName: string, pluginApi: PluginApi, dataChannelType: DataChannelTypes) => [
51
- GraphqlResponseWrapper<DataChannelEntryResponseType<T>[]>,
52
- PushEntryFunction<T>?,
53
- DeleteEntryFunction?,
54
- ReplaceEntryFunction<T>?
55
- ];
47
+ export interface UseDataChannelReturnType<T> {
48
+ data: GraphqlResponseWrapper<DataChannelEntryResponseType<T>[]>;
49
+ pushEntry: PushEntryFunction<T>;
50
+ deleteEntry: DeleteEntryFunction;
51
+ replaceEntry: ReplaceEntryFunction<T>;
52
+ }
53
+ export type UseDataChannelFunctionFromPluginApi = <T>(channelName: string, dataChannelType?: DataChannelTypes, subChannelName?: string) => UseDataChannelReturnType<T>;
54
+ export type UseDataChannelStaticFunction = <T>(channelName: string, subChannelName: string, pluginName: string, pluginApi: PluginApi, dataChannelType: DataChannelTypes) => UseDataChannelReturnType<T>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { PresentationToolbarItemType } from './enums';
2
3
  import { PresentationToolbarInterface, PresentationToolbarButtonProps } from './types';
3
4
  export declare class PresentationToolbarButton implements PresentationToolbarInterface {
@@ -5,6 +6,7 @@ export declare class PresentationToolbarButton implements PresentationToolbarInt
5
6
  type: PresentationToolbarItemType;
6
7
  label: string;
7
8
  tooltip: string;
9
+ style: React.CSSProperties;
8
10
  onClick: () => void;
9
11
  /**
10
12
  * Returns object to be used in the setter for presentation toolbar. In this case
@@ -13,10 +15,11 @@ export declare class PresentationToolbarButton implements PresentationToolbarInt
13
15
  * @param label - label to be displayed in the button
14
16
  * @param tooltip - tooltip to be displayed when hovering the button
15
17
  * @param onClick - function to be called when clicking the button
18
+ * @param style - style of the button in the presentation toolbar
16
19
  *
17
20
  * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5)
18
21
  */
19
- constructor({ label, tooltip, onClick }: PresentationToolbarButtonProps);
22
+ constructor({ label, tooltip, onClick, style, }: PresentationToolbarButtonProps);
20
23
  setItemId: (id: string) => void;
21
24
  }
22
25
  export declare class PresentationToolbarSpinner implements PresentationToolbarInterface {
@@ -11,11 +11,12 @@ var PresentationToolbarButton = /** @class */ (function () {
11
11
  * @param label - label to be displayed in the button
12
12
  * @param tooltip - tooltip to be displayed when hovering the button
13
13
  * @param onClick - function to be called when clicking the button
14
+ * @param style - style of the button in the presentation toolbar
14
15
  *
15
16
  * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5)
16
17
  */
17
18
  function PresentationToolbarButton(_a) {
18
- var _b = _a.label, label = _b === void 0 ? '' : _b, _c = _a.tooltip, tooltip = _c === void 0 ? '' : _c, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d;
19
+ var _b = _a.label, label = _b === void 0 ? '' : _b, _c = _a.tooltip, tooltip = _c === void 0 ? '' : _c, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d, _e = _a.style, style = _e === void 0 ? {} : _e;
19
20
  var _this = this;
20
21
  this.id = '';
21
22
  this.setItemId = function (id) {
@@ -24,6 +25,7 @@ var PresentationToolbarButton = /** @class */ (function () {
24
25
  this.label = label;
25
26
  this.tooltip = tooltip;
26
27
  this.onClick = onClick;
28
+ this.style = style;
27
29
  this.type = enums_1.PresentationToolbarItemType.BUTTON;
28
30
  }
29
31
  return PresentationToolbarButton;
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/extensible-areas/presentation-toolbar-item/component.ts"],"names":[],"mappings":";;;AAAA,iCAAsD;AAKtD,sCAAsC;AAEtC;IAWE;;;;;;;;;OASG;IACH,mCAAY,EAAgF;YAA9E,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EAAE,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,eAAkB,EAAlB,OAAO,mBAAG,cAAO,CAAC,KAAA;QAA1D,iBAKC;QAzBD,OAAE,GAAW,EAAE,CAAC;QA2BhB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QARA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,MAAM,CAAC;IACjD,CAAC;IAKH,gCAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,8DAAyB;AAiCtC;IAKE;;;;;OAKG;IACH;QAAA,iBAEC;QAZD,OAAE,GAAW,EAAE,CAAC;QAchB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QALA,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,OAAO,CAAC;IAClD,CAAC;IAKH,iCAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,gEAA0B;AAoBvC;IAKE;;;;;OAKG;IACH;QAAA,iBAEC;QAZD,OAAE,GAAW,EAAE,CAAC;QAchB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QALA,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,SAAS,CAAC;IACpD,CAAC;IAKH,mCAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oEAA4B"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/extensible-areas/presentation-toolbar-item/component.ts"],"names":[],"mappings":";;;AAAA,iCAAsD;AAKtD,sCAAsC;AAEtC;IAaE;;;;;;;;;;OAUG;IACH,mCAAY,EAEqB;YAD/B,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EAAE,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,eAAkB,EAAlB,OAAO,mBAAG,cAAO,CAAC,KAAA,EAAE,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA;QAD1D,iBAQC;QA/BD,OAAE,GAAW,EAAE,CAAC;QAiChB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QATA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,MAAM,CAAC;IACjD,CAAC;IAKH,gCAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,8DAAyB;AAuCtC;IAKE;;;;;OAKG;IACH;QAAA,iBAEC;QAZD,OAAE,GAAW,EAAE,CAAC;QAchB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QALA,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,OAAO,CAAC;IAClD,CAAC;IAKH,iCAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,gEAA0B;AAoBvC;IAKE;;;;;OAKG;IACH;QAAA,iBAEC;QAZD,OAAE,GAAW,EAAE,CAAC;QAchB,cAAS,GAAyB,UAAC,EAAU;YAC3C,KAAI,CAAC,EAAE,GAAG,oCAA6B,EAAE,CAAE,CAAC;QAC9C,CAAC,CAAC;QALA,IAAI,CAAC,IAAI,GAAG,mCAA2B,CAAC,SAAS,CAAC;IACpD,CAAC;IAKH,mCAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oEAA4B"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { PluginProvidedUiItemDescriptor } from '../base';
2
3
  /**
3
4
  * Interface for a generic item for presentation toolbar.
@@ -7,5 +8,6 @@ export interface PresentationToolbarInterface extends PluginProvidedUiItemDescri
7
8
  export interface PresentationToolbarButtonProps {
8
9
  label: string;
9
10
  tooltip: string;
11
+ style: React.CSSProperties;
10
12
  onClick: () => void;
11
13
  }
@@ -0,0 +1,3 @@
1
+ export declare enum LearningAnalyticsDashboardEvents {
2
+ GENERIC_DATA_SENT = "GENERIC_DATA_FOR_LEARNING_ANALYTICS_DASHBOARD_SENT"
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LearningAnalyticsDashboardEvents = void 0;
4
+ var LearningAnalyticsDashboardEvents;
5
+ (function (LearningAnalyticsDashboardEvents) {
6
+ LearningAnalyticsDashboardEvents["GENERIC_DATA_SENT"] = "GENERIC_DATA_FOR_LEARNING_ANALYTICS_DASHBOARD_SENT";
7
+ })(LearningAnalyticsDashboardEvents || (exports.LearningAnalyticsDashboardEvents = LearningAnalyticsDashboardEvents = {}));
8
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/learning-analytics-dashboard/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,gCAEX;AAFD,WAAY,gCAAgC;IAC1C,4GAAwE,CAAA;AAC1E,CAAC,EAFW,gCAAgC,gDAAhC,gCAAgC,QAE3C"}
@@ -0,0 +1,2 @@
1
+ import { GenericDataForLearningAnalyticsDashboard } from './types';
2
+ export declare const sendGenericDataForLearningAnalyticsDashboard: (data: GenericDataForLearningAnalyticsDashboard, pluginName: string) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendGenericDataForLearningAnalyticsDashboard = void 0;
4
+ var enums_1 = require("./enums");
5
+ var sendGenericDataForLearningAnalyticsDashboard = function (data, pluginName) {
6
+ window.dispatchEvent(new CustomEvent(enums_1.LearningAnalyticsDashboardEvents.GENERIC_DATA_SENT, {
7
+ detail: {
8
+ pluginName: pluginName,
9
+ data: data,
10
+ },
11
+ }));
12
+ };
13
+ exports.sendGenericDataForLearningAnalyticsDashboard = sendGenericDataForLearningAnalyticsDashboard;
14
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/learning-analytics-dashboard/hooks.ts"],"names":[],"mappings":";;;AAIA,iCAA2D;AAEpD,IAAM,4CAA4C,GAAG,UAC1D,IAA8C,EAC9C,UAAkB;IAElB,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CACyB,wCAAgC,CAAC,iBAAiB,EAAE;QAC1F,MAAM,EAAE;YACN,UAAU,YAAA;YACV,IAAI,MAAA;SACL;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,4CAA4C,gDAavD"}
@@ -0,0 +1,10 @@
1
+ export interface GenericDataForLearningAnalyticsDashboard {
2
+ cardTitle: string;
3
+ columnTitle: string;
4
+ value: string;
5
+ }
6
+ export interface LearningAnalyticsDashboardEventDetails {
7
+ pluginName: string;
8
+ data: GenericDataForLearningAnalyticsDashboard;
9
+ }
10
+ export type SendGenericDataForLearningAnalyticsDashboard = (data: GenericDataForLearningAnalyticsDashboard) => void;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/learning-analytics-dashboard/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigbluebutton-html-plugin-sdk",
3
- "version": "0.0.52",
3
+ "version": "0.0.54",
4
4
  "homepage": "https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",