@microsoft/omnichannel-chat-components 0.1.0-main.91dd060 → 0.1.0-main.a133fcc
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/lib/cjs/common/Constants.js +11 -6
- package/lib/cjs/components/callingcontainer/subcomponents/CurrentCall/CurrentCall.js +1 -1
- package/lib/cjs/components/callingcontainer/subcomponents/IncomingCall/IncomingCall.js +15 -2
- package/lib/cjs/components/chatbutton/ChatButton.js +27 -23
- package/lib/cjs/components/chatbutton/common/defaultProps/defaultChatButtonControlProps.js +4 -1
- package/lib/cjs/components/common/commandbutton/CommandButton.js +30 -2
- package/lib/cjs/components/{header → common}/subcomponents/CloseButton.js +4 -3
- package/lib/cjs/components/confirmationpane/ConfirmationPane.js +7 -0
- package/lib/cjs/components/confirmationpane/common/defaultStyles/defaultConfirmationPaneButtonGroupStyles.js +5 -1
- package/lib/cjs/components/confirmationpane/common/defaultStyles/defaultConfirmationPaneGeneralStyles.js +7 -4
- package/lib/cjs/components/footer/Footer.js +2 -2
- package/lib/cjs/components/footer/common/defaultProps/defaultFooterControlProps.js +1 -0
- package/lib/cjs/components/footer/common/defaultStyles/defaultFooterStyleProps.js +12 -6
- package/lib/cjs/components/footer/subcomponents/AudioNotificationButton.js +30 -12
- package/lib/cjs/components/header/Header.js +2 -2
- package/lib/cjs/components/inputvalidationpane/InputValidationPane.js +28 -28
- package/lib/cjs/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneCancelButtonStyles.js +2 -1
- package/lib/cjs/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneInvalidInputErrorMessageStyles.js +1 -1
- package/lib/cjs/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneSendButtonStyles.js +2 -1
- package/lib/cjs/components/loadingpane/common/defaultProps/defaultStyles/defaultLoadingPaneIconStyles.js +1 -1
- package/lib/cjs/components/postchatsurveypane/PostChatSurveyPane.js +2 -1
- package/lib/cjs/components/prechatsurveypane/PreChatSurveyPane.js +21 -8
- package/lib/cjs/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneButtonStyles.js +3 -1
- package/lib/cjs/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneMultilineTextInputStyles.js +10 -0
- package/lib/cjs/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneStyles.js +7 -1
- package/lib/cjs/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneTextInputStyles.js +10 -0
- package/lib/cjs/components/prechatsurveypane/interfaces/IPreChatSurveyPaneElementStyles.js +1 -0
- package/lib/cjs/components/proactivechatpane/ProactiveChatPane.js +36 -35
- package/lib/cjs/components/proactivechatpane/common/default/defaultProps/defaultProactiveChatPaneControlProps.js +5 -1
- package/lib/cjs/components/proactivechatpane/common/default/defaultStyles/defaultProactiveChatPaneCloseButtonStyles.js +2 -13
- package/lib/cjs/components/proactivechatpane/common/presetOne/presetOneProps/presetOneProactiveChatPaneControlProps.js +5 -1
- package/lib/cjs/components/proactivechatpane/common/presetThree/presetThreeProps/presetThreeProactiveChatPaneControlProps.js +5 -1
- package/lib/cjs/index.js +6 -0
- package/lib/cjs/services/BroadcastService.js +36 -8
- package/lib/esm/common/Constants.js +9 -4
- package/lib/esm/components/callingcontainer/subcomponents/CurrentCall/CurrentCall.js +1 -1
- package/lib/esm/components/callingcontainer/subcomponents/IncomingCall/IncomingCall.js +15 -2
- package/lib/esm/components/chatbutton/ChatButton.js +27 -23
- package/lib/esm/components/chatbutton/common/defaultProps/defaultChatButtonControlProps.js +4 -1
- package/lib/esm/components/common/commandbutton/CommandButton.js +30 -2
- package/lib/esm/components/{header → common}/subcomponents/CloseButton.js +4 -3
- package/lib/esm/components/confirmationpane/ConfirmationPane.js +8 -1
- package/lib/esm/components/confirmationpane/common/defaultStyles/defaultConfirmationPaneButtonGroupStyles.js +5 -1
- package/lib/esm/components/confirmationpane/common/defaultStyles/defaultConfirmationPaneGeneralStyles.js +7 -4
- package/lib/esm/components/footer/Footer.js +2 -2
- package/lib/esm/components/footer/common/defaultProps/defaultFooterControlProps.js +1 -0
- package/lib/esm/components/footer/common/defaultStyles/defaultFooterStyleProps.js +12 -6
- package/lib/esm/components/footer/subcomponents/AudioNotificationButton.js +30 -12
- package/lib/esm/components/header/Header.js +2 -2
- package/lib/esm/components/inputvalidationpane/InputValidationPane.js +29 -29
- package/lib/esm/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneCancelButtonStyles.js +2 -1
- package/lib/esm/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneInvalidInputErrorMessageStyles.js +1 -1
- package/lib/esm/components/inputvalidationpane/common/default/defaultStyles/defaultInputValidationPaneSendButtonStyles.js +2 -1
- package/lib/esm/components/loadingpane/common/defaultProps/defaultStyles/defaultLoadingPaneIconStyles.js +1 -1
- package/lib/esm/components/postchatsurveypane/PostChatSurveyPane.js +2 -1
- package/lib/esm/components/prechatsurveypane/PreChatSurveyPane.js +21 -8
- package/lib/esm/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneButtonStyles.js +3 -1
- package/lib/esm/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneMultilineTextInputStyles.js +3 -0
- package/lib/esm/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneStyles.js +5 -1
- package/lib/esm/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneTextInputStyles.js +3 -0
- package/lib/esm/components/prechatsurveypane/interfaces/IPreChatSurveyPaneElementStyles.js +1 -0
- package/lib/esm/components/proactivechatpane/ProactiveChatPane.js +33 -34
- package/lib/esm/components/proactivechatpane/common/default/defaultProps/defaultProactiveChatPaneControlProps.js +5 -1
- package/lib/esm/components/proactivechatpane/common/default/defaultStyles/defaultProactiveChatPaneCloseButtonStyles.js +2 -11
- package/lib/esm/components/proactivechatpane/common/presetOne/presetOneProps/presetOneProactiveChatPaneControlProps.js +5 -1
- package/lib/esm/components/proactivechatpane/common/presetThree/presetThreeProps/presetThreeProactiveChatPaneControlProps.js +5 -1
- package/lib/esm/index.js +1 -0
- package/lib/esm/services/BroadcastService.js +34 -8
- package/lib/types/common/Constants.d.ts +3 -2
- package/lib/types/components/chatbutton/interfaces/IChatButtonControlProps.d.ts +3 -0
- package/lib/types/components/common/interfaces/ICommandButtonControlProps.d.ts +1 -0
- package/lib/types/components/common/interfaces/ICommandButtonProps.d.ts +1 -0
- package/lib/types/components/{header → common}/subcomponents/CloseButton.d.ts +1 -1
- package/lib/types/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneMultilineTextInputStyles.d.ts +2 -0
- package/lib/types/components/prechatsurveypane/common/defaultProps/defaultStyles/defaultPreChatSurveyPaneTextInputStyles.d.ts +2 -0
- package/lib/types/components/prechatsurveypane/interfaces/IPreChatSurveyPaneButtonStyles.d.ts +2 -0
- package/lib/types/components/prechatsurveypane/interfaces/IPreChatSurveyPaneElementStyles.d.ts +5 -0
- package/lib/types/components/prechatsurveypane/interfaces/IPreChatSurveyPaneStyleProps.d.ts +5 -0
- package/lib/types/components/proactivechatpane/interfaces/IProactiveChatPaneControlProps.d.ts +2 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/services/BroadcastService.d.ts +1 -0
- package/package.json +2 -2
|
@@ -4,16 +4,21 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
4
4
|
|
|
5
5
|
/* CSS Constants */
|
|
6
6
|
export const AccessibilityBrightnessRatio = 1.2;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
export const HiddenTextStyles = {
|
|
8
|
+
position: "absolute",
|
|
9
|
+
height: "1px",
|
|
10
|
+
width: "1px",
|
|
11
|
+
overflow: "hidden",
|
|
12
|
+
clip: "rect(1px, 1px, 1px, 1px)",
|
|
13
|
+
whiteSpace: "nowrap"
|
|
14
|
+
};
|
|
10
15
|
export const KeyCodes = (_class = class KeyCodes {}, _defineProperty(_class, "ENTER", "Enter"), _defineProperty(_class, "ESCAPE", "Escape"), _defineProperty(_class, "SPACE", "Space"), _defineProperty(_class, "DeclineCallHotKey", "D"), _defineProperty(_class, "AcceptAudioCallHotKey", "S"), _defineProperty(_class, "AcceptVideoCallHotKey", "A"), _defineProperty(_class, "ToggleMicHotKey", "M"), _defineProperty(_class, "ToggleCameraHotKey", "O"), _class);
|
|
11
16
|
export const Regex = (_class2 = class Regex {}, _defineProperty(_class2, "EmailRegex", "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"), _defineProperty(_class2, "URLRegex", /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi), _class2);
|
|
12
17
|
export let ElementType;
|
|
13
18
|
|
|
14
19
|
(function (ElementType) {
|
|
15
20
|
ElementType["ChatButton"] = "ChatButton";
|
|
16
|
-
ElementType["
|
|
21
|
+
ElementType["CloseButton"] = "CloseButton";
|
|
17
22
|
ElementType["HeaderMinimizeButton"] = "HeaderMinimizeButton";
|
|
18
23
|
ElementType["FooterDownloadTranscriptButton"] = "FooterDownloadTranscriptButton";
|
|
19
24
|
ElementType["FooterEmailTranscriptButton"] = "FooterEmailTranscriptButton";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { IconButton, Stack } from "@fluentui/react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Label, Stack } from "@fluentui/react";
|
|
@@ -114,12 +114,25 @@ function IncomingCall(props) {
|
|
|
114
114
|
window.removeEventListener("keydown", ignoreDefault);
|
|
115
115
|
};
|
|
116
116
|
}, []);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
// Setting focus to decline call button when incoming call alert appears
|
|
119
|
+
if (declineCallButtonId) {
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
const declineCallButton = document.getElementById(declineCallButtonId);
|
|
122
|
+
|
|
123
|
+
if (declineCallButton) {
|
|
124
|
+
declineCallButton.focus();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}, []);
|
|
117
128
|
return /*#__PURE__*/React.createElement(Stack, {
|
|
118
129
|
horizontal: true,
|
|
119
130
|
className: (_props$styleProps10 = props.styleProps) === null || _props$styleProps10 === void 0 ? void 0 : _props$styleProps10.className,
|
|
120
131
|
horizontalAlign: "space-between",
|
|
121
132
|
styles: stackStyles,
|
|
122
|
-
dir: ((_props$controlProps18 = props.controlProps) === null || _props$controlProps18 === void 0 ? void 0 : _props$controlProps18.dir) ?? ((_defaultIncomingCallP27 = defaultIncomingCallProps.controlProps) === null || _defaultIncomingCallP27 === void 0 ? void 0 : _defaultIncomingCallP27.dir)
|
|
133
|
+
dir: ((_props$controlProps18 = props.controlProps) === null || _props$controlProps18 === void 0 ? void 0 : _props$controlProps18.dir) ?? ((_defaultIncomingCallP27 = defaultIncomingCallProps.controlProps) === null || _defaultIncomingCallP27 === void 0 ? void 0 : _defaultIncomingCallP27.dir),
|
|
134
|
+
role: "alert",
|
|
135
|
+
"aria-label": incomingCallTitleProps === null || incomingCallTitleProps === void 0 ? void 0 : incomingCallTitleProps.text
|
|
123
136
|
}, /*#__PURE__*/React.createElement(Stack, {
|
|
124
137
|
horizontal: true,
|
|
125
138
|
id: "incomingCallLeftGroup",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Icon, Label, Stack } from "@fluentui/react";
|
|
2
2
|
import React, { useCallback } from "react";
|
|
3
3
|
import { BroadcastService } from "../../services/BroadcastService";
|
|
4
|
-
import { ElementType, KeyCodes } from "../../common/Constants";
|
|
4
|
+
import { ElementType, HiddenTextStyles, KeyCodes } from "../../common/Constants";
|
|
5
5
|
import { decodeComponentString } from "../../common/decodeComponentString";
|
|
6
6
|
import { defaultChatButtonControlProps } from "./common/defaultProps/defaultChatButtonControlProps";
|
|
7
7
|
import { defaultChatButtonGeneralStyles } from "./common/defaultStyles/defaultChatButtonGeneralStyles";
|
|
@@ -20,13 +20,17 @@ function NotificationBubble(props, parentId) {
|
|
|
20
20
|
const unreadMessageCount = ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.unreadMessageCount) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.unreadMessageCount);
|
|
21
21
|
|
|
22
22
|
if (unreadMessageCount !== "0") {
|
|
23
|
-
var _props$componentOverr, _props$styleProps2, _props$styleProps2$cl;
|
|
23
|
+
var _props$componentOverr, _props$controlProps2, _props$controlProps3, _props$styleProps2, _props$styleProps2$cl, _props$controlProps4, _props$controlProps5;
|
|
24
24
|
|
|
25
|
-
return decodeComponentString((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.notificationBubble) || /*#__PURE__*/React.createElement(
|
|
25
|
+
return decodeComponentString((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.notificationBubble) || /*#__PURE__*/React.createElement(Stack, {
|
|
26
|
+
"aria-live": "polite",
|
|
26
27
|
styles: notificationBubbleStyles,
|
|
28
|
+
"aria-label": (_props$controlProps2 = props.controlProps) !== null && _props$controlProps2 !== void 0 && _props$controlProps2.ariaLabelUnreadMessageString ? (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.ariaLabelUnreadMessageString : defaultChatButtonControlProps.ariaLabelUnreadMessageString,
|
|
27
29
|
className: (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : (_props$styleProps2$cl = _props$styleProps2.classNames) === null || _props$styleProps2$cl === void 0 ? void 0 : _props$styleProps2$cl.notificationBubbleClassName,
|
|
28
30
|
id: parentId + "-notification-bubble"
|
|
29
|
-
}, unreadMessageCount
|
|
31
|
+
}, unreadMessageCount, /*#__PURE__*/React.createElement("span", {
|
|
32
|
+
style: HiddenTextStyles
|
|
33
|
+
}, (_props$controlProps4 = props.controlProps) !== null && _props$controlProps4 !== void 0 && _props$controlProps4.unreadMessageString ? (_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.unreadMessageString : defaultChatButtonControlProps.unreadMessageString));
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
return null;
|
|
@@ -46,7 +50,7 @@ function IconContainer(props, parentId) {
|
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
function TextContainer(props, parentId) {
|
|
49
|
-
var _props$styleProps5, _props$styleProps6, _props$styleProps7, _props$
|
|
53
|
+
var _props$styleProps5, _props$styleProps6, _props$styleProps7, _props$controlProps6, _props$controlProps7, _props$controlProps8, _props$controlProps9, _props$controlProps10, _props$controlProps11, _props$componentOverr3, _props$styleProps8, _props$styleProps8$cl, _props$componentOverr4, _props$styleProps9, _props$styleProps9$cl, _props$componentOverr5, _props$styleProps10, _props$styleProps10$c;
|
|
50
54
|
|
|
51
55
|
const textContainerStyles = {
|
|
52
56
|
root: Object.assign({}, defaultChatButtonTextContainerStyles, (_props$styleProps5 = props.styleProps) === null || _props$styleProps5 === void 0 ? void 0 : _props$styleProps5.textContainerStyleProps)
|
|
@@ -57,12 +61,12 @@ function TextContainer(props, parentId) {
|
|
|
57
61
|
const subtitleStyles = {
|
|
58
62
|
root: Object.assign({}, defaultChatButtonSubTitleStyles, (_props$styleProps7 = props.styleProps) === null || _props$styleProps7 === void 0 ? void 0 : _props$styleProps7.subtitleStyleProps)
|
|
59
63
|
};
|
|
60
|
-
const hideChatTitle = ((_props$
|
|
61
|
-
const hideChatSubtitle = ((_props$
|
|
62
|
-
const titleDir = ((_props$
|
|
63
|
-
const titleText = ((_props$
|
|
64
|
-
const subtitleDir = ((_props$
|
|
65
|
-
const subtitleText = ((_props$
|
|
64
|
+
const hideChatTitle = ((_props$controlProps6 = props.controlProps) === null || _props$controlProps6 === void 0 ? void 0 : _props$controlProps6.hideChatTitle) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideChatTitle);
|
|
65
|
+
const hideChatSubtitle = ((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.hideChatSubtitle) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideChatSubtitle);
|
|
66
|
+
const titleDir = ((_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.dir) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.dir);
|
|
67
|
+
const titleText = ((_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.titleText) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.titleText);
|
|
68
|
+
const subtitleDir = ((_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.dir) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.dir);
|
|
69
|
+
const subtitleText = ((_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.subtitleText) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.subtitleText);
|
|
66
70
|
return decodeComponentString((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.textContainer) || /*#__PURE__*/React.createElement(Stack, {
|
|
67
71
|
styles: textContainerStyles,
|
|
68
72
|
className: (_props$styleProps8 = props.styleProps) === null || _props$styleProps8 === void 0 ? void 0 : (_props$styleProps8$cl = _props$styleProps8.classNames) === null || _props$styleProps8$cl === void 0 ? void 0 : _props$styleProps8$cl.textContainerClassName,
|
|
@@ -83,23 +87,23 @@ function TextContainer(props, parentId) {
|
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
function ChatButton(props) {
|
|
86
|
-
var _props$
|
|
90
|
+
var _props$controlProps12, _props$controlProps13, _props$controlProps14, _props$controlProps15, _props$controlProps16, _props$controlProps17, _props$controlProps18, _props$controlProps19, _props$styleProps11;
|
|
87
91
|
|
|
88
|
-
const elementId = ((_props$
|
|
89
|
-
const defaultAriaLabel = ((_props$
|
|
90
|
-
const defaultRole = ((_props$
|
|
91
|
-
const containersDir = ((_props$
|
|
92
|
-
const hideChatButton = ((_props$
|
|
93
|
-
const hideChatIcon = ((_props$
|
|
94
|
-
const hideChatTextContainer = ((_props$
|
|
95
|
-
const hideNotificationBubble = ((_props$
|
|
92
|
+
const elementId = ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.id) ?? "lcw-components-chat-button";
|
|
93
|
+
const defaultAriaLabel = ((_props$controlProps13 = props.controlProps) === null || _props$controlProps13 === void 0 ? void 0 : _props$controlProps13.ariaLabel) ?? "live chat button";
|
|
94
|
+
const defaultRole = ((_props$controlProps14 = props.controlProps) === null || _props$controlProps14 === void 0 ? void 0 : _props$controlProps14.role) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.role);
|
|
95
|
+
const containersDir = ((_props$controlProps15 = props.controlProps) === null || _props$controlProps15 === void 0 ? void 0 : _props$controlProps15.dir) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.dir);
|
|
96
|
+
const hideChatButton = ((_props$controlProps16 = props.controlProps) === null || _props$controlProps16 === void 0 ? void 0 : _props$controlProps16.hideChatButton) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideChatButton);
|
|
97
|
+
const hideChatIcon = ((_props$controlProps17 = props.controlProps) === null || _props$controlProps17 === void 0 ? void 0 : _props$controlProps17.hideChatIcon) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideChatIcon);
|
|
98
|
+
const hideChatTextContainer = ((_props$controlProps18 = props.controlProps) === null || _props$controlProps18 === void 0 ? void 0 : _props$controlProps18.hideChatTextContainer) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideChatTextContainer);
|
|
99
|
+
const hideNotificationBubble = ((_props$controlProps19 = props.controlProps) === null || _props$controlProps19 === void 0 ? void 0 : _props$controlProps19.hideNotificationBubble) ?? (defaultChatButtonControlProps === null || defaultChatButtonControlProps === void 0 ? void 0 : defaultChatButtonControlProps.hideNotificationBubble);
|
|
96
100
|
const chatButtonGroupStyles = {
|
|
97
101
|
root: Object.assign({}, defaultChatButtonGeneralStyles, (_props$styleProps11 = props.styleProps) === null || _props$styleProps11 === void 0 ? void 0 : _props$styleProps11.generalStyleProps)
|
|
98
102
|
};
|
|
99
103
|
const handleInitiateChatClick = useCallback(() => {
|
|
100
|
-
var _props$
|
|
104
|
+
var _props$controlProps20;
|
|
101
105
|
|
|
102
|
-
if ((_props$
|
|
106
|
+
if ((_props$controlProps20 = props.controlProps) !== null && _props$controlProps20 !== void 0 && _props$controlProps20.onClick) {
|
|
103
107
|
const customEvent = {
|
|
104
108
|
elementType: ElementType.ChatButton,
|
|
105
109
|
elementId: elementId,
|
|
@@ -126,7 +130,7 @@ function ChatButton(props) {
|
|
|
126
130
|
onClick: handleInitiateChatClick,
|
|
127
131
|
onKeyDown: handleInputKeyDown,
|
|
128
132
|
"aria-label": defaultAriaLabel
|
|
129
|
-
}, !hideChatIcon && IconContainer(props, elementId), !
|
|
133
|
+
}, !hideChatIcon && IconContainer(props, elementId), !hideNotificationBubble && NotificationBubble(props, elementId), !hideChatTextContainer && TextContainer(props, elementId)));
|
|
130
134
|
}
|
|
131
135
|
|
|
132
136
|
export default ChatButton;
|
|
@@ -14,5 +14,8 @@ export const defaultChatButtonControlProps = {
|
|
|
14
14
|
hideChatTextContainer: false,
|
|
15
15
|
hideChatSubtitle: false,
|
|
16
16
|
hideChatTitle: false,
|
|
17
|
-
hideNotificationBubble: true
|
|
17
|
+
hideNotificationBubble: true,
|
|
18
|
+
unreadMessageString: "new messages",
|
|
19
|
+
largeUnreadMessageString: "99+",
|
|
20
|
+
ariaLabelUnreadMessageString: "you have new messages"
|
|
18
21
|
};
|
|
@@ -4,14 +4,42 @@ import { BroadcastService } from "../../../services/BroadcastService";
|
|
|
4
4
|
import { ElementType } from "../../../common/Constants";
|
|
5
5
|
|
|
6
6
|
function CommandButton(props) {
|
|
7
|
+
var _props$hoverStyles, _props$hoverStyles2, _props$focusStyles;
|
|
8
|
+
|
|
7
9
|
//imageIconProps > iconName
|
|
8
10
|
const iconProp = props.imageIconProps ? {
|
|
9
11
|
imageProps: props.imageIconProps
|
|
10
12
|
} : {
|
|
11
13
|
iconName: props.iconName
|
|
12
14
|
};
|
|
15
|
+
let iconStyles = {};
|
|
16
|
+
|
|
17
|
+
if (props.type === "icon") {
|
|
18
|
+
var _props$styles;
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
iconStyles = { ...(props === null || props === void 0 ? void 0 : (_props$styles = props.styles) === null || _props$styles === void 0 ? void 0 : _props$styles.icon)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
13
25
|
const buttonStyles = {
|
|
14
|
-
|
|
26
|
+
icon: { ...iconStyles
|
|
27
|
+
},
|
|
28
|
+
root: {
|
|
29
|
+
selectors: {
|
|
30
|
+
":hover .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
...(props === null || props === void 0 ? void 0 : (_props$hoverStyles = props.hoverStyles) === null || _props$hoverStyles === void 0 ? void 0 : _props$hoverStyles.icon)
|
|
32
|
+
},
|
|
33
|
+
":active .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
...(props === null || props === void 0 ? void 0 : (_props$hoverStyles2 = props.hoverStyles) === null || _props$hoverStyles2 === void 0 ? void 0 : _props$hoverStyles2.icon)
|
|
35
|
+
},
|
|
36
|
+
":focus .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
...(props === null || props === void 0 ? void 0 : (_props$focusStyles = props.focusStyles) === null || _props$focusStyles === void 0 ? void 0 : _props$focusStyles.icon)
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
...(props === null || props === void 0 ? void 0 : props.styles)
|
|
42
|
+
},
|
|
15
43
|
rootHovered: props.hoverStyles,
|
|
16
44
|
rootFocused: props.focusStyles,
|
|
17
45
|
rootPressed: props.hoverStyles
|
|
@@ -38,7 +66,7 @@ function CommandButton(props) {
|
|
|
38
66
|
}), props.type === "icon" && /*#__PURE__*/React.createElement(IconButton, {
|
|
39
67
|
id: props.id,
|
|
40
68
|
iconProps: iconProp,
|
|
41
|
-
title: props.ariaLabel,
|
|
69
|
+
title: props.hideButtonTitle ? undefined : props.ariaLabel,
|
|
42
70
|
ariaLabel: props.ariaLabel,
|
|
43
71
|
disabled: props.disabled,
|
|
44
72
|
styles: buttonStyles,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ElementType } from "../../../common/Constants";
|
|
3
|
-
import CommandButton from "
|
|
3
|
+
import CommandButton from "../commandbutton/CommandButton";
|
|
4
4
|
|
|
5
5
|
function CloseButton(props) {
|
|
6
6
|
const {
|
|
7
7
|
type
|
|
8
8
|
} = props;
|
|
9
9
|
const customEvent = {
|
|
10
|
-
elementType: ElementType.
|
|
10
|
+
elementType: ElementType.CloseButton,
|
|
11
11
|
elementId: props === null || props === void 0 ? void 0 : props.id,
|
|
12
12
|
eventName: "OnClick"
|
|
13
13
|
};
|
|
@@ -23,7 +23,8 @@ function CloseButton(props) {
|
|
|
23
23
|
onClick: props.onClick,
|
|
24
24
|
ariaLabel: props.ariaLabel ?? "Close",
|
|
25
25
|
className: props.className,
|
|
26
|
-
customEvent: customEvent
|
|
26
|
+
customEvent: customEvent,
|
|
27
|
+
hideButtonTitle: props.hideButtonTitle
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -2,7 +2,7 @@ import { DefaultButton, PrimaryButton } from "@fluentui/react/lib/Button";
|
|
|
2
2
|
import { Label, Stack } from "@fluentui/react";
|
|
3
3
|
import React, { useCallback } from "react";
|
|
4
4
|
import { BroadcastService } from "../../services/BroadcastService";
|
|
5
|
-
import { ElementType } from "../../common/Constants";
|
|
5
|
+
import { ElementType, KeyCodes } from "../../common/Constants";
|
|
6
6
|
import { decodeComponentString } from "../../common/decodeComponentString";
|
|
7
7
|
import { defaultConfirmationPaneButtonGroupStyles } from "./common/defaultStyles/defaultConfirmationPaneButtonGroupStyles";
|
|
8
8
|
import { defaultConfirmationPaneCancelButtonHoveredStyles } from "./common/defaultStyles/defaultConfirmationPaneCancelButtonHoveredStyles";
|
|
@@ -49,6 +49,12 @@ function ConfirmationPane(props) {
|
|
|
49
49
|
BroadcastService.postMessage(customEvent);
|
|
50
50
|
(_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.onCancel();
|
|
51
51
|
}
|
|
52
|
+
}, []); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
|
|
54
|
+
const handleEscKeyDown = useCallback(e => {
|
|
55
|
+
if (e.code === KeyCodes.ESCAPE) {
|
|
56
|
+
handleCancelClick();
|
|
57
|
+
}
|
|
52
58
|
}, []);
|
|
53
59
|
const containerStyles = {
|
|
54
60
|
root: Object.assign({}, defaultConfirmationPaneGeneralStyles, (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps)
|
|
@@ -76,6 +82,7 @@ function ConfirmationPane(props) {
|
|
|
76
82
|
};
|
|
77
83
|
return /*#__PURE__*/React.createElement(React.Fragment, null, !((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.hideConfirmationPane) && /*#__PURE__*/React.createElement(Stack, {
|
|
78
84
|
id: elementId,
|
|
85
|
+
onKeyDown: handleEscKeyDown,
|
|
79
86
|
tabIndex: -1,
|
|
80
87
|
dir: ((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.dir) || defaultConfirmationPaneControlProps.dir,
|
|
81
88
|
styles: containerStyles,
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export const defaultConfirmationPaneButtonGroupStyles = {
|
|
2
2
|
display: "flex",
|
|
3
|
+
width: "auto",
|
|
4
|
+
height: "auto",
|
|
5
|
+
boxSizing: "border-box",
|
|
3
6
|
flexFlow: "row",
|
|
4
7
|
justifyContent: "center",
|
|
5
8
|
alignItems: "center",
|
|
6
|
-
gap: "10px"
|
|
9
|
+
gap: "10px",
|
|
10
|
+
marginBottom: "10px"
|
|
7
11
|
};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
export const defaultConfirmationPaneGeneralStyles = {
|
|
2
|
+
display: "flex",
|
|
3
|
+
minHeight: "160px",
|
|
4
|
+
maxHeight: "300px",
|
|
5
|
+
boxSizing: "border-box",
|
|
2
6
|
backgroundColor: "white",
|
|
3
7
|
borderRadius: "2px",
|
|
4
8
|
color: "black",
|
|
5
9
|
fontFamily: "Segoe UI, Arial, sans-serif",
|
|
6
10
|
fontSize: "14px",
|
|
7
|
-
height: "160px",
|
|
8
11
|
padding: "10px 20px",
|
|
9
|
-
width: "262px",
|
|
10
12
|
position: "absolute",
|
|
11
13
|
justifyContent: "center",
|
|
12
14
|
alignItems: "center",
|
|
13
|
-
display: "flex",
|
|
14
15
|
flexFlow: "column",
|
|
15
|
-
zIndex: "9999"
|
|
16
|
+
zIndex: "9999",
|
|
17
|
+
left: "26px",
|
|
18
|
+
right: "26px"
|
|
16
19
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Stack, initializeIcons } from "@fluentui/react";
|
|
@@ -66,7 +66,7 @@ function Footer(props) {
|
|
|
66
66
|
verticalAlign: "start"
|
|
67
67
|
}, /*#__PURE__*/React.createElement(Stack, {
|
|
68
68
|
horizontal: true,
|
|
69
|
-
verticalAlign: "
|
|
69
|
+
verticalAlign: "center"
|
|
70
70
|
}, processCustomComponents((_props$controlProps14 = props.controlProps) === null || _props$controlProps14 === void 0 ? void 0 : (_props$controlProps15 = _props$controlProps14.rightGroup) === null || _props$controlProps15 === void 0 ? void 0 : _props$controlProps15.children), !((_props$controlProps16 = props.controlProps) !== null && _props$controlProps16 !== void 0 && _props$controlProps16.hideAudioNotificationButton) && (decodeComponentString((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.AudioNotificationButton) || /*#__PURE__*/React.createElement(AudioNotificationButton, _extends({}, audioNotificationButtonProps, {
|
|
71
71
|
onClick: (_props$controlProps17 = props.controlProps) === null || _props$controlProps17 === void 0 ? void 0 : _props$controlProps17.onAudioNotificationClick,
|
|
72
72
|
styles: audioNotificationButtonStyles,
|
|
@@ -8,8 +8,10 @@ export const defaultFooterStyleProps = {
|
|
|
8
8
|
padding: "0 10px 5px 10px"
|
|
9
9
|
},
|
|
10
10
|
downloadTranscriptButtonStyleProps: {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
icon: {
|
|
12
|
+
color: "blue",
|
|
13
|
+
fontSize: 16
|
|
14
|
+
},
|
|
13
15
|
height: "25px",
|
|
14
16
|
lineHeight: "25px",
|
|
15
17
|
width: "25px"
|
|
@@ -19,8 +21,10 @@ export const defaultFooterStyleProps = {
|
|
|
19
21
|
backgroundColor: "#C8C8C8"
|
|
20
22
|
},
|
|
21
23
|
emailTranscriptButtonStyleProps: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
icon: {
|
|
25
|
+
color: "blue",
|
|
26
|
+
fontSize: 16
|
|
27
|
+
},
|
|
24
28
|
height: "25px",
|
|
25
29
|
lineHeight: "25px",
|
|
26
30
|
width: "25px"
|
|
@@ -30,8 +34,10 @@ export const defaultFooterStyleProps = {
|
|
|
30
34
|
backgroundColor: "#C8C8C8"
|
|
31
35
|
},
|
|
32
36
|
audioNotificationButtonStyleProps: {
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
icon: {
|
|
38
|
+
color: "blue",
|
|
39
|
+
fontSize: 16
|
|
40
|
+
},
|
|
35
41
|
height: "25px",
|
|
36
42
|
lineHeight: "25px",
|
|
37
43
|
width: "25px"
|
|
@@ -8,28 +8,45 @@ function AudioNotificationButton(props) {
|
|
|
8
8
|
disabled
|
|
9
9
|
} = props;
|
|
10
10
|
const [muted, setMuted] = useState(props.isAudioMuted);
|
|
11
|
+
let iconStyles = {};
|
|
12
|
+
|
|
13
|
+
if (props.type === "icon") {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
iconStyles = { ...(props === null || props === void 0 ? void 0 : props.styles).icon
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
11
19
|
const iconButtonStyles = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
icon: iconStyles,
|
|
21
|
+
root: {
|
|
22
|
+
selectors: {
|
|
23
|
+
":hover .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
...(props === null || props === void 0 ? void 0 : props.hoverStyles).icon
|
|
25
|
+
},
|
|
26
|
+
":active .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
...(props === null || props === void 0 ? void 0 : props.hoverStyles).icon
|
|
28
|
+
},
|
|
29
|
+
":focus .ms-Button-icon": { // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
...(props === null || props === void 0 ? void 0 : props.focusStyles).icon
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
...(props === null || props === void 0 ? void 0 : props.styles)
|
|
35
|
+
},
|
|
36
|
+
rootHovered: props.hoverStyles,
|
|
37
|
+
rootFocused: props.focusStyles,
|
|
38
|
+
rootPressed: props.hoverStyles
|
|
16
39
|
}; //imageIconProps > iconName
|
|
17
40
|
|
|
18
41
|
const volume0Icon = props.imageToggleIconProps ? {
|
|
19
42
|
imageProps: props === null || props === void 0 ? void 0 : props.imageToggleIconProps
|
|
20
43
|
} : {
|
|
21
|
-
iconName: (props === null || props === void 0 ? void 0 : props.toggleIconName) ?? "Volume0"
|
|
22
|
-
styles: {
|
|
23
|
-
root: props.styles
|
|
24
|
-
}
|
|
44
|
+
iconName: (props === null || props === void 0 ? void 0 : props.toggleIconName) ?? "Volume0"
|
|
25
45
|
};
|
|
26
46
|
const volume3Icon = props.imageIconProps ? {
|
|
27
47
|
imageProps: props === null || props === void 0 ? void 0 : props.imageIconProps
|
|
28
48
|
} : {
|
|
29
|
-
iconName: (props === null || props === void 0 ? void 0 : props.iconName) ?? "Volume3"
|
|
30
|
-
styles: {
|
|
31
|
-
root: props.styles
|
|
32
|
-
}
|
|
49
|
+
iconName: (props === null || props === void 0 ? void 0 : props.iconName) ?? "Volume3"
|
|
33
50
|
};
|
|
34
51
|
const handleOnClick = useCallback(() => {
|
|
35
52
|
setMuted(!muted);
|
|
@@ -55,6 +72,7 @@ function AudioNotificationButton(props) {
|
|
|
55
72
|
disabled: disabled,
|
|
56
73
|
styles: iconButtonStyles,
|
|
57
74
|
className: props.className,
|
|
75
|
+
"aria-label": muted ? props.toggleAriaLabel ?? "Turn sound on" : props.ariaLabel ?? "Turn sound off",
|
|
58
76
|
title: muted ? props.toggleAriaLabel ?? "Turn sound on" : props.ariaLabel ?? "Turn sound off"
|
|
59
77
|
});
|
|
60
78
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Image, Label, Stack, initializeIcons } from "@fluentui/react";
|
|
5
|
-
import CloseButton from "
|
|
5
|
+
import CloseButton from "../common/subcomponents/CloseButton";
|
|
6
6
|
import MinimizeButton from "./subcomponents/MinimizeButton";
|
|
7
7
|
import { decodeComponentString } from "../../common/decodeComponentString";
|
|
8
8
|
import { defaultHeaderProps } from "./common/defaultProps/defaultHeaderProps";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DefaultButton, PrimaryButton } from "@fluentui/react/lib/Button";
|
|
2
2
|
import { Label, Stack, TextField } from "@fluentui/react";
|
|
3
|
-
import React, { useEffect, useState } from "react";
|
|
3
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
4
4
|
import { BroadcastService } from "../../services/BroadcastService";
|
|
5
5
|
import { KeyCodes } from "../../common/Constants";
|
|
6
6
|
import { decodeComponentString } from "../../common/decodeComponentString";
|
|
@@ -26,23 +26,28 @@ function InputValidationPane(props) {
|
|
|
26
26
|
const [isInitialRendering, setIsInitialRendering] = useState(true);
|
|
27
27
|
const [isInvalidInput, setIsInvalidInput] = useState(false);
|
|
28
28
|
const [isSendButtonEnabled, setIsSendButtonEnabled] = useState(false);
|
|
29
|
-
|
|
30
|
-
const isValidInput = () => {
|
|
29
|
+
const isValidInput = useCallback(() => {
|
|
31
30
|
var _props$controlProps2, _props$controlProps3;
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
if (!((_props$controlProps2 = props.controlProps) !== null && _props$controlProps2 !== void 0 && _props$controlProps2.checkInput)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!inputValue) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
35
39
|
|
|
40
|
+
return (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.checkInput(inputValue);
|
|
41
|
+
}, [inputValue]); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
42
|
|
|
37
|
-
const handleInputChange = e => {
|
|
43
|
+
const handleInputChange = useCallback(e => {
|
|
38
44
|
var _props$controlProps4, _props$controlProps5;
|
|
39
45
|
|
|
40
46
|
setInputValue(e.target.value);
|
|
41
47
|
e.target.value ? setIsSendButtonEnabled(((_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.enableSendButton) || e.target.value !== "") : setIsSendButtonEnabled(((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.enableSendButton) ?? false);
|
|
42
48
|
setIsInvalidInput(false);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const send = (controlId, suffix) => {
|
|
49
|
+
}, []);
|
|
50
|
+
const send = useCallback((controlId, suffix) => {
|
|
46
51
|
var _props$controlProps6;
|
|
47
52
|
|
|
48
53
|
if ((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.onSend) {
|
|
@@ -59,20 +64,17 @@ function InputValidationPane(props) {
|
|
|
59
64
|
setIsInvalidInput(true);
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
}, [inputValue]); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
const handleInputKeyDown = e => {
|
|
69
|
+
const handleInputKeyUp = useCallback(e => {
|
|
66
70
|
if (e.code === KeyCodes.ENTER) {
|
|
67
|
-
send(elementId + "-textField", "
|
|
71
|
+
send(elementId + "-textField", "KeyUp");
|
|
68
72
|
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
const handleSendClick = () => {
|
|
73
|
+
}, [inputValue]);
|
|
74
|
+
const handleSendClick = useCallback(() => {
|
|
72
75
|
send(elementId + "-sendbutton", "Click");
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const cancel = (controlId, suffix) => {
|
|
76
|
+
}, [inputValue]);
|
|
77
|
+
const cancel = useCallback((controlId, suffix) => {
|
|
76
78
|
var _props$controlProps8;
|
|
77
79
|
|
|
78
80
|
if ((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.onCancel) {
|
|
@@ -88,19 +90,16 @@ function InputValidationPane(props) {
|
|
|
88
90
|
BroadcastService.postMessage(customEvent);
|
|
89
91
|
(_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.onCancel();
|
|
90
92
|
}
|
|
91
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
-
|
|
93
|
+
}, []); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
94
|
|
|
94
|
-
const handleEscKeyDown = e => {
|
|
95
|
+
const handleEscKeyDown = useCallback(e => {
|
|
95
96
|
if (e.code === KeyCodes.ESCAPE) {
|
|
96
97
|
cancel(elementId, "KeyDown");
|
|
97
98
|
}
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
const handleCancelClick = () => {
|
|
99
|
+
}, []);
|
|
100
|
+
const handleCancelClick = useCallback(() => {
|
|
101
101
|
cancel(elementId + "-cancelbutton", "Click");
|
|
102
|
-
};
|
|
103
|
-
|
|
102
|
+
}, []);
|
|
104
103
|
useEffect(() => {
|
|
105
104
|
var _props$controlProps11, _props$controlProps12, _props$controlProps13;
|
|
106
105
|
|
|
@@ -127,7 +126,8 @@ function InputValidationPane(props) {
|
|
|
127
126
|
const redBorderStyles = {
|
|
128
127
|
borderColor: ((_props$controlProps14 = props.controlProps) === null || _props$controlProps14 === void 0 ? void 0 : _props$controlProps14.inputWithErrorMessageBorderColor) ?? defaultInputValidationPaneControlProps.inputWithErrorMessageBorderColor,
|
|
129
128
|
borderRadius: "1px",
|
|
130
|
-
borderStyle: "solid"
|
|
129
|
+
borderStyle: "solid",
|
|
130
|
+
borderWidth: "1px"
|
|
131
131
|
};
|
|
132
132
|
const inputStyles = {
|
|
133
133
|
root: Object.assign({}, defaultInputValidationPaneInputStyles, (_props$styleProps5 = props.styleProps) === null || _props$styleProps5 === void 0 ? void 0 : _props$styleProps5.inputStyleProps),
|
|
@@ -211,7 +211,7 @@ function InputValidationPane(props) {
|
|
|
211
211
|
ariaLabel: ((_props$controlProps24 = props.controlProps) === null || _props$controlProps24 === void 0 ? void 0 : _props$controlProps24.inputAriaLabel) || defaultInputValidationPaneControlProps.inputAriaLabel,
|
|
212
212
|
borderless: isInvalidInput,
|
|
213
213
|
onChange: handleInputChange,
|
|
214
|
-
|
|
214
|
+
onKeyUp: handleInputKeyUp
|
|
215
215
|
})), isInvalidInput && (decodeComponentString((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.invalidInputErrorMessage) || /*#__PURE__*/React.createElement(Stack, {
|
|
216
216
|
className: (_props$styleProps22 = props.styleProps) === null || _props$styleProps22 === void 0 ? void 0 : (_props$styleProps22$c = _props$styleProps22.classNames) === null || _props$styleProps22$c === void 0 ? void 0 : _props$styleProps22$c.invalidInputErrorMessageClassName,
|
|
217
217
|
styles: invalidInputErrorMessageStyles,
|