@labelbee/lb-components 1.20.0 → 1.21.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/assets/annotation/video/icon_timePoint.svg.js +1 -0
  2. package/dist/assets/annotation/video/icon_videoCut.svg.js +1 -0
  3. package/dist/assets/annotation/video/icon_videoCutting.svg.js +1 -0
  4. package/dist/components/audioAnnotate/textInput/index.js +1 -1
  5. package/dist/components/videoAnnotate/index.js +1 -1
  6. package/dist/components/videoAnnotate/videoClipTool/VideoClipToolContext.js +1 -0
  7. package/dist/components/videoAnnotate/videoClipTool/components/ToolTipForClip.js +1 -0
  8. package/dist/components/videoAnnotate/videoClipTool/components/annotatedList/index.js +1 -0
  9. package/dist/components/videoAnnotate/videoClipTool/components/annotatedList/index.module.scss.js +1 -0
  10. package/dist/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.js +1 -0
  11. package/dist/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.module.scss.js +1 -0
  12. package/dist/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.js +1 -0
  13. package/dist/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.module.scss.js +1 -0
  14. package/dist/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js +1 -0
  15. package/dist/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.module.scss.js +1 -0
  16. package/dist/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.js +1 -0
  17. package/dist/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.module.scss.js +1 -0
  18. package/dist/components/videoAnnotate/videoClipTool/components/videoTrack/index.js +1 -0
  19. package/dist/components/videoAnnotate/videoClipTool/components/videoTrack/index.module.scss.js +1 -0
  20. package/dist/components/videoAnnotate/videoClipTool/constant.js +1 -0
  21. package/dist/components/videoAnnotate/videoClipTool/index.js +1 -0
  22. package/dist/components/videoAnnotate/videoClipTool/index.module.scss.js +1 -0
  23. package/dist/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -0
  24. package/dist/components/videoAnnotate/videoTextTool/index.js +1 -0
  25. package/dist/components/videoPlayer/VideoTagLayer.js +1 -1
  26. package/dist/components/videoPlayer/VideoTextLayer.js +2 -0
  27. package/dist/components/videoPlayer/components/controller/index.js +1 -1
  28. package/dist/components/videoPlayer/index.js +1 -1
  29. package/dist/components/videoPlayer/utils.js +1 -1
  30. package/dist/index.css +261 -2
  31. package/dist/index.js +1 -1
  32. package/dist/store/annotation/reducer.js +1 -1
  33. package/dist/types/App.d.ts +2 -2
  34. package/dist/types/components/audioAnnotate/index.d.ts +1 -1
  35. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +1 -1
  36. package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +1 -1
  37. package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +1 -1
  38. package/dist/types/components/pointCloudView/PointCloudListener.d.ts +1 -1
  39. package/dist/types/components/pointCloudView/PointCloudSegment.d.ts +1 -1
  40. package/dist/types/components/pointCloudView/PointCloudSegment2DView.d.ts +1 -1
  41. package/dist/types/components/pointCloudView/PointCloudSegmentListener.d.ts +1 -1
  42. package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +1 -1
  43. package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +3 -3
  44. package/dist/types/components/pointCloudView/index.d.ts +3 -3
  45. package/dist/types/components/videoAnnotate/index.d.ts +18 -7
  46. package/dist/types/components/videoAnnotate/videoClipTool/VideoClipToolContext.d.ts +27 -0
  47. package/dist/types/components/videoAnnotate/videoClipTool/components/ToolTipForClip.d.ts +8 -0
  48. package/dist/types/components/videoAnnotate/videoClipTool/components/annotatedList/index.d.ts +7 -0
  49. package/dist/types/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.d.ts +14 -0
  50. package/dist/types/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.d.ts +18 -0
  51. package/dist/types/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.d.ts +6 -0
  52. package/dist/types/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.d.ts +3 -0
  53. package/dist/types/components/videoAnnotate/videoClipTool/components/videoTrack/index.d.ts +11 -0
  54. package/dist/types/components/videoAnnotate/videoClipTool/constant.d.ts +26 -0
  55. package/dist/types/components/videoAnnotate/videoClipTool/index.d.ts +131 -0
  56. package/dist/types/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptor.d.ts +6 -10
  57. package/dist/types/components/videoAnnotate/videoTextTool/index.d.ts +56 -0
  58. package/dist/types/components/videoPlayer/VideoTagLayer.d.ts +1 -0
  59. package/dist/types/components/videoPlayer/VideoTextLayer.d.ts +2 -0
  60. package/dist/types/components/videoPlayer/components/controller/index.d.ts +4 -2
  61. package/dist/types/components/videoPlayer/index.d.ts +11 -0
  62. package/dist/types/components/videoPlayer/utils.d.ts +6 -0
  63. package/dist/types/index.d.ts +1 -1
  64. package/dist/types/views/MainView/sidebar/TextToolSidebar/index.d.ts +2 -1
  65. package/dist/utils/audio.js +1 -1
  66. package/dist/views/MainView/LLMLayout/index.js +1 -1
  67. package/dist/views/MainView/index.js +1 -1
  68. package/dist/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
  69. package/dist/views/MainView/sidebar/index.js +1 -1
  70. package/es/assets/annotation/video/icon_timePoint.svg.js +1 -0
  71. package/es/assets/annotation/video/icon_videoCut.svg.js +1 -0
  72. package/es/assets/annotation/video/icon_videoCutting.svg.js +1 -0
  73. package/es/components/audioAnnotate/textInput/index.js +1 -1
  74. package/es/components/videoAnnotate/index.js +1 -1
  75. package/es/components/videoAnnotate/videoClipTool/VideoClipToolContext.js +1 -0
  76. package/es/components/videoAnnotate/videoClipTool/components/ToolTipForClip.js +1 -0
  77. package/es/components/videoAnnotate/videoClipTool/components/annotatedList/index.js +1 -0
  78. package/es/components/videoAnnotate/videoClipTool/components/annotatedList/index.module.scss.js +1 -0
  79. package/es/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.js +1 -0
  80. package/es/components/videoAnnotate/videoClipTool/components/resizableSnippet/index.module.scss.js +1 -0
  81. package/es/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.js +1 -0
  82. package/es/components/videoAnnotate/videoClipTool/components/timeSliceRange/index.module.scss.js +1 -0
  83. package/es/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js +1 -0
  84. package/es/components/videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.module.scss.js +1 -0
  85. package/es/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.js +1 -0
  86. package/es/components/videoAnnotate/videoClipTool/components/videoTimeSlicesOverVideo/index.module.scss.js +1 -0
  87. package/es/components/videoAnnotate/videoClipTool/components/videoTrack/index.js +1 -0
  88. package/es/components/videoAnnotate/videoClipTool/components/videoTrack/index.module.scss.js +1 -0
  89. package/es/components/videoAnnotate/videoClipTool/constant.js +1 -0
  90. package/es/components/videoAnnotate/videoClipTool/index.js +1 -0
  91. package/es/components/videoAnnotate/videoClipTool/index.module.scss.js +1 -0
  92. package/es/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -0
  93. package/es/components/videoAnnotate/videoTextTool/index.js +1 -0
  94. package/es/components/videoPlayer/VideoTagLayer.js +1 -1
  95. package/es/components/videoPlayer/VideoTextLayer.js +2 -0
  96. package/es/components/videoPlayer/components/controller/index.js +1 -1
  97. package/es/components/videoPlayer/index.js +1 -1
  98. package/es/components/videoPlayer/utils.js +1 -1
  99. package/es/index.css +261 -2
  100. package/es/index.js +1 -1
  101. package/es/store/annotation/reducer.js +1 -1
  102. package/es/utils/audio.js +1 -1
  103. package/es/views/MainView/index.js +1 -1
  104. package/es/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
  105. package/es/views/MainView/sidebar/index.js +1 -1
  106. package/package.json +6 -4
  107. package/dist/components/videoPlayer/TagToolInstanceAdaptor.js +0 -1
  108. package/es/components/videoPlayer/TagToolInstanceAdaptor.js +0 -1
  109. /package/dist/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.js +0 -0
  110. /package/dist/types/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.d.ts +0 -0
  111. /package/es/components/{videoPlayer → videoAnnotate/videoTagTool}/TagToolInstanceAdaptorI18nProvider.js +0 -0
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const VideoTimeSlicesOverVideo: (props: any) => React.JSX.Element;
3
+ export default VideoTimeSlicesOverVideo;
@@ -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;
@@ -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 './types';
11
- import { IFileItem } from '@/types/data';
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: TagToolInstanceAdaptor) => void;
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
- videoRef?: HTMLVideoElement;
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 {};
@@ -7,6 +7,7 @@ interface IVideoTagLayerProps {
7
7
  };
8
8
  }>;
9
9
  inputList: IInputList[];
10
+ hasPromptLayer?: boolean;
10
11
  }
11
12
  export declare const VideoTagLayer: React.FC<IVideoTagLayerProps>;
12
13
  export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const VideoTextLayer: (props: any) => React.JSX.Element;
@@ -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
- declare const VideoController: () => React.JSX.Element;
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;
@@ -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/videoPlayer/TagToolInstanceAdaptorI18nProvider';
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;
@@ -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,s)=>{e>i&&(r=i,u=s)}),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)};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.precisionAdd=precisionAdd,exports.precisionMinus=precisionMinus,exports.timeFormat=timeFormat,exports.updateColorOpacity=updateColorOpacity;
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$4=require("../../../constant/index.js"),es=require("antd/es"),React=require("react"),index$3=require("../sidebar/index.js"),index$2=require("../toolFooter/index.js"),dom=require("../../../utils/dom.js"),index=require("../../../utils/index.js"),ctx=require("../../../store/ctx.js"),index$1=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$4.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$4.prefix}-LLMLayout`]:!0})},React__default.default.createElement(index$1,{checkMode:e.checkMode,showTips:e.showTips,tips:e.tips}),React__default.default.createElement(index$2.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$3.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
+ "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,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);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:n,step:l}=e,r=(t=reducer.getStepConfig(n,l))==null?void 0:t.tool,i=ToolUtils.isVideoTool(r),a=ToolUtils.isPointCloudTool(r);return i?React__default.default.createElement(index$5,__spreadValues({},e)):a?React__default.default.createElement(PointCloudAnnotate,__spreadValues({},e)):React__default.default.createElement(ImageAnnotate,__spreadValues({},e))},ViewportProviderLayout=e=>{var t,n,l;const{t:r}=reactI18next.useTranslation(),{stepList:i,step:a}=e,o=(t=reducer.getStepConfig(i,a))==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:(n=e.style)==null?void 0:n.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,n,l,r,i,a,o;const[d,u]=React.useState(void 0),c=(n=(t=e.style)==null?void 0:t.sider)==null?void 0:n.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=(a=e.style)==null?void 0:a.sider)==null?void 0:o.width}))))},mapStateToProps=({annotation:e})=>{var t,n,l;const{imgList:r,loading:i}=e,a=(t=r[e.imgIndex])!=null?t:{};return{path:(l=(n=a==null?void 0:a.path)!=null?n:a==null?void 0:a.url)!=null?l:"",loading:i}};var MainView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(MainView);module.exports=MainView$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,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),[p,i]=React.useState(!1),[h,x]=React.useState(!1),{t:u}=reactI18next.useTranslation(),{disabled:l,config:s,result:m,updateText:v,index:g,switchToNextTextarea:E,hasMultiple:y,onNext:c}=e,{maxLength:d}=s,f=m?m[s.key]:"",T=(t=f==null?void 0:f.length)!=null?t:0,C=n=>{v&&(v(n,s.key),s.required&&x(!n))},b=y&&E,r={id:`textInput-${g}`,ref:a,disabled:l,value:f,maxLength:d,autoSize:{minRows:2,maxRows:6},onChange:n=>{const P=n.target.value;C(P)},onFocus:()=>{i(!0)},onBlur:n=>{i(!1),s.required&&x(!n.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:n=>{n.ctrlKey&&n.keyCode===EKeyCode.Enter&&(c&&c(),n.preventDefault()),n.keyCode===EKeyCode.Tab&&b&&(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),E(g)),n.nativeEvent.stopPropagation()}},o=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},b&&React__default.default.createElement("span",null,`[${u("Switch")}]Tab`),React__default.default.createElement("span",null,`[${u("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:T>=d?"warning":""},T),"/",React__default.default.createElement("span",null,d)));return React.useEffect(()=>{l&&i(!1)},[l]),React__default.default.createElement("div",{className:"textField"},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("span",{className:index.classnames({required:s.required})},s.label),React__default.default.createElement("i",{className:index.classnames({clearText:!0,disabled:l}),onClick:()=>{l||C("")}})),React__default.default.createElement("div",{className:index.classnames({disabled:l,"textarea-outline":!0,"ant-input-focused":p,textareaContainer:!0,focus:p,invalid:h})},React__default.default.createElement(TextareaWithFooter,{footer:o,textareaProps:r})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:a,triggerEventAfterIndexChanged:p,step:i,stepList:h,basicResultList:x})=>{var u,l;const[s,m]=React.useState([]),[v,g]=React.useState(0),[,E]=React.useState(0),y=r=>{const o=(r+1)%s.length;c(o)},c=r=>{setTimeout(()=>{const o=document.getElementById(`textInput-${r}`);o&&(g(r),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&(m(_.cloneDeep(e.config.configList)),e.singleOn("valueUpdated",()=>{E(r=>r+1)}))},[e]);const d=(r,o)=>{e.updateTextValue(o,r)};React.useEffect(()=>{t>-1&&p&&c(0)},[t]);const f=(l=(u=e.textList[0])==null?void 0:u.value)!=null?l:{},T=()=>{a(actionCreators.PageForward(!0))},b=ConfigUtils.ConfigUtils.getStepConfig(h,i).dataSourceStep>0&&x.length===0;return React__default.default.createElement("div",{className:"textToolOperationMenu"},s.map((r,o)=>React__default.default.createElement(SingleTextInput,{config:r,key:r.key,index:o,result:f,updateText:d,switchToNextTextarea:y,hasMultiple:s.length>1,focus:v===o,onNext:T,disabled:b})))};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
+ "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$c=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$b=require("../../../components/LLMToolView/sidebar/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,{Panel}=es.Collapse,sidebarCls=`${index.prefix}-sidebar`,Sidebar=({sider:e,enableColorPicker:v,setSiderWidth:u,propsSiderWidth:_,checkMode:b})=>{const d=ctx.useSelector(a=>StepUtils.getCurrentStepInfo(a.annotation.step,a.annotation.stepList)),[r,T]=React.useState(!0),t=d==null?void 0:d.tool,{t:c}=reactI18next.useTranslation();if(!t)return null;const N=a=>{const l=React__default.default.createElement(index$c,null);return React__default.default.createElement(Panel,{header:c("Style"),className:"panel",key:a},l)},s=React__default.default.createElement(ToolIcons.ToolIcons,{toolName:t,onChange:()=>{}}),o=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},N("1")),x=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),g=React__default.default.createElement(index$1.default,null),S=React__default.default.createElement(index$4.default,null),p=React__default.default.createElement(index$a,{onChange:(a,l)=>{}}),E=React__default.default.createElement(index$b,{checkMode:b}),i=React__default.default.createElement("div",{className:`${sidebarCls}__horizontal`}),$=React__default.default.createElement(index$6.default,{enableColorPicker:v}),y=React__default.default.createElement(index$7.PointCloudOperation,null);if(e)return typeof e=="function"?React__default.default.createElement("div",{className:`${sidebarCls}`},e({toolIcon:s,attributeList:o,annotationText:f,toolStyle:m,imageAttributeInfo:x,operation:n,tagToolSideBar:g,textToolSideBar:S,horizontal:i,pointCloudToolSidebar:$,pointCloudOperation:y,scribbleSidebar:p,LLMSidebar:E})):e;if([ToolType.EToolName.Rect,ToolType.EToolName.Point,ToolType.EToolName.Line,ToolType.EToolName.Rect,ToolType.EToolName.Polygon,ToolType.EToolName.Cuboid].includes(t))return React__default.default.createElement("div",{className:`${sidebarCls}`},s,i,o,f,i,React__default.default.createElement("div",{className:`${sidebarCls}__content`},m,x),n);if(t===ToolType.EToolName.Tag)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement(index$1.default,null));if(t===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(t===ToolType.EToolName.Text)return React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement(index$4.default,null));if(t===EPointCloudName.PointCloud){const a=()=>{T(!r),u&&u(r?48:void 0)},l=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))):l}return t===ToolType.EToolName.ScribbleTool?React__default.default.createElement("div",{className:`${sidebarCls}`},React__default.default.createElement("div",{className:`${sidebarCls}__content`},p,o),n):t===ToolType.EToolName.LLM?E:null};exports.default=Sidebar,exports.sidebarCls=sidebarCls;
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 R,useRef as X,useEffect as M}from"react";import{Tooltip as J,Radio as q,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(),A=X(null),[f,y]=R(!1),[w,v]=R(!1),{disabled:s,config:c,result:D,updateText:x,index:F,switchToNextTextarea:P,hasMultiple:O,textID:b,addPlaceholder:g,onFocus:N,onBlur:T,onFocusStyle:K={},extra:L}=u,{maxLength:C}=c,k=D?D[c.key]:"",B=(n=k==null?void 0:k.length)!=null?n:0,I=a=>{x&&(x(a,c.key),c.required&&v(!a))},$=O&&P,m={id:`textInput-${F}`,ref:A,disabled:s,value:k,maxLength:C,autoSize:{minRows:2,maxRows:6},onChange:a=>{const i=a.target.value;I(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&&$?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),P(F)):a.nativeEvent.stopPropagation()}},E=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},$&&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:B>=C?o.warning:""},B),"/",e.createElement("span",null,C)));return M(()=>{s&&y(!1)},[s]),M(()=>{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||I("")},title:"",disabled:s}),e.createElement("div",{className:o.extra},L)),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:A,result:f,showText:y,updateText:w,toggleShowText:v,textInputDisabled:s,isCheck:c,isEdit:D,config:x,preContext:F,regions:P=[],textConfigurable:O=!0,clipTextConfigurable:b,clipAttributeConfigurable:g,updateRegion:N,clipAttributeList:T=[]}=u,{t:K}=ee(),[L,C]=R(0),[k,B]=R(""),I=X(null),{audioClipState:$}=xe(),m=n||[le({},fe)];let E=P;if(b&&!c){const t=$.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=O?m.length:0,p=b?E.length:0,h=l+p,S=(t+1)%h;a(S)},Q=t=>{t.keyCode===d.Tab&&(t.preventDefault(),m.length>0&&a(0))},j=t=>{const l=document.getElementById(`textInput-${L}`);if(!(x==null?void 0:x.enablePlaceholderHotkey)||!l||!w)return;const{value:p,selectionStart:h,selectionEnd:S}=l,_=`${p.slice(0,h)}${t}${p.slice(S)}`;w(_,m[L].key),B(t),setTimeout(()=>{l.setSelectionRange(h+1,h+1),l.focus()},0),clearTimeout(I.current),I.current=setTimeout(()=>{B("")},400)};M(()=>(D||document.addEventListener("keydown",Q),()=>{document.removeEventListener("keydown",Q)}),[n]),M(()=>{r&&!s&&a(0)},[A]);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(q.Group,{value:k},e.createElement(q.Button,{value:"\u4986",onClick:t=>j(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(q.Button,{value:"\u652B",onClick:t=>j(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(q.Button,{value:"\u7383",onClick:t=>j(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}),O&&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:A,addPlaceholder:j,onFocus:()=>C(l)})),b&&E.map((t,l)=>{const{id:p,start:h,end:S,attribute:_}=t,oe={label:`${K("textTool")}\uFF08${Y(h,"ss.SSS")} - ${Y(S,"ss.SSS")}\uFF09`,key:p,maxLength:3e3},V=H.length+l,W=de(_,T),re={color:me(_,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(_,[{value:"",key:"\u65E0\u5C5E\u6027"},...T])):null})}),e.createElement(Z,{audioContext:F==null?void 0:F.after}),v&&e.createElement("div",{className:o.switchItem},"\u6587\u672C\u5BF9\u7167\u663E\u793A",e.createElement(se,{style:{alignSelf:"center"},checked:y,onChange:t=>{v(t)}}))))};export{ne as ClearIcon,G as SingleTextInput,ye as default};
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 d from"react";import{connect as m}from"react-redux";import{LabelBeeContext as l,useDispatch as T}from"../../store/ctx.js";import{ANNOTATION_ACTIONS as a}from"../../store/Actions.js";import{PageBackward as g,PageForward as u,PageJump as A}from"../../store/annotation/actionCreators.js";import{TagToolInstanceAdaptor as f}from"../videoPlayer/TagToolInstanceAdaptor.js";const O=o=>{const{imgList:n,imgIndex:r,stepList:s,step:c}=o.annotation,t=T(),p=e=>{t({type:a.SET_TOOL,payload:{instance:e}})},i=()=>{t({type:a.SET_TOOL,payload:{instance:void 0}})};return d.createElement(f,{imgIndex:r,imgList:n,pageBackward:()=>t(g()),pageForward:()=>t(u()),pageJump:e=>t(A(~~e)),onMounted:p,onUnmounted:i,stepList:s,step:c})};var x=m(({annotation:o})=>({annotation:o}),null,null,{context:l})(O);export{x as default};
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};