{"version":3,"file":"contactables_controller-C3YSipw-.js","sources":["../../../app/javascript/controllers/contactables/contactables_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\nimport { get } from \"@rails/request.js\"\n\nexport default class extends Controller {\n static values = {\n containerClass: String,\n widthClass: String,\n activeId: String,\n shownValue: { type: String, default: \"list\" }\n }\n\n static targets = [\n \"information\",\n \"links\",\n \"hamburger\",\n \"list\",\n \"contactableInformation\",\n \"newContactForm\",\n \"aside\"\n ]\n\n initialize() {\n super.initialize()\n this.shown = this.shownValue\n this.windowResizeListener = this.windowResizeListener.bind(this)\n this.popStateListener = this.popStateListener.bind(this)\n }\n\n connect() {\n window.addEventListener(\"resize\", this.windowResizeListener)\n window.addEventListener(\"popstate\", this.popStateListener)\n this.element.classList.add(this.containerClassValue)\n\n if(this.activeIdValue) {\n this.expandFlash()\n }\n }\n\n disconnect() {\n if (this.activeElement) {\n this.activeElement.classList.add(\"hidden\")\n }\n\n this.element.classList.replace(\n this.widthClassValue,\n this.containerClassValue\n )\n\n window.removeEventListener(\"popstate\", this.popStateListener)\n }\n\n popStateListener() {\n const urlParts = window.location.href.split(\"/\")\n const section = urlParts[urlParts.length - 1]\n\n // if url ends with /audience or contains /lists or /segments\n if(section === \"audience\" || urlParts.includes(\"lists\") || urlParts.includes(\"segments\") || urlParts.includes(\"unsubscribed\")) {\n this.hideContactableInformation()\n\n this.element.classList.replace(\n this.widthClassValue,\n this.containerClassValue\n )\n\n this.shrinkFlash()\n }\n }\n\n windowResizeListener(e) {\n if (this.onMobile) {\n this._restoreSavedStateForHiddenElements()\n } else {\n this.listTarget.classList.remove(\"hidden\")\n this.linksTarget.classList.remove(\"hidden\")\n }\n }\n\n async showSidebar(e) {\n if(!e.target.dataset.contactableInfoUrl) return\n\n if (this.hasContactableInformationTarget) {\n this.contactableInformationTarget.classList.remove(\"hidden\")\n }\n\n if (this.onMobile) {\n this.listTarget.classList.add(\"hidden\")\n this.asideTarget.classList.remove(\"hidden\")\n\n this.shown = \"contactableInformation\"\n } else {\n this.element.classList.replace(\n this.containerClassValue,\n this.widthClassValue\n )\n }\n\n this.expandFlash()\n await get(e.target.dataset.contactableInfoUrl, {\n responseKind: \"turbo-stream\",\n })\n }\n\n showSidebarForDraftProfiles() {\n if (this.onMobile) {\n this.listTarget.classList.add(\"hidden\")\n\n this.shown = \"contactableInformation\"\n } else {\n this.element.classList.replace(\n this.containerClassValue,\n this.widthClassValue\n )\n }\n\n this.showContactForm()\n this.expandFlash()\n }\n\n dispatchEvent(e) {\n const event = new CustomEvent(e.target.dataset.event)\n window.dispatchEvent(event)\n }\n\n getSegmentForm(e) {\n get(e.target.dataset.url, {\n responseKind: \"turbo-stream\",\n })\n\n this.dispatchEvent(e)\n }\n\n showContactForm(e) {\n this.contactableInformationTarget.classList.add(\"hidden\")\n this.newContactFormTarget.classList.remove(\"hidden\")\n }\n\n toggleLinksVisibility() {\n this.linksTarget.classList.toggle(\"hidden\")\n this.listTarget.classList.toggle(\"hidden\")\n\n if (this.listTarget.classList.contains(\"hidden\")) {\n this.shown = \"links\"\n } else {\n this.shown = \"list\"\n }\n }\n\n _restoreSavedStateForHiddenElements() {\n console.log(this.shown)\n if (this.shown === \"links\") {\n this.showLinks()\n } else if (this.shown === \"list\") {\n this.showList()\n } else {\n this.showContactableInformation()\n }\n }\n\n showList() {\n this.linksTarget.classList.add(\"hidden\")\n this.listTarget.classList.remove(\"hidden\")\n }\n\n showLinks() {\n this.linksTarget.classList.remove(\"hidden\")\n this.listTarget.classList.add(\"hidden\")\n }\n\n hideLinks() {\n this.linksTarget.classList.add(\"hidden\")\n this.listTarget.classList.remove(\"hidden\")\n }\n\n showContactableInformation() {\n this.asideTarget.classList.remove(\"hidden\")\n this.contactableInformationTarget.classList.remove(\"hidden\")\n this.linksTarget.classList.add(\"hidden\")\n this.listTarget.classList.add(\"hidden\")\n }\n\n hideContactableInformation() {\n this.asideTarget.classList.add(\"hidden\")\n this.contactableInformationTarget.classList.add(\"hidden\")\n this.listTarget.classList.remove(\"hidden\")\n }\n\n removeSelectedBorder(event) {\n let articles = event.target\n .closest(\"#contacts\")\n .querySelectorAll(\".border-transparent\")\n\n let parent = event.target.closest(\n \"[data-controller='radio dropdown toggle']\"\n )\n\n if (articles) {\n articles.forEach((el) => el.classList.remove(\"border-transparent\"))\n }\n if (parent && parent.previousElementSibling) {\n parent.previousElementSibling\n .querySelector(\"article\")\n .classList.add(\"border-transparent\")\n }\n event.target.classList.add(\"border-transparent\")\n }\n\n onContactableCreated({ dataset }) {\n document.getElementById(dataset.id).click()\n }\n\n expandFlash() {\n document.querySelector(\"#flashes-container\").classList.add(this.widthClassValue)\n }\n\n shrinkFlash() {\n document.querySelector(\"#flashes-container\").classList.remove(this.widthClassValue)\n }\n\n get onMobile() {\n return window.innerWidth < 768\n }\n}\n"],"names":["contactables_controller","Controller","urlParts","e","get","event","articles","parent","el","dataset","__publicField"],"mappings":"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"}