@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
@@ -54,20 +54,19 @@ export default (function (expandingLine) {
54
54
  open: false,
55
55
  points: newPoints,
56
56
  unfinished: undefined,
57
- candidatePoint: undefined // let { expandingWidth = 0.005, points } = region
58
- // expandingWidth = points.slice(-1)[0].width || expandingWidth
59
- // const lastPoint = points.slice(-1)[0]
60
- // return (
61
- // <>
62
- // <polygon
63
- // points={
64
- // .map((p) => `${p.x * iw} ${p.y * ih}`)
65
- // .join(" ")}
66
- // return {
67
- // ...expandingLine,
68
- // unfinished: undefined,
69
- // candidatePoint: undefined,
70
- // }
71
-
72
- });
57
+ candidatePoint: undefined
58
+ }); // let { expandingWidth = 0.005, points } = region
59
+ // expandingWidth = points.slice(-1)[0].width || expandingWidth
60
+ // const lastPoint = points.slice(-1)[0]
61
+ // return (
62
+ // <>
63
+ // <polygon
64
+ // points={
65
+ // .map((p) => `${p.x * iw} ${p.y * ih}`)
66
+ // .join(" ")}
67
+ // return {
68
+ // ...expandingLine,
69
+ // unfinished: undefined,
70
+ // candidatePoint: undefined,
71
+ // }
73
72
  });
@@ -100,41 +100,61 @@ export var ClassSelectionMenu = function ClassSelectionMenu(_ref6) {
100
100
  return window.removeEventListener("keydown", onKeyDown);
101
101
  };
102
102
  }, [regionClsList, selectedCls]);
103
- return React.createElement(ThemeProvider, {
104
- theme: theme
105
- }, React.createElement(SidebarBoxContainer, {
106
- title: "Classifications",
107
- subTitle: "",
108
- icon: React.createElement(BallotIcon, {
109
- style: {
110
- color: muiColors.grey[700]
111
- }
112
- }),
113
- expandedByDefault: true
114
- }, regionClsList.map(function (label, index) {
115
- return React.createElement(LabelContainer, {
116
- key: label,
117
- className: classnames({
118
- selected: label === selectedCls
103
+ return (
104
+ /*#__PURE__*/
105
+ React.createElement(ThemeProvider, {
106
+ theme: theme
107
+ },
108
+ /*#__PURE__*/
109
+ React.createElement(SidebarBoxContainer, {
110
+ title: "Classifications",
111
+ subTitle: "",
112
+ icon:
113
+ /*#__PURE__*/
114
+ React.createElement(BallotIcon, {
115
+ style: {
116
+ color: muiColors.grey[700]
117
+ }
119
118
  }),
120
- onClick: function onClick() {
121
- return onSelectCls(label);
122
- }
123
- }, React.createElement(Circle, {
124
- style: {
125
- backgroundColor: clsColor(label)
126
- }
127
- }), React.createElement(Label, {
128
- className: classnames({
129
- selected: label === selectedCls
130
- })
131
- }, capitalize(label)), React.createElement(DashSep, null), React.createElement(Number, {
132
- className: classnames({
133
- selected: label === selectedCls
134
- })
135
- }, index < 9 ? "Key [".concat(index + 1, "]") : ""));
136
- }), React.createElement(Box, {
137
- pb: 2
138
- })));
119
+ expandedByDefault: true
120
+ }, regionClsList.map(function (label, index) {
121
+ return (
122
+ /*#__PURE__*/
123
+ React.createElement(LabelContainer, {
124
+ key: label,
125
+ className: classnames({
126
+ selected: label === selectedCls
127
+ }),
128
+ onClick: function onClick() {
129
+ return onSelectCls(label);
130
+ }
131
+ },
132
+ /*#__PURE__*/
133
+ React.createElement(Circle, {
134
+ style: {
135
+ backgroundColor: clsColor(label)
136
+ }
137
+ }),
138
+ /*#__PURE__*/
139
+ React.createElement(Label, {
140
+ className: classnames({
141
+ selected: label === selectedCls
142
+ })
143
+ }, capitalize(label)),
144
+ /*#__PURE__*/
145
+ React.createElement(DashSep, null),
146
+ /*#__PURE__*/
147
+ React.createElement(Number, {
148
+ className: classnames({
149
+ selected: label === selectedCls
150
+ })
151
+ }, index < 9 ? "Key [".concat(index + 1, "]") : ""))
152
+ );
153
+ }),
154
+ /*#__PURE__*/
155
+ React.createElement(Box, {
156
+ pb: 2
157
+ })))
158
+ );
139
159
  };
140
160
  export default ClassSelectionMenu;
@@ -26,28 +26,35 @@ export var Crosshairs = function Crosshairs(_ref) {
26
26
  return clearInterval(interval);
27
27
  };
28
28
  });
29
- return React.createElement(Fragment, null, React.createElement("div", {
30
- style: {
31
- position: "absolute",
32
- height: "100%",
33
- width: 1,
34
- zIndex: 10,
35
- backgroundColor: "#f00",
36
- left: x,
37
- pointerEvents: "none",
38
- top: 0
39
- }
40
- }), React.createElement("div", {
41
- style: {
42
- position: "absolute",
43
- width: "100%",
44
- zIndex: 10,
45
- height: 1,
46
- backgroundColor: "#f00",
47
- top: y,
48
- pointerEvents: "none",
49
- left: 0
50
- }
51
- }));
29
+ return (
30
+ /*#__PURE__*/
31
+ React.createElement(Fragment, null,
32
+ /*#__PURE__*/
33
+ React.createElement("div", {
34
+ style: {
35
+ position: "absolute",
36
+ height: "100%",
37
+ width: 1,
38
+ zIndex: 10,
39
+ backgroundColor: "#f00",
40
+ left: x,
41
+ pointerEvents: "none",
42
+ top: 0
43
+ }
44
+ }),
45
+ /*#__PURE__*/
46
+ React.createElement("div", {
47
+ style: {
48
+ position: "absolute",
49
+ width: "100%",
50
+ zIndex: 10,
51
+ height: 1,
52
+ backgroundColor: "#f00",
53
+ top: y,
54
+ pointerEvents: "none",
55
+ left: 0
56
+ }
57
+ }))
58
+ );
52
59
  };
53
60
  export default Crosshairs;
@@ -7,14 +7,45 @@ export var DebugSidebarBox = function DebugSidebarBox(_ref) {
7
7
  var region = image ? (image.regions || []).filter(function (r) {
8
8
  return r.highlighted;
9
9
  }) : null;
10
- return React.createElement(SidebarBoxContainer, {
11
- title: "Debug",
12
- icon: React.createElement("span", null),
13
- expandedByDefault: true
14
- }, React.createElement("div", {
15
- style: {
16
- padding: 4
17
- }
18
- }, React.createElement("div", null, React.createElement("b", null, "region"), ":"), React.createElement("pre", null, JSON.stringify(region, null, " ")), React.createElement("div", null, React.createElement("b", null, "lastAction"), ":"), React.createElement("pre", null, JSON.stringify(lastAction, null, " ")), React.createElement("div", null, React.createElement("b", null, "mode"), ":"), React.createElement("pre", null, JSON.stringify(state.mode, null, " ")), React.createElement("div", null, React.createElement("b", null, "frame:")), React.createElement("pre", null, JSON.stringify(state.selectedImageFrameTime, null, " "))));
10
+ return (
11
+ /*#__PURE__*/
12
+ React.createElement(SidebarBoxContainer, {
13
+ title: "Debug",
14
+ icon:
15
+ /*#__PURE__*/
16
+ React.createElement("span", null),
17
+ expandedByDefault: true
18
+ },
19
+ /*#__PURE__*/
20
+ React.createElement("div", {
21
+ style: {
22
+ padding: 4
23
+ }
24
+ },
25
+ /*#__PURE__*/
26
+ React.createElement("div", null,
27
+ /*#__PURE__*/
28
+ React.createElement("b", null, "region"), ":"),
29
+ /*#__PURE__*/
30
+ React.createElement("pre", null, JSON.stringify(region, null, " ")),
31
+ /*#__PURE__*/
32
+ React.createElement("div", null,
33
+ /*#__PURE__*/
34
+ React.createElement("b", null, "lastAction"), ":"),
35
+ /*#__PURE__*/
36
+ React.createElement("pre", null, JSON.stringify(lastAction, null, " ")),
37
+ /*#__PURE__*/
38
+ React.createElement("div", null,
39
+ /*#__PURE__*/
40
+ React.createElement("b", null, "mode"), ":"),
41
+ /*#__PURE__*/
42
+ React.createElement("pre", null, JSON.stringify(state.mode, null, " ")),
43
+ /*#__PURE__*/
44
+ React.createElement("div", null,
45
+ /*#__PURE__*/
46
+ React.createElement("b", null, "frame:")),
47
+ /*#__PURE__*/
48
+ React.createElement("pre", null, JSON.stringify(state.selectedImageFrameTime, null, " "))))
49
+ );
19
50
  };
20
51
  export default DebugSidebarBox;
@@ -105,90 +105,135 @@ var Editor = function Editor(_ref) {
105
105
  currentJSONValue = _useState8[0],
106
106
  changeCurrentJSONValue = _useState8[1];
107
107
 
108
- return React.createElement(ThemeProvider, {
109
- theme: theme
110
- }, React.createElement("div", null, React.createElement("div", {
111
- className: c.editBar
112
- }, React.createElement("h3", null, "React Image Annotate"), React.createElement("div", {
113
- style: {
114
- flexGrow: 1
115
- }
116
- }), React.createElement("div", null, React.createElement("div", {
117
- style: {
118
- display: "inline-flex"
119
- }
120
- }, React.createElement(Select, {
121
- className: c.select,
122
- value: {
123
- label: selectedExample,
124
- value: selectedExample
108
+ return (
109
+ /*#__PURE__*/
110
+ React.createElement(ThemeProvider, {
111
+ theme: theme
112
+ },
113
+ /*#__PURE__*/
114
+ React.createElement("div", null,
115
+ /*#__PURE__*/
116
+ React.createElement("div", {
117
+ className: c.editBar
125
118
  },
126
- options: Object.keys(examples).map(function (s) {
127
- return {
128
- label: s,
129
- value: s
130
- };
119
+ /*#__PURE__*/
120
+ React.createElement("h3", null, "React Image Annotate"),
121
+ /*#__PURE__*/
122
+ React.createElement("div", {
123
+ style: {
124
+ flexGrow: 1
125
+ }
131
126
  }),
132
- onChange: function onChange(selectedOption) {
133
- changeSelectedExample(selectedOption.value);
134
- changeCurrentJSONValue(JSON.stringify(selectedOption.value === "Custom" ? loadSavedInput() : examples[selectedOption.value](), null, " "));
135
- }
136
- })), React.createElement(Button, {
137
- className: "button",
138
- disabled: !lastOutput,
139
- onClick: function onClick() {
140
- return changeOutputOpen(true);
141
- }
142
- }, "View Output"), React.createElement(Button, {
143
- className: "button",
144
- variant: "outlined",
145
- disabled: Boolean(currentError),
146
- onClick: function onClick() {
147
- onOpenAnnotator(selectedExample === "Custom" ? loadSavedInput() : examples[selectedExample]);
148
- }
149
- }, "Open Annotator"))), React.createElement("div", {
150
- className: c.contentArea,
151
- style: currentError ? {
152
- border: "2px solid #f00"
153
- } : {
154
- border: "2px solid #fff"
155
- }
156
- }, React.createElement("div", null, React.createElement(MonacoEditor, {
157
- value: currentJSONValue,
158
- language: "javascript",
159
- onChange: function onChange(code) {
160
- try {
161
- window.localStorage.setItem("customInput", JSON.stringify(JSON.parse(code)));
162
- changeCurrentError(null);
163
- } catch (e) {
164
- changeCurrentError(e.toString());
127
+ /*#__PURE__*/
128
+ React.createElement("div", null,
129
+ /*#__PURE__*/
130
+ React.createElement("div", {
131
+ style: {
132
+ display: "inline-flex"
133
+ }
134
+ },
135
+ /*#__PURE__*/
136
+ React.createElement(Select, {
137
+ className: c.select,
138
+ value: {
139
+ label: selectedExample,
140
+ value: selectedExample
141
+ },
142
+ options: Object.keys(examples).map(function (s) {
143
+ return {
144
+ label: s,
145
+ value: s
146
+ };
147
+ }),
148
+ onChange: function onChange(selectedOption) {
149
+ changeSelectedExample(selectedOption.value);
150
+ changeCurrentJSONValue(JSON.stringify(selectedOption.value === "Custom" ? loadSavedInput() : examples[selectedOption.value](), null, " "));
165
151
  }
152
+ })),
153
+ /*#__PURE__*/
154
+ React.createElement(Button, {
155
+ className: "button",
156
+ disabled: !lastOutput,
157
+ onClick: function onClick() {
158
+ return changeOutputOpen(true);
159
+ }
160
+ }, "View Output"),
161
+ /*#__PURE__*/
162
+ React.createElement(Button, {
163
+ className: "button",
164
+ variant: "outlined",
165
+ disabled: Boolean(currentError),
166
+ onClick: function onClick() {
167
+ onOpenAnnotator(selectedExample === "Custom" ? loadSavedInput() : examples[selectedExample]);
168
+ }
169
+ }, "Open Annotator"))),
170
+ /*#__PURE__*/
171
+ React.createElement("div", {
172
+ className: c.contentArea,
173
+ style: currentError ? {
174
+ border: "2px solid #f00"
175
+ } : {
176
+ border: "2px solid #fff"
177
+ }
178
+ },
179
+ /*#__PURE__*/
180
+ React.createElement("div", null,
181
+ /*#__PURE__*/
182
+ React.createElement(MonacoEditor, {
183
+ value: currentJSONValue,
184
+ language: "javascript",
185
+ onChange: function onChange(code) {
186
+ try {
187
+ window.localStorage.setItem("customInput", JSON.stringify(JSON.parse(code)));
188
+ changeCurrentError(null);
189
+ } catch (e) {
190
+ changeCurrentError(e.toString());
191
+ }
166
192
 
167
- changeCurrentJSONValue(code);
193
+ changeCurrentJSONValue(code);
194
+ },
195
+ width: "100%",
196
+ height: "550px"
197
+ }))),
198
+ /*#__PURE__*/
199
+ React.createElement("div", {
200
+ className: c.specificationArea
168
201
  },
169
- width: "100%",
170
- height: "550px"
171
- }))), React.createElement("div", {
172
- className: c.specificationArea
173
- }, React.createElement("h2", null, "React Image Annotate Format"), React.createElement(Code, {
174
- language: "javascript"
175
- }, "\n{\n taskDescription?: string, // markdown\n regionTagList?: Array<string>,\n regionClsList?: Array<string>,\n imageTagList?: Array<string>,\n imageClsList?: Array<string>,\n // all tools are enabled by default\n enabledTools?: Array< \"select\" | \"create-point\" | \"create-box\" | \"create-polygon\" | \"create-line\">,\n selectedImage?: string, // initial selected image\n images: Array<{\n src: string,\n thumbnailSrc?: string, // use this if you are using high-res images\n name: string,\n regions?: Array<{\n id: string | number,\n cls?: string,\n color?: string,\n tags?: Array<string>,\n\n // Point\n type: \"point\",\n x: number, // [0-1] % of image width\n y: number, // [0-1] % of image height\n\n // Bounding Box\n type: \"box\",\n x: number, // [0-1] % of image width\n y: number, // [0-1] % of image height\n w: number, // [0-1] % of image width\n h: number, // [0-1] % of image height\n\n // Polygon\n type: \"polygon\",\n open?: boolean, // should last and first points be connected, default: true\n points: Array<[number, number]> // [0-1] % of image width/height\n }>\n }>,\n}\n")), React.createElement(Dialog, {
176
- fullScreen: true,
177
- open: outputDialogOpen
178
- }, React.createElement(DialogTitle, null, "React Image Annotate Output"), React.createElement(DialogContent, {
179
- style: {
180
- minWidth: 400
181
- }
182
- }, React.createElement(MonacoEditor, {
183
- value: JSON.stringify(lastOutput, null, " "),
184
- language: "javascript",
185
- width: "100%",
186
- height: "550px"
187
- })), React.createElement(DialogActions, null, React.createElement(Button, {
188
- onClick: function onClick() {
189
- return changeOutputOpen(false);
190
- }
191
- }, "Close")))));
202
+ /*#__PURE__*/
203
+ React.createElement("h2", null, "React Image Annotate Format"),
204
+ /*#__PURE__*/
205
+ React.createElement(Code, {
206
+ language: "javascript"
207
+ }, "\n{\n taskDescription?: string, // markdown\n regionTagList?: Array<string>,\n regionClsList?: Array<string>,\n imageTagList?: Array<string>,\n imageClsList?: Array<string>,\n // all tools are enabled by default\n enabledTools?: Array< \"select\" | \"create-point\" | \"create-box\" | \"create-polygon\" | \"create-line\">,\n selectedImage?: string, // initial selected image\n images: Array<{\n src: string,\n thumbnailSrc?: string, // use this if you are using high-res images\n name: string,\n regions?: Array<{\n id: string | number,\n cls?: string,\n color?: string,\n tags?: Array<string>,\n\n // Point\n type: \"point\",\n x: number, // [0-1] % of image width\n y: number, // [0-1] % of image height\n\n // Bounding Box\n type: \"box\",\n x: number, // [0-1] % of image width\n y: number, // [0-1] % of image height\n w: number, // [0-1] % of image width\n h: number, // [0-1] % of image height\n\n // Polygon\n type: \"polygon\",\n open?: boolean, // should last and first points be connected, default: true\n points: Array<[number, number]> // [0-1] % of image width/height\n }>\n }>,\n}\n")),
208
+ /*#__PURE__*/
209
+ React.createElement(Dialog, {
210
+ fullScreen: true,
211
+ open: outputDialogOpen
212
+ },
213
+ /*#__PURE__*/
214
+ React.createElement(DialogTitle, null, "React Image Annotate Output"),
215
+ /*#__PURE__*/
216
+ React.createElement(DialogContent, {
217
+ style: {
218
+ minWidth: 400
219
+ }
220
+ },
221
+ /*#__PURE__*/
222
+ React.createElement(MonacoEditor, {
223
+ value: JSON.stringify(lastOutput, null, " "),
224
+ language: "javascript",
225
+ width: "100%",
226
+ height: "550px"
227
+ })),
228
+ /*#__PURE__*/
229
+ React.createElement(DialogActions, null,
230
+ /*#__PURE__*/
231
+ React.createElement(Button, {
232
+ onClick: function onClick() {
233
+ return changeOutputOpen(false);
234
+ }
235
+ }, "Close")))))
236
+ );
192
237
  };
193
238
 
194
239
  export default Editor;
@@ -46,12 +46,25 @@ function (_Component) {
46
46
  key: "render",
47
47
  value: function render() {
48
48
  if (this.state.hasError) {
49
- return React.createElement(Dialog, {
50
- open: this.state.hasError,
51
- onClose: this.props.onClose
52
- }, React.createElement(DialogTitle, null, "Error Loading Annotator"), React.createElement(DialogContent, null, React.createElement("pre", null, this.state.err)), React.createElement(DialogActions, null, React.createElement(Button, {
53
- onClick: this.props.onClose
54
- }, "Close")));
49
+ return (
50
+ /*#__PURE__*/
51
+ React.createElement(Dialog, {
52
+ open: this.state.hasError,
53
+ onClose: this.props.onClose
54
+ },
55
+ /*#__PURE__*/
56
+ React.createElement(DialogTitle, null, "Error Loading Annotator"),
57
+ /*#__PURE__*/
58
+ React.createElement(DialogContent, null,
59
+ /*#__PURE__*/
60
+ React.createElement("pre", null, this.state.err)),
61
+ /*#__PURE__*/
62
+ React.createElement(DialogActions, null,
63
+ /*#__PURE__*/
64
+ React.createElement(Button, {
65
+ onClick: this.props.onClose
66
+ }, "Close")))
67
+ );
55
68
  }
56
69
 
57
70
  return this.props.children;
package/DemoSite/index.js CHANGED
@@ -20,21 +20,30 @@ export default (function () {
20
20
  lastOutput = _useState6[0],
21
21
  changeLastOutput = _useState6[1];
22
22
 
23
- return React.createElement("div", null, annotatorOpen ? React.createElement(ErrorBoundaryDialog, {
24
- onClose: function onClose() {
25
- changeAnnotatorOpen(false);
26
- }
27
- }, React.createElement(Annotator, Object.assign({}, annotatorProps, {
28
- onExit: function onExit(output) {
29
- delete output["lastAction"];
30
- changeLastOutput(output);
31
- changeAnnotatorOpen(false);
32
- }
33
- }))) : React.createElement(Editor, {
34
- lastOutput: lastOutput,
35
- onOpenAnnotator: function onOpenAnnotator(props) {
36
- changeAnnotatorProps(props);
37
- changeAnnotatorOpen(true);
38
- }
39
- }));
23
+ return (
24
+ /*#__PURE__*/
25
+ React.createElement("div", null, annotatorOpen ?
26
+ /*#__PURE__*/
27
+ React.createElement(ErrorBoundaryDialog, {
28
+ onClose: function onClose() {
29
+ changeAnnotatorOpen(false);
30
+ }
31
+ },
32
+ /*#__PURE__*/
33
+ React.createElement(Annotator, Object.assign({}, annotatorProps, {
34
+ onExit: function onExit(output) {
35
+ delete output["lastAction"];
36
+ changeLastOutput(output);
37
+ changeAnnotatorOpen(false);
38
+ }
39
+ }))) :
40
+ /*#__PURE__*/
41
+ React.createElement(Editor, {
42
+ lastOutput: lastOutput,
43
+ onOpenAnnotator: function onOpenAnnotator(props) {
44
+ changeAnnotatorProps(props);
45
+ changeAnnotatorOpen(true);
46
+ }
47
+ }))
48
+ );
40
49
  });