{"version":3,"sources":["atoms/submittedState.ts","components/Form.tsx"],"names":["searchFormSubmittedState","atom","key","default","searchFormSubmitted","Form","_ref","_selectedFilters$subj","_selectedFilters$loca","_selectedFilters$inst","selectedFilters","subjectParam","filtersReader","isSearch","hasFilters","filterGroups","bus","useBus","subjectsEndPoint","concat","API_BASE_URL","history","useHistory","setSearchFormSubmitted","useSetRecoilState","currentUrl","useRef","_useForm","useForm","newUrl","current","url","push","handleSubjectChange","handleInputChange","handleLocationChange","handleSubmit","inputs","inputsCheckedCount","formSubmit","useCallback","event","emit","CourseSearchEvents","SEARCH_SUBMITTED","preSelected","keyword","subject","text","preSelectedLocIns","location","institution","_jsxs","onSubmit","children","_jsx","Row","Column","width","CourseSubject","apiUrl","handleChange","preselected","marginTop","marginBottom","spacer","DropdownTypeahead","formLabel","label","name","handleSelected","dataTestId","typeaheadTestId","Object","keys","map","title","index","CheckboxRevealGroup","controls","camelcase","selectedCount","marginLeft","getGridOffset","ButtonPrimaryNoIcon","element","type","id"],"mappings":"sHAAA,+CAMaA,EAA2BC,YAAqB,CACzDC,IAAK,2BACLC,QAAS,CACLC,qBAAqB,I,mCCT7B,sJAmKeC,UA3IV,SAAHC,GAMK,IAADC,EAAAC,EAAAC,EALFC,EAAeJ,EAAfI,gBACAC,EAAYL,EAAZK,aACAC,EAAaN,EAAbM,cACAC,EAAQP,EAARO,SACAC,EAAUR,EAAVQ,WAEMC,EAAeH,IACfI,EAAMC,mBACNC,EAAgB,GAAAC,OAAMC,IAAY,gDAClCC,EAAUC,cACVC,EAAyBC,YAAkBxB,KAC3CyB,EAAaC,mBAUnBC,EAOIC,IACAb,EACAD,EACAD,EACAH,EACAC,GArBoB,SAACkB,GACrB,GAAIJ,EAAWK,UAAYD,EAA3B,CAIA,IAAME,EAAG,wBAAAZ,OAA2BU,GACpCJ,EAAWK,QAAUD,EACrBR,EAAQW,KAAKD,EAJb,CAKJ,IAEIE,EAAmBN,EAAnBM,oBACAC,EAAiBP,EAAjBO,kBACAC,EAAoBR,EAApBQ,qBACAC,EAAYT,EAAZS,aACAC,EAAMV,EAANU,OACAC,EAAkBX,EAAlBW,mBAUEC,EAEMC,uBACR,SAAAC,GACIlB,EAAuB,CACnBnB,qBAAqB,IAEzBY,EAAI0B,KAAKC,IAAmBC,kBAC5BR,EAAaK,EACjB,GACA,CAACzB,EAAKoB,EAAcb,IAGlBsB,EACFnC,EAAgBoC,UAAqC,QAA9BvC,EAAIG,EAAgBqC,QAAQ,UAAE,IAAAxC,OAAA,EAA1BA,EAA4ByC,MAErDC,GACyB,QAA3BzC,EAAAE,EAAgBwC,SAAS,UAAE,IAAA1C,OAAA,EAA3BA,EAA6BwC,QACC,QADGvC,EACjCC,EAAgByC,YAAY,UAAE,IAAA1C,OAAA,EAA9BA,EAAgCuC,MAEpC,OACII,eAAA,QAAMC,SAAUd,EAAWe,SAAA,CACvBC,cAACC,MAAG,CAAAF,SACAC,cAACE,SAAM,CAACC,MAAO,CAAC,GAAGJ,SACfC,cAACI,gBAAa,CACVC,OAAQ1C,EACR2C,aAAc5B,EACd6B,YAAajB,QAIzBU,cAACC,MAAG,CAAAF,SACAC,cAACE,SAAM,CACHC,MAAO,CAAC,GACRK,UAAU,OACVC,aAAc,CAACC,iBAAO,GAAI,KAAMA,iBAAO,IAAIX,SAE3CC,cAACW,IAAiB,CACdC,UAAU,0BACVC,MAAM,gBACNC,KAAK,WACLC,eAAgBnC,EAChBU,YAAaI,EACbsB,WAAW,WACXC,gBAAgB,qBAChBZ,OAAM,GAAAzC,OAAKC,IAAY,sHAInCmC,cAACC,MAAG,CAAAF,SACCvC,GACG0D,OAAOC,KAAK3D,GAAc4D,KAAI,SAACC,EAAOC,GAAK,OACvCtB,cAACE,SAAM,CACHC,MAAO,CAAC,EAAG,KAAM,GAAQ,MAEzBM,aAAa,OAAMV,SAEnBC,cAACuB,sBAAmB,CAChBV,MAAOQ,EACPG,SACI1C,EAAO,GAADlB,OACC6D,IACCJ,GACH,OAGTf,aAAc3B,EACd+C,cACI3C,EAAmB,GAADnB,OAAI6D,IAAUJ,GAAM,UAE5C,gBAAAzD,OAhBmB0D,GAiBhB,MAGrBtB,cAACC,MAAG,CAAAF,SACAC,cAACE,SAAM,CACHC,MAAO,CAAC,GAAK,GAAI,KAAM,EAAI,GAAI,MAC/BwB,WAAY,CACRC,wBAAc,GACd,KACAA,wBAAc,GACd,KACA,MAEJnB,aAAc,CAAC,OAAQ,KAAM,GAC7BD,UAAW,CAAC,OAAQ,KAAM,QAAQT,SAElCC,cAAC6B,sBAAmB,CAChBC,QAAQ,SACRC,KAAK,SACLC,GAAG,SACH,cAAY,SAAQjC,SACvB,yBAOrB,C","file":"static/js/4.578493f2.chunk.js","sourcesContent":["import { atom } from 'recoil';\n\nexport interface SubmittedState {\n searchFormSubmitted: boolean;\n}\n\nexport const searchFormSubmittedState = atom({\n key: 'searchFormSubmittedState',\n default: {\n searchFormSubmitted: false,\n },\n});\n","//@ts-nocheck\nimport React, { useCallback, useRef } from 'react';\nimport { useHistory } from 'react-router';\nimport { useBus } from 'react-bus';\nimport camelcase from 'camelcase';\nimport { CheckboxRevealGroup } from '@prospects/cl-prospects/lib/components';\nimport DropdownTypeahead from '@prospects/cl-prospects/lib/components/DropdownTypeahead';\nimport useForm, {\n StateFilterGroupTitles,\n SelectedFilters,\n} from '@prospects/cl-prospects/lib/hooks/useCourseSearchForm';\nimport { ButtonPrimaryNoIcon } from '@prospects/cl-button';\nimport { Column, Row, getGridOffset, spacer } from '@prospects/cl-core';\nimport { API_BASE_URL, CourseSearchEvents } from '../App';\nimport { CourseSubject } from '@prospects/cl-prospects/lib/components';\nimport { useSetRecoilState } from 'recoil';\nimport { searchFormSubmittedState } from '../atoms/submittedState';\n\nconst Form: React.FC<{\n isSearch: (search: boolean) => void;\n hasFilters: (filters: boolean) => void;\n selectedFilters: SelectedFilters;\n subjectParam: (param: string | undefined) => void;\n filtersReader: any;\n}> = ({\n selectedFilters,\n subjectParam,\n filtersReader,\n isSearch,\n hasFilters,\n}) => {\n const filterGroups = filtersReader();\n const bus = useBus();\n const subjectsEndPoint = `${API_BASE_URL}/api/taxonomy/names_by_keyword/SUBJ?keyword=`;\n const history = useHistory();\n const setSearchFormSubmitted = useSetRecoilState(searchFormSubmittedState);\n const currentUrl = useRef();\n const handleUrlChange = (newUrl: string) => {\n if (currentUrl.current === newUrl) {\n return;\n }\n\n const url = `/postgraduate-courses${newUrl}`;\n currentUrl.current = newUrl;\n history.push(url);\n };\n const {\n handleSubjectChange,\n handleInputChange,\n handleLocationChange,\n handleSubmit,\n inputs,\n inputsCheckedCount,\n } = useForm(\n filterGroups,\n hasFilters,\n isSearch,\n selectedFilters,\n subjectParam,\n handleUrlChange\n );\n\n const formSubmit: (\n event: React.FormEvent\n ) => void = useCallback(\n event => {\n setSearchFormSubmitted({\n searchFormSubmitted: true,\n });\n bus.emit(CourseSearchEvents.SEARCH_SUBMITTED);\n handleSubmit(event);\n },\n [bus, handleSubmit, setSearchFormSubmitted]\n );\n\n const preSelected =\n selectedFilters.keyword || selectedFilters.subject[0]?.text;\n\n const preSelectedLocIns =\n selectedFilters.location[0]?.text ||\n selectedFilters.institution[0]?.text;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n {filterGroups &&\n Object.keys(filterGroups).map((title, index) => (\n \n \n \n ))}\n \n \n \n \n Search courses\n \n \n \n
\n );\n};\n\nexport default Form;\n"],"sourceRoot":""}