@glodon-aiot/dataset-annotation 3.13.0-alpha.29 → 3.14.0-alpha.30
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/es/components/DetectionAnnotation/components/LabelMaker/RectLabel.mjs +151 -135
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/index.mjs +244 -218
- package/dist/es/components/VLMAnnotation/RegionItem.mjs +135 -59
- package/dist/es/components/VLMAnnotation/TextAnnotationPanel.mjs +73 -62
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useDeleteRegion.mjs +55 -40
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useDrawingMode.mjs +291 -162
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useOCRControl.mjs +100 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useOCRRecognition.mjs +88 -55
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionBoundaryCheck.mjs +103 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionLoader.mjs +123 -91
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionSelection.mjs +42 -39
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionUpdate.mjs +55 -60
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/icons/ai.svg.mjs +4 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/icons/error.svg.mjs +4 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/icons/loading.svg.mjs +4 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/icons/star.svg.mjs +4 -0
- package/dist/es/components/VLMAnnotation/VLMLabelMaker/index.mjs +512 -387
- package/dist/es/components/VLMAnnotation/constants.mjs +39 -32
- package/dist/es/components/VLMAnnotation/index.mjs +187 -150
- package/dist/es/index.mjs +1 -1
- package/dist/lib/index.js +4 -4
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useDeleteRegion.d.ts +1 -0
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useDrawingMode.d.ts +3 -1
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useOCRControl.d.ts +16 -0
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useOCRRecognition.d.ts +3 -2
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionBoundaryCheck.d.ts +31 -0
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionLoader.d.ts +5 -1
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/hooks/useRegionSelection.d.ts +2 -1
- package/dist/src/components/VLMAnnotation/VLMLabelMaker/index.d.ts +2 -2
- package/dist/src/components/VLMAnnotation/constants.d.ts +19 -3
- package/dist/src/components/VLMAnnotation/index.d.ts +1 -1
- package/dist/src/components/VLMAnnotation/types.d.ts +15 -0
- package/package.json +2 -2
|
@@ -1,40 +1,41 @@
|
|
|
1
|
-
import { useEffect as
|
|
2
|
-
import { fabric as
|
|
3
|
-
import { SELECTED_RECT_FILL_COLOR as L, CONTROL_POINT_COLOR as
|
|
4
|
-
const
|
|
1
|
+
import { useEffect as E } from "react";
|
|
2
|
+
import { fabric as a } from "fabric";
|
|
3
|
+
import { SELECTED_RECT_FILL_COLOR as L, CONTROL_POINT_COLOR as g, CONTROL_POINT_SIZE as A, TRANSPARENT_FILL as k, BASE_STROKE_WIDTH as R } from "../../constants.mjs";
|
|
4
|
+
const b = ({
|
|
5
5
|
canvas: e,
|
|
6
6
|
onRegionSelect: o,
|
|
7
7
|
createDeleteControl: n,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
createOCRControl: s,
|
|
9
|
+
textLayersMapRef: h,
|
|
10
|
+
rectMapRef: i
|
|
10
11
|
}) => {
|
|
11
|
-
|
|
12
|
+
E(() => {
|
|
12
13
|
if (!e)
|
|
13
14
|
return;
|
|
14
|
-
const
|
|
15
|
+
const f = () => {
|
|
15
16
|
const t = /* @__PURE__ */ new Set();
|
|
16
|
-
return
|
|
17
|
+
return h.current.forEach((r) => {
|
|
17
18
|
r.forEach((l) => {
|
|
18
19
|
t.add(l);
|
|
19
20
|
});
|
|
20
21
|
}), t;
|
|
21
|
-
},
|
|
22
|
-
const t =
|
|
22
|
+
}, d = () => {
|
|
23
|
+
const t = f();
|
|
23
24
|
e.getObjects().forEach((r) => {
|
|
24
|
-
r instanceof
|
|
25
|
-
fill:
|
|
25
|
+
r instanceof a.Rect && !t.has(r) && r.set({
|
|
26
|
+
fill: k
|
|
26
27
|
// 移除填充色
|
|
27
28
|
});
|
|
28
29
|
});
|
|
29
|
-
},
|
|
30
|
-
|
|
30
|
+
}, C = () => {
|
|
31
|
+
d();
|
|
31
32
|
const t = e.getActiveObject();
|
|
32
|
-
if (t && t instanceof
|
|
33
|
-
if (
|
|
33
|
+
if (t && t instanceof a.Rect) {
|
|
34
|
+
if (f().has(t)) {
|
|
34
35
|
e.discardActiveObject(), e.renderAll();
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
|
-
const l = e.getZoom(),
|
|
38
|
+
const l = e.getZoom(), u = R / l;
|
|
38
39
|
t.set({
|
|
39
40
|
hasRotatingPoint: !1,
|
|
40
41
|
lockRotation: !0,
|
|
@@ -44,7 +45,7 @@ const j = ({
|
|
|
44
45
|
// 选中时添加填充色
|
|
45
46
|
strokeUniform: !0,
|
|
46
47
|
// 确保边框宽度不受缩放影响
|
|
47
|
-
strokeWidth:
|
|
48
|
+
strokeWidth: u,
|
|
48
49
|
// 确保边框宽度一致
|
|
49
50
|
objectCaching: !1,
|
|
50
51
|
// 禁用缓存,避免缩放时边框变虚
|
|
@@ -52,35 +53,37 @@ const j = ({
|
|
|
52
53
|
noScaleCache: !1,
|
|
53
54
|
cornerStyle: "circle",
|
|
54
55
|
// 设置控制点为圆形
|
|
55
|
-
cornerColor:
|
|
56
|
+
cornerColor: g,
|
|
56
57
|
// 设置控制点为紫色(填充色)
|
|
57
|
-
cornerSize:
|
|
58
|
+
cornerSize: A,
|
|
58
59
|
// 设置控制点大小(默认12,这里设置为6使其更小)
|
|
59
60
|
transparentCorners: !1
|
|
60
61
|
// 不透明,显示填充颜色
|
|
61
|
-
}), t.controls && t.controls.mtr && delete t.controls.mtr, t.controls.deleteControl || (t.controls.deleteControl = n()), e.renderAll();
|
|
62
|
-
const c =
|
|
62
|
+
}), t.controls && t.controls.mtr && delete t.controls.mtr, t.controls.deleteControl || (t.controls.deleteControl = n()), t.controls.ocrControl || (t.controls.ocrControl = s()), e.renderAll();
|
|
63
|
+
const c = i.current.get(t);
|
|
63
64
|
c && o && o(c);
|
|
64
65
|
}
|
|
65
|
-
},
|
|
66
|
-
|
|
66
|
+
}, m = () => {
|
|
67
|
+
d();
|
|
67
68
|
const t = e.getActiveObject();
|
|
68
|
-
if (t && t instanceof
|
|
69
|
-
if (
|
|
69
|
+
if (t && t instanceof a.Rect) {
|
|
70
|
+
if (f().has(t)) {
|
|
70
71
|
e.discardActiveObject(), e.renderAll();
|
|
71
72
|
return;
|
|
72
73
|
}
|
|
73
|
-
const l = e.getZoom(),
|
|
74
|
+
const l = e.getZoom(), u = R / l;
|
|
74
75
|
t.set({
|
|
75
76
|
hasRotatingPoint: !1,
|
|
76
77
|
lockRotation: !0,
|
|
77
78
|
lockUniScaling: !1,
|
|
78
79
|
// 允许非等比缩放,控制点跟随鼠标
|
|
80
|
+
lockScalingFlip: !0,
|
|
81
|
+
// 禁止缩放时翻转
|
|
79
82
|
fill: L,
|
|
80
83
|
// 选中时添加填充色
|
|
81
84
|
strokeUniform: !0,
|
|
82
85
|
// 确保边框宽度不受缩放影响
|
|
83
|
-
strokeWidth:
|
|
86
|
+
strokeWidth: u,
|
|
84
87
|
// 确保边框宽度一致
|
|
85
88
|
objectCaching: !1,
|
|
86
89
|
// 禁用缓存,避免缩放时边框变虚
|
|
@@ -88,26 +91,26 @@ const j = ({
|
|
|
88
91
|
noScaleCache: !1,
|
|
89
92
|
cornerStyle: "circle",
|
|
90
93
|
// 设置控制点为圆形
|
|
91
|
-
cornerColor:
|
|
94
|
+
cornerColor: g,
|
|
92
95
|
// 设置控制点为紫色(填充色)
|
|
93
|
-
cornerSize:
|
|
96
|
+
cornerSize: A,
|
|
94
97
|
// 设置控制点大小(默认12,这里设置为6使其更小)
|
|
95
98
|
transparentCorners: !1
|
|
96
99
|
// 不透明,显示填充颜色
|
|
97
100
|
});
|
|
98
101
|
const c = t;
|
|
99
|
-
c.uniformScaling = !1, t.controls && t.controls.mtr && delete t.controls.mtr, t.controls.deleteControl || (t.controls.deleteControl = n()), e.renderAll();
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
+
c.uniformScaling = !1, t.controls && t.controls.mtr && delete t.controls.mtr, t.controls.deleteControl || (t.controls.deleteControl = n()), t.controls.ocrControl || (t.controls.ocrControl = s()), e.renderAll();
|
|
103
|
+
const S = i.current.get(t);
|
|
104
|
+
S && o && o(S);
|
|
102
105
|
}
|
|
103
106
|
}, O = () => {
|
|
104
|
-
|
|
107
|
+
d(), e.renderAll(), o && o(null);
|
|
105
108
|
};
|
|
106
|
-
return e.on("selection:created",
|
|
107
|
-
e.off("selection:created",
|
|
109
|
+
return e.on("selection:created", C), e.on("selection:updated", m), e.on("selection:cleared", O), () => {
|
|
110
|
+
e.off("selection:created", C), e.off("selection:updated", m), e.off("selection:cleared", O);
|
|
108
111
|
};
|
|
109
|
-
}, [e, o, n,
|
|
112
|
+
}, [e, o, n, s, h, i]);
|
|
110
113
|
};
|
|
111
114
|
export {
|
|
112
|
-
|
|
115
|
+
b as useRegionSelection
|
|
113
116
|
};
|
|
@@ -1,103 +1,98 @@
|
|
|
1
|
-
import { useCallback as
|
|
2
|
-
import { fabric as
|
|
3
|
-
import { BASE_STROKE_WIDTH as
|
|
4
|
-
const
|
|
5
|
-
canvas:
|
|
1
|
+
import { useCallback as P } from "react";
|
|
2
|
+
import { fabric as Q } from "fabric";
|
|
3
|
+
import { BASE_STROKE_WIDTH as R } from "../../constants.mjs";
|
|
4
|
+
const N = ({
|
|
5
|
+
canvas: u,
|
|
6
6
|
image: r,
|
|
7
|
-
draggable:
|
|
8
|
-
canvasToImageCoords:
|
|
9
|
-
imageToCanvasCoords:
|
|
10
|
-
cropRegionImage:
|
|
11
|
-
onChange:
|
|
7
|
+
draggable: p,
|
|
8
|
+
canvasToImageCoords: W,
|
|
9
|
+
imageToCanvasCoords: x,
|
|
10
|
+
cropRegionImage: y,
|
|
11
|
+
onChange: l,
|
|
12
12
|
onRegionChange: g,
|
|
13
|
-
performOCRIfNeeded:
|
|
14
|
-
updateTextLayers:
|
|
13
|
+
performOCRIfNeeded: O,
|
|
14
|
+
updateTextLayers: w,
|
|
15
15
|
rectMapRef: d,
|
|
16
|
-
regionNameTextMapRef:
|
|
17
|
-
ocrLoadingIconMapRef:
|
|
16
|
+
regionNameTextMapRef: H,
|
|
17
|
+
ocrLoadingIconMapRef: A
|
|
18
18
|
}) => ({
|
|
19
|
-
updateRegionShapeAndImage:
|
|
20
|
-
if (!
|
|
19
|
+
updateRegionShapeAndImage: P((t) => {
|
|
20
|
+
if (!u || !r || p)
|
|
21
21
|
return;
|
|
22
|
-
const
|
|
22
|
+
const U = u.getZoom(), _ = R / U;
|
|
23
23
|
t.set({
|
|
24
24
|
strokeUniform: !0,
|
|
25
|
-
strokeWidth:
|
|
25
|
+
strokeWidth: _,
|
|
26
26
|
objectCaching: !1,
|
|
27
27
|
statefullCache: !1,
|
|
28
28
|
noScaleCache: !1
|
|
29
29
|
});
|
|
30
|
-
const
|
|
31
|
-
if (!(
|
|
30
|
+
const h = r.getElement();
|
|
31
|
+
if (!(h != null && h.width) || !(h != null && h.height))
|
|
32
32
|
return;
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
let n = Y.x,
|
|
36
|
-
n < 0 && (
|
|
37
|
-
const
|
|
38
|
-
t.
|
|
39
|
-
left:
|
|
40
|
-
top:
|
|
41
|
-
width:
|
|
42
|
-
height:
|
|
43
|
-
scaleX:
|
|
44
|
-
|
|
45
|
-
scaleY: 1
|
|
46
|
-
// 重置缩放,使用实际尺寸
|
|
33
|
+
const b = h.width, X = h.height, Y = W(t.left, t.top), i = d.current.get(t);
|
|
34
|
+
if (i) {
|
|
35
|
+
let n = Y.x, c = Y.y, s = t.getScaledWidth(), o = t.getScaledHeight();
|
|
36
|
+
n < 0 && (s = s + n, n = 0), c < 0 && (o = o + c, c = 0), n + s > b && (s = b - n), c + o > X && (o = X - c), s = Math.max(0, s), o = Math.max(0, o), i.shape.x = n, i.shape.y = c, i.shape.width = s, i.shape.height = o;
|
|
37
|
+
const f = x(n, c), B = t.getScaledWidth(), D = t.getScaledHeight(), E = t.width || 1, F = t.height || 1, j = Math.abs(s - B) > 1e-3, k = Math.abs(o - D) > 1e-3, K = j ? 1 : t.scaleX || 1, q = k ? 1 : t.scaleY || 1, z = j ? s : E, G = k ? o : F;
|
|
38
|
+
t.set({
|
|
39
|
+
left: f.x,
|
|
40
|
+
top: f.y,
|
|
41
|
+
width: z,
|
|
42
|
+
height: G,
|
|
43
|
+
scaleX: K,
|
|
44
|
+
scaleY: q
|
|
47
45
|
});
|
|
48
|
-
const Z =
|
|
46
|
+
const Z = H.current.get(t);
|
|
49
47
|
if (Z) {
|
|
50
|
-
const e =
|
|
48
|
+
const e = u.getZoom();
|
|
51
49
|
Z.set({
|
|
52
|
-
left:
|
|
50
|
+
left: f.x,
|
|
53
51
|
// 与标注框左边对齐
|
|
54
|
-
top:
|
|
52
|
+
top: f.y,
|
|
55
53
|
// 下边缘与标注框上边缘对齐(因为 originY 是 'bottom')
|
|
56
54
|
scaleX: 1 / e,
|
|
57
55
|
// 反向缩放,抵消画布缩放
|
|
58
56
|
scaleY: 1 / e
|
|
59
57
|
// 反向缩放,抵消画布缩放
|
|
60
58
|
});
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
const
|
|
64
|
-
t.getScaledHeight(),
|
|
65
|
-
left:
|
|
59
|
+
const a = A.current.get(t);
|
|
60
|
+
if (a) {
|
|
61
|
+
const S = t.getScaledWidth();
|
|
62
|
+
t.getScaledHeight(), a.set({
|
|
63
|
+
left: f.x,
|
|
66
64
|
// top 位置由动画控制,这里不更新
|
|
67
65
|
scaleX: 1 / e,
|
|
68
66
|
// 反向缩放,抵消画布缩放,保持固定视觉粗细
|
|
69
67
|
scaleY: 1 / e
|
|
70
68
|
// 反向缩放,抵消画布缩放,保持固定视觉粗细
|
|
71
69
|
});
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
const m = a.getObjects();
|
|
71
|
+
if (m && m.length > 0) {
|
|
72
|
+
const J = S * e;
|
|
73
|
+
m.forEach((L) => {
|
|
74
|
+
L instanceof Q.Rect && L.set("width", J);
|
|
77
75
|
});
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
78
|
}
|
|
81
|
-
if (
|
|
79
|
+
if (i.textLayouts && i.textLayouts.length > 0 && w(t, i), g && g(i, "update"), y(i).then((e) => {
|
|
82
80
|
if (e) {
|
|
83
|
-
const
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
a(m);
|
|
88
|
-
}
|
|
89
|
-
w(h, "update");
|
|
81
|
+
const a = d.current.get(t);
|
|
82
|
+
if (a && (a.image = e, delete a.textLayouts, l)) {
|
|
83
|
+
const S = Array.from(d.current.values());
|
|
84
|
+
l(S);
|
|
90
85
|
}
|
|
91
86
|
}
|
|
92
87
|
}).catch((e) => {
|
|
93
88
|
console.error("Failed to crop region image:", e);
|
|
94
|
-
}),
|
|
89
|
+
}), l) {
|
|
95
90
|
const e = Array.from(d.current.values());
|
|
96
|
-
|
|
91
|
+
l(e);
|
|
97
92
|
}
|
|
98
93
|
}
|
|
99
|
-
}, [
|
|
94
|
+
}, [u, r, p, W, x, y, l, g, O, w, d, H, A])
|
|
100
95
|
});
|
|
101
96
|
export {
|
|
102
|
-
|
|
97
|
+
N as useRegionUpdate
|
|
103
98
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const M = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMTIgMTIiIHdpZHRoPSIxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBkPSJtMCAwaDEydjEyaC0xMnoiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZD0ibTQuMDkyNzM0MTIgMi42NTM4MDg1OWMtLjE0OTQ0ODctLjAwMDAwOTgzLS4yODMzNjIyLjA5MjMxNjgxLS4zMzY0OTk5LjIzMTk5OTk5bC0yLjUxNDQ5OTg2IDYuNjI2NTAwNTFjLS4wODg3MTQyNS4yMzUzMDY3LjA4NTAyNjM4LjQ4Njc1MjUuMzM2NTAwMDIuNDg3aC43NzU5OTk4NGMuMTQ5MjY2Mi0uMDAwMTk3LjI4MjkyODItLjA5MjQ4NjkuMzM2LS4yMzIwMDA0bC42MzExMjY0LTEuNjYyODkwOWgzLjcxNTM5M2wtLjY2NzUwMDUtMS40MTM0OTk4aC0yLjUxMTQxOTNsMS40NDc0MDA2LTMuODEzNjA5MzNjLjA0MDk5OTktLjEwODAwMDA0LS4wMzktLjIyMzUwMDA3LS4xNTQwMDAzLS4yMjM1MDAwN3oiIGZpbGw9IiM5YzI0ZjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Im04Ljg4MDI1NDMxIDIuNjI0MTU4MjZjLS4xOTE5MDQ2LS4wMDUzMTQzNS0uMzUxMjM1LjE0NzA0OTQzLS4zNTQ1MDAzLjMzODk5OTkzbC4wMDY1MDAyIDYuNjk4NDk5NjVjLjAwMzgyOS4xOTAzNTY3LjE2MTE0LjM0MTYyNjEuMzUxNTAwNS4zMzc5OTk4aC44NDI5OTk1Yy4xOTA1NTIyLjAwMzYyNDkuMzQ3OTQzOC0uMTQ3OTQ2NC4zNTE1LS4zMzg0OTkxdi02LjY5MzAwMDM1Yy0uMDAzNTU5MS0uMTg5NTYxOTEtLjE1OTQxNzEtLjM0MDczMTIxLS4zNDg5OTk1LS4zMzg0OTk5N3ptLTMuMTc0MDAwNC4yNjA5OTk4NmMtLjA1MzA3MjQtLjEzOTUxMjQyLS4xODY3MzM2LS4yMzE4MDI1OC0uMzM2LS4yMzE5OTk5OWgtMS4yOTc1bDIuNjk5OTk5OCA3LjExMzUwMDYxYy4wNTMwNzI5LjEzOTUxMjEuMTg2NzM0Ny4yMzE4MDMuMzM2LjIzMTk5OWguNzc2MDAwNWMuMjUxNzgxNC0uMDAwMTE0NS40MjU2NzMtLjI1MjAzNzYuMzM2NDk5Ny0uNDg3NDk5N3oiIGZpbGw9IiNkN2E4ZmYiLz48L2c+PC9zdmc+";
|
|
2
|
+
export {
|
|
3
|
+
M as default
|
|
4
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const I = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMTIgMTIiIHdpZHRoPSIxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iNS41IiBmaWxsPSIjZmY0ZDRmIiBzdHJva2U9Im5vbmUiLz48cGF0aCBkPSJNNiAzLjV2M002IDguNWguMDEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPgoK";
|
|
2
|
+
export {
|
|
3
|
+
I as default
|
|
4
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const M = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHZpZXdCb3g9IjAgMCA2IDYiPjxkZWZzPjxjbGlwUGF0aCBpZD0ibWFzdGVyX3N2ZzBfOTg4XzE2NzIwOSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjAiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyBjbGlwLXBhdGg9InVybCgjbWFzdGVyX3N2ZzBfOTg4XzE2NzIwOSkiPjxwYXRoIGQ9Ik0yLjUwMTk1MzA1NSwxLjIyMDYyNTJDMi4zOTQwODQ4ODYsMS4yMjA2MjUyLDIuMzA2NjQwNDAxNDgyNTcsMS4xMzMxODA3LDIuMzA2NjQwNjI1LDEuMDI1MzEyOEwyLjMwNjY0MDYyNSwwLjE5NTMxMjU3QzIuMzA2NjQwNjI1LDAuMDg3NDQ0MzgsMi4zOTQwODQ4ODYsMCwyLjUwMTk1MzA1NSwwQzIuNjA5ODIxMjM1LDAsMi42OTcyNjU3MTUsMC4wODc0NDQzOCwyLjY5NzI2NTcxNSwwLjE5NTMxMjU3TDIuNjk3MjY1NzE1LDEuMDI1MzEyOEMyLjY5NzI2NTcxNSwxLjEzMzQzNzgsMi42MDk3NjU3OTUsMS4yMjA2MjUyLDIuNTAxOTUzMDU1LDEuMjIwNjI1MloiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnBhc3N0aHJvdWdoIi8+PHBhdGggZD0iTTEuODYxNzAyMzg1LDEuMzkyMTAyMzMxMjVDMS43Njg0MDE5ODUwMDAwMDAxLDEuNDQ1OTEzOTMxMjUsMS42NDkxNDkxNDUsMS40MTQwMzg1MzEyNSwxLjU5NTEzOTk1NSwxLjMyMDg1MjQzMTI1TDEuMTgwMTM5Nzk5LDAuNjAyMTAyMzExMjVDMS4xMzIxMTQ2MTUsMC41MDk0MzY0NzEyNSwxLjE2NTQzMTIzMjIsMC4zOTUzODcwMzgyNSwxLjI1NTc4NzQ5MiwwLjM0MzE0NTk4MzI1QzEuMzQ2MTQzNzU1LDAuMjkwOTA0OTMwMjQ5OTk5OTcsMS40NjE2MDYzNTUsMC4zMTg5MzQ5MDk5NSwxLjUxNzk1MjQ0NSwwLjQwNjc4OTc3MjI1TDEuOTMyOTUyMzQ1LDEuMTI1NTM5NjYxMjVDMS45ODY5NDg3ODUsMS4yMTg4MTU3NDEyNSwxLjk1NTAzNjU4NSwxLjMzODIwNjMzMTI1LDEuODYxNzAyMzg1LDEuMzkyMTAyMzMxMjVaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiIHN0eWxlPSJvcGFjaXR5OjAuODk5OTk5OTc2MTU4MTQyMTsiLz48cGF0aCBkPSJNMS4zOTI1MDc1MTI1LDEuODYxMTk2ODcyNDk5OTk5OUMxLjMzODYxMTUxMjUsMS45NTQ1MzEyNTI1LDEuMjE5MjIwOTkyNSwxLjk4NjQ0MzIyMjUwMDAwMDIsMS4xMjU5NDQ5MTI1LDEuOTMyNDQ2ODMyNTAwMDAwMkwwLjQwNzE5NDkwNDUsMS41MTc0NDY5NjI1QzAuMzEzODA5MDk2OCwxLjQ2MzU1OTYwMjUsMC4yODE4MzU3MTA1LDEuMzQ0MTQyMDYyNSwwLjMzNTgwMTk4MzUsMS4yNTA4MDE4NTM1QzAuMzg5NzY4MzYyNSwxLjE1NzQ2MTY0MzIsMC41MDkyMTI4MzI1LDEuMTI1NTg5MTc1NSwwLjYwMjUwNzQ0MjUsMS4xNzk2MzQzNDk1TDEuMzIxMjU3NjEyNSwxLjU5NDYzNDQ3MjUwMDAwMDFDMS40MTQzODI2MTI1LDEuNjQ4Mzg0MzYyNDk5OTk5OSwxLjQ0NjI1NzYxMjUsMS43NjgwNzE4OTI1LDEuMzkyNTA3NTEyNSwxLjg2MTE5Njg3MjQ5OTk5OTlaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiIHN0eWxlPSJvcGFjaXR5OjAuODUwMDAwMDIzODQxODU3OTsiLz48cGF0aCBkPSJNMS4yMjA2MjUyLDIuNTAwOTc2NDkyNUMxLjIyMDYyNTIsMi42MDg3ODg3OTI1LDEuMTMzMTI1MywyLjY5NjI4OTE1MjUsMS4wMjUzMTI4LDIuNjk2Mjg5MTUyNUwwLjE5NTMxMjU3LDIuNjk2Mjg5MTUyNUMwLjA4NzQ0NDM4LDIuNjk2Mjg5MTUyNSwwLDIuNjA4ODQ0NjcyNSwwLDIuNTAwOTc2NDkyNUMwLDIuMzkzMTA4MzIzNSwwLjA4NzQ0NDM4LDIuMzA1NjY0MDYyNSwwLjE5NTMxMjU3LDIuMzA1NjY0MDYyNUwxLjAyNTMxMjgsMi4zMDU2NjQwNjI1QzEuMTMzNDM3OCwyLjMwNTY2NDA2MjUsMS4yMjA2MjUyLDIuMzkzMTYzOTc5NSwxLjIyMDYyNTIsMi41MDA5NzY0OTI1WiIgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBzdHlsZT0ib3BhY2l0eTowLjgwMDAwMDAxMTkyMDkyOTsiLz48cGF0aCBkPSJNMS4zOTI1OTA2MTI1LDMuMTM5NTEyMzk3NUMxLjQ0NjQwMjExMjUsMy4yMzI4MTI1OTc1LDEuNDE0NTI2OTEyNSwzLjM1MjA2NTM4NzUsMS4zMjEzNDA4MTI1LDMuNDA2MDc0ODE3NUwwLjYwMjU5MDcxMjUwMDAwMDEsMy44MjEwNzQ2Njc1QzAuNTA5OTI0OTgyNTAwMDAwMSwzLjg2OTEwMDA5NzUsMC4zOTU4NzU0MjQ1LDMuODM1NzgzNDc3NSwwLjM0MzYzNDM3NjUsMy43NDU0MjcwMDc1QzAuMjkxMzkzMjExNDk5OTk5OTcsMy42NTUwNzA5NTc1LDAuMzE5NDIzMTkxMiwzLjUzOTYwODE0NzUsMC40MDcyNzgxNjU1LDMuNDgzMjYyMDg3NUwxLjEyNjAyODEyMjUsMy4wNjgyNjIxOTE1QzEuMjE5MzA0MTQyNSwzLjAxNDI2NjE5MTUsMS4zMzg2OTQzMTI1LDMuMDQ2MTc4MjIxNywxLjM5MjU5MDYxMjUsMy4xMzk1MTIzOTc1WiIgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBzdHlsZT0ib3BhY2l0eTowLjc1OyIvPjxwYXRoIGQ9Ik0xLjg2MTE2MjI0MjQ5OTk5OTgsMy42MDcyMTAyNTA1QzEuOTU0NDk2MzIyNSwzLjY2MTEwNjEwOTUsMS45ODY0MDg2NTI1LDMuNzgwNDk2NjA3NSwxLjkzMjQxMjIwMjUwMDAwMDEsMy44NzM3NzI2NDc1TDEuNTE3NDEyMzAyNSw0LjU5MjUyMjg4NzQ5OTk5OTVDMS40NjM1MDUwNjI1LDQuNjg1ODY1OTg3NSwxLjM0NDExODU4MjUsNC43MTc4MDc5ODc1MDAwMDA1LDEuMjUwODAxODUzNSw0LjY2Mzg1NTI4NzVDMS4xNTc0ODUzMzYxLDQuNjA5OTAyMjg3NSwxLjEyNTYwMTI0NTUsNC40OTA1MDAxNDc1LDEuMTc5NTk5NzA0NSw0LjM5NzIxMDIzNzQ5OTk5OTVMMS41OTQ1OTk4MTI1LDMuNjc4NDYwMDA5NUMxLjY0ODYwOTIyMjUsMy41ODUyNzM4MDIzLDEuNzY3ODYxNzgyNSwzLjU1MzM5ODQyODUsMS44NjExNjIyNDI0OTk5OTk4LDMuNjA3MjEwMjUwNVoiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIgc3R5bGU9Im9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzE7Ii8+PHBhdGggZD0iTTIuNTAxOTUzMDU1LDMuNzc5Mjk2ODc1QzIuNjA5NzY1MzU1LDMuNzc5Mjk2ODc1LDIuNjk3MjY1NzE1LDMuODY2Nzk2NzkyLDIuNjk3MjY1NzE1LDMuOTc0NjA5NTM1TDIuNjk3MjY1NzE1LDQuODA0NjA5Nzc1QzIuNjk3MjY1NzE1LDQuOTEyNDc3OTc1LDIuNjA5ODIxMjM1LDQuOTk5OTIyNDc1LDIuNTAxOTUzMDU1LDQuOTk5OTIyNDc1QzIuMzk0MDg0ODg2LDQuOTk5OTIyNDc1LDIuMzA2NjQwNjI1LDQuOTEyNDc3OTc1LDIuMzA2NjQwNjI1LDQuODA0NjA5Nzc1TDIuMzA2NjQwNjI1LDMuOTc0NjA5NTM1QzIuMzA2NjQwNjI1LDMuODY2NDg0MzE0LDIuMzk0MTQwNTQyLDMuNzc5Mjk2ODc1LDIuNTAxOTUzMDU1LDMuNzc5Mjk2ODc1WiIgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBzdHlsZT0ib3BhY2l0eTowLjY0OTk5OTk3NjE1ODE0MjE7Ii8+PHBhdGggZD0iTTMuMTM5NTEyMzk3NSwzLjYwNzIxMDI1MDVDMy4yMzI4MTI1OTc1LDMuNTUzMzk4ODc1NSwzLjM1MjA2NTM4NzUsMy41ODUyNzQyNDkzLDMuNDA2MDc0ODE3NSwzLjY3ODQ2MDQ1NjVMMy44MjEwNzQ2Njc1LDQuMzk3MjEwNzE3NUMzLjg2OTEwMDA5NzUsNC40ODk4NzY1Njc1LDMuODM1NzgzNDc3NSw0LjYwMzkyNTc4NzUsMy43NDU0MjcwMDc1LDQuNjU2MTY3Mjg3NUMzLjY1NTA3MDU0NzUwMDAwMDMsNC43MDg0MDgxODc1LDMuNTM5NjA4MTQ3NSw0LjY4MDM3ODE4NzUsMy40ODMyNjIwODc1LDQuNTkyNTIzMjg3NUwzLjA2ODI2MjE5MTUsMy44NzM3NzMwOTc1QzMuMDE0MjY2MTkxNSwzLjc4MDQ5NzA1NzUsMy4wNDYxNzgyMjE3LDMuNjYxMTA2NTU2NSwzLjEzOTUxMjM5NzUsMy42MDcyMTAyNTA1WiIgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBzdHlsZT0ib3BhY2l0eTowLjYwMDAwMDAyMzg0MTg1Nzk7Ii8+PHBhdGggZD0iTTMuNjEwMTM5OTM4LDMuMTM5NTEyMzk3NUMzLjY2NDAzNTc5NywzLjA0NjE3ODIyMTcsMy43ODM0MjYyOTUsMy4wMTQyNjU3NDQ1LDMuODc2NzAyMzM1LDMuMDY4MjYyMTkxNUw0LjU5NTQ1MjU3NDk5OTk5OTUsMy40ODMyNjIwODc1QzQuNjg4NzM2Njc0OTk5OTk5NSwzLjUzNzE5NTk0NzUsNC43MjA2MzYyNzUsMy42NTY1Mzk5MTc1LDQuNjY2NzAyMzc1LDMuNzQ5ODI0NDY3NUM0LjYxMjc2ODU3NTAwMDAwMDUsMy44NDMxMDkwNjc1LDQuNDkzNDI0NDc1LDMuODc1MDA4NTI3NSw0LjQwMDEzOTkyNDk5OTk5OTUsMy44MjEwNzQ2Njc1TDMuNjgxMzg5Njk3LDMuNDA2MDc0ODE3NUMzLjU4ODIwMzQ4OTgsMy4zNTIwNjUzODc1LDMuNTU2MzI4MTE2LDMuMjMyODEyNTk3NSwzLjYxMDEzOTkzOCwzLjEzOTUxMjM5NzVaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiIHN0eWxlPSJvcGFjaXR5OjAuNTUwMDAwMDExOTIwOTI5OyIvPjxwYXRoIGQ9Ik0zLjc4MDI3MzQzNzUsMi41MDA5NzY0OTI1QzMuNzgwMjczNDM3NSwyLjM5MzE2Mzk3OTUsMy44Njc3NzMzNTQ1LDIuMzA1NjY0MDYyNSwzLjk3NTU4NjA5NzUsMi4zMDU2NjQwNjI1TDQuODA1NTg2MzM3NSwyLjMwNTY2NDA2MjVDNC45MTM0NTQ1Mzc1LDIuMzA1NjY0MDYyNSw1LjAwMDg5OTAzNzUsMi4zOTMxMDgzMjM1LDUuMDAwODk5MDM3NSwyLjUwMDk3NjQ5MjVDNS4wMDA4OTkwMzc1LDIuNjA4ODQ0NjcyNSw0LjkxMzQ1NDUzNzUsMi42OTYyODkxNTI1LDQuODA1NTg2MzM3NSwyLjY5NjI4OTE1MjVMMy45NzU1ODYwOTc1LDIuNjk2Mjg5MTUyNUMzLjg2NzcxNzkyMTUsMi42OTYyODkxNTI1LDMuNzgwMjczNDM3NSwyLjYwODg0NDY3MjUsMy43ODAyNzM0Mzc1LDIuNTAwOTc2NDkyNVoiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIgc3R5bGU9Im9wYWNpdHk6MC41OyIvPjxwYXRoIGQ9Ik0zLjYxMDEzOTkzOCwxLjg2MDcyNTgyMjVDMy41NTYzMjg1NjMsMS43Njc0MjUxMjI1LDMuNTg4MjAzOTM2OCwxLjY0ODE3MjU4MjUsMy42ODEzOTAxNDQsMS41OTQxNjMzOTI1TDQuNDAwMTQwNDA1LDEuMTc5MTYzMjM2NUM0LjQ5MjgwNjI1NSwxLjEzMTEzNzgyOTUsNC42MDY4NTU0NzUsMS4xNjQ0NTQ2Njk3LDQuNjU5MDk2OTc1LDEuMjU0ODEwOTI5NUM0LjcxMTMzNzg3NSwxLjM0NTE2NzE5MjUsNC42ODMzMDc4NzUsMS40NjA2Mjk3OTI1LDQuNTk1NDUyOTc1LDEuNTE2OTc1ODgyNUwzLjg3NjcwMjc4NSwxLjkzMTk3NTc4MjVDMy43ODM0MjY3NDUsMS45ODU5NzIyMjI1LDMuNjY0MDM2MjQ0LDEuOTU0MDYwMDIyNSwzLjYxMDEzOTkzOCwxLjg2MDcyNTgyMjVaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiIHN0eWxlPSJvcGFjaXR5OjAuNDAwMDAwMDA1OTYwNDY0NTsiLz48cGF0aCBkPSJNMy4xMzk1MTIzOTc1LDEuMzkyODUyNjkzNzVDMy4wNDYxNzgyMjE3LDEuMzM4OTU2NzkzNzUsMy4wMTQyNjU3NDQ1LDEuMjE5NTY2MTAzNzUsMy4wNjgyNjIxOTE1LDEuMTI2MjkwMDIzNzVMMy40ODMyNjIwODc1LDAuNDA3NTQwMDE1NzVDMy41MzcxOTU5NDc1LDAuMzE0MjU1NjkyMDUsMy42NTY1Mzk5MTc1LDAuMjgyMzU1OTU0NzQ5OTk5OTcsMy43NDk4MjQ0Njc1LDAuMzM2MjkwMDQwNzVDMy44NDMxMDkwNjc1LDAuMzkwMjI0MDA5NzUsMy44NzUwMDg1Mjc1LDAuNTA5NTY4MTIzNzUsMy44MjEwNzQ2Njc1LDAuNjAyODUyNTUzNzVMMy40MDYwNzQ4MTc1LDEuMzIxNjAyNjkzNzVDMy4zNTIwNjU4NTc1LDEuNDE0Nzg4OTkzNzUsMy4yMzI4MTMwNDc1LDEuNDQ2NjY0MjkzNzUsMy4xMzk1MTIzOTc1LDEuMzkyODUyNjkzNzVaIiBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjEiIHN0eWxlPSJvcGFjaXR5OjAuMzAwMDAwMDExOTIwOTI4OTY7Ii8+PC9nPjwvc3ZnPgoK";
|
|
2
|
+
export {
|
|
3
|
+
M as default
|
|
4
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const M = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8IS0tIOWkp+eahOaYn+aYn++8iOW3puS+p+S4reW/g++8iSAtLT4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLCA2KSBzY2FsZSgyLjIpIj4KICAgIDxwYXRoIGQ9Im0xLjMzMTkyOTcuMDkwOTA5MjRjLjAzMTQ3NTQtLjA1NTY0NjgzLjA5NjY4NTItLjA5MDkwOTI0LjE2ODExMzktLjA5MDkwOTI0LjA3MTQyODkgMCAuMTM2NjM3NC4wMzUyNjIyNy4xNjgxMTQuMDkwOTA5MjRsLjExMzIzNzcuMTk2NTQ3MTJjLjIxNzc2NDMuMzc3OTc0OS41Mzc0NDA3LjcwMzc4OTYzLjkzMjAyODQuOTUwOTg1MjRsLjIwODE4MjQuMTI5MjY3NGMuMTA0NTI2Mi4wNjUwMTE4LjEwNDUyNjIuMTk5NTcwNyAwIC4yNjQ1ODI3bC0uMjA3MzExMi4xMjkyNjc1Yy0uMzk1MjgzMi4yNDY5MTExLS43MTU0NDk0LjU3MzU0MjktLjkzMjg5OTYuOTUxNzQxM2wtLjExMzIzNzcuMTk1NzkwN2MtLjAzMTQ3NjYuMDU1NjQ2Ny0uMDk2Njg1MS4wOTA5MDg4LS4xNjgxMTQuMDkwOTA4OC0uMDcxNDI4NyAwLS4xMzY2Mzg1LS4wMzUyNjIxLS4xNjgxMTM5LS4wOTA5MDg4bC0uMTEzMjM3NS0uMTk2NTQ3Yy0uMjE2ODkzMy0uMzc3OTc1NS0uNTM3NDQwNjctLjcwMzc4OTctLjkzMjAyODctLjk1MDk4NTRsLS4yMDgxODIwMi0uMTI5MjY3NWMtLjEwNDY0MjM5LS4wNjQ4MTU3LS4xMDQ2NDIzOS0uMTk5NzY2NyAwLS4yNjQ1ODI2bC4yMDgxODIwMi0uMTI5MjY3NmMuMzk0OTY0MjUtLjI0NzAwMzAxLjcxNDgyMjctLjU3MzYyNzI4LjkzMjAyODctLjk1MTc0MDkxeiIgZmlsbD0iIzk0YmZmZiIvPgogIDwvZz4KICA8IS0tIOWwj+eahOaYn+aYn++8iOWPs+S4iuinku+8jOabtOmdoOi/keWkp+aYn+aYn++8iSAtLT4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjUsIDMuNSkgc2NhbGUoMS4yKSI+CiAgICA8cGF0aCBkPSJtMS4zMzE5Mjk3LjA5MDkwOTI0Yy4wMzE0NzU0LS4wNTU2NDY4My4wOTY2ODUyLS4wOTA5MDkyNC4xNjgxMTM5LS4wOTA5MDkyNC4wNzE0Mjg5IDAgLjEzNjYzNzQuMDM1MjYyMjcuMTY4MTE0LjA5MDkwOTI0bC4xMTMyMzc3LjE5NjU0NzEyYy4yMTc3NjQzLjM3Nzk3NDkuNTM3NDQwNy43MDM3ODk2My45MzIwMjg0Ljk1MDk4NTI0bC4yMDgxODI0LjEyOTI2NzRjLjEwNDUyNjIuMDY1MDExOC4xMDQ1MjYyLjE5OTU3MDcgMCAuMjY0NTgyN2wtLjIwNzMxMTIuMTI5MjY3NWMtLjM5NTI4MzIuMjQ2OTExMS0uNzE1NDQ5NC41NzM1NDI5LS45MzI4OTk2Ljk1MTc0MTNsLS4xMTMyMzc3LjE5NTc5MDdjLS4wMzE0NzY2LjA1NTY0NjctLjA5NjY4NTEuMDkwOTA4OC0uMTY4MTE0LjA5MDkwODgtLjA3MTQyODcgMC0uMTM2NjM4NS0uMDM1MjYyMS0uMTY4MTEzOS0uMDkwOTA4OGwtLjExMzIzNzUtLjE5NjU0N2MtLjIxNjg5MzMtLjM3Nzk3NTUtLjUzNzQ0MDY3LS43MDM3ODk3LS45MzIwMjg3LS45NTA5ODU0bC0uMjA4MTgyMDItLjEyOTI2NzVjLS4xMDQ2NDIzOS0uMDY0ODE1Ny0uMTA0NjQyMzktLjE5OTc2NjcgMC0uMjY0NTgyNmwuMjA4MTgyMDItLjEyOTI2NzZjLjM5NDk2NDI1LS4yNDcwMDMwMS43MTQ4MjI3LS41NzM2MjcyOC45MzIwMjg3LS45NTE3NDA5MXoiIGZpbGw9IiM5NGJmZmYiLz4KICA8L2c+Cjwvc3ZnPgo=";
|
|
2
|
+
export {
|
|
3
|
+
M as default
|
|
4
|
+
};
|