{"version":3,"file":"CommentMoreActions-BAroeo8E.mjs","names":[],"sources":["../src/components/display/comments/item/CommentMoreActions.vue","../src/components/display/comments/item/CommentMoreActions.vue"],"sourcesContent":["<template>\n  <div v-if=\"isAtLeastOneMoreAction\">\n    <ReportAbuseModal\n      v-if=\"isReportAbuse\"\n      v-model:comment=\"commentForVmodel\"\n      @close=\"isReportAbuse = false\"\n    />\n    <EditCommentModal\n      v-if=\"isEdit\"\n      v-model:comment=\"commentForVmodel\"\n      :edit-right=\"editRight\"\n      @close=\"isEdit = false\"\n    />\n    <MessageModal\n      v-if=\"confirmModal\"\n      :validatetext=\"validateText\"\n      :canceltext=\"canceltext\"\n      :closable=\"false\"\n      :title=\"modalTitle\"\n      :message=\"modalMessage\"\n      :focus=\"true\"\n      @cancel=\"confirmModal = false\"\n      @validate=\"actionComment\"\n      @close=\"confirmModal = false\"\n    />\n    <button\n      :id=\"'comment-dropdown' + comment.commentId\"\n      class=\"btn share-btn\"\n      :title=\"t('See more')\"\n      :data-selenium=\"\n        'comment-dropdown-' + seleniumFormat(comment.poster.userName)\n      \"\n    >\n      <DotsVerticalIcon />\n    </button>\n    <ClassicPopover\n      :target=\"'comment-dropdown' + comment.commentId\"\n      :only-click=\"true\"\n      :left-pos=\"true\"\n    >\n      <template v-for=\"action in moreActions\" :key=\"action\">\n        <button\n          v-if=\"action.condition\"\n          class=\"octopus-dropdown-item c-hand\"\n          @mousedown=\"action.actionClick\"\n          @keydown.enter=\"action.actionClick\"\n        >\n          {{ action.title }}\n        </button>\n      </template>\n    </ClassicPopover>\n    <!--\n      CommentMoreActionsAdmin is not defined in the SDK: it is resolved at\n      runtime from the consuming app's globally registered components\n      (app.component()), and renders nothing if the app hasn't registered one\n      under that name.\n    -->\n    <CommentMoreActionsAdmin\n      v-if=\"editRight\"\n      v-model:comment=\"commentForVmodel\"\n      v-model:actions-admin=\"actionsAdmin\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport DotsVerticalIcon from \"vue-material-design-icons/DotsVertical.vue\";\nimport {useSelenium} from \"../../../composable/useSelenium\";\nimport classicApi from \"../../../../api/classicApi\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst ClassicPopover = defineAsyncComponent(\n  () => import(\"../../../misc/ClassicPopover.vue\"),\n);\nconst ReportAbuseModal = defineAsyncComponent(\n  () => import(\"../modal/ReportAbuseModal.vue\"),\n);\nconst EditCommentModal = defineAsyncComponent(\n  () => import(\"../modal/EditCommentModal.vue\"),\n);\nconst MessageModal = defineAsyncComponent(\n  () => import(\"../../../misc/modal/MessageModal.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  comment: { default: () => ({}), type: Object as () => CommentPodcast },\n  podcast: { default: undefined, type: Object as () => Podcast },\n  config: { default: undefined, type: Object as () => CommentsConfig },\n  editRight: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:comment\", \"deleteComment\"]);\n\n//Data \nconst isEdit = ref(false);\nconst isReportAbuse = ref(false);\nconst actionName: Ref<string | undefined> = ref(undefined);\nconst actionsAdmin: Ref<string | undefined> = ref(undefined);\nconst confirmModal = ref(false);\nconst actionInProgress = ref(false);\nconst isError = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { seleniumFormat } = useSelenium();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst commentForVmodel = computed({\n  get(): CommentPodcast {\n    return props.comment;\n  },\n  set(value: CommentPodcast) {\n    emit(\"update:comment\", value);\n  },\n});\nconst isMyComment = computed(() => {\n  const uuid = authStore.authProfile?.userId ?? commentStore.commentUser?.uuidHash;\n  return uuid === props.comment?.poster.uuid;\n});\nconst isAtLeastOneMoreAction = computed(() => {\n  return moreActions.value.some((el) => {\n    return el.condition;\n  });\n});\nconst moreActions = computed(() => {\n  return [\n    {\n      title: t(\"Report abuse\"),\n      actionClick: () => {\n        isReportAbuse.value = true;\n      },\n      condition:\n        commentStore.getCanReportAbuse(\n          props.config,\n          undefined !== authStore.authOrgaId,\n        ) && !isMyComment.value,\n    },\n    {\n      title: t(\"Managing reported abuses\"),\n      actionClick: () => {\n        actionsAdmin.value = \"abuse\";\n      },\n      condition: props.editRight && props.comment.abuse,\n    },\n    {\n      title: t(\"Edit comment\"),\n      actionClick: () => {\n        isEdit.value = true;\n      },\n      condition: props.editRight || isMyComment.value,\n    },\n    {\n      title: t(\"Comment information\"),\n      actionClick: () => {\n        actionsAdmin.value = \"info\";\n      },\n      condition: props.editRight && !props.podcast,\n    },\n    {\n      title: t(\"Validate\"),\n      actionClick: () => {\n        actionName.value = \"validate\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition:\n        props.editRight &&\n        (\"PENDING\" === props.comment.state ||\n          \"NOT_VALID\" === props.comment.state),\n    },\n    {\n      title: t(\"Invalidate\"),\n      actionClick: () => {\n        actionName.value = \"invalidate\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition:\n        props.editRight &&\n        (\"PENDING\" === props.comment.state ||\n          \"VALIDATED\" === props.comment.state),\n    },\n    {\n      title: t(\"Delete comment\"),\n      actionClick: () => {\n        actionName.value = \"delete\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition: props.editRight || isMyComment.value,\n    },\n  ];\n});\nconst validateText = computed(() => {\n  if (isError.value) {\n    return t(\"Close\");\n  }\n  return actionInProgress.value ? undefined : t(\"Yes\");\n});\nconst canceltext = computed(() => isError.value ? undefined : t(\"No\"));\nconst modalMessage = computed(() => {\n  if (actionInProgress.value) {\n    return t(\"Saving\");\n  }\n  if (isError.value) {\n    return t(\"An error occurred\");\n  }\n  const name = { name: props.comment.poster.userName };\n  switch (actionName.value) {\n    case \"delete\":\n      return t(\"Confirm comment deletion text\", name);\n    case \"validate\":\n      return t(\"Confirm comment valid text\", name);\n    case \"invalidate\":\n      return t(\"Confirm comment invalid text\", name);\n    default:\n      return \"\";\n  }\n});\nconst modalTitle = computed(() => {\n  if (\"delete\" === actionName.value) {\n    return t(\"Delete comment\");\n  }\n  return t(\"Update comment\");\n});  \n \n\n//Methods\nasync function actionComment() {\n  if (!props.comment) {\n    return;\n  }\n  actionInProgress.value = true;\n  isError.value = false;\n  try {\n    if (\"delete\" === actionName.value) {\n      await classicApi.deleteData({\n        api: 2,\n        path: \"comment/\" + props.comment.commentId,\n        parameters: props.editRight\n          ? undefined\n          : { uuid: commentStore.commentUser?.uuid },\n        isNotAuth: !props.editRight,\n      });\n      emit(\"deleteComment\");\n    } else {\n      const commentUpdated = await classicApi.putData({\n        api: 2,\n        path: \"comment/\",\n        dataToSend: {\n          commentId: props.comment.commentId,\n          content: props.comment.content,\n          name: props.comment.poster.userName,\n          state: \"validate\" === actionName.value ? \"VALIDATED\" : \"NOT_VALID\",\n        },\n      });\n      emit(\"update:comment\", commentUpdated);\n    }\n    confirmModal.value = false;\n  } catch {\n    isError.value = true;\n  }\n  actionInProgress.value = false;\n}\n</script>\n","<template>\n  <div v-if=\"isAtLeastOneMoreAction\">\n    <ReportAbuseModal\n      v-if=\"isReportAbuse\"\n      v-model:comment=\"commentForVmodel\"\n      @close=\"isReportAbuse = false\"\n    />\n    <EditCommentModal\n      v-if=\"isEdit\"\n      v-model:comment=\"commentForVmodel\"\n      :edit-right=\"editRight\"\n      @close=\"isEdit = false\"\n    />\n    <MessageModal\n      v-if=\"confirmModal\"\n      :validatetext=\"validateText\"\n      :canceltext=\"canceltext\"\n      :closable=\"false\"\n      :title=\"modalTitle\"\n      :message=\"modalMessage\"\n      :focus=\"true\"\n      @cancel=\"confirmModal = false\"\n      @validate=\"actionComment\"\n      @close=\"confirmModal = false\"\n    />\n    <button\n      :id=\"'comment-dropdown' + comment.commentId\"\n      class=\"btn share-btn\"\n      :title=\"t('See more')\"\n      :data-selenium=\"\n        'comment-dropdown-' + seleniumFormat(comment.poster.userName)\n      \"\n    >\n      <DotsVerticalIcon />\n    </button>\n    <ClassicPopover\n      :target=\"'comment-dropdown' + comment.commentId\"\n      :only-click=\"true\"\n      :left-pos=\"true\"\n    >\n      <template v-for=\"action in moreActions\" :key=\"action\">\n        <button\n          v-if=\"action.condition\"\n          class=\"octopus-dropdown-item c-hand\"\n          @mousedown=\"action.actionClick\"\n          @keydown.enter=\"action.actionClick\"\n        >\n          {{ action.title }}\n        </button>\n      </template>\n    </ClassicPopover>\n    <!--\n      CommentMoreActionsAdmin is not defined in the SDK: it is resolved at\n      runtime from the consuming app's globally registered components\n      (app.component()), and renders nothing if the app hasn't registered one\n      under that name.\n    -->\n    <CommentMoreActionsAdmin\n      v-if=\"editRight\"\n      v-model:comment=\"commentForVmodel\"\n      v-model:actions-admin=\"actionsAdmin\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport DotsVerticalIcon from \"vue-material-design-icons/DotsVertical.vue\";\nimport {useSelenium} from \"../../../composable/useSelenium\";\nimport classicApi from \"../../../../api/classicApi\";\nimport { useAuthStore } from \"../../../../stores/AuthStore\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { Podcast } from \"@/stores/class/general/podcast\";\nimport { useCommentStore } from \"../../../../stores/CommentStore\";\nimport { defineAsyncComponent, ref, Ref, computed } from \"vue\";\nimport { CommentsConfig } from \"@/stores/class/config/commentsConfig\";\nimport { useI18n } from \"vue-i18n\";\nconst ClassicPopover = defineAsyncComponent(\n  () => import(\"../../../misc/ClassicPopover.vue\"),\n);\nconst ReportAbuseModal = defineAsyncComponent(\n  () => import(\"../modal/ReportAbuseModal.vue\"),\n);\nconst EditCommentModal = defineAsyncComponent(\n  () => import(\"../modal/EditCommentModal.vue\"),\n);\nconst MessageModal = defineAsyncComponent(\n  () => import(\"../../../misc/modal/MessageModal.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  comment: { default: () => ({}), type: Object as () => CommentPodcast },\n  podcast: { default: undefined, type: Object as () => Podcast },\n  config: { default: undefined, type: Object as () => CommentsConfig },\n  editRight: { default: false, type: Boolean },\n})\n\n//Emits\nconst emit = defineEmits([\"update:comment\", \"deleteComment\"]);\n\n//Data \nconst isEdit = ref(false);\nconst isReportAbuse = ref(false);\nconst actionName: Ref<string | undefined> = ref(undefined);\nconst actionsAdmin: Ref<string | undefined> = ref(undefined);\nconst confirmModal = ref(false);\nconst actionInProgress = ref(false);\nconst isError = ref(false);\n\n//Composables\nconst { t } = useI18n();\nconst { seleniumFormat } = useSelenium();\nconst authStore = useAuthStore();\nconst commentStore = useCommentStore();\n\n//Computed\nconst commentForVmodel = computed({\n  get(): CommentPodcast {\n    return props.comment;\n  },\n  set(value: CommentPodcast) {\n    emit(\"update:comment\", value);\n  },\n});\nconst isMyComment = computed(() => {\n  const uuid = authStore.authProfile?.userId ?? commentStore.commentUser?.uuidHash;\n  return uuid === props.comment?.poster.uuid;\n});\nconst isAtLeastOneMoreAction = computed(() => {\n  return moreActions.value.some((el) => {\n    return el.condition;\n  });\n});\nconst moreActions = computed(() => {\n  return [\n    {\n      title: t(\"Report abuse\"),\n      actionClick: () => {\n        isReportAbuse.value = true;\n      },\n      condition:\n        commentStore.getCanReportAbuse(\n          props.config,\n          undefined !== authStore.authOrgaId,\n        ) && !isMyComment.value,\n    },\n    {\n      title: t(\"Managing reported abuses\"),\n      actionClick: () => {\n        actionsAdmin.value = \"abuse\";\n      },\n      condition: props.editRight && props.comment.abuse,\n    },\n    {\n      title: t(\"Edit comment\"),\n      actionClick: () => {\n        isEdit.value = true;\n      },\n      condition: props.editRight || isMyComment.value,\n    },\n    {\n      title: t(\"Comment information\"),\n      actionClick: () => {\n        actionsAdmin.value = \"info\";\n      },\n      condition: props.editRight && !props.podcast,\n    },\n    {\n      title: t(\"Validate\"),\n      actionClick: () => {\n        actionName.value = \"validate\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition:\n        props.editRight &&\n        (\"PENDING\" === props.comment.state ||\n          \"NOT_VALID\" === props.comment.state),\n    },\n    {\n      title: t(\"Invalidate\"),\n      actionClick: () => {\n        actionName.value = \"invalidate\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition:\n        props.editRight &&\n        (\"PENDING\" === props.comment.state ||\n          \"VALIDATED\" === props.comment.state),\n    },\n    {\n      title: t(\"Delete comment\"),\n      actionClick: () => {\n        actionName.value = \"delete\";\n        isError.value = false;\n        confirmModal.value = true;\n      },\n      condition: props.editRight || isMyComment.value,\n    },\n  ];\n});\nconst validateText = computed(() => {\n  if (isError.value) {\n    return t(\"Close\");\n  }\n  return actionInProgress.value ? undefined : t(\"Yes\");\n});\nconst canceltext = computed(() => isError.value ? undefined : t(\"No\"));\nconst modalMessage = computed(() => {\n  if (actionInProgress.value) {\n    return t(\"Saving\");\n  }\n  if (isError.value) {\n    return t(\"An error occurred\");\n  }\n  const name = { name: props.comment.poster.userName };\n  switch (actionName.value) {\n    case \"delete\":\n      return t(\"Confirm comment deletion text\", name);\n    case \"validate\":\n      return t(\"Confirm comment valid text\", name);\n    case \"invalidate\":\n      return t(\"Confirm comment invalid text\", name);\n    default:\n      return \"\";\n  }\n});\nconst modalTitle = computed(() => {\n  if (\"delete\" === actionName.value) {\n    return t(\"Delete comment\");\n  }\n  return t(\"Update comment\");\n});  \n \n\n//Methods\nasync function actionComment() {\n  if (!props.comment) {\n    return;\n  }\n  actionInProgress.value = true;\n  isError.value = false;\n  try {\n    if (\"delete\" === actionName.value) {\n      await classicApi.deleteData({\n        api: 2,\n        path: \"comment/\" + props.comment.commentId,\n        parameters: props.editRight\n          ? undefined\n          : { uuid: commentStore.commentUser?.uuid },\n        isNotAuth: !props.editRight,\n      });\n      emit(\"deleteComment\");\n    } else {\n      const commentUpdated = await classicApi.putData({\n        api: 2,\n        path: \"comment/\",\n        dataToSend: {\n          commentId: props.comment.commentId,\n          content: props.comment.content,\n          name: props.comment.poster.userName,\n          state: \"validate\" === actionName.value ? \"VALIDATED\" : \"NOT_VALID\",\n        },\n      });\n      emit(\"update:comment\", commentUpdated);\n    }\n    confirmModal.value = false;\n  } catch {\n    isError.value = true;\n  }\n  actionInProgress.value = false;\n}\n</script>\n"],"mappings":"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"}