yootd 0.0.54 → 0.0.56

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 (61) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +43 -43
  3. package/dist/Preview/components/preview/phone.scss +8 -8
  4. package/dist/Preview/index.scss +35 -35
  5. package/dist/Preview/types/type.d.ts +22 -22
  6. package/dist/anchor/index.scss +23 -23
  7. package/dist/approval-process/index.scss +95 -95
  8. package/dist/areas/index.scss +21 -21
  9. package/dist/areas/types/types.d.ts +40 -40
  10. package/dist/areas-treeSelect/index.scss +6 -6
  11. package/dist/areas-treeSelect/types/type.d.ts +39 -39
  12. package/dist/aside/components/SortableItem.scss +93 -93
  13. package/dist/aside/index.scss +25 -25
  14. package/dist/aside/types/types.d.ts +44 -44
  15. package/dist/badge/index.scss +5 -5
  16. package/dist/buildings/types/types.d.ts +21 -21
  17. package/dist/button/index.scss +30 -30
  18. package/dist/cascader/index.scss +5 -5
  19. package/dist/courses/types/types.d.ts +18 -18
  20. package/dist/department/types/types.d.ts +23 -23
  21. package/dist/dictionary/types/types.d.ts +14 -14
  22. package/dist/drawer-modal/index.scss +39 -39
  23. package/dist/drawer-modal/types/types.d.ts +3 -3
  24. package/dist/dropdown/assets/arrow-down.svg +5 -5
  25. package/dist/dropdown-select/index.scss +6 -6
  26. package/dist/dropdown-select/types/type.d.ts +18 -18
  27. package/dist/empty/index.scss +15 -15
  28. package/dist/go-back/components/index.scss +5 -5
  29. package/dist/go-back/index.scss +24 -24
  30. package/dist/group-title/index.scss +31 -31
  31. package/dist/hooks/useBem.js +10 -10
  32. package/dist/image/index.scss +26 -26
  33. package/dist/index.d.ts +1 -1
  34. package/dist/input/index.scss +5 -5
  35. package/dist/job-title/types/types.d.ts +17 -17
  36. package/dist/modal/index.scss +76 -76
  37. package/dist/pagination/index.scss +47 -47
  38. package/dist/role/types/types.d.ts +22 -22
  39. package/dist/school/index.scss +21 -21
  40. package/dist/school/types/types.d.ts +85 -85
  41. package/dist/state/index.scss +89 -89
  42. package/dist/steps/index.scss +32 -32
  43. package/dist/student-dropdown/types/types.d.ts +44 -44
  44. package/dist/table/components/primary-header-row/index.scss +58 -58
  45. package/dist/table/components/primary-tbody-row/index.scss +5 -5
  46. package/dist/table/index.module.scss +9 -9
  47. package/dist/table/index.scss +33 -33
  48. package/dist/tabs/index.scss +86 -86
  49. package/dist/tag/index.scss +4 -4
  50. package/dist/teacher/types/types.d.ts +33 -33
  51. package/dist/tree/index.scss +25 -25
  52. package/dist/upload/index.scss +115 -115
  53. package/dist/user-dropdown/types/types.d.ts +45 -45
  54. package/dist/video-player/index.d.ts +6 -2
  55. package/dist/video-player/index.js +53 -38
  56. package/dist/video-player/index.scss +310 -310
  57. package/dist/year-term/index.scss +21 -21
  58. package/dist/year-term/types/types.d.ts +35 -35
  59. package/dist/zones/index.module.scss +23 -23
  60. package/dist/zones/types/types.d.ts +26 -26
  61. package/package.json +1 -1
@@ -1,115 +1,115 @@
1
- .yot-upload {
2
- .ant-upload-list-item {
3
- padding: 0;
4
- }
5
- .ant-upload-list-item.ant-upload-list-item-done {
6
- .ant-upload-icon {
7
- .anticon.anticon-paper-clip {
8
- color: var(--ant-color-primary);
9
- }
10
- }
11
- }
12
- .ant-upload-list-item-name {
13
- display: flex;
14
- align-items: center;
15
- }
16
-
17
- &-file {
18
- &-btn {
19
- &__icon {
20
- width: 16px;
21
- height: 16px;
22
- }
23
- &:hover &{
24
- &__icon {
25
- .path-1 {
26
- fill: var(--ant-color-primary);
27
- width: 20px;
28
- }
29
- }
30
- }
31
- }
32
- }
33
- &__icon {
34
- &--success {
35
- width: 16px;
36
- height: 16px;
37
- position: absolute;
38
- top: 0px;
39
- right: 24px;
40
- }
41
- &--again {
42
- width: 16px;
43
- height: 16px;
44
- position: absolute;
45
- top: 0px;
46
- right: 24px;
47
- }
48
- &--delete {
49
- width: 16px;
50
- height: 16px;
51
- position: absolute;
52
- top: 0px;
53
- right: 2px;
54
- }
55
- }
56
-
57
- &-image {
58
- &-btn {
59
- width: 100px;
60
- height: 100px;
61
- border-radius: 8px;
62
- background-color: var(--ant-color-border-secondary);
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- flex-direction: column;
67
- &__text {
68
- font-size: 12px;
69
- color: var(--ant-color-text-quaternary);
70
- margin-top: 8px;
71
- }
72
- }
73
- }
74
- &-video {
75
- &-content {
76
- position: relative;
77
- width: 102px;
78
- height: 102px;
79
- border-radius: 4px;
80
- cursor: pointer;
81
- padding: 8px;
82
- box-sizing: border-box;
83
- border: 1px solid var(--ant-color-border-secondary);
84
- &__video {
85
- width: 100%;
86
- height: 100%;
87
- }
88
- &:hover &{
89
- &-icon {
90
- z-index: 10;
91
- transition: all;
92
- box-sizing: border-box;
93
- position: absolute;
94
- top: 8px;
95
- left: 8px;
96
- height: 86px;
97
- width: 86px;
98
- /* 这里的背景色根据需求设置 */
99
- background: rgba(0, 0, 0, 0.6) !important;
100
- background-color: #000;
101
- filter: Alpha(Opacity=60);
102
- opacity: 0.6;
103
- &--delete {
104
- width: 16px;
105
- height: 16px;
106
- position: absolute;
107
- top: 36px;
108
- left: 40%;
109
- cursor: pointer;
110
- }
111
- }
112
- }
113
- }
114
- }
115
- }
1
+ .yot-upload {
2
+ .ant-upload-list-item {
3
+ padding: 0;
4
+ }
5
+ .ant-upload-list-item.ant-upload-list-item-done {
6
+ .ant-upload-icon {
7
+ .anticon.anticon-paper-clip {
8
+ color: var(--ant-color-primary);
9
+ }
10
+ }
11
+ }
12
+ .ant-upload-list-item-name {
13
+ display: flex;
14
+ align-items: center;
15
+ }
16
+
17
+ &-file {
18
+ &-btn {
19
+ &__icon {
20
+ width: 16px;
21
+ height: 16px;
22
+ }
23
+ &:hover &{
24
+ &__icon {
25
+ .path-1 {
26
+ fill: var(--ant-color-primary);
27
+ width: 20px;
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ &__icon {
34
+ &--success {
35
+ width: 16px;
36
+ height: 16px;
37
+ position: absolute;
38
+ top: 0px;
39
+ right: 24px;
40
+ }
41
+ &--again {
42
+ width: 16px;
43
+ height: 16px;
44
+ position: absolute;
45
+ top: 0px;
46
+ right: 24px;
47
+ }
48
+ &--delete {
49
+ width: 16px;
50
+ height: 16px;
51
+ position: absolute;
52
+ top: 0px;
53
+ right: 2px;
54
+ }
55
+ }
56
+
57
+ &-image {
58
+ &-btn {
59
+ width: 100px;
60
+ height: 100px;
61
+ border-radius: 8px;
62
+ background-color: var(--ant-color-border-secondary);
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ flex-direction: column;
67
+ &__text {
68
+ font-size: 12px;
69
+ color: var(--ant-color-text-quaternary);
70
+ margin-top: 8px;
71
+ }
72
+ }
73
+ }
74
+ &-video {
75
+ &-content {
76
+ position: relative;
77
+ width: 102px;
78
+ height: 102px;
79
+ border-radius: 4px;
80
+ cursor: pointer;
81
+ padding: 8px;
82
+ box-sizing: border-box;
83
+ border: 1px solid var(--ant-color-border-secondary);
84
+ &__video {
85
+ width: 100%;
86
+ height: 100%;
87
+ }
88
+ &:hover &{
89
+ &-icon {
90
+ z-index: 10;
91
+ transition: all;
92
+ box-sizing: border-box;
93
+ position: absolute;
94
+ top: 8px;
95
+ left: 8px;
96
+ height: 86px;
97
+ width: 86px;
98
+ /* 这里的背景色根据需求设置 */
99
+ background: rgba(0, 0, 0, 0.6) !important;
100
+ background-color: #000;
101
+ filter: Alpha(Opacity=60);
102
+ opacity: 0.6;
103
+ &--delete {
104
+ width: 16px;
105
+ height: 16px;
106
+ position: absolute;
107
+ top: 36px;
108
+ left: 40%;
109
+ cursor: pointer;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
@@ -1,45 +1,45 @@
1
- import { SelectProps } from 'yootd';
2
-
3
- export interface PageData<T> {
4
- content: T[];
5
- page: {
6
- number: number;
7
- size: number;
8
- totalElements: number;
9
- totalPages: number;
10
- };
11
- }
12
- type LabelOptions =
13
- | 'uniqueNumber'
14
- | 'personalName'
15
- | 'majorName'
16
- | 'collegeMajorName'
17
- | 'className'
18
- | 'gradeName'
19
- | 'genderName'
20
- | 'deptName'
21
- | 'credentialsNo'
22
- | 'personalMobile';
23
- export type UserDropdownProps = SelectProps & {
24
- type?: number; // 1:学生2:教师3:职工
25
- label?: LabelOptions[];
26
- connectors?: string;
27
- teacher_id?: number;
28
- };
29
- export interface IuserItem {
30
- userId: string; // ID
31
- uniqueNumber?: string; // 学号/工号
32
- personalName: string; // 姓名
33
- personalPhoto?: string; // 照片
34
- userFaceType?: number; // 人脸类型(1白名单2黑名单3红名单)
35
- majorName?: string; // 专业名称
36
- collegeMajorName?: string; // 院系名称
37
- className?: string; // 班级名称
38
- gradeName?: string; // 年级名称
39
- genderName?: string; // 性别
40
- deptId?: number; // 部门ID
41
- deptName?: string; // 部门名称
42
- gender?: number; // 性别
43
- credentialsNo?: string; // 证件号
44
- personalMobile?: string; // 手机号
45
- }
1
+ import { SelectProps } from 'yootd';
2
+
3
+ export interface PageData<T> {
4
+ content: T[];
5
+ page: {
6
+ number: number;
7
+ size: number;
8
+ totalElements: number;
9
+ totalPages: number;
10
+ };
11
+ }
12
+ type LabelOptions =
13
+ | 'uniqueNumber'
14
+ | 'personalName'
15
+ | 'majorName'
16
+ | 'collegeMajorName'
17
+ | 'className'
18
+ | 'gradeName'
19
+ | 'genderName'
20
+ | 'deptName'
21
+ | 'credentialsNo'
22
+ | 'personalMobile';
23
+ export type UserDropdownProps = SelectProps & {
24
+ type?: number; // 1:学生2:教师3:职工
25
+ label?: LabelOptions[];
26
+ connectors?: string;
27
+ teacher_id?: number;
28
+ };
29
+ export interface IuserItem {
30
+ userId: string; // ID
31
+ uniqueNumber?: string; // 学号/工号
32
+ personalName: string; // 姓名
33
+ personalPhoto?: string; // 照片
34
+ userFaceType?: number; // 人脸类型(1白名单2黑名单3红名单)
35
+ majorName?: string; // 专业名称
36
+ collegeMajorName?: string; // 院系名称
37
+ className?: string; // 班级名称
38
+ gradeName?: string; // 年级名称
39
+ genderName?: string; // 性别
40
+ deptId?: number; // 部门ID
41
+ deptName?: string; // 部门名称
42
+ gender?: number; // 性别
43
+ credentialsNo?: string; // 证件号
44
+ personalMobile?: string; // 手机号
45
+ }
@@ -1,5 +1,9 @@
1
- import { CSSProperties, FC } from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import './index.scss';
3
+ export interface VideoPlayerRef {
4
+ play: () => void;
5
+ pause: () => void;
6
+ }
3
7
  export interface VideoPlayerProps {
4
8
  /**
5
9
  * 视频地址
@@ -67,4 +71,4 @@ export interface VideoPlayerProps {
67
71
  */
68
72
  onPlayStateChange?: (isPlaying: boolean) => void;
69
73
  }
70
- export declare const VideoPlayer: FC<VideoPlayerProps>;
74
+ export declare const VideoPlayer: React.ForwardRefExoticComponent<VideoPlayerProps & React.RefAttributes<VideoPlayerRef>>;
@@ -15,7 +15,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
15
15
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
  import * as faceapi from '@vladmandic/face-api';
18
- import React, { useCallback, useEffect, useRef, useState } from 'react';
18
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
19
19
  import { EndPoint } from 'yootd-webrtc-sdk';
20
20
  import { useBem } from "../hooks/useBem";
21
21
  import "./index.scss";
@@ -27,7 +27,7 @@ var MIN_SCORE = 0.5; // minimum score
27
27
  var MAX_RESULTS = 20; // maximum number of results to return
28
28
 
29
29
  var speeds = ['2.0', '1.75', '1.5', '1.25', '1.0', '0.75', '0.5'];
30
- export var VideoPlayer = function VideoPlayer(_ref) {
30
+ export var VideoPlayer = /*#__PURE__*/forwardRef(function (_ref, ref) {
31
31
  var src = _ref.src,
32
32
  isLive = _ref.isLive,
33
33
  controls = _ref.controls,
@@ -135,6 +135,18 @@ export var VideoPlayer = function VideoPlayer(_ref) {
135
135
  _useState36 = _slicedToArray(_useState35, 2),
136
136
  videoEleSize = _useState36[0],
137
137
  setVideoEleSize = _useState36[1];
138
+ useImperativeHandle(ref, function () {
139
+ return {
140
+ play: function play() {
141
+ var _videoRef$current;
142
+ void ((_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 ? void 0 : _videoRef$current.play());
143
+ },
144
+ pause: function pause() {
145
+ var _videoRef$current2;
146
+ (_videoRef$current2 = videoRef.current) === null || _videoRef$current2 === void 0 || _videoRef$current2.pause();
147
+ }
148
+ };
149
+ });
138
150
  var handleFullScreen = function handleFullScreen() {
139
151
  if (containerRef.current != null) {
140
152
  void containerRef.current.requestFullscreen();
@@ -148,7 +160,7 @@ export var VideoPlayer = function VideoPlayer(_ref) {
148
160
  var handleCanPlay = function handleCanPlay(e) {
149
161
  var video = e.target;
150
162
  try {
151
- var _video$audioTracks, _video$audioTracks2;
163
+ var _video$audioTracks;
152
164
  setHasAudio(
153
165
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
154
166
  // @ts-ignore
@@ -159,27 +171,29 @@ export var VideoPlayer = function VideoPlayer(_ref) {
159
171
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
160
172
  // @ts-ignore
161
173
  Boolean((_video$audioTracks = video.audioTracks) === null || _video$audioTracks === void 0 ? void 0 : _video$audioTracks.length));
162
- console.log('是否包含音频: ',
163
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
164
- // @ts-expect-error
165
- video.mozHasAudio ||
166
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
- // @ts-expect-error
168
- Boolean(video.webkitAudioDecodedByteCount) ||
169
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
170
- // @ts-expect-error
171
- Boolean((_video$audioTracks2 = video.audioTracks) === null || _video$audioTracks2 === void 0 ? void 0 : _video$audioTracks2.length));
174
+ // console.log(
175
+ // '是否包含音频: ',
176
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
177
+ // // @ts-expect-error
178
+ // video.mozHasAudio ||
179
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
180
+ // // @ts-expect-error
181
+ // Boolean(video.webkitAudioDecodedByteCount) ||
182
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
183
+ // // @ts-expect-error
184
+ // Boolean(video.audioTracks?.length),
185
+ // );
172
186
  } catch (e) {
173
187
  console.log(e);
174
188
  }
175
189
  };
176
190
  var handlePlayAndStop = function handlePlayAndStop() {
177
191
  if (isPlaying) {
178
- var _videoRef$current;
179
- (_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 || _videoRef$current.pause();
192
+ var _videoRef$current3;
193
+ (_videoRef$current3 = videoRef.current) === null || _videoRef$current3 === void 0 || _videoRef$current3.pause();
180
194
  } else {
181
- var _videoRef$current2;
182
- void ((_videoRef$current2 = videoRef.current) === null || _videoRef$current2 === void 0 ? void 0 : _videoRef$current2.play());
195
+ var _videoRef$current4;
196
+ void ((_videoRef$current4 = videoRef.current) === null || _videoRef$current4 === void 0 ? void 0 : _videoRef$current4.play());
183
197
  }
184
198
  };
185
199
  var handleOnPlay = function handleOnPlay() {
@@ -522,26 +536,26 @@ export var VideoPlayer = function VideoPlayer(_ref) {
522
536
  useEffect(function () {
523
537
  var handler = null;
524
538
  // let lastTime = Date.now();
525
- /* const start = () => {
526
- if (
527
- !faceFeature.anchor &&
528
- !faceFeature.emotion &&
529
- !faceFeature.character
530
- ) {
531
- return;
532
- }
533
- if (lastTime + 1000 <= Date.now()) {
534
- lastTime = Date.now();
535
- detect()
536
- .catch((e) => {
537
- console.log("error", e);
538
- })
539
- .finally(() => {
540
- handler = requestAnimationFrame(start);
541
- });
542
- } else {
543
- handler = requestAnimationFrame(start);
544
- }
539
+ /* const start = () => {
540
+ if (
541
+ !faceFeature.anchor &&
542
+ !faceFeature.emotion &&
543
+ !faceFeature.character
544
+ ) {
545
+ return;
546
+ }
547
+ if (lastTime + 1000 <= Date.now()) {
548
+ lastTime = Date.now();
549
+ detect()
550
+ .catch((e) => {
551
+ console.log("error", e);
552
+ })
553
+ .finally(() => {
554
+ handler = requestAnimationFrame(start);
555
+ });
556
+ } else {
557
+ handler = requestAnimationFrame(start);
558
+ }
545
559
  }; */
546
560
 
547
561
  var start = function start() {
@@ -872,4 +886,5 @@ export var VideoPlayer = function VideoPlayer(_ref) {
872
886
  transform: "scale(".concat(canvasSize.width / videoEleSize.width, ")")
873
887
  }
874
888
  }) : null));
875
- };
889
+ });
890
+ VideoPlayer.displayName = 'VideoPlayer';