@webex/plugin-meetings 3.11.0-next.39 → 3.11.0-next.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aiEnableRequest/index.js +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +5 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +9 -0
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.js +54 -45
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/constants.d.ts +2 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +1 -1
- package/src/constants.ts +3 -0
- package/src/locus-info/controlsUtils.ts +11 -0
- package/src/locus-info/index.ts +14 -0
- package/src/meeting/index.ts +12 -0
- package/test/unit/spec/locus-info/controlsUtils.js +29 -0
- package/test/unit/spec/locus-info/index.js +28 -0
- package/test/unit/spec/meeting/index.js +18 -0
|
@@ -272,6 +272,7 @@ export declare const EVENT_TRIGGERS: {
|
|
|
272
272
|
MEETING_CONTROLS_REACTIONS_UPDATED: string;
|
|
273
273
|
MEETING_CONTROLS_VIEW_THE_PARTICIPANTS_LIST_UPDATED: string;
|
|
274
274
|
MEETING_CONTROLS_RAISE_HAND_UPDATED: string;
|
|
275
|
+
MEETING_CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED: string;
|
|
275
276
|
MEETING_CONTROLS_VIDEO_UPDATED: string;
|
|
276
277
|
MEETING_CONTROLS_STAGE_VIEW_UPDATED: string;
|
|
277
278
|
MEETING_CONTROLS_WEBCAST_UPDATED: string;
|
|
@@ -570,6 +571,7 @@ export declare const LOCUSINFO: {
|
|
|
570
571
|
CONTROLS_MEETING_LAYOUT_UPDATED: string;
|
|
571
572
|
CONTROLS_RECORDING_UPDATED: string;
|
|
572
573
|
CONTROLS_MEETING_TRANSCRIBE_UPDATED: string;
|
|
574
|
+
CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED: string;
|
|
573
575
|
CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED: string;
|
|
574
576
|
CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: string;
|
|
575
577
|
CONTROLS_MEETING_HESIOD_LLM_ID_UPDATED: string;
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
package/src/constants.ts
CHANGED
|
@@ -364,6 +364,8 @@ export const EVENT_TRIGGERS = {
|
|
|
364
364
|
MEETING_CONTROLS_VIEW_THE_PARTICIPANTS_LIST_UPDATED:
|
|
365
365
|
'meeting:controls:view-the-participants-list:updated',
|
|
366
366
|
MEETING_CONTROLS_RAISE_HAND_UPDATED: 'meeting:controls:raise-hand:updated',
|
|
367
|
+
MEETING_CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED:
|
|
368
|
+
'meeting:controls:ai-summary-notification:updated',
|
|
367
369
|
MEETING_CONTROLS_VIDEO_UPDATED: 'meeting:controls:video:updated',
|
|
368
370
|
MEETING_CONTROLS_STAGE_VIEW_UPDATED: 'meeting:controls:stage-view:updated',
|
|
369
371
|
MEETING_CONTROLS_WEBCAST_UPDATED: 'meeting:controls:webcast:updated',
|
|
@@ -704,6 +706,7 @@ export const LOCUSINFO = {
|
|
|
704
706
|
CONTROLS_MEETING_LAYOUT_UPDATED: 'CONTROLS_MEETING_LAYOUT_UPDATED',
|
|
705
707
|
CONTROLS_RECORDING_UPDATED: 'CONTROLS_RECORDING_UPDATED',
|
|
706
708
|
CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
|
|
709
|
+
CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED: 'CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED',
|
|
707
710
|
CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED:
|
|
708
711
|
'CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED',
|
|
709
712
|
CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: 'CONTROLS_MEETING_MANUAL_CAPTION_UPDATED',
|
|
@@ -42,6 +42,7 @@ ControlsUtils.parse = (controls: any) => {
|
|
|
42
42
|
caption: controls.transcribe.caption,
|
|
43
43
|
spokenLanguage: controls.transcribe.spokenLanguage,
|
|
44
44
|
hesiodLlmId: controls.transcribe.hesiodLlmId,
|
|
45
|
+
aiSummaryNotification: controls.transcribe.aiSummaryNotification,
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -208,6 +209,16 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
|
208
209
|
!isEqual(previous?.transcribe?.hesiodLlmId, current?.transcribe?.hesiodLlmId) &&
|
|
209
210
|
!!(previous?.transcribe?.hesiodLlmId || current?.transcribe?.hesiodLlmId),
|
|
210
211
|
|
|
212
|
+
hasAiSummaryNotificationChanged:
|
|
213
|
+
current?.transcribe &&
|
|
214
|
+
!isEqual(
|
|
215
|
+
previous?.transcribe?.aiSummaryNotification,
|
|
216
|
+
current?.transcribe?.aiSummaryNotification
|
|
217
|
+
) &&
|
|
218
|
+
!!(
|
|
219
|
+
previous?.transcribe?.aiSummaryNotification || current?.transcribe?.aiSummaryNotification
|
|
220
|
+
),
|
|
221
|
+
|
|
211
222
|
hasTranscribeSpokenLanguageChanged:
|
|
212
223
|
current?.transcribe &&
|
|
213
224
|
!isEqual(previous?.transcribe?.spokenLanguage, current?.transcribe?.spokenLanguage) &&
|
package/src/locus-info/index.ts
CHANGED
|
@@ -1434,6 +1434,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1434
1434
|
hasMeetingContainerChanged,
|
|
1435
1435
|
hasTranscribeChanged,
|
|
1436
1436
|
hasHesiodLLMIdChanged,
|
|
1437
|
+
hasAiSummaryNotificationChanged,
|
|
1437
1438
|
hasTranscribeSpokenLanguageChanged,
|
|
1438
1439
|
hasManualCaptionChanged,
|
|
1439
1440
|
hasEntryExitToneChanged,
|
|
@@ -1590,6 +1591,19 @@ export default class LocusInfo extends EventsScope {
|
|
|
1590
1591
|
);
|
|
1591
1592
|
}
|
|
1592
1593
|
|
|
1594
|
+
if (hasAiSummaryNotificationChanged) {
|
|
1595
|
+
this.emitScoped(
|
|
1596
|
+
{
|
|
1597
|
+
file: 'locus-info',
|
|
1598
|
+
function: 'updateControls',
|
|
1599
|
+
},
|
|
1600
|
+
LOCUSINFO.EVENTS.CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
1601
|
+
{
|
|
1602
|
+
aiSummaryNotification: current.transcribe.aiSummaryNotification,
|
|
1603
|
+
}
|
|
1604
|
+
);
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1593
1607
|
if (hasTranscribeSpokenLanguageChanged) {
|
|
1594
1608
|
const {spokenLanguage} = current.transcribe;
|
|
1595
1609
|
|
package/src/meeting/index.ts
CHANGED
|
@@ -2972,6 +2972,18 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
2972
2972
|
);
|
|
2973
2973
|
});
|
|
2974
2974
|
|
|
2975
|
+
this.locusInfo.on(
|
|
2976
|
+
LOCUSINFO.EVENTS.CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
2977
|
+
({aiSummaryNotification}) => {
|
|
2978
|
+
Trigger.trigger(
|
|
2979
|
+
this,
|
|
2980
|
+
{file: 'meeting/index', function: 'setupLocusControlsListener'},
|
|
2981
|
+
EVENT_TRIGGERS.MEETING_CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
2982
|
+
{aiSummaryNotification}
|
|
2983
|
+
);
|
|
2984
|
+
}
|
|
2985
|
+
);
|
|
2986
|
+
|
|
2975
2987
|
this.locusInfo.on(LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, ({state}) => {
|
|
2976
2988
|
Trigger.trigger(
|
|
2977
2989
|
this,
|
|
@@ -489,6 +489,35 @@ describe('plugin-meetings', () => {
|
|
|
489
489
|
assert.equal(updates.hasHesiodLLMIdChanged, true);
|
|
490
490
|
});
|
|
491
491
|
|
|
492
|
+
describe('hasAiSummaryNotificationChanged', () => {
|
|
493
|
+
it('returns false when aiSummaryNotification has not changed', () => {
|
|
494
|
+
const previous = {transcribe: {aiSummaryNotification: false}};
|
|
495
|
+
const current = {transcribe: {aiSummaryNotification: false}};
|
|
496
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
|
497
|
+
assert.equal(updates.hasAiSummaryNotificationChanged, false);
|
|
498
|
+
});
|
|
499
|
+
|
|
500
|
+
it('returns true when aiSummaryNotification changes from false to true', () => {
|
|
501
|
+
const previous = {transcribe: {aiSummaryNotification: false}};
|
|
502
|
+
const current = {transcribe: {aiSummaryNotification: true}};
|
|
503
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
|
504
|
+
assert.equal(updates.hasAiSummaryNotificationChanged, true);
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
it('returns true when aiSummaryNotification changes from undefined to true', () => {
|
|
508
|
+
const previous = {transcribe: undefined};
|
|
509
|
+
const current = {transcribe: {aiSummaryNotification: true}};
|
|
510
|
+
const {updates} = ControlsUtils.getControls(previous, current);
|
|
511
|
+
assert.equal(updates.hasAiSummaryNotificationChanged, true);
|
|
512
|
+
});
|
|
513
|
+
|
|
514
|
+
it('parses aiSummaryNotification into the transcribe block', () => {
|
|
515
|
+
const controls = {transcribe: {transcribing: false, caption: false, aiSummaryNotification: true}};
|
|
516
|
+
const parsed = ControlsUtils.parse(controls);
|
|
517
|
+
assert.equal(parsed.transcribe.aiSummaryNotification, true);
|
|
518
|
+
});
|
|
519
|
+
});
|
|
520
|
+
|
|
492
521
|
describe('videoEnabled', () => {
|
|
493
522
|
const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
|
|
494
523
|
const result = ControlsUtils.getControls(oldControls, newControls);
|
|
@@ -1459,6 +1459,34 @@ describe('plugin-meetings', () => {
|
|
|
1459
1459
|
);
|
|
1460
1460
|
});
|
|
1461
1461
|
|
|
1462
|
+
it('should emit CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED when aiSummaryNotification changes', () => {
|
|
1463
|
+
locusInfo.emitScoped = sinon.stub();
|
|
1464
|
+
locusInfo.controls = {
|
|
1465
|
+
transcribe: {
|
|
1466
|
+
transcribing: false,
|
|
1467
|
+
caption: false,
|
|
1468
|
+
aiSummaryNotification: false,
|
|
1469
|
+
},
|
|
1470
|
+
};
|
|
1471
|
+
newControls.transcribe.transcribing = false;
|
|
1472
|
+
newControls.transcribe.caption = false;
|
|
1473
|
+
newControls.transcribe.aiSummaryNotification = true;
|
|
1474
|
+
|
|
1475
|
+
locusInfo.updateControls(newControls);
|
|
1476
|
+
|
|
1477
|
+
assert.calledWith(
|
|
1478
|
+
locusInfo.emitScoped,
|
|
1479
|
+
{
|
|
1480
|
+
file: 'locus-info',
|
|
1481
|
+
function: 'updateControls',
|
|
1482
|
+
},
|
|
1483
|
+
LOCUSINFO.EVENTS.CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
1484
|
+
{
|
|
1485
|
+
aiSummaryNotification: true,
|
|
1486
|
+
}
|
|
1487
|
+
);
|
|
1488
|
+
});
|
|
1489
|
+
|
|
1462
1490
|
it('should update the transcribe spoken language', () => {
|
|
1463
1491
|
locusInfo.emitScoped = sinon.stub();
|
|
1464
1492
|
locusInfo.controls = {
|
|
@@ -10770,6 +10770,24 @@ describe('plugin-meetings', () => {
|
|
|
10770
10770
|
);
|
|
10771
10771
|
});
|
|
10772
10772
|
|
|
10773
|
+
it('listens to MEETING_CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED', async () => {
|
|
10774
|
+
const aiSummaryNotification = {example: 'value'};
|
|
10775
|
+
|
|
10776
|
+
await meeting.locusInfo.emitScoped(
|
|
10777
|
+
{function: 'test', file: 'test'},
|
|
10778
|
+
LOCUSINFO.EVENTS.CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
10779
|
+
{aiSummaryNotification}
|
|
10780
|
+
);
|
|
10781
|
+
|
|
10782
|
+
assert.calledWith(
|
|
10783
|
+
TriggerProxy.trigger,
|
|
10784
|
+
meeting,
|
|
10785
|
+
{file: 'meeting/index', function: 'setupLocusControlsListener'},
|
|
10786
|
+
EVENT_TRIGGERS.MEETING_CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED,
|
|
10787
|
+
{aiSummaryNotification}
|
|
10788
|
+
);
|
|
10789
|
+
});
|
|
10790
|
+
|
|
10773
10791
|
it('listens to MEETING_CONTROLS_MEETING_FULL_UPDATED', async () => {
|
|
10774
10792
|
const state = {example: 'value'};
|
|
10775
10793
|
|