import { Injectable } from '@angular/core'; import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; import { Observable } from 'rxjs'; export interface LastCamStartupOptions { /** The left edge in pixels, default 0 */ x?: number; /** The top edge in pixels, default 0 */ y?: number; /** The width in pixels, default window.screen.width */ width?: number; /** The height in pixels, default window.screen.height */ height?: number; /** Choose the camera to use 'front' or 'back', default 'front' */ camera?: string; } /** * @name LastCam * @description * Last Cam is a Camera Preview plugin that allows you to take capture both Videos and images in a * custom html preview of your choice. * * @interfaces * LastCamStartupOptions */ @Plugin({ pluginName: 'LastCam', plugin: 'cordova-plugin-last-cam', pluginRef: 'LastCam', repo: 'https://github.com/bengejd/cordova-plugin-last-cam', platforms: ['iOS'] }) @Injectable() export class LastCam extends IonicNativePlugin { /** * Starts the camera preview instance. * @param {LastCamStartupOptions} options * @return {Promise} */ @Cordova({ successIndex: 1, errorIndex: 2 }) startCamera(options: LastCamStartupOptions): Promise { return; } /** * Stops the camera preview instance. (iOS) * @return {Promise} */ @Cordova() stopCamera(): Promise { return; } /** * Switch from the rear camera and front camera, if available. * @return {Promise} */ @Cordova() switchCamera(): Promise { return; } /** * Switch the flash mode. * @return {Promise} */ @Cordova() switchFlash(): Promise { return; } /** * Take the picture (base64) * @return {Promise} */ @Cordova({ successIndex: 0, errorIndex: 1 }) takePicture(): Promise { return; } /** * Start the video capture * @return {Promise} */ @Cordova() startVideoCapture(): Promise { return; } /** * Stops the video capture * @return {Promise} */ @Cordova({ successIndex: 0, errorIndex: 1 }) stopVideoCapture(): Promise { return; } /** * Promise of the recordingTimer. * @return {Promise} */ @Cordova({ successIndex: 0, errorIndex: 1 }) recordingTimer(): Promise { return; } /** * Observable of the recordingTimer. * @return {Observable} */ @Cordova({ successIndex: 0, errorIndex: 1, observable: true }) watchRecordingTimer(): Observable { return; } }