{"version":3,"file":"dropzone_controller-Dw8G0H7M.js","sources":["../../../app/javascript/controllers/journeys/dropzone_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\nimport interact from \"interactjs\"\nimport { get } from \"@rails/request.js\"\n\nimport {useToastNotifiers} from \"../mixins/useToastNotifiers\"\n\nexport default class extends Controller {\n static targets = [\"icon\", \"dropzone\"]\n static values = {\n replace: String,\n line: String,\n connect: String,\n branch: String,\n data: String,\n }\n\n initialize() {\n super.initialize()\n this.onDrop = this.onDrop.bind(this)\n this.onDragEnter = this.onDragEnter.bind(this)\n this.onDragLeave = this.onDragLeave.bind(this)\n this.onDropDeactivate = this.onDropDeactivate.bind(this)\n\n this.element.id ||= crypto.randomUUID()\n }\n\n connect() {\n let dropzone = this.element\n\n if (this.hasDropzoneTarget) {\n dropzone = this.dropzoneTarget\n }\n\n interact(dropzone).dropzone({\n ondrop: this.onDrop,\n ondragenter: this.onDragEnter,\n ondragleave: this.onDragLeave,\n ondropdeactivate: this.onDropDeactivate,\n })\n\n useToastNotifiers(this)\n }\n\n onDrop({ relatedTarget }) {\n const stepType = relatedTarget.dataset.kind\n\n if (stepType === \"wait\") {\n if (this.parentIsWaitStep || this.childIsWaitStep) {\n relatedTarget.style?.removeProperty(\"transform\")\n this.showToastErrorMessage(this.element.dataset.waitErrorMessage)\n return\n }\n }\n\n if (stepType === \"stop\") {\n if (this.parentIsStopStep || this.childIsStopStep) {\n console.log(this.element.dataset)\n relatedTarget.style?.removeProperty(\"transform\")\n this.showToastErrorMessage(this.element.dataset.stopErrorMessage)\n return\n }\n }\n\n this.getStepFromServer(relatedTarget)\n }\n\n onDragEnter() {\n this.iconTarget.classList.remove(\"hidden\")\n }\n\n onDragLeave() {\n this.iconTarget.classList.add(\"hidden\")\n }\n\n onDropDeactivate() {\n this.iconTarget.classList.add(\"hidden\")\n }\n\n async getStepFromServer(relatedTarget) {\n const url = relatedTarget.parentElement.dataset[\"journeys-StepUrlValue\"]\n\n const response = await get(url, {\n responseKind: \"turbo-stream\",\n query: {\n after: this.replaceValue || this.element.id,\n parent_id: this.lineValue,\n wait:\n this.element.closest(\"[data-step='wait']\")?.contains(this.element) ||\n \"\",\n branch: this.branchValue,\n connect: this.connectValue,\n trigger_id: window.triggerId,\n channel_trigger: window.triggerIsChannel,\n child: this.element.dataset.child || \"\",\n data: this.dataValue,\n nested:\n this.element\n .closest(\"[data-step='condition']\")\n ?.contains(this.element) || \"\",\n },\n })\n\n relatedTarget.style?.removeProperty(\"transform\")\n window.dispatchEvent(\n new CustomEvent(\"step:show\", { bubbles: true, cancelable: true })\n )\n }\n\n syncTrigger({ detail }) {\n this.triggerId = detail\n }\n\n // private\n\n get parentIsWaitStep() {\n return (\n this.element.previousElementSibling.dataset.controller === \"step--wait\"\n )\n }\n\n get parentIsStopStep() {\n return (\n this.element.previousElementSibling.dataset.controller === \"step--stop\"\n )\n }\n\n get childIsWaitStep() {\n return (\n document.getElementById(this.element.dataset.child)?.dataset\n .controller === \"step--wait\"\n )\n }\n\n get childIsStopStep() {\n return (\n document.getElementById(this.element.dataset.child)?.dataset\n .controller === \"step--stop\"\n )\n }\n}\n"],"names":["dropzone_controller","Controller","_a","dropzone","interact","useToastNotifiers","relatedTarget","stepType","_b","url","get","_c","detail","__publicField"],"mappings":"kWAMe,MAAKA,UAASC,CAAW,CAUtC,YAAa,OACX,MAAM,WAAU,EAChB,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,GAEvDC,EAAA,KAAK,SAAQ,KAAbA,EAAa,GAAO,OAAO,WAAU,EACzC,CAEE,SAAU,CACR,IAAIC,EAAW,KAAK,QAEhB,KAAK,oBACPA,EAAW,KAAK,gBAGlBC,EAASD,CAAQ,EAAE,SAAS,CAC1B,OAAQ,KAAK,OACb,YAAa,KAAK,YAClB,YAAa,KAAK,YAClB,iBAAkB,KAAK,gBACxB,CAAA,EAEDE,EAAkB,IAAI,CAC1B,CAEE,OAAO,CAAE,cAAAC,GAAiB,SACxB,MAAMC,EAAWD,EAAc,QAAQ,KAEvC,GAAIC,IAAa,SACX,KAAK,kBAAoB,KAAK,iBAAiB,EACjDL,EAAAI,EAAc,QAAd,MAAAJ,EAAqB,eAAe,aACpC,KAAK,sBAAsB,KAAK,QAAQ,QAAQ,gBAAgB,EAChE,MACR,CAGI,GAAIK,IAAa,SACX,KAAK,kBAAoB,KAAK,iBAAiB,CACjD,QAAQ,IAAI,KAAK,QAAQ,OAAO,GAChCC,EAAAF,EAAc,QAAd,MAAAE,EAAqB,eAAe,aACpC,KAAK,sBAAsB,KAAK,QAAQ,QAAQ,gBAAgB,EAChE,MACR,CAGI,KAAK,kBAAkBF,CAAa,CACxC,CAEE,aAAc,CACZ,KAAK,WAAW,UAAU,OAAO,QAAQ,CAC7C,CAEE,aAAc,CACZ,KAAK,WAAW,UAAU,IAAI,QAAQ,CAC1C,CAEE,kBAAmB,CACjB,KAAK,WAAW,UAAU,IAAI,QAAQ,CAC1C,CAEE,MAAM,kBAAkBA,EAAe,WACrC,MAAMG,EAAMH,EAAc,cAAc,QAAQ,uBAAuB,EAEtD,MAAMI,EAAID,EAAK,CAC9B,aAAc,eACd,MAAO,CACL,MAAO,KAAK,cAAgB,KAAK,QAAQ,GACzC,UAAW,KAAK,UAChB,OACEP,EAAA,KAAK,QAAQ,QAAQ,oBAAoB,IAAzC,YAAAA,EAA4C,SAAS,KAAK,WAC1D,GACF,OAAQ,KAAK,YACb,QAAS,KAAK,aACd,WAAY,OAAO,UACnB,gBAAiB,OAAO,iBACxB,MAAO,KAAK,QAAQ,QAAQ,OAAS,GACrC,KAAM,KAAK,UACX,SACEM,EAAA,KAAK,QACF,QAAQ,yBAAyB,IADpC,YAAAA,EAEI,SAAS,KAAK,WAAY,EACjC,CACF,CAAA,GAEDG,EAAAL,EAAc,QAAd,MAAAK,EAAqB,eAAe,aACpC,OAAO,cACL,IAAI,YAAY,YAAa,CAAE,QAAS,GAAM,WAAY,EAAM,CAAA,CACtE,CACA,CAEE,YAAY,CAAE,OAAAC,GAAU,CACtB,KAAK,UAAYA,CACrB,CAIE,IAAI,kBAAmB,CACrB,OACE,KAAK,QAAQ,uBAAuB,QAAQ,aAAe,YAEjE,CAEE,IAAI,kBAAmB,CACrB,OACE,KAAK,QAAQ,uBAAuB,QAAQ,aAAe,YAEjE,CAEE,IAAI,iBAAkB,OACpB,QACEV,EAAA,SAAS,eAAe,KAAK,QAAQ,QAAQ,KAAK,IAAlD,YAAAA,EAAqD,QAClD,cAAe,YAExB,CAEE,IAAI,iBAAkB,OACpB,QACEA,EAAA,SAAS,eAAe,KAAK,QAAQ,QAAQ,KAAK,IAAlD,YAAAA,EAAqD,QAClD,cAAe,YAExB,CACA,CApIEW,EADkBb,EACX,UAAU,CAAC,OAAQ,UAAU,GACpCa,EAFkBb,EAEX,SAAS,CACd,QAAS,OACT,KAAM,OACN,QAAS,OACT,OAAQ,OACR,KAAM,MACV"}