{"version":3,"file":"specialised_information_search.js","sources":["../../../../../src/components/SpecialisedInformation/SpecialisedInformationResult.jsx","../../../../../src/components/SpecialisedInformation/SpecialisedInformationSearch.jsx","../../../../../src/components/SpecialisedInformation/SpecialisedInformationFilter.jsx","../../../../../src/specialised_information_search.js"],"sourcesContent":["import {Modal} from \"../Modal.jsx\";\nimport {useState} from \"react\";\nimport {getTranslations} from \"../../services/language.service.js\";\n\nconst LANG = getTranslations()\n\nexport const SpecialisedInformationResult = (props) => {\n const [showModal,setShowModal] = useState(false)\n const getTeaser = () => {\n const teaser =
\n\n if (props.result.locked) {\n return teaser\n }\n\n return {teaser}\n }\n\n const onClick = (e) => {\n if (showModal) {\n return\n }\n e.preventDefault()\n setShowModal(true)\n }\n\n let download = false;\n if (props.result.specialisedInformationType === 'download') {\n download = props.result.filename;\n }\n\n return (\n \n {props.result.image !== '' &&
\n {props.result.title}\n\n
}\n
\n
\n {props.result.publishedAt}\n | {props.result.category}\n
\n
\n {props.result.title}\n
\n\n
\n {getTeaser()}\n
\n\n
\n
\n {props.result.tags.map(tag =>\n {tag}\n )}\n
\n
\n\n
\n {props.result.specialisedInformationType === 'download' &&\n PDF\n Download}\n {props.result.specialisedInformationType === 'page' &&\n {LANG.readArticle}}\n\n
\n {props.result.readingTime !== '' ?\n : ''}\n
\n
\n
\n {(showModal) &&\n \n }\n
\n )\n}\n","import {useCallback, useEffect, useRef, useState} from \"react\"\nimport {loadSolrResults} from \"../../services/solr.service.js\"\nimport {SpecialisedInformationResult} from \"./SpecialisedInformationResult.jsx\"\nimport {getTranslations} from \"../../services/language.service.js\";\n\nexport const SpecialisedInformationSearch = () => {\n const [search, setSearch] = useState('')\n const [filter, setFilter] = useState({})\n\n const [items, setItems] = useState([])\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [currentPage, setCurrentPage] = useState(1);\n const container = useRef(null);\n const LANG = getTranslations()\n\n\n const mapResults = {\n tags: (element) => {\n const tags = []\n\n for (const e of element.children) {\n tags.push(e.textContent)\n }\n\n return tags\n },\n specialisedInformationType: 'string',\n filename: 'string',\n content: 'string',\n teaser: 'string',\n title: 'string',\n url: 'string',\n image: 'string',\n category: 'string',\n readingTime: 'string',\n publishedAt: 'string',\n score: 'number',\n locked: 'boolean',\n stickyNews: 'boolean',\n userRoles: (element) => {\n const userRoles = []\n\n if (element === undefined) {\n return userRoles\n }\n\n for (const e of element.children) {\n userRoles.push(e.textContent)\n }\n\n return userRoles\n },\n loginUrl: 'string'\n }\n\n useEffect(() => {\n document.addEventListener('filter', (e) => {\n setFilter(e.detail)\n setCurrentPage(1);\n setItems([])\n setHasMore(true)\n })\n\n document.addEventListener('search', (e) => {\n setSearch(e.detail)\n setCurrentPage(1);\n setItems([])\n setHasMore(true)\n })\n\n document.addEventListener('reset', () => {\n setSearch('')\n setCurrentPage(1);\n setItems([])\n setHasMore(true)\n loadResponse()\n })\n },[])\n\n useEffect(() => {\n setIsLoading(true);\n loadResponse()\n }, [search, filter]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const loadNextItems = useCallback(async () => {\n if (isLoading) return;\n\n setIsLoading(true);\n\n loadResponse()\n }, [currentPage, isLoading]);\n\n useEffect(() => {\n const handleScroll = () => {\n const {clientHeight} =\n document.documentElement;\n const {top, height} =\n container.current.getBoundingClientRect();\n if (top + height - clientHeight < 100) {\n void loadNextItems();\n\n }\n };\n if (hasMore) {\n window.addEventListener(\"scroll\", handleScroll);\n }\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n };\n }, [loadNextItems]);\n\n const loadResponse = () => {\n const solrParams = {\n q: search === '' ? '*' : search.replace('*', ''),\n page: currentPage\n }\n\n const filters = {\n ...filter,\n type: '30'\n }\n\n loadSolrResults(solrParams, filters, mapResults).then((response) => {\n setItems((prevItems) => [...prevItems, ...response.results]);\n setCurrentPage((prevIndex) => prevIndex + 1);\n if (!response.hasMore) {\n setHasMore(false)\n }\n document.dispatchEvent(new CustomEvent('facets', {\n detail: response.facets\n }))\n setIsLoading(false)\n\n })\n }\n\n return (\n
\n {items.map(result => )}\n {(items.length < 1 && !isLoading) &&

{LANG.noResults}

}\n {isLoading && }\n
\n )\n\n\n}\n","import {SolrSearchInput} from \"../SolrSearchInput.jsx\";\nimport {useEffect, useRef, useState} from \"react\";\nimport {futureDate, getDateStringFromInput, isValidDate, pastDate} from \"../../services/date.service.js\";\nimport {getShowMoreText, getURLParams, setURLParams} from \"../../services/filter.service.js\";\nimport {getTranslations} from \"../../services/language.service.js\";\n\nconst INITIAL_FILTER = {\n magazines: undefined,\n magazineType: undefined,\n tags: undefined,\n creationDateRange: undefined,\n startDate: undefined,\n endDate: undefined,\n search: undefined,\n filter_categories: undefined\n}\n\nexport const SpecialisedInformationFilter = () => {\n const [filter, setFilter] = useState(Object.assign({}, INITIAL_FILTER, getURLParams()))\n const [facets, setFacets] = useState(undefined)\n const fromInput = useRef()\n const toInput = useRef()\n const [showMoreTags, setShowMoreTags] = useState(false)\n const [showAllTags, setShowAllTags] = useState(false)\n const LANG = getTranslations()\n const [showMobileFilters, setShowMobileFilters] = useState(false)\n\n\n\n useEffect(() => {\n document.addEventListener('facets', (e) => {\n setFacets(e.detail)\n })\n document.addEventListener('facets', () => {\n setFilter(Object.assign({}, INITIAL_FILTER, getURLParams()))\n if (filter.startDate !== undefined) {\n fromInput.current.value = filter.startDate;\n }\n if (filter.endDate !== undefined) {\n toInput.current.value = filter.endDate;\n }\n setTimeout(() => {\n if (filter.search !== undefined) {\n onSearch(filter.search)\n }\n }, 300)\n }, {once: true})\n }, [])\n\n useEffect(() => {\n setURLParams(filter)\n document.dispatchEvent(new CustomEvent('filter', {\n detail: filter\n }))\n }, [filter])\n\n const isFilter = (name, value) => {\n return filter[name] === value\n }\n\n const toggleFilter = (name, value) => {\n setFilter((current) => {\n return {\n ...current,\n [name]: filter[name] === value ? undefined : value\n }\n })\n }\n\n const setDate = () => {\n let startDate = undefined;\n let endDate = undefined;\n if (isValidDate(fromInput.current.value)) {\n startDate = fromInput.current.value;\n }\n if (isValidDate(toInput.current.value)) {\n endDate = toInput.current.value;\n }\n setFilter((current) => {\n return {\n ...current,\n startDate: startDate,\n endDate: endDate,\n }\n })\n if (isValidDate(fromInput.current.value) || isValidDate(toInput.current.value)) {\n const from = isValidDate(fromInput.current.value) ? getDateStringFromInput(fromInput.current.value) : pastDate\n const to = isValidDate(toInput.current.value) ? getDateStringFromInput(toInput.current.value, '2359') : futureDate\n\n setFilter((current) => {\n return {\n ...current,\n creationDateRange: `${from}-${to}`\n }\n })\n } else if (filter.creationDateRange !== undefined) {\n setFilter((current) => {\n return {\n ...current,\n creationDateRange: undefined\n }\n })\n }\n }\n\n const onSearch = (search) => {\n filter.search = search;\n setURLParams(filter)\n document.dispatchEvent(new CustomEvent('search', {\n detail: search\n }))\n }\n\n const onReset = () => {\n document.dispatchEvent(new CustomEvent('reset'))\n\n fromInput.current.value = ''\n toInput.current.value = ''\n setFilter(INITIAL_FILTER)\n }\n\n const onShowMore = () => {\n if (!showMoreTags) {\n setShowMoreTags(true)\n if (facets && facets.find(f => f.name === 'tags').options.length <= 30) {\n setShowAllTags(true)\n }\n return\n }\n if (!showAllTags) {\n setShowAllTags(true)\n return\n }\n setShowAllTags(false)\n setShowMoreTags(false)\n }\n\n return <>\n
\n \n\n
\n
\n
{LANG.categories}
\n
\n {facets && facets.find(f => f.name === 'categories').options.map(option =>\n
\n \n
\n )}\n
\n
\n
\n\n
\n
\n
{LANG.type}
\n
\n {facets && facets.find(f => f.name === 'filter_categories').options\n .map(option =>\n
\n toggleFilter('filter_categories', option.value)}>{option.label}\n
\n )}\n
\n
\n
\n
{LANG.freeSearch}
\n
\n onSearch(e)} searchvalue={filter.search}>\n
\n
\n
\n\n
\n
\n
\n
{LANG.tags}
\n
\n {facets && facets.find(f => f.name === 'tags').options.map((option, index) => {\n if (showAllTags || isFilter('tags', option.value) || index < 15 || index < 30 && showMoreTags)\n return
\n \n
\n }\n )}\n
\n {(facets && facets.find(f => f.name === 'tags').options.length > 15) &&\n }\n\n
\n
\n
{LANG.date}
\n
\n
\n setDate()}/>\n
\n
\n setDate()}/>\n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n \n}\n","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport {SpecialisedInformationSearch} from \"./components/SpecialisedInformation/SpecialisedInformationSearch\"\nimport {SpecialisedInformationFilter} from \"./components/SpecialisedInformation/SpecialisedInformationFilter.jsx\"\n\nconst initFilter = () => {\n const element = document.querySelector('.solr-specialised-information-filter')\n\n if (element === null) {\n return\n }\n\n const root = ReactDOM.createRoot(element)\n root.render(\n React.createElement(React.StrictMode, null,\n React.createElement(SpecialisedInformationFilter)\n )\n )\n}\n\nconst initResults = () => {\n const element = document.querySelector('.solr-specialised-information-results')\n\n if (element === null) {\n return\n }\n\n const root = ReactDOM.createRoot(element)\n root.render(\n React.createElement(React.StrictMode, null,\n React.createElement(SpecialisedInformationSearch)\n )\n )\n}\n\nwindow.onload = () => {\n initFilter()\n initResults()\n}\n"],"names":["LANG","getTranslations","SpecialisedInformationResult","props","showModal","setShowModal","useState","getTeaser","teaser","jsx","onClick","e","download","jsxs","tag","Modal","SpecialisedInformationSearch","search","setSearch","filter","setFilter","items","setItems","isLoading","setIsLoading","hasMore","setHasMore","currentPage","setCurrentPage","container","useRef","mapResults","element","tags","userRoles","useEffect","loadResponse","loadNextItems","useCallback","handleScroll","clientHeight","top","height","solrParams","filters","loadSolrResults","response","prevItems","prevIndex","result","INITIAL_FILTER","SpecialisedInformationFilter","getURLParams","facets","setFacets","fromInput","toInput","showMoreTags","setShowMoreTags","showAllTags","setShowAllTags","showMobileFilters","setShowMobileFilters","onSearch","setURLParams","isFilter","name","value","toggleFilter","current","setDate","startDate","endDate","isValidDate","from","getDateStringFromInput","pastDate","to","futureDate","onReset","onShowMore","f","Fragment","option","SolrSearchInput","index","getShowMoreText","_","initFilter","ReactDOM","React","initResults"],"mappings":"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"}