@labelbee/lb-components 1.20.0-alpha.1 → 1.20.0-alpha.10
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/LLMToolView/sidebar/components/answerList/index.js +1 -1
- package/dist/components/LLMToolView/sidebar/components/textEditor/index.js +2 -1
- package/dist/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -0
- package/dist/components/LLMToolView/sidebar/components/textInputBox/index.js +2 -1
- package/dist/components/LLMToolView/sidebar/components/textInputBox/index.module.scss.js +1 -0
- package/dist/components/LLMToolView/sidebar/index.js +1 -1
- package/dist/components/audioAnnotate/textInput/index.js +1 -1
- package/dist/components/latexEditor/constant/config.js +1 -0
- package/dist/components/latexEditor/index.js +1 -0
- package/dist/components/latexEditor/index.module.scss.js +1 -0
- 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 +367 -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/LLMToolView/sidebar/components/textEditor/index.d.ts +1 -0
- package/dist/types/components/LLMToolView/types.d.ts +1 -0
- package/dist/types/components/audioAnnotate/index.d.ts +1 -1
- package/dist/types/components/latexEditor/constant/config.d.ts +18 -0
- package/dist/types/components/latexEditor/index.d.ts +12 -0
- 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/LLMToolView/sidebar/components/answerList/index.js +1 -1
- package/es/components/LLMToolView/sidebar/components/textEditor/index.js +2 -1
- package/es/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -0
- package/es/components/LLMToolView/sidebar/components/textInputBox/index.js +2 -1
- package/es/components/LLMToolView/sidebar/components/textInputBox/index.module.scss.js +1 -0
- package/es/components/LLMToolView/sidebar/index.js +1 -1
- package/es/components/audioAnnotate/textInput/index.js +1 -1
- package/es/components/latexEditor/constant/config.js +1 -0
- package/es/components/latexEditor/index.js +1 -0
- package/es/components/latexEditor/index.module.scss.js +1 -0
- 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 +367 -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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IA2MapStateProps } from '@/store/annotation/map';
|
|
3
|
-
import {
|
|
3
|
+
import { DrawLayerSlot } from '@/types/main';
|
|
4
4
|
interface IProps extends IA2MapStateProps {
|
|
5
|
-
drawLayerSlot?:
|
|
5
|
+
drawLayerSlot?: DrawLayerSlot;
|
|
6
6
|
checkMode?: boolean;
|
|
7
7
|
intelligentFit?: boolean;
|
|
8
8
|
setIsEnlargeTopView: (value: boolean) => void;
|
|
@@ -11,5 +11,5 @@ interface IProps extends IA2MapStateProps {
|
|
|
11
11
|
}
|
|
12
12
|
declare const _default: import("react-redux").ConnectedComponent<React.FC<IProps>, import("react-redux").Omit<IProps & {
|
|
13
13
|
children?: React.ReactNode;
|
|
14
|
-
}, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "
|
|
14
|
+
}, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "stepInfo" | "currentData" | "configString">>;
|
|
15
15
|
export default _default;
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* @date 2022-06-21
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import {
|
|
8
|
+
import { DrawLayerSlot } from '@/types/main';
|
|
9
9
|
import { IA2MapStateProps } from '@/store/annotation/map';
|
|
10
10
|
interface IProps extends IA2MapStateProps {
|
|
11
|
-
drawLayerSlot?:
|
|
11
|
+
drawLayerSlot?: DrawLayerSlot;
|
|
12
12
|
checkMode?: boolean;
|
|
13
13
|
intelligentFit?: boolean;
|
|
14
14
|
}
|
|
15
15
|
declare const _default: import("react-redux").ConnectedComponent<React.FC<IProps>, import("react-redux").Omit<IProps & {
|
|
16
16
|
children?: React.ReactNode;
|
|
17
|
-
}, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "
|
|
17
|
+
}, "imgIndex" | "imgList" | "config" | "highlightAttribute" | "loadPCDFileLoading" | "stepInfo" | "currentData" | "configString">>;
|
|
18
18
|
export default _default;
|
|
@@ -4,12 +4,23 @@
|
|
|
4
4
|
* @date 2022-06-02
|
|
5
5
|
*/
|
|
6
6
|
import React from 'react';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
import { DrawLayerSlot } from '@/types/main';
|
|
8
|
+
import { IStepInfo } from '@/types/step';
|
|
9
|
+
import { IFileItem } from '@/types/data';
|
|
10
|
+
export interface IVideoAnnotateProps {
|
|
11
|
+
path: string;
|
|
12
|
+
loading: boolean;
|
|
13
|
+
videoContext?: any;
|
|
14
|
+
stepInfo: IStepInfo;
|
|
15
|
+
step: number;
|
|
16
|
+
stepList: IStepInfo[];
|
|
17
|
+
config: any;
|
|
18
|
+
imgIndex: number;
|
|
19
|
+
imgList: IFileItem[];
|
|
20
|
+
drawLayerSlot?: DrawLayerSlot;
|
|
21
|
+
footer?: any;
|
|
22
|
+
}
|
|
23
|
+
declare const _default: import("react-redux").ConnectedComponent<React.FC<IVideoAnnotateProps>, import("react-redux").Omit<IVideoAnnotateProps & {
|
|
13
24
|
children?: React.ReactNode;
|
|
14
|
-
}, "
|
|
25
|
+
}, "stepList" | "step" | "imgIndex" | "imgList" | "config" | "loading" | "path" | "stepInfo">>;
|
|
15
26
|
export default _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author whq <752342314@qq.com>
|
|
3
|
+
* @file Store for VideoClipTool
|
|
4
|
+
* @date 2023-12-12
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { EClipStatus } from './constant';
|
|
8
|
+
import { IInputList, IVideoTimeSlice } from '@labelbee/lb-utils';
|
|
9
|
+
interface IVideoClipToolContext {
|
|
10
|
+
result: IVideoTimeSlice[];
|
|
11
|
+
selectedID: string;
|
|
12
|
+
attributeList: IInputList[];
|
|
13
|
+
videoPlayer?: any;
|
|
14
|
+
clipStatus: EClipStatus;
|
|
15
|
+
selectedAttribute?: string;
|
|
16
|
+
contextToCancel?: (e: any) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const VideoClipToolContext: React.Context<IVideoClipToolContext>;
|
|
19
|
+
export declare const VideoClipToolContextProvider: React.Provider<IVideoClipToolContext>;
|
|
20
|
+
interface IVideoClipAnnotatedListContext {
|
|
21
|
+
onSelectedTimeSlice: (timeSlice: IVideoTimeSlice) => void;
|
|
22
|
+
removeTimeSlice: (timeSlice: IVideoTimeSlice) => void;
|
|
23
|
+
updateSelectedSliceTimeProperty: (val: number, key: 'start' | 'end') => void;
|
|
24
|
+
}
|
|
25
|
+
export declare const VideoClipAnnotatedListContext: React.Context<IVideoClipAnnotatedListContext>;
|
|
26
|
+
export declare const VideoClipAnnotatedListContextProvider: React.Provider<IVideoClipAnnotatedListContext>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IVideoTimeSlice, IInputList } from '@labelbee/lb-utils';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare const ToolTipForClip: (props: {
|
|
4
|
+
slot: React.ReactElement | undefined;
|
|
5
|
+
item: IVideoTimeSlice;
|
|
6
|
+
attributeList: IInputList[];
|
|
7
|
+
}) => React.JSX.Element | null;
|
|
8
|
+
export default ToolTipForClip;
|
package/dist/types/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IProps {
|
|
3
|
+
track: any;
|
|
4
|
+
currentTime: number;
|
|
5
|
+
attributeList: any[];
|
|
6
|
+
readonly: boolean;
|
|
7
|
+
onClipping: boolean;
|
|
8
|
+
onTrackResizeStart: () => void;
|
|
9
|
+
onResize: (direction: any, changedPercentage: number) => void;
|
|
10
|
+
style: React.CSSProperties;
|
|
11
|
+
isSelected?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const ResizableSnippet: (props: IProps) => React.JSX.Element;
|
|
14
|
+
export default ResizableSnippet;
|
package/dist/types/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file 视频截取工具,片段截取时间范围
|
|
3
|
+
* @author lijingchi <lijingchi1@sensetime.com>
|
|
4
|
+
* @createdate 2022-11-07
|
|
5
|
+
*/
|
|
6
|
+
import { IVideoTimeSlice } from '@labelbee/lb-utils';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* 选中的片段进行时间更新的输入模块
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
declare const TimeSliceRange: ({ selectedTimeSlice, videoPlayer, updateTimeForSelected, disabled, }: {
|
|
13
|
+
selectedTimeSlice?: IVideoTimeSlice | undefined;
|
|
14
|
+
videoPlayer?: any;
|
|
15
|
+
updateTimeForSelected: (val: number, key: 'start' | 'end') => void;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
}) => React.JSX.Element | null;
|
|
18
|
+
export default TimeSliceRange;
|
|
@@ -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;
|