{"version":3,"file":"Course.js","mappings":"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","sources":["webpack://@hedtech/powercampus-self-service/webpack/runtime/chunk loaded","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Search/Course/CourseCards.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/CourseDetailSubType.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Generic/CourseDetailModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Search/Course/CourseSearchOptions.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Search/Course/ShareSearchCourseLinkModal.tsx","webpack://@hedtech/powercampus-self-service/./ClientApp/Requests/Search/Course.ts","webpack://@hedtech/powercampus-self-service/./ClientApp/Components/Search/Course/CourseView.tsx","webpack://@hedtech/powercampus-self-service/./node_modules/moment/locale|sync|/^/.*$","webpack://@hedtech/powercampus-self-service/webpack/bootstrap","webpack://@hedtech/powercampus-self-service/webpack/runtime/compat get default export","webpack://@hedtech/powercampus-self-service/webpack/runtime/define property getters","webpack://@hedtech/powercampus-self-service/webpack/runtime/global","webpack://@hedtech/powercampus-self-service/webpack/runtime/hasOwnProperty shorthand","webpack://@hedtech/powercampus-self-service/webpack/runtime/make namespace object","webpack://@hedtech/powercampus-self-service/webpack/runtime/node module decorator","webpack://@hedtech/powercampus-self-service/webpack/runtime/runtimeId","webpack://@hedtech/powercampus-self-service/webpack/runtime/jsonp chunk loading","webpack://@hedtech/powercampus-self-service/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: CourseCards.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Link from '@hedtech/powercampus-design-system/react/core/Link';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport { isWidthDown, withWidth, WithWidth } from '@hedtech/powercampus-design-system/react/core/withWidth';\r\n\r\n// Types\r\nimport { ICourseCatalog } from '../../../Types/Course/ICourseCatalog';\r\nimport { ICourseCardResources } from '../../../Types/Resources/Search/ICourseResources';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface ICourseCardProps {\r\n searchResultsList?: ICourseCatalog[];\r\n onCourseNameClick: (event: any) => void;\r\n onFindCourse: (event: any) => void;\r\n resources: ICourseCardResources;\r\n}\r\n\r\ntype PropsWithStyles = ICourseCardProps & WithWidth;\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst CourseCards: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n searchResultsList,\r\n width,\r\n onCourseNameClick,\r\n onFindCourse,\r\n resources\r\n } = props;\r\n\r\n const cards: JSX.Element[] = [];\r\n const descLengthLimit: number = isWidthDown('sm', width, true) ? 150 : 300;\r\n\r\n if (searchResultsList) {\r\n searchResultsList.forEach((course, iCourse) => {\r\n cards.push(\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Format.toString(resources.formatTitleSection, [course.code, course.name])}\r\n \r\n \r\n \r\n {Format.toString(resources.formatTitleSection, [resources.lblSubtypes,\r\n (course.subtypes ? course.subtypes : '')])}\r\n \r\n \r\n {course.description && course.description.length > descLengthLimit ?\r\n Format.toString(resources.formatTitleSectionShort, [resources.lblDescription, course.description.substring(0, descLengthLimit)])\r\n : Format.toString(resources.formatTitleSection, [resources.lblDescription,\r\n (course.description ? course.description : '')])}\r\n \r\n \r\n \r\n \r\n {resources.lblFindSections}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {cards}\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default (withWidth()(CourseCards));","/* Copyright 2018-2020 Ellucian Company L.P. and its affiliates.\r\n * File: CourseDetailSubType.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport ExpansionPanel from '@hedtech/powercampus-design-system/react/core/ExpansionPanel';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Helpers\r\nimport { createStyles, Theme, WithStyles, withStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Types\r\nimport { ISubType } from '../../Types/Course/ISubType';\r\n// #endregion Imports\r\n\r\n// #region Internal types\r\nexport interface ICourseDetailSubTypeProps {\r\n resources: ICourseDetailSubTypeResProps;\r\n subType: ISubType;\r\n id?: string;\r\n}\r\n\r\nexport interface ICourseDetailSubTypeResProps {\r\n lblCorequisite: string;\r\n lblCredits: string;\r\n lblCreditTypes: string;\r\n lblDescription: string;\r\n lblEmpty: string;\r\n lblFees: string;\r\n lblPrerequisites: string;\r\n}\r\n\r\nconst styles = ((theme: Theme) => createStyles({\r\n table: {\r\n [theme.breakpoints.up('md')]: {\r\n // Width\r\n '& > thead > tr > th:nth-child(1)': {\r\n width: '3%'\r\n },\r\n '& > thead > tr > th:nth-child(2)': {\r\n width: '30%'\r\n }\r\n }\r\n }\r\n}));\r\n\r\ntype PropsWithStyles = ICourseDetailSubTypeProps & WithStyles;\r\n// #endregion Internal types\r\n\r\n// #region Component\r\nconst CourseDetailSubType: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n resources,\r\n subType,\r\n id\r\n } = props;\r\n\r\n let content: JSX.Element;\r\n content = (\r\n <>\r\n \r\n \r\n \r\n {resources.lblDescription}\r\n \r\n \r\n \r\n \r\n {(subType.description && subType.description !== '') ? subType.description : resources.lblEmpty}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblPrerequisites}\r\n \r\n \r\n \r\n \r\n {subType.prerequisiteCondition !== '' ? subType.prerequisiteCondition : resources.lblEmpty}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblCorequisite}\r\n \r\n \r\n \r\n \r\n {subType.corequisiteCondition !== '' ? subType.corequisiteCondition : resources.lblEmpty}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblFees}\r\n \r\n \r\n \r\n \r\n {subType.courseFeeCondition !== '' ? subType.courseFeeCondition : resources.lblEmpty}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblCredits}\r\n \r\n \r\n \r\n \r\n {subType.credits}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblCreditTypes}\r\n \r\n \r\n \r\n \r\n {subType.creditTypeCondition !== '' ? subType.creditTypeCondition : resources.lblEmpty}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n {subType.name}\r\n \r\n \r\n \r\n )}\r\n id={id}\r\n >\r\n {content}\r\n \r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(CourseDetailSubType);","/* Copyright 2018-2020 Ellucian Company L.P. and its affiliates.\r\n * File: CourseDetailModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Divider from '@hedtech/powercampus-design-system/react/core/Divider';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport CourseDetailSubType, { ICourseDetailSubTypeResProps } from './CourseDetailSubType';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\n\r\n// Types\r\nimport { ICourseCatalog } from '../../Types/Course/ICourseCatalog';\r\n// #endregion Imports\r\n\r\n// #region Internal types\r\nexport interface ICourseDetailModalProps {\r\n courseDetail: ICourseCatalog;\r\n open: boolean;\r\n resources: ICourseDetailModalResProps;\r\n onClose: () => void;\r\n}\r\n\r\nexport interface ICourseDetailModalResProps {\r\n courseDetailSubType: ICourseDetailSubTypeResProps;\r\n formatCourseName: string;\r\n}\r\n// #endregion Internal types\r\n\r\n// #region Component\r\nconst CourseDetailModal: React.FC = (props: ICourseDetailModalProps): JSX.Element => {\r\n const {\r\n courseDetail,\r\n open,\r\n resources,\r\n onClose\r\n } = props;\r\n\r\n let subTypeList: JSX.Element | JSX.Element[] | undefined;\r\n if (Array.isArray(courseDetail.subTypeList)) {\r\n if (courseDetail.subTypeList && courseDetail.subTypeList.length > 0) {\r\n subTypeList = courseDetail.subTypeList.map((subType, i) => (\r\n \r\n ));\r\n }\r\n }\r\n else {\r\n if (courseDetail.subTypeList) {\r\n subTypeList = (\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {Format.toString(resources.formatCourseName, [courseDetail.code, courseDetail.name])}\r\n \r\n \r\n \r\n )}\r\n maxWidth=\"md\"\r\n open={open}\r\n onClose={onClose}\r\n >\r\n
\r\n \r\n {courseDetail.description}\r\n \r\n
\r\n {subTypeList}\r\n
\r\n \r\n );\r\n\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default CourseDetailModal;","/* Copyright 2019 - 2020 Ellucian Company L.P. and its affiliates.\r\n * File: CourseSearchOptions.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\nimport Media from 'react-media';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Dropdown from '@hedtech/powercampus-design-system/react/core/Dropdown';\r\nimport ExpansionPanel from '@hedtech/powercampus-design-system/react/core/ExpansionPanel';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Icon from '@hedtech/powercampus-design-system/react/core/Icon';\r\nimport Search from '@hedtech/powercampus-design-system/react/core/Search';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// #endregion Imports\r\n\r\n// #region Types\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { ICourseSearchOptionsResources } from '../../../Types/Resources/Search/ICourseResources';\r\n\r\n// Helpers\r\nimport Tokens from '@hedtech/powercampus-design-system/react/core/styles/Tokens';\r\nimport { createStyles, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// #endregion Types\r\nexport interface ICourseSearchOptionsProps {\r\n availableClassLevel: IDropDownOption[];\r\n availableColleges: IDropDownOption[];\r\n availableCreditType: IDropDownOption[];\r\n availableCurriculum: IDropDownOption[];\r\n availableDepartment: IDropDownOption[];\r\n availableProgram: IDropDownOption[];\r\n availablePopulation: IDropDownOption[];\r\n availableSubtype: IDropDownOption[];\r\n availableNonTraditional: IDropDownOption[];\r\n courseCode?: string;\r\n resources: ICourseSearchOptionsResources;\r\n selectedClassLevel?: string | number;\r\n selectedCollege?: string | number;\r\n selectedCreditType?: string | number;\r\n selectedCurriculum?: string | number;\r\n selectedDepartment?: string | number;\r\n selectedProgram?: string | number;\r\n selectedPopulation?: string | number;\r\n selectedSubtype?: string | number;\r\n selectedNonTraditional?: string | number;\r\n onChangeDropDown: (optionSelected: IDropDownOption, id: string) => void;\r\n onChangeTextField: (event: any) => void;\r\n onClearCourseCode: () => void;\r\n onClearSearch: () => void;\r\n onShareSearch: () => void;\r\n onSearch: () => void;\r\n}\r\n\r\nconst styles = createStyles({\r\n container: {\r\n justifyContent: 'flex-end'\r\n },\r\n inline: {\r\n display: 'inline'\r\n },\r\n marginLeft: {\r\n display: 'inline',\r\n marginLeft: Tokens.sizingSmall\r\n }\r\n});\r\n\r\ntype PropsWithStyles = ICourseSearchOptionsProps & WithStyles;\r\n\r\n// #region Component\r\nconst CourseSearchOptions: React.FC = (props: PropsWithStyles): JSX.Element => {\r\n const {\r\n availableClassLevel,\r\n availableColleges,\r\n availableCreditType,\r\n availableCurriculum,\r\n availableDepartment,\r\n availableProgram,\r\n availablePopulation,\r\n availableSubtype,\r\n availableNonTraditional,\r\n classes,\r\n courseCode,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional,\r\n\r\n // events\r\n onChangeDropDown,\r\n onChangeTextField,\r\n onClearCourseCode,\r\n onShareSearch,\r\n onClearSearch,\r\n onSearch,\r\n\r\n resources\r\n } = props;\r\n\r\n const header: JSX.Element = (\r\n \r\n \r\n \r\n {resources.lblFilters}\r\n \r\n \r\n \r\n );\r\n\r\n const emptyOption: IDropDownOption = {\r\n description: String(resources.lblSelect),\r\n value: ''\r\n };\r\n\r\n const content: JSX.Element = (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblClearAll}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {resources.lblShareSearch}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {resources.btnSearch}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {(matches: boolean): JSX.Element => matches ? (\r\n \r\n {content}\r\n \r\n ) : (\r\n \r\n {content}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default withStyles(styles)(CourseSearchOptions);","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: ShareSearchCourseLinkModal.tsx\r\n * Type: Presentation component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Modal from '@hedtech/powercampus-design-system/react/core/Modal';\r\nimport TextField from '@hedtech/powercampus-design-system/react/core/TextField';\r\n\r\n// Types\r\nimport { IShareSearchCourseLinkModalResources } from '../../../Types/Resources/Search/ICourseResources';\r\n// #endregion Imports\r\n\r\n// #region Types\r\nexport interface IShareSearchCourseLinkModalProps {\r\n urlToShare: string;\r\n onCloseModal: () => void;\r\n open: boolean;\r\n\r\n resources: IShareSearchCourseLinkModalResources;\r\n}\r\n// #endregion Types\r\n\r\n// #region Component\r\nconst ShareSearchCourseLinkModal: React.FC = (props: IShareSearchCourseLinkModalProps): JSX.Element => {\r\n const {\r\n open,\r\n urlToShare,\r\n onCloseModal,\r\n\r\n resources\r\n } = props;\r\n\r\n return (\r\n \r\n {resources.btnOk}\r\n \r\n )}\r\n id=\"shareSearchCourseLink\"\r\n header={resources.lblTitle}\r\n maxWidth=\"md\"\r\n open={open}\r\n onClose={onCloseModal}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n// #endregion Component\r\n\r\n// Export: Component\r\nexport default ShareSearchCourseLinkModal;","/* Copyright 2019 Ellucian Company L.P. and its affiliates.\r\n * File: Course.ts */\r\n\r\n// Types\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ICourseCatalogSearch } from '../../Types/Course/ICourseCatalogSearch';\r\n\r\n// Helpers\r\nimport Request from '@hedtech/powercampus-design-system/helpers/Request';\r\n\r\n// Functions for requests\r\nconst CourseRequests = {\r\n getSearchOptions(resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(\r\n this.getSearchOptions.name,\r\n '/Courses/Search/Options',\r\n null, resolver, resolveError);\r\n },\r\n getCourseCatalogResults(courseCatalogSearch: ICourseCatalogSearch,\r\n startIndex: number, length: number,\r\n resolver: (json: string) => void, resolveError: (logData: ILogData) => void): void {\r\n Request.post(\r\n this.getCourseCatalogResults.name,\r\n '/Courses/Search',\r\n {\r\n courseCatalogSearch: courseCatalogSearch,\r\n length: length,\r\n startIndex: startIndex\r\n },\r\n resolver,\r\n resolveError);\r\n },\r\n getCourseDetail(courseCode: string, startIndex: number | undefined, length: number | undefined,\r\n resolver: (json: string) => void,\r\n resolveError: (logData: ILogData) => void): void {\r\n Request.post(this.getCourseDetail.name,\r\n '/Courses',\r\n { courseCode, startIndex, length },\r\n resolver,\r\n resolveError);\r\n },\r\n};\r\n\r\n// Export object with the requests\r\nexport default CourseRequests;","/* Copyright 2019 - 2021 Ellucian Company L.P. and its affiliates.\r\n * File: courseView.tsx\r\n * Type: Container component */\r\n\r\n// #region Imports\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\n// Core components\r\nimport Button from '@hedtech/powercampus-design-system/react/core/Button';\r\nimport Layout, { withLayout } from '@hedtech/powercampus-design-system/react/components/Layout';\r\nimport Card, { CardContent } from '@hedtech/powercampus-design-system/react/core/Card';\r\nimport Grid from '@hedtech/powercampus-design-system/react/core/Grid';\r\nimport Pagination from '@hedtech/powercampus-design-system/react/core/Pagination';\r\nimport Search from '@hedtech/powercampus-design-system/react/core/Search';\r\nimport Text from '@hedtech/powercampus-design-system/react/core/Text';\r\n\r\n// Internal components\r\nimport CourseCards from './CourseCards';\r\nimport CourseDetailModal from '../../Generic/CourseDetailModal';\r\nimport CourseSearchOptions from './CourseSearchOptions';\r\nimport Illustration from '@hedtech/powercampus-design-system/react/core/Illustration';\r\nimport ShareSearchCourseLinkModal from './ShareSearchCourseLinkModal';\r\n\r\n// #region Types\r\nimport { ICultures } from '@hedtech/powercampus-design-system/types/ICultures';\r\nimport { IDropDownOption } from '@hedtech/powercampus-design-system/types/IDropDownOption';\r\nimport { IJsonResult } from '@hedtech/powercampus-design-system/types/IJsonResult';\r\nimport { ILogData } from '@hedtech/powercampus-design-system/types/ILogData';\r\nimport { ICourseCatalog } from '../../../Types/Course/ICourseCatalog';\r\nimport { ICourseCatalogSearch } from '../../../Types/Course/ICourseCatalogSearch';\r\nimport { ICourseResources } from '../../../Types/Resources/Search/ICourseResources';\r\n\r\n// Helpers\r\nimport Format from '@hedtech/powercampus-design-system/helpers/Format';\r\nimport LogData from '@hedtech/powercampus-design-system/helpers/LogData';\r\nimport Resolver from '@hedtech/powercampus-design-system/helpers/Resolver';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@hedtech/powercampus-design-system/react/core/styles/withStyles';\r\n\r\n// Constants\r\nimport Constants from '@hedtech/powercampus-design-system/helpers/Constants';\r\n\r\n// Requests\r\nimport RequestsCourse from '../../../Requests/Search/Course';\r\n\r\n// State Management\r\nimport LayoutActions from '@hedtech/powercampus-design-system/flux/actions/LayoutActions';\r\nimport LayoutStore from '@hedtech/powercampus-design-system/flux/stores/LayoutStore';\r\n// #endregion Imports\r\n\r\n// #region Types\r\ninterface ICourseState {\r\n availableClassLevel: IDropDownOption[];\r\n availableColleges: IDropDownOption[];\r\n availableCreditType: IDropDownOption[];\r\n availableCurriculum: IDropDownOption[];\r\n availableDepartment: IDropDownOption[];\r\n availableProgram: IDropDownOption[];\r\n availablePopulation: IDropDownOption[];\r\n availableSubtype: IDropDownOption[];\r\n availableNonTraditional: IDropDownOption[];\r\n componentError: boolean;\r\n courseCode?: string;\r\n courseDetail?: ICourseCatalog;\r\n courseDetailModalOpen?: boolean;\r\n cultures: ICultures;\r\n keywords?: string;\r\n openShareSearchCourseModal: boolean;\r\n resultsTotal: number;\r\n searchResultsList?: ICourseCatalog[];\r\n selectedClassLevel?: string | number;\r\n selectedCollege?: string | number;\r\n selectedCreditType?: string | number;\r\n selectedCurriculum?: string | number;\r\n selectedDepartment?: string | number;\r\n selectedProgram?: string | number;\r\n selectedPopulation?: string | number;\r\n selectedSubtype?: string | number;\r\n selectedNonTraditional?: string | number;\r\n urlToShare?: string;\r\n\r\n // #region Pagination\r\n page: number;\r\n rowsPerPage: number;\r\n rowsPerPageOptions: number[];\r\n // #endregion Pagination\r\n\r\n resources?: ICourseResources;\r\n}\r\n\r\nconst styles = ((theme: Theme) => createStyles({\r\n container: {\r\n flexDirection: 'row-reverse',\r\n flexWrap: 'wrap-reverse',\r\n [theme.breakpoints.up('md')]: {\r\n flexDirection: 'row',\r\n flexWrap: 'wrap'\r\n }\r\n }\r\n}));\r\n\r\ntype PropsWithStyles = WithStyles;\r\n// #endregion Types\r\n\r\n// #region Component\r\nclass CourseView extends React.Component {\r\n private idModule: string;\r\n private idPage: string;\r\n\r\n // #region Pagination\r\n private preservePage: boolean;\r\n private preserveRowsPerPage: boolean;\r\n private rowsPerPageOptions: number[];\r\n // #endregion Pagination\r\n\r\n public readonly state: Readonly;\r\n\r\n public constructor(props) {\r\n super(props);\r\n\r\n // #region Initialize Variables and State\r\n this.idModule = 'Search';\r\n this.idPage = 'Course';\r\n\r\n // #region Pagination\r\n this.preservePage = false;\r\n this.preserveRowsPerPage = false;\r\n this.rowsPerPageOptions = [5, 10, 15, 20, 25, 50];\r\n // #endregion Pagination\r\n\r\n this.state = this.getInitialState();\r\n // #endregion Initialize Variables and State\r\n\r\n // #region Bind State Management Listeners\r\n LayoutStore.addLayoutReadyListener(this.onLayoutReady);\r\n // #endregion State Management Listeners\r\n }\r\n\r\n private getInitialState(): ICourseState {\r\n let resources: ICourseResources | undefined;\r\n if (this.state) {\r\n resources = this.state.resources;\r\n }\r\n return {\r\n availableClassLevel: [],\r\n availableColleges: [],\r\n availableCreditType: [],\r\n availableCurriculum: [],\r\n availableDepartment: [],\r\n availableNonTraditional: [],\r\n availablePopulation: [],\r\n availableProgram: [],\r\n availableSubtype: [],\r\n componentError: false,\r\n courseDetail: undefined,\r\n courseDetailModalOpen: false,\r\n cultures: LayoutStore.getCultures(),\r\n openShareSearchCourseModal: false,\r\n resources: resources,\r\n resultsTotal: 0,\r\n\r\n // #region Pagination\r\n page: 0,\r\n rowsPerPage: 5,\r\n rowsPerPageOptions: []\r\n // #endregion Pagination\r\n };\r\n }\r\n\r\n // #region Events\r\n private onChangeDropDown = (optionSelected: IDropDownOption, id: string): void => {\r\n try {\r\n if (optionSelected) {\r\n switch (id) {\r\n case 'ddlProgram':\r\n this.setState({\r\n selectedProgram: optionSelected.value\r\n });\r\n break;\r\n case 'ddlCurriculum':\r\n this.setState({\r\n selectedCurriculum: optionSelected.value\r\n });\r\n break;\r\n case 'ddlSubtype':\r\n this.setState({\r\n selectedSubtype: optionSelected.value\r\n });\r\n break;\r\n case 'ddlCreditType':\r\n this.setState({\r\n selectedCreditType: optionSelected.value\r\n });\r\n break;\r\n case 'ddlClassLevel':\r\n this.setState({\r\n selectedClassLevel: optionSelected.value\r\n });\r\n break;\r\n case 'ddlCollege':\r\n this.setState({\r\n selectedCollege: optionSelected.value\r\n });\r\n break;\r\n case 'ddlDepartment':\r\n this.setState({\r\n selectedDepartment: optionSelected.value\r\n });\r\n break;\r\n case 'ddlPopulation':\r\n this.setState({\r\n selectedPopulation: optionSelected.value\r\n });\r\n break;\r\n case 'ddlNonTraditional':\r\n this.setState({\r\n selectedNonTraditional: optionSelected.value\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeDropDown.name, e));\r\n }\r\n };\r\n\r\n private onClearSearch = (): void => {\r\n try {\r\n this.setState({\r\n courseCode: undefined,\r\n selectedClassLevel: undefined,\r\n selectedCollege: undefined,\r\n selectedCreditType: undefined,\r\n selectedCurriculum: undefined,\r\n selectedDepartment: undefined,\r\n selectedNonTraditional: undefined,\r\n selectedPopulation: undefined,\r\n selectedProgram: undefined,\r\n selectedSubtype: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClearSearch.name, e));\r\n }\r\n };\r\n\r\n private onChangeTextField = (event: any): void => {\r\n try {\r\n const id = event.target.id;\r\n switch (id) {\r\n case 'txtSearch':\r\n this.setState({\r\n keywords: event.target.value\r\n });\r\n break;\r\n case 'txtCourseCode':\r\n this.setState({\r\n courseCode: event.target.value\r\n });\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeTextField.name, e));\r\n }\r\n };\r\n\r\n private onNewSearch = (): void => {\r\n try {\r\n this.setState({\r\n courseCode: undefined,\r\n keywords: undefined,\r\n searchResultsList: undefined,\r\n selectedClassLevel: undefined,\r\n selectedCollege: undefined,\r\n selectedCreditType: undefined,\r\n selectedCurriculum: undefined,\r\n selectedDepartment: undefined,\r\n selectedNonTraditional: undefined,\r\n selectedPopulation: undefined,\r\n selectedProgram: undefined,\r\n selectedSubtype: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onNewSearch.name, e));\r\n }\r\n };\r\n\r\n private onShareSearch = (): void => {\r\n try {\r\n const {\r\n courseCode,\r\n keywords,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional\r\n } = this.state;\r\n\r\n let urlLink: string | undefined;\r\n urlLink = `${window.location.origin}${Constants.webUrl}/Search/Course/Share?`;\r\n\r\n if (courseCode) {\r\n urlLink = `${urlLink}&courseCode=${encodeURIComponent(courseCode)}`;\r\n }\r\n\r\n if (keywords) {\r\n urlLink = `${urlLink}&keywords=${encodeURIComponent(keywords)}`;\r\n }\r\n\r\n if (selectedClassLevel) {\r\n urlLink = `${urlLink}&classLevel=${encodeURIComponent(String(selectedClassLevel))}`;\r\n }\r\n\r\n if (selectedCollege) {\r\n urlLink = `${urlLink}&college=${encodeURIComponent(String(selectedCollege))}`;\r\n }\r\n\r\n if (selectedCreditType) {\r\n urlLink = `${urlLink}&creditType=${encodeURIComponent(String(selectedCreditType))}`;\r\n }\r\n\r\n if (selectedCurriculum) {\r\n urlLink = `${urlLink}&curriculum=${encodeURIComponent(String(selectedCurriculum))}`;\r\n }\r\n\r\n if (selectedDepartment) {\r\n urlLink = `${urlLink}&department=${encodeURIComponent(String(selectedDepartment))}`;\r\n }\r\n\r\n if (selectedProgram) {\r\n urlLink = `${urlLink}&program=${encodeURIComponent(String(selectedProgram))}`;\r\n }\r\n\r\n if (selectedPopulation) {\r\n urlLink = `${urlLink}&population=${encodeURIComponent(String(selectedPopulation))}`;\r\n }\r\n\r\n if (selectedSubtype) {\r\n urlLink = `${urlLink}&subType=${encodeURIComponent(String(selectedSubtype))}`;\r\n }\r\n\r\n if (selectedNonTraditional) {\r\n urlLink = `${urlLink}&nonTradProgram=${encodeURIComponent(String(selectedNonTraditional))}`;\r\n }\r\n\r\n this.setState({\r\n openShareSearchCourseModal: true,\r\n urlToShare: urlLink\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onShareSearch.name, e));\r\n }\r\n };\r\n\r\n private onSearch = (): void => {\r\n try {\r\n const {\r\n courseCode,\r\n keywords,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional\r\n } = this.state;\r\n\r\n LayoutActions.setLoading(true);\r\n\r\n const courseCatalogSearch: ICourseCatalogSearch = {};\r\n courseCatalogSearch.courseCode = courseCode ? String(courseCode) : undefined;\r\n courseCatalogSearch.classLevel = selectedClassLevel ? String(selectedClassLevel) : undefined;\r\n courseCatalogSearch.college = selectedCollege ? String(selectedCollege) : undefined;\r\n courseCatalogSearch.creditType = selectedCreditType ? String(selectedCreditType) : undefined;\r\n courseCatalogSearch.curriculum = selectedCurriculum ? String(selectedCurriculum) : undefined;\r\n courseCatalogSearch.department = selectedDepartment ? String(selectedDepartment) : undefined;\r\n courseCatalogSearch.subType = selectedSubtype ? String(selectedSubtype) : undefined;\r\n courseCatalogSearch.keywords = keywords ? String(keywords) : undefined;\r\n courseCatalogSearch.nonTradProgram = selectedNonTraditional ? String(selectedNonTraditional) : undefined;\r\n courseCatalogSearch.population = selectedPopulation ? String(selectedPopulation) : undefined;\r\n courseCatalogSearch.program = selectedProgram ? String(selectedProgram) : undefined;\r\n\r\n const newUrl = this.setQueryString('/Search/Course');\r\n if (newUrl) {\r\n window.location.assign(newUrl);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onSearch.name, e));\r\n }\r\n };\r\n\r\n private onCloseShareSearchModal = (): void => {\r\n try {\r\n this.setState({\r\n openShareSearchCourseModal: false,\r\n urlToShare: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseShareSearchModal.name, e));\r\n }\r\n };\r\n\r\n private onFindCourse = (event: any): void => {\r\n try {\r\n const id = event.currentTarget.id.split('|');\r\n if (id && id[1]) {\r\n window.location.assign(`${Constants.webUrl}/Search/Section/Share?eventId=${encodeURIComponent(id[1])}`);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onFindCourse.name, e));\r\n }\r\n };\r\n\r\n private onClearSearchClick = (): void => {\r\n try {\r\n this.setState({\r\n keywords: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClearSearchClick.name, e));\r\n }\r\n };\r\n\r\n private onClearCourseCode = (): void => {\r\n try {\r\n this.setState({\r\n courseCode: undefined\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onClearCourseCode.name, e));\r\n }\r\n };\r\n\r\n private onCloseCourseDetailModal = (): void => {\r\n try {\r\n this.setState({\r\n courseDetailModalOpen: false\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCloseCourseDetailModal.name, e));\r\n }\r\n };\r\n\r\n private onCourseNameClick = (event: React.MouseEvent): void => {\r\n try {\r\n LayoutActions.setLoading(true);\r\n const id: string[] = event.currentTarget.id.split('_');\r\n RequestsCourse.getCourseDetail(id[3], undefined, undefined, this.resolveGetCourseDetail, this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onCourseNameClick.name, e));\r\n }\r\n };\r\n\r\n // #region Courses Pagination\r\n private getRowsPerPageOptions = (maxValue: number): number[] => {\r\n const rowsPerPageOptions: number[] = [];\r\n try {\r\n this.rowsPerPageOptions.forEach(option => {\r\n if (option < maxValue) {\r\n rowsPerPageOptions.push(option);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.getRowsPerPageOptions.name, e));\r\n }\r\n return rowsPerPageOptions;\r\n };\r\n\r\n private onChangePage = (_event: any, pageNumber: number): void => {\r\n try {\r\n this.preservePage = true;\r\n this.preserveRowsPerPage = true;\r\n\r\n this.setState({\r\n page: pageNumber\r\n }, this.setContent);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangePage.name, e));\r\n }\r\n };\r\n\r\n private onChangeRowsPerPage = (event: any): void => {\r\n try {\r\n this.setState({\r\n page: 0,\r\n rowsPerPage: Number(event.target.value)\r\n });\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onChangeRowsPerPage.name, e));\r\n }\r\n };\r\n // #endregion Courses Pagination\r\n\r\n // #endregion Events\r\n\r\n // #region Functions\r\n private setContent = (): void => {\r\n try {\r\n const {\r\n courseCode,\r\n keywords,\r\n page,\r\n rowsPerPage,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional\r\n } = this.state;\r\n\r\n LayoutActions.setLoading(true);\r\n const courseCatalogSearch: ICourseCatalogSearch = {};\r\n courseCatalogSearch.courseCode = courseCode ? String(courseCode) : undefined;\r\n courseCatalogSearch.classLevel = selectedClassLevel ? String(selectedClassLevel) : undefined;\r\n courseCatalogSearch.college = selectedCollege ? String(selectedCollege) : undefined;\r\n courseCatalogSearch.creditType = selectedCreditType ? String(selectedCreditType) : undefined;\r\n courseCatalogSearch.curriculum = selectedCurriculum ? String(selectedCurriculum) : undefined;\r\n courseCatalogSearch.department = selectedDepartment ? String(selectedDepartment) : undefined;\r\n courseCatalogSearch.subType = selectedSubtype ? String(selectedSubtype) : undefined;\r\n courseCatalogSearch.keywords = keywords ? String(keywords) : undefined;\r\n courseCatalogSearch.nonTradProgram = selectedNonTraditional ? String(selectedNonTraditional) : undefined;\r\n courseCatalogSearch.population = selectedPopulation ? String(selectedPopulation) : undefined;\r\n courseCatalogSearch.program = selectedProgram ? String(selectedProgram) : undefined;\r\n\r\n RequestsCourse.getCourseCatalogResults(\r\n courseCatalogSearch,\r\n page * rowsPerPage,\r\n rowsPerPage,\r\n this.resolveGetCourseCatalogResults,\r\n this.logError);\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.setContent.name, e));\r\n }\r\n };\r\n\r\n private setQueryStringValues = (): void => {\r\n try {\r\n const courseCatalogSearch: ICourseCatalogSearch = {};\r\n\r\n const hdnClassLevel: HTMLInputElement | undefined =\r\n document.getElementById('hdnClassLevel') as HTMLInputElement;\r\n if (hdnClassLevel && hdnClassLevel.value) {\r\n courseCatalogSearch.classLevel = hdnClassLevel.value;\r\n this.setState({\r\n selectedClassLevel: hdnClassLevel.value\r\n });\r\n hdnClassLevel.remove();\r\n }\r\n\r\n const hdnCollege: HTMLInputElement | undefined =\r\n document.getElementById('hdnCollege') as HTMLInputElement;\r\n if (hdnCollege && hdnCollege.value) {\r\n courseCatalogSearch.college = hdnCollege.value;\r\n this.setState({\r\n selectedCollege: hdnCollege.value\r\n });\r\n hdnCollege.remove();\r\n }\r\n\r\n const hdnCourseCode: HTMLInputElement | undefined =\r\n document.getElementById('hdnCourseCode') as HTMLInputElement;\r\n if (hdnCourseCode && hdnCourseCode.value) {\r\n courseCatalogSearch.courseCode = hdnCourseCode.value;\r\n this.setState({\r\n courseCode: hdnCourseCode.value\r\n });\r\n hdnCourseCode.remove();\r\n }\r\n\r\n const hdnCreditType: HTMLInputElement | undefined =\r\n document.getElementById('hdnCreditType') as HTMLInputElement;\r\n if (hdnCreditType && hdnCreditType.value) {\r\n courseCatalogSearch.creditType = hdnCreditType.value;\r\n this.setState({\r\n selectedCreditType: hdnCreditType.value\r\n });\r\n hdnCreditType.remove();\r\n }\r\n\r\n const hdnCurriculum: HTMLInputElement | undefined =\r\n document.getElementById('hdnCurriculum') as HTMLInputElement;\r\n if (hdnCurriculum && hdnCurriculum.value) {\r\n courseCatalogSearch.curriculum = hdnCurriculum.value;\r\n this.setState({\r\n selectedCurriculum: hdnCurriculum.value\r\n });\r\n hdnCurriculum.remove();\r\n }\r\n\r\n const hdnDepartment: HTMLInputElement | undefined =\r\n document.getElementById('hdnDepartment') as HTMLInputElement;\r\n if (hdnDepartment && hdnDepartment.value) {\r\n courseCatalogSearch.department = hdnDepartment.value;\r\n this.setState({\r\n selectedDepartment: hdnDepartment.value\r\n });\r\n hdnDepartment.remove();\r\n }\r\n\r\n const hdnEventSubType: HTMLInputElement | undefined =\r\n document.getElementById('hdnEventSubType') as HTMLInputElement;\r\n if (hdnEventSubType && hdnEventSubType.value) {\r\n courseCatalogSearch.subType = hdnEventSubType.value;\r\n this.setState({\r\n selectedSubtype: hdnEventSubType.value\r\n });\r\n hdnEventSubType.remove();\r\n }\r\n\r\n const hdnKeywords: HTMLInputElement | undefined =\r\n document.getElementById('hdnKeywords') as HTMLInputElement;\r\n if (hdnKeywords && hdnKeywords.value) {\r\n courseCatalogSearch.keywords = hdnKeywords.value;\r\n this.setState({\r\n keywords: hdnKeywords.value\r\n });\r\n hdnKeywords.remove();\r\n }\r\n\r\n const hdnNonTradProgram: HTMLInputElement | undefined =\r\n document.getElementById('hdnNonTradProgram') as HTMLInputElement;\r\n if (hdnNonTradProgram && hdnNonTradProgram.value) {\r\n courseCatalogSearch.nonTradProgram = hdnNonTradProgram.value;\r\n this.setState({\r\n selectedNonTraditional: hdnNonTradProgram.value\r\n });\r\n hdnNonTradProgram.remove();\r\n }\r\n\r\n const hdnPopulation: HTMLInputElement | undefined =\r\n document.getElementById('hdnPopulation') as HTMLInputElement;\r\n if (hdnPopulation && hdnPopulation.value) {\r\n courseCatalogSearch.population = hdnPopulation.value;\r\n this.setState({\r\n selectedPopulation: hdnPopulation.value\r\n });\r\n hdnPopulation.remove();\r\n }\r\n\r\n const hdnProgram: HTMLInputElement | undefined =\r\n document.getElementById('hdnProgram') as HTMLInputElement;\r\n if (hdnProgram && hdnProgram.value) {\r\n courseCatalogSearch.program = hdnProgram.value;\r\n this.setState({\r\n selectedProgram: hdnProgram.value\r\n });\r\n hdnProgram.remove();\r\n }\r\n\r\n if (courseCatalogSearch.classLevel ||\r\n courseCatalogSearch.college ||\r\n courseCatalogSearch.courseCode ||\r\n courseCatalogSearch.creditType ||\r\n courseCatalogSearch.curriculum ||\r\n courseCatalogSearch.department ||\r\n courseCatalogSearch.subType ||\r\n courseCatalogSearch.keywords ||\r\n courseCatalogSearch.nonTradProgram ||\r\n courseCatalogSearch.population ||\r\n courseCatalogSearch.program) {\r\n const {\r\n page,\r\n rowsPerPage\r\n } = this.state;\r\n\r\n RequestsCourse.getCourseCatalogResults(courseCatalogSearch, page, rowsPerPage,\r\n this.resolveGetCourseCatalogResults, this.logError);\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.setQueryStringValues.name, e));\r\n }\r\n };\r\n\r\n private setQueryString = (pageUrl: string): string => {\r\n try {\r\n const {\r\n courseCode,\r\n keywords,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional\r\n } = this.state;\r\n\r\n let urlLink: string = '';\r\n urlLink = `${window.location.origin}${Constants.webUrl}${pageUrl}?`;\r\n\r\n if (courseCode) {\r\n urlLink = `${urlLink}&courseCode=${encodeURIComponent(courseCode)}`;\r\n }\r\n\r\n if (keywords) {\r\n urlLink = `${urlLink}&keywords=${encodeURIComponent(keywords)}`;\r\n }\r\n\r\n if (selectedClassLevel) {\r\n urlLink = `${urlLink}&classLevel=${encodeURIComponent(String(selectedClassLevel))}`;\r\n }\r\n\r\n if (selectedCollege) {\r\n urlLink = `${urlLink}&college=${encodeURIComponent(String(selectedCollege))}`;\r\n }\r\n\r\n if (selectedCreditType) {\r\n urlLink = `${urlLink}&creditType=${encodeURIComponent(String(selectedCreditType))}`;\r\n }\r\n\r\n if (selectedCurriculum) {\r\n urlLink = `${urlLink}&curriculum=${encodeURIComponent(String(selectedCurriculum))}`;\r\n }\r\n\r\n if (selectedDepartment) {\r\n urlLink = `${urlLink}&department=${encodeURIComponent(String(selectedDepartment))}`;\r\n }\r\n\r\n if (selectedProgram) {\r\n urlLink = `${urlLink}&program=${encodeURIComponent(String(selectedProgram))}`;\r\n }\r\n\r\n if (selectedPopulation) {\r\n urlLink = `${urlLink}&population=${encodeURIComponent(String(selectedPopulation))}`;\r\n }\r\n\r\n if (selectedSubtype) {\r\n urlLink = `${urlLink}&subType=${encodeURIComponent(String(selectedSubtype))}`;\r\n }\r\n\r\n if (selectedNonTraditional) {\r\n urlLink = `${urlLink}&nonTradProgram=${encodeURIComponent(String(selectedNonTraditional))}`;\r\n }\r\n\r\n return urlLink;\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.onShareSearch.name, e));\r\n return '';\r\n }\r\n };\r\n\r\n // #endregion Functions\r\n\r\n // #region Error Functions\r\n private logError(logData: ILogData): void {\r\n LayoutActions.setLogData(logData);\r\n}\r\n\r\n private redirectError(code: number): void {\r\n LayoutActions.setRedirectCode(code);\r\n}\r\n // #endregion Error Functions\r\n\r\n // #region Resolvers\r\n private resolveLayoutReady = () => {\r\n try {\r\n const {\r\n resources\r\n } = this.state;\r\n\r\n if (resources) {\r\n document.title = resources.lblPageTitle;\r\n LayoutActions.setLoading(false);\r\n\r\n RequestsCourse.getSearchOptions(this.resolveGetSearchOptions, this.logError);\r\n }\r\n else {\r\n this.logError(LogData.noResources(this.resolveLayoutReady.name));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveLayoutReady.name, e));\r\n }\r\n};\r\n\r\n private resolveGetCourseCatalogResults = (json: string) => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetCourseCatalogResults.name);\r\n if (result?.status) {\r\n if (result.data.courseCatalogList &&\r\n result.data.overallCount !== undefined) {\r\n const page: number = this.preservePage ? this.state.page : 0;\r\n const rowsPerPageOptions: number[] =\r\n this.getRowsPerPageOptions(Number(result.data.overallCount));\r\n const rowsPerPage: number = this.preserveRowsPerPage ? this.state.rowsPerPage : this.rowsPerPageOptions[0];\r\n this.setState({\r\n page: page,\r\n resultsTotal: Number(result.data.overallCount),\r\n rowsPerPage: rowsPerPage,\r\n rowsPerPageOptions: rowsPerPageOptions,\r\n searchResultsList: result.data.courseCatalogList\r\n }, () => LayoutActions.setLoading(false));\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetCourseCatalogResults.name, e));\r\n }\r\n};\r\n\r\n private resolveGetSearchOptions = (json: string) => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetSearchOptions.name);\r\n if (result?.status) {\r\n if (result.data.classLevels) {\r\n this.setState({\r\n availableClassLevel: result.data.classLevels\r\n });\r\n }\r\n if (result.data.colleges) {\r\n this.setState({\r\n availableColleges: result.data.colleges\r\n });\r\n }\r\n if (result.data.creditTypes) {\r\n this.setState({\r\n availableCreditType: result.data.creditTypes\r\n });\r\n }\r\n if (result.data.curriculums) {\r\n this.setState({\r\n availableCurriculum: result.data.curriculums\r\n });\r\n }\r\n if (result.data.departments) {\r\n this.setState({\r\n availableDepartment: result.data.departments\r\n });\r\n }\r\n if (result.data.nontraditionalPrograms) {\r\n this.setState({\r\n availableNonTraditional: result.data.nontraditionalPrograms\r\n });\r\n }\r\n if (result.data.populations) {\r\n this.setState({\r\n availablePopulation: result.data.populations\r\n });\r\n }\r\n if (result.data.programs) {\r\n this.setState({\r\n availableProgram: result.data.programs\r\n });\r\n }\r\n if (result.data.subTypes) {\r\n this.setState({\r\n availableSubtype: result.data.subTypes\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetSearchOptions.name, e));\r\n }\r\n};\r\n\r\n private resolveGetCourseDetail = (json: string): void => {\r\n try {\r\n const result: IJsonResult | undefined\r\n = Resolver(json, this.resolveGetCourseDetail.name);\r\n if (result?.status) {\r\n this.setState({\r\n courseDetail: result.data,\r\n courseDetailModalOpen: true\r\n }, () => LayoutActions.setLoading(false));\r\n }\r\n }\r\n catch (e) {\r\n this.logError(LogData.fromException(this.resolveGetCourseDetail.name, e));\r\n }\r\n};\r\n\r\n // #endregion Resolvers\r\n\r\n // #region State Management Events\r\n private onLayoutReady = (): void => {\r\n const ready: boolean = LayoutStore.getLayoutReady();\r\n const resources: ICourseResources | undefined = LayoutStore.getResources();\r\n const cultures: ICultures = LayoutStore.getCultures();\r\n\r\n if (ready) {\r\n this.setState({\r\n cultures: cultures,\r\n resources: resources\r\n }, this.resolveLayoutReady);\r\n\r\n this.setQueryStringValues();\r\n }\r\n else {\r\n this.setState({\r\n componentError: true\r\n }, () => this.logError(LogData.layoutNoReady(this.onLayoutReady.name)));\r\n }\r\n};\r\n // #endregion State Management Events\r\n\r\n // #region Lifecycle\r\n public componentWillUnmount(): void {\r\n LayoutStore.removeLayoutReadyListener(this.onLayoutReady);\r\n}\r\n\r\n public componentDidCatch(error, info): void {\r\n this.setState({\r\n componentError: true\r\n }, () => {\r\n this.logError(LogData.fromComponentException(this.componentDidCatch.name, error, info));\r\n this.redirectError(500);\r\n });\r\n}\r\n // #endregion Lifecycle\r\n\r\n public render(): JSX.Element {\r\n const {\r\n availableClassLevel,\r\n availableColleges,\r\n availableCreditType,\r\n availableCurriculum,\r\n availableDepartment,\r\n availableProgram,\r\n availablePopulation,\r\n availableSubtype,\r\n availableNonTraditional,\r\n componentError,\r\n courseCode,\r\n courseDetail,\r\n courseDetailModalOpen,\r\n cultures,\r\n keywords,\r\n openShareSearchCourseModal,\r\n page,\r\n rowsPerPage,\r\n resultsTotal,\r\n rowsPerPageOptions,\r\n searchResultsList,\r\n selectedClassLevel,\r\n selectedCollege,\r\n selectedCreditType,\r\n selectedCurriculum,\r\n selectedDepartment,\r\n selectedProgram,\r\n selectedPopulation,\r\n selectedSubtype,\r\n selectedNonTraditional,\r\n urlToShare,\r\n\r\n resources\r\n } = this.state;\r\n\r\n const {\r\n classes\r\n } = this.props;\r\n\r\n let paginationComponent: JSX.Element | undefined;\r\n if (searchResultsList && searchResultsList.length > 0) {\r\n paginationComponent = (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let results: JSX.Element | undefined;\r\n if (searchResultsList && resources) {\r\n results = (\r\n \r\n );\r\n }\r\n if (searchResultsList && searchResultsList.length === 0 && resources) {\r\n results = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let firstRow: number = page * rowsPerPage + 1;\r\n let lastRow: number = page * rowsPerPage + rowsPerPage;\r\n const totalRows: number = resultsTotal ? resultsTotal : 0;\r\n if (lastRow > totalRows) {\r\n lastRow = totalRows;\r\n }\r\n if (firstRow > lastRow) {\r\n firstRow = lastRow;\r\n }\r\n\r\n let resultsLabel: JSX.Element | undefined;\r\n if (resources && searchResultsList && searchResultsList.length > 0) {\r\n resultsLabel = (\r\n \r\n \r\n \r\n {Format.toString(resources.formatResultsShowing,\r\n [firstRow.toLocaleString(cultures.numberCulture),\r\n lastRow.toLocaleString(cultures.numberCulture),\r\n totalRows.toLocaleString(cultures.numberCulture)\r\n ])\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n let courseDetailModal: JSX.Element | undefined;\r\n if (courseDetailModalOpen) {\r\n if (resources && resources.courseDetailModal && courseDetail) {\r\n courseDetailModal = (\r\n \r\n );\r\n }\r\n }\r\n\r\n let shareSearch: JSX.Element | undefined;\r\n if (resources && openShareSearchCourseModal && urlToShare) {\r\n shareSearch = (\r\n \r\n );\r\n }\r\n\r\n let contentPage: JSX.Element | undefined;\r\n if (!componentError && resources) {\r\n contentPage = (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {resources.lblNewSearch}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {resultsLabel}\r\n
\r\n {results}\r\n {paginationComponent}\r\n \r\n \r\n \r\n \r\n {shareSearch}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {contentPage}\r\n {courseDetailModal}\r\n \r\n \r\n );\r\n}\r\n}\r\n\r\nconst CourseViewWithLayout = withLayout(withStyles(styles)(CourseView));\r\n// #endregion Component\r\n\r\n// RenderDOM: Component\r\nReactDOM.render(, document.getElementById('root'));","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 63120,\n\t\"./it-ch.js\": 63120,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 77;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t77: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_hedtech_powercampus_self_service\"] = self[\"webpackChunk_hedtech_powercampus_self_service\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [846], () => (__webpack_require__(81629)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","withWidth","props","searchResultsList","width","onCourseNameClick","onFindCourse","resources","cards","descLengthLimit","isWidthDown","forEach","course","iCourse","push","Card","id","Grid","container","spacing","item","xs","md","Link","code","onClick","Text","color","size","Format","formatTitleSection","name","lblSubtypes","subtypes","description","length","formatTitleSectionShort","lblDescription","substring","Button","fluid","lblFindSections","withStyles","theme","createStyles","table","breakpoints","up","content","subType","lblEmpty","lblPrerequisites","prerequisiteCondition","lblCorequisite","corequisiteCondition","lblFees","courseFeeCondition","lblCredits","credits","lblCreditTypes","creditTypeCondition","ExpansionPanel","header","subTypeList","courseDetail","open","onClose","Array","isArray","map","i","key","courseDetailSubType","Modal","disableHeaderTypography","formatCourseName","Divider","maxWidth","styles","justifyContent","inline","display","marginLeft","Tokens","availableClassLevel","availableColleges","availableCreditType","availableCurriculum","availableDepartment","availableProgram","availablePopulation","availableSubtype","availableNonTraditional","classes","courseCode","selectedClassLevel","selectedCollege","selectedCreditType","selectedCurriculum","selectedDepartment","selectedProgram","selectedPopulation","selectedSubtype","selectedNonTraditional","onChangeDropDown","onChangeTextField","onClearCourseCode","onShareSearch","onClearSearch","onSearch","lblFilters","emptyOption","String","lblSelect","value","Search","placeholder","lblCourseCode","onChange","onClear","onSearchInvoked","Dropdown","label","lblProgram","options","lblCurriculum","lblSubtype","lblCreditType","lblClassLevel","lblCollege","lblDepartment","lblPopulation","lblNonTraditional","alignItems","direction","justify","align","textVariantStyling","variant","lblClearAll","className","Icon","lblShareSearch","btnSearch","query","matches","defaultExpanded","urlToShare","onCloseModal","disableBackdropClick","footer","btnOk","lblTitle","TextField","lblUrlToShare","type","getSearchOptions","resolver","resolveError","Request","this","getCourseCatalogResults","courseCatalogSearch","startIndex","getCourseDetail","CourseView","optionSelected","setState","e","logError","LogData","undefined","event","target","keywords","onNewSearch","urlLink","state","window","location","origin","Constants","encodeURIComponent","openShareSearchCourseModal","LayoutActions","classLevel","college","creditType","curriculum","department","nonTradProgram","population","program","newUrl","setQueryString","assign","onCloseShareSearchModal","currentTarget","split","onClearSearchClick","courseDetailModalOpen","onCloseCourseDetailModal","RequestsCourse","resolveGetCourseDetail","maxValue","rowsPerPageOptions","option","getRowsPerPageOptions","_event","pageNumber","preservePage","preserveRowsPerPage","page","setContent","onChangePage","rowsPerPage","Number","onChangeRowsPerPage","resolveGetCourseCatalogResults","hdnClassLevel","document","getElementById","remove","hdnCollege","hdnCourseCode","hdnCreditType","hdnCurriculum","hdnDepartment","hdnEventSubType","hdnKeywords","hdnNonTradProgram","hdnPopulation","hdnProgram","setQueryStringValues","pageUrl","title","lblPageTitle","resolveGetSearchOptions","resolveLayoutReady","json","result","Resolver","status","data","courseCatalogList","overallCount","resultsTotal","classLevels","colleges","creditTypes","curriculums","departments","nontraditionalPrograms","populations","programs","subTypes","ready","LayoutStore","cultures","componentError","onLayoutReady","idModule","idPage","getInitialState","logData","error","info","componentDidCatch","redirectError","paginationComponent","results","Pagination","count","courseCardResources","Illustration","text","lblNoResults","resultsLabel","courseDetailModal","shareSearch","contentPage","firstRow","lastRow","totalRows","formatResultsShowing","toLocaleString","numberCulture","shareSearchCourseLinkModalResources","lblNewSearch","courseSearchOptionsResources","Layout","showCart","showNotifications","React","CourseViewWithLayout","withLayout","flexDirection","flexWrap","ReactDOM","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","keys","Object","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}