| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file contains some DOM element properties that are available in Chrome |
| // but not in TypeScript lib.d.ts since they're not generally available on all |
| // browsers. |
| |
| // The following interface are removed from TypeScript 4.4 default |
| // lib.dom.d.ts. |
| // See https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029 |
| // for detail. |
| interface DocumentOrShadowRoot { |
| getSelection(): Selection|null; |
| } |
| |
| interface HTMLElement { |
| scrollIntoViewIfNeeded(): void; |
| } |
| |
| interface HTMLDialogElement { |
| close(returnValue?: string): void; |
| open: boolean; |
| returnValue: string; |
| showModal(): void; |
| } |
| |
| // https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/sourceCapabilities |
| interface UIEvent extends Event { |
| readonly sourceCapabilities: InputDeviceCapabilities|null; |
| } |
| |
| // https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities |
| declare class InputDeviceCapabilities { |
| readonly firesTouchEvents: boolean; |
| readonly pointerMovementScrolls: boolean; |
| constructor(param: {firesTouchEvents: boolean}); |
| } |
| |
| interface UIEventInit { |
| // https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/sourceCapabilities |
| sourceCapabilities?: InputDeviceCapabilities|null; |
| } |
| |
| // Barcode Detection API, this is currently only supported in Chrome on |
| // ChromeOS, Android or macOS. |
| // https://wicg.github.io/shape-detection-api/ |
| // https://developer.mozilla.org/en-US/docs/Web/API/BarcodeDetector |
| declare class BarcodeDetector { |
| static getSupportedFormats(): Promise<BarcodeFormat[]>; |
| constructor(barcodeDetectorOptions?: BarcodeDetectorOptions); |
| detect(image: ImageBitmapSource): Promise<DetectedBarcode[]>; |
| } |
| |
| interface BarcodeDetectorOptions { |
| formats?: BarcodeFormat[]; |
| } |
| |
| interface DetectedBarcode { |
| boundingBox: DOMRectReadOnly; |
| rawValue: string; |
| format: BarcodeFormat; |
| cornerPoints: ReadonlyArray<{x: number, y: number}>; |
| } |
| |
| type BarcodeFormat = |
| 'aztec'|'codabar'|'code_39'|'code_93'|'code_128'|'data_matrix'|'ean_8'| |
| 'ean_13'|'itf'|'pdf417'|'qr_code'|'unknown'|'upc_a'|'upc_e'; |