UNPKG

react-native-scanbot-sdk

Version:

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

256 lines (233 loc) 7.46 kB
/// Auto-generated with ScanbotSDKCodegenV3. Modifications will be overwritten. /// Generated from rtu-ui-v2/schemas/common/ViewFinderConfiguration.yaml import { EdgeInsets } from '../../ui_v2/common/Common'; import { AspectRatio } from '../../utils/geometry/Geometry'; import { DeepPartial, PartiallyConstructible } from '../../utils/utils'; /** Base configuration of the scanning interface’s viewfinder, serving as guidance to the user. */ export type BaseViewFinderConfiguration = | ViewFinderConfiguration | PermanentViewFinderConfiguration; /** @internal */ export namespace BaseViewFinderConfiguration { /** @internal */ export function From(source: { [key: string]: any }): BaseViewFinderConfiguration { const _type = source._type; switch (_type) { case 'ViewFinderConfiguration': return new ViewFinderConfiguration(source); case 'PermanentViewFinderConfiguration': return new PermanentViewFinderConfiguration(source); default: throw `Unknown child class name: ${_type}`; } } } /** Configuration of the scanning interface’s viewfinder, allowing it to be shown or hidden as guidance to the user. */ export class ViewFinderConfiguration extends PartiallyConstructible { public readonly _type: 'ViewFinderConfiguration' = 'ViewFinderConfiguration'; /** The visual appearance of the viewfinder. */ public style: FinderStyle = new FinderCorneredStyle({ strokeColor: '?sbColorSurface', strokeWidth: 2.0, cornerRadius: 10.0, }); /** The color of the viewfinder overlay. Default is "?sbColorSurfaceLow" */ public overlayColor: string = '?sbColorSurfaceLow'; /** The viewfinder's aspect ratio. */ public aspectRatio: AspectRatio = new AspectRatio({ width: 1.0, height: 1.0 }); /** The minimum insets of the viewfinder. */ public minimumInsets: EdgeInsets = new EdgeInsets({ top: 16.0, left: 16.0, bottom: 16.0, right: 16.0, }); /** The preferred height of the viewfinder. Default is -1.0 */ public preferredHeight: number = -1.0; /** Whether the viewfinder is visible. Default is true */ public visible: boolean = true; /** @param source {@displayType `DeepPartial<ViewFinderConfiguration>`} */ public constructor(source: DeepPartial<ViewFinderConfiguration> = {}) { super(); if (source.style !== undefined) { this.style = FinderStyle.From(source.style); } if (source.overlayColor !== undefined) { this.overlayColor = source.overlayColor; } if (source.aspectRatio !== undefined) { this.aspectRatio = new AspectRatio(source.aspectRatio); } if (source.minimumInsets !== undefined) { this.minimumInsets = new EdgeInsets(source.minimumInsets); } if (source.preferredHeight !== undefined) { this.preferredHeight = source.preferredHeight; } if (source.visible !== undefined) { this.visible = source.visible; } } } /** Configuration of the scanning interface’s viewfinder, which is always visible to guide the user. */ export class PermanentViewFinderConfiguration extends PartiallyConstructible { public readonly _type: 'PermanentViewFinderConfiguration' = 'PermanentViewFinderConfiguration'; /** The visual appearance of the viewfinder. */ public style: FinderStyle = new FinderCorneredStyle({ strokeColor: '?sbColorSurface', strokeWidth: 2.0, cornerRadius: 10.0, }); /** The color of the viewfinder overlay. Default is "?sbColorSurfaceLow" */ public overlayColor: string = '?sbColorSurfaceLow'; /** The viewfinder's aspect ratio. */ public aspectRatio: AspectRatio = new AspectRatio({ width: 1.0, height: 1.0 }); /** The minimum insets of the viewfinder. */ public minimumInsets: EdgeInsets = new EdgeInsets({ top: 16.0, left: 16.0, bottom: 16.0, right: 16.0, }); /** The preferred height of the viewfinder. Default is -1.0 */ public preferredHeight: number = -1.0; /** @param source {@displayType `DeepPartial<PermanentViewFinderConfiguration>`} */ public constructor(source: DeepPartial<PermanentViewFinderConfiguration> = {}) { super(); if (source.style !== undefined) { this.style = FinderStyle.From(source.style); } if (source.overlayColor !== undefined) { this.overlayColor = source.overlayColor; } if (source.aspectRatio !== undefined) { this.aspectRatio = new AspectRatio(source.aspectRatio); } if (source.minimumInsets !== undefined) { this.minimumInsets = new EdgeInsets(source.minimumInsets); } if (source.preferredHeight !== undefined) { this.preferredHeight = source.preferredHeight; } } } /** The visual appearance of the viewfinder. */ export type FinderStyle = FinderCorneredStyle | FinderStrokedStyle; /** @internal */ export namespace FinderStyle { /** @internal */ export function From(source: { [key: string]: any }): FinderStyle { const _type = source._type; switch (_type) { case 'FinderCorneredStyle': return new FinderCorneredStyle(source); case 'FinderStrokedStyle': return new FinderStrokedStyle(source); default: throw `Unknown child class name: ${_type}`; } } } /** A variant of the viewfinder displaying only the four corners of the scanning area. */ export class FinderCorneredStyle extends PartiallyConstructible { public readonly _type: 'FinderCorneredStyle' = 'FinderCorneredStyle'; /** The color of the viewfinder corner's outlines. Default is "#FFFFFFFF" */ public strokeColor: string = '#FFFFFFFF'; /** The width of the viewfinder corner's outlines. Default is 3.0 */ public strokeWidth: number = 3.0; /** The radius of the viewfinder's corners. Default is 10.0 */ public cornerRadius: number = 10.0; /** @param source {@displayType `DeepPartial<FinderCorneredStyle>`} */ public constructor(source: DeepPartial<FinderCorneredStyle> = {}) { super(); if (source.strokeColor !== undefined) { this.strokeColor = source.strokeColor; } if (source.strokeWidth !== undefined) { this.strokeWidth = source.strokeWidth; } if (source.cornerRadius !== undefined) { this.cornerRadius = source.cornerRadius; } } } /** A variant of the viewfinder displaying a full outline of the scanning area. */ export class FinderStrokedStyle extends PartiallyConstructible { public readonly _type: 'FinderStrokedStyle' = 'FinderStrokedStyle'; /** The color of the viewfinder corner's outlines. Default is "#FFFFFFFF" */ public strokeColor: string = '#FFFFFFFF'; /** The width of the viewfinder corner's outlines. Default is 3.0 */ public strokeWidth: number = 3.0; /** The radius of the viewfinder's corners. Default is 10.0 */ public cornerRadius: number = 10.0; /** @param source {@displayType `DeepPartial<FinderStrokedStyle>`} */ public constructor(source: DeepPartial<FinderStrokedStyle> = {}) { super(); if (source.strokeColor !== undefined) { this.strokeColor = source.strokeColor; } if (source.strokeWidth !== undefined) { this.strokeWidth = source.strokeWidth; } if (source.cornerRadius !== undefined) { this.cornerRadius = source.cornerRadius; } } }