@glodon-aiot/dataset-annotation 3.2.2-beta.3 → 3.2.10-beta.1
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/dataset-annotation.js +12191 -12198
- package/dist/dataset-annotation.umd.cjs +135 -135
- package/dist/es/Common/Page/index.mjs +29 -0
- package/dist/es/Common/Page/style.less.mjs +4 -0
- package/dist/es/Common/PageContent/index.mjs +18 -0
- package/dist/es/Common/PageHeader/index.mjs +39 -0
- package/dist/es/Common/PageHeader/style.less.mjs +4 -0
- package/dist/es/DatasetContext/index.mjs +11 -0
- package/dist/es/access/images/data_empty.svg.mjs +4 -0
- package/dist/es/components/CompositionInput/index.mjs +53 -0
- package/dist/es/components/DataEmpty/index.mjs +51 -0
- package/dist/es/components/DataEmpty/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/PreSamplesPage/index.mjs +292 -0
- package/dist/es/components/DetectionAnnotation/PreSamplesPage/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/DisabledTooltip/index.mjs +23 -0
- package/dist/es/components/DetectionAnnotation/components/ImageDetail/index.mjs +166 -0
- package/dist/es/components/DetectionAnnotation/components/ImageDetail/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/Drawable.mjs +51 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/FabricCustomize.mjs +42 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/RectLabel.mjs +283 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/icons/delete-icon.svg.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/index.mjs +315 -0
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/Labels/index.mjs +201 -0
- package/dist/es/components/DetectionAnnotation/components/Labels/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/components/TagItem/index.mjs +144 -0
- package/dist/es/components/DetectionAnnotation/components/TagItem/style.less.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/icon_item_empty.svg.mjs +4 -0
- package/dist/es/components/DetectionAnnotation/index.mjs +713 -0
- package/dist/es/components/DetectionAnnotation/style.less.mjs +4 -0
- package/dist/es/components/DetectionImageAnnotation/index.mjs +62 -0
- package/dist/es/components/DetectionImageAnnotation/style.less.mjs +4 -0
- package/dist/es/components/Iconfont/index.mjs +16 -0
- package/dist/es/components/MarkDescriptions/index.mjs +66 -0
- package/dist/es/components/MarkDescriptions/style.less.mjs +4 -0
- package/dist/es/components/OCRImageViewer/index.mjs +213 -0
- package/dist/es/components/OCRImageViewer/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/CategoryDrawer.mjs +136 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.mjs +57 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.mjs +73 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.mjs +55 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/index.mjs +366 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/index.mjs +255 -0
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.mjs +101 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/images/delete.png.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.mjs +756 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/index.mjs +231 -0
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/OcrModal/index.mjs +180 -0
- package/dist/es/components/OcrAnnotation/OcrModal/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/PreLabelModal.mjs +281 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/index.mjs +44 -0
- package/dist/es/components/OcrAnnotation/PreLabelOCR/style.less.mjs +4 -0
- package/dist/es/components/OcrAnnotation/constant.mjs +5 -0
- package/dist/es/components/OcrAnnotation/index.mjs +382 -0
- package/dist/es/components/OcrAnnotation/style.less.mjs +4 -0
- package/dist/es/components/OcrImageAnnotation/index.mjs +40 -0
- package/dist/es/components/OcrImageAnnotation/style.less.mjs +4 -0
- package/dist/es/components/PageNav/index.mjs +30 -0
- package/dist/es/components/PageNav/style.less.mjs +4 -0
- package/dist/es/components/PicZipImportModal/index.mjs +584 -0
- package/dist/es/components/PicZipImportModal/pic_zip.svg.mjs +4 -0
- package/dist/es/components/PicZipImportModal/pic_zip_json.svg.mjs +4 -0
- package/dist/es/components/PicZipImportModal/style.less.mjs +4 -0
- package/dist/es/components/PreLabelOCR/PreLabelModal.mjs +276 -0
- package/dist/es/components/PreLabelOCR/index.mjs +44 -0
- package/dist/es/components/PreLabelOCR/style.less.mjs +4 -0
- package/dist/es/components/ScanTable/index.mjs +97 -0
- package/dist/es/components/ScanTable/style.less.mjs +4 -0
- package/dist/es/components/Thumbnail/default.png.mjs +4 -0
- package/dist/es/components/Thumbnail/index.mjs +31 -0
- package/dist/es/components/Thumbnail/style.less.mjs +4 -0
- package/dist/es/components/hooks/Prompt.mjs +33 -0
- package/dist/es/constant.mjs +13 -0
- package/dist/es/createDatasetAnnotation/index.mjs +133 -0
- package/dist/es/createDetectionDatasetAnnotation/index.mjs +129 -0
- package/dist/es/createDetectionImageAnnotation/index.mjs +31 -0
- package/dist/es/createOcrDatasetAnnotation/index.mjs +129 -0
- package/dist/es/createOcrImageAnnotation/index.mjs +33 -0
- package/dist/es/featuresConfig.mjs +79 -0
- package/dist/es/index.mjs +13 -0
- package/dist/es/utils/color.mjs +30 -0
- package/dist/es/utils/index.mjs +22 -0
- package/dist/es/utils/sign.mjs +33 -0
- package/dist/lib/index.js +3 -0
- package/dist/src/Common/Page/index.d.ts +1 -2
- package/dist/src/Common/PageHeader/index.d.ts +0 -1
- package/dist/src/DatasetContext/index.d.ts +3 -4
- package/dist/src/components/CompositionInput/index.d.ts +2 -2
- package/dist/src/components/DataEmpty/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/PreSamplesPage/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/components/DisabledTooltip/index.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/ImageDetail/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/Drawable.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/RectLabel.d.ts +6 -5
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/index.d.ts +0 -1
- package/dist/src/components/DetectionAnnotation/components/Labels/index.d.ts +0 -1
- package/dist/src/components/DetectionAnnotation/components/TagItem/index.d.ts +1 -2
- package/dist/src/components/DetectionAnnotation/index.d.ts +1 -2
- package/dist/src/components/DetectionImageAnnotation/index.d.ts +0 -2
- package/dist/src/components/Iconfont/font_3140028_iptomfpgyu.d.ts +0 -0
- package/dist/src/components/Iconfont/font_3454453_gu5ijeufyng.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4108228_3slzqhoow93.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4439177_k3mjwv7kzfd.d.ts +0 -0
- package/dist/src/components/Iconfont/index.d.ts +1 -2
- package/dist/src/components/MarkDescriptions/index.d.ts +0 -1
- package/dist/src/components/OCRImageViewer/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorItem.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LableEditor.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/index.d.ts +0 -1
- package/dist/src/components/OcrAnnotation/OcrModal/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/PreLabelOCR/PreLabelModal.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/PreLabelOCR/index.d.ts +1 -2
- package/dist/src/components/OcrAnnotation/index.d.ts +1 -2
- package/dist/src/components/OcrImageAnnotation/index.d.ts +0 -2
- package/dist/src/components/PageNav/index.d.ts +1 -2
- package/dist/src/components/PicZipImportModal/index.d.ts +1 -2
- package/dist/src/components/PreLabelOCR/PreLabelModal.d.ts +1 -2
- package/dist/src/components/PreLabelOCR/index.d.ts +1 -2
- package/dist/src/components/ScanTable/index.d.ts +1 -2
- package/dist/src/components/Thumbnail/index.d.ts +1 -2
- package/dist/src/components/hooks/Prompt.d.ts +0 -1
- package/dist/src/components/hooks/useBlocker.d.ts +1 -1
- package/dist/src/featuresConfig.d.ts +1 -1
- package/dist/src/utils/sign.d.ts +1 -1
- package/package.json +18 -8
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
var Z = Object.defineProperty, _ = Object.defineProperties;
|
|
2
|
+
var $ = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var E = Object.getOwnPropertySymbols;
|
|
4
|
+
var V = Object.prototype.hasOwnProperty, S = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var F = (n, t, a) => t in n ? Z(n, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : n[t] = a, m = (n, t) => {
|
|
6
|
+
for (var a in t || (t = {}))
|
|
7
|
+
V.call(t, a) && F(n, a, t[a]);
|
|
8
|
+
if (E)
|
|
9
|
+
for (var a of E(t))
|
|
10
|
+
S.call(t, a) && F(n, a, t[a]);
|
|
11
|
+
return n;
|
|
12
|
+
}, N = (n, t) => _(n, $(t));
|
|
13
|
+
import { jsxs as p, jsx as r } from "react/jsx-runtime";
|
|
14
|
+
import { useRef as M, useState as b, useEffect as x } from "react";
|
|
15
|
+
import { Button as A } from "antd";
|
|
16
|
+
import { useKeyPress as B } from "ahooks";
|
|
17
|
+
import "./style.less.mjs";
|
|
18
|
+
import ee from "../Labels/index.mjs";
|
|
19
|
+
import ie from "../LabelMaker/index.mjs";
|
|
20
|
+
import H from "../../../Iconfont/index.mjs";
|
|
21
|
+
const fe = (n) => {
|
|
22
|
+
var P, z, D;
|
|
23
|
+
const {
|
|
24
|
+
datasetId: t,
|
|
25
|
+
isImageDetailVisible: a = !0,
|
|
26
|
+
currentSample: e,
|
|
27
|
+
onNextClick: h,
|
|
28
|
+
onPrevClick: g,
|
|
29
|
+
labels: d = [],
|
|
30
|
+
editing: K,
|
|
31
|
+
onRefresh: v,
|
|
32
|
+
onChange: R,
|
|
33
|
+
isPreLabel: j,
|
|
34
|
+
settingHide: k,
|
|
35
|
+
imgCount: c,
|
|
36
|
+
readonly: O,
|
|
37
|
+
showLabelList: q = !0,
|
|
38
|
+
renderLabelItem: G
|
|
39
|
+
} = n, J = M(null), Q = M({}), [C, T] = b({}), [u, L] = b(), [o, I] = b(), [W, X] = b(!1), [U, w] = b(!1);
|
|
40
|
+
B("rightarrow", () => {
|
|
41
|
+
h && h();
|
|
42
|
+
}), B("leftarrow", () => {
|
|
43
|
+
g && g();
|
|
44
|
+
}), x(() => () => {
|
|
45
|
+
W && v && v();
|
|
46
|
+
}, []), x(() => {
|
|
47
|
+
var l, s;
|
|
48
|
+
if (L(void 0), I(void 0), !a || !((l = e == null ? void 0 : e.labels) != null && l.length))
|
|
49
|
+
return;
|
|
50
|
+
const i = (s = o || e) == null ? void 0 : s.labels.reduce((f, y) => (f[y.id] ? ++f[y.id] : f[y.id] = 1, f), {});
|
|
51
|
+
T(i || {});
|
|
52
|
+
}, [a, e, o]), x(() => {
|
|
53
|
+
e != null && e.fileUrl && w(!0);
|
|
54
|
+
}, [e == null ? void 0 : e.fileUrl]), x(() => {
|
|
55
|
+
if (o != null && o.labels) {
|
|
56
|
+
const i = [];
|
|
57
|
+
o.labels.forEach((l) => {
|
|
58
|
+
const s = d.find((f) => f.id === l.id);
|
|
59
|
+
s && i.push(N(m({}, l), {
|
|
60
|
+
label: s.label
|
|
61
|
+
}));
|
|
62
|
+
}), o.labels = i, I(m({}, o));
|
|
63
|
+
}
|
|
64
|
+
}, [d]);
|
|
65
|
+
const Y = () => {
|
|
66
|
+
J.current && w(!1);
|
|
67
|
+
};
|
|
68
|
+
return window.onresize = Y, /* @__PURE__ */ p("div", {
|
|
69
|
+
className: "detection-image-detail",
|
|
70
|
+
children: [/* @__PURE__ */ p("div", {
|
|
71
|
+
className: "detail-image",
|
|
72
|
+
children: [k ? /* @__PURE__ */ p("div", {
|
|
73
|
+
className: "img-detail-info",
|
|
74
|
+
children: ["第 ", c == null ? void 0 : c.index, " 张 / 共 ", c == null ? void 0 : c.total, " 张"]
|
|
75
|
+
}) : /* @__PURE__ */ r("div", {
|
|
76
|
+
className: "img-detail-info",
|
|
77
|
+
children: c == null ? void 0 : c.index
|
|
78
|
+
}), /* @__PURE__ */ p("div", {
|
|
79
|
+
className: "detail-content",
|
|
80
|
+
children: [g && /* @__PURE__ */ r(A, {
|
|
81
|
+
className: "select-prev",
|
|
82
|
+
icon: /* @__PURE__ */ r(H, {
|
|
83
|
+
type: "icon-zuojiantou"
|
|
84
|
+
}),
|
|
85
|
+
type: "text",
|
|
86
|
+
disabled: U,
|
|
87
|
+
onClick: () => g(),
|
|
88
|
+
tabIndex: 0
|
|
89
|
+
}), /* @__PURE__ */ r("div", {
|
|
90
|
+
className: "select-main",
|
|
91
|
+
ref: Q,
|
|
92
|
+
children: /* @__PURE__ */ r(ie, {
|
|
93
|
+
disabled: O,
|
|
94
|
+
imageUrl: (e == null ? void 0 : e.fileUrl) || "",
|
|
95
|
+
pen: u,
|
|
96
|
+
labels: ((P = o ? o.labels : e == null ? void 0 : e.labels) == null ? void 0 : P.map((i) => {
|
|
97
|
+
var l;
|
|
98
|
+
return N(m({}, i), {
|
|
99
|
+
color: ((l = d.find((s) => s.id === i.id)) == null ? void 0 : l.color) || ""
|
|
100
|
+
});
|
|
101
|
+
})) || [],
|
|
102
|
+
onImageLoad: () => w(!1),
|
|
103
|
+
onChange: (i) => {
|
|
104
|
+
if (L(void 0), !e)
|
|
105
|
+
return;
|
|
106
|
+
const l = N(m({}, e), {
|
|
107
|
+
labels: i.map((s) => ({
|
|
108
|
+
id: s.id,
|
|
109
|
+
label: s.label,
|
|
110
|
+
box: s.box
|
|
111
|
+
}))
|
|
112
|
+
});
|
|
113
|
+
I(l), R && R(l);
|
|
114
|
+
},
|
|
115
|
+
isPreLabel: j,
|
|
116
|
+
renderLabelItem: G
|
|
117
|
+
})
|
|
118
|
+
}), h && /* @__PURE__ */ r(A, {
|
|
119
|
+
className: "select-next",
|
|
120
|
+
icon: /* @__PURE__ */ r(H, {
|
|
121
|
+
type: "icon-youjiantou"
|
|
122
|
+
}),
|
|
123
|
+
type: "text",
|
|
124
|
+
disabled: U,
|
|
125
|
+
onClick: () => h()
|
|
126
|
+
})]
|
|
127
|
+
}), ((z = e == null ? void 0 : e.sampleFileName) == null ? void 0 : z.name) && /* @__PURE__ */ r("div", {
|
|
128
|
+
className: "img-detail-info",
|
|
129
|
+
children: e.sampleFileName.name
|
|
130
|
+
})]
|
|
131
|
+
}), (!!(d != null && d.length) || K) && q && /* @__PURE__ */ r("div", {
|
|
132
|
+
className: "detail-slide",
|
|
133
|
+
children: /* @__PURE__ */ r(ee, {
|
|
134
|
+
datasetId: t,
|
|
135
|
+
selectMode: "single",
|
|
136
|
+
data: ((D = Object.keys(C)) == null ? void 0 : D.map((i) => {
|
|
137
|
+
const l = d.find((s) => s.id === i);
|
|
138
|
+
if (l)
|
|
139
|
+
return l.count = C[i], l;
|
|
140
|
+
}).filter((i) => !!i)) || [],
|
|
141
|
+
shortcut: !0,
|
|
142
|
+
selected: u ? [u] : [],
|
|
143
|
+
onSelectedChange: (i) => {
|
|
144
|
+
if (i.length > 2) {
|
|
145
|
+
console.warn("不支持选中多个标签");
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (!i.length) {
|
|
149
|
+
L(void 0);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const l = d == null ? void 0 : d.find((s) => i[0].label === s.label);
|
|
153
|
+
L(l);
|
|
154
|
+
},
|
|
155
|
+
onListChange: () => {
|
|
156
|
+
X(!0), v && v();
|
|
157
|
+
},
|
|
158
|
+
isPreLabel: j,
|
|
159
|
+
settingHide: k
|
|
160
|
+
})
|
|
161
|
+
})]
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
export {
|
|
165
|
+
fe as default
|
|
166
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function k(e, p) {
|
|
2
|
+
I(e);
|
|
3
|
+
let i = -1, h = -1, u = 0, n = 0;
|
|
4
|
+
e.on("mouse:down", (s) => {
|
|
5
|
+
if (e.getActiveObject())
|
|
6
|
+
return;
|
|
7
|
+
i = -1, h = -1, u = 0, n = 0;
|
|
8
|
+
const l = e.getZoom();
|
|
9
|
+
h = s.e.offsetX / l, i = s.e.offsetY / l;
|
|
10
|
+
}), e.on("mouse:up", (s) => {
|
|
11
|
+
if (e.getActiveObject()) {
|
|
12
|
+
i = -1, h = -1, u = 0, n = 0;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (h === -1 && i === -1)
|
|
16
|
+
return;
|
|
17
|
+
const l = e.getZoom(), m = s.e.offsetX > e.getWidth() ? e.getWidth() / l : s.e.offsetX / l, w = s.e.offsetY > e.getHeight() ? e.getHeight() / l : s.e.offsetY / l;
|
|
18
|
+
if (u = Math.abs(m - h), n = Math.abs(w - i), u === 0 || n === 0)
|
|
19
|
+
return;
|
|
20
|
+
const y = e.viewportTransform ? e.viewportTransform[4] / l : 0, T = e.viewportTransform ? e.viewportTransform[5] / l : 0;
|
|
21
|
+
let f = i > w ? w : i, r = h > m ? m : h, d = u, g = n;
|
|
22
|
+
f = f - T, r = r - y;
|
|
23
|
+
const X = () => {
|
|
24
|
+
var o, b;
|
|
25
|
+
const t = e.backgroundImage;
|
|
26
|
+
t && typeof t != "string" && ((o = t.aCoords) != null && o.tl.x, (b = t.aCoords) != null && b.tl.y), t && typeof t != "string" && t.top !== void 0 && t.height !== void 0 && t.left !== void 0 && t.width !== void 0 && (f < t.top && (g = g - (t.top - f), f = t.top), f + g > t.top + t.height && (g = t.top + t.height - f + g - g, f = t.height + t.top - g), r < t.left && (d = d - (t.left - r), r = t.left), r + d > t.left + t.width && (d = t.left + t.width - r + d - d, r = t.width + t.left - d));
|
|
27
|
+
}, Y = (t) => {
|
|
28
|
+
const o = e.backgroundImage;
|
|
29
|
+
return !(o && typeof o != "string" && o.top !== void 0 && o.height !== void 0 && o.left !== void 0 && o.width !== void 0 && (t[0] < o.left || t[1] < o.top || t[0] > o.left + o.width || t[1] > o.top + o.height));
|
|
30
|
+
};
|
|
31
|
+
X();
|
|
32
|
+
const c = [[r, f], [r + d, f], [r + d, f + g], [r, f + g]];
|
|
33
|
+
p && c.every((t) => Y(t)) && p({
|
|
34
|
+
id: "",
|
|
35
|
+
color: "#cccccc",
|
|
36
|
+
label: "未知",
|
|
37
|
+
box: c
|
|
38
|
+
}), e.skipTargetFind = !1;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const I = (e) => {
|
|
42
|
+
e.off("mouse:down"), e.off("mouse:up");
|
|
43
|
+
};
|
|
44
|
+
function x(e, p, i) {
|
|
45
|
+
if (!i)
|
|
46
|
+
return k(e, p), e;
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
x as drawable,
|
|
50
|
+
I as stopDraw
|
|
51
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import d from "./icons/delete-icon.svg.mjs";
|
|
2
|
+
function y(t) {
|
|
3
|
+
t.Object.prototype.cornerColor = "blue", c(t);
|
|
4
|
+
}
|
|
5
|
+
function z(t) {
|
|
6
|
+
return !(!t.complete || typeof t.naturalWidth != "undefined" && t.naturalWidth == 0);
|
|
7
|
+
}
|
|
8
|
+
function c(t) {
|
|
9
|
+
const s = document.createElement("img");
|
|
10
|
+
s.src = d;
|
|
11
|
+
function f(r) {
|
|
12
|
+
return function(e, i, l, o, n) {
|
|
13
|
+
const a = () => {
|
|
14
|
+
e.save(), e.translate(i, l), e.rotate(t.util.degreesToRadians(n.angle)), e.lineJoin = "round", e.fillStyle = "#fff", e.lineWidth = 4, e.strokeStyle = "#fff", e.strokeRect(-12, -12, 24, 24), e.fillRect(-12, -12, 24, 24), e.drawImage(r, -10, -10, 20, 20), e.restore();
|
|
15
|
+
};
|
|
16
|
+
z(r) ? a() : r.onload = () => {
|
|
17
|
+
a();
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function u(r, e, i, l) {
|
|
22
|
+
var o = e.target, n = o.canvas;
|
|
23
|
+
if (!n)
|
|
24
|
+
return !1;
|
|
25
|
+
n.remove(o);
|
|
26
|
+
}
|
|
27
|
+
t.Object.prototype.controls.deleteControl = new t.Control({
|
|
28
|
+
actionName: "del",
|
|
29
|
+
x: 0.5,
|
|
30
|
+
y: -0.5,
|
|
31
|
+
offsetY: -24 + 8,
|
|
32
|
+
offsetX: -24 + 8,
|
|
33
|
+
cursorStyle: "pointer",
|
|
34
|
+
mouseUpHandler: u,
|
|
35
|
+
render: f(s),
|
|
36
|
+
sizeX: 24,
|
|
37
|
+
sizeY: 24
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
y as default
|
|
42
|
+
};
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
var p = Object.defineProperty, u = Object.defineProperties;
|
|
2
|
+
var m = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var b = Object.getOwnPropertySymbols;
|
|
4
|
+
var w = Object.prototype.hasOwnProperty, C = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var g = (l, e, s) => e in l ? p(l, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : l[e] = s, n = (l, e) => {
|
|
6
|
+
for (var s in e || (e = {}))
|
|
7
|
+
w.call(e, s) && g(l, s, e[s]);
|
|
8
|
+
if (b)
|
|
9
|
+
for (var s of b(e))
|
|
10
|
+
C.call(e, s) && g(l, s, e[s]);
|
|
11
|
+
return l;
|
|
12
|
+
}, v = (l, e) => u(l, m(e));
|
|
13
|
+
var f = (l, e, s) => (g(l, typeof e != "symbol" ? e + "" : e, s), s);
|
|
14
|
+
import { fabric as d } from "fabric";
|
|
15
|
+
import y from "./FabricCustomize.mjs";
|
|
16
|
+
import { formatColorToArray as _ } from "../../../../utils/color.mjs";
|
|
17
|
+
const $ = {
|
|
18
|
+
borderWidth: 2,
|
|
19
|
+
controls: ["TL", "BL", "TR", "BR"],
|
|
20
|
+
cornerStrokeColor: "#84868C",
|
|
21
|
+
cornerSize: 6,
|
|
22
|
+
visible: !0,
|
|
23
|
+
active: !1
|
|
24
|
+
};
|
|
25
|
+
class F {
|
|
26
|
+
constructor(e, s, h) {
|
|
27
|
+
f(this, "config");
|
|
28
|
+
f(this, "color");
|
|
29
|
+
f(this, "_active", !1);
|
|
30
|
+
f(this, "_fabricRect", null);
|
|
31
|
+
f(this, "_label", null);
|
|
32
|
+
f(this, "_hover", !1);
|
|
33
|
+
f(this, "_strokeRect");
|
|
34
|
+
this._canvas = s, this.handlers = h, d.Rect.prototype.cornerColor = "blue", this.config = n(n({}, $), e), this.color = _(e.color), this._active = this.config.active || !1, s && this.render(s);
|
|
35
|
+
}
|
|
36
|
+
get object() {
|
|
37
|
+
return this._fabricRect;
|
|
38
|
+
}
|
|
39
|
+
get active() {
|
|
40
|
+
return this._active;
|
|
41
|
+
}
|
|
42
|
+
set active(e) {
|
|
43
|
+
var s;
|
|
44
|
+
this._active = e, (s = this._fabricRect) != null && s.canvas && (e && !this.config.hideDelete ? (this._fabricRect.set(this.activeStyle), this.canvas.setActiveObject(this._fabricRect)) : (this.canvas.discardActiveObject(), this.hover || this._fabricRect.set(this.normalStyle)), this.canvas.requestRenderAll());
|
|
45
|
+
}
|
|
46
|
+
get hover() {
|
|
47
|
+
return this._hover;
|
|
48
|
+
}
|
|
49
|
+
set hover(e) {
|
|
50
|
+
var s, h;
|
|
51
|
+
this._hover = e, e ? (s = this._fabricRect) == null || s.set(this.hoverStyle) : this.active || (h = this._fabricRect) == null || h.set(this.normalStyle), this.canvas.requestRenderAll();
|
|
52
|
+
}
|
|
53
|
+
get canvas() {
|
|
54
|
+
return this._canvas;
|
|
55
|
+
}
|
|
56
|
+
set canvas(e) {
|
|
57
|
+
this._canvas !== e && (this._canvas = e, this.render(e));
|
|
58
|
+
}
|
|
59
|
+
get normalStyle() {
|
|
60
|
+
return {
|
|
61
|
+
fill: `rgba(${this.color[0]},${this.color[1]}, ${this.color[2]}, 0)`,
|
|
62
|
+
stroke: this.config.color,
|
|
63
|
+
// strokeWidth: this.config.borderWidth
|
|
64
|
+
// ? this.config.borderWidth / this.canvas.getZoom()
|
|
65
|
+
// : 2,
|
|
66
|
+
strokeWidth: 0,
|
|
67
|
+
strokeUniform: !0
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
get activeStyle() {
|
|
71
|
+
return v(n({}, this.normalStyle), {
|
|
72
|
+
content: `<svg height="500" width="500"><text fill="#ffffff" font-size="45" x="50" y="86">${this.config.name}</text></svg>`,
|
|
73
|
+
fill: `rgba(${this.color[0]},${this.color[1]}, ${this.color[2]}, 0.1)`
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
get hoverStyle() {
|
|
77
|
+
return this.activeStyle;
|
|
78
|
+
}
|
|
79
|
+
createRect() {
|
|
80
|
+
const e = {
|
|
81
|
+
hasBorders: !1,
|
|
82
|
+
cornerSize: 6,
|
|
83
|
+
cornerStrokeColor: "#84868C",
|
|
84
|
+
cornerColor: "#FFFFFF",
|
|
85
|
+
transparentCorners: !1
|
|
86
|
+
}, s = 0, h = new d.Rect(
|
|
87
|
+
// this.config.points?.map((p) => ({ x: p[0], y: p[1] })),
|
|
88
|
+
n(n({
|
|
89
|
+
left: this.config.points[0][0],
|
|
90
|
+
top: this.config.points[0][1],
|
|
91
|
+
width: this.config.points[2][0] - this.config.points[0][0] - s,
|
|
92
|
+
height: this.config.points[2][1] - this.config.points[0][1] - s
|
|
93
|
+
}, e), this.normalStyle)
|
|
94
|
+
);
|
|
95
|
+
h.setControlsVisibility({
|
|
96
|
+
mtr: !1
|
|
97
|
+
});
|
|
98
|
+
const a = () => {
|
|
99
|
+
if (h.canvas !== this.canvas) {
|
|
100
|
+
this.canvas.off("after:render", a);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
this.canvas.contextContainer.strokeStyle = `rgb(${this.color[0]},${this.color[1]}, ${this.color[2]})`;
|
|
104
|
+
const o = h.getBoundingRect();
|
|
105
|
+
this._strokeRect = this.canvas.contextContainer.strokeRect(o.left + 0.5, o.top + 0.5, o.width, o.height);
|
|
106
|
+
};
|
|
107
|
+
return this.canvas.on("after:render", a), h;
|
|
108
|
+
}
|
|
109
|
+
scaledNumber(e) {
|
|
110
|
+
return e / this.canvas.getZoom();
|
|
111
|
+
}
|
|
112
|
+
// getPolyVertices(poly: fabric.Rect) {
|
|
113
|
+
// const points = poly.points,
|
|
114
|
+
// vertices: fabric.Point[] = [];
|
|
115
|
+
// points.forEach((point) => {
|
|
116
|
+
// const x: number = point.x - poly.pathOffset.x,
|
|
117
|
+
// y: number = point.y - poly.pathOffset.y;
|
|
118
|
+
// vertices.push(
|
|
119
|
+
// fabric.util.transformPoint(
|
|
120
|
+
// { x, y } as fabric.Point,
|
|
121
|
+
// fabric.util.multiplyTransformMatrices(
|
|
122
|
+
// poly.canvas.viewportTransform,
|
|
123
|
+
// poly.calcTransformMatrix()
|
|
124
|
+
// )
|
|
125
|
+
// )
|
|
126
|
+
// );
|
|
127
|
+
// });
|
|
128
|
+
// return vertices.map((v) => {
|
|
129
|
+
// return { x: this.scaledNumber(v.x), y: this.scaledNumber(v.y) };
|
|
130
|
+
// });
|
|
131
|
+
// }
|
|
132
|
+
createLabelName() {
|
|
133
|
+
const [e, s, h] = this.color, a = new d.Text(this.handlers.renderLabelItem ? this.handlers.renderLabelItem(this.config) : this.config.name, {
|
|
134
|
+
fill: "#FFFFFF",
|
|
135
|
+
fontSize: 12,
|
|
136
|
+
selectable: !1,
|
|
137
|
+
top: 4,
|
|
138
|
+
left: 8
|
|
139
|
+
}), o = new d.Rect({
|
|
140
|
+
selectable: !1,
|
|
141
|
+
strokeWidth: 0,
|
|
142
|
+
fill: `rgb(${e},${s},${h})`,
|
|
143
|
+
rx: 2,
|
|
144
|
+
ry: 2,
|
|
145
|
+
width: (a.width || 0) + 16,
|
|
146
|
+
height: (a.height || 0) + 8,
|
|
147
|
+
left: 0,
|
|
148
|
+
top: 0
|
|
149
|
+
});
|
|
150
|
+
return new d.Group([o, a], {
|
|
151
|
+
selectable: !1,
|
|
152
|
+
// lockScalingX: false,
|
|
153
|
+
// lockScalingY: false,
|
|
154
|
+
scaleX: 1 / this.canvas.getZoom(),
|
|
155
|
+
scaleY: 1 / this.canvas.getZoom()
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
renderLabel() {
|
|
159
|
+
var e, s;
|
|
160
|
+
if (this._fabricRect) {
|
|
161
|
+
if (this._label || (this._label = this.createLabelName(), this.setLabelPosition()), this._label.canvas === this.canvas) {
|
|
162
|
+
const h = this._label.getObjects().find((o) => o.type === "rect"), a = this._label.getObjects().find((o) => o.type === "text");
|
|
163
|
+
if (a) {
|
|
164
|
+
a.set({
|
|
165
|
+
text: this.handlers.renderLabelItem ? this.handlers.renderLabelItem(this.config) : this.config.name,
|
|
166
|
+
left: 8
|
|
167
|
+
// fontSize: this.scaledNumber(12),
|
|
168
|
+
});
|
|
169
|
+
const o = (a.getBoundingRect().width || 0) + 16;
|
|
170
|
+
h == null || h.set({
|
|
171
|
+
fill: `rgba(${this.color[0]},${this.color[1]}, ${this.color[2]}, 1)`,
|
|
172
|
+
width: o,
|
|
173
|
+
left: -o / 2
|
|
174
|
+
}), a.set({
|
|
175
|
+
left: -o / 2 + 8
|
|
176
|
+
});
|
|
177
|
+
const r = ((e = this._fabricRect.aCoords) == null ? void 0 : e.tl.x) !== void 0 ? (s = this._fabricRect.aCoords) == null ? void 0 : s.tl.x : void 0;
|
|
178
|
+
this._label.set({
|
|
179
|
+
left: r,
|
|
180
|
+
width: o
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
} else
|
|
184
|
+
this.canvas.add(this._label);
|
|
185
|
+
this.setLabelPosition();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
setLabelPosition() {
|
|
189
|
+
var r, t, i, c;
|
|
190
|
+
if (!this._fabricRect || !this._label)
|
|
191
|
+
return;
|
|
192
|
+
const e = this._label.getObjects().find((R) => R.type === "rect");
|
|
193
|
+
if (!e)
|
|
194
|
+
return;
|
|
195
|
+
const s = e.height ? e.height : void 0, h = e.width ? e.width : void 0, a = ((r = this._fabricRect.aCoords) == null ? void 0 : r.tl.y) !== void 0 && s !== void 0 && e.scaleY ? ((t = this._fabricRect.aCoords) == null ? void 0 : t.tl.y) - s / this.canvas.getZoom() : void 0, o = ((i = this._fabricRect.aCoords) == null ? void 0 : i.tl.x) !== void 0 ? (c = this._fabricRect.aCoords) == null ? void 0 : c.tl.x : void 0;
|
|
196
|
+
this._label.set({
|
|
197
|
+
top: a,
|
|
198
|
+
left: o,
|
|
199
|
+
height: s,
|
|
200
|
+
width: h,
|
|
201
|
+
scaleX: 1 / this.canvas.getZoom(),
|
|
202
|
+
scaleY: 1 / this.canvas.getZoom()
|
|
203
|
+
}), this.config = n({}, this.config);
|
|
204
|
+
}
|
|
205
|
+
addToCanvas(e) {
|
|
206
|
+
if (!this._fabricRect)
|
|
207
|
+
return;
|
|
208
|
+
this.canvas = e, this.canvas.add(this._fabricRect), this._fabricRect.on("mouseover", (o) => {
|
|
209
|
+
this.hover = !0;
|
|
210
|
+
}), this._fabricRect.on("mouseout", (o) => {
|
|
211
|
+
this.hover = !1;
|
|
212
|
+
}), this._fabricRect.on("mouseup", () => {
|
|
213
|
+
this._fabricRect && this.canvas.setActiveObject(this._fabricRect);
|
|
214
|
+
});
|
|
215
|
+
const s = (o) => {
|
|
216
|
+
var r;
|
|
217
|
+
(r = o.selected) != null && r.some((t) => t === this._fabricRect) ? this.active = !0 : this.active && (this.active = !1);
|
|
218
|
+
};
|
|
219
|
+
this.canvas.on("selection:created", s), this.canvas.on("selection:updated", s), this.canvas.on("selection:cleared", (o) => {
|
|
220
|
+
this.active && (this.active = !1);
|
|
221
|
+
});
|
|
222
|
+
const h = (o) => {
|
|
223
|
+
const r = o.transform.action;
|
|
224
|
+
o.transform.corner;
|
|
225
|
+
const t = o.transform.target, i = o.transform.target.canvas.backgroundImage, c = 0;
|
|
226
|
+
i && (r === "drag" && (t.top < i.top && t.set({
|
|
227
|
+
top: i.top
|
|
228
|
+
}), t.top + (t.height + c) * t.scaleY > i.top + i.height && t.set({
|
|
229
|
+
top: i.height + i.top - (t.height + c) * t.scaleY
|
|
230
|
+
}), t.left < i.left && t.set({
|
|
231
|
+
left: i.left
|
|
232
|
+
}), t.left + (t.width + c) * t.scaleX > i.left + i.width && t.set({
|
|
233
|
+
left: i.width + i.left - (t.width + c) * t.scaleX
|
|
234
|
+
})), r === "scale" && (t.top + (t.height + c) * t.scaleY > i.top + i.height && t.set({
|
|
235
|
+
top: (t.height + c) * t.scaleY > i.height ? i.top : i.top + i.height - (t.height + c) * t.scaleY,
|
|
236
|
+
height: (t.height + c) * t.scaleY > i.height ? i.height - c : t.height + c
|
|
237
|
+
}), t.left + (t.width + c) * t.scaleX > i.left + i.width && t.set({
|
|
238
|
+
left: i.width + i.left - (t.width + c) * t.scaleX
|
|
239
|
+
})), r === "scaleX" && (t.left + (t.width + c) * t.scaleX > i.left + i.width && t.set({
|
|
240
|
+
left: t.left - (t.left + (t.width + c) * t.scaleX - (i.left + i.width))
|
|
241
|
+
}), t.left < i.left && t.set({
|
|
242
|
+
left: i.left
|
|
243
|
+
})), r === "scaleY" && (t.top + (t.height + c) * t.scaleY > i.top + i.height && t.set({
|
|
244
|
+
top: t.top - (t.top + (t.height + c) * t.scaleY - (i.top + i.height))
|
|
245
|
+
}), t.top < i.top && t.set({
|
|
246
|
+
top: i.top
|
|
247
|
+
})), (t.width + c) * t.scaleX > i.width && t.set({
|
|
248
|
+
left: i.left,
|
|
249
|
+
width: (i.width - c) / t.scaleX
|
|
250
|
+
}), (t.height + c) * t.scaleY > i.height && t.set({
|
|
251
|
+
top: i.top,
|
|
252
|
+
height: (i.height - c) / t.scaleY
|
|
253
|
+
})), this.canvas.renderAll();
|
|
254
|
+
}, a = (o) => {
|
|
255
|
+
h(o), this.setLabelPosition();
|
|
256
|
+
};
|
|
257
|
+
this._fabricRect.on("moving", a), this._fabricRect.on("scaling", a), this._fabricRect.on("rotating", a), this._fabricRect.on("skewing", a), this._fabricRect.on("resizing", a), this.canvas.on("object:removed", (o) => {
|
|
258
|
+
o.target === this._fabricRect && this.destroy();
|
|
259
|
+
}), this.canvas.on("object:modified", (o) => {
|
|
260
|
+
o.target === this._fabricRect && (this.setLabelPosition(), this.handlers.onChange && this.handlers.onChange(this));
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
render(e) {
|
|
264
|
+
y(d), this._fabricRect || (this._fabricRect = this.createRect()), this._fabricRect.canvas === this.canvas ? this._fabricRect.set({
|
|
265
|
+
fill: `rgba(${this.color[0]},${this.color[1]}, ${this.color[2]}, 0)`,
|
|
266
|
+
stroke: `rgba(${this.color[0]},${this.color[1]}, ${this.color[2]}, 1)`
|
|
267
|
+
}) : this.addToCanvas(e), this.renderLabel();
|
|
268
|
+
try {
|
|
269
|
+
this.canvas.renderAll();
|
|
270
|
+
} catch (s) {
|
|
271
|
+
console.log("render failed");
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
set labelConfig(e) {
|
|
275
|
+
this.config = n(n({}, this.config), e), this.color = _(e.color), this.render(this.canvas), this.handlers.onChange && this.handlers.onChange(this);
|
|
276
|
+
}
|
|
277
|
+
destroy() {
|
|
278
|
+
this._fabricRect && this.canvas.remove(this._fabricRect), this._label && this.canvas.remove(this._label), this._label = null, this._fabricRect = null, this.canvas.requestRenderAll(), this.handlers.onDelete && this.handlers.onDelete(this);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
export {
|
|
282
|
+
F as default
|
|
283
|
+
};
|
package/dist/es/components/DetectionAnnotation/components/LabelMaker/icons/delete-icon.svg.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const M = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSIjZmZmIj4KICA8cGF0aCBkPSJNNi4zODczNSAzLjM4NjgxTDYuMjc5NjEgMy45NjY1M0M2LjYzOTg4IDMuOTU3MTYgNy4wMDAxNCAzLjk1MTY5IDcuMzYwNDEgMy45NTE2OUM4LjE0MyAzLjk1MTY5IDguOTI1NTkgMy45NjU3NSA5LjcwODE4IDMuOTkyMzJMOS41OTYxNCAzLjM5MjI4VjMuMzkwNzJDOS41NDQ0MiAzLjEwNTU0IDkuNTEwODEgMi45OTIyNSA5LjQ0MzU4IDIuOTIxOTNDOS40MDA0OSAyLjg3ODE4IDkuMjczNzkgMi43ODIwOCA4LjgwMjM0IDIuNzgyMDhINy4xODExNEM2LjcwMzY2IDIuNzgyMDggNi41Nzk1NSAyLjg3NTA2IDYuNTM5OSAyLjkxNDlDNi40NzUyNiAyLjk4MjEgNi40NDI1MSAzLjA4OTkxIDYuMzg3MzUgMy4zODc1OVYzLjM4NjgxWk01LjQwMTM1IDMuOTkxNTRMNS4zOTk2MyAzLjk5OTM1QzQuODEyODUgNC4wMjc2MyA0LjIyNjg5IDQuMDY4NTMgMy42NDIyNSA0LjEyMjAxTDIuMzgwNDUgNC4yMzQ1MkMyLjI2ODM3IDQuMjQ2NTEgMi4xNjU5NSA0LjI5Nzg3IDIuMDk1MiA0LjM3NzU3QzIuMDI0NDUgNC40NTcyOCAxLjk5MTAxIDQuNTU4OTYgMi4wMDIwOCA0LjY2MDc3QzIuMDEzMTQgNC43NjI1OCAyLjA2NzgyIDQuODU2NCAyLjE1NDM2IDQuOTIyMDZDMi4yNDA5MSA0Ljk4NzcyIDIuMzUyNDEgNS4wMTk5OCAyLjQ2NDkyIDUuMDExOTFMMy43MjY3MSA0Ljg5OTQxSDMuNzI4NDRDNC45MzUyNCA0Ljc4ODY5IDYuMTQ3NDQgNC43MzMxNCA3LjM2MDQxIDQuNzMyOTlDOS40MTI1NiA0LjczMjk5IDExLjQ3MTYgNC44MjgzMSAxMy41MTg2IDUuMDExOTFDMTMuNTc1NSA1LjAxOCAxMy42MzMxIDUuMDEzNzQgMTMuNjg4MiA0Ljk5OTM4QzEzLjc0MzIgNC45ODUwMyAxMy43OTQ2IDQuOTYwODYgMTMuODM5MiA0LjkyODNDMTMuODgzOSA0Ljg5NTc1IDEzLjkyMDkgNC44NTU0NSAxMy45NDgxIDQuODA5NzZDMTMuOTc1NCA0Ljc2NDA4IDEzLjk5MjMgNC43MTM5MyAxMy45OTc5IDQuNjYyMjVDMTQuMDAzNSA0LjYxMDU2IDEzLjk5NzcgNC41NTgzOCAxMy45ODA4IDQuNTA4NzZDMTMuOTYzOSA0LjQ1OTEzIDEzLjkzNjMgNC40MTMwNiAxMy44OTk1IDQuMzczMjNDMTMuODYyOCA0LjMzMzQxIDEzLjgxNzYgNC4zMDA2MyAxMy43NjY3IDQuMjc2ODFDMTMuNzE1OCA0LjI1Mjk5IDEzLjY2MDEgNC4yMzg2MSAxMy42MDMgNC4yMzQ1MkMxMi41OTk3IDQuMTQ0MzIgMTEuNTk0MiA0LjA3NTU1IDEwLjU4NzMgNC4wMjgyNkMxMC41ODYzIDQuMDE1OTUgMTAuNTg0NSA0LjAwMzY5IDEwLjU4MjEgMy45OTE1NEwxMC40NDY4IDMuMjYzMzZMMTAuNDQwOCAzLjIzMjExQzEwLjQwMDMgMy4wMDE2MyAxMC4zMzk5IDIuNjY1NjcgMTAuMDk0MyAyLjQwOTRDOS44MTMzMyAyLjExNDg1IDkuMzc4MDggMiA4LjgwMjM0IDJINy4xODExNEM2LjYxMjMgMiA2LjE3NzA1IDIuMTA2MjYgNS44OTM0OSAyLjM5ODQ2QzUuNjQ4NzEgMi42NTAwNCA1LjU4NzUyIDIuOTg0NDQgNS41NDQ0MiAzLjIxODgzTDUuNTM3NTMgMy4yNTcxMUw1LjQwMTM1IDMuOTkxNTRaTTQuMTgzNTEgNi4zNzA2QzQuMTc2MiA2LjI2NzIgNC4xMjM4NyA2LjE3MDY3IDQuMDM4MDQgNi4xMDIyNEMzLjk1MjIxIDYuMDMzODEgMy44Mzk5MSA1Ljk5OTEgMy43MjU4NSA2LjAwNTczQzMuNjExNzkgNi4wMTIzNiAzLjUwNTMgNi4wNTk3OSAzLjQyOTgyIDYuMTM3NkMzLjM1NDMzIDYuMjE1NCAzLjMxNjA0IDYuMzE3MiAzLjMyMzM1IDYuNDIwNkwzLjcyNDk5IDEyLjA2OTRWMTIuMDcxN0wzLjcyNTg1IDEyLjA4MTFDMy43NDMwOSAxMi4yOTI5IDMuNzYwMzMgMTIuNTIzMyAzLjgwNzczIDEyLjczNzRDMy44NTY4NiAxMi45NTg1IDMuOTQzMDQgMTMuMTkwNiA0LjExNjI4IDEzLjM5NTNDNC40NzkxNCAxMy44MjI2IDUuMDk4ODMgMTQgNi4wMDU1MyAxNEg5Ljk3ODgxQzEwLjg4NDcgMTQgMTEuNTA0MyAxMy44MjI2IDExLjg2NjMgMTMuMzk1M0MxMi4wNDA0IDEzLjE5MDYgMTIuMTI2NiAxMi45NTg1IDEyLjE3NTggMTIuNzM3NEMxMi4yMjMyIDEyLjUyMzMgMTIuMjQxMyAxMi4yOTI5IDEyLjI1NzYgMTIuMDgxMVYxMi4wNjk0TDEyLjY2MDEgNi40MjA2QzEyLjY2MzggNi4zNjk0IDEyLjY1NjIgNi4zMTgwNiAxMi42Mzc5IDYuMjY5NUMxMi42MTk3IDYuMjIwOTQgMTIuNTkxIDYuMTc2MTIgMTIuNTUzNyA2LjEzNzZDMTIuNTE2MyA2LjA5OTA3IDEyLjQ3MDkgNi4wNjc2IDEyLjQyMDEgNi4wNDQ5N0MxMi4zNjkzIDYuMDIyMzUgMTIuMzE0MSA2LjAwOTAxIDEyLjI1NzYgNi4wMDU3M0MxMi4yMDEyIDYuMDAyNDUgMTIuMTQ0NSA2LjAwOTI4IDEyLjA5MDkgNi4wMjU4NEMxMi4wMzc0IDYuMDQyNCAxMS45ODc5IDYuMDY4MzYgMTEuOTQ1NCA2LjEwMjI0QzExLjkwMjkgNi4xMzYxMiAxMS44NjgyIDYuMTc3MjYgMTEuODQzMyA2LjIyMzNDMTEuODE4MyA2LjI2OTM1IDExLjgwMzYgNi4zMTk0IDExLjggNi4zNzA2TDExLjM5ODMgMTIuMDE3MVYxMi4wMTc4QzExLjM4MTEgMTIuMjQzNiAxMS4zNjU2IDEyLjQyNDEgMTEuMzMwMiAxMi41ODM1QzExLjMxMDQgMTIuNzA0MiAxMS4yNjAzIDEyLjgxOTEgMTEuMTgzNyAxMi45MTk1QzExLjA2OTEgMTMuMDUzOCAxMC43OTc2IDEzLjIxODcgOS45Nzc5NSAxMy4yMTg3SDYuMDA0NjdDNS4xODU4OCAxMy4yMTg3IDQuOTE0MzkgMTMuMDUzOCA0LjgwMDYyIDEyLjkxODdDNC43MjMzOSAxMi44MTg1IDQuNjcyNjYgMTIuNzAzNSA0LjY1MjM3IDEyLjU4MjdDNC42MTcxNiAxMi4zOTU5IDQuNTk0NzEgMTIuMjA3MiA0LjU4NTE1IDEyLjAxNzhMNC4xODM1MSA2LjM3MDZaTTYuNTI3ODMgMTAuNTI0QzYuNTI3ODMgMTAuNDIwNCA2LjU3MzI0IDEwLjMyMSA2LjY1NDA1IDEwLjI0NzhDNi43MzQ4NyAxMC4xNzQ1IDYuODQ0NDggMTAuMTMzMyA2Ljk1ODc3IDEwLjEzMzNIOS4wMTg2N0M5LjEzMjk3IDEwLjEzMzMgOS4yNDI1OCAxMC4xNzQ1IDkuMzIzNCAxMC4yNDc4QzkuNDA0MjEgMTAuMzIxIDkuNDQ5NjIgMTAuNDIwNCA5LjQ0OTYyIDEwLjUyNEM5LjQ0OTYyIDEwLjYyNzYgOS40MDQyMSAxMC43MjcgOS4zMjM0IDEwLjgwMDJDOS4yNDI1OCAxMC44NzM1IDkuMTMyOTcgMTAuOTE0NiA5LjAxODY3IDEwLjkxNDZINi45NTg3N0M2LjkwMjE4IDEwLjkxNDYgNi44NDYxNCAxMC45MDQ1IDYuNzkzODYgMTAuODg0OUM2Ljc0MTU4IDEwLjg2NTMgNi42OTQwNyAxMC44MzY1IDYuNjU0MDUgMTAuODAwMkM2LjYxNDA0IDEwLjc2MzkgNi41ODIyOSAxMC43MjA5IDYuNTYwNjQgMTAuNjczNUM2LjUzODk4IDEwLjYyNjEgNi41Mjc4MyAxMC41NzUzIDYuNTI3ODMgMTAuNTI0Wk02LjQ0NTA5IDcuODg5NDVDNi4zMzA4IDcuODg5NDUgNi4yMjExOSA3LjkzMDYgNi4xNDAzNyA4LjAwMzg2QzYuMDU5NTUgOC4wNzcxMyA2LjAxNDE1IDguMTc2NDkgNi4wMTQxNSA4LjI4MDFDNi4wMTQxNSA4LjM4MzcgNi4wNTk1NSA4LjQ4MzA3IDYuMTQwMzcgOC41NTYzM0M2LjIyMTE5IDguNjI5NTkgNi4zMzA4IDguNjcwNzUgNi40NDUwOSA4LjY3MDc1SDkuNTM5MjVDOS42NTM1NSA4LjY3MDc1IDkuNzYzMTYgOC42Mjk1OSA5Ljg0Mzk3IDguNTU2MzNDOS45MjQ3OSA4LjQ4MzA3IDkuOTcwMTkgOC4zODM3IDkuOTcwMTkgOC4yODAxQzkuOTcwMTkgOC4xNzY0OSA5LjkyNDc5IDguMDc3MTMgOS44NDM5NyA4LjAwMzg2QzkuNzYzMTYgNy45MzA2IDkuNjUzNTUgNy44ODk0NSA5LjUzOTI1IDcuODg5NDVINi40NDUwOVoiIGZpbGw9IiM1QzVGNjYiLz4KPC9zdmc+";
|
|
2
|
+
export {
|
|
3
|
+
M as default
|
|
4
|
+
};
|