@azure/communication-react 1.0.0 → 1.0.1-alpha-202112170009.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.
- package/dist/communication-react.d.ts +214 -0
- package/dist/dist-cjs/communication-react/index.js +1225 -178
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicesButton.js +3 -0
- package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +3 -4
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +10 -6
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js +8 -2
- package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts +4 -6
- package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +11 -6
- package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +7 -5
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts +14 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js +24 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js +16 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/ChatButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts +19 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js +38 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts +37 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js +59 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js +16 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/PeopleButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts +25 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js +76 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/SidePane.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts +129 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js +385 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts +73 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js +4 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingAdapter.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts +40 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js +100 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedCallAdapter.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts +30 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js +79 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/adapter/MeetingBackedChatAdapter.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts +10 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js +5 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/index.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts +50 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js +50 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingAdapterState.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts +21 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js +41 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingCompositePage.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js +4 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingEndReason.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts +35 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js +51 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingParticipants.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts +42 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js +72 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/state/MeetingState.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js +17 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/MeetingCompositeStyles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts +38 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js +63 -0
- package/dist/dist-esm/react-composites/src/composites/MeetingComposite/styles/SidePane.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/index.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/index.js +4 -0
- package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
- package/package.json +24 -9
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { participantListStack, participantListStyle, participantListWrapper, listHeader } from './styles/Chat.styles';
|
|
5
|
+
import { ParticipantList } from "../../../../react-components/src";
|
|
6
|
+
import { FocusZone, Stack } from '@fluentui/react';
|
|
7
|
+
import { useLocale } from '../localization';
|
|
8
|
+
import { usePropsFor } from './hooks/usePropsFor';
|
|
9
|
+
import { AvatarPersona } from '../common/AvatarPersona';
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
export const ParticipantContainer = (props) => {
|
|
14
|
+
const { onFetchAvatarPersonaData, onFetchParticipantMenuItems } = props;
|
|
15
|
+
const participantListProps = usePropsFor(ParticipantList);
|
|
16
|
+
const locale = useLocale();
|
|
17
|
+
const chatListHeader = locale.strings.chat.chatListHeader;
|
|
18
|
+
return (React.createElement(Stack, { className: participantListWrapper },
|
|
19
|
+
React.createElement(Stack, { className: participantListStack },
|
|
20
|
+
React.createElement(Stack.Item, { className: listHeader }, chatListHeader),
|
|
21
|
+
React.createElement(FocusZone, { className: participantListStyle },
|
|
22
|
+
React.createElement(ParticipantList, Object.assign({}, participantListProps, { onRenderAvatar: (userId, options) => (React.createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { dataProvider: onFetchAvatarPersonaData }))), onFetchParticipantMenuItems: onFetchParticipantMenuItems }))))));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ParticipantContainer.js.map
|
package/dist/dist-esm/react-composites/src/composites/ChatComposite/ParticipantContainer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ParticipantContainer.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAA0B,eAAe,EAAgC,yCAAmC;AACnH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAA6B,MAAM,yBAAyB,CAAC;AAQnF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,GAAG,KAAK,CAAC;IACxE,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;IAC1D,OAAO,CACL,oBAAC,KAAK,IAAC,SAAS,EAAE,sBAAsB;QACtC,oBAAC,KAAK,IAAC,SAAS,EAAE,oBAAoB;YACpC,oBAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,UAAU,IAAG,cAAc,CAAc;YAChE,oBAAC,SAAS,IAAC,SAAS,EAAE,oBAAoB;gBACxC,oBAAC,eAAe,oBACV,oBAAoB,IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,aAAa,gCACD,0CAA0C,EACrD,MAAM,EAAE,MAAM,IACV,OAAO,IACX,YAAY,EAAE,wBAAwB,IACtC,CACH,EACD,2BAA2B,EAAE,2BAA2B,IACxD,CACQ,CACN,CACF,CACT,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatButton.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/ChatButton.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAoB,qBAAqB,EAAE,yCAAmC;AAMrF;;GAEG;AACH,eAAO,MAAM,UAAU,UAAW,qBAAqB,KAAG,WAazD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { ControlBarButton } from "../../../../react-components/src";
|
|
5
|
+
import { Chat20Filled, Chat20Regular } from '@fluentui/react-icons';
|
|
6
|
+
const onRenderOnIcon = () => React.createElement(Chat20Filled, { key: 'chatOnIconKey', primaryFill: "currentColor" });
|
|
7
|
+
const onRenderOffIcon = () => React.createElement(Chat20Regular, { key: 'chatOffIconKey', primaryFill: "currentColor" });
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
export const ChatButton = (props) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const strings = Object.assign({ label: 'Chat' }, props.strings);
|
|
14
|
+
return (React.createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'chatButtonLabelKey', strings: strings, onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderOffIcon, onClick: props.onClick })));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=ChatButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/ChatButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAyB,yCAAmC;AACrF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,cAAc,GAAG,GAAgB,EAAE,CAAC,oBAAC,YAAY,IAAC,GAAG,EAAE,eAAe,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAC5G,MAAM,eAAe,GAAG,GAAgB,EAAE,CAAC,oBAAC,aAAa,IAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAE/G;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAe,EAAE;;IACtE,MAAM,OAAO,mBAAK,KAAK,EAAE,MAAM,IAAK,KAAK,CAAC,OAAO,CAAE,CAAC;IAEpD,OAAO,CACL,oBAAC,gBAAgB,oBACX,KAAK,IACT,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,cAAc,EACtD,eAAe,EAAE,MAAA,KAAK,CAAC,eAAe,mCAAI,eAAe,EACzD,OAAO,EAAE,KAAK,CAAC,OAAO,IACtB,CACH,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CallAdapter } from '../CallComposite';
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
*/
|
|
6
|
+
export interface MeetingCallControlBarProps {
|
|
7
|
+
callAdapter: CallAdapter;
|
|
8
|
+
chatButtonChecked: boolean;
|
|
9
|
+
peopleButtonChecked: boolean;
|
|
10
|
+
onChatButtonClicked: () => void;
|
|
11
|
+
onPeopleButtonClicked: () => void;
|
|
12
|
+
mobileView: boolean;
|
|
13
|
+
disableButtonsForLobbyPage: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export declare const MeetingCallControlBar: (props: MeetingCallControlBarProps) => JSX.Element;
|
|
19
|
+
//# sourceMappingURL=MeetingCallControlBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingCallControlBar.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/MeetingCallControlBar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAW,0BAA0B,KAAG,WA8CzE,CAAC"}
|
package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { CallControls } from '../CallComposite/components/CallControls';
|
|
5
|
+
import { CallAdapterProvider } from '../CallComposite/adapter/CallAdapterProvider';
|
|
6
|
+
import { ChatButton } from './ChatButton';
|
|
7
|
+
import { PeopleButton } from './PeopleButton';
|
|
8
|
+
import { mergeStyles, Stack } from '@fluentui/react';
|
|
9
|
+
import { reduceCallControlsForMobile } from '../CallComposite/utils';
|
|
10
|
+
import { controlBarContainerStyles } from '../CallComposite/styles/CallControls.styles';
|
|
11
|
+
import { callControlsContainerStyles } from '../CallComposite/styles/CallPage.styles';
|
|
12
|
+
/**
|
|
13
|
+
* @private
|
|
14
|
+
*/
|
|
15
|
+
export const MeetingCallControlBar = (props) => {
|
|
16
|
+
// Disable the default participants button as meetings composite has its own participants button.
|
|
17
|
+
let callControlsOptions = {
|
|
18
|
+
participantsButton: false,
|
|
19
|
+
screenShareButton: props.mobileView ? false : { disabled: props.disableButtonsForLobbyPage }
|
|
20
|
+
};
|
|
21
|
+
// Reduce the controls shown when mobile view is enabled.
|
|
22
|
+
if (props.mobileView) {
|
|
23
|
+
callControlsOptions = reduceCallControlsForMobile(callControlsOptions);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Until mobile meetings is worked on, statically set the width of the
|
|
27
|
+
* control bar such that all controls can be accessed.
|
|
28
|
+
*/
|
|
29
|
+
const temporaryMeetingControlBarStyles = props.mobileView ? { width: '23.5rem' } : undefined;
|
|
30
|
+
return (React.createElement(Stack, { horizontal: true, className: mergeStyles(temporaryMeetingControlBarStyles, callControlsContainerStyles, controlBarContainerStyles) },
|
|
31
|
+
React.createElement(Stack.Item, { grow: true },
|
|
32
|
+
React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
|
33
|
+
React.createElement(CallControls, { options: callControlsOptions, increaseFlyoutItemSize: props.mobileView }))),
|
|
34
|
+
React.createElement(Stack.Item, null,
|
|
35
|
+
React.createElement(ChatButton, { checked: props.chatButtonChecked, showLabel: true, onClick: props.onChatButtonClicked, "data-ui-id": "meeting-composite-chat-button", disabled: props.disableButtonsForLobbyPage }),
|
|
36
|
+
React.createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: true, onClick: props.onPeopleButtonClicked, "data-ui-id": "meeting-composite-people-button", disabled: props.disableButtonsForLobbyPage }))));
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=MeetingCallControlBar.js.map
|
package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingCallControlBar.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingCallControlBar.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/MeetingCallControlBar.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAsB,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAetF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAe,EAAE;IACtF,iGAAiG;IACjG,IAAI,mBAAmB,GAA+B;QACpD,kBAAkB,EAAE,KAAK;QACzB,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,0BAA0B,EAAE;KAC7F,CAAC;IAEF,yDAAyD;IACzD,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,mBAAmB,GAAG,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;KACxE;IAED;;;OAGG;IACH,MAAM,gCAAgC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7F,OAAO,CACL,oBAAC,KAAK,IACJ,UAAU,QACV,SAAS,EAAE,WAAW,CAAC,gCAAgC,EAAE,2BAA2B,EAAE,yBAAyB,CAAC;QAEhH,oBAAC,KAAK,CAAC,IAAI,IAAC,IAAI;YACd,oBAAC,mBAAmB,IAAC,OAAO,EAAE,KAAK,CAAC,WAAW;gBAC7C,oBAAC,YAAY,IAAC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,KAAK,CAAC,UAAU,GAAI,CACpE,CACX;QACb,oBAAC,KAAK,CAAC,IAAI;YACT,oBAAC,UAAU,IACT,OAAO,EAAE,KAAK,CAAC,iBAAiB,EAChC,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,KAAK,CAAC,mBAAmB,gBACvB,+BAA+B,EAC1C,QAAQ,EAAE,KAAK,CAAC,0BAA0B,GAC1C;YACF,oBAAC,YAAY,IACX,OAAO,EAAE,KAAK,CAAC,mBAAmB,EAClC,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,KAAK,CAAC,qBAAqB,gBACzB,iCAAiC,EAC5C,QAAQ,EAAE,KAAK,CAAC,0BAA0B,GAC1C,CACS,CACP,CACT,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PartialTheme, Theme } from '@fluentui/react';
|
|
3
|
+
import { MeetingAdapter } from './adapter/MeetingAdapter';
|
|
4
|
+
import { BaseCompositeProps } from '../common/BaseComposite';
|
|
5
|
+
import { CallCompositeIcons, ChatCompositeIcons } from '../common/icons';
|
|
6
|
+
/**
|
|
7
|
+
* Props required for the {@link MeetingComposite}
|
|
8
|
+
*
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
11
|
+
export interface MeetingCompositeProps extends BaseCompositeProps<CallCompositeIcons & ChatCompositeIcons> {
|
|
12
|
+
meetingAdapter: MeetingAdapter;
|
|
13
|
+
/**
|
|
14
|
+
* Fluent theme for the composite.
|
|
15
|
+
*
|
|
16
|
+
* Defaults to a light theme if undefined.
|
|
17
|
+
*/
|
|
18
|
+
fluentTheme?: PartialTheme | Theme;
|
|
19
|
+
/**
|
|
20
|
+
* Optimizes the composite form factor for either desktop or mobile.
|
|
21
|
+
* @remarks `mobile` is currently only optimized for Portrait mode on mobile devices and does not support landscape.
|
|
22
|
+
* @defaultValue 'desktop'
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
formFactor?: 'desktop' | 'mobile';
|
|
26
|
+
/**
|
|
27
|
+
* URL that can be used to copy a meeting invite to the Users clipboard.
|
|
28
|
+
*/
|
|
29
|
+
meetingInvitationURL?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Meeting Composite brings together key components to provide a full meeting experience out of the box.
|
|
33
|
+
*
|
|
34
|
+
* @beta
|
|
35
|
+
*/
|
|
36
|
+
export declare const MeetingComposite: (props: MeetingCompositeProps) => JSX.Element;
|
|
37
|
+
//# sourceMappingURL=MeetingComposite.d.ts.map
|
package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingComposite.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/MeetingComposite.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAS,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQ7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACxG,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IACnC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAClC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,WAqF/D,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import React, { useCallback, useState, useMemo } from 'react';
|
|
4
|
+
import { Stack } from '@fluentui/react';
|
|
5
|
+
import { CallComposite } from '../CallComposite';
|
|
6
|
+
import { CallAdapterProvider } from '../CallComposite/adapter/CallAdapterProvider';
|
|
7
|
+
import { EmbeddedChatPane, EmbeddedPeoplePane } from './SidePane';
|
|
8
|
+
import { MeetingCallControlBar } from './MeetingCallControlBar';
|
|
9
|
+
import { compositeOuterContainerStyles } from './styles/MeetingCompositeStyles';
|
|
10
|
+
import { FluentThemeProvider } from "../../../../react-components/src";
|
|
11
|
+
import { MeetingBackedCallAdapter } from './adapter/MeetingBackedCallAdapter';
|
|
12
|
+
import { MeetingBackedChatAdapter } from './adapter/MeetingBackedChatAdapter';
|
|
13
|
+
import { hasJoinedCall as hasJoinedCallFn } from './state/MeetingCompositePage';
|
|
14
|
+
/**
|
|
15
|
+
* Meeting Composite brings together key components to provide a full meeting experience out of the box.
|
|
16
|
+
*
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
export const MeetingComposite = (props) => {
|
|
20
|
+
const { meetingAdapter, fluentTheme, formFactor = 'desktop' } = props;
|
|
21
|
+
if (!meetingAdapter) {
|
|
22
|
+
throw 'Meeting adapter is undefined';
|
|
23
|
+
}
|
|
24
|
+
const callAdapter = useMemo(() => new MeetingBackedCallAdapter(meetingAdapter), [meetingAdapter]);
|
|
25
|
+
const chatAdapter = useMemo(() => new MeetingBackedChatAdapter(meetingAdapter), [meetingAdapter]);
|
|
26
|
+
const [currentMeetingState, setCurrentMeetingState] = useState();
|
|
27
|
+
const [currentPage, setCurrentPage] = useState();
|
|
28
|
+
meetingAdapter.onStateChange((newState) => {
|
|
29
|
+
var _a;
|
|
30
|
+
setCurrentPage(newState.page);
|
|
31
|
+
setCurrentMeetingState((_a = newState.meeting) === null || _a === void 0 ? void 0 : _a.state);
|
|
32
|
+
});
|
|
33
|
+
const [showChat, setShowChat] = useState(false);
|
|
34
|
+
const [showPeople, setShowPeople] = useState(false);
|
|
35
|
+
const closePane = useCallback(() => {
|
|
36
|
+
setShowChat(false);
|
|
37
|
+
setShowPeople(false);
|
|
38
|
+
}, []);
|
|
39
|
+
const toggleChat = useCallback(() => {
|
|
40
|
+
setShowPeople(false);
|
|
41
|
+
setShowChat(!showChat);
|
|
42
|
+
}, [showChat]);
|
|
43
|
+
const togglePeople = useCallback(() => {
|
|
44
|
+
setShowChat(false);
|
|
45
|
+
setShowPeople(!showPeople);
|
|
46
|
+
}, [showPeople]);
|
|
47
|
+
const isInLobbyOrConnecting = currentPage === 'lobby';
|
|
48
|
+
const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentMeetingState !== null && currentMeetingState !== void 0 ? currentMeetingState : 'None'));
|
|
49
|
+
return (React.createElement(FluentThemeProvider, { fluentTheme: fluentTheme },
|
|
50
|
+
React.createElement(Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles },
|
|
51
|
+
React.createElement(Stack, { horizontal: true, grow: true },
|
|
52
|
+
React.createElement(Stack.Item, { grow: true },
|
|
53
|
+
React.createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: { callControls: false }, adapter: callAdapter, fluentTheme: fluentTheme }))),
|
|
54
|
+
chatAdapter && hasJoinedCall && (React.createElement(EmbeddedChatPane, { chatCompositeProps: props, hidden: !showChat, chatAdapter: chatAdapter, fluentTheme: fluentTheme, onClose: closePane })),
|
|
55
|
+
callAdapter && chatAdapter && hasJoinedCall && (React.createElement(CallAdapterProvider, { adapter: callAdapter },
|
|
56
|
+
React.createElement(EmbeddedPeoplePane, { hidden: !showPeople, inviteLink: props.meetingInvitationURL, onClose: closePane, chatAdapter: chatAdapter, callAdapter: callAdapter })))),
|
|
57
|
+
(isInLobbyOrConnecting || hasJoinedCall) && (React.createElement(MeetingCallControlBar, { callAdapter: callAdapter, chatButtonChecked: showChat, onChatButtonClicked: toggleChat, peopleButtonChecked: showPeople, onPeopleButtonClicked: togglePeople, mobileView: props.formFactor === 'mobile', disableButtonsForLobbyPage: isInLobbyOrConnecting })))));
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=MeetingComposite.js.map
|
package/dist/dist-esm/react-composites/src/composites/MeetingComposite/MeetingComposite.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeetingComposite.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/MeetingComposite.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeopleButton.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/PeopleButton.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAoB,qBAAqB,EAAE,yCAAmC;AAMrF;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,qBAAqB,KAAG,WAa3D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { ControlBarButton } from "../../../../react-components/src";
|
|
5
|
+
import { People20Filled, People20Regular } from '@fluentui/react-icons';
|
|
6
|
+
const onRenderOnIcon = () => React.createElement(People20Filled, { key: 'peopleOnIconKey', primaryFill: "currentColor" });
|
|
7
|
+
const onRenderOffIcon = () => React.createElement(People20Regular, { key: 'peopleOffIconKey', primaryFill: "currentColor" });
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
export const PeopleButton = (props) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const strings = Object.assign({ label: 'People' }, props.strings);
|
|
14
|
+
return (React.createElement(ControlBarButton, Object.assign({}, props, { strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderOffIcon, onClick: props.onClick })));
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=PeopleButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeopleButton.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/PeopleButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAyB,yCAAmC;AACrF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,cAAc,GAAG,GAAgB,EAAE,CAAC,oBAAC,cAAc,IAAC,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAChH,MAAM,eAAe,GAAG,GAAgB,EAAE,CAAC,oBAAC,eAAe,IAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAC,cAAc,GAAG,CAAC;AAEnH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAe,EAAE;;IACxE,MAAM,OAAO,mBAAK,KAAK,EAAE,QAAQ,IAAK,KAAK,CAAC,OAAO,CAAE,CAAC;IAEtD,OAAO,CACL,oBAAC,gBAAgB,oBACX,KAAK,IACT,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,EAChC,cAAc,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,cAAc,EACtD,eAAe,EAAE,MAAA,KAAK,CAAC,eAAe,mCAAI,eAAe,EACzD,OAAO,EAAE,KAAK,CAAC,OAAO,IACtB,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ChatAdapter, ChatCompositeProps } from '../ChatComposite';
|
|
3
|
+
import { PartialTheme, Theme } from '@fluentui/react';
|
|
4
|
+
import { CallAdapter } from '../CallComposite';
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export declare const EmbeddedPeoplePane: (props: {
|
|
9
|
+
inviteLink?: string;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
hidden: boolean;
|
|
12
|
+
callAdapter: CallAdapter;
|
|
13
|
+
chatAdapter: ChatAdapter;
|
|
14
|
+
}) => JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export declare const EmbeddedChatPane: (props: {
|
|
19
|
+
chatCompositeProps: Partial<ChatCompositeProps>;
|
|
20
|
+
chatAdapter: ChatAdapter;
|
|
21
|
+
fluentTheme?: PartialTheme | Theme;
|
|
22
|
+
hidden: boolean;
|
|
23
|
+
onClose: () => void;
|
|
24
|
+
}) => JSX.Element;
|
|
25
|
+
//# sourceMappingURL=SidePane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidePane.d.ts","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/SidePane.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAiB,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAmC,YAAY,EAAE,KAAK,EAA0B,MAAM,iBAAiB,CAAC;AAe/G,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAuD/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAW;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;CAC1B,KAAG,WAoCH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW;IACtC,kBAAkB,EAAE,QAAQ,kBAAkB,CAAC,CAAC;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,KAAG,WAgBH,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
// Copyright (c) Microsoft Corporation.
|
|
11
|
+
// Licensed under the MIT license.
|
|
12
|
+
import React, { useMemo } from 'react';
|
|
13
|
+
import { ChatComposite } from '../ChatComposite';
|
|
14
|
+
import { CommandBarButton, DefaultButton, Stack, concatStyleSets } from '@fluentui/react';
|
|
15
|
+
import { sidePaneContainerHiddenStyles, sidePaneContainerStyles, sidePaneContainerTokens, sidePaneHeaderStyles, peoplePaneContainerTokens, peopleSubheadingStyle, paneBodyContainer, scrollableContainer, scrollableContainerContents } from './styles/SidePane.styles';
|
|
16
|
+
import { ParticipantList, useTheme } from "../../../../react-components/src";
|
|
17
|
+
import copy from 'copy-to-clipboard';
|
|
18
|
+
import { usePropsFor } from '../CallComposite/hooks/usePropsFor';
|
|
19
|
+
const SidePane = (props) => {
|
|
20
|
+
// We hide the side pane instead of not rendering the entire pane to persist certain elements
|
|
21
|
+
// between renders. An example of this is composing a chat message - a chat message that has been
|
|
22
|
+
// typed but not sent should not be lost if the side panel is closed and then reopened.
|
|
23
|
+
const sidePaneStyles = props.hidden ? sidePaneContainerHiddenStyles : sidePaneContainerStyles;
|
|
24
|
+
const theme = useTheme();
|
|
25
|
+
const sidePaneCloseButtonStyles = {
|
|
26
|
+
icon: { color: theme.palette.neutralSecondary },
|
|
27
|
+
iconHovered: { color: theme.palette.neutralSecondary },
|
|
28
|
+
iconPressed: { color: theme.palette.neutralSecondary }
|
|
29
|
+
};
|
|
30
|
+
return (React.createElement(Stack.Item, { disableShrink: true, verticalFill: true, styles: sidePaneStyles, tokens: sidePaneContainerTokens },
|
|
31
|
+
React.createElement(Stack, { verticalFill: true, "data-ui-id": props.dataUiId },
|
|
32
|
+
React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderStyles },
|
|
33
|
+
React.createElement(Stack.Item, null, props.headingText),
|
|
34
|
+
React.createElement(CommandBarButton, { styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose })),
|
|
35
|
+
React.createElement(Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
|
|
36
|
+
React.createElement(Stack, { horizontal: true, styles: scrollableContainer },
|
|
37
|
+
React.createElement(Stack.Item, { verticalFill: true, styles: scrollableContainerContents }, props.children))))));
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* In a Meeting when a participant is removed, we must remove them from both
|
|
41
|
+
* the call and the chat thread.
|
|
42
|
+
*/
|
|
43
|
+
const removeParticipantFromMeeting = (callAdapter, chatAdapter, participantId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
yield callAdapter.removeParticipant(participantId);
|
|
45
|
+
yield chatAdapter.removeParticipant(participantId);
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
export const EmbeddedPeoplePane = (props) => {
|
|
51
|
+
const { callAdapter, chatAdapter, inviteLink } = props;
|
|
52
|
+
const participantListDefaultProps = usePropsFor(ParticipantList);
|
|
53
|
+
const participantListProps = useMemo(() => {
|
|
54
|
+
const onRemoveParticipant = (participantId) => __awaiter(void 0, void 0, void 0, function* () { return removeParticipantFromMeeting(callAdapter, chatAdapter, participantId); });
|
|
55
|
+
return Object.assign(Object.assign({}, participantListDefaultProps), { onRemoveParticipant });
|
|
56
|
+
}, [participantListDefaultProps, callAdapter, chatAdapter]);
|
|
57
|
+
const theme = useTheme();
|
|
58
|
+
const peopleSubheadingStyleThemed = concatStyleSets(peopleSubheadingStyle, {
|
|
59
|
+
root: {
|
|
60
|
+
color: theme.palette.neutralSecondary
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return (React.createElement(SidePane, { hidden: props.hidden, headingText: 'People', onClose: props.onClose, dataUiId: 'meeting-composite-people-pane' },
|
|
64
|
+
React.createElement(Stack, { tokens: peoplePaneContainerTokens },
|
|
65
|
+
inviteLink && (React.createElement(DefaultButton, { text: "Copy invite link", iconProps: { iconName: 'Link' }, onClick: () => copy(inviteLink) })),
|
|
66
|
+
React.createElement(Stack.Item, { styles: peopleSubheadingStyleThemed }, "In this call"),
|
|
67
|
+
React.createElement(ParticipantList, Object.assign({}, participantListProps)))));
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
export const EmbeddedChatPane = (props) => {
|
|
73
|
+
return (React.createElement(SidePane, { hidden: props.hidden, headingText: 'Chat', onClose: props.onClose, dataUiId: 'meeting-composite-chat-pane' },
|
|
74
|
+
React.createElement(ChatComposite, Object.assign({}, props.chatCompositeProps, { adapter: props.chatAdapter, fluentTheme: props.fluentTheme, options: { topic: false, /* @conditional-compile-remove-from(stable) */ participantPane: false } }))));
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=SidePane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidePane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/MeetingComposite/SidePane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { AudioDeviceInfo, VideoDeviceInfo, PermissionConstraints, GroupCallLocator, TeamsMeetingLinkLocator, Call } from '@azure/communication-calling';
|
|
2
|
+
import { VideoStreamOptions } from "../../../../../react-components/src";
|
|
3
|
+
import { ParticipantsJoinedListener, ParticipantsLeftListener, IsMutedChangedListener, CallIdChangedListener, IsLocalScreenSharingActiveChangedListener, DisplayNameChangedListener, IsSpeakingChangedListener, CallAdapter, CallEndedListener } from '../../CallComposite';
|
|
4
|
+
import { MessageReceivedListener, MessageReadListener, ChatAdapter } from '../../ChatComposite';
|
|
5
|
+
import { MeetingAdapter } from './MeetingAdapter';
|
|
6
|
+
import { MeetingAdapterState } from '../state/MeetingAdapterState';
|
|
7
|
+
import { CommunicationTokenCredential, CommunicationUserIdentifier } from '@azure/communication-common';
|
|
8
|
+
/**
|
|
9
|
+
* Meeting adapter backed by Azure Communication Services.
|
|
10
|
+
* Created for easy use with the Meeting Composite.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AzureCommunicationMeetingAdapter implements MeetingAdapter {
|
|
13
|
+
private callAdapter;
|
|
14
|
+
private chatAdapter;
|
|
15
|
+
private context;
|
|
16
|
+
private onChatStateChange;
|
|
17
|
+
private onCallStateChange;
|
|
18
|
+
constructor(callAdapter: CallAdapter, chatAdapter: ChatAdapter);
|
|
19
|
+
private bindPublicMethods;
|
|
20
|
+
/** Join existing Meeting. */
|
|
21
|
+
joinMeeting(microphoneOn?: boolean): Call | undefined;
|
|
22
|
+
/** Leave current Meeting. */
|
|
23
|
+
leaveMeeting(): Promise<void>;
|
|
24
|
+
/** Start a new Meeting. */
|
|
25
|
+
startMeeting(participants: string[]): Call | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Subscribe to state change events.
|
|
28
|
+
* @param handler - handler to be called when the state changes. This is passed the new state.
|
|
29
|
+
*/
|
|
30
|
+
onStateChange(handler: (state: MeetingAdapterState) => void): void;
|
|
31
|
+
/**
|
|
32
|
+
* Unsubscribe to state change events.
|
|
33
|
+
* @param handler - handler to be no longer called when state changes.
|
|
34
|
+
*/
|
|
35
|
+
offStateChange(handler: (state: MeetingAdapterState) => void): void;
|
|
36
|
+
/** Get current Meeting state. */
|
|
37
|
+
getState(): MeetingAdapterState;
|
|
38
|
+
/** Dispose of the current Meeting Adapter. */
|
|
39
|
+
dispose(): void;
|
|
40
|
+
/** Remove a participant from the Meeting. */
|
|
41
|
+
removeParticipant(userId: string): Promise<void>;
|
|
42
|
+
setCamera(device: VideoDeviceInfo, options?: VideoStreamOptions): Promise<void>;
|
|
43
|
+
/** Set the microphone to be used in the meeting. */
|
|
44
|
+
setMicrophone(device: AudioDeviceInfo): Promise<void>;
|
|
45
|
+
/** Set the speaker to be used in the meeting. */
|
|
46
|
+
setSpeaker(device: AudioDeviceInfo): Promise<void>;
|
|
47
|
+
askDevicePermission(constraints: PermissionConstraints): Promise<void>;
|
|
48
|
+
/** Query for available cameras. */
|
|
49
|
+
queryCameras(): Promise<VideoDeviceInfo[]>;
|
|
50
|
+
/** Query for available microphones. */
|
|
51
|
+
queryMicrophones(): Promise<AudioDeviceInfo[]>;
|
|
52
|
+
/** Query for available speakers. */
|
|
53
|
+
querySpeakers(): Promise<AudioDeviceInfo[]>;
|
|
54
|
+
/** Start the camera for the user in the Meeting. */
|
|
55
|
+
startCamera(options?: VideoStreamOptions): Promise<void>;
|
|
56
|
+
/** Stop the camera for the user in the Meeting. */
|
|
57
|
+
stopCamera(): Promise<void>;
|
|
58
|
+
/** Mute the user in the Meeting. */
|
|
59
|
+
mute(): Promise<void>;
|
|
60
|
+
/** Unmute the user in the Meeting. */
|
|
61
|
+
unmute(): Promise<void>;
|
|
62
|
+
/** Trigger the user to start screen share. */
|
|
63
|
+
startScreenShare(): Promise<void>;
|
|
64
|
+
/** Stop the current active screen share. */
|
|
65
|
+
stopScreenShare(): Promise<void>;
|
|
66
|
+
/** Create a stream view for a remote participants video feed. */
|
|
67
|
+
createStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void>;
|
|
68
|
+
/** Dispose of a created stream view of a remote participants video feed. */
|
|
69
|
+
disposeStreamView(remoteUserId?: string, options?: VideoStreamOptions): Promise<void>;
|
|
70
|
+
/** Fetch initial Meeting data such as chat messages. */
|
|
71
|
+
fetchInitialData(): Promise<void>;
|
|
72
|
+
/** Send a chat message. */
|
|
73
|
+
sendMessage(content: string): Promise<void>;
|
|
74
|
+
/** Send a chat read receipt. */
|
|
75
|
+
sendReadReceipt(chatMessageId: string): Promise<void>;
|
|
76
|
+
/** Send an isTyping indicator. */
|
|
77
|
+
sendTypingIndicator(): Promise<void>;
|
|
78
|
+
/** Load previous Meeting chat messages. */
|
|
79
|
+
loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;
|
|
80
|
+
/** Update an existing message. */
|
|
81
|
+
updateMessage(messageId: string, content: string): Promise<void>;
|
|
82
|
+
/** Delete an existing message. */
|
|
83
|
+
deleteMessage(messageId: string): Promise<void>;
|
|
84
|
+
on(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
|
|
85
|
+
on(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
|
|
86
|
+
on(event: 'meetingEnded', listener: CallEndedListener): void;
|
|
87
|
+
on(event: 'error', listener: (e: Error) => void): void;
|
|
88
|
+
on(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
|
|
89
|
+
on(event: 'callIdChanged', listener: CallIdChangedListener): void;
|
|
90
|
+
on(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
|
|
91
|
+
on(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
|
|
92
|
+
on(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
|
|
93
|
+
on(event: 'messageReceived', listener: MessageReceivedListener): void;
|
|
94
|
+
on(event: 'messageSent', listener: MessageReceivedListener): void;
|
|
95
|
+
on(event: 'messageRead', listener: MessageReadListener): void;
|
|
96
|
+
off(event: 'participantsJoined', listener: ParticipantsJoinedListener): void;
|
|
97
|
+
off(event: 'participantsLeft', listener: ParticipantsLeftListener): void;
|
|
98
|
+
off(event: 'meetingEnded', listener: CallEndedListener): void;
|
|
99
|
+
off(event: 'error', listener: (e: Error) => void): void;
|
|
100
|
+
off(event: 'isMutedChanged', listener: IsMutedChangedListener): void;
|
|
101
|
+
off(event: 'callIdChanged', listener: CallIdChangedListener): void;
|
|
102
|
+
off(event: 'isLocalScreenSharingActiveChanged', listener: IsLocalScreenSharingActiveChangedListener): void;
|
|
103
|
+
off(event: 'displayNameChanged', listener: DisplayNameChangedListener): void;
|
|
104
|
+
off(event: 'isSpeakingChanged', listener: IsSpeakingChangedListener): void;
|
|
105
|
+
off(event: 'messageReceived', listener: MessageReceivedListener): void;
|
|
106
|
+
off(event: 'messageSent', listener: MessageReceivedListener): void;
|
|
107
|
+
off(event: 'messageRead', listener: MessageReadListener): void;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Arguments for {@link createAzureCommunicationMeetingAdapter}
|
|
111
|
+
*
|
|
112
|
+
* @beta
|
|
113
|
+
*/
|
|
114
|
+
export declare type AzureCommunicationMeetingAdapterArgs = {
|
|
115
|
+
endpoint: string;
|
|
116
|
+
userId: CommunicationUserIdentifier;
|
|
117
|
+
displayName: string;
|
|
118
|
+
credential: CommunicationTokenCredential;
|
|
119
|
+
chatThreadId: string;
|
|
120
|
+
callLocator: TeamsMeetingLinkLocator | GroupCallLocator;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Create a meeting adapter backed by Azure Communication services
|
|
124
|
+
* to plug into the Meeting Composite.
|
|
125
|
+
*
|
|
126
|
+
* @beta
|
|
127
|
+
*/
|
|
128
|
+
export declare const createAzureCommunicationMeetingAdapter: ({ userId, displayName, credential, endpoint, chatThreadId, callLocator }: AzureCommunicationMeetingAdapterArgs) => Promise<MeetingAdapter>;
|
|
129
|
+
//# sourceMappingURL=AzureCommunicationMeetingAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureCommunicationMeetingAdapter.d.ts","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/MeetingComposite/adapter/AzureCommunicationMeetingAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,IAAI,EACL,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,4CAAmC;AAChE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yCAAyC,EACzC,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EAGX,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAEL,mBAAmB,EAGpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AA4CxG;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IACrE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,iBAAiB,CAAkD;gBAE/D,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;IAmB9D,OAAO,CAAC,iBAAiB;IAmCzB,6BAA6B;IACtB,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IAG5D,6BAA6B;IAChB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,2BAA2B;IACpB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS;IAG7D;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAGzE;;;OAGG;IACI,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IAG1E,iCAAiC;IAC1B,QAAQ,IAAI,mBAAmB;IAGtC,8CAA8C;IACvC,OAAO,IAAI,IAAI;IAOtB,6CAA6C;IAChC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5F,oDAAoD;IACvC,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,iDAAiD;IACpC,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlD,mBAAmB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnF,mCAAmC;IACtB,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGvD,uCAAuC;IAC1B,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAG3D,oCAAoC;IACvB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGxD,oDAAoD;IACvC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGrE,mDAAmD;IACtC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGxC,oCAAoC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAGlC,sCAAsC;IACzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGpC,8CAA8C;IACjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAG9C,4CAA4C;IAC/B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAG7C,iEAAiE;IACpD,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGjG,4EAA4E;IAC/D,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlG,wDAAwD;IAC3C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAG9C,2BAA2B;IACd,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGxD,gCAAgC;IACnB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,kCAAkC;IACrB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjD,2CAA2C;IAC9B,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG/E,kCAAkC;IACrB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG7E,kCAAkC;IACrB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5D,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IACvE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAC5D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACtD,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IACnE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IACjE,EAAE,CAAC,KAAK,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yCAAyC,GAAG,IAAI;IACzG,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC3E,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IACzE,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACrE,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACjE,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IA6C7D,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC5E,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IACxE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAC7D,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACvD,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IACpE,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAClE,GAAG,CAAC,KAAK,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yCAAyC,GAAG,IAAI;IAC1G,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAC5E,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAC1E,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IACtE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAClE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;CA4C/D;AAED;;;;GAIG;AACH,oBAAY,oCAAoC,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,2BAA2B,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,4BAA4B,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,uBAAuB,GAAG,gBAAgB,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,6EAOhD,oCAAoC,KAAG,QAAQ,cAAc,CAiB/D,CAAC"}
|