{"version":3,"sources":["App.js","index.js","Logo.png"],"names":["App","useState","searchString","setSearchString","searchResults","setSearchResults","searching","setSearching","selectedDocument","setSelectedDocument","searchMeta","setSearchMeta","pageNumber","setPageNumber","pageSize","searchId","setSearchId","useEffect","length","doSearch","getDocument","documentId","a","fetch","headers","json","then","doc","catch","err","console","error","controller","AbortController","signal","abort","method","body","JSON","stringify","startPage","e","name","response","d","log","page","content","meta","alert","linkToSearch","position","findIndex","documentRVO","documentID","score","resultPosition","text","class","src","logo","alt","type","value","onChange","target","onClick","className","style","marginLeft","sectionRVOs","sort","b","sortOrder","map","s","dangerouslySetInnerHTML","__html","defaultText","documentURL","href","rel","item","key","title","fragments","f","Array","from","totalPages","keys","i","rootElement","document","getElementById","ReactDOM","render","module","exports"],"mappings":"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","file":"static/js/main.db56de31.chunk.js","sourcesContent":["import \"./styles.css\";\r\n\r\nimport React, { useState, useEffect } from \"react\";\r\nimport logo from './Logo.png';\r\n\r\n\r\nexport default function App() {\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [searchResults, setSearchResults] = useState([]);\r\n const [searching, setSearching] = useState(false);\r\n const [selectedDocument, setSelectedDocument] = useState(null);\r\n const [searchMeta, setSearchMeta] = useState({});\r\n const [pageNumber, setPageNumber] = useState(0);\r\n const [pageSize, setPageSize] = useState(10);\r\n const [searchId, setSearchId] = useState(null);\r\n const BULLET = '\\u2022';\r\n\r\n\r\n /**\r\n * Re-search if the page number or page size is changed\r\n */\r\n useEffect(() => {\r\n if (searchResults.length > 0) {\r\n doSearch();\r\n }\r\n }, [pageNumber, pageSize]);\r\n\r\n /**\r\n * Gets the content for a particular document. This is called\r\n * when the user selects a search result and we want to display the\r\n * content to them. Make sure to include the \"Authorization\" header\r\n * with your API token.\r\n */\r\n const getDocument = async (documentId) => {\r\n let response = await fetch(\r\n `https://baldwin.kpsol.com:8091/uks/document/${documentId}/content?locale=en_GB&searchId=${searchId}`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n }\r\n );\r\n response\r\n .json()\r\n .then((doc) => {\r\n debugger;\r\n setSelectedDocument(doc);\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n const controller = new AbortController();\r\n const { signal } = controller;\r\n\r\n /**\r\n * Conduct a search against UKS. Additional filters can be\r\n * added if desired by adding them to the request body.\r\n */\r\n const doSearch = async () => {\r\n if (searchString != \"\") {\r\n\r\n if (searching === true) {\r\n controller.abort();\r\n }\r\n setSearching(true);\r\n setSelectedDocument(null);\r\n\r\n let response = await fetch(\r\n \"https://baldwin.kpsol.com:8091/uks/search/\",\r\n {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n signal: signal,\r\n body: JSON.stringify({\r\n searchString, // if not provided, returns all documents the user can see\r\n startPage: pageNumber + 1, // starts at 1\r\n pageSize,// defaults to 10\r\n searchId\r\n })\r\n }).catch((e) => {\r\n if (e.name === \"AbortError\") {\r\n // alert(\"cancelled\");\r\n }\r\n });\r\n response &&\r\n response\r\n .json()\r\n .then((d) => {\r\n console.log(d);\r\n setSearching(false);\r\n const { content, ...meta } = d.page;\r\n setSearchResults(content);\r\n setSearchMeta(meta);\r\n setSearchId(d.searchId);\r\n })\r\n .catch((e) => {\r\n\r\n\r\n // console.error(e);\r\n });\r\n } else {\r\n alert(\"Please type a question.\");\r\n }\r\n };\r\n\r\n /**\r\n * Link a document to a given search. This has a similar effect\r\n * to saying \"Yes this document resolves my search\" in the previous\r\n * version.\r\n */\r\n const linkToSearch = async () => {\r\n let position = searchResults.findIndex(\r\n (d) => d.documentId === selectedDocument.documentRVO.documentID\r\n );\r\n let response = await fetch(\r\n \"https://baldwin.kpsol.com:8091/uks/search/resolutions/\",\r\n {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n documentId: selectedDocument.documentRVO.documentID, // required, the document to link\r\n searchId, // required, returned from the search request\r\n score: searchResults[position].score, // required, the score of the search result\r\n resultPosition: position // required, the index of the document in the search results\r\n })\r\n }\r\n );\r\n response\r\n .text()\r\n .then((d) => {\r\n // returns the ID of the newly created link\r\n setSelectedDocument(null);\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n });\r\n };\r\n\r\n return (\r\n\r\n