UNPKG

react-native-scanbot-sdk

Version:

Scanbot Document and Barcode Scanner SDK React Native Plugin for Android and iOS

165 lines (160 loc) 6.05 kB
import { BackgroundStyle } from '../common/Common'; import { BarButtonConfiguration } from '../common/Common'; import { ButtonConfiguration } from '../common/Common'; import { CroppingBottomBar } from '../document/CroppingScreenConfiguration'; import { CroppingScreenConfiguration } from '../document/CroppingScreenConfiguration'; import { CroppingTextLocalization } from '../document/CroppingTextLocalization'; import { DeepPartial, PartiallyConstructible } from '../../utils'; import { DocumentAnalysisMode } from '../document/DocumentScannerOutputSettings'; import { ForegroundStyle } from '../common/Common'; import { IconStyle } from '../common/Common'; import { NavigationBarMode } from '../common/NavigationBarConfiguration'; import { OrientationLockMode } from '../common/Common'; import { Palette } from '../common/Common'; import { StatusBarMode } from '../common/TopBarConfiguration'; import { StyledText } from '../common/Common'; /** Configuration of the general appearance for the cropping screen. */ export class CroppingAppearanceConfiguration extends PartiallyConstructible { /** Determines the visual mode used for the status bar icons. Default is LIGHT */ public statusBarMode: StatusBarMode = 'LIGHT'; /** Determines the visual mode used for the navigation bar icons. Android only. Default is LIGHT */ public navigationBarMode: NavigationBarMode = 'LIGHT'; /** The background color of the top bar. Only applicable when the visual mode is specified as 'SOLID', otherwise ignored. Default is "?sbColorPrimary" */ public topBarBackgroundColor: string = '?sbColorPrimary'; /** The background color of the bottom bar. Default is "?sbColorPrimary" */ public bottomBarBackgroundColor: string = '?sbColorPrimary'; /** Which mode to use when orientation should be locked to landscape or portrait. Default is NONE */ public orientationLockMode: OrientationLockMode = 'NONE'; /** @param source {@displayType `DeepPartial<CroppingAppearanceConfiguration>`} */ public constructor(source: DeepPartial<CroppingAppearanceConfiguration> = {}) { super(); if (source.statusBarMode !== undefined) { this.statusBarMode = source.statusBarMode; } if (source.navigationBarMode !== undefined) { this.navigationBarMode = source.navigationBarMode; } if (source.topBarBackgroundColor !== undefined) { this.topBarBackgroundColor = source.topBarBackgroundColor; } if (source.bottomBarBackgroundColor !== undefined) { this.bottomBarBackgroundColor = source.bottomBarBackgroundColor; } if (source.orientationLockMode !== undefined) { this.orientationLockMode = source.orientationLockMode; } } } /** Configuration of the standalone cropping screen. */ export class CroppingConfiguration extends PartiallyConstructible { /** Version number of the configuration object. Default is "1.0" */ public version: string = '1.0'; /** The configuration object should be applied for this screen. Default is "CroppingConfiguration" */ public screen: string = 'CroppingConfiguration'; /** Define the screen's base color values from which other colors are derived. */ public palette: Palette = new Palette({ sbColorPrimary: '#C8193C', sbColorPrimaryDisabled: '#F5F5F5', sbColorNegative: '#FF3737', sbColorPositive: '#4EFFB4', sbColorWarning: '#FFCE5C', sbColorSecondary: '#FFEDEE', sbColorSecondaryDisabled: '#F5F5F5', sbColorOnPrimary: '#FFFFFF', sbColorOnSecondary: '#C8193C', sbColorSurface: '#FFFFFF', sbColorOutline: '#EFEFEF', sbColorOnSurfaceVariant: '#707070', sbColorOnSurface: '#000000', sbColorSurfaceLow: '#00000026', sbColorSurfaceHigh: '#0000007A', sbColorModalOverlay: '#000000A3', }); /** The UUID of the document to be cropped. */ public documentUuid: string; /** The UUID of the page of the document to be cropped. */ public pageUuid: string; /** Configuration of all the strings for the standalone cropping screen. */ public localization: CroppingTextLocalization = new CroppingTextLocalization({}); /** Configuration of the general appearance for the cropping screen. */ public appearance: CroppingAppearanceConfiguration = new CroppingAppearanceConfiguration({}); /** Configuration of the cropping screen. */ public cropping: CroppingScreenConfiguration = new CroppingScreenConfiguration({}); /** Determines if the quality analysis for the acknowledgement mode will run on the filtered or the unfiltered image. Default is UNFILTERED_DOCUMENT */ public documentAnalysisMode: DocumentAnalysisMode = 'UNFILTERED_DOCUMENT'; /** @param source {@displayType `DeepPartial<CroppingConfiguration>`} */ public constructor(source: DeepPartial<CroppingConfiguration> = {}) { super(); if (source.version !== undefined) { this.version = source.version; } if (source.screen !== undefined) { this.screen = source.screen; } if (source.palette !== undefined) { this.palette = new Palette(source.palette); } if (source.documentUuid !== undefined) { this.documentUuid = source.documentUuid; } else { throw new Error('documentUuid must be present in constructor argument'); } if (source.pageUuid !== undefined) { this.pageUuid = source.pageUuid; } else { throw new Error('pageUuid must be present in constructor argument'); } if (source.localization !== undefined) { this.localization = new CroppingTextLocalization(source.localization); } if (source.appearance !== undefined) { this.appearance = new CroppingAppearanceConfiguration(source.appearance); } if (source.cropping !== undefined) { this.cropping = new CroppingScreenConfiguration(source.cropping); } if (source.documentAnalysisMode !== undefined) { this.documentAnalysisMode = source.documentAnalysisMode; } } }