bigbluebutton-html-plugin-sdk 0.0.70 → 0.0.72
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 +123 -8
- package/dist/cjs/data-consumption/domain/users/current-user/types.d.ts +5 -0
- package/dist/cjs/ui-commands/camera/commands.d.ts +17 -0
- package/dist/cjs/ui-commands/camera/commands.js +36 -0
- package/dist/cjs/ui-commands/camera/commands.js.map +1 -0
- package/dist/cjs/ui-commands/camera/enums.d.ts +4 -0
- package/dist/cjs/ui-commands/camera/enums.js +9 -0
- package/dist/cjs/ui-commands/camera/enums.js.map +1 -0
- package/dist/cjs/ui-commands/camera/types.d.ts +11 -0
- package/dist/cjs/ui-commands/camera/types.js +3 -0
- package/dist/cjs/ui-commands/camera/types.js.map +1 -0
- package/dist/cjs/ui-commands/commands.d.ts +5 -0
- package/dist/cjs/ui-commands/commands.js +8 -6
- package/dist/cjs/ui-commands/commands.js.map +1 -1
- package/dist/cjs/ui-commands/notification/commands.d.ts +4 -0
- package/dist/cjs/ui-commands/notification/commands.js +8 -0
- package/dist/cjs/ui-commands/notification/commands.js.map +1 -1
- package/dist/cjs/ui-commands/notification/enums.d.ts +2 -1
- package/dist/cjs/ui-commands/notification/enums.js +2 -1
- package/dist/cjs/ui-commands/notification/enums.js.map +1 -1
- package/dist/cjs/ui-commands/notification/types.d.ts +4 -0
- package/dist/cjs/ui-commands/types.d.ts +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,10 +4,13 @@ This repository contains the SDK for developing BigBlueButton plugins.
|
|
|
4
4
|
Plugins are React components that can be loaded from external sources
|
|
5
5
|
by the BigBlueButton HTML5 client to extend its functionalities.
|
|
6
6
|
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
An overview of the plugin architecture and capabilities can be found [here](https://github.com/bigbluebutton/plugins/blob/main/README.md#capabilities-and-technical-details).
|
|
10
|
+
|
|
7
11
|
## Examples
|
|
8
12
|
|
|
9
|
-
A variety of example implementations to manipulate different parts of the
|
|
10
|
-
BBB client can be found in the [`samples`](samples) folder.
|
|
13
|
+
A variety of example implementations to manipulate different parts of the BBB client can be found in the [`samples`](samples) folder.
|
|
11
14
|
|
|
12
15
|
## Usage
|
|
13
16
|
|
|
@@ -91,7 +94,7 @@ follow these steps:
|
|
|
91
94
|
|
|
92
95
|
```bash
|
|
93
96
|
cd $HOME/src/bigbluebutton-html-plugin-sdk/samples/sample-action-button-dropdown-plugin
|
|
94
|
-
npm
|
|
97
|
+
npm ci
|
|
95
98
|
npm run build-bundle
|
|
96
99
|
```
|
|
97
100
|
|
|
@@ -110,6 +113,44 @@ While the plugin can be hosted on any Server, it is also possible to host the bu
|
|
|
110
113
|
a BigBlueButton server. For that you copy `dist/SampleActionButtonDropdownPlugin.js` and `dist/manifest.json` to the folder `/var/www/bigbluebutton-default/assets/plugins/sampleActionButtonDropdownPlugin`.
|
|
111
114
|
In this case, the your manifest URL will be `https://<your-host>/plugins/sampleActionButtonDropdownPlugin/manifest.json`.
|
|
112
115
|
|
|
116
|
+
### Manifest Json
|
|
117
|
+
|
|
118
|
+
Here is as complete `manifet.json` example with all possible configurations:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"requiredSdkVersion": "~0.0.59",
|
|
123
|
+
"name": "MyPlugin",
|
|
124
|
+
"javascriptEntrypointUrl": "MyPlugin.js",
|
|
125
|
+
"localesBaseUrl": "https://cdn.domain.com/my-plugin/", // Optional
|
|
126
|
+
"dataChannels":[
|
|
127
|
+
{
|
|
128
|
+
"name": "public-channel",
|
|
129
|
+
"pushPermission": ["moderator","presenter"], // "moderator","presenter", "all"
|
|
130
|
+
"replaceOrDeletePermission": ["moderator", "creator"] // "moderator", "presenter","all", "creator"
|
|
131
|
+
}
|
|
132
|
+
], // One can enable more data-channels to better organize client communication
|
|
133
|
+
"eventPersistence": {
|
|
134
|
+
"isEnabled": true, // By default it is not enabled
|
|
135
|
+
"maximumPayloadSizeInBytes": 1024,
|
|
136
|
+
"rateLimiting": {
|
|
137
|
+
"messagesAllowedPerSecond": 10,
|
|
138
|
+
"messagesAllowedPerMinute": 20
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"remoteDataSources": [
|
|
142
|
+
{
|
|
143
|
+
"name": "allUsers",
|
|
144
|
+
"url": "${meta_pluginSettingsUserInformation}",
|
|
145
|
+
"fetchMode": "onMeetingCreate", // Possible values: "onMeetingCreate", "onDemand"
|
|
146
|
+
"permissions": ["moderator", "viewer"]
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
To better understand remote-data-sources, please, refer to [this section](#external-data-resources)
|
|
153
|
+
|
|
113
154
|
## API
|
|
114
155
|
|
|
115
156
|
### Extensible UI areas
|
|
@@ -303,7 +344,7 @@ See usage ahead:
|
|
|
303
344
|
|
|
304
345
|
So the idea is that we have a `uiCommands` object and at a point, there will be the command to do the intended action, such as open the chat form and/or fill it, as demonstrated above
|
|
305
346
|
|
|
306
|
-
|
|
347
|
+
### Server Commands
|
|
307
348
|
|
|
308
349
|
`serverCommands` object: It contains all the possible commands available to the developer to interact with the BBB core server, see the ones implemented down below:
|
|
309
350
|
|
|
@@ -356,21 +397,32 @@ This is possible by simply configuring the dataResource name in the manifest and
|
|
|
356
397
|
{
|
|
357
398
|
"name": "allUsers",
|
|
358
399
|
"url": "${meta_pluginSettingsUserInformation}",
|
|
359
|
-
"fetchMode": "onMeetingCreate",
|
|
360
|
-
"permissions": ["moderator", "viewer"]
|
|
400
|
+
"fetchMode": "onMeetingCreate", // Possible values: "onMeetingCreate", "onDemand"
|
|
401
|
+
"permissions": ["moderator", "viewer"] // Possible values: "moderator", "viewer", "presenter"
|
|
361
402
|
}
|
|
362
403
|
]
|
|
363
404
|
}
|
|
364
405
|
```
|
|
365
406
|
|
|
366
|
-
|
|
407
|
+
Going through each parameter to better understand it's structure:
|
|
408
|
+
|
|
409
|
+
- `name`: It is the name of the remote data source, that is the name you'll use later on in the plugin when developing it;
|
|
410
|
+
- `url`: The Url to which the data will be fetched (it can be hard-coded in the `manifest.json`, but we recommend passing it as a `meta_` parameter);
|
|
411
|
+
- `fetchMode`: It tells the plugin-server if it should fetch the data only when creating the meeting, or everytime the function is called in the plugin portion;
|
|
412
|
+
- If one chooses `onMeetingCreate`, the data will be fetched when the create endpoint of the meeting is called, then it's cached in the plugin-server so that everytime the plugin wants that data, the plugin-server will respond with the cached data;
|
|
413
|
+
- On the other hand, if `onDemand` is selected, everytime the plugin calls this method, the plugin-server will fetch the data and then proxy it to the plugin;
|
|
414
|
+
- `permissions`: This tells the back-end which role of the meeting can access this remote data;
|
|
415
|
+
|
|
416
|
+
Here is the `/create` parameters you would have to pass to make this remote-data-source api work:
|
|
367
417
|
|
|
368
418
|
```
|
|
369
419
|
meta_pluginSettingsUserInformation=https://<your-external-source-with-your-authentication>/api/users
|
|
370
420
|
pluginManifests=[{"url": "http://<domain-of-your-manifest>/your-plugin/manifest.json"}]
|
|
371
421
|
```
|
|
372
422
|
|
|
373
|
-
|
|
423
|
+
See that we send the `meta_` parameter, for more information, refer to the [meta parameters section](#meta_-parameters)
|
|
424
|
+
|
|
425
|
+
Lastly, in the plugin, just use the function like:
|
|
374
426
|
|
|
375
427
|
```typescript
|
|
376
428
|
pluginApi.getRemoteData('allUsers').then((response: Response) => {
|
|
@@ -386,6 +438,69 @@ pluginApi.getRemoteData('allUsers').then((response: Response) => {
|
|
|
386
438
|
});
|
|
387
439
|
```
|
|
388
440
|
|
|
441
|
+
### Meta_ parameters
|
|
442
|
+
|
|
443
|
+
This is not part of the API, but it's a way of passing information to the manifest. Any value can be passed like this, one just needs to put something like `${meta_nameOfParameter}` in a specific config of the manifest, and in the `/create` call, set this meta-parameter to whatever is preferred, like `meta_nameOfParameter="Sample message"`
|
|
444
|
+
|
|
445
|
+
This feature is mainly used for security purposes, see [external data section](#external-data-resources). But can be used for customization reasons as well.
|
|
446
|
+
|
|
447
|
+
### Event persistence
|
|
448
|
+
|
|
449
|
+
This feature will allow the developer to save an information (which is basically an event) in the `event.xml` file of the meeting if it's being recorded.
|
|
450
|
+
|
|
451
|
+
To use it, one first need to add the following lines to their `manifest.json`:
|
|
452
|
+
|
|
453
|
+
```json
|
|
454
|
+
{
|
|
455
|
+
// ...rest of manifest configuration
|
|
456
|
+
"eventPersistence": {
|
|
457
|
+
"isEnabled": true,
|
|
458
|
+
"maximumPayloadSizeInBytes": 1024,
|
|
459
|
+
"rateLimiting": {
|
|
460
|
+
"messagesAllowedPerSecond": 10,
|
|
461
|
+
"messagesAllowedPerMinute": 20
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
Then, the API in the SDK for that is:
|
|
468
|
+
|
|
469
|
+
```ts
|
|
470
|
+
pluginApi.persistEvent(eventName: string, payloadJson: Object);
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
See example in the `sample-use-meeting` plugin here in this repository. It is as follows:
|
|
474
|
+
|
|
475
|
+
```ts
|
|
476
|
+
useEffect(() => {
|
|
477
|
+
setInterval(() => {
|
|
478
|
+
pluginLogger.info('persisting event');
|
|
479
|
+
pluginApi.persistEvent('eventFromUseMeetingSample', { foo: 'bar' });
|
|
480
|
+
}, 5000);
|
|
481
|
+
}, []);
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
After the meeting is ended (considering it has been recorded), one can simply do the following steps to see the events:
|
|
485
|
+
|
|
486
|
+
In the server terminal run:
|
|
487
|
+
```bash
|
|
488
|
+
sudo updatedb
|
|
489
|
+
vi $(locate events.xml | grep <meeting-id>)
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
Where `<meeting-id>` is the id of the the meeting you just recorded. Then, amongst all the other events in the file, if you search it, you will find the following:
|
|
493
|
+
|
|
494
|
+
```xml
|
|
495
|
+
<event timestamp="25004947" module="PLUGIN" eventname="PluginGeneratedEvent">
|
|
496
|
+
<payloadJson>{"foo":"bar"}</payloadJson>
|
|
497
|
+
<pluginEventName>eventFromUseMeetingSample</pluginEventName>
|
|
498
|
+
<date>2024-10-30T18:00:11.929Z</date>
|
|
499
|
+
<pluginName>SampleUseMeeting</pluginName>
|
|
500
|
+
<userId>w_sxlfjbcb0yxs</userId>
|
|
501
|
+
<timestampUTC>1730311211929</timestampUTC>
|
|
502
|
+
</event>
|
|
503
|
+
```
|
|
389
504
|
|
|
390
505
|
### Frequently Asked Questions (FAQ)
|
|
391
506
|
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { GraphqlResponseWrapper } from '../../../../core';
|
|
2
|
+
export interface Camera {
|
|
3
|
+
streamId: string;
|
|
4
|
+
}
|
|
2
5
|
export interface CurrentUserData {
|
|
3
6
|
userId: string;
|
|
7
|
+
extId: string;
|
|
4
8
|
name: string;
|
|
5
9
|
role: string;
|
|
6
10
|
presenter: boolean;
|
|
11
|
+
cameras: Camera[];
|
|
7
12
|
}
|
|
8
13
|
export type UseCurrentUserFunction = () => GraphqlResponseWrapper<CurrentUserData> | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SetSelfViewDisableAllDevicesCommandArguments, SetSelfViewDisableCommandArguments } from './types';
|
|
2
|
+
export declare const camera: {
|
|
3
|
+
/**
|
|
4
|
+
* Sets the self-view camera disabled/enabled for all cameras.
|
|
5
|
+
*
|
|
6
|
+
* @param setSelfViewDisableAllDevicesCommandArguments: object with a
|
|
7
|
+
* boolean that tells whether to enable or not the self-view camera for all devices
|
|
8
|
+
*/
|
|
9
|
+
setSelfViewDisableAllDevices: (setSelfViewDisableAllDevicesCommandArguments: SetSelfViewDisableAllDevicesCommandArguments) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Sets the self-view camera disabled/enabled for specific camera.
|
|
12
|
+
*
|
|
13
|
+
* @param setSelfViewDisableCommandArguments: object with a
|
|
14
|
+
* boolean that tells whether to enable or not the self-view camera for specific device
|
|
15
|
+
*/
|
|
16
|
+
setSelfViewDisable: (setSelfViewDisableCommandArguments: SetSelfViewDisableCommandArguments) => void;
|
|
17
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.camera = void 0;
|
|
4
|
+
var enums_1 = require("./enums");
|
|
5
|
+
exports.camera = {
|
|
6
|
+
/**
|
|
7
|
+
* Sets the self-view camera disabled/enabled for all cameras.
|
|
8
|
+
*
|
|
9
|
+
* @param setSelfViewDisableAllDevicesCommandArguments: object with a
|
|
10
|
+
* boolean that tells whether to enable or not the self-view camera for all devices
|
|
11
|
+
*/
|
|
12
|
+
setSelfViewDisableAllDevices: function (setSelfViewDisableAllDevicesCommandArguments) {
|
|
13
|
+
var isSelfViewDisabledAllDevices = setSelfViewDisableAllDevicesCommandArguments.isSelfViewDisabledAllDevices;
|
|
14
|
+
window.dispatchEvent(new CustomEvent(enums_1.CameraEnum.SET_SELF_VIEW_DISABLED_ALL_DEVICES, {
|
|
15
|
+
detail: {
|
|
16
|
+
isSelfViewDisabledAllDevices: isSelfViewDisabledAllDevices,
|
|
17
|
+
},
|
|
18
|
+
}));
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Sets the self-view camera disabled/enabled for specific camera.
|
|
22
|
+
*
|
|
23
|
+
* @param setSelfViewDisableCommandArguments: object with a
|
|
24
|
+
* boolean that tells whether to enable or not the self-view camera for specific device
|
|
25
|
+
*/
|
|
26
|
+
setSelfViewDisable: function (setSelfViewDisableCommandArguments) {
|
|
27
|
+
var isSelfViewDisabled = setSelfViewDisableCommandArguments.isSelfViewDisabled, streamId = setSelfViewDisableCommandArguments.streamId;
|
|
28
|
+
window.dispatchEvent(new CustomEvent(enums_1.CameraEnum.SET_SELF_VIEW_DISABLED, {
|
|
29
|
+
detail: {
|
|
30
|
+
isSelfViewDisabled: isSelfViewDisabled,
|
|
31
|
+
streamId: streamId,
|
|
32
|
+
},
|
|
33
|
+
}));
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/ui-commands/camera/commands.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAGxB,QAAA,MAAM,GAAG;IACpB;;;;;OAKG;IACH,4BAA4B,EAAE,UAC5B,4CAA0F;QAGxF,IAAA,4BAA4B,GAC1B,4CAA4C,6BADlB,CACmB;QACjD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAEb,kBAAU,CAAC,kCAAkC,EAAE;YAC/C,MAAM,EAAE;gBACN,4BAA4B,8BAAA;aAC7B;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,EAAE,UAClB,kCAAsE;QAGpE,IAAA,kBAAkB,GAEhB,kCAAkC,mBAFlB,EAClB,QAAQ,GACN,kCAAkC,SAD5B,CAC6B;QACvC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAEb,kBAAU,CAAC,sBAAsB,EAAE;YACnC,MAAM,EAAE;gBACN,kBAAkB,oBAAA;gBAClB,QAAQ,UAAA;aACT;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CameraEnum = void 0;
|
|
4
|
+
var CameraEnum;
|
|
5
|
+
(function (CameraEnum) {
|
|
6
|
+
CameraEnum["SET_SELF_VIEW_DISABLED_ALL_DEVICES"] = "SET_SELF_VIEW_DISABLED_ALL_DEVICES_COMMAND";
|
|
7
|
+
CameraEnum["SET_SELF_VIEW_DISABLED"] = "SET_SELF_VIEW_DISABLED_COMMAND";
|
|
8
|
+
})(CameraEnum || (exports.CameraEnum = CameraEnum = {}));
|
|
9
|
+
//# sourceMappingURL=enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/ui-commands/camera/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+FAAiF,CAAA;IACjF,uEAAyD,CAAA;AAC3D,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface SetSelfViewDisableAllDevicesCommandArguments {
|
|
2
|
+
isSelfViewDisabledAllDevices: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface SetSelfViewDisableCommandArguments {
|
|
5
|
+
isSelfViewDisabled: boolean;
|
|
6
|
+
streamId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface UiCommandsCameraObject {
|
|
9
|
+
setSelfViewDisableAllDevices: (setSelfViewDisableAllDevicesCommandArguments: SetSelfViewDisableAllDevicesCommandArguments) => void;
|
|
10
|
+
setSelfViewDisable: (setSelfViewDisableAllDevicesCommandArguments: SetSelfViewDisableCommandArguments) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui-commands/camera/types.ts"],"names":[],"mappings":""}
|
|
@@ -2,6 +2,10 @@ export declare const uiCommands: {
|
|
|
2
2
|
actionsBar: {
|
|
3
3
|
setDisplayActionBar: (arg: import("./actions-bar/types").SetDisplayActionBarCommandArguments) => void;
|
|
4
4
|
};
|
|
5
|
+
camera: {
|
|
6
|
+
setSelfViewDisableAllDevices: (setSelfViewDisableAllDevicesCommandArguments: import("./camera/types").SetSelfViewDisableAllDevicesCommandArguments) => void;
|
|
7
|
+
setSelfViewDisable: (setSelfViewDisableCommandArguments: import("./camera/types").SetSelfViewDisableCommandArguments) => void;
|
|
8
|
+
};
|
|
5
9
|
chat: {
|
|
6
10
|
form: {
|
|
7
11
|
open: () => void;
|
|
@@ -32,6 +36,7 @@ export declare const uiCommands: {
|
|
|
32
36
|
};
|
|
33
37
|
notification: {
|
|
34
38
|
send: (information: import("./notification/types").SendNotificationCommandArguments) => void;
|
|
39
|
+
setEnabledDisplayNotifications: (isNotificationDisplayEnabled: boolean) => void;
|
|
35
40
|
};
|
|
36
41
|
layout: {
|
|
37
42
|
changeEnforcedLayout: import("./layout/types").ChangeEnforcedLayout;
|
|
@@ -8,19 +8,21 @@ var commands_4 = require("./presentation-area/commands");
|
|
|
8
8
|
var commands_5 = require("./user-status/commands");
|
|
9
9
|
var commands_6 = require("./conference/commands");
|
|
10
10
|
var commands_7 = require("./notification/commands");
|
|
11
|
-
var commands_8 = require("./
|
|
12
|
-
var commands_9 = require("./
|
|
13
|
-
var commands_10 = require("./
|
|
11
|
+
var commands_8 = require("./camera/commands");
|
|
12
|
+
var commands_9 = require("./actions-bar/commands");
|
|
13
|
+
var commands_10 = require("./layout/commands");
|
|
14
|
+
var commands_11 = require("./nav-bar/commands");
|
|
14
15
|
exports.uiCommands = {
|
|
15
|
-
actionsBar:
|
|
16
|
+
actionsBar: commands_9.actionsBar,
|
|
17
|
+
camera: commands_8.camera,
|
|
16
18
|
chat: commands_1.chat,
|
|
17
19
|
externalVideo: commands_2.externalVideo,
|
|
18
20
|
sidekickOptionsContainer: commands_3.sidekickOptionsContainer,
|
|
19
|
-
navBar:
|
|
21
|
+
navBar: commands_11.navBar,
|
|
20
22
|
presentationArea: commands_4.presentationArea,
|
|
21
23
|
userStatus: commands_5.userStatus,
|
|
22
24
|
conference: commands_6.conference,
|
|
23
25
|
notification: commands_7.notification,
|
|
24
|
-
layout:
|
|
26
|
+
layout: commands_10.layout,
|
|
25
27
|
};
|
|
26
28
|
//# sourceMappingURL=commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/ui-commands/commands.ts"],"names":[],"mappings":";;;AAAA,4CAAuC;AACvC,sDAA0D;AAC1D,kEAAiF;AACjF,yDAAgE;AAChE,mDAAoD;AACpD,kDAAmD;AACnD,oDAAuD;AACvD,mDAAoD;AACpD
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/ui-commands/commands.ts"],"names":[],"mappings":";;;AAAA,4CAAuC;AACvC,sDAA0D;AAC1D,kEAAiF;AACjF,yDAAgE;AAChE,mDAAoD;AACpD,kDAAmD;AACnD,oDAAuD;AACvD,8CAA2C;AAC3C,mDAAoD;AACpD,+CAA2C;AAC3C,gDAA4C;AAE/B,QAAA,UAAU,GAAG;IACxB,UAAU,uBAAA;IACV,MAAM,mBAAA;IACN,IAAI,iBAAA;IACJ,aAAa,0BAAA;IACb,wBAAwB,qCAAA;IACxB,MAAM,oBAAA;IACN,gBAAgB,6BAAA;IAChB,UAAU,uBAAA;IACV,UAAU,uBAAA;IACV,YAAY,yBAAA;IACZ,MAAM,oBAAA;CACP,CAAC"}
|
|
@@ -4,4 +4,8 @@ export declare const notification: {
|
|
|
4
4
|
* Sends notification to be rendered in the front-end.
|
|
5
5
|
*/
|
|
6
6
|
send: (information: SendNotificationCommandArguments) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Decides if notifications stop being displayed.
|
|
9
|
+
*/
|
|
10
|
+
setEnabledDisplayNotifications: (isNotificationDisplayEnabled: boolean) => void;
|
|
7
11
|
};
|
|
@@ -11,5 +11,13 @@ exports.notification = {
|
|
|
11
11
|
detail: information,
|
|
12
12
|
}));
|
|
13
13
|
},
|
|
14
|
+
/**
|
|
15
|
+
* Decides if notifications stop being displayed.
|
|
16
|
+
*/
|
|
17
|
+
setEnabledDisplayNotifications: function (isNotificationDisplayEnabled) {
|
|
18
|
+
window.dispatchEvent(new CustomEvent(enums_1.NotificationEnum.SET_ENABLED_DISPLAY, {
|
|
19
|
+
detail: { isNotificationDisplayEnabled: isNotificationDisplayEnabled },
|
|
20
|
+
}));
|
|
21
|
+
},
|
|
14
22
|
};
|
|
15
23
|
//# sourceMappingURL=commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/ui-commands/notification/commands.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAG9B,QAAA,YAAY,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,UAAC,WAA6C;QAClD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAEb,wBAAgB,CAAC,IAAI,EAAE;YACvB,MAAM,EAAE,WAAW;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/ui-commands/notification/commands.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAG9B,QAAA,YAAY,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,UAAC,WAA6C;QAClD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAEb,wBAAgB,CAAC,IAAI,EAAE;YACvB,MAAM,EAAE,WAAW;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,8BAA8B,EAAE,UAAC,4BAAqC;QACpE,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAEb,wBAAgB,CAAC,mBAAmB,EAAE;YACtC,MAAM,EAAE,EAAE,4BAA4B,8BAAA,EAAE;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NotificationTypeUiCommand = exports.NotificationEnum = void 0;
|
|
4
4
|
var NotificationEnum;
|
|
5
5
|
(function (NotificationEnum) {
|
|
6
|
-
NotificationEnum["SEND"] = "
|
|
6
|
+
NotificationEnum["SEND"] = "SEND_NOTIFICATION_COMMAND";
|
|
7
|
+
NotificationEnum["SET_ENABLED_DISPLAY"] = "SET_ENABLED_DISPLAY_COMMAND";
|
|
7
8
|
})(NotificationEnum || (exports.NotificationEnum = NotificationEnum = {}));
|
|
8
9
|
var NotificationTypeUiCommand;
|
|
9
10
|
(function (NotificationTypeUiCommand) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/ui-commands/notification/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/ui-commands/notification/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,sDAAkC,CAAA;IAClC,uEAAmD,CAAA;AACrD,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,IAAY,yBAMX;AAND,WAAY,yBAAyB;IACnC,0CAAa,CAAA;IACb,gDAAmB,CAAA;IACnB,gDAAmB,CAAA;IACnB,gDAAmB,CAAA;IACnB,4CAAe,CAAA;AACjB,CAAC,EANW,yBAAyB,yCAAzB,yBAAyB,QAMpC"}
|
|
@@ -12,6 +12,10 @@ export interface SendNotificationCommandArguments {
|
|
|
12
12
|
content?: string;
|
|
13
13
|
small?: boolean;
|
|
14
14
|
}
|
|
15
|
+
export interface SetEnableDisplayNotificationsArguments {
|
|
16
|
+
isNotificationDisplayEnabled: boolean;
|
|
17
|
+
}
|
|
15
18
|
export interface UiCommandsNotificationObject {
|
|
16
19
|
send: (information: SendNotificationCommandArguments) => void;
|
|
20
|
+
setEnabledDisplayNotifications: (isNotificationDisplayEnabled: boolean) => void;
|
|
17
21
|
}
|
|
@@ -8,9 +8,11 @@ import { UiCommandsNotificationObject } from './notification/types';
|
|
|
8
8
|
import { UiCommandsActionsBarObject } from './actions-bar/types';
|
|
9
9
|
import { UiCommandsLayoutObject } from './layout/types';
|
|
10
10
|
import { UiCommandsNavBarObject } from './nav-bar/types';
|
|
11
|
+
import { UiCommandsCameraObject } from './camera/types';
|
|
11
12
|
export interface UiCommands {
|
|
12
13
|
layout: UiCommandsLayoutObject;
|
|
13
14
|
actionsBar: UiCommandsActionsBarObject;
|
|
15
|
+
camera: UiCommandsCameraObject;
|
|
14
16
|
chat: UiCommandsChatObject;
|
|
15
17
|
externalVideo: UiCommandsExternalVideoObject;
|
|
16
18
|
sidekickOptionsContainer: UiCommandsSidekickOptionsContainerObject;
|