{"version":3,"file":"step_controller-rvdRSINf.js","sources":["../../../app/javascript/controllers/popup/step_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"mobileLayout\",\n \"desktopLayout\",\n \"image\",\n \"uploadImageButton\",\n \"imageControls\",\n \"fileInput\",\n \"header\",\n \"fitButtonContainer\",\n \"fillButtonContainer\",\n \"backgroundButton\",\n \"removedStepInput\",\n ]\n\n connect() {\n this.imageValue = {}\n\n if (window.popup?.headerImage) {\n this.setHeaderBackgroundImage(window.popup.headerImage.path)\n\n if (window.popup.headerImage.fit === \"cover\") {\n this.setImageFitToCover()\n } else {\n this.setImageFitToContain()\n }\n }\n\n if (window.popupSteps) {\n window.popupSteps[this.element.id] = {}\n } else {\n window.popupSteps = {\n [this.element.id]: {},\n }\n }\n\n if(window.fontFamily) {\n this.element.style.fontFamily = window.fontFamily\n }\n this.dispatch(\"changed\")\n }\n\n disconnect() {\n if (this.hasRemovedStepInputTarget) {\n this.removedStepInputTarget.disabled = false\n\n document.getElementById(\"popup_form\")?.append(this.removedStepInputTarget)\n }\n }\n\n show({ detail }) {\n if (detail === this.element.id) {\n this.element.classList.remove(\"hidden\")\n } else {\n this.element.classList.add(\"hidden\")\n }\n }\n\n hide() {\n this.element.classList.add(\"hidden\")\n }\n\n showMobileLayout({ detail }) {\n this.mobileLayoutTarget.classList.remove(\"hidden\")\n this.desktopLayoutTarget.classList.add(\"hidden\")\n }\n\n showDesktopLayout() {\n this.desktopLayoutTarget.classList.remove(\"hidden\")\n this.mobileLayoutTarget.classList.add(\"hidden\")\n }\n\n onImageSelect(e) {\n const imagePath = URL.createObjectURL(e.target.files[0])\n this.setHeaderBackgroundImage(imagePath)\n\n this.dispatch(\"changed\")\n }\n\n removeImage() {\n this.headerTargets.forEach((layoutHeader) => {\n layoutHeader.style.removeProperty(\"background-image\")\n layoutHeader.style.removeProperty(\"background-size\")\n\n console.log(layoutHeader.style.backgroundImage)\n })\n\n this.uploadImageButtonTargets.forEach((el) => el.classList.remove(\"hidden\"))\n this.imageControlsTargets.forEach((controls) =>\n controls.classList.add(\"hidden\")\n )\n\n this.fileInputTarget.files = new DataTransfer().files\n\n this.fileInputTargets.forEach((fileInput) => {\n fileInput.files = new DataTransfer().files\n })\n\n this.imageValue = {}\n this.dispatch(\"changed\")\n }\n\n setImageFitToCover() {\n this.headerTargets.forEach((layoutHeader) => {\n layoutHeader.style.backgroundSize = \"cover\"\n })\n\n this.imageValue.objectFit = \"cover\"\n\n this.fitButtonContainerTargets.forEach((container) =>\n container.classList.remove(\"hidden\")\n )\n this.fillButtonContainerTargets.forEach((container) =>\n container.classList.add(\"hidden\")\n )\n\n window.step = this.imageValue\n this.dispatch(\"changed\")\n }\n\n setImageFitToContain() {\n this.headerTargets.forEach((layoutHeader) => {\n layoutHeader.style.backgroundSize = \"contain\"\n })\n\n this.fitButtonContainerTargets.forEach((container) =>\n container.classList.add(\"hidden\")\n )\n this.fillButtonContainerTargets.forEach((container) =>\n container.classList.remove(\"hidden\")\n )\n\n this.imageValue.objectFit = \"contain\"\n window.step = this.imageValue\n this.dispatch(\"changed\")\n }\n\n setImageOnNewLayout() {\n if (this.imageValue?.imagePath) {\n this.setHeaderBackgroundImage(\n this.imageValue.imagePath,\n this.imageValue.objectFit\n )\n this.dispatch(\"changed\")\n }\n }\n\n syncHeaderImage({ detail }) {\n this.setHeaderBackgroundImage(detail.path)\n }\n\n syncHeaderImageFill({ detail }) {\n if (detail.fit === \"cover\") {\n this.setImageFitToCover()\n } else {\n this.setImageFitToContain()\n }\n }\n\n newFieldAppended({ detail }) {\n if (Object.keys(detail).length === 0) return\n\n window.popupSteps[this.element.id] = {\n ...window.popupSteps[this.element.id],\n fields: {\n ...window.popupSteps[this.element.id]?.fields,\n [detail.id]: detail,\n },\n }\n\n this.dispatch(\"changed\")\n }\n\n syncFields(e) {\n this.newFieldAppended(e)\n }\n\n removeField({ detail: id }) {\n delete window.popupSteps[this.element.id].fields[id]\n this.dispatch(\"changed\")\n }\n\n // private\n\n setHeaderBackgroundImage(imagePath, fit = \"cover\") {\n this.headerTargets.forEach((layoutHeader) => {\n layoutHeader.style.backgroundImage = `url(${imagePath})`\n layoutHeader.style.backgroundSize = fit\n })\n\n this.uploadImageButtonTargets.forEach((el) => el.classList.add(\"hidden\"))\n this.imageControlsTargets.forEach((controls) =>\n controls.classList.remove(\"hidden\")\n )\n\n this.imageValue = {\n imagePath,\n objectFit: fit,\n }\n\n window.step = imagePath\n this.dispatch(\"changed\")\n }\n}\n"],"names":["step_controller","Controller","_a","detail","imagePath","layoutHeader","el","controls","fileInput","container","id","fit","__publicField"],"mappings":"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"}