@myinterview/widget-react 1.0.311 → 1.1.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.
- package/dist/cjs/App.d.ts +3 -0
- package/dist/cjs/components/AnswerInstructions.d.ts +7 -0
- package/dist/cjs/components/AssessmentController.d.ts +12 -0
- package/dist/cjs/components/AssessmentFreeText.d.ts +7 -0
- package/dist/cjs/components/AssessmentMultiSelect.d.ts +9 -0
- package/dist/cjs/components/AssessmentSingleSelect.d.ts +9 -0
- package/dist/cjs/components/CharactersLimit.d.ts +7 -0
- package/dist/cjs/components/CountDown.d.ts +8 -0
- package/dist/cjs/components/Counter.d.ts +8 -0
- package/dist/cjs/components/DeviceSelector.d.ts +11 -0
- package/dist/cjs/components/DeviceSelectorList.d.ts +9 -0
- package/dist/cjs/components/DeviceSelectorListNative.d.ts +6 -0
- package/dist/cjs/components/Error.d.ts +8 -0
- package/dist/cjs/components/ErrorBoundaries.d.ts +9 -0
- package/dist/cjs/components/Errors.d.ts +12 -0
- package/dist/cjs/components/Explanation.d.ts +8 -0
- package/dist/cjs/components/Footer.d.ts +2 -0
- package/dist/cjs/components/Header.d.ts +10 -0
- package/dist/cjs/components/InnerView.d.ts +15 -0
- package/dist/cjs/components/Main.d.ts +11 -0
- package/dist/cjs/components/OuterView.d.ts +8 -0
- package/dist/cjs/components/PermissionSteps.d.ts +6 -0
- package/dist/cjs/components/PracticeModeInfo.d.ts +2 -0
- package/dist/cjs/components/PreviewItem.d.ts +20 -0
- package/dist/cjs/components/PreviewList.d.ts +18 -0
- package/dist/cjs/components/Question.d.ts +8 -0
- package/dist/cjs/components/QuestionItem.d.ts +12 -0
- package/dist/cjs/components/QuestionParamaters.d.ts +9 -0
- package/dist/cjs/components/QuestionsList.d.ts +11 -0
- package/dist/cjs/components/RecorderModal.d.ts +13 -0
- package/dist/cjs/components/Setup.d.ts +7 -0
- package/dist/cjs/components/SetupChecks.d.ts +14 -0
- package/dist/cjs/components/SliderModal.d.ts +8 -0
- package/dist/cjs/components/TopTips.d.ts +2 -0
- package/dist/cjs/components/Upload.d.ts +13 -0
- package/dist/cjs/components/VideoCamera.d.ts +31 -0
- package/dist/cjs/components/VideoQuestion.d.ts +10 -0
- package/dist/cjs/components/VideoTimeBar.d.ts +9 -0
- package/dist/cjs/components/WelcomePage.d.ts +16 -0
- package/dist/cjs/components/Widget.d.ts +3 -0
- package/dist/cjs/components/icons/ClockIcon.d.ts +2 -0
- package/dist/cjs/components/icons/Loading.d.ts +2 -0
- package/dist/cjs/components/icons/NoCameraMic.d.ts +2 -0
- package/dist/cjs/components/icons/PlayIcon.d.ts +6 -0
- package/dist/cjs/components/icons/Retake.d.ts +2 -0
- package/dist/cjs/components/icons/RotateScreenIcon.d.ts +2 -0
- package/dist/cjs/components/ui/DotSeparator.d.ts +2 -0
- package/dist/cjs/components/ui/Loader.d.ts +2 -0
- package/dist/cjs/components/ui/MicrophoneIndicator.d.ts +7 -0
- package/dist/cjs/components/ui/MinimizeButton.d.ts +6 -0
- package/dist/cjs/components/ui/PracticeMode.d.ts +2 -0
- package/dist/cjs/components/ui/Progress.d.ts +6 -0
- package/dist/cjs/components/ui/QuestionDuration.d.ts +6 -0
- package/dist/cjs/components/ui/QuestionNumber.d.ts +7 -0
- package/dist/cjs/components/ui/RecordingButton.d.ts +6 -0
- package/dist/cjs/components/ui/RotateScreen.d.ts +2 -0
- package/dist/cjs/components/ui/Signal.d.ts +9 -0
- package/dist/cjs/components/ui/StartNowButton.d.ts +6 -0
- package/dist/cjs/components/ui/StartRecordingButton.d.ts +11 -0
- package/dist/cjs/components/ui/StopRecordingButton.d.ts +7 -0
- package/dist/cjs/components/ui/UnsupportedModal.d.ts +6 -0
- package/dist/cjs/config/index.d.ts +7 -0
- package/dist/cjs/config/local.env.d.ts +6 -0
- package/dist/cjs/config/prod.env.d.ts +6 -0
- package/dist/cjs/config/staging.env.d.ts +6 -0
- package/dist/cjs/i18n/config.d.ts +1490 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +36599 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/candidateInterface.d.ts +14 -0
- package/dist/cjs/interfaces/candidateSessionInterface.d.ts +83 -0
- package/dist/cjs/interfaces/companyInterface.d.ts +4 -0
- package/dist/cjs/interfaces/configInterface.d.ts +64 -0
- package/dist/cjs/interfaces/countDownInterface.d.ts +23 -0
- package/dist/cjs/interfaces/jobInterface.d.ts +72 -0
- package/dist/cjs/interfaces/microphoneInterface.d.ts +41 -0
- package/dist/cjs/interfaces/networkInterface.d.ts +9 -0
- package/dist/cjs/interfaces/previewInterface.d.ts +14 -0
- package/dist/cjs/interfaces/recorderInterface.d.ts +203 -0
- package/dist/cjs/interfaces/storageInterface.d.ts +29 -0
- package/dist/cjs/interfaces/uploaderInterface.d.ts +41 -0
- package/dist/cjs/interfaces/videoInterface.d.ts +84 -0
- package/dist/cjs/interfaces/widgetInterface.d.ts +231 -0
- package/dist/cjs/machines/acceleratorMachines/accUploaderMachine.d.ts +6 -0
- package/dist/cjs/machines/acceleratorMachines/accWidgetMachine.d.ts +6 -0
- package/dist/cjs/machines/acceleratorMachines/counterMachine.d.ts +5 -0
- package/dist/cjs/machines/acceleratorMachines/microphoneMachine.d.ts +6 -0
- package/dist/cjs/machines/acceleratorMachines/networkMachine.d.ts +5 -0
- package/dist/cjs/machines/acceleratorMachines/previewMachine.d.ts +6 -0
- package/dist/cjs/machines/acceleratorMachines/recorderMachineV2.d.ts +6 -0
- package/dist/cjs/machines/acceleratorMachines/storageMachine.d.ts +6 -0
- package/dist/cjs/reportWebVitals.d.ts +3 -0
- package/dist/cjs/services/axiosInstances.service.d.ts +4 -0
- package/dist/cjs/services/s3.service.d.ts +1 -0
- package/dist/cjs/services/session.service.d.ts +57 -0
- package/dist/cjs/services/speedTest.service.d.ts +2 -0
- package/dist/cjs/services/video.service.d.ts +7 -0
- package/dist/cjs/setupTests.d.ts +1 -0
- package/dist/cjs/utils/authToken.utils.d.ts +7 -0
- package/dist/cjs/utils/constants.utils.d.ts +21 -0
- package/dist/cjs/utils/convertor.utils.d.ts +2 -0
- package/dist/cjs/utils/debug.utils.d.ts +19 -0
- package/dist/cjs/utils/device.utils.d.ts +12 -0
- package/dist/cjs/utils/errors.utils.d.ts +9 -0
- package/dist/cjs/utils/formatters.utils.d.ts +5 -0
- package/dist/cjs/utils/languages.utils.d.ts +1 -0
- package/dist/cjs/utils/messages.utils.d.ts +16 -0
- package/dist/cjs/utils/recorderErrors.utils.d.ts +29 -0
- package/dist/cjs/utils/sentry.utils.d.ts +6 -0
- package/dist/cjs/utils/statusCodes.utils.d.ts +13 -0
- package/dist/cjs/workers/microphone.worker.d.ts +2 -0
- package/dist/cjs/workers/worker-builder.d.ts +3 -0
- package/dist/esm/App.d.ts +1 -0
- package/dist/esm/components/AnswerInstructions.d.ts +7 -0
- package/dist/esm/components/AssessmentController.d.ts +12 -0
- package/dist/esm/components/AssessmentFreeText.d.ts +7 -0
- package/dist/esm/components/AssessmentMultiSelect.d.ts +9 -0
- package/dist/esm/components/AssessmentSingleSelect.d.ts +9 -0
- package/dist/esm/components/CharactersLimit.d.ts +7 -0
- package/dist/esm/components/CountDown.d.ts +3 -1
- package/dist/esm/components/DeviceSelector.d.ts +3 -2
- package/dist/esm/components/Errors.d.ts +2 -2
- package/dist/esm/components/Explanation.d.ts +2 -1
- package/dist/esm/components/InnerView.d.ts +1 -0
- package/dist/esm/components/Main.d.ts +2 -0
- package/dist/esm/components/PracticeModeInfo.d.ts +1 -7
- package/dist/esm/components/PreviewItem.d.ts +4 -0
- package/dist/esm/components/PreviewList.d.ts +1 -0
- package/dist/esm/components/Question.d.ts +2 -3
- package/dist/esm/components/QuestionItem.d.ts +2 -2
- package/dist/esm/components/QuestionParamaters.d.ts +9 -0
- package/dist/esm/components/QuestionsList.d.ts +2 -2
- package/dist/esm/components/RecorderModal.d.ts +2 -4
- package/dist/esm/components/Setup.d.ts +1 -0
- package/dist/esm/components/VideoCamera.d.ts +4 -2
- package/dist/esm/components/Widget.d.ts +0 -3
- package/dist/esm/components/ui/DotSeparator.d.ts +2 -0
- package/dist/esm/components/ui/StartRecordingButton.d.ts +1 -0
- package/dist/esm/i18n/config.d.ts +349 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +6327 -12129
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/candidateSessionInterface.d.ts +1 -1
- package/dist/esm/interfaces/configInterface.d.ts +12 -6
- package/dist/esm/interfaces/countDownInterface.d.ts +23 -0
- package/dist/esm/interfaces/jobInterface.d.ts +43 -3
- package/dist/esm/interfaces/microphoneInterface.d.ts +3 -0
- package/dist/esm/interfaces/recorderInterface.d.ts +8 -3
- package/dist/esm/interfaces/uploaderInterface.d.ts +5 -3
- package/dist/esm/interfaces/videoInterface.d.ts +30 -1
- package/dist/esm/interfaces/widgetInterface.d.ts +28 -10
- package/dist/esm/machines/acceleratorMachines/counterMachine.d.ts +5 -0
- package/dist/esm/services/session.service.d.ts +1 -1
- package/dist/esm/services/video.service.d.ts +4 -4
- package/dist/esm/utils/constants.utils.d.ts +8 -0
- package/dist/esm/utils/convertor.utils.d.ts +2 -0
- package/dist/esm/utils/device.utils.d.ts +1 -1
- package/dist/esm/utils/formatters.utils.d.ts +1 -1
- package/dist/esm/utils/languages.utils.d.ts +1 -0
- package/dist/esm/utils/recorderErrors.utils.d.ts +1 -0
- package/dist/esm/utils/sentry.utils.d.ts +3 -1
- package/dist/esm/workers/microphone.worker.d.ts +2 -0
- package/dist/esm/workers/worker-builder.d.ts +3 -0
- package/dist/index.d.ts +82 -19
- package/package.json +121 -16
- package/dist/esm/utils/practiceQuestions.utils.d.ts +0 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ICandidate {
|
|
2
|
+
candidate_id?: string;
|
|
3
|
+
email: string;
|
|
4
|
+
username?: string;
|
|
5
|
+
phone?: string;
|
|
6
|
+
video_id?: string;
|
|
7
|
+
redirectUrl?: string;
|
|
8
|
+
additionalData?: object;
|
|
9
|
+
disableResume?: boolean;
|
|
10
|
+
reapply?: boolean;
|
|
11
|
+
enableNotifications?: boolean;
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
company_id?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author tht7 ( tht7 )
|
|
3
|
+
* @date 10/07/12022 6:48 pm
|
|
4
|
+
*/
|
|
5
|
+
declare global {
|
|
6
|
+
interface Window {
|
|
7
|
+
candidateSession?: ICandidateSession;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const enum CandidateSessionError {
|
|
11
|
+
NO_CANDIDATE_FOUND = "NO_CANDIDATE_FOUND",
|
|
12
|
+
NO_JOB_FOUND = "NO_JOB_FOUND",
|
|
13
|
+
DEADLINE_EXPIRED = "DEADLINE_EXPIRED",
|
|
14
|
+
NO_AUDIO = "NO_AUDIO",
|
|
15
|
+
NO_VIDEO = "NO_VIDEO",
|
|
16
|
+
PERMISSIONS_BLOCKED = "PERMISSIONS_BLOCKED",
|
|
17
|
+
JOB_INACTIVE = "JOB_INACTIVE",
|
|
18
|
+
SUBSCRIPTION_PAUSED = "SUBSCRIPTION_PAUSED",
|
|
19
|
+
SUBSCRIPTION_CANCELLED = "SUBSCRIPTION_CANCELLED",
|
|
20
|
+
INTERVIEW_ALREADY_COMPLETED = "INTERVIEW_ALREADY_COMPLETED",
|
|
21
|
+
MEDIA_RECORDER_ERROR = "MEDIA_RECORDER_ERROR"
|
|
22
|
+
}
|
|
23
|
+
export declare const enum CandidateSessionWarnings {
|
|
24
|
+
LOW_LIGHT = "LOW_LIGHT",
|
|
25
|
+
LOW_VOLUME = "LOW_VOLUME",
|
|
26
|
+
SLOW_CONNECTION = "SLOW_CONNECTION",
|
|
27
|
+
NO_INTERNET = "NO_INTERNET",
|
|
28
|
+
NotAllowedError = "NotAllowedError",
|
|
29
|
+
NotFoundError = "NotFoundError",
|
|
30
|
+
NotReadableError = "NotReadableError",
|
|
31
|
+
OverconstrainedError = "OverconstrainedError",
|
|
32
|
+
SecurityError = "SecurityError"
|
|
33
|
+
}
|
|
34
|
+
export type CandidateSessionSourceType = 'direct' | 'email' | 'sms' | 'email_reminder' | 'sms_reminder';
|
|
35
|
+
export declare const enum CandidateSessionSourceMap {
|
|
36
|
+
direct_start_inter = "direct",
|
|
37
|
+
reminder_start_inter = "email_reminder",
|
|
38
|
+
reminder_sms_start_inter = "sms_reminder",
|
|
39
|
+
email_start_inter = "email",
|
|
40
|
+
sms_start_inter = "sms"
|
|
41
|
+
}
|
|
42
|
+
export interface ICandidateSession {
|
|
43
|
+
session_id: string;
|
|
44
|
+
duration: number;
|
|
45
|
+
error?: keyof typeof CandidateSessionError;
|
|
46
|
+
warnings?: (keyof typeof CandidateSessionWarnings)[];
|
|
47
|
+
reload_count: number;
|
|
48
|
+
files_uploaded_count: number;
|
|
49
|
+
widget_version: string;
|
|
50
|
+
company_id: string;
|
|
51
|
+
apiKey: string;
|
|
52
|
+
job_id?: string;
|
|
53
|
+
candidate_id?: string;
|
|
54
|
+
video_id?: string;
|
|
55
|
+
email?: string;
|
|
56
|
+
source?: CandidateSessionSourceType;
|
|
57
|
+
userAgent?: string;
|
|
58
|
+
ip?: string;
|
|
59
|
+
candidate_location?: string;
|
|
60
|
+
first_interaction?: Date;
|
|
61
|
+
form_filled?: Date;
|
|
62
|
+
document_uploaded?: Date;
|
|
63
|
+
top_tips_shown?: Date;
|
|
64
|
+
top_tips_clicked?: Date;
|
|
65
|
+
top_tips_positive_rating?: boolean;
|
|
66
|
+
widget_shown?: Date;
|
|
67
|
+
widget_practiced?: Date;
|
|
68
|
+
widget_camera_setup?: Date;
|
|
69
|
+
widget_microphone_setup?: Date;
|
|
70
|
+
widget_slow_internet_setup?: Date;
|
|
71
|
+
widget_high_internet_setup?: Date;
|
|
72
|
+
widget_medium_internet_setup?: Date;
|
|
73
|
+
widget_start_click_setup?: Date;
|
|
74
|
+
widget_change_camera_setup?: Date;
|
|
75
|
+
widget_change_mic_setup?: Date;
|
|
76
|
+
widget_exit?: Date;
|
|
77
|
+
widget_retake_count: number;
|
|
78
|
+
widget_submitted?: Date;
|
|
79
|
+
widget_completed?: Date;
|
|
80
|
+
page_closed: Date;
|
|
81
|
+
createdAt: Date;
|
|
82
|
+
updatedAt: Date;
|
|
83
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { ICandidate } from './candidateInterface';
|
|
3
|
+
import { ICompany } from './companyInterface';
|
|
4
|
+
import { ALL_JOB_QUESTIONS_TYPE, IClientJob, IClientQuestion, IJob } from './jobInterface';
|
|
5
|
+
import { IVideo } from './videoInterface';
|
|
6
|
+
export type IMessageType = 'completed' | 'deadline' | 'applied' | 'inactiveJob';
|
|
7
|
+
export interface IOnFinish {
|
|
8
|
+
redirectUrl?: string;
|
|
9
|
+
video_id: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IOnError {
|
|
12
|
+
messageType: IMessageType;
|
|
13
|
+
}
|
|
14
|
+
export type IEnv = 'dev' | 'staging' | 'production' | 'development' | 'local';
|
|
15
|
+
interface IConfig {
|
|
16
|
+
auth: string;
|
|
17
|
+
onWidgetClicked?: () => void;
|
|
18
|
+
onFinish?: (data: IOnFinish) => void;
|
|
19
|
+
onError?: (data: IOnError) => void;
|
|
20
|
+
onWidgetClose?: () => void;
|
|
21
|
+
openAnimation?: boolean;
|
|
22
|
+
debug?: boolean;
|
|
23
|
+
practiceQuestions?: ALL_JOB_QUESTIONS_TYPE[];
|
|
24
|
+
overlay?: string;
|
|
25
|
+
introVideo?: string;
|
|
26
|
+
welcomeTitle?: string;
|
|
27
|
+
welcomeText?: string;
|
|
28
|
+
env?: IEnv;
|
|
29
|
+
minimizable?: boolean;
|
|
30
|
+
hideHeader?: boolean;
|
|
31
|
+
hideIntercom?: boolean;
|
|
32
|
+
disablePractice?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export type IClientConfig = Omit<IConfig, 'practiceQuestions'> & {
|
|
35
|
+
practiceQuestions?: IClientQuestion[];
|
|
36
|
+
};
|
|
37
|
+
export interface IWidgetConfig {
|
|
38
|
+
video?: IVideo;
|
|
39
|
+
candidate: ICandidate;
|
|
40
|
+
job?: IJob;
|
|
41
|
+
company?: ICompany;
|
|
42
|
+
config: IConfig;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
buttonText?: string;
|
|
45
|
+
buttonStyle?: CSSProperties;
|
|
46
|
+
children?: React.ReactNode;
|
|
47
|
+
styleUrls?: string | string[];
|
|
48
|
+
fontsUrls?: string | string[];
|
|
49
|
+
}
|
|
50
|
+
export type IClientWidgetConfig = Omit<IWidgetConfig, 'job' | 'config'> & {
|
|
51
|
+
job: IClientJob;
|
|
52
|
+
config: IClientConfig;
|
|
53
|
+
};
|
|
54
|
+
export interface IWidgetConfigResponse {
|
|
55
|
+
video: IVideo;
|
|
56
|
+
candidate: ICandidate;
|
|
57
|
+
job: IJob;
|
|
58
|
+
}
|
|
59
|
+
export interface IWidgetConfigRequest {
|
|
60
|
+
video?: IVideo;
|
|
61
|
+
candidate?: ICandidate;
|
|
62
|
+
job?: IJob;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface CounterInterface {
|
|
2
|
+
counterRef: any;
|
|
3
|
+
ms: number;
|
|
4
|
+
isAutoStart: boolean;
|
|
5
|
+
callback: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const enum GUARDS {
|
|
8
|
+
IS_AUTO_START = "isAutoStart"
|
|
9
|
+
}
|
|
10
|
+
export declare const enum STATES {
|
|
11
|
+
IDLE = "idle",
|
|
12
|
+
COUNTING = "counting",
|
|
13
|
+
PAUSED = "paused"
|
|
14
|
+
}
|
|
15
|
+
export declare const enum ACTIONS {
|
|
16
|
+
TICK = "tick",
|
|
17
|
+
INIT_OBSERVER = "initObserver"
|
|
18
|
+
}
|
|
19
|
+
export declare const enum EVENTS {
|
|
20
|
+
TICK = "TICK",
|
|
21
|
+
START = "START",
|
|
22
|
+
PAUSE = "PAUSE"
|
|
23
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export declare const enum ANSWER_TYPES {
|
|
2
|
+
VIDEO = "video",
|
|
3
|
+
TEXT = "text",
|
|
4
|
+
MULTIPLE = "multiple_choice",
|
|
5
|
+
SINGLE = "single_choice"
|
|
6
|
+
}
|
|
7
|
+
export interface IQuestion {
|
|
8
|
+
question: string;
|
|
9
|
+
numOfRetakes: number;
|
|
10
|
+
partDuration: number;
|
|
11
|
+
thinkingTime: number;
|
|
12
|
+
timeLimit?: number;
|
|
13
|
+
videoQuestion?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface IQuestionDefault extends IQuestion {
|
|
17
|
+
answerType?: `${ANSWER_TYPES.VIDEO}`;
|
|
18
|
+
}
|
|
19
|
+
export interface IQuestionTextAnswer extends IQuestion {
|
|
20
|
+
answerType: `${ANSWER_TYPES.TEXT}`;
|
|
21
|
+
config?: {
|
|
22
|
+
minChars?: number;
|
|
23
|
+
maxChars?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface IMultipleChoiceOptionDefinition {
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
}
|
|
30
|
+
export interface IQuestionChoiceAnswer extends IQuestion {
|
|
31
|
+
config?: {
|
|
32
|
+
shuffle?: boolean;
|
|
33
|
+
answers: IMultipleChoiceOptionDefinition[];
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface IQuestionMultipleAnswer extends IQuestionChoiceAnswer {
|
|
37
|
+
answerType: `${ANSWER_TYPES.MULTIPLE}`;
|
|
38
|
+
config?: {
|
|
39
|
+
minAnswers?: number;
|
|
40
|
+
maxAnswers?: number;
|
|
41
|
+
} & IQuestionChoiceAnswer['config'];
|
|
42
|
+
}
|
|
43
|
+
export interface IQuestionSingleAnswer extends IQuestionChoiceAnswer {
|
|
44
|
+
answerType: `${ANSWER_TYPES.SINGLE}`;
|
|
45
|
+
}
|
|
46
|
+
type leanQuestion<T> = Omit<T, 'numOfRetakes' | 'partDuration' | 'thinkingTime'> & {
|
|
47
|
+
attempts?: number;
|
|
48
|
+
duration?: number;
|
|
49
|
+
thinkingTime?: number;
|
|
50
|
+
};
|
|
51
|
+
export type ALL_JOB_QUESTIONS_TYPE = IQuestionDefault | IQuestionTextAnswer | IQuestionMultipleAnswer | IQuestionSingleAnswer;
|
|
52
|
+
export type ASSESSMENT_QUESTIONS_TYPE = Exclude<ALL_JOB_QUESTIONS_TYPE, IQuestionDefault>;
|
|
53
|
+
export type IClientQuestion = leanQuestion<IQuestionDefault> | leanQuestion<IQuestionTextAnswer> | leanQuestion<IQuestionMultipleAnswer> | leanQuestion<IQuestionSingleAnswer>;
|
|
54
|
+
export interface IJob {
|
|
55
|
+
language?: string;
|
|
56
|
+
transcriptLanguage?: string;
|
|
57
|
+
title?: string;
|
|
58
|
+
company?: string;
|
|
59
|
+
job_id?: string;
|
|
60
|
+
logo?: string;
|
|
61
|
+
questions?: ALL_JOB_QUESTIONS_TYPE[];
|
|
62
|
+
old_jobID?: string;
|
|
63
|
+
termsUrl?: string;
|
|
64
|
+
privacyUrl?: string;
|
|
65
|
+
apiKey?: string;
|
|
66
|
+
company_id?: string;
|
|
67
|
+
jobID?: string;
|
|
68
|
+
}
|
|
69
|
+
export type IClientJob = Omit<IJob, 'questions'> & {
|
|
70
|
+
questions?: IClientQuestion[];
|
|
71
|
+
};
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface InitialState {
|
|
2
|
+
mediaStream: MediaStream | null;
|
|
3
|
+
micData: number;
|
|
4
|
+
retakes: number;
|
|
5
|
+
webWorker: Worker | null;
|
|
6
|
+
}
|
|
7
|
+
export declare const enum STATES {
|
|
8
|
+
INACTIVE = "inactive",
|
|
9
|
+
ACTIVE = "active",
|
|
10
|
+
NOT_RECEIVING_DATA = "notReceivingData",
|
|
11
|
+
RECEIVING_DATA = "receivingData",
|
|
12
|
+
DATA_CHECK = "dataCheck"
|
|
13
|
+
}
|
|
14
|
+
export declare const enum ACTIONS {
|
|
15
|
+
COLLECT_BREADCRUMB = "collectBreadcrumb",
|
|
16
|
+
INIT_WEB_WORKER = "initWebWorker",
|
|
17
|
+
CONSOLE_LOG = "consoleLog",
|
|
18
|
+
SET_MEDIA_STREAM = "setMediaStream",
|
|
19
|
+
UPDATE_MIC = "updateMic",
|
|
20
|
+
UPDATE_RETAKES = "UPDATE_RETAKES",
|
|
21
|
+
CLEAN_RETAKES = "CLEAN_RETAKES",
|
|
22
|
+
SENTRY = "sentry"
|
|
23
|
+
}
|
|
24
|
+
export declare const enum EVENTS {
|
|
25
|
+
UNMUTE = "UNMUTE",
|
|
26
|
+
MUTE = "MUTE",
|
|
27
|
+
ON_SET_MEDIA_STREAM = "ON_SET_MEDIA_STREAM",
|
|
28
|
+
SEND_DATA = "SEND_DATA",
|
|
29
|
+
MIC_CHECK = "MIC_CHECK",
|
|
30
|
+
SEND_ERROR = "SEND_ERROR",
|
|
31
|
+
UPDATE_RETAKES = "UPDATE_RETAKES",
|
|
32
|
+
CLEAN_RETAKES = "CLEAN_RETAKES"
|
|
33
|
+
}
|
|
34
|
+
export declare const enum SERVICES {
|
|
35
|
+
CHECK_MICROPHONE_LEVEL = "checkMicrophoneLevel"
|
|
36
|
+
}
|
|
37
|
+
export declare const enum GUARDS {
|
|
38
|
+
IS_MEDIA_STREAM_AVAILABLE = "isMediaStreamAvailable",
|
|
39
|
+
IS_MIC_NOT_RECEIVING_DATA = "isMicNotReceivingData",
|
|
40
|
+
IS_MIC_RECEIVING_DATA = "isMicReceivingData"
|
|
41
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface PreviewInterface {
|
|
2
|
+
videosUrls: string[];
|
|
3
|
+
}
|
|
4
|
+
export declare const enum STATES {
|
|
5
|
+
IDLE = "idle",
|
|
6
|
+
ERROR = "error",
|
|
7
|
+
FINISH = "finish"
|
|
8
|
+
}
|
|
9
|
+
export declare const enum EVENTS {
|
|
10
|
+
TAKES_RECEIVED = "TAKES_RECEIVED"
|
|
11
|
+
}
|
|
12
|
+
export declare const enum ACTIONS {
|
|
13
|
+
SET_TAKES = "setTakes"
|
|
14
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { ActorRef, DoneInvokeEvent } from 'xstate';
|
|
2
|
+
import { RefObject } from 'react';
|
|
3
|
+
export declare const enum SPEED_TEST_LEVEL {
|
|
4
|
+
LOW = 0,
|
|
5
|
+
MEDIUM = 1,
|
|
6
|
+
HIGH = 2
|
|
7
|
+
}
|
|
8
|
+
export type mediaDeviceType = 'video' | 'audio';
|
|
9
|
+
type ConstrainProps = {
|
|
10
|
+
video: {
|
|
11
|
+
width: {
|
|
12
|
+
min?: number;
|
|
13
|
+
ideal?: number;
|
|
14
|
+
max: number;
|
|
15
|
+
};
|
|
16
|
+
aspectRatio?: number;
|
|
17
|
+
};
|
|
18
|
+
audio: boolean;
|
|
19
|
+
};
|
|
20
|
+
interface FacingMode {
|
|
21
|
+
exact: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RecorderInterface {
|
|
24
|
+
facingMode: FacingMode;
|
|
25
|
+
microphoneRef: ActorRef<DoneInvokeEvent<any>> | null;
|
|
26
|
+
countDownRef: ActorRef<DoneInvokeEvent<any>> | null;
|
|
27
|
+
mediaStream?: MediaStream;
|
|
28
|
+
mediaRecorder?: MediaRecorder;
|
|
29
|
+
videoDevices: MediaDeviceInfo[];
|
|
30
|
+
audioDevices: MediaDeviceInfo[];
|
|
31
|
+
selectedVideoDevice?: MediaDeviceInfo;
|
|
32
|
+
selectedAudioDevice?: MediaDeviceInfo;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
mimeTypes: string[];
|
|
35
|
+
isMobile: boolean;
|
|
36
|
+
isSafeMode: boolean;
|
|
37
|
+
isAutoStart: boolean;
|
|
38
|
+
speedTestLevel: SPEED_TEST_LEVEL;
|
|
39
|
+
constraint: ConstrainProps;
|
|
40
|
+
videoRef: RefObject<HTMLVideoElement>;
|
|
41
|
+
videoBitsPerSecond: number;
|
|
42
|
+
countdown: number;
|
|
43
|
+
recordingTime: number;
|
|
44
|
+
durations: number;
|
|
45
|
+
isMicError: boolean;
|
|
46
|
+
}
|
|
47
|
+
export declare const enum MIME_TYPES {
|
|
48
|
+
WEBM = "video/webm",
|
|
49
|
+
MP4 = "video/mp4"
|
|
50
|
+
}
|
|
51
|
+
export declare const enum STATES {
|
|
52
|
+
INIT = "init",
|
|
53
|
+
IDLE = "idle",
|
|
54
|
+
RECORDING = "recording",
|
|
55
|
+
WAITING = "waiting",
|
|
56
|
+
ERROR = "error",
|
|
57
|
+
INIT_RECORDER = "initRecorder",
|
|
58
|
+
COUNT_DOWN = "countDown",
|
|
59
|
+
COLLECTING_BLOBS = "collectingBlobs",
|
|
60
|
+
RECORDER_TIMER = "recorderTimer",
|
|
61
|
+
RECORDER_SENDING_BLOBS = "recorderSendingBlobs"
|
|
62
|
+
}
|
|
63
|
+
export declare const enum ACTIONS {
|
|
64
|
+
STOP_COUNT_DOWN_ACTOR = "STOP_COUNT_DOWN_ACTOR",
|
|
65
|
+
INIT_COUNT_DOWN_ACTOR = "INIT_COUNT_DOWN_ACTOR",
|
|
66
|
+
SESSION_EVENT = "SESSION_EVENT",
|
|
67
|
+
SENTRY = "SENTRY",
|
|
68
|
+
CONSOLE_LOG = "CONSOLE_LOG",
|
|
69
|
+
REMOVE_MIC_ERROR = "REMOVE_MIC_ERROR",
|
|
70
|
+
PAUSE_MEDIA_RECORDER = "PAUSE_MEDIA_RECORDER",
|
|
71
|
+
RESUME_MEDIA_RECORDER = "RESUME_MEDIA_RECORDER",
|
|
72
|
+
SEND_CURRENT_TAKE = "SEND_CURRENT_TAKE",
|
|
73
|
+
STOP_MICROPHONE_MACHINE = "STOP_MICROPHONE_MACHINE",
|
|
74
|
+
STOP_MEDIA_RECORDER = "STOP_MEDIA_RECORDER",
|
|
75
|
+
DISABLED_AUTO_START = "DISABLED_AUTO_START",
|
|
76
|
+
SET_AUTO_START = "SET_AUTO_START",
|
|
77
|
+
UPDATE_RECORDING_TIME = "UPDATE_RECORDING_TIME",
|
|
78
|
+
UPDATE_COUNT_DOWN = "UPDATE_COUNT_DOWN",
|
|
79
|
+
SET_MIC_MACHINE = "INIT_MIC_MACHINE",
|
|
80
|
+
SEND_MEDIA_STREAM_TO_MIC_MACHINE = "SET_MEDIA_STREAM_TO_MIC_MACHINE",
|
|
81
|
+
SET_MEDIA_STREAM_CORE = "SET_MEDIA_STREAM_CORE",
|
|
82
|
+
STOP_MEDIA_STREAM = "STOP_MEDIA_STREAM",
|
|
83
|
+
SET_MIME_TYPE = "SET_MIME_TYPE",
|
|
84
|
+
SET_SAFE_MODE = "SET_SAFE_MODE",
|
|
85
|
+
SEND_ERROR_TO_PARENT = "SEND_ERROR_TO_PARENT",
|
|
86
|
+
SEND_SUCCESS_TO_PARENT = "SEND_SUCCESS_TO_PARENT",
|
|
87
|
+
CHANGE_VIDEO_DEVICE = "CHANGE_VIDEO_DEVICE",
|
|
88
|
+
CHANGE_AUDIO_DEVICE = "CHANGE_AUDIO_DEVICE",
|
|
89
|
+
SET_QUESTION_PARAMS = "SET_QUESTION_PARAMS",
|
|
90
|
+
UPDATE_CONSTRAINT = "UPDATE_CONSTRAINT",
|
|
91
|
+
UPDATE_AUDIO_AND_VIDEO_DEVICES = "UPDATE_AUDIO_AND_VIDEO_DEVICES",
|
|
92
|
+
SET_FORCE_START = "SET_FORCE_START",
|
|
93
|
+
RESET_MACHINE = "RESET_MACHINE",
|
|
94
|
+
UPDATE_MACHINE_FOR_NEW_QUESTION = "UPDATE_MACHINE_FOR_NEW_QUESTION",
|
|
95
|
+
SET_MEDIA_RECORDER = "SET_MEDIA_RECORDER",
|
|
96
|
+
SET_MIC_ERROR = "SET_MIC_ERROR"
|
|
97
|
+
}
|
|
98
|
+
export declare const enum EVENTS {
|
|
99
|
+
SEND_RECORDER_TO_WAITING_STATE = "SEND_RECORDER_TO_WAITING_STATE",
|
|
100
|
+
CHANGE_VIDEO_DEVICE = "CHANGE_VIDEO_DEVICE",
|
|
101
|
+
CHANGE_AUDIO_DEVICE = "CHANGE_AUDIO_DEVICE",
|
|
102
|
+
START_RECORDING = "START_RECORDING",
|
|
103
|
+
SET_QUESTION_PARAMS = "SET_QUESTION_PARAMS",
|
|
104
|
+
SPEED_TEST_RESULT_UPDATED = "SPEED_TEST_RESULT_UPDATED",
|
|
105
|
+
RECORDER_DEVICE_ERROR = "RECORDER_DEVICE_ERROR",
|
|
106
|
+
UPDATE_DEVICES_LIST = "UPDATE_DEVICES_LIST",
|
|
107
|
+
UPDATE_CURRENT_DEVICE = "UPDATE_CURRENT_DEVICE",
|
|
108
|
+
RECORDING_UPDATE_TIMER = "RECORDING_UPDATE_TIMER",
|
|
109
|
+
UPDATE_TIMER = "UPDATE_TIMER",
|
|
110
|
+
FORCE_START = "FORCE_START",
|
|
111
|
+
STOP_RECORDING = "STOP_RECORDING",
|
|
112
|
+
SET_MEDIA_RECORDER = "SET_MEDIA_RECORDER",
|
|
113
|
+
SEND_CURRENT_TAKE = "SEND_CURRENT_TAKE",
|
|
114
|
+
RE_INIT = "RE_INIT",
|
|
115
|
+
RETRY = "RETRY",
|
|
116
|
+
MIC_DATA_RECEIVED = "MIC_DATA_RECEIVED",
|
|
117
|
+
PAUSE_MEDIA_RECORDER = "PAUSE_MEDIA_RECORDER"
|
|
118
|
+
}
|
|
119
|
+
export declare const enum SERVICES {
|
|
120
|
+
GET_MEDIA_STREAM = "getMediaStream",
|
|
121
|
+
GET_MEDIA_RECORDER = "getMediaRecorder"
|
|
122
|
+
}
|
|
123
|
+
export declare const enum GUARDS {
|
|
124
|
+
IS_TIME_TO_STOP_RECORDING = "isTimeToStopRecording",
|
|
125
|
+
IS_RECORDER_ACTIVE = "isRecorderActive",
|
|
126
|
+
IS_TIME_TO_START_RECORDING = "isTimeToStartRecording",
|
|
127
|
+
NO_SOUND_FROM_MIC_MACHINE = "noSoundFromMicMachine",
|
|
128
|
+
IS_NOT_ALLOWED_ERROR = "isNotAllowedError",
|
|
129
|
+
IS_ERROR_WITH_WRONG_PARAMS = "isErrorWithWrongParams",
|
|
130
|
+
IS_AUTO_START = "isAutoStart",
|
|
131
|
+
IS_QUALITY_CHANGED = "isQualityChanged",
|
|
132
|
+
IS_VIDEO_CORRUPTED = "isVideoCorrupted"
|
|
133
|
+
}
|
|
134
|
+
export declare const mediaConstrains: {
|
|
135
|
+
hd: {
|
|
136
|
+
video: {
|
|
137
|
+
width: {
|
|
138
|
+
min: number;
|
|
139
|
+
ideal: number;
|
|
140
|
+
max: number;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
audio: boolean;
|
|
144
|
+
};
|
|
145
|
+
vga: {
|
|
146
|
+
video: {
|
|
147
|
+
width: {
|
|
148
|
+
max: number;
|
|
149
|
+
ideal: number;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
audio: boolean;
|
|
153
|
+
};
|
|
154
|
+
qvga: {
|
|
155
|
+
video: {
|
|
156
|
+
width: {
|
|
157
|
+
min: number;
|
|
158
|
+
ideal: number;
|
|
159
|
+
max: number;
|
|
160
|
+
};
|
|
161
|
+
aspectRatio: number;
|
|
162
|
+
};
|
|
163
|
+
audio: boolean;
|
|
164
|
+
};
|
|
165
|
+
mobile: {
|
|
166
|
+
video: {
|
|
167
|
+
width: {
|
|
168
|
+
min: number;
|
|
169
|
+
ideal: number;
|
|
170
|
+
max: number;
|
|
171
|
+
};
|
|
172
|
+
aspectRatio: number;
|
|
173
|
+
};
|
|
174
|
+
audio: boolean;
|
|
175
|
+
};
|
|
176
|
+
mobile2: {
|
|
177
|
+
video: {
|
|
178
|
+
width: {
|
|
179
|
+
min: number;
|
|
180
|
+
ideal: number;
|
|
181
|
+
max: number;
|
|
182
|
+
};
|
|
183
|
+
aspectRatio: number;
|
|
184
|
+
};
|
|
185
|
+
audio: boolean;
|
|
186
|
+
};
|
|
187
|
+
mobile3: {
|
|
188
|
+
video: {
|
|
189
|
+
width: {
|
|
190
|
+
min: number;
|
|
191
|
+
ideal: number;
|
|
192
|
+
max: number;
|
|
193
|
+
};
|
|
194
|
+
aspectRatio: number;
|
|
195
|
+
};
|
|
196
|
+
audio: boolean;
|
|
197
|
+
};
|
|
198
|
+
noVideo: {
|
|
199
|
+
video: boolean;
|
|
200
|
+
audio: boolean;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface ITakeObj {
|
|
2
|
+
file: File[];
|
|
3
|
+
objectUrl: string;
|
|
4
|
+
}
|
|
5
|
+
interface IFilesQuestion {
|
|
6
|
+
[questionNumber: number]: ITakeObj[];
|
|
7
|
+
}
|
|
8
|
+
export interface InitialState {
|
|
9
|
+
questions: IFilesQuestion;
|
|
10
|
+
practice: IFilesQuestion;
|
|
11
|
+
}
|
|
12
|
+
export declare const enum EVENTS {
|
|
13
|
+
STORE_TAKE = "STORE_TAKE",
|
|
14
|
+
GET_TAKE = "GET_TAKE",
|
|
15
|
+
GET_TAKES = "GET_TAKES",
|
|
16
|
+
REMOVE_TAKES = "REMOVE_TAKES"
|
|
17
|
+
}
|
|
18
|
+
export declare const enum ACTIONS {
|
|
19
|
+
CONSOLE_LOG = "consoleLog",
|
|
20
|
+
STORE_TAKE = "storeTake",
|
|
21
|
+
SEND_TAKE = "sendTake",
|
|
22
|
+
SEND_TAKES = "sendTakes",
|
|
23
|
+
REMOVE_TAKES = "removeTakes"
|
|
24
|
+
}
|
|
25
|
+
export declare const enum TAKE_TYPES {
|
|
26
|
+
QUESTION = "question",
|
|
27
|
+
PRACTICE = "practice"
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ALL_VIDEO_FILE_TYPES } from './videoInterface';
|
|
2
|
+
interface ILastUploadChunkl {
|
|
3
|
+
loaded: number;
|
|
4
|
+
timeStamp: number;
|
|
5
|
+
}
|
|
6
|
+
export interface InitialState {
|
|
7
|
+
isConnected: boolean;
|
|
8
|
+
currentQuestion: number | null;
|
|
9
|
+
file: File | null;
|
|
10
|
+
signedUrl: string;
|
|
11
|
+
uploadSpeed: number;
|
|
12
|
+
lastUploadChunk: ILastUploadChunkl;
|
|
13
|
+
videoId: string;
|
|
14
|
+
videoFile: ALL_VIDEO_FILE_TYPES;
|
|
15
|
+
}
|
|
16
|
+
export declare const enum STATES {
|
|
17
|
+
IDLE = "idle",
|
|
18
|
+
UPLOAD_CONTROLLER = "uploadController",
|
|
19
|
+
UPLOADING = "uploading",
|
|
20
|
+
GET_SIGNED_URL = "getSignedUrl",
|
|
21
|
+
UPLOAD_TO_S3 = "uploadToS3",
|
|
22
|
+
UPLOADED = "uploaded",
|
|
23
|
+
FINISHED = "finished"
|
|
24
|
+
}
|
|
25
|
+
export declare const enum ACTIONS {
|
|
26
|
+
SET_UPLOADED = "setUploaded",
|
|
27
|
+
CONSOLE_LOG = "consoleLog",
|
|
28
|
+
SET_CONNECTION = "setConnection",
|
|
29
|
+
SET_SIGNED_URL = "setSignedUrl",
|
|
30
|
+
SET_VIDEO_FILE = "setVideoFile",
|
|
31
|
+
INITIAL_UPLOAD_TIMESTAMP = "initialUploadTimestamp",
|
|
32
|
+
UPDATE_UPLOAD_SPEED = "updateUploadSpeed",
|
|
33
|
+
SEND_UPLOAD_PROGRESS = "sendUploadProgress",
|
|
34
|
+
UPDATE_PARENT = "updateParent",
|
|
35
|
+
SENTRY = "sentry"
|
|
36
|
+
}
|
|
37
|
+
export declare const enum GUARDS {
|
|
38
|
+
CAN_UPLOAD = "canUplaod",
|
|
39
|
+
IS_ASSESSMENT_QUESTION = "isAssessmentQuestion"
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ANSWER_TYPES } from './jobInterface';
|
|
2
|
+
export interface IVideoDimensions {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
}
|
|
6
|
+
export interface IVideoPlatformOS {
|
|
7
|
+
architecture: number;
|
|
8
|
+
family: string;
|
|
9
|
+
version: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IVideoPlatform {
|
|
12
|
+
description: string;
|
|
13
|
+
layout: string;
|
|
14
|
+
manufacturer: string;
|
|
15
|
+
name: string;
|
|
16
|
+
prerelease: string;
|
|
17
|
+
product: string;
|
|
18
|
+
ua: string;
|
|
19
|
+
version: string;
|
|
20
|
+
os: IVideoPlatformOS;
|
|
21
|
+
}
|
|
22
|
+
export interface IVideoFile {
|
|
23
|
+
completed: boolean;
|
|
24
|
+
uploaded: boolean;
|
|
25
|
+
filename: string;
|
|
26
|
+
retakes: number;
|
|
27
|
+
started: boolean;
|
|
28
|
+
videoLength?: number;
|
|
29
|
+
uploadUrl?: string;
|
|
30
|
+
question?: string;
|
|
31
|
+
selectedTake?: number;
|
|
32
|
+
originalDimensions?: IVideoDimensions;
|
|
33
|
+
}
|
|
34
|
+
export interface IVideoFileDefault extends IVideoFile {
|
|
35
|
+
answerType?: ANSWER_TYPES.VIDEO;
|
|
36
|
+
}
|
|
37
|
+
export interface IMultipleAnswer {
|
|
38
|
+
id: string;
|
|
39
|
+
label: string;
|
|
40
|
+
selected: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface IVideoFileTextAnswer extends IVideoFile {
|
|
43
|
+
answerType: ANSWER_TYPES.TEXT;
|
|
44
|
+
answer: string;
|
|
45
|
+
}
|
|
46
|
+
export interface IVideoFileMultipleAnswer extends IVideoFile {
|
|
47
|
+
answerType: ANSWER_TYPES.MULTIPLE;
|
|
48
|
+
answer: IMultipleAnswer[];
|
|
49
|
+
}
|
|
50
|
+
export interface IVideoFileSingleAnswer extends IVideoFile {
|
|
51
|
+
answerType: ANSWER_TYPES.SINGLE;
|
|
52
|
+
answer: IMultipleAnswer[];
|
|
53
|
+
}
|
|
54
|
+
export type ALL_VIDEO_FILE_TYPES = IVideoFileDefault | IVideoFileTextAnswer | IVideoFileMultipleAnswer | IVideoFileSingleAnswer;
|
|
55
|
+
export type ASSESSMENT_VIDEO_FILE_TYPES = Exclude<ALL_VIDEO_FILE_TYPES, IVideoFileDefault>;
|
|
56
|
+
export type CURRENT_QUESTION_ANSWER_TYPES = ASSESSMENT_VIDEO_FILE_TYPES['answer'];
|
|
57
|
+
export interface IVideo {
|
|
58
|
+
video_id?: string;
|
|
59
|
+
bandwidth?: string;
|
|
60
|
+
clicked?: boolean;
|
|
61
|
+
started?: boolean;
|
|
62
|
+
completed?: boolean;
|
|
63
|
+
uploaded?: boolean;
|
|
64
|
+
jobID?: string;
|
|
65
|
+
platform?: IVideoPlatform;
|
|
66
|
+
quality?: string;
|
|
67
|
+
referrer?: string;
|
|
68
|
+
cvUrl?: string;
|
|
69
|
+
videos?: ALL_VIDEO_FILE_TYPES[];
|
|
70
|
+
processTime?: number;
|
|
71
|
+
files?: string[];
|
|
72
|
+
personalInfo?: Record<string, string>;
|
|
73
|
+
language?: string;
|
|
74
|
+
gdprTimestamp?: string;
|
|
75
|
+
tracking?: {
|
|
76
|
+
reminder: number;
|
|
77
|
+
source: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export declare const enum VIDEO_STATUS {
|
|
81
|
+
INCOMPLETED = 0,
|
|
82
|
+
COMPLETED = 1,
|
|
83
|
+
UPLOADED = 2
|
|
84
|
+
}
|