@appquality/unguess-design-system 3.1.91-beta-attachments → 3.1.91
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 +940 -629
- package/build/stories/chat/_types.d.ts +6 -3
- package/build/stories/chat/context/chatContext.d.ts +8 -6
- 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 +3 -2
- package/build/stories/chat/parts/comment.d.ts +2 -7
- package/build/stories/highlight/_types.d.ts +37 -0
- package/build/stories/highlight/demo-parts/data.d.ts +49 -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/highlightContext.d.ts +10 -0
- package/build/stories/highlight/index.d.ts +10 -0
- package/build/stories/highlight/index.stories.d.ts +17 -0
- package/build/stories/highlight/searchable.d.ts +4 -0
- package/build/stories/player/_types.d.ts +18 -0
- package/build/stories/player/index.stories.d.ts +1 -2
- 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/progressContext.d.ts +16 -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 +4 -2
- package/.vscode/settings.json +0 -3
- package/build/stories/chat/parts/ThumbnailContainer/ImageThumbnail.d.ts +0 -11
- package/build/stories/chat/parts/ThumbnailContainer/VideoThumbnail.d.ts +0 -11
package/build/index.js
CHANGED
|
@@ -27,6 +27,7 @@ var line = require('@nivo/line');
|
|
|
27
27
|
var reactForms = require('@zendeskgarden/react-forms');
|
|
28
28
|
var react = require('@tiptap/react');
|
|
29
29
|
var reactTooltips = require('@zendeskgarden/react-tooltips');
|
|
30
|
+
var uuid = require('uuid');
|
|
30
31
|
var Typography = require('@tiptap/extension-typography');
|
|
31
32
|
var Link = require('@tiptap/extension-link');
|
|
32
33
|
var StarterKit = require('@tiptap/starter-kit');
|
|
@@ -37,10 +38,10 @@ var Mention = require('@tiptap/extension-mention');
|
|
|
37
38
|
var tippy = require('tippy.js');
|
|
38
39
|
var Image$2 = require('@tiptap/extension-image');
|
|
39
40
|
var Dropcursor = require('@tiptap/extension-dropcursor');
|
|
40
|
-
var reactGrid = require('@zendeskgarden/react-grid');
|
|
41
41
|
var reactModals = require('@zendeskgarden/react-modals');
|
|
42
42
|
var SlickSlider = require('react-slick');
|
|
43
43
|
var Video = require('@appquality/stream-player');
|
|
44
|
+
var reactGrid = require('@zendeskgarden/react-grid');
|
|
44
45
|
var containerUtilities = require('@zendeskgarden/container-utilities');
|
|
45
46
|
var reactColorpickers = require('@zendeskgarden/react-colorpickers');
|
|
46
47
|
var reactDropdowns = require('@zendeskgarden/react-dropdowns');
|
|
@@ -333,8 +334,8 @@ const UgContainerCard = styled__default["default"](reactNotifications.Well) `
|
|
|
333
334
|
`;
|
|
334
335
|
const ContainerCard = (props) => jsxRuntime.jsx(UgContainerCard, Object.assign({}, props));
|
|
335
336
|
|
|
336
|
-
var _a, _b, _c, _d, _e, _f, _g$
|
|
337
|
-
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": () => ({
|
|
338
339
|
color: getColor(colors.primaryHue, 600),
|
|
339
340
|
}), "text.success": () => ({
|
|
340
341
|
color: getColor(colors.successHue, 700),
|
|
@@ -841,48 +842,48 @@ Tag.Avatar = StyledAvatar;
|
|
|
841
842
|
Tag.Close = StyledClose;
|
|
842
843
|
Tag.SecondaryText = StyledSpan;
|
|
843
844
|
|
|
844
|
-
var _path$
|
|
845
|
-
function _extends$
|
|
846
|
-
const SvgUgSquare = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
845
|
+
var _path$F;
|
|
846
|
+
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); }
|
|
847
|
+
const SvgUgSquare = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$S({
|
|
847
848
|
width: 24,
|
|
848
849
|
height: 24,
|
|
849
850
|
viewBox: "0 0 24 24",
|
|
850
851
|
fill: "none",
|
|
851
852
|
xmlns: "http://www.w3.org/2000/svg"
|
|
852
|
-
}, props), _path$
|
|
853
|
+
}, props), _path$F || (_path$F = /*#__PURE__*/React__namespace.createElement("path", {
|
|
853
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",
|
|
854
855
|
fill: "#E80C7A"
|
|
855
856
|
})));
|
|
856
857
|
|
|
857
|
-
var _path$
|
|
858
|
-
function _extends$
|
|
859
|
-
const SvgUgCircle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
858
|
+
var _path$E;
|
|
859
|
+
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); }
|
|
860
|
+
const SvgUgCircle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$R({
|
|
860
861
|
width: 24,
|
|
861
862
|
height: 24,
|
|
862
863
|
viewBox: "0 0 24 24",
|
|
863
864
|
fill: "none",
|
|
864
865
|
xmlns: "http://www.w3.org/2000/svg"
|
|
865
|
-
}, props), _path$
|
|
866
|
+
}, props), _path$E || (_path$E = /*#__PURE__*/React__namespace.createElement("path", {
|
|
866
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",
|
|
867
868
|
fill: "#FFCD1A"
|
|
868
869
|
})));
|
|
869
870
|
|
|
870
|
-
var _path$
|
|
871
|
-
function _extends$
|
|
872
|
-
const SvgUgTriangle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
871
|
+
var _path$D;
|
|
872
|
+
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); }
|
|
873
|
+
const SvgUgTriangle = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$Q({
|
|
873
874
|
width: 24,
|
|
874
875
|
height: 24,
|
|
875
876
|
viewBox: "0 0 24 24",
|
|
876
877
|
fill: "none",
|
|
877
878
|
xmlns: "http://www.w3.org/2000/svg"
|
|
878
|
-
}, props), _path$
|
|
879
|
+
}, props), _path$D || (_path$D = /*#__PURE__*/React__namespace.createElement("path", {
|
|
879
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",
|
|
880
881
|
fill: "#7B0DFF"
|
|
881
882
|
})));
|
|
882
883
|
|
|
883
|
-
var _rect$4, _path$
|
|
884
|
-
function _extends$
|
|
885
|
-
const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
884
|
+
var _rect$4, _path$C, _path2$c, _path3$4;
|
|
885
|
+
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); }
|
|
886
|
+
const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$P({
|
|
886
887
|
width: 24,
|
|
887
888
|
height: 24,
|
|
888
889
|
viewBox: "0 0 24 24",
|
|
@@ -893,7 +894,7 @@ const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElemen
|
|
|
893
894
|
height: 24,
|
|
894
895
|
rx: 12,
|
|
895
896
|
fill: "#F6F6F8"
|
|
896
|
-
})), _path$
|
|
897
|
+
})), _path$C || (_path$C = /*#__PURE__*/React__namespace.createElement("path", {
|
|
897
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",
|
|
898
899
|
fill: "#50BF95"
|
|
899
900
|
})), _path2$c || (_path2$c = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -904,9 +905,9 @@ const SvgCampaignCompleted = props => /*#__PURE__*/React__namespace.createElemen
|
|
|
904
905
|
fill: "#007345"
|
|
905
906
|
})));
|
|
906
907
|
|
|
907
|
-
var _rect$3, _path$
|
|
908
|
-
function _extends$
|
|
909
|
-
const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
908
|
+
var _rect$3, _path$B, _path2$b;
|
|
909
|
+
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); }
|
|
910
|
+
const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$O({
|
|
910
911
|
width: 24,
|
|
911
912
|
height: 24,
|
|
912
913
|
viewBox: "0 0 24 24",
|
|
@@ -917,7 +918,7 @@ const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("
|
|
|
917
918
|
height: 24,
|
|
918
919
|
rx: 12,
|
|
919
920
|
fill: "#F6F6F8"
|
|
920
|
-
})), _path$
|
|
921
|
+
})), _path$B || (_path$B = /*#__PURE__*/React__namespace.createElement("path", {
|
|
921
922
|
fillRule: "evenodd",
|
|
922
923
|
clipRule: "evenodd",
|
|
923
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",
|
|
@@ -929,9 +930,9 @@ const SvgCampaignLocked = props => /*#__PURE__*/React__namespace.createElement("
|
|
|
929
930
|
fill: "#F4AC1A"
|
|
930
931
|
})));
|
|
931
932
|
|
|
932
|
-
var _rect$2, _path$
|
|
933
|
-
function _extends$
|
|
934
|
-
const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
933
|
+
var _rect$2, _path$A, _path2$a;
|
|
934
|
+
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); }
|
|
935
|
+
const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$N({
|
|
935
936
|
width: 24,
|
|
936
937
|
height: 24,
|
|
937
938
|
viewBox: "0 0 24 24",
|
|
@@ -942,7 +943,7 @@ const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement
|
|
|
942
943
|
height: 24,
|
|
943
944
|
rx: 12,
|
|
944
945
|
fill: "#F6F6F8"
|
|
945
|
-
})), _path$
|
|
946
|
+
})), _path$A || (_path$A = /*#__PURE__*/React__namespace.createElement("path", {
|
|
946
947
|
d: "M11.2266 13.0313H14.997M11.2266 9.26075V13.0313V9.26075ZM11.2266 13.0313L20.121 5.03906L11.2266 13.0313Z",
|
|
947
948
|
stroke: "#024780",
|
|
948
949
|
strokeWidth: 1.5,
|
|
@@ -956,9 +957,9 @@ const SvgCampaignIncoming = props => /*#__PURE__*/React__namespace.createElement
|
|
|
956
957
|
strokeLinejoin: "round"
|
|
957
958
|
})));
|
|
958
959
|
|
|
959
|
-
var _rect$1, _path$
|
|
960
|
-
function _extends$
|
|
961
|
-
const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
960
|
+
var _rect$1, _path$z, _path2$9, _path3$3, _path4$1, _path5$1, _path6$1, _path7$1, _path8$1, _path9$1, _path10$1;
|
|
961
|
+
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); }
|
|
962
|
+
const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$M({
|
|
962
963
|
width: 24,
|
|
963
964
|
height: 24,
|
|
964
965
|
viewBox: "0 0 24 24",
|
|
@@ -969,7 +970,7 @@ const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement
|
|
|
969
970
|
height: 24,
|
|
970
971
|
rx: 12,
|
|
971
972
|
fill: "#F6F6F8"
|
|
972
|
-
})), _path$
|
|
973
|
+
})), _path$z || (_path$z = /*#__PURE__*/React__namespace.createElement("path", {
|
|
973
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",
|
|
974
975
|
fill: "#D1820A"
|
|
975
976
|
})), _path2$9 || (_path2$9 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -1001,21 +1002,21 @@ const SvgCampaignProgress = props => /*#__PURE__*/React__namespace.createElement
|
|
|
1001
1002
|
fill: "#FFB65A"
|
|
1002
1003
|
})));
|
|
1003
1004
|
|
|
1004
|
-
var _g$
|
|
1005
|
-
function _extends$
|
|
1006
|
-
const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1005
|
+
var _g$c, _path$y, _path2$8, _path3$2, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;
|
|
1006
|
+
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); }
|
|
1007
|
+
const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$L({
|
|
1007
1008
|
width: 24,
|
|
1008
1009
|
height: 24,
|
|
1009
1010
|
viewBox: "0 0 24 24",
|
|
1010
1011
|
fill: "none",
|
|
1011
1012
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1012
|
-
}, props), _g$
|
|
1013
|
+
}, props), _g$c || (_g$c = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1013
1014
|
opacity: 0.3
|
|
1014
1015
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1015
1016
|
opacity: 0.3,
|
|
1016
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",
|
|
1017
1018
|
fill: "#50BF95"
|
|
1018
|
-
}))), _path$
|
|
1019
|
+
}))), _path$y || (_path$y = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1019
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",
|
|
1020
1021
|
fill: "#2B8473",
|
|
1021
1022
|
stroke: "#2B8473"
|
|
@@ -1071,21 +1072,21 @@ const SvgCampaignExperiential = props => /*#__PURE__*/React__namespace.createEle
|
|
|
1071
1072
|
fill: "#ECF4F2"
|
|
1072
1073
|
})));
|
|
1073
1074
|
|
|
1074
|
-
var _g$
|
|
1075
|
-
function _extends$
|
|
1076
|
-
const SvgCampaignFunctional = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1075
|
+
var _g$b, _path$x;
|
|
1076
|
+
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); }
|
|
1077
|
+
const SvgCampaignFunctional = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$K({
|
|
1077
1078
|
width: 24,
|
|
1078
1079
|
height: 24,
|
|
1079
1080
|
viewBox: "0 0 24 24",
|
|
1080
1081
|
fill: "none",
|
|
1081
1082
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1082
|
-
}, props), _g$
|
|
1083
|
+
}, props), _g$b || (_g$b = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1083
1084
|
opacity: 0.3
|
|
1084
1085
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1085
1086
|
opacity: 0.3,
|
|
1086
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",
|
|
1087
1088
|
fill: "#003A57"
|
|
1088
|
-
}))), _path$
|
|
1089
|
+
}))), _path$x || (_path$x = /*#__PURE__*/React__namespace.createElement("path", {
|
|
1089
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",
|
|
1090
1091
|
fill: "#003A57"
|
|
1091
1092
|
})));
|
|
@@ -1946,15 +1947,15 @@ const WaffleChart = ({ height, width, data, total, tooltip, }) => {
|
|
|
1946
1947
|
} }) })));
|
|
1947
1948
|
};
|
|
1948
1949
|
|
|
1949
|
-
var _g$
|
|
1950
|
-
function _extends$
|
|
1951
|
-
const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1950
|
+
var _g$a, _defs$4;
|
|
1951
|
+
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); }
|
|
1952
|
+
const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$J({
|
|
1952
1953
|
width: 27,
|
|
1953
1954
|
height: 26,
|
|
1954
1955
|
viewBox: "0 0 27 26",
|
|
1955
1956
|
fill: "none",
|
|
1956
1957
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1957
|
-
}, props), _g$
|
|
1958
|
+
}, props), _g$a || (_g$a = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1958
1959
|
clipPath: "url(#clip0_21_19131)"
|
|
1959
1960
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1960
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",
|
|
@@ -1970,15 +1971,15 @@ const SvgSentiment1 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
1970
1971
|
fill: "white"
|
|
1971
1972
|
})))));
|
|
1972
1973
|
|
|
1973
|
-
var _g$
|
|
1974
|
-
function _extends$
|
|
1975
|
-
const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1974
|
+
var _g$9, _defs$3;
|
|
1975
|
+
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); }
|
|
1976
|
+
const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$I({
|
|
1976
1977
|
width: 27,
|
|
1977
1978
|
height: 26,
|
|
1978
1979
|
viewBox: "0 0 27 26",
|
|
1979
1980
|
fill: "none",
|
|
1980
1981
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1981
|
-
}, props), _g$
|
|
1982
|
+
}, props), _g$9 || (_g$9 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
1982
1983
|
clipPath: "url(#clip0_21_19130)"
|
|
1983
1984
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
1984
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",
|
|
@@ -1994,15 +1995,15 @@ const SvgSentiment2 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
1994
1995
|
fill: "white"
|
|
1995
1996
|
})))));
|
|
1996
1997
|
|
|
1997
|
-
var _g$
|
|
1998
|
-
function _extends$
|
|
1999
|
-
const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
1998
|
+
var _g$8, _defs$2;
|
|
1999
|
+
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); }
|
|
2000
|
+
const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$H({
|
|
2000
2001
|
width: 27,
|
|
2001
2002
|
height: 26,
|
|
2002
2003
|
viewBox: "0 0 27 26",
|
|
2003
2004
|
fill: "none",
|
|
2004
2005
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2005
|
-
}, props), _g$
|
|
2006
|
+
}, props), _g$8 || (_g$8 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2006
2007
|
clipPath: "url(#clip0_21_19129)"
|
|
2007
2008
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2008
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",
|
|
@@ -2024,15 +2025,15 @@ const SvgSentiment3 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2024
2025
|
fill: "white"
|
|
2025
2026
|
})))));
|
|
2026
2027
|
|
|
2027
|
-
var _g$
|
|
2028
|
-
function _extends$
|
|
2029
|
-
const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2028
|
+
var _g$7, _defs$1;
|
|
2029
|
+
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); }
|
|
2030
|
+
const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$G({
|
|
2030
2031
|
width: 27,
|
|
2031
2032
|
height: 26,
|
|
2032
2033
|
viewBox: "0 0 27 26",
|
|
2033
2034
|
fill: "none",
|
|
2034
2035
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2035
|
-
}, props), _g$
|
|
2036
|
+
}, props), _g$7 || (_g$7 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2036
2037
|
clipPath: "url(#clip0_21_19127)"
|
|
2037
2038
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2038
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",
|
|
@@ -2054,15 +2055,15 @@ const SvgSentiment4 = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2054
2055
|
fill: "white"
|
|
2055
2056
|
})))));
|
|
2056
2057
|
|
|
2057
|
-
var _g$
|
|
2058
|
-
function _extends$
|
|
2059
|
-
const SvgSentiment5 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2058
|
+
var _g$6, _defs;
|
|
2059
|
+
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); }
|
|
2060
|
+
const SvgSentiment5 = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$F({
|
|
2060
2061
|
width: 26,
|
|
2061
2062
|
height: 26,
|
|
2062
2063
|
viewBox: "0 0 26 26",
|
|
2063
2064
|
fill: "none",
|
|
2064
2065
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2065
|
-
}, props), _g$
|
|
2066
|
+
}, props), _g$6 || (_g$6 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2066
2067
|
clipPath: "url(#clip0_21_19125)"
|
|
2067
2068
|
}, /*#__PURE__*/React__namespace.createElement("path", {
|
|
2068
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",
|
|
@@ -2313,7 +2314,7 @@ const ChatFooter = ({ saveText, children, showShortcut, }) => {
|
|
|
2313
2314
|
};
|
|
2314
2315
|
|
|
2315
2316
|
const ChatContext = React.createContext(null);
|
|
2316
|
-
const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, children, }) => {
|
|
2317
|
+
const ChatContextProvider = ({ onSave, onFileUpload, onDeleteThumbnail, setMentionableUsers, children, }) => {
|
|
2317
2318
|
const [editor, setEditor] = React.useState();
|
|
2318
2319
|
const [thumbnails, setThumbnails] = React.useState([]);
|
|
2319
2320
|
const getMentions = (editor) => {
|
|
@@ -2335,9 +2336,10 @@ const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, childr
|
|
|
2335
2336
|
editor,
|
|
2336
2337
|
setEditor,
|
|
2337
2338
|
thumbnails,
|
|
2339
|
+
setThumbnails,
|
|
2338
2340
|
afterUploadCallback: (failed) => {
|
|
2339
2341
|
setThumbnails(thumbnails.map((file) => {
|
|
2340
|
-
if (failed.includes(file.
|
|
2342
|
+
if (failed.includes(file.id)) {
|
|
2341
2343
|
file.isLoadingMedia = false;
|
|
2342
2344
|
//file.isError = true;
|
|
2343
2345
|
}
|
|
@@ -2349,7 +2351,6 @@ const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, childr
|
|
|
2349
2351
|
}));
|
|
2350
2352
|
},
|
|
2351
2353
|
addThumbnails: ({ files }) => {
|
|
2352
|
-
files.forEach((file) => (file.isLoadingMedia = true));
|
|
2353
2354
|
setThumbnails((prev) => [...prev, ...files]);
|
|
2354
2355
|
if (onFileUpload) {
|
|
2355
2356
|
onFileUpload(files).then((data) => {
|
|
@@ -2358,7 +2359,7 @@ const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, childr
|
|
|
2358
2359
|
setThumbnails((prev) => {
|
|
2359
2360
|
return prev.map((file) => {
|
|
2360
2361
|
file.isLoadingMedia = false;
|
|
2361
|
-
if ((failed === null || failed === void 0 ? void 0 : failed.length) && failed.includes(file.
|
|
2362
|
+
if ((failed === null || failed === void 0 ? void 0 : failed.length) && failed.includes(file.id)) {
|
|
2362
2363
|
file.isError = true;
|
|
2363
2364
|
}
|
|
2364
2365
|
else {
|
|
@@ -2370,18 +2371,24 @@ const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, childr
|
|
|
2370
2371
|
});
|
|
2371
2372
|
}
|
|
2372
2373
|
},
|
|
2373
|
-
|
|
2374
|
-
if (editor)
|
|
2374
|
+
clearInput: () => {
|
|
2375
|
+
if (editor && !editor.isEmpty) {
|
|
2376
|
+
editor.commands.clearContent();
|
|
2377
|
+
}
|
|
2378
|
+
if (thumbnails.length > 0)
|
|
2375
2379
|
setThumbnails([]);
|
|
2376
|
-
console.log("thumbnails cleared", thumbnails);
|
|
2377
2380
|
},
|
|
2378
|
-
|
|
2381
|
+
onDeleteThumbnail: (id) => {
|
|
2382
|
+
onDeleteThumbnail(id);
|
|
2383
|
+
},
|
|
2384
|
+
removeThumbnail: (index) => {
|
|
2385
|
+
setThumbnails(thumbnails.filter((_, i) => i !== index));
|
|
2386
|
+
},
|
|
2379
2387
|
triggerSave: () => {
|
|
2380
2388
|
if (editor && onSave && !editor.isEmpty) {
|
|
2381
2389
|
onSave(editor, getMentions(editor));
|
|
2382
2390
|
editor.commands.clearContent();
|
|
2383
2391
|
setThumbnails([]);
|
|
2384
|
-
console.log("thumbnails cleared", thumbnails);
|
|
2385
2392
|
}
|
|
2386
2393
|
},
|
|
2387
2394
|
mentionableUsers: setMentionableUsers,
|
|
@@ -2393,6 +2400,7 @@ const ChatContextProvider = ({ onSave, onFileUpload, setMentionableUsers, childr
|
|
|
2393
2400
|
thumbnails,
|
|
2394
2401
|
setThumbnails,
|
|
2395
2402
|
onFileUpload,
|
|
2403
|
+
onDeleteThumbnail,
|
|
2396
2404
|
]);
|
|
2397
2405
|
return (jsxRuntime.jsx(ChatContext.Provider, Object.assign({ value: chatContextValue }, { children: children })));
|
|
2398
2406
|
};
|
|
@@ -2728,96 +2736,28 @@ const ChatTitle = styled__default["default"](Title$1) `
|
|
|
2728
2736
|
padding: ${({ theme }) => `${theme.space.sm} ${theme.space.md}`};
|
|
2729
2737
|
`;
|
|
2730
2738
|
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
justify-content: center;
|
|
2735
|
-
width: ${({ theme }) => theme.space.xl};
|
|
2736
|
-
height: ${({ theme }) => theme.space.xl};
|
|
2737
|
-
`;
|
|
2738
|
-
/**
|
|
2739
|
-
* Title is a basic component used to display a title. Often used in card headers.
|
|
2740
|
-
*/
|
|
2741
|
-
const Close = (props) => jsxRuntime.jsx(UgClose$1, Object.assign({}, props));
|
|
2742
|
-
|
|
2743
|
-
const NOTIFICATION_COMPONENT_ID = "notifications.notification";
|
|
2744
|
-
const CLOSE_COMPONENT_ID = "notifications.notification.close";
|
|
2745
|
-
const CLOSE_ICON_COMPONENT_ID = "notifications.notification.close-icon";
|
|
2746
|
-
const TITLE_COMPONENT_ID = "notifications.notification.title";
|
|
2747
|
-
const UgClose = styled__default["default"](Close).attrs((props) => {
|
|
2748
|
-
var _a;
|
|
2749
|
-
return ({
|
|
2750
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_ICON_COMPONENT_ID,
|
|
2751
|
-
});
|
|
2752
|
-
}) `
|
|
2753
|
-
${(props) => reactTheming.retrieveComponentStyles(CLOSE_ICON_COMPONENT_ID, props)};
|
|
2754
|
-
`;
|
|
2755
|
-
const UgAnchor = styled__default["default"](reactButtons.Anchor).attrs((props) => {
|
|
2756
|
-
var _a;
|
|
2757
|
-
return ({
|
|
2758
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_COMPONENT_ID,
|
|
2759
|
-
});
|
|
2760
|
-
}) `
|
|
2761
|
-
${(props) => reactTheming.retrieveComponentStyles(CLOSE_COMPONENT_ID, props)};
|
|
2762
|
-
`;
|
|
2763
|
-
const UgTitle = styled__default["default"](Title$1).attrs((props) => {
|
|
2764
|
-
var _a;
|
|
2765
|
-
return ({
|
|
2766
|
-
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : TITLE_COMPONENT_ID,
|
|
2767
|
-
});
|
|
2768
|
-
}) `
|
|
2769
|
-
${(props) => reactTheming.retrieveComponentStyles(TITLE_COMPONENT_ID, props)};
|
|
2770
|
-
`;
|
|
2771
|
-
const UgNotification = styled__default["default"](reactNotifications.Notification) `
|
|
2772
|
-
display: flex;
|
|
2773
|
-
align-items: center;
|
|
2774
|
-
justify-content: space-between;
|
|
2775
|
-
padding-right: ${({ theme }) => theme.space.md};
|
|
2776
|
-
white-space: pre;
|
|
2777
|
-
|
|
2778
|
-
${UgAnchor} {
|
|
2779
|
-
flex-shrink: 0;
|
|
2780
|
-
margin-left: ${({ theme }) => theme.space.md};
|
|
2781
|
-
}
|
|
2782
|
-
|
|
2783
|
-
${(props) => reactTheming.retrieveComponentStyles(NOTIFICATION_COMPONENT_ID, props)};
|
|
2784
|
-
`;
|
|
2785
|
-
/**
|
|
2786
|
-
* A Notification is a passive status update that keeps users informed of system progress.
|
|
2787
|
-
* <hr>
|
|
2788
|
-
* Used for this:
|
|
2789
|
-
- For a passive status update about user or system activity
|
|
2790
|
-
*/
|
|
2791
|
-
const Notification = (_a) => {
|
|
2792
|
-
var { closeText, message, onClose, type, isPrimary, isRegular } = _a, props = __rest(_a, ["closeText", "message", "onClose", "type", "isPrimary", "isRegular"]);
|
|
2793
|
-
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, {}) }))] })));
|
|
2794
|
-
};
|
|
2795
|
-
// ToastProvider
|
|
2796
|
-
const ToastProvider = (props) => (jsxRuntime.jsx(reactNotifications.ToastProvider, Object.assign({}, props)));
|
|
2797
|
-
const useToast = reactNotifications.useToast;
|
|
2798
|
-
|
|
2799
|
-
var _path$v;
|
|
2800
|
-
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); }
|
|
2801
|
-
const SvgBoldFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$C({
|
|
2739
|
+
var _path$w;
|
|
2740
|
+
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); }
|
|
2741
|
+
const SvgBoldFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$E({
|
|
2802
2742
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2803
2743
|
width: 16,
|
|
2804
2744
|
height: 16,
|
|
2805
2745
|
focusable: "false",
|
|
2806
2746
|
viewBox: "0 0 16 16"
|
|
2807
|
-
}, props), _path$
|
|
2747
|
+
}, props), _path$w || (_path$w = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2808
2748
|
fill: "currentColor",
|
|
2809
2749
|
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"
|
|
2810
2750
|
})));
|
|
2811
2751
|
|
|
2812
|
-
var _path$
|
|
2813
|
-
function _extends$
|
|
2814
|
-
const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2752
|
+
var _path$v;
|
|
2753
|
+
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); }
|
|
2754
|
+
const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$D({
|
|
2815
2755
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2816
2756
|
width: 16,
|
|
2817
2757
|
height: 16,
|
|
2818
2758
|
focusable: "false",
|
|
2819
2759
|
viewBox: "0 0 16 16"
|
|
2820
|
-
}, props), _path$
|
|
2760
|
+
}, props), _path$v || (_path$v = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2821
2761
|
fill: "none",
|
|
2822
2762
|
stroke: "currentColor",
|
|
2823
2763
|
strokeLinecap: "round",
|
|
@@ -2825,15 +2765,15 @@ const SvgItalicFill = props => /*#__PURE__*/React__namespace.createElement("svg"
|
|
|
2825
2765
|
d: "M8 1h3M9.5 1l-3 14M5 15h3"
|
|
2826
2766
|
})));
|
|
2827
2767
|
|
|
2828
|
-
var _path$
|
|
2829
|
-
function _extends$
|
|
2830
|
-
const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2768
|
+
var _path$u, _path2$7;
|
|
2769
|
+
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); }
|
|
2770
|
+
const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$C({
|
|
2831
2771
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2832
2772
|
width: 16,
|
|
2833
2773
|
height: 16,
|
|
2834
2774
|
focusable: "false",
|
|
2835
2775
|
viewBox: "0 0 16 16"
|
|
2836
|
-
}, props), _path$
|
|
2776
|
+
}, props), _path$u || (_path$u = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2837
2777
|
fill: "currentColor",
|
|
2838
2778
|
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"
|
|
2839
2779
|
})), _path2$7 || (_path2$7 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -2844,15 +2784,15 @@ const SvgQuoteFill = props => /*#__PURE__*/React__namespace.createElement("svg",
|
|
|
2844
2784
|
d: "M5.5 12C6.5 11 7 9.5 7 8V6m4.5 6c1-1 1.5-2.5 1.5-4V6"
|
|
2845
2785
|
})));
|
|
2846
2786
|
|
|
2847
|
-
var _g$
|
|
2848
|
-
function _extends$
|
|
2849
|
-
const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2787
|
+
var _g$5;
|
|
2788
|
+
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); }
|
|
2789
|
+
const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$B({
|
|
2850
2790
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2851
2791
|
width: 16,
|
|
2852
2792
|
height: 16,
|
|
2853
2793
|
focusable: "false",
|
|
2854
2794
|
viewBox: "0 0 16 16"
|
|
2855
|
-
}, props), _g$
|
|
2795
|
+
}, props), _g$5 || (_g$5 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2856
2796
|
transform: "translate(-464 -332)"
|
|
2857
2797
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2858
2798
|
width: 16,
|
|
@@ -2872,15 +2812,15 @@ const SvgH1Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _e
|
|
|
2872
2812
|
transform: "translate(474.469 331)"
|
|
2873
2813
|
}))));
|
|
2874
2814
|
|
|
2875
|
-
var _g$
|
|
2876
|
-
function _extends$
|
|
2877
|
-
const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2815
|
+
var _g$4;
|
|
2816
|
+
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); }
|
|
2817
|
+
const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$A({
|
|
2878
2818
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2879
2819
|
width: 16,
|
|
2880
2820
|
height: 16,
|
|
2881
2821
|
focusable: "false",
|
|
2882
2822
|
viewBox: "0 0 16 16"
|
|
2883
|
-
}, props), _g$
|
|
2823
|
+
}, props), _g$4 || (_g$4 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2884
2824
|
transform: "translate(-464 -332)"
|
|
2885
2825
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2886
2826
|
width: 16,
|
|
@@ -2900,15 +2840,15 @@ const SvgH2Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _e
|
|
|
2900
2840
|
transform: "translate(469.359 331)"
|
|
2901
2841
|
}))));
|
|
2902
2842
|
|
|
2903
|
-
var _g$
|
|
2904
|
-
function _extends$
|
|
2905
|
-
const SvgH3Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2843
|
+
var _g$3;
|
|
2844
|
+
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); }
|
|
2845
|
+
const SvgH3Fill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$z({
|
|
2906
2846
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2907
2847
|
width: 16,
|
|
2908
2848
|
height: 16,
|
|
2909
2849
|
focusable: "false",
|
|
2910
2850
|
viewBox: "0 0 16 16"
|
|
2911
|
-
}, props), _g$
|
|
2851
|
+
}, props), _g$3 || (_g$3 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
2912
2852
|
transform: "translate(-464 -332)"
|
|
2913
2853
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
2914
2854
|
width: 16,
|
|
@@ -2969,143 +2909,219 @@ const FloatingMenu = (props) => {
|
|
|
2969
2909
|
const TooltipComponent = (props) => {
|
|
2970
2910
|
var _a;
|
|
2971
2911
|
const theme = React.useContext(styled.ThemeContext);
|
|
2972
|
-
return jsxRuntime.jsx(reactTooltips.Tooltip, Object.assign({}, props, { zIndex: (_a = props.zIndex) !== null && _a !== void 0 ? _a : theme.levels.front }));
|
|
2912
|
+
return (jsxRuntime.jsx(reactTooltips.Tooltip, Object.assign({}, props, { zIndex: (_a = props.zIndex) !== null && _a !== void 0 ? _a : theme.levels.front })));
|
|
2973
2913
|
};
|
|
2974
2914
|
const Tooltip = styled__default["default"](TooltipComponent) `
|
|
2975
2915
|
box-shadow: ${({ theme }) => theme.shadows.lg(`${theme.space.base * 3}px`, `${theme.space.base * 5}px`, getColor("neutralHue", 600, theme, 0.15))};
|
|
2916
|
+
|
|
2917
|
+
${({ isTransparent }) => isTransparent &&
|
|
2918
|
+
`
|
|
2919
|
+
box-shadow: none;
|
|
2920
|
+
background-color: transparent;
|
|
2921
|
+
border: none;
|
|
2922
|
+
`};
|
|
2976
2923
|
`;
|
|
2977
2924
|
|
|
2978
|
-
var _path$
|
|
2979
|
-
function _extends$
|
|
2980
|
-
const SvgBoldStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2925
|
+
var _path$t;
|
|
2926
|
+
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); }
|
|
2927
|
+
const SvgBoldStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$y({
|
|
2981
2928
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2982
2929
|
width: 16,
|
|
2983
2930
|
height: 16,
|
|
2984
2931
|
focusable: "false",
|
|
2985
2932
|
viewBox: "0 0 16 16"
|
|
2986
|
-
}, props), _path$
|
|
2933
|
+
}, props), _path$t || (_path$t = /*#__PURE__*/React__namespace.createElement("path", {
|
|
2987
2934
|
fill: "currentColor",
|
|
2988
2935
|
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"
|
|
2989
2936
|
})));
|
|
2990
2937
|
|
|
2991
|
-
var _path$
|
|
2992
|
-
function _extends$
|
|
2993
|
-
const SvgItalicStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2938
|
+
var _path$s;
|
|
2939
|
+
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); }
|
|
2940
|
+
const SvgItalicStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$x({
|
|
2994
2941
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2995
2942
|
width: 16,
|
|
2996
2943
|
height: 16,
|
|
2997
2944
|
focusable: "false",
|
|
2998
2945
|
viewBox: "0 0 16 16"
|
|
2999
|
-
}, props), _path$
|
|
2946
|
+
}, props), _path$s || (_path$s = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3000
2947
|
fill: "none",
|
|
3001
2948
|
stroke: "currentColor",
|
|
3002
2949
|
strokeLinecap: "round",
|
|
3003
2950
|
d: "M7.5 1.5h3M9 1.5l-3 14m-1.5 0h3"
|
|
3004
2951
|
})));
|
|
3005
2952
|
|
|
3006
|
-
var _path$
|
|
3007
|
-
function _extends$
|
|
3008
|
-
const SvgAtStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2953
|
+
var _path$r;
|
|
2954
|
+
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); }
|
|
2955
|
+
const SvgAtStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$w({
|
|
3009
2956
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3010
2957
|
width: 16,
|
|
3011
2958
|
height: 16,
|
|
3012
2959
|
focusable: "false",
|
|
3013
2960
|
role: "presentation"
|
|
3014
|
-
}, props), _path$
|
|
2961
|
+
}, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3015
2962
|
fill: "none",
|
|
3016
2963
|
stroke: "currentColor",
|
|
3017
2964
|
strokeLinecap: "round",
|
|
3018
2965
|
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"
|
|
3019
2966
|
})));
|
|
3020
2967
|
|
|
3021
|
-
var _path$
|
|
3022
|
-
function _extends$
|
|
3023
|
-
const SvgClipboard = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
2968
|
+
var _path$q;
|
|
2969
|
+
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); }
|
|
2970
|
+
const SvgClipboard = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$v({
|
|
3024
2971
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3025
2972
|
width: 16,
|
|
3026
2973
|
height: 16,
|
|
3027
2974
|
focusable: "false",
|
|
3028
2975
|
role: "presentation"
|
|
3029
|
-
}, props), _path$
|
|
2976
|
+
}, props), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3030
2977
|
fill: "none",
|
|
3031
2978
|
stroke: "currentColor",
|
|
3032
2979
|
strokeLinecap: "round",
|
|
3033
2980
|
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"
|
|
3034
2981
|
})));
|
|
3035
2982
|
|
|
3036
|
-
const
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
gap: ${({ theme }) => theme.space.xxs};
|
|
2983
|
+
const UgClose$1 = styled__default["default"](reactNotifications.Close) `
|
|
2984
|
+
display: flex;
|
|
2985
|
+
align-items: center;
|
|
2986
|
+
justify-content: center;
|
|
2987
|
+
width: ${({ theme }) => theme.space.xl};
|
|
2988
|
+
height: ${({ theme }) => theme.space.xl};
|
|
3043
2989
|
`;
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
2990
|
+
/**
|
|
2991
|
+
* Title is a basic component used to display a title. Often used in card headers.
|
|
2992
|
+
*/
|
|
2993
|
+
const Close = (props) => jsxRuntime.jsx(UgClose$1, Object.assign({}, props));
|
|
2994
|
+
|
|
2995
|
+
const NOTIFICATION_COMPONENT_ID = "notifications.notification";
|
|
2996
|
+
const CLOSE_COMPONENT_ID = "notifications.notification.close";
|
|
2997
|
+
const CLOSE_ICON_COMPONENT_ID = "notifications.notification.close-icon";
|
|
2998
|
+
const TITLE_COMPONENT_ID = "notifications.notification.title";
|
|
2999
|
+
const UgClose = styled__default["default"](Close).attrs((props) => {
|
|
3000
|
+
var _a;
|
|
3001
|
+
return ({
|
|
3002
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_ICON_COMPONENT_ID,
|
|
3003
|
+
});
|
|
3004
|
+
}) `
|
|
3005
|
+
${(props) => reactTheming.retrieveComponentStyles(CLOSE_ICON_COMPONENT_ID, props)};
|
|
3049
3006
|
`;
|
|
3050
|
-
const
|
|
3051
|
-
var _a
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
return editor.chain().focus().toggleBold().run();
|
|
3073
|
-
case "italic":
|
|
3074
|
-
return editor.chain().focus().toggleItalic().run();
|
|
3075
|
-
case "mention":
|
|
3076
|
-
const { from } = editor.state.selection;
|
|
3077
|
-
const char = from > 1 ? " @" : "@";
|
|
3078
|
-
return editor.chain().focus().insertContent(char).run();
|
|
3079
|
-
case "attachment":
|
|
3080
|
-
//open a file browser to select one or more images
|
|
3081
|
-
const fileInput = document.createElement("input");
|
|
3082
|
-
fileInput.type = "file";
|
|
3083
|
-
fileInput.accept = "image/*,video/*";
|
|
3084
|
-
fileInput.multiple = true;
|
|
3085
|
-
fileInput.click();
|
|
3086
|
-
fileInput.onchange = () => {
|
|
3087
|
-
const files = fileInput.files;
|
|
3088
|
-
if (files) {
|
|
3089
|
-
const mediaFiles = Array.from(files).map((file) => {
|
|
3090
|
-
return Object.assign(file, { isLoadingMedia: false });
|
|
3091
|
-
});
|
|
3092
|
-
if (mediaFiles.length === 0)
|
|
3093
|
-
return;
|
|
3094
|
-
addThumbnails({ files: mediaFiles });
|
|
3095
|
-
}
|
|
3096
|
-
};
|
|
3097
|
-
return;
|
|
3098
|
-
default:
|
|
3099
|
-
return;
|
|
3100
|
-
}
|
|
3101
|
-
};
|
|
3102
|
-
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: () => handleClick("bold") }, { children: getIcon("bold") })) })), 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: () => handleClick("italic") }, { children: getIcon("italic") })) })), 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: () => handleClick("mention") }, { children: getIcon("mention") })) })), 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 : "Upload images and video. 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: () => handleClick("attachment") }, { children: getIcon("attachment") })) }))] })) }));
|
|
3103
|
-
};
|
|
3007
|
+
const UgAnchor = styled__default["default"](reactButtons.Anchor).attrs((props) => {
|
|
3008
|
+
var _a;
|
|
3009
|
+
return ({
|
|
3010
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : CLOSE_COMPONENT_ID,
|
|
3011
|
+
});
|
|
3012
|
+
}) `
|
|
3013
|
+
${(props) => reactTheming.retrieveComponentStyles(CLOSE_COMPONENT_ID, props)};
|
|
3014
|
+
`;
|
|
3015
|
+
const UgTitle = styled__default["default"](Title$1).attrs((props) => {
|
|
3016
|
+
var _a;
|
|
3017
|
+
return ({
|
|
3018
|
+
"data-custom-id": (_a = props["data-custom-id"]) !== null && _a !== void 0 ? _a : TITLE_COMPONENT_ID,
|
|
3019
|
+
});
|
|
3020
|
+
}) `
|
|
3021
|
+
${(props) => reactTheming.retrieveComponentStyles(TITLE_COMPONENT_ID, props)};
|
|
3022
|
+
`;
|
|
3023
|
+
const UgNotification = styled__default["default"](reactNotifications.Notification) `
|
|
3024
|
+
display: flex;
|
|
3025
|
+
align-items: center;
|
|
3026
|
+
justify-content: space-between;
|
|
3027
|
+
padding-right: ${({ theme }) => theme.space.md};
|
|
3028
|
+
white-space: pre;
|
|
3104
3029
|
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3030
|
+
${UgAnchor} {
|
|
3031
|
+
flex-shrink: 0;
|
|
3032
|
+
margin-left: ${({ theme }) => theme.space.md};
|
|
3033
|
+
}
|
|
3034
|
+
|
|
3035
|
+
${(props) => reactTheming.retrieveComponentStyles(NOTIFICATION_COMPONENT_ID, props)};
|
|
3036
|
+
`;
|
|
3037
|
+
/**
|
|
3038
|
+
* A Notification is a passive status update that keeps users informed of system progress.
|
|
3039
|
+
* <hr>
|
|
3040
|
+
* Used for this:
|
|
3041
|
+
- For a passive status update about user or system activity
|
|
3042
|
+
*/
|
|
3043
|
+
const Notification = (_a) => {
|
|
3044
|
+
var { closeText, message, onClose, type, isPrimary, isRegular } = _a, props = __rest(_a, ["closeText", "message", "onClose", "type", "isPrimary", "isRegular"]);
|
|
3045
|
+
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, {}) }))] })));
|
|
3046
|
+
};
|
|
3047
|
+
// ToastProvider
|
|
3048
|
+
const ToastProvider = (props) => (jsxRuntime.jsx(reactNotifications.ToastProvider, Object.assign({}, props)));
|
|
3049
|
+
const useToast = reactNotifications.useToast;
|
|
3050
|
+
|
|
3051
|
+
const acceptedMediaTypes = /^(image|video)\//;
|
|
3052
|
+
function useMedia() {
|
|
3053
|
+
const { addToast } = useToast();
|
|
3054
|
+
function getValidMedia(data) {
|
|
3055
|
+
const wrongFiles = Array.from(data).filter((file) => !acceptedMediaTypes.test(file.type));
|
|
3056
|
+
if (wrongFiles.length) {
|
|
3057
|
+
addToast(({ close }) => (jsxRuntime.jsx(Notification, { onClose: close, type: "error", message: wrongFiles.length === 1
|
|
3058
|
+
? `${wrongFiles[0].name} not supported, please upload video or image only`
|
|
3059
|
+
: "Some attachments are not supported, please upload video or image only", isPrimary: true })), { placement: "top" });
|
|
3060
|
+
}
|
|
3061
|
+
return Array.from(data).filter((file) => acceptedMediaTypes.test(file.type));
|
|
3062
|
+
}
|
|
3063
|
+
function getMedia(data) {
|
|
3064
|
+
return getValidMedia(data).map((file) => {
|
|
3065
|
+
return Object.assign(file, {
|
|
3066
|
+
url: URL.createObjectURL(file),
|
|
3067
|
+
isLoadingMedia: true,
|
|
3068
|
+
id: uuid.v4(),
|
|
3069
|
+
});
|
|
3070
|
+
});
|
|
3071
|
+
}
|
|
3072
|
+
return { getMedia };
|
|
3073
|
+
}
|
|
3074
|
+
|
|
3075
|
+
const MenuContainer = styled__default["default"].div `
|
|
3076
|
+
padding: ${({ theme }) => theme.space.xs} 0;
|
|
3077
|
+
display: flex;
|
|
3078
|
+
flex-direction: row;
|
|
3079
|
+
justify-content: flex-start;
|
|
3080
|
+
align-items: center;
|
|
3081
|
+
gap: ${({ theme }) => theme.space.xxs};
|
|
3082
|
+
`;
|
|
3083
|
+
const VerticalDivider = styled__default["default"].div `
|
|
3084
|
+
width: 2px;
|
|
3085
|
+
height: 24px;
|
|
3086
|
+
background-color: ${({ theme }) => theme.palette.grey[300]};
|
|
3087
|
+
margin: 0 ${({ theme }) => theme.space.xs};
|
|
3088
|
+
`;
|
|
3089
|
+
const CommentBar = ({ editor, i18n, }) => {
|
|
3090
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
3091
|
+
const { addThumbnails } = useChatContext();
|
|
3092
|
+
const { getMedia } = useMedia();
|
|
3093
|
+
if (!editor)
|
|
3094
|
+
return null;
|
|
3095
|
+
const handleBoldClick = () => {
|
|
3096
|
+
editor.chain().focus().toggleBold().run();
|
|
3097
|
+
};
|
|
3098
|
+
const handleItalicClick = () => {
|
|
3099
|
+
editor.chain().focus().toggleItalic().run();
|
|
3100
|
+
};
|
|
3101
|
+
const handleMentionClick = () => {
|
|
3102
|
+
const { from } = editor.state.selection;
|
|
3103
|
+
const char = from > 1 ? " @" : "@";
|
|
3104
|
+
editor.chain().focus().insertContent(char).run();
|
|
3105
|
+
};
|
|
3106
|
+
const handleAttachmentClick = () => {
|
|
3107
|
+
const fileInput = document.createElement("input");
|
|
3108
|
+
fileInput.type = "file";
|
|
3109
|
+
fileInput.accept = "image/*,video/*";
|
|
3110
|
+
fileInput.multiple = true;
|
|
3111
|
+
fileInput.click();
|
|
3112
|
+
fileInput.onchange = () => {
|
|
3113
|
+
if (fileInput.files) {
|
|
3114
|
+
addThumbnails({ files: getMedia(fileInput.files) });
|
|
3115
|
+
}
|
|
3116
|
+
};
|
|
3117
|
+
};
|
|
3118
|
+
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, {}) })) }))] })) }));
|
|
3119
|
+
};
|
|
3120
|
+
|
|
3121
|
+
const CustomMention = Mention__default["default"].extend({
|
|
3122
|
+
addAttributes() {
|
|
3123
|
+
return {
|
|
3124
|
+
id: {
|
|
3109
3125
|
default: null,
|
|
3110
3126
|
parseHTML: (element) => element.getAttribute("data-mention-id"),
|
|
3111
3127
|
renderHTML: (attributes) => {
|
|
@@ -3276,7 +3292,7 @@ const editorExtensions = ({ placeholderOptions, mentionableUsers, }) => {
|
|
|
3276
3292
|
},
|
|
3277
3293
|
}),
|
|
3278
3294
|
Dropcursor__default["default"].configure({
|
|
3279
|
-
color:
|
|
3295
|
+
color: getColor(colors.accentHue, 700),
|
|
3280
3296
|
width: 3,
|
|
3281
3297
|
}),
|
|
3282
3298
|
Placeholder__default["default"].configure(Object.assign({ placeholder: ({ node }) => {
|
|
@@ -3348,20 +3364,20 @@ const editorExtensions = ({ placeholderOptions, mentionableUsers, }) => {
|
|
|
3348
3364
|
];
|
|
3349
3365
|
};
|
|
3350
3366
|
|
|
3351
|
-
var _circle$
|
|
3352
|
-
function _extends$
|
|
3353
|
-
const SvgRemoveMediaIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3367
|
+
var _circle$3, _path$p, _path2$6;
|
|
3368
|
+
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); }
|
|
3369
|
+
const SvgRemoveMediaIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$u({
|
|
3354
3370
|
width: 56,
|
|
3355
3371
|
height: 56,
|
|
3356
3372
|
viewBox: "0 0 56 56",
|
|
3357
3373
|
fill: "#68737d",
|
|
3358
3374
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3359
|
-
}, props), _circle$
|
|
3375
|
+
}, props), _circle$3 || (_circle$3 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
3360
3376
|
cx: 28,
|
|
3361
3377
|
cy: 28,
|
|
3362
3378
|
r: 28,
|
|
3363
3379
|
fill: "#edf7ff"
|
|
3364
|
-
})), _path$
|
|
3380
|
+
})), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3365
3381
|
d: "M16.929 16.929L39.071 39.071",
|
|
3366
3382
|
stroke: "currentColor",
|
|
3367
3383
|
strokeWidth: 4
|
|
@@ -3380,72 +3396,36 @@ const StyledDeleteThumbnailX = styled__default["default"].div `
|
|
|
3380
3396
|
width: 32px;
|
|
3381
3397
|
height: 32px;
|
|
3382
3398
|
opacity: 0;
|
|
3399
|
+
transition: opacity 0.2s;
|
|
3383
3400
|
z-index: 2;
|
|
3384
3401
|
`;
|
|
3385
3402
|
const DeleteThumbnailX = ({ deleteThumbnail }) => {
|
|
3386
3403
|
return (jsxRuntime.jsx(StyledDeleteThumbnailX, Object.assign({ className: "deleteThumbnail" }, { children: jsxRuntime.jsx(SvgRemoveMediaIcon, { onClick: (e) => deleteThumbnail(e) }) })));
|
|
3387
3404
|
};
|
|
3388
3405
|
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
opacity: 1;
|
|
3393
|
-
}
|
|
3394
|
-
`;
|
|
3395
|
-
const Preview$1 = styled__default["default"].div `
|
|
3396
|
-
display: flex;
|
|
3397
|
-
justify-content: center;
|
|
3398
|
-
align-items: center;
|
|
3399
|
-
height: 150px;
|
|
3400
|
-
width: 100%;
|
|
3401
|
-
background-image: url(${(props) => props.url});
|
|
3402
|
-
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
3403
|
-
background-size: contain;
|
|
3404
|
-
background-position: center;
|
|
3405
|
-
background-repeat: no-repeat;
|
|
3406
|
-
`;
|
|
3407
|
-
const ImageThumbnail = ({ src, index = 0, removeThumbnail, clickThumbnail, showX = true, isLoadingMedia = false, isError = false, }) => {
|
|
3408
|
-
const handleCancel = (e) => {
|
|
3409
|
-
e.stopPropagation();
|
|
3410
|
-
if (removeThumbnail)
|
|
3411
|
-
removeThumbnail(index);
|
|
3412
|
-
};
|
|
3413
|
-
return (jsxRuntime.jsxs(ImageCard, Object.assign({ onClick: clickThumbnail }, { children: [isLoadingMedia && (jsxRuntime.jsx(Preview$1, Object.assign({ url: "" }, { children: jsxRuntime.jsx(reactLoaders.Spinner, { style: {
|
|
3414
|
-
display: "flex",
|
|
3415
|
-
alignItems: "center",
|
|
3416
|
-
justifyContent: "center",
|
|
3417
|
-
}, size: "large" }) }))), isError && (
|
|
3418
|
-
// todo: add error icon
|
|
3419
|
-
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) })) })))] })));
|
|
3420
|
-
};
|
|
3421
|
-
|
|
3422
|
-
var _circle$1, _path$n;
|
|
3423
|
-
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); }
|
|
3424
|
-
const SvgVideoPlayIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
|
|
3406
|
+
var _circle$2, _path$o;
|
|
3407
|
+
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); }
|
|
3408
|
+
const SvgVideoPlayIcon = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
|
|
3425
3409
|
width: 56,
|
|
3426
3410
|
height: 56,
|
|
3427
3411
|
viewBox: "0 0 56 56",
|
|
3428
3412
|
fill: "none",
|
|
3429
3413
|
xmlns: "http://www.w3.org/2000/svg"
|
|
3430
|
-
}, props), _circle$
|
|
3414
|
+
}, props), _circle$2 || (_circle$2 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
3431
3415
|
cx: 28,
|
|
3432
3416
|
cy: 28,
|
|
3433
3417
|
r: 28,
|
|
3434
3418
|
fill: "white"
|
|
3435
|
-
})), _path$
|
|
3419
|
+
})), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3436
3420
|
d: "M47 28L18.5 44.4545L18.5 11.5455L47 28Z",
|
|
3437
3421
|
fill: "currentColor"
|
|
3438
3422
|
})));
|
|
3439
3423
|
|
|
3440
|
-
const
|
|
3424
|
+
const ImageCard = styled__default["default"](SpecialCard) `
|
|
3441
3425
|
padding: 0;
|
|
3442
3426
|
position: relative;
|
|
3443
3427
|
overflow: hidden;
|
|
3444
|
-
|
|
3445
|
-
&:hover .deleteThumbnail {
|
|
3446
|
-
opacity: 1;
|
|
3447
|
-
z-index: 9999;
|
|
3448
|
-
}
|
|
3428
|
+
min-width: 90px;
|
|
3449
3429
|
|
|
3450
3430
|
&:before {
|
|
3451
3431
|
content: "";
|
|
@@ -3455,101 +3435,93 @@ const VideoCard = styled__default["default"](SpecialCard) `
|
|
|
3455
3435
|
width: 100%;
|
|
3456
3436
|
height: 100%;
|
|
3457
3437
|
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
3458
|
-
opacity: 0
|
|
3438
|
+
opacity: 0;
|
|
3439
|
+
transition: opacity 0.2s;
|
|
3459
3440
|
z-index: 1;
|
|
3460
3441
|
}
|
|
3461
3442
|
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3443
|
+
&:hover {
|
|
3444
|
+
.deleteThumbnail {
|
|
3445
|
+
opacity: 1;
|
|
3446
|
+
}
|
|
3447
|
+
&:before {
|
|
3448
|
+
opacity: 0.3;
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3451
|
+
|
|
3452
|
+
&.video {
|
|
3453
|
+
svg {
|
|
3454
|
+
position: absolute;
|
|
3455
|
+
top: 50%;
|
|
3456
|
+
left: 50%;
|
|
3457
|
+
transform: translate(-50%, -50%);
|
|
3458
|
+
width: 32px;
|
|
3459
|
+
height: 32px;
|
|
3460
|
+
z-index: 2;
|
|
3461
|
+
}
|
|
3470
3462
|
}
|
|
3471
3463
|
`;
|
|
3472
3464
|
const Preview = styled__default["default"].div `
|
|
3473
|
-
padding: ${({ theme }) => theme.space.md};
|
|
3474
3465
|
display: flex;
|
|
3475
3466
|
justify-content: center;
|
|
3476
3467
|
align-items: center;
|
|
3477
|
-
height:
|
|
3468
|
+
height: 100px;
|
|
3478
3469
|
width: 100%;
|
|
3479
3470
|
|
|
3471
|
+
${(p) => p.url &&
|
|
3472
|
+
`
|
|
3473
|
+
background-image: url(${p.url});
|
|
3474
|
+
background-color: ${p.theme.palette.grey[100]};
|
|
3475
|
+
background-size: cover;
|
|
3476
|
+
background-position: center;
|
|
3477
|
+
background-repeat: no-repeat;
|
|
3478
|
+
`}
|
|
3479
|
+
|
|
3480
3480
|
> video {
|
|
3481
3481
|
width: 100%;
|
|
3482
3482
|
height: 100%;
|
|
3483
3483
|
}
|
|
3484
3484
|
`;
|
|
3485
|
-
const
|
|
3485
|
+
const Thumbnail = ({ src, type, removeThumbnail, clickThumbnail, showX, isLoadingMedia = true, isError = false, }) => {
|
|
3486
3486
|
const handleCancel = (e) => {
|
|
3487
3487
|
e.stopPropagation();
|
|
3488
3488
|
if (removeThumbnail)
|
|
3489
|
-
removeThumbnail(
|
|
3489
|
+
removeThumbnail();
|
|
3490
3490
|
};
|
|
3491
|
-
return (jsxRuntime.jsxs(
|
|
3491
|
+
return (jsxRuntime.jsxs(ImageCard, Object.assign({ onClick: clickThumbnail, className: type.includes("video") ? "video" : "image" }, { children: [isError && (
|
|
3492
|
+
// todo: add error icon
|
|
3493
|
+
jsxRuntime.jsx("span", { children: "error uploading media" })), isLoadingMedia ? (jsxRuntime.jsx(Preview, { children: jsxRuntime.jsx(reactLoaders.Spinner, { style: {
|
|
3492
3494
|
display: "flex",
|
|
3493
3495
|
alignItems: "center",
|
|
3494
3496
|
justifyContent: "center",
|
|
3495
|
-
}, size: "large" }) })),
|
|
3496
|
-
// todo: add error icon
|
|
3497
|
-
jsxRuntime.jsx("span", { children: "error uploading media" })), !isLoadingMedia && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [showX && (jsxRuntime.jsx(DeleteThumbnailX, { deleteThumbnail: (e) => handleCancel(e) })), jsxRuntime.jsx(Preview, { children: jsxRuntime.jsx("video", Object.assign({ src: src }, { children: jsxRuntime.jsx("track", { kind: "captions" }) })) }), jsxRuntime.jsx(SvgVideoPlayIcon, {})] }))] })));
|
|
3497
|
+
}, 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, {})] }))] })))] })));
|
|
3498
3498
|
};
|
|
3499
3499
|
|
|
3500
|
-
const
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
/**
|
|
3505
|
-
* The Grid component is a framework for building modular layouts.
|
|
3506
|
-
* <hr>
|
|
3507
|
-
* Used for this:
|
|
3508
|
-
- To structure the layout of a page
|
|
3509
|
-
*/
|
|
3510
|
-
const Grid = (props) => jsxRuntime.jsx(UgGrid, Object.assign({}, props));
|
|
3511
|
-
|
|
3512
|
-
const Row$1 = (props) => jsxRuntime.jsx(reactGrid.Row, Object.assign({}, props));
|
|
3513
|
-
|
|
3514
|
-
const StyledCol$1 = styled__default["default"](reactGrid.Col) `
|
|
3515
|
-
margin-bottom: ${theme.space.lg};
|
|
3516
|
-
|
|
3517
|
-
@media screen and (max-width: ${theme.breakpoints.sm}) {
|
|
3518
|
-
margin-bottom: ${theme.space.md};
|
|
3519
|
-
}
|
|
3500
|
+
const FlexContainer = styled.styled.div `
|
|
3501
|
+
display: flex;
|
|
3502
|
+
gap: ${({ theme }) => theme.space.xs};
|
|
3503
|
+
flex-wrap: wrap;
|
|
3520
3504
|
`;
|
|
3521
|
-
const Col = (props) => jsxRuntime.jsx(StyledCol$1, Object.assign({}, props));
|
|
3522
|
-
|
|
3523
3505
|
const ThumbnailContainer = ({ openLightbox }) => {
|
|
3524
|
-
const { thumbnails, removeThumbnail } = useChatContext();
|
|
3525
|
-
|
|
3526
|
-
return
|
|
3527
|
-
}
|
|
3528
|
-
const mediaFiles = [];
|
|
3529
|
-
thumbnails.forEach((file) => {
|
|
3530
|
-
mediaFiles.push({
|
|
3506
|
+
const { thumbnails, removeThumbnail, onDeleteThumbnail } = useChatContext();
|
|
3507
|
+
const mediaFiles = React.useMemo(() => {
|
|
3508
|
+
return thumbnails.map((file) => ({
|
|
3531
3509
|
fileName: file.name,
|
|
3532
3510
|
fileType: file.type,
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3511
|
+
previewUrl: file.url,
|
|
3512
|
+
id: file.id,
|
|
3513
|
+
isLoadingMedia: file.isLoadingMedia,
|
|
3514
|
+
}));
|
|
3515
|
+
}, [thumbnails]);
|
|
3538
3516
|
if (!mediaFiles || mediaFiles.length === 0) {
|
|
3539
3517
|
return null;
|
|
3540
3518
|
}
|
|
3541
|
-
return (jsxRuntime.jsx(
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
if (file.fileType.includes("video"))
|
|
3548
|
-
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.status === "uploading", removeThumbnail: () => removeThumbnail(index), clickThumbnail: () => {
|
|
3549
|
-
openLightbox(thumbnails[index], index);
|
|
3550
|
-
} }, index) })));
|
|
3551
|
-
return null;
|
|
3552
|
-
}) })) }));
|
|
3519
|
+
return (jsxRuntime.jsx(FlexContainer, { children: mediaFiles.map((file, index) => (jsxRuntime.jsx(Thumbnail, { src: file.previewUrl, showX: true, type: file.fileType, isLoadingMedia: file.isLoadingMedia, removeThumbnail: () => {
|
|
3520
|
+
removeThumbnail(index);
|
|
3521
|
+
onDeleteThumbnail(file.id);
|
|
3522
|
+
}, clickThumbnail: () => {
|
|
3523
|
+
openLightbox(index);
|
|
3524
|
+
} }, file.id))) }));
|
|
3553
3525
|
};
|
|
3554
3526
|
|
|
3555
3527
|
const UgModalBody = styled__default["default"](reactModals.Body) `
|
|
@@ -3618,28 +3590,28 @@ Lightbox.Body = ModalBody; // Includes Main and Details
|
|
|
3618
3590
|
Lightbox.Footer = Footer$3;
|
|
3619
3591
|
Lightbox.Close = reactModals.Close;
|
|
3620
3592
|
|
|
3621
|
-
var _path$
|
|
3622
|
-
function _extends$
|
|
3623
|
-
const SvgChevronLeftStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3593
|
+
var _path$n;
|
|
3594
|
+
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); }
|
|
3595
|
+
const SvgChevronLeftStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
|
|
3624
3596
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3625
3597
|
width: 16,
|
|
3626
3598
|
height: 16,
|
|
3627
3599
|
focusable: "false",
|
|
3628
3600
|
viewBox: "0 0 16 16"
|
|
3629
|
-
}, props), _path$
|
|
3601
|
+
}, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3630
3602
|
fill: "currentColor",
|
|
3631
3603
|
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"
|
|
3632
3604
|
})));
|
|
3633
3605
|
|
|
3634
|
-
var _path$
|
|
3635
|
-
function _extends$
|
|
3636
|
-
const SvgChevronRightStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$
|
|
3606
|
+
var _path$m;
|
|
3607
|
+
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); }
|
|
3608
|
+
const SvgChevronRightStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
|
|
3637
3609
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3638
3610
|
width: 16,
|
|
3639
3611
|
height: 16,
|
|
3640
3612
|
focusable: "false",
|
|
3641
3613
|
viewBox: "0 0 16 16"
|
|
3642
|
-
}, props), _path$
|
|
3614
|
+
}, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3643
3615
|
fill: "currentColor",
|
|
3644
3616
|
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"
|
|
3645
3617
|
})));
|
|
@@ -3862,44 +3834,26 @@ Slider.Slide = Slide;
|
|
|
3862
3834
|
Slider.PrevButton = PrevButton;
|
|
3863
3835
|
Slider.NextButton = NextButton;
|
|
3864
3836
|
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
z-index: 1;
|
|
3882
|
-
`;
|
|
3883
|
-
const Content$1 = styled__default["default"].div `
|
|
3884
|
-
display: flex;
|
|
3885
|
-
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
3886
|
-
border-radius: 2px;
|
|
3887
|
-
width: auto;
|
|
3888
|
-
padding: 2px 4px;
|
|
3889
|
-
display: inline-flex;
|
|
3890
|
-
color: white;
|
|
3891
|
-
align-items: center;
|
|
3892
|
-
justify-content: center;
|
|
3893
|
-
min-height: 16px;
|
|
3894
|
-
`;
|
|
3895
|
-
const PlayerTooltip = (_a) => {
|
|
3896
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
3897
|
-
return (jsxRuntime.jsx(Wrapper$1, Object.assign({}, props, { children: jsxRuntime.jsx(Content$1, { children: children }) })));
|
|
3898
|
-
};
|
|
3837
|
+
var _path$l, _path2$5;
|
|
3838
|
+
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); }
|
|
3839
|
+
const SvgVolumeMutedFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
|
|
3840
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3841
|
+
width: 16,
|
|
3842
|
+
height: 16,
|
|
3843
|
+
focusable: "false",
|
|
3844
|
+
viewBox: "0 0 16 16"
|
|
3845
|
+
}, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3846
|
+
stroke: "currentColor",
|
|
3847
|
+
strokeLinecap: "round",
|
|
3848
|
+
d: "M11.5 10l4-4m-4 0l4 4"
|
|
3849
|
+
})), _path2$5 || (_path2$5 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3850
|
+
fill: "currentColor",
|
|
3851
|
+
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"
|
|
3852
|
+
})));
|
|
3899
3853
|
|
|
3900
|
-
var _path$k;
|
|
3901
|
-
function _extends$
|
|
3902
|
-
const
|
|
3854
|
+
var _path$k, _path2$4;
|
|
3855
|
+
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); }
|
|
3856
|
+
const SvgVolumeUnmutedFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
|
|
3903
3857
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3904
3858
|
width: 16,
|
|
3905
3859
|
height: 16,
|
|
@@ -3907,38 +3861,236 @@ const SvgPlayFill = props => /*#__PURE__*/React__namespace.createElement("svg",
|
|
|
3907
3861
|
viewBox: "0 0 16 16"
|
|
3908
3862
|
}, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3909
3863
|
fill: "currentColor",
|
|
3910
|
-
d: "
|
|
3864
|
+
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"
|
|
3865
|
+
})), _path2$4 || (_path2$4 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3866
|
+
fill: "none",
|
|
3867
|
+
stroke: "currentColor",
|
|
3868
|
+
strokeLinecap: "round",
|
|
3869
|
+
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"
|
|
3911
3870
|
})));
|
|
3912
3871
|
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3872
|
+
const ControlButton = styled__default["default"](IconButton) `
|
|
3873
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
3874
|
+
`;
|
|
3875
|
+
|
|
3876
|
+
const AudioButton = () => {
|
|
3877
|
+
const [hasAudio, setHasAudio] = React.useState(false);
|
|
3878
|
+
const { isMuted, setMuted, context } = Video.useVideoContext();
|
|
3879
|
+
const { player } = context;
|
|
3880
|
+
const checkAudio = (video) => {
|
|
3881
|
+
if (!video) {
|
|
3882
|
+
return false;
|
|
3883
|
+
}
|
|
3884
|
+
const videohasAudio = video.mozHasAudio ||
|
|
3885
|
+
Boolean(video.webkitAudioDecodedByteCount) ||
|
|
3886
|
+
Boolean(video.audioTracks && video.audioTracks.length);
|
|
3887
|
+
setHasAudio(videohasAudio);
|
|
3888
|
+
};
|
|
3889
|
+
const hasVolume = (video) => {
|
|
3890
|
+
if (!video) {
|
|
3891
|
+
return false;
|
|
3892
|
+
}
|
|
3893
|
+
return video.volume > 0;
|
|
3894
|
+
};
|
|
3895
|
+
React.useEffect(() => {
|
|
3896
|
+
if (player && (player === null || player === void 0 ? void 0 : player.ref)) {
|
|
3897
|
+
setMuted(!hasVolume(player.ref.current));
|
|
3898
|
+
checkAudio(player.ref.current);
|
|
3899
|
+
}
|
|
3900
|
+
}, [context.isPlaying, isMuted, player, setMuted]);
|
|
3901
|
+
return (jsxRuntime.jsx(ControlButton, Object.assign({ disabled: !hasAudio, onClick: () => {
|
|
3902
|
+
if (player === null || player === void 0 ? void 0 : player.ref.current) {
|
|
3903
|
+
player.ref.current.volume = player.ref.current.volume > 0 ? 0 : 1;
|
|
3904
|
+
setMuted(!player.ref.current.volume);
|
|
3905
|
+
}
|
|
3906
|
+
} }, { children: isMuted || !hasAudio ? jsxRuntime.jsx(SvgVolumeMutedFill, {}) : jsxRuntime.jsx(SvgVolumeUnmutedFill, {}) })));
|
|
3907
|
+
};
|
|
3908
|
+
|
|
3909
|
+
const ProgressContext = React.createContext(null);
|
|
3910
|
+
const ProgressContextProvider = ({ children, }) => {
|
|
3911
|
+
const [isGrabbing, setIsGrabbing] = React.useState(false);
|
|
3912
|
+
const [fromEnd, setFromEnd] = React.useState(false);
|
|
3913
|
+
const [activeBookmark, setactiveBookmark] = React.useState(undefined);
|
|
3914
|
+
const progressContextValue = React.useMemo(() => ({
|
|
3915
|
+
isGrabbing,
|
|
3916
|
+
fromEnd,
|
|
3917
|
+
activeBookmark,
|
|
3918
|
+
setIsGrabbing,
|
|
3919
|
+
setFromEnd,
|
|
3920
|
+
setactiveBookmark,
|
|
3921
|
+
reset: () => {
|
|
3922
|
+
setIsGrabbing(false);
|
|
3923
|
+
setFromEnd(false);
|
|
3924
|
+
setactiveBookmark(undefined);
|
|
3925
|
+
},
|
|
3926
|
+
}), [isGrabbing, fromEnd, activeBookmark]);
|
|
3927
|
+
return (jsxRuntime.jsx(ProgressContext.Provider, Object.assign({ value: progressContextValue }, { children: children })));
|
|
3928
|
+
};
|
|
3929
|
+
const useProgressContext = () => {
|
|
3930
|
+
const context = React.useContext(ProgressContext);
|
|
3931
|
+
if (!context)
|
|
3932
|
+
throw new Error("Provider not found for ProgressContextProvider");
|
|
3933
|
+
return context; // Now we can use the context in the component, SAFELY.
|
|
3934
|
+
};
|
|
3935
|
+
|
|
3936
|
+
var _g$2;
|
|
3937
|
+
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); }
|
|
3938
|
+
const SvgGrip = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
|
|
3916
3939
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3917
3940
|
width: 16,
|
|
3918
3941
|
height: 16,
|
|
3919
3942
|
focusable: "false",
|
|
3920
3943
|
viewBox: "0 0 16 16"
|
|
3921
|
-
}, props), _g$
|
|
3944
|
+
}, props), _g$2 || (_g$2 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
3922
3945
|
fill: "currentColor"
|
|
3923
3946
|
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3924
|
-
width:
|
|
3925
|
-
height:
|
|
3926
|
-
x:
|
|
3947
|
+
width: 2,
|
|
3948
|
+
height: 2,
|
|
3949
|
+
x: 5,
|
|
3927
3950
|
y: 1,
|
|
3928
|
-
rx:
|
|
3929
|
-
ry:
|
|
3951
|
+
rx: 0.5,
|
|
3952
|
+
ry: 0.5
|
|
3930
3953
|
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3931
|
-
width:
|
|
3932
|
-
height:
|
|
3954
|
+
width: 2,
|
|
3955
|
+
height: 2,
|
|
3933
3956
|
x: 9,
|
|
3934
3957
|
y: 1,
|
|
3935
|
-
rx:
|
|
3936
|
-
ry:
|
|
3958
|
+
rx: 0.5,
|
|
3959
|
+
ry: 0.5
|
|
3960
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3961
|
+
width: 2,
|
|
3962
|
+
height: 2,
|
|
3963
|
+
x: 5,
|
|
3964
|
+
y: 5,
|
|
3965
|
+
rx: 0.5,
|
|
3966
|
+
ry: 0.5
|
|
3967
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3968
|
+
width: 2,
|
|
3969
|
+
height: 2,
|
|
3970
|
+
x: 9,
|
|
3971
|
+
y: 5,
|
|
3972
|
+
rx: 0.5,
|
|
3973
|
+
ry: 0.5
|
|
3974
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3975
|
+
width: 2,
|
|
3976
|
+
height: 2,
|
|
3977
|
+
x: 5,
|
|
3978
|
+
y: 9,
|
|
3979
|
+
rx: 0.5,
|
|
3980
|
+
ry: 0.5
|
|
3981
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3982
|
+
width: 2,
|
|
3983
|
+
height: 2,
|
|
3984
|
+
x: 9,
|
|
3985
|
+
y: 9,
|
|
3986
|
+
rx: 0.5,
|
|
3987
|
+
ry: 0.5
|
|
3988
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3989
|
+
width: 2,
|
|
3990
|
+
height: 2,
|
|
3991
|
+
x: 5,
|
|
3992
|
+
y: 13,
|
|
3993
|
+
rx: 0.5,
|
|
3994
|
+
ry: 0.5
|
|
3995
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
3996
|
+
width: 2,
|
|
3997
|
+
height: 2,
|
|
3998
|
+
x: 9,
|
|
3999
|
+
y: 13,
|
|
4000
|
+
rx: 0.5,
|
|
4001
|
+
ry: 0.5
|
|
3937
4002
|
}))));
|
|
3938
4003
|
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
4004
|
+
const StyledGrabber = styled.styled.div `
|
|
4005
|
+
position: absolute;
|
|
4006
|
+
display: none;
|
|
4007
|
+
${({ isEnd }) => isEnd
|
|
4008
|
+
? `
|
|
4009
|
+
right: 0;
|
|
4010
|
+
border-top-right-radius: 2px;
|
|
4011
|
+
border-bottom-right-radius: 2px;
|
|
4012
|
+
`
|
|
4013
|
+
: `
|
|
4014
|
+
left: 0;
|
|
4015
|
+
border-top-left-radius: 2px;
|
|
4016
|
+
border-bottom-left-radius: 2px;
|
|
4017
|
+
`}
|
|
4018
|
+
height: 100%;
|
|
4019
|
+
width: 8px;
|
|
4020
|
+
background-color: white;
|
|
4021
|
+
z-index: 2;
|
|
4022
|
+
cursor: ew-resize;
|
|
4023
|
+
|
|
4024
|
+
div {
|
|
4025
|
+
display: flex;
|
|
4026
|
+
justify-content: center;
|
|
4027
|
+
align-items: center;
|
|
4028
|
+
height: 100%;
|
|
4029
|
+
width: 100%;
|
|
4030
|
+
color: ${({ theme }) => theme.palette.grey[500]};
|
|
4031
|
+
svg {
|
|
4032
|
+
width: auto;
|
|
4033
|
+
height: 50%;
|
|
4034
|
+
}
|
|
4035
|
+
}
|
|
4036
|
+
`;
|
|
4037
|
+
const activeBookMark = styled.css `
|
|
4038
|
+
height: 250%;
|
|
4039
|
+
transform: translateY(-30%);
|
|
4040
|
+
|
|
4041
|
+
${StyledGrabber} {
|
|
4042
|
+
display: block;
|
|
4043
|
+
}
|
|
4044
|
+
`;
|
|
4045
|
+
const Rect = styled.styled.div `
|
|
4046
|
+
position: absolute;
|
|
4047
|
+
height: 110%;
|
|
4048
|
+
background-color: ${({ hue, theme }) => hue || theme.palette.grey[800]};
|
|
4049
|
+
z-index: 1;
|
|
4050
|
+
border-radius: 2px;
|
|
4051
|
+
&:hover {
|
|
4052
|
+
${activeBookMark}
|
|
4053
|
+
border-radius: 4px;
|
|
4054
|
+
}
|
|
4055
|
+
color: white;
|
|
4056
|
+
${({ isActive }) => isActive && activeBookMark}
|
|
4057
|
+
|
|
4058
|
+
transition: width 0.1s ease;
|
|
4059
|
+
`;
|
|
4060
|
+
const Grabber = (props) => {
|
|
4061
|
+
const { observation } = props;
|
|
4062
|
+
const { setIsGrabbing, setactiveBookmark, setFromEnd } = useProgressContext();
|
|
4063
|
+
const handleDragStart = (e) => {
|
|
4064
|
+
setIsGrabbing(true);
|
|
4065
|
+
setactiveBookmark(observation);
|
|
4066
|
+
setFromEnd(!!props.isEnd);
|
|
4067
|
+
e.preventDefault();
|
|
4068
|
+
e.stopPropagation();
|
|
4069
|
+
};
|
|
4070
|
+
return (jsxRuntime.jsx(StyledGrabber, Object.assign({ isEnd: props.isEnd, onMouseDown: handleDragStart, onMouseMove: props.handleMouseMove }, { children: jsxRuntime.jsx("div", { children: jsxRuntime.jsx(SvgGrip, {}) }) })));
|
|
4071
|
+
};
|
|
4072
|
+
const Bookmark = (props) => {
|
|
4073
|
+
var _a, _b;
|
|
4074
|
+
const { start, end, hue, label } = props;
|
|
4075
|
+
const { context } = Video.useVideoContext();
|
|
4076
|
+
const videoStart = context.part.start || 0;
|
|
4077
|
+
const videoEnd = context.part.end || ((_a = context.player) === null || _a === void 0 ? void 0 : _a.totalTime) || 0;
|
|
4078
|
+
const duration = videoEnd - videoStart || ((_b = context.player) === null || _b === void 0 ? void 0 : _b.totalTime) || 0; //relative
|
|
4079
|
+
const { activeBookmark } = useProgressContext();
|
|
4080
|
+
if (!context.player || !context.player.ref) {
|
|
4081
|
+
return null;
|
|
4082
|
+
}
|
|
4083
|
+
if (start > videoEnd || start < videoStart)
|
|
4084
|
+
return null;
|
|
4085
|
+
return (jsxRuntime.jsx(Tooltip, Object.assign({ content: label, type: "light", size: "large" }, { children: jsxRuntime.jsxs(Rect, Object.assign({ isActive: activeBookmark && activeBookmark.id === props.id, hue: hue, style: {
|
|
4086
|
+
left: `${((start - videoStart) / duration) * 100}%`,
|
|
4087
|
+
width: `${((end - start) / duration) * 100}%`,
|
|
4088
|
+
}, onClick: props.onClick }, { children: [jsxRuntime.jsx(Grabber, { observation: props }), jsxRuntime.jsx(Grabber, { isEnd: true, observation: props })] })) })));
|
|
4089
|
+
};
|
|
4090
|
+
|
|
4091
|
+
var _path$j, _path2$3, _path3$1;
|
|
4092
|
+
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); }
|
|
4093
|
+
const SvgBackSecondsFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
|
|
3942
4094
|
width: 16,
|
|
3943
4095
|
height: 16,
|
|
3944
4096
|
viewBox: "0 0 16 16",
|
|
@@ -3947,9 +4099,9 @@ const SvgForwardSecondsFill = props => /*#__PURE__*/React__namespace.createEleme
|
|
|
3947
4099
|
}, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3948
4100
|
fillRule: "evenodd",
|
|
3949
4101
|
clipRule: "evenodd",
|
|
3950
|
-
d: "
|
|
4102
|
+
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",
|
|
3951
4103
|
fill: "currentColor"
|
|
3952
|
-
})), _path2$
|
|
4104
|
+
})), _path2$3 || (_path2$3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3953
4105
|
d: "M5.5 7.63073V7.07008H6.67566V11H6.02566V7.63073H5.5Z",
|
|
3954
4106
|
fill: "currentColor"
|
|
3955
4107
|
})), _path3$1 || (_path3$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -3957,9 +4109,9 @@ const SvgForwardSecondsFill = props => /*#__PURE__*/React__namespace.createEleme
|
|
|
3957
4109
|
fill: "currentColor"
|
|
3958
4110
|
})));
|
|
3959
4111
|
|
|
3960
|
-
var _path$i, _path2$
|
|
3961
|
-
function _extends$
|
|
3962
|
-
const
|
|
4112
|
+
var _path$i, _path2$2, _path3;
|
|
4113
|
+
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); }
|
|
4114
|
+
const SvgForwardSecondsFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
|
|
3963
4115
|
width: 16,
|
|
3964
4116
|
height: 16,
|
|
3965
4117
|
viewBox: "0 0 16 16",
|
|
@@ -3968,9 +4120,9 @@ const SvgBackSecondsFill = props => /*#__PURE__*/React__namespace.createElement(
|
|
|
3968
4120
|
}, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3969
4121
|
fillRule: "evenodd",
|
|
3970
4122
|
clipRule: "evenodd",
|
|
3971
|
-
d: "
|
|
4123
|
+
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",
|
|
3972
4124
|
fill: "currentColor"
|
|
3973
|
-
})), _path2$
|
|
4125
|
+
})), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3974
4126
|
d: "M5.5 7.63073V7.07008H6.67566V11H6.02566V7.63073H5.5Z",
|
|
3975
4127
|
fill: "currentColor"
|
|
3976
4128
|
})), _path3 || (_path3 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
@@ -3978,18 +4130,57 @@ const SvgBackSecondsFill = props => /*#__PURE__*/React__namespace.createElement(
|
|
|
3978
4130
|
fill: "currentColor"
|
|
3979
4131
|
})));
|
|
3980
4132
|
|
|
3981
|
-
var
|
|
4133
|
+
var _g$1;
|
|
4134
|
+
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); }
|
|
4135
|
+
const SvgPauseFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
|
|
4136
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4137
|
+
width: 16,
|
|
4138
|
+
height: 16,
|
|
4139
|
+
focusable: "false",
|
|
4140
|
+
viewBox: "0 0 16 16"
|
|
4141
|
+
}, props), _g$1 || (_g$1 = /*#__PURE__*/React__namespace.createElement("g", {
|
|
4142
|
+
fill: "currentColor"
|
|
4143
|
+
}, /*#__PURE__*/React__namespace.createElement("rect", {
|
|
4144
|
+
width: 4,
|
|
4145
|
+
height: 14,
|
|
4146
|
+
x: 3,
|
|
4147
|
+
y: 1,
|
|
4148
|
+
rx: 1,
|
|
4149
|
+
ry: 1
|
|
4150
|
+
}), /*#__PURE__*/React__namespace.createElement("rect", {
|
|
4151
|
+
width: 4,
|
|
4152
|
+
height: 14,
|
|
4153
|
+
x: 9,
|
|
4154
|
+
y: 1,
|
|
4155
|
+
rx: 1,
|
|
4156
|
+
ry: 1
|
|
4157
|
+
}))));
|
|
4158
|
+
|
|
4159
|
+
var _path$h;
|
|
3982
4160
|
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); }
|
|
3983
|
-
const
|
|
4161
|
+
const SvgPlayFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
|
|
3984
4162
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3985
4163
|
width: 16,
|
|
3986
4164
|
height: 16,
|
|
3987
4165
|
focusable: "false",
|
|
3988
|
-
viewBox: "0 0
|
|
4166
|
+
viewBox: "0 0 16 16"
|
|
3989
4167
|
}, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4168
|
+
fill: "currentColor",
|
|
4169
|
+
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"
|
|
4170
|
+
})));
|
|
4171
|
+
|
|
4172
|
+
var _path$g, _path2$1;
|
|
4173
|
+
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); }
|
|
4174
|
+
const SvgPreviousFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
|
|
4175
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4176
|
+
width: 16,
|
|
4177
|
+
height: 16,
|
|
4178
|
+
focusable: "false",
|
|
4179
|
+
viewBox: "0 0 24 24"
|
|
4180
|
+
}, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3990
4181
|
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",
|
|
3991
4182
|
fill: "currentColor"
|
|
3992
|
-
})), _path2$
|
|
4183
|
+
})), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3993
4184
|
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",
|
|
3994
4185
|
fill: "currentColor"
|
|
3995
4186
|
})));
|
|
@@ -4019,8 +4210,9 @@ const getNextPlaybackRate = (rate = 1) => {
|
|
|
4019
4210
|
const StyledDiv$3 = styled__default["default"].div `
|
|
4020
4211
|
display: flex;
|
|
4021
4212
|
align-items: center;
|
|
4213
|
+
justify-content: center;
|
|
4022
4214
|
`;
|
|
4023
|
-
const ControlsGroupCenter = () => {
|
|
4215
|
+
const ControlsGroupCenter = (props) => {
|
|
4024
4216
|
var _a;
|
|
4025
4217
|
const [playBackRate, setPlayBackRate] = React.useState(1);
|
|
4026
4218
|
const { context, togglePlay } = Video.useVideoContext();
|
|
@@ -4043,107 +4235,60 @@ const ControlsGroupCenter = () => {
|
|
|
4043
4235
|
const nextTime = videoRef.currentTime + 10;
|
|
4044
4236
|
videoRef.currentTime = nextTime;
|
|
4045
4237
|
};
|
|
4046
|
-
return (jsxRuntime.jsxs(StyledDiv$3, { children: [jsxRuntime.jsx(
|
|
4238
|
+
return (jsxRuntime.jsxs(StyledDiv$3, Object.assign({}, props, { children: [jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4047
4239
|
if (videoRef) {
|
|
4048
4240
|
videoRef.currentTime = 0;
|
|
4049
4241
|
}
|
|
4050
4242
|
e.stopPropagation();
|
|
4051
|
-
} }, { children: jsxRuntime.jsx(SvgPreviousFill, {}) })), jsxRuntime.jsx(
|
|
4243
|
+
} }, { children: jsxRuntime.jsx(SvgPreviousFill, {}) })), jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4052
4244
|
onRewind();
|
|
4053
4245
|
e.stopPropagation();
|
|
4054
|
-
} }, { children: jsxRuntime.jsx(SvgBackSecondsFill, {}) })), jsxRuntime.jsx(
|
|
4246
|
+
} }, { 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) => {
|
|
4055
4247
|
onForward();
|
|
4056
4248
|
e.stopPropagation();
|
|
4057
|
-
} }, { children: jsxRuntime.jsx(SvgForwardSecondsFill, {}) })), jsxRuntime.jsx(
|
|
4249
|
+
} }, { children: jsxRuntime.jsx(SvgForwardSecondsFill, {}) })), jsxRuntime.jsx(ControlButton, Object.assign({ isPill: true, onClick: (e) => {
|
|
4058
4250
|
const newSpeed = getNextPlaybackRate(playBackRate);
|
|
4059
4251
|
if (videoRef === null || videoRef === void 0 ? void 0 : videoRef.playbackRate) {
|
|
4060
4252
|
setPlayBackRate(newSpeed);
|
|
4061
4253
|
videoRef.playbackRate = newSpeed;
|
|
4062
4254
|
}
|
|
4063
4255
|
e.stopPropagation();
|
|
4064
|
-
} }, { children: jsxRuntime.jsxs(SM, Object.assign({ isBold: true, style: { lineHeight: "16px" } }, { children: [playBackRate, "x"] })) }))] }));
|
|
4256
|
+
} }, { children: jsxRuntime.jsxs(SM, Object.assign({ isBold: true, style: { lineHeight: "16px" } }, { children: [playBackRate, "x"] })) }))] })));
|
|
4065
4257
|
};
|
|
4066
4258
|
|
|
4067
|
-
|
|
4068
|
-
position: absolute;
|
|
4069
|
-
bottom: ${({ theme }) => theme.space.sm};
|
|
4070
|
-
right: 0;
|
|
4071
|
-
|
|
4072
|
-
padding: 0 ${({ theme }) => theme.space.xs};
|
|
4073
|
-
|
|
4074
|
-
span {
|
|
4075
|
-
color: ${({ theme }) => theme.palette.grey[300]};
|
|
4076
|
-
}
|
|
4077
|
-
`;
|
|
4078
|
-
const TimeLabel = ({ current, duration, }) => (jsxRuntime.jsx(StyledDiv$2, { children: jsxRuntime.jsxs(SM, Object.assign({ tag: "span" }, { children: [current, "/", duration] })) }));
|
|
4079
|
-
|
|
4080
|
-
var _path$g, _path2$2;
|
|
4081
|
-
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); }
|
|
4082
|
-
const SvgVolumeMutedFill = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
|
|
4083
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
4084
|
-
width: 16,
|
|
4085
|
-
height: 16,
|
|
4086
|
-
focusable: "false",
|
|
4087
|
-
viewBox: "0 0 16 16"
|
|
4088
|
-
}, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4089
|
-
stroke: "currentColor",
|
|
4090
|
-
strokeLinecap: "round",
|
|
4091
|
-
d: "M11.5 10l4-4m-4 0l4 4"
|
|
4092
|
-
})), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4093
|
-
fill: "currentColor",
|
|
4094
|
-
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"
|
|
4095
|
-
})));
|
|
4096
|
-
|
|
4097
|
-
var _path$f, _path2$1;
|
|
4259
|
+
var _path$f, _circle$1;
|
|
4098
4260
|
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); }
|
|
4099
|
-
const
|
|
4261
|
+
const SvgTagStroke = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
|
|
4100
4262
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4101
4263
|
width: 16,
|
|
4102
4264
|
height: 16,
|
|
4103
4265
|
focusable: "false",
|
|
4104
4266
|
viewBox: "0 0 16 16"
|
|
4105
4267
|
}, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4106
|
-
fill: "currentColor",
|
|
4107
|
-
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"
|
|
4108
|
-
})), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
4109
4268
|
fill: "none",
|
|
4110
4269
|
stroke: "currentColor",
|
|
4111
|
-
|
|
4112
|
-
|
|
4270
|
+
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"
|
|
4271
|
+
})), _circle$1 || (_circle$1 = /*#__PURE__*/React__namespace.createElement("circle", {
|
|
4272
|
+
cx: 4,
|
|
4273
|
+
cy: 4,
|
|
4274
|
+
r: 1,
|
|
4275
|
+
fill: "currentColor"
|
|
4113
4276
|
})));
|
|
4114
4277
|
|
|
4115
|
-
const
|
|
4116
|
-
|
|
4117
|
-
const {
|
|
4118
|
-
const
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
const videohasAudio = video.mozHasAudio ||
|
|
4125
|
-
Boolean(video.webkitAudioDecodedByteCount) ||
|
|
4126
|
-
Boolean(video.audioTracks && video.audioTracks.length);
|
|
4127
|
-
setHasAudio(videohasAudio);
|
|
4128
|
-
};
|
|
4129
|
-
const hasVolume = (video) => {
|
|
4130
|
-
if (!video) {
|
|
4131
|
-
return false;
|
|
4132
|
-
}
|
|
4133
|
-
return video.volume > 0;
|
|
4134
|
-
};
|
|
4135
|
-
React.useEffect(() => {
|
|
4136
|
-
if (player && (player === null || player === void 0 ? void 0 : player.ref)) {
|
|
4137
|
-
setMuted(!hasVolume(player.ref.current));
|
|
4138
|
-
checkAudio(player.ref.current);
|
|
4139
|
-
}
|
|
4140
|
-
}, [context.isPlaying, isMuted]);
|
|
4141
|
-
return (jsxRuntime.jsx(IconButton, Object.assign({ isBright: true, disabled: !hasAudio, onClick: () => {
|
|
4142
|
-
if (player === null || player === void 0 ? void 0 : player.ref.current) {
|
|
4143
|
-
player.ref.current.volume = player.ref.current.volume > 0 ? 0 : 1;
|
|
4144
|
-
setMuted(!player.ref.current.volume);
|
|
4278
|
+
const Cutter = ({ onCutHandler, isCutting, i18n, }) => {
|
|
4279
|
+
var _a;
|
|
4280
|
+
const { context } = Video.useVideoContext();
|
|
4281
|
+
const videoRef = (_a = context.player) === null || _a === void 0 ? void 0 : _a.ref.current;
|
|
4282
|
+
if (!onCutHandler)
|
|
4283
|
+
return null;
|
|
4284
|
+
return (jsxRuntime.jsxs(Button, Object.assign({ isPrimary: true, isAccent: true, size: "small", onClick: (e) => {
|
|
4285
|
+
if (videoRef) {
|
|
4286
|
+
onCutHandler(videoRef.currentTime);
|
|
4145
4287
|
}
|
|
4146
|
-
|
|
4288
|
+
e.stopPropagation();
|
|
4289
|
+
} }, { children: [jsxRuntime.jsx(Button.StartIcon, { children: jsxRuntime.jsx(SvgTagStroke, {}) }), isCutting
|
|
4290
|
+
? (i18n === null || i18n === void 0 ? void 0 : i18n.onHighlight) || "Click again to stop"
|
|
4291
|
+
: (i18n === null || i18n === void 0 ? void 0 : i18n.beforeHighlight) || "New highlight"] })));
|
|
4147
4292
|
};
|
|
4148
4293
|
|
|
4149
4294
|
var _path$e;
|
|
@@ -4212,7 +4357,7 @@ const FullScreenButton = ({ container, }) => {
|
|
|
4212
4357
|
setFullScreen(false);
|
|
4213
4358
|
}
|
|
4214
4359
|
}
|
|
4215
|
-
}), [ref, isFullScreen]);
|
|
4360
|
+
}), [ref, isFullScreen, setFullScreen]);
|
|
4216
4361
|
const canGoFullScreen = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
4217
4362
|
if (ref) {
|
|
4218
4363
|
return (requestFullscreen ||
|
|
@@ -4237,31 +4382,77 @@ const FullScreenButton = ({ container, }) => {
|
|
|
4237
4382
|
}
|
|
4238
4383
|
};
|
|
4239
4384
|
}, [ref]);
|
|
4240
|
-
return (jsxRuntime.jsx(
|
|
4385
|
+
return (jsxRuntime.jsx(ControlButton, Object.assign({ onClick: (e) => {
|
|
4241
4386
|
handleFullScreen();
|
|
4242
4387
|
e.stopPropagation();
|
|
4243
4388
|
}, disabled: !canGoFullScreen() }, { children: document.fullscreenElement || isFullScreen ? (jsxRuntime.jsx(SvgMinimizeStroke, {})) : (jsxRuntime.jsx(SvgMaximizeStroke, {})) })));
|
|
4244
4389
|
};
|
|
4245
4390
|
|
|
4391
|
+
const UgProgress = styled__default["default"](reactLoaders.Progress) ``;
|
|
4392
|
+
/**
|
|
4393
|
+
* A Progress loader communicates progress when downloading or uploading content.
|
|
4394
|
+
* <hr>
|
|
4395
|
+
* Used for this:
|
|
4396
|
+
* - To communicate the amount of time left when downloading or uploading content
|
|
4397
|
+
*
|
|
4398
|
+
Not for this:
|
|
4399
|
+
- When the loading time is unknown, use a Spinner instead
|
|
4400
|
+
- When loading page content, use a Skeleton loader instead
|
|
4401
|
+
*/
|
|
4402
|
+
const Progress = React.forwardRef((props, ref) => (jsxRuntime.jsx(UgProgress, Object.assign({ ref: ref }, props))));
|
|
4403
|
+
|
|
4404
|
+
const StyledProgress = styled.styled(Progress) `
|
|
4405
|
+
width: 100%;
|
|
4406
|
+
border-radius: 0;
|
|
4407
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
4408
|
+
cursor: pointer;
|
|
4409
|
+
> div {
|
|
4410
|
+
border-radius: 0;
|
|
4411
|
+
}
|
|
4412
|
+
`;
|
|
4413
|
+
const ProgressBar = React.forwardRef((props, ref) => {
|
|
4414
|
+
const { progress, handleSkipAhead } = props;
|
|
4415
|
+
return (jsxRuntime.jsx(StyledProgress, { className: "progress-bar-1", ref: ref, value: progress, onClick: (e) => handleSkipAhead(e.clientX) }));
|
|
4416
|
+
});
|
|
4417
|
+
|
|
4418
|
+
const StyledDiv$2 = styled__default["default"].div `
|
|
4419
|
+
display: flex;
|
|
4420
|
+
color: ${({ theme }) => theme.palette.grey[700]};
|
|
4421
|
+
`;
|
|
4422
|
+
const TimeLabel = ({ current, duration, }) => (jsxRuntime.jsx(StyledDiv$2, { children: jsxRuntime.jsxs(SM, Object.assign({ tag: "span" }, { children: [formatDuration(current), "/", formatDuration(duration)] })) }));
|
|
4423
|
+
|
|
4424
|
+
const Wrapper$1 = styled__default["default"].div `
|
|
4425
|
+
position: absolute;
|
|
4426
|
+
bottom: ${({ theme }) => theme.space.sm};
|
|
4427
|
+
z-index: 1;
|
|
4428
|
+
`;
|
|
4429
|
+
const Content$1 = styled__default["default"].div `
|
|
4430
|
+
display: flex;
|
|
4431
|
+
background-color: ${({ theme }) => theme.palette.grey[800]};
|
|
4432
|
+
border-radius: 2px;
|
|
4433
|
+
width: auto;
|
|
4434
|
+
padding: 2px 4px;
|
|
4435
|
+
display: inline-flex;
|
|
4436
|
+
color: white;
|
|
4437
|
+
align-items: center;
|
|
4438
|
+
justify-content: center;
|
|
4439
|
+
min-height: 16px;
|
|
4440
|
+
`;
|
|
4441
|
+
const PlayerTooltip = (_a) => {
|
|
4442
|
+
var { children } = _a, props = __rest(_a, ["children"]);
|
|
4443
|
+
return (jsxRuntime.jsx(Wrapper$1, Object.assign({}, props, { children: jsxRuntime.jsx(Content$1, { children: children }) })));
|
|
4444
|
+
};
|
|
4445
|
+
|
|
4246
4446
|
const ControlsWrapper = styled__default["default"].div `
|
|
4247
4447
|
position: absolute;
|
|
4248
4448
|
bottom: 0;
|
|
4249
4449
|
left: 0;
|
|
4250
4450
|
right: 0;
|
|
4251
4451
|
padding: ${({ theme }) => theme.space.xxs} 0;
|
|
4252
|
-
background-color: ${({ theme }) =>
|
|
4452
|
+
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
4253
4453
|
${({ isPlaying }) => isPlaying && "display: none;"}
|
|
4254
4454
|
z-index: 2;
|
|
4255
4455
|
`;
|
|
4256
|
-
const StyledProgress = styled__default["default"](Progress) `
|
|
4257
|
-
width: 100%;
|
|
4258
|
-
border-radius: 0;
|
|
4259
|
-
color: ${({ theme }) => theme.palette.kale[700]};
|
|
4260
|
-
cursor: pointer;
|
|
4261
|
-
> div {
|
|
4262
|
-
border-radius: 0;
|
|
4263
|
-
}
|
|
4264
|
-
`;
|
|
4265
4456
|
const StyledTooltip = styled__default["default"](PlayerTooltip) `
|
|
4266
4457
|
display: none;
|
|
4267
4458
|
`;
|
|
@@ -4280,18 +4471,23 @@ const StyledDiv$1 = styled__default["default"].div `
|
|
|
4280
4471
|
display: flex;
|
|
4281
4472
|
align-items: center;
|
|
4282
4473
|
`;
|
|
4283
|
-
const Controls = ({ container, }) => {
|
|
4474
|
+
const Controls = ({ container, onCutHandler, bookmarks, isCutting, onBookMarkUpdated, i18n, }) => {
|
|
4284
4475
|
var _a, _b, _c;
|
|
4285
4476
|
const [progress, setProgress] = React.useState(0);
|
|
4286
4477
|
const [tooltipMargin, setTooltipMargin] = React.useState(0);
|
|
4287
4478
|
const [tooltipLabel, setTooltipLabel] = React.useState("00:00");
|
|
4479
|
+
const [marks, setMarks] = React.useState(bookmarks);
|
|
4288
4480
|
const progressRef = React.useRef(null);
|
|
4289
4481
|
const { context, setCurrentTime } = Video.useVideoContext();
|
|
4482
|
+
const { reset, isGrabbing, activeBookmark, fromEnd } = useProgressContext();
|
|
4483
|
+
React.useEffect(() => {
|
|
4484
|
+
setMarks(bookmarks);
|
|
4485
|
+
}, [bookmarks]);
|
|
4290
4486
|
const relCurrentTime = ((_a = context.player) === null || _a === void 0 ? void 0 : _a.currentTime)
|
|
4291
4487
|
? ((_b = context.player) === null || _b === void 0 ? void 0 : _b.currentTime) - context.part.start
|
|
4292
4488
|
: 0;
|
|
4293
4489
|
const duration = context.part.end - context.part.start || ((_c = context.player) === null || _c === void 0 ? void 0 : _c.totalTime) || 0; //relative
|
|
4294
|
-
const getVideoPositionFromEvent = (clientX) => {
|
|
4490
|
+
const getVideoPositionFromEvent = React.useCallback((clientX) => {
|
|
4295
4491
|
if (progressRef && progressRef.current && duration) {
|
|
4296
4492
|
const bounds = progressRef.current.getBoundingClientRect();
|
|
4297
4493
|
const x = clientX - bounds.left;
|
|
@@ -4299,12 +4495,18 @@ const Controls = ({ container, }) => {
|
|
|
4299
4495
|
return videoPositionSecs;
|
|
4300
4496
|
}
|
|
4301
4497
|
return 0;
|
|
4302
|
-
};
|
|
4498
|
+
}, [progressRef, duration]);
|
|
4499
|
+
const getProgress = React.useCallback((currentTime) => {
|
|
4500
|
+
const current = currentTime - (context.part.start || 0);
|
|
4501
|
+
if (duration === 0)
|
|
4502
|
+
return 0;
|
|
4503
|
+
return (current / duration) * 100;
|
|
4504
|
+
}, [context.part.start, duration]);
|
|
4303
4505
|
const handleSkipAhead = React.useCallback((pageX) => {
|
|
4304
4506
|
const time = getVideoPositionFromEvent(pageX) + (context.part.start || 0);
|
|
4305
4507
|
setCurrentTime(time);
|
|
4306
4508
|
setProgress(getProgress(time));
|
|
4307
|
-
}, [
|
|
4509
|
+
}, [getVideoPositionFromEvent, context.part.start, setCurrentTime, getProgress]);
|
|
4308
4510
|
const onMouseEvent = (e) => {
|
|
4309
4511
|
if (progressRef && progressRef.current) {
|
|
4310
4512
|
const tooltipWidth = 40;
|
|
@@ -4315,20 +4517,47 @@ const Controls = ({ container, }) => {
|
|
|
4315
4517
|
const videoTargetDuration = getVideoPositionFromEvent(e.clientX);
|
|
4316
4518
|
setTooltipMargin(newTooltipMargin);
|
|
4317
4519
|
setTooltipLabel(formatDuration(videoTargetDuration));
|
|
4520
|
+
if (isGrabbing) {
|
|
4521
|
+
handleBookmarkUpdate(marginX, progressRef.current.clientWidth);
|
|
4522
|
+
}
|
|
4318
4523
|
}
|
|
4319
4524
|
};
|
|
4525
|
+
const handleBookmarkUpdate = React.useCallback((newX, clientW) => {
|
|
4526
|
+
if (!activeBookmark || !marks)
|
|
4527
|
+
return;
|
|
4528
|
+
const currentObsIndex = marks.findIndex((mark) => mark.id === activeBookmark.id);
|
|
4529
|
+
const value = (newX / clientW) * duration + context.part.start;
|
|
4530
|
+
const updatedMark = Object.assign(Object.assign({}, marks[currentObsIndex]), (!!fromEnd ? { end: value } : { start: value }));
|
|
4531
|
+
const newMarks = [
|
|
4532
|
+
...marks.slice(0, currentObsIndex),
|
|
4533
|
+
updatedMark,
|
|
4534
|
+
...marks.slice(currentObsIndex + 1),
|
|
4535
|
+
];
|
|
4536
|
+
setMarks(newMarks);
|
|
4537
|
+
onBookMarkUpdated === null || onBookMarkUpdated === void 0 ? void 0 : onBookMarkUpdated(updatedMark);
|
|
4538
|
+
}, [
|
|
4539
|
+
activeBookmark,
|
|
4540
|
+
context.part.start,
|
|
4541
|
+
duration,
|
|
4542
|
+
fromEnd,
|
|
4543
|
+
onBookMarkUpdated,
|
|
4544
|
+
marks,
|
|
4545
|
+
]);
|
|
4320
4546
|
React.useEffect(() => {
|
|
4321
4547
|
var _a;
|
|
4322
4548
|
const currentTime = ((_a = context.player) === null || _a === void 0 ? void 0 : _a.currentTime) || 0;
|
|
4323
4549
|
setProgress(getProgress(currentTime));
|
|
4324
|
-
}, [context.player]);
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
return (
|
|
4330
|
-
|
|
4331
|
-
|
|
4550
|
+
}, [context.player, getProgress]);
|
|
4551
|
+
React.useEffect(() => {
|
|
4552
|
+
if (!marks)
|
|
4553
|
+
return;
|
|
4554
|
+
document.addEventListener("mouseup", reset);
|
|
4555
|
+
return () => {
|
|
4556
|
+
document.removeEventListener("mouseup", reset);
|
|
4557
|
+
};
|
|
4558
|
+
}, [reset, marks]);
|
|
4559
|
+
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 &&
|
|
4560
|
+
(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.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 })] }))] })] })));
|
|
4332
4561
|
};
|
|
4333
4562
|
|
|
4334
4563
|
var _path$c;
|
|
@@ -4360,6 +4589,10 @@ const BigButton = styled__default["default"](IconButton) `
|
|
|
4360
4589
|
min-width: ${({ theme }) => theme.space.base * 15}px;
|
|
4361
4590
|
width: 80px;
|
|
4362
4591
|
height: 80px;
|
|
4592
|
+
|
|
4593
|
+
box-shadow: ${({ theme }) => theme.shadows.boxShadow(theme)};
|
|
4594
|
+
|
|
4595
|
+
|
|
4363
4596
|
${PlayIcon} {
|
|
4364
4597
|
width: 60%;
|
|
4365
4598
|
height: 60%;
|
|
@@ -4426,8 +4659,7 @@ const Container$1 = styled__default["default"].div `
|
|
|
4426
4659
|
}
|
|
4427
4660
|
}
|
|
4428
4661
|
}
|
|
4429
|
-
|
|
4430
|
-
background-color: ${({ theme }) => theme.palette.grey[700]};
|
|
4662
|
+
background: ${({ theme }) => theme.palette.grey[400]};
|
|
4431
4663
|
`;
|
|
4432
4664
|
|
|
4433
4665
|
const UgSpinner = styled__default["default"](reactLoaders.Spinner) ``;
|
|
@@ -4455,18 +4687,15 @@ const VideoSpinner = () => (jsxRuntime.jsx(StyledDiv, { children: jsxRuntime.jsx
|
|
|
4455
4687
|
* Used for this:
|
|
4456
4688
|
- To display a video
|
|
4457
4689
|
*/
|
|
4458
|
-
const Player = React.forwardRef((props, forwardRef) => {
|
|
4459
|
-
const videoRef = React.useRef(null);
|
|
4460
|
-
React.useImperativeHandle(forwardRef, () => videoRef.current);
|
|
4461
|
-
return (jsxRuntime.jsx(Video__default["default"], Object.assign({ src: props.url }, props, { children: jsxRuntime.jsx(PlayerCore, Object.assign({ ref: videoRef }, props)) })));
|
|
4462
|
-
});
|
|
4690
|
+
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)) }))));
|
|
4463
4691
|
const PlayerCore = React.forwardRef((props, forwardRef) => {
|
|
4464
4692
|
var _a;
|
|
4465
4693
|
const { context, togglePlay, setIsPlaying } = Video.useVideoContext();
|
|
4694
|
+
const { onCutHandler, bookmarks, isCutting } = props;
|
|
4466
4695
|
const videoRef = (_a = context.player) === null || _a === void 0 ? void 0 : _a.ref.current;
|
|
4467
4696
|
const isLoaded = !!videoRef;
|
|
4468
4697
|
const containerRef = React.useRef(null);
|
|
4469
|
-
React.useImperativeHandle(forwardRef, () => videoRef);
|
|
4698
|
+
React.useImperativeHandle(forwardRef, () => videoRef, [videoRef]);
|
|
4470
4699
|
React.useEffect(() => {
|
|
4471
4700
|
if (videoRef) {
|
|
4472
4701
|
videoRef.addEventListener("pause", () => {
|
|
@@ -4480,10 +4709,19 @@ const PlayerCore = React.forwardRef((props, forwardRef) => {
|
|
|
4480
4709
|
});
|
|
4481
4710
|
}
|
|
4482
4711
|
};
|
|
4483
|
-
}, [videoRef]);
|
|
4484
|
-
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 })] })));
|
|
4712
|
+
}, [setIsPlaying, videoRef]);
|
|
4713
|
+
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 }) })] })));
|
|
4485
4714
|
});
|
|
4486
4715
|
|
|
4716
|
+
const MediaLightBox = ({ header, onClose, slideChange, selectedImageIndex, thumbnails, videoRefs, isOpen, details }) => {
|
|
4717
|
+
if (!isOpen) {
|
|
4718
|
+
return null;
|
|
4719
|
+
}
|
|
4720
|
+
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) => {
|
|
4721
|
+
videoRefs.current.push(ref);
|
|
4722
|
+
}, 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" })] })));
|
|
4723
|
+
};
|
|
4724
|
+
|
|
4487
4725
|
const ChatBoxContainer = styled__default["default"].div `
|
|
4488
4726
|
display: flex;
|
|
4489
4727
|
border-top: 1px solid ${({ theme }) => theme.palette.grey[200]};
|
|
@@ -4503,14 +4741,19 @@ const ChatBoxContainer = styled__default["default"].div `
|
|
|
4503
4741
|
- Simple text input, use textarea instead.
|
|
4504
4742
|
*/
|
|
4505
4743
|
const CommentBox = (_a) => {
|
|
4744
|
+
var _b;
|
|
4506
4745
|
var { placeholderOptions } = _a, props = __rest(_a, ["placeholderOptions"]);
|
|
4507
4746
|
const { children, hasFloatingMenu, hasButtonsMenu, bubbleOptions, i18n } = props;
|
|
4508
4747
|
const { editor, setEditor, mentionableUsers, triggerSave, thumbnails, addThumbnails, } = useChatContext();
|
|
4509
|
-
const { addToast } = useToast();
|
|
4510
4748
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
4511
|
-
const [selectedImage, setSelectedImage] = React.useState({});
|
|
4512
4749
|
const [selectedImageIndex, setSelectedImageIndex] = React.useState(0);
|
|
4750
|
+
const { getMedia } = useMedia();
|
|
4513
4751
|
const ext = editorExtensions({ placeholderOptions, mentionableUsers });
|
|
4752
|
+
function handleEvent(data) {
|
|
4753
|
+
if (!data || !data.files)
|
|
4754
|
+
return;
|
|
4755
|
+
addThumbnails({ files: getMedia(data.files) });
|
|
4756
|
+
}
|
|
4514
4757
|
const closeLightbox = () => {
|
|
4515
4758
|
setIsOpen(false);
|
|
4516
4759
|
};
|
|
@@ -4523,10 +4766,7 @@ const CommentBox = (_a) => {
|
|
|
4523
4766
|
}
|
|
4524
4767
|
});
|
|
4525
4768
|
}, [videoRefs]);
|
|
4526
|
-
const handleOpenLightbox = (
|
|
4527
|
-
if (!file)
|
|
4528
|
-
throw Error("Error with the image");
|
|
4529
|
-
setSelectedImage(file);
|
|
4769
|
+
const handleOpenLightbox = (index) => {
|
|
4530
4770
|
setSelectedImageIndex(index);
|
|
4531
4771
|
setIsOpen(true);
|
|
4532
4772
|
};
|
|
@@ -4538,59 +4778,13 @@ const CommentBox = (_a) => {
|
|
|
4538
4778
|
return false;
|
|
4539
4779
|
},
|
|
4540
4780
|
handleDrop: function (view, event, slice, moved) {
|
|
4541
|
-
if (!event.dataTransfer || !event.dataTransfer.files)
|
|
4542
|
-
return false;
|
|
4543
4781
|
event.preventDefault();
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
for (const file of wronfFiles) {
|
|
4550
|
-
addToast(({ close }) => (jsxRuntime.jsx(Notification, { onClose: close, type: "error", message: `${props.messageBadFileFormat} - ${file.name}`, isPrimary: true })), { placement: "top" });
|
|
4551
|
-
}
|
|
4552
|
-
}
|
|
4553
|
-
const mediaFiles = files.filter((file) => /^(image|video)\//.test(file.type));
|
|
4554
|
-
if (mediaFiles.length === 0)
|
|
4555
|
-
return false;
|
|
4556
|
-
addThumbnails({ files: mediaFiles });
|
|
4557
|
-
return false;
|
|
4782
|
+
handleEvent(event.dataTransfer);
|
|
4783
|
+
},
|
|
4784
|
+
handlePaste: (view, event, slice) => {
|
|
4785
|
+
event.preventDefault();
|
|
4786
|
+
handleEvent(event.clipboardData);
|
|
4558
4787
|
},
|
|
4559
|
-
/*handlePaste: (view, event, slice) => {
|
|
4560
|
-
if (!event.clipboardData || !event.clipboardData.items) return false;
|
|
4561
|
-
|
|
4562
|
-
event.preventDefault();
|
|
4563
|
-
|
|
4564
|
-
const items = Array.from(event.clipboardData.items);
|
|
4565
|
-
|
|
4566
|
-
const imageItems = items.filter(
|
|
4567
|
-
(item) => item.type && item.type.startsWith("image/")
|
|
4568
|
-
);
|
|
4569
|
-
const textItem = items.find((item) => item.type === "text/plain");
|
|
4570
|
-
|
|
4571
|
-
if (imageItems.length > 0) {
|
|
4572
|
-
imageItems.forEach((imageItem) => {
|
|
4573
|
-
const file = imageItem.getAsFile();
|
|
4574
|
-
if (file) {
|
|
4575
|
-
const imageUrl = URL.createObjectURL(file);
|
|
4576
|
-
const node = view.state.schema.nodes.image.create({
|
|
4577
|
-
src: imageUrl,
|
|
4578
|
-
});
|
|
4579
|
-
const transaction = view.state.tr.replaceSelectionWith(node);
|
|
4580
|
-
view.dispatch(transaction);
|
|
4581
|
-
}
|
|
4582
|
-
});
|
|
4583
|
-
} else if (textItem) {
|
|
4584
|
-
textItem.getAsString(async (text) => {
|
|
4585
|
-
const node = view.state.schema.text(text);
|
|
4586
|
-
const tr = view.state.tr;
|
|
4587
|
-
tr.replaceSelectionWith(node);
|
|
4588
|
-
view.dispatch(tr);
|
|
4589
|
-
});
|
|
4590
|
-
}
|
|
4591
|
-
|
|
4592
|
-
return true;
|
|
4593
|
-
},*/
|
|
4594
4788
|
} }, props));
|
|
4595
4789
|
const onKeyDown = (event) => {
|
|
4596
4790
|
if ((event.ctrlKey || event.metaKey) && event.key === "Enter") {
|
|
@@ -4602,14 +4796,32 @@ const CommentBox = (_a) => {
|
|
|
4602
4796
|
return null;
|
|
4603
4797
|
ed.on("create", ({ editor }) => setEditor(editor));
|
|
4604
4798
|
ed.on("update", ({ editor }) => setEditor(editor));
|
|
4605
|
-
|
|
4606
|
-
return Object.assign(file, { isLoadingMedia: file.isLoadingMedia });
|
|
4607
|
-
});
|
|
4608
|
-
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) => {
|
|
4609
|
-
videoRefs.current.push(ref);
|
|
4610
|
-
}, 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 })] }));
|
|
4799
|
+
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 })] }));
|
|
4611
4800
|
};
|
|
4612
4801
|
|
|
4802
|
+
const UgGrid = styled__default["default"](reactGrid.Grid) `
|
|
4803
|
+
padding-left: 0;
|
|
4804
|
+
padding-right: 0;
|
|
4805
|
+
`;
|
|
4806
|
+
/**
|
|
4807
|
+
* The Grid component is a framework for building modular layouts.
|
|
4808
|
+
* <hr>
|
|
4809
|
+
* Used for this:
|
|
4810
|
+
- To structure the layout of a page
|
|
4811
|
+
*/
|
|
4812
|
+
const Grid = (props) => jsxRuntime.jsx(UgGrid, Object.assign({}, props));
|
|
4813
|
+
|
|
4814
|
+
const Row$1 = (props) => jsxRuntime.jsx(reactGrid.Row, Object.assign({}, props));
|
|
4815
|
+
|
|
4816
|
+
const StyledCol$1 = styled__default["default"](reactGrid.Col) `
|
|
4817
|
+
margin-bottom: ${theme.space.lg};
|
|
4818
|
+
|
|
4819
|
+
@media screen and (max-width: ${theme.breakpoints.sm}) {
|
|
4820
|
+
margin-bottom: ${theme.space.md};
|
|
4821
|
+
}
|
|
4822
|
+
`;
|
|
4823
|
+
const Col = (props) => jsxRuntime.jsx(StyledCol$1, Object.assign({}, props));
|
|
4824
|
+
|
|
4613
4825
|
const CommentCard = styled.styled(Card) `
|
|
4614
4826
|
padding: ${({ theme }) => `${theme.space.base * 3}px ${theme.space.sm}`};
|
|
4615
4827
|
background-color: ${({ theme }) => theme.palette.grey[100]};
|
|
@@ -4653,13 +4865,9 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4653
4865
|
var _a, _b;
|
|
4654
4866
|
const { mentionableUsers } = useChatContext();
|
|
4655
4867
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
4656
|
-
const [selectedImage, setSelectedImage] = React.useState({});
|
|
4657
4868
|
const [selectedImageIndex, setSelectedImageIndex] = React.useState(0);
|
|
4658
4869
|
const ext = editorExtensions({ mentionableUsers });
|
|
4659
|
-
const handleClickThumbnail = (
|
|
4660
|
-
if (!file)
|
|
4661
|
-
throw Error("Error with the image");
|
|
4662
|
-
setSelectedImage(file);
|
|
4870
|
+
const handleClickThumbnail = (index) => {
|
|
4663
4871
|
setSelectedImageIndex(index);
|
|
4664
4872
|
setIsOpen(true);
|
|
4665
4873
|
};
|
|
@@ -4668,7 +4876,6 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4668
4876
|
};
|
|
4669
4877
|
const videoRefs = React.useRef([]);
|
|
4670
4878
|
const slideChange = React.useCallback((index) => {
|
|
4671
|
-
setSelectedImage(media[index]);
|
|
4672
4879
|
setSelectedImageIndex(index);
|
|
4673
4880
|
videoRefs.current.forEach((ref) => {
|
|
4674
4881
|
if (ref) {
|
|
@@ -4685,23 +4892,12 @@ const Comment = ({ author, message, children, date, media = [], header, }) => {
|
|
|
4685
4892
|
ed.setOptions({
|
|
4686
4893
|
editable: false,
|
|
4687
4894
|
});
|
|
4688
|
-
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) => {
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
if (file.type.includes('video'))
|
|
4695
|
-
return (jsxRuntime.jsx(Col, Object.assign({ xs: 12, sm: 4, className: "flex-3-sm" }, { children: jsxRuntime.jsx(VideoThumbnail, { src: file.url, index: index, showX: true, isLoadingMedia: false, clickThumbnail: () => {
|
|
4696
|
-
handleClickThumbnail(file, index);
|
|
4697
|
-
} }, index) })));
|
|
4698
|
-
return null;
|
|
4699
|
-
}) })) }), 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) => {
|
|
4700
|
-
videoRefs.current.push(ref);
|
|
4701
|
-
}, url: item.url }))] }))) })) })), jsxRuntime.jsx(Lightbox.Body.Details, Object.assign({ style: { flex: 1 } }, { children: jsxRuntime.jsx(Comment, Object.assign({ header: header, author: {
|
|
4702
|
-
avatar: author.avatar,
|
|
4703
|
-
name: author.name,
|
|
4704
|
-
}, 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 })] }));
|
|
4895
|
+
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: () => {
|
|
4896
|
+
handleClickThumbnail(index);
|
|
4897
|
+
} }) }), 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: {
|
|
4898
|
+
avatar: author.avatar,
|
|
4899
|
+
name: author.name,
|
|
4900
|
+
}, date: date, message: message }, { children: jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("br", {}) }) })) }), jsxRuntime.jsx(Footer$2, { children: children })] }));
|
|
4705
4901
|
};
|
|
4706
4902
|
|
|
4707
4903
|
/**
|
|
@@ -5340,6 +5536,120 @@ const UgToggle = styled__default["default"](reactForms.Toggle) ``;
|
|
|
5340
5536
|
**/
|
|
5341
5537
|
const Toggle = (props) => jsxRuntime.jsx(UgToggle, Object.assign({}, props));
|
|
5342
5538
|
|
|
5539
|
+
const HighlightContext = React.createContext(null);
|
|
5540
|
+
const HighlightContextProvider = ({ term, children, }) => {
|
|
5541
|
+
const [searchTerm, setsearchTerm] = React.useState(term !== null && term !== void 0 ? term : "");
|
|
5542
|
+
React.useEffect(() => {
|
|
5543
|
+
setsearchTerm(term !== null && term !== void 0 ? term : "");
|
|
5544
|
+
}, [term]);
|
|
5545
|
+
const HighlightContextValue = React.useMemo(() => ({
|
|
5546
|
+
searchTerm,
|
|
5547
|
+
}), [searchTerm]);
|
|
5548
|
+
return (jsxRuntime.jsx(HighlightContext.Provider, Object.assign({ value: HighlightContextValue }, { children: children })));
|
|
5549
|
+
};
|
|
5550
|
+
const useHighlightContext = () => {
|
|
5551
|
+
const context = React.useContext(HighlightContext);
|
|
5552
|
+
if (!context)
|
|
5553
|
+
throw new Error("Provider not found for HighlightContextProvider");
|
|
5554
|
+
return context; // Now we can use the context in the component, SAFELY.
|
|
5555
|
+
};
|
|
5556
|
+
|
|
5557
|
+
const StyledSearchWord = styled__default["default"].span `
|
|
5558
|
+
background-color: ${({ theme }) => theme.palette.product.talk};
|
|
5559
|
+
color: ${({ theme }) => theme.palette.grey[700]};`;
|
|
5560
|
+
const Searchable = ({ start, text, }) => {
|
|
5561
|
+
const { searchTerm } = useHighlightContext();
|
|
5562
|
+
if (searchTerm) {
|
|
5563
|
+
const parts = text.split(new RegExp(`(${searchTerm})`, "gi"));
|
|
5564
|
+
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 }))) }));
|
|
5565
|
+
}
|
|
5566
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: text });
|
|
5567
|
+
};
|
|
5568
|
+
|
|
5569
|
+
const StyledWord = styled__default["default"](reactTypography.Span) `
|
|
5570
|
+
font-size: ${({ theme, size }) => theme.fontSizes[size !== null && size !== void 0 ? size : "md"]};
|
|
5571
|
+
padding: ${({ theme }) => theme.space.xxs} 0;
|
|
5572
|
+
|
|
5573
|
+
${({ observation, theme }) => {
|
|
5574
|
+
var _a, _b;
|
|
5575
|
+
return observation &&
|
|
5576
|
+
` user-select: none;
|
|
5577
|
+
padding: 0;
|
|
5578
|
+
background-color: ${(_a = observation.hue) !== null && _a !== void 0 ? _a : getColor(theme.palette.azure, 700, undefined, 0.5)};
|
|
5579
|
+
color: ${(_b = observation.color) !== null && _b !== void 0 ? _b : "white"};
|
|
5580
|
+
box-sizing: border-box;
|
|
5581
|
+
&:focus {
|
|
5582
|
+
outline: none;
|
|
5583
|
+
}
|
|
5584
|
+
|
|
5585
|
+
+ span:not([observation]) {
|
|
5586
|
+
margin-left: 2px;
|
|
5587
|
+
}
|
|
5588
|
+
`;
|
|
5589
|
+
}}
|
|
5590
|
+
`;
|
|
5591
|
+
const ActiveWord = styled__default["default"].span `
|
|
5592
|
+
background-color: ${({ theme }) => getColor(theme.palette.fuschia, 700, undefined, 0.5)};
|
|
5593
|
+
padding: 0 2px;
|
|
5594
|
+
`;
|
|
5595
|
+
const WordsContainer = styled__default["default"].div `
|
|
5596
|
+
box-sizing: border-box;
|
|
5597
|
+
${StyledWord}, span {
|
|
5598
|
+
&::selection {
|
|
5599
|
+
background-color: ${({ theme }) => getColor(theme.palette.kale, 700, undefined, 0.5)};
|
|
5600
|
+
}
|
|
5601
|
+
}
|
|
5602
|
+
`;
|
|
5603
|
+
/**
|
|
5604
|
+
* Use Highlight to use highlight interation on any text element
|
|
5605
|
+
*/
|
|
5606
|
+
const Highlight = (props) => {
|
|
5607
|
+
const ref = React.useRef(null);
|
|
5608
|
+
const handleSelectionChange = React.useCallback(() => {
|
|
5609
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
5610
|
+
const activeSelection = document.getSelection();
|
|
5611
|
+
const text = activeSelection === null || activeSelection === void 0 ? void 0 : activeSelection.toString();
|
|
5612
|
+
if (!activeSelection || !text) {
|
|
5613
|
+
return;
|
|
5614
|
+
}
|
|
5615
|
+
const anchorNode = (_a = activeSelection === null || activeSelection === void 0 ? void 0 : activeSelection.anchorNode) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5616
|
+
const focusNode = (_b = activeSelection === null || activeSelection === void 0 ? void 0 : activeSelection.focusNode) === null || _b === void 0 ? void 0 : _b.parentElement;
|
|
5617
|
+
if (anchorNode &&
|
|
5618
|
+
focusNode &&
|
|
5619
|
+
((_c = ref.current) === null || _c === void 0 ? void 0 : _c.contains(anchorNode)) && // Selection starts inside the ref
|
|
5620
|
+
((_d = ref.current) === null || _d === void 0 ? void 0 : _d.contains(focusNode)) // Selection ends inside the ref
|
|
5621
|
+
) {
|
|
5622
|
+
const selectionPart = {
|
|
5623
|
+
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")),
|
|
5624
|
+
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")),
|
|
5625
|
+
};
|
|
5626
|
+
(_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 }));
|
|
5627
|
+
}
|
|
5628
|
+
}, [props]);
|
|
5629
|
+
React.useEffect(() => {
|
|
5630
|
+
if (ref.current === null)
|
|
5631
|
+
return;
|
|
5632
|
+
document.addEventListener("selectionchange", handleSelectionChange);
|
|
5633
|
+
return () => {
|
|
5634
|
+
document.removeEventListener("selectionchange", handleSelectionChange);
|
|
5635
|
+
};
|
|
5636
|
+
}, [ref, props, handleSelectionChange]);
|
|
5637
|
+
return (jsxRuntime.jsx(HighlightContextProvider, Object.assign({ term: props.search }, { children: jsxRuntime.jsx(WordsContainer, Object.assign({ ref: ref }, { children: props.children })) })));
|
|
5638
|
+
};
|
|
5639
|
+
const Word = (props) => {
|
|
5640
|
+
var _a;
|
|
5641
|
+
const isActive = props.currentTime &&
|
|
5642
|
+
props.currentTime >= props.start &&
|
|
5643
|
+
props.currentTime < props.end;
|
|
5644
|
+
// Is there an observation that contains this word?
|
|
5645
|
+
const observation = (_a = props.observations) === null || _a === void 0 ? void 0 : _a.find((obs) => props.start >= obs.start && props.end <= obs.end);
|
|
5646
|
+
if (props.tooltipContent !== undefined && !!observation) {
|
|
5647
|
+
return (jsxRuntime.jsx(Tooltip, Object.assign({ content: props.tooltipContent(observation), isTransparent: true }, { children: jsxRuntime.jsxs(StyledWord, Object.assign({}, props, { observation: observation, "data-start": props.start, "data-end": props.end, className: !!observation ? "highlighted" : "" }, (!!observation ? { tag: "observation" } : {}), { children: [isActive ? (jsxRuntime.jsx(ActiveWord, { children: jsxRuntime.jsx(Searchable, { start: props.start, text: props.text }) })) : (jsxRuntime.jsx(Searchable, { start: props.start, text: props.text })), " "] })) })));
|
|
5648
|
+
}
|
|
5649
|
+
return (jsxRuntime.jsxs(StyledWord, Object.assign({}, props, { observation: observation, "data-start": props.start, "data-end": props.end, className: !!observation ? "highlighted" : "" }, (!!observation ? { tag: "observation" } : {}), { children: [isActive ? (jsxRuntime.jsx(ActiveWord, { children: jsxRuntime.jsx(Searchable, { start: props.start, text: props.text }) })) : (jsxRuntime.jsx(Searchable, { start: props.start, text: props.text })), " "] })));
|
|
5650
|
+
};
|
|
5651
|
+
Highlight.Word = Word;
|
|
5652
|
+
|
|
5343
5653
|
/**
|
|
5344
5654
|
* The Dots loader communicates ongoing activity after a user takes an action.
|
|
5345
5655
|
* It tells them that something is taking place.
|
|
@@ -6816,6 +7126,7 @@ exports.HeaderItem = HeaderItem;
|
|
|
6816
7126
|
exports.HeaderItemIcon = HeaderItemIcon;
|
|
6817
7127
|
exports.HeaderItemText = HeaderItemText;
|
|
6818
7128
|
exports.HeaderRow = HeaderRow;
|
|
7129
|
+
exports.Highlight = Highlight;
|
|
6819
7130
|
exports.Hint = Hint;
|
|
6820
7131
|
exports.Icon = Icon;
|
|
6821
7132
|
exports.IconButton = IconButton;
|