@appquality/unguess-design-system 3.1.98-beta-attachments → 3.1.98-test-error-management
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/CHANGELOG.md +307 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1005 -625
- package/build/stories/chat/_types.d.ts +8 -6
- package/build/stories/chat/context/chatContext.d.ts +4 -4
- package/build/stories/chat/hooks/useMedia.d.ts +8 -0
- package/build/stories/chat/index.stories.d.ts +3 -4
- package/build/stories/chat/parts/MediaLightbox.d.ts +14 -0
- package/build/stories/chat/parts/ThumbnailContainer/Thumbnail.d.ts +11 -0
- package/build/stories/chat/parts/ThumbnailContainer/index.d.ts +1 -9
- package/build/stories/chat/parts/comment.d.ts +2 -7
- package/build/stories/highlight/_types.d.ts +36 -0
- package/build/stories/highlight/demo-parts/data.d.ts +55 -0
- package/build/stories/highlight/demo-parts/sentiment-tag.d.ts +7 -0
- package/build/stories/highlight/demo-parts/transcript-base.d.ts +5 -0
- package/build/stories/highlight/demo-parts/transcript-diarization.d.ts +5 -0
- package/build/stories/highlight/demo-parts/transcript-paragraph.d.ts +5 -0
- package/build/stories/highlight/demo-parts/transcript-sentiment.d.ts +5 -0
- package/build/stories/highlight/highlightContext.d.ts +10 -0
- package/build/stories/highlight/index.d.ts +10 -0
- package/build/stories/highlight/index.stories.d.ts +18 -0
- package/build/stories/highlight/searchable.d.ts +3 -0
- package/build/stories/player/_types.d.ts +34 -1
- package/build/stories/player/context/progressContext.d.ts +16 -0
- package/build/stories/player/index.stories.d.ts +1 -1
- package/build/stories/player/parts/bookmark.d.ts +2 -0
- package/build/stories/player/parts/controlButton.d.ts +289 -0
- package/build/stories/player/parts/controls.d.ts +7 -2
- package/build/stories/player/parts/controlsCenterGroup.d.ts +2 -1
- package/build/stories/player/parts/cutterButton.d.ts +6 -0
- package/build/stories/player/parts/progress.d.ts +11 -0
- package/build/stories/player/parts/timeLabel.d.ts +2 -2
- package/build/stories/tooltip/_types.d.ts +1 -0
- package/build/stories/tooltip/index.d.ts +1 -0
- package/build/stories/tooltip/index.stories.d.ts +1 -0
- package/package.json +2 -1
- package/yarn-error.log +17994 -0
- package/build/stories/chat/parts/ThumbnailContainer/ImageThumbnail.d.ts +0 -11
- package/build/stories/chat/parts/ThumbnailContainer/VideoThumbnail.d.ts +0 -11
- /package/build/stories/player/{parts/utils.d.ts → utils.d.ts} +0 -0
package/build/index.js
CHANGED
|
@@ -25,9 +25,9 @@ var sunburst = require('@nivo/sunburst');
|
|
|
25
25
|
var waffle = require('@nivo/waffle');
|
|
26
26
|
var line = require('@nivo/line');
|
|
27
27
|
var reactForms = require('@zendeskgarden/react-forms');
|
|
28
|
-
var uuid = require('uuid');
|
|
29
28
|
var react = require('@tiptap/react');
|
|
30
29
|
var reactTooltips = require('@zendeskgarden/react-tooltips');
|
|
30
|
+
var uuid = require('uuid');
|
|
31
31
|
var Typography = require('@tiptap/extension-typography');
|
|
32
32
|
var Link = require('@tiptap/extension-link');
|
|
33
33
|
var StarterKit = require('@tiptap/starter-kit');
|
|
@@ -38,10 +38,10 @@ var Mention = require('@tiptap/extension-mention');
|
|
|
38
38
|
var tippy = require('tippy.js');
|
|
39
39
|
var Image$2 = require('@tiptap/extension-image');
|
|
40
40
|
var Dropcursor = require('@tiptap/extension-dropcursor');
|
|
41
|
-
var reactGrid = require('@zendeskgarden/react-grid');
|
|
42
41
|
var reactModals = require('@zendeskgarden/react-modals');
|
|
43
42
|
var SlickSlider = require('react-slick');
|
|
44
43
|
var Video = require('@appquality/stream-player');
|
|
44
|
+
var reactGrid = require('@zendeskgarden/react-grid');
|
|
45
45
|
var containerUtilities = require('@zendeskgarden/container-utilities');
|
|
46
46
|
var reactColorpickers = require('@zendeskgarden/react-colorpickers');
|
|
47
47
|
var reactDropdowns = require('@zendeskgarden/react-dropdowns');
|
|
@@ -334,8 +334,8 @@ const UgContainerCard = styled__default["default"](reactNotifications.Well) `
|
|
|
334
334
|
`;
|
|
335
335
|
const ContainerCard = (props) => jsxRuntime.jsx(UgContainerCard, Object.assign({}, props));
|
|
336
336
|
|
|
337
|
-
var _a, _b, _c, _d, _e, _f, _g$
|
|
338
|
-
const components = Object.assign(Object.assign(Object.assign(Object.assign({}, reactTheming.DEFAULT_THEME.components), { chrome: Object.assign(Object.assign({}, (_a = reactTheming.DEFAULT_THEME.components) === null || _a === void 0 ? void 0 : _a.chrome), { header: Object.assign(Object.assign({}, (_c = (_b = reactTheming.DEFAULT_THEME.components) === null || _b === void 0 ? void 0 : _b.chrome) === null || _c === void 0 ? void 0 : _c.header), { height: "64px" }), nav: Object.assign(Object.assign({}, (_e = (_d = reactTheming.DEFAULT_THEME.components) === null || _d === void 0 ? void 0 : _d.chrome) === null || _e === void 0 ? void 0 : _e.nav), { openWidth: 240, closedWidth: 36, workspaceDropdownWidth: 192 }) }), notification: Object.assign(Object.assign({}, (_f = reactTheming.DEFAULT_THEME.components) === null || _f === void 0 ? void 0 : _f.notification), { card: Object.assign(Object.assign({}, (_h = (_g$
|
|
337
|
+
var _a, _b, _c, _d, _e, _f, _g$d, _h;
|
|
338
|
+
const components = Object.assign(Object.assign(Object.assign(Object.assign({}, reactTheming.DEFAULT_THEME.components), { chrome: Object.assign(Object.assign({}, (_a = reactTheming.DEFAULT_THEME.components) === null || _a === void 0 ? void 0 : _a.chrome), { header: Object.assign(Object.assign({}, (_c = (_b = reactTheming.DEFAULT_THEME.components) === null || _b === void 0 ? void 0 : _b.chrome) === null || _c === void 0 ? void 0 : _c.header), { height: "64px" }), nav: Object.assign(Object.assign({}, (_e = (_d = reactTheming.DEFAULT_THEME.components) === null || _d === void 0 ? void 0 : _d.chrome) === null || _e === void 0 ? void 0 : _e.nav), { openWidth: 240, closedWidth: 36, workspaceDropdownWidth: 192 }) }), notification: Object.assign(Object.assign({}, (_f = reactTheming.DEFAULT_THEME.components) === null || _f === void 0 ? void 0 : _f.notification), { card: Object.assign(Object.assign({}, (_h = (_g$d = reactTheming.DEFAULT_THEME.components) === null || _g$d === void 0 ? void 0 : _g$d.notification) === null || _h === void 0 ? void 0 : _h.well), { padding: "16px" }) }) }), cardCmponentStyle), { "text.primary": () => ({
|
|
339
339
|
color: getColor(colors.primaryHue, 600),
|
|
340
340
|
}), "text.success": () => ({
|
|
341
341
|
color: getColor(colors.successHue, 700),
|
|
@@ -842,48 +842,48 @@ Tag.Avatar = StyledAvatar;
|
|
|
842
842
|
Tag.Close = StyledClose;
|
|
843
843
|
Tag.SecondaryText = StyledSpan;
|
|
844
844
|
|
|
845
|
-
var _path$
|
|
846
|
-
function _extends$
|
|
847
|
-
const SvgUgSquare = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
845
|
+
var _path$G;
|
|
846
|
+
function _extends$T() { _extends$T = 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$T.apply(this, arguments); }
|
|
847
|
+
const SvgUgSquare = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$T({
|
|
848
848
|
width: 24,
|
|
849
849
|
height: 24,
|
|
850
850
|
viewBox: "0 0 24 24",
|
|
851
851
|
fill: "none",
|
|
852
852
|
xmlns: "http://www.w3.org/2000/svg"
|
|
853
|
-
}, props), _path$
|
|
853
|
+
}, props), _path$G || (_path$G = /*#__PURE__*/React__namespace.createElement("path", {
|
|
854
854
|
d: "M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM18 19H6C5.45 19 5 18.55 5 18V6C5 5.45 5.45 5 6 5H18C18.55 5 19 5.45 19 6V18C19 18.55 18.55 19 18 19Z",
|
|
855
855
|
fill: "#E80C7A"
|
|
856
856
|
})));
|
|
857
857
|
|
|
858
|
-
var _path$
|
|
859
|
-
function _extends$
|
|
860
|
-
const SvgUgCircle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
858
|
+
var _path$F;
|
|
859
|
+
function _extends$S() { _extends$S = 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$S.apply(this, arguments); }
|
|
860
|
+
const SvgUgCircle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$S({
|
|
861
861
|
width: 24,
|
|
862
862
|
height: 24,
|
|
863
863
|
viewBox: "0 0 24 24",
|
|
864
864
|
fill: "none",
|
|
865
865
|
xmlns: "http://www.w3.org/2000/svg"
|
|
866
|
-
}, props), _path$
|
|
866
|
+
}, props), _path$F || (_path$F = /*#__PURE__*/React__namespace.createElement("path", {
|
|
867
867
|
d: "M12 2C6.47 2 2 6.47 2 12C2 17.53 6.47 22 12 22C17.53 22 22 17.53 22 12C22 6.47 17.53 2 12 2ZM12 20C7.58 20 4 16.42 4 12C4 7.58 7.58 4 12 4C16.42 4 20 7.58 20 12C20 16.42 16.42 20 12 20Z",
|
|
868
868
|
fill: "#FFCD1A"
|
|
869
869
|
})));
|
|
870
870
|
|
|
871
|
-
var _path$
|
|
872
|
-
function _extends$
|
|
873
|
-
const SvgUgTriangle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
871
|
+
var _path$E;
|
|
872
|
+
function _extends$R() { _extends$R = 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$R.apply(this, arguments); }
|
|
873
|
+
const SvgUgTriangle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$R({
|
|
874
874
|
width: 24,
|
|
875
875
|
height: 24,
|
|
876
876
|
viewBox: "0 0 24 24",
|
|
877
877
|
fill: "none",
|
|
878
878
|
xmlns: "http://www.w3.org/2000/svg"
|
|
879
|
-
}, props), _path$
|
|
879
|
+
}, props), _path$E || (_path$E = /*#__PURE__*/React__namespace.createElement("path", {
|
|
880
880
|
d: "M11.9993 7.32625L18.3893 17.5563H5.60929L11.9993 7.32625ZM11.1493 4.91625L2.94929 18.0262C2.53929 18.6962 3.01929 19.5563 3.79929 19.5563H20.1993C20.9893 19.5563 21.4593 18.6962 21.0493 18.0262L12.8493 4.91625C12.4593 4.28625 11.5393 4.28625 11.1493 4.91625Z",
|
|
881
881
|
fill: "#7B0DFF"
|
|
882
882
|
})));
|
|
883
883
|
|
|
884
|
-
var _rect$4, _path$
|
|
885
|
-
function _extends$
|
|
886
|
-
const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
884
|
+
var _rect$4, _path$D, _path2$c, _path3$4;
|
|
885
|
+
function _extends$Q() { _extends$Q = 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$Q.apply(this, arguments); }
|
|
886
|
+
const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$Q({
|
|
887
887
|
width: 24,
|
|
888
888
|
height: 24,
|
|
889
889
|
viewBox: "0 0 24 24",
|
|
@@ -894,7 +894,7 @@ const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElemen
|
|
|
894
894
|
height: 24,
|
|
895
895
|
rx: 12,
|
|
896
896
|
fill: "#F6F6F8"
|
|
897
|
-
})), _path$
|
|
897
|
+
})), _path$D || (_path$D = /*#__PURE__*/React__namespace.createElement("path", {
|
|
898
898
|
d: "M20.6953 5.73905C21.0148 5.41953 21.0148 4.90149 20.6953 4.58197C20.3758 4.26245 19.8577 4.26245 19.5382 4.58197L11.88 12.2402L10.0849 9.95981C9.80539 9.60476 9.29098 9.54352 8.93593 9.82303C8.58088 10.1025 8.51963 10.6169 8.79914 10.972L11.1642 13.9763C11.3089 14.16 11.5252 14.2731 11.7586 14.2869C11.9921 14.3008 12.2203 14.2141 12.3856 14.0487L20.6953 5.73905Z",
|
|
899
899
|
fill: "#50BF95"
|
|
900
900
|
})), _path2$c || (_path2$c = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -905,9 +905,9 @@ const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElemen
|
|
|
905
905
|
fill: "#007345"
|
|
906
906
|
})));
|
|
907
907
|
|
|
908
|
-
var _rect$3, _path$
|
|
909
|
-
function _extends$
|
|
910
|
-
const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
908
|
+
var _rect$3, _path$C, _path2$b;
|
|
909
|
+
function _extends$P() { _extends$P = 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$P.apply(this, arguments); }
|
|
910
|
+
const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$P({
|
|
911
911
|
width: 24,
|
|
912
912
|
height: 24,
|
|
913
913
|
viewBox: "0 0 24 24",
|
|
@@ -918,7 +918,7 @@ const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("
|
|
|
918
918
|
height: 24,
|
|
919
919
|
rx: 12,
|
|
920
920
|
fill: "#F6F6F8"
|
|
921
|
-
})), _path$
|
|
921
|
+
})), _path$C || (_path$C = /*#__PURE__*/React__namespace.createElement("path", {
|
|
922
922
|
fillRule: "evenodd",
|
|
923
923
|
clipRule: "evenodd",
|
|
924
924
|
d: "M13.55 19.0875C14.25 19.7875 15.1063 20.1375 16.1188 20.1375C17.1313 20.1375 17.9875 19.7875 18.6875 19.0875C19.3875 18.3875 19.7375 17.5312 19.7375 16.5187C19.7375 15.5062 19.3875 14.65 18.6875 13.95C17.9875 13.25 17.1313 12.9 16.1188 12.9C15.1063 12.9 14.25 13.25 13.55 13.95C12.85 14.65 12.5 15.5062 12.5 16.5187C12.5 17.5312 12.85 18.3875 13.55 19.0875ZM17.5062 18.2812C17.4187 18.2812 17.3375 18.25 17.2625 18.1875L15.7438 16.7812C15.6813 16.6687 15.65 16.6 15.65 16.575V14.55C15.65 14.4375 15.6875 14.3437 15.7625 14.2687C15.8375 14.1937 15.9313 14.1562 16.0438 14.1562C16.1563 14.1562 16.25 14.1937 16.325 14.2687C16.4 14.3437 16.4375 14.4375 16.4375 14.55V16.4813L17.7313 17.6625C17.8063 17.725 17.8469 17.8062 17.8531 17.9062C17.8594 18.0063 17.825 18.0938 17.75 18.1688C17.675 18.2438 17.5937 18.2812 17.5062 18.2812Z",
|
|
@@ -930,9 +930,9 @@ const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("
|
|
|
930
930
|
fill: "#F4AC1A"
|
|
931
931
|
})));
|
|
932
932
|
|
|
933
|
-
var _rect$2, _path$
|
|
934
|
-
function _extends$
|
|
935
|
-
const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
933
|
+
var _rect$2, _path$B, _path2$a;
|
|
934
|
+
function _extends$O() { _extends$O = 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$O.apply(this, arguments); }
|
|
935
|
+
const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$O({
|
|
936
936
|
width: 24,
|
|
937
937
|
height: 24,
|
|
938
938
|
viewBox: "0 0 24 24",
|
|
@@ -943,7 +943,7 @@ const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement
|
|
|
943
943
|
height: 24,
|
|
944
944
|
rx: 12,
|
|
945
945
|
fill: "#F6F6F8"
|
|
946
|
-
})), _path$
|
|
946
|
+
})), _path$B || (_path$B = /*#__PURE__*/React__namespace.createElement("path", {
|
|
947
947
|
d: "M11.2266 13.0313H14.997M11.2266 9.26075V13.0313V9.26075ZM11.2266 13.0313L20.121 5.03906L11.2266 13.0313Z",
|
|
948
948
|
stroke: "#024780",
|
|
949
949
|
strokeWidth: 1.5,
|
|
@@ -957,9 +957,9 @@ const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement
|
|
|
957
957
|
strokeLinejoin: "round"
|
|
958
958
|
})));
|
|
959
959
|
|
|
960
|
-
var _rect$1, _path$
|
|
961
|
-
function _extends$
|
|
962
|
-
const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
960
|
+
var _rect$1, _path$A, _path2$9, _path3$3, _path4$1, _path5$1, _path6$1, _path7$1, _path8$1, _path9$1, _path10$1;
|
|
961
|
+
function _extends$N() { _extends$N = 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$N.apply(this, arguments); }
|
|
962
|
+
const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$N({
|
|
963
963
|
width: 24,
|
|
964
964
|
height: 24,
|
|
965
965
|
viewBox: "0 0 24 24",
|
|
@@ -970,7 +970,7 @@ const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement
|
|
|
970
970
|
height: 24,
|
|
971
971
|
rx: 12,
|
|
972
972
|
fill: "#F6F6F8"
|
|
973
|
-
})), _path$
|
|
973
|
+
})), _path$A || (_path$A = /*#__PURE__*/React__namespace.createElement("path", {
|
|
974
974
|
d: "M13.059 16.7647C13.059 16.1799 12.585 15.7059 12.0002 15.7059C11.4154 15.7059 10.9414 16.1799 10.9414 16.7647V19.9412C10.9414 20.5259 11.4154 21 12.0002 21C12.585 21 13.059 20.5259 13.059 19.9412V16.7647Z",
|
|
975
975
|
fill: "#D1820A"
|
|
976
976
|
})), _path2$9 || (_path2$9 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -1002,21 +1002,21 @@ const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement
|
|
|
1002
1002
|
fill: "#FFB65A"
|
|
1003
1003
|
})));
|
|
1004
1004
|
|
|
1005
|
-
var _g$
|
|
1006
|
-
function _extends$
|
|
1007
|
-
const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1005
|
+
var _g$c, _path$z, _path2$8, _path3$2, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;
|
|
1006
|
+
function _extends$M() { _extends$M = 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$M.apply(this, arguments); }
|
|
1007
|
+
const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$M({
|
|
1008
1008
|
width: 24,
|
|
1009
1009
|
height: 24,
|
|
1010
1010
|
viewBox: "0 0 24 24",
|
|
1011
1011
|
fill: "none",
|
|
1012
1012
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1013
|
-
}, props), _g$
|
|
1013
|
+
}, props), _g$c || (_g$c = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1014
1014
|
opacity: 0.3
|
|
1015
1015
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1016
1016
|
opacity: 0.3,
|
|
1017
1017
|
d: "M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z",
|
|
1018
1018
|
fill: "#50BF95"
|
|
1019
|
-
}))), _path$
|
|
1019
|
+
}))), _path$z || (_path$z = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1020
1020
|
d: "M12.487 3.19652C8.68003 3.19652 5.59895 6.27761 5.59895 10.0846C5.59895 10.2597 5.59895 10.4348 5.62438 10.5855C5.29857 11.1863 4.82307 12.013 4.24678 12.514C3.82117 12.8897 3.92096 13.2908 3.97085 13.4405C4.09609 13.7663 4.44635 14.0413 5.02265 14.2418C5.22322 14.3172 5.44825 14.3671 5.64883 14.417L5.67427 16.8464C5.67427 17.7984 6.47559 18.6251 7.45304 18.6251L8.93044 18.1496L9.08111 19.0263C9.18091 19.6026 9.68185 20.0282 10.2836 20.0282C10.3589 20.0282 10.4343 20.0282 10.5086 20.0028L15.1424 19.177C15.8185 19.0517 16.2441 18.4256 16.1443 17.7495L15.8185 16.1214C17.9974 14.9189 19.375 12.5892 19.375 10.0845C19.375 6.30279 16.2696 3.19641 12.4869 3.19641L12.487 3.19652Z",
|
|
1021
1021
|
fill: "#2B8473",
|
|
1022
1022
|
stroke: "#2B8473"
|
|
@@ -1072,21 +1072,21 @@ const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createEle
|
|
|
1072
1072
|
fill: "#ECF4F2"
|
|
1073
1073
|
})));
|
|
1074
1074
|
|
|
1075
|
-
var _g$
|
|
1076
|
-
function _extends$
|
|
1077
|
-
const SvgCampaignFunctional = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1075
|
+
var _g$b, _path$y;
|
|
1076
|
+
function _extends$L() { _extends$L = 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$L.apply(this, arguments); }
|
|
1077
|
+
const SvgCampaignFunctional = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$L({
|
|
1078
1078
|
width: 24,
|
|
1079
1079
|
height: 24,
|
|
1080
1080
|
viewBox: "0 0 24 24",
|
|
1081
1081
|
fill: "none",
|
|
1082
1082
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1083
|
-
}, props), _g$
|
|
1083
|
+
}, props), _g$b || (_g$b = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1084
1084
|
opacity: 0.3
|
|
1085
1085
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1086
1086
|
opacity: 0.3,
|
|
1087
1087
|
d: "M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24Z",
|
|
1088
1088
|
fill: "#003A57"
|
|
1089
|
-
}))), _path$
|
|
1089
|
+
}))), _path$y || (_path$y = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1090
1090
|
d: "M17.9983 7.16705C17.5188 6.58566 17.1422 6.73039 17.1422 6.73039C17.1422 6.73039 16.406 7.02453 16.0401 7.16303C15.6742 7.30153 15.2408 7.17357 15.2408 7.17357L14.7579 6.8851C14.7579 6.8851 14.4296 6.56554 14.3656 6.18067C14.3123 5.78958 14.1888 5.00269 14.1888 5.00269C14.1888 5.00269 14.1356 4.61159 13.3938 4.47257C12.652 4.33356 12.4678 4.68715 12.4678 4.68715C12.4678 4.68715 12.0932 5.38344 11.9091 5.73703C11.7249 6.09062 11.3114 6.27118 11.3114 6.27118L10.7639 6.36908C10.7639 6.36908 10.3144 6.33771 10.0176 6.07271L9.12712 5.27769C9.12712 5.27769 8.8303 5.01268 8.18313 5.38632C7.53595 5.75997 7.61705 6.14953 7.61705 6.14953L7.86033 7.3182C7.94143 7.70776 7.74381 8.11275 7.74381 8.11275L7.38528 8.53794C7.38528 8.53794 7.02217 8.80577 6.62387 8.78845C6.22557 8.77114 5.43527 8.7474 5.43527 8.7474C5.43527 8.7474 5.03697 8.73009 4.78646 9.44201C4.53595 10.1539 4.84804 10.3956 4.84804 10.3956C4.84804 10.3956 5.46774 10.896 5.77983 11.1376C6.09192 11.3793 6.19373 11.8296 6.19373 11.8296L6.20207 12.3921C6.20207 12.3921 6.09618 12.8314 5.79331 13.079C5.49043 13.3266 4.86759 13.8171 4.86759 13.8171C4.86759 13.8171 4.56471 14.0647 4.81769 14.7769C5.08144 15.4828 5.46713 15.4783 5.46713 15.4783C5.46713 15.4783 6.26012 15.4569 6.64582 15.4524C7.03152 15.4479 7.40116 15.7145 7.40116 15.7145L7.76458 16.1447C7.76458 16.1447 7.96976 16.5499 7.89441 16.9425C7.81907 17.3351 7.66208 18.1094 7.66208 18.1094C7.66208 18.1094 7.58674 18.502 8.23785 18.8824C8.88895 19.2629 9.18553 19.0044 9.18553 19.0044C9.18553 19.0044 9.7724 18.4765 10.069 18.218C10.3655 17.9595 10.8115 17.9347 10.8115 17.9347L11.3609 18.0394C11.3609 18.0394 11.77 18.225 11.9608 18.5803C12.1516 18.9356 12.5268 19.6354 12.5268 19.6354C12.5268 19.6354 12.7176 19.9907 13.4583 19.8539C14.1946 19.7343 14.2529 19.337 14.2529 19.337C14.2529 19.337 14.3586 18.5487 14.4232 18.1623C14.4814 17.765 14.8086 17.4598 14.8086 17.4598L15.2939 17.1796C15.2939 17.1796 15.7281 17.0598 16.095 17.1971C16.4682 17.3453 17.1975 17.637 17.1975 17.637C17.1975 17.637 17.5707 17.7851 18.0424 17.2073C18.5142 16.6295 18.3189 16.2913 18.3189 16.2913C18.3189 16.2913 17.9006 15.6164 17.6882 15.2736C17.4759 14.9307 17.5197 14.4836 17.5197 14.4836L17.7038 13.9555C17.7038 13.9555 17.9482 13.5816 18.3203 13.454C18.6925 13.3264 19.4431 13.0822 19.4431 13.0822C19.4431 13.0822 19.8153 12.9546 19.8113 12.2005C19.8074 11.4464 19.4297 11.3153 19.4297 11.3153C19.4297 11.3153 18.6807 11.0641 18.303 10.9331C17.9253 10.802 17.677 10.4217 17.677 10.4217L17.4861 9.8919C17.4861 9.8919 17.4293 9.4447 17.6368 9.1067C17.8443 8.7687 18.2486 8.09891 18.2486 8.09891C18.2486 8.09891 18.4778 7.74844 17.9983 7.16707L17.9983 7.16705ZM9.33902 8.38466L10.6176 10.5992C10.0433 11.149 9.82793 11.9715 10.0567 12.7413L7.86713 14.0054C6.98868 12.0106 7.60355 9.66286 9.33905 8.38457L9.33902 8.38466ZM13.9748 16.414C11.9998 17.2778 9.65918 16.6363 8.37099 14.8783L10.5605 13.6141C11.1128 14.1971 11.9329 14.4219 12.6961 14.1994L13.9748 16.414ZM12.6552 13.132C12.1159 13.4434 11.4325 13.2561 11.1176 12.7107C10.8027 12.1652 10.9822 11.4797 11.5215 11.1684C12.0608 10.857 12.7441 11.0443 13.0591 11.5897C13.374 12.1352 13.1945 12.8207 12.6552 13.132ZM14.8376 15.9158L13.5591 13.7012C14.1333 13.1515 14.3487 12.3289 14.12 11.5591L16.3095 10.295C17.188 12.2898 16.5731 14.6376 14.8376 15.9159L14.8376 15.9158ZM13.6161 10.6863C13.0638 10.1034 12.2437 9.87862 11.4805 10.1011L10.2019 7.88652C12.1769 7.02266 14.5112 7.65314 15.8057 9.42223L13.6161 10.6863Z",
|
|
1091
1091
|
fill: "#003A57"
|
|
1092
1092
|
})));
|
|
@@ -1947,15 +1947,15 @@ const WaffleChart = ({ height, width, data, total, tooltip, }) => {
|
|
|
1947
1947
|
} }) })));
|
|
1948
1948
|
};
|
|
1949
1949
|
|
|
1950
|
-
var _g$
|
|
1951
|
-
function _extends$
|
|
1952
|
-
const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1950
|
+
var _g$a, _defs$4;
|
|
1951
|
+
function _extends$K() { _extends$K = 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$K.apply(this, arguments); }
|
|
1952
|
+
const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$K({
|
|
1953
1953
|
width: 27,
|
|
1954
1954
|
height: 26,
|
|
1955
1955
|
viewBox: "0 0 27 26",
|
|
1956
1956
|
fill: "none",
|
|
1957
1957
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1958
|
-
}, props), _g$
|
|
1958
|
+
}, props), _g$a || (_g$a = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1959
1959
|
clipPath: "url(#clip0_21_19131)"
|
|
1960
1960
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1961
1961
|
d: "M26.5525 13C26.5525 20.1796 20.6084 26 13.2762 26C5.94481 26 0 20.1796 0 13C0 5.82111 5.94481 0 13.2762 0C20.6084 0 26.5525 5.82111 26.5525 13Z",
|
|
@@ -1971,15 +1971,15 @@ const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
1971
1971
|
fill: "white"
|
|
1972
1972
|
})))));
|
|
1973
1973
|
|
|
1974
|
-
var _g$
|
|
1975
|
-
function _extends$
|
|
1976
|
-
const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1974
|
+
var _g$9, _defs$3;
|
|
1975
|
+
function _extends$J() { _extends$J = 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$J.apply(this, arguments); }
|
|
1976
|
+
const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$J({
|
|
1977
1977
|
width: 27,
|
|
1978
1978
|
height: 26,
|
|
1979
1979
|
viewBox: "0 0 27 26",
|
|
1980
1980
|
fill: "none",
|
|
1981
1981
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1982
|
-
}, props), _g$
|
|
1982
|
+
}, props), _g$9 || (_g$9 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1983
1983
|
clipPath: "url(#clip0_21_19130)"
|
|
1984
1984
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1985
1985
|
d: "M26.5525 13C26.5525 20.1796 20.6084 26 13.2762 26C5.94481 26 0 20.1796 0 13C0 5.82111 5.94481 0 13.2762 0C20.6084 0 26.5525 5.82111 26.5525 13Z",
|
|
@@ -1995,15 +1995,15 @@ const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
1995
1995
|
fill: "white"
|
|
1996
1996
|
})))));
|
|
1997
1997
|
|
|
1998
|
-
var _g$
|
|
1999
|
-
function _extends$
|
|
2000
|
-
const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1998
|
+
var _g$8, _defs$2;
|
|
1999
|
+
function _extends$I() { _extends$I = 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$I.apply(this, arguments); }
|
|
2000
|
+
const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$I({
|
|
2001
2001
|
width: 27,
|
|
2002
2002
|
height: 26,
|
|
2003
2003
|
viewBox: "0 0 27 26",
|
|
2004
2004
|
fill: "none",
|
|
2005
2005
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2006
|
-
}, props), _g$
|
|
2006
|
+
}, props), _g$8 || (_g$8 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2007
2007
|
clipPath: "url(#clip0_21_19129)"
|
|
2008
2008
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2009
2009
|
d: "M26.5525 13C26.5525 20.1796 20.6084 26 13.2762 26C5.94481 26 0 20.1796 0 13C0 5.82111 5.94481 0 13.2762 0C20.6084 0 26.5525 5.82111 26.5525 13Z",
|
|
@@ -2025,15 +2025,15 @@ const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2025
2025
|
fill: "white"
|
|
2026
2026
|
})))));
|
|
2027
2027
|
|
|
2028
|
-
var _g$
|
|
2029
|
-
function _extends$
|
|
2030
|
-
const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2028
|
+
var _g$7, _defs$1;
|
|
2029
|
+
function _extends$H() { _extends$H = 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$H.apply(this, arguments); }
|
|
2030
|
+
const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$H({
|
|
2031
2031
|
width: 27,
|
|
2032
2032
|
height: 26,
|
|
2033
2033
|
viewBox: "0 0 27 26",
|
|
2034
2034
|
fill: "none",
|
|
2035
2035
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2036
|
-
}, props), _g$
|
|
2036
|
+
}, props), _g$7 || (_g$7 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2037
2037
|
clipPath: "url(#clip0_21_19127)"
|
|
2038
2038
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2039
2039
|
d: "M26.5525 13C26.5525 20.1796 20.6084 26 13.2762 26C5.94481 26 0 20.1796 0 13C0 5.82111 5.94481 0 13.2762 0C20.6084 0 26.5525 5.82111 26.5525 13Z",
|
|
@@ -2055,15 +2055,15 @@ const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2055
2055
|
fill: "white"
|
|
2056
2056
|
})))));
|
|
2057
2057
|
|
|
2058
|
-
var _g$
|
|
2059
|
-
function _extends$
|
|
2060
|
-
const SvgSentiment5 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2058
|
+
var _g$6, _defs;
|
|
2059
|
+
function _extends$G() { _extends$G = 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$G.apply(this, arguments); }
|
|
2060
|
+
const SvgSentiment5 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$G({
|
|
2061
2061
|
width: 26,
|
|
2062
2062
|
height: 26,
|
|
2063
2063
|
viewBox: "0 0 26 26",
|
|
2064
2064
|
fill: "none",
|
|
2065
2065
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2066
|
-
}, props), _g$
|
|
2066
|
+
}, props), _g$6 || (_g$6 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2067
2067
|
clipPath: "url(#clip0_21_19125)"
|
|
2068
2068
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2069
2069
|
d: "M25.2051 13C25.2051 20.1796 19.5626 26 12.6025 26C5.64314 26 0 20.1796 0 13C0 5.82111 5.64314 0 12.6025 0C19.5626 0 25.2051 5.82111 25.2051 13Z",
|
|
@@ -2337,41 +2337,26 @@ const ChatContextProvider = ({ onSave, onFileUpload, onDeleteThumbnail, setMenti
|
|
|
2337
2337
|
setEditor,
|
|
2338
2338
|
thumbnails,
|
|
2339
2339
|
setThumbnails,
|
|
2340
|
-
afterUploadCallback: (failed) => {
|
|
2341
|
-
|
|
2342
|
-
if (failed.includes(file.name)) {
|
|
2343
|
-
file.isLoadingMedia = false;
|
|
2344
|
-
//file.isError = true;
|
|
2345
|
-
}
|
|
2346
|
-
else {
|
|
2347
|
-
file.isLoadingMedia = false;
|
|
2348
|
-
//file.isError = false
|
|
2349
|
-
}
|
|
2350
|
-
return file;
|
|
2351
|
-
}));
|
|
2352
|
-
},
|
|
2353
|
-
addThumbnails: ({ files }) => {
|
|
2354
|
-
files.forEach((file) => (file.isLoadingMedia = true));
|
|
2340
|
+
afterUploadCallback: (failed) => { },
|
|
2341
|
+
addThumbnails: ({ files }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
2355
2342
|
setThumbnails((prev) => [...prev, ...files]);
|
|
2356
|
-
if (onFileUpload)
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
else {
|
|
2367
|
-
file.isError = false;
|
|
2368
|
-
}
|
|
2369
|
-
return file;
|
|
2370
|
-
});
|
|
2343
|
+
if (!onFileUpload)
|
|
2344
|
+
return;
|
|
2345
|
+
try {
|
|
2346
|
+
const data = yield onFileUpload(files);
|
|
2347
|
+
setThumbnails((prev) => {
|
|
2348
|
+
return prev.map(file => {
|
|
2349
|
+
var _a, _b;
|
|
2350
|
+
file.isLoadingMedia = false;
|
|
2351
|
+
file.error = (_b = (_a = data.failed) === null || _a === void 0 ? void 0 : _a.find(f => f.name === file.name)) === null || _b === void 0 ? void 0 : _b.errorCode;
|
|
2352
|
+
return file;
|
|
2371
2353
|
});
|
|
2372
2354
|
});
|
|
2373
2355
|
}
|
|
2374
|
-
|
|
2356
|
+
catch (e) {
|
|
2357
|
+
console.log("Error uploading files", e);
|
|
2358
|
+
}
|
|
2359
|
+
}),
|
|
2375
2360
|
clearInput: () => {
|
|
2376
2361
|
if (editor && !editor.isEmpty) {
|
|
2377
2362
|
editor.commands.clearContent();
|
|
@@ -2737,96 +2722,28 @@ const ChatTitle = styled__default["default"](Title$1) `
|
|
|
2737
2722
|
padding: ${({ theme }) => `${theme.space.sm} ${theme.space.md}`};
|
|
2738
2723
|
`;
|
|
2739
2724
|
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
justify-content: center;
|
|
2744
|
-
width: ${({ theme }) => theme.space.xl};
|
|
2745
|
-
height: ${({ theme }) => theme.space.xl};
|
|
2746
|
-
`;
|
|
2747
|
-
/**
|
|
2748
|
-
* Title is a basic component used to display a title. Often used in card headers.
|
|
2749
|
-
*/
|
|
2750
|
-
const Close = (props) => jsxRuntime.jsx(UgClose$1, Object.assign({}, props));
|
|
2751
|
-
|
|
2752
|
-
const NOTIFICATION_COMPONENT_ID = "notifications.notification";
|
|
2753
|
-
const CLOSE_COMPONENT_ID = "notifications.notification.close";
|
|
2754
|
-
const CLOSE_ICON_COMPONENT_ID = "notifications.notification.close-icon";
|
|
2755
|
-
const TITLE_COMPONENT_ID = "notifications.notification.title";
|
|
2756
|
-
const UgClose = styled__default["default"](Close).attrs((props) => {
|
|
2757
|
-
var _a;
|
|
2758
|
-
return ({
|
|
2759
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_ICON_COMPONENT_ID,
|
|
2760
|
-
});
|
|
2761
|
-
}) `
|
|
2762
|
-
${(props) => reactTheming.retrieveComponentStyles(CLOSE_ICON_COMPONENT_ID, props)};
|
|
2763
|
-
`;
|
|
2764
|
-
const UgAnchor = styled__default["default"](reactButtons.Anchor).attrs((props) => {
|
|
2765
|
-
var _a;
|
|
2766
|
-
return ({
|
|
2767
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_COMPONENT_ID,
|
|
2768
|
-
});
|
|
2769
|
-
}) `
|
|
2770
|
-
${(props) => reactTheming.retrieveComponentStyles(CLOSE_COMPONENT_ID, props)};
|
|
2771
|
-
`;
|
|
2772
|
-
const UgTitle = styled__default["default"](Title$1).attrs((props) => {
|
|
2773
|
-
var _a;
|
|
2774
|
-
return ({
|
|
2775
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : TITLE_COMPONENT_ID,
|
|
2776
|
-
});
|
|
2777
|
-
}) `
|
|
2778
|
-
${(props) => reactTheming.retrieveComponentStyles(TITLE_COMPONENT_ID, props)};
|
|
2779
|
-
`;
|
|
2780
|
-
const UgNotification = styled__default["default"](reactNotifications.Notification) `
|
|
2781
|
-
display: flex;
|
|
2782
|
-
align-items: center;
|
|
2783
|
-
justify-content: space-between;
|
|
2784
|
-
padding-right: ${({ theme }) => theme.space.md};
|
|
2785
|
-
white-space: pre;
|
|
2786
|
-
|
|
2787
|
-
${UgAnchor} {
|
|
2788
|
-
flex-shrink: 0;
|
|
2789
|
-
margin-left: ${({ theme }) => theme.space.md};
|
|
2790
|
-
}
|
|
2791
|
-
|
|
2792
|
-
${(props) => reactTheming.retrieveComponentStyles(NOTIFICATION_COMPONENT_ID, props)};
|
|
2793
|
-
`;
|
|
2794
|
-
/**
|
|
2795
|
-
* A Notification is a passive status update that keeps users informed of system progress.
|
|
2796
|
-
* <hr>
|
|
2797
|
-
* Used for this:
|
|
2798
|
-
- For a passive status update about user or system activity
|
|
2799
|
-
*/
|
|
2800
|
-
const Notification = (_a) => {
|
|
2801
|
-
var { closeText, message, onClose, type, isPrimary, isRegular } = _a, props = __rest(_a, ["closeText", "message", "onClose", "type", "isPrimary", "isRegular"]);
|
|
2802
|
-
return (jsxRuntime.jsxs(UgNotification, Object.assign({ type: type, isPrimary: isPrimary }, props, { children: [jsxRuntime.jsx(UgTitle, Object.assign({ isRegular: isRegular, type: type, isPrimary: isPrimary }, { children: message })), jsxRuntime.jsx(UgAnchor, Object.assign({ type: type, isPrimary: isPrimary, onClick: onClose }, { children: closeText !== null && closeText !== void 0 ? closeText : jsxRuntime.jsx(UgClose, {}) }))] })));
|
|
2803
|
-
};
|
|
2804
|
-
// ToastProvider
|
|
2805
|
-
const ToastProvider = (props) => (jsxRuntime.jsx(reactNotifications.ToastProvider, Object.assign({}, props)));
|
|
2806
|
-
const useToast = reactNotifications.useToast;
|
|
2807
|
-
|
|
2808
|
-
var _path$v;
|
|
2809
|
-
function _extends$C() { _extends$C = 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$C.apply(this, arguments); }
|
|
2810
|
-
const SvgBoldFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$C({
|
|
2725
|
+
var _path$x;
|
|
2726
|
+
function _extends$F() { _extends$F = 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$F.apply(this, arguments); }
|
|
2727
|
+
const SvgBoldFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$F({
|
|
2811
2728
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2812
2729
|
width: 16,
|
|
2813
2730
|
height: 16,
|
|
2814
2731
|
focusable: "false",
|
|
2815
2732
|
viewBox: "0 0 16 16"
|
|
2816
|
-
}, props), _path$
|
|
2733
|
+
}, props), _path$x || (_path$x = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2817
2734
|
fill: "currentColor",
|
|
2818
2735
|
d: "M7.5 0C9.952 0 12 2.048 12 4.5a4.483 4.483 0 01-1.27 3.108C12.078 8.39 13 9.855 13 11.5c0 2.452-2.048 4.5-4.5 4.5H4a1 1 0 01-1-1V1a1 1 0 011-1h3.5zM5 14h3.5c1.348 0 2.5-1.152 2.5-2.5S9.848 9 8.5 9H5v5zM7.5 2H5v5h2.5C8.848 7 10 5.848 10 4.5S8.848 2 7.5 2z"
|
|
2819
2736
|
})));
|
|
2820
2737
|
|
|
2821
|
-
var _path$
|
|
2822
|
-
function _extends$
|
|
2823
|
-
const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2738
|
+
var _path$w;
|
|
2739
|
+
function _extends$E() { _extends$E = 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$E.apply(this, arguments); }
|
|
2740
|
+
const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$E({
|
|
2824
2741
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2825
2742
|
width: 16,
|
|
2826
2743
|
height: 16,
|
|
2827
2744
|
focusable: "false",
|
|
2828
2745
|
viewBox: "0 0 16 16"
|
|
2829
|
-
}, props), _path$
|
|
2746
|
+
}, props), _path$w || (_path$w = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2830
2747
|
fill: "none",
|
|
2831
2748
|
stroke: "currentColor",
|
|
2832
2749
|
strokeLinecap: "round",
|
|
@@ -2834,15 +2751,15 @@ const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2834
2751
|
d: "M8 1h3M9.5 1l-3 14M5 15h3"
|
|
2835
2752
|
})));
|
|
2836
2753
|
|
|
2837
|
-
var _path$
|
|
2838
|
-
function _extends$
|
|
2839
|
-
const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2754
|
+
var _path$v, _path2$7;
|
|
2755
|
+
function _extends$D() { _extends$D = 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$D.apply(this, arguments); }
|
|
2756
|
+
const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$D({
|
|
2840
2757
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2841
2758
|
width: 16,
|
|
2842
2759
|
height: 16,
|
|
2843
2760
|
focusable: "false",
|
|
2844
2761
|
viewBox: "0 0 16 16"
|
|
2845
|
-
}, props), _path$
|
|
2762
|
+
}, props), _path$v || (_path$v = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2846
2763
|
fill: "currentColor",
|
|
2847
2764
|
d: "M7 8H4c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1zm6 0h-3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1z"
|
|
2848
2765
|
})), _path2$7 || (_path2$7 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -2853,15 +2770,15 @@ const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg",
|
|
|
2853
2770
|
d: "M5.5 12C6.5 11 7 9.5 7 8V6m4.5 6c1-1 1.5-2.5 1.5-4V6"
|
|
2854
2771
|
})));
|
|
2855
2772
|
|
|
2856
|
-
var _g$
|
|
2857
|
-
function _extends$
|
|
2858
|
-
const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2773
|
+
var _g$5;
|
|
2774
|
+
function _extends$C() { _extends$C = 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$C.apply(this, arguments); }
|
|
2775
|
+
const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$C({
|
|
2859
2776
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2860
2777
|
width: 16,
|
|
2861
2778
|
height: 16,
|
|
2862
2779
|
focusable: "false",
|
|
2863
2780
|
viewBox: "0 0 16 16"
|
|
2864
|
-
}, props), _g$
|
|
2781
|
+
}, props), _g$5 || (_g$5 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2865
2782
|
transform: "translate(-464 -332)"
|
|
2866
2783
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2867
2784
|
width: 16,
|
|
@@ -2881,15 +2798,15 @@ const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _e
|
|
|
2881
2798
|
transform: "translate(474.469 331)"
|
|
2882
2799
|
}))));
|
|
2883
2800
|
|
|
2884
|
-
var _g$
|
|
2885
|
-
function _extends$
|
|
2886
|
-
const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2801
|
+
var _g$4;
|
|
2802
|
+
function _extends$B() { _extends$B = 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$B.apply(this, arguments); }
|
|
2803
|
+
const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$B({
|
|
2887
2804
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2888
2805
|
width: 16,
|
|
2889
2806
|
height: 16,
|
|
2890
2807
|
focusable: "false",
|
|
2891
2808
|
viewBox: "0 0 16 16"
|
|
2892
|
-
}, props), _g$
|
|
2809
|
+
}, props), _g$4 || (_g$4 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2893
2810
|
transform: "translate(-464 -332)"
|
|
2894
2811
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2895
2812
|
width: 16,
|
|
@@ -2909,15 +2826,15 @@ const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _e
|
|
|
2909
2826
|
transform: "translate(469.359 331)"
|
|
2910
2827
|
}))));
|
|
2911
2828
|
|
|
2912
|
-
var _g$
|
|
2913
|
-
function _extends$
|
|
2914
|
-
const SvgH3Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2829
|
+
var _g$3;
|
|
2830
|
+
function _extends$A() { _extends$A = 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$A.apply(this, arguments); }
|
|
2831
|
+
const SvgH3Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$A({
|
|
2915
2832
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2916
2833
|
width: 16,
|
|
2917
2834
|
height: 16,
|
|
2918
2835
|
focusable: "false",
|
|
2919
2836
|
viewBox: "0 0 16 16"
|
|
2920
|
-
}, props), _g$
|
|
2837
|
+
}, props), _g$3 || (_g$3 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2921
2838
|
transform: "translate(-464 -332)"
|
|
2922
2839
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2923
2840
|
width: 16,
|
|
@@ -2978,70 +2895,169 @@ const FloatingMenu = (props) => {
|
|
|
2978
2895
|
const TooltipComponent = (props) => {
|
|
2979
2896
|
var _a;
|
|
2980
2897
|
const theme = React.useContext(styled.ThemeContext);
|
|
2981
|
-
return jsxRuntime.jsx(reactTooltips.Tooltip, Object.assign({}, props, { zIndex: (_a = props.zIndex) !== null && _a !== void 0 ? _a : theme.levels.front }));
|
|
2898
|
+
return (jsxRuntime.jsx(reactTooltips.Tooltip, Object.assign({}, props, { zIndex: (_a = props.zIndex) !== null && _a !== void 0 ? _a : theme.levels.front })));
|
|
2982
2899
|
};
|
|
2983
2900
|
const Tooltip = styled__default["default"](TooltipComponent) `
|
|
2984
2901
|
box-shadow: ${({ theme }) => theme.shadows.lg(`${theme.space.base * 3}px`, `${theme.space.base * 5}px`, getColor("neutralHue", 600, theme, 0.15))};
|
|
2902
|
+
|
|
2903
|
+
${({ isTransparent }) => isTransparent &&
|
|
2904
|
+
`
|
|
2905
|
+
box-shadow: none;
|
|
2906
|
+
background-color: transparent;
|
|
2907
|
+
border: none;
|
|
2908
|
+
`};
|
|
2985
2909
|
`;
|
|
2986
2910
|
|
|
2987
|
-
var _path$
|
|
2988
|
-
function _extends$
|
|
2989
|
-
const SvgBoldStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2911
|
+
var _path$u;
|
|
2912
|
+
function _extends$z() { _extends$z = 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$z.apply(this, arguments); }
|
|
2913
|
+
const SvgBoldStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$z({
|
|
2990
2914
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2991
2915
|
width: 16,
|
|
2992
2916
|
height: 16,
|
|
2993
2917
|
focusable: "false",
|
|
2994
2918
|
viewBox: "0 0 16 16"
|
|
2995
|
-
}, props), _path$
|
|
2919
|
+
}, props), _path$u || (_path$u = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2996
2920
|
fill: "currentColor",
|
|
2997
2921
|
d: "M7 1c2.176 0 4 1.824 4 4 0 1.315-.666 2.501-1.673 3.234C10.869 8.792 12 10.287 12 12c0 2.176-1.824 4-4 4H3.5a.5.5 0 01-.5-.5v-14a.5.5 0 01.5-.5H7zM4 15h4c1.624 0 3-1.376 3-3S9.624 9 8 9H4v6zM7 2H4v6h3c1.624 0 3-1.376 3-3S8.624 2 7 2z"
|
|
2998
2922
|
})));
|
|
2999
2923
|
|
|
3000
|
-
var _path$
|
|
3001
|
-
function _extends$
|
|
3002
|
-
const SvgItalicStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2924
|
+
var _path$t;
|
|
2925
|
+
function _extends$y() { _extends$y = 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$y.apply(this, arguments); }
|
|
2926
|
+
const SvgItalicStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$y({
|
|
3003
2927
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3004
2928
|
width: 16,
|
|
3005
2929
|
height: 16,
|
|
3006
2930
|
focusable: "false",
|
|
3007
2931
|
viewBox: "0 0 16 16"
|
|
3008
|
-
}, props), _path$
|
|
2932
|
+
}, props), _path$t || (_path$t = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3009
2933
|
fill: "none",
|
|
3010
2934
|
stroke: "currentColor",
|
|
3011
2935
|
strokeLinecap: "round",
|
|
3012
2936
|
d: "M7.5 1.5h3M9 1.5l-3 14m-1.5 0h3"
|
|
3013
2937
|
})));
|
|
3014
2938
|
|
|
3015
|
-
var _path$
|
|
3016
|
-
function _extends$
|
|
3017
|
-
const SvgAtStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2939
|
+
var _path$s;
|
|
2940
|
+
function _extends$x() { _extends$x = 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$x.apply(this, arguments); }
|
|
2941
|
+
const SvgAtStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$x({
|
|
3018
2942
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3019
2943
|
width: 16,
|
|
3020
2944
|
height: 16,
|
|
3021
2945
|
focusable: "false",
|
|
3022
2946
|
role: "presentation"
|
|
3023
|
-
}, props), _path$
|
|
2947
|
+
}, props), _path$s || (_path$s = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3024
2948
|
fill: "none",
|
|
3025
2949
|
stroke: "currentColor",
|
|
3026
2950
|
strokeLinecap: "round",
|
|
3027
2951
|
d: "M11.5 4.5V8h0A3.5 3.5 0 018 11.5h0A3.5 3.5 0 014.5 8h0A3.5 3.5 0 018 4.5h0A3.5 3.5 0 0111.5 8h0v1.5a2 2 0 002 2h0a2 2 0 002-2V8h0A7.5 7.5 0 008 .5h0A7.5 7.5 0 00.5 8h0A7.5 7.5 0 008 15.5h3.41"
|
|
3028
2952
|
})));
|
|
3029
2953
|
|
|
3030
|
-
var _path$
|
|
3031
|
-
function _extends$
|
|
3032
|
-
const SvgClipboard = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2954
|
+
var _path$r;
|
|
2955
|
+
function _extends$w() { _extends$w = 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$w.apply(this, arguments); }
|
|
2956
|
+
const SvgClipboard = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$w({
|
|
3033
2957
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3034
2958
|
width: 16,
|
|
3035
2959
|
height: 16,
|
|
3036
2960
|
focusable: "false",
|
|
3037
2961
|
role: "presentation"
|
|
3038
|
-
}, props), _path$
|
|
2962
|
+
}, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3039
2963
|
fill: "none",
|
|
3040
2964
|
stroke: "currentColor",
|
|
3041
2965
|
strokeLinecap: "round",
|
|
3042
2966
|
d: "M9.5 4v7.7c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5V3C6.5 1.6 7.6.5 9 .5s2.5 1.1 2.5 2.5v9c0 1.9-1.6 3.5-3.5 3.5S4.5 13.9 4.5 12V4"
|
|
3043
2967
|
})));
|
|
3044
2968
|
|
|
2969
|
+
const UgClose$1 = styled__default["default"](reactNotifications.Close) `
|
|
2970
|
+
display: flex;
|
|
2971
|
+
align-items: center;
|
|
2972
|
+
justify-content: center;
|
|
2973
|
+
width: ${({ theme }) => theme.space.xl};
|
|
2974
|
+
height: ${({ theme }) => theme.space.xl};
|
|
2975
|
+
`;
|
|
2976
|
+
/**
|
|
2977
|
+
* Title is a basic component used to display a title. Often used in card headers.
|
|
2978
|
+
*/
|
|
2979
|
+
const Close = (props) => jsxRuntime.jsx(UgClose$1, Object.assign({}, props));
|
|
2980
|
+
|
|
2981
|
+
const NOTIFICATION_COMPONENT_ID = "notifications.notification";
|
|
2982
|
+
const CLOSE_COMPONENT_ID = "notifications.notification.close";
|
|
2983
|
+
const CLOSE_ICON_COMPONENT_ID = "notifications.notification.close-icon";
|
|
2984
|
+
const TITLE_COMPONENT_ID = "notifications.notification.title";
|
|
2985
|
+
const UgClose = styled__default["default"](Close).attrs((props) => {
|
|
2986
|
+
var _a;
|
|
2987
|
+
return ({
|
|
2988
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_ICON_COMPONENT_ID,
|
|
2989
|
+
});
|
|
2990
|
+
}) `
|
|
2991
|
+
${(props) => reactTheming.retrieveComponentStyles(CLOSE_ICON_COMPONENT_ID, props)};
|
|
2992
|
+
`;
|
|
2993
|
+
const UgAnchor = styled__default["default"](reactButtons.Anchor).attrs((props) => {
|
|
2994
|
+
var _a;
|
|
2995
|
+
return ({
|
|
2996
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_COMPONENT_ID,
|
|
2997
|
+
});
|
|
2998
|
+
}) `
|
|
2999
|
+
${(props) => reactTheming.retrieveComponentStyles(CLOSE_COMPONENT_ID, props)};
|
|
3000
|
+
`;
|
|
3001
|
+
const UgTitle = styled__default["default"](Title$1).attrs((props) => {
|
|
3002
|
+
var _a;
|
|
3003
|
+
return ({
|
|
3004
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : TITLE_COMPONENT_ID,
|
|
3005
|
+
});
|
|
3006
|
+
}) `
|
|
3007
|
+
${(props) => reactTheming.retrieveComponentStyles(TITLE_COMPONENT_ID, props)};
|
|
3008
|
+
`;
|
|
3009
|
+
const UgNotification = styled__default["default"](reactNotifications.Notification) `
|
|
3010
|
+
display: flex;
|
|
3011
|
+
align-items: center;
|
|
3012
|
+
justify-content: space-between;
|
|
3013
|
+
padding-right: ${({ theme }) => theme.space.md};
|
|
3014
|
+
white-space: pre;
|
|
3015
|
+
|
|
3016
|
+
${UgAnchor} {
|
|
3017
|
+
flex-shrink: 0;
|
|
3018
|
+
margin-left: ${({ theme }) => theme.space.md};
|
|
3019
|
+
}
|
|
3020
|
+
|
|
3021
|
+
${(props) => reactTheming.retrieveComponentStyles(NOTIFICATION_COMPONENT_ID, props)};
|
|
3022
|
+
`;
|
|
3023
|
+
/**
|
|
3024
|
+
* A Notification is a passive status update that keeps users informed of system progress.
|
|
3025
|
+
* <hr>
|
|
3026
|
+
* Used for this:
|
|
3027
|
+
- For a passive status update about user or system activity
|
|
3028
|
+
*/
|
|
3029
|
+
const Notification = (_a) => {
|
|
3030
|
+
var { closeText, message, onClose, type, isPrimary, isRegular } = _a, props = __rest(_a, ["closeText", "message", "onClose", "type", "isPrimary", "isRegular"]);
|
|
3031
|
+
return (jsxRuntime.jsxs(UgNotification, Object.assign({ type: type, isPrimary: isPrimary }, props, { children: [jsxRuntime.jsx(UgTitle, Object.assign({ isRegular: isRegular, type: type, isPrimary: isPrimary }, { children: message })), jsxRuntime.jsx(UgAnchor, Object.assign({ type: type, isPrimary: isPrimary, onClick: onClose }, { children: closeText !== null && closeText !== void 0 ? closeText : jsxRuntime.jsx(UgClose, {}) }))] })));
|
|
3032
|
+
};
|
|
3033
|
+
// ToastProvider
|
|
3034
|
+
const ToastProvider = (props) => (jsxRuntime.jsx(reactNotifications.ToastProvider, Object.assign({}, props)));
|
|
3035
|
+
const useToast = reactNotifications.useToast;
|
|
3036
|
+
|
|
3037
|
+
const acceptedMediaTypes = /^(image|video)\//;
|
|
3038
|
+
function useMedia() {
|
|
3039
|
+
const { addToast } = useToast();
|
|
3040
|
+
function getValidMedia(data) {
|
|
3041
|
+
const wrongFiles = Array.from(data).filter((file) => !acceptedMediaTypes.test(file.type));
|
|
3042
|
+
if (wrongFiles.length) {
|
|
3043
|
+
addToast(({ close }) => (jsxRuntime.jsx(Notification, { onClose: close, type: "error", message: wrongFiles.length === 1
|
|
3044
|
+
? `${wrongFiles[0].name} not supported, please upload video or image only`
|
|
3045
|
+
: "Some attachments are not supported, please upload video or image only", isPrimary: true })), { placement: "top" });
|
|
3046
|
+
}
|
|
3047
|
+
return Array.from(data).filter((file) => acceptedMediaTypes.test(file.type));
|
|
3048
|
+
}
|
|
3049
|
+
function getMedia(data) {
|
|
3050
|
+
return getValidMedia(data).map((file) => {
|
|
3051
|
+
return Object.assign(file, {
|
|
3052
|
+
url: URL.createObjectURL(file),
|
|
3053
|
+
isLoadingMedia: true,
|
|
3054
|
+
id: uuid.v4(),
|
|
3055
|
+
});
|
|
3056
|
+
});
|
|
3057
|
+
}
|
|
3058
|
+
return { getMedia };
|
|
3059
|
+
}
|
|
3060
|
+
|
|
3045
3061
|
const MenuContainer = styled__default["default"].div `
|
|
3046
3062
|
padding: ${({ theme }) => theme.space.xs} 0;
|
|
3047
3063
|
display: flex;
|
|
@@ -3059,59 +3075,33 @@ const VerticalDivider = styled__default["default"].div `
|
|
|
3059
3075
|
const CommentBar = ({ editor, i18n, }) => {
|
|
3060
3076
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
3061
3077
|
const { addThumbnails } = useChatContext();
|
|
3078
|
+
const { getMedia } = useMedia();
|
|
3062
3079
|
if (!editor)
|
|
3063
3080
|
return null;
|
|
3064
|
-
const
|
|
3065
|
-
|
|
3066
|
-
case "bold":
|
|
3067
|
-
return jsxRuntime.jsx(SvgBoldStroke, {});
|
|
3068
|
-
case "italic":
|
|
3069
|
-
return jsxRuntime.jsx(SvgItalicStroke, {});
|
|
3070
|
-
case "mention":
|
|
3071
|
-
return jsxRuntime.jsx(SvgAtStroke, {});
|
|
3072
|
-
case "attachment":
|
|
3073
|
-
return jsxRuntime.jsx(SvgClipboard, {});
|
|
3074
|
-
default:
|
|
3075
|
-
return null;
|
|
3076
|
-
}
|
|
3081
|
+
const handleBoldClick = () => {
|
|
3082
|
+
editor.chain().focus().toggleBold().run();
|
|
3077
3083
|
};
|
|
3078
|
-
const
|
|
3079
|
-
|
|
3080
|
-
case "bold":
|
|
3081
|
-
return editor.chain().focus().toggleBold().run();
|
|
3082
|
-
case "italic":
|
|
3083
|
-
return editor.chain().focus().toggleItalic().run();
|
|
3084
|
-
case "mention":
|
|
3085
|
-
const { from } = editor.state.selection;
|
|
3086
|
-
const char = from > 1 ? " @" : "@";
|
|
3087
|
-
return editor.chain().focus().insertContent(char).run();
|
|
3088
|
-
case "attachment":
|
|
3089
|
-
//open a file browser to select one or more images
|
|
3090
|
-
const fileInput = document.createElement("input");
|
|
3091
|
-
fileInput.type = "file";
|
|
3092
|
-
fileInput.accept = "image/*,video/*";
|
|
3093
|
-
fileInput.multiple = true;
|
|
3094
|
-
fileInput.click();
|
|
3095
|
-
fileInput.onchange = () => {
|
|
3096
|
-
const files = fileInput.files;
|
|
3097
|
-
if (files) {
|
|
3098
|
-
const mediaFiles = Array.from(files).map((file) => {
|
|
3099
|
-
return Object.assign(file, {
|
|
3100
|
-
isLoadingMedia: false,
|
|
3101
|
-
internal_id: uuid.v4(),
|
|
3102
|
-
});
|
|
3103
|
-
});
|
|
3104
|
-
if (mediaFiles.length === 0)
|
|
3105
|
-
return;
|
|
3106
|
-
addThumbnails({ files: mediaFiles });
|
|
3107
|
-
}
|
|
3108
|
-
};
|
|
3109
|
-
return;
|
|
3110
|
-
default:
|
|
3111
|
-
return;
|
|
3112
|
-
}
|
|
3084
|
+
const handleItalicClick = () => {
|
|
3085
|
+
editor.chain().focus().toggleItalic().run();
|
|
3113
3086
|
};
|
|
3114
|
-
|
|
3087
|
+
const handleMentionClick = () => {
|
|
3088
|
+
const { from } = editor.state.selection;
|
|
3089
|
+
const char = from > 1 ? " @" : "@";
|
|
3090
|
+
editor.chain().focus().insertContent(char).run();
|
|
3091
|
+
};
|
|
3092
|
+
const handleAttachmentClick = () => {
|
|
3093
|
+
const fileInput = document.createElement("input");
|
|
3094
|
+
fileInput.type = "file";
|
|
3095
|
+
fileInput.accept = "image/*,video/*";
|
|
3096
|
+
fileInput.multiple = true;
|
|
3097
|
+
fileInput.click();
|
|
3098
|
+
fileInput.onchange = () => {
|
|
3099
|
+
if (fileInput.files) {
|
|
3100
|
+
addThumbnails({ files: getMedia(fileInput.files) });
|
|
3101
|
+
}
|
|
3102
|
+
};
|
|
3103
|
+
};
|
|
3104
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(MenuContainer, Object.assign({ id: "menu-container" }, { children: [jsxRuntime.jsx(Tooltip, Object.assign({ content: `${(_b = (_a = i18n === null || i18n === void 0 ? void 0 : i18n.menu) === null || _a === void 0 ? void 0 : _a.bold) !== null && _b !== void 0 ? _b : "Bold text"} ${isMac() ? "Cmd" : "Ctrl"} + B`, placement: "top", type: "light", size: "small", hasArrow: false }, { children: jsxRuntime.jsx(IconButton, Object.assign({ size: "small", isBasic: !editor.isActive("bold"), isPrimary: editor.isActive("bold"), isPill: false, onClick: handleBoldClick }, { children: jsxRuntime.jsx(SvgBoldStroke, {}) })) })), jsxRuntime.jsx(Tooltip, Object.assign({ content: `${(_d = (_c = i18n === null || i18n === void 0 ? void 0 : i18n.menu) === null || _c === void 0 ? void 0 : _c.italic) !== null && _d !== void 0 ? _d : "Italic text"} ${isMac() ? "Cmd" : "Ctrl"} + I`, placement: "top", type: "light", size: "small", hasArrow: false }, { children: jsxRuntime.jsx(IconButton, Object.assign({ size: "small", isBasic: !editor.isActive("italic"), isPrimary: editor.isActive("italic"), isPill: false, onClick: handleItalicClick }, { children: jsxRuntime.jsx(SvgItalicStroke, {}) })) })), jsxRuntime.jsx(VerticalDivider, {}), jsxRuntime.jsx(Tooltip, Object.assign({ content: (_f = (_e = i18n === null || i18n === void 0 ? void 0 : i18n.menu) === null || _e === void 0 ? void 0 : _e.mention) !== null && _f !== void 0 ? _f : "Add a mention", placement: "top", type: "light", size: "small", hasArrow: false }, { children: jsxRuntime.jsx(IconButton, Object.assign({ size: "small", isBasic: !editor.isActive("mention"), isPrimary: editor.isActive("mention"), isPill: false, onClick: handleMentionClick }, { children: jsxRuntime.jsx(SvgAtStroke, {}) })) })), jsxRuntime.jsx(Tooltip, Object.assign({ content: (_h = (_g = i18n === null || i18n === void 0 ? void 0 : i18n.menu) === null || _g === void 0 ? void 0 : _g.attachment) !== null && _h !== void 0 ? _h : (jsxRuntime.jsxs("span", { children: ["Upload images and video.", " ", jsxRuntime.jsxs("span", Object.assign({ style: { color: theme.palette.grey[600] } }, { children: [" ", jsxRuntime.jsx("br", {}), " Max size: 5GB", " "] }))] })), placement: "top", type: "light", size: "small", hasArrow: true }, { children: jsxRuntime.jsx(IconButton, Object.assign({ size: "small", isBasic: !editor.isActive("attachment"), isPrimary: editor.isActive("attachment"), isPill: false, onClick: handleAttachmentClick }, { children: jsxRuntime.jsx(SvgClipboard, {}) })) }))] })) }));
|
|
3115
3105
|
};
|
|
3116
3106
|
|
|
3117
3107
|
const CustomMention = Mention__default["default"].extend({
|
|
@@ -3288,7 +3278,7 @@ const editorExtensions = ({ placeholderOptions, mentionableUsers, }) => {
|
|
|
3288
3278
|
},
|
|
3289
3279
|
}),
|
|
3290
3280
|
Dropcursor__default["default"].configure({
|
|
3291
|
-
color:
|
|
3281
|
+
color: getColor(colors.accentHue, 700),
|
|
3292
3282
|
width: 3,
|
|
3293
3283
|
}),
|
|
3294
3284
|
Placeholder__default["default"].configure(Object.assign({ placeholder: ({ node }) => {
|
|
@@ -3360,20 +3350,20 @@ const editorExtensions = ({ placeholderOptions, mentionableUsers, }) => {
|
|
|
3360
3350
|
];
|
|
3361
3351
|
};
|
|
3362
3352
|
|
|
3363
|
-
var _circle$
|
|
3364
|
-
function _extends$
|
|
3365
|
-
const SvgRemoveMediaIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3353
|
+
var _circle$3, _path$q, _path2$6;
|
|
3354
|
+
function _extends$v() { _extends$v = 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$v.apply(this, arguments); }
|
|
3355
|
+
const SvgRemoveMediaIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$v({
|
|
3366
3356
|
width: 56,
|
|
3367
3357
|
height: 56,
|
|
3368
3358
|
viewBox: "0 0 56 56",
|
|
3369
3359
|
fill: "#68737d",
|
|
3370
3360
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3371
|
-
}, props), _circle$
|
|
3361
|
+
}, props), _circle$3 || (_circle$3 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
3372
3362
|
cx: 28,
|
|
3373
3363
|
cy: 28,
|
|
3374
3364
|
r: 28,
|
|
3375
3365
|
fill: "#edf7ff"
|
|
3376
|
-
})), _path$
|
|
3366
|
+
})), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3377
3367
|
d: "M16.929 16.929L39.071 39.071",
|
|
3378
3368
|
stroke: "currentColor",
|
|
3379
3369
|
strokeWidth: 4
|
|
@@ -3392,182 +3382,149 @@ const StyledDeleteThumbnailX = styled__default["default"].div `
|
|
|
3392
3382
|
width: 32px;
|
|
3393
3383
|
height: 32px;
|
|
3394
3384
|
opacity: 0;
|
|
3385
|
+
transition: opacity 0.2s;
|
|
3395
3386
|
z-index: 2;
|
|
3387
|
+
color: ${({ theme }) => theme.palette.grey[800]};
|
|
3396
3388
|
`;
|
|
3397
3389
|
const DeleteThumbnailX = ({ deleteThumbnail }) => {
|
|
3398
3390
|
return (jsxRuntime.jsx(StyledDeleteThumbnailX, Object.assign({ className: "deleteThumbnail" }, { children: jsxRuntime.jsx(SvgRemoveMediaIcon, { onClick: (e) => deleteThumbnail(e) }) })));
|
|
3399
3391
|
};
|
|
3400
3392
|
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
opacity: 1;
|
|
3405
|
-
}
|
|
3406
|
-
`;
|
|
3407
|
-
const Preview$1 = styled__default["default"].div `
|
|
3408
|
-
display: flex;
|
|
3409
|
-
justify-content: center;
|
|
3410
|
-
align-items: center;
|
|
3411
|
-
height: 150px;
|
|
3412
|
-
width: 100%;
|
|
3413
|
-
background-image: url(${(props) => props.url});
|
|
3414
|
-
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
3415
|
-
background-size: contain;
|
|
3416
|
-
background-position: center;
|
|
3417
|
-
background-repeat: no-repeat;
|
|
3418
|
-
`;
|
|
3419
|
-
const ImageThumbnail = ({ src, index = 0, removeThumbnail, clickThumbnail, showX = true, isLoadingMedia = true, isError = false, }) => {
|
|
3420
|
-
const handleCancel = (e) => {
|
|
3421
|
-
e.stopPropagation();
|
|
3422
|
-
if (removeThumbnail)
|
|
3423
|
-
removeThumbnail(index);
|
|
3424
|
-
};
|
|
3425
|
-
return (jsxRuntime.jsxs(ImageCard, Object.assign({ onClick: clickThumbnail }, { children: [isLoadingMedia && (jsxRuntime.jsx(Preview$1, Object.assign({ url: "" }, { children: jsxRuntime.jsx(reactLoaders.Spinner, { style: {
|
|
3426
|
-
display: "flex",
|
|
3427
|
-
alignItems: "center",
|
|
3428
|
-
justifyContent: "center",
|
|
3429
|
-
}, size: "large" }) }))), isError && (
|
|
3430
|
-
// todo: add error icon
|
|
3431
|
-
jsxRuntime.jsx("span", { children: "error uploading media" })), !isLoadingMedia && (jsxRuntime.jsx(Preview$1, Object.assign({ url: src }, { children: showX && (jsxRuntime.jsx(DeleteThumbnailX, { deleteThumbnail: (e) => handleCancel(e) })) })))] })));
|
|
3432
|
-
};
|
|
3433
|
-
|
|
3434
|
-
var _circle$1, _path$n;
|
|
3435
|
-
function _extends$r() { _extends$r = 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$r.apply(this, arguments); }
|
|
3436
|
-
const SvgVideoPlayIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
|
|
3393
|
+
var _circle$2, _path$p;
|
|
3394
|
+
function _extends$u() { _extends$u = 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$u.apply(this, arguments); }
|
|
3395
|
+
const SvgVideoPlayIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$u({
|
|
3437
3396
|
width: 56,
|
|
3438
3397
|
height: 56,
|
|
3439
3398
|
viewBox: "0 0 56 56",
|
|
3440
3399
|
fill: "none",
|
|
3441
3400
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3442
|
-
}, props), _circle$
|
|
3401
|
+
}, props), _circle$2 || (_circle$2 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
3443
3402
|
cx: 28,
|
|
3444
3403
|
cy: 28,
|
|
3445
3404
|
r: 28,
|
|
3446
3405
|
fill: "white"
|
|
3447
|
-
})), _path$
|
|
3406
|
+
})), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3448
3407
|
d: "M47 28L18.5 44.4545L18.5 11.5455L47 28Z",
|
|
3449
3408
|
fill: "currentColor"
|
|
3450
3409
|
})));
|
|
3451
3410
|
|
|
3452
|
-
const
|
|
3411
|
+
const ImageCard = styled__default["default"](SpecialCard) `
|
|
3453
3412
|
padding: 0;
|
|
3454
3413
|
position: relative;
|
|
3455
3414
|
overflow: hidden;
|
|
3456
|
-
|
|
3457
|
-
&:hover .deleteThumbnail {
|
|
3458
|
-
opacity: 1;
|
|
3459
|
-
z-index: 9999;
|
|
3460
|
-
}
|
|
3415
|
+
width: 90px;
|
|
3461
3416
|
|
|
3462
3417
|
&:before {
|
|
3463
3418
|
content: "";
|
|
3419
|
+
font-size: ${({ theme }) => theme.fontSizes.xs};
|
|
3464
3420
|
position: absolute;
|
|
3421
|
+
padding: ${({ theme }) => theme.space.xs};
|
|
3465
3422
|
top: 0;
|
|
3466
3423
|
left: 0;
|
|
3467
3424
|
width: 100%;
|
|
3468
3425
|
height: 100%;
|
|
3469
|
-
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
3470
|
-
|
|
3471
|
-
z-index: 1;
|
|
3426
|
+
background-color: ${({ theme }) => theme.palette.grey[800]}00; // 0% opacity
|
|
3427
|
+
transition: opacity 0.2s;
|
|
3472
3428
|
}
|
|
3473
3429
|
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3430
|
+
&:hover {
|
|
3431
|
+
.deleteThumbnail {
|
|
3432
|
+
opacity: 1;
|
|
3433
|
+
}
|
|
3434
|
+
&:before {
|
|
3435
|
+
background-color: ${({ theme }) => theme.palette.grey[800]}4d; // 30% opacity
|
|
3436
|
+
}
|
|
3437
|
+
}
|
|
3438
|
+
${(p) => p.error &&
|
|
3439
|
+
`
|
|
3440
|
+
&:before{
|
|
3441
|
+
content: "Error: ${p.error}";
|
|
3442
|
+
color: ${p.theme.palette.white};
|
|
3443
|
+
background-color: ${p.theme.palette.grey[800]}b3; // 0.7 opacity
|
|
3444
|
+
}
|
|
3445
|
+
`}
|
|
3446
|
+
${(p) => p.isLoading &&
|
|
3447
|
+
`
|
|
3448
|
+
&:before{
|
|
3449
|
+
background-color: ${p.theme.palette.grey[800]}b3; // 0.7 opacity
|
|
3450
|
+
}
|
|
3451
|
+
`}
|
|
3452
|
+
&.video {
|
|
3453
|
+
svg {
|
|
3454
|
+
color: ${({ theme }) => theme.palette.grey[800]};
|
|
3455
|
+
position: absolute;
|
|
3456
|
+
top: 50%;
|
|
3457
|
+
left: 50%;
|
|
3458
|
+
transform: translate(-50%, -50%);
|
|
3459
|
+
width: 32px;
|
|
3460
|
+
height: 32px;
|
|
3461
|
+
z-index: 2;
|
|
3462
|
+
}
|
|
3482
3463
|
}
|
|
3483
3464
|
`;
|
|
3484
3465
|
const Preview = styled__default["default"].div `
|
|
3485
|
-
padding: ${({ theme }) => theme.space.md};
|
|
3486
3466
|
display: flex;
|
|
3487
3467
|
justify-content: center;
|
|
3488
3468
|
align-items: center;
|
|
3489
|
-
height:
|
|
3469
|
+
height: 100px;
|
|
3490
3470
|
width: 100%;
|
|
3471
|
+
color: ${({ theme }) => theme.palette.white};
|
|
3472
|
+
|
|
3473
|
+
${p => p.url &&
|
|
3474
|
+
`
|
|
3475
|
+
background-image: url(${p.url});
|
|
3476
|
+
background-color: ${p.theme.palette.grey[100]};
|
|
3477
|
+
background-size: cover;
|
|
3478
|
+
background-position: center;
|
|
3479
|
+
background-repeat: no-repeat;
|
|
3480
|
+
`}
|
|
3491
3481
|
|
|
3492
3482
|
> video {
|
|
3493
3483
|
width: 100%;
|
|
3494
3484
|
height: 100%;
|
|
3495
3485
|
}
|
|
3496
3486
|
`;
|
|
3497
|
-
const
|
|
3487
|
+
const Thumbnail = ({ src, type, removeThumbnail, clickThumbnail, showX, isLoadingMedia, error = "", }) => {
|
|
3498
3488
|
const handleCancel = (e) => {
|
|
3499
3489
|
e.stopPropagation();
|
|
3500
3490
|
if (removeThumbnail)
|
|
3501
|
-
removeThumbnail(
|
|
3491
|
+
removeThumbnail();
|
|
3502
3492
|
};
|
|
3503
|
-
return (jsxRuntime.
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3493
|
+
return (jsxRuntime.jsx(ImageCard, Object.assign({ onClick: clickThumbnail, className: type.includes("video") ? "video" : "image", error: error, isLoading: isLoadingMedia }, { children: isLoadingMedia ? (jsxRuntime.jsx(Preview, Object.assign({ url: src }, { children: jsxRuntime.jsx(reactLoaders.Spinner, { style: {
|
|
3494
|
+
display: "flex",
|
|
3495
|
+
position: "absolute",
|
|
3496
|
+
color: "white",
|
|
3497
|
+
alignItems: "center",
|
|
3498
|
+
justifyContent: "center",
|
|
3499
|
+
}, size: "large" }) }))) : (jsxRuntime.jsxs(Preview, Object.assign({ url: src }, { children: [showX && (jsxRuntime.jsx(DeleteThumbnailX, { deleteThumbnail: (e) => handleCancel(e) })), type.includes("video") && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("video", Object.assign({ src: src }, { children: jsxRuntime.jsx("track", { kind: "captions" }) })), jsxRuntime.jsx(SvgVideoPlayIcon, { opacity: error ? "0.3" : "1" })] }))] }))) })));
|
|
3510
3500
|
};
|
|
3511
3501
|
|
|
3512
|
-
const
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
/**
|
|
3517
|
-
* The Grid component is a framework for building modular layouts.
|
|
3518
|
-
* <hr>
|
|
3519
|
-
* Used for this:
|
|
3520
|
-
- To structure the layout of a page
|
|
3521
|
-
*/
|
|
3522
|
-
const Grid = (props) => jsxRuntime.jsx(UgGrid, Object.assign({}, props));
|
|
3523
|
-
|
|
3524
|
-
const Row$1 = (props) => jsxRuntime.jsx(reactGrid.Row, Object.assign({}, props));
|
|
3525
|
-
|
|
3526
|
-
const StyledCol$1 = styled__default["default"](reactGrid.Col) `
|
|
3527
|
-
margin-bottom: ${theme.space.lg};
|
|
3528
|
-
|
|
3529
|
-
@media screen and (max-width: ${theme.breakpoints.sm}) {
|
|
3530
|
-
margin-bottom: ${theme.space.md};
|
|
3531
|
-
}
|
|
3502
|
+
const FlexContainer = styled.styled.div `
|
|
3503
|
+
display: flex;
|
|
3504
|
+
gap: ${({ theme }) => theme.space.xs};
|
|
3505
|
+
flex-wrap: wrap;
|
|
3532
3506
|
`;
|
|
3533
|
-
const Col = (props) => jsxRuntime.jsx(StyledCol$1, Object.assign({}, props));
|
|
3534
|
-
|
|
3535
3507
|
const ThumbnailContainer = ({ openLightbox }) => {
|
|
3536
3508
|
const { thumbnails, removeThumbnail, onDeleteThumbnail } = useChatContext();
|
|
3537
|
-
|
|
3538
|
-
return
|
|
3539
|
-
}
|
|
3540
|
-
const mediaFiles = [];
|
|
3541
|
-
thumbnails.forEach((file) => {
|
|
3542
|
-
mediaFiles.push({
|
|
3509
|
+
const mediaFiles = React.useMemo(() => {
|
|
3510
|
+
return thumbnails.map((file) => ({
|
|
3543
3511
|
fileName: file.name,
|
|
3544
3512
|
fileType: file.type,
|
|
3545
|
-
previewUrl:
|
|
3546
|
-
|
|
3513
|
+
previewUrl: file.url,
|
|
3514
|
+
id: file.id,
|
|
3547
3515
|
isLoadingMedia: file.isLoadingMedia,
|
|
3548
|
-
|
|
3549
|
-
|
|
3516
|
+
error: file.error,
|
|
3517
|
+
}));
|
|
3518
|
+
}, [thumbnails]);
|
|
3550
3519
|
if (!mediaFiles || mediaFiles.length === 0) {
|
|
3551
3520
|
return null;
|
|
3552
3521
|
}
|
|
3553
|
-
return (jsxRuntime.jsx(
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
}, clickThumbnail: () => {
|
|
3560
|
-
openLightbox(thumbnails[index], index);
|
|
3561
|
-
} }, index) })));
|
|
3562
|
-
if (file.fileType.includes("video"))
|
|
3563
|
-
return (jsxRuntime.jsx(Col, Object.assign({ xs: 12, sm: 3, className: "flex-3-sm" }, { children: jsxRuntime.jsx(VideoThumbnail, { src: file.previewUrl, index: index, showX: true, isLoadingMedia: file.isLoadingMedia, removeThumbnail: () => {
|
|
3564
|
-
removeThumbnail(index);
|
|
3565
|
-
onDeleteThumbnail(file.internal_id);
|
|
3566
|
-
}, clickThumbnail: () => {
|
|
3567
|
-
openLightbox(thumbnails[index], index);
|
|
3568
|
-
} }, index) })));
|
|
3569
|
-
return null;
|
|
3570
|
-
}) })) }));
|
|
3522
|
+
return (jsxRuntime.jsx(FlexContainer, { children: mediaFiles.map((file, index) => (jsxRuntime.jsx(Thumbnail, { src: file.previewUrl, showX: true, type: file.fileType, isLoadingMedia: file.isLoadingMedia, error: file.error, removeThumbnail: () => {
|
|
3523
|
+
removeThumbnail(index);
|
|
3524
|
+
onDeleteThumbnail(file.id);
|
|
3525
|
+
}, clickThumbnail: () => {
|
|
3526
|
+
openLightbox(index);
|
|
3527
|
+
} }, file.id))) }));
|
|
3571
3528
|
};
|
|
3572
3529
|
|
|
3573
3530
|
const UgModalBody = styled__default["default"](reactModals.Body) `
|
|
@@ -3636,28 +3593,28 @@ Lightbox.Body = ModalBody; // Includes Main and Details
|
|
|
3636
3593
|
Lightbox.Footer = Footer$3;
|
|
3637
3594
|
Lightbox.Close = reactModals.Close;
|
|
3638
3595
|
|
|
3639
|
-
var _path$
|
|
3640
|
-
function _extends$
|
|
3641
|
-
const SvgChevronLeftStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3596
|
+
var _path$o;
|
|
3597
|
+
function _extends$t() { _extends$t = 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$t.apply(this, arguments); }
|
|
3598
|
+
const SvgChevronLeftStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
|
|
3642
3599
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3643
3600
|
width: 16,
|
|
3644
3601
|
height: 16,
|
|
3645
3602
|
focusable: "false",
|
|
3646
3603
|
viewBox: "0 0 16 16"
|
|
3647
|
-
}, props), _path$
|
|
3604
|
+
}, props), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3648
3605
|
fill: "currentColor",
|
|
3649
3606
|
d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
|
|
3650
3607
|
})));
|
|
3651
3608
|
|
|
3652
|
-
var _path$
|
|
3653
|
-
function _extends$
|
|
3654
|
-
const SvgChevronRightStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3609
|
+
var _path$n;
|
|
3610
|
+
function _extends$s() { _extends$s = 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$s.apply(this, arguments); }
|
|
3611
|
+
const SvgChevronRightStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
|
|
3655
3612
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3656
3613
|
width: 16,
|
|
3657
3614
|
height: 16,
|
|
3658
3615
|
focusable: "false",
|
|
3659
3616
|
viewBox: "0 0 16 16"
|
|
3660
|
-
}, props), _path$
|
|
3617
|
+
}, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3661
3618
|
fill: "currentColor",
|
|
3662
3619
|
d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
|
|
3663
3620
|
})));
|
|
@@ -3880,94 +3837,283 @@ Slider.Slide = Slide;
|
|
|
3880
3837
|
Slider.PrevButton = PrevButton;
|
|
3881
3838
|
Slider.NextButton = NextButton;
|
|
3882
3839
|
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
z-index: 1;
|
|
3900
|
-
`;
|
|
3901
|
-
const Content$1 = styled__default["default"].div `
|
|
3902
|
-
display: flex;
|
|
3903
|
-
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
3904
|
-
border-radius: 2px;
|
|
3905
|
-
width: auto;
|
|
3906
|
-
padding: 2px 4px;
|
|
3907
|
-
display: inline-flex;
|
|
3908
|
-
color: white;
|
|
3909
|
-
align-items: center;
|
|
3910
|
-
justify-content: center;
|
|
3911
|
-
min-height: 16px;
|
|
3912
|
-
`;
|
|
3913
|
-
const PlayerTooltip = (_a) => {
|
|
3914
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
3915
|
-
return (jsxRuntime.jsx(Wrapper$1, Object.assign({}, props, { children: jsxRuntime.jsx(Content$1, { children: children }) })));
|
|
3916
|
-
};
|
|
3840
|
+
var _path$m, _path2$5;
|
|
3841
|
+
function _extends$r() { _extends$r = 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$r.apply(this, arguments); }
|
|
3842
|
+
const SvgVolumeMutedFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
|
|
3843
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3844
|
+
width: 16,
|
|
3845
|
+
height: 16,
|
|
3846
|
+
focusable: "false",
|
|
3847
|
+
viewBox: "0 0 16 16"
|
|
3848
|
+
}, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3849
|
+
stroke: "currentColor",
|
|
3850
|
+
strokeLinecap: "round",
|
|
3851
|
+
d: "M11.5 10l4-4m-4 0l4 4"
|
|
3852
|
+
})), _path2$5 || (_path2$5 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3853
|
+
fill: "currentColor",
|
|
3854
|
+
d: "M9 15.29c-.26 0-.51-.1-.71-.29l-4-4H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h3.29l4-4a1.002 1.002 0 011.71.71V14.3a.986.986 0 01-1 .99z"
|
|
3855
|
+
})));
|
|
3917
3856
|
|
|
3918
|
-
var _path$
|
|
3919
|
-
function _extends$
|
|
3920
|
-
const
|
|
3857
|
+
var _path$l, _path2$4;
|
|
3858
|
+
function _extends$q() { _extends$q = 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$q.apply(this, arguments); }
|
|
3859
|
+
const SvgVolumeUnmutedFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
|
|
3921
3860
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3922
3861
|
width: 16,
|
|
3923
3862
|
height: 16,
|
|
3924
3863
|
focusable: "false",
|
|
3925
3864
|
viewBox: "0 0 16 16"
|
|
3926
|
-
}, props), _path$
|
|
3865
|
+
}, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3927
3866
|
fill: "currentColor",
|
|
3928
|
-
d: "
|
|
3867
|
+
d: "M9 15.29c-.26 0-.51-.1-.71-.29l-4-4H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h3.29l4-4a1.002 1.002 0 011.71.71V14.3a.986.986 0 01-1 .99z"
|
|
3868
|
+
})), _path2$4 || (_path2$4 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3869
|
+
fill: "none",
|
|
3870
|
+
stroke: "currentColor",
|
|
3871
|
+
strokeLinecap: "round",
|
|
3872
|
+
d: "M11.77 9.77c.45-.45.73-1.08.73-1.77s-.28-1.31-.73-1.77m2.17 5.6c.97-.99 1.56-2.34 1.56-3.83 0-1.52-.62-2.89-1.61-3.89"
|
|
3929
3873
|
})));
|
|
3930
3874
|
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3875
|
+
const ControlButton = styled__default["default"](IconButton) `
|
|
3876
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
3877
|
+
`;
|
|
3878
|
+
|
|
3879
|
+
const AudioButton = () => {
|
|
3880
|
+
const [hasAudio, setHasAudio] = React.useState(false);
|
|
3881
|
+
const { isMuted, setMuted, context } = Video.useVideoContext();
|
|
3882
|
+
const { player } = context;
|
|
3883
|
+
const checkAudio = (video) => {
|
|
3884
|
+
if (!video) {
|
|
3885
|
+
return false;
|
|
3886
|
+
}
|
|
3887
|
+
const videohasAudio = video.mozHasAudio ||
|
|
3888
|
+
Boolean(video.webkitAudioDecodedByteCount) ||
|
|
3889
|
+
Boolean(video.audioTracks && video.audioTracks.length);
|
|
3890
|
+
setHasAudio(videohasAudio);
|
|
3891
|
+
};
|
|
3892
|
+
const hasVolume = (video) => {
|
|
3893
|
+
if (!video) {
|
|
3894
|
+
return false;
|
|
3895
|
+
}
|
|
3896
|
+
return video.volume > 0;
|
|
3897
|
+
};
|
|
3898
|
+
React.useEffect(() => {
|
|
3899
|
+
if (player && (player === null || player === void 0 ? void 0 : player.ref)) {
|
|
3900
|
+
setMuted(!hasVolume(player.ref.current));
|
|
3901
|
+
checkAudio(player.ref.current);
|
|
3902
|
+
}
|
|
3903
|
+
}, [context.isPlaying, isMuted, player, setMuted]);
|
|
3904
|
+
return (jsxRuntime.jsx(ControlButton, Object.assign({ disabled: !hasAudio, onClick: () => {
|
|
3905
|
+
if (player === null || player === void 0 ? void 0 : player.ref.current) {
|
|
3906
|
+
player.ref.current.volume = player.ref.current.volume > 0 ? 0 : 1;
|
|
3907
|
+
setMuted(!player.ref.current.volume);
|
|
3908
|
+
}
|
|
3909
|
+
} }, { children: isMuted || !hasAudio ? jsxRuntime.jsx(SvgVolumeMutedFill, {}) : jsxRuntime.jsx(SvgVolumeUnmutedFill, {}) })));
|
|
3910
|
+
};
|
|
3911
|
+
|
|
3912
|
+
const ProgressContext = React.createContext(null);
|
|
3913
|
+
const ProgressContextProvider = ({ children, }) => {
|
|
3914
|
+
const [isGrabbing, setIsGrabbing] = React.useState(false);
|
|
3915
|
+
const [fromEnd, setFromEnd] = React.useState(false);
|
|
3916
|
+
const [activeBookmark, setactiveBookmark] = React.useState(undefined);
|
|
3917
|
+
const progressContextValue = React.useMemo(() => ({
|
|
3918
|
+
isGrabbing,
|
|
3919
|
+
fromEnd,
|
|
3920
|
+
activeBookmark,
|
|
3921
|
+
setIsGrabbing,
|
|
3922
|
+
setFromEnd,
|
|
3923
|
+
setactiveBookmark,
|
|
3924
|
+
reset: () => {
|
|
3925
|
+
setIsGrabbing(false);
|
|
3926
|
+
setFromEnd(false);
|
|
3927
|
+
setactiveBookmark(undefined);
|
|
3928
|
+
},
|
|
3929
|
+
}), [isGrabbing, fromEnd, activeBookmark]);
|
|
3930
|
+
return (jsxRuntime.jsx(ProgressContext.Provider, Object.assign({ value: progressContextValue }, { children: children })));
|
|
3931
|
+
};
|
|
3932
|
+
const useProgressContext = () => {
|
|
3933
|
+
const context = React.useContext(ProgressContext);
|
|
3934
|
+
if (!context)
|
|
3935
|
+
throw new Error("Provider not found for ProgressContextProvider");
|
|
3936
|
+
return context; // Now we can use the context in the component, SAFELY.
|
|
3937
|
+
};
|
|
3938
|
+
|
|
3939
|
+
var _g$2;
|
|
3940
|
+
function _extends$p() { _extends$p = 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$p.apply(this, arguments); }
|
|
3941
|
+
const SvgGrip = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
|
|
3934
3942
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3935
3943
|
width: 16,
|
|
3936
3944
|
height: 16,
|
|
3937
3945
|
focusable: "false",
|
|
3938
3946
|
viewBox: "0 0 16 16"
|
|
3939
|
-
}, props), _g$
|
|
3947
|
+
}, props), _g$2 || (_g$2 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
3940
3948
|
fill: "currentColor"
|
|
3941
3949
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3942
|
-
width:
|
|
3943
|
-
height:
|
|
3944
|
-
x:
|
|
3950
|
+
width: 2,
|
|
3951
|
+
height: 2,
|
|
3952
|
+
x: 5,
|
|
3945
3953
|
y: 1,
|
|
3946
|
-
rx:
|
|
3947
|
-
ry:
|
|
3954
|
+
rx: 0.5,
|
|
3955
|
+
ry: 0.5
|
|
3948
3956
|
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3949
|
-
width:
|
|
3950
|
-
height:
|
|
3957
|
+
width: 2,
|
|
3958
|
+
height: 2,
|
|
3951
3959
|
x: 9,
|
|
3952
3960
|
y: 1,
|
|
3953
|
-
rx:
|
|
3954
|
-
ry:
|
|
3961
|
+
rx: 0.5,
|
|
3962
|
+
ry: 0.5
|
|
3963
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3964
|
+
width: 2,
|
|
3965
|
+
height: 2,
|
|
3966
|
+
x: 5,
|
|
3967
|
+
y: 5,
|
|
3968
|
+
rx: 0.5,
|
|
3969
|
+
ry: 0.5
|
|
3970
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3971
|
+
width: 2,
|
|
3972
|
+
height: 2,
|
|
3973
|
+
x: 9,
|
|
3974
|
+
y: 5,
|
|
3975
|
+
rx: 0.5,
|
|
3976
|
+
ry: 0.5
|
|
3977
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3978
|
+
width: 2,
|
|
3979
|
+
height: 2,
|
|
3980
|
+
x: 5,
|
|
3981
|
+
y: 9,
|
|
3982
|
+
rx: 0.5,
|
|
3983
|
+
ry: 0.5
|
|
3984
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3985
|
+
width: 2,
|
|
3986
|
+
height: 2,
|
|
3987
|
+
x: 9,
|
|
3988
|
+
y: 9,
|
|
3989
|
+
rx: 0.5,
|
|
3990
|
+
ry: 0.5
|
|
3991
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3992
|
+
width: 2,
|
|
3993
|
+
height: 2,
|
|
3994
|
+
x: 5,
|
|
3995
|
+
y: 13,
|
|
3996
|
+
rx: 0.5,
|
|
3997
|
+
ry: 0.5
|
|
3998
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3999
|
+
width: 2,
|
|
4000
|
+
height: 2,
|
|
4001
|
+
x: 9,
|
|
4002
|
+
y: 13,
|
|
4003
|
+
rx: 0.5,
|
|
4004
|
+
ry: 0.5
|
|
3955
4005
|
}))));
|
|
3956
4006
|
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
4007
|
+
const StyledGrabber = styled.styled.div `
|
|
4008
|
+
position: absolute;
|
|
4009
|
+
display: none;
|
|
4010
|
+
${({ isEnd }) => isEnd
|
|
4011
|
+
? `
|
|
4012
|
+
right: 0;
|
|
4013
|
+
border-top-right-radius: 2px;
|
|
4014
|
+
border-bottom-right-radius: 2px;
|
|
4015
|
+
`
|
|
4016
|
+
: `
|
|
4017
|
+
left: 0;
|
|
4018
|
+
border-top-left-radius: 2px;
|
|
4019
|
+
border-bottom-left-radius: 2px;
|
|
4020
|
+
`}
|
|
4021
|
+
height: 100%;
|
|
4022
|
+
width: 8px;
|
|
4023
|
+
background-color: white;
|
|
4024
|
+
z-index: 2;
|
|
4025
|
+
cursor: ew-resize;
|
|
4026
|
+
|
|
4027
|
+
div {
|
|
4028
|
+
display: flex;
|
|
4029
|
+
justify-content: center;
|
|
4030
|
+
align-items: center;
|
|
4031
|
+
height: 100%;
|
|
4032
|
+
width: 100%;
|
|
4033
|
+
color: ${({ theme }) => theme.palette.grey[500]};
|
|
4034
|
+
svg {
|
|
4035
|
+
width: auto;
|
|
4036
|
+
height: 50%;
|
|
4037
|
+
}
|
|
4038
|
+
}
|
|
4039
|
+
`;
|
|
4040
|
+
const activeBookMark = styled.css `
|
|
4041
|
+
height: 250%;
|
|
4042
|
+
transform: translateY(-30%);
|
|
4043
|
+
cursor: pointer;
|
|
4044
|
+
z-index: 2;
|
|
4045
|
+
border-radius: 4px;
|
|
4046
|
+
|
|
4047
|
+
${StyledGrabber} {
|
|
4048
|
+
display: block;
|
|
4049
|
+
}
|
|
4050
|
+
`;
|
|
4051
|
+
const Rect = styled.styled.div `
|
|
4052
|
+
position: absolute;
|
|
4053
|
+
height: 110%;
|
|
4054
|
+
background-color: ${({ hue, theme }) => getColor(hue || theme.palette.grey[800], undefined, undefined, 0.8)};
|
|
4055
|
+
z-index: 1;
|
|
4056
|
+
border-radius: 2px;
|
|
4057
|
+
color: white;
|
|
4058
|
+
transition: width 0.1s ease;
|
|
4059
|
+
|
|
4060
|
+
&:hover {
|
|
4061
|
+
background-color: ${({ hue, theme }) => hue || theme.palette.grey[800]};
|
|
4062
|
+
${activeBookMark}
|
|
4063
|
+
}
|
|
4064
|
+
|
|
4065
|
+
${({ isActive }) => isActive && activeBookMark}
|
|
4066
|
+
`;
|
|
4067
|
+
const StyledTooltip$1 = styled.styled(Tooltip) `
|
|
4068
|
+
margin-bottom: ${({ theme }) => theme.space.sm};
|
|
4069
|
+
color: ${({ tooltipColor }) => tooltipColor};
|
|
4070
|
+
|
|
4071
|
+
`;
|
|
4072
|
+
const Grabber = (props) => {
|
|
4073
|
+
const { observation } = props;
|
|
4074
|
+
const { setIsGrabbing, setactiveBookmark, setFromEnd } = useProgressContext();
|
|
4075
|
+
const handleDragStart = (e) => {
|
|
4076
|
+
setIsGrabbing(true);
|
|
4077
|
+
setactiveBookmark(observation);
|
|
4078
|
+
setFromEnd(!!props.isEnd);
|
|
4079
|
+
e.preventDefault();
|
|
4080
|
+
e.stopPropagation();
|
|
4081
|
+
};
|
|
4082
|
+
return (jsxRuntime.jsx(StyledGrabber, Object.assign({ isEnd: props.isEnd, onMouseDown: handleDragStart, onMouseMove: props.handleMouseMove }, { children: jsxRuntime.jsx("div", { children: jsxRuntime.jsx(SvgGrip, {}) }) })));
|
|
4083
|
+
};
|
|
4084
|
+
const Bookmark = (props) => {
|
|
4085
|
+
var _a, _b;
|
|
4086
|
+
const { start, end, hue, tooltipContent } = props;
|
|
4087
|
+
const { context } = Video.useVideoContext();
|
|
4088
|
+
const videoStart = context.part.start || 0;
|
|
4089
|
+
const videoEnd = context.part.end || ((_a = context.player) === null || _a === void 0 ? void 0 : _a.totalTime) || 0;
|
|
4090
|
+
const duration = videoEnd - videoStart || ((_b = context.player) === null || _b === void 0 ? void 0 : _b.totalTime) || 0; //relative
|
|
4091
|
+
const { activeBookmark } = useProgressContext();
|
|
4092
|
+
if (!context.player || !context.player.ref) {
|
|
4093
|
+
return null;
|
|
4094
|
+
}
|
|
4095
|
+
if (start > videoEnd || start < videoStart)
|
|
4096
|
+
return null;
|
|
4097
|
+
return (jsxRuntime.jsx(StyledTooltip$1, Object.assign({ content: tooltipContent, type: "light", size: "large", isTransparent: true }, { children: jsxRuntime.jsxs(Rect, Object.assign({ isActive: activeBookmark && activeBookmark.id === props.id, hue: hue, style: {
|
|
4098
|
+
left: `${((start - videoStart) / duration) * 100}%`,
|
|
4099
|
+
width: `${((end - start) / duration) * 100}%`,
|
|
4100
|
+
}, onClick: props.onClick }, { children: [jsxRuntime.jsx(Grabber, { observation: props }), jsxRuntime.jsx(Grabber, { isEnd: true, observation: props })] })) })));
|
|
4101
|
+
};
|
|
4102
|
+
|
|
4103
|
+
var _path$k, _path2$3, _path3$1;
|
|
4104
|
+
function _extends$o() { _extends$o = 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$o.apply(this, arguments); }
|
|
4105
|
+
const SvgBackSecondsFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
|
|
3960
4106
|
width: 16,
|
|
3961
4107
|
height: 16,
|
|
3962
4108
|
viewBox: "0 0 16 16",
|
|
3963
4109
|
fill: "none",
|
|
3964
4110
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3965
|
-
}, props), _path$
|
|
4111
|
+
}, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3966
4112
|
fillRule: "evenodd",
|
|
3967
4113
|
clipRule: "evenodd",
|
|
3968
|
-
d: "
|
|
4114
|
+
d: "M4.34099 3.5C5.25886 2.85974 6.34919 2.5 7.5 2.5C10.5477 2.5 13 4.95228 13 8C13 11.0477 10.5477 13.5 7.5 13.5C5.79771 13.5 4.25432 12.7171 3.18087 11.3753C2.83586 10.944 2.20657 10.8741 1.7753 11.2191C1.34404 11.5641 1.27412 12.1934 1.61913 12.6247C3.06275 14.4292 5.17372 15.5 7.5 15.5C11.6523 15.5 15 12.1523 15 8C15 3.84772 11.6523 0.5 7.5 0.5C5.84359 0.5 4.28318 1.04496 3 2.00147V1C3 0.447715 2.55229 0 2 0C1.44771 0 1 0.447715 1 1V4C1 4.85228 1.64772 5.5 2.5 5.5H5.5C6.05229 5.5 6.5 5.05228 6.5 4.5C6.5 3.94772 6.05229 3.5 5.5 3.5H4.34099Z",
|
|
3969
4115
|
fill: "currentColor"
|
|
3970
|
-
})), _path2$
|
|
4116
|
+
})), _path2$3 || (_path2$3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3971
4117
|
d: "M5.5 7.63073V7.07008H6.67566V11H6.02566V7.63073H5.5Z",
|
|
3972
4118
|
fill: "currentColor"
|
|
3973
4119
|
})), _path3$1 || (_path3$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -3975,20 +4121,20 @@ const SvgForwardSecondsFill = props => /*#__PURE__*/React__namespace.createEleme
|
|
|
3975
4121
|
fill: "currentColor"
|
|
3976
4122
|
})));
|
|
3977
4123
|
|
|
3978
|
-
var _path$
|
|
3979
|
-
function _extends$
|
|
3980
|
-
const
|
|
4124
|
+
var _path$j, _path2$2, _path3;
|
|
4125
|
+
function _extends$n() { _extends$n = 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$n.apply(this, arguments); }
|
|
4126
|
+
const SvgForwardSecondsFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
|
|
3981
4127
|
width: 16,
|
|
3982
4128
|
height: 16,
|
|
3983
4129
|
viewBox: "0 0 16 16",
|
|
3984
4130
|
fill: "none",
|
|
3985
4131
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3986
|
-
}, props), _path$
|
|
4132
|
+
}, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3987
4133
|
fillRule: "evenodd",
|
|
3988
4134
|
clipRule: "evenodd",
|
|
3989
|
-
d: "
|
|
4135
|
+
d: "M11.659 3.5C10.7411 2.85974 9.65081 2.5 8.5 2.5C5.45228 2.5 3 4.95228 3 8C3 11.0477 5.45228 13.5 8.5 13.5C10.2023 13.5 11.7457 12.7171 12.8191 11.3753C13.1641 10.944 13.7934 10.8741 14.2247 11.2191C14.656 11.5641 14.7259 12.1934 14.3809 12.6247C12.9372 14.4292 10.8263 15.5 8.5 15.5C4.34772 15.5 1 12.1523 1 8C1 3.84772 4.34772 0.5 8.5 0.5C10.1564 0.5 11.7168 1.04496 13 2.00147V1C13 0.447715 13.4477 0 14 0C14.5523 0 15 0.447715 15 1V4C15 4.85228 14.3523 5.5 13.5 5.5H10.5C9.94771 5.5 9.5 5.05228 9.5 4.5C9.5 3.94772 9.94771 3.5 10.5 3.5H11.659Z",
|
|
3990
4136
|
fill: "currentColor"
|
|
3991
|
-
})), _path2$
|
|
4137
|
+
})), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3992
4138
|
d: "M5.5 7.63073V7.07008H6.67566V11H6.02566V7.63073H5.5Z",
|
|
3993
4139
|
fill: "currentColor"
|
|
3994
4140
|
})), _path3 || (_path3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -3996,7 +4142,46 @@ const SvgBackSecondsFill = props => /*#__PURE__*/React__namespace.createElement(
|
|
|
3996
4142
|
fill: "currentColor"
|
|
3997
4143
|
})));
|
|
3998
4144
|
|
|
3999
|
-
var
|
|
4145
|
+
var _g$1;
|
|
4146
|
+
function _extends$m() { _extends$m = 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$m.apply(this, arguments); }
|
|
4147
|
+
const SvgPauseFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
|
|
4148
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4149
|
+
width: 16,
|
|
4150
|
+
height: 16,
|
|
4151
|
+
focusable: "false",
|
|
4152
|
+
viewBox: "0 0 16 16"
|
|
4153
|
+
}, props), _g$1 || (_g$1 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
4154
|
+
fill: "currentColor"
|
|
4155
|
+
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
4156
|
+
width: 4,
|
|
4157
|
+
height: 14,
|
|
4158
|
+
x: 3,
|
|
4159
|
+
y: 1,
|
|
4160
|
+
rx: 1,
|
|
4161
|
+
ry: 1
|
|
4162
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
4163
|
+
width: 4,
|
|
4164
|
+
height: 14,
|
|
4165
|
+
x: 9,
|
|
4166
|
+
y: 1,
|
|
4167
|
+
rx: 1,
|
|
4168
|
+
ry: 1
|
|
4169
|
+
}))));
|
|
4170
|
+
|
|
4171
|
+
var _path$i;
|
|
4172
|
+
function _extends$l() { _extends$l = 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$l.apply(this, arguments); }
|
|
4173
|
+
const SvgPlayFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
|
|
4174
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4175
|
+
width: 16,
|
|
4176
|
+
height: 16,
|
|
4177
|
+
focusable: "false",
|
|
4178
|
+
viewBox: "0 0 16 16"
|
|
4179
|
+
}, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4180
|
+
fill: "currentColor",
|
|
4181
|
+
d: "M6 15.79c-.13 0-.26-.03-.38-.08a.977.977 0 01-.62-.92V1.21a1 1 0 01.62-.93C6 .12 6.42.21 6.71.5l6.44 6.44c.58.58.58 1.54 0 2.12L6.71 15.5c-.19.19-.45.29-.71.29z"
|
|
4182
|
+
})));
|
|
4183
|
+
|
|
4184
|
+
var _path$h, _path2$1;
|
|
4000
4185
|
function _extends$k() { _extends$k = 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$k.apply(this, arguments); }
|
|
4001
4186
|
const SvgPreviousFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
|
|
4002
4187
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -4007,7 +4192,7 @@ const SvgPreviousFill = props => /*#__PURE__*/React__namespace.createElement("sv
|
|
|
4007
4192
|
}, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4008
4193
|
d: "M2.75 20C2.75 20.5523 3.19772 21 3.75 21C4.30228 21 4.75 20.5523 4.75 20L4.75 4C4.75 3.44772 4.30229 3 3.75 3C3.19772 3 2.75 3.44772 2.75 4V20Z",
|
|
4009
4194
|
fill: "currentColor"
|
|
4010
|
-
})), _path2$
|
|
4195
|
+
})), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4011
4196
|
d: "M20.75 19.0526C20.75 20.4774 19.1383 21.305 17.9803 20.4748L7.51062 12.9682C6.50574 12.2477 6.54467 10.7407 7.5854 10.073L18.0551 3.35665C19.2198 2.60946 20.75 3.44583 20.75 4.82961L20.75 19.0526Z",
|
|
4012
4197
|
fill: "currentColor"
|
|
4013
4198
|
})));
|
|
@@ -4037,8 +4222,9 @@ const getNextPlaybackRate = (rate = 1) => {
|
|
|
4037
4222
|
const StyledDiv$3 = styled__default["default"].div `
|
|
4038
4223
|
display: flex;
|
|
4039
4224
|
align-items: center;
|
|
4225
|
+
justify-content: center;
|
|
4040
4226
|
`;
|
|
4041
|
-
const ControlsGroupCenter = () => {
|
|
4227
|
+
const ControlsGroupCenter = (props) => {
|
|
4042
4228
|
var _a;
|
|
4043
4229
|
const [playBackRate, setPlayBackRate] = React.useState(1);
|
|
4044
4230
|
const { context, togglePlay } = Video.useVideoContext();
|
|
@@ -4061,107 +4247,73 @@ const ControlsGroupCenter = () => {
|
|
|
4061
4247
|
const nextTime = videoRef.currentTime + 10;
|
|
4062
4248
|
videoRef.currentTime = nextTime;
|
|
4063
4249
|
};
|
|
4064
|
-
return (jsxRuntime.jsxs(StyledDiv$3, { children: [jsxRuntime.jsx(
|
|
4250
|
+
return (jsxRuntime.jsxs(StyledDiv$3, Object.assign({}, props, { children: [jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4065
4251
|
if (videoRef) {
|
|
4066
4252
|
videoRef.currentTime = 0;
|
|
4067
4253
|
}
|
|
4068
4254
|
e.stopPropagation();
|
|
4069
|
-
} }, { children: jsxRuntime.jsx(SvgPreviousFill, {}) })), jsxRuntime.jsx(
|
|
4255
|
+
} }, { children: jsxRuntime.jsx(SvgPreviousFill, {}) })), jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4070
4256
|
onRewind();
|
|
4071
4257
|
e.stopPropagation();
|
|
4072
|
-
} }, { children: jsxRuntime.jsx(SvgBackSecondsFill, {}) })), jsxRuntime.jsx(
|
|
4258
|
+
} }, { children: jsxRuntime.jsx(SvgBackSecondsFill, {}) })), jsxRuntime.jsx(ControlButton, Object.assign({ size: "large", onClick: togglePlay }, { children: isPlaying ? (jsxRuntime.jsx(SvgPauseFill, { style: { width: "24px", height: "24px" } })) : (jsxRuntime.jsx(SvgPlayFill, { style: { width: "24px", height: "24px" } })) })), jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4073
4259
|
onForward();
|
|
4074
4260
|
e.stopPropagation();
|
|
4075
|
-
} }, { children: jsxRuntime.jsx(SvgForwardSecondsFill, {}) })), jsxRuntime.jsx(
|
|
4261
|
+
} }, { children: jsxRuntime.jsx(SvgForwardSecondsFill, {}) })), jsxRuntime.jsx(ControlButton, Object.assign({ isPill: true, onClick: (e) => {
|
|
4076
4262
|
const newSpeed = getNextPlaybackRate(playBackRate);
|
|
4077
4263
|
if (videoRef === null || videoRef === void 0 ? void 0 : videoRef.playbackRate) {
|
|
4078
4264
|
setPlayBackRate(newSpeed);
|
|
4079
4265
|
videoRef.playbackRate = newSpeed;
|
|
4080
4266
|
}
|
|
4081
4267
|
e.stopPropagation();
|
|
4082
|
-
} }, { children: jsxRuntime.jsxs(SM, Object.assign({ isBold: true, style: { lineHeight: "16px" } }, { children: [playBackRate, "x"] })) }))] }));
|
|
4268
|
+
} }, { children: jsxRuntime.jsxs(SM, Object.assign({ isBold: true, style: { lineHeight: "16px" } }, { children: [playBackRate, "x"] })) }))] })));
|
|
4083
4269
|
};
|
|
4084
4270
|
|
|
4085
|
-
|
|
4086
|
-
position: absolute;
|
|
4087
|
-
bottom: ${({ theme }) => theme.space.sm};
|
|
4088
|
-
right: 0;
|
|
4089
|
-
|
|
4090
|
-
padding: 0 ${({ theme }) => theme.space.xs};
|
|
4091
|
-
|
|
4092
|
-
span {
|
|
4093
|
-
color: ${({ theme }) => theme.palette.grey[300]};
|
|
4094
|
-
}
|
|
4095
|
-
`;
|
|
4096
|
-
const TimeLabel = ({ current, duration, }) => (jsxRuntime.jsx(StyledDiv$2, { children: jsxRuntime.jsxs(SM, Object.assign({ tag: "span" }, { children: [current, "/", duration] })) }));
|
|
4097
|
-
|
|
4098
|
-
var _path$g, _path2$2;
|
|
4271
|
+
var _path$g, _circle$1;
|
|
4099
4272
|
function _extends$j() { _extends$j = 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$j.apply(this, arguments); }
|
|
4100
|
-
const
|
|
4273
|
+
const SvgTagStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
|
|
4101
4274
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4102
4275
|
width: 16,
|
|
4103
4276
|
height: 16,
|
|
4104
4277
|
focusable: "false",
|
|
4105
4278
|
viewBox: "0 0 16 16"
|
|
4106
4279
|
}, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4280
|
+
fill: "none",
|
|
4107
4281
|
stroke: "currentColor",
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4282
|
+
d: "M.5 1v5.3c0 .1.1.3.1.4l8.5 8.5c.2.2.5.2.7 0l5.3-5.3c.2-.2.2-.5 0-.7L6.6.6S6.4.5 6.3.5H1C.7.5.5.7.5 1z"
|
|
4283
|
+
})), _circle$1 || (_circle$1 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
4284
|
+
cx: 4,
|
|
4285
|
+
cy: 4,
|
|
4286
|
+
r: 1,
|
|
4287
|
+
fill: "currentColor"
|
|
4113
4288
|
})));
|
|
4114
4289
|
|
|
4115
|
-
var _path$f
|
|
4290
|
+
var _path$f;
|
|
4116
4291
|
function _extends$i() { _extends$i = 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$i.apply(this, arguments); }
|
|
4117
|
-
const
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
focusable: "false",
|
|
4122
|
-
viewBox: "0 0 16 16"
|
|
4123
|
-
}, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4124
|
-
fill: "currentColor",
|
|
4125
|
-
d: "M9 15.29c-.26 0-.51-.1-.71-.29l-4-4H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h3.29l4-4a1.002 1.002 0 011.71.71V14.3a.986.986 0 01-1 .99z"
|
|
4126
|
-
})), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4292
|
+
const SvgPlus$1 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
|
|
4293
|
+
width: 12,
|
|
4294
|
+
height: 12,
|
|
4295
|
+
viewBox: "0 0 12 12",
|
|
4127
4296
|
fill: "none",
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4297
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
4298
|
+
}, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4299
|
+
fillRule: "evenodd",
|
|
4300
|
+
clipRule: "evenodd",
|
|
4301
|
+
d: "M6.5 1C6.19318 1 5.94444 1.24873 5.94444 1.55556V5.44444H2.05556C1.74873 5.44444 1.5 5.69318 1.5 6C1.5 6.30683 1.74873 6.55556 2.05556 6.55556H5.94444V10.4444C5.94444 10.7513 6.19318 11 6.5 11C6.80683 11 7.05556 10.7513 7.05556 10.4444V6.55556H10.9444C11.2513 6.55556 11.5 6.30683 11.5 6C11.5 5.69318 11.2513 5.44444 10.9444 5.44444H7.05556V1.55556C7.05556 1.24873 6.80683 1 6.5 1Z",
|
|
4302
|
+
fill: "currentColor"
|
|
4131
4303
|
})));
|
|
4132
4304
|
|
|
4133
|
-
const
|
|
4134
|
-
|
|
4135
|
-
const {
|
|
4136
|
-
const
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
const videohasAudio = video.mozHasAudio ||
|
|
4143
|
-
Boolean(video.webkitAudioDecodedByteCount) ||
|
|
4144
|
-
Boolean(video.audioTracks && video.audioTracks.length);
|
|
4145
|
-
setHasAudio(videohasAudio);
|
|
4146
|
-
};
|
|
4147
|
-
const hasVolume = (video) => {
|
|
4148
|
-
if (!video) {
|
|
4149
|
-
return false;
|
|
4150
|
-
}
|
|
4151
|
-
return video.volume > 0;
|
|
4152
|
-
};
|
|
4153
|
-
React.useEffect(() => {
|
|
4154
|
-
if (player && (player === null || player === void 0 ? void 0 : player.ref)) {
|
|
4155
|
-
setMuted(!hasVolume(player.ref.current));
|
|
4156
|
-
checkAudio(player.ref.current);
|
|
4157
|
-
}
|
|
4158
|
-
}, [context.isPlaying, isMuted]);
|
|
4159
|
-
return (jsxRuntime.jsx(IconButton, Object.assign({ isBright: true, disabled: !hasAudio, onClick: () => {
|
|
4160
|
-
if (player === null || player === void 0 ? void 0 : player.ref.current) {
|
|
4161
|
-
player.ref.current.volume = player.ref.current.volume > 0 ? 0 : 1;
|
|
4162
|
-
setMuted(!player.ref.current.volume);
|
|
4305
|
+
const Cutter = ({ onCutHandler, isCutting, i18n, }) => {
|
|
4306
|
+
var _a;
|
|
4307
|
+
const { context } = Video.useVideoContext();
|
|
4308
|
+
const videoRef = (_a = context.player) === null || _a === void 0 ? void 0 : _a.ref.current;
|
|
4309
|
+
if (!onCutHandler)
|
|
4310
|
+
return null;
|
|
4311
|
+
return (jsxRuntime.jsx(Button, Object.assign({ isPrimary: true, isAccent: !isCutting, size: "small", onClick: (e) => {
|
|
4312
|
+
if (videoRef) {
|
|
4313
|
+
onCutHandler(videoRef.currentTime);
|
|
4163
4314
|
}
|
|
4164
|
-
|
|
4315
|
+
e.stopPropagation();
|
|
4316
|
+
} }, { children: isCutting ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Button.StartIcon, { children: jsxRuntime.jsx(SvgTagStroke, {}) }), (i18n === null || i18n === void 0 ? void 0 : i18n.onHighlight) || "End observation"] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Button.StartIcon, { children: jsxRuntime.jsx(SvgPlus$1, {}) }), (i18n === null || i18n === void 0 ? void 0 : i18n.beforeHighlight) || "Start observation"] })) })));
|
|
4165
4317
|
};
|
|
4166
4318
|
|
|
4167
4319
|
var _path$e;
|
|
@@ -4230,7 +4382,7 @@ const FullScreenButton = ({ container, }) => {
|
|
|
4230
4382
|
setFullScreen(false);
|
|
4231
4383
|
}
|
|
4232
4384
|
}
|
|
4233
|
-
}), [ref, isFullScreen]);
|
|
4385
|
+
}), [ref, isFullScreen, setFullScreen]);
|
|
4234
4386
|
const canGoFullScreen = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
4235
4387
|
if (ref) {
|
|
4236
4388
|
return (requestFullscreen ||
|
|
@@ -4255,31 +4407,89 @@ const FullScreenButton = ({ container, }) => {
|
|
|
4255
4407
|
}
|
|
4256
4408
|
};
|
|
4257
4409
|
}, [ref]);
|
|
4258
|
-
return (jsxRuntime.jsx(
|
|
4410
|
+
return (jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4259
4411
|
handleFullScreen();
|
|
4260
4412
|
e.stopPropagation();
|
|
4261
4413
|
}, disabled: !canGoFullScreen() }, { children: document.fullscreenElement || isFullScreen ? (jsxRuntime.jsx(SvgMinimizeStroke, {})) : (jsxRuntime.jsx(SvgMaximizeStroke, {})) })));
|
|
4262
4414
|
};
|
|
4263
4415
|
|
|
4416
|
+
const UgProgress = styled__default["default"](reactLoaders.Progress) ``;
|
|
4417
|
+
/**
|
|
4418
|
+
* A Progress loader communicates progress when downloading or uploading content.
|
|
4419
|
+
* <hr>
|
|
4420
|
+
* Used for this:
|
|
4421
|
+
* - To communicate the amount of time left when downloading or uploading content
|
|
4422
|
+
*
|
|
4423
|
+
Not for this:
|
|
4424
|
+
- When the loading time is unknown, use a Spinner instead
|
|
4425
|
+
- When loading page content, use a Skeleton loader instead
|
|
4426
|
+
*/
|
|
4427
|
+
const Progress = React.forwardRef((props, ref) => (jsxRuntime.jsx(UgProgress, Object.assign({ ref: ref }, props))));
|
|
4428
|
+
|
|
4429
|
+
const StyledProgress = styled.styled(Progress) `
|
|
4430
|
+
width: 100%;
|
|
4431
|
+
border-radius: 0;
|
|
4432
|
+
color: ${({ theme }) => theme.palette.grey[400]};
|
|
4433
|
+
cursor: pointer;
|
|
4434
|
+
> div {
|
|
4435
|
+
border-radius: 0;
|
|
4436
|
+
}
|
|
4437
|
+
`;
|
|
4438
|
+
const ProgressBar = React.forwardRef((props, ref) => {
|
|
4439
|
+
const { progress, handleSkipAhead } = props;
|
|
4440
|
+
return (jsxRuntime.jsx(StyledProgress, { className: "progress-bar-1", ref: ref, value: progress, onClick: (e) => handleSkipAhead(e.clientX) }));
|
|
4441
|
+
});
|
|
4442
|
+
|
|
4443
|
+
const StyledDiv$2 = styled__default["default"].div `
|
|
4444
|
+
display: flex;
|
|
4445
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
4446
|
+
`;
|
|
4447
|
+
const TimeLabel = ({ current, duration, }) => (jsxRuntime.jsx(StyledDiv$2, { children: jsxRuntime.jsxs(SM, Object.assign({ tag: "span" }, { children: [formatDuration(current), "/", formatDuration(duration)] })) }));
|
|
4448
|
+
|
|
4449
|
+
const Wrapper$1 = styled__default["default"].div `
|
|
4450
|
+
position: absolute;
|
|
4451
|
+
bottom: ${({ theme }) => theme.space.sm};
|
|
4452
|
+
z-index: 1;
|
|
4453
|
+
`;
|
|
4454
|
+
const Content$1 = styled__default["default"].div `
|
|
4455
|
+
display: flex;
|
|
4456
|
+
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
4457
|
+
border-radius: 2px;
|
|
4458
|
+
width: auto;
|
|
4459
|
+
padding: 2px 4px;
|
|
4460
|
+
display: inline-flex;
|
|
4461
|
+
color: white;
|
|
4462
|
+
font-size: ${({ theme }) => theme.fontSizes.sm};
|
|
4463
|
+
align-items: center;
|
|
4464
|
+
justify-content: center;
|
|
4465
|
+
min-height: 14px;
|
|
4466
|
+
`;
|
|
4467
|
+
const PlayerTooltip = (_a) => {
|
|
4468
|
+
var { children } = _a, props = __rest(_a, ["children"]);
|
|
4469
|
+
return (jsxRuntime.jsx(Wrapper$1, Object.assign({}, props, { children: jsxRuntime.jsx(Content$1, { children: children }) })));
|
|
4470
|
+
};
|
|
4471
|
+
|
|
4472
|
+
function useDebounce(value, delay) {
|
|
4473
|
+
const [debouncedValue, setDebouncedValue] = React.useState(value);
|
|
4474
|
+
React.useEffect(() => {
|
|
4475
|
+
const timer = setTimeout(() => setDebouncedValue(value), delay || 500);
|
|
4476
|
+
return () => {
|
|
4477
|
+
clearTimeout(timer);
|
|
4478
|
+
};
|
|
4479
|
+
}, [value, delay]);
|
|
4480
|
+
return debouncedValue;
|
|
4481
|
+
}
|
|
4482
|
+
|
|
4264
4483
|
const ControlsWrapper = styled__default["default"].div `
|
|
4265
4484
|
position: absolute;
|
|
4266
4485
|
bottom: 0;
|
|
4267
4486
|
left: 0;
|
|
4268
4487
|
right: 0;
|
|
4269
4488
|
padding: ${({ theme }) => theme.space.xxs} 0;
|
|
4270
|
-
background-color: ${({ theme }) =>
|
|
4489
|
+
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
4271
4490
|
${({ isPlaying }) => isPlaying && "display: none;"}
|
|
4272
4491
|
z-index: 2;
|
|
4273
4492
|
`;
|
|
4274
|
-
const StyledProgress = styled__default["default"](Progress) `
|
|
4275
|
-
width: 100%;
|
|
4276
|
-
border-radius: 0;
|
|
4277
|
-
color: ${({ theme }) => theme.palette.kale[700]};
|
|
4278
|
-
cursor: pointer;
|
|
4279
|
-
> div {
|
|
4280
|
-
border-radius: 0;
|
|
4281
|
-
}
|
|
4282
|
-
`;
|
|
4283
4493
|
const StyledTooltip = styled__default["default"](PlayerTooltip) `
|
|
4284
4494
|
display: none;
|
|
4285
4495
|
`;
|
|
@@ -4298,18 +4508,34 @@ const StyledDiv$1 = styled__default["default"].div `
|
|
|
4298
4508
|
display: flex;
|
|
4299
4509
|
align-items: center;
|
|
4300
4510
|
`;
|
|
4301
|
-
const
|
|
4511
|
+
const CurrentTimeMarker = styled__default["default"].div `
|
|
4512
|
+
width: 2px;
|
|
4513
|
+
top: 0;
|
|
4514
|
+
left: ${({ left }) => `${left}%`};
|
|
4515
|
+
position: absolute;
|
|
4516
|
+
height: 110%;
|
|
4517
|
+
z-index: 1;
|
|
4518
|
+
background-color: white;
|
|
4519
|
+
`;
|
|
4520
|
+
const Controls = ({ container, onCutHandler, bookmarks, isCutting, onBookMarkUpdated, i18n, }) => {
|
|
4302
4521
|
var _a, _b, _c;
|
|
4303
4522
|
const [progress, setProgress] = React.useState(0);
|
|
4304
4523
|
const [tooltipMargin, setTooltipMargin] = React.useState(0);
|
|
4305
4524
|
const [tooltipLabel, setTooltipLabel] = React.useState("00:00");
|
|
4525
|
+
const [marks, setMarks] = React.useState(bookmarks);
|
|
4526
|
+
const [updatedMark, setUpdatedMark] = React.useState();
|
|
4306
4527
|
const progressRef = React.useRef(null);
|
|
4307
4528
|
const { context, setCurrentTime } = Video.useVideoContext();
|
|
4529
|
+
const debouncedMark = useDebounce(updatedMark, 500);
|
|
4530
|
+
const { reset, isGrabbing, activeBookmark, fromEnd } = useProgressContext();
|
|
4531
|
+
React.useEffect(() => {
|
|
4532
|
+
setMarks(bookmarks);
|
|
4533
|
+
}, [bookmarks]);
|
|
4308
4534
|
const relCurrentTime = ((_a = context.player) === null || _a === void 0 ? void 0 : _a.currentTime)
|
|
4309
4535
|
? ((_b = context.player) === null || _b === void 0 ? void 0 : _b.currentTime) - context.part.start
|
|
4310
4536
|
: 0;
|
|
4311
4537
|
const duration = context.part.end - context.part.start || ((_c = context.player) === null || _c === void 0 ? void 0 : _c.totalTime) || 0; //relative
|
|
4312
|
-
const getVideoPositionFromEvent = (clientX) => {
|
|
4538
|
+
const getVideoPositionFromEvent = React.useCallback((clientX) => {
|
|
4313
4539
|
if (progressRef && progressRef.current && duration) {
|
|
4314
4540
|
const bounds = progressRef.current.getBoundingClientRect();
|
|
4315
4541
|
const x = clientX - bounds.left;
|
|
@@ -4317,12 +4543,18 @@ const Controls = ({ container, }) => {
|
|
|
4317
4543
|
return videoPositionSecs;
|
|
4318
4544
|
}
|
|
4319
4545
|
return 0;
|
|
4320
|
-
};
|
|
4546
|
+
}, [progressRef, duration]);
|
|
4547
|
+
const getProgress = React.useCallback((currentTime) => {
|
|
4548
|
+
const current = currentTime - (context.part.start || 0);
|
|
4549
|
+
if (duration === 0)
|
|
4550
|
+
return 0;
|
|
4551
|
+
return (current / duration) * 100;
|
|
4552
|
+
}, [context.part.start, duration]);
|
|
4321
4553
|
const handleSkipAhead = React.useCallback((pageX) => {
|
|
4322
4554
|
const time = getVideoPositionFromEvent(pageX) + (context.part.start || 0);
|
|
4323
4555
|
setCurrentTime(time);
|
|
4324
4556
|
setProgress(getProgress(time));
|
|
4325
|
-
}, [
|
|
4557
|
+
}, [getVideoPositionFromEvent, context.part.start, setCurrentTime, getProgress]);
|
|
4326
4558
|
const onMouseEvent = (e) => {
|
|
4327
4559
|
if (progressRef && progressRef.current) {
|
|
4328
4560
|
const tooltipWidth = 40;
|
|
@@ -4333,20 +4565,45 @@ const Controls = ({ container, }) => {
|
|
|
4333
4565
|
const videoTargetDuration = getVideoPositionFromEvent(e.clientX);
|
|
4334
4566
|
setTooltipMargin(newTooltipMargin);
|
|
4335
4567
|
setTooltipLabel(formatDuration(videoTargetDuration));
|
|
4568
|
+
if (isGrabbing) {
|
|
4569
|
+
handleBookmarkUpdate(marginX, progressRef.current.clientWidth);
|
|
4570
|
+
}
|
|
4336
4571
|
}
|
|
4337
4572
|
};
|
|
4573
|
+
const handleBookmarkUpdate = React.useCallback((newX, clientW) => {
|
|
4574
|
+
if (!activeBookmark || !marks)
|
|
4575
|
+
return;
|
|
4576
|
+
const currentObsIndex = marks.findIndex((mark) => mark.id === activeBookmark.id);
|
|
4577
|
+
const value = (newX / clientW) * duration + context.part.start;
|
|
4578
|
+
const updatedMark = Object.assign(Object.assign({}, marks[currentObsIndex]), (!!fromEnd ? { end: value } : { start: value }));
|
|
4579
|
+
const newMarks = [
|
|
4580
|
+
...marks.slice(0, currentObsIndex),
|
|
4581
|
+
updatedMark,
|
|
4582
|
+
...marks.slice(currentObsIndex + 1),
|
|
4583
|
+
];
|
|
4584
|
+
setMarks(newMarks);
|
|
4585
|
+
setUpdatedMark(updatedMark);
|
|
4586
|
+
}, [activeBookmark, context.part.start, duration, fromEnd, marks]);
|
|
4338
4587
|
React.useEffect(() => {
|
|
4339
4588
|
var _a;
|
|
4340
4589
|
const currentTime = ((_a = context.player) === null || _a === void 0 ? void 0 : _a.currentTime) || 0;
|
|
4341
4590
|
setProgress(getProgress(currentTime));
|
|
4342
|
-
}, [context.player]);
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
return (
|
|
4348
|
-
|
|
4349
|
-
|
|
4591
|
+
}, [context.player, getProgress]);
|
|
4592
|
+
React.useEffect(() => {
|
|
4593
|
+
if (!marks)
|
|
4594
|
+
return;
|
|
4595
|
+
document.addEventListener("mouseup", reset);
|
|
4596
|
+
return () => {
|
|
4597
|
+
document.removeEventListener("mouseup", reset);
|
|
4598
|
+
};
|
|
4599
|
+
}, [reset, marks]);
|
|
4600
|
+
React.useEffect(() => {
|
|
4601
|
+
if (debouncedMark) {
|
|
4602
|
+
onBookMarkUpdated === null || onBookMarkUpdated === void 0 ? void 0 : onBookMarkUpdated(debouncedMark);
|
|
4603
|
+
}
|
|
4604
|
+
}, [debouncedMark, onBookMarkUpdated]);
|
|
4605
|
+
return (jsxRuntime.jsxs(ControlsWrapper, Object.assign({ isPlaying: context.isPlaying }, { children: [jsxRuntime.jsxs(ProgressContainer, Object.assign({ onMouseEnter: onMouseEvent, onMouseMove: onMouseEvent, onMouseLeave: onMouseEvent }, { children: [jsxRuntime.jsx(StyledTooltip, Object.assign({ style: { marginLeft: `${tooltipMargin}px` } }, { children: tooltipLabel })), !!duration &&
|
|
4606
|
+
(marks === null || marks === void 0 ? void 0 : marks.map((bookmark, index) => (jsxRuntime.jsx(Bookmark, Object.assign({}, bookmark), `${index}${bookmark.start}`)))), jsxRuntime.jsx(ProgressBar, { ref: progressRef, progress: progress, handleSkipAhead: handleSkipAhead, duration: duration }), jsxRuntime.jsx(CurrentTimeMarker, { left: progress })] })), jsxRuntime.jsxs(ControlsBar, { children: [jsxRuntime.jsxs(StyledDiv$1, Object.assign({ style: { width: "20%", justifyContent: "start" } }, { children: [jsxRuntime.jsx(AudioButton, {}), jsxRuntime.jsx(TimeLabel, { current: relCurrentTime, duration: duration })] })), jsxRuntime.jsx(ControlsGroupCenter, { style: { width: "60%" } }), jsxRuntime.jsxs(StyledDiv$1, Object.assign({ style: { width: "20%", justifyContent: "end" } }, { children: [jsxRuntime.jsx(Cutter, { onCutHandler: onCutHandler, isCutting: isCutting, i18n: i18n }), jsxRuntime.jsx(FullScreenButton, { container: container })] }))] })] })));
|
|
4350
4607
|
};
|
|
4351
4608
|
|
|
4352
4609
|
var _path$c;
|
|
@@ -4378,6 +4635,10 @@ const BigButton = styled__default["default"](IconButton) `
|
|
|
4378
4635
|
min-width: ${({ theme }) => theme.space.base * 15}px;
|
|
4379
4636
|
width: 80px;
|
|
4380
4637
|
height: 80px;
|
|
4638
|
+
|
|
4639
|
+
box-shadow: ${({ theme }) => theme.shadows.boxShadow(theme)};
|
|
4640
|
+
|
|
4641
|
+
|
|
4381
4642
|
${PlayIcon} {
|
|
4382
4643
|
width: 60%;
|
|
4383
4644
|
height: 60%;
|
|
@@ -4444,8 +4705,7 @@ const Container$1 = styled__default["default"].div `
|
|
|
4444
4705
|
}
|
|
4445
4706
|
}
|
|
4446
4707
|
}
|
|
4447
|
-
|
|
4448
|
-
background-color: ${({ theme }) => theme.palette.grey[700]};
|
|
4708
|
+
background: ${({ theme }) => theme.palette.grey[400]};
|
|
4449
4709
|
`;
|
|
4450
4710
|
|
|
4451
4711
|
const UgSpinner = styled__default["default"](reactLoaders.Spinner) ``;
|
|
@@ -4473,18 +4733,15 @@ const VideoSpinner = () => (jsxRuntime.jsx(StyledDiv, { children: jsxRuntime.jsx
|
|
|
4473
4733
|
* Used for this:
|
|
4474
4734
|
- To display a video
|
|
4475
4735
|
*/
|
|
4476
|
-
const Player = React.forwardRef((props, forwardRef) => {
|
|
4477
|
-
const videoRef = React.useRef(null);
|
|
4478
|
-
React.useImperativeHandle(forwardRef, () => videoRef.current);
|
|
4479
|
-
return (jsxRuntime.jsx(Video__default["default"], Object.assign({ src: props.url }, props, { children: jsxRuntime.jsx(PlayerCore, Object.assign({ ref: videoRef }, props)) })));
|
|
4480
|
-
});
|
|
4736
|
+
const Player = React.forwardRef((props, forwardRef) => (jsxRuntime.jsx(Video__default["default"], Object.assign({ src: props.url }, props, { children: jsxRuntime.jsx(PlayerCore, Object.assign({ ref: forwardRef }, props)) }))));
|
|
4481
4737
|
const PlayerCore = React.forwardRef((props, forwardRef) => {
|
|
4482
4738
|
var _a;
|
|
4483
4739
|
const { context, togglePlay, setIsPlaying } = Video.useVideoContext();
|
|
4740
|
+
const { onCutHandler, bookmarks, isCutting } = props;
|
|
4484
4741
|
const videoRef = (_a = context.player) === null || _a === void 0 ? void 0 : _a.ref.current;
|
|
4485
4742
|
const isLoaded = !!videoRef;
|
|
4486
4743
|
const containerRef = React.useRef(null);
|
|
4487
|
-
React.useImperativeHandle(forwardRef, () => videoRef);
|
|
4744
|
+
React.useImperativeHandle(forwardRef, () => videoRef, [videoRef]);
|
|
4488
4745
|
React.useEffect(() => {
|
|
4489
4746
|
if (videoRef) {
|
|
4490
4747
|
videoRef.addEventListener("pause", () => {
|
|
@@ -4498,10 +4755,19 @@ const PlayerCore = React.forwardRef((props, forwardRef) => {
|
|
|
4498
4755
|
});
|
|
4499
4756
|
}
|
|
4500
4757
|
};
|
|
4501
|
-
}, [videoRef]);
|
|
4502
|
-
return (jsxRuntime.jsxs(Container$1, Object.assign({ isLoaded: isLoaded, isPlaying: context.isPlaying, ref: containerRef }, { children: [!isLoaded ? (jsxRuntime.jsx(VideoSpinner, {})) : (jsxRuntime.jsx(FloatingControls, { isPlaying: context.isPlaying, onClick: togglePlay })), jsxRuntime.jsx(Video__default["default"].Player, { className: "player-container" }), jsxRuntime.jsx(Controls, { container: containerRef.current })] })));
|
|
4758
|
+
}, [setIsPlaying, videoRef]);
|
|
4759
|
+
return (jsxRuntime.jsxs(Container$1, Object.assign({ isLoaded: isLoaded, isPlaying: context.isPlaying, ref: containerRef }, { children: [!isLoaded ? (jsxRuntime.jsx(VideoSpinner, {})) : (jsxRuntime.jsx(FloatingControls, { isPlaying: context.isPlaying, onClick: togglePlay })), jsxRuntime.jsx(Video__default["default"].Player, { className: "player-container" }), jsxRuntime.jsx(ProgressContextProvider, { children: jsxRuntime.jsx(Controls, { container: containerRef.current, onCutHandler: onCutHandler, bookmarks: bookmarks, isCutting: isCutting, onBookMarkUpdated: props.handleBookmarkUpdate, i18n: props.i18n }) })] })));
|
|
4503
4760
|
});
|
|
4504
4761
|
|
|
4762
|
+
const MediaLightBox = ({ header, onClose, slideChange, selectedImageIndex, thumbnails, videoRefs, isOpen, details }) => {
|
|
4763
|
+
if (!isOpen) {
|
|
4764
|
+
return null;
|
|
4765
|
+
}
|
|
4766
|
+
return (jsxRuntime.jsxs(Lightbox, Object.assign({ onClose: onClose }, { children: [jsxRuntime.jsx(Lightbox.Header, { children: header }), jsxRuntime.jsxs(Lightbox.Body, { children: [jsxRuntime.jsx(Lightbox.Body.Main, Object.assign({ style: { flex: details ? 2 : 3 } }, { children: jsxRuntime.jsx(Slider, Object.assign({ prevArrow: jsxRuntime.jsx(Slider.PrevButton, { isBright: true }), nextArrow: jsxRuntime.jsx(Slider.NextButton, { isBright: true }), onSlideChange: slideChange, initialSlide: selectedImageIndex }, { children: thumbnails.map((item) => (jsxRuntime.jsxs(Slider.Slide, { children: [item.type.includes("image") && (jsxRuntime.jsx("img", { src: item.url, alt: `media ${item.name}`, style: { maxHeight: "100%", height: "auto" } })), item.type.includes("video") && item.url && (jsxRuntime.jsx(Player, { ref: (ref) => {
|
|
4767
|
+
videoRefs.current.push(ref);
|
|
4768
|
+
}, url: item.url }))] }, item.id))) })) })), details && (jsxRuntime.jsx(Lightbox.Body.Details, Object.assign({ style: { flex: 1 } }, { children: details })))] }), jsxRuntime.jsx(Lightbox.Close, { "aria-label": "Close modal" })] })));
|
|
4769
|
+
};
|
|
4770
|
+
|
|
4505
4771
|
const ChatBoxContainer = styled__default["default"].div `
|
|
4506
4772
|
display: flex;
|
|
4507
4773
|
border-top: 1px solid ${({ theme }) => theme.palette.grey[200]};
|
|
@@ -4521,14 +4787,19 @@ const ChatBoxContainer = styled__default["default"].div `
|
|
|
4521
4787
|
- Simple text input, use textarea instead.
|
|
4522
4788
|
*/
|
|
4523
4789
|
const CommentBox = (_a) => {
|
|
4790
|
+
var _b;
|
|
4524
4791
|
var { placeholderOptions } = _a, props = __rest(_a, ["placeholderOptions"]);
|
|
4525
4792
|
const { children, hasFloatingMenu, hasButtonsMenu, bubbleOptions, i18n } = props;
|
|
4526
4793
|
const { editor, setEditor, mentionableUsers, triggerSave, thumbnails, addThumbnails, } = useChatContext();
|
|
4527
|
-
const { addToast } = useToast();
|
|
4528
4794
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
4529
|
-
const [selectedImage, setSelectedImage] = React.useState({});
|
|
4530
4795
|
const [selectedImageIndex, setSelectedImageIndex] = React.useState(0);
|
|
4796
|
+
const { getMedia } = useMedia();
|
|
4531
4797
|
const ext = editorExtensions({ placeholderOptions, mentionableUsers });
|
|
4798
|
+
function handleEvent(data) {
|
|
4799
|
+
if (!data || !data.files)
|
|
4800
|
+
return;
|
|
4801
|
+
addThumbnails({ files: getMedia(data.files) });
|
|
4802
|
+
}
|
|
4532
4803
|
const closeLightbox = () => {
|
|
4533
4804
|
setIsOpen(false);
|
|
4534
4805
|
};
|
|
@@ -4541,10 +4812,7 @@ const CommentBox = (_a) => {
|
|
|
4541
4812
|
}
|
|
4542
4813
|
});
|
|
4543
4814
|
}, [videoRefs]);
|
|
4544
|
-
const handleOpenLightbox = (
|
|
4545
|
-
if (!file)
|
|
4546
|
-
throw Error("Error with the image");
|
|
4547
|
-
setSelectedImage(file);
|
|
4815
|
+
const handleOpenLightbox = (index) => {
|
|
4548
4816
|
setSelectedImageIndex(index);
|
|
4549
4817
|
setIsOpen(true);
|
|
4550
4818
|
};
|
|
@@ -4556,48 +4824,12 @@ const CommentBox = (_a) => {
|
|
|
4556
4824
|
return false;
|
|
4557
4825
|
},
|
|
4558
4826
|
handleDrop: function (view, event, slice, moved) {
|
|
4559
|
-
if (!event.dataTransfer || !event.dataTransfer.files)
|
|
4560
|
-
return false;
|
|
4561
4827
|
event.preventDefault();
|
|
4562
|
-
|
|
4563
|
-
return Object.assign(file, {
|
|
4564
|
-
isLoadingMedia: false,
|
|
4565
|
-
internal_id: uuid.v4(),
|
|
4566
|
-
});
|
|
4567
|
-
});
|
|
4568
|
-
const wrongFiles = files.filter((file) => !/^(image|video)\//.test(file.type));
|
|
4569
|
-
if (wrongFiles.length > 0) {
|
|
4570
|
-
for (const file of wrongFiles) {
|
|
4571
|
-
addToast(({ close }) => (jsxRuntime.jsx(Notification, { onClose: close, type: "error", message: `${props.messageBadFileFormat} - ${file.name}`, isPrimary: true })), { placement: "top" });
|
|
4572
|
-
}
|
|
4573
|
-
}
|
|
4574
|
-
const mediaFiles = files.filter((file) => /^(image|video)\//.test(file.type));
|
|
4575
|
-
if (mediaFiles.length === 0)
|
|
4576
|
-
return false;
|
|
4577
|
-
addThumbnails({ files: mediaFiles });
|
|
4578
|
-
return false;
|
|
4828
|
+
handleEvent(event.dataTransfer);
|
|
4579
4829
|
},
|
|
4580
4830
|
handlePaste: (view, event, slice) => {
|
|
4581
|
-
if (!event.clipboardData || !event.clipboardData.items)
|
|
4582
|
-
return false;
|
|
4583
4831
|
event.preventDefault();
|
|
4584
|
-
|
|
4585
|
-
return Object.assign(file, {
|
|
4586
|
-
isLoadingMedia: false,
|
|
4587
|
-
internal_id: uuid.v4(),
|
|
4588
|
-
});
|
|
4589
|
-
});
|
|
4590
|
-
const wrongFiles = files.filter((file) => !/^(image|video)\//.test(file.type));
|
|
4591
|
-
if (wrongFiles.length > 0) {
|
|
4592
|
-
for (const file of wrongFiles) {
|
|
4593
|
-
addToast(({ close }) => (jsxRuntime.jsx(Notification, { onClose: close, type: "error", message: `${props.messageBadFileFormat} - ${file.name}`, isPrimary: true })), { placement: "top" });
|
|
4594
|
-
}
|
|
4595
|
-
}
|
|
4596
|
-
const mediaFiles = files.filter((file) => /^(image|video)\//.test(file.type));
|
|
4597
|
-
if (mediaFiles.length === 0)
|
|
4598
|
-
return false;
|
|
4599
|
-
addThumbnails({ files: mediaFiles });
|
|
4600
|
-
return false;
|
|
4832
|
+
handleEvent(event.clipboardData);
|
|
4601
4833
|
},
|
|
4602
4834
|
} }, props));
|
|
4603
4835
|
const onKeyDown = (event) => {
|
|
@@ -4610,14 +4842,32 @@ const CommentBox = (_a) => {
|
|
|
4610
4842
|
return null;
|
|
4611
4843
|
ed.on("create", ({ editor }) => setEditor(editor));
|
|
4612
4844
|
ed.on("update", ({ editor }) => setEditor(editor));
|
|
4613
|
-
|
|
4614
|
-
return Object.assign(file, { isLoadingMedia: file.isLoadingMedia });
|
|
4615
|
-
});
|
|
4616
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isOpen && selectedImage && (jsxRuntime.jsxs(Lightbox, Object.assign({ onClose: closeLightbox }, { children: [jsxRuntime.jsx(Lightbox.Header, { children: selectedImage.name }), jsxRuntime.jsx(Lightbox.Body, { children: jsxRuntime.jsx(Lightbox.Body.Main, Object.assign({ style: { flex: 3 } }, { children: jsxRuntime.jsx(Slider, Object.assign({ prevArrow: jsxRuntime.jsx(Slider.PrevButton, { isBright: true }), nextArrow: jsxRuntime.jsx(Slider.NextButton, { isBright: true }), onSlideChange: slideChange, initialSlide: selectedImageIndex }, { children: mediaFiles.map((item, index) => (jsxRuntime.jsxs(Slider.Slide, { children: [item.type.includes("image") && (jsxRuntime.jsx("img", { src: URL.createObjectURL(item), alt: `media ${item.name}` })), item.type.includes("video") && (jsxRuntime.jsx(Player, { ref: (ref) => {
|
|
4617
|
-
videoRefs.current.push(ref);
|
|
4618
|
-
}, url: URL.createObjectURL(item) }))] }))) })) })) }), jsxRuntime.jsx(Lightbox.Close, { "aria-label": "Close modal" })] }))), jsxRuntime.jsx(ChatBoxContainer, { children: jsxRuntime.jsxs(EditorContainer$1, Object.assign({ editable: true, style: { marginLeft: 0, paddingBottom: 12 } }, { children: [hasFloatingMenu && (jsxRuntime.jsx(FloatingMenu, { editor: ed, tippyOptions: Object.assign({}, bubbleOptions) })), jsxRuntime.jsx(react.EditorContent, { editor: ed, onKeyDown: onKeyDown }), jsxRuntime.jsx(ThumbnailContainer, { openLightbox: handleOpenLightbox })] })) }), hasButtonsMenu && jsxRuntime.jsx(CommentBar, { editor: ed, i18n: i18n })] }));
|
|
4845
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(MediaLightBox, { isOpen: isOpen, header: (_b = thumbnails[selectedImageIndex]) === null || _b === void 0 ? void 0 : _b.name, onClose: closeLightbox, slideChange: slideChange, selectedImageIndex: selectedImageIndex, thumbnails: thumbnails, videoRefs: videoRefs }), jsxRuntime.jsx(ChatBoxContainer, { children: jsxRuntime.jsxs(EditorContainer$1, Object.assign({ editable: true, style: { marginLeft: 0, paddingBottom: 12 } }, { children: [hasFloatingMenu && (jsxRuntime.jsx(FloatingMenu, { editor: ed, tippyOptions: Object.assign({}, bubbleOptions) })), jsxRuntime.jsx(react.EditorContent, { editor: ed, onKeyDown: onKeyDown }), jsxRuntime.jsx(ThumbnailContainer, { openLightbox: handleOpenLightbox })] })) }), hasButtonsMenu && jsxRuntime.jsx(CommentBar, { editor: ed, i18n: i18n })] }));
|
|
4619
4846
|
};
|
|
4620
4847
|
|
|
4848
|
+
const UgGrid = styled__default["default"](reactGrid.Grid) `
|
|
4849
|
+
padding-left: 0;
|
|
4850
|
+
padding-right: 0;
|
|
4851
|
+
`;
|
|
4852
|
+
/**
|
|
4853
|
+
* The Grid component is a framework for building modular layouts.
|
|
4854
|
+
* <hr>
|
|
4855
|
+
* Used for this:
|
|
4856
|
+
- To structure the layout of a page
|
|
4857
|
+
*/
|
|
4858
|
+
const Grid = (props) => jsxRuntime.jsx(UgGrid, Object.assign({}, props));
|
|
4859
|
+
|
|
4860
|
+
const Row$1 = (props) => jsxRuntime.jsx(reactGrid.Row, Object.assign({}, props));
|
|
4861
|
+
|
|
4862
|
+
const StyledCol$1 = styled__default["default"](reactGrid.Col) `
|
|
4863
|
+
margin-bottom: ${theme.space.lg};
|
|
4864
|
+
|
|
4865
|
+
@media screen and (max-width: ${theme.breakpoints.sm}) {
|
|
4866
|
+
margin-bottom: ${theme.space.md};
|
|
4867
|
+
}
|
|
4868
|
+
`;
|
|
4869
|
+
const Col = (props) => jsxRuntime.jsx(StyledCol$1, Object.assign({}, props));
|
|
4870
|
+
|
|
4621
4871
|
const CommentCard = styled.styled(Card) `
|
|
4622
4872
|
padding: ${({ theme }) => `${theme.space.base * 3}px ${theme.space.sm}`};
|
|
4623
4873
|
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
@@ -4661,13 +4911,9 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4661
4911
|
var _a, _b;
|
|
4662
4912
|
const { mentionableUsers } = useChatContext();
|
|
4663
4913
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
4664
|
-
const [selectedImage, setSelectedImage] = React.useState({});
|
|
4665
4914
|
const [selectedImageIndex, setSelectedImageIndex] = React.useState(0);
|
|
4666
4915
|
const ext = editorExtensions({ mentionableUsers });
|
|
4667
|
-
const handleClickThumbnail = (
|
|
4668
|
-
if (!file)
|
|
4669
|
-
throw Error("Error with the image");
|
|
4670
|
-
setSelectedImage(file);
|
|
4916
|
+
const handleClickThumbnail = (index) => {
|
|
4671
4917
|
setSelectedImageIndex(index);
|
|
4672
4918
|
setIsOpen(true);
|
|
4673
4919
|
};
|
|
@@ -4676,7 +4922,6 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4676
4922
|
};
|
|
4677
4923
|
const videoRefs = React.useRef([]);
|
|
4678
4924
|
const slideChange = React.useCallback((index) => {
|
|
4679
|
-
setSelectedImage(media[index]);
|
|
4680
4925
|
setSelectedImageIndex(index);
|
|
4681
4926
|
videoRefs.current.forEach((ref) => {
|
|
4682
4927
|
if (ref) {
|
|
@@ -4693,23 +4938,12 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4693
4938
|
ed.setOptions({
|
|
4694
4939
|
editable: false,
|
|
4695
4940
|
});
|
|
4696
|
-
return (jsxRuntime.jsxs(CommentCard, { children: [jsxRuntime.jsxs(AuthorContainer, { children: [jsxRuntime.jsx(Avatar, Object.assign({ avatarType: (_a = author.avatarType) !== null && _a !== void 0 ? _a : "text", style: { flexShrink: 0 } }, { children: author.avatar })), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs(CommentTitle, { children: [(_b = author.name) !== null && _b !== void 0 ? _b : "User", jsxRuntime.jsx(CommentDate, { children: date })] }), jsxRuntime.jsx(ReadOnly, { children: jsxRuntime.jsx(EditorContainer$1, Object.assign({ editable: false }, { children: jsxRuntime.jsx(react.EditorContent, { editor: ed }) })) })] })] }), jsxRuntime.jsx(Grid, { children: jsxRuntime.jsx(Row$1, Object.assign({ className: "responsive-container" }, { children: media.map((file, index) => {
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
if (file.type.includes("video"))
|
|
4703
|
-
return (jsxRuntime.jsx(Col, Object.assign({ xs: 12, sm: 4, className: "flex-3-sm" }, { children: jsxRuntime.jsx(VideoThumbnail, { src: file.url, index: index, showX: false, isLoadingMedia: false, clickThumbnail: () => {
|
|
4704
|
-
handleClickThumbnail(file, index);
|
|
4705
|
-
} }, index) })));
|
|
4706
|
-
return null;
|
|
4707
|
-
}) })) }), isOpen && selectedImage && (jsxRuntime.jsxs(Lightbox, Object.assign({ onClose: closeLightbox }, { children: [jsxRuntime.jsx(Lightbox.Header, { children: jsxRuntime.jsxs(reactTypography.MD, Object.assign({ isBold: true }, { children: [jsxRuntime.jsx(Grey600Span, { children: header && header.title }), header && header.message && (jsxRuntime.jsxs(Grey800Span, { children: [" | ", header.message] }))] })) }), jsxRuntime.jsxs(Lightbox.Body, { children: [jsxRuntime.jsx(Lightbox.Body.Main, Object.assign({ style: { flex: 2 } }, { children: jsxRuntime.jsx(Slider, Object.assign({ prevArrow: jsxRuntime.jsx(Slider.PrevButton, { isBright: true }), nextArrow: jsxRuntime.jsx(Slider.NextButton, { isBright: true }), onSlideChange: slideChange, initialSlide: selectedImageIndex }, { children: media.map((item, index) => (jsxRuntime.jsxs(Slider.Slide, { children: [item.type === "image" && (jsxRuntime.jsx("img", { src: item.url, alt: `{{${item.url}}}` })), item.type === "video" && (jsxRuntime.jsx(Player, { ref: (ref) => {
|
|
4708
|
-
videoRefs.current.push(ref);
|
|
4709
|
-
}, url: item.url }))] }))) })) })), jsxRuntime.jsx(Lightbox.Body.Details, Object.assign({ style: { flex: 1 } }, { children: jsxRuntime.jsx(Comment, Object.assign({ header: header, author: {
|
|
4710
|
-
avatar: author.avatar,
|
|
4711
|
-
name: author.name,
|
|
4712
|
-
}, date: date, message: message }, { children: jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("br", {}) }) })) }))] }), jsxRuntime.jsx(Lightbox.Footer, {}), jsxRuntime.jsx(Lightbox.Close, { "aria-label": "Close modal" })] }))), jsxRuntime.jsx(Footer$2, { children: children })] }));
|
|
4941
|
+
return (jsxRuntime.jsxs(CommentCard, { children: [jsxRuntime.jsxs(AuthorContainer, { children: [jsxRuntime.jsx(Avatar, Object.assign({ avatarType: (_a = author.avatarType) !== null && _a !== void 0 ? _a : "text", style: { flexShrink: 0 } }, { children: author.avatar })), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs(CommentTitle, { children: [(_b = author.name) !== null && _b !== void 0 ? _b : "User", " ", jsxRuntime.jsx(CommentDate, { children: date })] }), jsxRuntime.jsx(ReadOnly, { children: jsxRuntime.jsx(EditorContainer$1, Object.assign({ editable: false }, { children: jsxRuntime.jsx(react.EditorContent, { editor: ed }) })) })] })] }), jsxRuntime.jsx(Grid, { children: jsxRuntime.jsx(Row$1, Object.assign({ className: "responsive-container" }, { children: media.map((file, index) => (jsxRuntime.jsx(Col, Object.assign({ xs: 12, sm: 4, className: "flex-3-sm" }, { children: jsxRuntime.jsx(Thumbnail, { src: file.url, type: file.type, showX: false, isLoadingMedia: false, clickThumbnail: () => {
|
|
4942
|
+
handleClickThumbnail(index);
|
|
4943
|
+
} }) }), index))) })) }), jsxRuntime.jsx(MediaLightBox, { isOpen: isOpen, header: jsxRuntime.jsxs(reactTypography.MD, Object.assign({ isBold: true }, { children: [jsxRuntime.jsx(Grey600Span, { children: header && header.title }), header && header.message && (jsxRuntime.jsxs(Grey800Span, { children: [" | ", header.message] }))] })), onClose: closeLightbox, slideChange: slideChange, selectedImageIndex: selectedImageIndex, thumbnails: media, videoRefs: videoRefs, details: jsxRuntime.jsx(Comment, Object.assign({ header: header, author: {
|
|
4944
|
+
avatar: author.avatar,
|
|
4945
|
+
name: author.name,
|
|
4946
|
+
}, date: date, message: message }, { children: jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("br", {}) }) })) }), jsxRuntime.jsx(Footer$2, { children: children })] }));
|
|
4713
4947
|
};
|
|
4714
4948
|
|
|
4715
4949
|
/**
|
|
@@ -5348,6 +5582,151 @@ const UgToggle = styled__default["default"](reactForms.Toggle) ``;
|
|
|
5348
5582
|
**/
|
|
5349
5583
|
const Toggle = (props) => jsxRuntime.jsx(UgToggle, Object.assign({}, props));
|
|
5350
5584
|
|
|
5585
|
+
const HighlightContext = React.createContext(null);
|
|
5586
|
+
const HighlightContextProvider = ({ term, children, }) => {
|
|
5587
|
+
const [searchTerm, setsearchTerm] = React.useState(term !== null && term !== void 0 ? term : "");
|
|
5588
|
+
React.useEffect(() => {
|
|
5589
|
+
setsearchTerm(term !== null && term !== void 0 ? term : "");
|
|
5590
|
+
}, [term]);
|
|
5591
|
+
const HighlightContextValue = React.useMemo(() => ({
|
|
5592
|
+
searchTerm,
|
|
5593
|
+
}), [searchTerm]);
|
|
5594
|
+
return (jsxRuntime.jsx(HighlightContext.Provider, Object.assign({ value: HighlightContextValue }, { children: children })));
|
|
5595
|
+
};
|
|
5596
|
+
const useHighlightContext = () => {
|
|
5597
|
+
const context = React.useContext(HighlightContext);
|
|
5598
|
+
if (!context)
|
|
5599
|
+
throw new Error("Provider not found for HighlightContextProvider");
|
|
5600
|
+
return context; // Now we can use the context in the component, SAFELY.
|
|
5601
|
+
};
|
|
5602
|
+
|
|
5603
|
+
const StyledSearchWord = styled__default["default"].span `
|
|
5604
|
+
background-color: ${({ theme }) => theme.palette.product.talk};
|
|
5605
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
5606
|
+
`;
|
|
5607
|
+
const Searchable = ({ text, }) => {
|
|
5608
|
+
const { searchTerm } = useHighlightContext();
|
|
5609
|
+
if (searchTerm) {
|
|
5610
|
+
const parts = text.split(new RegExp(`(${searchTerm})`, "gi"));
|
|
5611
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: parts.map((part, index) => part.toLowerCase() === searchTerm.toLowerCase() ? (jsxRuntime.jsx(StyledSearchWord, { children: part }, index)) : (jsxRuntime.jsx(jsxRuntime.Fragment, { children: part }))) }));
|
|
5612
|
+
}
|
|
5613
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: text });
|
|
5614
|
+
};
|
|
5615
|
+
|
|
5616
|
+
const StyledWord = styled__default["default"].div `
|
|
5617
|
+
display: inline;
|
|
5618
|
+
font-size: ${({ theme, size }) => theme.fontSizes[size !== null && size !== void 0 ? size : "md"]};
|
|
5619
|
+
padding: ${({ theme }) => theme.space.xxs} 0;
|
|
5620
|
+
position: relative;
|
|
5621
|
+
|
|
5622
|
+
${({ observations, theme }) => {
|
|
5623
|
+
var _a;
|
|
5624
|
+
return observations && observations.length > 0 &&
|
|
5625
|
+
`
|
|
5626
|
+
color: ${(_a = observations[observations.length - 1].color) !== null && _a !== void 0 ? _a : theme.palette.grey[600]};
|
|
5627
|
+
box-sizing: border-box;
|
|
5628
|
+
font-weight: ${theme.fontWeights.semibold};
|
|
5629
|
+
|
|
5630
|
+
&:focus {
|
|
5631
|
+
outline: none;
|
|
5632
|
+
}
|
|
5633
|
+
`;
|
|
5634
|
+
}}
|
|
5635
|
+
`;
|
|
5636
|
+
const ActiveWord = styled__default["default"].span `
|
|
5637
|
+
background-color: ${({ theme }) => getColor(theme.palette.fuschia, 400, undefined, 0.4)};
|
|
5638
|
+
`;
|
|
5639
|
+
const WordsContainer = styled__default["default"].div `
|
|
5640
|
+
box-sizing: border-box;
|
|
5641
|
+
${StyledWord}, span {
|
|
5642
|
+
&::selection {
|
|
5643
|
+
background-color: ${({ theme }) => getColor(theme.palette.kale, 700, undefined, 0.5)};
|
|
5644
|
+
}
|
|
5645
|
+
}
|
|
5646
|
+
`;
|
|
5647
|
+
const Layer = styled__default["default"].div `
|
|
5648
|
+
position: absolute;
|
|
5649
|
+
top: 0;
|
|
5650
|
+
left: 0;
|
|
5651
|
+
width: 100%;
|
|
5652
|
+
height: 100%;
|
|
5653
|
+
z-index: 0;
|
|
5654
|
+
background-color: ${({ color }) => getColor(color, undefined, undefined, 0.2)};
|
|
5655
|
+
`;
|
|
5656
|
+
/**
|
|
5657
|
+
* Use Highlight to use highlight interation on any text element
|
|
5658
|
+
*/
|
|
5659
|
+
const Highlight = (props) => {
|
|
5660
|
+
const ref = React.useRef(null);
|
|
5661
|
+
const extractText = (selection) => {
|
|
5662
|
+
if (selection.anchorNode === null || selection.focusNode === null)
|
|
5663
|
+
return "";
|
|
5664
|
+
var range = selection.getRangeAt(0);
|
|
5665
|
+
var tempDiv = document.createElement("div");
|
|
5666
|
+
tempDiv.appendChild(range.cloneContents());
|
|
5667
|
+
var items = tempDiv.querySelectorAll("div");
|
|
5668
|
+
items.forEach(function (item) {
|
|
5669
|
+
if (item.getAttribute("data-unselectable")) {
|
|
5670
|
+
item.remove();
|
|
5671
|
+
}
|
|
5672
|
+
});
|
|
5673
|
+
var filteredText = tempDiv.textContent || tempDiv.innerText;
|
|
5674
|
+
return filteredText.length ? filteredText.trim() : selection.toString();
|
|
5675
|
+
};
|
|
5676
|
+
const handleSelectionChange = React.useCallback(() => {
|
|
5677
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
5678
|
+
const activeSelection = document.getSelection();
|
|
5679
|
+
if (!activeSelection) {
|
|
5680
|
+
return;
|
|
5681
|
+
}
|
|
5682
|
+
// Extract the text from the selection cleaning unselectable items
|
|
5683
|
+
const text = extractText(activeSelection);
|
|
5684
|
+
if (!text)
|
|
5685
|
+
return;
|
|
5686
|
+
const anchorNode = (_a = activeSelection === null || activeSelection === void 0 ? void 0 : activeSelection.anchorNode) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5687
|
+
const focusNode = (_b = activeSelection === null || activeSelection === void 0 ? void 0 : activeSelection.focusNode) === null || _b === void 0 ? void 0 : _b.parentElement;
|
|
5688
|
+
if (anchorNode &&
|
|
5689
|
+
focusNode &&
|
|
5690
|
+
((_c = ref.current) === null || _c === void 0 ? void 0 : _c.contains(anchorNode)) && // Selection starts inside the ref
|
|
5691
|
+
((_d = ref.current) === null || _d === void 0 ? void 0 : _d.contains(focusNode)) // Selection ends inside the ref
|
|
5692
|
+
) {
|
|
5693
|
+
const selectionPart = {
|
|
5694
|
+
from: Math.min(Number.parseFloat((_e = anchorNode.getAttribute("data-start")) !== null && _e !== void 0 ? _e : "0"), Number.parseFloat((_f = focusNode.getAttribute("data-start")) !== null && _f !== void 0 ? _f : "0")),
|
|
5695
|
+
to: Math.max(Number.parseFloat((_g = anchorNode.getAttribute("data-end")) !== null && _g !== void 0 ? _g : "0"), Number.parseFloat((_h = focusNode.getAttribute("data-end")) !== null && _h !== void 0 ? _h : "0")),
|
|
5696
|
+
};
|
|
5697
|
+
(_j = props === null || props === void 0 ? void 0 : props.handleSelection) === null || _j === void 0 ? void 0 : _j.call(props, Object.assign(Object.assign({}, selectionPart), { text }));
|
|
5698
|
+
}
|
|
5699
|
+
}, [props]);
|
|
5700
|
+
React.useEffect(() => {
|
|
5701
|
+
if (ref.current === null)
|
|
5702
|
+
return;
|
|
5703
|
+
document.addEventListener("selectionchange", handleSelectionChange);
|
|
5704
|
+
return () => {
|
|
5705
|
+
document.removeEventListener("selectionchange", handleSelectionChange);
|
|
5706
|
+
};
|
|
5707
|
+
}, [ref, props, handleSelectionChange]);
|
|
5708
|
+
return (jsxRuntime.jsx(HighlightContextProvider, Object.assign({ term: props.search }, { children: jsxRuntime.jsx(WordsContainer, Object.assign({ ref: ref }, { children: props.children })) })));
|
|
5709
|
+
};
|
|
5710
|
+
const Word = (props) => {
|
|
5711
|
+
const isActive = props.currentTime &&
|
|
5712
|
+
props.currentTime >= props.start &&
|
|
5713
|
+
props.currentTime < props.end;
|
|
5714
|
+
// Are there any observations containing this word?
|
|
5715
|
+
const foundObservations = React.useMemo(() => {
|
|
5716
|
+
var _a, _b;
|
|
5717
|
+
return (_b = (_a = props.observations) === null || _a === void 0 ? void 0 : _a.filter((obs) => props.start >= obs.start && props.end <= obs.end)) !== null && _b !== void 0 ? _b : [];
|
|
5718
|
+
}, [props.observations, props.start, props.end]);
|
|
5719
|
+
const ObsWord = React.useMemo(() => (jsxRuntime.jsxs(StyledWord, Object.assign({}, props, { "data-start": props.start, "data-end": props.end, className: foundObservations.length > 0 ? "highlighted" : "" }, (foundObservations && { observations: foundObservations }), { children: [foundObservations.length > 0 && foundObservations.map((obs) => {
|
|
5720
|
+
var _a;
|
|
5721
|
+
return (jsxRuntime.jsx(Layer, { color: (_a = obs.hue) !== null && _a !== void 0 ? _a : theme.palette.grey[600] }, obs.id));
|
|
5722
|
+
}), isActive ? (jsxRuntime.jsx(ActiveWord, { children: jsxRuntime.jsx(Searchable, { text: props.text }) })) : (jsxRuntime.jsx(Searchable, { text: props.text })), " "] }))), [props, foundObservations, isActive]);
|
|
5723
|
+
if (props.tooltipContent !== undefined && foundObservations.length > 0) {
|
|
5724
|
+
return (jsxRuntime.jsx(Tooltip, Object.assign({ content: props.tooltipContent(foundObservations), isTransparent: true }, { children: ObsWord })));
|
|
5725
|
+
}
|
|
5726
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: ObsWord });
|
|
5727
|
+
};
|
|
5728
|
+
Highlight.Word = Word;
|
|
5729
|
+
|
|
5351
5730
|
/**
|
|
5352
5731
|
* The Dots loader communicates ongoing activity after a user takes an action.
|
|
5353
5732
|
* It tells them that something is taking place.
|
|
@@ -6824,6 +7203,7 @@ exports.HeaderItem = HeaderItem;
|
|
|
6824
7203
|
exports.HeaderItemIcon = HeaderItemIcon;
|
|
6825
7204
|
exports.HeaderItemText = HeaderItemText;
|
|
6826
7205
|
exports.HeaderRow = HeaderRow;
|
|
7206
|
+
exports.Highlight = Highlight;
|
|
6827
7207
|
exports.Hint = Hint;
|
|
6828
7208
|
exports.Icon = Icon;
|
|
6829
7209
|
exports.IconButton = IconButton;
|