@activecollab/components 2.0.441 → 2.0.442
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/dist/cjs/presentation/shared/UserDetailsDialog.js +125 -0
- package/dist/cjs/presentation/shared/UserDetailsDialog.js.map +1 -0
- package/dist/cjs/presentation/shared/index.js +15 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/bottomDock.js +10 -3
- package/dist/cjs/presentation/whiteboard/bottomDock.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/canvasElements.js +114 -25
- package/dist/cjs/presentation/whiteboard/canvasElements.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/entityCardActions.js +79 -0
- package/dist/cjs/presentation/whiteboard/entityCardActions.js.map +1 -0
- package/dist/cjs/presentation/whiteboard/inspector.js +20 -5
- package/dist/cjs/presentation/whiteboard/inspector.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/outline.js +4 -2
- package/dist/cjs/presentation/whiteboard/outline.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/projectElements.js +188 -53
- package/dist/cjs/presentation/whiteboard/projectElements.js.map +1 -1
- package/dist/esm/presentation/shared/UserDetailsDialog.d.ts +45 -0
- package/dist/esm/presentation/shared/UserDetailsDialog.d.ts.map +1 -0
- package/dist/esm/presentation/shared/UserDetailsDialog.js +115 -0
- package/dist/esm/presentation/shared/UserDetailsDialog.js.map +1 -0
- package/dist/esm/presentation/shared/index.d.ts +2 -0
- package/dist/esm/presentation/shared/index.d.ts.map +1 -1
- package/dist/esm/presentation/shared/index.js +1 -0
- package/dist/esm/presentation/shared/index.js.map +1 -1
- package/dist/esm/presentation/whiteboard/bottomDock.d.ts +3 -2
- package/dist/esm/presentation/whiteboard/bottomDock.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/bottomDock.js +9 -4
- package/dist/esm/presentation/whiteboard/bottomDock.js.map +1 -1
- package/dist/esm/presentation/whiteboard/canvasElements.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/canvasElements.js +94 -25
- package/dist/esm/presentation/whiteboard/canvasElements.js.map +1 -1
- package/dist/esm/presentation/whiteboard/entityCardActions.d.ts +37 -0
- package/dist/esm/presentation/whiteboard/entityCardActions.d.ts.map +1 -0
- package/dist/esm/presentation/whiteboard/entityCardActions.js +69 -0
- package/dist/esm/presentation/whiteboard/entityCardActions.js.map +1 -0
- package/dist/esm/presentation/whiteboard/inspector.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/inspector.js +29 -7
- package/dist/esm/presentation/whiteboard/inspector.js.map +1 -1
- package/dist/esm/presentation/whiteboard/outline.d.ts +1 -1
- package/dist/esm/presentation/whiteboard/outline.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/outline.js +5 -3
- package/dist/esm/presentation/whiteboard/outline.js.map +1 -1
- package/dist/esm/presentation/whiteboard/projectElements.d.ts +40 -8
- package/dist/esm/presentation/whiteboard/projectElements.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/projectElements.js +181 -55
- package/dist/esm/presentation/whiteboard/projectElements.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,10 +7,13 @@ exports.NO_DRAG_SELECTOR = exports.DRAG_THROUGH_SELECTOR = exports.CanvasElement
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _bottomDock = require("./bottomDock");
|
|
9
9
|
var _elements = require("./elements");
|
|
10
|
+
var _entityCardActions = require("./entityCardActions");
|
|
10
11
|
var _fileElement = require("./fileElement");
|
|
11
12
|
var _linkElement = require("./linkElement");
|
|
13
|
+
var _shared = require("../shared");
|
|
12
14
|
var _projectElements = require("./projectElements");
|
|
13
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
17
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
15
18
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
19
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -53,7 +56,7 @@ var DRAG_THROUGH_SELECTOR = exports.DRAG_THROUGH_SELECTOR = "[data-drag-through]
|
|
|
53
56
|
Link elements are created here too — by drawing a box with the Link tool
|
|
54
57
|
armed, or by pasting a URL onto the canvas. */
|
|
55
58
|
var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
56
|
-
var _projectElements$find;
|
|
59
|
+
var _projectElements$find, _projectElements$find2, _projectElements$find3;
|
|
57
60
|
var gridSize = _ref.gridSize,
|
|
58
61
|
snapToGrid = _ref.snapToGrid,
|
|
59
62
|
activeTool = _ref.activeTool,
|
|
@@ -531,7 +534,8 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
531
534
|
height: size.height,
|
|
532
535
|
status: "placeholder",
|
|
533
536
|
project: null,
|
|
534
|
-
task: null
|
|
537
|
+
task: null,
|
|
538
|
+
person: null
|
|
535
539
|
}];
|
|
536
540
|
});
|
|
537
541
|
setSelectedId(id);
|
|
@@ -541,15 +545,13 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
541
545
|
/* The picker answered. The card keeps the placeholder's top-left and flashes
|
|
542
546
|
a skeleton while the "backend" fills the details in — the same two-phase
|
|
543
547
|
honesty the file card's upload / preparing pair has. */
|
|
544
|
-
var resolveProjectElement = (0, _react.useCallback)(function (id,
|
|
548
|
+
var resolveProjectElement = (0, _react.useCallback)(function (id, fill) {
|
|
545
549
|
setPickerFor(null);
|
|
546
550
|
setProjectElements(function (current) {
|
|
547
551
|
return current.map(function (entry) {
|
|
548
552
|
return entry.id === id ? _objectSpread(_objectSpread({}, entry), {}, {
|
|
549
|
-
status: "resolving"
|
|
550
|
-
|
|
551
|
-
task
|
|
552
|
-
}) : entry;
|
|
553
|
+
status: "resolving"
|
|
554
|
+
}, fill) : entry;
|
|
553
555
|
});
|
|
554
556
|
});
|
|
555
557
|
var timer = window.setTimeout(function () {
|
|
@@ -560,8 +562,10 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
560
562
|
/* The card takes its natural width HERE rather than the
|
|
561
563
|
renderer deriving it, so from this moment on there is a
|
|
562
564
|
single stored width for the canvas, the drag and the
|
|
563
|
-
Inspector's Width field to agree on.
|
|
564
|
-
|
|
565
|
+
Inspector's Width field to agree on. A person keeps the
|
|
566
|
+
square that was drawn: the avatar fills whatever circle
|
|
567
|
+
the gesture made. */
|
|
568
|
+
width: entry.kind === "person" ? entry.width : (0, _projectElements.projectCardWidth)(entry.kind)
|
|
565
569
|
}) : entry;
|
|
566
570
|
});
|
|
567
571
|
});
|
|
@@ -587,6 +591,29 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
587
591
|
return entry.id === pickerFor;
|
|
588
592
|
})) !== null && _projectElements$find !== void 0 ? _projectElements$find : null;
|
|
589
593
|
|
|
594
|
+
/* A selected element's Delete, the same removal the link and file cards' own
|
|
595
|
+
toolbars do: the board element goes, the entity is never touched. */
|
|
596
|
+
var deleteProjectElement = (0, _react.useCallback)(function (id) {
|
|
597
|
+
setProjectElements(function (current) {
|
|
598
|
+
return current.filter(function (entry) {
|
|
599
|
+
return entry.id !== id;
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
setSelectedId(function (selected) {
|
|
603
|
+
return selected === id ? null : selected;
|
|
604
|
+
});
|
|
605
|
+
}, [setProjectElements, setSelectedId]);
|
|
606
|
+
|
|
607
|
+
/* Which person's Details dialog is open — keyed off the element id so the
|
|
608
|
+
element stays the single source of the person it shows. */
|
|
609
|
+
var _useState1 = (0, _react.useState)(null),
|
|
610
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
611
|
+
detailsId = _useState10[0],
|
|
612
|
+
setDetailsId = _useState10[1];
|
|
613
|
+
var detailsPerson = (_projectElements$find2 = (_projectElements$find3 = projectElements.find(function (entry) {
|
|
614
|
+
return entry.id === detailsId;
|
|
615
|
+
})) === null || _projectElements$find3 === void 0 ? void 0 : _projectElements$find3.person) !== null && _projectElements$find2 !== void 0 ? _projectElements$find2 : null;
|
|
616
|
+
|
|
590
617
|
/* ---- draw-to-place ------------------------------------------------ */
|
|
591
618
|
|
|
592
619
|
var drawRef = (0, _react.useRef)(null);
|
|
@@ -641,6 +668,14 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
641
668
|
width,
|
|
642
669
|
height
|
|
643
670
|
} : _bottomDock.SHAPE_DEFAULT_SIZES[origin.tool]);
|
|
671
|
+
} else if (origin.tool === "person") {
|
|
672
|
+
/* A person is a square: the drawn WIDTH is its side, clamped to the
|
|
673
|
+
person bounds, and a plain click drops the default size. */
|
|
674
|
+
var side = drawn ? (0, _projectElements.clampPersonSize)(width) : _projectElements.PERSON_DEFAULT_SIZE;
|
|
675
|
+
addProjectElement(at, {
|
|
676
|
+
width: side,
|
|
677
|
+
height: side
|
|
678
|
+
}, "person");
|
|
644
679
|
} else if ((0, _projectElements.isProjectTool)(origin.tool)) {
|
|
645
680
|
/* Both dimensions matter here (a project card is not auto-height the
|
|
646
681
|
way a link is), and a card smaller than the minimum could not hold
|
|
@@ -683,10 +718,10 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
683
718
|
|
|
684
719
|
/* Where the armed tool's hover preview sits — cleared while a draw gesture
|
|
685
720
|
runs (the rubber band takes over) and whenever the tool disarms. */
|
|
686
|
-
var
|
|
687
|
-
|
|
688
|
-
hoverPoint =
|
|
689
|
-
setHoverPoint =
|
|
721
|
+
var _useState11 = (0, _react.useState)(null),
|
|
722
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
723
|
+
hoverPoint = _useState12[0],
|
|
724
|
+
setHoverPoint = _useState12[1];
|
|
690
725
|
(0, _react.useEffect)(function () {
|
|
691
726
|
if (activeTool === "select") {
|
|
692
727
|
setHoverPoint(null);
|
|
@@ -953,23 +988,25 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
953
988
|
}
|
|
954
989
|
}));
|
|
955
990
|
}), projectElements.map(function (entry) {
|
|
956
|
-
var _positions$entry$id$x2, _positions$entry$id3, _positions$entry$id$y2, _positions$entry$id4;
|
|
991
|
+
var _positions$entry$id$x2, _positions$entry$id3, _positions$entry$id$y2, _positions$entry$id4, _locks$entry$id;
|
|
957
992
|
var selected = entry.id === selectedId;
|
|
958
993
|
return /*#__PURE__*/_react.default.createElement(_projectElements.StyledProjectElementBox, {
|
|
959
994
|
key: entry.id,
|
|
960
|
-
className: [selected ? "selected" : "", entry.limited ? "limited" : "",
|
|
995
|
+
className: [selected ? "selected" : "", entry.limited ? "limited" : "", entry.kind === "person" ? "person" : "",
|
|
961
996
|
/* A resolved card is a StackedCard, and the shell draws its own
|
|
962
997
|
ring — so the box stands down, exactly as it does for the link
|
|
963
|
-
and file cards. The placeholder, the resolving flash
|
|
964
|
-
limited card are not StackedCards and keep
|
|
965
|
-
|
|
998
|
+
and file cards. The placeholder, the resolving flash, the
|
|
999
|
+
limited card and the person chip are not StackedCards and keep
|
|
1000
|
+
the box's ring. */
|
|
1001
|
+
entry.status === "resolved" && !entry.limited && entry.kind !== "person" ? "is-card" : ""].filter(Boolean).join(" "),
|
|
966
1002
|
style: {
|
|
967
1003
|
left: (_positions$entry$id$x2 = (_positions$entry$id3 = positions[entry.id]) === null || _positions$entry$id3 === void 0 ? void 0 : _positions$entry$id3.x) !== null && _positions$entry$id$x2 !== void 0 ? _positions$entry$id$x2 : 0,
|
|
968
1004
|
top: (_positions$entry$id$y2 = (_positions$entry$id4 = positions[entry.id]) === null || _positions$entry$id4 === void 0 ? void 0 : _positions$entry$id4.y) !== null && _positions$entry$id$y2 !== void 0 ? _positions$entry$id$y2 : 0,
|
|
969
1005
|
width: entry.width,
|
|
970
1006
|
/* Only the placeholder box is measured in both directions; the
|
|
971
|
-
resolved card is auto-height like every other card here.
|
|
972
|
-
|
|
1007
|
+
resolved card is auto-height like every other card here. A
|
|
1008
|
+
person is a fixed square in every state. */
|
|
1009
|
+
height: entry.status === "resolved" && entry.kind !== "person" ? undefined : entry.height
|
|
973
1010
|
},
|
|
974
1011
|
onMouseDown: function onMouseDown(event) {
|
|
975
1012
|
return entry.limited ? handleLimitedMouseDown(event, entry.id) : handleElementMouseDown(event, entry.id);
|
|
@@ -981,7 +1018,18 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
981
1018
|
}, /*#__PURE__*/_react.default.createElement(_projectElements.ProjectElementNode, {
|
|
982
1019
|
element: entry,
|
|
983
1020
|
selected: selected
|
|
984
|
-
})
|
|
1021
|
+
}), selected && entry.kind === "person" && entry.status === "resolved" && !entry.limited && entry.person ? /*#__PURE__*/_react.default.createElement(_entityCardActions.PersonCardToolbar, {
|
|
1022
|
+
onDetails: function onDetails() {
|
|
1023
|
+
return setDetailsId(entry.id);
|
|
1024
|
+
},
|
|
1025
|
+
locked: (_locks$entry$id = locks[entry.id]) !== null && _locks$entry$id !== void 0 ? _locks$entry$id : false,
|
|
1026
|
+
onToggleLock: function onToggleLock() {
|
|
1027
|
+
return toggleLock(entry.id);
|
|
1028
|
+
},
|
|
1029
|
+
onDelete: function onDelete() {
|
|
1030
|
+
return deleteProjectElement(entry.id);
|
|
1031
|
+
}
|
|
1032
|
+
}) : null);
|
|
985
1033
|
}), draft && !(0, _bottomDock.isShapeTool)(draft.tool) && !(0, _projectElements.isProjectTool)(draft.tool) ? /*#__PURE__*/_react.default.createElement(_linkElement.StyledLinkDraft, {
|
|
986
1034
|
style: {
|
|
987
1035
|
left: draft.x,
|
|
@@ -991,7 +1039,17 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
991
1039
|
}
|
|
992
1040
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
993
1041
|
className: "draft-width"
|
|
994
|
-
}, "W", " ", draft.width >= _linkElement.CARD_DRAW_THRESHOLD ? (0, _linkElement.clampCardWidth)(draft.width) : draft.tool === "file" ? _fileElement.FILE_DEFAULT_WIDTH : _linkElement.LINK_DEFAULT_WIDTH, " ", "\xB7 height follows content")) : null, draft &&
|
|
1042
|
+
}, "W", " ", draft.width >= _linkElement.CARD_DRAW_THRESHOLD ? (0, _linkElement.clampCardWidth)(draft.width) : draft.tool === "file" ? _fileElement.FILE_DEFAULT_WIDTH : _linkElement.LINK_DEFAULT_WIDTH, " ", "\xB7 height follows content")) : null, draft && draft.tool === "person" ? function () {
|
|
1043
|
+
var side = draft.width >= _linkElement.CARD_DRAW_THRESHOLD ? (0, _projectElements.clampPersonSize)(draft.width) : _projectElements.PERSON_DEFAULT_SIZE;
|
|
1044
|
+
return /*#__PURE__*/_react.default.createElement(_projectElements.StyledPersonDraft, {
|
|
1045
|
+
style: {
|
|
1046
|
+
left: draft.x,
|
|
1047
|
+
top: draft.y,
|
|
1048
|
+
width: side,
|
|
1049
|
+
height: side
|
|
1050
|
+
}
|
|
1051
|
+
});
|
|
1052
|
+
}() : null, draft && (0, _projectElements.isProjectTool)(draft.tool) && draft.tool !== "person" ? /*#__PURE__*/_react.default.createElement(_projectElements.StyledProjectDraft, {
|
|
995
1053
|
style: {
|
|
996
1054
|
left: draft.x,
|
|
997
1055
|
top: draft.y,
|
|
@@ -1020,6 +1078,16 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
1020
1078
|
}, size)
|
|
1021
1079
|
}, (0, _linkElement.shapePreviewGlyph)(activeTool, size.width, size.height));
|
|
1022
1080
|
}
|
|
1081
|
+
if (activeTool === "person") {
|
|
1082
|
+
return /*#__PURE__*/_react.default.createElement(_projectElements.StyledPersonDraft, {
|
|
1083
|
+
style: {
|
|
1084
|
+
left: at.x,
|
|
1085
|
+
top: at.y,
|
|
1086
|
+
width: _projectElements.PERSON_DEFAULT_SIZE,
|
|
1087
|
+
height: _projectElements.PERSON_DEFAULT_SIZE
|
|
1088
|
+
}
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1023
1091
|
if ((0, _projectElements.isProjectTool)(activeTool)) {
|
|
1024
1092
|
return /*#__PURE__*/_react.default.createElement(_projectElements.StyledProjectDraft, {
|
|
1025
1093
|
style: {
|
|
@@ -1049,13 +1117,34 @@ var CanvasElements = exports.CanvasElements = function CanvasElements(_ref) {
|
|
|
1049
1117
|
rx: 8,
|
|
1050
1118
|
ry: 8
|
|
1051
1119
|
})));
|
|
1052
|
-
}() : null,
|
|
1120
|
+
}() : null, detailsPerson ? /*#__PURE__*/_react.default.createElement(_shared.UserDetailsDialog, _extends({
|
|
1121
|
+
open: true
|
|
1122
|
+
}, (0, _entityCardActions.personDetailsProps)(detailsPerson), {
|
|
1123
|
+
onClose: function onClose() {
|
|
1124
|
+
return setDetailsId(null);
|
|
1125
|
+
}
|
|
1126
|
+
})) : null, pickerElement ? /*#__PURE__*/_react.default.createElement(_projectElements.ProjectElementPicker, {
|
|
1053
1127
|
kind: pickerElement.kind,
|
|
1054
1128
|
onSelectProject: function onSelectProject(project) {
|
|
1055
|
-
return resolveProjectElement(pickerElement.id,
|
|
1129
|
+
return resolveProjectElement(pickerElement.id, {
|
|
1130
|
+
project,
|
|
1131
|
+
task: null,
|
|
1132
|
+
person: null
|
|
1133
|
+
});
|
|
1056
1134
|
},
|
|
1057
1135
|
onSelectTask: function onSelectTask(project, task) {
|
|
1058
|
-
return resolveProjectElement(pickerElement.id,
|
|
1136
|
+
return resolveProjectElement(pickerElement.id, {
|
|
1137
|
+
project,
|
|
1138
|
+
task,
|
|
1139
|
+
person: null
|
|
1140
|
+
});
|
|
1141
|
+
},
|
|
1142
|
+
onSelectPerson: function onSelectPerson(person) {
|
|
1143
|
+
return resolveProjectElement(pickerElement.id, {
|
|
1144
|
+
project: null,
|
|
1145
|
+
task: null,
|
|
1146
|
+
person
|
|
1147
|
+
});
|
|
1059
1148
|
},
|
|
1060
1149
|
onCancel: function onCancel() {
|
|
1061
1150
|
return cancelProjectElement(pickerElement.id);
|