{"version":3,"file":"header_controller-DVZoE_S1.js","sources":["../../../app/javascript/controllers/step/request/header_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"remove\", \"name\", \"value\"]\n\n connect() {\n this.headersController = this.element.closest(\"[data-controller*='step--request--headers']\")\n this.saveState()\n\n if(this.element.hasAttribute(\"data-autofocus\")) {\n this.nameTarget.focus()\n }\n }\n\n disconnect() {\n super.disconnect()\n\n this.dispatch(\"removed\", {\n target: this.headersController\n })\n }\n\n onNameChange() {\n this.changedState.name = this.nameTarget.value\n this.removeErrorClass()\n\n if(this.changed) {\n this.element.setAttribute(\"data-changed\", \"\")\n } else {\n this.element.removeAttribute(\"data-changed\")\n }\n\n this.validate()\n }\n\n onValueChange() {\n this.changedState.value = this.valueTarget.value\n this.removeErrorClass()\n\n if(this.changed) {\n this.element.setAttribute(\"data-changed\", \"\")\n } else {\n this.element.removeAttribute(\"data-changed\")\n }\n\n this.validate()\n }\n\n allowRemove() {\n this.removeTarget.classList.remove(\"hidden\")\n }\n\n preventRemove() {\n this.removeTarget.classList.add(\"hidden\")\n }\n\n remove() {\n if(this.element.hasAttribute(\"data-saved\")) {\n this.element.classList.add(\"hidden\")\n } else {\n this.element.remove()\n }\n }\n\n setValue({ detail: value }) {\n this.valueTarget.value = value\n }\n\n setData({ detail: { name, value } }) {\n this.nameTarget.value = name\n this.valueTarget.value = value\n\n this.saveState()\n }\n\n saveState() {\n this.state = {\n name: this.nameTarget.value,\n value: this.valueTarget.value\n }\n\n this.changedState = {...this.state}\n this.element.removeAttribute(\"data-changed\")\n\n this.validate()\n }\n\n restoreState() {\n this.nameTarget.value = this.state.name\n this.valueTarget.value = this.state.value\n\n this.saveState()\n }\n\n invalidate() {\n if(this.changedState.name.trim().length === 0) {\n this.nameTarget.classList.add(\"error\")\n }\n\n if(this.changedState.value.trim().length === 0) {\n this.valueTarget.classList.add(\"error\")\n }\n }\n\n // private\n\n validate() {\n if(this.invalid) {\n this.element.setAttribute(\"data-invalid\", \"\")\n } else {\n this.element.removeAttribute(\"data-invalid\")\n }\n }\n\n removeErrorClass() {\n this.nameTarget.classList.remove(\"error\")\n this.valueTarget.classList.remove(\"error\")\n }\n\n get invalid() {\n return this.changedState.name.trim().length === 0 || this.changedState.value.trim().length === 0\n }\n\n get changed() {\n return Object.keys(this.state).some((key) => this.state[key] !== this.changedState[key])\n }\n}\n"],"names":["header_controller","Controller","value","name","key","__publicField"],"mappings":"4MAEe,MAAKA,UAASC,CAAW,CAGtC,SAAU,CACR,KAAK,kBAAoB,KAAK,QAAQ,QAAQ,6CAA6C,EAC3F,KAAK,UAAS,EAEX,KAAK,QAAQ,aAAa,gBAAgB,GAC3C,KAAK,WAAW,MAAK,CAE3B,CAEE,YAAa,CACX,MAAM,WAAU,EAEhB,KAAK,SAAS,UAAW,CACvB,OAAQ,KAAK,iBACd,CAAA,CACL,CAEE,cAAe,CACb,KAAK,aAAa,KAAO,KAAK,WAAW,MACzC,KAAK,iBAAgB,EAElB,KAAK,QACN,KAAK,QAAQ,aAAa,eAAgB,EAAE,EAE5C,KAAK,QAAQ,gBAAgB,cAAc,EAG7C,KAAK,SAAQ,CACjB,CAEE,eAAgB,CACd,KAAK,aAAa,MAAQ,KAAK,YAAY,MAC3C,KAAK,iBAAgB,EAElB,KAAK,QACN,KAAK,QAAQ,aAAa,eAAgB,EAAE,EAE5C,KAAK,QAAQ,gBAAgB,cAAc,EAG7C,KAAK,SAAQ,CACjB,CAEE,aAAc,CACZ,KAAK,aAAa,UAAU,OAAO,QAAQ,CAC/C,CAEE,eAAgB,CACd,KAAK,aAAa,UAAU,IAAI,QAAQ,CAC5C,CAEE,QAAS,CACJ,KAAK,QAAQ,aAAa,YAAY,EACvC,KAAK,QAAQ,UAAU,IAAI,QAAQ,EAEnC,KAAK,QAAQ,OAAM,CAEzB,CAEE,SAAS,CAAE,OAAQC,GAAS,CAC1B,KAAK,YAAY,MAAQA,CAC7B,CAEE,QAAQ,CAAE,OAAQ,CAAE,KAAAC,EAAM,MAAAD,CAAO,CAAA,EAAI,CACnC,KAAK,WAAW,MAAQC,EACxB,KAAK,YAAY,MAAQD,EAEzB,KAAK,UAAS,CAClB,CAEE,WAAY,CACV,KAAK,MAAQ,CACX,KAAM,KAAK,WAAW,MACtB,MAAO,KAAK,YAAY,KAC9B,EAEI,KAAK,aAAe,CAAC,GAAG,KAAK,KAAK,EAClC,KAAK,QAAQ,gBAAgB,cAAc,EAE3C,KAAK,SAAQ,CACjB,CAEE,cAAe,CACb,KAAK,WAAW,MAAQ,KAAK,MAAM,KACnC,KAAK,YAAY,MAAQ,KAAK,MAAM,MAEpC,KAAK,UAAS,CAClB,CAEE,YAAa,CACR,KAAK,aAAa,KAAK,KAAM,EAAC,SAAW,GAC1C,KAAK,WAAW,UAAU,IAAI,OAAO,EAGpC,KAAK,aAAa,MAAM,KAAM,EAAC,SAAW,GAC3C,KAAK,YAAY,UAAU,IAAI,OAAO,CAE5C,CAIE,UAAW,CACN,KAAK,QACN,KAAK,QAAQ,aAAa,eAAgB,EAAE,EAE5C,KAAK,QAAQ,gBAAgB,cAAc,CAEjD,CAEE,kBAAmB,CACjB,KAAK,WAAW,UAAU,OAAO,OAAO,EACxC,KAAK,YAAY,UAAU,OAAO,OAAO,CAC7C,CAEE,IAAI,SAAU,CACZ,OAAO,KAAK,aAAa,KAAK,KAAM,EAAC,SAAW,GAAK,KAAK,aAAa,MAAM,KAAI,EAAG,SAAW,CACnG,CAEE,IAAI,SAAU,CACZ,OAAO,OAAO,KAAK,KAAK,KAAK,EAAE,KAAME,GAAQ,KAAK,MAAMA,CAAG,IAAM,KAAK,aAAaA,CAAG,CAAC,CAC3F,CACA,CA3HEC,EADkBL,EACX,UAAU,CAAC,SAAU,OAAQ,OAAO"}