@searpent/react-image-annotate 2.0.2 → 2.0.3

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.
@@ -60,7 +60,11 @@ export var Annotator = function Annotator(_ref) {
60
60
  hideFullScreen = _ref.hideFullScreen,
61
61
  hideSave = _ref.hideSave,
62
62
  allowComments = _ref.allowComments,
63
- onImagesChange = _ref.onImagesChange;
63
+ onImagesChange = _ref.onImagesChange,
64
+ groups = _ref.groups,
65
+ onGroupSelect = _ref.onGroupSelect,
66
+ selectedGroupId = _ref.selectedGroupId,
67
+ hideHistory = _ref.hideHistory;
64
68
 
65
69
  if (typeof selectedImage === "string") {
66
70
  selectedImage = (images || []).findIndex(function (img) {
@@ -155,7 +159,11 @@ export var Annotator = function Annotator(_ref) {
155
159
  hideClone: hideClone,
156
160
  hideSettings: hideSettings,
157
161
  hideFullScreen: hideFullScreen,
158
- hideSave: hideSave
162
+ hideSave: hideSave,
163
+ groups: groups,
164
+ onGroupSelect: onGroupSelect,
165
+ selectedGroupId: selectedGroupId,
166
+ hideHistory: hideHistory
159
167
  }));
160
168
  };
161
169
  export default Annotator;
@@ -0,0 +1,63 @@
1
+ import React, { memo } from "react";
2
+ import { makeStyles } from "@mui/styles";
3
+ import { createTheme, ThemeProvider } from "@mui/material/styles";
4
+ import SidebarBoxContainer from "../SidebarBoxContainer";
5
+ import CollectionsIcon from "@mui/icons-material/Collections";
6
+ import { grey } from "@mui/material/colors";
7
+ import List from "@mui/material/List";
8
+ import ListItem from "@mui/material/ListItem";
9
+ import ListItemText from "@mui/material/ListItemText";
10
+ import isEqual from "lodash/isEqual";
11
+ var theme = createTheme();
12
+ var useStyles = makeStyles(function (theme) {
13
+ return {
14
+ img: {
15
+ width: 40,
16
+ height: 40,
17
+ borderRadius: 8
18
+ }
19
+ };
20
+ });
21
+ export var GroupSelectorSidebarBox = function GroupSelectorSidebarBox(_ref) {
22
+ var title = _ref.title,
23
+ subtitle = _ref.subtitle,
24
+ groups = _ref.groups,
25
+ onSelect = _ref.onSelect,
26
+ selectedGroupId = _ref.selectedGroupId;
27
+ var classes = useStyles();
28
+ return React.createElement(ThemeProvider, {
29
+ theme: theme
30
+ }, React.createElement(SidebarBoxContainer, {
31
+ title: title || '',
32
+ subTitle: subtitle || '',
33
+ icon: React.createElement(CollectionsIcon, {
34
+ style: {
35
+ color: grey[700]
36
+ }
37
+ })
38
+ }, React.createElement(List, null, groups.map(function (_ref2, i) {
39
+ var id = _ref2.id,
40
+ groupTitle = _ref2.title,
41
+ groupSubtitle = _ref2.subtitle,
42
+ color = _ref2.color;
43
+ return React.createElement(ListItem, {
44
+ button: true,
45
+ onClick: function onClick() {
46
+ return onSelect(id);
47
+ },
48
+ dense: true,
49
+ key: id,
50
+ style: {
51
+ backgroundColor: id === selectedGroupId ? '#bbdefb' : null
52
+ }
53
+ }, React.createElement(ListItemText, {
54
+ primary: React.createElement("strong", {
55
+ style: {
56
+ color: color
57
+ }
58
+ }, groupTitle),
59
+ secondary: groupSubtitle
60
+ }));
61
+ }))));
62
+ };
63
+ export default GroupSelectorSidebarBox;
@@ -10,6 +10,7 @@ import DebugBox from "../DebugSidebarBox";
10
10
  import HistorySidebarBox from "../HistorySidebarBox";
11
11
  import ImageCanvas from "../ImageCanvas";
12
12
  import ImageSelector from "../ImageSelectorSidebarBox";
13
+ import GroupSelector from "../GroupSelectorSidebarBox";
13
14
  import KeyframeTimeline from "../KeyframeTimeline";
14
15
  import KeyframesSelector from "../KeyframesSelectorSidebarBox";
15
16
  import RegionSelector from "../RegionSelectorSidebarBox";
@@ -77,7 +78,15 @@ export var MainLayout = function MainLayout(_ref3) {
77
78
  _ref3$hideFullScreen = _ref3.hideFullScreen,
78
79
  hideFullScreen = _ref3$hideFullScreen === void 0 ? false : _ref3$hideFullScreen,
79
80
  _ref3$hideSave = _ref3.hideSave,
80
- hideSave = _ref3$hideSave === void 0 ? false : _ref3$hideSave;
81
+ hideSave = _ref3$hideSave === void 0 ? false : _ref3$hideSave,
82
+ _ref3$groups = _ref3.groups,
83
+ groups = _ref3$groups === void 0 ? [] : _ref3$groups,
84
+ _ref3$onGroupSelect = _ref3.onGroupSelect,
85
+ onGroupSelect = _ref3$onGroupSelect === void 0 ? function () {} : _ref3$onGroupSelect,
86
+ _ref3$selectedGroupId = _ref3.selectedGroupId,
87
+ selectedGroupId = _ref3$selectedGroupId === void 0 ? null : _ref3$selectedGroupId,
88
+ _ref3$hideHistory = _ref3.hideHistory,
89
+ hideHistory = _ref3$hideHistory === void 0 ? false : _ref3$hideHistory;
81
90
  var classes = useStyles();
82
91
  var settings = useSettings();
83
92
  var fullScreenHandle = useFullScreenHandle();
@@ -323,7 +332,12 @@ export var MainLayout = function MainLayout(_ref3) {
323
332
  // images={state.images}
324
333
  // />
325
334
  // ),
326
- React.createElement(RegionSelector, {
335
+ groups && React.createElement(GroupSelector, {
336
+ title: "Articles",
337
+ groups: groups,
338
+ selectedGroupId: selectedGroupId,
339
+ onSelect: onGroupSelect
340
+ }), React.createElement(RegionSelector, {
327
341
  regions: activeImage ? activeImage.regions : emptyArr,
328
342
  onSelectRegion: action("SELECT_REGION", "region"),
329
343
  onDeleteRegion: action("DELETE_REGION", "region"),
@@ -335,7 +349,7 @@ export var MainLayout = function MainLayout(_ref3) {
335
349
  currentTime: state.currentVideoTime,
336
350
  duration: state.videoDuration,
337
351
  keyframes: state.keyframes
338
- }), React.createElement(HistorySidebarBox, {
352
+ }), !hideHistory && React.createElement(HistorySidebarBox, {
339
353
  history: state.history,
340
354
  onRestoreHistory: action("RESTORE_HISTORY")
341
355
  })].filter(Boolean)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searpent/react-image-annotate",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "dependencies": {
5
5
  "@emotion/react": "^11.7.0",
6
6
  "@emotion/styled": "^11.6.0",