@rocket.chat/apps-engine
Version:
The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.
46 lines (45 loc) • 1.9 kB
TypeScript
import type { SettingType } from './SettingType';
export interface ISetting {
/** The id of this setting. */
id: string;
/** Type of setting this is. */
type: SettingType;
/** What is the default value (allows a reset button). */
packageValue: any;
/** Will be the value of this setting. If nothing is set here, then the "packageValue" will be used. */
/**
* If the setting type is ROOM_PICK, the value will be an array of room ids.
* @returns ```js
* [{_id: 'rid1'}, {_id: 'rid2'}]
* ```
*/
value?: any;
/** Whether this setting is required or not. */
required: boolean;
/** Whether this setting is a public setting or not - administrators can see ones which are not public but users can't. */
public: boolean;
/** Whether this setting should be hidden from the user/administrator's eyes (can't be hidden and required). */
hidden?: boolean;
/** The selectable values when the setting's type is "select" or "multiSelect". */
values?: Array<ISettingSelectValue>;
/** Whether the **string** type is several lines or just one line. */
multiline?: boolean;
/** The name of the section where to put this setting under. */
section?: string;
/** Name of the setting in the form of a i18n string. */
i18nLabel: string;
/** Description of the setting in the form of a i18n string. */
i18nDescription?: string;
/** An optional alert messages which is shown to the user on this setting. */
i18nAlert?: string;
/** An optional placeholder which will be shown in the form input field, should be an i18n string. */
i18nPlaceholder?: string;
/** Date in which this setting was created. */
createdAt?: Date;
/** The last time the setting was updated at. */
updatedAt?: Date;
}
export interface ISettingSelectValue {
key: string;
i18nLabel: string;
}