{"version":3,"file":"inbox_controller-DVleXjcU.js","sources":["../../../app/javascript/controllers/conversations/inbox_controller.js"],"sourcesContent":["import { post } from '@rails/request.js'\n\nimport ApplicationController from '../application_controller'\nimport { useNumberHelpers } from '../mixins/useNumberHelpers'\n\nexport default class extends ApplicationController {\n static values = {\n checked: Array,\n count: Number,\n batchUrl: String,\n filter: String,\n }\n\n static targets = [\n \"inbox\",\n \"conversations\",\n \"chat\",\n \"skeleton\",\n \"filtersSkeleton\",\n \"currentConversation\",\n \"assignedUserAvatar\",\n \"closeButton\",\n \"assignedConversationActions\",\n \"closedConversationActions\",\n \"assignedClose\",\n \"skeletonTemplate\",\n \"conversationsList\",\n \"checkAllContainer\",\n \"checkbox\",\n \"batchEditContainer\",\n \"checkAll\",\n \"selectionContainer\",\n \"count\",\n \"chatContainer\",\n \"assignToCurrentUserButton\",\n \"batchReopenConversationsButton\",\n \"batchCloseConversationsButton\",\n \"modal\",\n \"openModal\",\n \"empty\",\n \"selectAllButton\",\n \"deselectAllButton\",\n ]\n\n initialize() {\n this.popStateListener = this.popStateListener.bind(this)\n super.initialize()\n }\n\n\n connect() {\n window.addEventListener(\"popstate\", this.popStateListener)\n useNumberHelpers(this)\n\n super.connect()\n }\n\n disconnect() {\n window.removeEventListener(\"popstate\", this.popStateListener)\n\n super.disconnect()\n }\n\n popStateListener() {\n const parts = window.location.pathname.split(\"/\")\n\n if(parts[parts.length - 1] === 'inbox') {\n const element = this.emptyTarget.cloneNode(true)\n\n element.classList.remove('hidden')\n element.removeAttribute('data-conversations--inbox-target')\n\n this.currentConversationTarget.innerHTML = element.outerHTML\n\n document\n .querySelectorAll(`.inbox--conversation-card`)\n .forEach(card => card.removeAttribute('data-active'))\n }\n }\n\n showInbox({ currentTarget } = {}) {\n this.conversationsTarget.classList.add(\"hidden\")\n this.inboxTarget.classList.remove(\"hidden\")\n\n this.skeletonTarget.classList.remove(\"hidden\")\n this.currentConversationTarget.classList.add(\"hidden\")\n\n if(!currentTarget) return\n\n const { closeable, state } = currentTarget.dataset\n\n if(state === \"unassigned\") {\n this.assignedUserAvatarTarget.classList.add(\"hidden\")\n this.closedConversationActionsTarget.classList.add(\"hidden\")\n\n this.assignedConversationActionsTarget.classList.remove(\"hidden\")\n\n if(closeable === \"true\") {\n this.assignedCloseTarget.classList.remove(\"hidden\")\n } else {\n this.assignedCloseTarget.classList.add(\"hidden\")\n }\n } else if(state === \"assigned\") {\n this.closedConversationActionsTarget.classList.add(\"hidden\")\n\n this.assignedUserAvatarTarget.classList.remove(\"hidden\")\n this.assignedConversationActionsTarget.classList.remove(\"hidden\")\n } else if(state === \"closed\") {\n this.assignedUserAvatarTarget.classList.add(\"hidden\")\n this.assignedConversationActionsTarget.classList.add(\"hidden\")\n\n this.closedConversationActionsTarget.classList.remove(\"hidden\")\n }\n\n if(closeable !== \"true\") {\n this.closeButtonTarget.classList.add(\"hidden\")\n }\n }\n\n toggleInbox() {\n this.inboxTarget.classList.toggle(\"hidden\")\n this.conversationsTarget.classList.toggle(\"hidden\")\n\n if (this.inboxTarget.classList.contains(\"hidden\")) {\n this.shown = \"conversations\"\n } else {\n this.shown = \"inbox\"\n }\n }\n\n showConversationsList(e) {\n this.conversationsTarget.classList.remove(\"hidden\")\n this.inboxTarget.classList.add(\"hidden\")\n\n this.shown = \"conversations\"\n }\n\n showSkeletonLoaders() {\n if (this.hasSkeletonTarget) {\n this.skeletonTarget.classList.remove(\"hidden\")\n }\n }\n\n hideSkeletonLoaders() {\n if (this.hasSkeletonTarget) {\n this.skeletonTarget.classList.add(\"hidden\")\n }\n }\n\n onCheckboxChange({ currentTarget }) {\n if (currentTarget.checked) {\n this.checkedValue = Array.from(new Set([...this.checkedValue, currentTarget.value]))\n } else {\n this.checkedValue = this.checkedValue.filter(value => value !== currentTarget.value)\n }\n\n if(this.checkedValue.length === 0) {\n this.checkAllContainerTarget.classList.add(\"hidden\")\n } else {\n this.checkAllContainerTarget.classList.remove(\"hidden\")\n }\n\n this.batchEditContainerTarget.classList.remove(\"hidden\")\n this.currentConversationTarget.classList.add(\"hidden\")\n\n if(this.checkedValue.length === this.countValue) {\n this.selectAllButtonTarget.click()\n } else {\n if(this.selectAllValue) {\n this.deselectAllButtonTarget.click()\n }\n\n this.syncSelectionContainer()\n }\n }\n\n checkAll({ currentTarget }) {\n this.checkboxTargets.forEach(checkbox => {\n checkbox.checked = currentTarget.checked\n\n if (checkbox.checked) {\n this.checkedValue = Array.from(new Set([...this.checkedValue, checkbox.value]))\n } else {\n this.checkedValue = this.checkedValue.filter(value => value !== checkbox.value)\n }\n })\n\n if(!currentTarget.checked) {\n this.checkAllContainerTarget.classList.add(\"hidden\")\n }\n\n if(this.checkedValue.length === this.countValue) {\n this.selectAllButtonTarget.click()\n } else if(this.selectAllValue && this.checkedValue.length < this.countValue) {\n this.deselectAllButtonTarget.click()\n }\n\n this.syncSelectionContainer()\n }\n\n syncSelectionContainer() {\n if(!this.checkAllTarget.checked && this.checkedValue.length === 0) {\n this.currentConversationTarget.classList.remove(\"hidden\")\n return this.hide(this.batchEditContainerTarget, this.selectionContainerTarget)\n }\n\n if(this.checkedValue.length === 1) {\n this.selectionContainerTarget.querySelector('p').innerHTML = t.inbox.selection.limited.one\n this.assignToCurrentUserButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.assign.limited.one\n this.batchReopenConversationsButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.reopen.limited.one\n } else {\n this.selectionContainerTarget.querySelector('p').innerHTML = t.inbox.selection.limited.other.replace('%{count}', this.numberWithDelimiter(this.checkedValue.length))\n this.assignToCurrentUserButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.assign.limited.other.replace('%{count}', this.numberWithDelimiter(this.checkedValue.length))\n this.batchReopenConversationsButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.reopen.limited.other.replace('%{count}', this.numberWithDelimiter(this.checkedValue.length))\n }\n\n this.show(this.selectionContainerTarget)\n }\n\n showFiltersSkeleton({ currentTarget }) {\n const { filter, filterCount = 3 } = currentTarget.dataset\n this.filterValue = filter\n\n for (let i = 0; i < filterCount - 1; i++) {\n const skeleton = this.filtersSkeletonTarget.firstElementChild.cloneNode(true)\n this.filtersSkeletonTarget.appendChild(skeleton)\n\n if(i > 8) break\n }\n\n this.conversationsListTarget.classList.add(\"hidden\")\n this.filtersSkeletonTarget.classList.remove(\"hidden\")\n\n this.conversationsTarget.scroll({ top: 0, behavior: \"auto\" })\n this.dispatch(\"reset-pages\")\n }\n\n selectAll() {\n this.selectAllValue = true\n\n if(this.countValue === 1) {\n this.assignToCurrentUserButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.assign.limited.one\n this.batchReopenConversationsButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.reopen.limited.one\n } else {\n this.assignToCurrentUserButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.assign.all.replace('%{count}', this.numberWithDelimiter(this.countValue))\n this.batchReopenConversationsButtonTarget.querySelector('[data-text]').innerHTML = t.inbox.reopen.all.replace('%{count}', this.numberWithDelimiter(this.countValue))\n }\n }\n\n deselectAll() {\n this.selectAllValue = false\n this.syncSelectionContainer()\n }\n\n performBatchAction() {\n this.createBatchOperation(this.operation, this.operationArgs)\n }\n\n batchAssignToUser({ currentTarget }) {\n if(this.selectAllValue) {\n this.operation = 'assign'\n this.operationArgs = { to: currentTarget.dataset.id }\n\n return this.openModal()\n }\n\n this.createBatchOperation('assign', {\n to: currentTarget.dataset.id,\n })\n }\n\n batchReopenConversations() {\n if(this.selectAllValue) {\n this.operation = 'reopen'\n return this.openModal()\n }\n\n this.createBatchOperation('reopen')\n }\n\n batchCloseConversations() {\n if(this.selectAllValue) {\n this.operation = 'close'\n return this.openModal()\n }\n\n this.createBatchOperation('close')\n }\n\n batchDeleteConversations() {\n if(this.selectAllValue) {\n this.operation = 'delete'\n return this.openModal()\n }\n\n this.createBatchOperation('delete')\n }\n\n openModal() {\n this.modalTarget.querySelector('[data-modal-target=\"subtitle\"]').innerText = t.inbox.modal.subtitle.replace('%{count}', this.numberWithDelimiter(this.countValue))\n return this.openModalTarget.click()\n }\n\n async createBatchOperation(operation, args) {\n await post(this.batchUrlValue, {\n responseKind: 'turbo-stream',\n body: {\n conversation: {\n operation,\n ids_to_operate_on: this.selectAllValue ? [] : this.checkedValue,\n ...args,\n }\n }\n })\n\n this.selectAllValue = false\n this.checkedValue = []\n this.checkAllTarget.checked = false\n this.checkAll({ currentTarget: this.checkAllTarget })\n\n this.syncSelectionContainer()\n }\n\n filterValueChanged() {\n if(this.filterValue === 'closed' || this.filterValue === 'snoozed') {\n this.hide(this.assignToCurrentUserButtonTarget, this.batchCloseConversationsButtonTarget)\n this.show(this.batchReopenConversationsButtonTarget)\n } else {\n this.show(this.assignToCurrentUserButtonTarget, this.batchCloseConversationsButtonTarget)\n this.hide(this.batchReopenConversationsButtonTarget)\n }\n }\n\n checkboxTargetConnected(element) {\n if (this.checkAllTarget.checked) {\n element.checked = true\n this.checkedValue = [...this.checkedValue, element.value]\n\n this.syncSelectionContainer()\n }\n }\n\n checkboxTargetDisconnected() {\n this.checkedValue = this.checkedValue.filter(value => value !== this.checkboxTarget.value)\n this.syncSelectionContainer()\n }\n\n chatContainerTargetConnected() {\n if(this.checkAllContainerTarget.classList.contains(\"hidden\")) {\n this.currentConversationTarget.classList.remove(\"hidden\")\n }\n }\n\n countTargetConnected() {\n this.countValue = parseInt(this.countTarget.dataset.value)\n this.filterValue = this.countTarget.dataset.filter\n\n this.countTarget.remove()\n }\n\n get indexPage() {\n return window.location.href.endsWith(\"inbox\")\n }\n}\n"],"names":["inbox_controller","ApplicationController","useNumberHelpers","parts","element","card","currentTarget","closeable","state","value","checkbox","filter","filterCount","i","skeleton","operation","args","post","__publicField"],"mappings":"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"}