UNPKG

@discord-additions/components

Version:

Some helpful additions to make creating components easier.

152 lines 8.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Component_1 = __importDefault(require("./Component")); const Constants_1 = require("../util/Constants"); class TextInput extends Component_1.default { customID; style; label; minLength; maxLength; required; value; placeholder; constructor(style, label, customID) { super(Constants_1.ComponentTypes.TEXT_INPUT); this.style = style; this.label = label; this.customID = customID; } /** * Set the style of this text input * * * 1 - short * * 2 - paragraph * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles * @param {TextInputStyle} style - the style of this text input * @returns {TextInput} */ setStyle(style) { this.style = style; return this; } /** * Set the custom id of this text input * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {string} customID - a developer-defined identifier for the input, max 100 characters * @returns {TextInput} */ setCustomID(customID) { this.customID = customID; return this; } /** * Set the label of this text input * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {string} label - the label to display on this text input * @returns {TextInput} */ setLabel(label) { this.label = label; return this; } /** * Set the placeholder of this text input * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {string} placeholder - custom placeholder text if nothing is selected, max 100 characters * @returns {TextInput} */ setPlaceholder(placeholder) { this.placeholder = placeholder; return this; } /** * Set the minimum/maximum length of this text input. * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {number} [min] - the minimum length * @param {number} [max] - the maximum length * @returns {TextInput} */ setLength(min, max) { if (min) this.minLength = min; if (max) this.maxLength = max; return this; } /** * Make this text input required. * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {boolean} [required=true] - if this text input should be required or not - default true, setOptional also exists. * @returns {TextInput} */ setRequired(required = true) { this.required = required; return this; } /** * Make this text input optional. * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @returns {TextInput} */ setOptional() { this.required = false; return this; } /** * Set the initial value of this text input * * @see https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure * @param {string} value - a pre-filled value for this component, max 4000 characters * @returns {TextInput} */ setValue(value) { this.value = value; return this; } /** this method is meant to be for internal use only, don't use it, as it may break or change at a moments notice */ load(style, label, customID, placeholder, value, minLength, maxLength, required) { if (style) this.setStyle(style); if (label) this.setLabel(label); if (customID) this.setCustomID(customID); if (placeholder) this.setPlaceholder(placeholder); if (value) this.setValue(value); if (minLength) this.setLength(minLength, undefined); if (maxLength) this.setLength(undefined, maxLength); if (typeof required !== "undefined") this.setRequired(required); return this; } toJSON() { return { type: this.type, customID: this.customID, style: this.style, label: this.label, minLength: this.minLength, maxLength: this.maxLength, required: this.required, value: this.value, placeholder: this.placeholder }; } } exports.default = TextInput; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dElucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0cnVjdHVyZXMvVGV4dElucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQW9DO0FBRXBDLGlEQUFtRDtBQUluRCxNQUFxQixTQUFVLFNBQVEsbUJBQThDO0lBQ3BGLFFBQVEsQ0FBUztJQUNqQixLQUFLLENBQWlCO0lBQ3RCLEtBQUssQ0FBUztJQUNkLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFXO0lBQ25CLEtBQUssQ0FBVTtJQUNmLFdBQVcsQ0FBVTtJQUNyQixZQUFZLEtBQXFCLEVBQUUsS0FBYSxFQUFFLFFBQWdCO1FBQ2pFLEtBQUssQ0FBQywwQkFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxRQUFRLENBQUMsS0FBcUI7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FBQyxXQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLEdBQVksRUFBRSxHQUFZO1FBQ25DLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQzlCLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxvSEFBb0g7SUFDcEgsSUFBSSxDQUFDLEtBQXNCLEVBQUUsS0FBYyxFQUFFLFFBQWlCLEVBQUUsV0FBb0IsRUFBRSxLQUFjLEVBQUUsU0FBa0IsRUFBRSxTQUFrQixFQUFFLFFBQWtCO1FBQy9KLElBQUksS0FBSztZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksV0FBVztZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRCxJQUFJLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVRLE1BQU07UUFDZCxPQUFPO1lBQ04sSUFBSSxFQUFTLElBQUksQ0FBQyxJQUFJO1lBQ3RCLFFBQVEsRUFBSSxJQUFJLENBQUMsUUFBUTtZQUN6QixLQUFLLEVBQVEsSUFBSSxDQUFDLEtBQUs7WUFDdkIsS0FBSyxFQUFRLElBQUksQ0FBQyxLQUFLO1lBQ3ZCLFNBQVMsRUFBRyxJQUFJLENBQUMsU0FBUztZQUMxQixTQUFTLEVBQUcsSUFBSSxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFLLElBQUksQ0FBQyxRQUFRO1lBQzFCLEtBQUssRUFBUSxJQUFJLENBQUMsS0FBSztZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDN0IsQ0FBQztJQUNILENBQUM7Q0FDRDtBQTlJRCw0QkE4SUMifQ==