@techsee/techsee-nway-media-service-client 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/lib/assets/img/avatar.png +0 -0
- package/lib/assets/img/camera-button.png +0 -0
- package/lib/assets/img/exclamation-mark.png +0 -0
- package/lib/assets/img/media-rejected/chrome1.png +0 -0
- package/lib/assets/img/media-rejected/chrome2.png +0 -0
- package/lib/assets/img/media-rejected/chrome3.png +0 -0
- package/lib/assets/img/media-rejected/chrome4.png +0 -0
- package/lib/assets/img/media-rejected/close_button.png +0 -0
- package/lib/assets/img/media-rejected/ios1.png +0 -0
- package/lib/assets/img/media-rejected/ios2.png +0 -0
- package/lib/components/Avatar/Avatar.scss +45 -0
- package/lib/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.scss +31 -0
- package/lib/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.scss +6 -0
- package/lib/components/LoaderSpinner/LoaderSpinner.scss +69 -0
- package/lib/components/MagicMarker/MagicMarker.scss +18 -0
- package/lib/components/MediaRejectedModal/MediaRejectedModal.scss +75 -0
- package/lib/components/Multiparty.scss +8 -0
- package/lib/components/Video/Video.scss +10 -0
- package/lib/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.scss +49 -0
- package/lib/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.scss +128 -0
- package/lib/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.scss +34 -0
- package/lib/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.scss +15 -0
- package/lib/components/VideoPlaceholders/Tooltip.scss +65 -0
- package/lib/src/components/Avatar/Avatar.d.ts +8 -0
- package/lib/src/components/Avatar/Avatar.d.ts.map +1 -0
- package/lib/src/components/Avatar/Avatar.js +26 -0
- package/lib/src/components/Avatar/Avatar.js.map +1 -0
- package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.d.ts +7 -0
- package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.js +11 -0
- package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.js.map +1 -0
- package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.d.ts +21 -0
- package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.js +36 -0
- package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.js.map +1 -0
- package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.d.ts +18 -0
- package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.js +35 -0
- package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.js.map +1 -0
- package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.d.ts +10 -0
- package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.js +22 -0
- package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.js.map +1 -0
- package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.d.ts +9 -0
- package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.js +15 -0
- package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.js.map +1 -0
- package/lib/src/components/ButtonPanels/index.d.ts +6 -0
- package/lib/src/components/ButtonPanels/index.d.ts.map +1 -0
- package/lib/src/components/ButtonPanels/index.js +14 -0
- package/lib/src/components/ButtonPanels/index.js.map +1 -0
- package/lib/src/components/LoaderSpinner/LoaderSpinner.d.ts +8 -0
- package/lib/src/components/LoaderSpinner/LoaderSpinner.d.ts.map +1 -0
- package/lib/src/components/LoaderSpinner/LoaderSpinner.js +22 -0
- package/lib/src/components/LoaderSpinner/LoaderSpinner.js.map +1 -0
- package/lib/src/components/MagicMarker/MagicMarkerComponent.d.ts +36 -0
- package/lib/src/components/MagicMarker/MagicMarkerComponent.d.ts.map +1 -0
- package/lib/src/components/MagicMarker/MagicMarkerComponent.js +112 -0
- package/lib/src/components/MagicMarker/MagicMarkerComponent.js.map +1 -0
- package/lib/src/components/MagicMarker/index.d.ts +2 -0
- package/lib/src/components/MagicMarker/index.d.ts.map +1 -0
- package/lib/src/components/MagicMarker/index.js +6 -0
- package/lib/src/components/MagicMarker/index.js.map +1 -0
- package/lib/src/components/MediaRejectedModal/MediaRejectedModal.d.ts +24 -0
- package/lib/src/components/MediaRejectedModal/MediaRejectedModal.d.ts.map +1 -0
- package/lib/src/components/MediaRejectedModal/MediaRejectedModal.js +45 -0
- package/lib/src/components/MediaRejectedModal/MediaRejectedModal.js.map +1 -0
- package/lib/src/components/Multiparty.d.ts +23 -0
- package/lib/src/components/Multiparty.d.ts.map +1 -0
- package/lib/src/components/Multiparty.js +163 -0
- package/lib/src/components/Multiparty.js.map +1 -0
- package/lib/src/components/Multiparty.types.d.ts +11 -0
- package/lib/src/components/Multiparty.types.d.ts.map +1 -0
- package/lib/src/components/Multiparty.types.js +9 -0
- package/lib/src/components/Multiparty.types.js.map +1 -0
- package/lib/src/components/Video/Video.d.ts +22 -0
- package/lib/src/components/Video/Video.d.ts.map +1 -0
- package/lib/src/components/Video/Video.js +23 -0
- package/lib/src/components/Video/Video.js.map +1 -0
- package/lib/src/components/Video/VideoPlaceholder.d.ts +23 -0
- package/lib/src/components/Video/VideoPlaceholder.d.ts.map +1 -0
- package/lib/src/components/Video/VideoPlaceholder.js +30 -0
- package/lib/src/components/Video/VideoPlaceholder.js.map +1 -0
- package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.d.ts +23 -0
- package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.d.ts.map +1 -0
- package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.js +35 -0
- package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.js.map +1 -0
- package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.d.ts +34 -0
- package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.d.ts.map +1 -0
- package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.js +65 -0
- package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.js.map +1 -0
- package/lib/src/components/VideoLayouts/VideoLayoutManager.d.ts +29 -0
- package/lib/src/components/VideoLayouts/VideoLayoutManager.d.ts.map +1 -0
- package/lib/src/components/VideoLayouts/VideoLayoutManager.js +23 -0
- package/lib/src/components/VideoLayouts/VideoLayoutManager.js.map +1 -0
- package/lib/src/components/VideoLayouts/index.d.ts +2 -0
- package/lib/src/components/VideoLayouts/index.d.ts.map +1 -0
- package/lib/src/components/VideoLayouts/index.js +6 -0
- package/lib/src/components/VideoLayouts/index.js.map +1 -0
- package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.d.ts +12 -0
- package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.d.ts.map +1 -0
- package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.js +36 -0
- package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.js.map +1 -0
- package/lib/src/components/VideoPlaceholders/CameraOffButton.d.ts +4 -0
- package/lib/src/components/VideoPlaceholders/CameraOffButton.d.ts.map +1 -0
- package/lib/src/components/VideoPlaceholders/CameraOffButton.js +9 -0
- package/lib/src/components/VideoPlaceholders/CameraOffButton.js.map +1 -0
- package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.d.ts +12 -0
- package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.d.ts.map +1 -0
- package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.js +40 -0
- package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.js.map +1 -0
- package/lib/src/index.d.ts +7 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/src/index.js +30 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/services/ConnectionManager.d.ts +27 -0
- package/lib/src/services/ConnectionManager.d.ts.map +1 -0
- package/lib/src/services/ConnectionManager.js +123 -0
- package/lib/src/services/ConnectionManager.js.map +1 -0
- package/lib/src/services/MediaStateService.d.ts +25 -0
- package/lib/src/services/MediaStateService.d.ts.map +1 -0
- package/lib/src/services/MediaStateService.js +84 -0
- package/lib/src/services/MediaStateService.js.map +1 -0
- package/lib/src/services/MultipartyController.d.ts +29 -0
- package/lib/src/services/MultipartyController.d.ts.map +1 -0
- package/lib/src/services/MultipartyController.js +300 -0
- package/lib/src/services/MultipartyController.js.map +1 -0
- package/lib/src/services/MultipartyEventTypes.d.ts +92 -0
- package/lib/src/services/MultipartyEventTypes.d.ts.map +1 -0
- package/lib/src/services/MultipartyEventTypes.js +19 -0
- package/lib/src/services/MultipartyEventTypes.js.map +1 -0
- package/lib/src/services/trafficLogManager.d.ts +21 -0
- package/lib/src/services/trafficLogManager.d.ts.map +1 -0
- package/lib/src/services/trafficLogManager.js +130 -0
- package/lib/src/services/trafficLogManager.js.map +1 -0
- package/lib/src/services/types.d.ts +39 -0
- package/lib/src/services/types.d.ts.map +1 -0
- package/lib/src/services/types.js +47 -0
- package/lib/src/services/types.js.map +1 -0
- package/lib/src/utils/ClientConstants.d.ts +3 -0
- package/lib/src/utils/ClientConstants.d.ts.map +1 -0
- package/lib/src/utils/ClientConstants.js +6 -0
- package/lib/src/utils/ClientConstants.js.map +1 -0
- package/lib/src/utils/MergingStore.d.ts +9 -0
- package/lib/src/utils/MergingStore.d.ts.map +1 -0
- package/lib/src/utils/MergingStore.js +85 -0
- package/lib/src/utils/MergingStore.js.map +1 -0
- package/lib/src/utils/detectOsType.d.ts +8 -0
- package/lib/src/utils/detectOsType.d.ts.map +1 -0
- package/lib/src/utils/detectOsType.js +23 -0
- package/lib/src/utils/detectOsType.js.map +1 -0
- package/lib/src/utils/index.d.ts +5 -0
- package/lib/src/utils/index.d.ts.map +1 -0
- package/lib/src/utils/index.js +14 -0
- package/lib/src/utils/index.js.map +1 -0
- package/lib/src/utils/useEvent.d.ts +8 -0
- package/lib/src/utils/useEvent.d.ts.map +1 -0
- package/lib/src/utils/useEvent.js +24 -0
- package/lib/src/utils/useEvent.js.map +1 -0
- package/lib/test/services/ConnectionManager.unit.d.ts +2 -0
- package/lib/test/services/ConnectionManager.unit.d.ts.map +1 -0
- package/lib/test/services/ConnectionManager.unit.js +207 -0
- package/lib/test/services/ConnectionManager.unit.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaButtonsPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAElC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAE5F,UAAU,KAAK;IACX,WAAW,EAAE,oBAAoB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,oBAAY,cAAc;IACtB,KAAK,IAAA;IACL,MAAM,IAAA;CACT;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoD7C,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MediaButtonsPanel = exports.ButtonsSpacing = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
require("./MediaButtonsPanel.scss");
|
|
17
|
+
var MultipartyButton_1 = require("../MultipartyButton/MultipartyButton");
|
|
18
|
+
var ButtonsSpacing;
|
|
19
|
+
(function (ButtonsSpacing) {
|
|
20
|
+
ButtonsSpacing[ButtonsSpacing["Dense"] = 0] = "Dense";
|
|
21
|
+
ButtonsSpacing[ButtonsSpacing["Sparse"] = 1] = "Sparse";
|
|
22
|
+
})(ButtonsSpacing = exports.ButtonsSpacing || (exports.ButtonsSpacing = {}));
|
|
23
|
+
var MediaButtonsPanel = function (_a) {
|
|
24
|
+
var buttonsType = _a.buttonsType, isMuted = _a.isMuted, isVideoTurnedOff = _a.isVideoTurnedOff, _b = _a.isBackgroundVisible, isBackgroundVisible = _b === void 0 ? true : _b, _c = _a.isIconTransparencyEnabled, isIconTransparencyEnabled = _c === void 0 ? true : _c, _d = _a.buttonsSpacing, buttonsSpacing = _d === void 0 ? ButtonsSpacing.Sparse : _d, onToggleMute = _a.onToggleMute, onToggleVideo = _a.onToggleVideo, onSwitchCamera = _a.onSwitchCamera;
|
|
25
|
+
var platformClass = 'mobile';
|
|
26
|
+
if (buttonsType === MultipartyButton_1.MultipartyButtonType.Desktop) {
|
|
27
|
+
platformClass = 'desktop';
|
|
28
|
+
}
|
|
29
|
+
else if (buttonsType === MultipartyButton_1.MultipartyButtonType.DesktopObsolete) {
|
|
30
|
+
platformClass = 'desktop-obsolete';
|
|
31
|
+
}
|
|
32
|
+
platformClass += ' ' + (buttonsSpacing === ButtonsSpacing.Dense ? 'dense' : 'sparse');
|
|
33
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "media-buttons-panel ".concat(platformClass) }, { children: [onToggleMute && ((0, jsx_runtime_1.jsx)(MultipartyButton_1.MultipartyButton, { type: buttonsType, onClick: onToggleMute, iconName: isMuted ? 'mic-off' : 'mic-on', isSwitchedOn: !isIconTransparencyEnabled || !isMuted, isBackgroundVisible: isBackgroundVisible })), onToggleVideo && ((0, jsx_runtime_1.jsx)(MultipartyButton_1.MultipartyButton, { type: buttonsType, onClick: onToggleVideo, iconName: isVideoTurnedOff ? 'camera-off' : 'camera-on', isSwitchedOn: !isIconTransparencyEnabled || !isVideoTurnedOff, isBackgroundVisible: isBackgroundVisible })), onSwitchCamera && ((0, jsx_runtime_1.jsx)(MultipartyButton_1.MultipartyButton, { type: buttonsType, onClick: onSwitchCamera, iconName: 'switch-camera', isBackgroundVisible: isBackgroundVisible, disabled: isVideoTurnedOff }))] })));
|
|
34
|
+
};
|
|
35
|
+
exports.MediaButtonsPanel = MediaButtonsPanel;
|
|
36
|
+
//# sourceMappingURL=MediaButtonsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaButtonsPanel.js","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oCAAkC;AAGlC,yEAA4F;AAc5F,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,qDAAK,CAAA;IACL,uDAAM,CAAA;AACV,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAEM,IAAM,iBAAiB,GAAoB,UAAC,EAUlD;QATG,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,gBAAgB,sBAAA,EAChB,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,EAC1B,iCAAgC,EAAhC,yBAAyB,mBAAG,IAAI,KAAA,EAChC,sBAAsC,EAAtC,cAAc,mBAAG,cAAc,CAAC,MAAM,KAAA,EACtC,YAAY,kBAAA,EACZ,aAAa,mBAAA,EACb,cAAc,oBAAA;IAEd,IAAI,aAAa,GAAG,QAAQ,CAAC;IAE7B,IAAI,WAAW,KAAK,uCAAoB,CAAC,OAAO,EAAE;QAC9C,aAAa,GAAG,SAAS,CAAC;KAC7B;SAAM,IAAI,WAAW,KAAK,uCAAoB,CAAC,eAAe,EAAE;QAC7D,aAAa,GAAG,kBAAkB,CAAC;KACtC;IAED,aAAa,IAAI,GAAG,GAAG,CAAC,cAAc,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEtF,OAAO,CACH,0CAAK,SAAS,EAAE,8BAAuB,aAAa,CAAE,iBACjD,YAAY,IAAI,CACb,uBAAC,mCAAgB,IACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACxC,YAAY,EAAE,CAAC,yBAAyB,IAAI,CAAC,OAAO,EACpD,mBAAmB,EAAE,mBAAmB,GAC1C,CACL,EACA,aAAa,IAAI,CACd,uBAAC,mCAAgB,IACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EACvD,YAAY,EAAE,CAAC,yBAAyB,IAAI,CAAC,gBAAgB,EAC7D,mBAAmB,EAAE,mBAAmB,GAC1C,CACL,EACA,cAAc,IAAI,CACf,uBAAC,mCAAgB,IACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAC,eAAe,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAE,gBAAgB,GAC5B,CACL,KACC,CACT,CAAC;AACN,CAAC,CAAC;AApDW,QAAA,iBAAiB,qBAoD5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare enum MultipartyButtonType {
|
|
3
|
+
Mobile = "mobile",
|
|
4
|
+
Desktop = "desktop",
|
|
5
|
+
DesktopObsolete = "desktop-obsolete",
|
|
6
|
+
MobileObsolete = "mobile-obsolete"
|
|
7
|
+
}
|
|
8
|
+
interface Props {
|
|
9
|
+
type: MultipartyButtonType;
|
|
10
|
+
iconName: string;
|
|
11
|
+
isSwitchedOn?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
isBackgroundVisible?: boolean;
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const MultipartyButton: React.FC<Props>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=MultipartyButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipartyButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/MultipartyButton/MultipartyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;CACrC;AAeD,UAAU,KAAK;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0B5C,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultipartyButton = exports.MultipartyButtonType = void 0;
|
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
var border_rounded_icon_1 = require("@techsee/techsee-ui-common/lib/forms/buttons/border-rounded-icon");
|
|
6
|
+
var square_rounded_icon_1 = require("@techsee/techsee-ui-common/lib/forms/buttons/square-rounded-icon");
|
|
7
|
+
var large_rounded_icon_1 = require("@techsee/techsee-ui-common/lib/icons/large-rounded-icon");
|
|
8
|
+
var MultipartyButtonType;
|
|
9
|
+
(function (MultipartyButtonType) {
|
|
10
|
+
MultipartyButtonType["Mobile"] = "mobile";
|
|
11
|
+
MultipartyButtonType["Desktop"] = "desktop";
|
|
12
|
+
MultipartyButtonType["DesktopObsolete"] = "desktop-obsolete";
|
|
13
|
+
MultipartyButtonType["MobileObsolete"] = "mobile-obsolete";
|
|
14
|
+
})(MultipartyButtonType = exports.MultipartyButtonType || (exports.MultipartyButtonType = {}));
|
|
15
|
+
function buttonTypeToIconSize(buttonType) {
|
|
16
|
+
switch (buttonType) {
|
|
17
|
+
case MultipartyButtonType.DesktopObsolete:
|
|
18
|
+
return large_rounded_icon_1.IconSizes.LargeObsolete;
|
|
19
|
+
case MultipartyButtonType.Mobile:
|
|
20
|
+
return large_rounded_icon_1.IconSizes.MobileLarge;
|
|
21
|
+
case MultipartyButtonType.MobileObsolete:
|
|
22
|
+
return large_rounded_icon_1.IconSizes.MobileLargeObsolete;
|
|
23
|
+
default:
|
|
24
|
+
return large_rounded_icon_1.IconSizes.Large;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
var MultipartyButton = function (_a) {
|
|
28
|
+
var type = _a.type, iconName = _a.iconName, _b = _a.isSwitchedOn, isSwitchedOn = _b === void 0 ? true : _b, _c = _a.isBackgroundVisible, isBackgroundVisible = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onClick = _a.onClick;
|
|
29
|
+
var IconButton = type === MultipartyButtonType.Mobile ? border_rounded_icon_1.BorderRoundedIconButton : square_rounded_icon_1.SquareRoundedIconButton;
|
|
30
|
+
var backgroundTransparency = isBackgroundVisible ? large_rounded_icon_1.BackgroundTransparencies.HALF : large_rounded_icon_1.BackgroundTransparencies.FULL;
|
|
31
|
+
var iconTransparency = isSwitchedOn || isBackgroundVisible ? large_rounded_icon_1.IconTransparencies.NONE : large_rounded_icon_1.IconTransparencies.HALF;
|
|
32
|
+
return ((0, jsx_runtime_1.jsx)(IconButton, { onClick: onClick, sizeName: buttonTypeToIconSize(type), colorName: large_rounded_icon_1.IconColors.Black, iconName: iconName, iconTransparency: iconTransparency, noBorder: true, reverseColor: true, disabled: disabled, backgroundTransparency: backgroundTransparency }));
|
|
33
|
+
};
|
|
34
|
+
exports.MultipartyButton = MultipartyButton;
|
|
35
|
+
//# sourceMappingURL=MultipartyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipartyButton.js","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/MultipartyButton/MultipartyButton.tsx"],"names":[],"mappings":";;;;AACA,wGAAyG;AACzG,wGAAyG;AACzG,8FAKiE;AAEjE,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,4DAAoC,CAAA;IACpC,0DAAkC,CAAA;AACtC,CAAC,EALW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAK/B;AAED,SAAS,oBAAoB,CAAC,UAAgC;IAC1D,QAAQ,UAAU,EAAE;QAChB,KAAK,oBAAoB,CAAC,eAAe;YACrC,OAAO,8BAAS,CAAC,aAAa,CAAC;QACnC,KAAK,oBAAoB,CAAC,MAAM;YAC5B,OAAO,8BAAS,CAAC,WAAW,CAAC;QACjC,KAAK,oBAAoB,CAAC,cAAc;YACpC,OAAO,8BAAS,CAAC,mBAAmB,CAAC;QACzC;YACI,OAAO,8BAAS,CAAC,KAAK,CAAC;KAC9B;AACL,CAAC;AAWM,IAAM,gBAAgB,GAAoB,UAAC,EAOjD;QANG,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,oBAAmB,EAAnB,YAAY,mBAAG,IAAI,KAAA,EACnB,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA,EAC1B,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,OAAO,aAAA;IAEP,IAAM,UAAU,GAAG,IAAI,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,6CAAuB,CAAC,CAAC,CAAC,6CAAuB,CAAC;IAE5G,IAAM,sBAAsB,GAAG,mBAAmB,CAAC,CAAC,CAAC,6CAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,6CAAwB,CAAC,IAAI,CAAC;IACnH,IAAM,gBAAgB,GAAG,YAAY,IAAI,mBAAmB,CAAC,CAAC,CAAC,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,uCAAkB,CAAC,IAAI,CAAC;IAEjH,OAAO,CACH,uBAAC,UAAU,IACP,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,EACpC,SAAS,EAAE,+BAAU,CAAC,KAAK,EAC3B,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,QACR,YAAY,QACZ,QAAQ,EAAE,QAAQ,EAClB,sBAAsB,EAAE,sBAAsB,GAChD,CACL,CAAC;AACN,CAAC,CAAC;AA1BW,QAAA,gBAAgB,oBA0B3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type PinCallback = (() => void) | false;
|
|
3
|
+
type Props = {
|
|
4
|
+
isPinned: boolean;
|
|
5
|
+
isVideoHover: boolean;
|
|
6
|
+
onTogglePin?: PinCallback;
|
|
7
|
+
};
|
|
8
|
+
export declare const PinButtonPanel: React.FC<Props>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=PinButtonPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinButtonPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;AACxC,KAAK,KAAK,GAAG;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAY1C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.PinButtonPanel = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var MultipartyButton_1 = require("../MultipartyButton/MultipartyButton");
|
|
17
|
+
var PinButtonPanel = function (_a) {
|
|
18
|
+
var onTogglePin = _a.onTogglePin, isPinned = _a.isPinned, isVideoHover = _a.isVideoHover;
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: 'pin-buttons-panel' }, { children: onTogglePin && ((0, jsx_runtime_1.jsx)(MultipartyButton_1.MultipartyButton, { type: MultipartyButton_1.MultipartyButtonType.Desktop, onClick: onTogglePin, iconName: 'pin', isSwitchedOn: isPinned, isBackgroundVisible: isVideoHover })) })));
|
|
20
|
+
};
|
|
21
|
+
exports.PinButtonPanel = PinButtonPanel;
|
|
22
|
+
//# sourceMappingURL=PinButtonPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinButtonPanel.js","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yEAA4F;AASrF,IAAM,cAAc,GAAoB,UAAC,EAAqC;QAApC,WAAW,iBAAA,EAAE,QAAQ,cAAA,EAAE,YAAY,kBAAA;IAAmB,OAAA,CACnG,yCAAK,SAAS,EAAC,mBAAmB,gBAC7B,WAAW,IAAI,CACZ,uBAAC,mCAAgB,IACb,IAAI,EAAE,uCAAoB,CAAC,OAAO,EAClC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAC,KAAK,EACd,YAAY,EAAE,QAAQ,EACtB,mBAAmB,EAAE,YAAY,GACnC,CACL,IACC,CACT;AAZsG,CAYtG,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './SnapshotButtonPanel.scss';
|
|
3
|
+
type SnapshotCallback = () => void;
|
|
4
|
+
type Props = {
|
|
5
|
+
onSnapshot?: SnapshotCallback;
|
|
6
|
+
};
|
|
7
|
+
export declare const SnapshotButtonPanel: React.FC<Props>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=SnapshotButtonPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SnapshotButtonPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,4BAA4B,CAAC;AAEpC,KAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AACnC,KAAK,KAAK,GAAG;IACT,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAE/C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SnapshotButtonPanel = void 0;
|
|
7
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
var camera_button_png_1 = __importDefault(require("../../../assets/img/camera-button.png"));
|
|
9
|
+
require("./SnapshotButtonPanel.scss");
|
|
10
|
+
var SnapshotButtonPanel = function (_a) {
|
|
11
|
+
var onSnapshot = _a.onSnapshot;
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)("img", { src: camera_button_png_1.default, onClick: onSnapshot, className: 'snapshot-button-panel-img' }));
|
|
13
|
+
};
|
|
14
|
+
exports.SnapshotButtonPanel = SnapshotButtonPanel;
|
|
15
|
+
//# sourceMappingURL=SnapshotButtonPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SnapshotButtonPanel.js","sourceRoot":"","sources":["../../../../../src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.tsx"],"names":[],"mappings":";;;;;;;AACA,4FAA8D;AAC9D,sCAAoC;AAO7B,IAAM,mBAAmB,GAAoB,UAAC,EAAY;QAAX,UAAU,gBAAA;IAAmB,OAAA,CAC/E,gCAAK,GAAG,EAAE,2BAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,2BAA2B,GAAG,CACrF;AAFkF,CAElF,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { PinButtonPanel } from './PinButtonPanel/PinButtonPanel';
|
|
2
|
+
export { MediaButtonsPanel } from './MediaButtonsPanel/MediaButtonsPanel';
|
|
3
|
+
export { MultipartyButtonType } from './MultipartyButton/MultipartyButton';
|
|
4
|
+
export { SnapshotButtonPanel } from './SnapshotButtonPanel/SnapshotButtonPanel';
|
|
5
|
+
export { EndMeetingButtonPanel } from './EndMeetingButtonPanel/EndMeetingButtonPanel';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ButtonPanels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAC,qBAAqB,EAAC,MAAM,+CAA+C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EndMeetingButtonPanel = exports.SnapshotButtonPanel = exports.MultipartyButtonType = exports.MediaButtonsPanel = exports.PinButtonPanel = void 0;
|
|
4
|
+
var PinButtonPanel_1 = require("./PinButtonPanel/PinButtonPanel");
|
|
5
|
+
Object.defineProperty(exports, "PinButtonPanel", { enumerable: true, get: function () { return PinButtonPanel_1.PinButtonPanel; } });
|
|
6
|
+
var MediaButtonsPanel_1 = require("./MediaButtonsPanel/MediaButtonsPanel");
|
|
7
|
+
Object.defineProperty(exports, "MediaButtonsPanel", { enumerable: true, get: function () { return MediaButtonsPanel_1.MediaButtonsPanel; } });
|
|
8
|
+
var MultipartyButton_1 = require("./MultipartyButton/MultipartyButton");
|
|
9
|
+
Object.defineProperty(exports, "MultipartyButtonType", { enumerable: true, get: function () { return MultipartyButton_1.MultipartyButtonType; } });
|
|
10
|
+
var SnapshotButtonPanel_1 = require("./SnapshotButtonPanel/SnapshotButtonPanel");
|
|
11
|
+
Object.defineProperty(exports, "SnapshotButtonPanel", { enumerable: true, get: function () { return SnapshotButtonPanel_1.SnapshotButtonPanel; } });
|
|
12
|
+
var EndMeetingButtonPanel_1 = require("./EndMeetingButtonPanel/EndMeetingButtonPanel");
|
|
13
|
+
Object.defineProperty(exports, "EndMeetingButtonPanel", { enumerable: true, get: function () { return EndMeetingButtonPanel_1.EndMeetingButtonPanel; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ButtonPanels/index.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAAvD,gHAAA,cAAc,OAAA;AACtB,2EAAwE;AAAhE,sHAAA,iBAAiB,OAAA;AACzB,wEAAyE;AAAjE,wHAAA,oBAAoB,OAAA;AAC5B,iFAA8E;AAAtE,0HAAA,mBAAmB,OAAA;AAC3B,uFAAoF;AAA5E,8HAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoaderSpinner.d.ts","sourceRoot":"","sources":["../../../../src/components/LoaderSpinner/LoaderSpinner.tsx"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAC;AAE9B,KAAK,kBAAkB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiEtD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.LoaderSpinner = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
require("./LoaderSpinner.scss");
|
|
17
|
+
var LoaderSpinner = function (_a) {
|
|
18
|
+
var caption = _a.caption;
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: 'loader-spinner-container' }, { children: [(0, jsx_runtime_1.jsxs)("svg", __assign({ className: 'spinner', width: '118', height: '118', viewBox: '0 0 118 118', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, { children: [(0, jsx_runtime_1.jsx)("circle", { cx: '59', cy: '59', r: '59', fill: 'white', fillOpacity: '0.1' }), (0, jsx_runtime_1.jsxs)("g", __assign({ clipPath: 'url(#clip0)' }, { children: [(0, jsx_runtime_1.jsx)("path", { className: 'circle circle-1', d: 'M59.5 41C63.6421 41 67 37.6421 67 33.5C67 29.3579 63.6421 26 59.5 26C55.3579 26 52 29.3579 52 33.5C52 37.6421 55.3579 41 59.5 41Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-2', d: 'M72.1901 45.5985C75.3572 48.256 80.0754 47.8472 82.7285 44.6854C85.3815 41.5236 84.9648 36.8061 81.7977 34.1486C78.6306 31.4911 73.9124 31.8999 71.2593 35.0617C68.6063 38.2235 69.023 42.941 72.1901 45.5985Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-3', d: 'M79.0856 57.4596C79.7997 61.5093 83.6914 64.2081 87.7779 63.4875C91.8644 62.7669 94.5983 58.8999 93.8843 54.8502C93.1702 50.8005 89.2785 48.1017 85.192 48.8223C81.1055 49.5428 78.3716 53.4099 79.0856 57.4596Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-4', d: 'M76.6956 70.9205C74.6351 74.4894 75.8718 79.0609 79.4579 81.1313C83.044 83.2017 87.6214 81.987 89.6819 78.4182C91.7424 74.8493 90.5056 70.2778 86.9196 68.2074C83.3335 66.137 78.756 67.3517 76.6956 70.9205Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-5', d: 'M66.0989 79.7512C62.2028 81.1693 60.1855 85.454 61.5931 89.3214C63.0007 93.1889 67.3003 95.1745 71.1963 93.7564C75.0924 92.3384 77.1097 88.0536 75.7021 84.1862C74.2945 80.3188 69.9949 78.3331 66.0989 79.7512Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-6', d: 'M52.2142 79.7512C48.3181 78.3331 44.0186 80.3188 42.611 84.1862C41.2034 88.0536 43.2207 92.3384 47.1167 93.7564C51.0128 95.1745 55.3123 93.1889 56.72 89.3214C58.1276 85.454 56.1103 81.1693 52.2142 79.7512Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-7', d: 'M41.6175 70.9205C39.557 67.3517 34.9796 66.137 31.3935 68.2074C27.8074 70.2778 26.5707 74.8493 28.6312 78.4182C30.6916 81.987 35.2691 83.2017 38.8552 81.1313C42.4412 79.0609 43.678 74.4894 41.6175 70.9205Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-8', d: 'M39.2274 57.4596C39.9415 53.4099 37.2076 49.5428 33.1211 48.8223C29.0345 48.1017 25.1429 50.8005 24.4288 54.8502C23.7147 58.8999 26.4487 62.7669 30.5352 63.4875C34.6217 64.2081 38.5134 61.5093 39.2274 57.4596Z', fill: 'white' }), (0, jsx_runtime_1.jsx)("path", { className: 'circle circle-9', d: 'M46.123 45.5985C49.2901 42.941 49.7068 38.2235 47.0537 35.0617C44.4007 31.8999 39.6825 31.4911 36.5154 34.1486C33.3483 36.8061 32.9316 41.5236 35.5846 44.6854C38.2377 47.8472 42.9559 48.256 46.123 45.5985Z', fill: 'white' })] })), (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("clipPath", __assign({ id: 'clip0' }, { children: (0, jsx_runtime_1.jsx)("rect", { width: '70', height: '69', fill: 'white', transform: 'translate(24 26)' }) })) })] })), (0, jsx_runtime_1.jsx)("div", __assign({ className: 'loader-spinner-caption' }, { children: caption }))] })));
|
|
20
|
+
};
|
|
21
|
+
exports.LoaderSpinner = LoaderSpinner;
|
|
22
|
+
//# sourceMappingURL=LoaderSpinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoaderSpinner.js","sourceRoot":"","sources":["../../../../src/components/LoaderSpinner/LoaderSpinner.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gCAA8B;AAMvB,IAAM,aAAa,GAAiC,UAAC,EAAS;QAAR,OAAO,aAAA;IAAM,OAAA,CACtE,0CAAK,SAAS,EAAC,0BAA0B,iBACrC,0CACI,SAAS,EAAC,SAAS,EACnB,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,iBAClC,mCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,GAAG,EAChE,wCAAG,QAAQ,EAAC,aAAa,iBACrB,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,mIAAmI,EACrI,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,gNAAgN,EAClN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,kNAAkN,EACpN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,+MAA+M,EACjN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,kNAAkN,EACpN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,+MAA+M,EACjN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,+MAA+M,EACjN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,mNAAmN,EACrN,IAAI,EAAC,OAAO,GACd,EACF,iCACI,SAAS,EAAC,iBAAiB,EAC3B,CAAC,EAAC,+MAA+M,EACjN,IAAI,EAAC,OAAO,GACd,KACF,EACJ,2CACI,8CAAU,EAAE,EAAC,OAAO,gBAChB,iCAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,kBAAkB,GAAG,IAClE,GACR,KACL,EACN,yCAAK,SAAS,EAAC,wBAAwB,gBAAE,OAAO,IAAO,KACrD,CACT;AAjEyE,CAiEzE,CAAC;AAjEW,QAAA,aAAa,iBAiExB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import './MagicMarker.scss';
|
|
3
|
+
export interface IResolution {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
}
|
|
7
|
+
export interface IDrawingOptions {
|
|
8
|
+
lineWidth: number;
|
|
9
|
+
strokeColorRGB: string;
|
|
10
|
+
lineWidthRefResolution: IResolution;
|
|
11
|
+
}
|
|
12
|
+
export interface IPoint {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}
|
|
16
|
+
export interface IContainerPoint extends IPoint {
|
|
17
|
+
container: IResolution;
|
|
18
|
+
}
|
|
19
|
+
export type MagicMarkerOptions = {
|
|
20
|
+
drawingOptions: IDrawingOptions;
|
|
21
|
+
drawingOptionsRemote: IDrawingOptions;
|
|
22
|
+
timeUntilDrawingStartFading: number;
|
|
23
|
+
timeUntilDrawingStartFadingRemote: number;
|
|
24
|
+
isMobile?: boolean;
|
|
25
|
+
canDraw?: boolean;
|
|
26
|
+
isMirrored?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type MagicMarkerComponentProps = {
|
|
29
|
+
options: MagicMarkerOptions;
|
|
30
|
+
onDrawingsUpdate: (drawings: IContainerPoint[]) => void;
|
|
31
|
+
remoteDrawings: IContainerPoint[];
|
|
32
|
+
onRemoteDrawingsDisplayEnd?: () => void;
|
|
33
|
+
floatingElements: RefObject<HTMLElement>[];
|
|
34
|
+
};
|
|
35
|
+
export declare const MagicMarkerComponent: React.FC<MagicMarkerComponentProps>;
|
|
36
|
+
//# sourceMappingURL=MagicMarkerComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MagicMarkerComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/MagicMarker/MagicMarkerComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAA8B,MAAM,OAAO,CAAC;AAG7D,OAAO,oBAAoB,CAAC;AAS5B,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,MAAM;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC3C,SAAS,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,cAAc,EAAE,eAAe,CAAC;IAChC,oBAAoB,EAAE,eAAe,CAAC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,eAAe,EAAE,CAAC;IAClC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsJpE,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MagicMarkerComponent = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var react_1 = require("react");
|
|
17
|
+
var CanvasEvents_1 = require("@techsee/techsee-client-infra/lib/helpers/CanvasEvents");
|
|
18
|
+
var CanvasDrawerService_1 = require("@techsee/techsee-client-services/lib/services/CanvasDrawerService");
|
|
19
|
+
require("./MagicMarker.scss");
|
|
20
|
+
var MagicMarkerComponent = function (_a) {
|
|
21
|
+
var _b = _a.options, drawingOptions = _b.drawingOptions, drawingOptionsRemote = _b.drawingOptionsRemote, timeUntilDrawingStartFading = _b.timeUntilDrawingStartFading, timeUntilDrawingStartFadingRemote = _b.timeUntilDrawingStartFadingRemote, _c = _b.isMobile, isMobile = _c === void 0 ? false : _c, _d = _b.canDraw, canDraw = _d === void 0 ? true : _d, _e = _b.isMirrored, isMirrored = _e === void 0 ? false : _e, onDrawingsUpdate = _a.onDrawingsUpdate, remoteDrawings = _a.remoteDrawings, onRemoteDrawingsDisplayEnd = _a.onRemoteDrawingsDisplayEnd, floatingElements = _a.floatingElements;
|
|
22
|
+
var canvasRefLocal = (0, react_1.useRef)(null);
|
|
23
|
+
var canvasRefRemote = (0, react_1.useRef)(null);
|
|
24
|
+
var _f = (0, react_1.useState)(), canvasDrawerRemote = _f[0], setCanvasDrawerRemote = _f[1];
|
|
25
|
+
var _g = drawingOptions.lineWidthRefResolution, localWidth = _g.width, localHeight = _g.height;
|
|
26
|
+
var _h = drawingOptionsRemote.lineWidthRefResolution, remoteWidth = _h.width, remoteHeight = _h.height;
|
|
27
|
+
(0, react_1.useEffect)(function () {
|
|
28
|
+
if (canvasRefLocal.current === null || !canDraw) {
|
|
29
|
+
return function () { };
|
|
30
|
+
}
|
|
31
|
+
var drawerLocal = new CanvasDrawerService_1.CanvasDrawer(canvasRefLocal.current, drawingOptions, undefined, timeUntilDrawingStartFading);
|
|
32
|
+
var canvasEventsHelper = new CanvasEvents_1.CanvasEvents();
|
|
33
|
+
var floatingDomElements = floatingElements.filter(function (v) { return v.current; }).map(function (v) { return v.current; }); // casting to array of only HTML elements as null values has been filtered out
|
|
34
|
+
canvasEventsHelper.initListeners(canvasRefLocal.current, isMobile, floatingDomElements);
|
|
35
|
+
var getCursorPos = function (e) {
|
|
36
|
+
var _a, _b, _c, _d;
|
|
37
|
+
if (!canvasRefLocal.current) {
|
|
38
|
+
return { x: 0, y: 0 };
|
|
39
|
+
}
|
|
40
|
+
var canvasRectLocal = canvasRefLocal.current.getBoundingClientRect();
|
|
41
|
+
var _e = canvasRefLocal.current, sourceWidth = _e.width, sourceHeight = _e.height;
|
|
42
|
+
var canvasScale = Math.min(canvasRectLocal.width / sourceWidth, canvasRectLocal.height / sourceHeight);
|
|
43
|
+
var ev = e === null || e === void 0 ? void 0 : e.originalEvent;
|
|
44
|
+
var pageX = ((_a = e === null || e === void 0 ? void 0 : e.touches) === null || _a === void 0 ? void 0 : _a[0].pageX) || ((_b = ev === null || ev === void 0 ? void 0 : ev.changedTouches) === null || _b === void 0 ? void 0 : _b[0].pageX) || (e === null || e === void 0 ? void 0 : e.pageX) || 0;
|
|
45
|
+
var pageY = ((_c = e === null || e === void 0 ? void 0 : e.touches) === null || _c === void 0 ? void 0 : _c[0].pageY) || ((_d = ev === null || ev === void 0 ? void 0 : ev.changedTouches) === null || _d === void 0 ? void 0 : _d[0].pageY) || (e === null || e === void 0 ? void 0 : e.pageY) || 0;
|
|
46
|
+
return {
|
|
47
|
+
x: (pageX - canvasRectLocal.left) / canvasScale -
|
|
48
|
+
(canvasRectLocal.width / canvasScale - sourceWidth) / 2,
|
|
49
|
+
y: (pageY - canvasRectLocal.top) / canvasScale -
|
|
50
|
+
(canvasRectLocal.height / canvasScale - sourceHeight) / 2
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
var onStartDraw = function (e) {
|
|
54
|
+
var _a = getCursorPos(e.detail.data), x = _a.x, y = _a.y;
|
|
55
|
+
drawerLocal.startDrawing(x, y);
|
|
56
|
+
};
|
|
57
|
+
var onDraw = function (e) {
|
|
58
|
+
var _a = getCursorPos(e.detail.data), x = _a.x, y = _a.y;
|
|
59
|
+
drawerLocal.addToDrawing(x, y, { width: localWidth, height: localHeight });
|
|
60
|
+
};
|
|
61
|
+
var onEndDraw = function () {
|
|
62
|
+
if (!drawerLocal.isPainting) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
var drawings = drawerLocal.getDrawings();
|
|
66
|
+
var drawingsWithMirroring = isMirrored
|
|
67
|
+
? drawings.map(function (point) { return (__assign(__assign({}, point), { x: point.container.width - point.x })); })
|
|
68
|
+
: drawings;
|
|
69
|
+
drawerLocal.endDrawing();
|
|
70
|
+
onDrawingsUpdate(drawingsWithMirroring);
|
|
71
|
+
};
|
|
72
|
+
var canvasRefLocalCurrent = canvasRefLocal.current;
|
|
73
|
+
canvasRefLocalCurrent.addEventListener('drawingCanvasStartDraw', onStartDraw);
|
|
74
|
+
canvasRefLocalCurrent.addEventListener('drawingCanvasDraw', onDraw);
|
|
75
|
+
canvasRefLocalCurrent.addEventListener('drawingCanvasEndDraw', onEndDraw);
|
|
76
|
+
return function () {
|
|
77
|
+
drawerLocal.destroy();
|
|
78
|
+
canvasRefLocalCurrent.removeEventListener('drawingCanvasStartDraw', onStartDraw);
|
|
79
|
+
canvasRefLocalCurrent.removeEventListener('drawingCanvasDraw', onDraw);
|
|
80
|
+
canvasRefLocalCurrent.removeEventListener('drawingCanvasEndDraw', onEndDraw);
|
|
81
|
+
};
|
|
82
|
+
}, [
|
|
83
|
+
canvasRefLocal,
|
|
84
|
+
drawingOptions,
|
|
85
|
+
timeUntilDrawingStartFading,
|
|
86
|
+
isMobile,
|
|
87
|
+
canDraw,
|
|
88
|
+
onDrawingsUpdate,
|
|
89
|
+
isMirrored,
|
|
90
|
+
floatingElements,
|
|
91
|
+
localWidth,
|
|
92
|
+
localHeight
|
|
93
|
+
]);
|
|
94
|
+
(0, react_1.useEffect)(function () {
|
|
95
|
+
if (canvasRefRemote.current === null) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
setCanvasDrawerRemote(new CanvasDrawerService_1.CanvasDrawer(canvasRefRemote.current, drawingOptionsRemote, undefined, timeUntilDrawingStartFadingRemote, onRemoteDrawingsDisplayEnd));
|
|
99
|
+
}, [canvasRefRemote, drawingOptionsRemote, timeUntilDrawingStartFadingRemote, onRemoteDrawingsDisplayEnd]);
|
|
100
|
+
(0, react_1.useEffect)(function () {
|
|
101
|
+
if (!canvasDrawerRemote) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
var drawingsWithMirroring = isMirrored
|
|
105
|
+
? remoteDrawings.map(function (point) { return (__assign(__assign({}, point), { x: point.container.width - point.x })); })
|
|
106
|
+
: remoteDrawings;
|
|
107
|
+
canvasDrawerRemote.drawPoints(drawingsWithMirroring, drawingOptionsRemote.lineWidthRefResolution);
|
|
108
|
+
}, [remoteDrawings, canvasDrawerRemote, drawingOptionsRemote.lineWidthRefResolution, isMirrored]);
|
|
109
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: 'magic-marker' }, { children: [(0, jsx_runtime_1.jsx)("canvas", { width: remoteWidth, height: remoteHeight, ref: canvasRefRemote }), (0, jsx_runtime_1.jsx)("canvas", { width: localWidth, height: localHeight, ref: canvasRefLocal })] })));
|
|
110
|
+
};
|
|
111
|
+
exports.MagicMarkerComponent = MagicMarkerComponent;
|
|
112
|
+
//# sourceMappingURL=MagicMarkerComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MagicMarkerComponent.js","sourceRoot":"","sources":["../../../../src/components/MagicMarker/MagicMarkerComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/MagicMarker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,yBAAyB,EAAC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MagicMarkerComponent = void 0;
|
|
4
|
+
var MagicMarkerComponent_1 = require("./MagicMarkerComponent");
|
|
5
|
+
Object.defineProperty(exports, "MagicMarkerComponent", { enumerable: true, get: function () { return MagicMarkerComponent_1.MagicMarkerComponent; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/MagicMarker/index.ts"],"names":[],"mappings":";;;AAAA,+DAA2G;AAAnG,4HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import './MediaRejectedModal.scss';
|
|
3
|
+
import { OSType } from '../../utils/detectOsType';
|
|
4
|
+
export type MediaRejectedModalStrings = Partial<{
|
|
5
|
+
mediaRejectedTextAndroid1: string;
|
|
6
|
+
mediaRejectedTextAndroid2: string;
|
|
7
|
+
mediaRejectedTextAndroid3: string;
|
|
8
|
+
mediaRejectedTextAndroid4: string;
|
|
9
|
+
mediaRejectedTextAndroid5: string;
|
|
10
|
+
mediaRejectedTextChrome1: string;
|
|
11
|
+
mediaRejectedTextChrome2: string;
|
|
12
|
+
mediaRejectedTextChrome3: string;
|
|
13
|
+
mediaRejectedTextIos1: string;
|
|
14
|
+
mediaRejectedTextIos2: string;
|
|
15
|
+
mediaRejectedTextIos3: string;
|
|
16
|
+
mediaRejectedModalTitle: string;
|
|
17
|
+
}>;
|
|
18
|
+
export interface MediaRejectedModalProps {
|
|
19
|
+
osType: OSType;
|
|
20
|
+
translations: MediaRejectedModalStrings;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare const MediaRejectedModal: React.FC<MediaRejectedModalProps>;
|
|
24
|
+
//# sourceMappingURL=MediaRejectedModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaRejectedModal.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRejectedModal/MediaRejectedModal.tsx"],"names":[],"mappings":";AAAA,OAAO,2BAA2B,CAAC;AAUnC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;IAC5C,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,yBAAyB,CAAC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA2DhE,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.MediaRejectedModal = void 0;
|
|
18
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
+
require("./MediaRejectedModal.scss");
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var chrome1_png_1 = __importDefault(require("../../assets/img/media-rejected/chrome1.png"));
|
|
22
|
+
var chrome2_png_1 = __importDefault(require("../../assets/img/media-rejected/chrome2.png"));
|
|
23
|
+
var chrome3_png_1 = __importDefault(require("../../assets/img/media-rejected/chrome3.png"));
|
|
24
|
+
var chrome4_png_1 = __importDefault(require("../../assets/img/media-rejected/chrome4.png"));
|
|
25
|
+
var close_button_png_1 = __importDefault(require("../../assets/img/media-rejected/close_button.png"));
|
|
26
|
+
var ios1_png_1 = __importDefault(require("../../assets/img/media-rejected/ios1.png"));
|
|
27
|
+
var ios2_png_1 = __importDefault(require("../../assets/img/media-rejected/ios2.png"));
|
|
28
|
+
var detectOsType_1 = require("../../utils/detectOsType");
|
|
29
|
+
var MediaRejectedModal = function (_a) {
|
|
30
|
+
var osType = _a.osType, onClose = _a.onClose, translations = _a.translations;
|
|
31
|
+
var ModalContent = (0, react_1.useCallback)(function () {
|
|
32
|
+
switch (osType) {
|
|
33
|
+
case detectOsType_1.OSType.IOS:
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextIos1 }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: ios1_png_1.default }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextIos2 }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: ios2_png_1.default }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextIos3 })] }));
|
|
35
|
+
case detectOsType_1.OSType.ANDROID:
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextAndroid1 }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: chrome1_png_1.default }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: chrome2_png_1.default }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextAndroid2 }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: chrome3_png_1.default }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextAndroid3 }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextAndroid4 })] }), (0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-image', src: chrome4_png_1.default }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextAndroid5 })] }));
|
|
37
|
+
case detectOsType_1.OSType.OTHER:
|
|
38
|
+
default:
|
|
39
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextChrome1 }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextChrome2 }), (0, jsx_runtime_1.jsx)("span", { children: translations.mediaRejectedTextChrome3 })] }));
|
|
40
|
+
}
|
|
41
|
+
}, [translations, osType]);
|
|
42
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ className: 'media-rejected-modal-container' }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: 'media-rejected-modal' }, { children: [(0, jsx_runtime_1.jsx)("img", { className: 'media-rejected-close-icon', src: close_button_png_1.default, onClick: onClose }), (0, jsx_runtime_1.jsxs)("div", __assign({ className: 'media-rejected-content-container' }, { children: [(0, jsx_runtime_1.jsx)("span", __assign({ className: 'media-rejected-title' }, { children: translations.mediaRejectedModalTitle || 'Allow permissions' })), (0, jsx_runtime_1.jsx)(ModalContent, {})] }))] })) })));
|
|
43
|
+
};
|
|
44
|
+
exports.MediaRejectedModal = MediaRejectedModal;
|
|
45
|
+
//# sourceMappingURL=MediaRejectedModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaRejectedModal.js","sourceRoot":"","sources":["../../../../src/components/MediaRejectedModal/MediaRejectedModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qCAAmC;AAEnC,+BAAkC;AAClC,4FAAsE;AACtE,4FAAsE;AACtE,4FAAsE;AACtE,4FAAsE;AACtE,sGAA8E;AAC9E,sFAA+D;AAC/D,sFAA+D;AAC/D,yDAAgD;AAuBzC,IAAM,kBAAkB,GAAsC,UAAC,EAI5C;QAHtB,MAAM,YAAA,EACN,OAAO,aAAA,EACP,YAAY,kBAAA;IAEZ,IAAM,YAAY,GAAG,IAAA,mBAAW,EAAC;QAC7B,QAAQ,MAAM,EAAE;YACZ,KAAK,qBAAM,CAAC,GAAG;gBACX,OAAO,CACH,6DACI,2CAAO,YAAY,CAAC,qBAAqB,GAAQ,EACjD,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,kBAAO,GAAI,EACtD,2CAAO,YAAY,CAAC,qBAAqB,GAAQ,EACjD,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,kBAAO,GAAI,EACtD,2CAAO,YAAY,CAAC,qBAAqB,GAAQ,IAClD,CACN,CAAC;YACN,KAAK,qBAAM,CAAC,OAAO;gBACf,OAAO,CACH,6DACI,2CAAO,YAAY,CAAC,yBAAyB,GAAQ,EACrD,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,qBAAW,GAAI,EAC1D,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,qBAAW,GAAI,EAC1D,2CAAO,YAAY,CAAC,yBAAyB,GAAQ,EACrD,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,qBAAW,GAAI,EAC1D,4CACI,2CAAO,YAAY,CAAC,yBAAyB,GAAQ,EACrD,gCAAM,EACN,2CAAO,YAAY,CAAC,yBAAyB,GAAQ,IACnD,EACN,gCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,qBAAW,GAAI,EAC1D,2CAAO,YAAY,CAAC,yBAAyB,GAAQ,IACtD,CACN,CAAC;YACN,KAAK,qBAAM,CAAC,KAAK,CAAC;YAClB;gBACI,OAAO,CACH,4CACI,2CAAO,YAAY,CAAC,wBAAwB,GAAQ,EACpD,2CAAO,YAAY,CAAC,wBAAwB,GAAQ,EACpD,2CAAO,YAAY,CAAC,wBAAwB,GAAQ,IAClD,CACT,CAAC;SACT;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,OAAO,CACH,yCAAK,SAAS,EAAC,gCAAgC,gBAC3C,0CAAK,SAAS,EAAC,sBAAsB,iBACjC,gCAAK,SAAS,EAAC,2BAA2B,EAAC,GAAG,EAAE,0BAAc,EAAE,OAAO,EAAE,OAAO,GAAI,EACpF,0CAAK,SAAS,EAAC,kCAAkC,iBAC7C,0CAAM,SAAS,EAAC,sBAAsB,gBACjC,YAAY,CAAC,uBAAuB,IAAI,mBAAmB,IACzD,EACP,uBAAC,YAAY,KAAG,KACd,KACJ,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AA3DW,QAAA,kBAAkB,sBA2D7B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import { VideoLayoutType } from '@techsee/techsee-nway-media-service/lib/MultiParty';
|
|
3
|
+
import { IMultipartyController } from '../services/MultipartyController';
|
|
4
|
+
import { OnPinnedUserChangedCb } from '../services/types';
|
|
5
|
+
import { MultipartyTranslationStrings, OnEndMeetingRequestedCb, OnPermissionsModalVisibilityChangedCb, OnSnapshotRequestedCb } from './Multiparty.types';
|
|
6
|
+
import '@techsee/techsee-ui-common/lib/_shared/icons.css';
|
|
7
|
+
import './Multiparty.scss';
|
|
8
|
+
type MultipartyProps = {
|
|
9
|
+
controller: IMultipartyController;
|
|
10
|
+
translations: MultipartyTranslationStrings;
|
|
11
|
+
selectedLayoutType: VideoLayoutType;
|
|
12
|
+
isPeerMediaPermissionRejected?: boolean;
|
|
13
|
+
onPermissionsModalVisibilityChanged?: OnPermissionsModalVisibilityChangedCb;
|
|
14
|
+
onPinnedUserChanged?: OnPinnedUserChangedCb;
|
|
15
|
+
onSnapshotRequested?: OnSnapshotRequestedCb;
|
|
16
|
+
onEndMeetingRequested?: OnEndMeetingRequestedCb;
|
|
17
|
+
videoOverlay?: (props: {
|
|
18
|
+
floatingElements: RefObject<HTMLElement>[];
|
|
19
|
+
}) => JSX.Element;
|
|
20
|
+
};
|
|
21
|
+
export declare const Multiparty: React.FC<MultipartyProps>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=Multiparty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Multiparty.d.ts","sourceRoot":"","sources":["../../../src/components/Multiparty.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAmC,MAAM,OAAO,CAAC;AAElE,OAAO,EAA2B,eAAe,EAAC,MAAM,oDAAoD,CAAC;AAC7G,OAAO,EAAC,qBAAqB,EAA2B,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAoB,qBAAqB,EAAsC,MAAM,mBAAmB,CAAC;AAIhH,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,qCAAqC,EACrC,qBAAqB,EAExB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,kDAAkD,CAAC;AAC1D,OAAO,mBAAmB,CAAC;AAE3B,KAAK,eAAe,GAAG;IACnB,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,EAAE,4BAA4B,CAAC;IAC3C,kBAAkB,EAAE,eAAe,CAAC;IACpC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,mCAAmC,CAAC,EAAE,qCAAqC,CAAC;IAC5E,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAC5C,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,uBAAuB,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAC,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAA;KAAC,KAAK,GAAG,CAAC,OAAO,CAAC;CACvF,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgLhD,CAAC"}
|