@labelbee/lb-components 1.6.1 → 1.6.2
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/components/pointCloudView/components/EmptyPage/index.js +1 -1
- package/es/assets/annotation/pointCloudTool/unitAttribute.svg.js +1 -4
- package/es/assets/annotation/pointCloudTool/unitAttributeForbid.svg.js +1 -4
- package/es/assets/annotation/pointCloudTool/unitAttributeHover.svg.js +1 -4
- package/es/components/pointCloudView/components/EmptyPage/index.js +1 -1
- package/es/components/pointCloudView/components/EmptyPage/index.js.map +1 -1
- package/es/components/pointCloudView/components/UnifyParamsModal/index.js +1 -234
- package/es/components/pointCloudView/hooks/useAttribute.js +1 -44
- package/es/components/pointCloudView/hooks/useHistory.js +1 -121
- package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +1 -122
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),nodata=require("../../../../assets/annotation/pointCloudTool/nodata.svg.js"),dom=require("../../../../utils/dom.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const EmptyPage=()=>React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","empty-page")},React__default.default.createElement("img",{src:nodata}),React__default.default.createElement("span",{className:dom.getClassName("point-cloud-container","empty-page","text")},"
|
|
1
|
+
"use strict";var React=require("react"),nodata=require("../../../../assets/annotation/pointCloudTool/nodata.svg.js"),dom=require("../../../../utils/dom.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const EmptyPage=()=>{const{t:e}=reactI18next.useTranslation();return React__default.default.createElement("div",{className:dom.getClassName("point-cloud-container","empty-page")},React__default.default.createElement("img",{src:nodata}),React__default.default.createElement("span",{className:dom.getClassName("point-cloud-container","empty-page","text")},e("NoData")))};module.exports=EmptyPage;
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
export { img as default };
|
|
4
|
-
//# sourceMappingURL=unitAttribute.svg.js.map
|
|
1
|
+
var e="data:image/svg+xml,%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M12.0355 1.96447L8.5 5.5L12.0354 9.03545L15.571 5.49991L12.0355 1.96447Z' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M18.5355 8.46447L15 12L18.5354 15.5354L22.071 11.9999L18.5355 8.46447Z' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M5.53553 8.46447L2 12L5.53544 15.5354L9.07098 11.9999L5.53553 8.46447Z' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M12.0355 14.9645L8.5 18.5L12.0354 22.0354L15.571 18.4999L12.0355 14.9645Z' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e";export{e as default};
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
export { img as default };
|
|
4
|
-
//# sourceMappingURL=unitAttributeForbid.svg.js.map
|
|
1
|
+
var e="data:image/svg+xml,%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M12.0355 1.96447L8.5 5.5L12.0354 9.03545L15.571 5.49991L12.0355 1.96447Z' stroke='%23CCCCCC' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M18.5355 8.46447L15 12L18.5354 15.5354L22.071 11.9999L18.5355 8.46447Z' stroke='%23CCCCCC' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M5.53553 8.46447L2 12L5.53544 15.5354L9.07098 11.9999L5.53553 8.46447Z' stroke='%23CCCCCC' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M12.0355 14.9645L8.5 18.5L12.0354 22.0354L15.571 18.4999L12.0355 14.9645Z' stroke='%23CCCCCC' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e";export{e as default};
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
export { img as default };
|
|
4
|
-
//# sourceMappingURL=unitAttributeHover.svg.js.map
|
|
1
|
+
var e="data:image/svg+xml,%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M12.0355 1.96447L8.5 5.5L12.0354 9.03545L15.571 5.49991L12.0355 1.96447Z' stroke='%23666FFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M18.5355 8.46447L15 12L18.5354 15.5354L22.071 11.9999L18.5355 8.46447Z' stroke='%23666FFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M5.53553 8.46447L2 12L5.53544 15.5354L9.07098 11.9999L5.53553 8.46447Z' stroke='%23666FFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e %3cpath d='M12.0355 14.9645L8.5 18.5L12.0354 22.0354L15.571 18.4999L12.0355 14.9645Z' stroke='%23666FFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e";export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t from"react";import
|
|
1
|
+
import t from"react";import o from"../../../../assets/annotation/pointCloudTool/nodata.svg.js";import{getClassName as e}from"../../../../utils/dom.js";import{useTranslation as n}from"react-i18next";const m=()=>{const{t:a}=n();return t.createElement("div",{className:e("point-cloud-container","empty-page")},t.createElement("img",{src:o}),t.createElement("span",{className:e("point-cloud-container","empty-page","text")},a("NoData")))};export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/EmptyPage/index.tsx"],"sourcesContent":["/**\n * @file EmptyPage\n * @createDate 2022-08-31\n * @author Ron <ron.f.luo@gmail.com>\n */\nimport React from 'react';\nimport NoDataSvg from '@/assets/annotation/pointCloudTool/nodata.svg';\nimport { getClassName } from '@/utils/dom';\n\nconst EmptyPage = () => {\n return (\n <div className={getClassName('point-cloud-container', 'empty-page')}>\n <img src={NoDataSvg} />\n <span className={getClassName('point-cloud-container', 'empty-page', 'text')}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/pointCloudView/components/EmptyPage/index.tsx"],"sourcesContent":["/**\n * @file EmptyPage\n * @createDate 2022-08-31\n * @author Ron <ron.f.luo@gmail.com>\n */\nimport React from 'react';\nimport NoDataSvg from '@/assets/annotation/pointCloudTool/nodata.svg';\nimport { getClassName } from '@/utils/dom';\nimport { useTranslation } from 'react-i18next';\n\nconst EmptyPage = () => {\n const { t } = useTranslation();\n\n return (\n <div className={getClassName('point-cloud-container', 'empty-page')}>\n <img src={NoDataSvg} />\n <span className={getClassName('point-cloud-container', 'empty-page', 'text')}>\n {t('NoData')}\n </span>\n </div>\n );\n};\n\nexport default EmptyPage;\n"],"names":["NoDataSvg"],"mappings":";;;;;AAUA,MAAM,YAAY,MAAM;AACtB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,uBAAyB,EAAA,YAAA,CAAA;AAAA,GAAA,sCACnD,KAAD,EAAA;AAAA,IAAK,GAAK,EAAAA,GAAA;AAAA,GAAA,CAAA,sCACT,MAAD,EAAA;AAAA,IAAM,SAAA,EAAW,YAAa,CAAA,uBAAA,EAAyB,YAAc,EAAA,MAAA,CAAA;AAAA,GAAA,EAClE,CAAE,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
|
@@ -1,234 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ToSubmitFileData, BatchUpdateResultByTrackID } from '../../../../store/annotation/actionCreators.js';
|
|
3
|
-
import { LabelBeeContext, useDispatch } from '../../../../store/ctx.js';
|
|
4
|
-
import { Form, Modal, InputNumber, Select, Popover, message } from 'antd';
|
|
5
|
-
import React, { useState, useEffect, useCallback } from 'react';
|
|
6
|
-
import { useTranslation } from 'react-i18next';
|
|
7
|
-
import { QuestionCircleOutlined } from '@ant-design/icons';
|
|
8
|
-
import { PointCloudUtils } from '@labelbee/lb-utils';
|
|
9
|
-
import { connect } from 'react-redux';
|
|
10
|
-
import { useSingleBox } from '../../hooks/useSingleBox.js';
|
|
11
|
-
import { MathUtils } from '@labelbee/lb-annotation';
|
|
12
|
-
|
|
13
|
-
var __defProp = Object.defineProperty;
|
|
14
|
-
var __defProps = Object.defineProperties;
|
|
15
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
16
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
17
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
18
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
19
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
20
|
-
var __spreadValues = (a, b) => {
|
|
21
|
-
for (var prop in b || (b = {}))
|
|
22
|
-
if (__hasOwnProp.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
if (__getOwnPropSymbols)
|
|
25
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
26
|
-
if (__propIsEnum.call(b, prop))
|
|
27
|
-
__defNormalProp(a, prop, b[prop]);
|
|
28
|
-
}
|
|
29
|
-
return a;
|
|
30
|
-
};
|
|
31
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
32
|
-
const layout = {
|
|
33
|
-
labelCol: {span: 8},
|
|
34
|
-
wrapperCol: {span: 16}
|
|
35
|
-
};
|
|
36
|
-
const defaultNumberRules = [{required: true, message: "\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}];
|
|
37
|
-
const defaultSelectedAttribute = [{required: true, message: "\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}];
|
|
38
|
-
const DECIMAL_PLACES = 2;
|
|
39
|
-
const PrefixTag = ({text}) => {
|
|
40
|
-
return /* @__PURE__ */ React.createElement("span", {
|
|
41
|
-
style: {
|
|
42
|
-
borderRadius: "4px 0px 0px 4px",
|
|
43
|
-
padding: "0px 12px",
|
|
44
|
-
background: "#FAFAFA",
|
|
45
|
-
border: "1px solid rgb(217 217 217)",
|
|
46
|
-
borderRight: "0",
|
|
47
|
-
display: "flex",
|
|
48
|
-
alignItems: "center",
|
|
49
|
-
height: 32
|
|
50
|
-
}
|
|
51
|
-
}, text);
|
|
52
|
-
};
|
|
53
|
-
const UnifyParamsModal = ({id, visible, onCancel, config, imgList, imgIndex}) => {
|
|
54
|
-
const dispatch = useDispatch();
|
|
55
|
-
const {selectedBox} = useSingleBox();
|
|
56
|
-
const [size, setSize] = useState();
|
|
57
|
-
const [form] = Form.useForm();
|
|
58
|
-
const {t} = useTranslation();
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (visible === false) {
|
|
61
|
-
form.resetFields();
|
|
62
|
-
setSize(void 0);
|
|
63
|
-
} else {
|
|
64
|
-
recalculateSize();
|
|
65
|
-
}
|
|
66
|
-
}, [visible]);
|
|
67
|
-
const onFinish = (values) => {
|
|
68
|
-
var _a;
|
|
69
|
-
if (!id) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
if (!size) {
|
|
73
|
-
message.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
dispatch(ToSubmitFileData(ESubmitType.SyncImgList));
|
|
77
|
-
const newData = {
|
|
78
|
-
attribute: values.attribute
|
|
79
|
-
};
|
|
80
|
-
if (config.secondaryAttributeConfigurable) {
|
|
81
|
-
const newSubAttribute = {};
|
|
82
|
-
(_a = config.inputList) == null ? void 0 : _a.forEach((data) => {
|
|
83
|
-
const subData = values[data.value];
|
|
84
|
-
if (subData !== void 0) {
|
|
85
|
-
Object.assign(newSubAttribute, {[data.value]: subData});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
if (Object.keys(newSubAttribute).length > 0) {
|
|
89
|
-
Object.assign(newData, {subAttribute: newSubAttribute});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (size) {
|
|
93
|
-
Object.assign(newData, size);
|
|
94
|
-
}
|
|
95
|
-
dispatch(BatchUpdateResultByTrackID(id, newData, [values.prevPage - 1, values.nextPage - 1]));
|
|
96
|
-
onCancel();
|
|
97
|
-
};
|
|
98
|
-
const recalculateSize = useCallback(() => {
|
|
99
|
-
var _a;
|
|
100
|
-
const {prevPage, nextPage} = form.getFieldsValue(["prevPage", "nextPage"]);
|
|
101
|
-
const newImgList = imgList.filter((_, i) => MathUtils.isInRange(i, [prevPage - 1, nextPage - 1]));
|
|
102
|
-
if (!((newImgList == null ? void 0 : newImgList.length) > 0) || !(selectedBox == null ? void 0 : selectedBox.info) || ((_a = selectedBox == null ? void 0 : selectedBox.info) == null ? void 0 : _a.trackID) === void 0) {
|
|
103
|
-
setSize(void 0);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const newMaxSize = PointCloudUtils.getMaxSizeFromBox({
|
|
107
|
-
trackID: selectedBox.info.trackID,
|
|
108
|
-
imgList: newImgList
|
|
109
|
-
});
|
|
110
|
-
setSize(newMaxSize);
|
|
111
|
-
}, [imgList, selectedBox, imgIndex]);
|
|
112
|
-
const onOk = () => form.submit();
|
|
113
|
-
const sizeShow = () => {
|
|
114
|
-
if (!size || !(selectedBox == null ? void 0 : selectedBox.info)) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const style = {marginRight: 16};
|
|
118
|
-
const {length, width, height} = PointCloudUtils.transferBox2Kitti(__spreadValues(__spreadValues({}, selectedBox == null ? void 0 : selectedBox.info), size));
|
|
119
|
-
return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", {
|
|
120
|
-
style
|
|
121
|
-
}, t("Length"), ": ", length.toFixed(DECIMAL_PLACES)), /* @__PURE__ */ React.createElement("span", {
|
|
122
|
-
style
|
|
123
|
-
}, t("Width"), ": ", width.toFixed(DECIMAL_PLACES)), /* @__PURE__ */ React.createElement("span", {
|
|
124
|
-
style
|
|
125
|
-
}, t("Height"), ": ", height.toFixed(DECIMAL_PLACES)), /* @__PURE__ */ React.createElement(Popover, {
|
|
126
|
-
placement: "rightBottom",
|
|
127
|
-
content: "\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"
|
|
128
|
-
}, /* @__PURE__ */ React.createElement(QuestionCircleOutlined, null)));
|
|
129
|
-
};
|
|
130
|
-
const selectStyle = {
|
|
131
|
-
width: "200px"
|
|
132
|
-
};
|
|
133
|
-
const attributeStyle = {
|
|
134
|
-
marginBottom: "24px",
|
|
135
|
-
display: "flex",
|
|
136
|
-
alignItems: "center"
|
|
137
|
-
};
|
|
138
|
-
return /* @__PURE__ */ React.createElement(Modal, {
|
|
139
|
-
title: t("UnifyParams"),
|
|
140
|
-
visible,
|
|
141
|
-
onCancel,
|
|
142
|
-
onOk,
|
|
143
|
-
wrapClassName: "labelbee-custom-modal"
|
|
144
|
-
}, /* @__PURE__ */ React.createElement(Form, __spreadProps(__spreadValues({}, layout), {
|
|
145
|
-
form,
|
|
146
|
-
onFinish
|
|
147
|
-
}), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
148
|
-
name: "id",
|
|
149
|
-
label: t("UnifyTrackID")
|
|
150
|
-
}, id), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
151
|
-
label: t("UnifyAttributeRange"),
|
|
152
|
-
required: true
|
|
153
|
-
}, /* @__PURE__ */ React.createElement(Form.Item, {
|
|
154
|
-
style: {display: "inline-block"},
|
|
155
|
-
rules: defaultNumberRules,
|
|
156
|
-
name: "prevPage",
|
|
157
|
-
noStyle: true,
|
|
158
|
-
initialValue: 1
|
|
159
|
-
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
160
|
-
precision: 0,
|
|
161
|
-
min: 1,
|
|
162
|
-
style: {width: "80px"},
|
|
163
|
-
onChange: () => recalculateSize()
|
|
164
|
-
})), /* @__PURE__ */ React.createElement("span", {
|
|
165
|
-
style: {
|
|
166
|
-
display: "inline-block",
|
|
167
|
-
width: "24px",
|
|
168
|
-
textAlign: "center"
|
|
169
|
-
}
|
|
170
|
-
}, "-"), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
171
|
-
style: {display: "inline-block"},
|
|
172
|
-
rules: defaultNumberRules,
|
|
173
|
-
name: "nextPage",
|
|
174
|
-
noStyle: true,
|
|
175
|
-
initialValue: imgList.length
|
|
176
|
-
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
177
|
-
precision: 0,
|
|
178
|
-
min: 1,
|
|
179
|
-
style: {width: "80px"},
|
|
180
|
-
onChange: () => recalculateSize()
|
|
181
|
-
})), /* @__PURE__ */ React.createElement("span", {
|
|
182
|
-
style: {
|
|
183
|
-
display: "inline-block",
|
|
184
|
-
width: "40x",
|
|
185
|
-
marginLeft: "10px",
|
|
186
|
-
textAlign: "center"
|
|
187
|
-
}
|
|
188
|
-
}, t("Page"))), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
189
|
-
name: "UnifySize",
|
|
190
|
-
label: t("UnifySize")
|
|
191
|
-
}, sizeShow()), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
192
|
-
label: t("UnifyTag"),
|
|
193
|
-
required: true
|
|
194
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
195
|
-
style: attributeStyle
|
|
196
|
-
}, /* @__PURE__ */ React.createElement(PrefixTag, {
|
|
197
|
-
text: t("Attribute")
|
|
198
|
-
}), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
199
|
-
name: "attribute",
|
|
200
|
-
noStyle: true,
|
|
201
|
-
rules: defaultSelectedAttribute
|
|
202
|
-
}, /* @__PURE__ */ React.createElement(Select, {
|
|
203
|
-
style: selectStyle
|
|
204
|
-
}, config.attributeList.map((v) => /* @__PURE__ */ React.createElement(Select.Option, {
|
|
205
|
-
key: v.value,
|
|
206
|
-
value: v.value
|
|
207
|
-
}, v.key))))), config.secondaryAttributeConfigurable && config.inputList.map((v) => {
|
|
208
|
-
var _a;
|
|
209
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
210
|
-
key: v.value,
|
|
211
|
-
style: attributeStyle
|
|
212
|
-
}, /* @__PURE__ */ React.createElement(PrefixTag, {
|
|
213
|
-
text: v.key
|
|
214
|
-
}), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
215
|
-
name: v.value,
|
|
216
|
-
noStyle: true,
|
|
217
|
-
required: false
|
|
218
|
-
}, /* @__PURE__ */ React.createElement(Select, {
|
|
219
|
-
style: selectStyle
|
|
220
|
-
}, (_a = v.subSelected) == null ? void 0 : _a.map((subData) => /* @__PURE__ */ React.createElement(Select.Option, {
|
|
221
|
-
key: subData.value,
|
|
222
|
-
value: subData.value
|
|
223
|
-
}, subData.key)))));
|
|
224
|
-
}))));
|
|
225
|
-
};
|
|
226
|
-
const mapStateToProps = (state) => {
|
|
227
|
-
return {
|
|
228
|
-
imgIndex: state.annotation.imgIndex
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
var UnifyParamsModal$1 = connect(mapStateToProps, null, null, {context: LabelBeeContext})(UnifyParamsModal);
|
|
232
|
-
|
|
233
|
-
export { UnifyParamsModal$1 as default };
|
|
234
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import{ESubmitType as L}from"../../../../constant/index.js";import{ToSubmitFileData as z,BatchUpdateResultByTrackID as R}from"../../../../store/annotation/actionCreators.js";import{LabelBeeContext as T,useDispatch as M}from"../../../../store/ctx.js";import{Form as u,Modal as q,InputNumber as F,Select as g,Popover as N,message as V}from"antd";import e,{useState as H,useEffect as K,useCallback as Q}from"react";import{useTranslation as W}from"react-i18next";import{QuestionCircleOutlined as $}from"@ant-design/icons";import{PointCloudUtils as _}from"@labelbee/lb-utils";import{connect as G}from"react-redux";import{useSingleBox as J}from"../../hooks/useSingleBox.js";import{MathUtils as X}from"@labelbee/lb-annotation";var Y=Object.defineProperty,Z=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,w=(r,n,a)=>n in r?Y(r,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[n]=a,v=(r,n)=>{for(var a in n||(n={}))te.call(n,a)&&w(r,a,n[a]);if(B)for(var a of B(n))re.call(n,a)&&w(r,a,n[a]);return r},ne=(r,n)=>Z(r,ee(n));const ae={labelCol:{span:8},wrapperCol:{span:16}},O=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"}],le=[{required:!0,message:"\u8BF7\u9009\u62E9\u4E3B\u5C5E\u6027"}],h=2,k=({text:r})=>e.createElement("span",{style:{borderRadius:"4px 0px 0px 4px",padding:"0px 12px",background:"#FAFAFA",border:"1px solid rgb(217 217 217)",borderRight:"0",display:"flex",alignItems:"center",height:32}},r),ie=({id:r,visible:n,onCancel:a,config:m,imgList:y,imgIndex:A})=>{const P=M(),{selectedBox:i}=J(),[p,E]=H(),[d]=u.useForm(),{t:o}=W();K(()=>{n===!1?(d.resetFields(),E(void 0)):b()},[n]);const C=t=>{var s;if(!r)return;if(!p){V.info("\u8BE5\u8303\u56F4\u4E0D\u5B58\u5728\u66F4\u6539\u6570\u636E, \u8BF7\u66F4\u6539\u7EDF\u4E00\u8303\u56F4");return}P(z(L.SyncImgList));const l={attribute:t.attribute};if(m.secondaryAttributeConfigurable){const c={};(s=m.inputList)==null||s.forEach(f=>{const x=t[f.value];x!==void 0&&Object.assign(c,{[f.value]:x})}),Object.keys(c).length>0&&Object.assign(l,{subAttribute:c})}p&&Object.assign(l,p),P(R(r,l,[t.prevPage-1,t.nextPage-1])),a()},b=Q(()=>{var t;const{prevPage:s,nextPage:l}=d.getFieldsValue(["prevPage","nextPage"]),c=y.filter((x,U)=>X.isInRange(U,[s-1,l-1]));if(!((c==null?void 0:c.length)>0)||!(i==null?void 0:i.info)||((t=i==null?void 0:i.info)==null?void 0:t.trackID)===void 0){E(void 0);return}const f=_.getMaxSizeFromBox({trackID:i.info.trackID,imgList:c});E(f)},[y,i,A]),D=()=>d.submit(),j=()=>{if(!p||!(i==null?void 0:i.info))return;const t={marginRight:16},{length:s,width:l,height:c}=_.transferBox2Kitti(v(v({},i==null?void 0:i.info),p));return e.createElement("div",null,e.createElement("span",{style:t},o("Length"),": ",s.toFixed(h)),e.createElement("span",{style:t},o("Width"),": ",l.toFixed(h)),e.createElement("span",{style:t},o("Height"),": ",c.toFixed(h)),e.createElement(N,{placement:"rightBottom",content:"\u7EDF\u4E00\u5C3A\u5BF8\u4E3A\u8BE5ID\u7684\u6240\u6709\u6807\u6CE8\u6846\u4E2D\u6700\u5927\u7684\u5C3A\u5BF8"},e.createElement($,null)))},S={width:"200px"},I={marginBottom:"24px",display:"flex",alignItems:"center"};return e.createElement(q,{title:o("UnifyParams"),visible:n,onCancel:a,onOk:D,wrapClassName:"labelbee-custom-modal"},e.createElement(u,ne(v({},ae),{form:d,onFinish:C}),e.createElement(u.Item,{name:"id",label:o("UnifyTrackID")},r),e.createElement(u.Item,{label:o("UnifyAttributeRange"),required:!0},e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"prevPage",noStyle:!0,initialValue:1},e.createElement(F,{precision:0,min:1,style:{width:"80px"},onChange:()=>b()})),e.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),e.createElement(u.Item,{style:{display:"inline-block"},rules:O,name:"nextPage",noStyle:!0,initialValue:y.length},e.createElement(F,{precision:0,min:1,style:{width:"80px"},onChange:()=>b()})),e.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},o("Page"))),e.createElement(u.Item,{name:"UnifySize",label:o("UnifySize")},j()),e.createElement(u.Item,{label:o("UnifyTag"),required:!0},e.createElement("div",{style:I},e.createElement(k,{text:o("Attribute")}),e.createElement(u.Item,{name:"attribute",noStyle:!0,rules:le},e.createElement(g,{style:S},m.attributeList.map(t=>e.createElement(g.Option,{key:t.value,value:t.value},t.key))))),m.secondaryAttributeConfigurable&&m.inputList.map(t=>{var s;return e.createElement("div",{key:t.value,style:I},e.createElement(k,{text:t.key}),e.createElement(u.Item,{name:t.value,noStyle:!0,required:!1},e.createElement(g,{style:S},(s=t.subSelected)==null?void 0:s.map(l=>e.createElement(g.Option,{key:l.value,value:l.value},l.key)))))}))))},oe=r=>({imgIndex:r.annotation.imgIndex});var ue=G(oe,null,null,{context:T})(ie);export{ue as default};
|
|
@@ -1,44 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PointCloudContext } from '../PointCloudContext.js';
|
|
3
|
-
|
|
4
|
-
const useAttribute = () => {
|
|
5
|
-
var _a, _b;
|
|
6
|
-
const {topViewInstance, sideViewInstance, backViewInstance, mainViewInstance} = useContext(PointCloudContext);
|
|
7
|
-
const [defaultAttribute, setDefaultAttribute] = useState((_b = (_a = topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation) == null ? void 0 : _a.defaultAttribute) != null ? _b : "");
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
if (!(topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const updateDefaultAttribute2 = () => {
|
|
13
|
-
setDefaultAttribute(topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation.defaultAttribute);
|
|
14
|
-
};
|
|
15
|
-
topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation.on("changeAttributeSidebar", updateDefaultAttribute2);
|
|
16
|
-
return () => {
|
|
17
|
-
topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation.unbind("changeAttributeSidebar", updateDefaultAttribute2);
|
|
18
|
-
};
|
|
19
|
-
}, [topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation]);
|
|
20
|
-
const syncThreeViewsAttribute = (attribute) => {
|
|
21
|
-
[
|
|
22
|
-
topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation,
|
|
23
|
-
sideViewInstance == null ? void 0 : sideViewInstance.pointCloud2dOperation,
|
|
24
|
-
backViewInstance == null ? void 0 : backViewInstance.pointCloud2dOperation
|
|
25
|
-
].forEach((instance) => {
|
|
26
|
-
instance == null ? void 0 : instance.setDefaultAttribute(attribute);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
const updateDefaultAttribute = (attribute) => {
|
|
30
|
-
topViewInstance == null ? void 0 : topViewInstance.pointCloud2dOperation.setDefaultAttribute(attribute);
|
|
31
|
-
};
|
|
32
|
-
const reRenderPointCloud3DBox = (newBox) => {
|
|
33
|
-
mainViewInstance == null ? void 0 : mainViewInstance.generateBox(newBox);
|
|
34
|
-
};
|
|
35
|
-
return {
|
|
36
|
-
syncThreeViewsAttribute,
|
|
37
|
-
updateDefaultAttribute,
|
|
38
|
-
reRenderPointCloud3DBox,
|
|
39
|
-
defaultAttribute
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export { useAttribute };
|
|
44
|
-
//# sourceMappingURL=useAttribute.js.map
|
|
1
|
+
import{useContext as p,useState as s,useEffect as b}from"react";import{PointCloudContext as c}from"../PointCloudContext.js";const C=()=>{var o,n;const{topViewInstance:t,sideViewInstance:i,backViewInstance:u,mainViewInstance:l}=p(c),[r,a]=s((n=(o=t==null?void 0:t.pointCloud2dOperation)==null?void 0:o.defaultAttribute)!=null?n:"");return b(()=>{if(!(t==null?void 0:t.pointCloud2dOperation))return;const e=()=>{a(t==null?void 0:t.pointCloud2dOperation.defaultAttribute)};return t==null||t.pointCloud2dOperation.on("changeAttributeSidebar",e),()=>{t==null||t.pointCloud2dOperation.unbind("changeAttributeSidebar",e)}},[t==null?void 0:t.pointCloud2dOperation]),{syncThreeViewsAttribute:e=>{[t==null?void 0:t.pointCloud2dOperation,i==null?void 0:i.pointCloud2dOperation,u==null?void 0:u.pointCloud2dOperation].forEach(d=>{d==null||d.setDefaultAttribute(e)})},updateDefaultAttribute:e=>{t==null||t.pointCloud2dOperation.setDefaultAttribute(e)},reRenderPointCloud3DBox:e=>{l==null||l.generateBox(e)},defaultAttribute:r}};export{C as useAttribute};
|
|
@@ -1,121 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PointCloudContext } from '../PointCloudContext.js';
|
|
3
|
-
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
const useHistory = () => {
|
|
21
|
-
const {
|
|
22
|
-
history,
|
|
23
|
-
setPointCloudResult,
|
|
24
|
-
setSelectedIDs,
|
|
25
|
-
pointCloudBoxList,
|
|
26
|
-
mainViewInstance,
|
|
27
|
-
topViewInstance,
|
|
28
|
-
polygonList,
|
|
29
|
-
setPolygonList
|
|
30
|
-
} = useContext(PointCloudContext);
|
|
31
|
-
const addHistory = ({
|
|
32
|
-
newBoxParams,
|
|
33
|
-
newPolygon
|
|
34
|
-
}) => {
|
|
35
|
-
const historyRecord = {
|
|
36
|
-
pointCloudBoxList,
|
|
37
|
-
polygonList
|
|
38
|
-
};
|
|
39
|
-
if (newBoxParams) {
|
|
40
|
-
historyRecord.pointCloudBoxList = pointCloudBoxList.concat(newBoxParams);
|
|
41
|
-
}
|
|
42
|
-
if (newPolygon) {
|
|
43
|
-
historyRecord.polygonList = polygonList.concat(newPolygon);
|
|
44
|
-
}
|
|
45
|
-
history.pushHistory(historyRecord);
|
|
46
|
-
};
|
|
47
|
-
const pushHistoryWithList = (params) => {
|
|
48
|
-
const historyRecord = {
|
|
49
|
-
pointCloudBoxList,
|
|
50
|
-
polygonList
|
|
51
|
-
};
|
|
52
|
-
if (params.pointCloudBoxList) {
|
|
53
|
-
historyRecord.pointCloudBoxList = params.pointCloudBoxList;
|
|
54
|
-
}
|
|
55
|
-
if (params.polygonList) {
|
|
56
|
-
historyRecord.polygonList = params.polygonList;
|
|
57
|
-
}
|
|
58
|
-
history.pushHistory(historyRecord);
|
|
59
|
-
};
|
|
60
|
-
const pushHistoryUnderUpdatePolygon = (polygon) => {
|
|
61
|
-
const selectedPolygon = polygonList.find((v) => v.id === polygon.id);
|
|
62
|
-
if (selectedPolygon) {
|
|
63
|
-
history.pushHistory({
|
|
64
|
-
pointCloudBoxList,
|
|
65
|
-
polygonList: polygonList.map((v) => {
|
|
66
|
-
if (v.id === polygon.id) {
|
|
67
|
-
return polygon;
|
|
68
|
-
}
|
|
69
|
-
return __spreadValues({}, v);
|
|
70
|
-
})
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const initHistory = ({
|
|
75
|
-
pointCloudBoxList: pointCloudBoxList2,
|
|
76
|
-
polygonList: polygonList2
|
|
77
|
-
}) => {
|
|
78
|
-
history.initRecord([{pointCloudBoxList: pointCloudBoxList2, polygonList: polygonList2}], true);
|
|
79
|
-
};
|
|
80
|
-
const updatePointCloud = (params) => {
|
|
81
|
-
if (!params) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const {pointCloudBoxList: newPointCloudBoxList, polygonList: newPolygonList} = params;
|
|
85
|
-
if (newPointCloudBoxList) {
|
|
86
|
-
if (pointCloudBoxList.length !== newPointCloudBoxList.length) {
|
|
87
|
-
setSelectedIDs();
|
|
88
|
-
}
|
|
89
|
-
const deletePointCloudList = pointCloudBoxList.filter((v) => newPointCloudBoxList.findIndex((d) => d.id === v.id) >= 0);
|
|
90
|
-
const addPointCloudList = newPointCloudBoxList.filter((v) => pointCloudBoxList.findIndex((d) => d.id !== v.id) >= 0);
|
|
91
|
-
deletePointCloudList.forEach((v) => {
|
|
92
|
-
mainViewInstance == null ? void 0 : mainViewInstance.removeObjectByName(v.id);
|
|
93
|
-
});
|
|
94
|
-
addPointCloudList.forEach((v) => {
|
|
95
|
-
mainViewInstance == null ? void 0 : mainViewInstance.generateBox(v);
|
|
96
|
-
});
|
|
97
|
-
setPointCloudResult(newPointCloudBoxList);
|
|
98
|
-
}
|
|
99
|
-
if (newPolygonList) {
|
|
100
|
-
setPolygonList(newPolygonList);
|
|
101
|
-
}
|
|
102
|
-
topViewInstance == null ? void 0 : topViewInstance.updatePolygonList(newPointCloudBoxList != null ? newPointCloudBoxList : [], newPolygonList != null ? newPolygonList : []);
|
|
103
|
-
};
|
|
104
|
-
const redo = () => {
|
|
105
|
-
updatePointCloud(history.redo());
|
|
106
|
-
};
|
|
107
|
-
const undo = () => {
|
|
108
|
-
updatePointCloud(history.undo());
|
|
109
|
-
};
|
|
110
|
-
return {
|
|
111
|
-
addHistory,
|
|
112
|
-
pushHistoryWithList,
|
|
113
|
-
initHistory,
|
|
114
|
-
pushHistoryUnderUpdatePolygon,
|
|
115
|
-
redo,
|
|
116
|
-
undo
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
export { useHistory };
|
|
121
|
-
//# sourceMappingURL=useHistory.js.map
|
|
1
|
+
import{useContext as v}from"react";import{PointCloudContext as B}from"../PointCloudContext.js";var m=Object.defineProperty,f=Object.getOwnPropertySymbols,O=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,L=(i,n,s)=>n in i?m(i,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[n]=s,w=(i,n)=>{for(var s in n||(n={}))O.call(n,s)&&L(i,s,n[s]);if(f)for(var s of f(n))H.call(n,s)&&L(i,s,n[s]);return i};const I=()=>{const{history:i,setPointCloudResult:n,setSelectedIDs:s,pointCloudBoxList:r,mainViewInstance:u,topViewInstance:p,polygonList:l,setPolygonList:a}=v(B),g=({newBoxParams:t,newPolygon:o})=>{const e={pointCloudBoxList:r,polygonList:l};t&&(e.pointCloudBoxList=r.concat(t)),o&&(e.polygonList=l.concat(o)),i.pushHistory(e)},C=t=>{const o={pointCloudBoxList:r,polygonList:l};t.pointCloudBoxList&&(o.pointCloudBoxList=t.pointCloudBoxList),t.polygonList&&(o.polygonList=t.polygonList),i.pushHistory(o)},P=t=>{l.find(e=>e.id===t.id)&&i.pushHistory({pointCloudBoxList:r,polygonList:l.map(e=>e.id===t.id?t:w({},e))})},h=({pointCloudBoxList:t,polygonList:o})=>{i.initRecord([{pointCloudBoxList:t,polygonList:o}],!0)},y=t=>{if(!t)return;const{pointCloudBoxList:o,polygonList:e}=t;if(o){r.length!==o.length&&s();const x=r.filter(d=>o.findIndex(c=>c.id===d.id)>=0),_=o.filter(d=>r.findIndex(c=>c.id!==d.id)>=0);x.forEach(d=>{u==null||u.removeObjectByName(d.id)}),_.forEach(d=>{u==null||u.generateBox(d)}),n(o)}e&&a(e),p==null||p.updatePolygonList(o!=null?o:[],e!=null?e:[])};return{addHistory:g,pushHistoryWithList:C,initHistory:h,pushHistoryUnderUpdatePolygon:P,redo:()=>{y(i.redo())},undo:()=>{y(i.undo())}}};export{I as useHistory};
|
package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js
CHANGED
|
@@ -1,122 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { composeResultByToolInstance } from '../../../../../../store/annotation/reducer.js';
|
|
3
|
-
import { LabelBeeContext, useDispatch } from '../../../../../../store/ctx.js';
|
|
4
|
-
import { Form, Modal, InputNumber } from 'antd';
|
|
5
|
-
import React, { useState } from 'react';
|
|
6
|
-
import { useTranslation } from 'react-i18next';
|
|
7
|
-
import { connect } from 'react-redux';
|
|
8
|
-
|
|
9
|
-
var __defProp = Object.defineProperty;
|
|
10
|
-
var __defProps = Object.defineProperties;
|
|
11
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
12
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
15
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
16
|
-
var __spreadValues = (a, b) => {
|
|
17
|
-
for (var prop in b || (b = {}))
|
|
18
|
-
if (__hasOwnProp.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
if (__getOwnPropSymbols)
|
|
21
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
22
|
-
if (__propIsEnum.call(b, prop))
|
|
23
|
-
__defNormalProp(a, prop, b[prop]);
|
|
24
|
-
}
|
|
25
|
-
return a;
|
|
26
|
-
};
|
|
27
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
28
|
-
const layout = {
|
|
29
|
-
labelCol: {span: 8},
|
|
30
|
-
wrapperCol: {span: 16}
|
|
31
|
-
};
|
|
32
|
-
const inputStyle = {
|
|
33
|
-
width: "80px"
|
|
34
|
-
};
|
|
35
|
-
const BatchUpdateModal = ({id, stepList, imgList, imgIndex, toolInstance}) => {
|
|
36
|
-
const dispatch = useDispatch();
|
|
37
|
-
const [visible, setVisible] = useState(false);
|
|
38
|
-
const [form] = Form.useForm();
|
|
39
|
-
const {t} = useTranslation();
|
|
40
|
-
const onFinish = (values) => {
|
|
41
|
-
dispatch(BatchUpdateTrackID({
|
|
42
|
-
id,
|
|
43
|
-
newID: values.newID,
|
|
44
|
-
rangeIndex: [values.prevPage - 1, values.nextPage - 1],
|
|
45
|
-
imgList: composeResultByToolInstance({toolInstance, imgList, imgIndex, stepList})
|
|
46
|
-
}));
|
|
47
|
-
setVisible(false);
|
|
48
|
-
};
|
|
49
|
-
const onCancel = () => setVisible(false);
|
|
50
|
-
const onOk = () => form.submit();
|
|
51
|
-
const defaultNumberRules = [{required: true, message: t("PositiveIntegerCheck")}];
|
|
52
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("a", {
|
|
53
|
-
style: {color: "#666FFF"},
|
|
54
|
-
onClick: () => setVisible(true)
|
|
55
|
-
}, t("BatchUpdateText")), /* @__PURE__ */ React.createElement(Modal, {
|
|
56
|
-
title: t("BatchUpdateTrackID"),
|
|
57
|
-
visible,
|
|
58
|
-
onCancel,
|
|
59
|
-
onOk,
|
|
60
|
-
wrapClassName: "labelbee-custom-modal"
|
|
61
|
-
}, /* @__PURE__ */ React.createElement(Form, __spreadProps(__spreadValues({}, layout), {
|
|
62
|
-
form,
|
|
63
|
-
onFinish
|
|
64
|
-
}), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
65
|
-
name: "id",
|
|
66
|
-
label: t("CurrentBoxTrackIDs")
|
|
67
|
-
}, id), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
68
|
-
name: "newID",
|
|
69
|
-
label: t("TrackIDUnifyAs"),
|
|
70
|
-
rules: defaultNumberRules
|
|
71
|
-
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
72
|
-
precision: 0,
|
|
73
|
-
min: 1,
|
|
74
|
-
style: inputStyle
|
|
75
|
-
})), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
76
|
-
label: t("UnifyTrackIDRange"),
|
|
77
|
-
required: true
|
|
78
|
-
}, /* @__PURE__ */ React.createElement(Form.Item, {
|
|
79
|
-
style: {display: "inline-block"},
|
|
80
|
-
rules: defaultNumberRules,
|
|
81
|
-
name: "prevPage",
|
|
82
|
-
noStyle: true
|
|
83
|
-
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
84
|
-
precision: 0,
|
|
85
|
-
min: 1,
|
|
86
|
-
style: inputStyle
|
|
87
|
-
})), /* @__PURE__ */ React.createElement("span", {
|
|
88
|
-
style: {
|
|
89
|
-
display: "inline-block",
|
|
90
|
-
width: "24px",
|
|
91
|
-
textAlign: "center"
|
|
92
|
-
}
|
|
93
|
-
}, "-"), /* @__PURE__ */ React.createElement(Form.Item, {
|
|
94
|
-
style: {display: "inline-block"},
|
|
95
|
-
rules: defaultNumberRules,
|
|
96
|
-
name: "nextPage",
|
|
97
|
-
noStyle: true
|
|
98
|
-
}, /* @__PURE__ */ React.createElement(InputNumber, {
|
|
99
|
-
precision: 0,
|
|
100
|
-
min: 1,
|
|
101
|
-
style: inputStyle
|
|
102
|
-
})), /* @__PURE__ */ React.createElement("span", {
|
|
103
|
-
style: {
|
|
104
|
-
display: "inline-block",
|
|
105
|
-
width: "40x",
|
|
106
|
-
marginLeft: "10px",
|
|
107
|
-
textAlign: "center"
|
|
108
|
-
}
|
|
109
|
-
}, t("Page"))))));
|
|
110
|
-
};
|
|
111
|
-
const mapStateToProps = (state) => {
|
|
112
|
-
return {
|
|
113
|
-
toolInstance: state.annotation.toolInstance,
|
|
114
|
-
imgList: state.annotation.imgList,
|
|
115
|
-
imgIndex: state.annotation.imgIndex,
|
|
116
|
-
stepList: state.annotation.stepList
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
var BatchUpdateModal$1 = connect(mapStateToProps, null, null, {context: LabelBeeContext})(BatchUpdateModal);
|
|
120
|
-
|
|
121
|
-
export { BatchUpdateModal$1 as default };
|
|
122
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import{BatchUpdateTrackID as _}from"../../../../../../store/annotation/actionCreators.js";import{composeResultByToolInstance as E}from"../../../../../../store/annotation/reducer.js";import{LabelBeeContext as w,useDispatch as h}from"../../../../../../store/ctx.js";import{Form as o,Modal as v,InputNumber as c}from"antd";import r,{useState as O}from"react";import{useTranslation as D}from"react-i18next";import{connect as k}from"react-redux";var C=Object.defineProperty,T=Object.defineProperties,B=Object.getOwnPropertyDescriptors,u=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))j.call(t,n)&&d(e,n,t[n]);if(u)for(var n of u(t))F.call(t,n)&&d(e,n,t[n]);return e},S=(e,t)=>T(e,B(t));const U={labelCol:{span:8},wrapperCol:{span:16}},m={width:"80px"},N=({id:e,stepList:t,imgList:n,imgIndex:f,toolInstance:y})=>{const g=h(),[I,l]=O(!1),[p]=o.useForm(),{t:a}=D(),b=i=>{g(_({id:e,newID:i.newID,rangeIndex:[i.prevPage-1,i.nextPage-1],imgList:E({toolInstance:y,imgList:n,imgIndex:f,stepList:t})})),l(!1)},x=()=>l(!1),P=()=>p.submit(),s=[{required:!0,message:a("PositiveIntegerCheck")}];return r.createElement(r.Fragment,null,r.createElement("a",{style:{color:"#666FFF"},onClick:()=>l(!0)},a("BatchUpdateText")),r.createElement(v,{title:a("BatchUpdateTrackID"),visible:I,onCancel:x,onOk:P,wrapClassName:"labelbee-custom-modal"},r.createElement(o,S(L({},U),{form:p,onFinish:b}),r.createElement(o.Item,{name:"id",label:a("CurrentBoxTrackIDs")},e),r.createElement(o.Item,{name:"newID",label:a("TrackIDUnifyAs"),rules:s},r.createElement(c,{precision:0,min:1,style:m})),r.createElement(o.Item,{label:a("UnifyTrackIDRange"),required:!0},r.createElement(o.Item,{style:{display:"inline-block"},rules:s,name:"prevPage",noStyle:!0},r.createElement(c,{precision:0,min:1,style:m})),r.createElement("span",{style:{display:"inline-block",width:"24px",textAlign:"center"}},"-"),r.createElement(o.Item,{style:{display:"inline-block"},rules:s,name:"nextPage",noStyle:!0},r.createElement(c,{precision:0,min:1,style:m})),r.createElement("span",{style:{display:"inline-block",width:"40x",marginLeft:"10px",textAlign:"center"}},a("Page"))))))},R=e=>({toolInstance:e.annotation.toolInstance,imgList:e.annotation.imgList,imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList});var A=k(R,null,null,{context:w})(N);export{A as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@labelbee/lb-components",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "Provide a complete library of annotation components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"es": "./es/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@ant-design/icons": "^4.6.2",
|
|
44
44
|
"@labelbee/lb-annotation": "^1.9.1",
|
|
45
|
-
"@labelbee/lb-utils": "^1.3.
|
|
45
|
+
"@labelbee/lb-utils": "^1.3.2",
|
|
46
46
|
"ahooks": "^3.4.0",
|
|
47
47
|
"classnames": "^2.3.0",
|
|
48
48
|
"lodash": "^4.17.21",
|