{"version":3,"sources":["webpack:///./app/javascript/schedules/elements/patient_list_element.ts"],"names":["PatientListElement","registerElement","target","targets","this","toggleState","attendance","selectedPatientIds","patientIds","active","isUnchecked","checkin","checkboxes","every","c","checked","checkedCheckboxes","map","value","filter","Boolean","ImpulseElement"],"mappings":"m+DAKqBA,G,EADpBC,YAAgB,gB,EAEdC,c,EACAA,c,EACAC,c,4jBAKD,WACEC,KAAKC,gB,yBAMP,WACED,KAAKE,WAAWC,mBAAqBH,KAAKI,WAC1CJ,KAAKE,WAAWG,QAAUL,KAAKM,YAE1BN,KAAKO,UACVP,KAAKO,QAAQJ,mBAAqBH,KAAKI,WACvCJ,KAAKO,QAAQF,QAAUL,KAAKM,e,uBAG9B,WACE,OAAON,KAAKQ,WAAWC,OAAM,SAACC,GAAD,OAAQA,EAAEC,a,sBAGzC,WACE,OAAOX,KAAKY,kBAAkBC,KAAI,SAACH,GAAD,OAAOA,EAAEI,SAAOC,OAAOC,W,6BAG3D,WACE,OAAOhB,KAAKQ,WAAWO,QAAO,qBAAGJ,gB,iFAjCWM,K","file":"js/91-e0c01f05cb48cba6c282.chunk.js","sourcesContent":["import { ImpulseElement, registerElement, target, targets } from '@ambiki/impulse';\nimport type PatientAttendanceElement from './patient_attendance_element';\nimport type PatientCheckinElement from './patient_checkin_element';\n\n@registerElement('patient-list')\nexport default class PatientListElement extends ImpulseElement {\n @target() attendance: PatientAttendanceElement;\n @target() checkin?: PatientCheckinElement;\n @targets() checkboxes: HTMLInputElement[];\n\n /**\n * Called when the element is connected to the DOM.\n */\n connected() {\n this.toggleState();\n }\n\n /**\n * Called when the patient checkboxes are changed.\n */\n toggleState() {\n this.attendance.selectedPatientIds = this.patientIds;\n this.attendance.active = !this.isUnchecked;\n\n if (!this.checkin) return;\n this.checkin.selectedPatientIds = this.patientIds;\n this.checkin.active = !this.isUnchecked;\n }\n\n private get isUnchecked(): boolean {\n return this.checkboxes.every((c) => !c.checked);\n }\n\n private get patientIds(): string[] {\n return this.checkedCheckboxes.map((c) => c.value).filter(Boolean);\n }\n\n private get checkedCheckboxes(): HTMLInputElement[] {\n return this.checkboxes.filter(({ checked }) => checked);\n }\n}\n"],"sourceRoot":""}