{"version":3,"file":"js/decidim_comments-e2c8685fbe72db906c3e.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/bundler/gems/decidim-f58e736411fc/decidim-core/app/packs/src/decidim/change_report_form_behavior.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-f58e736411fc/decidim-comments/app/packs/src/decidim/comments/comments.component.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-f58e736411fc/decidim-comments/app/packs/src/decidim/comments/comments.js"],"sourcesContent":["const changeLabel = function(input) {\n  let submit = input.closest(\"form\").querySelector(\"button[type=submit]\");\n  if (submit.querySelector(\"span\") !== null) {\n    submit = submit.querySelector(\"span\");\n  }\n  if (input.checked === true) {\n    submit.innerHTML = input.dataset.labelAction;\n  } else {\n    submit.innerHTML = input.dataset.labelReport;\n  }\n};\nexport default function changeReportFormBehavior(container) {\n  container.querySelectorAll(\"[data-hide=true]\").forEach((checkbox) => {\n    checkbox.addEventListener(\"change\", (event) => {\n      changeLabel(event.target);\n    });\n  });\n  container.querySelectorAll(\"[data-block=true]\").forEach((checkbox) => {\n    checkbox.addEventListener(\"change\", (event) => {\n      changeLabel(event.target);\n      let blockAndHide = event.target.closest(\"form\").querySelector(\"#block_and_hide\");\n      blockAndHide.classList.toggle(\"invisible\");\n    });\n  });\n}\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nconst $ = window.$;\nimport changeReportFormBehavior from \"src/decidim/change_report_form_behavior\";\nexport default class CommentsComponent {\n  constructor($element, config) {\n    this.$element = $element;\n    this.commentableGid = config.commentableGid;\n    this.commentsUrl = config.commentsUrl;\n    this.rootDepth = config.rootDepth;\n    this.order = config.order;\n    this.lastCommentId = config.lastCommentId;\n    this.pollingInterval = config.pollingInterval || 15e3;\n    this.singleComment = config.singleComment;\n    this.toggleTranslations = config.toggleTranslations;\n    this.id = this.$element.attr(\"id\") || this._getUID();\n    this.mounted = false;\n  }\n  /**\n   * Handles the logic for mounting the component\n   * @public\n   * @returns {Void} - Returns nothing\n   */\n  mountComponent() {\n    if (this.$element.length > 0 && !this.mounted) {\n      this.mounted = true;\n      this._initializeComments(this.$element);\n      if (!this.singleComment) {\n        $(\".add-comment textarea\", this.$element).prop(\"disabled\", true);\n        this._fetchComments(() => {\n          $(\".add-comment textarea\", this.$element).prop(\"disabled\", false);\n        });\n      }\n    }\n  }\n  /**\n   * Handles the logic for unmounting the component\n   * @public\n   * @returns {Void} - Returns nothing\n   */\n  unmountComponent() {\n    if (this.mounted) {\n      this.mounted = false;\n      this._stopPolling();\n      $(\".add-comment [data-opinion-toggle] button\", this.$element).off(\"click.decidim-comments\");\n      $(\".add-comment textarea\", this.$element).off(\"input.decidim-comments\");\n      $(\".add-comment form\", this.$element).off(\"submit.decidim-comments\");\n      $(\".add-comment textarea\", this.$element).each((_i, el) => el.removeEventListener(\"emoji.added\", this._onTextInput));\n    }\n  }\n  /**\n   * Adds a new thread to the comments section.\n   * @public\n   * @param {String} threadHtml - The HTML content for the thread.\n   * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n   *   herself was the author of the new thread. Defaults to false.\n   * @returns {Void} - Returns nothing\n   */\n  addThread(threadHtml, fromCurrentUser = false) {\n    const $parent = $(\".comments:first\", this.$element);\n    const $comment = $(threadHtml);\n    const $threads = $(\".comment-threads\", this.$element);\n    this._addComment($threads, $comment);\n    this._finalizeCommentCreation($parent, fromCurrentUser);\n  }\n  /**\n   * Adds a new reply to an existing comment.\n   * @public\n   * @param {Number} commentId - The ID of the comment for which to add the\n   *   reply to.\n   * @param {String} replyHtml - The HTML content for the reply.\n   * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n   *   herself was the author of the new reply. Defaults to false.\n   * @returns {Void} - Returns nothing\n   */\n  addReply(commentId, replyHtml, fromCurrentUser = false) {\n    const $parent = $(`#comment_${commentId}`);\n    const $comment = $(replyHtml);\n    const $replies = $(`#comment-${commentId}-replies`);\n    this._addComment($replies, $comment);\n    $replies.addClass(\"comment-reply\");\n    this._finalizeCommentCreation($parent, fromCurrentUser);\n  }\n  /**\n   * Generates a unique identifier for the form.\n   * @private\n   * @returns {String} - Returns a unique identifier\n   */\n  _getUID() {\n    return `comments-${(/* @__PURE__ */ new Date()).setUTCMilliseconds()}-${Math.floor(Math.random() * 1e7)}`;\n  }\n  /**\n   * Initializes the comments for the given parent element.\n   * @private\n   * @param {jQuery} $parent The parent element to initialize.\n   * @returns {Void} - Returns nothing\n   */\n  _initializeComments($parent) {\n    $(\".add-comment\", $parent).each((_i, el) => {\n      const $add = $(el);\n      const $form = $(\"form\", $add);\n      const $opinionButtons = $(\"[data-opinion-toggle] button\", $add);\n      const $text = $(\"textarea\", $form);\n      $opinionButtons.on(\"click.decidim-comments\", this._onToggleOpinion);\n      $text.on(\"input.decidim-comments\", this._onTextInput);\n      $(document).trigger(\"attach-mentions-element\", [$text.get(0)]);\n      $form.on(\"submit.decidim-comments\", () => {\n        const $submit = $(\"button[type='submit']\", $form);\n        $submit.attr(\"disabled\", \"disabled\");\n        this._stopPolling();\n      });\n      document.querySelectorAll(\".new_report\").forEach((container) => changeReportFormBehavior(container));\n      if ($text.length && $text.get(0) !== null) {\n        $text.get(0).addEventListener(\"emoji.added\", this._onTextInput);\n      }\n    });\n  }\n  /**\n   * Adds the given comment element to the given target element and\n   * initializes it.\n   * @private\n   * @param {jQuery} $target - The target element to add the comment to.\n   * @param {jQuery} $container - The comment container element to add.\n   * @returns {Void} - Returns nothing\n   */\n  _addComment($target, $container) {\n    let $comment = $(\".comment\", $container);\n    if ($comment.length < 1) {\n      $comment = $container;\n    }\n    this.lastCommentId = parseInt($comment.data(\"comment-id\"), 10);\n    $target.append($container);\n    this._initializeComments($container);\n    document.dispatchEvent(new CustomEvent(\"comments:loaded\", { detail: { commentsIds: [this.lastCommentId] } }));\n  }\n  /**\n   * Finalizes the new comment creation after the comment adding finishes\n   * successfully.\n   * @private\n   * @param {jQuery} $parent - The parent comment element to finalize.\n   * @param {Boolean} fromCurrentUser - A boolean indicating whether the user\n   *   herself was the author of the new comment.\n   * @returns {Void} - Returns nothing\n   */\n  _finalizeCommentCreation($parent, fromCurrentUser) {\n    if (fromCurrentUser) {\n      const $add = $(\".add-comment\", $parent);\n      $(\"textarea\", $add).each((_i, text) => {\n        const $text = $(text);\n        $text.val(\"\");\n        const characterCounter = $text.data(\"remaining-characters-counter\");\n        if (characterCounter) {\n          characterCounter.handleInput();\n          characterCounter.updateStatus();\n        }\n      });\n    }\n    this._pollComments();\n  }\n  /**\n   * Sets a timeout to poll new comments.\n   * @private\n   * @returns {Void} - Returns nothing\n   */\n  _pollComments() {\n    this._stopPolling();\n    this.pollTimeout = setTimeout(() => {\n      this._fetchComments();\n    }, this.pollingInterval);\n  }\n  /**\n   * Sends an ajax request based on current\n   * params to get comments for the component\n   * @private\n   * @param {Function} successCallback A callback that is called after a\n   *   successful fetch\n   * @returns {Void} - Returns nothing\n   */\n  _fetchComments(successCallback = null) {\n    Rails.ajax({\n      url: this.commentsUrl,\n      type: \"GET\",\n      data: new URLSearchParams(__spreadValues(__spreadValues({\n        \"commentable_gid\": this.commentableGid,\n        \"root_depth\": this.rootDepth,\n        \"order\": this.order\n      }, this.toggleTranslations && { \"toggle_translations\": this.toggleTranslations }), this.lastCommentId && { \"after\": this.lastCommentId })),\n      success: () => {\n        if (successCallback) {\n          successCallback();\n        }\n        this._pollComments();\n      }\n    });\n  }\n  /**\n   * Stops polling for new comments.\n   * @private\n   * @returns {Void} - Returns nothing\n   */\n  _stopPolling() {\n    if (this.pollTimeout) {\n      clearTimeout(this.pollTimeout);\n    }\n  }\n  /**\n   * Sets the loading comments element visible in the view.\n   * @private\n   * @returns {Void} - Returns nothing\n   */\n  _setLoading() {\n    const $container = $(\"> #comments\", this.$element);\n    $(\"> .comments\", $container).addClass(\"hidden\");\n    $(\"> .loading-comments\", $container).removeClass(\"hidden\");\n  }\n  /**\n   * Event listener for the ordering links.\n   * @private\n   * @returns {Void} - Returns nothing\n   */\n  _onInitOrder() {\n    this._stopPolling();\n    this._setLoading();\n  }\n  /**\n   * Event listener for the opinion toggle buttons.\n   * @private\n   * @param {Event} ev - The event object.\n   * @returns {Void} - Returns nothing\n   */\n  _onToggleOpinion(ev) {\n    let $btn = $(ev.target);\n    if (!$btn.is(\"button\")) {\n      $btn = $btn.parents(\"button\");\n    }\n    const $add = $btn.closest(\".add-comment\");\n    const $form = $(\"form\", $add);\n    const $opinionButtons = $(\"[data-opinion-toggle] button\", $add);\n    const $selectedState = $(\"[data-opinion-toggle] .selected-state\", $add);\n    const $alignment = $(\".alignment-input\", $form);\n    $opinionButtons.removeClass(\"is-active\").attr(\"aria-pressed\", \"false\");\n    $btn.addClass(\"is-active\").attr(\"aria-pressed\", \"true\");\n    if ($btn.data(\"toggleOk\")) {\n      $alignment.val(1);\n    } else if ($btn.data(\"toggleMeh\")) {\n      $alignment.val(0);\n    } else if ($btn.data(\"toggleKo\")) {\n      $alignment.val(-1);\n    }\n    $selectedState.text($btn.data(\"selected-label\"));\n  }\n  /**\n   * Event listener for the comment field text input.\n   * @private\n   * @param {Event} ev - The event object.\n   * @returns {Void} - Returns nothing\n   */\n  _onTextInput(ev) {\n    const $text = $(ev.target);\n    const $add = $text.closest(\".add-comment\");\n    const $form = $(\"form\", $add);\n    const $submit = $(\"button[type='submit']\", $form);\n    if ($text.val().length > 0) {\n      $submit.removeAttr(\"disabled\");\n    } else {\n      $submit.attr(\"disabled\", \"disabled\");\n    }\n  }\n}\n","import CommentsComponent from \"src/decidim/comments/comments.component\";\nwindow.Decidim.CommentsComponent = CommentsComponent;\nconst commentsInitializer = () => {\n  $(\"[data-decidim-comments]\").each((_i, el) => {\n    const $el = $(el);\n    let comments = $(el).data(\"comments\");\n    if (!comments) {\n      comments = new CommentsComponent($el, $el.data(\"decidim-comments\"));\n    }\n    comments.mountComponent();\n    $(el).data(\"comments\", comments);\n  });\n};\n$(() => commentsInitializer());\n"],"names":["changeLabel","input","submit","changeReportFormBehavior","container","checkbox","event","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","CommentsComponent","$element","config","_i","el","threadHtml","fromCurrentUser","$parent","$comment","$threads","commentId","replyHtml","$replies","$add","$form","$opinionButtons","$text","$target","$container","text","characterCounter","successCallback","ev","$btn","$selectedState","$alignment","$submit","commentsInitializer","$el","comments"],"sourceRoot":""}