@searpent/react-image-annotate 2.3.3 → 2.3.5

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.
Files changed (60) hide show
  1. package/Annotator/examplePhotos.js +30 -30
  2. package/Annotator/examplePhotos_repr.js +28 -28
  3. package/Annotator/index.js +69 -32
  4. package/Annotator/index.story_bugdemo_15_1.js +895 -773
  5. package/Annotator/index.story_repr.js +1048 -933
  6. package/Annotator/reducers/convert-expanding-line-to-polygon.js +15 -16
  7. package/ClassSelectionMenu/index.js +55 -35
  8. package/Crosshairs/index.js +30 -23
  9. package/DebugSidebarBox/index.js +40 -9
  10. package/DemoSite/Editor.js +124 -79
  11. package/DemoSite/ErrorBoundaryDialog.js +19 -6
  12. package/DemoSite/index.js +26 -17
  13. package/Editor/index.js +70 -36
  14. package/Editor/index_bugdemo_15_1.js +68 -35
  15. package/Editor/readOnly.js +178 -127
  16. package/Errorer/index.js +8 -3
  17. package/FullImageSegmentationAnnotator/index.js +6 -3
  18. package/GroupSelectorSidebarBox/index.js +48 -32
  19. package/GroupsEditorSidebarBox/index.js +75 -40
  20. package/HelpSidebarBox/index.js +24 -13
  21. package/HighlightBox/index.js +37 -30
  22. package/HistorySidebarBox/index.js +51 -29
  23. package/ImageCanvas/index.js +165 -130
  24. package/ImageMask/index.js +9 -6
  25. package/ImageSelectorSidebarBox/index.js +44 -26
  26. package/KeyframeTimeline/index.js +65 -45
  27. package/KeyframesSelectorSidebarBox/index.js +76 -54
  28. package/LandingPage/index.js +76 -38
  29. package/Locker/index.js +8 -3
  30. package/MainLayout/RightSidebarItemsWrapper.js +7 -4
  31. package/MainLayout/icon-dictionary.js +99 -66
  32. package/MainLayout/index.js +256 -196
  33. package/MainLayout/index_bugdemo_15_1.js +253 -195
  34. package/MetadataEditorSidebarBox/index.js +152 -102
  35. package/MetadataEditorSidebarBox/index_14_01_25.js +152 -102
  36. package/MetadataEditorSidebarBox/index_repr.js +183 -128
  37. package/PageSelector/UpdatedBySemaphore.js +54 -0
  38. package/PageSelector/index.js +172 -96
  39. package/PageSelector/page-selector.css +126 -2
  40. package/PointDistances/index.js +45 -33
  41. package/PreventScrollToParents/index.js +16 -9
  42. package/RegionLabel/index.js +217 -165
  43. package/RegionSelectAndTransformBoxes/index.js +131 -105
  44. package/RegionSelectorSidebarBox/index.js +243 -165
  45. package/RegionShapes/index.js +213 -153
  46. package/RegionTags/index.js +83 -69
  47. package/SettingsDialog/index.js +50 -37
  48. package/SettingsProvider/index.js +8 -5
  49. package/Shortcuts/ShortcutField.js +21 -14
  50. package/Shortcuts/index.js +18 -12
  51. package/ShortcutsManager/index.js +7 -4
  52. package/Sidebar/index.js +46 -29
  53. package/SidebarBoxContainer/index.js +14 -7
  54. package/SmallToolButton/index.js +23 -16
  55. package/TagsSidebarBox/index.js +41 -28
  56. package/TaskDescriptionSidebarBox/index.js +24 -13
  57. package/Theme/index.js +8 -3
  58. package/VideoOrImageCanvasBackground/index.js +30 -17
  59. package/package.json +1 -1
  60. package/utils/spellcheck-nspell.js +2 -2
@@ -23,32 +23,50 @@ export var ImageSelectorSidebarBox = function ImageSelectorSidebarBox(_ref) {
23
23
  var images = _ref.images,
24
24
  onSelect = _ref.onSelect;
25
25
  var classes = useStyles();
26
- return React.createElement(ThemeProvider, {
27
- theme: theme
28
- }, React.createElement(SidebarBoxContainer, {
29
- title: "Images",
30
- subTitle: "(".concat(images.length, ")"),
31
- icon: React.createElement(CollectionsIcon, {
32
- style: {
33
- color: grey[700]
34
- }
35
- })
36
- }, React.createElement("div", null, React.createElement(List, null, images.map(function (img, i) {
37
- return React.createElement(ListItem, {
38
- button: true,
39
- onClick: function onClick() {
40
- return onSelect(img);
41
- },
42
- dense: true,
43
- key: i
44
- }, React.createElement("img", {
45
- className: classes.img,
46
- src: img.src
47
- }), React.createElement(ListItemText, {
48
- primary: img.name,
49
- secondary: "".concat((img.regions || []).length, " Labels")
50
- }));
51
- })))));
26
+ return (
27
+ /*#__PURE__*/
28
+ React.createElement(ThemeProvider, {
29
+ theme: theme
30
+ },
31
+ /*#__PURE__*/
32
+ React.createElement(SidebarBoxContainer, {
33
+ title: "Images",
34
+ subTitle: "(".concat(images.length, ")"),
35
+ icon:
36
+ /*#__PURE__*/
37
+ React.createElement(CollectionsIcon, {
38
+ style: {
39
+ color: grey[700]
40
+ }
41
+ })
42
+ },
43
+ /*#__PURE__*/
44
+ React.createElement("div", null,
45
+ /*#__PURE__*/
46
+ React.createElement(List, null, images.map(function (img, i) {
47
+ return (
48
+ /*#__PURE__*/
49
+ React.createElement(ListItem, {
50
+ button: true,
51
+ onClick: function onClick() {
52
+ return onSelect(img);
53
+ },
54
+ dense: true,
55
+ key: i
56
+ },
57
+ /*#__PURE__*/
58
+ React.createElement("img", {
59
+ className: classes.img,
60
+ src: img.src
61
+ }),
62
+ /*#__PURE__*/
63
+ React.createElement(ListItemText, {
64
+ primary: img.name,
65
+ secondary: "".concat((img.regions || []).length, " Labels")
66
+ }))
67
+ );
68
+ })))))
69
+ );
52
70
  };
53
71
 
54
72
  var mapUsedImageProps = function mapUsedImageProps(a) {
@@ -182,52 +182,72 @@ export default (function (_ref10) {
182
182
  }); // TODO skeleton
183
183
 
184
184
  if (!duration) return null;
185
- return React.createElement(ThemeProvider, {
186
- theme: theme
187
- }, React.createElement(Container, {
188
- onMouseMove: onMouseMove,
189
- onMouseUp: onMouseUp,
190
- ref: ref
191
- }, range(0, duration, majorInterval).map(function (a) {
192
- return React.createElement(React.Fragment, null, React.createElement(Tick, {
193
- key: a,
194
- style: {
195
- left: a / duration * bounds.width,
196
- height: "50%"
197
- }
198
- }), React.createElement(TickText, {
199
- style: {
200
- left: a / duration * bounds.width + 8,
201
- bottom: "calc(50% - 12px)"
202
- }
203
- }, getTimeString(a)));
204
- }), range(0, duration, minorInterval).filter(function (a) {
205
- return !Number.isInteger(a / majorInterval);
206
- }).map(function (a) {
207
- return React.createElement(Tick, {
208
- key: a,
209
- style: {
210
- left: a / duration * bounds.width,
211
- height: "25%"
212
- }
213
- });
214
- }), keyframeTimes.map(function (kt) {
215
- return React.createElement(KeyframeMarker, {
216
- onClick: function onClick() {
217
- return onChangeCurrentTime(kt);
185
+ return (
186
+ /*#__PURE__*/
187
+ React.createElement(ThemeProvider, {
188
+ theme: theme
189
+ },
190
+ /*#__PURE__*/
191
+ React.createElement(Container, {
192
+ onMouseMove: onMouseMove,
193
+ onMouseUp: onMouseUp,
194
+ ref: ref
195
+ }, range(0, duration, majorInterval).map(function (a) {
196
+ return (
197
+ /*#__PURE__*/
198
+ React.createElement(React.Fragment, null,
199
+ /*#__PURE__*/
200
+ React.createElement(Tick, {
201
+ key: a,
202
+ style: {
203
+ left: a / duration * bounds.width,
204
+ height: "50%"
205
+ }
206
+ }),
207
+ /*#__PURE__*/
208
+ React.createElement(TickText, {
209
+ style: {
210
+ left: a / duration * bounds.width + 8,
211
+ bottom: "calc(50% - 12px)"
212
+ }
213
+ }, getTimeString(a)))
214
+ );
215
+ }), range(0, duration, minorInterval).filter(function (a) {
216
+ return !Number.isInteger(a / majorInterval);
217
+ }).map(function (a) {
218
+ return (
219
+ /*#__PURE__*/
220
+ React.createElement(Tick, {
221
+ key: a,
222
+ style: {
223
+ left: a / duration * bounds.width,
224
+ height: "25%"
225
+ }
226
+ })
227
+ );
228
+ }), keyframeTimes.map(function (kt) {
229
+ return (
230
+ /*#__PURE__*/
231
+ React.createElement(KeyframeMarker, {
232
+ onClick: function onClick() {
233
+ return onChangeCurrentTime(kt);
234
+ },
235
+ key: kt,
236
+ style: {
237
+ left: kt / duration * bounds.width
238
+ }
239
+ })
240
+ );
241
+ }),
242
+ /*#__PURE__*/
243
+ React.createElement(PositionCursor, {
244
+ onMouseDown: function onMouseDown(e) {
245
+ return changeDraggingTime(true);
218
246
  },
219
- key: kt,
220
247
  style: {
221
- left: kt / duration * bounds.width
248
+ cursor: draggingTime ? "grabbing" : "grab",
249
+ left: instantCurrentTime / duration * bounds.width
222
250
  }
223
- });
224
- }), React.createElement(PositionCursor, {
225
- onMouseDown: function onMouseDown(e) {
226
- return changeDraggingTime(true);
227
- },
228
- style: {
229
- cursor: draggingTime ? "grabbing" : "grab",
230
- left: instantCurrentTime / duration * bounds.width
231
- }
232
- }, getTimeString(instantCurrentTime))));
251
+ }, getTimeString(instantCurrentTime))))
252
+ );
233
253
  });
@@ -54,66 +54,88 @@ var KeyframesSelectorSidebarBox = function KeyframesSelectorSidebarBox(_ref2) {
54
54
  var keyframeTimes = Object.keys(keyframes).map(function (t) {
55
55
  return parseInt(t);
56
56
  });
57
- return React.createElement(ThemeProvider, {
58
- theme: theme
59
- }, React.createElement(SidebarBoxContainer, {
60
- title: "Keyframes",
61
- subTitle: "",
62
- icon: React.createElement(AddLocationIcon, {
63
- style: {
64
- color: colors.grey[700]
65
- }
66
- }),
67
- expandedByDefault: true
68
- }, keyframeTimes.length > 0 && React.createElement("div", {
69
- style: {
70
- padding: 8,
71
- paddingBottom: 0
72
- }
73
- }, React.createElement("button", {
74
- type: "button",
75
- onClick: function onClick(e) {
76
- e.stopPropagation();
77
-
78
- if (window.confirm("Are you really sure you want to delete all frames? This will remove all keyframes for this video.")) {
79
- if (onDeleteAllKeyframes) {
80
- onDeleteAllKeyframes();
57
+ return (
58
+ /*#__PURE__*/
59
+ React.createElement(ThemeProvider, {
60
+ theme: theme
61
+ },
62
+ /*#__PURE__*/
63
+ React.createElement(SidebarBoxContainer, {
64
+ title: "Keyframes",
65
+ subTitle: "",
66
+ icon:
67
+ /*#__PURE__*/
68
+ React.createElement(AddLocationIcon, {
69
+ style: {
70
+ color: colors.grey[700]
81
71
  }
72
+ }),
73
+ expandedByDefault: true
74
+ }, keyframeTimes.length > 0 &&
75
+ /*#__PURE__*/
76
+ React.createElement("div", {
77
+ style: {
78
+ padding: 8,
79
+ paddingBottom: 0
82
80
  }
83
81
  },
84
- style: {
85
- fontSize: 12,
86
- color: colors.red[700],
87
- background: "none",
88
- border: "none",
89
- cursor: "pointer",
90
- padding: 0,
91
- textDecoration: "underline"
92
- }
93
- }, "Delete all frames")), keyframeTimes.map(function (t) {
94
- var _keyframes$t;
95
-
96
- return React.createElement(KeyframeRow, {
97
- fullWidth: true,
98
- key: t,
99
- className: currentVideoTime === t ? "current" : "",
100
- onClick: function onClick() {
101
- return onChangeVideoTime(t);
102
- }
103
- }, React.createElement("div", {
104
- className: "time"
105
- }, getTimeString(t, 2), React.createElement("span", {
106
- className: "regionCount"
107
- }, "(", (((_keyframes$t = keyframes[t]) === null || _keyframes$t === void 0 ? void 0 : _keyframes$t.regions) || []).length, ")")), React.createElement("div", {
108
- className: "trash"
109
- }, React.createElement(TrashIcon, {
82
+ /*#__PURE__*/
83
+ React.createElement("button", {
84
+ type: "button",
110
85
  onClick: function onClick(e) {
111
- onDeleteKeyframe(t);
112
86
  e.stopPropagation();
87
+
88
+ if (window.confirm("Are you really sure you want to delete all frames? This will remove all keyframes for this video.")) {
89
+ if (onDeleteAllKeyframes) {
90
+ onDeleteAllKeyframes();
91
+ }
92
+ }
113
93
  },
114
- className: "icon"
115
- })));
116
- })));
94
+ style: {
95
+ fontSize: 12,
96
+ color: colors.red[700],
97
+ background: "none",
98
+ border: "none",
99
+ cursor: "pointer",
100
+ padding: 0,
101
+ textDecoration: "underline"
102
+ }
103
+ }, "Delete all frames")), keyframeTimes.map(function (t) {
104
+ var _keyframes$t;
105
+
106
+ return (
107
+ /*#__PURE__*/
108
+ React.createElement(KeyframeRow, {
109
+ fullWidth: true,
110
+ key: t,
111
+ className: currentVideoTime === t ? "current" : "",
112
+ onClick: function onClick() {
113
+ return onChangeVideoTime(t);
114
+ }
115
+ },
116
+ /*#__PURE__*/
117
+ React.createElement("div", {
118
+ className: "time"
119
+ }, getTimeString(t, 2),
120
+ /*#__PURE__*/
121
+ React.createElement("span", {
122
+ className: "regionCount"
123
+ }, "(", (((_keyframes$t = keyframes[t]) === null || _keyframes$t === void 0 ? void 0 : _keyframes$t.regions) || []).length, ")")),
124
+ /*#__PURE__*/
125
+ React.createElement("div", {
126
+ className: "trash"
127
+ },
128
+ /*#__PURE__*/
129
+ React.createElement(TrashIcon, {
130
+ onClick: function onClick(e) {
131
+ onDeleteKeyframe(t);
132
+ e.stopPropagation();
133
+ },
134
+ className: "icon"
135
+ })))
136
+ );
137
+ })))
138
+ );
117
139
  };
118
140
 
119
141
  export default KeyframesSelectorSidebarBox;
@@ -100,10 +100,13 @@ var Section = styled("div")(function (_ref9) {
100
100
  var CodeBlock = function CodeBlock(_ref10) {
101
101
  var language = _ref10.language,
102
102
  value = _ref10.value;
103
- return React.createElement(SyntaxHighlighter, {
104
- language: language,
105
- style: docco
106
- }, value);
103
+ return (
104
+ /*#__PURE__*/
105
+ React.createElement(SyntaxHighlighter, {
106
+ language: language,
107
+ style: docco
108
+ }, value)
109
+ );
107
110
  };
108
111
 
109
112
  function flatten(text, child) {
@@ -120,40 +123,75 @@ function HeadingRenderer(props) {
120
123
  }
121
124
 
122
125
  var LandingPage = function LandingPage() {
123
- return React.createElement(ThemeProvider, {
124
- theme: theme
125
- }, React.createElement(RootContainer, null, React.createElement(Header, {
126
- id: "about"
127
- }, React.createElement(ContentContainer, {
128
- style: {
129
- flexDirection: "row",
130
- flexGrow: 1
131
- }
132
- }, React.createElement(HeaderButton, {
133
- href: "#features"
134
- }, "Features"), React.createElement(HeaderButton, {
135
- href: "#usage"
136
- }, "Usage"), React.createElement(HeaderButton, {
137
- href: "#props"
138
- }, "Props"), React.createElement(HeaderButton, {
139
- href: "./demo"
140
- }, "Demo Playground"))), React.createElement(Hero, null, React.createElement(ContentContainer, null, React.createElement(HeroMain, null, "React Image Annotate"), React.createElement(HeroSub, null, "Powerful React component for image annotations with bounding boxes, tagging, classification, multiple images and polygon segmentation."), React.createElement(HeroButtons, null, React.createElement(GitHubButton, {
141
- href: "https://github.com/waoai/react-image-annotate",
142
- "data-size": "large",
143
- "data-show-count": "true",
144
- "aria-label": "Star waoai/react-image-annotate on GitHub"
145
- }, "Star")))), React.createElement(ContentContainer, {
146
- className: "markdown-body"
147
- }, React.createElement(Section, {
148
- className: "markdown-body"
149
- }, React.createElement(Markdown, {
150
- escapeHtml: false,
151
- source: contentMd,
152
- renderers: {
153
- code: CodeBlock,
154
- heading: HeadingRenderer
155
- }
156
- })))));
126
+ return (
127
+ /*#__PURE__*/
128
+ React.createElement(ThemeProvider, {
129
+ theme: theme
130
+ },
131
+ /*#__PURE__*/
132
+ React.createElement(RootContainer, null,
133
+ /*#__PURE__*/
134
+ React.createElement(Header, {
135
+ id: "about"
136
+ },
137
+ /*#__PURE__*/
138
+ React.createElement(ContentContainer, {
139
+ style: {
140
+ flexDirection: "row",
141
+ flexGrow: 1
142
+ }
143
+ },
144
+ /*#__PURE__*/
145
+ React.createElement(HeaderButton, {
146
+ href: "#features"
147
+ }, "Features"),
148
+ /*#__PURE__*/
149
+ React.createElement(HeaderButton, {
150
+ href: "#usage"
151
+ }, "Usage"),
152
+ /*#__PURE__*/
153
+ React.createElement(HeaderButton, {
154
+ href: "#props"
155
+ }, "Props"),
156
+ /*#__PURE__*/
157
+ React.createElement(HeaderButton, {
158
+ href: "./demo"
159
+ }, "Demo Playground"))),
160
+ /*#__PURE__*/
161
+ React.createElement(Hero, null,
162
+ /*#__PURE__*/
163
+ React.createElement(ContentContainer, null,
164
+ /*#__PURE__*/
165
+ React.createElement(HeroMain, null, "React Image Annotate"),
166
+ /*#__PURE__*/
167
+ React.createElement(HeroSub, null, "Powerful React component for image annotations with bounding boxes, tagging, classification, multiple images and polygon segmentation."),
168
+ /*#__PURE__*/
169
+ React.createElement(HeroButtons, null,
170
+ /*#__PURE__*/
171
+ React.createElement(GitHubButton, {
172
+ href: "https://github.com/waoai/react-image-annotate",
173
+ "data-size": "large",
174
+ "data-show-count": "true",
175
+ "aria-label": "Star waoai/react-image-annotate on GitHub"
176
+ }, "Star")))),
177
+ /*#__PURE__*/
178
+ React.createElement(ContentContainer, {
179
+ className: "markdown-body"
180
+ },
181
+ /*#__PURE__*/
182
+ React.createElement(Section, {
183
+ className: "markdown-body"
184
+ },
185
+ /*#__PURE__*/
186
+ React.createElement(Markdown, {
187
+ escapeHtml: false,
188
+ source: contentMd,
189
+ renderers: {
190
+ code: CodeBlock,
191
+ heading: HeadingRenderer
192
+ }
193
+ })))))
194
+ );
157
195
  };
158
196
 
159
197
  export default LandingPage;
package/Locker/index.js CHANGED
@@ -3,9 +3,14 @@ import LockIcon from '@mui/icons-material/Lock';
3
3
  import './locker.css';
4
4
 
5
5
  function Locker() {
6
- return React.createElement("div", {
7
- className: "locker"
8
- }, React.createElement(LockIcon, null));
6
+ return (
7
+ /*#__PURE__*/
8
+ React.createElement("div", {
9
+ className: "locker"
10
+ },
11
+ /*#__PURE__*/
12
+ React.createElement(LockIcon, null))
13
+ );
9
14
  }
10
15
 
11
16
  export default Locker;
@@ -10,10 +10,13 @@ function RightSidebarItemsWrapper(_ref) {
10
10
  parentEl.style.overflowY = "scroll";
11
11
  }
12
12
  }, []);
13
- return React.createElement("div", {
14
- ref: elementRef,
15
- id: "right-sidebar"
16
- }, children);
13
+ return (
14
+ /*#__PURE__*/
15
+ React.createElement("div", {
16
+ ref: elementRef,
17
+ id: "right-sidebar"
18
+ }, children)
19
+ );
17
20
  }
18
21
 
19
22
  export default RightSidebarItemsWrapper;