@if (loading) {

Loading committees...

} @else if (committees.length === 0) {
groups

No committees yet

Create a committee by selecting directors from the current election.

} @else {
@for (c of committees; track c.id) {
@if (c.image) { } @else { groups }

{{ c.name }}

{{ c.status }}
@if (c.description) {

{{ c.description }}

}
person {{ c.members?.length ?? 0 }} member{{ (c.members?.length ?? 0) !== 1 ? 's' : '' }}
@if (c.members?.length > 0) {
@for (m of c.members.slice(0, 5); track m.id) {
@if (getMemberPhoto(m.memberId)) { } @else { {{ m.candidateName?.charAt(0) }} }
} @if (c.members.length > 5) {
+{{ c.members.length - 5 }}
}
@for (m of c.members; track m.id) {
@if (getMemberPhoto(m.memberId)) { } @else { {{ m.candidateName?.charAt(0) }} }
{{ m.candidateName }} {{ m.designation || m.postName }}
}
}
@if (isMeetingsExpanded(c.id)) {
@if (c.status === 'ACTIVE') { } @if (isMeetingsLoading(c.id)) {
Loading...
} @else if (getMeetings(c.id).length === 0) {
event_busy No meetings scheduled
} @else {
@for (m of getMeetings(c.id); track m.id) {
{{ meetingModeIcon(m.mode) }}
{{ m.title }}
calendar_today {{ m.meetingDate | date: 'dd MMM yyyy' }} @if (m.meetingTime) { · schedule {{ m.meetingTime }} } · {{ m.status }}
@if (m.mode === 'ONLINE' && m.platform) {
videocam {{ m.platform }} @if (m.meetingLink) { open_in_new Join }
} @if (m.mode === 'OFFLINE' && m.venue) {
place {{ m.venue }}{{ m.city ? ', ' + m.city : '' }}
}
@if (c.status === 'ACTIVE') {
@if (m.status === 'SCHEDULED') { }
}
}
}
}
@if (c.status === 'ACTIVE') { } @else { block Dissolved }
}
}
@if (showForm) {

{{ editingId ? 'Edit Committee' : 'New Committee' }}

@if (form.image) { Committee photo
edit zoom_in
} @else { add_photo_alternate Add Photo }
@if (form.image) { }
@if (submitted && !form.name?.trim()) { Name is required }
Select Members (Current Election Directors)
@if (directorsLoading) {
Loading directors...
} @else if (availableDirectors.length === 0) {
info No active directors found for the current election.
} @else {
@for (d of availableDirectors; track d.id) {
@if (getMemberPhoto(d.memberId)) { } @else { {{ d.candidateName?.charAt(0) }} }
{{ d.candidateName }} {{ d.designation || d.postName }}
@if (isSelected(d.id)) { check_circle } @else { radio_button_unchecked }
}
{{ form.selectedIds.length }} member{{ form.selectedIds.length !== 1 ? 's' : '' }} selected
}
} @if (showMeetingForm) {

{{ editingMeetingId ? 'Edit Meeting' : 'Schedule Meeting' }}

@if (submittedMeeting && !meetingForm.title?.trim()) { Title is required }
@if (submittedMeeting && !meetingForm.meetingDate) { Date is required }
@if (meetingForm.mode === 'ONLINE') {
video_call Online Details
} @if (meetingForm.mode === 'OFFLINE') {
location_on Venue Details
}
}