UNPKG

@biopassid/face-sdk-react-native

Version:
316 lines (313 loc) 8.95 kB
import { FaceCameraLensDirection } from '../config/enums/FaceCameraLensDirection'; import { FaceImageFormat } from '../config/enums/FaceImageFormat'; import { FaceMaskFormat } from '../config/enums/FaceMaskFormat'; import { FaceResolutionPreset } from '../config/enums/FaceResolutionPreset'; import type { FaceConfig } from '../config/FaceConfig'; const defaultConfig: FaceConfig = { licenseKey: '', resolutionPreset: FaceResolutionPreset.VERYHIGH, lensDirection: FaceCameraLensDirection.FRONT, imageFormat: FaceImageFormat.JPEG, flashEnabled: false, fontFamily: 'facesdk_opensans_bold', liveness: { enabled: false, debug: false, timeToCapture: 3000, maxFaceDetectionTime: 60000, minFaceProp: 0.1, maxFaceProp: 0.4, minFaceWidth: 150, minFaceHeight: 150, ied: 90, bboxPad: 20, faceDetectionThresh: 0.5, rollThresh: 4.0, pitchThresh: 4.0, yawThresh: 4.0, closedEyesThresh: 0.7, smilingThresh: 0.7, tooDarkThresh: 50, tooLightThresh: 170, faceCentralizationThresh: 0.05, }, continuousCapture: { enabled: false, timeToCapture: 1000, maxNumberFrames: 40, }, faceDetection: { enabled: true, autoCapture: true, multipleFacesEnabled: false, timeToCapture: 3000, maxFaceDetectionTime: 40000, scoreThreshold: 0.7, }, mask: { enabled: true, type: FaceMaskFormat.FACE, backgroundColor: '#CC000000', frameColor: '#FFFFFF', frameEnabledColor: '#16AC81', frameErrorColor: '#E25353', }, titleText: { enabled: true, content: 'Capturing Face', textColor: '#FFFFFF', textSize: 20, }, loadingText: { enabled: true, content: 'Processing...', textColor: '#FFFFFF', textSize: 14, }, helpText: { enabled: true, content: 'Fit your face into the shape below', textColor: '#FFFFFF', textSize: 14, }, feedbackText: { enabled: true, messages: { noDetection: 'No faces detected', multipleFaces: 'Multiple faces detected', faceCentered: 'Face centered. Do not move', tooClose: 'Turn your face away', tooFar: 'Bring your face closer', tooLeft: 'Move your face to the right', tooRight: 'Move your face to the left', tooUp: 'Move your face down', tooDown: 'Move your face up', invalidIED: 'Invalid inter-eye distance', faceAngleMisaligned: 'Misaligned face angle', closedEyes: 'Open your eyes', smiling: 'Do not smile', tooDark: 'Too dark', tooLight: 'Too light', }, textColor: '#FFFFFF', textSize: 14, }, backButton: { enabled: true, backgroundColor: '#00000000', buttonPadding: 0, buttonSize: { width: 56, height: 56 }, iconOptions: { enabled: true, iconFile: 'facesdk_ic_close', iconColor: '#FFFFFF', iconSize: { width: 32, height: 32 }, }, labelOptions: { enabled: false, content: 'Back', textColor: '#FFFFFF', textSize: 14, }, }, flashButton: { enabled: false, backgroundColor: '#FFFFFF', buttonPadding: 0, buttonSize: { width: 56, height: 56 }, flashOnIconOptions: { enabled: true, iconFile: 'facesdk_ic_flash_on', iconColor: '#FFCC01', iconSize: { width: 32, height: 32 }, }, flashOnLabelOptions: { enabled: false, content: 'Flash On', textColor: '#323232', textSize: 14, }, flashOffIconOptions: { enabled: true, iconFile: 'facesdk_ic_flash_off', iconColor: '#323232', iconSize: { width: 32, height: 32 }, }, flashOffLabelOptions: { enabled: false, content: 'Flash Off', textColor: '#323232', textSize: 14, }, }, switchCameraButton: { enabled: true, backgroundColor: '#FFFFFF', buttonPadding: 0, buttonSize: { width: 56, height: 56 }, iconOptions: { enabled: true, iconFile: 'facesdk_ic_switch_camera', iconColor: '#323232', iconSize: { width: 32, height: 32 }, }, labelOptions: { enabled: false, content: 'Switch Camera', textColor: '#323232', textSize: 14, }, }, captureButton: { enabled: true, backgroundColor: '#FFFFFF', buttonPadding: 0, buttonSize: { width: 56, height: 56 }, iconOptions: { enabled: true, iconFile: 'facesdk_ic_capture', iconColor: '#323232', iconSize: { width: 32, height: 32 }, }, labelOptions: { enabled: false, content: 'Capture', textColor: '#323232', textSize: 14, }, }, }; export function mergeConfigs(config: FaceConfig): FaceConfig { return { ...defaultConfig, ...config, liveness: { ...defaultConfig.liveness, ...config.liveness, }, continuousCapture: { ...defaultConfig.continuousCapture, ...config.continuousCapture, }, faceDetection: { ...defaultConfig.faceDetection, ...config.faceDetection, }, mask: { ...defaultConfig.mask, ...config.mask, }, titleText: { ...defaultConfig.titleText, ...config.titleText, }, loadingText: { ...defaultConfig.loadingText, ...config.loadingText, }, helpText: { ...defaultConfig.helpText, ...config.helpText, }, feedbackText: { ...defaultConfig.feedbackText, ...config.feedbackText, messages: { ...defaultConfig.feedbackText?.messages, ...config.feedbackText?.messages, }, }, backButton: { ...defaultConfig.backButton, ...config.backButton, buttonSize: { ...defaultConfig.backButton?.buttonSize, ...config.backButton?.buttonSize, }, iconOptions: { ...defaultConfig.backButton?.iconOptions, ...config.backButton?.iconOptions, iconSize: { ...defaultConfig.backButton?.iconOptions?.iconSize, ...config.backButton?.iconOptions?.iconSize, }, }, labelOptions: { ...defaultConfig.backButton?.labelOptions, ...config.backButton?.labelOptions, }, }, flashButton: { ...defaultConfig.flashButton, ...config.flashButton, buttonSize: { ...defaultConfig.flashButton?.buttonSize, ...config.flashButton?.buttonSize, }, flashOnIconOptions: { ...defaultConfig.flashButton?.flashOnIconOptions, ...config.flashButton?.flashOnIconOptions, iconSize: { ...defaultConfig.flashButton?.flashOnIconOptions?.iconSize, ...config.flashButton?.flashOnIconOptions?.iconSize, }, }, flashOnLabelOptions: { ...defaultConfig.flashButton?.flashOnLabelOptions, ...config.flashButton?.flashOnLabelOptions, }, flashOffIconOptions: { ...defaultConfig.flashButton?.flashOffIconOptions, ...config.flashButton?.flashOffIconOptions, iconSize: { ...defaultConfig.flashButton?.flashOffIconOptions?.iconSize, ...config.flashButton?.flashOffIconOptions?.iconSize, }, }, flashOffLabelOptions: { ...defaultConfig.flashButton?.flashOffLabelOptions, ...config.flashButton?.flashOffLabelOptions, }, }, switchCameraButton: { ...defaultConfig.switchCameraButton, ...config.switchCameraButton, buttonSize: { ...defaultConfig.switchCameraButton?.buttonSize, ...config.switchCameraButton?.buttonSize, }, iconOptions: { ...defaultConfig.switchCameraButton?.iconOptions, ...config.switchCameraButton?.iconOptions, iconSize: { ...defaultConfig.switchCameraButton?.iconOptions?.iconSize, ...config.switchCameraButton?.iconOptions?.iconSize, }, }, labelOptions: { ...defaultConfig.switchCameraButton?.labelOptions, ...config.switchCameraButton?.labelOptions, }, }, captureButton: { ...defaultConfig.captureButton, ...config.captureButton, buttonSize: { ...defaultConfig.captureButton?.buttonSize, ...config.captureButton?.buttonSize, }, iconOptions: { ...defaultConfig.captureButton?.iconOptions, ...config.captureButton?.iconOptions, iconSize: { ...defaultConfig.captureButton?.iconOptions?.iconSize, ...config.captureButton?.iconOptions?.iconSize, }, }, labelOptions: { ...defaultConfig.captureButton?.labelOptions, ...config.captureButton?.labelOptions, }, }, }; }