{"version":3,"sources":["webpack:///./app/javascript/schedules/controllers/skd_event_update_type_controller.ts"],"names":["useResetForm","this","element","formTarget","sameRruleValueChanged","sameRruleValue","value","allOptionTarget","hidden","currentOptionRadio","followingOptionRadio","currentOptionTarget","checked","event","cancel","target","HTMLFormElement","updateType","FormData","get","dispatch","detail","targetId","targetFormId","bubbles","$","modal","removeAttribute","dataset","formId","radioTargets","find","Controller","targets","values","sameDay","type","Boolean","default","sameRrule"],"mappings":"+4CAIA,I,sZAOE,WACEA,YAAaC,KAAM,CAAEC,QAASD,KAAKE,e,wBAIrC,WACEF,KAAKG,sBAAsBH,KAAKI,kB,iCAGlC,SAAoBC,GAClBL,KAAKM,gBAAgBC,QAAUF,I,mCAGjC,SAAsBA,GACfL,KAAKQ,oBAAuBR,KAAKS,uBAElCJ,GACFL,KAAKU,oBAAoBH,QAAS,EAClCP,KAAKQ,mBAAmBG,SAAU,IAElCX,KAAKU,oBAAoBH,QAAS,EAClCP,KAAKS,qBAAqBE,SAAU,M,oBAIxC,SAAOC,GACLC,YAAOD,GACP,IAAQE,EAAWF,EAAXE,OACR,GAAMA,aAAkBC,gBAAxB,CAEA,IACMC,EADW,IAAIC,SAASH,GACFI,IAAI,sBAChClB,KAAKmB,SAAS,SAAU,CAAEC,OAAQ,CAAEJ,aAAYK,SAAUrB,KAAKsB,cAAgBC,SAAS,IACxFC,EAAExB,KAAKC,SAASwB,MAAM,W,uBAGxB,WACEzB,KAAKC,QAAQyB,gBAAgB,kB,wBAG/B,WACE,OAAO1B,KAAKC,QAAQ0B,QAAQC,S,8BAG9B,WACE,OAAO5B,KAAK6B,aAAaC,MAAK,kBApDC,MAoDD,EAAGzB,W,gCAGnC,WACE,OAAOL,KAAK6B,aAAaC,MAAK,kBAvDG,MAuDH,EAAGzB,c,iFArDR0B,K,EACpBC,QAAU,CAAC,OAAQ,YAAa,gBAAiB,S,EACjDC,OAAS,CAAEC,QAAS,CAAEC,KAAMC,QAASC,SAAS,GAAQC,UAAW,CAAEH,KAAMC,QAASC,SAAS,K","file":"js/91-10792c6bbc145cb09b71.chunk.js","sourcesContent":["import { Controller } from '@hotwired/stimulus';\nimport { cancel } from 'helpers/dom-helper';\nimport useResetForm from 'stimulus-hooks/use-reset-form';\n\nconst CURRENT_OPTION_RADIO_VALUE = '1';\nconst FOLLOWING_OPTION_RADIO_VALUE = '2';\n\nexport default class extends Controller {\n static targets = ['form', 'allOption', 'currentOption', 'radio'];\n static values = { sameDay: { type: Boolean, default: true }, sameRrule: { type: Boolean, default: true } };\n\n connect(): void {\n useResetForm(this, { element: this.formTarget });\n }\n\n // We want to force check the radio button, else it will be stateless.\n modalShown() {\n this.sameRruleValueChanged(this.sameRruleValue);\n }\n\n sameDayValueChanged(value: boolean) {\n this.allOptionTarget.hidden = !value;\n }\n\n sameRruleValueChanged(value: boolean) {\n if (!this.currentOptionRadio || !this.followingOptionRadio) return;\n\n if (value) {\n this.currentOptionTarget.hidden = false;\n this.currentOptionRadio.checked = true;\n } else {\n this.currentOptionTarget.hidden = true;\n this.followingOptionRadio.checked = true;\n }\n }\n\n submit(event: Event) {\n cancel(event);\n const { target } = event;\n if (!(target instanceof HTMLFormElement)) return;\n\n const formData = new FormData(target);\n const updateType = formData.get('event[update_type]');\n this.dispatch('submit', { detail: { updateType, targetId: this.targetFormId }, bubbles: true });\n $(this.element).modal('hide');\n }\n\n private resetForm(): void {\n this.element.removeAttribute('data-form-id');\n }\n\n private get targetFormId() {\n return this.element.dataset.formId;\n }\n\n private get currentOptionRadio() {\n return this.radioTargets.find(({ value }) => value === CURRENT_OPTION_RADIO_VALUE);\n }\n\n private get followingOptionRadio() {\n return this.radioTargets.find(({ value }) => value === FOLLOWING_OPTION_RADIO_VALUE);\n }\n\n declare readonly sameRruleValue: boolean;\n declare readonly formTarget: HTMLFormElement;\n declare readonly allOptionTarget: HTMLElement;\n declare readonly currentOptionTarget: HTMLElement;\n declare readonly radioTargets: HTMLInputElement[];\n}\n"],"sourceRoot":""}