@labelbee/lb-components 1.20.0 → 1.21.0
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/assets/annotation/video/icon_timePoint.svg.js +1 -0
- package/dist/assets/annotation/video/icon_videoCut.svg.js +1 -0
- package/dist/assets/annotation/video/icon_videoCutting.svg.js +1 -0
- package/dist/components/audioAnnotate/textInput/index.js +1 -1
- package/dist/components/videoAnnotate/index.js +1 -1
- package/dist/components/videoAnnotate/videoClipTool/VideoClipToolContext.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/ToolTipForClip.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/annotatedList/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/annotatedList/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoTrack/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/components/videoTrack/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/constant.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/index.js +1 -0
- package/dist/components/videoAnnotate/videoClipTool/index.module.scss.js +1 -0
- package/dist/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -0
- package/dist/components/videoAnnotate/videoTextTool/index.js +1 -0
- package/dist/components/videoPlayer/VideoTagLayer.js +1 -1
- package/dist/components/videoPlayer/VideoTextLayer.js +2 -0
- package/dist/components/videoPlayer/components/controller/index.js +1 -1
- package/dist/components/videoPlayer/index.js +1 -1
- package/dist/components/videoPlayer/utils.js +1 -1
- package/dist/index.css +261 -2
- package/dist/index.js +1 -1
- package/dist/store/annotation/reducer.js +1 -1
- package/dist/types/App.d.ts +2 -2
- package/dist/types/components/audioAnnotate/index.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudListener.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudSegment.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudSegment2DView.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudSegmentListener.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +1 -1
- package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +3 -3
- package/dist/types/components/pointCloudView/index.d.ts +3 -3
- package/dist/types/components/videoAnnotate/index.d.ts +18 -7
- package/dist/types/components/videoAnnotate/videoClipTool/VideoClipToolContext.d.ts +27 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/ToolTipForClip.d.ts +8 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/annotatedList/index.d.ts +7 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.d.ts +14 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.d.ts +18 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.d.ts +6 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.d.ts +3 -0
- package/dist/types/components/videoAnnotate/videoClipTool/components/videoTrack/index.d.ts +11 -0
- package/dist/types/components/videoAnnotate/videoClipTool/constant.d.ts +26 -0
- package/dist/types/components/videoAnnotate/videoClipTool/index.d.ts +131 -0
- package/dist/types/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptor.d.ts +6 -10
- package/dist/types/components/videoAnnotate/videoTextTool/index.d.ts +56 -0
- package/dist/types/components/videoPlayer/VideoTagLayer.d.ts +1 -0
- package/dist/types/components/videoPlayer/VideoTextLayer.d.ts +2 -0
- package/dist/types/components/videoPlayer/components/controller/index.d.ts +4 -2
- package/dist/types/components/videoPlayer/index.d.ts +11 -0
- package/dist/types/components/videoPlayer/utils.d.ts +6 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/views/MainView/sidebar/TextToolSidebar/index.d.ts +2 -1
- package/dist/utils/audio.js +1 -1
- package/dist/views/MainView/LLMLayout/index.js +1 -1
- package/dist/views/MainView/index.js +1 -1
- package/dist/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/index.js +1 -1
- package/es/assets/annotation/video/icon_timePoint.svg.js +1 -0
- package/es/assets/annotation/video/icon_videoCut.svg.js +1 -0
- package/es/assets/annotation/video/icon_videoCutting.svg.js +1 -0
- package/es/components/audioAnnotate/textInput/index.js +1 -1
- package/es/components/videoAnnotate/index.js +1 -1
- package/es/components/videoAnnotate/videoClipTool/VideoClipToolContext.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/ToolTipForClip.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/annotatedList/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/annotatedList/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoTrack/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/components/videoTrack/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/constant.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/index.js +1 -0
- package/es/components/videoAnnotate/videoClipTool/index.module.scss.js +1 -0
- package/es/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -0
- package/es/components/videoAnnotate/videoTextTool/index.js +1 -0
- package/es/components/videoPlayer/VideoTagLayer.js +1 -1
- package/es/components/videoPlayer/VideoTextLayer.js +2 -0
- package/es/components/videoPlayer/components/controller/index.js +1 -1
- package/es/components/videoPlayer/index.js +1 -1
- package/es/components/videoPlayer/utils.js +1 -1
- package/es/index.css +261 -2
- package/es/index.js +1 -1
- package/es/store/annotation/reducer.js +1 -1
- package/es/utils/audio.js +1 -1
- package/es/views/MainView/index.js +1 -1
- package/es/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/index.js +1 -1
- package/package.json +6 -4
- package/dist/components/videoPlayer/TagToolInstanceAdaptor.js +0 -1
- package/es/components/videoPlayer/TagToolInstanceAdaptor.js +0 -1
- /package/dist/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.js +0 -0
- /package/dist/types/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.d.ts +0 -0
- /package/es/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.js +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IProps {
|
|
3
|
+
currentTime: number;
|
|
4
|
+
onTrackResize: any;
|
|
5
|
+
readonly: boolean;
|
|
6
|
+
onTrackResizeStart: () => void;
|
|
7
|
+
}
|
|
8
|
+
/** 视频片段的显示内容 */
|
|
9
|
+
export declare const getDisplayContent: (i: any, attributeList: any) => string;
|
|
10
|
+
declare const VideoTrack: (props: IProps) => React.JSX.Element;
|
|
11
|
+
export default VideoTrack;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare enum EPageChanges {
|
|
2
|
+
/** 往前翻页 */
|
|
3
|
+
AHEAD = 1,
|
|
4
|
+
/** 往后翻页 */
|
|
5
|
+
BACK = -1
|
|
6
|
+
}
|
|
7
|
+
export declare enum EDirection {
|
|
8
|
+
Left = "left",
|
|
9
|
+
Right = "right"
|
|
10
|
+
}
|
|
11
|
+
export declare enum EClipStatus {
|
|
12
|
+
Clipping = 0,
|
|
13
|
+
Stop = 1
|
|
14
|
+
}
|
|
15
|
+
export declare enum ETimeSliceType {
|
|
16
|
+
/** 片段 */
|
|
17
|
+
Period = 0,
|
|
18
|
+
/** 时间点 */
|
|
19
|
+
Time = 1
|
|
20
|
+
}
|
|
21
|
+
export declare const TIME_SLICE_TYPE: {
|
|
22
|
+
[key: number]: string;
|
|
23
|
+
};
|
|
24
|
+
/** 最小允许片段时间 */
|
|
25
|
+
export declare const SLICE_MIN_TIME = 0.05;
|
|
26
|
+
export declare const PER_SLICE_CHANGE = 0.05;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IVideoTimeSlice } from '@labelbee/lb-utils';
|
|
4
|
+
import { EClipStatus, EDirection } from './constant';
|
|
5
|
+
import { IVideoAnnotateProps } from '@/components/videoAnnotate';
|
|
6
|
+
interface IVideoClipProps extends IVideoAnnotateProps {
|
|
7
|
+
pageForward: () => void;
|
|
8
|
+
pageJump: (page: string) => void;
|
|
9
|
+
pageBackward: () => void;
|
|
10
|
+
onMounted: (instance: any) => void;
|
|
11
|
+
onUnmounted: () => void;
|
|
12
|
+
}
|
|
13
|
+
interface IState {
|
|
14
|
+
result: IVideoTimeSlice[];
|
|
15
|
+
selectedAttribute: string;
|
|
16
|
+
textValue: string;
|
|
17
|
+
clipStatus: EClipStatus;
|
|
18
|
+
selectedID: string;
|
|
19
|
+
loading: boolean;
|
|
20
|
+
videoError: boolean;
|
|
21
|
+
remainingTime: number;
|
|
22
|
+
currentTime: number;
|
|
23
|
+
configLoading: boolean;
|
|
24
|
+
valid: boolean;
|
|
25
|
+
}
|
|
26
|
+
declare class VideoClipTool extends React.Component<IVideoClipProps, IState> {
|
|
27
|
+
get videoUrl(): string;
|
|
28
|
+
get isClipping(): boolean;
|
|
29
|
+
/** 结果JSON */
|
|
30
|
+
get resultJSON(): string | undefined;
|
|
31
|
+
get disabled(): boolean;
|
|
32
|
+
get loading(): boolean;
|
|
33
|
+
get defaultTextAttribute(): string;
|
|
34
|
+
get defaultAttribute(): string;
|
|
35
|
+
get selectedSliceIndex(): number;
|
|
36
|
+
get exportContext(): {
|
|
37
|
+
selectedID: string;
|
|
38
|
+
result: IVideoTimeSlice[];
|
|
39
|
+
clipStatus: EClipStatus;
|
|
40
|
+
videoPlayer: any;
|
|
41
|
+
attributeList: any;
|
|
42
|
+
onSelectedTimeSlice: (i: IVideoTimeSlice) => void;
|
|
43
|
+
removeTimeSlice: (item: IVideoTimeSlice) => void;
|
|
44
|
+
updateSelectedSliceTimeProperty: (val: number, key: "end" | "start") => void;
|
|
45
|
+
};
|
|
46
|
+
fns: Map<string, any[]>;
|
|
47
|
+
videoPlayer?: any;
|
|
48
|
+
videoNode?: HTMLVideoElement;
|
|
49
|
+
videoRef?: HTMLVideoElement;
|
|
50
|
+
throttledUpdateTime: _.DebouncedFunc<(newValue: number) => void>;
|
|
51
|
+
constructor(props: IVideoClipProps);
|
|
52
|
+
get valid(): boolean;
|
|
53
|
+
/** 步骤信息 */
|
|
54
|
+
stepInfo: () => import("../../../types/step").IStepInfo;
|
|
55
|
+
componentDidMount(): void;
|
|
56
|
+
componentWillUnmount(): void;
|
|
57
|
+
shouldComponentUpdate(newProps: any, newState: IState): boolean;
|
|
58
|
+
emitEvent: (event: string) => void;
|
|
59
|
+
singleOn(event: string, func: () => void): void;
|
|
60
|
+
on(event: string, func: () => void): void;
|
|
61
|
+
unbindAll(eventName: string): void;
|
|
62
|
+
setValid: (valid: boolean) => void;
|
|
63
|
+
updateSidebar: () => void;
|
|
64
|
+
exportData: () => (IVideoTimeSlice[] | {
|
|
65
|
+
valid: boolean;
|
|
66
|
+
duration: number;
|
|
67
|
+
})[];
|
|
68
|
+
/**
|
|
69
|
+
* 微调选中截取片段的开始时间(start)
|
|
70
|
+
* @param changeTime
|
|
71
|
+
*/
|
|
72
|
+
updateSelectedSliceTimeStartByPer: (changeTime: number) => void;
|
|
73
|
+
/**
|
|
74
|
+
* 微调选中截取片段的最后时间(end)
|
|
75
|
+
* @param changeTime
|
|
76
|
+
*/
|
|
77
|
+
updateSelectedSliceTimeEndByPer: (changeTime: number) => void;
|
|
78
|
+
updateSelectedSliceTimeProperty: (val: number, key: 'start' | 'end') => void;
|
|
79
|
+
keyDownEvents: (e: KeyboardEvent) => void;
|
|
80
|
+
videoLoaded: (totalTime?: number) => void;
|
|
81
|
+
setVideoError: (videoError: boolean, errorType: any, curTime: number) => void;
|
|
82
|
+
clearResult: () => void;
|
|
83
|
+
/** 取消截取 */
|
|
84
|
+
cancelClipped: () => void;
|
|
85
|
+
/**
|
|
86
|
+
* 切换截取状态,如为开启则添加end为null的数据,否则将对应截取片段的时间补全
|
|
87
|
+
* @param curTime
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
90
|
+
toggleClipStatus: (curTime?: number) => void;
|
|
91
|
+
/** 添加时间点 */
|
|
92
|
+
addTime: () => void;
|
|
93
|
+
/**
|
|
94
|
+
* 视频右键操作
|
|
95
|
+
* @param e
|
|
96
|
+
*/
|
|
97
|
+
contextToCancel: (e: MouseEvent) => void;
|
|
98
|
+
/**
|
|
99
|
+
* 重新调整片段长度
|
|
100
|
+
* @param id
|
|
101
|
+
* @param direction
|
|
102
|
+
* @param changedPercent
|
|
103
|
+
*/
|
|
104
|
+
onTrackResize: (id: string, direction: EDirection, changedPercent: number) => void;
|
|
105
|
+
/**
|
|
106
|
+
* 渲染页面标注视频组件
|
|
107
|
+
* @returns
|
|
108
|
+
*/
|
|
109
|
+
renderMediaContent: () => React.JSX.Element;
|
|
110
|
+
/**
|
|
111
|
+
* 选中片段
|
|
112
|
+
* @param i
|
|
113
|
+
* @returns
|
|
114
|
+
*/
|
|
115
|
+
onSelectedTimeSlice: (i: IVideoTimeSlice) => void;
|
|
116
|
+
/** 根据数据删除片段 */
|
|
117
|
+
removeTimeSlice: (item: IVideoTimeSlice) => void;
|
|
118
|
+
setResult: (loading?: boolean, props?: any) => void;
|
|
119
|
+
/**
|
|
120
|
+
* 当前选中的属性改变
|
|
121
|
+
* @param attribute
|
|
122
|
+
*/
|
|
123
|
+
setDefaultAttribute: (attribute: string) => void;
|
|
124
|
+
/**
|
|
125
|
+
* 设置当前选中片段的文本
|
|
126
|
+
* @param textValue
|
|
127
|
+
*/
|
|
128
|
+
setTextAttribute: (textValue: string) => void;
|
|
129
|
+
render(): React.JSX.Element;
|
|
130
|
+
}
|
|
131
|
+
export default VideoClipTool;
|
package/dist/types/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptor.d.ts
RENAMED
|
@@ -5,20 +5,15 @@
|
|
|
5
5
|
* @date 2022-05-31
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import { IStepInfo } from '@/types/step';
|
|
9
8
|
import _ from 'lodash';
|
|
10
|
-
import type { ObjectString } from '
|
|
11
|
-
import {
|
|
12
|
-
export interface IVideoTagInstanceAdaptorProps {
|
|
13
|
-
imgIndex: number;
|
|
14
|
-
imgList: IFileItem[];
|
|
9
|
+
import type { ObjectString } from '../../videoPlayer/types';
|
|
10
|
+
import { IVideoAnnotateProps } from '@/components/videoAnnotate';
|
|
11
|
+
export interface IVideoTagInstanceAdaptorProps extends IVideoAnnotateProps {
|
|
15
12
|
pageForward: () => void;
|
|
16
13
|
pageJump: (page: string) => void;
|
|
17
14
|
pageBackward: () => void;
|
|
18
|
-
onMounted: (instance:
|
|
15
|
+
onMounted: (instance: any) => void;
|
|
19
16
|
onUnmounted: () => void;
|
|
20
|
-
step: number;
|
|
21
|
-
stepList: IStepInfo[];
|
|
22
17
|
}
|
|
23
18
|
interface IVideoTagInstanceAdaptorState {
|
|
24
19
|
tagResult: any[];
|
|
@@ -29,7 +24,7 @@ export declare class TagToolInstanceAdaptor extends React.Component<IVideoTagIns
|
|
|
29
24
|
fns: {
|
|
30
25
|
[key: string]: () => void;
|
|
31
26
|
};
|
|
32
|
-
|
|
27
|
+
videoPlayer?: HTMLVideoElement;
|
|
33
28
|
labelSelectedList: number[];
|
|
34
29
|
constructor(props: IVideoTagInstanceAdaptorProps);
|
|
35
30
|
get config(): any;
|
|
@@ -50,6 +45,7 @@ export declare class TagToolInstanceAdaptor extends React.Component<IVideoTagIns
|
|
|
50
45
|
})[];
|
|
51
46
|
singleOn(event: string, func: () => void): void;
|
|
52
47
|
on(event: string, func: () => void): void;
|
|
48
|
+
unbindAll(eventName: string): void;
|
|
53
49
|
getTagResultByCode(num1: number, num2?: number): {
|
|
54
50
|
value: {
|
|
55
51
|
key: any;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IVideoAnnotateProps } from '@/components/videoAnnotate';
|
|
3
|
+
export interface IVideoTextInstanceAdaptorProps extends IVideoAnnotateProps {
|
|
4
|
+
pageForward: () => void;
|
|
5
|
+
pageJump: (page: string) => void;
|
|
6
|
+
pageBackward: () => void;
|
|
7
|
+
onMounted: (instance: any) => void;
|
|
8
|
+
onUnmounted: () => void;
|
|
9
|
+
}
|
|
10
|
+
interface IVideoTextInstanceAdaptorState {
|
|
11
|
+
result: any;
|
|
12
|
+
valid: boolean;
|
|
13
|
+
showText: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class VideoTextTool extends React.Component<IVideoTextInstanceAdaptorProps, IVideoTextInstanceAdaptorState> {
|
|
16
|
+
fns: {
|
|
17
|
+
[key: string]: () => void;
|
|
18
|
+
};
|
|
19
|
+
videoPlayer?: HTMLVideoElement;
|
|
20
|
+
constructor(props: IVideoTextInstanceAdaptorProps);
|
|
21
|
+
get config(): any;
|
|
22
|
+
/** Just implementation, no actual logic */
|
|
23
|
+
get history(): {
|
|
24
|
+
initRecord: () => void;
|
|
25
|
+
pushHistory: () => void;
|
|
26
|
+
};
|
|
27
|
+
get valid(): boolean;
|
|
28
|
+
get textList(): any[];
|
|
29
|
+
getColor(config?: any, attribute?: string): any;
|
|
30
|
+
clearResult: (sendMsg?: boolean) => void;
|
|
31
|
+
exportData: () => (any[] | {
|
|
32
|
+
valid: boolean;
|
|
33
|
+
duration: number;
|
|
34
|
+
frames: number | undefined;
|
|
35
|
+
videoWidth: number;
|
|
36
|
+
videoHeight: number;
|
|
37
|
+
})[];
|
|
38
|
+
toggleShowText: (v: boolean) => void;
|
|
39
|
+
singleOn(event: string, func: () => void): void;
|
|
40
|
+
on(event: string, func: () => void): void;
|
|
41
|
+
unbindAll(eventName: string): void;
|
|
42
|
+
emitEvent: (event: string) => void;
|
|
43
|
+
updateSidebar: () => void;
|
|
44
|
+
updateTextValue: (key: string, text: string, result?: {
|
|
45
|
+
[key: string]: string;
|
|
46
|
+
} | undefined) => void;
|
|
47
|
+
setResult: (result: any) => void;
|
|
48
|
+
setValid: (valid: boolean) => void;
|
|
49
|
+
componentDidMount(): void;
|
|
50
|
+
componentWillUnmount(): void;
|
|
51
|
+
setResultFromImgList: (props: IVideoTextInstanceAdaptorProps) => void;
|
|
52
|
+
/** Observer imgIndex and set result */
|
|
53
|
+
shouldComponentUpdate(props: IVideoTextInstanceAdaptorProps): boolean;
|
|
54
|
+
render(): React.JSX.Element;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
/**
|
|
3
2
|
* Format video time to display
|
|
4
3
|
* Such as 61.9 => 01:01:9
|
|
@@ -10,5 +9,8 @@ export declare enum EPlayerType {
|
|
|
10
9
|
Video = 0,
|
|
11
10
|
Audio = 1
|
|
12
11
|
}
|
|
13
|
-
|
|
12
|
+
interface IProps {
|
|
13
|
+
footer?: any;
|
|
14
|
+
}
|
|
15
|
+
declare const VideoController: (props: IProps) => any;
|
|
14
16
|
export default VideoController;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { IFileItem } from '@/types/data';
|
|
8
|
+
export declare const PLAYER_CONTROL_BAR_HEIGHT = 60;
|
|
8
9
|
export declare const VideoPlayerCtx: React.Context<{
|
|
9
10
|
videoRef?: React.RefObject<HTMLVideoElement> | null | undefined;
|
|
10
11
|
isPlay: boolean;
|
|
@@ -20,6 +21,8 @@ export declare const VideoPlayerCtx: React.Context<{
|
|
|
20
21
|
pageBackward: () => void;
|
|
21
22
|
pageJump: (page: string) => void;
|
|
22
23
|
pageForward: () => void;
|
|
24
|
+
addTime?: (() => void) | undefined;
|
|
25
|
+
toggleClipStatus?: (() => void) | undefined;
|
|
23
26
|
}>;
|
|
24
27
|
interface IVideoPlayerProps {
|
|
25
28
|
imgList: IFileItem[];
|
|
@@ -29,6 +32,13 @@ interface IVideoPlayerProps {
|
|
|
29
32
|
pageForward: () => void;
|
|
30
33
|
valid: boolean;
|
|
31
34
|
setVideoRef?: (video: HTMLVideoElement) => void;
|
|
35
|
+
showVideoTrack?: boolean;
|
|
36
|
+
onTrackResize?: any;
|
|
37
|
+
footer?: any;
|
|
38
|
+
dataLoaded?: (totalTime: number) => void;
|
|
39
|
+
addTime?: () => void;
|
|
40
|
+
toggleClipStatus?: () => void;
|
|
41
|
+
drawLayerSlot?: any;
|
|
32
42
|
}
|
|
33
43
|
interface IVideoPlayerState {
|
|
34
44
|
playbackRate: number;
|
|
@@ -59,6 +69,7 @@ export declare class VideoPlayer extends React.Component<IVideoPlayerProps, IVid
|
|
|
59
69
|
keydown: (event: KeyboardEvent) => void;
|
|
60
70
|
onPlay: () => void;
|
|
61
71
|
onPause: () => void;
|
|
72
|
+
onTimeUpdate: () => void;
|
|
62
73
|
onVideoStopped: () => void;
|
|
63
74
|
onVideoStart: () => void;
|
|
64
75
|
resetVideoData: () => void;
|
|
@@ -34,3 +34,9 @@ export declare const getKeyCodeNumber: (keyCode: number) => number;
|
|
|
34
34
|
* @returns {Number}
|
|
35
35
|
*/
|
|
36
36
|
export declare const decimalReserved: (num: number, places?: number) => number;
|
|
37
|
+
/**
|
|
38
|
+
* Compute the hash code of given string
|
|
39
|
+
* @param str
|
|
40
|
+
* @returns {Number}
|
|
41
|
+
*/
|
|
42
|
+
export declare const hashCode: (str: string | undefined) => number | undefined;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import PointCloudAnnotationView from '@/components/AnnotationView/pointCloudAnno
|
|
|
4
4
|
import QuestionView from '@/components/LLMToolView/questionView';
|
|
5
5
|
import { i18n } from '@labelbee/lb-utils';
|
|
6
6
|
import React from 'react';
|
|
7
|
-
import { VideoTagTool } from '@/components/
|
|
7
|
+
import { VideoTagTool } from '@/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptorI18nProvider';
|
|
8
8
|
import './index.scss';
|
|
9
9
|
import PredictTracking from '@/components/predictTracking';
|
|
10
10
|
import LLMToolView from '@/components/LLMToolView';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IStepInfo } from '@/types/step';
|
|
3
3
|
import TextToolOperation from '@labelbee/lb-annotation/dist/types/core/toolOperation/TextToolOperation';
|
|
4
|
+
import { VideoTextTool } from '@/components/videoAnnotate/videoTextTool';
|
|
4
5
|
interface ITextareaWithFooterProps {
|
|
5
6
|
textareaProps?: any;
|
|
6
7
|
footer?: any;
|
|
@@ -8,7 +9,7 @@ interface ITextareaWithFooterProps {
|
|
|
8
9
|
export declare const TextareaWithFooter: (props: ITextareaWithFooterProps) => React.JSX.Element;
|
|
9
10
|
interface IProps {
|
|
10
11
|
dispatch: Function;
|
|
11
|
-
toolInstance: TextToolOperation;
|
|
12
|
+
toolInstance: TextToolOperation | VideoTextTool;
|
|
12
13
|
imgIndex: number;
|
|
13
14
|
triggerEventAfterIndexChanged: boolean;
|
|
14
15
|
step: number;
|
package/dist/utils/audio.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("antd");var lbAnnotation=require("@labelbee/lb-annotation");require("lodash");var Decimal=require("decimal.js"),moment=require("moment");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var Decimal__default=_interopDefaultLegacy(Decimal),moment__default=_interopDefaultLegacy(moment);const{COLORS_ARRAY,ICON_ARRAY,INVALID_ICON,NULL_COLOR,NULL_ICON,WHITE_FONT_COLOR_ARRAY}=lbAnnotation.cStyle,DEFAULT_TEXT_CONFIG_ITEM={label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:1e3},getAttributeShowText=(t,e)=>{var r,n;try{const o=getAttributeIndex(t,e);return(n=(r=e[o])==null?void 0:r.key)!=null?n:t}catch(o){return t}},getAttributeIndex=(t,e)=>{try{return e.findIndex(n=>n.value===t)}catch(r){return-1}},getAttributeColor=(t,e)=>{try{const r=getAttributeIndex(t,e);return r===-1?NULL_COLOR:COLORS_ARRAY[r%COLORS_ARRAY.length]}catch(r){return NULL_COLOR}},getAttributeFontColor=(t,e)=>{try{const r=getAttributeColor(t,e);return WHITE_FONT_COLOR_ARRAY.includes(r)?"#fff":"#333"}catch(r){return"#333"}},updateColorOpacity=(t,e)=>{var r;try{const n=((r=t.match(/\((.*)\)/))==null?void 0:r[1].split(","))||[];return n.splice(3,1,e.toString()),`rgba(${n.join(",")})`}catch(n){return t}},precisionMinus=(t,e)=>new Decimal__default.default(Number(t)||0).minus(Number(e)||0).toNumber(),precisionAdd=(t,e)=>new Decimal__default.default(t).add(e).toNumber(),generateIsDoubleClick=t=>{let e=null;return n=>e?n.target===(e==null?void 0:e.target):(e=n,setTimeout(()=>{e=null},t),!1)},isDoubleClick=generateIsDoubleClick(300),formatTime=t=>{const e=Math.floor(t*1e3),r=moment__default.default.duration(e);return`${Math.floor(r.asMinutes())}:${moment__default.default.utc(e).format("ss")}`},timeFormat=(t,e="ss.S")=>{const r=Math.floor(t*1e3),n=moment__default.default.duration(r);return`${fillZero(Math.floor(n.asMinutes()))}:${moment__default.default.utc(r).format(e)}`},fillZero=t=>t<10?`0${t}`:t,getCanMoveRange=(t,e)=>{let r=null,n=null;const o=t.length;if(o===0)return{min:r,max:n};let u=0;return e<t[u]?n=t[u]:(t.forEach((i
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("antd");var lbAnnotation=require("@labelbee/lb-annotation");require("lodash");var Decimal=require("decimal.js"),moment=require("moment");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var Decimal__default=_interopDefaultLegacy(Decimal),moment__default=_interopDefaultLegacy(moment);const{COLORS_ARRAY,ICON_ARRAY,INVALID_ICON,NULL_COLOR,NULL_ICON,WHITE_FONT_COLOR_ARRAY}=lbAnnotation.cStyle,DEFAULT_TEXT_CONFIG_ITEM={label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:1e3},getAttributeShowText=(t,e)=>{var r,n;try{const o=getAttributeIndex(t,e);return(n=(r=e[o])==null?void 0:r.key)!=null?n:t}catch(o){return t}},getAttributeIndex=(t,e)=>{try{return e.findIndex(n=>n.value===t)}catch(r){return-1}},getAttributeColor=(t,e)=>{try{const r=getAttributeIndex(t,e);return r===-1?NULL_COLOR:COLORS_ARRAY[r%COLORS_ARRAY.length]}catch(r){return NULL_COLOR}},getAttributeFontColor=(t,e)=>{try{const r=getAttributeColor(t,e);return WHITE_FONT_COLOR_ARRAY.includes(r)?"#fff":"#333"}catch(r){return"#333"}},updateColorOpacity=(t,e)=>{var r;try{const n=((r=t.match(/\((.*)\)/))==null?void 0:r[1].split(","))||[];return n.splice(3,1,e.toString()),`rgba(${n.join(",")})`}catch(n){return t}},precisionMinus=(t,e)=>new Decimal__default.default(Number(t)||0).minus(Number(e)||0).toNumber(),precisionAdd=(t,e)=>new Decimal__default.default(t).add(e).toNumber(),generateIsDoubleClick=t=>{let e=null;return n=>e?n.target===(e==null?void 0:e.target):(e=n,setTimeout(()=>{e=null},t),!1)},isDoubleClick=generateIsDoubleClick(300),formatTime=t=>{const e=Math.floor(t*1e3),r=moment__default.default.duration(e);return`${Math.floor(r.asMinutes())}:${moment__default.default.utc(e).format("ss")}`},timeFormat=(t,e="ss.S")=>{const r=Math.floor(t*1e3),n=moment__default.default.duration(r);return`${fillZero(Math.floor(n.asMinutes()))}:${moment__default.default.utc(r).format(e)}`},fillZero=t=>t<10?`0${t}`:t,getCanMoveRange=(t,e)=>{let r=null,n=null;const o=t.length;if(o===0)return{min:r,max:n};let u=0;return e<t[u]?n=t[u]:(t.forEach((a,i)=>{e>a&&(r=a,u=i)}),r&&u<o-1&&(n=t[u+1])),{min:r,max:n}},dispatchResizeEvent=()=>{const t=document.createEvent("Event");t.initEvent("resize",!0,!0),window.dispatchEvent(t)};function isImageValue(t){try{const e=JSON.parse(t);return typeof e.valid=="boolean"?e.valid:!0}catch(e){return!0}}exports.DEFAULT_TEXT_CONFIG_ITEM=DEFAULT_TEXT_CONFIG_ITEM,exports.dispatchResizeEvent=dispatchResizeEvent,exports.formatTime=formatTime,exports.getAttributeColor=getAttributeColor,exports.getAttributeFontColor=getAttributeFontColor,exports.getAttributeIndex=getAttributeIndex,exports.getAttributeShowText=getAttributeShowText,exports.getCanMoveRange=getCanMoveRange,exports.isDoubleClick=isDoubleClick,exports.isImageValue=isImageValue,exports.precisionAdd=precisionAdd,exports.precisionMinus=precisionMinus,exports.timeFormat=timeFormat,exports.updateColorOpacity=updateColorOpacity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var index$
|
|
1
|
+
"use strict";var index$1=require("../../../constant/index.js"),es=require("antd/es"),React=require("react"),index$4=require("../sidebar/index.js"),index$3=require("../toolFooter/index.js"),dom=require("../../../utils/dom.js"),index=require("../../../utils/index.js"),ctx=require("../../../store/ctx.js"),index$2=require("../../../components/LLMToolView/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{Sider,Content}=es.Layout,layoutCls=`${index$1.prefix}-layout`,LLMLayout=e=>{var t,a;const[l,i]=React.useState(-1),[r,o]=React.useState([]),[n,s]=React.useState([]);return React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},React__default.default.createElement(ctx.LLMContext.Provider,{value:React.useMemo(()=>({hoverKey:l,setHoverKey:i,modelAPIResponse:r,setModelAPIResponse:o,newAnswerList:n,setNewAnswerList:s}),[l,r,n])},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:index.classnames({[`${layoutCls}__content`]:!0,[`${index$1.prefix}-LLMLayout`]:!0})},React__default.default.createElement(index$2,{checkMode:e.checkMode,showTips:e.showTips,tips:e.tips}),React__default.default.createElement(index$3.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer})),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:600,style:{position:"relative"}},React__default.default.createElement(index$4.default,{sider:e==null?void 0:e.sider,checkMode:e==null?void 0:e.checkMode}),(a=e.drawLayerSlot)==null?void 0:a.call(e,{}))))};module.exports=LLMLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var index$6=require("../../components/customResizeHook/index.js"),index$4=require("../../constant/index.js"),antd=require("antd"),es=require("antd/es"),React=require("react"),index$a=require("./annotationOperation/index.js"),index$9=require("./annotationTips/index.js"),index$3=require("./sidebar/index.js"),index$b=require("./toolFooter/index.js"),index$8=require("./toolHeader/index.js"),reducer=require("../../store/annotation/reducer.js"),index$5=require("../../components/videoAnnotate/index.js"),reactRedux=require("react-redux"),ToolUtils=require("../../utils/ToolUtils.js"),index$c=require("../../components/pointCloudView/index.js"),dom=require("../../utils/dom.js"),index$7=require("../../utils/index.js"),index$2=require("../../components/predictTracking/previewResult/index.js"),ctx=require("../../store/ctx.js"),ToolType=require("../../data/enums/ToolType.js"),index=require("./LLMLayout/index.js"),index$1=require("../../components/audioAnnotate/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,
|
|
1
|
+
"use strict";var index$6=require("../../components/customResizeHook/index.js"),index$4=require("../../constant/index.js"),antd=require("antd"),es=require("antd/es"),React=require("react"),index$a=require("./annotationOperation/index.js"),index$9=require("./annotationTips/index.js"),index$3=require("./sidebar/index.js"),index$b=require("./toolFooter/index.js"),index$8=require("./toolHeader/index.js"),reducer=require("../../store/annotation/reducer.js"),index$5=require("../../components/videoAnnotate/index.js"),reactRedux=require("react-redux"),ToolUtils=require("../../utils/ToolUtils.js"),index$c=require("../../components/pointCloudView/index.js"),dom=require("../../utils/dom.js"),index$7=require("../../utils/index.js"),index$2=require("../../components/predictTracking/previewResult/index.js"),ctx=require("../../store/ctx.js"),ToolType=require("../../data/enums/ToolType.js"),index=require("./LLMLayout/index.js"),index$1=require("../../components/audioAnnotate/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e};const{Sider,Content}=es.Layout,layoutCls=`${index$4.prefix}-layout`,ImageAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,e.showTips===!0&&React__default.default.createElement(index$9,{path:e.path,tips:e.tips}),React__default.default.createElement(index$a,__spreadValues({},e)),React__default.default.createElement(index$b.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},PointCloudAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$c,{drawLayerSlot:e.drawLayerSlot,checkMode:e.checkMode,intelligentFit:e.intelligentFit}),React__default.default.createElement(index$b.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},AnnotatedArea=e=>{var t;const{stepList:a,step:l}=e,r=(t=reducer.getStepConfig(a,l))==null?void 0:t.tool,i=ToolUtils.isPointCloudTool(r),n=ToolUtils.isVideoTool(r);return i?React__default.default.createElement(PointCloudAnnotate,__spreadValues({},e)):n?React__default.default.createElement(index$5,{drawLayerSlot:e.drawLayerSlot,footer:e.footer}):React__default.default.createElement(ImageAnnotate,__spreadValues({},e))},ViewportProviderLayout=e=>{var t,a,l;const{t:r}=reactI18next.useTranslation(),{stepList:i,step:n}=e,o=(t=reducer.getStepConfig(i,n))==null?void 0:t.tool,d=![ToolType.EToolName.LLM].includes(o),u=![ToolType.EToolName.LLM].includes(o),c=[lbAnnotation.EPointCloudName.PointCloud].includes(o);return React__default.default.createElement(index$6.ViewportProvider,null,React__default.default.createElement(antd.Spin,{spinning:e.loading,indicator:React__default.default.createElement(icons.LoadingOutlined,null),tip:React__default.default.createElement("span",{style:{marginTop:200}},r("LoadingTips")),delay:500},React__default.default.createElement(es.Layout,{className:index$7.classnames([layoutCls,e.className]),style:(a=e.style)==null?void 0:a.layout},React__default.default.createElement("header",{className:`${layoutCls}__header`,style:(l=e.style)==null?void 0:l.header},React__default.default.createElement(index$8,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData,hasLangNode:d,hasHeaderOption:u,hasPredictTrackingIcon:c})),e.children)))},MainView=e=>{var t,a,l,r,i,n,o;const[d,u]=React.useState(void 0),c=(a=(t=e.style)==null?void 0:t.sider)==null?void 0:a.width,{stepList:m,step:f}=e,s=(l=reducer.getStepConfig(m,f))==null?void 0:l.tool,v=ToolType.EToolName.LLM===s,x=ToolUtils.isAudioTool(s);return v?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index,__spreadValues({},e))):x?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index$1,__spreadValues({},e))):React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement(AnnotatedArea,__spreadValues({},e)),React__default.default.createElement(index$2,null)),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:(r=d!=null?d:c)!=null?r:240,style:(i=e.style)==null?void 0:i.sider},React__default.default.createElement(index$3.default,{sider:e==null?void 0:e.sider,enableColorPicker:e==null?void 0:e.enableColorPicker,setSiderWidth:u,propsSiderWidth:(o=(n=e.style)==null?void 0:n.sider)==null?void 0:o.width}))))},mapStateToProps=({annotation:e})=>{var t,a,l;const{imgList:r,loading:i}=e,n=(t=r[e.imgIndex])!=null?t:{};return{path:(l=(a=n==null?void 0:n.path)!=null?a:n==null?void 0:n.url)!=null?l:"",loading:i}};var MainView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(MainView);module.exports=MainView$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),_=require("lodash"),index=require("../../../../utils/index.js"),es=require("antd/es"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ConfigUtils=require("../../../../utils/ConfigUtils.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e};const EKeyCode=lbAnnotation.cKeyCode.default,syntheticEventStopPagination=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},TextareaWithFooter=e=>{const{textareaProps:t,footer:a}=e;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(es.Input.TextArea,__spreadValues({bordered:!1,rows:6,onKeyDown:syntheticEventStopPagination,onKeyUp:syntheticEventStopPagination},t)),React__default.default.createElement("div",{className:index.classnames({textAreaLength:!0})},a))},SingleTextInput=e=>{var t;const a=React.useRef(null),[
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),_=require("lodash"),index=require("../../../../utils/index.js"),es=require("antd/es"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ConfigUtils=require("../../../../utils/ConfigUtils.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e};const EKeyCode=lbAnnotation.cKeyCode.default,{EVideoToolName}=lbAnnotation.cTool,syntheticEventStopPagination=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},TextareaWithFooter=e=>{const{textareaProps:t,footer:a}=e;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(es.Input.TextArea,__spreadValues({bordered:!1,rows:6,onKeyDown:syntheticEventStopPagination,onKeyUp:syntheticEventStopPagination},t)),React__default.default.createElement("div",{className:index.classnames({textAreaLength:!0})},a))},SingleTextInput=e=>{var t;const a=React.useRef(null),[x,u]=React.useState(!1),[S,v]=React.useState(!1),{t:c}=reactI18next.useTranslation(),{disabled:s,config:l,result:i,updateText:m,index:g,switchToNextTextarea:T,hasMultiple:w,onNext:E}=e,{maxLength:d}=l,f=i?i[l.key]:"",h=(t=f==null?void 0:f.length)!=null?t:0,p=n=>{m&&(m(n,l.key),l.required&&v(!n))},b=w&&T,C={id:`textInput-${g}`,ref:a,disabled:s,value:f,maxLength:d,autoSize:{minRows:2,maxRows:6},onChange:n=>{const y=n.target.value;p(y)},onFocus:()=>{u(!0)},onBlur:n=>{u(!1),l.required&&v(!n.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:n=>{n.ctrlKey&&n.keyCode===EKeyCode.Enter&&(E&&E(),n.preventDefault()),n.keyCode===EKeyCode.Tab&&b&&(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),T(g)),n.nativeEvent.stopPropagation()}},P=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},b&&React__default.default.createElement("span",null,`[${c("Switch")}]Tab`),React__default.default.createElement("span",null,`[${c("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:h>=d?"warning":""},h),"/",React__default.default.createElement("span",null,d)));return React.useEffect(()=>{s&&u(!1)},[s]),React__default.default.createElement("div",{className:"textField"},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("span",{className:index.classnames({required:l.required})},l.label),React__default.default.createElement("i",{className:index.classnames({clearText:!0,disabled:s}),onClick:()=>{s||p("")}})),React__default.default.createElement("div",{className:index.classnames({disabled:s,"textarea-outline":!0,"ant-input-focused":x,textareaContainer:!0,focus:x,invalid:S})},React__default.default.createElement(TextareaWithFooter,{footer:P,textareaProps:C})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:a,triggerEventAfterIndexChanged:x,step:u,stepList:S,basicResultList:v})=>{var c,s,l;const[i,m]=React.useState([]),[g,T]=React.useState(0),[w,E]=React.useState(!0),[,d]=React.useState(0),{t:f}=reactI18next.useTranslation(),h=r=>{const o=(r+1)%i.length;p(o)},p=r=>{setTimeout(()=>{const o=document.getElementById(`textInput-${r}`);o&&(T(r),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&(m(_.cloneDeep(e.config.configList)),e.singleOn("valueUpdated",()=>{d(r=>r+1)}))},[e]);const b=(l=(s=(c=e==null?void 0:e.textList)==null?void 0:c[0])==null?void 0:s.value)!=null?l:{},C=(r,o)=>{var N,q;(q=e==null?void 0:e.updateTextValue)==null||q.call(e,o,r,(N=e==null?void 0:e.textList)==null?void 0:N[0])};React.useEffect(()=>{t>-1&&x&&p(0)},[t]);const P=()=>{a(actionCreators.PageForward(!0))},n=r=>{E(r),e==null||e.toggleShowText(r)},y=ConfigUtils.ConfigUtils.getStepConfig(S,u),L=y.dataSourceStep>0&&v.length===0,F=y.tool===EVideoToolName.VideoTextTool;return e&&React__default.default.createElement("div",{className:"textToolOperationMenu"},i.map((r,o)=>React__default.default.createElement(SingleTextInput,{config:r,key:r.key,index:o,result:b,updateText:C,switchToNextTextarea:h,hasMultiple:i.length>1,focus:g===o,onNext:P,disabled:L})),F&&React__default.default.createElement("div",{className:"textToolSwitchItem"},f("toggleShowText"),React__default.default.createElement(es.Switch,{style:{alignSelf:"center"},checked:w,onChange:r=>{n(r)}})))};function mapStateToProps(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var TextToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(TextToolSidebar);exports.SingleTextInput=SingleTextInput,exports.TextareaWithFooter=TextareaWithFooter,exports.default=TextToolSidebar$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../../../constant/index.js"),ToolType=require("../../../data/enums/ToolType.js"),StepUtils=require("../../../utils/StepUtils.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),index$9=require("./AnnotationText/index.js"),index$2=require("./ClearIcon/index.js"),index$7=require("./GeneralOperation/index.js"),index$3=require("./ImgAttributeInfo/index.js"),index$8=require("./SwitchAttributeList/index.js"),index$1=require("./TagSidebar/index.js"),index$4=require("./TextToolSidebar/index.js"),index$6=require("./PointCloudToolSidebar/index.js"),index$
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../../../constant/index.js"),ToolType=require("../../../data/enums/ToolType.js"),StepUtils=require("../../../utils/StepUtils.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),index$9=require("./AnnotationText/index.js"),index$2=require("./ClearIcon/index.js"),index$7=require("./GeneralOperation/index.js"),index$3=require("./ImgAttributeInfo/index.js"),index$8=require("./SwitchAttributeList/index.js"),index$1=require("./TagSidebar/index.js"),index$4=require("./TextToolSidebar/index.js"),index$6=require("./PointCloudToolSidebar/index.js"),index$d=require("./ToolStyle/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$a=require("./ScribbleSidebar/index.js"),ToolIcons=require("./ToolIcons.js"),ctx=require("../../../store/ctx.js"),antd=require("antd"),index$5=require("../../../utils/index.js"),icon_menu_fold=require("../../../assets/annotation/common/icon_menu_fold.svg.js"),index$c=require("../../../components/LLMToolView/sidebar/index.js"),index$b=require("../../../components/videoAnnotate/videoClipTool/components/annotatedList/index.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,{Panel}=es.Collapse,sidebarCls=`${index.prefix}-sidebar`,Sidebar=({sider:t,enableColorPicker:T,setSiderWidth:d,propsSiderWidth:C,checkMode:b})=>{const u=ctx.useSelector(a=>StepUtils.getCurrentStepInfo(a.annotation.step,a.annotation.stepList)),[r,N]=React.useState(!0),e=u==null?void 0:u.tool,{t:c}=reactI18next.useTranslation();if(!e)return null;const $=a=>{const o=React__default.default.createElement(index$d,null);return React__default.default.createElement(Panel,{header:c("Style"),className:"panel",key:a},o)},s=React__default.default.createElement(ToolIcons.ToolIcons,{toolName:e,onChange:()=>{}}),l=React__default.default.createElement(index$8,null),f=React__default.default.createElement(index$9,null),m=React__default.default.createElement(es.Collapse,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${sidebarCls}__content`,expandIcon:index$1.expandIconFuc},$("1")),p=React__default.default.createElement(es.Collapse,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${sidebarCls}__content`,expandIcon:index$1.expandIconFuc},React__default.default.createElement(Panel,{header:React__default.default.createElement("div",null,c("Adjust"),React__default.default.createElement(index$2,null)),className:"panel",key:"imgAttribute"},React__default.default.createElement(index$3,null))),n=React__default.default.createElement(index$7.default,null),S=React__default.default.createElement(index$1.default,null),g=React__default.default.createElement(index$4.default,null),x=React__default.default.createElement(index$a,{onChange:(a,o)=>{}}),E=React__default.default.createElement(index$b,null),v=React__default.default.createElement(index$c,{checkMode:b}),i=React__default.default.createElement("div",{className:`${sidebarCls}__horizontal`}),_=React__default.default.createElement(index$6.default,{enableColorPicker:T}),y=React__default.default.createElement(index$7.PointCloudOperation,null);if(t)return typeof t=="function"?React__default.default.createElement("div",{className:`${sidebarCls}`},t({toolIcon:s,attributeList:l,annotationText:f,toolStyle:m,imageAttributeInfo:p,operation:n,tagToolSideBar:S,textToolSideBar:g,horizontal:i,pointCloudToolSidebar:_,pointCloudOperation:y,scribbleSidebar:x,LLMSidebar:v,videoClipSidebar:E})):t;if([ToolType.EToolName.Rect,ToolType.EToolName.Point,ToolType.EToolName.Line,ToolType.EToolName.Rect,ToolType.EToolName.Polygon,ToolType.EToolName.Cuboid].includes(e))return React__default.default.createElement("div",{className:`${sidebarCls}`},s,i,l,f,i,React__default.default.createElement("div",{className:`${sidebarCls}__content`},m,p),n);if(e===ToolType.EToolName.Tag)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement(index$1.default,null));if(e===EVideoToolName.VideoClipTool)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement("div",{className:`${sidebarCls}__content`},E,l),n);if(e===EVideoToolName.VideoTagTool)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement("div",{className:`${sidebarCls}__content`},React__default.default.createElement(index$1.default,null)),n);if(e===EVideoToolName.VideoTextTool)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement(index$4.default,null));if(e===ToolType.EToolName.Text)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement(index$4.default,null));if(e===EPointCloudName.PointCloud){const a=()=>{N(!r),d&&d(r?48:void 0)},o=React__default.default.createElement("div",{style:{width:"48px",height:"100%",display:"flex",justifyContent:"center",background:"#ffffff"}},React__default.default.createElement("span",{onClick:()=>a()},React__default.default.createElement("img",{style:{width:"16px",height:"16px",marginTop:"18px",cursor:"pointer",transform:"rotate(180deg)"},src:icon_menu_fold})));return r?React__default.default.createElement(antd.Tabs,{type:"card",activeKey:"1",className:index$5.classnames({[`${sidebarCls}`]:!0,[`${sidebarCls}__pointCloud`]:!0}),tabBarExtraContent:{left:React__default.default.createElement("span",{onClick:()=>a(),style:{padding:"0px 4px"}},React__default.default.createElement("img",{style:{width:"16px",height:"16px",marginLeft:"4px",cursor:"pointer"},src:icon_menu_fold}))}},React__default.default.createElement(antd.Tabs.TabPane,{tab:"\u5DE5\u5177\u9762\u677F",key:"1",style:{height:"100%",display:"flex",flexDirection:"column"}},React__default.default.createElement("div",{className:`${sidebarCls}__content`},React__default.default.createElement(index$6.default,null)),React__default.default.createElement(index$7.PointCloudOperation,null))):o}return e===ToolType.EToolName.ScribbleTool?React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement("div",{className:`${sidebarCls}__content`},x,l),n):e===ToolType.EToolName.LLM?v:null};exports.default=Sidebar,exports.sidebarCls=sidebarCls;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20'%3e %3cdefs%3e %3cstyle%3e .cls-1 %7b fill: none%3b %7d .cls-2 %7b clip-path: url(%23clip-path)%3b %7d .cls-3 %7b fill: rgba(0%2c0%2c0%2c0)%3b %7d .cls-4 %7b clip-path: url(%23clip-path-2)%3b %7d .cls-5 %7b fill: %23bbb%3b %7d %3c/style%3e %3cclipPath id='clip-path'%3e %3cpath id='%e8%b7%af%e5%be%84_706' data-name='%e8%b7%af%e5%be%84 706' class='cls-1' d='M0%2c4H20V-16H0Z' transform='translate(0 16)'/%3e %3c/clipPath%3e %3cclipPath id='clip-path-2'%3e %3cpath id='%e8%b7%af%e5%be%84_708' data-name='%e8%b7%af%e5%be%84 708' class='cls-1' d='M9.019-14.953a6.887%2c6.887%2c0%2c0%2c1%2c2.653.525A6.81%2c6.81%2c0%2c0%2c1%2c13.843-13a6.656%2c6.656%2c0%2c0%2c1%2c1.467%2c2.125%2c6.522%2c6.522%2c0%2c0%2c1%2c.54%2c2.608%2c8.608%2c8.608%2c0%2c0%2c1-.924%2c3.831%2c12.094%2c12.094%2c0%2c0%2c1-2.038%2c2.9%2c16.4%2c16.4%2c0%2c0%2c1-3.46%2c2.81.811.811%2c0%2c0%2c1-.823%2c0%2c16.4%2c16.4%2c0%2c0%2c1-3.46-2.81%2c12.13%2c12.13%2c0%2c0%2c1-2.038-2.9%2c8.672%2c8.672%2c0%2c0%2c1-.92-3.832%2c6.522%2c6.522%2c0%2c0%2c1%2c.54-2.608A6.677%2c6.677%2c0%2c0%2c1%2c4.195-13%2c6.84%2c6.84%2c0%2c0%2c1%2c6.365-14.43%2c6.92%2c6.92%2c0%2c0%2c1%2c9.019-14.953Zm0%2c4.646a2.35%2c2.35%2c0%2c0%2c0-2.35%2c2.35%2c2.35%2c2.35%2c0%2c0%2c0%2c2.35%2c2.35%2c2.35%2c2.35%2c0%2c0%2c0%2c2.35-2.35A2.35%2c2.35%2c0%2c0%2c0%2c9.019-10.307Z' transform='translate(-2.188 14.953)'/%3e %3c/clipPath%3e %3c/defs%3e %3cg id='icon_timePoint' transform='translate(0 16)'%3e %3cg id='%e7%bb%84_1284' data-name='%e7%bb%84 1284' class='cls-2' transform='translate(0 -16)'%3e %3cpath id='%e8%b7%af%e5%be%84_705' data-name='%e8%b7%af%e5%be%84 705' class='cls-3' d='M-5-21H27.5V11.5H-5Z' transform='translate(-1.25 14.75)'/%3e %3c/g%3e %3cg id='%e7%bb%84_1285' data-name='%e7%bb%84 1285' class='cls-4' transform='translate(3.169 -14.172)'%3e %3cpath id='%e8%b7%af%e5%be%84_707' data-name='%e8%b7%af%e5%be%84 707' class='cls-5' d='M-2.812-19.953H22.6V8.141H-2.812Z' transform='translate(-3.064 14.077)'/%3e %3c/g%3e %3c/g%3e%3c/svg%3e";export{c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20'%3e %3cdefs%3e %3cstyle%3e .cls-1 %7b fill: none%3b %7d .cls-2 %7b clip-path: url(%23clip-path)%3b %7d .cls-3 %7b fill: rgba(0%2c0%2c0%2c0)%3b %7d .cls-4 %7b clip-path: url(%23clip-path-2)%3b %7d .cls-5 %7b fill: %23bbb%3b %7d %3c/style%3e %3cclipPath id='clip-path'%3e %3cpath id='%e8%b7%af%e5%be%84_683' data-name='%e8%b7%af%e5%be%84 683' class='cls-1' d='M0%2c4H20V-16H0Z' transform='translate(0 16)'/%3e %3c/clipPath%3e %3cclipPath id='clip-path-2'%3e %3cpath id='%e8%b7%af%e5%be%84_685' data-name='%e8%b7%af%e5%be%84 685' class='cls-1' d='M5.959-3.6A3.049%2c3.049%2c0%2c0%2c0%2c2.91-.547%2c3.047%2c3.047%2c0%2c0%2c0%2c5.959%2c2.5%2c3.049%2c3.049%2c0%2c0%2c0%2c9.008-.549%2c3.047%2c3.047%2c0%2c0%2c0%2c5.959-3.6ZM6.011.924A1.578%2c1.578%2c0%2c0%2c1%2c4.435-.652%2c1.577%2c1.577%2c0%2c0%2c1%2c6.011-2.229%2c1.575%2c1.575%2c0%2c0%2c1%2c7.588-.654%2c1.578%2c1.578%2c0%2c0%2c1%2c6.011.924Zm7.121-4.73A3.075%2c3.075%2c0%2c0%2c0%2c10.058-.732%2c3.073%2c3.073%2c0%2c0%2c0%2c13.133%2c2.34%2c3.075%2c3.075%2c0%2c0%2c0%2c16.207-.734a3.076%2c3.076%2c0%2c0%2c0-3.074-3.072ZM13.211.869A1.577%2c1.577%2c0%2c0%2c1%2c11.635-.707a1.577%2c1.577%2c0%2c0%2c1%2c1.576-1.576A1.577%2c1.577%2c0%2c0%2c1%2c14.787-.707%2c1.577%2c1.577%2c0%2c0%2c1%2c13.211.869Zm2.26-15.555a3.853%2c3.853%2c0%2c0%2c1%2c.631%2c4.1L9.533-2.23s-4.518-5.2-6.357-7.777A4.217%2c4.217%2c0%2c0%2c1%2c3.279-15L9.533-7.012ZM9.533-3.965a.789.789%2c0%2c0%2c0%2c.789-.789.789.789%2c0%2c0%2c0-.789-.789.789.789%2c0%2c0%2c0-.789.789A.789.789%2c0%2c0%2c0%2c9.533-3.965Z' transform='translate(-2.384 15)'/%3e %3c/clipPath%3e %3c/defs%3e %3cg id='icon_videoCut' transform='translate(0 16)'%3e %3cg id='%e7%bb%84_1219' data-name='%e7%bb%84 1219' class='cls-2' transform='translate(0 -16)'%3e %3cpath id='%e8%b7%af%e5%be%84_682' data-name='%e8%b7%af%e5%be%84 682' class='cls-3' d='M-5-21H27.5V11.5H-5Z' transform='translate(-1.25 14.75)'/%3e %3c/g%3e %3cg id='%e7%bb%84_1220' data-name='%e7%bb%84 1220' class='cls-4' transform='translate(2.98 -14.75)'%3e %3cpath id='%e8%b7%af%e5%be%84_684' data-name='%e8%b7%af%e5%be%84 684' class='cls-5' d='M-2.616-20H23.926V10H-2.616Z' transform='translate(-3.634 13.75)'/%3e %3c/g%3e %3c/g%3e%3c/svg%3e";export{c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='72' height='24' viewBox='0 0 72 24'%3e %3cdefs%3e %3cstyle%3e .cls-1 %7b fill: none%3b %7d .cls-2 %7b fill: %23e02020%3b %7d .cls-3 %7b clip-path: url(%23clip-path)%3b %7d .cls-4 %7b fill: rgba(0%2c0%2c0%2c0)%3b %7d .cls-5 %7b clip-path: url(%23clip-path-2)%3b %7d .cls-6%2c .cls-7 %7b fill: white%3b %7d .cls-7 %7b font-size: 14px%3b font-family: SourceHanSansCN-Medium%2c Source Han Sans CN%3b font-weight: 500%3b %7d %3c/style%3e %3cclipPath id='clip-path'%3e %3cpath id='%e8%b7%af%e5%be%84_683' data-name='%e8%b7%af%e5%be%84 683' class='cls-1' d='M0-2H14V-16H0Z' transform='translate(0 16)'/%3e %3c/clipPath%3e %3cclipPath id='clip-path-2'%3e %3cpath id='%e8%b7%af%e5%be%84_685' data-name='%e8%b7%af%e5%be%84 685' class='cls-1' d='M4.884-7.02A2.133%2c2.133%2c0%2c0%2c0%2c2.752-4.886%2c2.132%2c2.132%2c0%2c0%2c0%2c4.884-2.754%2c2.133%2c2.133%2c0%2c0%2c0%2c7.016-4.888%2c2.132%2c2.132%2c0%2c0%2c0%2c4.884-7.02Zm.037%2c3.163a1.1%2c1.1%2c0%2c0%2c1-1.1-1.1%2c1.1%2c1.1%2c0%2c0%2c1%2c1.1-1.1%2c1.1%2c1.1%2c0%2c0%2c1%2c1.1%2c1.1A1.1%2c1.1%2c0%2c0%2c1%2c4.921-3.857ZM9.9-7.167a2.151%2c2.151%2c0%2c0%2c0-2.15%2c2.151A2.15%2c2.15%2c0%2c0%2c0%2c9.9-2.866a2.151%2c2.151%2c0%2c0%2c0%2c2.15-2.151A2.152%2c2.152%2c0%2c0%2c0%2c9.9-7.167ZM9.955-3.9A1.1%2c1.1%2c0%2c0%2c1%2c8.853-5a1.1%2c1.1%2c0%2c0%2c1%2c1.1-1.1%2c1.1%2c1.1%2c0%2c0%2c1%2c1.1%2c1.1A1.1%2c1.1%2c0%2c0%2c1%2c9.955-3.9Zm1.58-10.885a2.7%2c2.7%2c0%2c0%2c1%2c.441%2c2.869L7.383-6.064S4.224-9.705%2c2.937-11.507A2.953%2c2.953%2c0%2c0%2c1%2c3.01-15L7.383-9.41Zm-4.152%2c7.5a.552.552%2c0%2c0%2c0%2c.552-.552.552.552%2c0%2c0%2c0-.552-.552.552.552%2c0%2c0%2c0-.552.552A.552.552%2c0%2c0%2c0%2c7.383-7.278Z' transform='translate(-2.384 15)'/%3e %3c/clipPath%3e %3c/defs%3e %3cg id='icon_videoCutting' transform='translate(-32 -218)'%3e %3crect id='%e7%9f%a9%e5%bd%a2_414' data-name='%e7%9f%a9%e5%bd%a2 414' class='cls-2' width='72' height='24' rx='4' transform='translate(32 218)'/%3e %3cg id='%e7%bb%84_1232' data-name='%e7%bb%84 1232' transform='translate(3)'%3e %3cg id='%e7%bb%84_1230' data-name='%e7%bb%84 1230' transform='translate(36 239)'%3e %3cg id='%e7%bb%84_1219' data-name='%e7%bb%84 1219' class='cls-3' transform='translate(0 -16)'%3e %3cpath id='%e8%b7%af%e5%be%84_682' data-name='%e8%b7%af%e5%be%84 682' class='cls-4' d='M-5-21H17.75V1.75H-5Z' transform='translate(0.625 16.625)'/%3e %3c/g%3e %3cg id='%e7%bb%84_1220' data-name='%e7%bb%84 1220' class='cls-5' transform='translate(2.091 -15.123)'%3e %3cpath id='%e8%b7%af%e5%be%84_684' data-name='%e8%b7%af%e5%be%84 684' class='cls-6' d='M-2.616-20H15.945V.993H-2.616Z' transform='translate(-1.755 15.626)'/%3e %3c/g%3e %3c/g%3e %3ctext id='%e6%88%aa%e5%8f%96%e4%b8%ad' class='cls-7' transform='translate(52 235)'%3e%3ctspan x='0' y='0'%3e%e6%88%aa%e5%8f%96%e4%b8%ad%3c/tspan%3e%3c/text%3e %3c/g%3e %3c/g%3e%3c/svg%3e";export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useState as
|
|
1
|
+
import e,{useState as M,useRef as X,useEffect as q}from"react";import{Tooltip as J,Radio as K,Switch as se}from"antd";import{QuestionCircleOutlined as ce}from"@ant-design/icons";import{TextareaWithFooter as ie}from"../../../views/MainView/sidebar/TextToolSidebar/index.js";import{timeFormat as Y,getAttributeColor as de,getAttributeFontColor as me,updateColorOpacity as Ee,getAttributeShowText as pe,DEFAULT_TEXT_CONFIG_ITEM as fe}from"../../../utils/audio.js";import{cKeyCode as ve}from"@labelbee/lb-annotation";import z from"classnames";import Z,{useAudioClipStore as xe}from"../audioContext/index.js";import o from"./index.module.scss.js";import{useTranslation as ee}from"react-i18next";var Fe=Object.defineProperty,ge=Object.defineProperties,Ce=Object.getOwnPropertyDescriptors,te=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,ae=(u,n,r)=>n in u?Fe(u,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[n]=r,le=(u,n)=>{for(var r in n||(n={}))he.call(n,r)&&ae(u,r,n[r]);if(te)for(var r of te(n))be.call(n,r)&&ae(u,r,n[r]);return u},Te=(u,n)=>ge(u,Ce(n));const d=ve.default,ne=({onClick:u,title:n,disabled:r})=>e.createElement(J,{placement:"bottom",title:n},e.createElement("span",{className:z({[o.clearIcon]:!0,[o.disabled]:r}),onClick:u})),G=u=>{var n;const{t:r}=ee(),D=X(null),[f,y]=M(!1),[w,v]=M(!1),{disabled:s,config:c,result:P,updateText:x,index:F,switchToNextTextarea:O,hasMultiple:L,textID:b,addPlaceholder:g,onFocus:N,onBlur:T,onFocusStyle:k={},extra:$}=u,{maxLength:C}=c,B=P?P[c.key]:"",I=(n=B==null?void 0:B.length)!=null?n:0,S=a=>{x&&(x(a,c.key),c.required&&v(!a))},j=L&&O,m={id:`textInput-${F}`,ref:D,disabled:s,value:B,maxLength:C,autoSize:{minRows:2,maxRows:6},onChange:a=>{const i=a.target.value;S(i)},onFocus:a=>{y(!0),N==null||N(a),a.target.value&&v(!1)},onBlur:a=>{y(!1),T==null||T(a),c.required&&v(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:i}=a;if(a.ctrlKey){if(i===d.Enter&&a.preventDefault(),g&&[d.One,d.Two,d.Three].includes(i))switch(a.preventDefault(),i){case d.One:g("\u4986");break;case d.Two:g("\u652B");break;case d.Three:g("\u7383");break}}else i===d.Tab&&j?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),O(F)):a.nativeEvent.stopPropagation()}},E=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},j&&e.createElement("span",null,"[",r("Switch"),"]Tab"),e.createElement("span",null,"[",r("TurnPage"),"]Ctrl+Enter")),e.createElement("div",{className:o.wordCount},e.createElement("span",{className:I>=C?o.warning:""},I),"/",e.createElement("span",null,C)));return q(()=>{s&&y(!1)},[s]),q(()=>{v(!1)},[b]),e.createElement("div",{className:o.textField},e.createElement("div",{className:o.label},e.createElement("span",{className:z({[o.required]:c.required})},c.label),e.createElement(ne,{onClick:()=>{s||S("")},title:"",disabled:s}),e.createElement("div",{className:o.extra},$)),e.createElement("div",{className:z({disabled:s,"textarea-outline":!0,"ant-input-focused":f,[o.textareaContainer]:!0,[o.focus]:f,[o.invalid]:w}),style:f?k:{}},e.createElement(ie,{footer:E,textareaProps:m})))},ye=u=>{const{configList:n,autofocus:r,textID:D,result:f,showText:y,updateText:w,toggleShowText:v,textInputDisabled:s,isCheck:c,isEdit:P,config:x,preContext:F,regions:O=[],textConfigurable:L=!0,clipTextConfigurable:b,clipAttributeConfigurable:g,updateRegion:N,clipAttributeList:T=[]}=u,{t:k}=ee(),[$,C]=M(0),[B,I]=M(""),S=X(null),{audioClipState:j}=xe(),m=n||[le({},fe)];let E=O;if(b&&!c){const t=j.selectedRegion.id;E=E.filter(l=>l.id===t)}const a=t=>{setTimeout(()=>{const l=document.getElementById(`textInput-${t}`);l&&(C(t),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})},i=t=>{const l=L?m.length:0,p=b?E.length:0,h=l+p,_=(t+1)%h;a(_)},Q=t=>{t.keyCode===d.Tab&&(t.preventDefault(),m.length>0&&a(0))},R=t=>{const l=document.getElementById(`textInput-${$}`);if(!(x==null?void 0:x.enablePlaceholderHotkey)||!l||!w)return;const{value:p,selectionStart:h,selectionEnd:_}=l,A=`${p.slice(0,h)}${t}${p.slice(_)}`;w(A,m[$].key),I(t),setTimeout(()=>{l.setSelectionRange(h+1,h+1),l.focus()},0),clearTimeout(S.current),S.current=setTimeout(()=>{I("")},400)};q(()=>(P||document.addEventListener("keydown",Q),()=>{document.removeEventListener("keydown",Q)}),[n]),q(()=>{r&&!s&&a(0)},[D]);let H=m;c&&(H=m.filter(t=>(f==null?void 0:f[t.key])!==void 0));let U={};return b&&E&&E.forEach(t=>{const{id:l,text:p}=t;U[l]=p}),e.createElement(e.Fragment,null,(x==null?void 0:x.enablePlaceholderHotkey)&&e.createElement("div",{className:o.placeholderHotkey},e.createElement("div",{className:o.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",e.createElement(J,{overlayStyle:{maxWidth:240},title:e.createElement("div",null,e.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),e.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},e.createElement(ce,{className:o.questionIcon}))),e.createElement(K.Group,{value:B},e.createElement(K.Button,{value:"\u4986",onClick:t=>R(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),e.createElement("div",{className:"hotkey"},"Ctrl+1"))),e.createElement(K.Button,{value:"\u652B",onClick:t=>R(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),e.createElement("div",{className:"hotkey"},"Ctrl+2"))),e.createElement(K.Button,{value:"\u7383",onClick:t=>R(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),e.createElement("div",{className:"hotkey"},"Ctrl+3"))))),e.createElement("div",{className:o.textInputContainer},e.createElement(Z,{audioContext:F==null?void 0:F.before}),L&&H.map((t,l)=>e.createElement(G,{config:t,key:l,index:l,result:f,updateText:w,switchToNextTextarea:i,hasMultiple:m.length>1,disabled:s,textID:D,addPlaceholder:R,onFocus:()=>C(l)})),b&&E.map((t,l)=>{const{id:p,start:h,end:_,attribute:A}=t,oe={label:`${k("textTool")}\uFF08${Y(h,"ss.SSS")} - ${Y(_,"ss.SSS")}\uFF09`,key:p,maxLength:3e3},V=H.length+l,W=de(A,T),re={color:me(A,T),backgroundColor:W};return e.createElement(G,{config:oe,key:l,index:V,disabled:s,result:U,updateText:ue=>{N==null||N(Te(le({},t),{text:ue}))},switchToNextTextarea:()=>{i(V)},hasMultiple:!0,onFocus:()=>C(V),onFocusStyle:g?{borderColor:W,boxShadow:`0 0 0 2px ${Ee(W,.4)}`}:{},extra:g?e.createElement("div",{style:re,className:o.attribute},pe(A,[{value:"",key:k("NoAttribute")},...T])):null})}),e.createElement(Z,{audioContext:F==null?void 0:F.after}),v&&e.createElement("div",{className:o.switchItem},k("toggleShowText"),e.createElement(se,{style:{alignSelf:"center"},checked:y,onChange:t=>{v(t)}}))))};export{ne as ClearIcon,G as SingleTextInput,ye as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"react";import{connect as x}from"react-redux";import{LabelBeeContext as y,useDispatch as I}from"../../store/ctx.js";import{ANNOTATION_ACTIONS as _}from"../../store/Actions.js";import{PageBackward as c,PageForward as d,PageJump as m}from"../../store/annotation/actionCreators.js";import{TagToolInstanceAdaptor as b}from"./videoTagTool/TagToolInstanceAdaptor.js";import{cTool as S}from"@labelbee/lb-annotation";import V from"./videoClipTool/index.js";import A from"../../utils/StepUtils.js";import{jsonParser as E}from"../../utils/index.js";import{VideoTextTool as C}from"./videoTextTool/index.js";var N=Object.defineProperty,h=Object.defineProperties,L=Object.getOwnPropertyDescriptors,v=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,O=(e,o,t)=>o in e?N(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,u=(e,o)=>{for(var t in o||(o={}))B.call(o,t)&&O(e,t,o[t]);if(v)for(var t of v(o))F.call(o,t)&&O(e,t,o[t]);return e},f=(e,o)=>h(e,L(o));const{EVideoToolName:g}=S,J=e=>{const{stepInfo:o}=e,t=o==null?void 0:o.tool,r=I(),a=n=>{r({type:_.SET_TOOL,payload:{instance:n}})},i=()=>{r({type:_.SET_TOOL,payload:{instance:void 0}})};return t===g.VideoClipTool?s.createElement(V,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):t===g.VideoTextTool?s.createElement(C,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):t===g.VideoTagTool?s.createElement(b,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):null},D=e=>{var o,t,r,a,i;const{annotation:{imgList:n,imgIndex:T,step:P,stepList:w,loading:j}}=e,p=A.getCurrentStepInfo((o=e.annotation)==null?void 0:o.step,(t=e.annotation)==null?void 0:t.stepList),l=(r=n[T])!=null?r:{};return{imgIndex:T,imgList:n,stepInfo:p,config:E(p==null?void 0:p.config),step:P,stepList:w,path:(i=(a=l==null?void 0:l.path)!=null?a:l==null?void 0:l.url)!=null?i:"",loading:j}};var U=x(D,null,null,{context:y})(J);export{U as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"react";import{EClipStatus as i}from"./constant.js";const t=e.createContext({result:[],selectedID:"",attributeList:[],clipStatus:i.Stop}),r=t.Provider,o=e.createContext({onSelectedTimeSlice:()=>{},removeTimeSlice:()=>{},updateSelectedSliceTimeProperty:()=>{}});o.Provider;export{o as VideoClipAnnotatedListContext,t as VideoClipToolContext,r as VideoClipToolContextProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{timeFormat as o,precisionMinus as v}from"../../../../utils/audio.js";import{AttributeUtils as F}from"@labelbee/lb-annotation";import{Tooltip as S}from"antd";import e from"react";import{ETimeSliceType as T}from"../constant.js";import{decimalReserved as u}from"../../../videoPlayer/utils.js";import{useTranslation as A}from"react-i18next";const $=m=>{var l,n;const{slot:s,item:t,attributeList:c}=m,{t:r}=A();if(!s)return null;const{type:d,attribute:p,textAttribute:b}=t;if(t.start===void 0||t.end===void 0)return null;const i=u(t.start,2),a=(n=u((l=t.end)!=null?l:0,2))!=null?n:0,f=e.createElement("div",null,e.createElement("div",null,d===T.Period?`${o(i,"ss:SS")}~${o(a,"ss:SS")}\uFF0C${v(a,i)}s`:o(i,"ss:SS")),e.createElement("div",null,`${r("Attribute")}\uFF1A${F.getAttributeShowText(p,c)||r("NoAttribute")}`),e.createElement("div",null,`${r("textTool")}\uFF1A${b}`));return e.createElement(S,{title:f},s)};export{$ as default};
|