{"version":3,"file":"headers_controller-AhGCOWAF.js","sources":["../../../app/javascript/controllers/step/request/headers_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"template\", \"content\", \"header\", \"name\"]\n\n add(removeable = true, focus = true) {\n const template = this.templateTarget.cloneNode(true)\n template.removeAttribute(\"hidden\")\n template.removeAttribute(\"data-template\")\n template.classList.remove(\"hidden\")\n\n template.setAttribute(\"data-step--request--headers-target\", \"header\")\n template.querySelectorAll(\"input\").forEach(input => input.disabled = false)\n\n if(focus) {\n template.setAttribute(\"data-autofocus\", \"\")\n }\n\n this.contentTarget.appendChild(template)\n\n if(removeable) {\n this.dispatch(\"allow-remove\", {\n target: this.defaultHeader\n })\n }\n\n setTimeout(() => this.sync(), 1)\n }\n\n sync() {\n if(this.headerTargets.length === 1) {\n this.dispatch(\"prevent-remove\", {\n target: this.defaultHeader\n })\n }\n }\n\n clear() {\n this.headerTargets.forEach(header => header.remove())\n }\n\n setContentType({ detail: contentType}) {\n const contentTypeHeader = this.nameTargets.find(name => name.value.toLowerCase() === \"Content-Type\".toLowerCase())\n\n if(contentTypeHeader) {\n this.dispatch(\"set:value\", {\n target: contentTypeHeader.parentElement,\n detail: contentType\n })\n\n return\n }\n\n const dispatchEvent = () => {\n this.dispatch(\"set\", {\n target: this.headerTargets[this.headerTargets.length - 1],\n detail: {\n name: \"Content-Type\",\n value: contentType\n }\n })\n }\n\n const emptyHeader = this.nameTargets\n .filter((name) => !name.parentElement.hasAttribute(\"data-template\"))\n .find(name => name.value.length === 0)\n\n if (emptyHeader && emptyHeader.nextElementSibling.value.length === 0) {\n dispatchEvent()\n\n return\n }\n\n this.add(true, false)\n setTimeout(() => this.sync(), 1)\n setTimeout(dispatchEvent, 10)\n }\n\n save() {\n this.headerTargets.forEach(header => {\n this.dispatch(\"save\", {\n target: header\n })\n\n header.setAttribute(\"data-saved\", \"\")\n })\n }\n\n restoreState() {\n this.headerTargets.forEach(header => {\n if(header.hasAttribute(\"data-saved\")) {\n this.dispatch(\"restore\", {\n target: header\n })\n\n header.classList.remove(\"hidden\")\n } else if(this.headerTargets.length > 1) {\n header.remove()\n }\n })\n }\n\n // private\n\n get defaultHeader() {\n return this.headerTargets[0]\n }\n}\n"],"names":["headers_controller","Controller","removeable","focus","template","input","header","contentType","contentTypeHeader","name","dispatchEvent","emptyHeader","__publicField"],"mappings":"4MAEe,MAAKA,UAASC,CAAW,CAGtC,IAAIC,EAAa,GAAMC,EAAQ,GAAM,CACnC,MAAMC,EAAW,KAAK,eAAe,UAAU,EAAI,EACnDA,EAAS,gBAAgB,QAAQ,EACjCA,EAAS,gBAAgB,eAAe,EACxCA,EAAS,UAAU,OAAO,QAAQ,EAElCA,EAAS,aAAa,qCAAsC,QAAQ,EACpEA,EAAS,iBAAiB,OAAO,EAAE,QAAQC,GAASA,EAAM,SAAW,EAAK,EAEvEF,GACDC,EAAS,aAAa,iBAAkB,EAAE,EAG5C,KAAK,cAAc,YAAYA,CAAQ,EAEpCF,GACD,KAAK,SAAS,eAAgB,CAC5B,OAAQ,KAAK,aACd,CAAA,EAGH,WAAW,IAAM,KAAK,KAAI,EAAI,CAAC,CACnC,CAEE,MAAO,CACF,KAAK,cAAc,SAAW,GAC/B,KAAK,SAAS,iBAAkB,CAC9B,OAAQ,KAAK,aACd,CAAA,CAEP,CAEE,OAAQ,CACN,KAAK,cAAc,QAAQI,GAAUA,EAAO,OAAQ,CAAA,CACxD,CAEE,eAAe,CAAE,OAAQC,CAAW,EAAG,CACrC,MAAMC,EAAoB,KAAK,YAAY,KAAKC,GAAQA,EAAK,MAAM,gBAAkB,eAAe,YAAa,CAAA,EAEjH,GAAGD,EAAmB,CACpB,KAAK,SAAS,YAAa,CACzB,OAAQA,EAAkB,cAC1B,OAAQD,CACT,CAAA,EAED,MACN,CAEI,MAAMG,EAAgB,IAAM,CAC1B,KAAK,SAAS,MAAO,CACnB,OAAQ,KAAK,cAAc,KAAK,cAAc,OAAS,CAAC,EACxD,OAAQ,CACN,KAAM,eACN,MAAOH,CACjB,CACO,CAAA,CACP,EAEUI,EAAc,KAAK,YACtB,OAAQF,GAAS,CAACA,EAAK,cAAc,aAAa,eAAe,CAAC,EAClE,KAAKA,GAAQA,EAAK,MAAM,SAAW,CAAC,EAEvC,GAAIE,GAAeA,EAAY,mBAAmB,MAAM,SAAW,EAAG,CACpED,EAAa,EAEb,MACN,CAEI,KAAK,IAAI,GAAM,EAAK,EACpB,WAAW,IAAM,KAAK,KAAI,EAAI,CAAC,EAC/B,WAAWA,EAAe,EAAE,CAChC,CAEE,MAAO,CACL,KAAK,cAAc,QAAQJ,GAAU,CACnC,KAAK,SAAS,OAAQ,CACpB,OAAQA,CACT,CAAA,EAEDA,EAAO,aAAa,aAAc,EAAE,CACrC,CAAA,CACL,CAEE,cAAe,CACb,KAAK,cAAc,QAAQA,GAAU,CAChCA,EAAO,aAAa,YAAY,GACjC,KAAK,SAAS,UAAW,CACvB,OAAQA,CACT,CAAA,EAEDA,EAAO,UAAU,OAAO,QAAQ,GACxB,KAAK,cAAc,OAAS,GACpCA,EAAO,OAAM,CAEhB,CAAA,CACL,CAIE,IAAI,eAAgB,CAClB,OAAO,KAAK,cAAc,CAAC,CAC/B,CACA,CAxGEM,EADkBZ,EACX,UAAU,CAAC,WAAY,UAAW,SAAU,MAAM"}