@azure/communication-react 1.11.1-alpha-202312160012 → 1.11.1-alpha-202312190013

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/communication-react.d.ts +41 -10
  2. package/dist/dist-cjs/communication-react/index.js +246 -177
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +2 -2
  7. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  8. package/dist/dist-esm/communication-react/src/index.d.ts +1 -0
  9. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/EndCallButton.js +9 -6
  11. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.d.ts +5 -5
  13. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js +10 -9
  14. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.styles.d.ts +4 -0
  16. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.styles.js +13 -3
  17. package/dist/dist-esm/react-components/src/components/Survey/StarSurvey/StarSurvey.styles.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.d.ts +8 -4
  19. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js +76 -39
  20. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.styles.d.ts +9 -1
  22. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.styles.js +21 -1
  23. package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.styles.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +8 -34
  25. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/index.d.ts +1 -0
  27. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/types/CallSurveyImprovementSuggestions.d.ts +23 -0
  29. package/dist/dist-esm/react-components/src/types/CallSurveyImprovementSuggestions.js +4 -0
  30. package/dist/dist-esm/react-components/src/types/CallSurveyImprovementSuggestions.js.map +1 -0
  31. package/dist/dist-esm/react-components/src/types/index.d.ts +1 -0
  32. package/dist/dist-esm/react-components/src/types/index.js +1 -0
  33. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +3 -5
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +12 -0
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -3
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts +3 -5
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +2 -2
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +6 -0
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +4 -0
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +14 -3
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +3 -5
  49. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +3 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/common/SurveyPane.d.ts +2 -0
  52. package/dist/dist-esm/react-composites/src/composites/common/SurveyPane.js +59 -3
  53. package/dist/dist-esm/react-composites/src/composites/common/SurveyPane.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/common/SurveyPaneContent.d.ts +6 -3
  55. package/dist/dist-esm/react-composites/src/composites/common/SurveyPaneContent.js +14 -76
  56. package/dist/dist-esm/react-composites/src/composites/common/SurveyPaneContent.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.d.ts +3 -3
  58. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js +3 -2
  59. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +2 -0
  61. package/dist/dist-esm/react-composites/src/composites/common/icons.js +1 -0
  62. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +4 -1
  64. package/package.json +1 -1
@@ -170,7 +170,7 @@ function getDefaultExportFromCjs (x) {
170
170
  // Copyright (c) Microsoft Corporation.
171
171
  // Licensed under the MIT License.
172
172
  // GENERATED FILE. DO NOT EDIT MANUALLY.
173
- var telemetryVersion = '1.11.1-alpha-202312160012';
173
+ var telemetryVersion = '1.11.1-alpha-202312190013';
174
174
 
175
175
 
176
176
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -1098,7 +1098,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1098
1098
  yield captionsFeature.setCaptionLanguage(language);
1099
1099
  });
1100
1100
  /* @conditional-compile-remove(end-of-call-survey) */
1101
- const onSubmitSurvey = (survey) => __awaiter$L(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey, options)); });
1101
+ const onSubmitSurvey = (survey) => __awaiter$L(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
1102
1102
  return {
1103
1103
  onHangUp,
1104
1104
  /* @conditional-compile-remove(PSTN-calls) */
@@ -16599,6 +16599,7 @@ const ControlBar = (props) => {
16599
16599
 
16600
16600
  // Copyright (c) Microsoft Corporation.
16601
16601
  // Licensed under the MIT License.
16602
+ var _a, _b;
16602
16603
  const onRenderEndCallIcon = () => React.createElement(react.Icon, { iconName: "ControlButtonEndCall" });
16603
16604
  /**
16604
16605
  * A button to end an ongoing call.
@@ -16623,7 +16624,8 @@ const darkThemeCallButtonStyles = {
16623
16624
  color: darkTheme.callingPalette.iconWhite,
16624
16625
  background: darkTheme.callingPalette.callRed,
16625
16626
  '@media (forced-colors: active)': {
16626
- forcedColorAdjust: 'none'
16627
+ forcedColorAdjust: 'auto',
16628
+ border: `1px ${(_a = lightTheme.palette) === null || _a === void 0 ? void 0 : _a.neutralQuaternaryAlt} solid`
16627
16629
  },
16628
16630
  ':focus::after': { outlineColor: `${darkTheme.callingPalette.iconWhite} !important` } // added !important to avoid override by FluentUI button styles
16629
16631
  },
@@ -16631,14 +16633,14 @@ const darkThemeCallButtonStyles = {
16631
16633
  color: darkTheme.callingPalette.iconWhite,
16632
16634
  background: darkTheme.callingPalette.callRed,
16633
16635
  '@media (forced-colors: active)': {
16634
- forcedColorAdjust: 'none'
16636
+ forcedColorAdjust: 'auto'
16635
16637
  }
16636
16638
  },
16637
16639
  rootPressed: {
16638
16640
  color: darkTheme.callingPalette.iconWhite,
16639
16641
  background: darkTheme.callingPalette.callRed,
16640
16642
  '@media (forced-colors: active)': {
16641
- forcedColorAdjust: 'none'
16643
+ forcedColorAdjust: 'auto'
16642
16644
  }
16643
16645
  },
16644
16646
  label: {
@@ -16650,7 +16652,8 @@ const lightThemeCallButtonStyles = {
16650
16652
  color: lightTheme.callingPalette.iconWhite,
16651
16653
  background: lightTheme.callingPalette.callRed,
16652
16654
  '@media (forced-colors: active)': {
16653
- forcedColorAdjust: 'none'
16655
+ forcedColorAdjust: 'auto',
16656
+ border: `1px ${(_b = lightTheme.palette) === null || _b === void 0 ? void 0 : _b.neutralQuaternaryAlt} solid`
16654
16657
  },
16655
16658
  ':focus::after': { outlineColor: `${lightTheme.callingPalette.iconWhite} !important` } // added !important to avoid override by FluentUI button styles
16656
16659
  },
@@ -16658,14 +16661,14 @@ const lightThemeCallButtonStyles = {
16658
16661
  color: lightTheme.callingPalette.iconWhite,
16659
16662
  background: lightTheme.callingPalette.callRed,
16660
16663
  '@media (forced-colors: active)': {
16661
- forcedColorAdjust: 'none'
16664
+ forcedColorAdjust: 'auto'
16662
16665
  }
16663
16666
  },
16664
16667
  rootPressed: {
16665
16668
  color: lightTheme.callingPalette.iconWhite,
16666
16669
  background: lightTheme.callingPalette.callRed,
16667
16670
  '@media (forced-colors: active)': {
16668
- forcedColorAdjust: 'none'
16671
+ forcedColorAdjust: 'auto'
16669
16672
  }
16670
16673
  },
16671
16674
  label: {
@@ -17833,18 +17836,28 @@ const helperTextStyle$1 = (theme) => react.mergeStyles({
17833
17836
  color: theme.palette.neutralPrimary,
17834
17837
  paddingTop: _pxToRem(20)
17835
17838
  });
17839
+ /**
17840
+ * @private
17841
+ */
17842
+ const ratingHelperTextStyle = (theme) => react.mergeStyles({
17843
+ fontWeight: 400,
17844
+ fontSize: _pxToRem(12),
17845
+ lineHeight: _pxToRem(12),
17846
+ color: theme.palette.themePrimary,
17847
+ marginBottom: _pxToRem(24),
17848
+ marginTop: _pxToRem(10),
17849
+ textAlign: 'center'
17850
+ });
17836
17851
  /**
17837
17852
  * @private
17838
17853
  */
17839
17854
  const ratingStyles = (theme) => {
17840
17855
  return {
17841
17856
  root: {
17842
- marginBottom: _pxToRem(24),
17843
17857
  textAlign: 'center'
17844
17858
  },
17845
17859
  ratingStar: {
17846
- fontSize: _pxToRem(35),
17847
- margin: _pxToRem(5)
17860
+ transform: 'scale(1.15)'
17848
17861
  },
17849
17862
  ratingStarFront: {
17850
17863
  color: theme.palette.themePrimary
@@ -17868,26 +17881,26 @@ const titleContainerClassName$1 = react.mergeStyles({
17868
17881
  const _StarSurvey = (props) => {
17869
17882
  const { onStarRatingSelected, selectedIcon, unselectedIcon, strings } = props;
17870
17883
  const [rating, setRating] = React.useState(0);
17871
- const [helperText, setHelperText] = React.useState(strings === null || strings === void 0 ? void 0 : strings.starSurveyHelperText);
17884
+ const [ratingHelperText, setRatingHelperText] = React.useState('');
17872
17885
  const theme = react.useTheme();
17873
17886
  const onRatingChange = React.useCallback((ev, rating) => {
17874
17887
  if (rating) {
17875
17888
  setRating(rating);
17876
17889
  switch (rating) {
17877
17890
  case 1:
17878
- setHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyOneStarText);
17891
+ setRatingHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyOneStarText);
17879
17892
  break;
17880
17893
  case 2:
17881
- setHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyTwoStarText);
17894
+ setRatingHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyTwoStarText);
17882
17895
  break;
17883
17896
  case 3:
17884
- setHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyThreeStarText);
17897
+ setRatingHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyThreeStarText);
17885
17898
  break;
17886
17899
  case 4:
17887
- setHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyFourStarText);
17900
+ setRatingHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyFourStarText);
17888
17901
  break;
17889
17902
  case 5:
17890
- setHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyFiveStarText);
17903
+ setRatingHelperText(strings === null || strings === void 0 ? void 0 : strings.starSurveyFiveStarText);
17891
17904
  break;
17892
17905
  }
17893
17906
  onStarRatingSelected === null || onStarRatingSelected === void 0 ? void 0 : onStarRatingSelected(rating);
@@ -17902,8 +17915,9 @@ const _StarSurvey = (props) => {
17902
17915
  ]);
17903
17916
  return (React.createElement(react.Stack, { verticalAlign: "center" },
17904
17917
  React.createElement(react.Stack, { className: titleContainerClassName$1 },
17905
- React.createElement(react.Text, { className: helperTextStyle$1(theme) }, helperText)),
17906
- React.createElement(react.Rating, { max: 5, size: react.RatingSize.Large, defaultRating: 0, allowZeroStars: true, rating: rating, onChange: onRatingChange, styles: ratingStyles(theme), icon: selectedIcon !== null && selectedIcon !== void 0 ? selectedIcon : 'SurveyStarIconFilled', unselectedIcon: unselectedIcon !== null && unselectedIcon !== void 0 ? unselectedIcon : 'SurveyStarIcon', ariaLabelFormat: strings === null || strings === void 0 ? void 0 : strings.starRatingAriaLabel })));
17918
+ React.createElement(react.Text, { className: helperTextStyle$1(theme) }, strings === null || strings === void 0 ? void 0 : strings.starSurveyHelperText)),
17919
+ React.createElement(react.Rating, { max: 5, size: react.RatingSize.Large, defaultRating: 0, allowZeroStars: true, rating: rating, onChange: onRatingChange, styles: ratingStyles(theme), icon: selectedIcon !== null && selectedIcon !== void 0 ? selectedIcon : 'SurveyStarIconFilled', unselectedIcon: unselectedIcon !== null && unselectedIcon !== void 0 ? unselectedIcon : 'SurveyStarIcon', ariaLabelFormat: strings === null || strings === void 0 ? void 0 : strings.starRatingAriaLabel }),
17920
+ React.createElement(react.Text, { className: ratingHelperTextStyle(theme) }, ratingHelperText)));
17907
17921
  };
17908
17922
 
17909
17923
  // Copyright (c) Microsoft Corporation.
@@ -17931,7 +17945,27 @@ const helperTextStyle = (theme) => react.mergeStyles({
17931
17945
  * @private
17932
17946
  */
17933
17947
  const checkboxClassName = react.mergeStyles({
17934
- padding: _pxToRem(8)
17948
+ padding: _pxToRem(8),
17949
+ paddingLeft: 0
17950
+ });
17951
+ /**
17952
+ * @private
17953
+ */
17954
+ const freeFormTextCheckboxStyles = {
17955
+ root: {
17956
+ padding: _pxToRem(8),
17957
+ paddingLeft: 0,
17958
+ width: '100%'
17959
+ },
17960
+ label: {
17961
+ width: '100%'
17962
+ }
17963
+ };
17964
+ /**
17965
+ * @private
17966
+ */
17967
+ const freeFormTextFieldClassName = react.mergeStyles({
17968
+ width: '100%'
17935
17969
  });
17936
17970
 
17937
17971
  // Copyright (c) Microsoft Corporation.
@@ -17942,62 +17976,95 @@ const checkboxClassName = react.mergeStyles({
17942
17976
  * @internal
17943
17977
  */
17944
17978
  const _TagsSurvey = (props) => {
17945
- const { issues, callIssuesToTag, categoryHeadings, onConfirm, strings } = props;
17979
+ const { callIssuesToTag, categoryHeadings, onConfirm, strings, showFreeFormTextField } = props;
17946
17980
  const [selectedTags, setSelectedTags] = React.useState({});
17981
+ const [textResponse, setTextResponse] = React.useState({});
17982
+ const [selectedTextResponse, setSelectedTextResponse] = React.useState({});
17947
17983
  const tags = React.useMemo(() => {
17948
17984
  const tags = [];
17949
- issues.forEach((issue) => {
17950
- const issueCamelCase = (issue === null || issue === void 0 ? void 0 : issue.charAt(0).toLowerCase()) + (issue === null || issue === void 0 ? void 0 : issue.slice(1));
17951
- const issueCategory = Object.keys(callIssuesToTag).find((key) => callIssuesToTag[key][issueCamelCase] !== undefined);
17952
- if (issueCategory) {
17985
+ Object.keys(callIssuesToTag).forEach((issueCategory) => {
17986
+ Object.keys(callIssuesToTag[issueCategory]).map((issue) => {
17987
+ const issueCapitalized = (issue === null || issue === void 0 ? void 0 : issue.charAt(0).toUpperCase()) + (issue === null || issue === void 0 ? void 0 : issue.slice(1));
17953
17988
  if (tags[issueCategory]) {
17954
17989
  tags[issueCategory].push({
17955
- message: callIssuesToTag[issueCategory][issueCamelCase],
17956
- issue: issue
17990
+ message: callIssuesToTag[issueCategory][issue],
17991
+ issue: issueCapitalized
17957
17992
  });
17958
17993
  }
17959
17994
  else {
17960
17995
  tags[issueCategory] = [
17961
17996
  {
17962
- message: callIssuesToTag[issueCategory][issueCamelCase],
17963
- issue: issue
17997
+ message: callIssuesToTag[issueCategory][issue],
17998
+ issue: issueCapitalized
17964
17999
  }
17965
18000
  ];
17966
18001
  }
17967
- }
18002
+ });
17968
18003
  });
17969
18004
  return tags;
17970
- }, [issues, callIssuesToTag]);
17971
- const onChange = React.useCallback((issue, issueCategory, checked) => {
18005
+ }, [callIssuesToTag]);
18006
+ const onChange = React.useCallback((issueCategory, checked, issue) => {
17972
18007
  if (checked) {
17973
- setSelectedTags((prevState) => {
17974
- if (prevState[issueCategory]) {
17975
- prevState[issueCategory].issues.push(issue);
17976
- }
17977
- else {
17978
- prevState[issueCategory] = { score: 1, issues: [issue] };
17979
- }
17980
- return prevState;
17981
- });
18008
+ if (issue) {
18009
+ setSelectedTags((prevState) => {
18010
+ if (prevState[issueCategory]) {
18011
+ prevState[issueCategory].issues.push(issue);
18012
+ }
18013
+ else {
18014
+ prevState[issueCategory] = { score: 1, issues: [issue] };
18015
+ }
18016
+ return prevState;
18017
+ });
18018
+ }
18019
+ else {
18020
+ setSelectedTextResponse((prevState) => {
18021
+ prevState[issueCategory] = textResponse[issueCategory];
18022
+ return prevState;
18023
+ });
18024
+ }
17982
18025
  }
17983
18026
  else {
17984
- setSelectedTags((prevState) => {
17985
- if (prevState[issueCategory]) {
17986
- prevState[issueCategory].issues = prevState[issueCategory].issues.filter(function (value) {
17987
- return value !== issue;
17988
- });
17989
- if (prevState[issueCategory].issues.length === 0) {
17990
- delete prevState[issueCategory];
18027
+ if (issue) {
18028
+ setSelectedTags((prevState) => {
18029
+ if (prevState[issueCategory]) {
18030
+ prevState[issueCategory].issues = prevState[issueCategory].issues.filter(function (value) {
18031
+ return value !== issue;
18032
+ });
18033
+ if (prevState[issueCategory].issues.length === 0) {
18034
+ delete prevState[issueCategory];
18035
+ }
17991
18036
  }
17992
- }
17993
- return prevState;
17994
- });
18037
+ return prevState;
18038
+ });
18039
+ }
18040
+ else {
18041
+ setSelectedTextResponse((prevState) => {
18042
+ delete prevState[issueCategory];
18043
+ return prevState;
18044
+ });
18045
+ }
17995
18046
  }
17996
18047
  if (onConfirm) {
17997
- onConfirm(selectedTags);
18048
+ onConfirm(selectedTags, selectedTextResponse);
17998
18049
  }
17999
- }, [onConfirm, selectedTags]);
18050
+ }, [onConfirm, selectedTags, selectedTextResponse, textResponse]);
18000
18051
  const theme = react.useTheme();
18052
+ const onRenderLabel = React.useCallback((issueCategory) => {
18053
+ return (React.createElement(react.TextField, { key: issueCategory, className: freeFormTextFieldClassName, underlined: true, placeholder: strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText, onChange: (e, v) => {
18054
+ if (v) {
18055
+ setTextResponse((prevState) => {
18056
+ prevState[issueCategory] = v;
18057
+ return prevState;
18058
+ });
18059
+ setSelectedTextResponse((prevState) => {
18060
+ if (Object.keys(prevState).includes(issueCategory)) {
18061
+ prevState[issueCategory] = v;
18062
+ }
18063
+ return prevState;
18064
+ });
18065
+ }
18066
+ } }));
18067
+ }, [strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText]);
18001
18068
  return (React.createElement(React.Fragment, null,
18002
18069
  React.createElement(react.Stack, { verticalAlign: "center" },
18003
18070
  React.createElement(react.Text, { className: questionTextStyle(theme) }, strings === null || strings === void 0 ? void 0 : strings.tagsSurveyQuestion),
@@ -18006,9 +18073,13 @@ const _TagsSurvey = (props) => {
18006
18073
  return (React.createElement(react.PivotItem, { key: `key-${i}`, headerText: categoryHeadings[key], headerButtonProps: {
18007
18074
  'data-order': i,
18008
18075
  'data-title': key
18009
- }, alwaysRender: true }, tags[key].map((t, i) => {
18010
- return (React.createElement(react.Checkbox, { className: checkboxClassName, key: `checkBox_${i}`, label: t.message, onChange: (ev, checked) => onChange(t.issue, key, checked !== null && checked !== void 0 ? checked : false) }));
18011
- })));
18076
+ }, alwaysRender: true },
18077
+ tags[key].map((t, i) => {
18078
+ return (React.createElement(react.Checkbox, { className: checkboxClassName, key: `checkBox_${i}`, label: t.message, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false, t.issue) }));
18079
+ }),
18080
+ showFreeFormTextField && (React.createElement(react.Checkbox, { styles: freeFormTextCheckboxStyles, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false), onRenderLabel: () => {
18081
+ return onRenderLabel(key);
18082
+ } }))));
18012
18083
  }))));
18013
18084
  };
18014
18085
 
@@ -18321,44 +18392,18 @@ const videoEffectsItemContainerStyles = (args) => {
18321
18392
  cursor: args.disabled ? 'default' : 'pointer',
18322
18393
  height: VideoEffectsItemContainerHeight,
18323
18394
  width: VideoEffectsItemContainerWidth,
18324
- border: args.isSelected
18395
+ outlineOffset: '-1px',
18396
+ outline: args.isSelected
18325
18397
  ? `${borderActiveThickness} solid ${args.theme.palette.themePrimary}`
18326
18398
  : `${borderDefaultThickness} solid ${args.theme.palette.neutralQuaternaryAlt}`,
18327
- // Use :after to display a border element. This is used to prevent the background image
18328
- // resizing when the border thichkness is changed. We also want the border to be inside
18329
- // the frame of the container, i.e. we want it to expand inwards and not outwards when
18330
- // border thickness changes from hover/selection.
18331
- ':after': {
18332
- content: '""',
18399
+ ':hover': {
18333
18400
  boxSizing: 'border-box',
18334
- height: VideoEffectsItemContainerBorderHeight,
18335
18401
  width: VideoEffectsItemContainerBorderWidth,
18336
- borderRadius: '0.25rem',
18337
- transform: 'translate(-1rem, -3.3rem)',
18338
- display: 'flex'
18339
- },
18340
- ':hover': {
18341
- ':after': {
18342
- border: args.disabled && !args.isSelected
18343
- ? `${borderDefaultThickness} solid ${args.theme.palette.neutralQuaternaryAlt}`
18344
- : `${borderActiveThickness} solid ${args.theme.palette.themePrimary}`,
18345
- transform: 'translate(-1rem, -3.3rem)'
18346
- }
18347
- },
18348
- ':focus': {
18349
- ':after': {
18350
- outline: 'none',
18351
- transform: 'translate(-0.1rem, -0.2rem)',
18352
- ':hover': {
18353
- transform: 'translate(-0.1rem, -0.2rem)'
18354
- }
18355
- }
18356
- },
18357
- ':active': {
18358
- ':after': {
18359
- outline: 'none',
18360
- transform: 'translate(-1rem, -3.3rem)'
18361
- }
18402
+ height: VideoEffectsItemContainerBorderHeight,
18403
+ outlineOffset: '-1px',
18404
+ outline: args.disabled && !args.isSelected
18405
+ ? `${borderDefaultThickness} solid ${args.theme.palette.neutralQuaternaryAlt}`
18406
+ : `${borderActiveThickness} solid ${args.theme.palette.themePrimary}`
18362
18407
  }
18363
18408
  }
18364
18409
  };
@@ -21842,6 +21887,7 @@ const COMPOSITE_ONLY_ICONS = {
21842
21887
  NoticePageRoomNotValid: React.createElement(reactIcons.Info20Filled, null),
21843
21888
  /* @conditional-compile-remove(calling-sounds) */
21844
21889
  NoticePageCallRejected: React.createElement(reactIcons.Info20Filled, null),
21890
+ NoticePageCallTimeout: React.createElement(reactIcons.Info20Filled, null),
21845
21891
  /* @conditional-compile-remove(file-sharing) */
21846
21892
  SendBoxAttachFile: React.createElement(reactIcons.Attach20Regular, null),
21847
21893
  /* @conditional-compile-remove(PSTN-calls) */
@@ -21904,7 +21950,7 @@ const CallCompositeIcon = (props) => (React.createElement(react.FontIcon, Object
21904
21950
  */
21905
21951
  const CallWithChatCompositeIcon = (props) => (React.createElement(react.FontIcon, Object.assign({}, props)));
21906
21952
 
21907
- var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyQuestion:"How was your call today?",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveyCancelButtonAriaLabel:"Cancel",tagsSurveyQuestion:"What could have been better?",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other,please specify",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"}};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
21953
+ var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyQuestion:"How was your call today?",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveyCancelButtonAriaLabel:"Cancel",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"}};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
21908
21954
 
21909
21955
  // Copyright (c) Microsoft Corporation.
21910
21956
  // Licensed under the MIT License.
@@ -23761,6 +23807,10 @@ const NOT_INVITED_TO_ROOM_SUB_CODE = 5828;
23761
23807
  /* @conditional-compile-remove(rooms) */
23762
23808
  /** @private */
23763
23809
  const INVITE_TO_ROOM_REMOVED_SUB_CODE = 5317;
23810
+ /** @private */
23811
+ const CALL_TIMEOUT_SUB_CODE = 10004;
23812
+ /** @private */
23813
+ const CALL_TIMEOUT_CODE = 487;
23764
23814
  /**
23765
23815
  * @private
23766
23816
  */
@@ -23836,7 +23886,7 @@ const getCallEndReason = (call) => {
23836
23886
  * @private
23837
23887
  */
23838
23888
  const getEndedCallPageProps = (locale, endedCall) => {
23839
- var _a, _b, _c;
23889
+ var _a, _b, _c, _d;
23840
23890
  let title = locale.strings.call.leftCallTitle;
23841
23891
  let moreDetails = locale.strings.call.leftCallMoreDetails;
23842
23892
  let disableStartCallButton = false;
@@ -23875,9 +23925,16 @@ const getEndedCallPageProps = (locale, endedCall) => {
23875
23925
  iconName = 'NoticePageInviteToRoomRemoved';
23876
23926
  }
23877
23927
  break;
23928
+ case CALL_TIMEOUT_SUB_CODE:
23929
+ if (((_b = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _b === void 0 ? void 0 : _b.code) === CALL_TIMEOUT_CODE && locale.strings.call.callTimeoutTitle) {
23930
+ title = locale.strings.call.callTimeoutTitle;
23931
+ moreDetails = locale.strings.call.callTimeoutDetails;
23932
+ disableStartCallButton = true;
23933
+ iconName = 'NoticePageCallTimeout';
23934
+ }
23878
23935
  }
23879
23936
  /* @conditional-compile-remove(calling-sounds) */
23880
- switch ((_b = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _b === void 0 ? void 0 : _b.code) {
23937
+ switch ((_c = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _c === void 0 ? void 0 : _c.code) {
23881
23938
  case CALL_REJECTED_CODE$1:
23882
23939
  if (locale.strings.call.callRejectedTitle) {
23883
23940
  title = locale.strings.call.callRejectedTitle;
@@ -23888,7 +23945,7 @@ const getEndedCallPageProps = (locale, endedCall) => {
23888
23945
  break;
23889
23946
  }
23890
23947
  /* @conditional-compile-remove(teams-adhoc-call) */
23891
- switch ((_c = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _c === void 0 ? void 0 : _c.subCode) {
23948
+ switch ((_d = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _d === void 0 ? void 0 : _d.subCode) {
23892
23949
  case 10037:
23893
23950
  if (locale.strings.call.participantCouldNotBeReachedTitle) {
23894
23951
  title = locale.strings.call.participantCouldNotBeReachedTitle;
@@ -29061,6 +29118,12 @@ const configurationPageTextDecoration = (theme) => {
29061
29118
  strokeWidth: _pxToRem(1.5),
29062
29119
  text: {
29063
29120
  letterSpacing: '-0.02rem' // cope with extra width due to stroke width
29121
+ },
29122
+ '@media (forced-colors: active)': {
29123
+ forcedColorAdjust: 'auto',
29124
+ fill: theme.palette.neutralQuaternaryAlt,
29125
+ textShadow: 'none',
29126
+ stroke: 'none'
29064
29127
  }
29065
29128
  };
29066
29129
  };
@@ -30150,10 +30213,11 @@ const TagsSurvey = (
30150
30213
  /* @conditional-compile-remove(end-of-call-survey) */
30151
30214
  const tagsSurveyStrings = {
30152
30215
  tagsSurveyQuestion: strings.tagsSurveyQuestion,
30153
- tagsSurveyHelperText: strings.tagsSurveyHelperText
30216
+ tagsSurveyHelperText: strings.tagsSurveyHelperText,
30217
+ tagsSurveyTextFieldDefaultText: strings.tagsSurveyTextFieldDefaultText
30154
30218
  };
30155
30219
  /* @conditional-compile-remove(end-of-call-survey) */
30156
- return (React.createElement(_TagsSurvey, { callIssuesToTag: strings.surveyIssues, categoryHeadings: strings.SurveyIssuesHeadingStrings, issues: props.issues, onConfirm: props.onConfirm, strings: tagsSurveyStrings }));
30220
+ return (React.createElement(_TagsSurvey, { callIssuesToTag: strings.surveyIssues, categoryHeadings: strings.SurveyIssuesHeadingStrings, onConfirm: props.onConfirm, strings: tagsSurveyStrings, showFreeFormTextField: props.showFreeFormTextField }));
30157
30221
  };
30158
30222
 
30159
30223
  // Copyright (c) Microsoft Corporation.
@@ -30166,101 +30230,97 @@ const SurveyPaneContent = (
30166
30230
  /* @conditional-compile-remove(end-of-call-survey) */
30167
30231
  const [showTagsSurvey, setShowTagsSurvey] = React.useState(false);
30168
30232
  /* @conditional-compile-remove(end-of-call-survey) */
30169
- const [ratings, setRatings] = React.useState(0);
30170
- /* @conditional-compile-remove(end-of-call-survey) */
30171
- const [issuesSelected, setIssuesSelected] = React.useState();
30172
- /* @conditional-compile-remove(end-of-call-survey) */
30173
- const [showSubmitFeedbackButton, setShowSubmitFeedbackButton] = React.useState(false);
30174
- /* @conditional-compile-remove(end-of-call-survey) */
30175
- const strings = useLocale().strings.call;
30176
- /* @conditional-compile-remove(end-of-call-survey) */
30177
30233
  const onStarRatingSelected = (ratings) => {
30178
- if (ratings <= 3) {
30234
+ if (ratings <= 2) {
30179
30235
  setShowTagsSurvey(true);
30236
+ props.setShowSubmitFeedbackButton(true);
30180
30237
  }
30181
30238
  else {
30182
- setShowSubmitFeedbackButton(true);
30239
+ props.setShowSubmitFeedbackButton(true);
30183
30240
  }
30184
- setRatings(ratings);
30241
+ props.setRatings(ratings);
30185
30242
  };
30186
30243
  /* @conditional-compile-remove(end-of-call-survey) */
30187
- const onIssuesSelected = (selectedTags) => {
30188
- setIssuesSelected(selectedTags);
30189
- setShowSubmitFeedbackButton(true);
30244
+ const onIssuesSelected = (selectedTags, improvementSuggestions) => {
30245
+ props.setIssuesSelected(selectedTags);
30246
+ props.setShowSubmitFeedbackButton(true);
30247
+ if (improvementSuggestions && props.setImprovementSuggestions) {
30248
+ props.setImprovementSuggestions(improvementSuggestions);
30249
+ }
30190
30250
  };
30191
30251
  /* @conditional-compile-remove(end-of-call-survey) */
30192
- const issues = [
30193
- 'NoLocalAudio',
30194
- 'NoRemoteAudio',
30195
- 'Echo',
30196
- 'AudioNoise',
30197
- 'LowVolume',
30198
- 'AudioStoppedUnexpectedly',
30199
- 'DistortedSpeech',
30200
- 'AudioInterruption',
30201
- 'OtherIssues',
30202
- 'NoContentLocal',
30203
- 'NoContentRemote',
30204
- 'CannotPresent',
30205
- 'LowQuality',
30206
- 'Freezes',
30207
- 'StoppedUnexpectedly',
30208
- 'LargeDelay',
30209
- 'NoVideoReceived',
30210
- 'NoVideoSent',
30211
- 'LowQuality',
30212
- 'Freezes',
30213
- 'StoppedUnexpectedly',
30214
- 'DarkVideoReceived',
30215
- 'AudioVideoOutOfSync',
30216
- 'CallCannotJoin',
30217
- 'CallCannotInvite',
30218
- 'HadToRejoin',
30219
- 'CallEndedUnexpectedly'
30220
- ];
30221
- /* @conditional-compile-remove(end-of-call-survey) */
30222
- return (React.createElement(react.Stack, { verticalAlign: "space-between" },
30223
- React.createElement(react.Stack, null,
30224
- React.createElement(StarSurvey, { onStarRatingSelected: onStarRatingSelected }),
30225
- showTagsSurvey && React.createElement(TagsSurvey, { issues: issues, onConfirm: onIssuesSelected })),
30226
- showSubmitFeedbackButton && (React.createElement(react.Stack, { style: { borderTop: 'solid', borderTopColor: 'lightgrey' }, horizontalAlign: "end" },
30227
- React.createElement(react.PrimaryButton, { style: { marginTop: '2rem' }, onClick: () => {
30228
- const surveyResults = { overallRating: { score: ratings } };
30229
- if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.overallRating) {
30230
- surveyResults.overallRating = { score: ratings, issues: issuesSelected.overallRating.issues };
30231
- }
30232
- if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.audioRating) {
30233
- surveyResults.audioRating = { score: ratings, issues: issuesSelected.audioRating.issues };
30234
- }
30235
- if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.screenshareRating) {
30236
- surveyResults.screenshareRating = { score: ratings, issues: issuesSelected.screenshareRating.issues };
30237
- }
30238
- if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.videoRating) {
30239
- surveyResults.videoRating = { score: ratings, issues: issuesSelected.videoRating.issues };
30240
- }
30241
- if (props.onSubmitSurvey) {
30242
- props
30243
- .onSubmitSurvey(surveyResults)
30244
- .then(() => console.log('survey submitted successfully', surveyResults))
30245
- .catch((e) => console.log('error when submitting survey: ' + e));
30246
- }
30247
- if (props.onDismissSidePane) {
30248
- props.onDismissSidePane();
30249
- }
30250
- } }, strings.surveyConfirmButtonLabel)))));
30252
+ return (React.createElement(react.Stack, null,
30253
+ React.createElement(StarSurvey, { onStarRatingSelected: onStarRatingSelected }),
30254
+ showTagsSurvey && (React.createElement(TagsSurvey, { onConfirm: onIssuesSelected, showFreeFormTextField: !(props.setImprovementSuggestions === undefined) }))));
30251
30255
  };
30252
30256
 
30253
30257
  // Copyright (c) Microsoft Corporation.
30254
30258
  // Licensed under the MIT License.
30255
30259
  /** @private */
30256
30260
  const SurveyPane = (props) => {
30261
+ /* @conditional-compile-remove(end-of-call-survey) */
30262
+ const { onSubmitSurvey, onSurveySubmittedCustom } = props;
30257
30263
  /* @conditional-compile-remove(end-of-call-survey) */
30258
30264
  const strings = useLocale().strings.call;
30259
30265
  /* @conditional-compile-remove(end-of-call-survey) */
30260
30266
  const [isOpen, setIsOpen] = React.useState(true);
30261
30267
  /* @conditional-compile-remove(end-of-call-survey) */
30262
- return (React.createElement(react.Panel, { headerText: strings.surveyQuestion, isOpen: isOpen, onDismiss: () => setIsOpen(false), closeButtonAriaLabel: strings.surveyCancelButtonAriaLabel, type: react.PanelType.custom, customWidth: "32rem" },
30263
- React.createElement(SurveyPaneContent, { onSubmitSurvey: props.onSubmitSurvey, onDismissSidePane: () => setIsOpen(false) })));
30268
+ const [ratings, setRatings] = React.useState(0);
30269
+ /* @conditional-compile-remove(end-of-call-survey) */
30270
+ const [issuesSelected, setIssuesSelected] = React.useState();
30271
+ /* @conditional-compile-remove(end-of-call-survey) */
30272
+ const [showSubmitFeedbackButton, setShowSubmitFeedbackButton] = React.useState(false);
30273
+ /* @conditional-compile-remove(end-of-call-survey) */
30274
+ const [improvementSuggestions, setImprovementSuggestions] = React.useState({});
30275
+ /* @conditional-compile-remove(end-of-call-survey) */
30276
+ const onRenderFooterContent = React.useCallback(() => (React.createElement(React.Fragment, null, showSubmitFeedbackButton && (React.createElement(react.Stack, { style: { borderTop: 'solid', borderTopColor: 'lightgrey' }, horizontalAlign: "end" },
30277
+ React.createElement(react.PrimaryButton, { style: { marginTop: '1rem' }, onClick: () => {
30278
+ const surveyResults = { overallRating: { score: ratings } };
30279
+ if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.overallRating) {
30280
+ surveyResults.overallRating = { score: ratings, issues: issuesSelected.overallRating.issues };
30281
+ }
30282
+ if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.audioRating) {
30283
+ surveyResults.audioRating = { score: ratings, issues: issuesSelected.audioRating.issues };
30284
+ }
30285
+ if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.screenshareRating) {
30286
+ surveyResults.screenshareRating = { score: ratings, issues: issuesSelected.screenshareRating.issues };
30287
+ }
30288
+ if (issuesSelected === null || issuesSelected === void 0 ? void 0 : issuesSelected.videoRating) {
30289
+ surveyResults.videoRating = { score: ratings, issues: issuesSelected.videoRating.issues };
30290
+ }
30291
+ if (onSubmitSurvey) {
30292
+ onSubmitSurvey(surveyResults)
30293
+ .then((res) => {
30294
+ var _a, _b;
30295
+ if (onSurveySubmittedCustom) {
30296
+ onSurveySubmittedCustom((_a = res === null || res === void 0 ? void 0 : res.callId) !== null && _a !== void 0 ? _a : '', (_b = res === null || res === void 0 ? void 0 : res.id) !== null && _b !== void 0 ? _b : '', surveyResults, improvementSuggestions);
30297
+ }
30298
+ })
30299
+ .catch((e) => console.log('error when submitting survey: ' + e));
30300
+ }
30301
+ setIsOpen(false);
30302
+ } }, strings.surveyConfirmButtonLabel))))), [
30303
+ showSubmitFeedbackButton,
30304
+ ratings,
30305
+ issuesSelected,
30306
+ onSubmitSurvey,
30307
+ strings.surveyConfirmButtonLabel,
30308
+ onSurveySubmittedCustom,
30309
+ improvementSuggestions
30310
+ ]);
30311
+ /* @conditional-compile-remove(end-of-call-survey) */
30312
+ return (React.createElement(react.Panel, { headerText: strings.surveyQuestion, isOpen: isOpen, onDismiss: () => setIsOpen(false), closeButtonAriaLabel: strings.surveyCancelButtonAriaLabel, type: react.PanelType.custom, customWidth: "24rem", onRenderFooterContent: onRenderFooterContent, isFooterAtBottom: true },
30313
+ React.createElement(SurveyPaneContent, { setShowSubmitFeedbackButton: (showButton) => {
30314
+ setShowSubmitFeedbackButton(showButton);
30315
+ }, setRatings: (rating) => {
30316
+ setRatings(rating);
30317
+ }, setIssuesSelected: (issuesSelected) => {
30318
+ setIssuesSelected(issuesSelected);
30319
+ }, setImprovementSuggestions: onSurveySubmittedCustom
30320
+ ? (improvementSuggestions) => {
30321
+ setImprovementSuggestions(improvementSuggestions);
30322
+ }
30323
+ : undefined })));
30264
30324
  };
30265
30325
 
30266
30326
  // Copyright (c) Microsoft Corporation.
@@ -30271,7 +30331,7 @@ const SurveyPane = (props) => {
30271
30331
  * @private
30272
30332
  */
30273
30333
  function NoticePage(props) {
30274
- var _a;
30334
+ var _a, _b;
30275
30335
  const adapter = useAdapter();
30276
30336
  /* @conditional-compile-remove(end-of-call-survey) */
30277
30337
  const handlers = useHandlers();
@@ -30282,7 +30342,7 @@ function NoticePage(props) {
30282
30342
  React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles), "aria-live": "assertive" }, props.moreDetails),
30283
30343
  !props.disableStartCallButton && (React.createElement(react.Stack, { styles: rejoinCallButtonContainerStyles },
30284
30344
  React.createElement(StartCallButton, { onClick: () => adapter.joinCall(), disabled: false, rejoinCall: true, autoFocus: true })))),
30285
- /* @conditional-compile-remove(end-of-call-survey) */ !((_a = props.surveyOptions) === null || _a === void 0 ? void 0 : _a.hideSurvey) && (React.createElement(SurveyPane, Object.assign({}, handlers)))));
30345
+ /* @conditional-compile-remove(end-of-call-survey) */ !((_a = props.surveyOptions) === null || _a === void 0 ? void 0 : _a.hideSurvey) && (React.createElement(SurveyPane, Object.assign({}, handlers, { onSurveySubmittedCustom: (_b = props.surveyOptions) === null || _b === void 0 ? void 0 : _b.onSurveySubmitted })))));
30286
30346
  }
30287
30347
 
30288
30348
  // Copyright (c) Microsoft Corporation.
@@ -31928,7 +31988,7 @@ class AzureCommunicationCallAdapter {
31928
31988
  return __awaiter$5(this, void 0, void 0, function* () {
31929
31989
  yield this.handlers.onHangUp(forEveryone);
31930
31990
  this.unsubscribeCallEvents();
31931
- this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, undefined,
31991
+ this.handlers = createHandlers(this.callClient, this.callAgent, this.deviceManager, this.call,
31932
31992
  /* @conditional-compile-remove(video-background-effects) */ {
31933
31993
  onResolveVideoBackgroundEffectsDependency: this.onResolveVideoBackgroundEffectsDependency
31934
31994
  });
@@ -32152,10 +32212,17 @@ class AzureCommunicationCallAdapter {
32152
32212
  }
32153
32213
  /* @conditional-compile-remove(PSTN-calls) */
32154
32214
  holdCall() {
32155
- var _a;
32215
+ var _a, _b;
32156
32216
  return __awaiter$5(this, void 0, void 0, function* () {
32157
32217
  if (((_a = this.call) === null || _a === void 0 ? void 0 : _a.state) !== 'LocalHold') {
32158
- this.handlers.onToggleHold();
32218
+ if ((_b = this.call) === null || _b === void 0 ? void 0 : _b.isLocalVideoStarted) {
32219
+ this.stopCamera().then(() => {
32220
+ this.handlers.onToggleHold();
32221
+ });
32222
+ }
32223
+ else {
32224
+ this.handlers.onToggleHold();
32225
+ }
32159
32226
  }
32160
32227
  });
32161
32228
  }
@@ -33431,7 +33498,9 @@ const CallWithChatComposite = (props) => {
33431
33498
  /* @conditional-compile-remove(custom-branding) */
33432
33499
  logo: (_a = options === null || options === void 0 ? void 0 : options.branding) === null || _a === void 0 ? void 0 : _a.logo,
33433
33500
  /* @conditional-compile-remove(custom-branding) */
33434
- backgroundImage: (_b = options === null || options === void 0 ? void 0 : options.branding) === null || _b === void 0 ? void 0 : _b.backgroundImage }))));
33501
+ backgroundImage: (_b = options === null || options === void 0 ? void 0 : options.branding) === null || _b === void 0 ? void 0 : _b.backgroundImage,
33502
+ /* @conditional-compile-remove(end-of-call-survey) */
33503
+ surveyOptions: options === null || options === void 0 ? void 0 : options.surveyOptions }))));
33435
33504
  };
33436
33505
  const hasJoinedCallFn = (page, callStatus) => {
33437
33506
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */