{ "version": 3, "sources": ["../app/Stations/StationSearchBox.tsx", "../app/Stations/StationList.tsx", "../app/StationsPage.tsx"], "sourcesContent": ["\uFEFFimport { useEffect, useRef } from \"react\";\n\nimport { search } from \"Search/SearchStore\";\n\nimport { useActions, useStateSelector } from \"../Store\";\n\nconst searchResultCount = 20;\n\nexport function StationSearchBox() {\n\tconst inputRef = useRef(null);\n\tconst [dispatch, actions] = useActions();\n\tconst query = useStateSelector(state => state.search.query);\n\n\tuseEffect(() => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.focus();\n\t\t}\n\t}, [inputRef]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t void dispatch(search(actions, e.currentTarget.value, searchResultCount))}\n\t\t\t\t\tref={inputRef}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n", "import { shallowEqual } from \"react-redux\";\n\nimport { IStation } from \"Api/V1/Models\";\nimport { Badge } from \"Components/Badge\";\nimport { PlayButton, StarButton } from \"Components/Buttons\";\nimport { friendlyDate } from \"Helpers/DateHelpers\";\nimport { editStationUrl, stationsUrl } from \"Models/Urls\";\n\nimport { useStateSelector } from \"../Store\";\n\nimport { StationSearchBox } from \"./StationSearchBox\";\n\nfunction getLastFailedEndpoint(station: IStation) {\n\tconst failedEndpoints = station.endpoints.filter(s => s.failed != null && s.failed > 0).map(s => s.lastFailed);\n\tfailedEndpoints.sort();\n\n\treturn failedEndpoints[failedEndpoints.length - 1];\n}\n\nfunction getLastSuccessfulEndpoint(station: IStation) {\n\tconst successfulEndpoints = station.endpoints.filter(s => s.successful != null && s.successful > 0).map(s => s.lastSuccessful);\n\tsuccessfulEndpoints.sort();\n\n\treturn successfulEndpoints[successfulEndpoints.length - 1];\n}\n\nexport function StationList() {\n\tconst appState = useStateSelector(state => ({\n\t\tcanManageStations: state.stations.canManageStations,\n\t\tmatchedStations: state.search.stations,\n\t\tmatchedTags: state.search.tags,\n\t\tnextPage: state.stations.nextPage,\n\t\tpage: state.stations.page,\n\t\tpageCount: state.stations.pageCount,\n\t\tprevPage: state.stations.prevPage,\n\t\tsearchFailed: state.search.searchFailed,\n\t\tsearching: state.search.searching,\n\t\tshowSearch: state.search.showSearch,\n\t\tshowSearchResults: state.search.showSearchResults,\n\t\tstations: state.stations.stations,\n\t\ttagName: state.stations.tagName\n\t}), shallowEqual);\n\n\tfunction renderSearchResults() {\n\t\tconst showStations = !appState.searching && !appState.searchFailed;\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{renderTags(appState.matchedTags, \"btn btn-link\")}\n\t\t\t\t{appState.matchedTags.length > 0 ?
: \"\"}\n\t\t\t\t{appState.searching ?

Searching..

: null}\n\t\t\t\t{appState.searchFailed ? renderSearchFailure() : null}\n\t\t\t\t{showStations ? renderStations(appState.matchedStations) : null}\n\t\t\t
\n\t\t);\n\t}\n\n\tfunction renderSearchFailure() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\tSearch failed, please try again later\n\t\t\t
\n\t\t);\n\t}\n\n\tfunction renderStationList() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t{renderPager(\"pre\")}\n\t\t\t\t{renderStations(appState.stations)}\n\t\t\t\t{renderPager(\"post\")}\n\t\t\t
\n\t\t);\n\t}\n\n\tfunction renderStations(stations: IStation[]) {\n\t\tif (stations.length === 0) {\n\t\t\treturn

No matching stations

;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\tfunction renderStation(station: IStation) {\n\t\tconst lastFailed = getLastFailedEndpoint(station);\n\t\tconst lastSuccessful = getLastSuccessfulEndpoint(station);\n\n\t\treturn (\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t{station.title}\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{renderTags(station.tags, \"light\")}\n\t\t\t\t
    \n\t\t\t\t\t{lastSuccessful != null && }\n\t\t\t\t\t{lastFailed != null && }\n\t\t\t\t\t\n\t\t\t\t\t\t{appState.canManageStations && Edit}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
  • \n\t\t);\n\t}\n\n\tfunction renderTags(tags: string[], className: string) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\tfunction renderPager(mode: string) {\n\t\tconst page = appState.page;\n\t\tconst pageCount = appState.pageCount;\n\n\t\tif (!page || pageCount <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{mode === \"pre\" ? \"\" :
    }\n\t\t\t\t\n\t\t\t\t{mode === \"post\" ? \"\" :
    }\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{appState.showSearch ? : \"\"}\n\t\t\t
    \n\t\t\t{appState.showSearchResults ? renderSearchResults() : renderStationList()}\n\t\t
    \n\t);\n}\n", "import { Provider } from \"react-redux\";\n\nimport { renderAll } from \"Helpers/ReactHelpers\";\nimport { StationList } from \"Stations/StationList\";\n\nimport { buildStore } from \"./Store\";\n\nconst elements = document.querySelectorAll(\"div[data-react=StationList]\");\n\nif (elements.length > 0) {\n\tconst { ActionProvider, actions, store } = buildStore();\n\n\trenderAll(elements, () => (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t));\n}\n"], "mappings": "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", "names": ["import_react", "import_jsx_runtime", "searchResultCount", "StationSearchBox", "inputRef", "dispatch", "actions", "useActions", "query", "useStateSelector", "state", "e", "search", "import_jsx_runtime", "getLastFailedEndpoint", "station", "failedEndpoints", "s", "getLastSuccessfulEndpoint", "successfulEndpoints", "StationList", "appState", "useStateSelector", "state", "shallowEqual", "renderSearchResults", "showStations", "renderTags", "renderSearchFailure", "renderStations", "renderStationList", "renderPager", "stations", "renderStation", "_a", "lastFailed", "lastSuccessful", "Badge", "friendlyDate", "editStationUrl", "StarButton", "PlayButton", "tags", "className", "tag", "stationsUrl", "mode", "page", "pageCount", "StationSearchBox", "import_jsx_runtime", "elements", "ActionProvider", "actions", "store", "buildStore", "renderAll", "Provider_default", "StationList"] }