eli-video-interview 1.2.28 → 1.2.29-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm/components/Charts/Chart.d.ts +1 -1
  2. package/esm/components/Charts/Chart.js +8 -8
  3. package/esm/components/Charts/ReportPie.js +1 -1
  4. package/esm/index.d.ts +1 -0
  5. package/esm/index.js +1 -0
  6. package/esm/modules/ai-report/components/MenuAnchor/MenuAnchor.d.ts +4 -0
  7. package/esm/modules/ai-report/components/MenuAnchor/MenuAnchor.js +106 -0
  8. package/esm/modules/ai-report/components/MenuAnchor/index.d.ts +3 -3
  9. package/esm/modules/ai-report/components/MenuAnchor/index.js +8 -103
  10. package/esm/modules/ai-report/components/MenuAnchor/interface.d.ts +10 -0
  11. package/esm/modules/ai-report/components/MenuAnchor/interface.js +1 -0
  12. package/esm/modules/ai-report/components/ScoreReport/Bar.js +3 -3
  13. package/esm/modules/ai-report/index.js +0 -1
  14. package/esm/modules/ai-report/interface.d.ts +0 -10
  15. package/lib/components/Charts/Chart.d.ts +1 -1
  16. package/lib/components/Charts/Chart.js +8 -8
  17. package/lib/components/Charts/ReportPie.js +1 -1
  18. package/lib/index.d.ts +1 -0
  19. package/lib/index.js +3 -1
  20. package/lib/modules/ai-report/components/MenuAnchor/MenuAnchor.d.ts +4 -0
  21. package/lib/modules/ai-report/components/MenuAnchor/MenuAnchor.js +108 -0
  22. package/lib/modules/ai-report/components/MenuAnchor/index.d.ts +3 -3
  23. package/lib/modules/ai-report/components/MenuAnchor/index.js +9 -101
  24. package/lib/modules/ai-report/components/MenuAnchor/interface.d.ts +10 -0
  25. package/lib/modules/ai-report/components/MenuAnchor/interface.js +2 -0
  26. package/lib/modules/ai-report/components/ScoreReport/Bar.js +3 -3
  27. package/lib/modules/ai-report/index.js +0 -1
  28. package/lib/modules/ai-report/interface.d.ts +0 -10
  29. package/package.json +7 -1
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
2
1
  import { ChartProps } from './interface';
2
+ import { FC } from 'react';
3
3
  declare const Chart: FC<ChartProps>;
4
4
  export default Chart;
@@ -1,18 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useRef } from 'react';
3
2
  import * as echarts from 'echarts';
3
+ import { useEffect, useRef } from 'react';
4
4
  var charts = {};
5
5
  var Chart = function (_a) {
6
6
  var _b = _a.id, id = _b === void 0 ? '' : _b, options = _a.options;
7
7
  var currentId = useRef('');
8
8
  var target = useRef(null);
9
9
  useEffect(function () {
10
- if (id && !charts[id] && options) {
11
- currentId.current = id;
12
- charts[id] = echarts.init(target.current);
13
- charts[id].resize();
14
- charts[id].setOption(options, true);
15
- }
10
+ // if (id && !charts[id] && options) {
11
+ currentId.current = id;
12
+ charts[id] = echarts.init(target.current);
13
+ charts[id].resize();
14
+ charts[id].setOption(options, true);
15
+ // }
16
16
  // eslint-disable-next-line react-hooks/exhaustive-deps
17
17
  }, [id, options]);
18
18
  useEffect(function () {
@@ -24,7 +24,7 @@ var Chart = function (_a) {
24
24
  };
25
25
  // eslint-disable-next-line react-hooks/exhaustive-deps
26
26
  }, []);
27
- return (_jsx("div", { ref: target, style: {
27
+ return (_jsx("div", { id: id, ref: target, style: {
28
28
  width: '100%',
29
29
  height: '100%',
30
30
  } }));
@@ -21,8 +21,8 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  return t;
22
22
  };
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
- import Chart from "./Chart";
25
24
  import { levelMapping } from './const';
25
+ import Chart from "./Chart";
26
26
  var formateTitle = function (originalTitle) {
27
27
  var regex = /(\d+?)[.](.+)/;
28
28
  if (!regex.test(originalTitle))
package/esm/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { default as AiQuestion } from './modules/ai-question';
2
2
  export { default as AiReport } from './modules/ai-report';
3
+ export { default as MenuAnchor } from './modules/ai-report/components/MenuAnchor/MenuAnchor';
3
4
  export { default as AiTemplate } from './modules/ai-template';
4
5
  export { default as AiAbility } from './modules/ai-ability';
5
6
  export { default as VideoPreview } from './components/VideoPreview';
package/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { default as AiQuestion } from './modules/ai-question';
2
2
  export { default as AiReport } from './modules/ai-report';
3
+ export { default as MenuAnchor } from './modules/ai-report/components/MenuAnchor/MenuAnchor';
3
4
  export { default as AiTemplate } from './modules/ai-template';
4
5
  export { default as AiAbility } from './modules/ai-ability';
5
6
  export { default as VideoPreview } from './components/VideoPreview';
@@ -0,0 +1,4 @@
1
+ import { MenuAnchorProps } from './interface';
2
+ import React from 'react';
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<any>>>;
4
+ export default _default;
@@ -0,0 +1,106 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { REPORT_MODULE_MAP } from "../../../../constants/ai-report";
14
+ import { PostAiInterviewResult } from "../../../../services/ai-report";
15
+ import { useRequest } from 'ahooks';
16
+ import { Box, MenuIcon } from 'fbm-ui';
17
+ import { List, ListItem, ListItemButton, ListItemText, Popover } from 'fbm-ui/lib/mui';
18
+ import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
+ var MenuAnchor = forwardRef(function (props) {
20
+ var _a = useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
21
+ var _b = useState(), reportResult = _b[0], setReportResult = _b[1];
22
+ var open = Boolean(anchorEl);
23
+ // 接口请求
24
+ var token = props.token, showAiDimension = props.showAiDimension;
25
+ var firstLoad = useRef(true);
26
+ var _c = useState([]), list = _c[0], setList = _c[1];
27
+ var postAiInterviewResult = useRequest(function () { return PostAiInterviewResult([token]); }, {
28
+ manual: true,
29
+ onSuccess: function (_a) {
30
+ var list = _a.data.list;
31
+ var result = list[0];
32
+ setReportResult(result);
33
+ if (firstLoad.current) {
34
+ firstLoad.current = false;
35
+ handleMenuList(result);
36
+ }
37
+ },
38
+ }).run;
39
+ useEffect(function () {
40
+ firstLoad.current = true;
41
+ postAiInterviewResult();
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ }, [token]);
44
+ // 处理菜单数据
45
+ var handleMenuList = function (reportResult) {
46
+ if (!reportResult.status) {
47
+ return;
48
+ }
49
+ var resList = [REPORT_MODULE_MAP['videoQuestion']];
50
+ var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
51
+ if (showAiDimension) {
52
+ if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
53
+ resList.unshift(REPORT_MODULE_MAP['suggestion']);
54
+ }
55
+ if (collection.length > 0 && evaluations.length > 0) {
56
+ resList.unshift(REPORT_MODULE_MAP['evaluate']);
57
+ }
58
+ if (workplaces.length > 0) {
59
+ resList.unshift(REPORT_MODULE_MAP['workplace']);
60
+ }
61
+ }
62
+ if (collection.length > 0) {
63
+ resList.unshift(REPORT_MODULE_MAP['score']);
64
+ }
65
+ console.log(resList);
66
+ setList(resList);
67
+ };
68
+ var handlePopoverOpen = function (event) {
69
+ setAnchorEl(event.currentTarget);
70
+ };
71
+ var handlePopoverClose = function () {
72
+ setAnchorEl(null);
73
+ };
74
+ var scrollToAnchor = useCallback(function (id) {
75
+ if (id) {
76
+ var anchorEle = document.getElementById(id);
77
+ if (anchorEle) {
78
+ anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
79
+ }
80
+ }
81
+ }, []);
82
+ var content = useMemo(function () {
83
+ return (_jsx(List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
84
+ var name = _a.name, id = _a.id;
85
+ return (_jsx(ListItem, __assign({ disablePadding: true }, { children: _jsx(ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: _jsx(ListItemText, { primary: name }) })) }), id));
86
+ }) })));
87
+ }, [scrollToAnchor, list]);
88
+ return (_jsxs(_Fragment, { children: [(reportResult === null || reportResult === void 0 ? void 0 : reportResult.status) && (_jsx(Box, __assign({ style: {
89
+ display: 'flex',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ height: 32,
93
+ width: 32,
94
+ backgroundColor: '#fff',
95
+ borderRadius: 4,
96
+ boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
97
+ }, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: _jsx(MenuIcon, {}) }))), _jsx(Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
98
+ vertical: 'bottom',
99
+ horizontal: 'right',
100
+ }, transformOrigin: {
101
+ vertical: -8,
102
+ horizontal: 'right',
103
+ }, onClose: handlePopoverClose }, { children: content }))] }));
104
+ });
105
+ MenuAnchor.displayName = 'MenuAnchor';
106
+ export default memo(MenuAnchor);
@@ -1,4 +1,4 @@
1
- import { MenuAnchorProps } from '../../interface';
2
- import React from 'react';
3
- declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<any>>>;
1
+ /// <reference types="react" />
2
+ import { MenuAnchorProps } from './interface';
3
+ declare const _default: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<MenuAnchorProps & import("react").RefAttributes<any>>>;
4
4
  export default _default;
@@ -9,107 +9,12 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { REPORT_MODULE_MAP } from "../../../../constants/ai-report";
14
- import { PostAiInterviewResult } from "../../../../services/ai-report";
15
- import { useAiReportStore } from "../../../../store/ai-report/global-store";
16
- import { useRequest } from 'ahooks';
17
- import { Box, MenuIcon } from 'fbm-ui';
18
- import { List, ListItem, ListItemButton, ListItemText, Popover } from 'fbm-ui/lib/mui';
19
- import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
20
- var MenuAnchor = forwardRef(function (props) {
21
- var _a = useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
22
- var open = Boolean(anchorEl);
23
- // 接口请求
24
- var token = props.token, showAiDimension = props.showAiDimension;
25
- var firstLoad = useRef(true);
26
- var _b = useState([]), list = _b[0], setList = _b[1];
27
- var _c = useAiReportStore(), reportResult = _c.reportResult, updateState = _c.updateState, updateReportResult = _c.updateReportResult;
28
- var postAiInterviewResult = useRequest(function () { return PostAiInterviewResult([token]); }, {
29
- manual: true,
30
- onSuccess: function (_a) {
31
- var list = _a.data.list;
32
- var result = list[0];
33
- updateReportResult(result);
34
- if (firstLoad.current) {
35
- firstLoad.current = false;
36
- handleMenuList(result);
37
- }
38
- },
39
- }).run;
40
- useEffect(function () {
41
- firstLoad.current = true;
42
- postAiInterviewResult();
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- }, [token]);
45
- useEffect(function () {
46
- updateState(props);
47
- // eslint-disable-next-line react-hooks/exhaustive-deps
48
- }, [props]);
49
- // 处理菜单数据
50
- var handleMenuList = function (reportResult) {
51
- if (!reportResult.status) {
52
- return;
53
- }
54
- var resList = [REPORT_MODULE_MAP['videoQuestion']];
55
- var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
56
- if (showAiDimension) {
57
- if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
58
- resList.unshift(REPORT_MODULE_MAP['suggestion']);
59
- }
60
- if (collection.length > 0 && evaluations.length > 0) {
61
- resList.unshift(REPORT_MODULE_MAP['evaluate']);
62
- }
63
- if (workplaces.length > 0) {
64
- resList.unshift(REPORT_MODULE_MAP['workplace']);
65
- }
66
- }
67
- if (collection.length > 0) {
68
- resList.unshift(REPORT_MODULE_MAP['score']);
69
- }
70
- console.log(resList);
71
- setList(resList);
72
- };
73
- var handlePopoverOpen = function (event) {
74
- setAnchorEl(event.currentTarget);
75
- };
76
- var handlePopoverClose = function () {
77
- setAnchorEl(null);
78
- };
79
- var scrollToAnchor = useCallback(function (id) {
80
- if (id) {
81
- var anchorEle = document.getElementById(id);
82
- if (anchorEle) {
83
- anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
84
- }
85
- }
86
- }, []);
87
- var content = useMemo(function () {
88
- return (_jsx(List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
89
- var name = _a.name, id = _a.id;
90
- return (_jsx(ListItem, __assign({ disablePadding: true }, { children: _jsx(ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: _jsx(ListItemText, { primary: name }) })) }), id));
91
- }) })));
92
- }, [scrollToAnchor, list]);
93
- return (_jsxs(_Fragment, { children: [(reportResult === null || reportResult === void 0 ? void 0 : reportResult.status) && (_jsx(Box, __assign({ style: {
94
- display: 'flex',
95
- alignItems: 'center',
96
- justifyContent: 'center',
97
- position: 'absolute',
98
- top: 20,
99
- right: -10,
100
- zIndex: 999,
101
- height: 32,
102
- width: 32,
103
- backgroundColor: '#fff',
104
- borderRadius: 4,
105
- boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
106
- }, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: _jsx(MenuIcon, {}) }))), _jsx(Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
107
- vertical: 'bottom',
108
- horizontal: 'right',
109
- }, transformOrigin: {
110
- vertical: -8,
111
- horizontal: 'right',
112
- }, onClose: handlePopoverClose }, { children: content }))] }));
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import MenuAnchor from './MenuAnchor';
14
+ import RootProvider from "../../../../components/RootProvider";
15
+ import { forwardRef, memo } from 'react';
16
+ var ReportMenuAnchor = forwardRef(function (props, ref) {
17
+ return (_jsx(RootProvider, { children: _jsx(MenuAnchor, __assign({}, props)) }));
113
18
  });
114
- MenuAnchor.displayName = 'MenuAnchor';
115
- export default memo(MenuAnchor);
19
+ ReportMenuAnchor.displayName = 'AiReport';
20
+ export default memo(ReportMenuAnchor);
@@ -0,0 +1,10 @@
1
+ export interface AnchorItem {
2
+ type: string;
3
+ name: string;
4
+ id: string;
5
+ }
6
+ export interface MenuAnchorProps {
7
+ list?: AnchorItem[];
8
+ token: string;
9
+ showAiDimension: boolean;
10
+ }
@@ -10,11 +10,11 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
- import { useEffect, useState } from 'react';
14
- import { Box, Typography } from 'fbm-ui';
13
+ import { rankPercent } from '../../utils';
15
14
  import { scoreRankIntervalColors } from "../../../../constants/ai-report";
16
15
  import { useAiReportStore } from "../../../../store/ai-report/global-store";
17
- import { rankPercent } from '../../utils';
16
+ import { Box, Typography } from 'fbm-ui';
17
+ import { useEffect, useState } from 'react';
18
18
  var Bar = function () {
19
19
  var _a = useState(1), currentRank = _a[0], setCurrentRank = _a[1];
20
20
  var _b = useState(''), text = _b[0], setText = _b[1];
@@ -14,7 +14,6 @@ import ReportRoot from './Root';
14
14
  import RootProvider from "../../components/RootProvider";
15
15
  import { forwardRef, memo } from 'react';
16
16
  var AiReport = forwardRef(function (props, ref) {
17
- // const { token, showAiDimension = true } = props;
18
17
  return (_jsx(RootProvider, { children: _jsx(ReportRoot, __assign({ ref: ref }, props)) }));
19
18
  });
20
19
  AiReport.displayName = 'AiReport';
@@ -175,13 +175,3 @@ export interface AiReportProps {
175
175
  export interface AiReportRef {
176
176
  handleRefresh: () => void;
177
177
  }
178
- export interface AnchorItem {
179
- type: string;
180
- name: string;
181
- id: string;
182
- }
183
- export interface MenuAnchorProps {
184
- list?: AnchorItem[];
185
- token: string;
186
- showAiDimension: boolean;
187
- }
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
2
1
  import { ChartProps } from './interface';
2
+ import { FC } from 'react';
3
3
  declare const Chart: FC<ChartProps>;
4
4
  export default Chart;
@@ -24,20 +24,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
- var react_1 = require("react");
28
27
  var echarts = __importStar(require("echarts"));
28
+ var react_1 = require("react");
29
29
  var charts = {};
30
30
  var Chart = function (_a) {
31
31
  var _b = _a.id, id = _b === void 0 ? '' : _b, options = _a.options;
32
32
  var currentId = (0, react_1.useRef)('');
33
33
  var target = (0, react_1.useRef)(null);
34
34
  (0, react_1.useEffect)(function () {
35
- if (id && !charts[id] && options) {
36
- currentId.current = id;
37
- charts[id] = echarts.init(target.current);
38
- charts[id].resize();
39
- charts[id].setOption(options, true);
40
- }
35
+ // if (id && !charts[id] && options) {
36
+ currentId.current = id;
37
+ charts[id] = echarts.init(target.current);
38
+ charts[id].resize();
39
+ charts[id].setOption(options, true);
40
+ // }
41
41
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
42
  }, [id, options]);
43
43
  (0, react_1.useEffect)(function () {
@@ -49,7 +49,7 @@ var Chart = function (_a) {
49
49
  };
50
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
51
  }, []);
52
- return ((0, jsx_runtime_1.jsx)("div", { ref: target, style: {
52
+ return ((0, jsx_runtime_1.jsx)("div", { id: id, ref: target, style: {
53
53
  width: '100%',
54
54
  height: '100%',
55
55
  } }));
@@ -26,8 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  var jsx_runtime_1 = require("react/jsx-runtime");
29
- var Chart_1 = __importDefault(require("./Chart"));
30
29
  var const_1 = require("./const");
30
+ var Chart_1 = __importDefault(require("./Chart"));
31
31
  var formateTitle = function (originalTitle) {
32
32
  var regex = /(\d+?)[.](.+)/;
33
33
  if (!regex.test(originalTitle))
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { default as AiQuestion } from './modules/ai-question';
2
2
  export { default as AiReport } from './modules/ai-report';
3
+ export { default as MenuAnchor } from './modules/ai-report/components/MenuAnchor/MenuAnchor';
3
4
  export { default as AiTemplate } from './modules/ai-template';
4
5
  export { default as AiAbility } from './modules/ai-ability';
5
6
  export { default as VideoPreview } from './components/VideoPreview';
package/lib/index.js CHANGED
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.avocadoVideoInterview = exports.useAiReport = exports.useAiQuestion = exports.VideoPreview = exports.AiAbility = exports.AiTemplate = exports.AiReport = exports.AiQuestion = void 0;
6
+ exports.avocadoVideoInterview = exports.useAiReport = exports.useAiQuestion = exports.VideoPreview = exports.AiAbility = exports.AiTemplate = exports.MenuAnchor = exports.AiReport = exports.AiQuestion = void 0;
7
7
  var ai_question_1 = require("./modules/ai-question");
8
8
  Object.defineProperty(exports, "AiQuestion", { enumerable: true, get: function () { return __importDefault(ai_question_1).default; } });
9
9
  var ai_report_1 = require("./modules/ai-report");
10
10
  Object.defineProperty(exports, "AiReport", { enumerable: true, get: function () { return __importDefault(ai_report_1).default; } });
11
+ var MenuAnchor_1 = require("./modules/ai-report/components/MenuAnchor/MenuAnchor");
12
+ Object.defineProperty(exports, "MenuAnchor", { enumerable: true, get: function () { return __importDefault(MenuAnchor_1).default; } });
11
13
  var ai_template_1 = require("./modules/ai-template");
12
14
  Object.defineProperty(exports, "AiTemplate", { enumerable: true, get: function () { return __importDefault(ai_template_1).default; } });
13
15
  var ai_ability_1 = require("./modules/ai-ability");
@@ -0,0 +1,4 @@
1
+ import { MenuAnchorProps } from './interface';
2
+ import React from 'react';
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<any>>>;
4
+ export default _default;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var jsx_runtime_1 = require("react/jsx-runtime");
15
+ var ai_report_1 = require("../../../../constants/ai-report");
16
+ var ai_report_2 = require("../../../../services/ai-report");
17
+ var ahooks_1 = require("ahooks");
18
+ var fbm_ui_1 = require("fbm-ui");
19
+ var mui_1 = require("fbm-ui/lib/mui");
20
+ var react_1 = require("react");
21
+ var MenuAnchor = (0, react_1.forwardRef)(function (props) {
22
+ var _a = (0, react_1.useState)(null), anchorEl = _a[0], setAnchorEl = _a[1];
23
+ var _b = (0, react_1.useState)(), reportResult = _b[0], setReportResult = _b[1];
24
+ var open = Boolean(anchorEl);
25
+ // 接口请求
26
+ var token = props.token, showAiDimension = props.showAiDimension;
27
+ var firstLoad = (0, react_1.useRef)(true);
28
+ var _c = (0, react_1.useState)([]), list = _c[0], setList = _c[1];
29
+ var postAiInterviewResult = (0, ahooks_1.useRequest)(function () { return (0, ai_report_2.PostAiInterviewResult)([token]); }, {
30
+ manual: true,
31
+ onSuccess: function (_a) {
32
+ var list = _a.data.list;
33
+ var result = list[0];
34
+ setReportResult(result);
35
+ if (firstLoad.current) {
36
+ firstLoad.current = false;
37
+ handleMenuList(result);
38
+ }
39
+ },
40
+ }).run;
41
+ (0, react_1.useEffect)(function () {
42
+ firstLoad.current = true;
43
+ postAiInterviewResult();
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ }, [token]);
46
+ // 处理菜单数据
47
+ var handleMenuList = function (reportResult) {
48
+ if (!reportResult.status) {
49
+ return;
50
+ }
51
+ var resList = [ai_report_1.REPORT_MODULE_MAP['videoQuestion']];
52
+ var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
53
+ if (showAiDimension) {
54
+ if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
55
+ resList.unshift(ai_report_1.REPORT_MODULE_MAP['suggestion']);
56
+ }
57
+ if (collection.length > 0 && evaluations.length > 0) {
58
+ resList.unshift(ai_report_1.REPORT_MODULE_MAP['evaluate']);
59
+ }
60
+ if (workplaces.length > 0) {
61
+ resList.unshift(ai_report_1.REPORT_MODULE_MAP['workplace']);
62
+ }
63
+ }
64
+ if (collection.length > 0) {
65
+ resList.unshift(ai_report_1.REPORT_MODULE_MAP['score']);
66
+ }
67
+ console.log(resList);
68
+ setList(resList);
69
+ };
70
+ var handlePopoverOpen = function (event) {
71
+ setAnchorEl(event.currentTarget);
72
+ };
73
+ var handlePopoverClose = function () {
74
+ setAnchorEl(null);
75
+ };
76
+ var scrollToAnchor = (0, react_1.useCallback)(function (id) {
77
+ if (id) {
78
+ var anchorEle = document.getElementById(id);
79
+ if (anchorEle) {
80
+ anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
81
+ }
82
+ }
83
+ }, []);
84
+ var content = (0, react_1.useMemo)(function () {
85
+ return ((0, jsx_runtime_1.jsx)(mui_1.List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
86
+ var name = _a.name, id = _a.id;
87
+ return ((0, jsx_runtime_1.jsx)(mui_1.ListItem, __assign({ disablePadding: true }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemText, { primary: name }) })) }), id));
88
+ }) })));
89
+ }, [scrollToAnchor, list]);
90
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(reportResult === null || reportResult === void 0 ? void 0 : reportResult.status) && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ style: {
91
+ display: 'flex',
92
+ alignItems: 'center',
93
+ justifyContent: 'center',
94
+ height: 32,
95
+ width: 32,
96
+ backgroundColor: '#fff',
97
+ borderRadius: 4,
98
+ boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
99
+ }, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.MenuIcon, {}) }))), (0, jsx_runtime_1.jsx)(mui_1.Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
100
+ vertical: 'bottom',
101
+ horizontal: 'right',
102
+ }, transformOrigin: {
103
+ vertical: -8,
104
+ horizontal: 'right',
105
+ }, onClose: handlePopoverClose }, { children: content }))] }));
106
+ });
107
+ MenuAnchor.displayName = 'MenuAnchor';
108
+ exports.default = (0, react_1.memo)(MenuAnchor);
@@ -1,4 +1,4 @@
1
- import { MenuAnchorProps } from '../../interface';
2
- import React from 'react';
3
- declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<any>>>;
1
+ /// <reference types="react" />
2
+ import { MenuAnchorProps } from './interface';
3
+ declare const _default: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<MenuAnchorProps & import("react").RefAttributes<any>>>;
4
4
  export default _default;
@@ -10,108 +10,16 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
13
16
  Object.defineProperty(exports, "__esModule", { value: true });
14
17
  var jsx_runtime_1 = require("react/jsx-runtime");
15
- var ai_report_1 = require("../../../../constants/ai-report");
16
- var ai_report_2 = require("../../../../services/ai-report");
17
- var global_store_1 = require("../../../../store/ai-report/global-store");
18
- var ahooks_1 = require("ahooks");
19
- var fbm_ui_1 = require("fbm-ui");
20
- var mui_1 = require("fbm-ui/lib/mui");
18
+ var MenuAnchor_1 = __importDefault(require("./MenuAnchor"));
19
+ var RootProvider_1 = __importDefault(require("../../../../components/RootProvider"));
21
20
  var react_1 = require("react");
22
- var MenuAnchor = (0, react_1.forwardRef)(function (props) {
23
- var _a = (0, react_1.useState)(null), anchorEl = _a[0], setAnchorEl = _a[1];
24
- var open = Boolean(anchorEl);
25
- // 接口请求
26
- var token = props.token, showAiDimension = props.showAiDimension;
27
- var firstLoad = (0, react_1.useRef)(true);
28
- var _b = (0, react_1.useState)([]), list = _b[0], setList = _b[1];
29
- var _c = (0, global_store_1.useAiReportStore)(), reportResult = _c.reportResult, updateState = _c.updateState, updateReportResult = _c.updateReportResult;
30
- var postAiInterviewResult = (0, ahooks_1.useRequest)(function () { return (0, ai_report_2.PostAiInterviewResult)([token]); }, {
31
- manual: true,
32
- onSuccess: function (_a) {
33
- var list = _a.data.list;
34
- var result = list[0];
35
- updateReportResult(result);
36
- if (firstLoad.current) {
37
- firstLoad.current = false;
38
- handleMenuList(result);
39
- }
40
- },
41
- }).run;
42
- (0, react_1.useEffect)(function () {
43
- firstLoad.current = true;
44
- postAiInterviewResult();
45
- // eslint-disable-next-line react-hooks/exhaustive-deps
46
- }, [token]);
47
- (0, react_1.useEffect)(function () {
48
- updateState(props);
49
- // eslint-disable-next-line react-hooks/exhaustive-deps
50
- }, [props]);
51
- // 处理菜单数据
52
- var handleMenuList = function (reportResult) {
53
- if (!reportResult.status) {
54
- return;
55
- }
56
- var resList = [ai_report_1.REPORT_MODULE_MAP['videoQuestion']];
57
- var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
58
- if (showAiDimension) {
59
- if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
60
- resList.unshift(ai_report_1.REPORT_MODULE_MAP['suggestion']);
61
- }
62
- if (collection.length > 0 && evaluations.length > 0) {
63
- resList.unshift(ai_report_1.REPORT_MODULE_MAP['evaluate']);
64
- }
65
- if (workplaces.length > 0) {
66
- resList.unshift(ai_report_1.REPORT_MODULE_MAP['workplace']);
67
- }
68
- }
69
- if (collection.length > 0) {
70
- resList.unshift(ai_report_1.REPORT_MODULE_MAP['score']);
71
- }
72
- console.log(resList);
73
- setList(resList);
74
- };
75
- var handlePopoverOpen = function (event) {
76
- setAnchorEl(event.currentTarget);
77
- };
78
- var handlePopoverClose = function () {
79
- setAnchorEl(null);
80
- };
81
- var scrollToAnchor = (0, react_1.useCallback)(function (id) {
82
- if (id) {
83
- var anchorEle = document.getElementById(id);
84
- if (anchorEle) {
85
- anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
86
- }
87
- }
88
- }, []);
89
- var content = (0, react_1.useMemo)(function () {
90
- return ((0, jsx_runtime_1.jsx)(mui_1.List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
91
- var name = _a.name, id = _a.id;
92
- return ((0, jsx_runtime_1.jsx)(mui_1.ListItem, __assign({ disablePadding: true }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemText, { primary: name }) })) }), id));
93
- }) })));
94
- }, [scrollToAnchor, list]);
95
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(reportResult === null || reportResult === void 0 ? void 0 : reportResult.status) && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ style: {
96
- display: 'flex',
97
- alignItems: 'center',
98
- justifyContent: 'center',
99
- position: 'absolute',
100
- top: 20,
101
- right: -10,
102
- zIndex: 999,
103
- height: 32,
104
- width: 32,
105
- backgroundColor: '#fff',
106
- borderRadius: 4,
107
- boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
108
- }, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.MenuIcon, {}) }))), (0, jsx_runtime_1.jsx)(mui_1.Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
109
- vertical: 'bottom',
110
- horizontal: 'right',
111
- }, transformOrigin: {
112
- vertical: -8,
113
- horizontal: 'right',
114
- }, onClose: handlePopoverClose }, { children: content }))] }));
21
+ var ReportMenuAnchor = (0, react_1.forwardRef)(function (props, ref) {
22
+ return ((0, jsx_runtime_1.jsx)(RootProvider_1.default, { children: (0, jsx_runtime_1.jsx)(MenuAnchor_1.default, __assign({}, props)) }));
115
23
  });
116
- MenuAnchor.displayName = 'MenuAnchor';
117
- exports.default = (0, react_1.memo)(MenuAnchor);
24
+ ReportMenuAnchor.displayName = 'AiReport';
25
+ exports.default = (0, react_1.memo)(ReportMenuAnchor);
@@ -0,0 +1,10 @@
1
+ export interface AnchorItem {
2
+ type: string;
3
+ name: string;
4
+ id: string;
5
+ }
6
+ export interface MenuAnchorProps {
7
+ list?: AnchorItem[];
8
+ token: string;
9
+ showAiDimension: boolean;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -12,11 +12,11 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  var jsx_runtime_1 = require("react/jsx-runtime");
15
- var react_1 = require("react");
16
- var fbm_ui_1 = require("fbm-ui");
15
+ var utils_1 = require("../../utils");
17
16
  var ai_report_1 = require("../../../../constants/ai-report");
18
17
  var global_store_1 = require("../../../../store/ai-report/global-store");
19
- var utils_1 = require("../../utils");
18
+ var fbm_ui_1 = require("fbm-ui");
19
+ var react_1 = require("react");
20
20
  var Bar = function () {
21
21
  var _a = (0, react_1.useState)(1), currentRank = _a[0], setCurrentRank = _a[1];
22
22
  var _b = (0, react_1.useState)(''), text = _b[0], setText = _b[1];
@@ -19,7 +19,6 @@ var Root_1 = __importDefault(require("./Root"));
19
19
  var RootProvider_1 = __importDefault(require("../../components/RootProvider"));
20
20
  var react_1 = require("react");
21
21
  var AiReport = (0, react_1.forwardRef)(function (props, ref) {
22
- // const { token, showAiDimension = true } = props;
23
22
  return ((0, jsx_runtime_1.jsx)(RootProvider_1.default, { children: (0, jsx_runtime_1.jsx)(Root_1.default, __assign({ ref: ref }, props)) }));
24
23
  });
25
24
  AiReport.displayName = 'AiReport';
@@ -175,13 +175,3 @@ export interface AiReportProps {
175
175
  export interface AiReportRef {
176
176
  handleRefresh: () => void;
177
177
  }
178
- export interface AnchorItem {
179
- type: string;
180
- name: string;
181
- id: string;
182
- }
183
- export interface MenuAnchorProps {
184
- list?: AnchorItem[];
185
- token: string;
186
- showAiDimension: boolean;
187
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eli-video-interview",
3
- "version": "1.2.28",
3
+ "version": "1.2.29-beta.0",
4
4
  "description": "鳄梨科技 AI视频面试 React SDK",
5
5
  "author": "鳄梨科技",
6
6
  "license": "MIT",
@@ -29,6 +29,12 @@
29
29
  "typescript": "^4.7.2",
30
30
  "use-immer": "^0.7.0"
31
31
  },
32
+ "devDependencies": {
33
+ "@types/jest": "^27.5.1",
34
+ "@types/node": "^16.11.36",
35
+ "@types/react": "^17.0.0",
36
+ "@types/react-dom": "^17.0.0"
37
+ },
32
38
  "scripts": {
33
39
  "clean": "rimraf lib esm build",
34
40
  "serve": "npm run dev",