@manuth/woltlab-compiler
Version:
A compiler for generating WoltLab-Package `.tar` Archives and other WoltLab-Package Components
62 lines (61 loc) • 1.79 kB
TypeScript
import { ILocalization } from "../Globalization/ILocalization.js";
import { IOptionItemOptions } from "./IOptionItemOptions.js";
import { OptionType } from "./OptionType.js";
/**
* Provides options for the {@link Option `Option`} class.
*/
export interface IOptionOptions {
/**
* The id of the option.
*/
ID?: string;
/**
* The name of the option.
*/
Name: string;
/**
* The human readable name of the option.
*/
DisplayName?: ILocalization;
/**
* The description of the option.
*/
Description?: ILocalization;
/**
* The type of the option.
*/
Type?: OptionType | string;
/**
* The default value of the option.
*/
DefaultValue?: any;
/**
* The show-order of the option.
*/
ShowOrder?: number;
/**
* The validation-pattern of the option.
*/
ValidationPattern?: RegExp;
/**
* The items of the option.
*/
Items?: IOptionItemOptions[];
/**
* A list of options of which at least one needs to be enabled for the option to be shown.
*/
Options?: string[];
/**
* A list of options which should be visually enabled when this option is enabled.
* A leading exclamation mark (`!`, `U+0021`) will disable the specified option when this option is enabled.
* For `ComboBox` and `RadioButton` types the list should be prefixed by the name of the `selectoption`s followed by a colon (`:`, `U+003A`).
*
* This setting is a visual helper for the administrator only.
* It does not have an effect on the server side processing of the option.
*/
EnableOptions?: string[];
/**
* Additional properties of the option.
*/
AdditionalProperties?: Record<string, unknown>;
}