{"version":3,"file":"6464.90081fbe4ec4181fd199.search.js","mappings":"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","sources":["webpack://pinafore/./src/routes/_components/LoadingPage.html","webpack://pinafore/./src/routes/_components/search/StatusSearchResult.html","webpack://pinafore/./src/routes/_components/search/HashtagSearchResult.html","webpack://pinafore/./src/routes/_components/search/SearchResults.html","webpack://pinafore/./src/routes/_components/search/Search.html","webpack://pinafore/./src/routes/_actions/search.js","webpack://pinafore/./src/routes/_pages/search.html","webpack://pinafore/./src/routes/search.html","webpack://pinafore/./src/routes/_api/search.js","webpack://pinafore/./src/routes/_utils/tryToFocusElement.js"],"sourcesContent":["
\n \n
\n\n","\n \n\n\n","\n {'#' + hashtag.name}\n\n\n\n","\n\n\n","
\n \n
\n \n
\n \n
\n{#if $searchLoading}\n
\n \n
\n{:elseif $searchResults && $searchResultsForQuery === $queryInSearch}\n
\n \n
\n{/if}\n\n\n","import { store } from '../_store/store.js'\nimport { toast } from '../_components/toast/toast.js'\nimport { search } from '../_api/search.js'\nimport { formatIntl } from '../_utils/formatIntl.js'\n\nexport async function doSearch () {\n const { currentInstance, accessToken, queryInSearch } = store.get()\n store.set({ searchLoading: true })\n try {\n const results = await search(currentInstance, accessToken, queryInSearch)\n const { queryInSearch: newQueryInSearch } = store.get() // avoid race conditions\n if (newQueryInSearch === queryInSearch) {\n store.set({\n searchResultsForQuery: queryInSearch,\n searchResults: results\n })\n }\n } catch (e) {\n /* no await */ toast.say(formatIntl([\"Error during search: \",[\"error\"]], { error: (e.message || '') }))\n console.error(e)\n } finally {\n store.set({ searchLoading: false })\n }\n}\n","{#if $isUserLoggedIn}\n

Search

\n
\n \n
\n{:else}\n\n \n

Search

\n\n

You can search once logged in to an instance.

\n
\n
\n
\n \n \n \n Local\n Federated\n Favorites\n Direct messages\n Bookmarks\n
\n{/if}\n\n\n","\n\n <LazyPage {pageComponent} {params} />\n\n<script>\n import Title from './_components/Title.html'\n import LazyPage from './_components/LazyPage.html'\n import pageComponent from './_pages/search.html'\n\n export default {\n components: {\n\n Title,\n LazyPage\n },\n data: () => ({\n pageComponent\n })\n }\n</script>\n","import { get, paramsString, DEFAULT_TIMEOUT } from '../_utils/ajax.js'\nimport { auth, basename } from './utils.js'\n\nfunction doSearch (version, instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal) {\n const url = `${basename(instanceName)}/api/${version}/search?` + paramsString({\n q: query,\n resolve,\n limit,\n exclude_unreviewed: !!excludeUnreviewed\n })\n return get(url, auth(accessToken), {\n timeout: DEFAULT_TIMEOUT,\n signal\n })\n}\n\nasync function doSearchV1 (instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal) {\n const resp = await doSearch('v1', instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal)\n resp.hashtags = resp.hashtags && resp.hashtags.map(tag => ({\n name: tag,\n url: `${basename(instanceName)}/tags/${tag.toLowerCase()}`,\n history: []\n }))\n return resp\n}\n\nasync function doSearchV2 (instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal) {\n return doSearch('v2', instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal)\n}\n\nexport async function search (instanceName, accessToken, query, resolve = true, limit = 5,\n excludeUnreviewed = false, signal = null) {\n try {\n return (await doSearchV2(instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal))\n } catch (err) {\n if (err && err.status === 404) { // fall back to old search API\n return doSearchV1(instanceName, accessToken, query, resolve, limit, excludeUnreviewed, signal)\n } else {\n throw err\n }\n }\n}\n","// try 5 times to wait for the element to be rendered and then focus it\nimport { scheduleIdleTask } from './scheduleIdleTask.js'\n\nconst RETRIES = 5\nconst TIMEOUT = 50\n\nexport async function tryToFocusElement (id, scroll) {\n for (let i = 0; i < RETRIES; i++) {\n if (i > 0) {\n await new Promise(resolve => setTimeout(resolve, TIMEOUT))\n }\n await new Promise(resolve => scheduleIdleTask(resolve))\n const element = document.getElementById(id)\n if (element) {\n try {\n element.focus({ preventScroll: !scroll })\n console.log('focused element', id)\n return\n } catch (e) {\n console.error(e)\n }\n }\n }\n console.log('failed to focus element', id)\n}\n"],"names":["setTimeout","this","set","shown","index","length","status","id","hashtag","name","toLowerCase","account","$searchResults","statuses","store","hashtags","accounts","onSubmit","e","preventDefault","stopPropagation","async","currentInstance","accessToken","queryInSearch","searchLoading","results","search","newQueryInSearch","searchResultsForQuery","searchResults","toast","formatIntl","error","message","console","doSearch","focusSearchInput","tryToFocusElement","on","get","event","$searchLoading","$searchResultsForQuery","$queryInSearch","$isUserLoggedIn","pageComponent","params","version","instanceName","query","resolve","limit","excludeUnreviewed","signal","url","q","exclude_unreviewed","timeout","doSearchV2","err","resp","map","tag","history","doSearchV1","scroll","i","Promise","element","document","getElementById","focus","preventScroll"],"sourceRoot":""}