eli-video-interview 1.8.0 → 1.9.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 (91) hide show
  1. package/esm/components/Charts/ReportPie.js +27 -10
  2. package/esm/components/react-photo-view/hooks/useAnimationPosition.d.ts +1 -1
  3. package/esm/modules/ai-question/Root.js +11 -5
  4. package/esm/modules/ai-question/components/GlobalDimensions/Dialog.d.ts +9 -0
  5. package/esm/modules/ai-question/components/GlobalDimensions/Dialog.js +158 -0
  6. package/esm/modules/ai-question/components/GlobalDimensions/index.d.ts +3 -0
  7. package/esm/modules/ai-question/components/GlobalDimensions/index.js +57 -0
  8. package/esm/modules/ai-question/components/QuestionModel/index.js +2 -1
  9. package/esm/modules/ai-question/components/QuestionModel/interface.d.ts +12 -0
  10. package/esm/modules/ai-question/components/QuestionPreview/styled.d.ts +2 -2
  11. package/esm/modules/ai-question/utils/weight.d.ts +17 -0
  12. package/esm/modules/ai-question/utils/weight.js +38 -0
  13. package/esm/modules/ai-report/components/ScoreReport/styled.d.ts +3 -3
  14. package/esm/modules/ai-report/components/VideoQuestion/styled.d.ts +2 -2
  15. package/esm/modules/ai-report/components/WorkPlaces/styled.d.ts +2 -2
  16. package/esm/modules/ai-report/interface.d.ts +16 -0
  17. package/esm/modules/ai-report-v2/Root.js +2 -1
  18. package/esm/modules/ai-report-v2/components/AIEvaluate/Graph.d.ts +2 -0
  19. package/esm/modules/ai-report-v2/components/AIEvaluate/Graph.js +57 -6
  20. package/esm/modules/ai-report-v2/components/AIEvaluate/index.js +1 -0
  21. package/esm/modules/ai-report-v2/components/GlobalDimensions/index.d.ts +3 -0
  22. package/esm/modules/ai-report-v2/components/GlobalDimensions/index.js +84 -0
  23. package/esm/modules/ai-report-v2/components/ReportHeader/ReportHeader.js +3 -2
  24. package/esm/modules/ai-report-v2/components/ScoreReport/styled.d.ts +3 -3
  25. package/esm/modules/ai-report-v2/components/VideoQuestion/styled.d.ts +2 -2
  26. package/esm/modules/ai-report-v2/components/WorkPlaces/styled.d.ts +2 -2
  27. package/esm/modules/ai-report-v2/components/styled.d.ts +3 -0
  28. package/esm/modules/ai-report-v2/components/styled.js +10 -0
  29. package/esm/modules/ai-report-v2/interface.d.ts +16 -0
  30. package/esm/modules/ai-report-v3/Root.js +2 -1
  31. package/esm/modules/ai-report-v3/components/AIEvaluate/Graph.d.ts +2 -0
  32. package/esm/modules/ai-report-v3/components/AIEvaluate/Graph.js +75 -48
  33. package/esm/modules/ai-report-v3/components/AIEvaluate/index.js +1 -0
  34. package/esm/modules/ai-report-v3/components/GlobalDimensions/index.d.ts +3 -0
  35. package/esm/modules/ai-report-v3/components/GlobalDimensions/index.js +82 -0
  36. package/esm/modules/ai-report-v3/components/ModuleTitle.d.ts +1 -1
  37. package/esm/modules/ai-report-v3/components/ModuleTitle.js +3 -1
  38. package/esm/modules/ai-report-v3/components/ScoreReport/styled.d.ts +3 -3
  39. package/esm/modules/ai-report-v3/components/VideoQuestion/styled.d.ts +2 -2
  40. package/esm/modules/ai-report-v3/components/WorkPlaces/styled.d.ts +2 -2
  41. package/esm/modules/ai-report-v3/interface.d.ts +16 -0
  42. package/esm/modules/ai-template/components/TemplateList/styled.d.ts +3 -3
  43. package/esm/modules/ai-template/components/TemplateMenu/styled.d.ts +1 -1
  44. package/esm/store/ai-question/question-model-store.d.ts +4 -1
  45. package/esm/store/ai-question/question-model-store.js +41 -5
  46. package/lib/components/Charts/ReportPie.js +27 -10
  47. package/lib/components/react-photo-view/hooks/useAnimationPosition.d.ts +1 -1
  48. package/lib/modules/ai-question/Root.js +11 -5
  49. package/lib/modules/ai-question/components/GlobalDimensions/Dialog.d.ts +9 -0
  50. package/lib/modules/ai-question/components/GlobalDimensions/Dialog.js +160 -0
  51. package/lib/modules/ai-question/components/GlobalDimensions/index.d.ts +3 -0
  52. package/lib/modules/ai-question/components/GlobalDimensions/index.js +62 -0
  53. package/lib/modules/ai-question/components/QuestionModel/index.js +2 -1
  54. package/lib/modules/ai-question/components/QuestionModel/interface.d.ts +12 -0
  55. package/lib/modules/ai-question/components/QuestionPreview/styled.d.ts +2 -2
  56. package/lib/modules/ai-question/utils/weight.d.ts +17 -0
  57. package/lib/modules/ai-question/utils/weight.js +43 -0
  58. package/lib/modules/ai-report/components/ScoreReport/styled.d.ts +3 -3
  59. package/lib/modules/ai-report/components/VideoQuestion/styled.d.ts +2 -2
  60. package/lib/modules/ai-report/components/WorkPlaces/styled.d.ts +2 -2
  61. package/lib/modules/ai-report/interface.d.ts +16 -0
  62. package/lib/modules/ai-report-v2/Root.js +2 -1
  63. package/lib/modules/ai-report-v2/components/AIEvaluate/Graph.d.ts +2 -0
  64. package/lib/modules/ai-report-v2/components/AIEvaluate/Graph.js +57 -6
  65. package/lib/modules/ai-report-v2/components/AIEvaluate/index.js +1 -0
  66. package/lib/modules/ai-report-v2/components/GlobalDimensions/index.d.ts +3 -0
  67. package/lib/modules/ai-report-v2/components/GlobalDimensions/index.js +89 -0
  68. package/lib/modules/ai-report-v2/components/ReportHeader/ReportHeader.js +2 -1
  69. package/lib/modules/ai-report-v2/components/ScoreReport/styled.d.ts +3 -3
  70. package/lib/modules/ai-report-v2/components/VideoQuestion/styled.d.ts +2 -2
  71. package/lib/modules/ai-report-v2/components/WorkPlaces/styled.d.ts +2 -2
  72. package/lib/modules/ai-report-v2/components/styled.d.ts +3 -0
  73. package/lib/modules/ai-report-v2/components/styled.js +11 -1
  74. package/lib/modules/ai-report-v2/interface.d.ts +16 -0
  75. package/lib/modules/ai-report-v3/Root.js +2 -1
  76. package/lib/modules/ai-report-v3/components/AIEvaluate/Graph.d.ts +2 -0
  77. package/lib/modules/ai-report-v3/components/AIEvaluate/Graph.js +75 -48
  78. package/lib/modules/ai-report-v3/components/AIEvaluate/index.js +1 -0
  79. package/lib/modules/ai-report-v3/components/GlobalDimensions/index.d.ts +3 -0
  80. package/lib/modules/ai-report-v3/components/GlobalDimensions/index.js +87 -0
  81. package/lib/modules/ai-report-v3/components/ModuleTitle.d.ts +1 -1
  82. package/lib/modules/ai-report-v3/components/ModuleTitle.js +3 -1
  83. package/lib/modules/ai-report-v3/components/ScoreReport/styled.d.ts +3 -3
  84. package/lib/modules/ai-report-v3/components/VideoQuestion/styled.d.ts +2 -2
  85. package/lib/modules/ai-report-v3/components/WorkPlaces/styled.d.ts +2 -2
  86. package/lib/modules/ai-report-v3/interface.d.ts +16 -0
  87. package/lib/modules/ai-template/components/TemplateList/styled.d.ts +3 -3
  88. package/lib/modules/ai-template/components/TemplateMenu/styled.d.ts +1 -1
  89. package/lib/store/ai-question/question-model-store.d.ts +4 -1
  90. package/lib/store/ai-question/question-model-store.js +41 -5
  91. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { QuestionModelData, QuestionModelStep } from '@/modules/ai-question/components/QuestionModel/interface';
2
+ import { GlobalDimension, QuestionModelData, QuestionModelStep } from '@/modules/ai-question/components/QuestionModel/interface';
3
3
  export declare const useQuestionModelStore: (depsFn?: import("hox/es/types").DepsFn<{
4
4
  isEdit: boolean;
5
5
  questionModelData: QuestionModelData | undefined;
@@ -8,6 +8,7 @@ export declare const useQuestionModelStore: (depsFn?: import("hox/es/types").Dep
8
8
  removeModel: (index: number) => void;
9
9
  updateModel: import("react").Dispatch<import("react").SetStateAction<QuestionModelData | undefined>>;
10
10
  updateModelWeight: (value: string, index: number) => void;
11
+ updateGlobalDimensions: (dimensions: GlobalDimension[]) => void;
11
12
  }> | undefined) => {
12
13
  isEdit: boolean;
13
14
  questionModelData: QuestionModelData | undefined;
@@ -16,6 +17,7 @@ export declare const useQuestionModelStore: (depsFn?: import("hox/es/types").Dep
16
17
  removeModel: (index: number) => void;
17
18
  updateModel: import("react").Dispatch<import("react").SetStateAction<QuestionModelData | undefined>>;
18
19
  updateModelWeight: (value: string, index: number) => void;
20
+ updateGlobalDimensions: (dimensions: GlobalDimension[]) => void;
19
21
  }, getQuestionModelStore: () => {
20
22
  isEdit: boolean;
21
23
  questionModelData: QuestionModelData | undefined;
@@ -24,4 +26,5 @@ export declare const useQuestionModelStore: (depsFn?: import("hox/es/types").Dep
24
26
  removeModel: (index: number) => void;
25
27
  updateModel: import("react").Dispatch<import("react").SetStateAction<QuestionModelData | undefined>>;
26
28
  updateModelWeight: (value: string, index: number) => void;
29
+ updateGlobalDimensions: (dimensions: GlobalDimension[]) => void;
27
30
  } | undefined;
@@ -32,6 +32,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
32
32
  var _a;
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
34
  exports.getQuestionModelStore = exports.useQuestionModelStore = void 0;
35
+ var weight_1 = require("../../modules/ai-question/utils/weight");
35
36
  var ai_question_1 = require("../../constants/ai-question");
36
37
  var utils_1 = require("../../utils/utils");
37
38
  var hox_1 = require("hox");
@@ -43,9 +44,17 @@ exports.useQuestionModelStore = (_a = __read((0, hox_1.createGlobalStore)(functi
43
44
  /**
44
45
  * 权重值计算
45
46
  * @param steps 模型数据
47
+ * @param isManualUpdate 是否手动调整(true 时保留已有权重,由最后一道 AI 题吸收差额)
48
+ * @param options.globalDimensions 本次要写入的全局维度(默认取当前试卷已配置的)
49
+ * @param options.questionWeightPool 题目权重池(默认 100 - 全局维度权重合计)
46
50
  */
47
- var computeWeight = (0, react_1.useCallback)(function (steps, isManualUpdate) {
51
+ var computeWeight = (0, react_1.useCallback)(function (steps, isManualUpdate, options) {
48
52
  if (isManualUpdate === void 0) { isManualUpdate = false; }
53
+ if (options === void 0) { options = {}; }
54
+ var nextGlobalDimensions = options.globalDimensions !== undefined ? options.globalDimensions : questionModelData === null || questionModelData === void 0 ? void 0 : questionModelData.globalDimensions;
55
+ var questionWeightPool = options.questionWeightPool !== undefined
56
+ ? Math.max(0, Number(options.questionWeightPool) || 0)
57
+ : (0, weight_1.computeQuestionWeightPool)(nextGlobalDimensions);
49
58
  var lastAiTestIndex = 0;
50
59
  // AI评分题
51
60
  var aiTypeList = steps.filter(function (step, index) {
@@ -74,12 +83,12 @@ exports.useQuestionModelStore = (_a = __read((0, hox_1.createGlobalStore)(functi
74
83
  var getWeight = function (_a, i) {
75
84
  var weight = _a.weight;
76
85
  if (weightsLen <= 1 && !isManualUpdate) {
77
- var averageWeight = Math.floor((100 / aiTypeListLength) * 100) / 100;
78
- var disableWeight = 100 - Math.floor(averageWeight * (aiTypeListLength - 1) * 100) / 100;
86
+ var averageWeight = Math.floor((questionWeightPool / aiTypeListLength) * 100) / 100;
87
+ var disableWeight = questionWeightPool - Math.floor(averageWeight * (aiTypeListLength - 1) * 100) / 100;
79
88
  return i === lastAiTestIndex ? (0, utils_1.computeDecimalValue)(disableWeight.toString()) : (0, utils_1.computeDecimalValue)(averageWeight.toString());
80
89
  }
81
90
  else {
82
- return i !== lastAiTestIndex ? weight : (0, utils_1.computeDecimalValue)((100 - beforeTotalWeight).toString());
91
+ return i !== lastAiTestIndex ? weight : (0, utils_1.computeDecimalValue)((questionWeightPool - beforeTotalWeight).toString());
83
92
  }
84
93
  };
85
94
  var $splice = steps.map(function (step, i) {
@@ -91,8 +100,34 @@ exports.useQuestionModelStore = (_a = __read((0, hox_1.createGlobalStore)(functi
91
100
  __assign(__assign({}, step), { weight: (0, ai_question_1.IS_AI_ANALYSIS)(step) ? getWeight(step, i) : 0 }),
92
101
  ];
93
102
  });
94
- updateModel(__assign(__assign({}, questionModelData), { duration: totalDuration, steps: (0, immutability_helper_1.default)(steps, { $splice: $splice }) }));
103
+ updateModel(__assign(__assign(__assign({}, questionModelData), (nextGlobalDimensions !== undefined ? { globalDimensions: nextGlobalDimensions } : {})), { duration: totalDuration, steps: (0, immutability_helper_1.default)(steps, { $splice: $splice }) }));
95
104
  }, [questionModelData]);
105
+ /**
106
+ * 更新全局维度配置
107
+ * 题目权重池随之变化,按现有题目权重重排(最后一道 AI 题吸收差额),保证题目 + 全局合计 100%
108
+ */
109
+ var updateGlobalDimensions = (0, react_1.useCallback)(function (dimensions) {
110
+ var questionWeightPool = (0, weight_1.computeQuestionWeightPool)(dimensions);
111
+ var steps = (questionModelData === null || questionModelData === void 0 ? void 0 : questionModelData.steps) || [];
112
+ // 题目权重按比例缩放到新的权重池,保证「题目 + 全局」恒等于 100%,且不会出现负权重
113
+ var aiStepIndexes = steps.reduce(function (indexes, step, index) {
114
+ if ((0, ai_question_1.IS_AI_ANALYSIS)(step)) {
115
+ indexes.push(index);
116
+ }
117
+ return indexes;
118
+ }, []);
119
+ var rebalancedWeights = (0, weight_1.rebalanceWeights)(aiStepIndexes.map(function (index) { return Number(steps[index].weight) || 0; }), questionWeightPool);
120
+ var nextSteps = aiStepIndexes.length
121
+ ? steps.map(function (step, index) {
122
+ var position = aiStepIndexes.indexOf(index);
123
+ return position < 0 ? step : __assign(__assign({}, step), { weight: rebalancedWeights[position] });
124
+ })
125
+ : steps;
126
+ computeWeight(nextSteps, true, {
127
+ globalDimensions: dimensions,
128
+ questionWeightPool: questionWeightPool,
129
+ });
130
+ }, [computeWeight, questionModelData]);
96
131
  /**
97
132
  * 更新模型数据权重值
98
133
  * @param value 权重值
@@ -156,5 +191,6 @@ exports.useQuestionModelStore = (_a = __read((0, hox_1.createGlobalStore)(functi
156
191
  removeModel: removeModel,
157
192
  updateModel: updateModel,
158
193
  updateModelWeight: updateModelWeight,
194
+ updateGlobalDimensions: updateGlobalDimensions,
159
195
  };
160
196
  }), 2), _a[0]), exports.getQuestionModelStore = _a[1];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eli-video-interview",
3
- "version": "1.8.0",
3
+ "version": "1.9.1",
4
4
  "description": "鳄梨科技 AI视频面试 React SDK",
5
5
  "author": "鳄梨科技",
6
6
  "license": "MIT",