{"version":3,"file":"client_message_mixin-BKAfXnyz.js","sources":["../../../app/frontend/images/icons/ic_login_done.png","../../../app/frontend/entrypoints/vue/clients/messages/chat_card.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/chat_card.vue","../../../app/frontend/entrypoints/vue/clients/messages/confirm_modal.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/confirm_modal.vue","../../../app/frontend/entrypoints/vue/clients/messages/decline_modal.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/decline_modal.vue","../../../app/frontend/entrypoints/vue/clients/messages/chat_controls.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/chat_controls.vue","../../../app/frontend/entrypoints/vue/clients/messages/chatroom.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/chatroom.vue","../../../app/frontend/entrypoints/vue/clients/messages/splash.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/splash.vue","../../../app/frontend/entrypoints/vue/clients/messages/app.vue?vue&type=template&lang.js","../../../app/frontend/entrypoints/vue/clients/messages/app.vue","../../../app/frontend/entrypoints/vue/client_message_mixin.js"],"sourcesContent":["export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAA/CAMAAABggeDtAAAAe1BMVEUAAADX19fX19fZ2dnm5ubX19fX19fX19fX19fW1tbX19fW1tbY2NjX19fY2NjW1tbg4ODj4+P////X19fX19fX19fW1tbu7u7////////w8PDW1tb////9/f3Z2dnn5+fj4+P5+fnz8/P39/ff39/b29vt7e3p6enw8PBmz3j5AAAAG3RSTlMA7JsxCPLm2LevrZBpWk4sGhICyqV58+PKpXlk9FOgAAACh0lEQVRIx7WX7ZaiMAyGi4CoKDqM43yElraAcv9XuNIZR2le2O7x7PPHQyRNE9K3rZigjLf5KlumlC6zVb6NS/EPJLtNRGOizS4J9N4vUkKki32Ad7ymadaxmOdlQfMsXubci4j+RlRMu79RCG9TVT9SGEf4JQ6vFMrrAbgvKZwlGyBx0cNn4KfAc5/nGFT5VmvdBnyFggDaympAWk2A4qHrIuDdVHcaMEJ070TQtOdqzBm08u+SIYZ1E+9127W6d2lYYtwW0xpGl2f186TOEs5g/bPeee6Du340DAPwGuwnsjff7t4ABlcgYWpTu9nyjGqmSEMX7lDxjPJsyqAS7q7+G9+opAvPJyCVb9wIUUaoei1vZVTBqBQxofQVsypXAN4CW2a7XN8kztV6YcatyJ+Kn4sVzLQNtK5ExmydmynKqmPWTADZa6rKoJ5sgBCKE8EC1NDGOAn3wxtIduOcpGsfDorvgpnu0d3g8JQKKPt2vIC1hALi8s+QWTVO9epuiF1/PygCZGJFCGUrhzSycljnDr5/jv1rWT0ia+yfe/1/FzwPJ4ecLRLfW2xpGtvbxtweayTBZYRTl73+1V/dS1yEqGT605l7LDYn03n6w/SvlYP3Bazfi/unZfqXpF6fVqbFm7GpvL5OE0//VcM7Zebfhb//2OEFmqYZ9/He2//culEz/mq0jtbe/quMVyBOKx8ixN7+f7kLF4C9s/DOHwrtkXBvVd75QxRTEjUjboV//rIgPJ6A5afgo5t+H+DfuwSO7Pyp2QaJce+x86c4vF/HpRCu83xHB+gP0Hq4CT8OApB82iB/+5kIzFeQ/9eT958n71/P3f+eu3/+x/svvn+f6DR///4DnfBLy0sJ63YAAAAASUVORK5CYII=\"","\n<div @click=\"$emit('chatClick', id)\" class=\"chat\">\n <div class=\"title -no-img\">\n <div class=\"u-flex -row -items-center u-gap6\">\n <div :class=\"{ notification: hasNotification }\">\n <img src=\"../../../../images/icons/ic_login_done.png\" class=\"u-w20\" width=\"20\" height=\"20\" />\n </div>\n <div class=\"truncate\">\n <h1>{{ chat.applicant.name }} ({{ chat.applicant.age }}æ³)</h1>\n </div>\n </div>\n <div class=\"u-mt2 u-px0 u-flex -row u-gap4 tags\">\n <p v-if=\"chat.job.is_incentive_ad\" class=\"tags -premium\">採用課金</p>\n <p v-if=\"chat.is_scout\" class=\"tags -scout\">スカウト</p>\n <h1 class=\"u-flex-1 u-truncate\">{{ chat.applicant.license_names }}</h1>\n </div>\n <div class=\"u-px0 u-flex -row u-gap4 tags -with-date\">\n <p class=\"content u-wp80\" v-if=\"lastMessage\"> {{ lastMessage.content }}</p>\n <p class=\"u-mt-auto\" v-if=\"lastMessage\">{{ lastMessageDate }}</p>\n </div>\n </div>\n</div>\n","<template>\n <div @click=\"$emit('chatClick', id)\" class=\"chat\">\n <div class=\"title -no-img\">\n <div class=\"u-flex -row -items-center u-gap6\">\n <div :class=\"{ notification: hasNotification }\">\n <img src=\"../../../../images/icons/ic_login_done.png\" class=\"u-w20\" width=\"20\" height=\"20\" />\n </div>\n <div class=\"truncate\">\n <h1>{{ chat.applicant.name }} ({{ chat.applicant.age }}æ³)</h1>\n </div>\n </div>\n <div class=\"u-mt2 u-px0 u-flex -row u-gap4 tags\">\n <p v-if=\"chat.job.is_incentive_ad\" class=\"tags -premium\">採用課金</p>\n <p v-if=\"chat.is_scout\" class=\"tags -scout\">スカウト</p>\n <h1 class=\"u-flex-1 u-truncate\">{{ chat.applicant.license_names }}</h1>\n </div>\n <div class=\"u-px0 u-flex -row u-gap4 tags -with-date\">\n <p class=\"content u-wp80\" v-if=\"lastMessage\"> {{ lastMessage.content }}</p>\n <p class=\"u-mt-auto\" v-if=\"lastMessage\">{{ lastMessageDate }}</p>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: Number,\n chat: Object\n },\n computed: {\n lastMessage() {\n if (this.chat.messages.length === 0) {\n return null\n }\n // æœ€æ–°æ—¥é †ã«ä¸¦ã‚“ã§ã„ã‚‹ãŸã‚一番先é ãŒæœ€æ–°ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸\n return [...this.chat.messages][0]\n },\n lastMessageDate() {\n let dt = new Date(this.lastMessage.created_at)\n return dt.toLocaleDateString('ja-JP')\n },\n hasNotification() {\n return this.chat.messages.map(v => !v.is_opened && v.sender === 'applicant').some(u => u)\n }\n }\n}\n</script>\n","\n<div class=\"active\">\n <div class=\"c-modal__background\" @click=\"closeMessageModal\"></div>\n <div class=\"c-modal p-client-page-message__modal\">\n <div class=\"c-modal__header p-client-page-message__modal-header\">\n <div\n class=\"c-modal__header__close p-client-page-message__modal-close\"\n @click=\"closeMessageModal\"\n />\n é€ä¿¡ã®ç¢ºèª\n </div>\n <div class=\"c-modal__body p-client-page-message__modal-body\">\n <p>\n 求è·è€…å:\n <span class=\"u-font-bold\">{{ applicantName }}</span>\n </p>\n <p class=\"u-mt8\">é€ä¿¡å†…容</p>\n <div\n class=\"u-mt8 u-p8 c-card -border u-fs12 u-overflow-y-scroll u-max-h300\"\n >\n <div v-html=\"formattedEmailContent\"></div>\n </div>\n <div\n v-if=\"attachmentFilenames.length > 0\"\n class=\"u-py4 u-flex -scroll-x u-gap8\"\n >\n <span\n v-for=\"(attachment, i) in attachmentFilenames\"\n :key=\"i\"\n class=\"attachment-label\"\n >\n {{ attachment }}\n </span>\n </div>\n <p class=\"u-mt16 u-lh24\">\n 上記ã®å†…容ã§é€ä¿¡ã—ã¾ã™ã€‚<br />\n 求è·è€…ã®åå‰ã‚„内容ã®ç¢ºèªã‚’ã—ã¦ãã ã•ã„。\n </p>\n </div>\n <div class=\"c-modal__body p-client-page-message__modal-body\">\n <div class=\"p-client-page-message__modal-action-button\">\n <button\n type=\"button\"\n class=\"c-button -green -middle p-client-page-message__modal-button\"\n @click=\"submitModal\"\n >\n é€ä¿¡\n </button>\n <div\n class=\"c-button -white -middle p-client-page-message__modal-button\"\n @click=\"closeMessageModal\"\n >\n ã‚„ã‚ã‚‹\n </div>\n </div>\n </div>\n </div>\n</div>\n","<template>\n <div class=\"active\">\n <div class=\"c-modal__background\" @click=\"closeMessageModal\"></div>\n <div class=\"c-modal p-client-page-message__modal\">\n <div class=\"c-modal__header p-client-page-message__modal-header\">\n <div\n class=\"c-modal__header__close p-client-page-message__modal-close\"\n @click=\"closeMessageModal\"\n />\n é€ä¿¡ã®ç¢ºèª\n </div>\n <div class=\"c-modal__body p-client-page-message__modal-body\">\n <p>\n 求è·è€…å:\n <span class=\"u-font-bold\">{{ applicantName }}</span>\n </p>\n <p class=\"u-mt8\">é€ä¿¡å†…容</p>\n <div\n class=\"u-mt8 u-p8 c-card -border u-fs12 u-overflow-y-scroll u-max-h300\"\n >\n <div v-html=\"formattedEmailContent\"></div>\n </div>\n <div\n v-if=\"attachmentFilenames.length > 0\"\n class=\"u-py4 u-flex -scroll-x u-gap8\"\n >\n <span\n v-for=\"(attachment, i) in attachmentFilenames\"\n :key=\"i\"\n class=\"attachment-label\"\n >\n {{ attachment }}\n </span>\n </div>\n <p class=\"u-mt16 u-lh24\">\n 上記ã®å†…容ã§é€ä¿¡ã—ã¾ã™ã€‚<br />\n 求è·è€…ã®åå‰ã‚„内容ã®ç¢ºèªã‚’ã—ã¦ãã ã•ã„。\n </p>\n </div>\n <div class=\"c-modal__body p-client-page-message__modal-body\">\n <div class=\"p-client-page-message__modal-action-button\">\n <button\n type=\"button\"\n class=\"c-button -green -middle p-client-page-message__modal-button\"\n @click=\"submitModal\"\n >\n é€ä¿¡\n </button>\n <div\n class=\"c-button -white -middle p-client-page-message__modal-button\"\n @click=\"closeMessageModal\"\n >\n ã‚„ã‚ã‚‹\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n applicantName: {\n type: String,\n required: true,\n },\n emailContent: {\n type: String,\n required: true,\n },\n attachmentFilenames: {\n type: Array,\n },\n },\n methods: {\n submitModal() {\n this.$emit('submit');\n },\n closeMessageModal() {\n this.$emit('close');\n },\n },\n computed: {\n formattedEmailContent() {\n return this.emailContent.replace(/\\n/g, '<br>');\n },\n },\n};\n</script>\n","\n<div class=\"active\">\n <div class=\"c-modal__background\"></div>\n <div class=\"c-modal -decline\">\n <div class=\"u-p20\">\n <div class=\"u-flex u-align-center\">\n <div class=\"u-p12 u-w120 u-fs18 u-font-bold\">ä¸åˆæ ¼åˆ¤å®š</div>\n <div\n class=\"u-flex u-align-center u-gap8 u-px12 u-border-w2 u-border-l-solid u-border-light-gray\"\n >\n <div class=\"-ic-person\"></div>\n <div class=\"u-color-gray\">{{ applicant.name }}</div>\n </div>\n </div>\n <div class=\"u-p15\">\n <div class=\"u-flex\">\n <div class=\"u-wp20\">\n <label\n class=\"c-label__small p-form__label -required u-fs14 u-font-normal\"\n >ä¸åˆæ ¼ç†ç”±</label\n >\n </div>\n <div class=\"u-wp80 u-flex -wrap u-gap8 u-pl12\">\n <label\n class=\"c-checkbox\"\n v-for=\"reason in declinedReasons\"\n :key=\"reason.id\"\n >\n <input\n type=\"checkbox\"\n v-model=\"selectedDeclinedReasons\"\n :value=\"reason.name\"\n />\n <span class=\"c-checkbox__text\">{{ reason.name }}</span>\n </label>\n </div>\n </div>\n <div class=\"u-flex u-mt20\">\n <div class=\"u-wp20\">\n <label\n for=\"internalMemo\"\n class=\"c-label__small u-fs14 u-font-normal\"\n >メモ・備考</label\n >\n </div>\n <div class=\"u-flex -wrap u-gap8\">\n <textarea\n id=\"internalMemo\"\n v-model=\"internalMemo\"\n placeholder=\"é¢æŽ¥ã®è©•ä¾¡ã€ç”³ã—é€ã‚Šäº‹é …を入力ã—ã¦ãã ã•ã„\"\n rows=\"5\"\n class=\"c-input -text-area -resize-none -declined-reason u-h-auto u-fs14\"\n ></textarea>\n <div class=\"c-label__small\">\n ※ 記入ã—ãŸãƒ¡ãƒ¢ãƒ»å‚™è€ƒã¯é€šçŸ¥ã•ã‚Œã¾ã›ã‚“\n </div>\n </div>\n </div>\n </div>\n <div class=\"c-modal__footer -decline u-flex -justify-center\">\n <div type=\"submit\" class=\"c-button -green\" @click=\"submitModal\">\n 確 定\n </div>\n </div>\n </div>\n </div>\n</div>\n","<template>\n <div class=\"active\">\n <div class=\"c-modal__background\"></div>\n <div class=\"c-modal -decline\">\n <div class=\"u-p20\">\n <div class=\"u-flex u-align-center\">\n <div class=\"u-p12 u-w120 u-fs18 u-font-bold\">ä¸åˆæ ¼åˆ¤å®š</div>\n <div\n class=\"u-flex u-align-center u-gap8 u-px12 u-border-w2 u-border-l-solid u-border-light-gray\"\n >\n <div class=\"-ic-person\"></div>\n <div class=\"u-color-gray\">{{ applicant.name }}</div>\n </div>\n </div>\n <div class=\"u-p15\">\n <div class=\"u-flex\">\n <div class=\"u-wp20\">\n <label\n class=\"c-label__small p-form__label -required u-fs14 u-font-normal\"\n >ä¸åˆæ ¼ç†ç”±</label\n >\n </div>\n <div class=\"u-wp80 u-flex -wrap u-gap8 u-pl12\">\n <label\n class=\"c-checkbox\"\n v-for=\"reason in declinedReasons\"\n :key=\"reason.id\"\n >\n <input\n type=\"checkbox\"\n v-model=\"selectedDeclinedReasons\"\n :value=\"reason.name\"\n />\n <span class=\"c-checkbox__text\">{{ reason.name }}</span>\n </label>\n </div>\n </div>\n <div class=\"u-flex u-mt20\">\n <div class=\"u-wp20\">\n <label\n for=\"internalMemo\"\n class=\"c-label__small u-fs14 u-font-normal\"\n >メモ・備考</label\n >\n </div>\n <div class=\"u-flex -wrap u-gap8\">\n <textarea\n id=\"internalMemo\"\n v-model=\"internalMemo\"\n placeholder=\"é¢æŽ¥ã®è©•ä¾¡ã€ç”³ã—é€ã‚Šäº‹é …を入力ã—ã¦ãã ã•ã„\"\n rows=\"5\"\n class=\"c-input -text-area -resize-none -declined-reason u-h-auto u-fs14\"\n ></textarea>\n <div class=\"c-label__small\">\n ※ 記入ã—ãŸãƒ¡ãƒ¢ãƒ»å‚™è€ƒã¯é€šçŸ¥ã•ã‚Œã¾ã›ã‚“\n </div>\n </div>\n </div>\n </div>\n <div class=\"c-modal__footer -decline u-flex -justify-center\">\n <div type=\"submit\" class=\"c-button -green\" @click=\"submitModal\">\n 確 定\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport axios from 'axios';\nimport { CSRF_TOKEN } from '../../constants';\nimport Routes from '../../routes';\nimport toastr from 'toastr';\n\nexport default {\n props: {\n applicant: {\n type: Object,\n },\n },\n data() {\n return {\n declinedReasons: [],\n internalMemo: '',\n selectedDeclinedReasons: [],\n };\n },\n created() {\n Promise.all([this.getDeclinedReasons(), this.getJobApplicant()]).catch(\n (error) => {\n this.handleAxiosError(error);\n }\n );\n },\n methods: {\n // エラーãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°\n handleAxiosError(error) {\n if (error.response && error.response.status === 401) {\n window.location.href = '/';\n } else {\n toastr.error('エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ');\n }\n console.error(error);\n },\n // `declined_reasons`ã®ActiveHashã‚’å–å¾—\n getDeclinedReasons() {\n axios\n .get(Routes.api.clients.declined_reasons)\n .then((response) => {\n this.declinedReasons = response.data;\n })\n .catch((error) => {\n this.handleAxiosError(error);\n });\n },\n // `job_applicants`レコードã®å–å¾—\n getJobApplicant() {\n const jobApplicantId = this.applicant.job_applicant_id;\n axios\n .get(`${Routes.api.clients.job_applicants}/${jobApplicantId}`)\n .then((response) => {\n this.selectedDeclinedReasons = this.parseDeclinedReasons(\n response.data.declined_reasons\n );\n this.internalMemo = response.data.internal_memo;\n })\n .catch((error) => {\n this.handleAxiosError(error);\n });\n },\n // `declined_reasons`ã®JSONå½¢å¼ã‚’é…列ã«å¤‰æ›\n parseDeclinedReasons(jsonDeclinedReason) {\n if (!jsonDeclinedReason) return [];\n\n try {\n const parsed = JSON.parse(jsonDeclinedReason);\n return Array.isArray(parsed) ? parsed : [parsed];\n } catch (error) {\n return [jsonDeclinedReason];\n }\n },\n // `job_applicants`レコードを更新\n async updateJobApplicant() {\n try {\n await axios\n .put(\n `${Routes.api.clients.job_applicants}/${this.applicant.job_applicant_id}`,\n {\n job_applicant: {\n declined_reasons: this.selectedDeclinedReasons,\n },\n internal_memo: this.internalMemo,\n },\n {\n headers: { 'X-CSRF-Token': CSRF_TOKEN },\n }\n )\n .then((response) => {\n toastr.success(response.data.text);\n this.$emit('updateSelectionStatus', this.currentSelectionStatus);\n });\n } catch (error) {\n this.handleAxiosError(error);\n }\n },\n // `確定`ボタン押下時ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³\n submitModal() {\n if (this.selectedDeclinedReasons.length === 0) {\n toastr.error('ä¸åˆæ ¼ç†ç”±ã‚’é¸æŠžã—ã¦ä¸‹ã•ã„');\n return;\n }\n this.updateJobApplicant();\n this.$emit('submit');\n },\n },\n};\n</script>\n","\n<form\n ref=\"form\"\n @submit=\"showConfirmModal\"\n :action=\"`/clients/messages?job_id=${job_id}&applicant_id=${applicant.id}`\"\n method=\"post\"\n enctype=\"multipart/form-data\"\n class=\"chat-controls\"\n>\n <input type=\"hidden\" name=\"authenticity_token\" value=\"\" ref=\"csrf\" />\n <input type=\"hidden\" name=\"sender\" value=\"applicant\" />\n <input type=\"hidden\" name=\"job_id\" :value=\"job_id\" />\n <div>\n <h3>\n テンプレートã‹ã‚‰ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ä½œæˆ (\n <b>\n <a\n class=\"u-color-blue-light\"\n href=\"/clients/template_messages\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n テンプレートã®ç®¡ç†ã¯ã“ã¡ã‚‰\n </a>\n </b>\n )\n </h3>\n <div class=\"u-mt4 u-py4 u-flex -scroll-x u-gap8 u-min-h31\">\n <span\n @mousedown.prevent=\"setTemplate(template)\"\n class=\"button -template\"\n v-for=\"(template, i) in templates\"\n :key=\"i\"\n >\n {{ template.name }}\n </span>\n </div>\n </div>\n <div class=\"flex flex-col\">\n <textarea\n ref=\"textarea\"\n class=\"u-fs14\"\n name=\"content\"\n v-model=\"messageDraft.content\"\n placeholder=\"メッセージを入力\"\n />\n </div>\n <div\n v-if=\"attachmentFilenames.length > 0\"\n class=\"u-py4 u-flex -scroll-x u-gap8\"\n >\n <span\n v-for=\"(attachment, i) in attachmentFilenames\"\n :key=\"i\"\n class=\"attachment-label\"\n >\n {{ attachment }}\n </span>\n </div>\n <div class=\"u-flex -justify-between\">\n <div class=\"u-flex -items-end\">\n <div>\n <h2 class=\"u-mb4 u-fs13\">é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹</h2>\n <div class=\"c-select-wrapper -small\">\n <select\n class=\"u-fs14\"\n v-model=\"currentSelectionStatus\"\n v-on:change=\"updateSelectionStatus\"\n :disabled=\"loading\"\n >\n <option\n v-for=\"(selectionStatus, i) in selectionStatuses\"\n :key=\"i\"\n :value=\"selectionStatus.id\"\n >\n {{ selectionStatus.name }}\n </option>\n </select>\n </div>\n </div>\n <span class=\"u-fs12 u-color-gray\">\n ※é€ä¿¡å‰ã«é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®ç¢ºèªãƒ»å¤‰æ›´ã‚’ãŠé¡˜ã„致ã—ã¾ã™ã€‚\n </span>\n </div>\n <div class=\"buttons\">\n <input\n type=\"file\"\n name=\"attachments[]\"\n id=\"attachments\"\n multiple\n v-on:input=\"updateAttachments\"\n />\n <label for=\"attachments\" class=\"u-py6 u-px20 button -attach\">\n 添付\n </label>\n <button\n type=\"submit\"\n class=\"u-py7 u-px20 button -send\"\n :disabled=\"messageDraft.content.length <= 0 || loading\"\n >\n é€ä¿¡\n </button>\n </div>\n </div>\n <ConfirmModal\n v-if=\"showModal\"\n @submit=\"confirmedSendMessage\"\n @close=\"closeConfirmModal\"\n :applicantName=\"applicant.name\"\n :emailContent=\"messageDraft.content\"\n :attachmentFilenames=\"attachmentFilenames\"\n />\n <DeclineModal\n v-if=\"showDeclineModal\"\n :applicant=\"applicant\"\n @submit=\"closeDeclineModal\"\n />\n</form>\n","<template>\n <form\n ref=\"form\"\n @submit=\"showConfirmModal\"\n :action=\"`/clients/messages?job_id=${job_id}&applicant_id=${applicant.id}`\"\n method=\"post\"\n enctype=\"multipart/form-data\"\n class=\"chat-controls\"\n >\n <input type=\"hidden\" name=\"authenticity_token\" value=\"\" ref=\"csrf\" />\n <input type=\"hidden\" name=\"sender\" value=\"applicant\" />\n <input type=\"hidden\" name=\"job_id\" :value=\"job_id\" />\n <div>\n <h3>\n テンプレートã‹ã‚‰ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ä½œæˆ (\n <b>\n <a\n class=\"u-color-blue-light\"\n href=\"/clients/template_messages\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n テンプレートã®ç®¡ç†ã¯ã“ã¡ã‚‰\n </a>\n </b>\n )\n </h3>\n <div class=\"u-mt4 u-py4 u-flex -scroll-x u-gap8 u-min-h31\">\n <span\n @mousedown.prevent=\"setTemplate(template)\"\n class=\"button -template\"\n v-for=\"(template, i) in templates\"\n :key=\"i\"\n >\n {{ template.name }}\n </span>\n </div>\n </div>\n <div class=\"flex flex-col\">\n <textarea\n ref=\"textarea\"\n class=\"u-fs14\"\n name=\"content\"\n v-model=\"messageDraft.content\"\n placeholder=\"メッセージを入力\"\n />\n </div>\n <div\n v-if=\"attachmentFilenames.length > 0\"\n class=\"u-py4 u-flex -scroll-x u-gap8\"\n >\n <span\n v-for=\"(attachment, i) in attachmentFilenames\"\n :key=\"i\"\n class=\"attachment-label\"\n >\n {{ attachment }}\n </span>\n </div>\n <div class=\"u-flex -justify-between\">\n <div class=\"u-flex -items-end\">\n <div>\n <h2 class=\"u-mb4 u-fs13\">é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹</h2>\n <div class=\"c-select-wrapper -small\">\n <select\n class=\"u-fs14\"\n v-model=\"currentSelectionStatus\"\n v-on:change=\"updateSelectionStatus\"\n :disabled=\"loading\"\n >\n <option\n v-for=\"(selectionStatus, i) in selectionStatuses\"\n :key=\"i\"\n :value=\"selectionStatus.id\"\n >\n {{ selectionStatus.name }}\n </option>\n </select>\n </div>\n </div>\n <span class=\"u-fs12 u-color-gray\">\n ※é€ä¿¡å‰ã«é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®ç¢ºèªãƒ»å¤‰æ›´ã‚’ãŠé¡˜ã„致ã—ã¾ã™ã€‚\n </span>\n </div>\n <div class=\"buttons\">\n <input\n type=\"file\"\n name=\"attachments[]\"\n id=\"attachments\"\n multiple\n v-on:input=\"updateAttachments\"\n />\n <label for=\"attachments\" class=\"u-py6 u-px20 button -attach\">\n 添付\n </label>\n <button\n type=\"submit\"\n class=\"u-py7 u-px20 button -send\"\n :disabled=\"messageDraft.content.length <= 0 || loading\"\n >\n é€ä¿¡\n </button>\n </div>\n </div>\n <ConfirmModal\n v-if=\"showModal\"\n @submit=\"confirmedSendMessage\"\n @close=\"closeConfirmModal\"\n :applicantName=\"applicant.name\"\n :emailContent=\"messageDraft.content\"\n :attachmentFilenames=\"attachmentFilenames\"\n />\n <DeclineModal\n v-if=\"showDeclineModal\"\n :applicant=\"applicant\"\n @submit=\"closeDeclineModal\"\n />\n </form>\n</template>\n<script>\nimport Routes from '../../routes';\nimport { CSRF_TOKEN } from '../../constants';\nimport axios from 'axios';\nimport toastr from 'toastr';\nimport ConfirmModal from './confirm_modal.vue';\nimport DeclineModal from './decline_modal.vue';\n\nexport default {\n components: {\n ConfirmModal,\n DeclineModal,\n },\n props: {\n job_id: {\n type: Number,\n default: 0,\n },\n applicant: {\n type: Object,\n default: function () {\n return {};\n },\n },\n company_name: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n showModal: false,\n showDeclineModal: false,\n attachments: [],\n templates: [],\n messageDraft: {\n content: '',\n sender: 'company',\n job_id: this.job_id,\n applicant_id: this.applicant.id,\n attachments: [],\n },\n selectionStatuses: [],\n currentSelectionStatus: this.applicant.selection_id,\n loading: false,\n };\n },\n // TO-DO: vue3 ã« upgrade ã—ãŸã‚‰ã€ vuex ã‚‚å°Žå…¥ã—ãŸã„\n watch: {\n $props: {\n handler() {\n this.messageDraft.job_id = this.job_id;\n this.messageDraft.applicant_id = this.applicant.id;\n this.currentSelectionStatus = this.applicant.selection_id;\n },\n deep: true,\n },\n },\n created() {\n this.getTemplates();\n this.getSelectionStatuses();\n },\n mounted() {\n this.$refs.csrf.value = CSRF_TOKEN;\n },\n computed: {\n attachmentFilenames() {\n return Array.from(this.messageDraft.attachments).map((f) => f.name);\n },\n },\n methods: {\n updateAttachments(e) {\n this.messageDraft.attachments = e.target.files;\n },\n getSelectionStatuses() {\n axios\n .get(Routes.api.clients.selection_statuses)\n .then((r) => {\n this.selectionStatuses = r.data;\n })\n .catch((e) => {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n if (e.response.status === 401) {\n window.location.href = '/';\n }\n toastr.error('é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ');\n console.error(e);\n });\n },\n showDeclinedReasonModal() {\n this.loading = true;\n this.showDeclineModal = true;\n },\n async updateSelectionStatus() {\n this.loading = true;\n if (this.currentSelectionStatus === 10)\n return this.showDeclinedReasonModal();\n\n try {\n await axios.put(\n Routes.api.clients.selection_statuses,\n {\n selection_id: this.currentSelectionStatus,\n job_applicant_id: this.applicant.job_applicant_id,\n },\n {\n headers: { 'X-CSRF-Token': CSRF_TOKEN },\n }\n );\n\n toastr.success('é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’変更ã—ã¾ã—ãŸ');\n this.$emit('updateSelectionStatus', this.currentSelectionStatus);\n } catch (error) {\n if (error.response && error.response.status === 401) {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n window.location.href = '/';\n } else {\n toastr.error('é¸è€ƒã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ');\n console.error(error);\n }\n } finally {\n this.loading = false;\n }\n },\n getTemplates() {\n axios\n .get(Routes.api.clients.template_messages)\n .then((r) => {\n this.templates = r.data;\n })\n .catch((e) => {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n if (e.response.status === 401) {\n window.location.href = '/';\n }\n console.error(e);\n });\n },\n setTemplate(template) {\n this.messageDraft.content = this.replaceShirtCode(template.content);\n // テンプレートボタンを押ã—ãŸå¾Œã‚‚フォーカスをä¿æŒã™ã‚‹\n this.$nextTick(() => {\n this.$refs.textarea.focus();\n });\n },\n // `{$ APPLICANT_NAME $}`を求è·è€…åã«ç½®æ›ã™ã‚‹\n // `{$ COMPANY_NAME $}`ã‚’ä¼æ¥åã«ç½®æ›ã™ã‚‹\n replaceShirtCode(content) {\n return content\n .replaceAll('{$ APPLICANT_NAME $}', this.applicant.name)\n .replaceAll(\n '{$ COMPANY_NAME $}',\n this.company_name.replace('æ ªå¼ä¼šç¤¾', '')\n );\n },\n sendMessage() {\n axios\n .post(Routes.api.clients.messages, this.messageDraft, {\n headers: { 'X-CSRF-Token': CSRF_TOKEN },\n })\n .then((r) => {\n this.$emit('messageSent', r.data);\n this.messageDraft.title = '';\n this.messageDraft.content = '';\n })\n .catch((e) => {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n if (e.response.status === 401) {\n window.location.href = '/';\n }\n console.error(e);\n })\n .finally(() => {\n this.loading = false;\n });\n },\n showConfirmModal(e) {\n e.preventDefault(); // フォームã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®é€ä¿¡å‹•ä½œã‚’ã‚ャンセル\n this.loading = true;\n this.showModal = true;\n },\n // モーダルã§ã€Œé€ä¿¡ã€ãƒœã‚¿ãƒ³ãŒæŠ¼ã•ã‚ŒãŸã¨ãã®å‡¦ç†\n confirmedSendMessage() {\n this.showModal = false;\n this.loading = false;\n if (this.messageDraft.attachments.length > 0) {\n this.$refs.form.submit();\n } else {\n this.sendMessage();\n }\n },\n closeConfirmModal() {\n this.showModal = false;\n this.loading = false;\n },\n closeDeclineModal() {\n this.showDeclineModal = false;\n this.loading = false;\n },\n },\n};\n</script>\n","\n<div class=\"chatroom\" v-if=\"chat != undefined\">\n <div class=\"job-title-client\">\n <a target=\"_blank\" :href=\"`/clients/applicants/${chat.applicant.id}?job=${chat.job.id}`\">\n <div class=\"c-icon-link -file -bg-red\">\n WEBå±¥æ´æ›¸\n </div>\n </a>\n <span>求人:</span>\n <div class=\"truncate\">\n <a class=\"job-link\" :href=\"`/jobs/${chat.job.id}`\" target=\"_blank\" rel=\"noopener noreferrer\"><h2>{{ chat.job.title }}</h2></a>\n </div>\n </div>\n <div class=\"chat-body\">\n <div class=\"u-flex -column-reverse u-gap14\">\n <div v-for=\"(message, i) in chat.messages\" :key=\"`message-${i}`\" class=\"chat-entry\" :class=\"{ sender: message.sender === 'company' }\">\n <div class=\"u-flex -column\">\n <h2 v-if=\"message.sender === 'applicant'\" class=\"u-mb8 u-font-normal u-fs12 u-color-gray\"> {{ chat.applicant.name }}</h2>\n <div v-if=\"message.content || message.title\" class=\"chat-bubble\">\n <h3 v-if=\"message.title\" class=\"u-mb8\">{{ message.title }}</h3>\n <p v-if=\"message.content\" v-html=\"parseContent(message.content)\" />\n </div>\n <div v-if=\"message.attachments.length > 0\" class=\"u-mt8 attachments\" :class=\"{ '-sender': message.sender === 'company' }\">\n <a v-for=\"(attachment, i) in message.attachments\" :key=\"`attachment-${i}`\" class=\"attachment-label\" :href=\"attachment.url\">\n {{ parseAttachmentName(attachment.url) }}\n </a>\n </div>\n </div>\n <div v-if=\"message.sender === 'company'\">\n <div class=\"u-flex -justify-end -column u-gap8\">\n <div class=\"u-flex -justify-end\">\n <p class=\"is-opened\">\n <span :class=\"{ 'u-font-bold': message.is_opened }\">\n {{ message.is_opened ? 'æ—¢èª' : '未èª' }}\n </span>\n </p>\n </div>\n <p class=\"timestamp\">\n {{ messageTimestamp(message.created_at) }}\n </p>\n </div>\n </div>\n <div v-if=\"message.sender === 'applicant'\">\n <p class=\"timestamp\">\n {{ messageTimestamp(message.created_at) }}\n </p>\n </div>\n </div>\n </div>\n </div>\n <chat_controls\n @messageSent=\"onMessageSent\"\n @updateSelectionStatus=\"onUpdateSelectionStatus\"\n :applicant=\"chat.applicant\"\n :job_id=\"chat.job.id\"\n :company_name=\"chat.company_name\"\n />\n</div>\n","<template>\n <div class=\"chatroom\" v-if=\"chat != undefined\">\n <div class=\"job-title-client\">\n <a target=\"_blank\" :href=\"`/clients/applicants/${chat.applicant.id}?job=${chat.job.id}`\">\n <div class=\"c-icon-link -file -bg-red\">\n WEBå±¥æ´æ›¸\n </div>\n </a>\n <span>求人:</span>\n <div class=\"truncate\">\n <a class=\"job-link\" :href=\"`/jobs/${chat.job.id}`\" target=\"_blank\" rel=\"noopener noreferrer\"><h2>{{ chat.job.title }}</h2></a>\n </div>\n </div>\n <div class=\"chat-body\">\n <div class=\"u-flex -column-reverse u-gap14\">\n <div v-for=\"(message, i) in chat.messages\" :key=\"`message-${i}`\" class=\"chat-entry\" :class=\"{ sender: message.sender === 'company' }\">\n <div class=\"u-flex -column\">\n <h2 v-if=\"message.sender === 'applicant'\" class=\"u-mb8 u-font-normal u-fs12 u-color-gray\"> {{ chat.applicant.name }}</h2>\n <div v-if=\"message.content || message.title\" class=\"chat-bubble\">\n <h3 v-if=\"message.title\" class=\"u-mb8\">{{ message.title }}</h3>\n <p v-if=\"message.content\" v-html=\"parseContent(message.content)\" />\n </div>\n <div v-if=\"message.attachments.length > 0\" class=\"u-mt8 attachments\" :class=\"{ '-sender': message.sender === 'company' }\">\n <a v-for=\"(attachment, i) in message.attachments\" :key=\"`attachment-${i}`\" class=\"attachment-label\" :href=\"attachment.url\">\n {{ parseAttachmentName(attachment.url) }}\n </a>\n </div>\n </div>\n <div v-if=\"message.sender === 'company'\">\n <div class=\"u-flex -justify-end -column u-gap8\">\n <div class=\"u-flex -justify-end\">\n <p class=\"is-opened\">\n <span :class=\"{ 'u-font-bold': message.is_opened }\">\n {{ message.is_opened ? 'æ—¢èª' : '未èª' }}\n </span>\n </p>\n </div>\n <p class=\"timestamp\">\n {{ messageTimestamp(message.created_at) }}\n </p>\n </div>\n </div>\n <div v-if=\"message.sender === 'applicant'\">\n <p class=\"timestamp\">\n {{ messageTimestamp(message.created_at) }}\n </p>\n </div>\n </div>\n </div>\n </div>\n <chat_controls\n @messageSent=\"onMessageSent\"\n @updateSelectionStatus=\"onUpdateSelectionStatus\"\n :applicant=\"chat.applicant\"\n :job_id=\"chat.job.id\"\n :company_name=\"chat.company_name\"\n />\n </div>\n</template>\n<script>\nimport chat_controls from './chat_controls.vue';\n\nexport default {\n props: {\n chat: Object\n },\n components: {\n chat_controls\n },\n mounted() {\n // åˆæœŸè¡¨ç¤ºã§æœ€æ–°ã¾ã§ã‚¹ã‚¯ãƒãƒ¼ãƒ«ã™ã‚‹\n this.scrollToBottom();\n },\n watch: {\n chat() {\n // ページ切り替ãˆã§æœ€æ–°ã¾ã§ã‚¹ã‚¯ãƒãƒ¼ãƒ«ã™ã‚‹ï¼ˆãƒšãƒ¼ã‚¸åˆ‡ã‚Šæ›¿ãˆã‚’考慮ã—ã€é…延ã§å®Ÿè¡Œã™ã‚‹ï¼‰\n setTimeout(() => {\n this.scrollToBottom();\n }, 1);\n }\n },\n methods: {\n // 最新ã¾ã§ã‚¹ã‚¯ãƒãƒ¼ãƒ«ã™ã‚‹\n scrollToBottom() {\n var chatBody = document.querySelector('.chat-body');\n chatBody.scrollTop = chatBody.scrollHeight;\n },\n messageTimestamp(timestamp) {\n let dt = new Date(timestamp)\n return dt.toLocaleString('ja-JP').replace(/:\\d{2}$/, '') // 秒数ã¯è¡¨ç¤ºã—ãªã„\n },\n // TO-DO: Vuex ã‚’å°Žå…¥ã—ãŸã‚‰ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯å‰Šé™¤ã™ã‚‹\n onMessageSent(e) {\n this.$emit('messageSent', e)\n },\n onUpdateSelectionStatus(e) {\n this.$emit('updateSelectionStatus', e)\n },\n parseContent(content) {\n return content.replace(/\\n/g, '<br>')\n },\n parseAttachmentName(attachmentUrl) {\n let x = attachmentUrl.split('/')\n const fileName = x[x.length - 1].split('?')[0]; // クエリパラメータã¯é™¤åŽ»\n // 日本語ファイルåã®å ´åˆã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•ã‚Œã¦ã„ã‚‹ã®ã§ãƒ‡ã‚³ãƒ¼ãƒ‰ã™ã‚‹\n return decodeURIComponent(fileName)\n }\n }\n}\n</script>\n","\n<div class=\"splash\">\n <div class=\"banner\" v-show=\"unreadMessages > 0\">\n <div>\n <h1>未èªã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒ\n <span class=\"emph\">\n {{unreadMessages}}\n </span>\n 件ã‚ã‚Šã¾ã™</h1>\n <p>\n 未返信ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ã‚ã‚Šã¾ã›ã‚“ã‹ï¼Ÿ<br />\n メッセージを確èªã—ã¦ã¿ã¾ã—ょã†ï¼\n </p>\n </div>\n <img src=\"../../../../images/banner/bell.png\">\n </div>\n <div class=\"banner\">\n <div>\n <h1>メッセージã«ã¤ã„ã¦</h1>\n <p>\n 応募者ã¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚„ã‚Šå–ã‚ŠãŒå¯èƒ½ã§ã™ã€‚<br />\n WEBå±¥æ´æ›¸ã®æƒ…å ±ãŒä¸è¶³ã—ã¦ã„ã‚‹å ´åˆã€ç©æ¥µçš„ã«WEBå±¥æ´æ›¸ã®å…¥åŠ›ã‚’ãŠé¡˜ã„ã™ã‚‹é€£çµ¡ã‚’ã—ã¾ã—ょã†ã€‚\n </p>\n </div>\n <img src=\"../../../../images/banner/mail.png\">\n </div>\n</div>\n","<template>\n <div class=\"splash\">\n <div class=\"banner\" v-show=\"unreadMessages > 0\">\n <div>\n <h1>未èªã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒ\n <span class=\"emph\">\n {{unreadMessages}}\n </span>\n 件ã‚ã‚Šã¾ã™</h1>\n <p>\n 未返信ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ã‚ã‚Šã¾ã›ã‚“ã‹ï¼Ÿ<br />\n メッセージを確èªã—ã¦ã¿ã¾ã—ょã†ï¼\n </p>\n </div>\n <img src=\"../../../../images/banner/bell.png\">\n </div>\n <div class=\"banner\">\n <div>\n <h1>メッセージã«ã¤ã„ã¦</h1>\n <p>\n 応募者ã¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚„ã‚Šå–ã‚ŠãŒå¯èƒ½ã§ã™ã€‚<br />\n WEBå±¥æ´æ›¸ã®æƒ…å ±ãŒä¸è¶³ã—ã¦ã„ã‚‹å ´åˆã€ç©æ¥µçš„ã«WEBå±¥æ´æ›¸ã®å…¥åŠ›ã‚’ãŠé¡˜ã„ã™ã‚‹é€£çµ¡ã‚’ã—ã¾ã—ょã†ã€‚\n </p>\n </div>\n <img src=\"../../../../images/banner/mail.png\">\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n unreadMessages: Number\n }\n}\n</script>\n","\n<div class=\"app -clients l-container\">\n <div class=\"chats\">\n <chat_card v-for=\"(chat, i) in chats\" :key=\"i\" @chatClick=\"setActiveChat(i)\" :class=\"{ active: i === activeChat }\"\n :chat=\"chat\" :id=\"i\" />\n </div>\n <splash :unreadMessages=\"unreadMessages.length\" v-if=\"activeChat == -1\" />\n <chatroom @updateSelectionStatus=\"onUpdateSelectionStatus\" @messageSent=\"onMessageSent\" v-if=\"activeChat > -1\" :chat=\"chats[activeChat]\" />\n</div>\n","<template>\n <div class=\"app -clients l-container\">\n <div class=\"chats\">\n <chat_card v-for=\"(chat, i) in chats\" :key=\"i\" @chatClick=\"setActiveChat(i)\" :class=\"{ active: i === activeChat }\"\n :chat=\"chat\" :id=\"i\" />\n </div>\n <splash :unreadMessages=\"unreadMessages.length\" v-if=\"activeChat == -1\" />\n <chatroom @updateSelectionStatus=\"onUpdateSelectionStatus\" @messageSent=\"onMessageSent\" v-if=\"activeChat > -1\" :chat=\"chats[activeChat]\" />\n </div>\n</template>\n<script>\nimport axios from \"axios\";\nimport Routes from \"../../routes\";\nimport chat_card from \"./chat_card.vue\";\nimport chatroom from \"./chatroom.vue\";\nimport splash from \"./splash.vue\"\nimport { CSRF_TOKEN } from \"../../constants\";\n\nexport default {\n components: {\n chat_card,\n chatroom,\n splash,\n },\n data() {\n return {\n chats: [],\n activeChat: -1,\n };\n },\n computed: {\n unreadMessages() {\n let allMessages = this.chats.flatMap(chat => chat.messages)\n return allMessages.filter(message => message.sender == 'applicant' && message.is_opened == false)\n },\n jobApplicantIds() {\n return this.chats.map(c => c.applicant).map(a => a.job_applicant_id)\n }\n },\n created() {\n this.getMessages()\n .then(() => {\n this.setActiveChatFromUrl()\n })\n\n // ブラウザãƒãƒƒã‚¯æ™‚ã®å‡¦ç†\n window.addEventListener('popstate', () => {\n if (this.activeChat > -1) {\n this.hasJobApplicantParam() ? this.setDetailPage() : this.goBack();\n }\n })\n },\n methods: {\n jobApplicantId() {\n const urlParams = new URLSearchParams(window.location.search);\n return parseInt(urlParams.get('job_applicant'));\n },\n hasJobApplicantParam() {\n // this.jobApplicantId()ãŒæ•°å—以外ã®ã¨ãã¯falseã‚’è¿”ã™\n return !isNaN(this.jobApplicantId());\n },\n setDetailPage() {\n this.setActiveChat(this.jobApplicantIds.indexOf(this.jobApplicantId()), true)\n },\n goBack() {\n this.activeChat = -1\n history.replaceState('', '', '/clients/messages')\n },\n setActiveChatFromUrl() {\n if (this.hasJobApplicantParam()) {\n this.setActiveChat(this.jobApplicantIds.indexOf(this.jobApplicantId()))\n }\n },\n getMessages() {\n return axios\n .get(Routes.api.clients.messages)\n .then((r) => {\n this.chats = r.data;\n })\n .catch((e) => {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n if (e.response.status === 401) {\n window.location.href = '/';\n }\n console.error(e);\n });\n },\n markMessageRead() {\n let activeJobApplicant = this.chats[this.activeChat]\n return axios\n .put(\n Routes.api.clients.messages,\n {\n 'job_id': activeJobApplicant.job.id,\n 'applicant_id': activeJobApplicant.applicant.id,\n },\n {\n headers: { 'X-CSRF-TOKEN': CSRF_TOKEN }\n }\n )\n .then(() => {\n let readMessages = this.chats[this.activeChat].messages\n readMessages.forEach(m => m.is_opened = true)\n this.$set(this.chats[this.activeChat], 'messages', readMessages)\n })\n .catch((e) => {\n // CSRFトークンèªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆãƒˆãƒƒãƒ—ヘリダイレクト\n if (e.response.status === 401) {\n window.location.href = '/';\n }\n console.error(e)\n })\n },\n onUpdateSelectionStatus(selectionStatus) {\n this.chats[this.activeChat].applicant.selection_id = selectionStatus\n },\n onMessageSent(message) {\n let activeChat = this.chats[this.activeChat]\n this.$set(\n this.chats,\n this.activeChat,\n {\n ...activeChat,\n \"messages\": [message, ...activeChat.messages]\n }\n )\n },\n setActiveChat(i, back = false) {\n // ç¾åœ¨ã®ãƒšãƒ¼ã‚¸ã¨åŒã˜ãƒšãƒ¼ã‚¸ã‚’クリックã—ãŸå ´åˆä½•ã‚‚ã—ãªã„\n if (this.activeChat === i) return\n\n this.activeChat = i\n if (!back) {\n // ブラウザãƒãƒƒã‚¯ã˜ã‚ƒãªã„時ã€ãƒšãƒ¼ã‚¸åˆ‡ã‚Šæ›¿ãˆã¨åŒæ™‚ã«URLも変更(å±¥æ´ã‚’残ã™)\n history.pushState('', '', `/clients/messages?job_applicant=${this.jobApplicantIds[i]}`)\n }\n if (this.unreadMessages.length > 0) {\n this.markMessageRead()\n }\n },\n hasQueryParam(key) {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.has(key);\n }\n },\n};\n</script>\n","import App from '../vue/clients/messages/app.vue';\n\nexport default {\n el: '#messages',\n components: {\n App,\n }\n};\n"],"names":["__$_require_381326aa__","render","_vm","_h","_c","$event","staticRenderFns","__vue2_script","v","u","attachment","i","reason","$$a","$$el","$$c","$$v","$$i","error","toastr","axios","Routes","response","jobApplicantId","jsonDeclinedReason","parsed","CSRF_TOKEN","template","$$selectedVal","o","val","selectionStatus","ConfirmModal","DeclineModal","f","e","r","content","message","chat_controls","chatBody","timestamp","attachmentUrl","x","fileName","__$_require_29e9870c__","__$_require_4aa2e6d8__","chat","chat_card","chatroom","splash","c","a","urlParams","activeJobApplicant","readMessages","m","activeChat","back","key","ClientMessageMixin","App"],"mappings":"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"}