ringcentral-widgets
Version:
RingCentral Integration Widget Library
308 lines (282 loc) • 11.2 kB
JavaScript
"use strict";
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
require("core-js/modules/es6.function.name");
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _is_type = require("ringcentral-integration/lib/di/utils/is_type");
var _CallInfo = _interopRequireDefault(require("./CallInfo"));
var _MergeInfo = _interopRequireDefault(require("./MergeInfo"));
var _ConferenceInfo = _interopRequireDefault(require("./ConferenceInfo"));
var _BackButton = _interopRequireDefault(require("../BackButton"));
var _BackHeader = _interopRequireDefault(require("../BackHeader"));
var _Panel = _interopRequireDefault(require("../Panel"));
var _DurationCounter = _interopRequireDefault(require("../DurationCounter"));
var _ActiveCallPad = _interopRequireDefault(require("../ActiveCallPad"));
var _callCtrlLayouts = _interopRequireDefault(require("../../enums/callCtrlLayouts"));
var _styles = _interopRequireDefault(require("./styles.scss"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var ActiveCallPanel = function ActiveCallPanel(_ref) {
var showBackButton = _ref.showBackButton,
backButtonLabel = _ref.backButtonLabel,
onBackButtonClick = _ref.onBackButtonClick,
currentLocale = _ref.currentLocale,
nameMatches = _ref.nameMatches,
fallBackName = _ref.fallBackName,
phoneNumber = _ref.phoneNumber,
formatPhone = _ref.formatPhone,
startTime = _ref.startTime,
startTimeOffset = _ref.startTimeOffset,
areaCode = _ref.areaCode,
countryCode = _ref.countryCode,
selectedMatcherIndex = _ref.selectedMatcherIndex,
onSelectMatcherName = _ref.onSelectMatcherName,
avatarUrl = _ref.avatarUrl,
isOnMute = _ref.isOnMute,
isOnHold = _ref.isOnHold,
recordStatus = _ref.recordStatus,
onMute = _ref.onMute,
onUnmute = _ref.onUnmute,
onHold = _ref.onHold,
onUnhold = _ref.onUnhold,
onRecord = _ref.onRecord,
onStopRecord = _ref.onStopRecord,
onShowKeyPad = _ref.onShowKeyPad,
onHangup = _ref.onHangup,
onPark = _ref.onPark,
onAdd = _ref.onAdd,
onMerge = _ref.onMerge,
onFlip = _ref.onFlip,
onTransfer = _ref.onTransfer,
gotoParticipantsCtrl = _ref.gotoParticipantsCtrl,
children = _ref.children,
showContactDisplayPlaceholder = _ref.showContactDisplayPlaceholder,
brand = _ref.brand,
disableFlip = _ref.disableFlip,
showPark = _ref.showPark,
sourceIcons = _ref.sourceIcons,
phoneTypeRenderer = _ref.phoneTypeRenderer,
phoneSourceNameRenderer = _ref.phoneSourceNameRenderer,
layout = _ref.layout,
direction = _ref.direction,
addDisabled = _ref.addDisabled,
mergeDisabled = _ref.mergeDisabled,
conferenceCallEquipped = _ref.conferenceCallEquipped,
hasConferenceCall = _ref.hasConferenceCall,
conferenceCallParties = _ref.conferenceCallParties,
lastCallInfo = _ref.lastCallInfo,
getAvatarUrl = _ref.getAvatarUrl,
actions = _ref.actions,
controlBusy = _ref.controlBusy,
callQueueName = _ref.callQueueName,
isOnTransfer = _ref.isOnTransfer,
isOnWaitingTransfer = _ref.isOnWaitingTransfer,
onCompleteTransfer = _ref.onCompleteTransfer;
var backHeader = showBackButton ? /*#__PURE__*/_react["default"].createElement(_BackHeader["default"], {
onBackClick: onBackButtonClick,
backButton: /*#__PURE__*/_react["default"].createElement(_BackButton["default"], {
label: backButtonLabel
})
}) : null;
var timeCounter = /*#__PURE__*/_react["default"].createElement("div", {
className: _styles["default"].timeCounter
}, startTime ? /*#__PURE__*/_react["default"].createElement(_DurationCounter["default"], {
startTime: startTime,
offset: startTimeOffset
}) : /*#__PURE__*/_react["default"].createElement("span", {
"aria-hidden": "true"
}, "\xA0"));
var currentCallTitle = (0, _is_type.isArray)(nameMatches) && nameMatches.length ? nameMatches[0].name : formatPhone(phoneNumber);
var callInfo;
switch (layout) {
case _callCtrlLayouts["default"].completeTransferCtrl:
case _callCtrlLayouts["default"].mergeCtrl:
callInfo = /*#__PURE__*/_react["default"].createElement(_MergeInfo["default"], {
currentLocale: currentLocale,
timeCounter: timeCounter,
lastCallInfo: lastCallInfo,
currentCallAvatarUrl: avatarUrl,
currentCallTitle: currentCallTitle || fallBackName,
formatPhone: formatPhone,
getAvatarUrl: getAvatarUrl
});
break;
case _callCtrlLayouts["default"].conferenceCtrl:
callInfo = /*#__PURE__*/_react["default"].createElement(_ConferenceInfo["default"], {
currentLocale: currentLocale,
partyProfiles: conferenceCallParties,
onClick: gotoParticipantsCtrl
});
break;
default:
callInfo = /*#__PURE__*/_react["default"].createElement(_CallInfo["default"], {
currentLocale: currentLocale,
nameMatches: nameMatches,
fallBackName: fallBackName,
phoneNumber: phoneNumber,
formatPhone: formatPhone,
startTime: startTime,
areaCode: areaCode,
countryCode: countryCode,
selectedMatcherIndex: selectedMatcherIndex,
onSelectMatcherName: onSelectMatcherName,
avatarUrl: avatarUrl,
brand: brand,
showContactDisplayPlaceholder: showContactDisplayPlaceholder,
sourceIcons: sourceIcons,
phoneTypeRenderer: phoneTypeRenderer,
phoneSourceNameRenderer: phoneSourceNameRenderer,
callQueueName: callQueueName
});
break;
}
var showTimeCounter = layout !== _callCtrlLayouts["default"].mergeCtrl && layout !== _callCtrlLayouts["default"].completeTransferCtrl;
return /*#__PURE__*/_react["default"].createElement("div", {
"data-sign": "activeCallPanel",
className: _styles["default"].root
}, backHeader, /*#__PURE__*/_react["default"].createElement(_Panel["default"], {
className: _styles["default"].panel
}, showTimeCounter ? timeCounter : null, callInfo, /*#__PURE__*/_react["default"].createElement(_ActiveCallPad["default"], {
className: _styles["default"].callPad,
currentLocale: currentLocale,
isOnMute: isOnMute,
isOnHold: isOnHold,
recordStatus: recordStatus,
onMute: onMute,
onUnmute: onUnmute,
onHold: onHold,
onUnhold: onUnhold,
onRecord: onRecord,
onStopRecord: onStopRecord,
onShowKeyPad: onShowKeyPad,
onHangup: onHangup,
onAdd: onAdd,
onMerge: onMerge,
onTransfer: onTransfer,
onFlip: onFlip,
disableFlip: disableFlip,
onPark: onPark,
showPark: showPark,
layout: layout,
direction: direction,
addDisabled: addDisabled,
mergeDisabled: mergeDisabled,
conferenceCallEquipped: conferenceCallEquipped,
hasConferenceCall: hasConferenceCall,
actions: actions,
controlBusy: controlBusy,
isOnTransfer: isOnTransfer,
isOnWaitingTransfer: isOnWaitingTransfer,
onCompleteTransfer: onCompleteTransfer
}), children));
};
ActiveCallPanel.propTypes = {
phoneNumber: _propTypes["default"].string,
nameMatches: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired,
fallBackName: _propTypes["default"].string.isRequired,
currentLocale: _propTypes["default"].string.isRequired,
startTime: _propTypes["default"].number,
startTimeOffset: _propTypes["default"].number,
isOnMute: _propTypes["default"].bool,
isOnHold: _propTypes["default"].bool,
recordStatus: _propTypes["default"].string.isRequired,
onMute: _propTypes["default"].func.isRequired,
onUnmute: _propTypes["default"].func.isRequired,
onHold: _propTypes["default"].func.isRequired,
onUnhold: _propTypes["default"].func.isRequired,
onRecord: _propTypes["default"].func.isRequired,
onStopRecord: _propTypes["default"].func.isRequired,
onAdd: _propTypes["default"].func,
onMerge: _propTypes["default"].func,
onHangup: _propTypes["default"].func.isRequired,
showBackButton: _propTypes["default"].bool,
backButtonLabel: _propTypes["default"].string,
onBackButtonClick: _propTypes["default"].func,
onShowKeyPad: _propTypes["default"].func.isRequired,
formatPhone: _propTypes["default"].func.isRequired,
children: _propTypes["default"].node,
areaCode: _propTypes["default"].string.isRequired,
countryCode: _propTypes["default"].string.isRequired,
selectedMatcherIndex: _propTypes["default"].number.isRequired,
onSelectMatcherName: _propTypes["default"].func.isRequired,
avatarUrl: _propTypes["default"].string,
brand: _propTypes["default"].string,
showContactDisplayPlaceholder: _propTypes["default"].bool,
onFlip: _propTypes["default"].func,
disableFlip: _propTypes["default"].bool,
onPark: _propTypes["default"].func,
showPark: _propTypes["default"].bool,
gotoParticipantsCtrl: _propTypes["default"].func,
sourceIcons: _propTypes["default"].object,
phoneTypeRenderer: _propTypes["default"].func,
phoneSourceNameRenderer: _propTypes["default"].func,
layout: _propTypes["default"].string.isRequired,
direction: _propTypes["default"].string,
addDisabled: _propTypes["default"].bool,
mergeDisabled: _propTypes["default"].bool,
conferenceCallParties: _propTypes["default"].array,
conferenceCallEquipped: _propTypes["default"].bool,
hasConferenceCall: _propTypes["default"].bool,
lastCallInfo: _propTypes["default"].object,
getAvatarUrl: _propTypes["default"].func,
actions: _propTypes["default"].array,
controlBusy: _propTypes["default"].bool,
callQueueName: _propTypes["default"].string,
isOnWaitingTransfer: _propTypes["default"].bool,
onCompleteTransfer: _propTypes["default"].func,
isOnTransfer: _propTypes["default"].bool
};
ActiveCallPanel.defaultProps = {
startTime: null,
startTimeOffset: 0,
isOnMute: false,
isOnHold: false,
phoneNumber: null,
children: undefined,
avatarUrl: null,
showBackButton: false,
backButtonLabel: 'Active Calls',
onBackButtonClick: null,
brand: 'RingCentral',
showContactDisplayPlaceholder: true,
disableFlip: false,
showPark: false,
onAdd: undefined,
onMerge: undefined,
onFlip: function onFlip() {
return null;
},
onPark: function onPark() {
return null;
},
gotoParticipantsCtrl: function gotoParticipantsCtrl() {
return null;
},
onCompleteTransfer: function onCompleteTransfer() {
return null;
},
sourceIcons: undefined,
phoneTypeRenderer: undefined,
phoneSourceNameRenderer: undefined,
direction: null,
addDisabled: false,
mergeDisabled: false,
conferenceCallEquipped: false,
hasConferenceCall: false,
conferenceCallParties: undefined,
lastCallInfo: undefined,
getAvatarUrl: function getAvatarUrl() {
return null;
},
actions: [],
controlBusy: false,
callQueueName: null,
isOnWaitingTransfer: false,
isOnTransfer: false
};
var _default = ActiveCallPanel;
exports["default"] = _default;
//# sourceMappingURL=index.js.map