@jubbio/core 1.1.20 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Client.js +13 -14
- package/dist/cjs/Client.d.ts +157 -0
- package/dist/cjs/Client.js +640 -0
- package/dist/cjs/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/cjs/builders/ActionRowBuilder.js +68 -0
- package/dist/cjs/builders/ButtonBuilder.d.ts +77 -0
- package/dist/cjs/builders/ButtonBuilder.js +96 -0
- package/dist/cjs/builders/EmbedBuilder.d.ts +157 -0
- package/dist/cjs/builders/EmbedBuilder.js +208 -0
- package/dist/cjs/builders/ModalBuilder.d.ts +122 -0
- package/dist/cjs/builders/ModalBuilder.js +162 -0
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/cjs/builders/SelectMenuBuilder.js +165 -0
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/cjs/builders/SlashCommandBuilder.js +324 -0
- package/dist/cjs/builders/index.d.ts +9 -0
- package/dist/cjs/builders/index.js +26 -0
- package/dist/cjs/enums.d.ts +191 -0
- package/dist/cjs/enums.js +211 -0
- package/dist/cjs/index.d.ts +25 -0
- package/dist/cjs/index.js +130 -0
- package/dist/cjs/managers/BaseManager.d.ts +69 -0
- package/dist/cjs/managers/BaseManager.js +106 -0
- package/dist/cjs/managers/ChannelManager.d.ts +95 -0
- package/dist/cjs/managers/ChannelManager.js +205 -0
- package/dist/cjs/managers/GuildMemberManager.d.ts +74 -0
- package/dist/cjs/managers/GuildMemberManager.js +157 -0
- package/dist/cjs/managers/RoleManager.d.ts +84 -0
- package/dist/cjs/managers/RoleManager.js +207 -0
- package/dist/cjs/managers/index.d.ts +7 -0
- package/dist/cjs/managers/index.js +24 -0
- package/dist/cjs/rest/REST.d.ts +527 -0
- package/dist/cjs/rest/REST.js +904 -0
- package/dist/cjs/rest/index.d.ts +1 -0
- package/dist/cjs/rest/index.js +18 -0
- package/dist/cjs/sharding/ShardingManager.d.ts +179 -0
- package/dist/cjs/sharding/ShardingManager.js +375 -0
- package/dist/cjs/sharding/index.d.ts +4 -0
- package/dist/cjs/sharding/index.js +21 -0
- package/dist/cjs/structures/Channel.d.ts +122 -0
- package/dist/cjs/structures/Channel.js +240 -0
- package/dist/cjs/structures/Collection.d.ts +53 -0
- package/dist/cjs/structures/Collection.js +115 -0
- package/dist/cjs/structures/Guild.d.ts +59 -0
- package/dist/cjs/structures/Guild.js +94 -0
- package/dist/cjs/structures/GuildMember.d.ts +174 -0
- package/dist/cjs/structures/GuildMember.js +311 -0
- package/dist/cjs/structures/Interaction.d.ts +245 -0
- package/dist/cjs/structures/Interaction.js +450 -0
- package/dist/cjs/structures/Message.d.ts +98 -0
- package/dist/cjs/structures/Message.js +195 -0
- package/dist/cjs/structures/User.d.ts +37 -0
- package/dist/cjs/structures/User.js +65 -0
- package/dist/cjs/structures/index.d.ts +7 -0
- package/dist/cjs/structures/index.js +25 -0
- package/dist/cjs/structures.d.ts +1 -0
- package/dist/cjs/structures.js +19 -0
- package/dist/cjs/types.d.ts +255 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/utils/BitField.d.ts +66 -0
- package/dist/cjs/utils/BitField.js +138 -0
- package/dist/cjs/utils/Collection.d.ts +116 -0
- package/dist/cjs/utils/Collection.js +265 -0
- package/dist/cjs/utils/Collector.d.ts +152 -0
- package/dist/cjs/utils/Collector.js +314 -0
- package/dist/cjs/utils/DataResolver.d.ts +61 -0
- package/dist/cjs/utils/DataResolver.js +146 -0
- package/dist/cjs/utils/Formatters.d.ts +145 -0
- package/dist/cjs/utils/Formatters.js +213 -0
- package/dist/cjs/utils/IntentsBitField.d.ts +85 -0
- package/dist/cjs/utils/IntentsBitField.js +99 -0
- package/dist/cjs/utils/Partials.d.ts +104 -0
- package/dist/cjs/utils/Partials.js +148 -0
- package/dist/cjs/utils/PermissionsBitField.d.ts +118 -0
- package/dist/cjs/utils/PermissionsBitField.js +145 -0
- package/dist/cjs/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/cjs/utils/SnowflakeUtil.js +93 -0
- package/dist/cjs/utils/Sweepers.d.ts +119 -0
- package/dist/cjs/utils/Sweepers.js +249 -0
- package/dist/cjs/utils/index.d.ts +13 -0
- package/dist/cjs/utils/index.js +30 -0
- package/dist/esm/Client.js +634 -0
- package/dist/esm/builders/ActionRowBuilder.js +64 -0
- package/dist/esm/builders/ButtonBuilder.js +92 -0
- package/dist/esm/builders/EmbedBuilder.js +204 -0
- package/dist/esm/builders/ModalBuilder.js +157 -0
- package/dist/esm/builders/SelectMenuBuilder.js +161 -0
- package/dist/esm/builders/SlashCommandBuilder.js +311 -0
- package/dist/esm/builders/index.js +10 -0
- package/dist/esm/enums.js +208 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/managers/BaseManager.js +100 -0
- package/dist/esm/managers/ChannelManager.js +200 -0
- package/dist/esm/managers/GuildMemberManager.js +153 -0
- package/dist/esm/managers/RoleManager.js +203 -0
- package/dist/esm/managers/index.js +8 -0
- package/dist/esm/rest/REST.js +900 -0
- package/dist/esm/rest/index.js +2 -0
- package/dist/esm/sharding/ShardingManager.js +366 -0
- package/dist/esm/sharding/index.js +5 -0
- package/dist/esm/structures/Channel.js +232 -0
- package/dist/esm/structures/Collection.js +111 -0
- package/dist/esm/structures/Guild.js +90 -0
- package/dist/esm/structures/GuildMember.js +306 -0
- package/dist/esm/structures/Interaction.js +438 -0
- package/dist/esm/structures/Message.js +191 -0
- package/dist/esm/structures/User.js +61 -0
- package/dist/esm/structures/index.js +9 -0
- package/dist/esm/structures.js +3 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils/BitField.js +134 -0
- package/dist/esm/utils/Collection.js +261 -0
- package/dist/esm/utils/Collector.js +305 -0
- package/dist/esm/utils/DataResolver.js +142 -0
- package/dist/esm/utils/Formatters.js +191 -0
- package/dist/esm/utils/IntentsBitField.js +93 -0
- package/dist/esm/utils/Partials.js +137 -0
- package/dist/esm/utils/PermissionsBitField.js +141 -0
- package/dist/esm/utils/SnowflakeUtil.js +89 -0
- package/dist/esm/utils/Sweepers.js +245 -0
- package/dist/esm/utils/index.js +14 -0
- package/dist/rest/REST.js +8 -1
- package/dist/structures/Interaction.js +3 -5
- package/dist/structures/Message.js +56 -2
- package/package.json +14 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ActionRowBuilder for creating component rows
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* A builder for creating action rows
|
|
6
|
+
*/
|
|
7
|
+
export class ActionRowBuilder {
|
|
8
|
+
data;
|
|
9
|
+
constructor(data = {}) {
|
|
10
|
+
this.data = {
|
|
11
|
+
type: 1,
|
|
12
|
+
components: data.components || []
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Adds components to this action row
|
|
17
|
+
* @param components The components to add
|
|
18
|
+
*/
|
|
19
|
+
addComponents(...components) {
|
|
20
|
+
for (const component of components) {
|
|
21
|
+
if ('toJSON' in component && typeof component.toJSON === 'function') {
|
|
22
|
+
this.data.components.push(component.toJSON());
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.data.components.push(component);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sets the components of this action row
|
|
32
|
+
* @param components The components to set
|
|
33
|
+
*/
|
|
34
|
+
setComponents(...components) {
|
|
35
|
+
this.data.components = [];
|
|
36
|
+
return this.addComponents(...components);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Removes, replaces, or inserts components
|
|
40
|
+
* @param index The index to start at
|
|
41
|
+
* @param deleteCount The number of components to remove
|
|
42
|
+
* @param components The components to insert
|
|
43
|
+
*/
|
|
44
|
+
spliceComponents(index, deleteCount, ...components) {
|
|
45
|
+
const resolved = components.map(c => 'toJSON' in c && typeof c.toJSON === 'function' ? c.toJSON() : c);
|
|
46
|
+
this.data.components.splice(index, deleteCount, ...resolved);
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns the JSON representation of this action row
|
|
51
|
+
*/
|
|
52
|
+
toJSON() {
|
|
53
|
+
return { ...this.data };
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new action row builder from existing data
|
|
57
|
+
* @param other The action row data to copy
|
|
58
|
+
*/
|
|
59
|
+
static from(other) {
|
|
60
|
+
return new ActionRowBuilder(other instanceof ActionRowBuilder ? other.data : other);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export default ActionRowBuilder;
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aW9uUm93QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZGVycy9BY3Rpb25Sb3dCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBWUg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ1gsSUFBSSxDQUErQjtJQUVuRCxZQUFZLE9BQThCLEVBQUU7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLElBQUksRUFBRSxDQUFDO1lBQ1AsVUFBVSxFQUFHLElBQUksQ0FBQyxVQUFrQixJQUFJLEVBQUU7U0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsR0FBRyxVQUFtQztRQUNsRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksUUFBUSxJQUFJLFNBQVMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQWMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsVUFBbUM7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLEdBQUcsVUFBbUM7UUFDekYsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsQyxRQUFRLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUN0RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFrQixDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFrQyxLQUFrRDtRQUM3RixPQUFPLElBQUksZ0JBQWdCLENBQUksS0FBSyxZQUFZLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RixDQUFDO0NBQ0Y7QUFFRCxlQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBY3Rpb25Sb3dCdWlsZGVyIGZvciBjcmVhdGluZyBjb21wb25lbnQgcm93c1xuICovXG5cbmltcG9ydCB7IEFQSUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vQnV0dG9uQnVpbGRlcic7XG5pbXBvcnQgeyBBUElTZWxlY3RNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9TZWxlY3RNZW51QnVpbGRlcic7XG5cbmV4cG9ydCB0eXBlIEFQSUFjdGlvblJvd0NvbXBvbmVudCA9IEFQSUJ1dHRvbkNvbXBvbmVudCB8IEFQSVNlbGVjdE1lbnVDb21wb25lbnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJQWN0aW9uUm93IHtcbiAgdHlwZTogMTtcbiAgY29tcG9uZW50czogQVBJQWN0aW9uUm93Q29tcG9uZW50W107XG59XG5cbi8qKlxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBhY3Rpb24gcm93c1xuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uUm93QnVpbGRlcjxUIGV4dGVuZHMgQVBJQWN0aW9uUm93Q29tcG9uZW50ID0gQVBJQWN0aW9uUm93Q29tcG9uZW50PiB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiB7IHR5cGU6IDE7IGNvbXBvbmVudHM6IFRbXSB9O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJQWN0aW9uUm93PiA9IHt9KSB7XG4gICAgdGhpcy5kYXRhID0geyBcbiAgICAgIHR5cGU6IDEsIFxuICAgICAgY29tcG9uZW50czogKGRhdGEuY29tcG9uZW50cyBhcyBUW10pIHx8IFtdIFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBjb21wb25lbnRzIHRvIHRoaXMgYWN0aW9uIHJvd1xuICAgKiBAcGFyYW0gY29tcG9uZW50cyBUaGUgY29tcG9uZW50cyB0byBhZGRcbiAgICovXG4gIGFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKFQgfCB7IHRvSlNPTigpOiBUIH0pW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzKSB7XG4gICAgICBpZiAoJ3RvSlNPTicgaW4gY29tcG9uZW50ICYmIHR5cGVvZiBjb21wb25lbnQudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuZGF0YS5jb21wb25lbnRzLnB1c2goY29tcG9uZW50LnRvSlNPTigpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YS5jb21wb25lbnRzLnB1c2goY29tcG9uZW50IGFzIFQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnRzIG9mIHRoaXMgYWN0aW9uIHJvd1xuICAgKiBAcGFyYW0gY29tcG9uZW50cyBUaGUgY29tcG9uZW50cyB0byBzZXRcbiAgICovXG4gIHNldENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKFQgfCB7IHRvSlNPTigpOiBUIH0pW10pOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEuY29tcG9uZW50cyA9IFtdO1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50cyk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcywgcmVwbGFjZXMsIG9yIGluc2VydHMgY29tcG9uZW50c1xuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIHN0YXJ0IGF0XG4gICAqIEBwYXJhbSBkZWxldGVDb3VudCBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgdG8gcmVtb3ZlXG4gICAqIEBwYXJhbSBjb21wb25lbnRzIFRoZSBjb21wb25lbnRzIHRvIGluc2VydFxuICAgKi9cbiAgc3BsaWNlQ29tcG9uZW50cyhpbmRleDogbnVtYmVyLCBkZWxldGVDb3VudDogbnVtYmVyLCAuLi5jb21wb25lbnRzOiAoVCB8IHsgdG9KU09OKCk6IFQgfSlbXSk6IHRoaXMge1xuICAgIGNvbnN0IHJlc29sdmVkID0gY29tcG9uZW50cy5tYXAoYyA9PiBcbiAgICAgICd0b0pTT04nIGluIGMgJiYgdHlwZW9mIGMudG9KU09OID09PSAnZnVuY3Rpb24nID8gYy50b0pTT04oKSA6IGMgYXMgVFxuICAgICk7XG4gICAgdGhpcy5kYXRhLmNvbXBvbmVudHMuc3BsaWNlKGluZGV4LCBkZWxldGVDb3VudCwgLi4ucmVzb2x2ZWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBhY3Rpb24gcm93XG4gICAqL1xuICB0b0pTT04oKTogQVBJQWN0aW9uUm93IHtcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElBY3Rpb25Sb3c7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhY3Rpb24gcm93IGJ1aWxkZXIgZnJvbSBleGlzdGluZyBkYXRhXG4gICAqIEBwYXJhbSBvdGhlciBUaGUgYWN0aW9uIHJvdyBkYXRhIHRvIGNvcHlcbiAgICovXG4gIHN0YXRpYyBmcm9tPFQgZXh0ZW5kcyBBUElBY3Rpb25Sb3dDb21wb25lbnQ+KG90aGVyOiBQYXJ0aWFsPEFQSUFjdGlvblJvdz4gfCBBY3Rpb25Sb3dCdWlsZGVyPFQ+KTogQWN0aW9uUm93QnVpbGRlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25Sb3dCdWlsZGVyPFQ+KG90aGVyIGluc3RhbmNlb2YgQWN0aW9uUm93QnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUm93QnVpbGRlcjtcbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ButtonBuilder for creating interactive buttons
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Button styles
|
|
6
|
+
*/
|
|
7
|
+
export var ButtonStyle;
|
|
8
|
+
(function (ButtonStyle) {
|
|
9
|
+
ButtonStyle[ButtonStyle["Primary"] = 1] = "Primary";
|
|
10
|
+
ButtonStyle[ButtonStyle["Secondary"] = 2] = "Secondary";
|
|
11
|
+
ButtonStyle[ButtonStyle["Success"] = 3] = "Success";
|
|
12
|
+
ButtonStyle[ButtonStyle["Danger"] = 4] = "Danger";
|
|
13
|
+
ButtonStyle[ButtonStyle["Link"] = 5] = "Link";
|
|
14
|
+
})(ButtonStyle || (ButtonStyle = {}));
|
|
15
|
+
/**
|
|
16
|
+
* A builder for creating buttons
|
|
17
|
+
*/
|
|
18
|
+
export class ButtonBuilder {
|
|
19
|
+
data;
|
|
20
|
+
constructor(data = {}) {
|
|
21
|
+
this.data = { type: 2, ...data };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sets the custom ID of this button
|
|
25
|
+
* @param customId The custom ID
|
|
26
|
+
*/
|
|
27
|
+
setCustomId(customId) {
|
|
28
|
+
this.data.custom_id = customId;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the label of this button
|
|
33
|
+
* @param label The label
|
|
34
|
+
*/
|
|
35
|
+
setLabel(label) {
|
|
36
|
+
this.data.label = label;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets the style of this button
|
|
41
|
+
* @param style The style
|
|
42
|
+
*/
|
|
43
|
+
setStyle(style) {
|
|
44
|
+
this.data.style = style;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the emoji of this button
|
|
49
|
+
* @param emoji The emoji
|
|
50
|
+
*/
|
|
51
|
+
setEmoji(emoji) {
|
|
52
|
+
if (typeof emoji === 'string') {
|
|
53
|
+
// Unicode emoji
|
|
54
|
+
this.data.emoji = { name: emoji };
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.data.emoji = emoji;
|
|
58
|
+
}
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sets the URL of this button (only for Link style)
|
|
63
|
+
* @param url The URL
|
|
64
|
+
*/
|
|
65
|
+
setURL(url) {
|
|
66
|
+
this.data.url = url;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets whether this button is disabled
|
|
71
|
+
* @param disabled Whether the button is disabled
|
|
72
|
+
*/
|
|
73
|
+
setDisabled(disabled = true) {
|
|
74
|
+
this.data.disabled = disabled;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns the JSON representation of this button
|
|
79
|
+
*/
|
|
80
|
+
toJSON() {
|
|
81
|
+
return { ...this.data };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates a new button builder from existing data
|
|
85
|
+
* @param other The button data to copy
|
|
86
|
+
*/
|
|
87
|
+
static from(other) {
|
|
88
|
+
return new ButtonBuilder(other instanceof ButtonBuilder ? other.data : other);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export default ButtonBuilder;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZGVycy9CdXR0b25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ3JCLG1EQUFXLENBQUE7SUFDWCx1REFBYSxDQUFBO0lBQ2IsbURBQVcsQ0FBQTtJQUNYLGlEQUFVLENBQUE7SUFDViw2Q0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCO0FBWUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUNSLElBQUksQ0FBOEI7SUFFbEQsWUFBWSxPQUFvQyxFQUFFO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFrQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQWtFO1FBQ3pFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsZ0JBQWdCO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsR0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUF3QixDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWtEO1FBQzVELE9BQU8sSUFBSSxhQUFhLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQztDQUNGO0FBRUQsZUFBZSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJ1dHRvbkJ1aWxkZXIgZm9yIGNyZWF0aW5nIGludGVyYWN0aXZlIGJ1dHRvbnNcbiAqL1xuXG4vKipcbiAqIEJ1dHRvbiBzdHlsZXNcbiAqL1xuZXhwb3J0IGVudW0gQnV0dG9uU3R5bGUge1xuICBQcmltYXJ5ID0gMSxcbiAgU2Vjb25kYXJ5ID0gMixcbiAgU3VjY2VzcyA9IDMsXG4gIERhbmdlciA9IDQsXG4gIExpbmsgPSA1LFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSUJ1dHRvbkNvbXBvbmVudCB7XG4gIHR5cGU6IDI7XG4gIHN0eWxlOiBCdXR0b25TdHlsZTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGVtb2ppPzogeyBpZD86IHN0cmluZzsgbmFtZT86IHN0cmluZzsgYW5pbWF0ZWQ/OiBib29sZWFuIH07XG4gIGN1c3RvbV9pZD86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBidXR0b25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCdXR0b25CdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFBhcnRpYWw8QVBJQnV0dG9uQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSUJ1dHRvbkNvbXBvbmVudD4gPSB7fSkge1xuICAgIHRoaXMuZGF0YSA9IHsgdHlwZTogMiwgLi4uZGF0YSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIGJ1dHRvblxuICAgKiBAcGFyYW0gY3VzdG9tSWQgVGhlIGN1c3RvbSBJRFxuICAgKi9cbiAgc2V0Q3VzdG9tSWQoY3VzdG9tSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5jdXN0b21faWQgPSBjdXN0b21JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYWJlbCBvZiB0aGlzIGJ1dHRvblxuICAgKiBAcGFyYW0gbGFiZWwgVGhlIGxhYmVsXG4gICAqL1xuICBzZXRMYWJlbChsYWJlbDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLmxhYmVsID0gbGFiZWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3R5bGUgb2YgdGhpcyBidXR0b25cbiAgICogQHBhcmFtIHN0eWxlIFRoZSBzdHlsZVxuICAgKi9cbiAgc2V0U3R5bGUoc3R5bGU6IEJ1dHRvblN0eWxlKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLnN0eWxlID0gc3R5bGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZW1vamkgb2YgdGhpcyBidXR0b25cbiAgICogQHBhcmFtIGVtb2ppIFRoZSBlbW9qaVxuICAgKi9cbiAgc2V0RW1vamkoZW1vamk6IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKHR5cGVvZiBlbW9qaSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFVuaWNvZGUgZW1vamlcbiAgICAgIHRoaXMuZGF0YS5lbW9qaSA9IHsgbmFtZTogZW1vamkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhLmVtb2ppID0gZW1vamk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIFVSTCBvZiB0aGlzIGJ1dHRvbiAob25seSBmb3IgTGluayBzdHlsZSlcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMXG4gICAqL1xuICBzZXRVUkwodXJsOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEudXJsID0gdXJsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGlzIGJ1dHRvbiBpcyBkaXNhYmxlZFxuICAgKiBAcGFyYW0gZGlzYWJsZWQgV2hldGhlciB0aGUgYnV0dG9uIGlzIGRpc2FibGVkXG4gICAqL1xuICBzZXREaXNhYmxlZChkaXNhYmxlZCA9IHRydWUpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgYnV0dG9uXG4gICAqL1xuICB0b0pTT04oKTogQVBJQnV0dG9uQ29tcG9uZW50IHtcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElCdXR0b25Db21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBidXR0b24gYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcbiAgICogQHBhcmFtIG90aGVyIFRoZSBidXR0b24gZGF0YSB0byBjb3B5XG4gICAqL1xuICBzdGF0aWMgZnJvbShvdGhlcjogUGFydGlhbDxBUElCdXR0b25Db21wb25lbnQ+IHwgQnV0dG9uQnVpbGRlcik6IEJ1dHRvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQnV0dG9uQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIEJ1dHRvbkJ1aWxkZXIgPyBvdGhlci5kYXRhIDogb3RoZXIpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkJ1aWxkZXI7XG4iXX0=
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmbedBuilder for creating rich embeds
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* A builder for creating embeds
|
|
6
|
+
*/
|
|
7
|
+
export class EmbedBuilder {
|
|
8
|
+
data;
|
|
9
|
+
constructor(data = {}) {
|
|
10
|
+
this.data = { ...data };
|
|
11
|
+
if (data.fields) {
|
|
12
|
+
this.data.fields = [...data.fields];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Sets the title of this embed
|
|
17
|
+
* @param title The title
|
|
18
|
+
*/
|
|
19
|
+
setTitle(title) {
|
|
20
|
+
this.data.title = title ?? undefined;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sets the description of this embed
|
|
25
|
+
* @param description The description
|
|
26
|
+
*/
|
|
27
|
+
setDescription(description) {
|
|
28
|
+
this.data.description = description ?? undefined;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the URL of this embed
|
|
33
|
+
* @param url The URL
|
|
34
|
+
*/
|
|
35
|
+
setURL(url) {
|
|
36
|
+
this.data.url = url ?? undefined;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets the timestamp of this embed
|
|
41
|
+
* @param timestamp The timestamp or date
|
|
42
|
+
*/
|
|
43
|
+
setTimestamp(timestamp = Date.now()) {
|
|
44
|
+
this.data.timestamp = timestamp === null
|
|
45
|
+
? undefined
|
|
46
|
+
: new Date(timestamp).toISOString();
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets the color of this embed
|
|
51
|
+
* @param color The color (number, hex string, or RGB array)
|
|
52
|
+
*/
|
|
53
|
+
setColor(color) {
|
|
54
|
+
if (color === null) {
|
|
55
|
+
this.data.color = undefined;
|
|
56
|
+
}
|
|
57
|
+
else if (typeof color === 'number') {
|
|
58
|
+
this.data.color = color;
|
|
59
|
+
}
|
|
60
|
+
else if (typeof color === 'string') {
|
|
61
|
+
this.data.color = parseInt(color.replace('#', ''), 16);
|
|
62
|
+
}
|
|
63
|
+
else if (Array.isArray(color)) {
|
|
64
|
+
this.data.color = (color[0] << 16) + (color[1] << 8) + color[2];
|
|
65
|
+
}
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Sets the footer of this embed
|
|
70
|
+
* @param options The footer options
|
|
71
|
+
*/
|
|
72
|
+
setFooter(options) {
|
|
73
|
+
if (options === null) {
|
|
74
|
+
this.data.footer = undefined;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.data.footer = {
|
|
78
|
+
text: options.text,
|
|
79
|
+
icon_url: options.iconURL,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Sets the image of this embed
|
|
86
|
+
* @param url The image URL
|
|
87
|
+
*/
|
|
88
|
+
setImage(url) {
|
|
89
|
+
this.data.image = url === null ? undefined : { url };
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sets the thumbnail of this embed
|
|
94
|
+
* @param url The thumbnail URL
|
|
95
|
+
*/
|
|
96
|
+
setThumbnail(url) {
|
|
97
|
+
this.data.thumbnail = url === null ? undefined : { url };
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Sets the author of this embed
|
|
102
|
+
* @param options The author options
|
|
103
|
+
*/
|
|
104
|
+
setAuthor(options) {
|
|
105
|
+
if (options === null) {
|
|
106
|
+
this.data.author = undefined;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.data.author = {
|
|
110
|
+
name: options.name,
|
|
111
|
+
icon_url: options.iconURL,
|
|
112
|
+
url: options.url,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Adds fields to this embed (max 25 fields per embed)
|
|
119
|
+
* @param fields The fields to add
|
|
120
|
+
*/
|
|
121
|
+
addFields(...fields) {
|
|
122
|
+
if (!this.data.fields)
|
|
123
|
+
this.data.fields = [];
|
|
124
|
+
if (this.data.fields.length + fields.length > 25) {
|
|
125
|
+
throw new RangeError(`Embed fields cannot exceed 25. Current: ${this.data.fields.length}, adding: ${fields.length}`);
|
|
126
|
+
}
|
|
127
|
+
this.data.fields.push(...fields);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sets the fields of this embed (max 25 fields per embed)
|
|
132
|
+
* @param fields The fields to set
|
|
133
|
+
*/
|
|
134
|
+
setFields(...fields) {
|
|
135
|
+
if (fields.length > 25) {
|
|
136
|
+
throw new RangeError(`Embed fields cannot exceed 25. Provided: ${fields.length}`);
|
|
137
|
+
}
|
|
138
|
+
this.data.fields = fields;
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Removes, replaces, or inserts fields (max 25 fields per embed)
|
|
143
|
+
* @param index The index to start at
|
|
144
|
+
* @param deleteCount The number of fields to remove
|
|
145
|
+
* @param fields The fields to insert
|
|
146
|
+
*/
|
|
147
|
+
spliceFields(index, deleteCount, ...fields) {
|
|
148
|
+
if (!this.data.fields)
|
|
149
|
+
this.data.fields = [];
|
|
150
|
+
this.data.fields.splice(index, deleteCount, ...fields);
|
|
151
|
+
if (this.data.fields.length > 25) {
|
|
152
|
+
throw new RangeError(`Embed fields cannot exceed 25. Result would have: ${this.data.fields.length}`);
|
|
153
|
+
}
|
|
154
|
+
return this;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Returns the JSON representation of this embed
|
|
158
|
+
*/
|
|
159
|
+
toJSON() {
|
|
160
|
+
return { ...this.data };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Creates a new embed builder from existing data
|
|
164
|
+
* @param other The embed data to copy
|
|
165
|
+
*/
|
|
166
|
+
static from(other) {
|
|
167
|
+
return new EmbedBuilder(other instanceof EmbedBuilder ? other.data : other);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Color constants (DJS compatibility)
|
|
171
|
+
export const Colors = {
|
|
172
|
+
Default: 0x000000,
|
|
173
|
+
White: 0xffffff,
|
|
174
|
+
Aqua: 0x1abc9c,
|
|
175
|
+
Green: 0x57f287,
|
|
176
|
+
Blue: 0x3498db,
|
|
177
|
+
Yellow: 0xfee75c,
|
|
178
|
+
Purple: 0x9b59b6,
|
|
179
|
+
LuminousVividPink: 0xe91e63,
|
|
180
|
+
Fuchsia: 0xeb459e,
|
|
181
|
+
Gold: 0xf1c40f,
|
|
182
|
+
Orange: 0xe67e22,
|
|
183
|
+
Red: 0xed4245,
|
|
184
|
+
Grey: 0x95a5a6,
|
|
185
|
+
Navy: 0x34495e,
|
|
186
|
+
DarkAqua: 0x11806a,
|
|
187
|
+
DarkGreen: 0x1f8b4c,
|
|
188
|
+
DarkBlue: 0x206694,
|
|
189
|
+
DarkPurple: 0x71368a,
|
|
190
|
+
DarkVividPink: 0xad1457,
|
|
191
|
+
DarkGold: 0xc27c0e,
|
|
192
|
+
DarkOrange: 0xa84300,
|
|
193
|
+
DarkRed: 0x992d22,
|
|
194
|
+
DarkGrey: 0x979c9f,
|
|
195
|
+
DarkerGrey: 0x7f8c8d,
|
|
196
|
+
LightGrey: 0xbcc0c0,
|
|
197
|
+
DarkNavy: 0x2c3e50,
|
|
198
|
+
Blurple: 0x5865f2,
|
|
199
|
+
Greyple: 0x99aab5,
|
|
200
|
+
DarkButNotBlack: 0x2c2f33,
|
|
201
|
+
NotQuiteBlack: 0x23272a,
|
|
202
|
+
};
|
|
203
|
+
export default EmbedBuilder;
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1iZWRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL0VtYmVkQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQTRDSDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ1AsSUFBSSxDQUFXO0lBRS9CLFlBQVksT0FBaUIsRUFBRTtRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQW9CO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLFdBQTBCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxTQUFTLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEdBQWtCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFlBQWtDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxLQUFLLElBQUk7WUFDdEMsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxJQUFJLENB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LEVBQUUsUUFBUTtDQUNmLENBQUM7QUFFWCxlQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW1iZWRCdWlsZGVyIGZvciBjcmVhdGluZyByaWNoIGVtYmVkc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRGaWVsZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgaW5saW5lPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZEF1dGhvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBpY29uX3VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZEZvb3RlciB7XG4gIHRleHQ6IHN0cmluZztcbiAgaWNvbl91cmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRJbWFnZSB7XG4gIHVybDogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSUVtYmVkVGh1bWJuYWlsIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWQge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgdGltZXN0YW1wPzogc3RyaW5nO1xuICBjb2xvcj86IG51bWJlcjtcbiAgZm9vdGVyPzogQVBJRW1iZWRGb290ZXI7XG4gIGltYWdlPzogQVBJRW1iZWRJbWFnZTtcbiAgdGh1bWJuYWlsPzogQVBJRW1iZWRUaHVtYm5haWw7XG4gIGF1dGhvcj86IEFQSUVtYmVkQXV0aG9yO1xuICBmaWVsZHM/OiBBUElFbWJlZEZpZWxkW107XG59XG5cbi8qKlxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBlbWJlZHNcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkQnVpbGRlciB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBBUElFbWJlZDtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBBUElFbWJlZCA9IHt9KSB7XG4gICAgdGhpcy5kYXRhID0geyAuLi5kYXRhIH07XG4gICAgaWYgKGRhdGEuZmllbGRzKSB7XG4gICAgICB0aGlzLmRhdGEuZmllbGRzID0gWy4uLmRhdGEuZmllbGRzXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGl0bGUgb2YgdGhpcyBlbWJlZFxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlXG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS50aXRsZSA9IHRpdGxlID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGVtYmVkXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb25cbiAgICovXG4gIHNldERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIFVSTCBvZiB0aGlzIGVtYmVkXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTFxuICAgKi9cbiAgc2V0VVJMKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS51cmwgPSB1cmwgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGlzIGVtYmVkXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvciBkYXRlXG4gICAqL1xuICBzZXRUaW1lc3RhbXAodGltZXN0YW1wOiBEYXRlIHwgbnVtYmVyIHwgbnVsbCA9IERhdGUubm93KCkpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEudGltZXN0YW1wID0gdGltZXN0YW1wID09PSBudWxsIFxuICAgICAgPyB1bmRlZmluZWQgXG4gICAgICA6IG5ldyBEYXRlKHRpbWVzdGFtcCkudG9JU09TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGlzIGVtYmVkXG4gICAqIEBwYXJhbSBjb2xvciBUaGUgY29sb3IgKG51bWJlciwgaGV4IHN0cmluZywgb3IgUkdCIGFycmF5KVxuICAgKi9cbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlciB8IGAjJHtzdHJpbmd9YCB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IG51bGwpOiB0aGlzIHtcbiAgICBpZiAoY29sb3IgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZGF0YS5jb2xvciA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuZGF0YS5jb2xvciA9IGNvbG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5kYXRhLmNvbG9yID0gcGFyc2VJbnQoY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb2xvcikpIHtcbiAgICAgIHRoaXMuZGF0YS5jb2xvciA9IChjb2xvclswXSA8PCAxNikgKyAoY29sb3JbMV0gPDwgOCkgKyBjb2xvclsyXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZm9vdGVyIG9mIHRoaXMgZW1iZWRcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGZvb3RlciBvcHRpb25zXG4gICAqL1xuICBzZXRGb290ZXIob3B0aW9uczogeyB0ZXh0OiBzdHJpbmc7IGljb25VUkw/OiBzdHJpbmcgfSB8IG51bGwpOiB0aGlzIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5kYXRhLmZvb3RlciA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhLmZvb3RlciA9IHtcbiAgICAgICAgdGV4dDogb3B0aW9ucy50ZXh0LFxuICAgICAgICBpY29uX3VybDogb3B0aW9ucy5pY29uVVJMLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW1hZ2Ugb2YgdGhpcyBlbWJlZFxuICAgKiBAcGFyYW0gdXJsIFRoZSBpbWFnZSBVUkxcbiAgICovXG4gIHNldEltYWdlKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5pbWFnZSA9IHVybCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHsgdXJsIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGh1bWJuYWlsIG9mIHRoaXMgZW1iZWRcbiAgICogQHBhcmFtIHVybCBUaGUgdGh1bWJuYWlsIFVSTFxuICAgKi9cbiAgc2V0VGh1bWJuYWlsKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS50aHVtYm5haWwgPSB1cmwgPT09IG51bGwgPyB1bmRlZmluZWQgOiB7IHVybCB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGF1dGhvciBvZiB0aGlzIGVtYmVkXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBhdXRob3Igb3B0aW9uc1xuICAgKi9cbiAgc2V0QXV0aG9yKG9wdGlvbnM6IHsgbmFtZTogc3RyaW5nOyBpY29uVVJMPzogc3RyaW5nOyB1cmw/OiBzdHJpbmcgfSB8IG51bGwpOiB0aGlzIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5kYXRhLmF1dGhvciA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhLmF1dGhvciA9IHtcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgICBpY29uX3VybDogb3B0aW9ucy5pY29uVVJMLFxuICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBmaWVsZHMgdG8gdGhpcyBlbWJlZCAobWF4IDI1IGZpZWxkcyBwZXIgZW1iZWQpXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGZpZWxkcyB0byBhZGRcbiAgICovXG4gIGFkZEZpZWxkcyguLi5maWVsZHM6IEFQSUVtYmVkRmllbGRbXSk6IHRoaXMge1xuICAgIGlmICghdGhpcy5kYXRhLmZpZWxkcykgdGhpcy5kYXRhLmZpZWxkcyA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGEuZmllbGRzLmxlbmd0aCArIGZpZWxkcy5sZW5ndGggPiAyNSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEVtYmVkIGZpZWxkcyBjYW5ub3QgZXhjZWVkIDI1LiBDdXJyZW50OiAke3RoaXMuZGF0YS5maWVsZHMubGVuZ3RofSwgYWRkaW5nOiAke2ZpZWxkcy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIHRoaXMuZGF0YS5maWVsZHMucHVzaCguLi5maWVsZHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZpZWxkcyBvZiB0aGlzIGVtYmVkIChtYXggMjUgZmllbGRzIHBlciBlbWJlZClcbiAgICogQHBhcmFtIGZpZWxkcyBUaGUgZmllbGRzIHRvIHNldFxuICAgKi9cbiAgc2V0RmllbGRzKC4uLmZpZWxkczogQVBJRW1iZWRGaWVsZFtdKTogdGhpcyB7XG4gICAgaWYgKGZpZWxkcy5sZW5ndGggPiAyNSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEVtYmVkIGZpZWxkcyBjYW5ub3QgZXhjZWVkIDI1LiBQcm92aWRlZDogJHtmaWVsZHMubGVuZ3RofWApO1xuICAgIH1cbiAgICB0aGlzLmRhdGEuZmllbGRzID0gZmllbGRzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMsIHJlcGxhY2VzLCBvciBpbnNlcnRzIGZpZWxkcyAobWF4IDI1IGZpZWxkcyBwZXIgZW1iZWQpXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc3RhcnQgYXRcbiAgICogQHBhcmFtIGRlbGV0ZUNvdW50IFRoZSBudW1iZXIgb2YgZmllbGRzIHRvIHJlbW92ZVxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gaW5zZXJ0XG4gICAqL1xuICBzcGxpY2VGaWVsZHMoaW5kZXg6IG51bWJlciwgZGVsZXRlQ291bnQ6IG51bWJlciwgLi4uZmllbGRzOiBBUElFbWJlZEZpZWxkW10pOiB0aGlzIHtcbiAgICBpZiAoIXRoaXMuZGF0YS5maWVsZHMpIHRoaXMuZGF0YS5maWVsZHMgPSBbXTtcbiAgICB0aGlzLmRhdGEuZmllbGRzLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLmZpZWxkcyk7XG4gICAgaWYgKHRoaXMuZGF0YS5maWVsZHMubGVuZ3RoID4gMjUpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBFbWJlZCBmaWVsZHMgY2Fubm90IGV4Y2VlZCAyNS4gUmVzdWx0IHdvdWxkIGhhdmU6ICR7dGhpcy5kYXRhLmZpZWxkcy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGVtYmVkXG4gICAqL1xuICB0b0pTT04oKTogQVBJRW1iZWQge1xuICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZW1iZWQgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcbiAgICogQHBhcmFtIG90aGVyIFRoZSBlbWJlZCBkYXRhIHRvIGNvcHlcbiAgICovXG4gIHN0YXRpYyBmcm9tKG90aGVyOiBBUElFbWJlZCB8IEVtYmVkQnVpbGRlcik6IEVtYmVkQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBFbWJlZEJ1aWxkZXIob3RoZXIgaW5zdGFuY2VvZiBFbWJlZEJ1aWxkZXIgPyBvdGhlci5kYXRhIDogb3RoZXIpO1xuICB9XG59XG5cbi8vIENvbG9yIGNvbnN0YW50cyAoREpTIGNvbXBhdGliaWxpdHkpXG5leHBvcnQgY29uc3QgQ29sb3JzID0ge1xuICBEZWZhdWx0OiAweDAwMDAwMCxcbiAgV2hpdGU6IDB4ZmZmZmZmLFxuICBBcXVhOiAweDFhYmM5YyxcbiAgR3JlZW46IDB4NTdmMjg3LFxuICBCbHVlOiAweDM0OThkYixcbiAgWWVsbG93OiAweGZlZTc1YyxcbiAgUHVycGxlOiAweDliNTliNixcbiAgTHVtaW5vdXNWaXZpZFBpbms6IDB4ZTkxZTYzLFxuICBGdWNoc2lhOiAweGViNDU5ZSxcbiAgR29sZDogMHhmMWM0MGYsXG4gIE9yYW5nZTogMHhlNjdlMjIsXG4gIFJlZDogMHhlZDQyNDUsXG4gIEdyZXk6IDB4OTVhNWE2LFxuICBOYXZ5OiAweDM0NDk1ZSxcbiAgRGFya0FxdWE6IDB4MTE4MDZhLFxuICBEYXJrR3JlZW46IDB4MWY4YjRjLFxuICBEYXJrQmx1ZTogMHgyMDY2OTQsXG4gIERhcmtQdXJwbGU6IDB4NzEzNjhhLFxuICBEYXJrVml2aWRQaW5rOiAweGFkMTQ1NyxcbiAgRGFya0dvbGQ6IDB4YzI3YzBlLFxuICBEYXJrT3JhbmdlOiAweGE4NDMwMCxcbiAgRGFya1JlZDogMHg5OTJkMjIsXG4gIERhcmtHcmV5OiAweDk3OWM5ZixcbiAgRGFya2VyR3JleTogMHg3ZjhjOGQsXG4gIExpZ2h0R3JleTogMHhiY2MwYzAsXG4gIERhcmtOYXZ5OiAweDJjM2U1MCxcbiAgQmx1cnBsZTogMHg1ODY1ZjIsXG4gIEdyZXlwbGU6IDB4OTlhYWI1LFxuICBEYXJrQnV0Tm90QmxhY2s6IDB4MmMyZjMzLFxuICBOb3RRdWl0ZUJsYWNrOiAweDIzMjcyYSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IEVtYmVkQnVpbGRlcjtcbiJdfQ==
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModalBuilder for creating modals
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Text input styles
|
|
6
|
+
*/
|
|
7
|
+
export var TextInputStyle;
|
|
8
|
+
(function (TextInputStyle) {
|
|
9
|
+
TextInputStyle[TextInputStyle["Short"] = 1] = "Short";
|
|
10
|
+
TextInputStyle[TextInputStyle["Paragraph"] = 2] = "Paragraph";
|
|
11
|
+
})(TextInputStyle || (TextInputStyle = {}));
|
|
12
|
+
/**
|
|
13
|
+
* A builder for creating text inputs
|
|
14
|
+
*/
|
|
15
|
+
export class TextInputBuilder {
|
|
16
|
+
data;
|
|
17
|
+
constructor(data = {}) {
|
|
18
|
+
this.data = { type: 4, ...data };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sets the custom ID of this text input
|
|
22
|
+
* @param customId The custom ID
|
|
23
|
+
*/
|
|
24
|
+
setCustomId(customId) {
|
|
25
|
+
this.data.custom_id = customId;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sets the label of this text input
|
|
30
|
+
* @param label The label
|
|
31
|
+
*/
|
|
32
|
+
setLabel(label) {
|
|
33
|
+
this.data.label = label;
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Sets the style of this text input
|
|
38
|
+
* @param style The style
|
|
39
|
+
*/
|
|
40
|
+
setStyle(style) {
|
|
41
|
+
this.data.style = style;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Sets the minimum length of this text input
|
|
46
|
+
* @param minLength The minimum length
|
|
47
|
+
*/
|
|
48
|
+
setMinLength(minLength) {
|
|
49
|
+
this.data.min_length = minLength;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Sets the maximum length of this text input
|
|
54
|
+
* @param maxLength The maximum length
|
|
55
|
+
*/
|
|
56
|
+
setMaxLength(maxLength) {
|
|
57
|
+
this.data.max_length = maxLength;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Sets whether this text input is required
|
|
62
|
+
* @param required Whether the text input is required
|
|
63
|
+
*/
|
|
64
|
+
setRequired(required = true) {
|
|
65
|
+
this.data.required = required;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Sets the value of this text input
|
|
70
|
+
* @param value The value
|
|
71
|
+
*/
|
|
72
|
+
setValue(value) {
|
|
73
|
+
this.data.value = value;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Sets the placeholder of this text input
|
|
78
|
+
* @param placeholder The placeholder
|
|
79
|
+
*/
|
|
80
|
+
setPlaceholder(placeholder) {
|
|
81
|
+
this.data.placeholder = placeholder;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns the JSON representation of this text input
|
|
86
|
+
*/
|
|
87
|
+
toJSON() {
|
|
88
|
+
return { ...this.data };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* A builder for creating modals
|
|
93
|
+
*/
|
|
94
|
+
export class ModalBuilder {
|
|
95
|
+
data;
|
|
96
|
+
constructor(data = {}) {
|
|
97
|
+
this.data = { ...data };
|
|
98
|
+
if (!this.data.components)
|
|
99
|
+
this.data.components = [];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Sets the custom ID of this modal
|
|
103
|
+
* @param customId The custom ID
|
|
104
|
+
*/
|
|
105
|
+
setCustomId(customId) {
|
|
106
|
+
this.data.custom_id = customId;
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Sets the title of this modal
|
|
111
|
+
* @param title The title
|
|
112
|
+
*/
|
|
113
|
+
setTitle(title) {
|
|
114
|
+
this.data.title = title;
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Adds components (action rows with text inputs) to this modal
|
|
119
|
+
* @param components The components to add
|
|
120
|
+
*/
|
|
121
|
+
addComponents(...components) {
|
|
122
|
+
if (!this.data.components)
|
|
123
|
+
this.data.components = [];
|
|
124
|
+
for (const component of components) {
|
|
125
|
+
if ('toJSON' in component && typeof component.toJSON === 'function') {
|
|
126
|
+
this.data.components.push(component.toJSON());
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
this.data.components.push(component);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Sets the components of this modal
|
|
136
|
+
* @param components The components to set
|
|
137
|
+
*/
|
|
138
|
+
setComponents(...components) {
|
|
139
|
+
this.data.components = [];
|
|
140
|
+
return this.addComponents(...components);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns the JSON representation of this modal
|
|
144
|
+
*/
|
|
145
|
+
toJSON() {
|
|
146
|
+
return { ...this.data };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Creates a new modal builder from existing data
|
|
150
|
+
* @param other The modal data to copy
|
|
151
|
+
*/
|
|
152
|
+
static from(other) {
|
|
153
|
+
return new ModalBuilder(other instanceof ModalBuilder ? other.data : other);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export default ModalBuilder;
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWxCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL01vZGFsQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixxREFBUyxDQUFBO0lBQ1QsNkRBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQXlCRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDWCxJQUFJLENBQWlDO0lBRXJELFlBQVksT0FBdUMsRUFBRTtRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBcUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLElBQUksQ0FB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b2RhbEJ1aWxkZXIgZm9yIGNyZWF0aW5nIG1vZGFsc1xuICovXG5cbi8qKlxuICogVGV4dCBpbnB1dCBzdHlsZXNcbiAqL1xuZXhwb3J0IGVudW0gVGV4dElucHV0U3R5bGUge1xuICBTaG9ydCA9IDEsXG4gIFBhcmFncmFwaCA9IDIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJVGV4dElucHV0Q29tcG9uZW50IHtcbiAgdHlwZTogNDtcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XG4gIHN0eWxlOiBUZXh0SW5wdXRTdHlsZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgbWluX2xlbmd0aD86IG51bWJlcjtcbiAgbWF4X2xlbmd0aD86IG51bWJlcjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICB2YWx1ZT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJTW9kYWxBY3Rpb25Sb3cge1xuICB0eXBlOiAxO1xuICBjb21wb25lbnRzOiBBUElUZXh0SW5wdXRDb21wb25lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBUElNb2RhbCB7XG4gIGN1c3RvbV9pZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBjb21wb25lbnRzOiBBUElNb2RhbEFjdGlvblJvd1tdO1xufVxuXG4vKipcbiAqIEEgYnVpbGRlciBmb3IgY3JlYXRpbmcgdGV4dCBpbnB1dHNcbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRJbnB1dEJ1aWxkZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogUGFydGlhbDxBUElUZXh0SW5wdXRDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJVGV4dElucHV0Q29tcG9uZW50PiA9IHt9KSB7XG4gICAgdGhpcy5kYXRhID0geyB0eXBlOiA0LCAuLi5kYXRhIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY3VzdG9tIElEIG9mIHRoaXMgdGV4dCBpbnB1dFxuICAgKiBAcGFyYW0gY3VzdG9tSWQgVGhlIGN1c3RvbSBJRFxuICAgKi9cbiAgc2V0Q3VzdG9tSWQoY3VzdG9tSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5jdXN0b21faWQgPSBjdXN0b21JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYWJlbCBvZiB0aGlzIHRleHQgaW5wdXRcbiAgICogQHBhcmFtIGxhYmVsIFRoZSBsYWJlbFxuICAgKi9cbiAgc2V0TGFiZWwobGFiZWw6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5sYWJlbCA9IGxhYmVsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0eWxlIG9mIHRoaXMgdGV4dCBpbnB1dFxuICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlXG4gICAqL1xuICBzZXRTdHlsZShzdHlsZTogVGV4dElucHV0U3R5bGUpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEuc3R5bGUgPSBzdHlsZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiB0aGlzIHRleHQgaW5wdXRcbiAgICogQHBhcmFtIG1pbkxlbmd0aCBUaGUgbWluaW11bSBsZW5ndGhcbiAgICovXG4gIHNldE1pbkxlbmd0aChtaW5MZW5ndGg6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5taW5fbGVuZ3RoID0gbWluTGVuZ3RoO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoaXMgdGV4dCBpbnB1dFxuICAgKiBAcGFyYW0gbWF4TGVuZ3RoIFRoZSBtYXhpbXVtIGxlbmd0aFxuICAgKi9cbiAgc2V0TWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLm1heF9sZW5ndGggPSBtYXhMZW5ndGg7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoaXMgdGV4dCBpbnB1dCBpcyByZXF1aXJlZFxuICAgKiBAcGFyYW0gcmVxdWlyZWQgV2hldGhlciB0aGUgdGV4dCBpbnB1dCBpcyByZXF1aXJlZFxuICAgKi9cbiAgc2V0UmVxdWlyZWQocmVxdWlyZWQgPSB0cnVlKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLnJlcXVpcmVkID0gcmVxdWlyZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhpcyB0ZXh0IGlucHV0XG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcbiAgICovXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBvZiB0aGlzIHRleHQgaW5wdXRcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlclxuICAgKi9cbiAgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0ZXh0IGlucHV0XG4gICAqL1xuICB0b0pTT04oKTogQVBJVGV4dElucHV0Q29tcG9uZW50IHtcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElUZXh0SW5wdXRDb21wb25lbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIG1vZGFsc1xuICovXG5leHBvcnQgY2xhc3MgTW9kYWxCdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFBhcnRpYWw8QVBJTW9kYWw+O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJTW9kYWw+ID0ge30pIHtcbiAgICB0aGlzLmRhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICBpZiAoIXRoaXMuZGF0YS5jb21wb25lbnRzKSB0aGlzLmRhdGEuY29tcG9uZW50cyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIG1vZGFsXG4gICAqIEBwYXJhbSBjdXN0b21JZCBUaGUgY3VzdG9tIElEXG4gICAqL1xuICBzZXRDdXN0b21JZChjdXN0b21JZDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLmN1c3RvbV9pZCA9IGN1c3RvbUlkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRpdGxlIG9mIHRoaXMgbW9kYWxcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZVxuICAgKi9cbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS50aXRsZSA9IHRpdGxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY29tcG9uZW50cyAoYWN0aW9uIHJvd3Mgd2l0aCB0ZXh0IGlucHV0cykgdG8gdGhpcyBtb2RhbFxuICAgKiBAcGFyYW0gY29tcG9uZW50cyBUaGUgY29tcG9uZW50cyB0byBhZGRcbiAgICovXG4gIGFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKEFQSU1vZGFsQWN0aW9uUm93IHwgeyB0b0pTT04oKTogQVBJTW9kYWxBY3Rpb25Sb3cgfSlbXSk6IHRoaXMge1xuICAgIGlmICghdGhpcy5kYXRhLmNvbXBvbmVudHMpIHRoaXMuZGF0YS5jb21wb25lbnRzID0gW107XG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cykge1xuICAgICAgaWYgKCd0b0pTT04nIGluIGNvbXBvbmVudCAmJiB0eXBlb2YgY29tcG9uZW50LnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLmRhdGEuY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudC50b0pTT04oKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGEuY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCBhcyBBUElNb2RhbEFjdGlvblJvdyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudHMgb2YgdGhpcyBtb2RhbFxuICAgKiBAcGFyYW0gY29tcG9uZW50cyBUaGUgY29tcG9uZW50cyB0byBzZXRcbiAgICovXG4gIHNldENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKEFQSU1vZGFsQWN0aW9uUm93IHwgeyB0b0pTT04oKTogQVBJTW9kYWxBY3Rpb25Sb3cgfSlbXSk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5jb21wb25lbnRzID0gW107XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50cyguLi5jb21wb25lbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbW9kYWxcbiAgICovXG4gIHRvSlNPTigpOiBBUElNb2RhbCB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhIH0gYXMgQVBJTW9kYWw7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBtb2RhbCBidWlsZGVyIGZyb20gZXhpc3RpbmcgZGF0YVxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIG1vZGFsIGRhdGEgdG8gY29weVxuICAgKi9cbiAgc3RhdGljIGZyb20ob3RoZXI6IFBhcnRpYWw8QVBJTW9kYWw+IHwgTW9kYWxCdWlsZGVyKTogTW9kYWxCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IE1vZGFsQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIE1vZGFsQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kYWxCdWlsZGVyO1xuIl19
|