{"version":3,"sources":["webpack:///./src/js/react-hooks/use-fetch.js","webpack:///./src/js/react-components/alert/index.js","webpack:///./src/js/react-components/loading/index.js","webpack:///./src/js/react-hooks/use-query-string.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/js/react-hooks/use-click-outside.js","webpack:///./src/js/react-components/dropdown/index.js","webpack:///./src/js/react-components/cards/staff-card.js","webpack:///./src/js/utils/formats.js","webpack:///./src/js/react-components/staff/list.js","webpack:///./src/js/react-components/checkbox/index.js","webpack:///./src/js/react-components/staff-listing/index.js"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","arr","Array","isArray","_arrayWithHoles","l","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","useFetch","url","options","_useState2","useState","response","setResponse","_useState4","setError","_useState6","isLoading","setIsLoading","fetchData","_x","_x2","_fetchData","_callee","json","_context","axios","t0","useEffect","Alert","_ref","heading","description","React","createElement","className","concat","role","aria-live","propTypes","string","isRequired","Loading","label","aria-label","useQueryString","initialValue","_useState","getQueryStringValue","setValue","onSetValue","useCallback","newValue","setQueryStringValue","module","exports","webpackPolyfill","deprecate","paths","children","get","useClickOutside","ref","callback","listener","current","contains","target","document","addEventListener","removeEventListener","Dropdown","_options$","disabled","hiddenLabel","id","_ref$initialValue","onSelect","visibleLabel","hiddenLabelId","useRef","nanoid","visibleLabelId","initialSelectedOption","find","option","buttonRef","containerRef","listboxRef","keysSoFar","setKeysSoFar","isOpen","setIsOpen","selectedOption","setSelectedOption","itemRef","node","scrollIntoView","behavior","scrollMode","block","selectOption","handleKeyDown","preventDefault","indexToFocus","selectedOptionIndex","findIndex","keyCode","enter","space","focus","escape","home","end","down","up","toLowerCase","startsWith","setTimeout","htmlFor","aria-expanded","aria-haspopup","aria-labelledby","onClick","transitionComplete","xlinkHref","_extends","onKeyDown","tabIndex","map","aria-selected","isEqual","bool","func","arrayOf","shape","memo","StaffCard","phone","normalizedPhone","image","Image","fullName","FullName","positions","Position","department","Department","phoneNumber","PhoneNumber","emailAddress","EmailAddress","profileUrl","ProfileUrl","emailAriaLabel","phoneAriaLabel","externalLinkText","isExternal","isExternalLink","style","backgroundImage","data-object-fit","src","alt","loading","height","width","href","rel","position","index","replace","_toConsumableArray","flatMap","number","array","join","List","_response$data","_response$data$StaffL","_response$data2","_response$data3","_response$data4","errorDescription","errorHeading","loadingDataLabel","resultsAriaLabel","data","StaffListing","Results","_ref2","Id","attributes","_objectWithoutProperties","_excluded","fetchUrl","Checkbox","checked","onChange","labelId","checkboxId","checkboxLabel","checkboxQueryString","departmentId","departmentLabel","departmentOptions","departmentQueryString","schoolQueryString","schoolName","sortbyId","sortbyLabel","sortbyOptions","sortbyQueryString","headingId","_useQueryString2","departmentQs","setDepartmentQs","_useQueryString4","sortByQs","setSortByQs","_useQueryString6","fulltimeQs","setFulltimeQs","fetchUrlWithParams","stringifyUrl","query","_objectSpread","_defineProperty","parsedDepartmentOptions","JSON","parse","parsedSortbyOptions","_useFetch","state"],"mappings":"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","file":"11.261afc.js","sourcesContent":["import axios from 'axios';\r\nimport { useEffect, useState } from 'react';\r\n\r\nfunction useFetch(url, options) {\r\n  const [response, setResponse] = useState(null);\r\n  const [error, setError] = useState(null);\r\n  const [isLoading, setIsLoading] = useState(false);\r\n\r\n  async function fetchData(url, options) {\r\n    setIsLoading(true);\r\n    try {\r\n      const json = await axios(url, options);\r\n      setResponse(json);\r\n    } catch (error) {\r\n      setError(error);\r\n    } finally {\r\n      setIsLoading(false);\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    fetchData(url, options);\r\n  }, [url, options]);\r\n\r\n  return { response, error, isLoading, fetchData };\r\n}\r\n\r\nexport default useFetch;\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\n\r\n// type: string = info | warning | error\r\n\r\nfunction Alert({ heading, description, type }) {\r\n  return (\r\n    <div\r\n      className={`alert ${type ? `alert--${type}` : ''}`}\r\n      role=\"alert\"\r\n      aria-live=\"polite\"\r\n    >\r\n      <div className=\"alert__wrapper\">\r\n        <h3 className=\"alert__heading\">{heading}</h3>\r\n        <p className=\"alert__description text-base\">{description}</p>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nAlert.propTypes = {\r\n  heading: string.isRequired,\r\n  description: string.isRequired,\r\n  type: string\r\n};\r\n\r\nexport default Alert;\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\n\r\nfunction Loading({ label }) {\r\n  return (\r\n    <div\r\n      aria-label={label}\r\n      className=\"loading\"\r\n      role=\"alert\"\r\n      aria-live=\"assertive\"\r\n    >\r\n      <div className=\"loading__fading-circle\">\r\n        <div className=\"loading__circle\" />\r\n        <div className=\"loading__circle loading__circle--2\" />\r\n        <div className=\"loading__circle loading__circle--3\" />\r\n        <div className=\"loading__circle loading__circle--4\" />\r\n        <div className=\"loading__circle loading__circle--5\" />\r\n        <div className=\"loading__circle loading__circle--6\" />\r\n        <div className=\"loading__circle loading__circle--7\" />\r\n        <div className=\"loading__circle loading__circle--8\" />\r\n        <div className=\"loading__circle loading__circle--9\" />\r\n        <div className=\"loading__circle loading__circle--10\" />\r\n        <div className=\"loading__circle loading__circle--11\" />\r\n        <div className=\"loading__circle loading__circle--12\" />\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nLoading.propTypes = {\r\n  label: string.isRequired\r\n};\r\n\r\nexport default Loading;\r\n","import { useState, useCallback } from 'react';\r\nimport { getQueryStringValue, setQueryStringValue } from '../utils/url';\r\n\r\nfunction useQueryString(key, initialValue = '') {\r\n  const [value, setValue] = useState(getQueryStringValue(key) || initialValue);\r\n  const onSetValue = useCallback(\r\n    (newValue) => {\r\n      setValue(newValue);\r\n      setQueryStringValue(key, newValue);\r\n    },\r\n    [key]\r\n  );\r\n\r\n  return [value, onSetValue];\r\n}\r\n\r\nexport default useQueryString;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { useEffect } from 'react';\r\n\r\nfunction useClickOutside(ref, callback) {\r\n  useEffect(() => {\r\n    const listener = (e) => {\r\n      if (!ref.current || ref.current.contains(e.target)) {\r\n        return;\r\n      }\r\n\r\n      callback(e);\r\n    };\r\n\r\n    document.addEventListener('click', listener);\r\n\r\n    return () => {\r\n      document.removeEventListener('click', listener);\r\n    };\r\n  }, [ref, callback]);\r\n}\r\n\r\nexport default useClickOutside;\r\n","import React, { useCallback, useRef, useState } from 'react';\r\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\r\nimport scrollIntoView from 'scroll-into-view-if-needed';\r\nimport { nanoid } from 'nanoid';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nimport keys from '../../utils/keys';\r\nimport { transitionComplete } from '../../utils/timedEvents';\r\nimport useClickOutside from '../../react-hooks/use-click-outside';\r\n\r\nconst CLEAR_TIME = 500;\r\n\r\nfunction Dropdown({\r\n  disabled,\r\n  hiddenLabel,\r\n  id,\r\n  initialValue = '',\r\n  label,\r\n  onSelect,\r\n  options,\r\n  visibleLabel\r\n}) {\r\n  const hiddenLabelId = useRef(`id-${nanoid()}`);\r\n  const visibleLabelId = useRef(`id-${nanoid()}`);\r\n  const initialSelectedOption =\r\n    options.find((option) => option.value === initialValue) || null;\r\n  const buttonRef = useRef(null);\r\n  const containerRef = useRef(null);\r\n  const listboxRef = useRef(null);\r\n  const [keysSoFar, setKeysSoFar] = useState('');\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  const [selectedOption, setSelectedOption] = useState(initialSelectedOption);\r\n  const itemRef = useCallback((node) => {\r\n    if (node) {\r\n      scrollIntoView(node, {\r\n        behavior: 'smooth',\r\n        scrollMode: 'if-needed',\r\n        block: 'nearest'\r\n      });\r\n    }\r\n  }, []);\r\n\r\n  useClickOutside(containerRef, () => setIsOpen(false));\r\n\r\n  function clearKeysSoFar() {\r\n    setTimeout(() => setKeysSoFar(''), CLEAR_TIME);\r\n  }\r\n\r\n  function selectOption(option) {\r\n    onSelect(option.value);\r\n    setSelectedOption(option);\r\n  }\r\n\r\n  function openListbox() {\r\n    setIsOpen(true);\r\n    if (!selectedOption) {\r\n      setSelectedOption(options[0]);\r\n    }\r\n  }\r\n\r\n  function onButtonClick() {\r\n    if (!isOpen) {\r\n      openListbox();\r\n      transitionComplete(() => listboxRef.current.focus());\r\n    } else {\r\n      setIsOpen(false);\r\n    }\r\n  }\r\n\r\n  function searchOptionToFocus() {\r\n    const indexToFocus = options.findIndex((option) =>\r\n      option.label.toLowerCase().startsWith(keysSoFar)\r\n    );\r\n\r\n    if (indexToFocus >= 0) {\r\n      setSelectedOption(options[indexToFocus]);\r\n    }\r\n  }\r\n\r\n  function handleKeyDown(e) {\r\n    e.preventDefault();\r\n    const { length } = options;\r\n    const selectedOptionIndex = options.findIndex(\r\n      (option) => option.value === selectedOption.value\r\n    );\r\n\r\n    switch (e.keyCode) {\r\n      case keys.enter:\r\n      case keys.space:\r\n        selectOption(selectedOption);\r\n        setIsOpen(false);\r\n        buttonRef.current.focus();\r\n        break;\r\n      case keys.escape:\r\n        setIsOpen(false);\r\n        buttonRef.current.focus();\r\n        break;\r\n      case keys.home:\r\n        selectOption(options[0]);\r\n        break;\r\n      case keys.end:\r\n        selectOption(options[options.length - 1]);\r\n        break;\r\n      case keys.down:\r\n        selectOption(options[(selectedOptionIndex + 1) % length]);\r\n        break;\r\n      case keys.up:\r\n        selectOption(options[(selectedOptionIndex - 1 + length) % length]);\r\n        break;\r\n      default:\r\n        setKeysSoFar(`${keysSoFar}${e.key}`);\r\n        if (keysSoFar) {\r\n          searchOptionToFocus();\r\n        }\r\n        clearKeysSoFar();\r\n        break;\r\n    }\r\n  }\r\n\r\n  return (\r\n    <div className=\"dropdown\" ref={containerRef}>\r\n      {hiddenLabel && (\r\n        <span\r\n          id={hiddenLabelId.current}\r\n          className=\"dropdown__hidden-label visually-hidden\"\r\n        >\r\n          {hiddenLabel}\r\n        </span>\r\n      )}\r\n      {visibleLabel && (\r\n        <label\r\n          className=\"dropdown__label\"\r\n          id={visibleLabelId.current}\r\n          htmlFor={id}\r\n        >\r\n          {visibleLabel}\r\n        </label>\r\n      )}\r\n      <div\r\n        className={`dropdown__wrapper ${\r\n          isOpen ? 'dropdown__wrapper--open' : ''\r\n        }`}\r\n      >\r\n        <button\r\n          ref={buttonRef}\r\n          aria-expanded={isOpen}\r\n          aria-haspopup=\"listbox\"\r\n          aria-labelledby={\r\n            visibleLabel ? visibleLabelId.current : hiddenLabelId.current\r\n          }\r\n          id={id}\r\n          className=\"dropdown__button\"\r\n          disabled={disabled}\r\n          onClick={onButtonClick}\r\n        >\r\n          <span className=\"dropdown__selected-option-label\">\r\n            {selectedOption?.label || label || options[0]?.label}\r\n          </span>\r\n          <svg className=\"dropdown__icon\">\r\n            <use xlinkHref=\"#chevron-down-outline\" />\r\n          </svg>\r\n        </button>\r\n        <ul\r\n          onKeyDown={(e) => handleKeyDown(e)}\r\n          ref={listboxRef}\r\n          aria-labelledby={\r\n            visibleLabel ? visibleLabelId.current : hiddenLabelId.current\r\n          }\r\n          tabIndex=\"-1\"\r\n          role=\"listbox\"\r\n          className=\"dropdown__listbox\"\r\n          {...(selectedOption && {\r\n            'aria-activedescendant': selectedOption.value\r\n          })}\r\n        >\r\n          {options.map((option) => (\r\n            <li\r\n              key={option.value}\r\n              aria-label={`${hiddenLabel || visibleLabel} ${option.label}`}\r\n              aria-selected={isEqual(option, selectedOption)}\r\n              id={option.value}\r\n              className=\"dropdown__option\"\r\n              role=\"option\"\r\n              onClick={() => {\r\n                selectOption(option);\r\n                setIsOpen(false);\r\n              }}\r\n              {...(selectedOption === option && { ref: itemRef })}\r\n            >\r\n              {option.label}\r\n            </li>\r\n          ))}\r\n        </ul>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nDropdown.propTypes = {\r\n  disabled: bool,\r\n  hiddenLabel: string,\r\n  id: string.isRequired,\r\n  initialValue: string,\r\n  label: string,\r\n  onSelect: func.isRequired,\r\n  options: arrayOf(\r\n    shape({\r\n      label: string.isRequired,\r\n      value: string.isRequired\r\n    }).isRequired\r\n  ).isRequired,\r\n  visibleLabel: string.isRequired\r\n};\r\n\r\nexport default React.memo(Dropdown);\r\n","import React from 'react';\r\nimport { arrayOf, string } from 'prop-types';\r\nimport { formatPhone } from '../../utils/formats';\r\nimport { isExternalLink } from '../../utils/url';\r\n\r\nfunction StaffCard({\r\n  id: id,\r\n  Image: image,\r\n  FullName: fullName,\r\n  Position: positions,\r\n  Department: department,\r\n  PhoneNumber: phoneNumber,\r\n  EmailAddress: emailAddress,\r\n  ProfileUrl: profileUrl,\r\n  emailAriaLabel,\r\n  phoneAriaLabel,\r\n  externalLinkText\r\n}) {\r\n  const isExternal = isExternalLink(profileUrl);\r\n\r\n  return (\r\n    <article\r\n      className={`staff-card ${\r\n        isExternal\r\n          ? 'faculty-staff-listing__external-card faculty-staff-listing__external-card--no-image'\r\n          : ''\r\n      }`}\r\n      aria-labelledby={id}\r\n    >\r\n      <div className=\"staff-card__desktop-wrapper\">\r\n        {image && (\r\n          <div\r\n            className=\"staff-card__image\"\r\n            style={{ backgroundImage: `url(${image})` }}\r\n            aria-label={fullName}\r\n            role=\"img\"\r\n          />\r\n        )}\r\n      </div>\r\n      <div className=\"staff-card__wrapper\">\r\n        <div className=\"staff-card__info\">\r\n          <div className=\"staff-card__mobile-wrapper\">\r\n            {image && (\r\n              <img\r\n                className=\"staff-card__image\"\r\n                data-object-fit=\"cover\"\r\n                src={image}\r\n                alt={fullName}\r\n                loading=\"lazy\"\r\n                height=\"80\"\r\n                width=\"80\"\r\n              />\r\n            )}\r\n            <div className=\"staff-card__personal-info\">\r\n              <h2 className=\"staff-card__fullname\">\r\n                <a\r\n                  className={\r\n                    isExternal ? 'faculty-staff-listing__external-link' : null\r\n                  }\r\n                  href={profileUrl}\r\n                  target={isExternal ? '_blank' : null}\r\n                  rel={isExternal ? 'noopener noreferrer' : null}\r\n                >\r\n                  {isExternal && (\r\n                    <span className=\"visually-hidden\">{externalLinkText}</span>\r\n                  )}\r\n                  <span id={id}>{fullName}</span>\r\n                </a>\r\n              </h2>\r\n              {positions?.length > 0 &&\r\n                positions.map((position, index) => (\r\n                  <h3\r\n                    className={`staff-card__position ${\r\n                      index ? 'staff-card__position--hidden' : ''\r\n                    }`}\r\n                    key={position}\r\n                  >\r\n                    {position}\r\n                  </h3>\r\n                ))}\r\n              {department && (\r\n                <h4 className=\"staff-card__department\">{department}</h4>\r\n              )}\r\n            </div>\r\n          </div>\r\n        </div>\r\n        {(phoneNumber || emailAddress) && (\r\n          <ul className=\"staff-card__additional-info\">\r\n            {phoneNumber && (\r\n              <li className=\"staff-card__additional-info-item\">\r\n                <a\r\n                  aria-label={`${phoneAriaLabel} ${formatPhone(phoneNumber)}`}\r\n                  href={`tel:${phoneNumber}`}\r\n                >\r\n                  <svg>\r\n                    <use xlinkHref=\"#phone-outline\" />\r\n                  </svg>\r\n                  {phoneNumber}\r\n                </a>\r\n              </li>\r\n            )}\r\n            {emailAddress && (\r\n              <li className=\"staff-card__additional-info-item\">\r\n                <a\r\n                  aria-label={`${emailAriaLabel} ${emailAddress}`}\r\n                  href={`mailto:${emailAddress}`}\r\n                >\r\n                  <svg>\r\n                    <use xlinkHref=\"#envelope-outline\" />\r\n                  </svg>\r\n                  {emailAddress}\r\n                </a>\r\n              </li>\r\n            )}\r\n          </ul>\r\n        )}\r\n      </div>\r\n    </article>\r\n  );\r\n}\r\n\r\nStaffCard.propTypes = {\r\n  emailAriaLabel: string,\r\n  phoneAriaLabel: string,\r\n  id: string.isRequired,\r\n  Image: string.isRequired,\r\n  FullName: string.isRequired,\r\n  Position: arrayOf(string.isRequired).isRequired,\r\n  Department: string.isRequired,\r\n  PhoneNumber: string.isRequired,\r\n  EmailAddress: string.isRequired,\r\n  externalLinkText: string.isRequired\r\n};\r\n\r\nexport default React.memo(StaffCard);\r\n","export function formatPhone(phone) {\r\n  const normalizedPhone = phone.replace(/\\D/g, '');\r\n\r\n  /* eslint-disable indent */\r\n  return normalizedPhone.length === 10\r\n    ? [...normalizedPhone]\r\n        .flatMap((number, index, array) => {\r\n          if (index === 2 || index === 5) {\r\n            return [`${number}`, '. '];\r\n          }\r\n          if (index !== array.length - 1) {\r\n            return [`${number}`, ' '];\r\n          }\r\n          return `${number}`;\r\n        })\r\n        .join('')\r\n    : phone;\r\n  /* eslint-enable indent */\r\n}\r\n","import React from 'react';\r\nimport { string } from 'prop-types';\r\n\r\nimport StaffCard from '../cards/staff-card';\r\nimport Alert from '../alert';\r\nimport Loading from '../loading';\r\n\r\nfunction List({\r\n  emailAriaLabel,\r\n  errorDescription,\r\n  errorHeading,\r\n  loadingDataLabel,\r\n  phoneAriaLabel,\r\n  response,\r\n  resultsAriaLabel,\r\n  error,\r\n  isLoading,\r\n  externalLinkText\r\n}) {\r\n  if (isLoading) return <Loading label={loadingDataLabel} />;\r\n\r\n  if (error)\r\n    return (\r\n      <Alert\r\n        heading={errorHeading}\r\n        description={errorDescription}\r\n        type=\"error\"\r\n      />\r\n    );\r\n\r\n  return response?.data?.StaffListing?.length > 0 ? (\r\n    <section className=\"staff-list\" aria-label={resultsAriaLabel}>\r\n      <p className=\"staff-list__description\">{response?.data?.Results}</p>\r\n      <div className=\"staff-list__list\">\r\n        {response?.data?.StaffListing.map(({ Id, ...attributes }) => (\r\n          <StaffCard\r\n            key={Id}\r\n            id={Id}\r\n            emailAriaLabel={emailAriaLabel}\r\n            phoneAriaLabel={phoneAriaLabel}\r\n            externalLinkText={externalLinkText}\r\n            {...attributes}\r\n          />\r\n        ))}\r\n      </div>\r\n    </section>\r\n  ) : (\r\n    <span className=\"text-lg\">{response?.data?.Results}</span>\r\n  );\r\n}\r\n\r\nList.propTypes = {\r\n  emailAriaLabel: string,\r\n  errorDescription: string.isRequired,\r\n  errorHeading: string.isRequired,\r\n  externalLinkText: string.isRequired,\r\n  fetchUrl: string.isRequired,\r\n  loadingDataLabel: string.isRequired,\r\n  phoneAriaLabel: string,\r\n  resultsAriaLabel: string.isRequired\r\n};\r\n\r\nexport default React.memo(List);\r\n","import React, { useRef } from 'react';\r\nimport { string, bool, func } from 'prop-types';\r\nimport { nanoid } from 'nanoid';\r\n\r\nfunction Checkbox({ checked, id, label, onChange }) {\r\n  const labelId = useRef(`id-${nanoid()}`);\r\n\r\n  return (\r\n    <div className=\"checkbox\">\r\n      <input\r\n        className=\"checkbox__input\"\r\n        type=\"checkbox\"\r\n        id={id}\r\n        checked={checked}\r\n        onChange={(e) => onChange(e.target.checked)}\r\n        aria-labelledby={labelId.current}\r\n      />\r\n      <label className=\"checkbox__label\" htmlFor={id}>\r\n        <span className=\"checkbox__label-text\" id={labelId.current}>\r\n          {label}\r\n        </span>\r\n        <svg className=\"checkbox__icon\">\r\n          <use xlinkHref=\"#check-outline\" />\r\n        </svg>\r\n      </label>\r\n    </div>\r\n  );\r\n}\r\n\r\nCheckbox.propTypes = {\r\n  checked: bool.isRequired,\r\n  id: string.isRequired,\r\n  label: string.isRequired,\r\n  onChange: func.isRequired\r\n};\r\n\r\nexport default Checkbox;\r\n","import React, { useRef } from 'react';\r\nimport { string } from 'prop-types';\r\nimport { nanoid } from 'nanoid';\r\n\r\nimport useQueryString from '../../react-hooks/use-query-string';\r\nimport useFetch from '../../react-hooks/use-fetch';\r\nimport { stringifyUrl } from '../../utils/url';\r\nimport List from '../staff/list';\r\nimport Dropdown from '../dropdown';\r\nimport Checkbox from '../checkbox';\r\n\r\nfunction StaffListing({\r\n  checkboxId,\r\n  checkboxLabel,\r\n  checkboxQueryString,\r\n  departmentId,\r\n  departmentLabel,\r\n  departmentOptions,\r\n  departmentQueryString,\r\n  emailAriaLabel,\r\n  errorDescription,\r\n  errorHeading,\r\n  fetchUrl,\r\n  heading,\r\n  loadingDataLabel,\r\n  phoneAriaLabel,\r\n  resultsAriaLabel,\r\n  schoolQueryString,\r\n  schoolName,\r\n  sortbyId,\r\n  sortbyLabel,\r\n  sortbyOptions,\r\n  sortbyQueryString,\r\n  externalLinkText\r\n}) {\r\n  const headingId = useRef(`id-${nanoid()}`);\r\n  const [departmentQs, setDepartmentQs] = useQueryString(departmentQueryString);\r\n  const [sortByQs, setSortByQs] = useQueryString(sortbyQueryString);\r\n  const [fulltimeQs, setFulltimeQs] = useQueryString(checkboxQueryString);\r\n  const fetchUrlWithParams = stringifyUrl({\r\n    url: fetchUrl,\r\n    query: {\r\n      [schoolQueryString]: schoolName,\r\n      ...(departmentQs && { [departmentQueryString]: departmentQs }),\r\n      ...(sortByQs && { [sortbyQueryString]: sortByQs }),\r\n      ...(fulltimeQs && { [checkboxQueryString]: fulltimeQs })\r\n    }\r\n  });\r\n  const parsedDepartmentOptions = JSON.parse(departmentOptions);\r\n  const parsedSortbyOptions = JSON.parse(sortbyOptions);\r\n  const { response, error, isLoading } = useFetch(fetchUrlWithParams);\r\n\r\n  function handleDepartmentQs(value) {\r\n    setDepartmentQs(value);\r\n\r\n    if (value === parsedDepartmentOptions[0].value) {\r\n      setSortByQs(parsedSortbyOptions[0].value);\r\n    } else {\r\n      setSortByQs(parsedSortbyOptions[1].value);\r\n    }\r\n  }\r\n\r\n  return (\r\n    <section\r\n      className=\"staff-listing page-section\"\r\n      aria-labelledby={headingId.current}\r\n    >\r\n      <h2 id={headingId.current}>{heading}</h2>\r\n      <div className=\"staff-listing__filters\">\r\n        <div>\r\n          <div className=\"staff-listing__dropdown\">\r\n            <Dropdown\r\n              initialValue={departmentQs}\r\n              id={`${departmentId}-dropdown`}\r\n              onSelect={handleDepartmentQs}\r\n              options={parsedDepartmentOptions}\r\n              visibleLabel={departmentLabel}\r\n            />\r\n          </div>\r\n          {checkboxLabel && (\r\n            <Checkbox\r\n              checked={!!fulltimeQs}\r\n              id={checkboxId}\r\n              label={checkboxLabel}\r\n              onChange={(state) => setFulltimeQs(state)}\r\n            />\r\n          )}\r\n        </div>\r\n        {(!departmentQs ||\r\n          departmentQs === parsedDepartmentOptions[0].value) && (\r\n          <div className=\"staff-listing__dropdown\">\r\n            <Dropdown\r\n              initialValue={sortByQs}\r\n              id={`${sortbyId}-dropdown`}\r\n              onSelect={setSortByQs}\r\n              options={parsedSortbyOptions}\r\n              visibleLabel={sortbyLabel}\r\n            />\r\n          </div>\r\n        )}\r\n      </div>\r\n      <List\r\n        resultsAriaLabel={resultsAriaLabel}\r\n        emailAriaLabel={emailAriaLabel}\r\n        phoneAriaLabel={phoneAriaLabel}\r\n        fetchUrl={fetchUrlWithParams}\r\n        errorDescription={errorDescription}\r\n        errorHeading={errorHeading}\r\n        loadingDataLabel={loadingDataLabel}\r\n        response={response}\r\n        error={error}\r\n        isLoading={isLoading}\r\n        externalLinkText={externalLinkText}\r\n      />\r\n    </section>\r\n  );\r\n}\r\n\r\nStaffListing.propTypes = {\r\n  checkboxId: string,\r\n  checkboxLabel: string,\r\n  checkboxQueryString: string,\r\n  departmentId: string.isRequired,\r\n  departmentLabel: string.isRequired,\r\n  departmentOptions: string.isRequired,\r\n  departmentQueryString: string.isRequired,\r\n  emailAriaLabel: string.isRequired,\r\n  errorDescription: string.isRequired,\r\n  errorHeading: string.isRequired,\r\n  externalLinkText: string.isRequired,\r\n  fetchUrl: string.isRequired,\r\n  loadingDataLabel: string.isRequired,\r\n  heading: string.isRequired,\r\n  phoneAriaLabel: string.isRequired,\r\n  resultsAriaLabel: string.isRequired,\r\n  schoolQueryString: string.isRequired,\r\n  schoolName: string.isRequired,\r\n  sortbyId: string.isRequired,\r\n  sortbyLabel: string.isRequired,\r\n  sortbyOptions: string.isRequired,\r\n  sortbyQueryString: string.isRequired\r\n};\r\n\r\nexport default StaffListing;\r\n"],"sourceRoot":""}