|
|
@ -1,16 +1,20 @@ |
|
|
|
import { ImageResult, PlatformService, PlatformCapabilities } from "../PlatformService"; |
|
|
|
import { |
|
|
|
ImageResult, |
|
|
|
PlatformService, |
|
|
|
PlatformCapabilities, |
|
|
|
} from "../PlatformService"; |
|
|
|
import { logger } from "../../utils/logger"; |
|
|
|
|
|
|
|
/** |
|
|
|
* Platform service implementation for web browser platform. |
|
|
|
* Implements the PlatformService interface with web-specific functionality. |
|
|
|
* |
|
|
|
* |
|
|
|
* @remarks |
|
|
|
* This service provides web-based implementations for: |
|
|
|
* - Image capture using the browser's file input |
|
|
|
* - Image selection from local filesystem |
|
|
|
* - Image processing and conversion |
|
|
|
* |
|
|
|
* |
|
|
|
* Note: File system operations are not available in the web platform |
|
|
|
* due to browser security restrictions. These methods throw appropriate errors. |
|
|
|
*/ |
|
|
@ -26,7 +30,7 @@ export class WebPlatformService implements PlatformService { |
|
|
|
isMobile: /iPhone|iPad|iPod|Android/i.test(navigator.userAgent), |
|
|
|
isIOS: /iPad|iPhone|iPod/.test(navigator.userAgent), |
|
|
|
hasFileDownload: true, |
|
|
|
needsFileHandlingInstructions: false |
|
|
|
needsFileHandlingInstructions: false, |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
@ -70,10 +74,10 @@ export class WebPlatformService implements PlatformService { |
|
|
|
/** |
|
|
|
* Opens a file input dialog configured for camera capture. |
|
|
|
* Creates a temporary file input element to access the device camera. |
|
|
|
* |
|
|
|
* |
|
|
|
* @returns Promise resolving to the captured image data |
|
|
|
* @throws Error if image capture fails or no image is selected |
|
|
|
* |
|
|
|
* |
|
|
|
* @remarks |
|
|
|
* Uses the 'capture' attribute to prefer the device camera. |
|
|
|
* Falls back to file selection if camera is not available. |
|
|
@ -111,10 +115,10 @@ export class WebPlatformService implements PlatformService { |
|
|
|
/** |
|
|
|
* Opens a file input dialog for selecting an image file. |
|
|
|
* Creates a temporary file input element to access local files. |
|
|
|
* |
|
|
|
* |
|
|
|
* @returns Promise resolving to the selected image data |
|
|
|
* @throws Error if image processing fails or no image is selected |
|
|
|
* |
|
|
|
* |
|
|
|
* @remarks |
|
|
|
* Allows selection of any image file type. |
|
|
|
* Processes the selected image to ensure consistent format. |
|
|
@ -150,11 +154,11 @@ export class WebPlatformService implements PlatformService { |
|
|
|
/** |
|
|
|
* Processes an image file to ensure consistent format. |
|
|
|
* Converts the file to a data URL and then to a Blob. |
|
|
|
* |
|
|
|
* |
|
|
|
* @param file - The image File object to process |
|
|
|
* @returns Promise resolving to processed image Blob |
|
|
|
* @throws Error if file reading or conversion fails |
|
|
|
* |
|
|
|
* |
|
|
|
* @remarks |
|
|
|
* This method ensures consistent image format across different |
|
|
|
* input sources by converting through data URL to Blob. |
|
|
@ -216,7 +220,7 @@ export class WebPlatformService implements PlatformService { |
|
|
|
/** |
|
|
|
* Handles deep link URLs in the web platform. |
|
|
|
* Deep links are handled through URL parameters in the web environment. |
|
|
|
* |
|
|
|
* |
|
|
|
* @param _url - The deep link URL to handle (unused in web implementation) |
|
|
|
* @returns Promise that resolves immediately as web handles URLs naturally |
|
|
|
*/ |
|
|
|