/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { Border, Padding, RenderMode } from './field-types'; /** * Lists the QR Code encoding modes. * * The possible values are: * `"ISO_8859_1"`—Supports all characters from the [ISO/IEC 8859-1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) character set. * `"UTF_8"`—Supports all [Unicode](https://en.wikipedia.org/wiki/List_of_Unicode_characters) characters. */ export type QRCodeEncoding = 'ISO_8859_1' | 'UTF_8'; /** * Lists the QR Code error correction levels. * * * `"L"`—Approximately 7% of the codewords can be restored. * * `"M"`—Approximately 15% of the codewords can be restored. * * `"Q"`—Approximately 25% of the codewords can be restored. * * `"H"`—Approximately 30% of the codewords can be restored. */ export type QRCodeErrorCorrection = 'L' | 'M' | 'Q' | 'H'; /** * Provides the image overlay options for the QR Code. */ export interface QRCodeOverlay { /** * Sets the overlay height in pixels. */ height?: number; /** * Sets the source image for the overlay. * * Required only when `type` is set to `'image'`. */ imageUrl?: string; /** * Sets the overlay type. * * @default 'image' */ type?: 'image' | 'swiss'; /** * Sets the overlay width in pixels. */ width?: number; } /** * Provides the QR Code options. */ export interface QRCodeOptions { /** * Sets the background color of the QR Code. Accepts a valid CSS color string, including hex and rgb. * * @default "white" */ background?: string; /** * Sets the border of the QR Code. */ border?: Border; /** * Sets the color of the QR Code. Accepts a valid CSS color string, including hex and rgb. * * @default "black" */ color?: string; /** * Sets the encoding mode used to encode the value. * * > **Important** The UTF-8 encoding is not included in the specifications and is not supported by all readers. * * @default "ISO_8859_1" */ encoding?: QRCodeEncoding; /** * Sets the error correction level to use. * * @default "L" */ errorCorrection?: QRCodeErrorCorrection; /** * Sets an optional image overlay that is placed over the QR Code. * * > **Note** Always test if the code reads correctly with the applied overlay. * > Depending on the length of the value and the size of the overlay, you might need to raise the `errorCorrection` level to `"M"` or `"H"`. */ overlay?: QRCodeOverlay; /** * Sets the padding of the QR Code. A numeric value sets all paddings. * * @default 0 */ padding?: Padding | number; /** * Sets the preferred rendering mode of the QR Code. * * @default "svg" */ renderAs?: RenderMode; /** * Sets the size of a QR Code. Numeric values are treated as pixels. * * If you do not specify a size, the size is determined from the element width and height. * If the element has width or height of zero, a default value of 200 pixels is used. * * @default "200px" */ size?: number | string; /** * Sets the value of the QR Code. */ value: number | string; }