mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Added support for graceful recovery of failing search initialization on file:// protocol
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
material/assets/javascripts/bundle.f593c2a5.min.js.map
Normal file
1
material/assets/javascripts/bundle.f593c2a5.min.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"assets/javascripts/bundle.js": "assets/javascripts/bundle.c51f1a8c.min.js",
|
"assets/javascripts/bundle.js": "assets/javascripts/bundle.f593c2a5.min.js",
|
||||||
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.c51f1a8c.min.js.map",
|
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.f593c2a5.min.js.map",
|
||||||
"assets/javascripts/vendor.js": "assets/javascripts/vendor.ff4ef43d.min.js",
|
"assets/javascripts/vendor.js": "assets/javascripts/vendor.ff4ef43d.min.js",
|
||||||
"assets/javascripts/vendor.js.map": "assets/javascripts/vendor.ff4ef43d.min.js.map",
|
"assets/javascripts/vendor.js.map": "assets/javascripts/vendor.ff4ef43d.min.js.map",
|
||||||
"assets/javascripts/worker/search.js": "assets/javascripts/worker/search.58d22e8e.min.js",
|
"assets/javascripts/worker/search.js": "assets/javascripts/worker/search.58d22e8e.min.js",
|
||||||
|
|||||||
@@ -179,7 +179,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script src="{{ 'assets/javascripts/vendor.ff4ef43d.min.js' | url }}"></script>
|
<script src="{{ 'assets/javascripts/vendor.ff4ef43d.min.js' | url }}"></script>
|
||||||
<script src="{{ 'assets/javascripts/bundle.c51f1a8c.min.js' | url }}"></script>
|
<script src="{{ 'assets/javascripts/bundle.f593c2a5.min.js' | url }}"></script>
|
||||||
{%- set translations = {} -%}
|
{%- set translations = {} -%}
|
||||||
{%- for key in [
|
{%- for key in [
|
||||||
"clipboard.copy",
|
"clipboard.copy",
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ import {
|
|||||||
combineLatest,
|
combineLatest,
|
||||||
animationFrameScheduler,
|
animationFrameScheduler,
|
||||||
fromEvent,
|
fromEvent,
|
||||||
from
|
from,
|
||||||
|
defer,
|
||||||
|
of,
|
||||||
|
NEVER
|
||||||
} from "rxjs"
|
} from "rxjs"
|
||||||
import { ajax } from "rxjs/ajax"
|
import { ajax } from "rxjs/ajax"
|
||||||
import {
|
import {
|
||||||
@@ -42,7 +45,8 @@ import {
|
|||||||
observeOn,
|
observeOn,
|
||||||
take,
|
take,
|
||||||
shareReplay,
|
shareReplay,
|
||||||
pluck
|
pluck,
|
||||||
|
catchError
|
||||||
} from "rxjs/operators"
|
} from "rxjs/operators"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -228,60 +232,67 @@ export function initialize(config: unknown) {
|
|||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
// External index
|
/* Search worker */
|
||||||
const index = config.search && config.search.index
|
const worker$ = defer(() => {
|
||||||
? config.search.index
|
const index = config.search && config.search.index
|
||||||
: undefined
|
? config.search.index
|
||||||
|
: undefined
|
||||||
|
|
||||||
/* Fetch index if it wasn't passed explicitly */
|
/* Fetch index if it wasn't passed explicitly */
|
||||||
const index$ = typeof index !== "undefined"
|
const index$ = typeof index !== "undefined"
|
||||||
? from(index)
|
? from(index)
|
||||||
: base$
|
: base$
|
||||||
.pipe(
|
.pipe(
|
||||||
switchMap(base => ajax({
|
switchMap(base => ajax({
|
||||||
url: `${base}/search/search_index.json`,
|
url: `${base}/search/search_index.json`,
|
||||||
responseType: "json",
|
responseType: "json",
|
||||||
withCredentials: true
|
withCredentials: true
|
||||||
})
|
})
|
||||||
.pipe<SearchIndex>(
|
.pipe<SearchIndex>(
|
||||||
pluck("response")
|
pluck("response")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
const worker = setupSearchWorker(config.search.worker, {
|
return of(setupSearchWorker(config.search.worker, {
|
||||||
base$, index$
|
base$, index$
|
||||||
|
}))
|
||||||
})
|
})
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Mount search query */
|
/* Mount search query */
|
||||||
const query$ = useComponent("search-query")
|
const search$ = worker$
|
||||||
.pipe(
|
.pipe(
|
||||||
mountSearchQuery(worker, { transform: config.search.transform }),
|
switchMap(worker => {
|
||||||
shareReplay(1)
|
|
||||||
)
|
|
||||||
|
|
||||||
/* Mount search reset */
|
const query$ = useComponent("search-query")
|
||||||
const reset$ = useComponent("search-reset")
|
.pipe(
|
||||||
.pipe(
|
mountSearchQuery(worker, { transform: config.search.transform }),
|
||||||
mountSearchReset(),
|
shareReplay(1)
|
||||||
shareReplay(1)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
/* Mount search result */
|
/* Mount search reset */
|
||||||
const result$ = useComponent("search-result")
|
const reset$ = useComponent("search-reset")
|
||||||
.pipe(
|
.pipe(
|
||||||
mountSearchResult(worker, { query$ }),
|
mountSearchReset(),
|
||||||
shareReplay(1)
|
shareReplay(1)
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* Mount search result */
|
||||||
|
const result$ = useComponent("search-result")
|
||||||
|
.pipe(
|
||||||
|
mountSearchResult(worker, { query$ }),
|
||||||
|
shareReplay(1)
|
||||||
|
)
|
||||||
|
|
||||||
const search$ = useComponent("search")
|
return useComponent("search")
|
||||||
.pipe(
|
.pipe(
|
||||||
mountSearch(worker, { query$, reset$, result$ }),
|
mountSearch(worker, { query$, reset$, result$ }),
|
||||||
shareReplay(1)
|
shareReplay(1)
|
||||||
|
)
|
||||||
|
}),
|
||||||
|
catchError(() => NEVER)
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|||||||
Reference in New Issue
Block a user