2024-09-13 13:58:48 +02:00
|
|
|
<script lang="ts">
|
2025-02-02 11:17:22 +01:00
|
|
|
import docsearch from '@docsearch/js';
|
|
|
|
|
import '@docsearch/css';
|
|
|
|
|
import { onMount } from 'svelte';
|
2025-06-21 21:07:36 +02:00
|
|
|
import { i18n } from '$lib/i18n.svelte';
|
|
|
|
|
|
|
|
|
|
let props: {
|
|
|
|
|
class?: string;
|
|
|
|
|
} = $props();
|
2024-09-13 13:58:48 +02:00
|
|
|
|
2025-02-02 11:17:22 +01:00
|
|
|
let mounted = false;
|
2024-09-13 13:58:48 +02:00
|
|
|
|
2025-02-02 11:17:22 +01:00
|
|
|
function initDocsearch() {
|
|
|
|
|
docsearch({
|
|
|
|
|
appId: '21XLD94PE3',
|
|
|
|
|
apiKey: 'd2c1ed6cb0ed12adb2bd84eb2a38494d',
|
|
|
|
|
indexName: 'gpx',
|
|
|
|
|
container: '#docsearch',
|
|
|
|
|
searchParameters: {
|
2025-06-21 21:07:36 +02:00
|
|
|
facetFilters: ['lang:' + i18n.lang],
|
2025-02-02 11:17:22 +01:00
|
|
|
},
|
2025-06-21 21:07:36 +02:00
|
|
|
placeholder: i18n._('docs.search.search'),
|
2025-02-02 11:17:22 +01:00
|
|
|
disableUserPersonalization: true,
|
|
|
|
|
translations: {
|
|
|
|
|
button: {
|
2025-06-21 21:07:36 +02:00
|
|
|
buttonText: i18n._('docs.search.search'),
|
|
|
|
|
buttonAriaLabel: i18n._('docs.search.search'),
|
2025-02-02 11:17:22 +01:00
|
|
|
},
|
|
|
|
|
modal: {
|
|
|
|
|
searchBox: {
|
2025-06-21 21:07:36 +02:00
|
|
|
resetButtonTitle: i18n._('docs.search.clear'),
|
|
|
|
|
resetButtonAriaLabel: i18n._('docs.search.clear'),
|
|
|
|
|
cancelButtonText: i18n._('docs.search.cancel'),
|
|
|
|
|
cancelButtonAriaLabel: i18n._('docs.search.cancel'),
|
|
|
|
|
searchInputLabel: i18n._('docs.search.search'),
|
2025-02-02 11:17:22 +01:00
|
|
|
},
|
|
|
|
|
footer: {
|
2025-06-21 21:07:36 +02:00
|
|
|
selectText: i18n._('docs.search.to_select'),
|
|
|
|
|
navigateText: i18n._('docs.search.to_navigate'),
|
|
|
|
|
closeText: i18n._('docs.search.to_close'),
|
2025-02-02 11:17:22 +01:00
|
|
|
},
|
|
|
|
|
noResultsScreen: {
|
2025-06-21 21:07:36 +02:00
|
|
|
noResultsText: i18n._('docs.search.no_results'),
|
|
|
|
|
suggestedQueryText: i18n._('docs.search.no_results_suggestion'),
|
2025-02-02 11:17:22 +01:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
2024-09-13 13:58:48 +02:00
|
|
|
|
2025-02-02 11:17:22 +01:00
|
|
|
onMount(() => {
|
|
|
|
|
mounted = true;
|
|
|
|
|
});
|
2024-09-13 13:58:48 +02:00
|
|
|
|
2025-06-21 21:07:36 +02:00
|
|
|
$effect(() => {
|
|
|
|
|
if (mounted && i18n.lang && !i18n.isLoading) {
|
|
|
|
|
initDocsearch();
|
|
|
|
|
}
|
|
|
|
|
});
|
2024-09-13 13:58:48 +02:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<svelte:head>
|
2025-02-02 11:17:22 +01:00
|
|
|
<link rel="preconnect" href="https://21XLD94PE3-dsn.algolia.net" crossorigin />
|
2024-09-13 13:58:48 +02:00
|
|
|
</svelte:head>
|
|
|
|
|
|
2025-06-21 21:07:36 +02:00
|
|
|
<div id="docsearch" class={props.class ?? ''}></div>
|