{"version":3,"sources":["webpack:///./src/js/components/Spinner.js","webpack:///./src/js/modules/pager/utils.js","webpack:///./src/js/modules/pager/index.js","webpack:///./src/js/modules/favorites-listing/NotificationBar.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/js/modules/listing/FavoriteButton.js","webpack:///./src/js/modules/listing/ListingResultsSummary.js","webpack:///./src/js/modules/listing/hooks/useListing.js","webpack:///./src/js/modules/listing/utils.js","webpack:///./src/js/modules/listing/ListingSearch.js","webpack:///./src/js/modules/listing/ListingSort.js","webpack:///./src/js/modules/listing/ListingFilters.js","webpack:///./src/js/modules/listing/Listing.js","webpack:///./src/js/modules/listing/index.js"],"names":["Spinner","props","loading","className","getPageSpread","pages","current","map","page","isCurrent","pagerArrow","window","ue","pager","arrowPrev","aria-label","prevArrowLabel","xmlns","width","height","viewBox","xlinkHref","arrowNext","nextArrowLabel","Pager","total","onChange","focusTable","items","Array","from","keys","n","isEllipses","getPages","handleChange","cb","length","isPrevDisabled","isNextDisabled","previous","key","onClick","disabled","title","labelPrev","next","labelNext","p","NotificationBar","show","setShow","useState","firstRender","setFirstRender","action","setAction","displayAgain","setDisplayAgain","timeOutRef","useRef","buttonsContainer","blockSize","setBlockSize","useEffect","addEventListener","handleResize","removeEventListener","dismiss","clearTimeout","setTimeout","handleAction","timer","heading","_action","offsetHeight","onTransitionEnd","buttons","onDismiss","aria-labelledby","id","style","type","dismissNotification","subdata","copy","role","ref","label","module","exports","webpackPolyfill","deprecate","paths","children","Object","defineProperty","enumerable","get","l","i","FavoriteButton","setLoading","favorited","setFavorited","favoriteId","submitNotification","handleFavoriteId","loggedIn","headers","fetch","postEndpoint","method","body","JSON","stringify","add","then","r","json","data","Success","onHandleNotification","prev","document","querySelector","setAttribute","loginBtn","linkqueries","URLSearchParams","location","search","prevHref","getAttribute","split","set","toString","replaceAll","catch","console","error","finally","data-favorited","labelFavorited","labelFavorite","ListingResultsSummary","summary","searchTerm","labels","resultsSummaryWithSearch","resultsSummary","to","perPage","replace","dangerouslySetInnerHTML","__html","fetchController","AbortController","useListing","parse","sortOptions","defaultSortOption","filterSections","breakpoint","matchMedia","defaultValue","filters","queries","selectedFilters","expandedFilters","forEach","filter","inUrl","push","term","sort","value","parseInt","getDefaultStateFromUrl","firstUpdate","forceUpdate","setForceUpdate","isMobileView","setIsMobileView","matches","displayedTerm","setDisplayedTerm","setTerm","setSort","setPage","setFavoriteId","totalItems","setTotalItems","displayedTotalItems","setDisplayedTotalItems","totalPages","setTotalPages","displayedTotalPages","setDisplayedTotalPages","setItems","displayedItems","setDisplayedItems","setFilters","setSelectedFilters","isLoading","setIsLoading","refreshKey","setRefreshKey","fetchResults","async","abort","k","join","history","replaceState","res","endpoint","signal","TotalPages","TotalResultsCount","Results","Filters","updateDisplays","handlePageChange","handleSearchDisplayTermChange","handleResetAll","itemsPerPage","actualTotalItems","defaultExpandedFilters","delete","handleSearch","e","preventDefault","handleSort","target","handleFilterChange","handleSeeAllClick","handleFiltersResetClick","ListingSearch","onSubmit","name","htmlFor","searchLabel","go","ListingSort","listingSortTitle","options","opt","ListingFilters","shouldExpand","setShouldExpand","expandedSections","setExpandedSections","defaultExpanded","isExpanded","handleSectionClick","val","newVal","includes","x","working","selected","checked","renderFIlter","item","isChecked","Value","Label","Count","expandFilters","count","getSelectedFiltersCount","filterResults","aria-hidden","isSectionExpanded","bind","aria-expanded","aria-controls","ara-aria-labelledby","Items","onReset","reset","seeResults","actualCount","Listing","config","results","renderItems","prevPage","nextPage","noResultsRtf","Module"],"mappings":"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","file":"9.f96a3d.js","sourcesContent":["import React from 'react';\n\nconst Spinner = props => {\n return props.loading ? (\n
\n
\n
\n
\n
\n
\n
\n
\n ) : null;\n};\n\nexport default Spinner;\n","const getPageSpread = (pages, current) => {\n const spreadPages = pages.map(page => ({\n page,\n isCurrent: current === page\n }));\n return spreadPages;\n};\n\nexport const getPages = (current, total) => {\n if (total <= 5) {\n const items = Array.from(new Array(total).keys()).map(n => n + 1);\n return getPageSpread(items, current);\n }\n if (current < 5) {\n const items = Array.from(new Array(4).keys()).map(n => n + 1);\n return [\n ...getPageSpread(items, current),\n { isEllipses: true, page: 5 },\n ...getPageSpread([total], current)\n ];\n }\n if (total > 5 && current >= total - 3) {\n return [\n ...getPageSpread([1], current),\n { isEllipses: true, page: total - 4 },\n ...getPageSpread([total - 3, total - 2, total - 1, total], current)\n ];\n }\n if (total > 6 && current > 4) {\n return [\n ...getPageSpread([1], current),\n { isEllipses: true, page: current - 2 },\n ...getPageSpread([current - 1, current, current + 1], current),\n { isEllipses: true, page: current + 2 },\n ...getPageSpread([total], current)\n ];\n }\n return [];\n};\n","import React from 'react';\nimport { getPages } from './utils';\n\nconst pagerArrow = window.ue?.pager;\nconst arrowPrev = (\n \n \n \n);\nconst arrowNext = (\n \n \n \n);\n\nconst Pager = props => {\n const { page, total, onChange, focusTable } = props;\n const pages = getPages(page, total);\n\n const handleChange = cb => {\n if (focusTable) {\n focusTable();\n }\n onChange(cb);\n };\n\n if (pages.length <= 1) return null;\n\n const isPrevDisabled = page === 1;\n const isNextDisabled = page === total;\n const previous = (\n \n handleChange(page - 1)}\n className=\"pager__button\"\n disabled={isPrevDisabled}\n title={pagerArrow?.prevArrowLabel}\n >\n {props.labelPrev}\n {arrowPrev}\n \n \n );\n const next = (\n \n handleChange(page + 1)}\n className=\"pager__button\"\n disabled={isNextDisabled}\n title={pagerArrow?.nextArrowLabel}\n >\n {props.labelNext}\n {arrowNext}\n \n \n );\n return (\n
    \n {previous}\n {pages.map(p => (\n \n handleChange(p.page)}\n className=\"pager__button\"\n >\n {p.isEllipses ? '...' : p.page}\n \n \n ))}\n {next}\n
\n );\n};\n\nexport default Pager;\n","import React, { useEffect, useState, useRef } from 'react';\n\nexport default function NotificationBar(props) {\n const [show, setShow] = useState(false);\n const [firstRender, setFirstRender] = useState(true);\n const [action, setAction] = useState();\n const [displayAgain, setDisplayAgain] = useState(false);\n const timeOutRef = useRef(null);\n const buttonsContainer = useRef(null);\n const [blockSize, setBlockSize] = useState(0);\n\n useEffect(() => {\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n\n useEffect(() => {\n setFirstRender(false);\n\n if (props.dismiss && show) {\n clearTimeout(timeOutRef.current);\n timeOutRef.current = setTimeout(() => {\n handleAction('0');\n }, props.timer);\n\n return () => {\n clearTimeout(timeOutRef.current);\n };\n }\n }, [show]);\n\n useEffect(() => {\n if (!firstRender) {\n setShow(false);\n setDisplayAgain(true);\n }\n }, [props.heading]);\n\n useEffect(() => {\n if (!show && displayAgain) {\n setTimeout(() => {\n setShow(true);\n setDisplayAgain(false);\n }, 100);\n }\n }, [show, displayAgain]);\n\n useEffect(() => {\n if (!firstRender) {\n setShow(true);\n }\n }, [firstRender]);\n\n const handleAction = _action => {\n setShow(false);\n setAction(_action);\n };\n\n const handleTransition = () => {\n if (!show) {\n switch (action) {\n case 1:\n props.buttons[0].action();\n break;\n case 2:\n props.buttons[1].action();\n break;\n default:\n props.onDismiss();\n }\n }\n };\n\n const handleResize = () => {\n setBlockSize(buttonsContainer.current.offsetHeight);\n }\n\n return (\n \n \n \n \n \n \n
\n
\n

\n {props.heading}\n {props.subdata && (\n {props.subdata}\n )}\n

\n {props.copy &&

{props.copy}

}\n
\n
\n {props.buttons.length > 0 && (\n
\n {props.buttons[0] && (\n handleAction(1)}\n >\n {props.buttons[0].label}\n \n )}\n {props.buttons[1] && (\n handleAction(2)}\n >\n {props.buttons[1].label}\n \n )}\n
\n )}\n
\n \n );\n}\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 React, { useState, useEffect } from 'react';\n\nfunction FavoriteButton(props) {\n const [loading, setLoading] = useState(false);\n const [favorited, setFavorited] = useState(props.favorited);\n\n useEffect(() => {\n if (props.favoriteId === props.id) {\n submitNotification();\n props.handleFavoriteId();\n }\n }, []);\n\n const submitNotification = () => {\n if (props.loggedIn === 'true') {\n setLoading(true);\n\n const headers = {\n 'content-type': 'application/json'\n };\n fetch(props.postEndpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify({ id: props.id, add: !favorited })\n })\n .then(r => r.json())\n .then(data => {\n if (data.Success) {\n props.onHandleNotification(!favorited);\n setFavorited(prev => !prev);\n } else {\n document\n .querySelector('.login-modal')\n ?.setAttribute('aria-hidden', false);\n const loginBtn = document.querySelector('#log-in-modal #login-btn');\n const linkqueries = new URLSearchParams(window.location.search);\n const prevHref = loginBtn.getAttribute('href').split('%3F')[0];\n linkqueries.set('favoriteid', props.id);\n loginBtn.setAttribute(\n 'href',\n `${prevHref}%3F${linkqueries\n .toString()\n .replaceAll('&', '%26')\n .replaceAll('=', '%3D')}`\n );\n }\n })\n .catch(console.error)\n .finally(() => {\n setLoading(false);\n });\n } else {\n document\n .querySelector('.login-modal')\n ?.setAttribute('aria-hidden', false);\n const loginBtn = document.querySelector('#log-in-modal #login-btn');\n const linkqueries = new URLSearchParams(window.location.search);\n const prevHref = loginBtn?.getAttribute('href').split('%3F')[0];\n linkqueries.set('favoriteid', props.id);\n loginBtn?.setAttribute(\n 'href',\n `${prevHref}%3F${linkqueries\n .toString()\n .replaceAll('&', '%26')\n .replaceAll('=', '%3D')}`\n );\n }\n };\n return (\n submitNotification()}\n >\n \n \n \n \n \n \n {favorited ? props.labelFavorited : props.labelFavorite}\n \n );\n}\n\nexport default FavoriteButton;\n","import React from 'react';\n\nexport default function ListingResultsSummary(props) {\n let summary = props.searchTerm\n ? props.labels.resultsSummaryWithSearch\n : props.labels.resultsSummary,\n to = props.perPage * props.page;\n const from = props.perPage * (props.page - 1) + 1;\n\n const searchTerm = `\"${props.searchTerm}\"`;\n\n to = to > props.total ? props.total : to;\n summary = summary\n ?.replace?.('{from}', from)\n ?.replace?.('{to}', to)\n ?.replace?.('{total}', props.total)\n ?.replace?.('{term}', searchTerm);\n\n return (\n \n );\n}\n","import { useRef, useState, useEffect } from 'react';\nimport { getDefaultStateFromUrl } from '../utils';\nimport { filter } from 'lodash';\n\nlet fetchController = new AbortController();\n\nexport default function useListing(props) {\n const { current: labels } = useRef(JSON.parse(props.labels));\n const { current: sortOptions } = useRef(JSON.parse(props.sortOptions));\n const { current: defaultSortOption } = useRef(props.defaultSortOption);\n const { current: filterSections } = useRef(JSON.parse(props.filterSections));\n const { current: breakpoint } = useRef(\n window.matchMedia('(max-width: 599px)')\n );\n const { current: defaultValue } = useRef(\n getDefaultStateFromUrl(sortOptions, filterSections)\n );\n\n const firstUpdate = useRef(true);\n const [forceUpdate, setForceUpdate] = useState(true);\n const [isMobileView, setIsMobileView] = useState(breakpoint.matches);\n const [displayedTerm, setDisplayedTerm] = useState(defaultValue.term);\n const [term, setTerm] = useState(defaultValue.term);\n const [sort, setSort] = useState(defaultValue.sort);\n const [page, setPage] = useState(defaultValue.page);\n const [favoriteId, setFavoriteId] = useState(defaultValue.favoriteId);\n const [totalItems, setTotalItems] = useState(0);\n const [displayedTotalItems, setDisplayedTotalItems] = useState(0);\n const [totalPages, setTotalPages] = useState(0);\n const [displayedTotalPages, setDisplayedTotalPages] = useState(0);\n const [items, setItems] = useState([]);\n const [displayedItems, setDisplayedItems] = useState([]);\n const [filters, setFilters] = useState([]);\n const [selectedFilters, setSelectedFilters] = useState(\n defaultValue.selectedFilters\n );\n const [isLoading, setIsLoading] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n const itemsPerPage = 15;\n\n const fetchResults = async () => {\n setIsLoading(true);\n\n fetchController.abort();\n fetchController = new AbortController();\n\n const queries = new URLSearchParams();\n queries.set('page', page);\n queries.set('sort', sort);\n if (favoriteId) {\n queries.set('favoriteid', favoriteId);\n }\n if (term) queries.set('term', term);\n Object.keys(selectedFilters).forEach(k => {\n queries.set(k, selectedFilters[k].join(','));\n });\n\n window.history.replaceState({}, document.title, `?${queries.toString()}`);\n\n let res = await fetch(`${props.endpoint}?${queries.toString()}`, {\n signal: fetchController.signal\n });\n res = await res.json();\n\n setTotalPages(res.TotalPages);\n setTotalItems(res.TotalResultsCount);\n setItems(res.Results);\n setFilters(res.Filters);\n\n if (forceUpdate) {\n setDisplayedTotalPages(res.TotalPages);\n setDisplayedTotalItems(res.TotalResultsCount);\n setDisplayedItems(res.Results);\n }\n\n if (firstUpdate.current) firstUpdate.current = false;\n if (res) setIsLoading(false);\n };\n\n const updateDisplays = () => {\n setDisplayedTotalPages(totalPages);\n setDisplayedTotalItems(totalItems);\n setDisplayedItems(items);\n };\n\n const handleFavoriteId = () => {\n setFavoriteId('');\n\n const queries = new URLSearchParams();\n queries.set('page', page);\n queries.set('sort', sort);\n queries.delete('favoriteid');\n if (term) queries.set('term', term);\n Object.keys(selectedFilters).forEach(k => {\n queries.set(k, selectedFilters[k].join(','));\n });\n window.history.replaceState({}, document.title, `?${queries.toString()}`);\n };\n\n const handleSearch = e => {\n e.preventDefault();\n setTerm(displayedTerm);\n setPage(1);\n };\n\n const handleFilterChange = selectedFilters => {\n setSelectedFilters(selectedFilters);\n setPage(1);\n };\n\n const handleSort = e => {\n setSort(e.target.value);\n setPage(1);\n };\n\n const handlePageChange = setPage;\n\n const handleSearchDisplayTermChange = setDisplayedTerm;\n\n const handleSeeAllClick = () => updateDisplays();\n\n const handleFiltersResetClick = () => {\n setForceUpdate(true);\n handleResetAll({});\n updateDisplays();\n setRefreshKey(refreshKey + 1);\n };\n\n const handleResetAll = () => {\n setForceUpdate(true);\n setSelectedFilters({});\n setPage(1);\n if (defaultSortOption) {\n setSort(defaultSortOption);\n } else {\n setSort(sortOptions[0].value);\n }\n setTerm('');\n setDisplayedTerm('');\n };\n\n const addBreakPointListener = () => {\n breakpoint.addEventListener('change', () => {\n setIsMobileView(breakpoint.matches);\n });\n };\n\n useEffect(() => {\n if (defaultSortOption) {\n setSort(defaultSortOption);\n } else {\n setSort(sortOptions[0].value);\n }\n }, []);\n\n useEffect(() => {\n setForceUpdate(true);\n fetchResults();\n }, [sort, page, term]);\n useEffect(() => fetchResults(), [selectedFilters]);\n useEffect(() => {\n if (forceUpdate || firstUpdate.current || !isMobileView) updateDisplays();\n if (forceUpdate) setForceUpdate(false);\n setRefreshKey(refreshKey + 1);\n }, [totalPages, totalItems, items]);\n useEffect(addBreakPointListener, []);\n\n return {\n labels,\n isMobileView,\n displayedTerm,\n term,\n sort,\n page,\n favoriteId,\n itemsPerPage,\n actualTotalItems: totalItems,\n totalItems: displayedTotalItems,\n totalPages: displayedTotalPages,\n items: displayedItems,\n filters,\n selectedFilters,\n defaultExpandedFilters: isMobileView ? [] : defaultValue.expandedFilters,\n isLoading,\n sortOptions,\n firstUpdate,\n refreshKey,\n defaultSortOption,\n handleFavoriteId,\n handleSearch,\n handleSort,\n handlePageChange,\n handleFilterChange,\n handleSeeAllClick,\n handleFiltersResetClick,\n handleSearchDisplayTermChange,\n handleResetAll\n };\n}\n","export const getDefaultStateFromUrl = (sortOptions, filters) => {\n const queries = new URLSearchParams(window.location.search);\n const selectedFilters = {};\n const expandedFilters = [];\n\n filters?.forEach?.(filter => {\n const inUrl = queries.get(filter);\n if (inUrl) {\n selectedFilters[filter] = inUrl.split(',');\n expandedFilters.push(filter);\n }\n });\n\n return {\n term: queries.get('term') || '',\n sort: queries.get('sort') || sortOptions[0].value,\n page: queries.get('page') ? parseInt(queries.get('page'), 10) : 1,\n favoriteId: queries.get('favoriteid') || '',\n selectedFilters,\n expandedFilters\n };\n};\n","import React from 'react'\n\nexport default function ListingSearch(props) {\n const id = 'listing-search-input';\n const handleChange = e => props.onChange(e.target.value);\n\n return (\n
\n
\n \n \n
\n \n
\n )\n}\n","import React from 'react';\n\nexport default function ListingSort(props) {\n return (\n
\n \n \n \n \n
\n );\n}\n","import React, { useState } from 'react';\n\nexport default function ListingFilters(props) {\n const [shouldExpand, setShouldExpand] = useState(false);\n const [expandedSections, setExpandedSections] = useState(\n props.defaultExpanded\n );\n const isExpanded = props.isMobileView ? shouldExpand : true;\n\n const handleExpandClick = () => setShouldExpand(true);\n\n const handleCloseClick = () => setShouldExpand(false);\n\n const handleSectionClick = val => {\n let newVal = [...expandedSections];\n if (expandedSections.includes(val)) {\n newVal = newVal.filter(x => x !== val);\n } else {\n newVal.push(val);\n }\n setExpandedSections(newVal);\n };\n\n const handleChange = e => {\n const working = { ...props.selected };\n if (!e.target.checked) {\n working[e.target.name] = working[e.target.name].filter(\n x => x !== e.target.value\n );\n props.onChange(working);\n return;\n }\n\n if (!working[e.target.name]) working[e.target.name] = [];\n working[e.target.name].push(e.target.value);\n props.onChange(working);\n };\n\n const handleSubmit = () => {\n setShouldExpand(false);\n setExpandedSections([]);\n props.onSubmit();\n };\n\n const handleReset = () => {\n props.onReset();\n setShouldExpand(false);\n setExpandedSections([]);\n };\n\n const getSelectedFiltersCount = () => {\n let count = 0;\n\n Object.keys(props.selected).forEach(key => {\n count += props.selected[key].length;\n });\n\n return count;\n };\n\n const renderFIlter = (filter, item) => {\n const isChecked = !!props.selected?.[filter.Value]?.includes?.(item.Value);\n\n return (\n
\n \n {item.Count}\n
\n );\n };\n\n const renderSection = filter => {\n const isSectionExpanded = expandedSections.includes(filter.Value);\n const id = `listing-filter-section-${filter.Value}`;\n\n return (\n
\n \n

{filter.Label}

\n \n \n \n \n {isSectionExpanded && (\n \n {filter.Items.map(renderFIlter.bind(null, filter))}\n \n )}\n
\n );\n };\n\n return (\n
\n
\n {!isExpanded && (\n \n \n \n \n

\n {props.labels.expandFilters}\n {getSelectedFiltersCount()}\n

\n \n )}\n {isExpanded && (\n <>\n {props.isMobileView && (\n
\n

\n {props.labels.filterResults}\n

\n \n \n \n \n \n
\n )}\n
\n {props.filters.map(renderSection)}\n
\n {props.isMobileView && (\n
\n \n {props.labels.reset}\n \n \n {props.labels.seeResults?.replace?.(\n '{count}',\n props.actualCount\n )}\n \n
\n )}\n \n )}\n
\n
\n );\n}\n","import React from 'react';\nimport useListing from './hooks/useListing';\nimport ListingResultsSummary from './ListingResultsSummary';\nimport ListingSearch from './ListingSearch';\nimport ListingSort from './ListingSort';\nimport Spinner from '../../components/Spinner';\nimport Pager from '../pager';\nimport ListingFilters from './ListingFilters';\n\nfunction Listing(props) {\n const { labels, ...config } = useListing(props);\n\n const filters = (\n \n );\n const results =\n config.totalPages === 0 && !config.firstUpdate.current ? (\n \n ) : (\n <>\n
\n \n \n
\n
\n {props.renderItems?.(\n config.items,\n config.favoriteId,\n config.handleFavoriteId\n )}\n
\n \n \n );\n return (\n <>\n
\n
\n {!config.isMobileView && (\n
\n

\n {labels.filterResults}\n

\n \n {labels.reset}\n \n
\n )}\n \n {!config.isMobileView && filters}\n
\n
{results}
\n
\n {config.isMobileView && filters}\n \n \n );\n}\n\nexport default Listing;\n","import Module from './Listing';\n\nexport default Module;\n"],"sourceRoot":""}