{"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/87-cb2ea6e60b46e4e273ca.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<HTMLElement> {\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":""}