Variables
CLIENT_URL
CLIENT_URL: string
Const CellLayout
CellLayout: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`display: flex;align-items: flex-start;justify-content: space-between;padding: ${fromTheme('ws', 'xsmall')};`
Const CourseListing
CourseListing: string & StyledComponentBase<"li", DefaultTheme, __type, never> & object = styled.li`font-size: .8em;color: #000000;text-align: left;`
Const CourseListingButton
Course
ListingButton: string & StyledComponentBase<"button", DefaultTheme, object & CourseListingButtonProps, "type"> & object = styled.button.attrs({type: 'button',})<CourseListingButtonProps>`background-color: ${({ isHighlighted }) => (isHighlighted ? 'rgba(255, 255, 255, 0.5)' : 'transparent')};border: none;font-size: inherit;&:disabled {color: ${fromTheme('color', 'text', 'medium')};opacity: 0.8;}padding: 0;margin: 0;width: 100%;cursor: ${({ disabled }) => (disabled ? '' : 'pointer')};text-align: left;`
Const DayBlockBody
DayBlockBody: string & StyledComponentBase<"div", DefaultTheme, object, never> & object = styled.div<DayBlockBodyProps>`display: grid;grid-row: 2/ ${({ numRows }) => numRows};grid-template-columns: repeat(auto-fit, minmax(30px, 1fr));grid-template-rows: ${({ numRows, rowHeight }) => (`repeat(${numRows - 1}, ${rowHeight})`)};border-left: 1px solid #ccc;border-right: 1px solid #ccc;border-bottom: 2px solid #ccc;`
Const DayBlockHeading
DayBlockHeading: string & StyledComponentBase<"h3", DefaultTheme, object, never> & object = styled.h3<DayBlockHeadingProps>`grid-row: 1;border: 1px solid #ccc;border-bottom: none;text-align: center;padding-top: 0.5em;`
Const DayBlockWrapper
DayBlockWrapper: string & StyledComponentBase<"div", DefaultTheme, object, never> & object = styled.div<DayBlockWrapperProps>`background: rgba(255,255,255,0);grid-row: 1;grid-column: ${({ column }) => column + 2};display: grid;grid-template-rows: 3em auto;`
Const FIRST_HOUR
FIRST_HOUR: 8 = 8
Const GlobalMessageWrapper
GlobalMessageWrapper: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`position: fixed;bottom: 0;left: 0;width: 100%;`
HTTPS_ON
HTTPS_ON: string
HTTPS_PRIVATE_KEY
HTTPS_PRIVATE_KEY: string
HTTPS_PUBLIC_CERT
HTTPS_PUBLIC_CERT: string
Const HUID
HUID: "88888888" = "88888888"
Const HourHead
Hour
Head: string & StyledComponentBase<"div", DefaultTheme, HourHeadProps, never> & object = styled.div<HourHeadProps>`grid-column: 1;grid-row: ${({ row }) => row + 2};`
Const InstructionalTextBox
InstructionalTextBox: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`border: ${fromTheme('border', 'light')};margin-top: ${fromTheme('ws', 'xsmall')};margin-bottom: ${fromTheme('ws', 'xsmall')};padding: ${fromTheme('ws', 'xsmall')};font-family: ${fromTheme('font', 'note', 'family')};font-size: ${fromTheme('font', 'note', 'size')};& p {margin-bottom: 0.5em;}`
Const InstructorListItem
InstructorListItem: string & StyledComponentBase<"li", DefaultTheme, ListItemProps, never> & object = styled(ListItem)`display: flex;justify-content: start;align-items: baseline;& .instructor-name {flex-grow: 1;}`
Const InstructorModalBody
InstructorModalBody: string & StyledComponentBase<ForwardRefExoticComponent<object & object>, DefaultTheme, __type, never> & object = styled(ModalBody)`min-height: 32em;`
Const LAST_HOUR
LAST_HOUR: 22 = 22
Const MANDATORY_COLUMNS
MANDATORY_
COLUMNS: COURSE_TABLE_COLUMN[] = [COURSE_TABLE_COLUMN.AREA,COURSE_TABLE_COLUMN.CATALOG_NUMBER,]
Const MINUTE_RESOLUTION
MINUTE_RESOLUTION: 5 = 5
Const MULTILINE_SEPARATOR
MULTILINE_SEPARATOR: ";" = ";"
Const MeetingGrid
MeetingGrid: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`display: grid;grid-template-areas: "time campus room";column-gap: ${fromTheme('ws', 'xsmall')};align-items: baseline;`
Const MeetingGridSection
MeetingGridSection: string & StyledComponentBase<"div", DefaultTheme, object, never> & object = styled.div<{area: string}>`grid-area: ${({ area }): string => area};display: flex;flex-direction: column;align-items: flex-start;`
Const MeetingModalBodyGrid
MeetingModalBodyGrid: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`width: 75vw;height: 75vh;display: grid;grid-template-areas:"meet room""note room";grid-template-rows: 'auto 1fr';grid-template-columns: 1fr 1fr;grid-column-gap: ${fromTheme('ws', 'xlarge')};`
Const MeetingScheduler
MeetingScheduler: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`display: flex;flex-direction: column;grid-area: meet;`
Const MeetingSchedulerBody
MeetingSchedulerBody: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`flex: 1;overflow: auto;`
Const MeetingSchedulerHeader
MeetingSchedulerHeader: string & StyledComponentBase<"h3", DefaultTheme, __type, never> & object = styled.h3`flex: 0;`
Const MemoizedCourseInstanceTableBody
Const MessageContext
MessageContext: Context<function> = createContext<DispatchMessage>(null)
NODE_ENV
NODE_ENV: string
Const NUM_SEMESTERS
NUM_SEMESTERS: number = NUM_YEARS * 2
Const NUM_YEARS
NUM_YEARS: 4 = 4
Const NotesSection
NotesSection: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`grid-area: note;`
PUBLIC_CLIENT_URL
PUBLIC_CLIENT_URL: string
Const PrefixButton
PrefixButton: string & StyledComponentBase<FunctionComponent<ButtonProps>, DefaultTheme, ButtonProps & object, never> & object = styled(Button) <ButtonProps & { prefix: string, isPrefixActive: boolean; }>`margin: ${fromTheme('ws', 'small')};opacity : ${({ isPrefixActive }) => (isPrefixActive ? '' : 0.5)};background-color: ${({ prefix }) => getCatPrefixColor(prefix)};`
Const RoomAvailability
RoomAvailability: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`display: flex;flex-direction: column;grid-area: room;`
Const RoomAvailabilityBody
RoomAvailabilityBody: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`flex: 1;overflow-y: auto;`
Const RoomAvailabilityHeader
RoomAvailabilityHeader: string & StyledComponentBase<"h3", DefaultTheme, __type, never> & object = styled.h3`flex: 0;`
Const RoomSelectionPrompt
RoomSelectionPrompt: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`border: ${fromTheme('border', 'light')};border-top: none;text-align: center;font-weight: ${fromTheme('font', 'bold', 'weight')};font-size: ${fromTheme('font', 'bold', 'size')};font-family: ${fromTheme('font', 'bold', 'family')};padding: ${fromTheme('ws', 'medium')};`
Const RoomSelectorWrapper
RoomSelectorWrapper: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`padding-right: 25%;min-width: 50em;`
SERVER_PORT
SERVER_PORT: string
SERVER_URL
SERVER_URL: string
Const SessionBlockBody
SessionBlockBody: string & StyledComponentBase<"ul", DefaultTheme, object, never> & object = styled.ul<SessionBlockBodyProps>`list-style: none;padding-left: ${fromTheme('ws', 'xsmall')};padding-right: ${fromTheme('ws', 'xsmall')};`
Const SessionBlockBodyWrapper
SessionBlockBodyWrapper: string & StyledComponentBase<"div", DefaultTheme, object, never> & object = styled.div<SessionBlockBodyWrapperProps>`overflow-y: hidden;position: absolute;width: 100%;top: 2em;bottom: 0;border-top: 1px solid rgba(255,255,255,0.5);&:hover {overflow-y: ${({ isPopoverVisible }): string => (isPopoverVisible? 'hidden': 'auto')};}`
Const SessionBlockHeading
SessionBlockHeading: string & StyledComponentBase<"h4", DefaultTheme, object, never> & object = styled.h4<SessionBlockHeadingProps>`background-color: inherit;position: absolute;top: 0;width: 100%;padding-left: ${fromTheme('ws', 'xsmall')};padding-right: ${fromTheme('ws', 'xsmall')};font-size: 1.2em;text-transform: uppercase;`
Const SessionBlockWrapper
Session
BlockWrapper: string & StyledComponentBase<"div", DefaultTheme, SessionBlockWrapperProps, never> & object = styled.div<SessionBlockWrapperProps>`background-color: ${({ prefix }) => getCatPrefixColor(prefix)};grid-row: ${({ startRow, duration }) => `${startRow}/ span ${duration}`};border-left: 1px solid #fff;border-right: 1px solid #fff;border-bottom: 1px solid #fff;min-width: 3.5em;position: relative;opacity: ${({ isFaded }) => (isFaded ? '0.6' : '1')};::-webkit-scrollbar {width: 0.2em;height: 0.2em}${({ hasBottomOverflow, theme }) => (// Show down indicator when there are courses overflowing the bottomhasBottomOverflow? `&:after {content: '${OVERFLOW.DOWN}';position: absolute;bottom: ${theme.ws.zero};right: ${theme.ws.small};color: ${theme.color.text.medium};}`: null)};${({ hasTopOverflow, theme }) => (// Show up indicator when there are courses overflowing the tophasTopOverflow? `&:before {content: '${OVERFLOW.UP}';position: absolute;top: 2em;right: ${theme.ws.small};color: ${theme.color.text.medium};}`: null)};`
Const StyledButtonLayout
StyledButtonLayout: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled(ButtonLayout)`margin-top: ${fromTheme('ws', 'xsmall')};margin-bottom: ${fromTheme('ws', 'xsmall')};`
Const StyledCampusIcon
StyledCampusIcon: string & StyledComponentBase<"strong", DefaultTheme, __type, never> & object = styled.strong`display: flex;align-items: center;justify-content: center;background-color: ${fromTheme('color', 'text', 'dark')};text-transform: capitalize;color: ${fromTheme('color', 'text', 'light')};border-radius: 50%;width: 1.5em;height: 1.5em;font-size: ${fromTheme('font', 'bold', 'size')};font-weight: ${fromTheme('font', 'bold', 'weight')};font-family: ${fromTheme('font', 'bold', 'family')};user-select: none;cursor: default;`
Const StyledDay
StyledDay: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: day;display: inline-block;max-width: max-content;min-width: max-content;`
Const StyledDeleteButton
StyledDeleteButton: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: delete;justify-self: start;`
Const StyledEditButton
StyledEditButton: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: edit;justify-self: end;`
Const StyledEnd
StyledEnd: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: end;min-width: max-content;`
Const StyledError
StyledError: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: error;justify-self: start;`
Const StyledFacultyNote
StyledFacultyNote: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`font-style: italic;`
Const StyledMeetingInfo
StyledMeetingInfo: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: info;`
Const StyledMeetingRow
Styled
MeetingRow: string & StyledComponentBase<"li", DefaultTheme, StyledMeetingRowProps, never> & object = styled.li<StyledMeetingRowProps>`display: grid;align-items: center;border-bottom: ${fromTheme('border', 'light')};grid-template-areas: ${({ isRowExpanded }) => (generateGrid(isRowExpanded))};grid-template-columns: min-content;grid-template-rows: ${({ isRowExpanded }) => (isRowExpanded? 'repeat(4, minmax(22px, auto));': '')};padding: ${fromTheme('ws', 'xsmall')} 0px;`
Const StyledRoom
StyledRoom: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`grid-area: room;`
Const StyledShowCloseButtons
StyledShowCloseButtons: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`grid-area: showclose;justify-self: end;> * {margin-left: ${fromTheme('ws', 'xsmall')};}`
Const StyledStart
StyledStart: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: start;min-width: max-content;`
Const StyledTimeslot
StyledTimeslot: string & StyledComponentBase<"span", DefaultTheme, __type, never> & object = styled.span`grid-area: timeslot;height: 100%;justify-self: end;`
Const StyledVerticalSpace
StyledVerticalSpace: string & StyledComponentBase<"div", DefaultTheme, __type, never> & object = styled.div`margin-top: ${fromTheme('ws', 'xsmall')};margin-bottom: ${fromTheme('ws', 'xsmall')};`
Const TimeRule
Time
Rule: string & StyledComponentBase<"div", DefaultTheme, TimeRuleProps, never> & object = styled.div<TimeRuleProps>`grid-row: ${({ row }) => row + 2};grid-column: 1 / -1;border-top: ${({ rowStyle }) => `2px ${rowStyle} #ccc`};margin-left: 3em;`
Const UserContext
User
Context: Context<User> = createContext<User>(null)
Const WeekBlockWrapper
WeekBlockWrapper: string & StyledComponentBase<"div", DefaultTheme, object, never> & object = styled.div<WeekBlockWrapperProps>`display: grid;grid-template-columns: ${({ numColumns }) => `3em repeat(${numColumns}, auto)`};grid-template-rows: ${({ numRows, rowHeight }) => `3em repeat(${numRows}, ${rowHeight})`};grid-gap: 0em;padding: 0em;min-width: max-content;`
Const absences
absences: object[] = [{type: ABSENCE_TYPE.PARENTAL_LEAVE,faculty: 'Malan',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Rycroft',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Waldo',},{type: ABSENCE_TYPE.RESEARCH_LEAVE,faculty: 'Smith',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Protopapas',},{type: ABSENCE_TYPE.RESEARCH_LEAVE,faculty: 'Rader',},{type: ABSENCE_TYPE.SABBATICAL_ELIGIBLE,faculty: 'Tanner',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Narang',},{type: ABSENCE_TYPE.SABBATICAL,faculty: 'Moyer',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Mundy',},{type: ABSENCE_TYPE.SABBATICAL,faculty: 'Rosen',},{type: ABSENCE_TYPE.SABBATICAL_ELIGIBLE,faculty: 'Wood',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Glickman',},{type: ABSENCE_TYPE.SABBATICAL_ELIGIBLE,faculty: 'Tamer',},{type: ABSENCE_TYPE.PRESENT,faculty: 'Kozinsky',},{type: ABSENCE_TYPE.TEACHING_RELIEF,faculty: 'Lewis',},]
Const acadYear
acadYear: 2022 = 2022
Const adminRoomsResponse
admin
RoomsResponse: RoomAdminResponse[] = [secRoomResponse,oxfordRoomResponse,bauerRoomResponse,]
Const adminUser
admin
User: User = new User({firstName: 'Admin',lastName: 'User',eppn: 'ABCDEFGHIJKLMN@harvard.edu',email: 'adminUser@seas.harvard.edu',groups: [GROUP.ADMIN],})
Const appVersion
appVersion: string = process.env.APP_VERSION
Const appliedMathFacultyMember
applied
MathFacultyMember: Faculty & object = Object.assign(new Faculty(), {id: '01ac81d4-9644-4d6b-9daa-022b26903130',area: Object.assign(new Area(), {id: 'ee5d2d73-801e-44a2-8e89-45942bf2de43',name: 'AM',}),firstName: 'Susan',lastName: 'Lee',HUID: '90132717',jointWith: 'PHYS (0.5 FTE SEAS)',notes: 'Prefers Allston campus',category: FACULTY_TYPE.LADDER,})
Const areas
areas: object[] = [{ name: 'ACS' },{ name: 'AM' },{ name: 'AP' },{ name: 'BE' },{ name: 'CS' },{ name: 'EE' },{ name: 'ESE' },{ name: 'Mat & ME' },{ name: 'SEMINAR' },{ name: 'MDE' },]
Const array
array: string[] = ['Life', 'Universe', 'Everything']
Const bioengineeringFacultyMember
bioengineering
FacultyMember: Faculty & object = Object.assign(new Faculty(), {id: '38ae66ec-7589-4948-8e21-41d142db4d3b',area: 'BE',firstName: 'Amanda',lastName: 'Su',HUID: '50602117',category: FACULTY_TYPE.LADDER,})
Const buildings
buildings: object[] = [{campus: 'Cambridge',name: 'Maxwell Dworkin',},{campus: 'Cambridge',name: 'Pierce Hall',},{campus: 'Cambridge',name: 'Northwest Building',},{campus: 'Allston',name: 'SEC',},{campus: 'Allston',name: '114 Western Avenue',},]
Const campuses
campuses: object[] = [{ name: 'Allston' },{ name: 'Cambridge' },]
Const catalogPrefixes
catalogPrefixes: string[] = ['AC', 'AM', 'AP', 'BE', 'CS', 'ES', 'ESE', 'GENED', 'SEMINAR']
Const courses
courses: object[] = [{title: 'Introduction to CS',area: 'CS',prefix: 'CS',number: '50',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['11111111'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '17:00:00',room: 'Maxwell Dworkin G115',}],},},{title: 'Solving and Optimizing',area: 'AM',prefix: 'AM',number: '22A',isUndergraduate: false,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['13131313'],meetings: [{day: DAY.MON,startTime: '10:30:00',endTime: '11:45:00',room: 'Maxwell Dworkin 220',},{day: DAY.WED,startTime: '10:30:00',endTime: '11:45:00',room: 'Maxwell Dworkin 220',},{day: DAY.FRI,startTime: '10:30:00',endTime: '11:45:00',room: 'Maxwell Dworkin 220',}],},},{title: 'Advanced Scientific Computing: Numerical Methods',area: 'AM',prefix: 'AM',number: '205',isUndergraduate: false,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['12121212'],meetings: [{day: DAY.TUE,startTime: '10:30:00',endTime: '11:45:00',room: 'Maxwell Dworkin 220',},{day: DAY.THU,startTime: '10:30:00',endTime: '11:45:00',room: 'Maxwell Dworkin 220',}],},},{title: 'Critical Thinking in Data Science',area: 'ACS',prefix: 'AC',number: '221',isUndergraduate: false,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.SPRING,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['13131313', '14141414'],meetings: [{day: DAY.TUE,startTime: '12:00:00',endTime: '13:15:00',room: 'SEC 2112',},{day: DAY.THU,startTime: '12:00:00',endTime: '13:15:00',room: 'SEC 2112',}],},},{title: 'Data Science 1: Introduction to Data Science',area: 'CS',prefix: 'CS',number: '109A',isUndergraduate: true,notes: '',private: false,sameAs: 'AC 209A, Stats 121A',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['15151515','16161616','17171717',],meetings: [{day: DAY.MON,startTime: '13:30:00',endTime: '14:45:00',room: 'Northwest Building B101',},{day: DAY.WED,startTime: '13:30:00',endTime: '14:45:00',room: 'Northwest Building B101',}],},},{title: 'Data Science 1: Introduction to Data Science',area: 'ACS',prefix: 'AC',number: '209A',isUndergraduate: false,notes: '',private: false,sameAs: 'CS 109A',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Data Science 1: Introduction to Data Science',area: 'ACS',prefix: 'STATS',number: '109A',isUndergraduate: true,notes: '',private: false,sameAs: 'CS 109A',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.N,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Data Science 2: Advanced Topics in Data Science',area: 'CS',prefix: 'CS',number: '109B',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.SPRING,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['15151515','23232323','17171717',],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '16:00:00',room: 'Northwest Building B101',},{day: DAY.WED,startTime: '15:00:00',endTime: '16:00:00',room: 'Northwest Building B101',}],},},{title: 'Data Science 2: Advanced Topics in Data Science',area: 'ACS',prefix: 'AC',number: '209B',isUndergraduate: false,notes: '',private: false,sameAs: 'CS 109B',termPattern: TERM_PATTERN.SPRING,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Data Science 2: Advanced Topics in Data Science',area: 'ACS',prefix: 'STATS',number: '109B',isUndergraduate: true,notes: '',private: false,sameAs: 'CS 109B',termPattern: TERM_PATTERN.SPRING,isSEAS: IS_SEAS.N,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Computational Physics of Solids and Fields',area: 'AP',prefix: 'AP',number: '278',isUndergraduate: false,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['18181818'],meetings: [{day: DAY.TUE,startTime: '13:30:00',endTime: '14:45:00',room: 'Pierce Hall 301',},{day: DAY.THU,startTime: '13:30:00',endTime: '14:45:00',room: 'Pierce Hall 301',}],},},{title: 'Introduction to Biomedical Imaging and Systems',area: 'BE',prefix: 'BE',number: '128',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.SPRING,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['19191919'],meetings: [{day: DAY.TUE,startTime: '15:00:00',endTime: '16:15:00',room: '114 Western Avenue 200',},{day: DAY.THU,startTime: '15:00:00',endTime: '16:15:00',room: '114 Western Avenue 200',}],},},{title: 'Introduction to Solid State Physics',area: 'AP',prefix: 'AP',number: '195',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.N,instances: {facultyHUIDs: ['20202020'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '16:30:00',room: 'Northwest Building 201',},{day: DAY.WED,startTime: '15:00:00',endTime: '16:30:00',room: 'Northwest Building 201',}],},},{title: 'Introduction to Solid State Physics',area: 'AP',prefix: 'PHYSICS',number: '195',isUndergraduate: true,notes: '',private: false,sameAs: 'AP 195',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.N,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Materials Selection',area: 'Mat & ME',prefix: 'ES',number: '1XX',isUndergraduate: true,notes: '',private: true,sameAs: '',termPattern: TERM_PATTERN.BOTH,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: [],meetings: [],},},{title: 'Computer-Aided Machine Design',area: 'Mat & ME',prefix: 'ES',number: '51',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.BOTH,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['21212121'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '16:00:00',room: 'Maxwell Dworkin B151',},{day: DAY.WED,startTime: '15:00:00',endTime: '16:00:00',room: 'Maxwell Dworkin B151',},{day: DAY.FRI,startTime: '15:00:00',endTime: '16:00:00',room: 'Maxwell Dworkin B151',}],},},{title: 'IACS Seminar',area: 'SEMINAR',prefix: 'SEMINAR',number: 'IACS',isUndergraduate: false,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.BOTH,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: [],meetings: [{day: DAY.FRI,startTime: '13:30:00',endTime: '14:45:00',room: 'Maxwell Dworkin G125',}],},},{title: 'Engineering the Acoustical World',area: 'EE',prefix: 'ES',number: '25',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['22222222'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '16:00:00',room: 'SEC G500',},{day: DAY.WED,startTime: '15:00:00',endTime: '16:00:00',room: 'SEC G500',},{day: DAY.FRI,startTime: '15:00:00',endTime: '16:00:00',room: 'SEC G500',}],},},{title: 'Mechanical Systems',area: 'EE',prefix: 'ES',number: '125',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['24242424'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '17:00:00',room: 'SEC 2112',},{day: DAY.WED,startTime: '15:00:00',endTime: '17:00:00',room: 'SEC 2112',},],},},{title: 'Introduction to Soft Matter',area: 'AP',prefix: 'AP',number: '225',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.FALL,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['25252525'],meetings: [{day: DAY.MON,startTime: '15:00:00',endTime: '17:00:00',room: 'Northwest Building B101',},{day: DAY.WED,startTime: '15:00:00',endTime: '17:00:00',room: 'Northwest Building B101',},],},},{title: 'Special Topics in Computer Science',area: 'CS',prefix: 'CS',number: '299R',isUndergraduate: true,notes: '',private: false,sameAs: '',termPattern: TERM_PATTERN.BOTH,isSEAS: IS_SEAS.Y,instances: {facultyHUIDs: ['13131313',],meetings: [],},},]
Const cs200Course
cs200
Course: Course & object = Object.assign(new Course(), {id: '295976e9-3c36-4785-843e-84906668a924',area: {id: '735fb5ae-8716-4c53-8e07-b0dc5a2db24b',name: 'CS',},sameAs: null,title: 'Introduction to Computer Science',prefix: 'CS',number: '200',isSEAS: IS_SEAS.Y,termPattern: TERM_PATTERN.SPRING,isUndergraduate: true,})
Const cs50Course
cs50
Course: Course & object = Object.assign(new Course(), {id: 'b8bc8456-51fd-48ef-b111-5a5990671cd1',area: {id: 'a49edd11-0f2d-4d8f-9096-a4062955a11a',name: 'CS',},sameAs: null,title: 'Introduction to Computer Science',prefix: 'CS',number: '050',isSEAS: IS_SEAS.Y,termPattern: TERM_PATTERN.FALL,isUndergraduate: true,})
Const currentAcademicYear
currentAcademicYear: 2021 = 2021
Const days
days: string[] = Object.values(DAY).map(dayEnumToString)
Const defaultView
default
View: COURSE_TABLE_COLUMN[] = [...MANDATORY_COLUMNS,COURSE_TABLE_COLUMN.MEETINGS,COURSE_TABLE_COLUMN.IS_SEAS,COURSE_TABLE_COLUMN.OFFERED,COURSE_TABLE_COLUMN.INSTRUCTORS,COURSE_TABLE_COLUMN.NOTES,]
Const email
email: "help@seas.harvard.edu" = "help@seas.harvard.edu"
Const emptyCourse
empty
Course: Course = new Course()
Const endpointTests
endpoint
Tests: Endpoint[] = [{path: '/api/courses/',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: '/api/courses/',method: 'post',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: dummy.createCourseDtoExample,},{path: `/api/courses/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: dummy.updateCourseExample,},{path: `/api/course-instances/?acadYear=${dummy.year}`,method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.READ_ONLY,},{path: '/api/course-instances/multi-year-plan',method: 'get',expectAnonymousAccess: true,expectAllowedGroup: null,},{path: '/api/course-instances/schedule',method: 'get',expectAnonymousAccess: true,expectAllowedGroup: null,},{path: `/api/course-instances/${dummy.uuid}/instructors`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: { instructors: [] },},{path: '/api/faculty/',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: '/api/faculty/instructors',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: '/api/faculty/schedule',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.READ_ONLY,},{path: `/api/faculty/absence/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: dummy.facultyAbsenceRequest,},{path: `/api/faculty/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: dummy.appliedMathFacultyMemberRequest,},{path: '/health-check/',method: 'get',expectAnonymousAccess: true,expectAllowedGroup: null,},{path: '/api/rooms/',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: '/api/rooms/availability',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: `/api/meetings/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,requestBody: dummy.mondayMeetingWithRoom,},{path: '/api/metadata/',method: 'get',expectAnonymousAccess: true,expectAllowedGroup: null,},{path: '/api/non-class-events/',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.NON_CLASS,},{path: '/api/non-class-events/',method: 'post',expectAnonymousAccess: false,expectAllowedGroup: GROUP.NON_CLASS,requestBody: dummy.createNonClassParent,},{path: `/api/non-class-events/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.NON_CLASS,requestBody: dummy.createNonClassParent,},{path: '/api/users/current/',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: null,},{path: `/api/course-instances/${dummy.uuid}`,method: 'put',expectAnonymousAccess: false,expectAllowedGroup: GROUP.ADMIN,},{path: '/report/courses',method: 'get',expectAnonymousAccess: false,expectAllowedGroup: GROUP.READ_ONLY,},]
Const enrollmentFields
enrollment
Fields: EnrollmentField[] = [{name: 'Pre-Registration',key: 'preEnrollment',icon: null,},{name: 'Enrollment Deadline',key: 'studyCardEnrollment',icon: null,},{name: 'Final Enrollment',key: 'actualEnrollment',icon: null,},]
Const error
error: Error = new Error('Error')
Const exec
exec: __promisify__ = promisify(child.exec)
Const faculty
faculty: object[] = [{firstName: 'David',lastName: 'Malan',email: 'dmalan@seas.harvard.edu',HUID: '11111111',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'CS',notes: 'Prefers Cambridge campus',},{firstName: 'Christopher',lastName: 'Rycroft',email: 'crycroft@seas.harvard.edu',HUID: '12121212',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'AM',notes: 'Prefers Allston campus',},{firstName: 'James',lastName: 'Waldo',email: 'jwaldo@seas.harvard.edu',HUID: '13131313',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'CS',notes: '',},{firstName: 'Michael',lastName: 'Smith',email: 'msmith@seas.harvard.edu',HUID: '14141414',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'CS',notes: 'Prefers Cambridge campus',},{firstName: 'Pavlos',lastName: 'Protopapas',email: 'pprotopapas@seas.harvard.edu',HUID: '15151515',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'ACS',notes: 'Requesting room in MD',},{firstName: 'Kevin',lastName: 'Rader',email: 'krader@stats.harvard.edu',HUID: '16161616',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'ACS',notes: '',},{firstName: 'Christopher',lastName: 'Tanner',email: 'ctanner@seas.harvard.edu',HUID: '17171717',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'ACS',notes: 'Requesting room in SEC',},{firstName: 'Prineha',lastName: 'Narang',email: 'pnarang@seas.harvard.edu',HUID: '18181818',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'Mat & ME',notes: 'Prefers Cambridge campus',},{firstName: 'Linsey',lastName: 'Moyer',email: 'lmoyer@seas.harvard.edu',HUID: '19191919',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'BE',notes: 'Requesting room in SEC',},{firstName: 'Julia',lastName: 'Mundy',email: 'jmundy@seas.harvard.edu',HUID: '20202020',jointWith: null,category: FACULTY_TYPE.NON_SEAS_LADDER,area: 'AP',notes: 'Requesting room in SEC',},{firstName: 'Michelle',lastName: 'Rosen',email: 'mrosen@seas.harvard.edu',HUID: '21212121',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'Mat & ME',notes: '',},{firstName: 'Robert',lastName: 'Wood',email: 'rwood@seas.harvard.edu',HUID: '22222222',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'Mat & ME',notes: '',},{firstName: 'Mark',lastName: 'Glickman',email: 'mglickman@stats.harvard.edu',HUID: '23232323',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'ACS',notes: 'Prefers Allston campus',},{firstName: 'Elie',lastName: 'Tamer',email: 'etamer@stats.harvard.edu',HUID: '26262626',jointWith: null,category: FACULTY_TYPE.NON_LADDER,area: 'ACS',notes: '',},{firstName: 'Boris',lastName: 'Kozinsky',email: 'bkozinsky@seas.harvard.edu',HUID: '24242424',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'EE',notes: 'Prefers Allston campus',},{firstName: 'Jennifer',lastName: 'Lewis',email: 'jlewis@seas.harvard.edu',HUID: '25252525',jointWith: null,category: FACULTY_TYPE.LADDER,area: 'AP',notes: 'Prefers Cambridge campus',},]
Const generalErrorMessage
generalErrorMessage: "Please fill in the required fields and try again. If the problem persists, contact SEAS Computing." = "Please fill in the required fields and try again. If the problem persists, contact SEAS Computing."
Const getCourseReport
getCourseReport: (Anonymous function) = ((range: ReportRange): Promise<void> => getReport(range, 'courses'))
Const getFacultyReport
getFacultyReport: (Anonymous function) = ((range: ReportRange): Promise<void> => getReport(range, 'faculty'))
Const meetingTimeSlots
meetingTimeSlots: object[] = [{label: '8:00 AM-9:00 AM',start: '08:00',end: '09:00',},{label: '9:00 AM-10:00 AM',start: '09:00',end: '10:00',},{label: '10:00 AM-11:00 AM',start: '10:00',end: '11:00',},{label: '11:00 AM-12:00 PM',start: '11:00',end: '12:00',},{label: '12:00 PM-1:00 PM',start: '12:00',end: '13:00',},{label: '1:00 PM-2:00 PM',start: '13:00',end: '14:00',},{label: '2:00 PM-3:00 PM',start: '14:00',end: '15:00',},{label: '3:00 PM-4:00 PM',start: '15:00',end: '16:00',},{label: '4:00 PM-5:00 PM',start: '16:00',end: '17:00',},{label: '5:00 PM-6:00 PM',start: '17:00',end: '18:00',},{label: '6:00 PM-7:00 PM',start: '18:00',end: '19:00',},{label: '7:00 PM-8:00 PM',start: '19:00',end: '20:00',},]
Const modalFields
modal
Fields: ModalFieldsColumn[] = [{name: 'Area',key: 'area',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.AREA,},{name: 'Course',key: 'catalog-number',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.CATALOG_NUMBER,},{name: 'Title',key: 'title',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.TITLE,},{name: 'Same As',key: 'same-as',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.SAME_AS,},{name: 'Is SEAS?',key: 'is-seas',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.IS_SEAS,},{name: 'Is Undergraduate?',key: 'is-undergraduate',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.IS_UNDERGRADUATE,},{name: 'Offered',key: 'offered',columnGroup: COURSE_TABLE_COLUMN_GROUP.SEMESTER,viewColumn: COURSE_TABLE_COLUMN.OFFERED,},{name: 'Instructors',key: 'instructors',columnGroup: COURSE_TABLE_COLUMN_GROUP.SEMESTER,viewColumn: COURSE_TABLE_COLUMN.INSTRUCTORS,},{name: 'Meetings',key: 'meetings',columnGroup: COURSE_TABLE_COLUMN_GROUP.SEMESTER,viewColumn: COURSE_TABLE_COLUMN.MEETINGS,},{name: 'Enrollment',key: 'enrollment',columnGroup: COURSE_TABLE_COLUMN_GROUP.SEMESTER,viewColumn: COURSE_TABLE_COLUMN.ENROLLMENT,},{name: 'Notes',key: 'notes',columnGroup: COURSE_TABLE_COLUMN_GROUP.META,viewColumn: COURSE_TABLE_COLUMN.NOTES,},]
Const module
module: NodeModule & object
Const nonClassEventManager
non
ClassEventManager: User = new User({firstName: 'Non-class Event',lastName: 'Manager',eppn: 'MLKJIHGFEDCBAZ@harvard.edu',email: 'nonClasseventManager@seas.harvard.edu',groups: [GROUP.NON_CLASS],})
Const nonClassMeetings
nonClassMeetings: (object | object)[] = [{title: 'Computer Science Area Meeting',contactName: 'James Waldo',contactEmail: 'j.waldo@harvard.edu',contactPhone: '(123)-456-7890',expectedSize: 16,notes: null,private: false,meetings: [{day: DAY.TUE,startTime: '11:00:00',endTime: '12:00:00',room: 'Maxwell Dworkin B151',},],},{title: 'Active Learning Labs Staff Meeting',contactName: 'Nishant V. Sule',contactEmail: '',contactPhone: '(111)-222-3333',expectedSize: 26,notes: 'some notes',private: false,meetings: [{day: DAY.THU,startTime: '11:00:00',endTime: '12:00:00',room: '114 Western Avenue 200',},],},{title: 'Quantum Lab Meeting',contactName: 'Pri Narang',contactEmail: '',contactPhone: '',expectedSize: null,private: false,meetings: [],},]
Const nullUser
null
User: User = new User()
Const physicsCourse
physics
Course: Course & object = Object.assign(new Course(), {id: 'a1a13689-a925-4d0b-a4fc-21c93263c6d2',area: {id: 'b8bc8456-51fd-48ef-b111-5a5990671cd1',name: 'AP',},title: 'Introduction to Quantum Theory of Solids',prefix: 'AP',number: '295a',isSEAS: IS_SEAS.Y,termPattern: TERM_PATTERN.SPRING,isUndergraduate: true,})
Const rawAreaList
rawAreaList: object[] = [{ name: 'ACS' },{ name: 'AM' },{ name: 'AP' },{ name: 'BE' },{ name: 'CS' },{ name: 'EE' },{ name: 'ESE' },{ name: 'General' },{ name: 'Mat & ME' },{ name: 'MDE' },{ name: 'MSMBA' },{ name: 'SEM' },]
Const rawCatalogPrefixList
rawCatalogPrefixList: object[] = [{ prefix: 'AC' },{ prefix: 'AM' },{ prefix: 'AP' },{ prefix: 'BE' },{ prefix: 'CS' },{ prefix: 'ES' },{ prefix: 'ESE' },{ prefix: 'GENED' },{ prefix: 'SEMINAR' },]
Const rawSemesterList
rawSemesterList: object[] = [{ term: 'SPRING', year: 2018, termOrder: 1 },{ term: 'FALL', year: 2018, termOrder: 2 },{ term: 'SPRING', year: 2019, termOrder: 1 },{ term: 'FALL', year: 2019, termOrder: 2 },{ term: 'SPRING', year: 2020, termOrder: 1 },{ term: 'FALL', year: 2020, termOrder: 2 },{ term: 'SPRING', year: 2021, termOrder: 1 },{ term: 'FALL', year: 2021, termOrder: 2 },{ term: 'SPRING', year: 2022, termOrder: 1 },]
Const rawYearList
rawYearList: object[] = [{ year: '2018' },{ year: '2019' },{ year: '2020' },{ year: '2021' },]
Const readOnlyUser
read
OnlyUser: User = new User({firstName: 'ReadOnly',lastName: 'User',eppn: 'ZYXWVUTSRQPONM@harvard.edu',email: 'readOnlyUser@seas.harvard.edu',groups: [GROUP.READ_ONLY],})
Const refDate
refDate: Date = new Date(2021, 0, 1)
Const regularUser
regular
User: User = new User({firstName: 'Regular',lastName: 'User',eppn: '4A2849CF119852@harvard.edu',email: 'regularUser@seas.harvard.edu',})
Const roomSelectionPromptMessage
roomSelectionPromptMessage: "Add meeting time and click "Show Rooms" to view availability" = "Add meeting time and click "Show Rooms" to view availability"
Const rooms
rooms: object[] = [{building: 'Maxwell Dworkin',name: 'G115',capacity: 200,},{building: 'Maxwell Dworkin',name: 'G125',capacity: 100,},{building: 'Maxwell Dworkin',name: 'B151',capacity: 23,},{building: 'Maxwell Dworkin',name: '220',capacity: 42,},{building: 'Pierce Hall',name: '301',capacity: 200,},{building: 'Northwest Building',name: 'B101',capacity: 300,},{building: 'Northwest Building',name: '201',capacity: 64,},{building: 'SEC',name: 'G500',capacity: 500,},{building: 'SEC',name: '2112',capacity: 87,},{building: '114 Western Avenue',name: '200',capacity: 141,},]
Const rowHeight
rowHeight: "0.5em" = "0.5em"
Const safeString
safeString: "dont-panic" = "dont-panic"
Const semesters
semesters: object[] = [{ academicYear: 2017, term: TERM.FALL },{ academicYear: 2018, term: TERM.SPRING },{ academicYear: 2018, term: TERM.FALL },{ academicYear: 2019, term: TERM.SPRING },{ academicYear: 2019, term: TERM.FALL },{ academicYear: 2020, term: TERM.SPRING },{ academicYear: 2020, term: TERM.FALL },{ academicYear: 2021, term: TERM.SPRING },{ academicYear: 2021, term: TERM.FALL },{ academicYear: 2022, term: TERM.SPRING },]
Const string
string: "Don't Panic" = "Don't Panic"
Const tableFields
table
Fields: CourseInstanceListColumn[] = [{name: 'Area',key: 'area',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.AREA,FieldContent: retrieveValue('area'),getFilter: generateDropdown('area'),},{name: 'Course',key: 'catalog-number',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.CATALOG_NUMBER,FieldContent: retrieveValue('catalogNumber'),getFilter: generateTextField('catalogNumber'),},{name: 'Title',key: 'title',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.TITLE,FieldContent: retrieveValue('title'),getFilter: generateTextField('title'),},{name: 'Same As',key: 'same-as',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.SAME_AS,FieldContent: retrieveValue('sameAs'),},{name: 'Is SEAS?',key: 'is-seas',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.IS_SEAS,FieldContent: retrieveValue('isSEAS'),getFilter: generateDropdown('isSEAS'),},{name: 'Is Undergraduate?',key: 'is-undergraduate',columnGroup: COURSE_TABLE_COLUMN_GROUP.COURSE,viewColumn: COURSE_TABLE_COLUMN.IS_UNDERGRADUATE,FieldContent: retrieveValue('isUndergraduate'),},{name: 'Offered',key: 'offered-fall',columnGroup: COURSE_TABLE_COLUMN_GROUP.FALL,viewColumn: COURSE_TABLE_COLUMN.OFFERED,FieldContent: formatOffered(TERM.FALL),getFilter: generateDropdown('fall', 'offered'),},{name: 'Instructors',key: 'instructors-fall',columnGroup: COURSE_TABLE_COLUMN_GROUP.FALL,viewColumn: COURSE_TABLE_COLUMN.INSTRUCTORS,FieldContent: formatInstructors(TERM.FALL),getFilter: generateTextField('fall', 'instructors'),},{name: 'Meetings',key: 'meetings-fall',columnGroup: COURSE_TABLE_COLUMN_GROUP.FALL,viewColumn: COURSE_TABLE_COLUMN.MEETINGS,FieldContent: formatMeetings(TERM.FALL),},{name: 'Enrollment',key: 'enrollment-fall',columnGroup: COURSE_TABLE_COLUMN_GROUP.FALL,viewColumn: COURSE_TABLE_COLUMN.ENROLLMENT,FieldContent: formatEnrollment(TERM.FALL),},{name: 'Offered',key: 'offered-spring',columnGroup: COURSE_TABLE_COLUMN_GROUP.SPRING,viewColumn: COURSE_TABLE_COLUMN.OFFERED,FieldContent: formatOffered(TERM.SPRING),getFilter: generateDropdown('spring', 'offered'),},{name: 'Instructors',key: 'instructors-spring',columnGroup: COURSE_TABLE_COLUMN_GROUP.SPRING,viewColumn: COURSE_TABLE_COLUMN.INSTRUCTORS,FieldContent: formatInstructors(TERM.SPRING),getFilter: generateTextField('spring', 'instructors'),},{name: 'Meetings',key: 'meetings-spring',columnGroup: COURSE_TABLE_COLUMN_GROUP.SPRING,viewColumn: COURSE_TABLE_COLUMN.MEETINGS,FieldContent: formatMeetings(TERM.SPRING),},{name: 'Enrollment',key: 'enrollment-spring',columnGroup: COURSE_TABLE_COLUMN_GROUP.SPRING,viewColumn: COURSE_TABLE_COLUMN.ENROLLMENT,FieldContent: formatEnrollment(TERM.SPRING),},{name: 'Notes',key: 'notes',columnGroup: COURSE_TABLE_COLUMN_GROUP.META,viewColumn: COURSE_TABLE_COLUMN.NOTES,FieldContent: ({course,openNotesModal,buttonRef,}: FieldContentProps): ReactElement => {const { notes } = course;const hasNotes = notes && notes.trim().length > 0;const titleText = `Open notes for ${course.catalogNumber}`;return (<BorderlessButtonid={`notes-${course.id}`}variant={VARIANT.INFO}onClick={({ currentTarget }) => {openNotesModal(course, currentTarget.id);}}aria-label={titleText}forwardRef={buttonRef}><FontAwesomeIcontitle={titleText}icon={hasNotes ? withNotes : withoutNotes}/></BorderlessButton>);},},]
Const testCourseScheduleData
test
CourseScheduleData: ScheduleViewResponseDTO[] = [{id: 'CSMON09001015FALL2018',coursePrefix: 'CS',weekday: DAY.MON,startHour: 9,startMinute: 0,endHour: 10,endMinute: 15,duration: 75,courses: [{id: '0b4adc13-5a53-489d-97e5-8cce379148a7',instanceId: 'da806338-6ad8-4e54-a49e-f25d9c29da38',courseNumber: '165',isUndergraduate: true,campus: 'Cambridge',room: 'LISE Lab for Integrated Science & Engr LISE_300_Third Floor Open Area',},{id: '737fda78-bae4-49ea-b166-96218b642dfe',instanceId: '51000705-1754-419d-8d5d-ddd599058f84',courseNumber: '282r',isUndergraduate: false,campus: 'Cambridge',room: 'Science Center ScienceCtr_Hall D',},],},{id: 'ESMON09001015FALL2018',coursePrefix: 'ES',weekday: DAY.MON,startHour: 9,startMinute: 0,endHour: 10,endMinute: 15,duration: 75,courses: [{id: 'b234a6d1-2ade-45bc-91fb-690ca41877f9',instanceId: '7988f5f6-f45d-4b70-ab54-437ab7fa0737',courseNumber: '121',isUndergraduate: true,campus: 'Cambridge',room: 'Bauer Laboratory Bauer G18 SCRB Lobby',},],},{id: 'CSWED09001015FALL2018',coursePrefix: 'CS',weekday: DAY.WED,startHour: 9,startMinute: 0,endHour: 10,endMinute: 15,duration: 75,courses: [{id: 'b97a0c74-3034-4856-bbc8-e7624070ddcc',instanceId: 'da806338-6ad8-4e54-a49e-f25d9c29da38',courseNumber: '165',isUndergraduate: true,campus: 'Cambridge',room: 'LISE Lab for Integrated Science & Engr LISE_300_Third Floor Open Area',},{id: 'c4b7b26b-6acf-43e7-8ba2-cbb21c28063e',instanceId: '51000705-1754-419d-8d5d-ddd599058f84',courseNumber: '282r',isUndergraduate: false,campus: 'Cambridge',room: 'Science Center ScienceCtr_Hall D',},],},{id: 'CSFRI09001015FALL2018',coursePrefix: 'CS',weekday: DAY.FRI,startHour: 9,startMinute: 0,endHour: 10,endMinute: 15,duration: 75,courses: [{id: '58e2d8a0-38e6-49ad-9f86-e8f932b3036a',instanceId: 'da806338-6ad8-4e54-a49e-f25d9c29da38',courseNumber: '165',isUndergraduate: true,campus: 'Cambridge',room: 'LISE Lab for Integrated Science & Engr LISE_300_Third Floor Open Area',},{id: '168ad602-f328-4168-876f-b9ab8754e7e2',instanceId: '51000705-1754-419d-8d5d-ddd599058f84',courseNumber: '282r',isUndergraduate: false,campus: 'Cambridge',room: 'Science Center ScienceCtr_Hall D',},],},]
Const testFourYearPlan
test
FourYearPlan: MultiYearPlanResponseDTO[] = [{id: '37b66373-5000-43f2-9c14-8c2426273785',catalogPrefix: 'AP',catalogNumber: 'AP 275',title: 'Computational Design of Materials',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: '85d2ecdf-6015-4510-98ed-3b55991d2aea',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 1,},{id: '05d04a88-8db2-46fe-8b87-aa70244ad655',displayName: 'Yacoby, Amir',instructorOrder: 2,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: '441c517f-bc48-46e3-86c2-4949d1908c5d',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: '127b33e4-e59a-43cb-a832-d5fc62a702ec',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 1,},{id: '05d04a88-8db2-46fe-8b87-aa70244ad655',displayName: 'Yacoby, Amir',instructorOrder: 2,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: 'bbc7492a-71b2-489b-a9ec-a0a052c4f5c8',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},{id: '513e9576-cdc5-4911-8d1c-3f95c1bdc6cd',displayName: 'Golub, Benjamin',instructorOrder: 1,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: 'a9db3a67-f688-4474-a9ef-ae05d1327f4f',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 1,},],},},{id: '83f73535-dbae-48b1-a73e-e3792358ab8d',academicYear: '2023',calendarYear: '2022',term: TERM.FALL,instance: {id: '61c48ebb-8025-43be-9d01-df057df74674',faculty: [],},},{id: '1e6e51ba-adc9-4526-a0b1-0dcb71e3d38e',academicYear: '2023',calendarYear: '2023',term: TERM.SPRING,instance: {id: '1f8cc026-d8bf-429d-9fdb-32b89cfdce9d',faculty: [],},},],},{id: '9a07e8a3-d6d5-4e89-9d32-8ad04785b9ab',catalogPrefix: 'ES',catalogNumber: 'ES 115',title: 'Mathematical Modeling',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '7dd78af1-8821-4aba-b617-279922b7ffab',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: 'be64ce4b-081d-4987-8414-681bc5ca3193',faculty: [{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 0,},{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 1,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: 'e3c785a1-d917-44a2-8349-829d05103de6',faculty: [{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 0,},{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 1,},{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 2,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: 'bbc7492a-71b2-489b-a9ec-a0a052c4f5c8',faculty: [{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 0,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: 'cb489cc5-a7bd-4e29-b465-71d88ca73b71',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 1,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 1,},],},},{id: '83f73535-dbae-48b1-a73e-e3792358ab8d',academicYear: '2023',calendarYear: '2022',term: TERM.FALL,instance: {id: '127b33e4-e59a-43cb-a832-d5fc62a702ec',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},],},},{id: '1e6e51ba-adc9-4526-a0b1-0dcb71e3d38e',academicYear: '2023',calendarYear: '2023',term: TERM.SPRING,instance: {id: 'c1b15206-8df8-483b-91e3-58a3911d15e7',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 1,},{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 2,},],},},],},{id: 'b7dfe6fa-668a-4b89-912a-520c8aac8e6a',catalogPrefix: 'CS',catalogNumber: 'CS 223',title: 'Probabilistic Analysis and Algorithms',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '2ca4b43f-1c73-4e17-a7d4-bd6f347d30d6',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: '508cacd5-6e75-4c3c-83a3-d274c00770e4',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: 'abefdab5-49e7-4865-a22c-7a6b04a7ac42',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: 'b3eadbe3-816f-4219-836a-9fca021dcc86',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 1,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: '155938bd-a4fb-47c1-9dfb-2c33480535ef',faculty: [{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 0,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: 'a2bdd06f-44b7-49c5-a4c6-ae3a01c07e7d',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},{id: '83f73535-dbae-48b1-a73e-e3792358ab8d',academicYear: '2023',calendarYear: '2022',term: TERM.FALL,instance: {id: 'f397e975-75db-4cf0-a4d7-7f929e376e83',faculty: [{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 0,},],},},{id: '1e6e51ba-adc9-4526-a0b1-0dcb71e3d38e',academicYear: '2023',calendarYear: '2023',term: TERM.SPRING,instance: {id: 'be77d84c-dc60-44c0-8d74-77187d63ce20',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},],},},],}]
Const testFourYearPlanAcademicYears
testFourYearPlanAcademicYears: number[] = [2020, 2021, 2022, 2023]
Const testMetadata
test
Metadata: MetadataContextValue = new MetadataContextValue(currentMetadata, (update) => {Object.assign(currentMetadata, update);})
Const testMultiYearPlanStartYear
testMultiYearPlanStartYear: 2020 = 2020
Const testRoomScheduleData
test
RoomScheduleData: RoomScheduleResponseDTO[] = [{id: 'AM10MON10301200FALL2022',catalogNumber: 'AM 10',title: 'Applied Math for Computation',isUndergraduate: true,faculty: [{id: '5c8e015f-eae6-4586-9eb0-fc7d243403bf',displayName: 'Rogers, Chris',notes: 'Prefers room with whiteboard',instructorOrder: 1,},{id: 'effb8b1f-0525-42d0-bcbe-29206121d8ac',displayName: 'Waldo, James',notes: 'Prefers Allston campus',instructorOrder: 0,},],weekday: DAY.MON,startHour: 10,startMinute: 0,endHour: 12,endMinute: 30,duration: 150,},{id: 'CS226TUE10301230FALL2022',catalogNumber: 'CS 226',title: 'Sketching Algorithms for Big Data',isUndergraduate: false,faculty: [{id: '907bcf6a-7000-449d-ba54-16f9954ee4ba',displayName: 'Malan, David',notes: 'Prefers Cambridge campus',instructorOrder: 0,},{id: '1c852f5d-8b8c-46f5-87c9-fa59bf7c53cf',displayName: 'Yu, Brian',notes: 'Prefers Allston campus',instructorOrder: 1,},],weekday: DAY.TUE,startHour: 11,startMinute: 30,endHour: 12,endMinute: 30,duration: 120,},{id: 'CHEM060THU01300330FALL2022',catalogNumber: 'CHEM 060',title: 'Foundations of Physical Chemistry',isUndergraduate: true,faculty: [{id: 'cb61d580-646a-487e-9151-6f0ee6fd692e',displayName: 'Tamer, Elie',notes: '',instructorOrder: 0,},{id: '9fd2b512-b832-427f-b91c-6472d01dec9d',displayName: 'Shapiro, Avi',notes: '',instructorOrder: 1,},],weekday: DAY.THU,startHour: 1,startMinute: 30,endHour: 3,endMinute: 30,duration: 120,},]
Const testThreeYearPlan
test
ThreeYearPlan: MultiYearPlanResponseDTO[] = [{id: '37b66373-5000-43f2-9c14-8c2426273785',catalogPrefix: 'AP',catalogNumber: 'AP 275',title: 'Computational Design of Materials',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: '85d2ecdf-6015-4510-98ed-3b55991d2aea',faculty: [{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 0,},{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 1,},{id: '05d04a88-8db2-46fe-8b87-aa70244ad655',displayName: 'Yacoby, Amir',instructorOrder: 2,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: '441c517f-bc48-46e3-86c2-4949d1908c5d',faculty: [{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 0,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: '127b33e4-e59a-43cb-a832-d5fc62a702ec',faculty: [{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 0,},{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 1,},{id: '05d04a88-8db2-46fe-8b87-aa70244ad655',displayName: 'Yacoby, Amir',instructorOrder: 2,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: 'bbc7492a-71b2-489b-a9ec-a0a052c4f5c8',faculty: [{id: '513e9576-cdc5-4911-8d1c-3f95c1bdc6cd',displayName: 'Golub, Benjamin',instructorOrder: 0,},{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 1,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: 'a9db3a67-f688-4474-a9ef-ae05d1327f4f',faculty: [{id: 'f696d531-aef2-413f-9922-f480aa9d6039',displayName: 'Rycroft, Christopher',instructorOrder: 0,},{id: '4dcef6f9-4e3e-49c0-a369-c30ab9615b96',displayName: 'Masahiro, Morii',instructorOrder: 1,},],},},],},{id: '9a07e8a3-d6d5-4e89-9d32-8ad04785b9ab',catalogPrefix: 'ES',catalogNumber: 'ES 115',title: 'Mathematical Modeling',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '7dd78af1-8821-4aba-b617-279922b7ffab',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: 'be64ce4b-081d-4987-8414-681bc5ca3193',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 1,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: 'e3c785a1-d917-44a2-8349-829d05103de6',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 1,},{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 2,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: 'bbc7492a-71b2-489b-a9ec-a0a052c4f5c8',faculty: [{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 0,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: 'cb489cc5-a7bd-4e29-b465-71d88ca73b71',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '91c44209-68ff-4f3e-91b8-288709a49f26',displayName: 'Shapiro, Avi',instructorOrder: 1,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',faculty: [{id: 'be64ce4b-081d-4987-8414-681bc5ca3193',displayName: 'Klecker, Nancy',instructorOrder: 0,},{id: '441c517f-bc48-46e3-86c2-4949d1908c5d',displayName: 'Chen, Yiling',instructorOrder: 1,},],},},],},{id: 'b7dfe6fa-668a-4b89-912a-520c8aac8e6a',catalogPrefix: 'CS',catalogNumber: 'CS 223',title: 'Probabilistic Analysis and Algorithms',semesters: [{id: 'ecf56c0b-0ba9-4532-b1ba-177071aac2e1',academicYear: '2020',calendarYear: '2019',term: TERM.FALL,instance: {id: '2ca4b43f-1c73-4e17-a7d4-bd6f347d30d6',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},],},},{id: '49372311-991d-45a7-a1bf-2ba967d62663',academicYear: '2020',calendarYear: '2020',term: TERM.SPRING,instance: {id: '508cacd5-6e75-4c3c-83a3-d274c00770e4',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},{id: '7dd78af1-8821-4aba-b617-279922b7ffab',academicYear: '2021',calendarYear: '2020',term: TERM.FALL,instance: {id: 'abefdab5-49e7-4865-a22c-7a6b04a7ac42',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},{id: '5f700cd5-9ff9-48a7-875d-2a7b7dc290ea',academicYear: '2021',calendarYear: '2021',term: TERM.SPRING,instance: {id: 'b3eadbe3-816f-4219-836a-9fca021dcc86',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 1,},],},},{id: '73d1ee13-8b05-46d9-86fc-9e86442f94bd',academicYear: '2022',calendarYear: '2021',term: TERM.FALL,instance: {id: '155938bd-a4fb-47c1-9dfb-2c33480535ef',faculty: [{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 0,},],},},{id: '0dfa51cc-673b-4238-abc7-0908e9e57468',academicYear: '2022',calendarYear: '2022',term: TERM.SPRING,instance: {id: 'a2bdd06f-44b7-49c5-a4c6-ae3a01c07e7d',faculty: [{id: 'd1130416-cf7f-41eb-8a16-e93d97205142',displayName: 'Brooks, David',instructorOrder: 0,},{id: '50b38487-e035-4e40-a48d-9b603ac7dfe1',displayName: 'Goldsmith, Mara',instructorOrder: 1,},{id: '54284de9-2b2c-4aac-915f-f960f319d3db',displayName: 'Dawson, Emily',instructorOrder: 2,},],},},],}]
Const testThreeYearPlanAcademicYears
testThreeYearPlanAcademicYears: number[] = [2020, 2021, 2022]
Const testUsers
testUsers: object[] = [{...dummy.regularUser,firstName: 'Unprivileged',groups: [],},{...dummy.regularUser,firstName: 'Read Only',groups: [GROUP.READ_ONLY],},{...dummy.regularUser,firstName: 'Admin',groups: [GROUP.ADMIN],},]
Const uuid
uuid: "be0c4160-4ea6-4638-bb6b-021556ae7149" = "be0c4160-4ea6-4638-bb6b-021556ae7149"
Const year
year: 2018 = 2018
Defines the possibilities of campus filter values