{"version":3,"sources":["../../../src/activities/message/message-reaction.ts"],"names":[],"mappings":";;AAeO,MAAM,gCACH,QAAA,CAEV;AAAA;AAAA;AAAA;AAAA,EAIE,cAAA;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAA;AAAA,EAEA,WAAA,CAAY,KAAA,GAAyD,EAAC,EAAG;AACvE,IAAA,KAAA,CAAM;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,MAAA,CAAO,MAAA,CAAO,MAAM,KAAK,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,KAAK,QAAA,EAAoC;AAC9C,IAAA,OAAO,IAAI,wBAAwB,QAAQ,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA,GAAwC;AACtC,IAAA,OAAO,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,IAAI,CAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,CAAM,OAAA,GAA2D,EAAC,EAAG;AACnE,IAAA,OAAO,IAAI,uBAAA,CAAwB;AAAA,MACjC,GAAG,KAAK,WAAA,EAAY;AAAA,MACpB,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAA,EAA2B;AACrC,IAAA,IAAI,CAAC,KAAK,cAAA,EAAgB;AACxB,MAAA,IAAA,CAAK,iBAAiB,EAAC;AAAA,IACzB;AAEA,IAAA,IAAA,CAAK,cAAA,CAAe,KAAK,QAAQ,CAAA;AACjC,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,QAAA,EAA2B;AACxC,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,IAAA,CAAK,mBAAmB,EAAC;AAAA,IAC3B;AAEA,IAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,MAAA,MAAM,CAAA,GAAI,KAAK,cAAA,CAAe,SAAA;AAAA,QAC5B,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,QAAA,CAAS,QAAQ,CAAA,CAAE,IAAA,EAAM,EAAA,KAAO,QAAA,CAAS,IAAA,EAAM;AAAA,OACnE;AAEA,MAAA,IAAI,IAAI,EAAA,EAAI;AACV,QAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,CAAA,EAAG,CAAC,CAAA;AAAA,MACjC;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,gBAAA,CAAiB,KAAK,QAAQ,CAAA;AACnC,IAAA,OAAO,IAAA;AAAA,EACT;AACF","file":"message-reaction.mjs","sourcesContent":["import { MessageReaction } from '../../models';\nimport { IActivity, Activity } from '../activity';\n\nexport interface IMessageReactionActivity extends IActivity<'messageReaction'> {\n  /**\n   * The collection of reactions added to the conversation.\n   */\n  reactionsAdded?: MessageReaction[];\n\n  /**\n   * The collection of reactions removed from the conversation.\n   */\n  reactionsRemoved?: MessageReaction[];\n}\n\nexport class MessageReactionActivity\n  extends Activity<'messageReaction'>\n  implements IMessageReactionActivity\n{\n  /**\n   * The collection of reactions added to the conversation.\n   */\n  reactionsAdded?: MessageReaction[];\n\n  /**\n   * The collection of reactions removed from the conversation.\n   */\n  reactionsRemoved?: MessageReaction[];\n\n  constructor(value: Omit<Partial<IMessageReactionActivity>, 'type'> = {}) {\n    super({\n      ...value,\n      type: 'messageReaction',\n    });\n\n    Object.assign(this, value);\n  }\n\n  /**\n   * initialize from interface\n   */\n  static from(activity: IMessageReactionActivity) {\n    return new MessageReactionActivity(activity);\n  }\n\n  /**\n   * convert to interface\n   */\n  toInterface(): IMessageReactionActivity {\n    return Object.assign({}, this);\n  }\n\n  /**\n   * copy to a new instance\n   */\n  clone(options: Omit<Partial<IMessageReactionActivity>, 'type'> = {}) {\n    return new MessageReactionActivity({\n      ...this.toInterface(),\n      ...options,\n    });\n  }\n\n  /**\n   * Add a message reaction.\n   * @deprecated Use api.conversations.addReaction instead.\n   */\n  addReaction(reaction: MessageReaction) {\n    if (!this.reactionsAdded) {\n      this.reactionsAdded = [];\n    }\n\n    this.reactionsAdded.push(reaction);\n    return this;\n  }\n\n  /**\n   * Remove a message reaction.\n   * @deprecated Use api.conversations.deleteReaction instead.\n   */\n  removeReaction(reaction: MessageReaction) {\n    if (!this.reactionsRemoved) {\n      this.reactionsRemoved = [];\n    }\n\n    if (this.reactionsAdded) {\n      const i = this.reactionsAdded.findIndex(\n        (r) => r.type === reaction.type && r.user?.id === reaction.user?.id\n      );\n\n      if (i > -1) {\n        this.reactionsAdded.splice(i, 1);\n      }\n    }\n\n    this.reactionsRemoved.push(reaction);\n    return this;\n  }\n}\n"]}