react-native-scanbot-sdk
Version:
Scanbot Document and Barcode Scanner SDK React Native Plugin for Android and iOS
489 lines (480 loc) • 17.6 kB
JavaScript
/// Auto-generated with ScanbotSDKCodegenV3. Modifications will be overwritten.
/// Generated from rtu-ui-v2/schemas/documentdataextractor/DocumentDataExtractorScreenConfiguration.yaml
import { DocumentDataExtractorConfiguration } from '../../document_data_extractor/DocumentDataExtractorTypes';
import { ActionBarConfiguration } from '../../ui_v2/common/ActionBarConfiguration';
import { CameraConfiguration } from '../../ui_v2/common/CameraConfiguration';
import { CameraPermissionScreen } from '../../ui_v2/common/CameraPermission';
import { BackgroundStyle, ButtonConfiguration, EdgeInsets, ForegroundStyle, IconButton, IconStyle, Palette, RoundButton, Sound, StyledText, Vibration } from '../../ui_v2/common/Common';
import { ScanCompletionOverlay } from '../../ui_v2/common/ScanCompletionOverlay';
import { ScanbotAlertDialog } from '../../ui_v2/common/ScanbotAlertDialog';
import { TopBarConfiguration } from '../../ui_v2/common/TopBarConfiguration';
import { UserGuidanceConfiguration } from '../../ui_v2/common/UserGuidanceConfiguration';
import { FinderCorneredStyle, PermanentViewFinderConfiguration } from '../../ui_v2/common/ViewFinderConfiguration';
import { DocumentDataExtractionProgressConfiguration } from '../../ui_v2/dde/DocumentDataExtractionProgressConfiguration';
import { DocumentDataExtractorIntroScreenConfiguration } from '../../ui_v2/dde/DocumentDataExtractorIntroScreenConfiguration';
import { DocumentDataExtractorScreenTextLocalization } from '../../ui_v2/dde/DocumentDataExtractorScreenTextLocalization';
import { DocumentDataExtractorGuidanceConfiguration } from '../../ui_v2/dde/DocumentDataExtractorUserGuidance';
import { AspectRatio } from '../../utils/geometry/Geometry';
import { PartiallyConstructible } from '../../utils/utils';
/**
Configuration of the screen for extracting data from ID documents.
*/
export class DocumentDataExtractorScreenConfiguration extends PartiallyConstructible {
/**
Version number of the configuration object.
Default is "1.0"
*/
version = '1.0';
/**
The configuration object should be applied for this screen.
Default is "DocumentDataExtractor"
*/
screen = 'DocumentDataExtractor';
/**
Configuration of the all strings for document data extractor screen.
*/
localization = new DocumentDataExtractorScreenTextLocalization({});
/**
Define the screen's base color values from which other colors are derived.
*/
palette = new Palette({});
/**
The background color of the document data extractor screen.
Default is "?sbColorSurfaceLow"
*/
backgroundColor = '?sbColorSurfaceLow';
/**
Configuration of the camera behavior.
*/
cameraConfiguration = new CameraConfiguration({
orientationLockMode: 'PORTRAIT'
});
/**
Configuration of the dialog for requesting camera permissions.
*/
cameraPermission = new CameraPermissionScreen({
statusBarMode: 'DARK',
background: '?sbColorSurface',
iconBackground: '?sbColorOutline',
icon: new IconStyle({
visible: true,
color: '?sbColorOnSurface'
}),
enableCameraButton: new ButtonConfiguration({
visible: true,
text: '?cameraPermissionEnableCameraButton',
accessibilityDescription: '?accessibilityDescriptionCameraPermissionEnableCameraButton',
background: new BackgroundStyle({
strokeColor: '?sbColorPrimary',
fillColor: '?sbColorPrimary',
strokeWidth: 0.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorOnPrimary',
useShadow: false
})
}),
closeButton: new ButtonConfiguration({
visible: true,
text: '?cameraPermissionCloseButton',
accessibilityDescription: '?accessibilityDescriptionCameraPermissionCloseButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 0.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorPrimary',
useShadow: false
})
}),
enableCameraTitle: new StyledText({
text: '?cameraPermissionEnableCameraTitle',
color: '?sbColorOnSurface'
}),
enableCameraExplanation: new StyledText({
text: '?cameraPermissionEnableCameraExplanation',
color: '?sbColorOnSurfaceVariant'
})
});
/**
Configuration of the top user guidance.
*/
topUserGuidance = new UserGuidanceConfiguration({
title: new StyledText({
text: '?topUserGuidance'
})
});
/**
Configuration of the extracting status.
*/
scanStatusUserGuidance = new DocumentDataExtractorGuidanceConfiguration({});
/**
Configuration of the top bar on the document data extractor screen.
*/
topBar = new TopBarConfiguration({
title: new StyledText({
visible: true,
text: '?topBarTitle'
}),
cancelButton: new ButtonConfiguration({
text: '?topBarCancelButton',
accessibilityDescription: '?accessibilityDescriptionCancelButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 0.0
}),
foreground: new ForegroundStyle({
color: '?sbColorOnPrimary'
})
})
});
/**
Configuration of the button in the top bar that opens the introduction screen.
*/
topBarOpenIntroScreenButton = new IconButton({
color: '?sbColorOnPrimary',
accessibilityDescription: '?accessibilityDescriptionOpenIntroScreenButton'
});
/**
Configuration of the introduction screen for the document data extractor screen.
*/
introScreen = new DocumentDataExtractorIntroScreenConfiguration({});
/**
Configuration of the action bar.
*/
actionBar = new ActionBarConfiguration({
flipCameraButton: new RoundButton({
visible: false,
accessibilityDescription: '?accessibilityDescriptionFlipCameraButton',
backgroundColor: '?sbColorSurfaceHigh',
foregroundColor: '?sbColorOnPrimary',
activeBackgroundColor: '?sbColorWarning',
activeForegroundColor: '#1C1B1F'
})
});
/**
Configuration of the view finder.
*/
viewFinder = new PermanentViewFinderConfiguration({
style: new FinderCorneredStyle({
strokeColor: '?sbColorSurface',
strokeWidth: 2.0
}),
aspectRatio: new AspectRatio({
width: 3.0,
height: 2.0
}),
minimumInsets: new EdgeInsets({
top: 24.0,
left: 24.0,
bottom: 24.0,
right: 24.0
})
});
/**
Configuration of the scanner.
*/
scannerConfiguration = new DocumentDataExtractorConfiguration({});
/**
Configuration of visualization of the scanning progress.
*/
extractionProgress = new DocumentDataExtractionProgressConfiguration({});
/**
Timeout for the no document found state. If the no document found state is active longer than this value, the alert will be presented.
Default is 5000
*/
noDocumentFoundTimeout = 5000;
/**
Timeout for the accumulation state. If the accumulation state is active longer than this value, the alert will be presented.
Default is 3000
*/
accumulationTimeout = 3000;
/**
Configuration of the result overlay.
*/
successOverlay = new ScanCompletionOverlay({});
/**
Configuration of the alert dialog that will be presented when no document is detected.
*/
noDocumentDetectedAlertDialog = new ScanbotAlertDialog({
title: new StyledText({
text: '?documentDataExtractorNoDocumentDetectedAlertTitle',
color: '?sbColorOnSurface'
}),
subtitle: new StyledText({
text: '?documentDataExtractorNoDocumentDetectedAlertSubtitle',
color: '?sbColorOnSurfaceVariant'
}),
sheetColor: '?sbColorSurface',
modalOverlayColor: '?sbColorModalOverlay',
dividerColor: '?sbColorOutline',
okButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertRetryButton',
accessibilityDescription: '?accessibilityDescriptionRetryButton',
background: new BackgroundStyle({
strokeColor: '?sbColorPrimary',
fillColor: '?sbColorPrimary',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: true,
color: '?sbColorOnPrimary',
useShadow: false
})
}),
cancelButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertCloseScannerButton',
accessibilityDescription: '?accessibilityDescriptionCloseScannerButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorPrimary',
useShadow: false
})
})
});
/**
Configuration of the alert dialog that will be presented when the document is recognised but not presented in the list of enabled for scanning.
*/
cantProcessDocumentAlertDialog = new ScanbotAlertDialog({
title: new StyledText({
text: '?documentDataExtractorCantProcessDocumentAlertTitle',
color: '?sbColorOnSurface'
}),
subtitle: new StyledText({
text: '?documentDataExtractorCantProcessDocumentAlertSubtitle',
color: '?sbColorOnSurfaceVariant'
}),
sheetColor: '?sbColorSurface',
modalOverlayColor: '?sbColorModalOverlay',
dividerColor: '?sbColorOutline',
okButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertRetryButton',
accessibilityDescription: '?accessibilityDescriptionRetryButton',
background: new BackgroundStyle({
strokeColor: '?sbColorPrimary',
fillColor: '?sbColorPrimary',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: true,
color: '?sbColorOnPrimary',
useShadow: false
})
}),
cancelButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertCloseScannerButton',
accessibilityDescription: '?accessibilityDescriptionCloseScannerButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorPrimary',
useShadow: false
})
})
});
/**
Configuration of the alert dialog that will be presented when document is not detected as one that is supported by the SDK.
*/
unsupportedDocumentAlertDialog = new ScanbotAlertDialog({
title: new StyledText({
text: '?documentDataExtractorUnsupportedDocumentAlertTitle',
color: '?sbColorOnSurface'
}),
subtitle: new StyledText({
text: '?documentDataExtractorUnsupportedDocumentAlertSubtitle',
color: '?sbColorOnSurfaceVariant'
}),
sheetColor: '?sbColorSurface',
modalOverlayColor: '?sbColorModalOverlay',
dividerColor: '?sbColorOutline',
okButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertRetryButton',
accessibilityDescription: '?accessibilityDescriptionRetryButton',
background: new BackgroundStyle({
strokeColor: '?sbColorPrimary',
fillColor: '?sbColorPrimary',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: true,
color: '?sbColorOnPrimary',
useShadow: false
})
}),
cancelButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertCloseScannerButton',
accessibilityDescription: '?accessibilityDescriptionCloseScannerButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorPrimary',
useShadow: false
})
})
});
/**
Configuration of the alert dialog that will be presented when initial timeout for scanning document is overreached.
*/
scanningTooLongAlertDialog = new ScanbotAlertDialog({
title: new StyledText({
text: '?documentDataExtractorScanningTooLongAlertTitle',
color: '?sbColorOnSurface'
}),
subtitle: new StyledText({
text: '?documentDataExtractorScanningTooLongAlertSubtitle',
color: '?sbColorOnSurfaceVariant'
}),
sheetColor: '?sbColorSurface',
modalOverlayColor: '?sbColorModalOverlay',
dividerColor: '?sbColorOutline',
okButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertRetryButton',
accessibilityDescription: '?accessibilityDescriptionRetButton',
background: new BackgroundStyle({
strokeColor: '?sbColorPrimary',
fillColor: '?sbColorPrimary',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: true,
color: '?sbColorOnPrimary',
useShadow: false
})
}),
cancelButton: new ButtonConfiguration({
visible: true,
text: '?documentDataExtractorAlertCloseScannerButton',
accessibilityDescription: '?accessibilityDescriptionCloseScannerButton',
background: new BackgroundStyle({
strokeColor: '#00000000',
fillColor: '#00000000',
strokeWidth: 1.0
}),
foreground: new ForegroundStyle({
iconVisible: false,
color: '?sbColorPrimary',
useShadow: false
})
})
});
/**
Configuration of the scan confirmation sound.
*/
sound = new Sound({});
/**
Configuration of the vibration feedback.
*/
vibration = new Vibration({});
/**
If enabled, the screen will not turn off while the document data extractor is active. (Android only).
Default is true
*/
keepScreenOn = true;
/** @param source {@displayType `DeepPartial<DocumentDataExtractorScreenConfiguration>`} */
constructor(source = {}) {
super();
if (source.version !== undefined) {
this.version = source.version;
}
if (source.screen !== undefined) {
this.screen = source.screen;
}
if (source.localization !== undefined) {
this.localization = new DocumentDataExtractorScreenTextLocalization(source.localization);
}
if (source.palette !== undefined) {
this.palette = new Palette(source.palette);
}
if (source.backgroundColor !== undefined) {
this.backgroundColor = source.backgroundColor;
}
if (source.cameraConfiguration !== undefined) {
this.cameraConfiguration = new CameraConfiguration(source.cameraConfiguration);
}
if (source.cameraPermission !== undefined) {
this.cameraPermission = new CameraPermissionScreen(source.cameraPermission);
}
if (source.topUserGuidance !== undefined) {
this.topUserGuidance = new UserGuidanceConfiguration(source.topUserGuidance);
}
if (source.scanStatusUserGuidance !== undefined) {
this.scanStatusUserGuidance = new DocumentDataExtractorGuidanceConfiguration(source.scanStatusUserGuidance);
}
if (source.topBar !== undefined) {
this.topBar = new TopBarConfiguration(source.topBar);
}
if (source.topBarOpenIntroScreenButton !== undefined) {
this.topBarOpenIntroScreenButton = new IconButton(source.topBarOpenIntroScreenButton);
}
if (source.introScreen !== undefined) {
this.introScreen = new DocumentDataExtractorIntroScreenConfiguration(source.introScreen);
}
if (source.actionBar !== undefined) {
this.actionBar = new ActionBarConfiguration(source.actionBar);
}
if (source.viewFinder !== undefined) {
this.viewFinder = new PermanentViewFinderConfiguration(source.viewFinder);
}
if (source.scannerConfiguration !== undefined) {
this.scannerConfiguration = new DocumentDataExtractorConfiguration(source.scannerConfiguration);
}
if (source.extractionProgress !== undefined) {
this.extractionProgress = new DocumentDataExtractionProgressConfiguration(source.extractionProgress);
}
if (source.noDocumentFoundTimeout !== undefined) {
this.noDocumentFoundTimeout = source.noDocumentFoundTimeout;
}
if (source.accumulationTimeout !== undefined) {
this.accumulationTimeout = source.accumulationTimeout;
}
if (source.successOverlay !== undefined) {
this.successOverlay = new ScanCompletionOverlay(source.successOverlay);
}
if (source.noDocumentDetectedAlertDialog !== undefined) {
this.noDocumentDetectedAlertDialog = new ScanbotAlertDialog(source.noDocumentDetectedAlertDialog);
}
if (source.cantProcessDocumentAlertDialog !== undefined) {
this.cantProcessDocumentAlertDialog = new ScanbotAlertDialog(source.cantProcessDocumentAlertDialog);
}
if (source.unsupportedDocumentAlertDialog !== undefined) {
this.unsupportedDocumentAlertDialog = new ScanbotAlertDialog(source.unsupportedDocumentAlertDialog);
}
if (source.scanningTooLongAlertDialog !== undefined) {
this.scanningTooLongAlertDialog = new ScanbotAlertDialog(source.scanningTooLongAlertDialog);
}
if (source.sound !== undefined) {
this.sound = new Sound(source.sound);
}
if (source.vibration !== undefined) {
this.vibration = new Vibration(source.vibration);
}
if (source.keepScreenOn !== undefined) {
this.keepScreenOn = source.keepScreenOn;
}
}
}
//# sourceMappingURL=DocumentDataExtractorScreenConfiguration.js.map